merge of the e2ap-v2.0 branch 24/8324/1
authorczichy <thoralf.czichy@nokia.com>
Tue, 17 May 2022 12:35:45 +0000 (15:35 +0300)
committerczichy <thoralf.czichy@nokia.com>
Tue, 17 May 2022 12:35:48 +0000 (15:35 +0300)
commit 8ea5c5358ce9a001385c4639f1000e6c9287bcb2
Author: subhash kumar singh <subh.singh@samsung.com>
Date:   Tue Mar 8 10:31:51 2022 +0000

    Protobuf for node configuration

    Node configuration is added as part E2APv1.1 and E2APv2.0.
    gNB and eNB will have their respective node configuration.

    Issue-ID: RIC-722
Signed-off-by: subhash kumar singh <subh.singh@samsung.com>
    Change-Id: I07db06c1084f2ae85f9063f66588da548521483a

Change-Id: I76acb7525a50938ea3c1cc96e990e076e97a8fd8
Signed-off-by: czichy <thoralf.czichy@nokia.com>
17 files changed:
entities/additional_cell_information.pb.go
entities/cell.pb.go
entities/cells.pb.go
entities/e2node_component_config.pb.go [new file with mode: 0644]
entities/e2node_component_config.proto [new file with mode: 0644]
entities/enb.pb.go
entities/enb.proto
entities/gnb.pb.go
entities/gnb.proto
entities/nb_identity.pb.go
entities/nb_types.pb.go [new file with mode: 0644]
entities/nb_types.proto [new file with mode: 0644]
entities/nodeb_info.pb.go
entities/ran_function.pb.go
entities/ran_function.proto
entities/ran_load_information.pb.go
entities/x2_setup_failure_response.pb.go

index 5dbfc96..7009ce6 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: additional_cell_information.proto
 
index d40a68c..b542175 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: cell.proto
 
index 095d153..d2840ea 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: cells.proto
 
diff --git a/entities/e2node_component_config.pb.go b/entities/e2node_component_config.pb.go
new file mode 100644 (file)
index 0000000..48fbd30
--- /dev/null
@@ -0,0 +1,1302 @@
+//
+// Copyright 2022 Samsung Electronics Co.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//
+// This source code is part of the near-RT RIC (RAN Intelligent Controller)
+// platform project (RICP).
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+//     protoc-gen-go v1.25.0
+//     protoc        v3.6.1
+// source: e2node_component_config.proto
+
+package entities
+
+import (
+       proto "github.com/golang/protobuf/proto"
+       protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+       protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+       reflect "reflect"
+       sync "sync"
+)
+
+const (
+       // Verify that this generated code is sufficiently up-to-date.
+       _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+       // Verify that runtime/protoimpl is sufficiently up-to-date.
+       _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+type E2NodeComponentInterfaceType int32
+
+const (
+       E2NodeComponentInterfaceType_ng E2NodeComponentInterfaceType = 0
+       E2NodeComponentInterfaceType_xn E2NodeComponentInterfaceType = 1
+       E2NodeComponentInterfaceType_e1 E2NodeComponentInterfaceType = 2
+       E2NodeComponentInterfaceType_f1 E2NodeComponentInterfaceType = 3
+       E2NodeComponentInterfaceType_w1 E2NodeComponentInterfaceType = 5
+       E2NodeComponentInterfaceType_s1 E2NodeComponentInterfaceType = 6
+       E2NodeComponentInterfaceType_x2 E2NodeComponentInterfaceType = 7
+)
+
+// Enum value maps for E2NodeComponentInterfaceType.
+var (
+       E2NodeComponentInterfaceType_name = map[int32]string{
+               0: "ng",
+               1: "xn",
+               2: "e1",
+               3: "f1",
+               5: "w1",
+               6: "s1",
+               7: "x2",
+       }
+       E2NodeComponentInterfaceType_value = map[string]int32{
+               "ng": 0,
+               "xn": 1,
+               "e1": 2,
+               "f1": 3,
+               "w1": 5,
+               "s1": 6,
+               "x2": 7,
+       }
+)
+
+func (x E2NodeComponentInterfaceType) Enum() *E2NodeComponentInterfaceType {
+       p := new(E2NodeComponentInterfaceType)
+       *p = x
+       return p
+}
+
+func (x E2NodeComponentInterfaceType) String() string {
+       return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (E2NodeComponentInterfaceType) Descriptor() protoreflect.EnumDescriptor {
+       return file_e2node_component_config_proto_enumTypes[0].Descriptor()
+}
+
+func (E2NodeComponentInterfaceType) Type() protoreflect.EnumType {
+       return &file_e2node_component_config_proto_enumTypes[0]
+}
+
+func (x E2NodeComponentInterfaceType) Number() protoreflect.EnumNumber {
+       return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use E2NodeComponentInterfaceType.Descriptor instead.
+func (E2NodeComponentInterfaceType) EnumDescriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{0}
+}
+
+type E2NodeComponentConfig struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       // Types that are assignable to E2NodeComponentID:
+       //      *E2NodeComponentConfig_E2NodeComponentInterfaceTypeNG
+       //      *E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn
+       //      *E2NodeComponentConfig_E2NodeComponentInterfaceTypeE1
+       //      *E2NodeComponentConfig_E2NodeComponentInterfaceTypeF1
+       //      *E2NodeComponentConfig_E2NodeComponentInterfaceTypeW1
+       //      *E2NodeComponentConfig_E2NodeComponentInterfaceTypeS1
+       //      *E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2
+       E2NodeComponentID            isE2NodeComponentConfig_E2NodeComponentID `protobuf_oneof:"E2nodeComponentID"`
+       E2NodeComponentInterfaceType E2NodeComponentInterfaceType              `protobuf:"varint,8,opt,name=e2nodeComponentInterfaceType,proto3,enum=entities.E2NodeComponentInterfaceType" json:"e2nodeComponentInterfaceType,omitempty"`
+       E2NodeComponentRequestPart   []byte                                    `protobuf:"bytes,9,opt,name=e2nodeComponentRequestPart,proto3" json:"e2nodeComponentRequestPart,omitempty"`
+       E2NodeComponentResponsePart  []byte                                    `protobuf:"bytes,10,opt,name=e2nodeComponentResponsePart,proto3" json:"e2nodeComponentResponsePart,omitempty"`
+}
+
+func (x *E2NodeComponentConfig) Reset() {
+       *x = E2NodeComponentConfig{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[0]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentConfig) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentConfig) ProtoMessage() {}
+
+func (x *E2NodeComponentConfig) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[0]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use E2NodeComponentConfig.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentConfig) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *E2NodeComponentConfig) GetE2NodeComponentID() isE2NodeComponentConfig_E2NodeComponentID {
+       if m != nil {
+               return m.E2NodeComponentID
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceTypeNG() *E2NodeComponentInterfaceNG {
+       if x, ok := x.GetE2NodeComponentID().(*E2NodeComponentConfig_E2NodeComponentInterfaceTypeNG); ok {
+               return x.E2NodeComponentInterfaceTypeNG
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceTypeXn() *E2NodeComponentInterfaceXn {
+       if x, ok := x.GetE2NodeComponentID().(*E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn); ok {
+               return x.E2NodeComponentInterfaceTypeXn
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceTypeE1() *E2NodeComponentInterfaceE1 {
+       if x, ok := x.GetE2NodeComponentID().(*E2NodeComponentConfig_E2NodeComponentInterfaceTypeE1); ok {
+               return x.E2NodeComponentInterfaceTypeE1
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceTypeF1() *E2NodeComponentInterfaceF1 {
+       if x, ok := x.GetE2NodeComponentID().(*E2NodeComponentConfig_E2NodeComponentInterfaceTypeF1); ok {
+               return x.E2NodeComponentInterfaceTypeF1
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceTypeW1() *E2NodeComponentInterfaceW1 {
+       if x, ok := x.GetE2NodeComponentID().(*E2NodeComponentConfig_E2NodeComponentInterfaceTypeW1); ok {
+               return x.E2NodeComponentInterfaceTypeW1
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceTypeS1() *E2NodeComponentInterfaceS1 {
+       if x, ok := x.GetE2NodeComponentID().(*E2NodeComponentConfig_E2NodeComponentInterfaceTypeS1); ok {
+               return x.E2NodeComponentInterfaceTypeS1
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceTypeX2() *E2NodeComponentInterfaceX2 {
+       if x, ok := x.GetE2NodeComponentID().(*E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2); ok {
+               return x.E2NodeComponentInterfaceTypeX2
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentInterfaceType() E2NodeComponentInterfaceType {
+       if x != nil {
+               return x.E2NodeComponentInterfaceType
+       }
+       return E2NodeComponentInterfaceType_ng
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentRequestPart() []byte {
+       if x != nil {
+               return x.E2NodeComponentRequestPart
+       }
+       return nil
+}
+
+func (x *E2NodeComponentConfig) GetE2NodeComponentResponsePart() []byte {
+       if x != nil {
+               return x.E2NodeComponentResponsePart
+       }
+       return nil
+}
+
+type isE2NodeComponentConfig_E2NodeComponentID interface {
+       isE2NodeComponentConfig_E2NodeComponentID()
+}
+
+type E2NodeComponentConfig_E2NodeComponentInterfaceTypeNG struct {
+       E2NodeComponentInterfaceTypeNG *E2NodeComponentInterfaceNG `protobuf:"bytes,1,opt,name=e2nodeComponentInterfaceTypeNG,proto3,oneof"`
+}
+
+type E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn struct {
+       E2NodeComponentInterfaceTypeXn *E2NodeComponentInterfaceXn `protobuf:"bytes,2,opt,name=e2nodeComponentInterfaceTypeXn,proto3,oneof"`
+}
+
+type E2NodeComponentConfig_E2NodeComponentInterfaceTypeE1 struct {
+       E2NodeComponentInterfaceTypeE1 *E2NodeComponentInterfaceE1 `protobuf:"bytes,3,opt,name=e2nodeComponentInterfaceTypeE1,proto3,oneof"`
+}
+
+type E2NodeComponentConfig_E2NodeComponentInterfaceTypeF1 struct {
+       E2NodeComponentInterfaceTypeF1 *E2NodeComponentInterfaceF1 `protobuf:"bytes,4,opt,name=e2nodeComponentInterfaceTypeF1,proto3,oneof"`
+}
+
+type E2NodeComponentConfig_E2NodeComponentInterfaceTypeW1 struct {
+       E2NodeComponentInterfaceTypeW1 *E2NodeComponentInterfaceW1 `protobuf:"bytes,5,opt,name=e2nodeComponentInterfaceTypeW1,proto3,oneof"`
+}
+
+type E2NodeComponentConfig_E2NodeComponentInterfaceTypeS1 struct {
+       E2NodeComponentInterfaceTypeS1 *E2NodeComponentInterfaceS1 `protobuf:"bytes,6,opt,name=e2nodeComponentInterfaceTypeS1,proto3,oneof"`
+}
+
+type E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2 struct {
+       E2NodeComponentInterfaceTypeX2 *E2NodeComponentInterfaceX2 `protobuf:"bytes,7,opt,name=e2nodeComponentInterfaceTypeX2,proto3,oneof"`
+}
+
+func (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeNG) isE2NodeComponentConfig_E2NodeComponentID() {
+}
+
+func (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn) isE2NodeComponentConfig_E2NodeComponentID() {
+}
+
+func (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeE1) isE2NodeComponentConfig_E2NodeComponentID() {
+}
+
+func (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeF1) isE2NodeComponentConfig_E2NodeComponentID() {
+}
+
+func (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeW1) isE2NodeComponentConfig_E2NodeComponentID() {
+}
+
+func (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeS1) isE2NodeComponentConfig_E2NodeComponentID() {
+}
+
+func (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2) isE2NodeComponentConfig_E2NodeComponentID() {
+}
+
+type E2NodeComponentInterfaceNG struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       AmfName string `protobuf:"bytes,11,opt,name=amf_name,json=amfName,proto3" json:"amf_name,omitempty"`
+}
+
+func (x *E2NodeComponentInterfaceNG) Reset() {
+       *x = E2NodeComponentInterfaceNG{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[1]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentInterfaceNG) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentInterfaceNG) ProtoMessage() {}
+
+func (x *E2NodeComponentInterfaceNG) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[1]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use E2NodeComponentInterfaceNG.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentInterfaceNG) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *E2NodeComponentInterfaceNG) GetAmfName() string {
+       if x != nil {
+               return x.AmfName
+       }
+       return ""
+}
+
+type E2NodeComponentInterfaceXn struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       // Types that are assignable to GlobalNgRanNodeId:
+       //      *E2NodeComponentInterfaceXn_GlobalNgenbId
+       //      *E2NodeComponentInterfaceXn_GlobalGnbId
+       GlobalNgRanNodeId isE2NodeComponentInterfaceXn_GlobalNgRanNodeId `protobuf_oneof:"global_ng_ran_node_id"`
+}
+
+func (x *E2NodeComponentInterfaceXn) Reset() {
+       *x = E2NodeComponentInterfaceXn{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[2]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentInterfaceXn) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentInterfaceXn) ProtoMessage() {}
+
+func (x *E2NodeComponentInterfaceXn) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[2]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use E2NodeComponentInterfaceXn.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentInterfaceXn) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{2}
+}
+
+func (m *E2NodeComponentInterfaceXn) GetGlobalNgRanNodeId() isE2NodeComponentInterfaceXn_GlobalNgRanNodeId {
+       if m != nil {
+               return m.GlobalNgRanNodeId
+       }
+       return nil
+}
+
+func (x *E2NodeComponentInterfaceXn) GetGlobalNgenbId() *GlobalNGENBID {
+       if x, ok := x.GetGlobalNgRanNodeId().(*E2NodeComponentInterfaceXn_GlobalNgenbId); ok {
+               return x.GlobalNgenbId
+       }
+       return nil
+}
+
+func (x *E2NodeComponentInterfaceXn) GetGlobalGnbId() *GlobalGNBID {
+       if x, ok := x.GetGlobalNgRanNodeId().(*E2NodeComponentInterfaceXn_GlobalGnbId); ok {
+               return x.GlobalGnbId
+       }
+       return nil
+}
+
+type isE2NodeComponentInterfaceXn_GlobalNgRanNodeId interface {
+       isE2NodeComponentInterfaceXn_GlobalNgRanNodeId()
+}
+
+type E2NodeComponentInterfaceXn_GlobalNgenbId struct {
+       GlobalNgenbId *GlobalNGENBID `protobuf:"bytes,12,opt,name=global_ngenb_id,json=globalNgenbId,proto3,oneof"`
+}
+
+type E2NodeComponentInterfaceXn_GlobalGnbId struct {
+       GlobalGnbId *GlobalGNBID `protobuf:"bytes,13,opt,name=global_gnb_id,json=globalGnbId,proto3,oneof"`
+}
+
+func (*E2NodeComponentInterfaceXn_GlobalNgenbId) isE2NodeComponentInterfaceXn_GlobalNgRanNodeId() {}
+
+func (*E2NodeComponentInterfaceXn_GlobalGnbId) isE2NodeComponentInterfaceXn_GlobalNgRanNodeId() {}
+
+type E2NodeComponentInterfaceE1 struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       GNBCuCpId int64 `protobuf:"varint,14,opt,name=gNB_cu_cp_id,json=gNBCuCpId,proto3" json:"gNB_cu_cp_id,omitempty"`
+}
+
+func (x *E2NodeComponentInterfaceE1) Reset() {
+       *x = E2NodeComponentInterfaceE1{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[3]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentInterfaceE1) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentInterfaceE1) ProtoMessage() {}
+
+func (x *E2NodeComponentInterfaceE1) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_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 E2NodeComponentInterfaceE1.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentInterfaceE1) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *E2NodeComponentInterfaceE1) GetGNBCuCpId() int64 {
+       if x != nil {
+               return x.GNBCuCpId
+       }
+       return 0
+}
+
+type E2NodeComponentInterfaceF1 struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       GNBDuId int64 `protobuf:"varint,15,opt,name=gNB_du_id,json=gNBDuId,proto3" json:"gNB_du_id,omitempty"`
+}
+
+func (x *E2NodeComponentInterfaceF1) Reset() {
+       *x = E2NodeComponentInterfaceF1{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[4]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentInterfaceF1) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentInterfaceF1) ProtoMessage() {}
+
+func (x *E2NodeComponentInterfaceF1) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[4]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use E2NodeComponentInterfaceF1.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentInterfaceF1) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *E2NodeComponentInterfaceF1) GetGNBDuId() int64 {
+       if x != nil {
+               return x.GNBDuId
+       }
+       return 0
+}
+
+type E2NodeComponentInterfaceW1 struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       NgenbDuId int64 `protobuf:"varint,16,opt,name=ngenb_du_id,json=ngenbDuId,proto3" json:"ngenb_du_id,omitempty"`
+}
+
+func (x *E2NodeComponentInterfaceW1) Reset() {
+       *x = E2NodeComponentInterfaceW1{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[5]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentInterfaceW1) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentInterfaceW1) ProtoMessage() {}
+
+func (x *E2NodeComponentInterfaceW1) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[5]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use E2NodeComponentInterfaceW1.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentInterfaceW1) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *E2NodeComponentInterfaceW1) GetNgenbDuId() int64 {
+       if x != nil {
+               return x.NgenbDuId
+       }
+       return 0
+}
+
+type E2NodeComponentInterfaceS1 struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       MmeName string `protobuf:"bytes,17,opt,name=mme_name,json=mmeName,proto3" json:"mme_name,omitempty"`
+}
+
+func (x *E2NodeComponentInterfaceS1) Reset() {
+       *x = E2NodeComponentInterfaceS1{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[6]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentInterfaceS1) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentInterfaceS1) ProtoMessage() {}
+
+func (x *E2NodeComponentInterfaceS1) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[6]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use E2NodeComponentInterfaceS1.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentInterfaceS1) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *E2NodeComponentInterfaceS1) GetMmeName() string {
+       if x != nil {
+               return x.MmeName
+       }
+       return ""
+}
+
+type E2NodeComponentInterfaceX2 struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       GlobalEnbId   *GlobalENBID   `protobuf:"bytes,18,opt,name=global_enb_id,json=globalEnbId,proto3" json:"global_enb_id,omitempty"`
+       GlobalEngnbId *GlobalENGNBID `protobuf:"bytes,19,opt,name=global_engnb_id,json=globalEngnbId,proto3" json:"global_engnb_id,omitempty"`
+}
+
+func (x *E2NodeComponentInterfaceX2) Reset() {
+       *x = E2NodeComponentInterfaceX2{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[7]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *E2NodeComponentInterfaceX2) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*E2NodeComponentInterfaceX2) ProtoMessage() {}
+
+func (x *E2NodeComponentInterfaceX2) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[7]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use E2NodeComponentInterfaceX2.ProtoReflect.Descriptor instead.
+func (*E2NodeComponentInterfaceX2) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *E2NodeComponentInterfaceX2) GetGlobalEnbId() *GlobalENBID {
+       if x != nil {
+               return x.GlobalEnbId
+       }
+       return nil
+}
+
+func (x *E2NodeComponentInterfaceX2) GetGlobalEngnbId() *GlobalENGNBID {
+       if x != nil {
+               return x.GlobalEngnbId
+       }
+       return nil
+}
+
+type GlobalENBID struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       PlmnIdentity string  `protobuf:"bytes,20,opt,name=plmn_identity,json=plmnIdentity,proto3" json:"plmn_identity,omitempty"`
+       EnbId        string  `protobuf:"bytes,21,opt,name=enb_id,json=enbId,proto3" json:"enb_id,omitempty"`
+       EnbType      EnbType `protobuf:"varint,22,opt,name=enb_type,json=enbType,proto3,enum=entities.EnbType" json:"enb_type,omitempty"`
+}
+
+func (x *GlobalENBID) Reset() {
+       *x = GlobalENBID{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[8]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *GlobalENBID) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalENBID) ProtoMessage() {}
+
+func (x *GlobalENBID) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[8]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalENBID.ProtoReflect.Descriptor instead.
+func (*GlobalENBID) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *GlobalENBID) GetPlmnIdentity() string {
+       if x != nil {
+               return x.PlmnIdentity
+       }
+       return ""
+}
+
+func (x *GlobalENBID) GetEnbId() string {
+       if x != nil {
+               return x.EnbId
+       }
+       return ""
+}
+
+func (x *GlobalENBID) GetEnbType() EnbType {
+       if x != nil {
+               return x.EnbType
+       }
+       return EnbType_UNKNOWN_ENB_TYPE
+}
+
+type GlobalENGNBID struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       PlmnIdentity string  `protobuf:"bytes,23,opt,name=plmn_identity,json=plmnIdentity,proto3" json:"plmn_identity,omitempty"`
+       GnbId        string  `protobuf:"bytes,24,opt,name=gnb_id,json=gnbId,proto3" json:"gnb_id,omitempty"`
+       GnbType      GnbType `protobuf:"varint,25,opt,name=gnb_type,json=gnbType,proto3,enum=entities.GnbType" json:"gnb_type,omitempty"`
+}
+
+func (x *GlobalENGNBID) Reset() {
+       *x = GlobalENGNBID{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[9]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *GlobalENGNBID) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalENGNBID) ProtoMessage() {}
+
+func (x *GlobalENGNBID) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[9]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalENGNBID.ProtoReflect.Descriptor instead.
+func (*GlobalENGNBID) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *GlobalENGNBID) GetPlmnIdentity() string {
+       if x != nil {
+               return x.PlmnIdentity
+       }
+       return ""
+}
+
+func (x *GlobalENGNBID) GetGnbId() string {
+       if x != nil {
+               return x.GnbId
+       }
+       return ""
+}
+
+func (x *GlobalENGNBID) GetGnbType() GnbType {
+       if x != nil {
+               return x.GnbType
+       }
+       return GnbType_UNKNOWN_GNB_TYPE
+}
+
+type GlobalGNBID struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       PlmnIdentity string  `protobuf:"bytes,26,opt,name=plmn_identity,json=plmnIdentity,proto3" json:"plmn_identity,omitempty"`
+       GnbId        string  `protobuf:"bytes,27,opt,name=gnb_id,json=gnbId,proto3" json:"gnb_id,omitempty"`
+       GnbType      GnbType `protobuf:"varint,28,opt,name=gnb_type,json=gnbType,proto3,enum=entities.GnbType" json:"gnb_type,omitempty"`
+}
+
+func (x *GlobalGNBID) Reset() {
+       *x = GlobalGNBID{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[10]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *GlobalGNBID) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalGNBID) ProtoMessage() {}
+
+func (x *GlobalGNBID) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[10]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalGNBID.ProtoReflect.Descriptor instead.
+func (*GlobalGNBID) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *GlobalGNBID) GetPlmnIdentity() string {
+       if x != nil {
+               return x.PlmnIdentity
+       }
+       return ""
+}
+
+func (x *GlobalGNBID) GetGnbId() string {
+       if x != nil {
+               return x.GnbId
+       }
+       return ""
+}
+
+func (x *GlobalGNBID) GetGnbType() GnbType {
+       if x != nil {
+               return x.GnbType
+       }
+       return GnbType_UNKNOWN_GNB_TYPE
+}
+
+type GlobalNGENBID struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       PlmnIdentity string  `protobuf:"bytes,29,opt,name=plmn_identity,json=plmnIdentity,proto3" json:"plmn_identity,omitempty"`
+       EnbId        string  `protobuf:"bytes,30,opt,name=enb_id,json=enbId,proto3" json:"enb_id,omitempty"`
+       EnbType      EnbType `protobuf:"varint,31,opt,name=enb_type,json=enbType,proto3,enum=entities.EnbType" json:"enb_type,omitempty"`
+}
+
+func (x *GlobalNGENBID) Reset() {
+       *x = GlobalNGENBID{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_e2node_component_config_proto_msgTypes[11]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *GlobalNGENBID) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GlobalNGENBID) ProtoMessage() {}
+
+func (x *GlobalNGENBID) ProtoReflect() protoreflect.Message {
+       mi := &file_e2node_component_config_proto_msgTypes[11]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use GlobalNGENBID.ProtoReflect.Descriptor instead.
+func (*GlobalNGENBID) Descriptor() ([]byte, []int) {
+       return file_e2node_component_config_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *GlobalNGENBID) GetPlmnIdentity() string {
+       if x != nil {
+               return x.PlmnIdentity
+       }
+       return ""
+}
+
+func (x *GlobalNGENBID) GetEnbId() string {
+       if x != nil {
+               return x.EnbId
+       }
+       return ""
+}
+
+func (x *GlobalNGENBID) GetEnbType() EnbType {
+       if x != nil {
+               return x.EnbType
+       }
+       return EnbType_UNKNOWN_ENB_TYPE
+}
+
+var File_e2node_component_config_proto protoreflect.FileDescriptor
+
+var file_e2node_component_config_proto_rawDesc = []byte{
+       0x0a, 0x1d, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
+       0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
+       0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x0e, 0x6e, 0x62, 0x5f, 0x74, 0x79,
+       0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x08, 0x0a, 0x15, 0x45, 0x32,
+       0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e,
+       0x66, 0x69, 0x67, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x4e, 0x47, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e,
+       0x47, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x4e, 0x47, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x58, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x58,
+       0x6e, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x58, 0x6e, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x45, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x45,
+       0x31, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x45, 0x31, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x46, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x46,
+       0x31, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x46, 0x31, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x57, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x57,
+       0x31, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x57, 0x31, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x53, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53,
+       0x31, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x53, 0x31, 0x12, 0x6e, 0x0a, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x58, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x58,
+       0x32, 0x48, 0x00, 0x52, 0x1e, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x58, 0x32, 0x12, 0x6a, 0x0a, 0x1c, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d,
+       0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x74, 0x69,
+       0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
+       0x65, 0x52, 0x1c, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
+       0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
+       0x3e, 0x0a, 0x1a, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
+       0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x18, 0x09, 0x20,
+       0x01, 0x28, 0x0c, 0x52, 0x1a, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x12,
+       0x40, 0x0a, 0x1b, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
+       0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x72, 0x74, 0x18, 0x0a,
+       0x20, 0x01, 0x28, 0x0c, 0x52, 0x1b, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70,
+       0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x72,
+       0x74, 0x42, 0x13, 0x0a, 0x11, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
+       0x6e, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x37, 0x0a, 0x1a, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65,
+       0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+       0x63, 0x65, 0x4e, 0x47, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6d, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+       0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6d, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x22,
+       0xb5, 0x01, 0x0a, 0x1a, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
+       0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x58, 0x6e, 0x12, 0x41,
+       0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6e, 0x67, 0x65, 0x6e, 0x62, 0x5f, 0x69,
+       0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69,
+       0x65, 0x73, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4e, 0x47, 0x45, 0x4e, 0x42, 0x49, 0x44,
+       0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4e, 0x67, 0x65, 0x6e, 0x62, 0x49,
+       0x64, 0x12, 0x3b, 0x0a, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x67, 0x6e, 0x62, 0x5f,
+       0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
+       0x69, 0x65, 0x73, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x47, 0x4e, 0x42, 0x49, 0x44, 0x48,
+       0x00, 0x52, 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x47, 0x6e, 0x62, 0x49, 0x64, 0x42, 0x17,
+       0x0a, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x5f,
+       0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x3d, 0x0a, 0x1a, 0x45, 0x32, 0x6e, 0x6f, 0x64,
+       0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
+       0x61, 0x63, 0x65, 0x45, 0x31, 0x12, 0x1f, 0x0a, 0x0c, 0x67, 0x4e, 0x42, 0x5f, 0x63, 0x75, 0x5f,
+       0x63, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x4e, 0x42,
+       0x43, 0x75, 0x43, 0x70, 0x49, 0x64, 0x22, 0x38, 0x0a, 0x1a, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65,
+       0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+       0x63, 0x65, 0x46, 0x31, 0x12, 0x1a, 0x0a, 0x09, 0x67, 0x4e, 0x42, 0x5f, 0x64, 0x75, 0x5f, 0x69,
+       0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x4e, 0x42, 0x44, 0x75, 0x49, 0x64,
+       0x22, 0x3c, 0x0a, 0x1a, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
+       0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x57, 0x31, 0x12, 0x1e,
+       0x0a, 0x0b, 0x6e, 0x67, 0x65, 0x6e, 0x62, 0x5f, 0x64, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20,
+       0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x67, 0x65, 0x6e, 0x62, 0x44, 0x75, 0x49, 0x64, 0x22, 0x37,
+       0x0a, 0x1a, 0x45, 0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
+       0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x31, 0x12, 0x19, 0x0a, 0x08,
+       0x6d, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+       0x6d, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x1a, 0x45, 0x32, 0x6e, 0x6f,
+       0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72,
+       0x66, 0x61, 0x63, 0x65, 0x58, 0x32, 0x12, 0x39, 0x0a, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
+       0x5f, 0x65, 0x6e, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
+       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45,
+       0x4e, 0x42, 0x49, 0x44, 0x52, 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45, 0x6e, 0x62, 0x49,
+       0x64, 0x12, 0x3f, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x67, 0x6e,
+       0x62, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6e, 0x74,
+       0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45, 0x4e, 0x47, 0x4e,
+       0x42, 0x49, 0x44, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45, 0x6e, 0x67, 0x6e, 0x62,
+       0x49, 0x64, 0x22, 0x77, 0x0a, 0x0b, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45, 0x4e, 0x42, 0x49,
+       0x44, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x6d, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
+       0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x6d, 0x6e, 0x49, 0x64,
+       0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x6e, 0x62, 0x5f, 0x69, 0x64,
+       0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a,
+       0x08, 0x65, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32,
+       0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x62, 0x54, 0x79,
+       0x70, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0x79, 0x0a, 0x0d, 0x47,
+       0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45, 0x4e, 0x47, 0x4e, 0x42, 0x49, 0x44, 0x12, 0x23, 0x0a, 0x0d,
+       0x70, 0x6c, 0x6d, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x17, 0x20,
+       0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x6d, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
+       0x79, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x6e, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28,
+       0x09, 0x52, 0x05, 0x67, 0x6e, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x67, 0x6e, 0x62, 0x5f,
+       0x74, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74,
+       0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x47, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x67,
+       0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0x77, 0x0a, 0x0b, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
+       0x47, 0x4e, 0x42, 0x49, 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x6d, 0x6e, 0x5f, 0x69, 0x64,
+       0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c,
+       0x6d, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x6e,
+       0x62, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x6e, 0x62, 0x49,
+       0x64, 0x12, 0x2c, 0x0a, 0x08, 0x67, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20,
+       0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x47,
+       0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x67, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22,
+       0x79, 0x0a, 0x0d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4e, 0x47, 0x45, 0x4e, 0x42, 0x49, 0x44,
+       0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x6d, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74,
+       0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x6d, 0x6e, 0x49, 0x64, 0x65,
+       0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x6e, 0x62, 0x5f, 0x69, 0x64, 0x18,
+       0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x08,
+       0x65, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11,
+       0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x62, 0x54, 0x79, 0x70,
+       0x65, 0x52, 0x07, 0x65, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2a, 0x56, 0x0a, 0x1c, 0x45, 0x32,
+       0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74,
+       0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x6e, 0x67,
+       0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x78, 0x6e, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x65, 0x31,
+       0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x66, 0x31, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x77, 0x31,
+       0x10, 0x05, 0x12, 0x06, 0x0a, 0x02, 0x73, 0x31, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x78, 0x32,
+       0x10, 0x07, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+       file_e2node_component_config_proto_rawDescOnce sync.Once
+       file_e2node_component_config_proto_rawDescData = file_e2node_component_config_proto_rawDesc
+)
+
+func file_e2node_component_config_proto_rawDescGZIP() []byte {
+       file_e2node_component_config_proto_rawDescOnce.Do(func() {
+               file_e2node_component_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_e2node_component_config_proto_rawDescData)
+       })
+       return file_e2node_component_config_proto_rawDescData
+}
+
+var file_e2node_component_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_e2node_component_config_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
+var file_e2node_component_config_proto_goTypes = []interface{}{
+       (E2NodeComponentInterfaceType)(0),  // 0: entities.E2nodeComponentInterfaceType
+       (*E2NodeComponentConfig)(nil),      // 1: entities.E2nodeComponentConfig
+       (*E2NodeComponentInterfaceNG)(nil), // 2: entities.E2nodeComponentInterfaceNG
+       (*E2NodeComponentInterfaceXn)(nil), // 3: entities.E2nodeComponentInterfaceXn
+       (*E2NodeComponentInterfaceE1)(nil), // 4: entities.E2nodeComponentInterfaceE1
+       (*E2NodeComponentInterfaceF1)(nil), // 5: entities.E2nodeComponentInterfaceF1
+       (*E2NodeComponentInterfaceW1)(nil), // 6: entities.E2nodeComponentInterfaceW1
+       (*E2NodeComponentInterfaceS1)(nil), // 7: entities.E2nodeComponentInterfaceS1
+       (*E2NodeComponentInterfaceX2)(nil), // 8: entities.E2nodeComponentInterfaceX2
+       (*GlobalENBID)(nil),                // 9: entities.GlobalENBID
+       (*GlobalENGNBID)(nil),              // 10: entities.GlobalENGNBID
+       (*GlobalGNBID)(nil),                // 11: entities.GlobalGNBID
+       (*GlobalNGENBID)(nil),              // 12: entities.GlobalNGENBID
+       (EnbType)(0),                       // 13: entities.EnbType
+       (GnbType)(0),                       // 14: entities.GnbType
+}
+var file_e2node_component_config_proto_depIdxs = []int32{
+       2,  // 0: entities.E2nodeComponentConfig.e2nodeComponentInterfaceTypeNG:type_name -> entities.E2nodeComponentInterfaceNG
+       3,  // 1: entities.E2nodeComponentConfig.e2nodeComponentInterfaceTypeXn:type_name -> entities.E2nodeComponentInterfaceXn
+       4,  // 2: entities.E2nodeComponentConfig.e2nodeComponentInterfaceTypeE1:type_name -> entities.E2nodeComponentInterfaceE1
+       5,  // 3: entities.E2nodeComponentConfig.e2nodeComponentInterfaceTypeF1:type_name -> entities.E2nodeComponentInterfaceF1
+       6,  // 4: entities.E2nodeComponentConfig.e2nodeComponentInterfaceTypeW1:type_name -> entities.E2nodeComponentInterfaceW1
+       7,  // 5: entities.E2nodeComponentConfig.e2nodeComponentInterfaceTypeS1:type_name -> entities.E2nodeComponentInterfaceS1
+       8,  // 6: entities.E2nodeComponentConfig.e2nodeComponentInterfaceTypeX2:type_name -> entities.E2nodeComponentInterfaceX2
+       0,  // 7: entities.E2nodeComponentConfig.e2nodeComponentInterfaceType:type_name -> entities.E2nodeComponentInterfaceType
+       12, // 8: entities.E2nodeComponentInterfaceXn.global_ngenb_id:type_name -> entities.GlobalNGENBID
+       11, // 9: entities.E2nodeComponentInterfaceXn.global_gnb_id:type_name -> entities.GlobalGNBID
+       9,  // 10: entities.E2nodeComponentInterfaceX2.global_enb_id:type_name -> entities.GlobalENBID
+       10, // 11: entities.E2nodeComponentInterfaceX2.global_engnb_id:type_name -> entities.GlobalENGNBID
+       13, // 12: entities.GlobalENBID.enb_type:type_name -> entities.EnbType
+       14, // 13: entities.GlobalENGNBID.gnb_type:type_name -> entities.GnbType
+       14, // 14: entities.GlobalGNBID.gnb_type:type_name -> entities.GnbType
+       13, // 15: entities.GlobalNGENBID.enb_type:type_name -> entities.EnbType
+       16, // [16:16] is the sub-list for method output_type
+       16, // [16:16] 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_e2node_component_config_proto_init() }
+func file_e2node_component_config_proto_init() {
+       if File_e2node_component_config_proto != nil {
+               return
+       }
+       file_nb_types_proto_init()
+       if !protoimpl.UnsafeEnabled {
+               file_e2node_component_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentConfig); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentInterfaceNG); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentInterfaceXn); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentInterfaceE1); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentInterfaceF1); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentInterfaceW1); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentInterfaceS1); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*E2NodeComponentInterfaceX2); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*GlobalENBID); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*GlobalENGNBID); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*GlobalGNBID); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_e2node_component_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+                       switch v := v.(*GlobalNGENBID); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+       }
+       file_e2node_component_config_proto_msgTypes[0].OneofWrappers = []interface{}{
+               (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeNG)(nil),
+               (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn)(nil),
+               (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeE1)(nil),
+               (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeF1)(nil),
+               (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeW1)(nil),
+               (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeS1)(nil),
+               (*E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2)(nil),
+       }
+       file_e2node_component_config_proto_msgTypes[2].OneofWrappers = []interface{}{
+               (*E2NodeComponentInterfaceXn_GlobalNgenbId)(nil),
+               (*E2NodeComponentInterfaceXn_GlobalGnbId)(nil),
+       }
+       type x struct{}
+       out := protoimpl.TypeBuilder{
+               File: protoimpl.DescBuilder{
+                       GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+                       RawDescriptor: file_e2node_component_config_proto_rawDesc,
+                       NumEnums:      1,
+                       NumMessages:   12,
+                       NumExtensions: 0,
+                       NumServices:   0,
+               },
+               GoTypes:           file_e2node_component_config_proto_goTypes,
+               DependencyIndexes: file_e2node_component_config_proto_depIdxs,
+               EnumInfos:         file_e2node_component_config_proto_enumTypes,
+               MessageInfos:      file_e2node_component_config_proto_msgTypes,
+       }.Build()
+       File_e2node_component_config_proto = out.File
+       file_e2node_component_config_proto_rawDesc = nil
+       file_e2node_component_config_proto_goTypes = nil
+       file_e2node_component_config_proto_depIdxs = nil
+}
diff --git a/entities/e2node_component_config.proto b/entities/e2node_component_config.proto
new file mode 100644 (file)
index 0000000..34ab173
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2022 Samsung Electronics Co.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * This source code is part of the near-RT RIC (RAN Intelligent Controller)
+ * platform project (RICP).
+ */
+
+
+ syntax = "proto3";
+ package entities;
+
+ import "nb_types.proto";
+
+ message E2nodeComponentConfig {
+     oneof E2nodeComponentID {
+        E2nodeComponentInterfaceNG e2nodeComponentInterfaceTypeNG = 1;
+        E2nodeComponentInterfaceXn e2nodeComponentInterfaceTypeXn = 2;
+        E2nodeComponentInterfaceE1 e2nodeComponentInterfaceTypeE1 = 3;
+        E2nodeComponentInterfaceF1 e2nodeComponentInterfaceTypeF1 = 4;
+        E2nodeComponentInterfaceW1 e2nodeComponentInterfaceTypeW1 = 5;
+        E2nodeComponentInterfaceS1 e2nodeComponentInterfaceTypeS1 = 6;
+        E2nodeComponentInterfaceX2 e2nodeComponentInterfaceTypeX2 = 7;
+     }
+     E2nodeComponentInterfaceType e2nodeComponentInterfaceType = 8;
+     bytes e2nodeComponentRequestPart = 9;
+     bytes e2nodeComponentResponsePart = 10;
+ }
+
+ message E2nodeComponentInterfaceNG {
+     string amf_name = 11;
+ }
+
+ message E2nodeComponentInterfaceXn {
+    oneof global_ng_ran_node_id {
+        GlobalNGENBID global_ngenb_id = 12;
+        GlobalGNBID global_gnb_id = 13;
+     }
+ }
+
+ message E2nodeComponentInterfaceE1 {
+    int64 gNB_cu_cp_id = 14;
+ }
+
+ message E2nodeComponentInterfaceF1 {
+    int64 gNB_du_id = 15;
+ }
+
+ message E2nodeComponentInterfaceW1 {
+     int64 ngenb_du_id = 16;
+}
+
+message E2nodeComponentInterfaceS1 {
+     string mme_name = 17;
+}
+
+message E2nodeComponentInterfaceX2 {
+    GlobalENBID global_enb_id = 18;
+    GlobalENGNBID global_engnb_id = 19;
+}
+
+message GlobalENBID {
+    string plmn_identity = 20;
+    string enb_id = 21;
+    EnbType enb_type = 22;
+}
+
+message GlobalENGNBID {
+    string plmn_identity = 23;
+    string gnb_id = 24;
+    GnbType gnb_type = 25;
+}
+
+message GlobalGNBID {
+    string plmn_identity = 26;
+    string gnb_id = 27;
+    GnbType gnb_type = 28;
+}
+
+message GlobalNGENBID {
+    string plmn_identity = 29;
+    string enb_id = 30;
+    EnbType enb_type = 31;
+}
+
+enum E2nodeComponentInterfaceType {
+    ng = 0;
+    xn = 1;
+    e1 = 2;
+    f1 = 3;
+    w1 = 5;
+    s1 = 6;
+    x2 = 7;
+}
\ No newline at end of file
index 8187eb4..ac1d171 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: enb.proto
 
@@ -302,70 +302,6 @@ func (NumberOfAntennaPorts) EnumDescriptor() ([]byte, []int) {
        return file_enb_proto_rawDescGZIP(), []int{4}
 }
 
-type EnbType int32
-
-const (
-       EnbType_UNKNOWN_ENB_TYPE   EnbType = 0
-       EnbType_MACRO_ENB          EnbType = 1
-       EnbType_HOME_ENB           EnbType = 2
-       EnbType_SHORT_MACRO_ENB    EnbType = 3
-       EnbType_LONG_MACRO_ENB     EnbType = 4
-       EnbType_MACRO_NG_ENB       EnbType = 5
-       EnbType_SHORT_MACRO_NG_ENB EnbType = 6
-       EnbType_LONG_MACRO_NG_ENB  EnbType = 7
-)
-
-// Enum value maps for EnbType.
-var (
-       EnbType_name = map[int32]string{
-               0: "UNKNOWN_ENB_TYPE",
-               1: "MACRO_ENB",
-               2: "HOME_ENB",
-               3: "SHORT_MACRO_ENB",
-               4: "LONG_MACRO_ENB",
-               5: "MACRO_NG_ENB",
-               6: "SHORT_MACRO_NG_ENB",
-               7: "LONG_MACRO_NG_ENB",
-       }
-       EnbType_value = map[string]int32{
-               "UNKNOWN_ENB_TYPE":   0,
-               "MACRO_ENB":          1,
-               "HOME_ENB":           2,
-               "SHORT_MACRO_ENB":    3,
-               "LONG_MACRO_ENB":     4,
-               "MACRO_NG_ENB":       5,
-               "SHORT_MACRO_NG_ENB": 6,
-               "LONG_MACRO_NG_ENB":  7,
-       }
-)
-
-func (x EnbType) Enum() *EnbType {
-       p := new(EnbType)
-       *p = x
-       return p
-}
-
-func (x EnbType) String() string {
-       return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (EnbType) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[5].Descriptor()
-}
-
-func (EnbType) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[5]
-}
-
-func (x EnbType) Number() protoreflect.EnumNumber {
-       return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use EnbType.Descriptor instead.
-func (EnbType) EnumDescriptor() ([]byte, []int) {
-       return file_enb_proto_rawDescGZIP(), []int{5}
-}
-
 type SubframeAssignment int32
 
 const (
@@ -414,11 +350,11 @@ func (x SubframeAssignment) String() string {
 }
 
 func (SubframeAssignment) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[6].Descriptor()
+       return file_enb_proto_enumTypes[5].Descriptor()
 }
 
 func (SubframeAssignment) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[6]
+       return &file_enb_proto_enumTypes[5]
 }
 
 func (x SubframeAssignment) Number() protoreflect.EnumNumber {
@@ -427,7 +363,7 @@ func (x SubframeAssignment) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use SubframeAssignment.Descriptor instead.
 func (SubframeAssignment) EnumDescriptor() ([]byte, []int) {
-       return file_enb_proto_rawDescGZIP(), []int{6}
+       return file_enb_proto_rawDescGZIP(), []int{5}
 }
 
 type CyclicPrefix int32
@@ -463,11 +399,11 @@ func (x CyclicPrefix) String() string {
 }
 
 func (CyclicPrefix) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[7].Descriptor()
+       return file_enb_proto_enumTypes[6].Descriptor()
 }
 
 func (CyclicPrefix) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[7]
+       return &file_enb_proto_enumTypes[6]
 }
 
 func (x CyclicPrefix) Number() protoreflect.EnumNumber {
@@ -476,7 +412,7 @@ func (x CyclicPrefix) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use CyclicPrefix.Descriptor instead.
 func (CyclicPrefix) EnumDescriptor() ([]byte, []int) {
-       return file_enb_proto_rawDescGZIP(), []int{7}
+       return file_enb_proto_rawDescGZIP(), []int{6}
 }
 
 type TransmissionBandwidth int32
@@ -527,11 +463,11 @@ func (x TransmissionBandwidth) String() string {
 }
 
 func (TransmissionBandwidth) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[8].Descriptor()
+       return file_enb_proto_enumTypes[7].Descriptor()
 }
 
 func (TransmissionBandwidth) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[8]
+       return &file_enb_proto_enumTypes[7]
 }
 
 func (x TransmissionBandwidth) Number() protoreflect.EnumNumber {
@@ -540,7 +476,7 @@ func (x TransmissionBandwidth) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use TransmissionBandwidth.Descriptor instead.
 func (TransmissionBandwidth) EnumDescriptor() ([]byte, []int) {
-       return file_enb_proto_rawDescGZIP(), []int{8}
+       return file_enb_proto_rawDescGZIP(), []int{7}
 }
 
 type Eutra_Mode int32
@@ -576,11 +512,11 @@ func (x Eutra_Mode) String() string {
 }
 
 func (Eutra_Mode) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[9].Descriptor()
+       return file_enb_proto_enumTypes[8].Descriptor()
 }
 
 func (Eutra_Mode) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[9]
+       return &file_enb_proto_enumTypes[8]
 }
 
 func (x Eutra_Mode) Number() protoreflect.EnumNumber {
@@ -646,11 +582,11 @@ func (x SpecialSubframe_Patterns) String() string {
 }
 
 func (SpecialSubframe_Patterns) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[10].Descriptor()
+       return file_enb_proto_enumTypes[9].Descriptor()
 }
 
 func (SpecialSubframe_Patterns) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[10]
+       return &file_enb_proto_enumTypes[9]
 }
 
 func (x SpecialSubframe_Patterns) Number() protoreflect.EnumNumber {
@@ -719,11 +655,11 @@ func (x AdditionalSpecialSubframe_Patterns) String() string {
 }
 
 func (AdditionalSpecialSubframe_Patterns) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[11].Descriptor()
+       return file_enb_proto_enumTypes[10].Descriptor()
 }
 
 func (AdditionalSpecialSubframe_Patterns) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[11]
+       return &file_enb_proto_enumTypes[10]
 }
 
 func (x AdditionalSpecialSubframe_Patterns) Number() protoreflect.EnumNumber {
@@ -765,11 +701,11 @@ func (x AdditionalSpecialSubframePatterns_Extension) String() string {
 }
 
 func (AdditionalSpecialSubframePatterns_Extension) Descriptor() protoreflect.EnumDescriptor {
-       return file_enb_proto_enumTypes[12].Descriptor()
+       return file_enb_proto_enumTypes[11].Descriptor()
 }
 
 func (AdditionalSpecialSubframePatterns_Extension) Type() protoreflect.EnumType {
-       return &file_enb_proto_enumTypes[12]
+       return &file_enb_proto_enumTypes[11]
 }
 
 func (x AdditionalSpecialSubframePatterns_Extension) Number() protoreflect.EnumNumber {
@@ -786,9 +722,10 @@ type Enb struct {
        sizeCache     protoimpl.SizeCache
        unknownFields protoimpl.UnknownFields
 
-       EnbType     EnbType           `protobuf:"varint,1,opt,name=enb_type,json=enbType,proto3,enum=entities.EnbType" json:"enb_type,omitempty"`
-       ServedCells []*ServedCellInfo `protobuf:"bytes,2,rep,name=served_cells,json=servedCells,proto3" json:"served_cells,omitempty"`
-       GuGroupIds  []string          `protobuf:"bytes,3,rep,name=gu_group_ids,json=guGroupIds,proto3" json:"gu_group_ids,omitempty"`
+       EnbType     EnbType                  `protobuf:"varint,1,opt,name=enb_type,json=enbType,proto3,enum=entities.EnbType" json:"enb_type,omitempty"`
+       ServedCells []*ServedCellInfo        `protobuf:"bytes,2,rep,name=served_cells,json=servedCells,proto3" json:"served_cells,omitempty"`
+       GuGroupIds  []string                 `protobuf:"bytes,3,rep,name=gu_group_ids,json=guGroupIds,proto3" json:"gu_group_ids,omitempty"`
+       NodeConfigs []*E2NodeComponentConfig `protobuf:"bytes,4,rep,name=node_configs,json=nodeConfigs,proto3" json:"node_configs,omitempty"`
 }
 
 func (x *Enb) Reset() {
@@ -844,6 +781,13 @@ func (x *Enb) GetGuGroupIds() []string {
        return nil
 }
 
+func (x *Enb) GetNodeConfigs() []*E2NodeComponentConfig {
+       if x != nil {
+               return x.NodeConfigs
+       }
+       return nil
+}
+
 type ServedCellInfo struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
@@ -1792,321 +1736,317 @@ var file_enb_proto_rawDesc = []byte{
        0x0a, 0x09, 0x65, 0x6e, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x65, 0x6e, 0x74,
        0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
        0x6c, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x03, 0x45, 0x6e, 0x62,
-       0x12, 0x2c, 0x0a, 0x08, 0x65, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
-       0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x6e,
-       0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b,
-       0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02,
-       0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
-       0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b,
-       0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x67,
-       0x75, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
-       0x09, 0x52, 0x0a, 0x67, 0x75, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x22, 0xc8, 0x07,
-       0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
-       0x12, 0x10, 0x0a, 0x03, 0x70, 0x63, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70,
-       0x63, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
-       0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74,
-       0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x63, 0x12, 0x27, 0x0a,
-       0x0f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x6d, 0x6e, 0x73,
-       0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73,
-       0x74, 0x50, 0x6c, 0x6d, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65,
-       0x5f, 0x65, 0x75, 0x74, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
-       0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x6f,
-       0x69, 0x63, 0x65, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x63, 0x68,
-       0x6f, 0x69, 0x63, 0x65, 0x45, 0x75, 0x74, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a,
-       0x0a, 0x65, 0x75, 0x74, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
-       0x0e, 0x32, 0x14, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x75, 0x74,
-       0x72, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x65, 0x75, 0x74, 0x72, 0x61, 0x4d, 0x6f,
-       0x64, 0x65, 0x12, 0x55, 0x0a, 0x17, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f,
-       0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x07, 0x20,
-       0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e,
-       0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x50, 0x6f,
-       0x72, 0x74, 0x73, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x6e, 0x74,
-       0x65, 0x6e, 0x6e, 0x61, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x13, 0x70, 0x72, 0x61,
-       0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-       0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
-       0x73, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
-       0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x70, 0x72, 0x61, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-       0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x14, 0x6d, 0x62, 0x73, 0x66,
-       0x6e, 0x5f, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73,
-       0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
-       0x73, 0x2e, 0x4d, 0x62, 0x73, 0x66, 0x6e, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x52,
-       0x12, 0x6d, 0x62, 0x73, 0x66, 0x6e, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e,
-       0x66, 0x6f, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x63, 0x73, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20,
-       0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x73, 0x67, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x6d, 0x62,
-       0x6d, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f,
-       0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09,
-       0x52, 0x19, 0x6d, 0x62, 0x6d, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x65,
-       0x61, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d,
-       0x75, 0x6c, 0x74, 0x69, 0x62, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x0c,
-       0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x62, 0x61, 0x6e, 0x64, 0x49,
-       0x6e, 0x66, 0x6f, 0x73, 0x12, 0x64, 0x0a, 0x1c, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x62, 0x61, 0x6e,
-       0x64, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x6f,
-       0x72, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x74,
-       0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, 0x72, 0x65, 0x71, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x6e,
-       0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52,
-       0x19, 0x66, 0x72, 0x65, 0x71, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74,
-       0x6f, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x4e, 0x0a, 0x14, 0x62, 0x61,
-       0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f,
-       0x73, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
-       0x69, 0x65, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x65, 0x64,
-       0x75, 0x63, 0x65, 0x64, 0x53, 0x49, 0x52, 0x12, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74,
-       0x68, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x53, 0x69, 0x12, 0x47, 0x0a, 0x0f, 0x6e, 0x65,
-       0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x0f, 0x20,
-       0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e,
-       0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
-       0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e,
-       0x66, 0x6f, 0x73, 0x12, 0x63, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
-       0x6c, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
-       0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x65,
-       0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x19, 0x61,
-       0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66,
-       0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0f, 0x43, 0x68, 0x6f, 0x69,
-       0x63, 0x65, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x03, 0x66,
-       0x64, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
-       0x69, 0x65, 0x73, 0x2e, 0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x66, 0x64, 0x64,
-       0x12, 0x23, 0x0a, 0x03, 0x74, 0x64, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
-       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f,
-       0x52, 0x03, 0x74, 0x64, 0x64, 0x22, 0x2e, 0x0a, 0x05, 0x45, 0x75, 0x74, 0x72, 0x61, 0x22, 0x25,
-       0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
-       0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x44, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03,
-       0x54, 0x44, 0x44, 0x10, 0x02, 0x22, 0x67, 0x0a, 0x14, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f,
-       0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
-       0x04, 0x65, 0x63, 0x67, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x63, 0x67,
-       0x69, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x63, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03,
-       0x70, 0x63, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e, 0x18, 0x03,
-       0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x12, 0x10, 0x0a, 0x03,
-       0x74, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x63, 0x22, 0xc6,
-       0x02, 0x0a, 0x0d, 0x4d, 0x62, 0x73, 0x66, 0x6e, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65,
-       0x12, 0x66, 0x0a, 0x1c, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x61,
-       0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64,
-       0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
-       0x73, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f,
-       0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x1a, 0x72, 0x61,
-       0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x72, 0x61, 0x64, 0x69,
-       0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
-       0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a,
-       0x72, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
-       0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x73, 0x75,
-       0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
-       0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d,
-       0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x18, 0x73,
-       0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e,
-       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d,
-       0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52,
-       0x16, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74,
-       0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63,
-       0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e,
-       0x0a, 0x13, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f,
-       0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x6f, 0x6f,
-       0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4d,
-       0x0a, 0x23, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
-       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x20, 0x7a, 0x65, 0x72,
-       0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x6f, 0x6e, 0x65,
-       0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a,
-       0x0f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67,
-       0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x69, 0x67, 0x68, 0x53, 0x70, 0x65, 0x65,
-       0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x72, 0x61, 0x63, 0x68, 0x5f, 0x66,
-       0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
-       0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x70, 0x72, 0x61, 0x63, 0x68, 0x46, 0x72, 0x65, 0x71,
-       0x75, 0x65, 0x6e, 0x63, 0x79, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x70,
-       0x72, 0x61, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17,
-       0x70, 0x72, 0x61, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x9d, 0x04, 0x0a, 0x07, 0x54, 0x64, 0x64, 0x49,
-       0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e, 0x18, 0x01,
-       0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x12, 0x56, 0x0a, 0x16,
-       0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e,
-       0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x65,
-       0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73,
-       0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x15, 0x74,
-       0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77,
-       0x69, 0x64, 0x74, 0x68, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65,
-       0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
-       0x0e, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62,
-       0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52,
-       0x12, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
-       0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x15, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73,
-       0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01,
-       0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x70,
-       0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66,
-       0x6f, 0x52, 0x13, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61,
-       0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x70, 0x0a, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,
-       0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62,
-       0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
-       0x32, 0x27, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69,
-       0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62,
-       0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x1d, 0x61, 0x64, 0x64, 0x69, 0x74,
-       0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66,
-       0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x8c, 0x01, 0x0a, 0x2a, 0x61, 0x64, 0x64,
+       0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x65, 0x32, 0x6e, 0x6f, 0x64, 0x65,
+       0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+       0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65,
+       0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x03, 0x45, 0x6e, 0x62, 0x12,
+       0x2c, 0x0a, 0x08, 0x65, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+       0x0e, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x62,
+       0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a,
+       0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20,
+       0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53,
+       0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73,
+       0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x67, 0x75,
+       0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
+       0x52, 0x0a, 0x67, 0x75, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x0c,
+       0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03,
+       0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x32,
+       0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e,
+       0x66, 0x69, 0x67, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73,
+       0x22, 0xc8, 0x07, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x49,
+       0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x63, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
+       0x52, 0x03, 0x70, 0x63, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64,
+       0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x10,
+       0x0a, 0x03, 0x74, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x63,
+       0x12, 0x27, 0x0a, 0x0f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6c,
+       0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x72, 0x6f, 0x61, 0x64,
+       0x63, 0x61, 0x73, 0x74, 0x50, 0x6c, 0x6d, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x68, 0x6f,
+       0x69, 0x63, 0x65, 0x5f, 0x65, 0x75, 0x74, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05,
+       0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
+       0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4d, 0x6f, 0x64, 0x65, 0x52,
+       0x0f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x45, 0x75, 0x74, 0x72, 0x61, 0x4d, 0x6f, 0x64, 0x65,
+       0x12, 0x33, 0x0a, 0x0a, 0x65, 0x75, 0x74, 0x72, 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06,
+       0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
+       0x45, 0x75, 0x74, 0x72, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x65, 0x75, 0x74, 0x72,
+       0x61, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x55, 0x0a, 0x17, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f,
+       0x6f, 0x66, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73,
+       0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
+       0x73, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e,
+       0x61, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66,
+       0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x13,
+       0x70, 0x72, 0x61, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
+       0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69,
+       0x74, 0x69, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+       0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x70, 0x72, 0x61, 0x63, 0x68, 0x43, 0x6f,
+       0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x14, 0x6d,
+       0x62, 0x73, 0x66, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e,
+       0x66, 0x6f, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6e, 0x74, 0x69,
+       0x74, 0x69, 0x65, 0x73, 0x2e, 0x4d, 0x62, 0x73, 0x66, 0x6e, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61,
+       0x6d, 0x65, 0x52, 0x12, 0x6d, 0x62, 0x73, 0x66, 0x6e, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d,
+       0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x63, 0x73, 0x67, 0x5f, 0x69, 0x64,
+       0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x73, 0x67, 0x49, 0x64, 0x12, 0x3f, 0x0a,
+       0x1c, 0x6d, 0x62, 0x6d, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x72,
+       0x65, 0x61, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20,
+       0x03, 0x28, 0x09, 0x52, 0x19, 0x6d, 0x62, 0x6d, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+       0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27,
+       0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x62, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
+       0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x62, 0x61,
+       0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x64, 0x0a, 0x1c, 0x66, 0x72, 0x65, 0x71, 0x5f,
+       0x62, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x70,
+       0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e,
+       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, 0x72, 0x65, 0x71, 0x42, 0x61, 0x6e,
+       0x64, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69,
+       0x74, 0x79, 0x52, 0x19, 0x66, 0x72, 0x65, 0x71, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x69,
+       0x63, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x4e, 0x0a,
+       0x14, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63,
+       0x65, 0x64, 0x5f, 0x73, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68,
+       0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x53, 0x49, 0x52, 0x12, 0x62, 0x61, 0x6e, 0x64, 0x77,
+       0x69, 0x64, 0x74, 0x68, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x53, 0x69, 0x12, 0x47, 0x0a,
+       0x0f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73,
+       0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
+       0x73, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72,
+       0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75,
+       0x72, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x63, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,
+       0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+       0x6c, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+       0x52, 0x19, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x65, 0x6c, 0x6c,
+       0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0f, 0x43,
+       0x68, 0x6f, 0x69, 0x63, 0x65, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23,
+       0x0a, 0x03, 0x66, 0x64, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03,
+       0x66, 0x64, 0x64, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x64, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+       0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, 0x64, 0x64, 0x49,
+       0x6e, 0x66, 0x6f, 0x52, 0x03, 0x74, 0x64, 0x64, 0x22, 0x2e, 0x0a, 0x05, 0x45, 0x75, 0x74, 0x72,
+       0x61, 0x22, 0x25, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
+       0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x44, 0x44, 0x10, 0x01, 0x12,
+       0x07, 0x0a, 0x03, 0x54, 0x44, 0x44, 0x10, 0x02, 0x22, 0x67, 0x0a, 0x14, 0x4e, 0x65, 0x69, 0x67,
+       0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+       0x12, 0x12, 0x0a, 0x04, 0x65, 0x63, 0x67, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+       0x65, 0x63, 0x67, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x63, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28,
+       0x0d, 0x52, 0x03, 0x70, 0x63, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x63,
+       0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x12,
+       0x10, 0x0a, 0x03, 0x74, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61,
+       0x63, 0x22, 0xc6, 0x02, 0x0a, 0x0d, 0x4d, 0x62, 0x73, 0x66, 0x6e, 0x53, 0x75, 0x62, 0x66, 0x72,
+       0x61, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x1c, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d,
+       0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72,
+       0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x74, 0x69,
+       0x74, 0x69, 0x65, 0x73, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41,
+       0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52,
+       0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x40, 0x0a, 0x1c, 0x72,
+       0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
+       0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+       0x0d, 0x52, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c,
+       0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2f, 0x0a,
+       0x13, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
+       0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x66,
+       0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a,
+       0x0a, 0x18, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
+       0x32, 0x20, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x66,
+       0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
+       0x70, 0x65, 0x52, 0x16, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f,
+       0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x12, 0x50,
+       0x72, 0x61, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+       0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
+       0x63, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11,
+       0x72, 0x6f, 0x6f, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65,
+       0x78, 0x12, 0x4d, 0x0a, 0x23, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+       0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x20,
+       0x7a, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5a,
+       0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+       0x12, 0x26, 0x0a, 0x0f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x66,
+       0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x69, 0x67, 0x68, 0x53,
+       0x70, 0x65, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x72, 0x61, 0x63,
+       0x68, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6f, 0x66, 0x66, 0x73,
+       0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x70, 0x72, 0x61, 0x63, 0x68, 0x46,
+       0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3a,
+       0x0a, 0x19, 0x70, 0x72, 0x61, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28,
+       0x0d, 0x52, 0x17, 0x70, 0x72, 0x61, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x9d, 0x04, 0x0a, 0x07, 0x54,
+       0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x63,
+       0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x12,
+       0x56, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
+       0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
+       0x1f, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
+       0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68,
+       0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61,
+       0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x66, 0x72,
+       0x61, 0x6d, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03,
+       0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
+       0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65,
+       0x6e, 0x74, 0x52, 0x12, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x73, 0x69,
+       0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x15, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61,
+       0x6c, 0x5f, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
+       0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
+       0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65,
+       0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62,
+       0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x70, 0x0a, 0x20, 0x61, 0x64, 0x64,
        0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f,
-       0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-       0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e,
-       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,
-       0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61,
-       0x6d, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
-       0x26, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69,
-       0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
-       0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x02, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69,
+       0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20,
+       0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41,
+       0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c,
+       0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x1d, 0x61, 0x64,
+       0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53,
+       0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x8c, 0x01, 0x0a, 0x2a,
+       0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69,
+       0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65,
+       0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
+       0x32, 0x30, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69,
        0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62,
        0x66, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
-       0x66, 0x6f, 0x12, 0x99, 0x01, 0x0a, 0x2e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
-       0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x66, 0x72, 0x61,
-       0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65,
-       0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x65, 0x6e,
-       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
-       0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65,
-       0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-       0x6f, 0x6e, 0x52, 0x2a, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70,
-       0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x74,
-       0x74, 0x65, 0x72, 0x6e, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40,
-       0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f,
-       0x64, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
-       0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
-       0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x6c,
-       0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69,
-       0x78, 0x5f, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x74,
-       0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66,
-       0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
-       0x55, 0x6c, 0x22, 0xa2, 0x02, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+       0x66, 0x6f, 0x52, 0x26, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70,
+       0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x74,
+       0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x02, 0x0a, 0x26, 0x41,
+       0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c,
+       0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+       0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x99, 0x01, 0x0a, 0x2e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,
+       0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62,
+       0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x5f, 0x65,
+       0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35,
+       0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69,
+       0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72,
+       0x61, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65,
+       0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x2a, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
        0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65,
-       0x49, 0x6e, 0x66, 0x6f, 0x12, 0x7d, 0x0a, 0x24, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
-       0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x66, 0x72,
-       0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
-       0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64,
-       0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53,
-       0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73,
-       0x52, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63,
-       0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65,
-       0x72, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72,
-       0x65, 0x66, 0x69, 0x78, 0x5f, 0x64, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
+       0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+       0x6e, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x66,
+       0x69, 0x78, 0x5f, 0x64, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65,
+       0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69,
+       0x78, 0x44, 0x6c, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72,
+       0x65, 0x66, 0x69, 0x78, 0x5f, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
        0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50,
        0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65,
-       0x66, 0x69, 0x78, 0x44, 0x6c, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f,
-       0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
-       0x16, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69,
-       0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50,
-       0x72, 0x65, 0x66, 0x69, 0x78, 0x55, 0x6c, 0x22, 0xfd, 0x01, 0x0a, 0x07, 0x46, 0x64, 0x64, 0x49,
-       0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e,
-       0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x75, 0x6c, 0x65, 0x61, 0x72, 0x46, 0x63, 0x6e,
-       0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e, 0x18, 0x02, 0x20,
-       0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x6c, 0x65, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x12, 0x5b, 0x0a,
-       0x19, 0x75, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
-       0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
+       0x66, 0x69, 0x78, 0x55, 0x6c, 0x22, 0xa2, 0x02, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69,
+       0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72,
+       0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x7d, 0x0a, 0x24, 0x61, 0x64, 0x64, 0x69, 0x74,
+       0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75,
+       0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18,
+       0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
+       0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69,
+       0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65,
+       0x72, 0x6e, 0x73, 0x52, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53,
+       0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x50, 0x61,
+       0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63,
+       0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x64, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
+       0x32, 0x16, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c,
+       0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63,
+       0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44, 0x6c, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c,
+       0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01,
+       0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79,
+       0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c,
+       0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x55, 0x6c, 0x22, 0xfd, 0x01, 0x0a, 0x07, 0x46,
+       0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6c, 0x65, 0x61, 0x72, 0x5f,
+       0x66, 0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x75, 0x6c, 0x65, 0x61, 0x72,
+       0x46, 0x63, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e,
+       0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x6c, 0x65, 0x61, 0x72, 0x46, 0x63, 0x6e,
+       0x12, 0x5b, 0x0a, 0x19, 0x75, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73,
+       0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20,
+       0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54,
+       0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77,
+       0x69, 0x64, 0x74, 0x68, 0x52, 0x17, 0x75, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73,
+       0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x5b, 0x0a,
+       0x19, 0x64, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+       0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
        0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e,
        0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74,
-       0x68, 0x52, 0x17, 0x75, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
-       0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x5b, 0x0a, 0x19, 0x64, 0x6c,
-       0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61,
-       0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e,
-       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69,
-       0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x17,
-       0x64, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61,
-       0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xf9, 0x01, 0x0a, 0x13, 0x53, 0x70, 0x65, 0x63,
-       0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
-       0x5e, 0x0a, 0x19, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x66, 0x72,
-       0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
-       0x28, 0x0e, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x70,
-       0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x50, 0x61,
-       0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x52, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53,
-       0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12,
-       0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
-       0x5f, 0x64, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6e, 0x74, 0x69,
-       0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69,
-       0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x44,
-       0x6c, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x66,
-       0x69, 0x78, 0x5f, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6e,
-       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65,
-       0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69,
-       0x78, 0x55, 0x6c, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53,
-       0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x74, 0x65,
-       0x72, 0x6e, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
-       0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x30, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53,
-       0x50, 0x31, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x32, 0x10, 0x03, 0x12, 0x08,
-       0x0a, 0x04, 0x53, 0x53, 0x50, 0x33, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x34,
-       0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x35, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04,
-       0x53, 0x53, 0x50, 0x36, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x37, 0x10, 0x08,
-       0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x38, 0x10, 0x09, 0x22, 0x98, 0x01, 0x0a, 0x19, 0x41,
-       0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c,
-       0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x74,
-       0x65, 0x72, 0x6e, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
-       0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x30, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53,
-       0x53, 0x50, 0x31, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x32, 0x10, 0x03, 0x12,
-       0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x33, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50,
-       0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x35, 0x10, 0x06, 0x12, 0x08, 0x0a,
-       0x04, 0x53, 0x53, 0x50, 0x36, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x37, 0x10,
-       0x08, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x38, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x53,
-       0x53, 0x50, 0x39, 0x10, 0x0a, 0x22, 0x48, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,
-       0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61,
-       0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x22, 0x23, 0x0a, 0x09, 0x45, 0x78,
-       0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
-       0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x53, 0x50, 0x31, 0x30, 0x10, 0x01, 0x2a,
-       0x6b, 0x0a, 0x19, 0x46, 0x72, 0x65, 0x71, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x69, 0x63,
-       0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x24,
-       0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x5f, 0x42, 0x41, 0x4e,
-       0x44, 0x5f, 0x49, 0x4e, 0x44, 0x49, 0x43, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x52, 0x49, 0x4f,
-       0x52, 0x49, 0x54, 0x59, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x52,
-       0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x42,
-       0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x45, 0x0a, 0x12,
-       0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64,
-       0x53, 0x49, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x41,
-       0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x52, 0x45, 0x44, 0x55, 0x43, 0x45, 0x44, 0x5f,
-       0x53, 0x49, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45,
-       0x44, 0x10, 0x01, 0x2a, 0x5d, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41,
-       0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a,
-       0x20, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x55, 0x42, 0x46, 0x52, 0x41, 0x4d,
-       0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50,
-       0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x45, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45,
-       0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x4f, 0x55, 0x52, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45,
-       0x10, 0x02, 0x2a, 0x78, 0x0a, 0x1a, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65,
-       0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
-       0x12, 0x28, 0x0a, 0x24, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x41, 0x44, 0x49,
-       0x4f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f,
-       0x4e, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x31,
-       0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x32, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x34,
-       0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x38, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x31,
-       0x36, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x33, 0x32, 0x10, 0x06, 0x2a, 0x56, 0x0a, 0x14,
-       0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x50,
-       0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
-       0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x41, 0x4e, 0x54, 0x45, 0x4e, 0x4e,
-       0x41, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x31,
-       0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x32, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x41,
-       0x4e, 0x34, 0x10, 0x03, 0x2a, 0xa6, 0x01, 0x0a, 0x07, 0x45, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65,
-       0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x4e, 0x42, 0x5f,
-       0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f,
-       0x45, 0x4e, 0x42, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x4f, 0x4d, 0x45, 0x5f, 0x45, 0x4e,
-       0x42, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x43,
-       0x52, 0x4f, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x4e, 0x47,
-       0x5f, 0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c,
-       0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x05, 0x12, 0x16,
-       0x0a, 0x12, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x4e, 0x47,
-       0x5f, 0x45, 0x4e, 0x42, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x4d,
-       0x41, 0x43, 0x52, 0x4f, 0x5f, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x07, 0x2a, 0x74, 0x0a,
-       0x12, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
-       0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53,
-       0x55, 0x42, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45,
-       0x4e, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x30, 0x10, 0x01, 0x12, 0x07, 0x0a,
-       0x03, 0x53, 0x41, 0x31, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x32, 0x10, 0x03, 0x12,
-       0x07, 0x0a, 0x03, 0x53, 0x41, 0x33, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x34, 0x10,
-       0x05, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x35, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41,
-       0x36, 0x10, 0x07, 0x2a, 0x43, 0x0a, 0x0c, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65,
-       0x66, 0x69, 0x78, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43,
-       0x59, 0x43, 0x4c, 0x49, 0x43, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x10, 0x00, 0x12, 0x0a,
-       0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58,
-       0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x80, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61,
-       0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
-       0x74, 0x68, 0x12, 0x22, 0x0a, 0x1e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x52,
-       0x41, 0x4e, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57,
-       0x49, 0x44, 0x54, 0x48, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x57, 0x36, 0x10, 0x01, 0x12,
-       0x08, 0x0a, 0x04, 0x42, 0x57, 0x31, 0x35, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x57, 0x32,
-       0x35, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x57, 0x35, 0x30, 0x10, 0x04, 0x12, 0x08, 0x0a,
-       0x04, 0x42, 0x57, 0x37, 0x35, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x57, 0x31, 0x30, 0x30,
-       0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x57, 0x31, 0x10, 0x07, 0x62, 0x06, 0x70, 0x72, 0x6f,
-       0x74, 0x6f, 0x33,
+       0x68, 0x52, 0x17, 0x64, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+       0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xf9, 0x01, 0x0a, 0x13, 0x53,
+       0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x49, 0x6e,
+       0x66, 0x6f, 0x12, 0x5e, 0x0a, 0x19, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75,
+       0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18,
+       0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
+       0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65,
+       0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x52, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69,
+       0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72,
+       0x6e, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65,
+       0x66, 0x69, 0x78, 0x5f, 0x64, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65,
+       0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72,
+       0x65, 0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66,
+       0x69, 0x78, 0x44, 0x6c, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x5f, 0x70,
+       0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16,
+       0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63,
+       0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72,
+       0x65, 0x66, 0x69, 0x78, 0x55, 0x6c, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x53, 0x70, 0x65, 0x63, 0x69,
+       0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x08, 0x50, 0x61,
+       0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
+       0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x30, 0x10, 0x01, 0x12, 0x08, 0x0a,
+       0x04, 0x53, 0x53, 0x50, 0x31, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x32, 0x10,
+       0x03, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x33, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x53,
+       0x53, 0x50, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x35, 0x10, 0x06, 0x12,
+       0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x36, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50,
+       0x37, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x38, 0x10, 0x09, 0x22, 0x98, 0x01,
+       0x0a, 0x19, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63,
+       0x69, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x08, 0x50,
+       0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+       0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x30, 0x10, 0x01, 0x12, 0x08,
+       0x0a, 0x04, 0x53, 0x53, 0x50, 0x31, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x32,
+       0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x33, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04,
+       0x53, 0x53, 0x50, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x35, 0x10, 0x06,
+       0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x36, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53,
+       0x50, 0x37, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x53, 0x50, 0x38, 0x10, 0x09, 0x12, 0x08,
+       0x0a, 0x04, 0x53, 0x53, 0x50, 0x39, 0x10, 0x0a, 0x22, 0x48, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x69,
+       0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x62,
+       0x66, 0x72, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x22, 0x23, 0x0a,
+       0x09, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
+       0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x53, 0x50, 0x31, 0x30,
+       0x10, 0x01, 0x2a, 0x6b, 0x0a, 0x19, 0x46, 0x72, 0x65, 0x71, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x6e,
+       0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12,
+       0x28, 0x0a, 0x24, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x5f,
+       0x42, 0x41, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x44, 0x49, 0x43, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x50,
+       0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x54,
+       0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f,
+       0x0a, 0x0b, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a,
+       0x45, 0x0a, 0x12, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x65, 0x64, 0x75,
+       0x63, 0x65, 0x64, 0x53, 0x49, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
+       0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x52, 0x45, 0x44, 0x55, 0x43,
+       0x45, 0x44, 0x5f, 0x53, 0x49, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44,
+       0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x5d, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x66, 0x72, 0x61,
+       0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
+       0x12, 0x24, 0x0a, 0x20, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x55, 0x42, 0x46,
+       0x52, 0x41, 0x4d, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
+       0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x45, 0x5f, 0x46, 0x52,
+       0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x4f, 0x55, 0x52, 0x5f, 0x46, 0x52,
+       0x41, 0x4d, 0x45, 0x10, 0x02, 0x2a, 0x78, 0x0a, 0x1a, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x66, 0x72,
+       0x61, 0x6d, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72,
+       0x69, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x24, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52,
+       0x41, 0x44, 0x49, 0x4f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x43, 0x41,
+       0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a,
+       0x02, 0x4e, 0x31, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x32, 0x10, 0x02, 0x12, 0x06, 0x0a,
+       0x02, 0x4e, 0x34, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x38, 0x10, 0x04, 0x12, 0x07, 0x0a,
+       0x03, 0x4e, 0x31, 0x36, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x33, 0x32, 0x10, 0x06, 0x2a,
+       0x56, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x41, 0x6e, 0x74, 0x65, 0x6e,
+       0x6e, 0x61, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+       0x57, 0x4e, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4f, 0x46, 0x5f, 0x41, 0x4e, 0x54,
+       0x45, 0x4e, 0x4e, 0x41, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
+       0x41, 0x4e, 0x31, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x32, 0x10, 0x02, 0x12, 0x07,
+       0x0a, 0x03, 0x41, 0x4e, 0x34, 0x10, 0x03, 0x2a, 0x74, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x66, 0x72,
+       0x61, 0x6d, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a,
+       0x1b, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x55, 0x42, 0x46, 0x52, 0x41, 0x4d,
+       0x45, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x07,
+       0x0a, 0x03, 0x53, 0x41, 0x30, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x31, 0x10, 0x02,
+       0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x32, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x33,
+       0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x34, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x53,
+       0x41, 0x35, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x36, 0x10, 0x07, 0x2a, 0x43, 0x0a,
+       0x0c, 0x43, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x19, 0x0a,
+       0x15, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x59, 0x43, 0x4c, 0x49, 0x43, 0x5f,
+       0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d,
+       0x41, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44,
+       0x10, 0x02, 0x2a, 0x80, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73,
+       0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x1e,
+       0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x4d, 0x49, 0x53,
+       0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x10, 0x00,
+       0x12, 0x07, 0x0a, 0x03, 0x42, 0x57, 0x36, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x57, 0x31,
+       0x35, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x57, 0x32, 0x35, 0x10, 0x03, 0x12, 0x08, 0x0a,
+       0x04, 0x42, 0x57, 0x35, 0x30, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x57, 0x37, 0x35, 0x10,
+       0x05, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x57, 0x31, 0x30, 0x30, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03,
+       0x42, 0x57, 0x31, 0x10, 0x07, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -2121,7 +2061,7 @@ func file_enb_proto_rawDescGZIP() []byte {
        return file_enb_proto_rawDescData
 }
 
-var file_enb_proto_enumTypes = make([]protoimpl.EnumInfo, 13)
+var file_enb_proto_enumTypes = make([]protoimpl.EnumInfo, 12)
 var file_enb_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
 var file_enb_proto_goTypes = []interface{}{
        (FreqBandIndicatorPriority)(0),                   // 0: entities.FreqBandIndicatorPriority
@@ -2129,68 +2069,70 @@ var file_enb_proto_goTypes = []interface{}{
        (SubframeAllocationType)(0),                      // 2: entities.SubframeAllocationType
        (RadioframeAllocationPeriod)(0),                  // 3: entities.RadioframeAllocationPeriod
        (NumberOfAntennaPorts)(0),                        // 4: entities.NumberOfAntennaPorts
-       (EnbType)(0),                                     // 5: entities.EnbType
-       (SubframeAssignment)(0),                          // 6: entities.SubframeAssignment
-       (CyclicPrefix)(0),                                // 7: entities.CyclicPrefix
-       (TransmissionBandwidth)(0),                       // 8: entities.TransmissionBandwidth
-       (Eutra_Mode)(0),                                  // 9: entities.Eutra.Mode
-       (SpecialSubframe_Patterns)(0),                    // 10: entities.SpecialSubframe.Patterns
-       (AdditionalSpecialSubframe_Patterns)(0),          // 11: entities.AdditionalSpecialSubframe.Patterns
-       (AdditionalSpecialSubframePatterns_Extension)(0), // 12: entities.AdditionalSpecialSubframePatterns.Extension
-       (*Enb)(nil),                                      // 13: entities.Enb
-       (*ServedCellInfo)(nil),                           // 14: entities.ServedCellInfo
-       (*ChoiceEUTRAMode)(nil),                          // 15: entities.ChoiceEUTRAMode
-       (*Eutra)(nil),                                    // 16: entities.Eutra
-       (*NeighbourInformation)(nil),                     // 17: entities.NeighbourInformation
-       (*MbsfnSubframe)(nil),                            // 18: entities.MbsfnSubframe
-       (*PrachConfiguration)(nil),                       // 19: entities.PrachConfiguration
-       (*TddInfo)(nil),                                  // 20: entities.TddInfo
-       (*AdditionalSpecialSubframeExtensionInfo)(nil),   // 21: entities.AdditionalSpecialSubframeExtensionInfo
-       (*AdditionalSpecialSubframeInfo)(nil),            // 22: entities.AdditionalSpecialSubframeInfo
-       (*FddInfo)(nil),                                  // 23: entities.FddInfo
-       (*SpecialSubframeInfo)(nil),                      // 24: entities.SpecialSubframeInfo
-       (*SpecialSubframe)(nil),                          // 25: entities.SpecialSubframe
-       (*AdditionalSpecialSubframe)(nil),                // 26: entities.AdditionalSpecialSubframe
-       (*AdditionalSpecialSubframePatterns)(nil),        // 27: entities.AdditionalSpecialSubframePatterns
-       (*AdditionalCellInformation)(nil),                // 28: entities.AdditionalCellInformation
+       (SubframeAssignment)(0),                          // 5: entities.SubframeAssignment
+       (CyclicPrefix)(0),                                // 6: entities.CyclicPrefix
+       (TransmissionBandwidth)(0),                       // 7: entities.TransmissionBandwidth
+       (Eutra_Mode)(0),                                  // 8: entities.Eutra.Mode
+       (SpecialSubframe_Patterns)(0),                    // 9: entities.SpecialSubframe.Patterns
+       (AdditionalSpecialSubframe_Patterns)(0),          // 10: entities.AdditionalSpecialSubframe.Patterns
+       (AdditionalSpecialSubframePatterns_Extension)(0), // 11: entities.AdditionalSpecialSubframePatterns.Extension
+       (*Enb)(nil),                                      // 12: entities.Enb
+       (*ServedCellInfo)(nil),                           // 13: entities.ServedCellInfo
+       (*ChoiceEUTRAMode)(nil),                          // 14: entities.ChoiceEUTRAMode
+       (*Eutra)(nil),                                    // 15: entities.Eutra
+       (*NeighbourInformation)(nil),                     // 16: entities.NeighbourInformation
+       (*MbsfnSubframe)(nil),                            // 17: entities.MbsfnSubframe
+       (*PrachConfiguration)(nil),                       // 18: entities.PrachConfiguration
+       (*TddInfo)(nil),                                  // 19: entities.TddInfo
+       (*AdditionalSpecialSubframeExtensionInfo)(nil),   // 20: entities.AdditionalSpecialSubframeExtensionInfo
+       (*AdditionalSpecialSubframeInfo)(nil),            // 21: entities.AdditionalSpecialSubframeInfo
+       (*FddInfo)(nil),                                  // 22: entities.FddInfo
+       (*SpecialSubframeInfo)(nil),                      // 23: entities.SpecialSubframeInfo
+       (*SpecialSubframe)(nil),                          // 24: entities.SpecialSubframe
+       (*AdditionalSpecialSubframe)(nil),                // 25: entities.AdditionalSpecialSubframe
+       (*AdditionalSpecialSubframePatterns)(nil),        // 26: entities.AdditionalSpecialSubframePatterns
+       (EnbType)(0),                                     // 27: entities.EnbType
+       (*E2NodeComponentConfig)(nil),                    // 28: entities.E2nodeComponentConfig
+       (*AdditionalCellInformation)(nil),                // 29: entities.AdditionalCellInformation
 }
 var file_enb_proto_depIdxs = []int32{
-       5,  // 0: entities.Enb.enb_type:type_name -> entities.EnbType
-       14, // 1: entities.Enb.served_cells:type_name -> entities.ServedCellInfo
-       15, // 2: entities.ServedCellInfo.choice_eutra_mode:type_name -> entities.ChoiceEUTRAMode
-       9,  // 3: entities.ServedCellInfo.eutra_mode:type_name -> entities.Eutra.Mode
-       4,  // 4: entities.ServedCellInfo.number_of_antenna_ports:type_name -> entities.NumberOfAntennaPorts
-       19, // 5: entities.ServedCellInfo.prach_configuration:type_name -> entities.PrachConfiguration
-       18, // 6: entities.ServedCellInfo.mbsfn_subframe_infos:type_name -> entities.MbsfnSubframe
-       0,  // 7: entities.ServedCellInfo.freq_band_indicator_priority:type_name -> entities.FreqBandIndicatorPriority
-       1,  // 8: entities.ServedCellInfo.bandwidth_reduced_si:type_name -> entities.BandwidthReducedSI
-       17, // 9: entities.ServedCellInfo.neighbour_infos:type_name -> entities.NeighbourInformation
-       28, // 10: entities.ServedCellInfo.additional_cell_information:type_name -> entities.AdditionalCellInformation
-       23, // 11: entities.ChoiceEUTRAMode.fdd:type_name -> entities.FddInfo
-       20, // 12: entities.ChoiceEUTRAMode.tdd:type_name -> entities.TddInfo
-       3,  // 13: entities.MbsfnSubframe.radioframe_allocation_period:type_name -> entities.RadioframeAllocationPeriod
-       2,  // 14: entities.MbsfnSubframe.subframe_allocation_type:type_name -> entities.SubframeAllocationType
-       8,  // 15: entities.TddInfo.transmission_bandwidth:type_name -> entities.TransmissionBandwidth
-       6,  // 16: entities.TddInfo.subframe_assignment:type_name -> entities.SubframeAssignment
-       24, // 17: entities.TddInfo.special_subframe_info:type_name -> entities.SpecialSubframeInfo
-       22, // 18: entities.TddInfo.additional_special_subframe_info:type_name -> entities.AdditionalSpecialSubframeInfo
-       21, // 19: entities.TddInfo.additional_special_subframe_extension_info:type_name -> entities.AdditionalSpecialSubframeExtensionInfo
-       12, // 20: entities.AdditionalSpecialSubframeExtensionInfo.additional_special_subframe_patterns_extension:type_name -> entities.AdditionalSpecialSubframePatterns.Extension
-       7,  // 21: entities.AdditionalSpecialSubframeExtensionInfo.cyclic_prefix_dl:type_name -> entities.CyclicPrefix
-       7,  // 22: entities.AdditionalSpecialSubframeExtensionInfo.cyclic_prefix_ul:type_name -> entities.CyclicPrefix
-       11, // 23: entities.AdditionalSpecialSubframeInfo.additional_special_subframe_patterns:type_name -> entities.AdditionalSpecialSubframe.Patterns
-       7,  // 24: entities.AdditionalSpecialSubframeInfo.cyclic_prefix_dl:type_name -> entities.CyclicPrefix
-       7,  // 25: entities.AdditionalSpecialSubframeInfo.cyclic_prefix_ul:type_name -> entities.CyclicPrefix
-       8,  // 26: entities.FddInfo.ul_transmission_bandwidth:type_name -> entities.TransmissionBandwidth
-       8,  // 27: entities.FddInfo.dl_transmission_bandwidth:type_name -> entities.TransmissionBandwidth
-       10, // 28: entities.SpecialSubframeInfo.special_subframe_patterns:type_name -> entities.SpecialSubframe.Patterns
-       7,  // 29: entities.SpecialSubframeInfo.cyclic_prefix_dl:type_name -> entities.CyclicPrefix
-       7,  // 30: entities.SpecialSubframeInfo.cyclic_prefix_ul:type_name -> entities.CyclicPrefix
-       31, // [31:31] is the sub-list for method output_type
-       31, // [31:31] is the sub-list for method input_type
-       31, // [31:31] is the sub-list for extension type_name
-       31, // [31:31] is the sub-list for extension extendee
-       0,  // [0:31] is the sub-list for field type_name
+       27, // 0: entities.Enb.enb_type:type_name -> entities.EnbType
+       13, // 1: entities.Enb.served_cells:type_name -> entities.ServedCellInfo
+       28, // 2: entities.Enb.node_configs:type_name -> entities.E2nodeComponentConfig
+       14, // 3: entities.ServedCellInfo.choice_eutra_mode:type_name -> entities.ChoiceEUTRAMode
+       8,  // 4: entities.ServedCellInfo.eutra_mode:type_name -> entities.Eutra.Mode
+       4,  // 5: entities.ServedCellInfo.number_of_antenna_ports:type_name -> entities.NumberOfAntennaPorts
+       18, // 6: entities.ServedCellInfo.prach_configuration:type_name -> entities.PrachConfiguration
+       17, // 7: entities.ServedCellInfo.mbsfn_subframe_infos:type_name -> entities.MbsfnSubframe
+       0,  // 8: entities.ServedCellInfo.freq_band_indicator_priority:type_name -> entities.FreqBandIndicatorPriority
+       1,  // 9: entities.ServedCellInfo.bandwidth_reduced_si:type_name -> entities.BandwidthReducedSI
+       16, // 10: entities.ServedCellInfo.neighbour_infos:type_name -> entities.NeighbourInformation
+       29, // 11: entities.ServedCellInfo.additional_cell_information:type_name -> entities.AdditionalCellInformation
+       22, // 12: entities.ChoiceEUTRAMode.fdd:type_name -> entities.FddInfo
+       19, // 13: entities.ChoiceEUTRAMode.tdd:type_name -> entities.TddInfo
+       3,  // 14: entities.MbsfnSubframe.radioframe_allocation_period:type_name -> entities.RadioframeAllocationPeriod
+       2,  // 15: entities.MbsfnSubframe.subframe_allocation_type:type_name -> entities.SubframeAllocationType
+       7,  // 16: entities.TddInfo.transmission_bandwidth:type_name -> entities.TransmissionBandwidth
+       5,  // 17: entities.TddInfo.subframe_assignment:type_name -> entities.SubframeAssignment
+       23, // 18: entities.TddInfo.special_subframe_info:type_name -> entities.SpecialSubframeInfo
+       21, // 19: entities.TddInfo.additional_special_subframe_info:type_name -> entities.AdditionalSpecialSubframeInfo
+       20, // 20: entities.TddInfo.additional_special_subframe_extension_info:type_name -> entities.AdditionalSpecialSubframeExtensionInfo
+       11, // 21: entities.AdditionalSpecialSubframeExtensionInfo.additional_special_subframe_patterns_extension:type_name -> entities.AdditionalSpecialSubframePatterns.Extension
+       6,  // 22: entities.AdditionalSpecialSubframeExtensionInfo.cyclic_prefix_dl:type_name -> entities.CyclicPrefix
+       6,  // 23: entities.AdditionalSpecialSubframeExtensionInfo.cyclic_prefix_ul:type_name -> entities.CyclicPrefix
+       10, // 24: entities.AdditionalSpecialSubframeInfo.additional_special_subframe_patterns:type_name -> entities.AdditionalSpecialSubframe.Patterns
+       6,  // 25: entities.AdditionalSpecialSubframeInfo.cyclic_prefix_dl:type_name -> entities.CyclicPrefix
+       6,  // 26: entities.AdditionalSpecialSubframeInfo.cyclic_prefix_ul:type_name -> entities.CyclicPrefix
+       7,  // 27: entities.FddInfo.ul_transmission_bandwidth:type_name -> entities.TransmissionBandwidth
+       7,  // 28: entities.FddInfo.dl_transmission_bandwidth:type_name -> entities.TransmissionBandwidth
+       9,  // 29: entities.SpecialSubframeInfo.special_subframe_patterns:type_name -> entities.SpecialSubframe.Patterns
+       6,  // 30: entities.SpecialSubframeInfo.cyclic_prefix_dl:type_name -> entities.CyclicPrefix
+       6,  // 31: entities.SpecialSubframeInfo.cyclic_prefix_ul:type_name -> entities.CyclicPrefix
+       32, // [32:32] is the sub-list for method output_type
+       32, // [32:32] is the sub-list for method input_type
+       32, // [32:32] is the sub-list for extension type_name
+       32, // [32:32] is the sub-list for extension extendee
+       0,  // [0:32] is the sub-list for field type_name
 }
 
 func init() { file_enb_proto_init() }
@@ -2199,6 +2141,8 @@ func file_enb_proto_init() {
                return
        }
        file_additional_cell_information_proto_init()
+       file_e2node_component_config_proto_init()
+       file_nb_types_proto_init()
        if !protoimpl.UnsafeEnabled {
                file_enb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
                        switch v := v.(*Enb); i {
@@ -2386,7 +2330,7 @@ func file_enb_proto_init() {
                File: protoimpl.DescBuilder{
                        GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
                        RawDescriptor: file_enb_proto_rawDesc,
-                       NumEnums:      13,
+                       NumEnums:      12,
                        NumMessages:   15,
                        NumExtensions: 0,
                        NumServices:   0,
index 2ce0f0f..3b50a2e 100644 (file)
@@ -25,11 +25,14 @@ syntax = "proto3";
 package entities;
 
 import "additional_cell_information.proto";
+import "e2node_component_config.proto";
+import "nb_types.proto";
 
 message Enb{
        EnbType enb_type = 1;
        repeated ServedCellInfo served_cells = 2;
        repeated string gu_group_ids = 3;
+       repeated E2nodeComponentConfig node_configs = 4;
 }
 
 message ServedCellInfo{
@@ -153,17 +156,6 @@ message SpecialSubframeInfo{
        CyclicPrefix cyclic_prefix_ul = 3;
 }
 
-enum EnbType{
-       UNKNOWN_ENB_TYPE = 0;
-       MACRO_ENB = 1;
-       HOME_ENB = 2;
-       SHORT_MACRO_ENB = 3;
-       LONG_MACRO_ENB = 4;
-       MACRO_NG_ENB = 5;
-       SHORT_MACRO_NG_ENB = 6;
-       LONG_MACRO_NG_ENB = 7;
-}
-
 enum SubframeAssignment{
        UNKNOWN_SUBFRAME_ASSIGNMENT = 0;
        SA0 = 1;
index 16105ac..bd4e83d 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: gnb.proto
 
@@ -230,55 +230,6 @@ func (Ncnrb) EnumDescriptor() ([]byte, []int) {
        return file_gnb_proto_rawDescGZIP(), []int{1}
 }
 
-type GnbType int32
-
-const (
-       GnbType_UNKNOWN_GNB_TYPE GnbType = 0
-       GnbType_GNB              GnbType = 1
-       GnbType_EN_GNB           GnbType = 2
-)
-
-// Enum value maps for GnbType.
-var (
-       GnbType_name = map[int32]string{
-               0: "UNKNOWN_GNB_TYPE",
-               1: "GNB",
-               2: "EN_GNB",
-       }
-       GnbType_value = map[string]int32{
-               "UNKNOWN_GNB_TYPE": 0,
-               "GNB":              1,
-               "EN_GNB":           2,
-       }
-)
-
-func (x GnbType) Enum() *GnbType {
-       p := new(GnbType)
-       *p = x
-       return p
-}
-
-func (x GnbType) String() string {
-       return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (GnbType) Descriptor() protoreflect.EnumDescriptor {
-       return file_gnb_proto_enumTypes[2].Descriptor()
-}
-
-func (GnbType) Type() protoreflect.EnumType {
-       return &file_gnb_proto_enumTypes[2]
-}
-
-func (x GnbType) Number() protoreflect.EnumNumber {
-       return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use GnbType.Descriptor instead.
-func (GnbType) EnumDescriptor() ([]byte, []int) {
-       return file_gnb_proto_rawDescGZIP(), []int{2}
-}
-
 type Nr_Mode int32
 
 const (
@@ -312,11 +263,11 @@ func (x Nr_Mode) String() string {
 }
 
 func (Nr_Mode) Descriptor() protoreflect.EnumDescriptor {
-       return file_gnb_proto_enumTypes[3].Descriptor()
+       return file_gnb_proto_enumTypes[2].Descriptor()
 }
 
 func (Nr_Mode) Type() protoreflect.EnumType {
-       return &file_gnb_proto_enumTypes[3]
+       return &file_gnb_proto_enumTypes[2]
 }
 
 func (x Nr_Mode) Number() protoreflect.EnumNumber {
@@ -333,9 +284,10 @@ type Gnb struct {
        sizeCache     protoimpl.SizeCache
        unknownFields protoimpl.UnknownFields
 
-       ServedNrCells []*ServedNRCell `protobuf:"bytes,1,rep,name=served_nr_cells,json=servedNrCells,proto3" json:"served_nr_cells,omitempty"`
-       RanFunctions  []*RanFunction  `protobuf:"bytes,2,rep,name=ran_functions,json=ranFunctions,proto3" json:"ran_functions,omitempty"`
-       GnbType       GnbType         `protobuf:"varint,3,opt,name=gnb_type,json=gnbType,proto3,enum=entities.GnbType" json:"gnb_type,omitempty"`
+       ServedNrCells []*ServedNRCell          `protobuf:"bytes,1,rep,name=served_nr_cells,json=servedNrCells,proto3" json:"served_nr_cells,omitempty"`
+       RanFunctions  []*RanFunction           `protobuf:"bytes,2,rep,name=ran_functions,json=ranFunctions,proto3" json:"ran_functions,omitempty"`
+       GnbType       GnbType                  `protobuf:"varint,3,opt,name=gnb_type,json=gnbType,proto3,enum=entities.GnbType" json:"gnb_type,omitempty"`
+       NodeConfigs   []*E2NodeComponentConfig `protobuf:"bytes,4,rep,name=node_configs,json=nodeConfigs,proto3" json:"node_configs,omitempty"`
 }
 
 func (x *Gnb) Reset() {
@@ -391,6 +343,13 @@ func (x *Gnb) GetGnbType() GnbType {
        return GnbType_UNKNOWN_GNB_TYPE
 }
 
+func (x *Gnb) GetNodeConfigs() []*E2NodeComponentConfig {
+       if x != nil {
+               return x.NodeConfigs
+       }
+       return nil
+}
+
 type ServedNRCell struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
@@ -1245,210 +1204,213 @@ var File_gnb_proto protoreflect.FileDescriptor
 var file_gnb_proto_rawDesc = []byte{
        0x0a, 0x09, 0x67, 0x6e, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x65, 0x6e, 0x74,
        0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x12, 0x72, 0x61, 0x6e, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74,
-       0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74,
-       0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72,
-       0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaf, 0x01, 0x0a,
-       0x03, 0x47, 0x6e, 0x62, 0x12, 0x3e, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e,
-       0x72, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e,
-       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e,
-       0x52, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x72, 0x43,
-       0x65, 0x6c, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x5f, 0x66, 0x75, 0x6e, 0x63,
-       0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, 0x6e,
-       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69,
-       0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x61, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-       0x12, 0x2c, 0x0a, 0x08, 0x67, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
-       0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x47, 0x6e,
-       0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x67, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbe,
-       0x01, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x12,
-       0x5e, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x72, 0x5f, 0x63, 0x65, 0x6c,
-       0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
-       0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53,
-       0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72,
-       0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x72,
-       0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
-       0x4e, 0x0a, 0x12, 0x6e, 0x72, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x5f,
-       0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e,
-       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f,
-       0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6e,
-       0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22,
-       0xa0, 0x08, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c,
-       0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e,
-       0x72, 0x5f, 0x70, 0x63, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x72, 0x50,
-       0x63, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
-       0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73,
-       0x74, 0x61, 0x63, 0x35, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61,
-       0x63, 0x35, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65,
-       0x64, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f,
-       0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x12, 0x21, 0x0a, 0x0c,
-       0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x6d, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03,
-       0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x50, 0x6c, 0x6d, 0x6e, 0x73, 0x12,
-       0x2a, 0x0a, 0x07, 0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
-       0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x2e, 0x4d,
-       0x6f, 0x64, 0x65, 0x52, 0x06, 0x6e, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x63,
-       0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20,
-       0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53,
-       0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72,
-       0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d,
-       0x6f, 0x64, 0x65, 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x72, 0x4d, 0x6f, 0x64,
-       0x65, 0x12, 0x63, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
+       0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x65, 0x32, 0x6e, 0x6f, 0x64,
+       0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
+       0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,
+       0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x6e, 0x62, 0x5f,
+       0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x01, 0x0a, 0x03,
+       0x47, 0x6e, 0x62, 0x12, 0x3e, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x72,
+       0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65,
+       0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52,
+       0x43, 0x65, 0x6c, 0x6c, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x72, 0x43, 0x65,
+       0x6c, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74,
+       0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, 0x6e, 0x74,
+       0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+       0x6e, 0x52, 0x0c, 0x72, 0x61, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+       0x2c, 0x0a, 0x08, 0x67, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+       0x0e, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x47, 0x6e, 0x62,
+       0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x67, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a,
+       0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x04, 0x20,
+       0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45,
+       0x32, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f,
+       0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+       0x73, 0x22, 0xbe, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65,
+       0x6c, 0x6c, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x72, 0x5f,
        0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-       0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
-       0x73, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x65, 0x6c, 0x6c,
-       0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x19, 0x61, 0x64, 0x64,
-       0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72,
-       0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x89, 0x05, 0x0a, 0x0c, 0x43, 0x68, 0x6f, 0x69, 0x63,
-       0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x48, 0x0a, 0x03, 0x66, 0x64, 0x64, 0x18, 0x01,
-       0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
-       0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
-       0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52,
-       0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x66, 0x64,
-       0x64, 0x12, 0x48, 0x0a, 0x03, 0x74, 0x64, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36,
-       0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64,
-       0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
-       0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x54,
-       0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x74, 0x64, 0x64, 0x1a, 0xc1, 0x02, 0x0a, 0x07,
-       0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x75, 0x6c, 0x5f, 0x66, 0x72,
-       0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
+       0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
+       0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e,
+       0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x73, 0x65, 0x72, 0x76, 0x65,
+       0x64, 0x4e, 0x72, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
+       0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x12, 0x6e, 0x72, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f,
+       0x75, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
+       0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x4e, 0x65, 0x69, 0x67,
+       0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+       0x52, 0x10, 0x6e, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66,
+       0x6f, 0x73, 0x22, 0xa0, 0x08, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43,
+       0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15,
+       0x0a, 0x06, 0x6e, 0x72, 0x5f, 0x70, 0x63, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
+       0x6e, 0x72, 0x50, 0x63, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64,
+       0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x16,
+       0x0a, 0x06, 0x73, 0x74, 0x61, 0x63, 0x35, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+       0x73, 0x74, 0x61, 0x63, 0x35, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+       0x75, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+       0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x12,
+       0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x6d, 0x6e, 0x73, 0x18,
+       0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x50, 0x6c, 0x6d,
+       0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20,
+       0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e,
+       0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x6e, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x54,
+       0x0a, 0x0e, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65,
+       0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
+       0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e,
+       0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65,
+       0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x72,
+       0x4d, 0x6f, 0x64, 0x65, 0x12, 0x63, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+       0x61, 0x6c, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+       0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x74, 0x69,
+       0x74, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43,
+       0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x19,
+       0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e,
+       0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x89, 0x05, 0x0a, 0x0c, 0x43, 0x68,
+       0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x48, 0x0a, 0x03, 0x66, 0x64,
+       0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69,
+       0x65, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49,
+       0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63,
+       0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+       0x03, 0x66, 0x64, 0x64, 0x12, 0x48, 0x0a, 0x03, 0x74, 0x64, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x72,
+       0x76, 0x65, 0x64, 0x4e, 0x52, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+       0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64,
+       0x65, 0x2e, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x74, 0x64, 0x64, 0x1a, 0xc1,
+       0x02, 0x0a, 0x07, 0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x75, 0x6c,
+       0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+       0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46, 0x72,
+       0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x75, 0x6c, 0x46,
+       0x72, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x64, 0x6c, 0x5f, 0x66, 0x72,
+       0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
        0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75,
-       0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x75, 0x6c, 0x46, 0x72, 0x65, 0x71,
-       0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x64, 0x6c, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f,
-       0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74,
+       0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x6c, 0x46, 0x72, 0x65, 0x71,
+       0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x19, 0x75, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73,
+       0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74,
+       0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69,
+       0x65, 0x73, 0x2e, 0x4e, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+       0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x17, 0x75, 0x6c, 0x54, 0x72,
+       0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69,
+       0x64, 0x74, 0x68, 0x12, 0x5d, 0x0a, 0x19, 0x64, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d,
+       0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68,
+       0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65,
+       0x73, 0x2e, 0x4e, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+       0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x17, 0x64, 0x6c, 0x54, 0x72, 0x61,
+       0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
+       0x74, 0x68, 0x1a, 0xa0, 0x01, 0x0a, 0x07, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b,
+       0x0a, 0x0c, 0x6e, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01,
+       0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
+       0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+       0x0a, 0x6e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x58, 0x0a, 0x16, 0x74,
+       0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64,
+       0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e,
+       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69,
+       0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x15,
+       0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64,
+       0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x2b, 0x0a, 0x02, 0x4e, 0x72, 0x22, 0x25, 0x0a, 0x04, 0x4d,
+       0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
+       0x12, 0x07, 0x0a, 0x03, 0x46, 0x44, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x44, 0x44,
+       0x10, 0x02, 0x22, 0xd7, 0x02, 0x0a, 0x0f, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e,
+       0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x09, 0x6e, 0x72, 0x5f, 0x61, 0x72, 0x5f,
+       0x66, 0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6e, 0x72, 0x41, 0x72, 0x46,
+       0x63, 0x6e, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x75, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+       0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74,
        0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
-       0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x49, 0x6e, 0x66,
-       0x6f, 0x12, 0x5d, 0x0a, 0x19, 0x75, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73,
-       0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03,
-       0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
-       0x4e, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61,
-       0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x17, 0x75, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73,
-       0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68,
-       0x12, 0x5d, 0x0a, 0x19, 0x64, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73,
-       0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20,
-       0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e,
-       0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e,
-       0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x17, 0x64, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d,
-       0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x1a,
-       0xa0, 0x01, 0x0a, 0x07, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x6e,
-       0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28,
-       0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46,
-       0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6e, 0x72,
-       0x46, 0x72, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x58, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e,
-       0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
-       0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
-       0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69,
-       0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x15, 0x74, 0x72, 0x61,
+       0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x75, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+       0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x75, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+       0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
+       0x79, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
+       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e,
+       0x63, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x66, 0x72, 0x65, 0x71,
+       0x75, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x1a, 0x8f, 0x01, 0x0a, 0x0e, 0x53,
+       0x75, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a,
+       0x0a, 0x73, 0x75, 0x6c, 0x5f, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
+       0x04, 0x52, 0x08, 0x73, 0x75, 0x6c, 0x41, 0x72, 0x46, 0x63, 0x6e, 0x12, 0x5f, 0x0a, 0x1a, 0x73,
+       0x75, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
+       0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+       0x21, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x54, 0x72, 0x61,
        0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64,
-       0x74, 0x68, 0x22, 0x2b, 0x0a, 0x02, 0x4e, 0x72, 0x22, 0x25, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65,
-       0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a,
-       0x03, 0x46, 0x44, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x44, 0x44, 0x10, 0x02, 0x22,
-       0xd7, 0x02, 0x0a, 0x0f, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49,
-       0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x09, 0x6e, 0x72, 0x5f, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e,
-       0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6e, 0x72, 0x41, 0x72, 0x46, 0x63, 0x6e, 0x12,
-       0x50, 0x0a, 0x0e, 0x73, 0x75, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
-       0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69,
-       0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e,
-       0x66, 0x6f, 0x2e, 0x53, 0x75, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
-       0x6e, 0x52, 0x0e, 0x73, 0x75, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
-       0x6e, 0x12, 0x44, 0x0a, 0x0f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x62,
-       0x61, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6e, 0x74,
-       0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x42,
-       0x61, 0x6e, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e,
-       0x63, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x1a, 0x8f, 0x01, 0x0a, 0x0e, 0x53, 0x75, 0x6c, 0x49,
-       0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x0a, 0x73, 0x75,
-       0x6c, 0x5f, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08,
-       0x73, 0x75, 0x6c, 0x41, 0x72, 0x46, 0x63, 0x6e, 0x12, 0x5f, 0x0a, 0x1a, 0x73, 0x75, 0x6c, 0x5f,
-       0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x6e,
-       0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65,
-       0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d,
-       0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52,
-       0x18, 0x73, 0x75, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
-       0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x6f, 0x0a, 0x11, 0x46, 0x72, 0x65,
-       0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2a,
-       0x0a, 0x11, 0x6e, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x62,
-       0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x72, 0x46, 0x72, 0x65,
-       0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x75,
-       0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x6c, 0x5f, 0x62, 0x61, 0x6e, 0x64,
-       0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
-       0x65, 0x64, 0x53, 0x75, 0x6c, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x67, 0x0a, 0x17, 0x4e, 0x72,
-       0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64,
-       0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x05, 0x6e, 0x72, 0x73, 0x63, 0x73, 0x18, 0x01,
-       0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
-       0x4e, 0x72, 0x73, 0x63, 0x73, 0x52, 0x05, 0x6e, 0x72, 0x73, 0x63, 0x73, 0x12, 0x25, 0x0a, 0x05,
-       0x6e, 0x63, 0x6e, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x65, 0x6e,
-       0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x63, 0x6e, 0x72, 0x62, 0x52, 0x05, 0x6e, 0x63,
-       0x6e, 0x72, 0x62, 0x22, 0x9b, 0x05, 0x0a, 0x16, 0x4e, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62,
-       0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15,
-       0x0a, 0x06, 0x6e, 0x72, 0x5f, 0x70, 0x63, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
-       0x6e, 0x72, 0x50, 0x63, 0x69, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x72, 0x5f, 0x63, 0x67, 0x69, 0x18,
-       0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x72, 0x43, 0x67, 0x69, 0x12, 0x2a, 0x0a, 0x07,
-       0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e,
-       0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x65,
-       0x52, 0x06, 0x6e, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x63, 0x68, 0x6f, 0x69,
-       0x63, 0x65, 0x5f, 0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
-       0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x4e, 0x65,
-       0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
-       0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x52,
-       0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a,
-       0x06, 0x73, 0x74, 0x61, 0x63, 0x35, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
-       0x74, 0x61, 0x63, 0x35, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
-       0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
-       0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x1a, 0x90,
-       0x03, 0x0a, 0x0c, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x12,
-       0x47, 0x0a, 0x03, 0x66, 0x64, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65,
-       0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62,
-       0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43,
-       0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x46, 0x64, 0x64, 0x49,
-       0x6e, 0x66, 0x6f, 0x52, 0x03, 0x66, 0x64, 0x64, 0x12, 0x47, 0x0a, 0x03, 0x74, 0x64, 0x64, 0x18,
-       0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
-       0x2e, 0x4e, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f,
-       0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52,
-       0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x74, 0x64,
-       0x64, 0x1a, 0x99, 0x01, 0x0a, 0x07, 0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a,
-       0x12, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69,
-       0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69,
-       0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79,
-       0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x46, 0x72, 0x65,
-       0x71, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, 0x12, 0x64, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x63,
-       0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
-       0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46,
-       0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x64, 0x6c,
-       0x61, 0x72, 0x46, 0x63, 0x6e, 0x46, 0x72, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x52, 0x0a,
-       0x07, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x13, 0x61, 0x72, 0x5f, 0x66,
-       0x63, 0x6e, 0x5f, 0x6e, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
-       0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
-       0x2e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f,
-       0x52, 0x0f, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x49, 0x6e, 0x66,
-       0x6f, 0x2a, 0x47, 0x0a, 0x05, 0x4e, 0x72, 0x73, 0x63, 0x73, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e,
-       0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4e, 0x52, 0x53, 0x43, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a,
-       0x05, 0x53, 0x43, 0x53, 0x31, 0x35, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x43, 0x53, 0x33,
-       0x30, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x43, 0x53, 0x36, 0x30, 0x10, 0x03, 0x12, 0x0a,
-       0x0a, 0x06, 0x53, 0x43, 0x53, 0x31, 0x32, 0x30, 0x10, 0x04, 0x2a, 0xe8, 0x02, 0x0a, 0x05, 0x4e,
-       0x63, 0x6e, 0x72, 0x62, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
-       0x4e, 0x43, 0x4e, 0x52, 0x42, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x31, 0x31,
-       0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x31, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a,
-       0x05, 0x4e, 0x52, 0x42, 0x32, 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x32,
-       0x35, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x33, 0x31, 0x10, 0x05, 0x12, 0x09,
-       0x0a, 0x05, 0x4e, 0x52, 0x42, 0x33, 0x32, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42,
-       0x33, 0x38, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x35, 0x31, 0x10, 0x08, 0x12,
-       0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x35, 0x32, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52,
-       0x42, 0x36, 0x35, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x36, 0x36, 0x10, 0x0b,
-       0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x37, 0x38, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x4e,
-       0x52, 0x42, 0x37, 0x39, 0x10, 0x0d, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x39, 0x33, 0x10,
-       0x0e, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x30, 0x36, 0x10, 0x0f, 0x12, 0x0a, 0x0a,
-       0x06, 0x4e, 0x52, 0x42, 0x31, 0x30, 0x37, 0x10, 0x10, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42,
-       0x31, 0x32, 0x31, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x33, 0x32, 0x10,
-       0x12, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x33, 0x33, 0x10, 0x13, 0x12, 0x0a, 0x0a,
-       0x06, 0x4e, 0x52, 0x42, 0x31, 0x33, 0x35, 0x10, 0x14, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42,
-       0x31, 0x36, 0x30, 0x10, 0x15, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x36, 0x32, 0x10,
-       0x16, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x38, 0x39, 0x10, 0x17, 0x12, 0x0a, 0x0a,
-       0x06, 0x4e, 0x52, 0x42, 0x32, 0x31, 0x36, 0x10, 0x18, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42,
-       0x32, 0x31, 0x37, 0x10, 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x32, 0x34, 0x35, 0x10,
-       0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x32, 0x36, 0x34, 0x10, 0x1b, 0x12, 0x0a, 0x0a,
-       0x06, 0x4e, 0x52, 0x42, 0x32, 0x37, 0x30, 0x10, 0x1c, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42,
-       0x32, 0x37, 0x33, 0x10, 0x1d, 0x2a, 0x34, 0x0a, 0x07, 0x47, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65,
-       0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x47, 0x4e, 0x42, 0x5f,
-       0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x4e, 0x42, 0x10, 0x01, 0x12,
-       0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x5f, 0x47, 0x4e, 0x42, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f,
-       0x74, 0x6f, 0x33,
+       0x74, 0x68, 0x52, 0x18, 0x73, 0x75, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73,
+       0x69, 0x6f, 0x6e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x6f, 0x0a, 0x11,
+       0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x49, 0x74, 0x65,
+       0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
+       0x79, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6e, 0x72,
+       0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x2e, 0x0a,
+       0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x6c, 0x5f, 0x62,
+       0x61, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70,
+       0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x75, 0x6c, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x67, 0x0a,
+       0x17, 0x4e, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42,
+       0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x05, 0x6e, 0x72, 0x73, 0x63,
+       0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69,
+       0x65, 0x73, 0x2e, 0x4e, 0x72, 0x73, 0x63, 0x73, 0x52, 0x05, 0x6e, 0x72, 0x73, 0x63, 0x73, 0x12,
+       0x25, 0x0a, 0x05, 0x6e, 0x63, 0x6e, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f,
+       0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x63, 0x6e, 0x72, 0x62, 0x52,
+       0x05, 0x6e, 0x63, 0x6e, 0x72, 0x62, 0x22, 0x9b, 0x05, 0x0a, 0x16, 0x4e, 0x72, 0x4e, 0x65, 0x69,
+       0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
+       0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x72, 0x5f, 0x70, 0x63, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28,
+       0x0d, 0x52, 0x05, 0x6e, 0x72, 0x50, 0x63, 0x69, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x72, 0x5f, 0x63,
+       0x67, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x72, 0x43, 0x67, 0x69, 0x12,
+       0x2a, 0x0a, 0x07, 0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
+       0x32, 0x11, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x2e, 0x4d,
+       0x6f, 0x64, 0x65, 0x52, 0x06, 0x6e, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x63,
+       0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20,
+       0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e,
+       0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+       0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f,
+       0x64, 0x65, 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x72, 0x4d, 0x6f, 0x64, 0x65,
+       0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x63, 0x35, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+       0x52, 0x06, 0x73, 0x74, 0x61, 0x63, 0x35, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66,
+       0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28,
+       0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x53, 0x74, 0x61,
+       0x63, 0x1a, 0x90, 0x03, 0x0a, 0x0c, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f,
+       0x64, 0x65, 0x12, 0x47, 0x0a, 0x03, 0x66, 0x64, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+       0x35, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x4e, 0x65, 0x69,
+       0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
+       0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x46,
+       0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x66, 0x64, 0x64, 0x12, 0x47, 0x0a, 0x03, 0x74,
+       0x64, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
+       0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75, 0x72, 0x49,
+       0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63,
+       0x65, 0x4e, 0x52, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+       0x03, 0x74, 0x64, 0x64, 0x1a, 0x99, 0x01, 0x0a, 0x07, 0x46, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f,
+       0x12, 0x46, 0x0a, 0x12, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x66, 0x63, 0x6e, 0x5f, 0x66, 0x72, 0x65,
+       0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65,
+       0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65,
+       0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x63, 0x6e,
+       0x46, 0x72, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, 0x12, 0x64, 0x6c, 0x61, 0x72,
+       0x5f, 0x66, 0x63, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02,
+       0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e,
+       0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+       0x0f, 0x64, 0x6c, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x46, 0x72, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f,
+       0x1a, 0x52, 0x0a, 0x07, 0x54, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x13, 0x61,
+       0x72, 0x5f, 0x66, 0x63, 0x6e, 0x5f, 0x6e, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x6e,
+       0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x74, 0x69, 0x74,
+       0x69, 0x65, 0x73, 0x2e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x49,
+       0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x61, 0x72, 0x46, 0x63, 0x6e, 0x4e, 0x72, 0x46, 0x72, 0x65, 0x71,
+       0x49, 0x6e, 0x66, 0x6f, 0x2a, 0x47, 0x0a, 0x05, 0x4e, 0x72, 0x73, 0x63, 0x73, 0x12, 0x11, 0x0a,
+       0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4e, 0x52, 0x53, 0x43, 0x53, 0x10, 0x00,
+       0x12, 0x09, 0x0a, 0x05, 0x53, 0x43, 0x53, 0x31, 0x35, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53,
+       0x43, 0x53, 0x33, 0x30, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x43, 0x53, 0x36, 0x30, 0x10,
+       0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x43, 0x53, 0x31, 0x32, 0x30, 0x10, 0x04, 0x2a, 0xe8, 0x02,
+       0x0a, 0x05, 0x4e, 0x63, 0x6e, 0x72, 0x62, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+       0x57, 0x4e, 0x5f, 0x4e, 0x43, 0x4e, 0x52, 0x42, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52,
+       0x42, 0x31, 0x31, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x31, 0x38, 0x10, 0x02,
+       0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x32, 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x4e,
+       0x52, 0x42, 0x32, 0x35, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x33, 0x31, 0x10,
+       0x05, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x33, 0x32, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05,
+       0x4e, 0x52, 0x42, 0x33, 0x38, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x35, 0x31,
+       0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x35, 0x32, 0x10, 0x09, 0x12, 0x09, 0x0a,
+       0x05, 0x4e, 0x52, 0x42, 0x36, 0x35, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x36,
+       0x36, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42, 0x37, 0x38, 0x10, 0x0c, 0x12, 0x09,
+       0x0a, 0x05, 0x4e, 0x52, 0x42, 0x37, 0x39, 0x10, 0x0d, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x52, 0x42,
+       0x39, 0x33, 0x10, 0x0e, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x30, 0x36, 0x10, 0x0f,
+       0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x30, 0x37, 0x10, 0x10, 0x12, 0x0a, 0x0a, 0x06,
+       0x4e, 0x52, 0x42, 0x31, 0x32, 0x31, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31,
+       0x33, 0x32, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x33, 0x33, 0x10, 0x13,
+       0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x33, 0x35, 0x10, 0x14, 0x12, 0x0a, 0x0a, 0x06,
+       0x4e, 0x52, 0x42, 0x31, 0x36, 0x30, 0x10, 0x15, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31,
+       0x36, 0x32, 0x10, 0x16, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x31, 0x38, 0x39, 0x10, 0x17,
+       0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x32, 0x31, 0x36, 0x10, 0x18, 0x12, 0x0a, 0x0a, 0x06,
+       0x4e, 0x52, 0x42, 0x32, 0x31, 0x37, 0x10, 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x32,
+       0x34, 0x35, 0x10, 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x32, 0x36, 0x34, 0x10, 0x1b,
+       0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x52, 0x42, 0x32, 0x37, 0x30, 0x10, 0x1c, 0x12, 0x0a, 0x0a, 0x06,
+       0x4e, 0x52, 0x42, 0x32, 0x37, 0x33, 0x10, 0x1d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -1463,65 +1425,67 @@ func file_gnb_proto_rawDescGZIP() []byte {
        return file_gnb_proto_rawDescData
 }
 
-var file_gnb_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
+var file_gnb_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
 var file_gnb_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
 var file_gnb_proto_goTypes = []interface{}{
        (Nrscs)(0),                      // 0: entities.Nrscs
        (Ncnrb)(0),                      // 1: entities.Ncnrb
-       (GnbType)(0),                    // 2: entities.GnbType
-       (Nr_Mode)(0),                    // 3: entities.Nr.Mode
-       (*Gnb)(nil),                     // 4: entities.Gnb
-       (*ServedNRCell)(nil),            // 5: entities.ServedNRCell
-       (*ServedNRCellInformation)(nil), // 6: entities.ServedNRCellInformation
-       (*Nr)(nil),                      // 7: entities.Nr
-       (*NrFrequencyInfo)(nil),         // 8: entities.NrFrequencyInfo
-       (*FrequencyBandItem)(nil),       // 9: entities.FrequencyBandItem
-       (*NrTransmissionBandwidth)(nil), // 10: entities.NrTransmissionBandwidth
-       (*NrNeighbourInformation)(nil),  // 11: entities.NrNeighbourInformation
-       (*ServedNRCellInformation_ChoiceNRMode)(nil),         // 12: entities.ServedNRCellInformation.ChoiceNRMode
-       (*ServedNRCellInformation_ChoiceNRMode_FddInfo)(nil), // 13: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo
-       (*ServedNRCellInformation_ChoiceNRMode_TddInfo)(nil), // 14: entities.ServedNRCellInformation.ChoiceNRMode.TddInfo
-       (*NrFrequencyInfo_SulInformation)(nil),               // 15: entities.NrFrequencyInfo.SulInformation
-       (*NrNeighbourInformation_ChoiceNRMode)(nil),          // 16: entities.NrNeighbourInformation.ChoiceNRMode
-       (*NrNeighbourInformation_ChoiceNRMode_FddInfo)(nil),  // 17: entities.NrNeighbourInformation.ChoiceNRMode.FddInfo
-       (*NrNeighbourInformation_ChoiceNRMode_TddInfo)(nil),  // 18: entities.NrNeighbourInformation.ChoiceNRMode.TddInfo
-       (*RanFunction)(nil),                                  // 19: entities.RanFunction
-       (*AdditionalCellInformation)(nil),                    // 20: entities.AdditionalCellInformation
+       (Nr_Mode)(0),                    // 2: entities.Nr.Mode
+       (*Gnb)(nil),                     // 3: entities.Gnb
+       (*ServedNRCell)(nil),            // 4: entities.ServedNRCell
+       (*ServedNRCellInformation)(nil), // 5: entities.ServedNRCellInformation
+       (*Nr)(nil),                      // 6: entities.Nr
+       (*NrFrequencyInfo)(nil),         // 7: entities.NrFrequencyInfo
+       (*FrequencyBandItem)(nil),       // 8: entities.FrequencyBandItem
+       (*NrTransmissionBandwidth)(nil), // 9: entities.NrTransmissionBandwidth
+       (*NrNeighbourInformation)(nil),  // 10: entities.NrNeighbourInformation
+       (*ServedNRCellInformation_ChoiceNRMode)(nil),         // 11: entities.ServedNRCellInformation.ChoiceNRMode
+       (*ServedNRCellInformation_ChoiceNRMode_FddInfo)(nil), // 12: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo
+       (*ServedNRCellInformation_ChoiceNRMode_TddInfo)(nil), // 13: entities.ServedNRCellInformation.ChoiceNRMode.TddInfo
+       (*NrFrequencyInfo_SulInformation)(nil),               // 14: entities.NrFrequencyInfo.SulInformation
+       (*NrNeighbourInformation_ChoiceNRMode)(nil),          // 15: entities.NrNeighbourInformation.ChoiceNRMode
+       (*NrNeighbourInformation_ChoiceNRMode_FddInfo)(nil),  // 16: entities.NrNeighbourInformation.ChoiceNRMode.FddInfo
+       (*NrNeighbourInformation_ChoiceNRMode_TddInfo)(nil),  // 17: entities.NrNeighbourInformation.ChoiceNRMode.TddInfo
+       (*RanFunction)(nil),                                  // 18: entities.RanFunction
+       (GnbType)(0),                                         // 19: entities.GnbType
+       (*E2NodeComponentConfig)(nil),                        // 20: entities.E2nodeComponentConfig
+       (*AdditionalCellInformation)(nil),                    // 21: entities.AdditionalCellInformation
 }
 var file_gnb_proto_depIdxs = []int32{
-       5,  // 0: entities.Gnb.served_nr_cells:type_name -> entities.ServedNRCell
-       19, // 1: entities.Gnb.ran_functions:type_name -> entities.RanFunction
-       2,  // 2: entities.Gnb.gnb_type:type_name -> entities.GnbType
-       6,  // 3: entities.ServedNRCell.served_nr_cell_information:type_name -> entities.ServedNRCellInformation
-       11, // 4: entities.ServedNRCell.nr_neighbour_infos:type_name -> entities.NrNeighbourInformation
-       3,  // 5: entities.ServedNRCellInformation.nr_mode:type_name -> entities.Nr.Mode
-       12, // 6: entities.ServedNRCellInformation.choice_nr_mode:type_name -> entities.ServedNRCellInformation.ChoiceNRMode
-       20, // 7: entities.ServedNRCellInformation.additional_cell_information:type_name -> entities.AdditionalCellInformation
-       15, // 8: entities.NrFrequencyInfo.sulInformation:type_name -> entities.NrFrequencyInfo.SulInformation
-       9,  // 9: entities.NrFrequencyInfo.frequency_bands:type_name -> entities.FrequencyBandItem
-       0,  // 10: entities.NrTransmissionBandwidth.nrscs:type_name -> entities.Nrscs
-       1,  // 11: entities.NrTransmissionBandwidth.ncnrb:type_name -> entities.Ncnrb
-       3,  // 12: entities.NrNeighbourInformation.nr_mode:type_name -> entities.Nr.Mode
-       16, // 13: entities.NrNeighbourInformation.choice_nr_mode:type_name -> entities.NrNeighbourInformation.ChoiceNRMode
-       13, // 14: entities.ServedNRCellInformation.ChoiceNRMode.fdd:type_name -> entities.ServedNRCellInformation.ChoiceNRMode.FddInfo
-       14, // 15: entities.ServedNRCellInformation.ChoiceNRMode.tdd:type_name -> entities.ServedNRCellInformation.ChoiceNRMode.TddInfo
-       8,  // 16: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.ul_freq_info:type_name -> entities.NrFrequencyInfo
-       8,  // 17: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.dl_freq_info:type_name -> entities.NrFrequencyInfo
-       10, // 18: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.ul_transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
-       10, // 19: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.dl_transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
-       8,  // 20: entities.ServedNRCellInformation.ChoiceNRMode.TddInfo.nr_freq_info:type_name -> entities.NrFrequencyInfo
-       10, // 21: entities.ServedNRCellInformation.ChoiceNRMode.TddInfo.transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
-       10, // 22: entities.NrFrequencyInfo.SulInformation.sul_transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
-       17, // 23: entities.NrNeighbourInformation.ChoiceNRMode.fdd:type_name -> entities.NrNeighbourInformation.ChoiceNRMode.FddInfo
-       18, // 24: entities.NrNeighbourInformation.ChoiceNRMode.tdd:type_name -> entities.NrNeighbourInformation.ChoiceNRMode.TddInfo
-       8,  // 25: entities.NrNeighbourInformation.ChoiceNRMode.FddInfo.ular_fcn_freq_info:type_name -> entities.NrFrequencyInfo
-       8,  // 26: entities.NrNeighbourInformation.ChoiceNRMode.FddInfo.dlar_fcn_freq_info:type_name -> entities.NrFrequencyInfo
-       8,  // 27: entities.NrNeighbourInformation.ChoiceNRMode.TddInfo.ar_fcn_nr_freq_info:type_name -> entities.NrFrequencyInfo
-       28, // [28:28] is the sub-list for method output_type
-       28, // [28:28] 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
+       4,  // 0: entities.Gnb.served_nr_cells:type_name -> entities.ServedNRCell
+       18, // 1: entities.Gnb.ran_functions:type_name -> entities.RanFunction
+       19, // 2: entities.Gnb.gnb_type:type_name -> entities.GnbType
+       20, // 3: entities.Gnb.node_configs:type_name -> entities.E2nodeComponentConfig
+       5,  // 4: entities.ServedNRCell.served_nr_cell_information:type_name -> entities.ServedNRCellInformation
+       10, // 5: entities.ServedNRCell.nr_neighbour_infos:type_name -> entities.NrNeighbourInformation
+       2,  // 6: entities.ServedNRCellInformation.nr_mode:type_name -> entities.Nr.Mode
+       11, // 7: entities.ServedNRCellInformation.choice_nr_mode:type_name -> entities.ServedNRCellInformation.ChoiceNRMode
+       21, // 8: entities.ServedNRCellInformation.additional_cell_information:type_name -> entities.AdditionalCellInformation
+       14, // 9: entities.NrFrequencyInfo.sulInformation:type_name -> entities.NrFrequencyInfo.SulInformation
+       8,  // 10: entities.NrFrequencyInfo.frequency_bands:type_name -> entities.FrequencyBandItem
+       0,  // 11: entities.NrTransmissionBandwidth.nrscs:type_name -> entities.Nrscs
+       1,  // 12: entities.NrTransmissionBandwidth.ncnrb:type_name -> entities.Ncnrb
+       2,  // 13: entities.NrNeighbourInformation.nr_mode:type_name -> entities.Nr.Mode
+       15, // 14: entities.NrNeighbourInformation.choice_nr_mode:type_name -> entities.NrNeighbourInformation.ChoiceNRMode
+       12, // 15: entities.ServedNRCellInformation.ChoiceNRMode.fdd:type_name -> entities.ServedNRCellInformation.ChoiceNRMode.FddInfo
+       13, // 16: entities.ServedNRCellInformation.ChoiceNRMode.tdd:type_name -> entities.ServedNRCellInformation.ChoiceNRMode.TddInfo
+       7,  // 17: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.ul_freq_info:type_name -> entities.NrFrequencyInfo
+       7,  // 18: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.dl_freq_info:type_name -> entities.NrFrequencyInfo
+       9,  // 19: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.ul_transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
+       9,  // 20: entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.dl_transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
+       7,  // 21: entities.ServedNRCellInformation.ChoiceNRMode.TddInfo.nr_freq_info:type_name -> entities.NrFrequencyInfo
+       9,  // 22: entities.ServedNRCellInformation.ChoiceNRMode.TddInfo.transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
+       9,  // 23: entities.NrFrequencyInfo.SulInformation.sul_transmission_bandwidth:type_name -> entities.NrTransmissionBandwidth
+       16, // 24: entities.NrNeighbourInformation.ChoiceNRMode.fdd:type_name -> entities.NrNeighbourInformation.ChoiceNRMode.FddInfo
+       17, // 25: entities.NrNeighbourInformation.ChoiceNRMode.tdd:type_name -> entities.NrNeighbourInformation.ChoiceNRMode.TddInfo
+       7,  // 26: entities.NrNeighbourInformation.ChoiceNRMode.FddInfo.ular_fcn_freq_info:type_name -> entities.NrFrequencyInfo
+       7,  // 27: entities.NrNeighbourInformation.ChoiceNRMode.FddInfo.dlar_fcn_freq_info:type_name -> entities.NrFrequencyInfo
+       7,  // 28: entities.NrNeighbourInformation.ChoiceNRMode.TddInfo.ar_fcn_nr_freq_info:type_name -> entities.NrFrequencyInfo
+       29, // [29:29] is the sub-list for method output_type
+       29, // [29:29] 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
 }
 
 func init() { file_gnb_proto_init() }
@@ -1530,7 +1494,9 @@ func file_gnb_proto_init() {
                return
        }
        file_ran_function_proto_init()
+       file_e2node_component_config_proto_init()
        file_additional_cell_information_proto_init()
+       file_nb_types_proto_init()
        if !protoimpl.UnsafeEnabled {
                file_gnb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
                        switch v := v.(*Gnb); i {
@@ -1718,7 +1684,7 @@ func file_gnb_proto_init() {
                File: protoimpl.DescBuilder{
                        GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
                        RawDescriptor: file_gnb_proto_rawDesc,
-                       NumEnums:      4,
+                       NumEnums:      3,
                        NumMessages:   15,
                        NumExtensions: 0,
                        NumServices:   0,
index 5f174f9..03aa702 100644 (file)
 syntax = "proto3";
 package entities;
 import "ran_function.proto";
+import "e2node_component_config.proto";
 import "additional_cell_information.proto";
+import "nb_types.proto";
 
 
 message Gnb{
        repeated ServedNRCell served_nr_cells = 1;
        repeated RanFunction ran_functions = 2;
        GnbType gnb_type = 3;
+       repeated E2nodeComponentConfig node_configs = 4;
 }
 
 message ServedNRCell{
@@ -150,10 +153,4 @@ message NrNeighbourInformation{
        ChoiceNRMode choice_nr_mode = 4;
        string stac5g = 5;
        string configured_stac = 6;
-}
-
-enum GnbType{
-       UNKNOWN_GNB_TYPE = 0;
-       GNB = 1;
-       EN_GNB = 2;
 }
\ No newline at end of file
index 49d7737..5dd19dc 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: nb_identity.proto
 
diff --git a/entities/nb_types.pb.go b/entities/nb_types.pb.go
new file mode 100644 (file)
index 0000000..9d3dd2b
--- /dev/null
@@ -0,0 +1,231 @@
+//
+// Copyright 2019 AT&T Intellectual Property
+// Copyright 2019 Nokia
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//
+// This source code is part of the near-RT RIC (RAN Intelligent Controller)
+// platform project (RICP).
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+//     protoc-gen-go v1.25.0
+//     protoc        v3.6.1
+// source: nb_types.proto
+
+package entities
+
+import (
+       proto "github.com/golang/protobuf/proto"
+       protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+       protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+       reflect "reflect"
+       sync "sync"
+)
+
+const (
+       // Verify that this generated code is sufficiently up-to-date.
+       _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+       // Verify that runtime/protoimpl is sufficiently up-to-date.
+       _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
+type EnbType int32
+
+const (
+       EnbType_UNKNOWN_ENB_TYPE   EnbType = 0
+       EnbType_MACRO_ENB          EnbType = 1
+       EnbType_HOME_ENB           EnbType = 2
+       EnbType_SHORT_MACRO_ENB    EnbType = 3
+       EnbType_LONG_MACRO_ENB     EnbType = 4
+       EnbType_MACRO_NG_ENB       EnbType = 5
+       EnbType_SHORT_MACRO_NG_ENB EnbType = 6
+       EnbType_LONG_MACRO_NG_ENB  EnbType = 7
+)
+
+// Enum value maps for EnbType.
+var (
+       EnbType_name = map[int32]string{
+               0: "UNKNOWN_ENB_TYPE",
+               1: "MACRO_ENB",
+               2: "HOME_ENB",
+               3: "SHORT_MACRO_ENB",
+               4: "LONG_MACRO_ENB",
+               5: "MACRO_NG_ENB",
+               6: "SHORT_MACRO_NG_ENB",
+               7: "LONG_MACRO_NG_ENB",
+       }
+       EnbType_value = map[string]int32{
+               "UNKNOWN_ENB_TYPE":   0,
+               "MACRO_ENB":          1,
+               "HOME_ENB":           2,
+               "SHORT_MACRO_ENB":    3,
+               "LONG_MACRO_ENB":     4,
+               "MACRO_NG_ENB":       5,
+               "SHORT_MACRO_NG_ENB": 6,
+               "LONG_MACRO_NG_ENB":  7,
+       }
+)
+
+func (x EnbType) Enum() *EnbType {
+       p := new(EnbType)
+       *p = x
+       return p
+}
+
+func (x EnbType) String() string {
+       return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (EnbType) Descriptor() protoreflect.EnumDescriptor {
+       return file_nb_types_proto_enumTypes[0].Descriptor()
+}
+
+func (EnbType) Type() protoreflect.EnumType {
+       return &file_nb_types_proto_enumTypes[0]
+}
+
+func (x EnbType) Number() protoreflect.EnumNumber {
+       return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use EnbType.Descriptor instead.
+func (EnbType) EnumDescriptor() ([]byte, []int) {
+       return file_nb_types_proto_rawDescGZIP(), []int{0}
+}
+
+type GnbType int32
+
+const (
+       GnbType_UNKNOWN_GNB_TYPE GnbType = 0
+       GnbType_GNB              GnbType = 1
+       GnbType_EN_GNB           GnbType = 2
+)
+
+// Enum value maps for GnbType.
+var (
+       GnbType_name = map[int32]string{
+               0: "UNKNOWN_GNB_TYPE",
+               1: "GNB",
+               2: "EN_GNB",
+       }
+       GnbType_value = map[string]int32{
+               "UNKNOWN_GNB_TYPE": 0,
+               "GNB":              1,
+               "EN_GNB":           2,
+       }
+)
+
+func (x GnbType) Enum() *GnbType {
+       p := new(GnbType)
+       *p = x
+       return p
+}
+
+func (x GnbType) String() string {
+       return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (GnbType) Descriptor() protoreflect.EnumDescriptor {
+       return file_nb_types_proto_enumTypes[1].Descriptor()
+}
+
+func (GnbType) Type() protoreflect.EnumType {
+       return &file_nb_types_proto_enumTypes[1]
+}
+
+func (x GnbType) Number() protoreflect.EnumNumber {
+       return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GnbType.Descriptor instead.
+func (GnbType) EnumDescriptor() ([]byte, []int) {
+       return file_nb_types_proto_rawDescGZIP(), []int{1}
+}
+
+var File_nb_types_proto protoreflect.FileDescriptor
+
+var file_nb_types_proto_rawDesc = []byte{
+       0x0a, 0x0e, 0x6e, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+       0x12, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2a, 0xa6, 0x01, 0x0a, 0x07, 0x45,
+       0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
+       0x4e, 0x5f, 0x45, 0x4e, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09,
+       0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x48,
+       0x4f, 0x4d, 0x45, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x48, 0x4f,
+       0x52, 0x54, 0x5f, 0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x03, 0x12, 0x12,
+       0x0a, 0x0e, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x45, 0x4e, 0x42,
+       0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x4e, 0x47, 0x5f, 0x45,
+       0x4e, 0x42, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41,
+       0x43, 0x52, 0x4f, 0x5f, 0x4e, 0x47, 0x5f, 0x45, 0x4e, 0x42, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11,
+       0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x43, 0x52, 0x4f, 0x5f, 0x4e, 0x47, 0x5f, 0x45, 0x4e,
+       0x42, 0x10, 0x07, 0x2a, 0x34, 0x0a, 0x07, 0x47, 0x6e, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14,
+       0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x47, 0x4e, 0x42, 0x5f, 0x54, 0x59,
+       0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x4e, 0x42, 0x10, 0x01, 0x12, 0x0a, 0x0a,
+       0x06, 0x45, 0x4e, 0x5f, 0x47, 0x4e, 0x42, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+       0x33,
+}
+
+var (
+       file_nb_types_proto_rawDescOnce sync.Once
+       file_nb_types_proto_rawDescData = file_nb_types_proto_rawDesc
+)
+
+func file_nb_types_proto_rawDescGZIP() []byte {
+       file_nb_types_proto_rawDescOnce.Do(func() {
+               file_nb_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_nb_types_proto_rawDescData)
+       })
+       return file_nb_types_proto_rawDescData
+}
+
+var file_nb_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_nb_types_proto_goTypes = []interface{}{
+       (EnbType)(0), // 0: entities.EnbType
+       (GnbType)(0), // 1: entities.GnbType
+}
+var file_nb_types_proto_depIdxs = []int32{
+       0, // [0:0] is the sub-list for method output_type
+       0, // [0:0] is the sub-list for method input_type
+       0, // [0:0] is the sub-list for extension type_name
+       0, // [0:0] is the sub-list for extension extendee
+       0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_nb_types_proto_init() }
+func file_nb_types_proto_init() {
+       if File_nb_types_proto != nil {
+               return
+       }
+       type x struct{}
+       out := protoimpl.TypeBuilder{
+               File: protoimpl.DescBuilder{
+                       GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+                       RawDescriptor: file_nb_types_proto_rawDesc,
+                       NumEnums:      2,
+                       NumMessages:   0,
+                       NumExtensions: 0,
+                       NumServices:   0,
+               },
+               GoTypes:           file_nb_types_proto_goTypes,
+               DependencyIndexes: file_nb_types_proto_depIdxs,
+               EnumInfos:         file_nb_types_proto_enumTypes,
+       }.Build()
+       File_nb_types_proto = out.File
+       file_nb_types_proto_rawDesc = nil
+       file_nb_types_proto_goTypes = nil
+       file_nb_types_proto_depIdxs = nil
+}
diff --git a/entities/nb_types.proto b/entities/nb_types.proto
new file mode 100644 (file)
index 0000000..7414f45
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2019 AT&T Intellectual Property
+ * Copyright 2019 Nokia
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * This source code is part of the near-RT RIC (RAN Intelligent Controller)
+ * platform project (RICP).
+ */
+
+
+syntax = "proto3";
+package entities;
+
+enum EnbType{
+       UNKNOWN_ENB_TYPE = 0;
+       MACRO_ENB = 1;
+       HOME_ENB = 2;
+       SHORT_MACRO_ENB = 3;
+       LONG_MACRO_ENB = 4;
+       MACRO_NG_ENB = 5;
+       SHORT_MACRO_NG_ENB = 6;
+       LONG_MACRO_NG_ENB = 7;
+}
+
+enum GnbType{
+       UNKNOWN_GNB_TYPE = 0;
+       GNB = 1;
+       EN_GNB = 2;
+}
+
index 501763c..9aadc61 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: nodeb_info.proto
 
index 2330991..6046750 100644 (file)
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.26.0
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: ran_function.proto
 
 package entities
 
 import (
+       proto "github.com/golang/protobuf/proto"
        protoreflect "google.golang.org/protobuf/reflect/protoreflect"
        protoimpl "google.golang.org/protobuf/runtime/protoimpl"
        reflect "reflect"
@@ -40,6 +41,10 @@ const (
        _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
+// This is a compile-time assertion that a sufficiently up-to-date version
+// of the legacy proto package is being used.
+const _ = proto.ProtoPackageIsVersion4
+
 type RanFunction struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
@@ -128,8 +133,8 @@ var file_ran_function_proto_rawDesc = []byte{
        0x61, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69,
        0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
        0x6f, 0x6e, 0x5f, 0x6f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x61,
-       0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x69, 0x64, 0x42, 0x04, 0x5a, 0x02,
-       0x2e, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+       0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x69, 0x64, 0x62, 0x06, 0x70, 0x72,
+       0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
index 763f4d6..3a4c435 100644 (file)
@@ -23,7 +23,6 @@
 
 syntax = "proto3";
 package entities;
-option go_package = "./";
 message RanFunction {
     uint32 ran_function_id = 1;
     string ran_function_definition = 2;
index afbe659..925997e 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: ran_load_information.proto
 
index c240538..b7d30da 100644 (file)
@@ -20,7 +20,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-//     protoc-gen-go v1.25.0-devel
+//     protoc-gen-go v1.25.0
 //     protoc        v3.6.1
 // source: x2_setup_failure_response.proto