diff --git a/go/dmi/hw_management_service.pb.go b/go/dmi/hw_management_service.pb.go
index 23af8d7..783cbac 100644
--- a/go/dmi/hw_management_service.pb.go
+++ b/go/dmi/hw_management_service.pb.go
@@ -401,6 +401,59 @@
 	return fileDescriptor_eae902e73066286d, []int{20, 0}
 }
 
+type SetDmLogLevelResponse_Reason int32
+
+const (
+	SetDmLogLevelResponse_UNDEFINED_REASON  SetDmLogLevelResponse_Reason = 0
+	SetDmLogLevelResponse_INTERNAL_ERROR    SetDmLogLevelResponse_Reason = 1
+	SetDmLogLevelResponse_UNKNOWN_LOG_LEVEL SetDmLogLevelResponse_Reason = 2
+)
+
+var SetDmLogLevelResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "INTERNAL_ERROR",
+	2: "UNKNOWN_LOG_LEVEL",
+}
+
+var SetDmLogLevelResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":  0,
+	"INTERNAL_ERROR":    1,
+	"UNKNOWN_LOG_LEVEL": 2,
+}
+
+func (x SetDmLogLevelResponse_Reason) String() string {
+	return proto.EnumName(SetDmLogLevelResponse_Reason_name, int32(x))
+}
+
+func (SetDmLogLevelResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{23, 0}
+}
+
+type GetDmLogLevelResponse_Reason int32
+
+const (
+	GetDmLogLevelResponse_UNDEFINED_REASON GetDmLogLevelResponse_Reason = 0
+	GetDmLogLevelResponse_INTERNAL_ERROR   GetDmLogLevelResponse_Reason = 1
+)
+
+var GetDmLogLevelResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "INTERNAL_ERROR",
+}
+
+var GetDmLogLevelResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"INTERNAL_ERROR":   1,
+}
+
+func (x GetDmLogLevelResponse_Reason) String() string {
+	return proto.EnumName(GetDmLogLevelResponse_Reason_name, int32(x))
+}
+
+func (GetDmLogLevelResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{25, 0}
+}
+
 type RebootDeviceResponse_Reason int32
 
 const (
@@ -432,7 +485,7 @@
 }
 
 func (RebootDeviceResponse_Reason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{24, 0}
+	return fileDescriptor_eae902e73066286d, []int{28, 0}
 }
 
 type PhysicalInventoryRequest struct {
@@ -1632,6 +1685,194 @@
 	return nil
 }
 
+type SetDmLogLevelRequest struct {
+	Level                LogLevel `protobuf:"varint,1,opt,name=level,proto3,enum=dmi.LogLevel" json:"level,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SetDmLogLevelRequest) Reset()         { *m = SetDmLogLevelRequest{} }
+func (m *SetDmLogLevelRequest) String() string { return proto.CompactTextString(m) }
+func (*SetDmLogLevelRequest) ProtoMessage()    {}
+func (*SetDmLogLevelRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{22}
+}
+
+func (m *SetDmLogLevelRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SetDmLogLevelRequest.Unmarshal(m, b)
+}
+func (m *SetDmLogLevelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SetDmLogLevelRequest.Marshal(b, m, deterministic)
+}
+func (m *SetDmLogLevelRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SetDmLogLevelRequest.Merge(m, src)
+}
+func (m *SetDmLogLevelRequest) XXX_Size() int {
+	return xxx_messageInfo_SetDmLogLevelRequest.Size(m)
+}
+func (m *SetDmLogLevelRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_SetDmLogLevelRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetDmLogLevelRequest proto.InternalMessageInfo
+
+func (m *SetDmLogLevelRequest) GetLevel() LogLevel {
+	if m != nil {
+		return m.Level
+	}
+	return LogLevel_TRACE
+}
+
+type SetDmLogLevelResponse struct {
+	Status               Status                       `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               SetDmLogLevelResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.SetDmLogLevelResponse_Reason" json:"reason,omitempty"`
+	ReasonDetail         string                       `protobuf:"bytes,3,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
+	XXX_unrecognized     []byte                       `json:"-"`
+	XXX_sizecache        int32                        `json:"-"`
+}
+
+func (m *SetDmLogLevelResponse) Reset()         { *m = SetDmLogLevelResponse{} }
+func (m *SetDmLogLevelResponse) String() string { return proto.CompactTextString(m) }
+func (*SetDmLogLevelResponse) ProtoMessage()    {}
+func (*SetDmLogLevelResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{23}
+}
+
+func (m *SetDmLogLevelResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SetDmLogLevelResponse.Unmarshal(m, b)
+}
+func (m *SetDmLogLevelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SetDmLogLevelResponse.Marshal(b, m, deterministic)
+}
+func (m *SetDmLogLevelResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SetDmLogLevelResponse.Merge(m, src)
+}
+func (m *SetDmLogLevelResponse) XXX_Size() int {
+	return xxx_messageInfo_SetDmLogLevelResponse.Size(m)
+}
+func (m *SetDmLogLevelResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_SetDmLogLevelResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetDmLogLevelResponse proto.InternalMessageInfo
+
+func (m *SetDmLogLevelResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *SetDmLogLevelResponse) GetReason() SetDmLogLevelResponse_Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return SetDmLogLevelResponse_UNDEFINED_REASON
+}
+
+func (m *SetDmLogLevelResponse) GetReasonDetail() string {
+	if m != nil {
+		return m.ReasonDetail
+	}
+	return ""
+}
+
+type GetDmLogLevelRequest struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetDmLogLevelRequest) Reset()         { *m = GetDmLogLevelRequest{} }
+func (m *GetDmLogLevelRequest) String() string { return proto.CompactTextString(m) }
+func (*GetDmLogLevelRequest) ProtoMessage()    {}
+func (*GetDmLogLevelRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{24}
+}
+
+func (m *GetDmLogLevelRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetDmLogLevelRequest.Unmarshal(m, b)
+}
+func (m *GetDmLogLevelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetDmLogLevelRequest.Marshal(b, m, deterministic)
+}
+func (m *GetDmLogLevelRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetDmLogLevelRequest.Merge(m, src)
+}
+func (m *GetDmLogLevelRequest) XXX_Size() int {
+	return xxx_messageInfo_GetDmLogLevelRequest.Size(m)
+}
+func (m *GetDmLogLevelRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetDmLogLevelRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetDmLogLevelRequest proto.InternalMessageInfo
+
+type GetDmLogLevelResponse struct {
+	Level                LogLevel                     `protobuf:"varint,1,opt,name=level,proto3,enum=dmi.LogLevel" json:"level,omitempty"`
+	Status               Status                       `protobuf:"varint,2,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               GetDmLogLevelResponse_Reason `protobuf:"varint,3,opt,name=reason,proto3,enum=dmi.GetDmLogLevelResponse_Reason" json:"reason,omitempty"`
+	ReasonDetail         string                       `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
+	XXX_unrecognized     []byte                       `json:"-"`
+	XXX_sizecache        int32                        `json:"-"`
+}
+
+func (m *GetDmLogLevelResponse) Reset()         { *m = GetDmLogLevelResponse{} }
+func (m *GetDmLogLevelResponse) String() string { return proto.CompactTextString(m) }
+func (*GetDmLogLevelResponse) ProtoMessage()    {}
+func (*GetDmLogLevelResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{25}
+}
+
+func (m *GetDmLogLevelResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetDmLogLevelResponse.Unmarshal(m, b)
+}
+func (m *GetDmLogLevelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetDmLogLevelResponse.Marshal(b, m, deterministic)
+}
+func (m *GetDmLogLevelResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetDmLogLevelResponse.Merge(m, src)
+}
+func (m *GetDmLogLevelResponse) XXX_Size() int {
+	return xxx_messageInfo_GetDmLogLevelResponse.Size(m)
+}
+func (m *GetDmLogLevelResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetDmLogLevelResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetDmLogLevelResponse proto.InternalMessageInfo
+
+func (m *GetDmLogLevelResponse) GetLevel() LogLevel {
+	if m != nil {
+		return m.Level
+	}
+	return LogLevel_TRACE
+}
+
+func (m *GetDmLogLevelResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *GetDmLogLevelResponse) GetReason() GetDmLogLevelResponse_Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return GetDmLogLevelResponse_UNDEFINED_REASON
+}
+
+func (m *GetDmLogLevelResponse) GetReasonDetail() string {
+	if m != nil {
+		return m.ReasonDetail
+	}
+	return ""
+}
+
 type Heartbeat struct {
 	HeartbeatSignature   uint32   `protobuf:"fixed32,1,opt,name=heartbeat_signature,json=heartbeatSignature,proto3" json:"heartbeat_signature,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1643,7 +1884,7 @@
 func (m *Heartbeat) String() string { return proto.CompactTextString(m) }
 func (*Heartbeat) ProtoMessage()    {}
 func (*Heartbeat) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{22}
+	return fileDescriptor_eae902e73066286d, []int{26}
 }
 
 func (m *Heartbeat) XXX_Unmarshal(b []byte) error {
@@ -1682,7 +1923,7 @@
 func (m *RebootDeviceRequest) String() string { return proto.CompactTextString(m) }
 func (*RebootDeviceRequest) ProtoMessage()    {}
 func (*RebootDeviceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{23}
+	return fileDescriptor_eae902e73066286d, []int{27}
 }
 
 func (m *RebootDeviceRequest) XXX_Unmarshal(b []byte) error {
@@ -1723,7 +1964,7 @@
 func (m *RebootDeviceResponse) String() string { return proto.CompactTextString(m) }
 func (*RebootDeviceResponse) ProtoMessage()    {}
 func (*RebootDeviceResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{24}
+	return fileDescriptor_eae902e73066286d, []int{28}
 }
 
 func (m *RebootDeviceResponse) XXX_Unmarshal(b []byte) error {
@@ -1777,6 +2018,8 @@
 	proto.RegisterEnum("dmi.GetMsgBusEndpointResponse_Reason", GetMsgBusEndpointResponse_Reason_name, GetMsgBusEndpointResponse_Reason_value)
 	proto.RegisterEnum("dmi.SetLogLevelResponse_Reason", SetLogLevelResponse_Reason_name, SetLogLevelResponse_Reason_value)
 	proto.RegisterEnum("dmi.GetLogLevelResponse_Reason", GetLogLevelResponse_Reason_name, GetLogLevelResponse_Reason_value)
+	proto.RegisterEnum("dmi.SetDmLogLevelResponse_Reason", SetDmLogLevelResponse_Reason_name, SetDmLogLevelResponse_Reason_value)
+	proto.RegisterEnum("dmi.GetDmLogLevelResponse_Reason", GetDmLogLevelResponse_Reason_name, GetDmLogLevelResponse_Reason_value)
 	proto.RegisterEnum("dmi.RebootDeviceResponse_Reason", RebootDeviceResponse_Reason_name, RebootDeviceResponse_Reason_value)
 	proto.RegisterType((*PhysicalInventoryRequest)(nil), "dmi.PhysicalInventoryRequest")
 	proto.RegisterType((*PhysicalInventoryResponse)(nil), "dmi.PhysicalInventoryResponse")
@@ -1800,6 +2043,10 @@
 	proto.RegisterType((*GetLogLevelRequest)(nil), "dmi.GetLogLevelRequest")
 	proto.RegisterType((*GetLogLevelResponse)(nil), "dmi.GetLogLevelResponse")
 	proto.RegisterType((*GetLoggableEntitiesRequest)(nil), "dmi.GetLoggableEntitiesRequest")
+	proto.RegisterType((*SetDmLogLevelRequest)(nil), "dmi.SetDmLogLevelRequest")
+	proto.RegisterType((*SetDmLogLevelResponse)(nil), "dmi.SetDmLogLevelResponse")
+	proto.RegisterType((*GetDmLogLevelRequest)(nil), "dmi.GetDmLogLevelRequest")
+	proto.RegisterType((*GetDmLogLevelResponse)(nil), "dmi.GetDmLogLevelResponse")
 	proto.RegisterType((*Heartbeat)(nil), "dmi.Heartbeat")
 	proto.RegisterType((*RebootDeviceRequest)(nil), "dmi.RebootDeviceRequest")
 	proto.RegisterType((*RebootDeviceResponse)(nil), "dmi.RebootDeviceResponse")
@@ -1808,108 +2055,115 @@
 func init() { proto.RegisterFile("dmi/hw_management_service.proto", fileDescriptor_eae902e73066286d) }
 
 var fileDescriptor_eae902e73066286d = []byte{
-	// 1610 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0xdb, 0x46,
-	0x16, 0x5f, 0x51, 0xb2, 0x13, 0x3d, 0x27, 0xb6, 0x3c, 0x4e, 0x1c, 0x89, 0x41, 0x6c, 0x2f, 0x83,
-	0x6c, 0x9c, 0xdd, 0x44, 0x32, 0x94, 0xc3, 0x66, 0xff, 0x2f, 0x2d, 0xd1, 0x14, 0x13, 0x89, 0x14,
-	0x86, 0x52, 0x8c, 0x2c, 0x16, 0x4b, 0xd0, 0xd2, 0x58, 0x26, 0x56, 0x24, 0xb5, 0x22, 0xe5, 0xc0,
-	0x1f, 0x63, 0x0f, 0x3d, 0xf4, 0xd0, 0xa2, 0x9f, 0xa0, 0x40, 0xaf, 0x41, 0xef, 0x3d, 0xf4, 0xda,
-	0x63, 0x81, 0xa2, 0x1f, 0xa1, 0xfd, 0x04, 0x85, 0x38, 0xa4, 0xfe, 0x50, 0xa4, 0x64, 0xcb, 0x09,
-	0x9a, 0x9b, 0x38, 0xf3, 0xe6, 0x37, 0x6f, 0xde, 0xef, 0xcd, 0x7b, 0x6f, 0x9e, 0x60, 0xb7, 0x6d,
-	0x1a, 0x85, 0xb3, 0xb7, 0x9a, 0xa9, 0x5b, 0x7a, 0x87, 0x98, 0xc4, 0x72, 0x35, 0x87, 0xf4, 0xcf,
-	0x8d, 0x16, 0xc9, 0xf7, 0xfa, 0xb6, 0x6b, 0xa3, 0x64, 0xdb, 0x34, 0xd8, 0xcd, 0xa1, 0x54, 0xcb,
-	0x36, 0x4d, 0xdb, 0x72, 0xe8, 0x38, 0x7b, 0x8b, 0x2e, 0xf4, 0xbf, 0xee, 0x77, 0x6c, 0xbb, 0xd3,
-	0x25, 0x05, 0xef, 0xeb, 0x64, 0x70, 0x5a, 0x20, 0x66, 0xcf, 0xbd, 0xa0, 0x93, 0xdc, 0x11, 0x64,
-	0xeb, 0x67, 0x17, 0x8e, 0xd1, 0xd2, 0xbb, 0x92, 0x75, 0x4e, 0x2c, 0xd7, 0xee, 0x5f, 0x60, 0xf2,
-	0xbf, 0x01, 0x71, 0x5c, 0xf4, 0x7b, 0x58, 0x6b, 0x93, 0xe1, 0x76, 0xda, 0x60, 0x60, 0xb4, 0xb3,
-	0x89, 0xbd, 0xc4, 0xfe, 0x5a, 0x31, 0x9d, 0x6f, 0x9b, 0x46, 0xbe, 0x39, 0x30, 0xda, 0x18, 0xe8,
-	0xec, 0xf0, 0x37, 0xf7, 0x15, 0x03, 0xb9, 0x08, 0x20, 0xa7, 0x67, 0x5b, 0x0e, 0x41, 0x0f, 0x61,
-	0xd5, 0x71, 0x75, 0x77, 0xe0, 0x78, 0x20, 0xeb, 0xc5, 0x35, 0x0f, 0x44, 0xf5, 0x86, 0xb0, 0x3f,
-	0x85, 0xfe, 0x06, 0xab, 0x7d, 0xa2, 0x3b, 0xb6, 0x95, 0x65, 0x3c, 0xa1, 0x47, 0x9e, 0x50, 0x2c,
-	0x68, 0x1e, 0x7b, 0xc2, 0xd8, 0x5f, 0x84, 0xfe, 0x00, 0x69, 0x23, 0x90, 0xc9, 0x26, 0x3d, 0x5d,
-	0x6f, 0x7b, 0x08, 0x15, 0xbd, 0xdf, 0x7e, 0xab, 0xf7, 0x09, 0x1e, 0xcf, 0xa3, 0x87, 0x70, 0x9b,
-	0x2e, 0xd3, 0xda, 0xc4, 0xd5, 0x8d, 0x6e, 0x36, 0xb5, 0x97, 0xd8, 0x4f, 0xe3, 0x5b, 0x74, 0xb0,
-	0xec, 0x8d, 0x71, 0xff, 0x81, 0x55, 0xba, 0x07, 0xba, 0x03, 0x99, 0xa6, 0x5c, 0x16, 0x8e, 0x24,
-	0x59, 0x28, 0x6b, 0x58, 0xe0, 0x55, 0x45, 0xce, 0xfc, 0x06, 0x21, 0x58, 0x6f, 0xca, 0xaf, 0x64,
-	0xe5, 0x58, 0xd6, 0xca, 0xc2, 0x6b, 0xa9, 0x24, 0x64, 0x12, 0xc3, 0x31, 0x49, 0x6e, 0x08, 0x58,
-	0xe6, 0xab, 0x9a, 0x80, 0xb1, 0x82, 0x33, 0x0c, 0xda, 0x06, 0x44, 0xe7, 0xb5, 0xa6, 0x8c, 0x05,
-	0xbe, 0x54, 0xe1, 0x0f, 0xab, 0x42, 0x26, 0xc9, 0x7d, 0x91, 0x80, 0x5c, 0xe5, 0xb8, 0x64, 0x9b,
-	0x3d, 0xdb, 0x22, 0x96, 0x2b, 0x59, 0xa7, 0xb6, 0x48, 0xdc, 0x25, 0xac, 0x8f, 0x0e, 0x60, 0xbd,
-	0x15, 0xc0, 0x50, 0x71, 0x26, 0x2c, 0x7e, 0x7b, 0x24, 0xe0, 0xad, 0x78, 0x34, 0xb9, 0xc2, 0xd2,
-	0x4d, 0xe2, 0x99, 0x2c, 0x3d, 0x21, 0x26, 0xeb, 0x26, 0xe1, 0xbe, 0x65, 0x80, 0x8d, 0x52, 0xf1,
-	0x2a, 0xbc, 0xfe, 0x3d, 0xc4, 0xeb, 0xef, 0x28, 0x2b, 0xb1, 0xa8, 0x61, 0x62, 0x9f, 0x42, 0x7a,
-	0xa4, 0x94, 0x4f, 0xec, 0xba, 0x07, 0x31, 0x02, 0xc0, 0x63, 0x81, 0xcb, 0x31, 0x3b, 0x58, 0x82,
-	0xd9, 0xbb, 0xb0, 0x19, 0x8c, 0x95, 0x94, 0x5a, 0x5d, 0x91, 0x05, 0xb9, 0x91, 0x61, 0x22, 0x08,
-	0x4f, 0xc6, 0x10, 0x9e, 0xe2, 0xbe, 0x9b, 0x25, 0x5c, 0xfd, 0xb8, 0x08, 0x47, 0x45, 0xb8, 0xd1,
-	0x3a, 0xd3, 0xad, 0x0e, 0x71, 0x3c, 0xc3, 0xad, 0x15, 0xb3, 0x1e, 0x62, 0xcd, 0x6e, 0x1b, 0xa7,
-	0x86, 0x7e, 0xd2, 0x25, 0x63, 0xa3, 0x07, 0x82, 0xdc, 0x37, 0xb3, 0x4e, 0xa2, 0x7e, 0x10, 0x27,
-	0x51, 0xe3, 0x9d, 0x64, 0x86, 0xf6, 0x64, 0x04, 0xed, 0x9f, 0x27, 0xde, 0x33, 0xef, 0xaf, 0xf9,
-	0xaa, 0x54, 0xd6, 0xea, 0x3c, 0xe6, 0x6b, 0x6a, 0x26, 0x19, 0xe1, 0x0b, 0xa9, 0x18, 0x5f, 0x58,
-	0x41, 0x5b, 0xb0, 0xa1, 0x0a, 0x0d, 0xad, 0x29, 0xab, 0xcd, 0x7a, 0x5d, 0xc1, 0x0d, 0xa1, 0x9c,
-	0x59, 0xe5, 0xfe, 0x9f, 0x84, 0xfb, 0xaa, 0xab, 0xf7, 0xdd, 0xda, 0x30, 0xe4, 0x1b, 0x56, 0xa7,
-	0xec, 0x51, 0x7e, 0x35, 0x53, 0xfe, 0x23, 0x64, 0xca, 0xc7, 0x81, 0x50, 0x1c, 0x6c, 0xd8, 0x96,
-	0x21, 0x47, 0x4c, 0xce, 0x73, 0xc4, 0x4b, 0x5d, 0xb7, 0x77, 0x8b, 0xec, 0xce, 0xc2, 0xb6, 0x6f,
-	0x24, 0xbe, 0x8a, 0x05, 0xbe, 0xfc, 0x46, 0xab, 0xf1, 0x32, 0x2f, 0x0a, 0xe5, 0x4c, 0x02, 0xfd,
-	0x16, 0x1e, 0x28, 0x75, 0x01, 0xf3, 0x0d, 0x49, 0x91, 0x47, 0xd3, 0x92, 0xac, 0xd5, 0xb1, 0x22,
-	0x62, 0x41, 0x55, 0xaf, 0xc0, 0x05, 0x0b, 0xdb, 0x7c, 0xb3, 0x51, 0x11, 0xe4, 0x86, 0x54, 0xa2,
-	0x78, 0x47, 0xbc, 0x54, 0x6d, 0xe2, 0x21, 0x1f, 0xf7, 0x60, 0x4b, 0x92, 0x87, 0x04, 0xf3, 0x0d,
-	0xe9, 0xb0, 0x2a, 0x04, 0xfc, 0xaf, 0x72, 0x05, 0xc8, 0xa9, 0xae, 0xdd, 0x0b, 0x9b, 0x8e, 0xde,
-	0x59, 0x04, 0x29, 0xef, 0x2e, 0x25, 0xbc, 0x53, 0x7b, 0xbf, 0xb9, 0x9f, 0x13, 0xc0, 0x46, 0xad,
-	0xb8, 0xfe, 0x75, 0x88, 0x47, 0x5d, 0xea, 0x3a, 0xbc, 0x5c, 0xe2, 0x36, 0x44, 0xbb, 0x33, 0xc3,
-	0x99, 0xb0, 0xe9, 0x69, 0x46, 0xda, 0x54, 0xb1, 0xe1, 0x75, 0x45, 0x4f, 0x21, 0x65, 0x58, 0xa7,
-	0xb6, 0x1f, 0xca, 0xe2, 0x23, 0x89, 0x27, 0x15, 0x76, 0x3b, 0x66, 0x5e, 0xb9, 0xf1, 0x43, 0x02,
-	0xb6, 0xa7, 0xf6, 0x73, 0xae, 0x66, 0xdf, 0x3f, 0x87, 0xec, 0xcb, 0x51, 0xdd, 0x22, 0x11, 0xc3,
-	0xb6, 0x3d, 0x80, 0x1b, 0x54, 0x13, 0x27, 0x9b, 0xdc, 0x4b, 0xee, 0xaf, 0x15, 0xb7, 0x67, 0x17,
-	0x0f, 0x8f, 0x8f, 0x03, 0x31, 0xae, 0xb8, 0xd8, 0xd0, 0x21, 0x5f, 0x4d, 0x70, 0x9f, 0x25, 0x20,
-	0xa7, 0x12, 0xb7, 0x6a, 0x77, 0x86, 0x6c, 0x0b, 0x56, 0xbb, 0x67, 0x1b, 0xd6, 0x52, 0xb9, 0xe2,
-	0x09, 0x64, 0xba, 0x14, 0x45, 0x23, 0x3e, 0x8c, 0x77, 0xea, 0x34, 0xde, 0xe8, 0x4e, 0xa3, 0x4f,
-	0x8a, 0x7a, 0xe5, 0x61, 0xcb, 0x0e, 0x3c, 0x27, 0x10, 0xad, 0xfb, 0xc3, 0xdc, 0x8f, 0x8c, 0xa7,
-	0x1f, 0x26, 0xa6, 0xed, 0x92, 0xb1, 0x7a, 0xd7, 0x2f, 0xf8, 0x62, 0x41, 0x97, 0xf2, 0xf1, 0x77,
-	0x89, 0xf7, 0x54, 0xc4, 0xb1, 0xb0, 0x5d, 0x55, 0x44, 0x51, 0x92, 0x45, 0x4d, 0x90, 0xcb, 0x75,
-	0x45, 0x92, 0x1b, 0xa3, 0x7c, 0xff, 0x10, 0x76, 0x67, 0xe6, 0xea, 0x58, 0x69, 0x28, 0x25, 0x65,
-	0x1c, 0x7c, 0x72, 0x70, 0xb7, 0xa6, 0x8a, 0x87, 0x4d, 0x35, 0xbc, 0x7e, 0x25, 0xe6, 0x52, 0xad,
-	0x72, 0xdf, 0x33, 0xc0, 0x8a, 0x11, 0x3e, 0x70, 0xfd, 0x48, 0x12, 0x8f, 0x1a, 0xb6, 0x72, 0x94,
-	0xf7, 0x24, 0x2f, 0xef, 0x3d, 0xa9, 0x48, 0xef, 0x99, 0xe5, 0x6e, 0xe5, 0x57, 0xa8, 0xbf, 0x4b,
-	0x90, 0x55, 0x89, 0x5b, 0x73, 0x3a, 0x87, 0x03, 0x27, 0x7c, 0xc1, 0x1e, 0xc3, 0x86, 0xe9, 0x74,
-	0x4e, 0x06, 0xce, 0xf8, 0xd4, 0x34, 0xc6, 0xaf, 0xd3, 0xe1, 0x40, 0x9e, 0xfb, 0x94, 0x81, 0x9c,
-	0x38, 0x8b, 0x72, 0xfd, 0x7b, 0x10, 0x0b, 0x1a, 0x66, 0x28, 0x42, 0xd5, 0x64, 0x94, 0xaa, 0x97,
-	0xcb, 0xd5, 0x2f, 0xaf, 0x1e, 0xab, 0x62, 0x93, 0xc2, 0x1b, 0xc8, 0x08, 0x96, 0x6b, 0xb8, 0x06,
-	0x71, 0xaa, 0x76, 0xa7, 0x4a, 0xce, 0x49, 0x17, 0x3d, 0x81, 0x9b, 0x5d, 0xff, 0xb7, 0x6f, 0x13,
-	0xfa, 0x4a, 0x0b, 0x04, 0xf0, 0x68, 0x1a, 0xb1, 0x70, 0x93, 0xf8, 0xcb, 0xb3, 0xcc, 0x5e, 0x72,
-	0x3f, 0x8d, 0x47, 0xdf, 0xdc, 0x00, 0x10, 0x8d, 0x8e, 0x74, 0xd1, 0x12, 0x61, 0xf1, 0x39, 0xa4,
-	0xbb, 0xc3, 0x77, 0xf1, 0x39, 0xe9, 0x52, 0xf8, 0xb5, 0xe2, 0x5d, 0x4f, 0x32, 0xac, 0x32, 0x1e,
-	0xcb, 0x71, 0x5f, 0x33, 0xb0, 0x35, 0xb5, 0xaf, 0xcf, 0xf3, 0x55, 0x36, 0x1e, 0xfb, 0x04, 0x13,
-	0xef, 0x13, 0x7f, 0x1c, 0xf9, 0x44, 0xd2, 0x13, 0xda, 0x0d, 0x62, 0x63, 0x78, 0xeb, 0x85, 0x51,
-	0x31, 0x8a, 0xe4, 0xf3, 0xf7, 0x77, 0xb3, 0x02, 0xb9, 0xaa, 0x32, 0x0c, 0x7e, 0x0d, 0xa9, 0xf1,
-	0x66, 0xce, 0x03, 0xe8, 0xdf, 0x80, 0xc4, 0xeb, 0xb1, 0x36, 0xcf, 0x27, 0x7e, 0x62, 0x60, 0x4b,
-	0xbc, 0x26, 0x39, 0xd4, 0x2b, 0xaa, 0x97, 0xf4, 0x0a, 0x2a, 0x37, 0xc1, 0x68, 0xf2, 0x32, 0x8c,
-	0xa6, 0x26, 0x18, 0x15, 0x97, 0x60, 0x74, 0xe5, 0x23, 0x62, 0xb4, 0x32, 0xca, 0x50, 0xc3, 0x92,
-	0x2e, 0x30, 0xd2, 0x32, 0x1d, 0xa4, 0xbf, 0x42, 0xba, 0x42, 0xf4, 0xbe, 0x7b, 0x42, 0x74, 0x17,
-	0x15, 0x60, 0xeb, 0x2c, 0xf8, 0xd0, 0x1c, 0xa3, 0x63, 0xe9, 0xee, 0xa0, 0x4f, 0xcb, 0xec, 0x1b,
-	0x18, 0x8d, 0xa6, 0xd4, 0x60, 0x86, 0xe3, 0x61, 0x0b, 0x93, 0x13, 0xdb, 0x76, 0xa7, 0xeb, 0xf3,
-	0xab, 0x28, 0xf0, 0x09, 0x03, 0x77, 0xa6, 0x31, 0x66, 0x82, 0xf8, 0x1c, 0x7a, 0x5f, 0x84, 0xe8,
-	0xdd, 0xf3, 0x84, 0xa2, 0xf0, 0x96, 0xe2, 0xf7, 0xe2, 0xc3, 0xe6, 0xc2, 0x61, 0x75, 0xe2, 0x8f,
-	0x4b, 0xb2, 0x76, 0x8c, 0x15, 0x59, 0xd4, 0xd4, 0x06, 0xdf, 0x10, 0x32, 0xa9, 0xe2, 0x97, 0x69,
-	0xc8, 0xc9, 0xba, 0x6b, 0x9c, 0x93, 0xca, 0x71, 0x6d, 0xd4, 0x8a, 0x54, 0x69, 0x27, 0x12, 0xa9,
-	0xb0, 0x15, 0xf1, 0xb4, 0x44, 0xb1, 0xc5, 0x3e, 0xbb, 0xb7, 0xe8, 0x39, 0x7a, 0x90, 0x40, 0x4d,
-	0x40, 0xb3, 0x6f, 0x1d, 0xb4, 0x13, 0xfb, 0x08, 0xf2, 0xc8, 0x66, 0x77, 0x17, 0x3c, 0x92, 0x50,
-	0x05, 0x36, 0x87, 0x59, 0x75, 0xaa, 0xca, 0x47, 0xdb, 0x79, 0xda, 0x1f, 0xcd, 0x07, 0xfd, 0xd1,
-	0xbc, 0x60, 0xf6, 0xdc, 0x0b, 0xf6, 0xfe, 0x9c, 0x27, 0x01, 0x3a, 0x86, 0x3b, 0x22, 0x71, 0x67,
-	0x7a, 0x93, 0xe8, 0x41, 0x5c, 0xcf, 0x92, 0x6a, 0xb8, 0x33, 0xbf, 0xa5, 0x79, 0x90, 0x40, 0xc7,
-	0x5e, 0x84, 0x0c, 0xf5, 0x3d, 0xfc, 0x93, 0xc7, 0xf6, 0x0a, 0xfd, 0x93, 0xc7, 0xb7, 0xd4, 0x7c,
-	0x93, 0x5e, 0x12, 0x58, 0x5d, 0x00, 0x3c, 0xd9, 0xdc, 0x69, 0x04, 0x79, 0x78, 0xaa, 0x12, 0xdc,
-	0x99, 0xc8, 0x56, 0x11, 0xcf, 0x17, 0x76, 0x67, 0x7e, 0xa5, 0x8f, 0x8e, 0x82, 0x3c, 0x31, 0x85,
-	0xba, 0x31, 0xd5, 0xce, 0x95, 0xca, 0xec, 0xee, 0x82, 0x5a, 0x16, 0x61, 0xd8, 0x9c, 0xa9, 0xf0,
-	0x7c, 0x8e, 0xe2, 0x2a, 0xbf, 0x85, 0xba, 0xbd, 0xa2, 0x4e, 0x34, 0x8d, 0x19, 0xe7, 0x44, 0x3b,
-	0xf3, 0x4b, 0x39, 0x54, 0x0f, 0x32, 0xd6, 0x54, 0xf8, 0x44, 0x53, 0x07, 0x8b, 0x08, 0xac, 0x6c,
-	0x36, 0x2e, 0x79, 0xa0, 0x7f, 0xc2, 0xda, 0x44, 0x95, 0x80, 0xee, 0xcd, 0xd6, 0x0d, 0x93, 0x08,
-	0x6a, 0x34, 0x82, 0x38, 0x83, 0x20, 0xc6, 0x21, 0x44, 0xe9, 0xf0, 0x02, 0xd6, 0x47, 0xa1, 0xbc,
-	0x74, 0x46, 0x5a, 0xff, 0x8d, 0xb5, 0x0f, 0x6d, 0xe4, 0x8e, 0xe3, 0x7e, 0x09, 0x6e, 0x4d, 0x86,
-	0x4c, 0x3f, 0x8c, 0x44, 0x44, 0x76, 0x36, 0x17, 0x1b, 0x5f, 0x0f, 0xff, 0xf2, 0xaf, 0x3f, 0x75,
-	0x0c, 0xf7, 0x6c, 0x70, 0x92, 0x6f, 0xd9, 0x66, 0xc1, 0xee, 0x11, 0xab, 0x65, 0xf7, 0xdb, 0x05,
-	0x1a, 0xea, 0x9f, 0x8d, 0xff, 0x4d, 0x79, 0x66, 0x58, 0x2e, 0xe9, 0x9f, 0xea, 0x2d, 0x52, 0x38,
-	0x7f, 0x5e, 0xe8, 0xd8, 0x85, 0xb6, 0x69, 0x9c, 0xac, 0x7a, 0x1a, 0x3e, 0xff, 0x25, 0x00, 0x00,
-	0xff, 0xff, 0xbb, 0x83, 0x4d, 0xcf, 0x7d, 0x19, 0x00, 0x00,
+	// 1726 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xcd, 0x6f, 0xe3, 0xc6,
+	0x15, 0x2f, 0x29, 0xdb, 0x1b, 0x3d, 0xef, 0x7a, 0xe5, 0xf1, 0xda, 0x91, 0xb8, 0x88, 0xed, 0xe5,
+	0x22, 0xcd, 0xa6, 0x4d, 0x24, 0x43, 0x7b, 0x68, 0xb6, 0xe9, 0x17, 0x2d, 0xd1, 0x14, 0x13, 0x89,
+	0x14, 0x86, 0xd2, 0x1a, 0x5b, 0x14, 0x25, 0x68, 0x69, 0x2c, 0x13, 0x15, 0x49, 0x55, 0xa4, 0x1c,
+	0xf8, 0xcf, 0xe8, 0xa1, 0x87, 0x1e, 0x5a, 0xf4, 0x5f, 0xe8, 0x35, 0x28, 0x7a, 0xed, 0xa1, 0xd7,
+	0x1e, 0x0b, 0x14, 0x3d, 0xf5, 0xdc, 0x02, 0xbd, 0x17, 0xe4, 0x90, 0xfa, 0xa0, 0x48, 0x7d, 0x79,
+	0x83, 0xec, 0x4d, 0x9c, 0x79, 0xf3, 0xe3, 0xf0, 0xfd, 0xde, 0xfc, 0xe6, 0xbd, 0x27, 0x38, 0xe9,
+	0x5a, 0x66, 0xe9, 0xe6, 0x2b, 0xdd, 0x32, 0x6c, 0xa3, 0x47, 0x2c, 0x62, 0x7b, 0xba, 0x4b, 0x86,
+	0xb7, 0x66, 0x87, 0x14, 0x07, 0x43, 0xc7, 0x73, 0x50, 0xa6, 0x6b, 0x99, 0xdc, 0xbe, 0x6f, 0xd5,
+	0x71, 0x2c, 0xcb, 0xb1, 0x5d, 0x3a, 0xce, 0x3d, 0xa4, 0x0b, 0xc3, 0xa7, 0xa7, 0x3d, 0xc7, 0xe9,
+	0xf5, 0x49, 0x29, 0x78, 0xba, 0x1a, 0x5d, 0x97, 0x88, 0x35, 0xf0, 0xee, 0xe8, 0x24, 0x7f, 0x01,
+	0xf9, 0xe6, 0xcd, 0x9d, 0x6b, 0x76, 0x8c, 0xbe, 0x6c, 0xdf, 0x12, 0xdb, 0x73, 0x86, 0x77, 0x98,
+	0xfc, 0x7a, 0x44, 0x5c, 0x0f, 0x7d, 0x0f, 0x76, 0xbb, 0xc4, 0x7f, 0x9d, 0x3e, 0x1a, 0x99, 0xdd,
+	0x3c, 0x73, 0xca, 0xbc, 0xd8, 0x2d, 0x67, 0x8b, 0x5d, 0xcb, 0x2c, 0xb6, 0x47, 0x66, 0x17, 0x03,
+	0x9d, 0xf5, 0x7f, 0xf3, 0x7f, 0x62, 0xa1, 0x90, 0x00, 0xe4, 0x0e, 0x1c, 0xdb, 0x25, 0xe8, 0x39,
+	0xec, 0xb8, 0x9e, 0xe1, 0x8d, 0xdc, 0x00, 0x64, 0xaf, 0xbc, 0x1b, 0x80, 0x68, 0xc1, 0x10, 0x0e,
+	0xa7, 0xd0, 0x8f, 0x61, 0x67, 0x48, 0x0c, 0xd7, 0xb1, 0xf3, 0x6c, 0x60, 0xf4, 0x61, 0x60, 0x94,
+	0x0a, 0x5a, 0xc4, 0x81, 0x31, 0x0e, 0x17, 0xa1, 0xef, 0x43, 0xd6, 0x8c, 0x6c, 0xf2, 0x99, 0x60,
+	0xaf, 0x8f, 0x02, 0x84, 0x9a, 0x31, 0xec, 0x7e, 0x65, 0x0c, 0x09, 0x9e, 0xcc, 0xa3, 0xe7, 0xf0,
+	0x88, 0x2e, 0xd3, 0xbb, 0xc4, 0x33, 0xcc, 0x7e, 0x7e, 0xeb, 0x94, 0x79, 0x91, 0xc5, 0x0f, 0xe9,
+	0x60, 0x35, 0x18, 0xe3, 0x7f, 0x09, 0x3b, 0xf4, 0x1d, 0xe8, 0x09, 0xe4, 0xda, 0x4a, 0x55, 0xbc,
+	0x90, 0x15, 0xb1, 0xaa, 0x63, 0x51, 0xd0, 0x54, 0x25, 0xf7, 0x1d, 0x84, 0x60, 0xaf, 0xad, 0x7c,
+	0xa9, 0xa8, 0x97, 0x8a, 0x5e, 0x15, 0x5f, 0xcb, 0x15, 0x31, 0xc7, 0xf8, 0x63, 0xb2, 0xd2, 0x12,
+	0xb1, 0x22, 0xd4, 0x75, 0x11, 0x63, 0x15, 0xe7, 0x58, 0x74, 0x04, 0x88, 0xce, 0xeb, 0x6d, 0x05,
+	0x8b, 0x42, 0xa5, 0x26, 0x9c, 0xd7, 0xc5, 0x5c, 0x86, 0xff, 0x23, 0x03, 0x85, 0xda, 0x65, 0xc5,
+	0xb1, 0x06, 0x8e, 0x4d, 0x6c, 0x4f, 0xb6, 0xaf, 0x1d, 0x89, 0x78, 0x1b, 0x78, 0x1f, 0x9d, 0xc1,
+	0x5e, 0x27, 0x82, 0xa1, 0xe6, 0x6c, 0xdc, 0xfc, 0xd1, 0xd8, 0x20, 0x58, 0xf1, 0xe1, 0xf4, 0x0a,
+	0xdb, 0xb0, 0x48, 0xe0, 0xb2, 0xec, 0x94, 0x99, 0x62, 0x58, 0x84, 0xff, 0x1b, 0x0b, 0x5c, 0xd2,
+	0x16, 0xd7, 0xe1, 0xf5, 0x27, 0x31, 0x5e, 0xbf, 0x4b, 0x59, 0x49, 0x45, 0x8d, 0x13, 0xfb, 0x09,
+	0x64, 0xc7, 0x9b, 0x0a, 0x89, 0xdd, 0x0b, 0x20, 0xc6, 0x00, 0x78, 0x62, 0xb0, 0x1a, 0xb3, 0xa3,
+	0x0d, 0x98, 0x3d, 0x84, 0xfd, 0x68, 0xac, 0xa2, 0x36, 0x9a, 0xaa, 0x22, 0x2a, 0xad, 0x1c, 0x9b,
+	0x40, 0x78, 0x26, 0x85, 0xf0, 0x2d, 0xfe, 0xef, 0xf3, 0x84, 0x6b, 0xef, 0x16, 0xe1, 0xa8, 0x0c,
+	0x0f, 0x3a, 0x37, 0x86, 0xdd, 0x23, 0x6e, 0xe0, 0xb8, 0xdd, 0x72, 0x3e, 0x40, 0x6c, 0x38, 0x5d,
+	0xf3, 0xda, 0x34, 0xae, 0xfa, 0x64, 0xe2, 0xf4, 0xc8, 0x90, 0xff, 0xeb, 0x7c, 0x90, 0x68, 0xdf,
+	0x48, 0x90, 0x68, 0xe9, 0x41, 0x32, 0x47, 0x7b, 0x26, 0x81, 0xf6, 0x3f, 0x30, 0x6f, 0x99, 0xf7,
+	0xd7, 0x42, 0x5d, 0xae, 0xea, 0x4d, 0x01, 0x0b, 0x0d, 0x2d, 0x97, 0x49, 0x88, 0x85, 0xad, 0x94,
+	0x58, 0xd8, 0x46, 0x07, 0xf0, 0x58, 0x13, 0x5b, 0x7a, 0x5b, 0xd1, 0xda, 0xcd, 0xa6, 0x8a, 0x5b,
+	0x62, 0x35, 0xb7, 0xc3, 0xff, 0x26, 0x03, 0x4f, 0x35, 0xcf, 0x18, 0x7a, 0x0d, 0x5f, 0xf2, 0x4d,
+	0xbb, 0x57, 0x0d, 0x28, 0x5f, 0xcf, 0x95, 0x3f, 0x8d, 0xb9, 0xf2, 0xa3, 0xc8, 0x28, 0x0d, 0x36,
+	0xee, 0xcb, 0x58, 0x20, 0x66, 0x16, 0x05, 0xe2, 0x4a, 0xc7, 0xed, 0xeb, 0x65, 0x7e, 0xe7, 0xe0,
+	0x28, 0x74, 0x92, 0x50, 0xc7, 0xa2, 0x50, 0x7d, 0xa3, 0x37, 0x04, 0x45, 0x90, 0xc4, 0x6a, 0x8e,
+	0x41, 0xcf, 0xe0, 0x03, 0xb5, 0x29, 0x62, 0xa1, 0x25, 0xab, 0xca, 0x78, 0x5a, 0x56, 0xf4, 0x26,
+	0x56, 0x25, 0x2c, 0x6a, 0xda, 0x1a, 0x5c, 0x70, 0x70, 0x24, 0xb4, 0x5b, 0x35, 0x51, 0x69, 0xc9,
+	0x15, 0x8a, 0x77, 0x21, 0xc8, 0xf5, 0x36, 0xf6, 0xf9, 0x78, 0x1f, 0x0e, 0x64, 0xc5, 0x27, 0x58,
+	0x68, 0xc9, 0xe7, 0x75, 0x31, 0xe2, 0x7f, 0x87, 0x2f, 0x41, 0x41, 0xf3, 0x9c, 0x41, 0xdc, 0x75,
+	0xf4, 0xcc, 0x22, 0xd8, 0x0a, 0xce, 0x12, 0x13, 0x7c, 0x75, 0xf0, 0x9b, 0xff, 0x2f, 0x03, 0x5c,
+	0xd2, 0x8a, 0xfb, 0x1f, 0x87, 0x74, 0xd4, 0x8d, 0x8e, 0xc3, 0x17, 0x1b, 0x9c, 0x86, 0xe4, 0x70,
+	0x66, 0x79, 0x0b, 0xf6, 0x83, 0x9d, 0x91, 0x2e, 0xdd, 0x98, 0x7f, 0x5c, 0xd1, 0x27, 0xb0, 0x65,
+	0xda, 0xd7, 0x4e, 0x28, 0x65, 0xe9, 0x4a, 0x12, 0x58, 0xc5, 0xc3, 0x8e, 0x5d, 0x94, 0x6e, 0xfc,
+	0x93, 0x81, 0xa3, 0x99, 0xf7, 0xb9, 0xeb, 0xf9, 0xf7, 0x87, 0x31, 0xff, 0xf2, 0x74, 0x6f, 0x89,
+	0x88, 0x71, 0xdf, 0x9e, 0xc1, 0x03, 0xba, 0x13, 0x37, 0x9f, 0x39, 0xcd, 0xbc, 0xd8, 0x2d, 0x1f,
+	0xcd, 0x2f, 0xf6, 0x3f, 0x1f, 0x47, 0x66, 0x7c, 0x79, 0xb9, 0xa3, 0x63, 0xb1, 0xca, 0xf0, 0xbf,
+	0x67, 0xa0, 0xa0, 0x11, 0xaf, 0xee, 0xf4, 0x7c, 0xb6, 0x45, 0xbb, 0x3b, 0x70, 0x4c, 0x7b, 0xa3,
+	0xbb, 0xe2, 0x63, 0xc8, 0xf5, 0x29, 0x8a, 0x4e, 0x42, 0x98, 0xe0, 0xab, 0xb3, 0xf8, 0x71, 0x7f,
+	0x16, 0x7d, 0xda, 0x34, 0x48, 0x0f, 0x3b, 0x4e, 0x14, 0x39, 0x91, 0x69, 0x33, 0x1c, 0xe6, 0xff,
+	0xc5, 0x06, 0xfb, 0xc3, 0xc4, 0x72, 0x3c, 0x32, 0xd9, 0xde, 0xfd, 0x13, 0xbe, 0x54, 0xd0, 0x8d,
+	0x62, 0xfc, 0x6b, 0xe6, 0x2d, 0x25, 0x71, 0x1c, 0x1c, 0xd5, 0x55, 0x49, 0x92, 0x15, 0x49, 0x17,
+	0x95, 0x6a, 0x53, 0x95, 0x95, 0xd6, 0xf8, 0xbe, 0x7f, 0x0e, 0x27, 0x73, 0x73, 0x4d, 0xac, 0xb6,
+	0xd4, 0x8a, 0x3a, 0x11, 0x9f, 0x02, 0x1c, 0x36, 0x34, 0xe9, 0xbc, 0xad, 0xc5, 0xd7, 0x6f, 0xa7,
+	0x1c, 0xaa, 0x1d, 0xfe, 0x1f, 0x2c, 0x70, 0x52, 0x42, 0x0c, 0xdc, 0x5f, 0x49, 0xd2, 0x51, 0xe3,
+	0x5e, 0x4e, 0x8a, 0x9e, 0xcc, 0xea, 0xd1, 0xb3, 0x95, 0x18, 0x3d, 0xf3, 0xdc, 0x6d, 0x7f, 0x0b,
+	0xf9, 0x77, 0x05, 0xf2, 0x1a, 0xf1, 0x1a, 0x6e, 0xef, 0x7c, 0xe4, 0xc6, 0x0f, 0xd8, 0x47, 0xf0,
+	0xd8, 0x72, 0x7b, 0x57, 0x23, 0x77, 0xf2, 0xd5, 0x54, 0xe3, 0xf7, 0xe8, 0x70, 0x64, 0xcf, 0xff,
+	0x8e, 0x85, 0x82, 0x34, 0x8f, 0x72, 0xff, 0x73, 0x90, 0x0a, 0x1a, 0x67, 0x28, 0x61, 0xab, 0x99,
+	0xa4, 0xad, 0xae, 0x76, 0x57, 0x7f, 0xb1, 0xbe, 0x56, 0xa5, 0x5e, 0x0a, 0x6f, 0x20, 0x27, 0xda,
+	0x9e, 0xe9, 0x99, 0xc4, 0xad, 0x3b, 0xbd, 0x3a, 0xb9, 0x25, 0x7d, 0xf4, 0x31, 0xbc, 0xd7, 0x0f,
+	0x7f, 0x87, 0x3e, 0xa1, 0x55, 0x5a, 0x64, 0x80, 0xc7, 0xd3, 0x88, 0x83, 0xf7, 0x48, 0xb8, 0x3c,
+	0xcf, 0x9e, 0x66, 0x5e, 0x64, 0xf1, 0xf8, 0x99, 0x1f, 0x01, 0xa2, 0xea, 0x48, 0x17, 0x6d, 0x20,
+	0x8b, 0x2f, 0x21, 0xdb, 0xf7, 0xeb, 0xe2, 0x5b, 0xd2, 0xa7, 0xf0, 0xbb, 0xe5, 0xc3, 0xc0, 0x32,
+	0xbe, 0x65, 0x3c, 0xb1, 0xe3, 0xff, 0xcc, 0xc2, 0xc1, 0xcc, 0x7b, 0x43, 0x9e, 0xd7, 0x79, 0xf1,
+	0x24, 0x26, 0xd8, 0xf4, 0x98, 0xf8, 0xc1, 0x38, 0x26, 0x32, 0x81, 0xd1, 0x49, 0xa4, 0x8d, 0xf1,
+	0x57, 0x2f, 0x55, 0xc5, 0x24, 0x92, 0x6f, 0xdf, 0xde, 0xc9, 0x8a, 0xec, 0xea, 0xaa, 0x2f, 0x7e,
+	0x2d, 0xb9, 0xf5, 0x66, 0x41, 0x01, 0xf4, 0x0b, 0x40, 0xd2, 0xfd, 0x58, 0x5b, 0x14, 0x13, 0xff,
+	0x61, 0xe1, 0x40, 0xba, 0x27, 0x39, 0x34, 0x2a, 0xea, 0x2b, 0x46, 0x05, 0xb5, 0x9b, 0x62, 0x34,
+	0xb3, 0x0a, 0xa3, 0x5b, 0x53, 0x8c, 0x4a, 0x1b, 0x30, 0xba, 0xfd, 0x0e, 0x31, 0x5a, 0x1b, 0xdf,
+	0x50, 0x7e, 0x4a, 0x17, 0x39, 0x69, 0x93, 0x0e, 0xd2, 0xe7, 0xf0, 0x44, 0x23, 0x5e, 0xd5, 0x8a,
+	0x47, 0xc7, 0x73, 0xd8, 0xee, 0xa7, 0xab, 0x05, 0x9d, 0xe3, 0xff, 0xcd, 0xc0, 0x61, 0x6c, 0xf5,
+	0x3a, 0x0a, 0xfc, 0x2a, 0xa6, 0xc0, 0xcf, 0xa2, 0xd3, 0x36, 0x0f, 0xb8, 0x51, 0x16, 0x22, 0x6f,
+	0x20, 0xaa, 0x53, 0x75, 0xa7, 0xcf, 0x44, 0x5d, 0x7c, 0x2d, 0xd6, 0x73, 0x2c, 0x7f, 0x04, 0x4f,
+	0xa4, 0x04, 0x37, 0xf1, 0xff, 0x63, 0xe0, 0x50, 0x4a, 0xf1, 0xc0, 0x72, 0x07, 0xae, 0x26, 0x4a,
+	0xaf, 0x62, 0xa2, 0xf4, 0x2c, 0x0a, 0xe1, 0x0d, 0xdc, 0x94, 0x24, 0x4b, 0x9b, 0xe4, 0xc9, 0x3f,
+	0x82, 0x6c, 0x8d, 0x18, 0x43, 0xef, 0x8a, 0x18, 0x1e, 0x2a, 0xc1, 0xc1, 0x4d, 0xf4, 0xa0, 0xbb,
+	0x66, 0xcf, 0x36, 0xbc, 0xd1, 0x90, 0x56, 0x67, 0x0f, 0x30, 0x1a, 0x4f, 0x69, 0xd1, 0x0c, 0x2f,
+	0xc0, 0x01, 0x26, 0x57, 0x8e, 0xe3, 0xcd, 0x96, 0x75, 0xeb, 0xc4, 0xed, 0x6f, 0x59, 0x78, 0x32,
+	0x8b, 0x31, 0x17, 0x79, 0x0b, 0x54, 0xe1, 0xb3, 0x98, 0x2a, 0x9c, 0x06, 0x46, 0x49, 0x78, 0x1b,
+	0xc9, 0xc2, 0xdd, 0x37, 0x9b, 0x42, 0xf9, 0x49, 0x6d, 0x38, 0x2e, 0x2b, 0xfa, 0x25, 0x56, 0x15,
+	0x49, 0xd7, 0x5a, 0x42, 0x4b, 0xcc, 0x6d, 0x95, 0xff, 0x02, 0x50, 0x50, 0x0c, 0xcf, 0xbc, 0x25,
+	0xb5, 0xcb, 0xc6, 0xb8, 0x83, 0xad, 0xd1, 0x06, 0x36, 0xd2, 0xe0, 0x20, 0xa1, 0x23, 0x81, 0x52,
+	0x6b, 0x44, 0xee, 0x74, 0x59, 0x17, 0xe3, 0x8c, 0x41, 0x6d, 0x40, 0xf3, 0x25, 0x32, 0x3a, 0x4e,
+	0xad, 0x9d, 0x03, 0xb2, 0xb9, 0x93, 0x25, 0xb5, 0x35, 0xaa, 0xc1, 0xbe, 0x9f, 0x8c, 0xcd, 0x14,
+	0x87, 0xe8, 0xa8, 0x48, 0xdb, 0xea, 0xc5, 0xa8, 0xad, 0x5e, 0x14, 0xad, 0x81, 0x77, 0xc7, 0x3d,
+	0x5d, 0x50, 0x49, 0xa2, 0xcb, 0xe0, 0xf0, 0xce, 0xb5, 0xb4, 0xd1, 0x07, 0x69, 0xad, 0x6e, 0xba,
+	0xc3, 0xe3, 0xc5, 0x9d, 0xf0, 0x33, 0x06, 0x5d, 0x06, 0x17, 0x6b, 0xac, 0x5d, 0x16, 0x7e, 0x79,
+	0x6a, 0x8b, 0x39, 0xfc, 0xf2, 0xf4, 0x4e, 0x6c, 0xe8, 0xd2, 0x15, 0x81, 0xb5, 0x25, 0xc0, 0xd3,
+	0x3d, 0xc1, 0x56, 0x94, 0xbe, 0xcd, 0x14, 0x10, 0xc7, 0x53, 0x49, 0x4e, 0x42, 0xd5, 0xcb, 0x1d,
+	0x2f, 0x2e, 0x10, 0xd1, 0x45, 0x94, 0x5e, 0xcc, 0xa0, 0x3e, 0x9e, 0xf9, 0x17, 0x40, 0xae, 0x72,
+	0x27, 0x4b, 0x4a, 0x20, 0x84, 0x61, 0x7f, 0xae, 0x30, 0x08, 0x39, 0x4a, 0x2b, 0x18, 0x96, 0xee,
+	0xed, 0x4b, 0x1a, 0x44, 0xb3, 0x98, 0x69, 0x41, 0x74, 0xbc, 0xb8, 0x02, 0x40, 0xcd, 0x28, 0xd1,
+	0x99, 0xb9, 0x75, 0xd1, 0xcc, 0x87, 0x25, 0xdc, 0xc7, 0x5c, 0x3e, 0x2d, 0xe7, 0x40, 0x3f, 0x83,
+	0xdd, 0xa9, 0xe4, 0x12, 0xbd, 0x3f, 0x9f, 0x6e, 0x4e, 0x23, 0x68, 0xc9, 0x08, 0xd2, 0x1c, 0x82,
+	0x94, 0x86, 0x90, 0xb4, 0x87, 0xcf, 0x60, 0x6f, 0x2c, 0xe5, 0x95, 0x1b, 0xd2, 0xf9, 0x55, 0xaa,
+	0x7f, 0x68, 0xff, 0x7f, 0xa2, 0xfb, 0x15, 0x78, 0x38, 0x2d, 0x99, 0xa1, 0x8c, 0x24, 0x28, 0x3b,
+	0x57, 0x48, 0xd5, 0x57, 0x74, 0x01, 0x8f, 0x66, 0x6e, 0x7c, 0x54, 0x48, 0xca, 0x02, 0x28, 0x0c,
+	0x97, 0x9e, 0x20, 0xf8, 0x38, 0x52, 0x02, 0x8e, 0x94, 0x8e, 0x93, 0x78, 0x83, 0x9e, 0x7f, 0xfe,
+	0xf3, 0x57, 0x3d, 0xd3, 0xbb, 0x19, 0x5d, 0x15, 0x3b, 0x8e, 0x55, 0x72, 0x06, 0xc4, 0xee, 0x38,
+	0xc3, 0x6e, 0x89, 0x5e, 0x3d, 0x9f, 0x4e, 0xfe, 0x14, 0xfc, 0xd4, 0xb4, 0x3d, 0x32, 0xbc, 0x36,
+	0x3a, 0xa4, 0x74, 0xfb, 0xb2, 0xd4, 0x73, 0x4a, 0x5d, 0xcb, 0xbc, 0xda, 0x09, 0x3c, 0xf6, 0xf2,
+	0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x0a, 0x35, 0x98, 0x44, 0x1c, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1969,6 +2223,10 @@
 	HeartbeatCheck(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Heartbeat, error)
 	// Performs the reboot of the device
 	RebootDevice(ctx context.Context, in *RebootDeviceRequest, opts ...grpc.CallOption) (*RebootDeviceResponse, error)
+	// Sets the log level of the Device Manager itself
+	SetDmLogLevel(ctx context.Context, in *SetDmLogLevelRequest, opts ...grpc.CallOption) (*SetDmLogLevelResponse, error)
+	// Gets the log level at which the Device Manager is running
+	GetDmLogLevel(ctx context.Context, in *GetDmLogLevelRequest, opts ...grpc.CallOption) (*GetDmLogLevelResponse, error)
 }
 
 type nativeHWManagementServiceClient struct {
@@ -2183,6 +2441,24 @@
 	return out, nil
 }
 
+func (c *nativeHWManagementServiceClient) SetDmLogLevel(ctx context.Context, in *SetDmLogLevelRequest, opts ...grpc.CallOption) (*SetDmLogLevelResponse, error) {
+	out := new(SetDmLogLevelResponse)
+	err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/SetDmLogLevel", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetDmLogLevel(ctx context.Context, in *GetDmLogLevelRequest, opts ...grpc.CallOption) (*GetDmLogLevelResponse, error) {
+	out := new(GetDmLogLevelResponse)
+	err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetDmLogLevel", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // NativeHWManagementServiceServer is the server API for NativeHWManagementService service.
 type NativeHWManagementServiceServer interface {
 	// Initializes context for a device and sets up required states
@@ -2230,6 +2506,10 @@
 	HeartbeatCheck(context.Context, *empty.Empty) (*Heartbeat, error)
 	// Performs the reboot of the device
 	RebootDevice(context.Context, *RebootDeviceRequest) (*RebootDeviceResponse, error)
+	// Sets the log level of the Device Manager itself
+	SetDmLogLevel(context.Context, *SetDmLogLevelRequest) (*SetDmLogLevelResponse, error)
+	// Gets the log level at which the Device Manager is running
+	GetDmLogLevel(context.Context, *GetDmLogLevelRequest) (*GetDmLogLevelResponse, error)
 }
 
 // UnimplementedNativeHWManagementServiceServer can be embedded to have forward compatible implementations.
@@ -2281,6 +2561,12 @@
 func (*UnimplementedNativeHWManagementServiceServer) RebootDevice(ctx context.Context, req *RebootDeviceRequest) (*RebootDeviceResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RebootDevice not implemented")
 }
+func (*UnimplementedNativeHWManagementServiceServer) SetDmLogLevel(ctx context.Context, req *SetDmLogLevelRequest) (*SetDmLogLevelResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetDmLogLevel not implemented")
+}
+func (*UnimplementedNativeHWManagementServiceServer) GetDmLogLevel(ctx context.Context, req *GetDmLogLevelRequest) (*GetDmLogLevelResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetDmLogLevel not implemented")
+}
 
 func RegisterNativeHWManagementServiceServer(s *grpc.Server, srv NativeHWManagementServiceServer) {
 	s.RegisterService(&_NativeHWManagementService_serviceDesc, srv)
@@ -2565,6 +2851,42 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _NativeHWManagementService_SetDmLogLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetDmLogLevelRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(NativeHWManagementServiceServer).SetDmLogLevel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/dmi.NativeHWManagementService/SetDmLogLevel",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(NativeHWManagementServiceServer).SetDmLogLevel(ctx, req.(*SetDmLogLevelRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetDmLogLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetDmLogLevelRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(NativeHWManagementServiceServer).GetDmLogLevel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/dmi.NativeHWManagementService/GetDmLogLevel",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(NativeHWManagementServiceServer).GetDmLogLevel(ctx, req.(*GetDmLogLevelRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 var _NativeHWManagementService_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "dmi.NativeHWManagementService",
 	HandlerType: (*NativeHWManagementServiceServer)(nil),
@@ -2617,6 +2939,14 @@
 			MethodName: "RebootDevice",
 			Handler:    _NativeHWManagementService_RebootDevice_Handler,
 		},
+		{
+			MethodName: "SetDmLogLevel",
+			Handler:    _NativeHWManagementService_SetDmLogLevel_Handler,
+		},
+		{
+			MethodName: "GetDmLogLevel",
+			Handler:    _NativeHWManagementService_GetDmLogLevel_Handler,
+		},
 	},
 	Streams: []grpc.StreamDesc{
 		{
