channelz: generate proto from grpc-proto repo (#2082)

This commit is contained in:
Carl Mastrangelo 2018-05-16 13:51:51 -07:00 коммит произвёл lyuxuan
Родитель b4dd78522b
Коммит 4e829f028a
4 изменённых файлов: 479 добавлений и 676 удалений

Просмотреть файл

@ -16,6 +16,8 @@
*
*/
//go:generate ./regenerate.sh
// Package channelz defines APIs for enabling channelz service, entry
// registration/deletion, and accessing channelz data. It also defines channelz
// metric struct formats.

Просмотреть файл

@ -1,5 +1,5 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: channelz.proto
// source: grpc/channelz/v1/channelz.proto
package grpc_channelz_v1 // import "google.golang.org/grpc/channelz/grpc_channelz_v1"
@ -59,7 +59,37 @@ func (x ChannelConnectivityState_State) String() string {
return proto.EnumName(ChannelConnectivityState_State_name, int32(x))
}
func (ChannelConnectivityState_State) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{2, 0}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{2, 0}
}
// The supported severity levels of trace events.
type ChannelTraceEvent_Severity int32
const (
ChannelTraceEvent_CT_UNKNOWN ChannelTraceEvent_Severity = 0
ChannelTraceEvent_CT_INFO ChannelTraceEvent_Severity = 1
ChannelTraceEvent_CT_WARNING ChannelTraceEvent_Severity = 2
ChannelTraceEvent_CT_ERROR ChannelTraceEvent_Severity = 3
)
var ChannelTraceEvent_Severity_name = map[int32]string{
0: "CT_UNKNOWN",
1: "CT_INFO",
2: "CT_WARNING",
3: "CT_ERROR",
}
var ChannelTraceEvent_Severity_value = map[string]int32{
"CT_UNKNOWN": 0,
"CT_INFO": 1,
"CT_WARNING": 2,
"CT_ERROR": 3,
}
func (x ChannelTraceEvent_Severity) String() string {
return proto.EnumName(ChannelTraceEvent_Severity_name, int32(x))
}
func (ChannelTraceEvent_Severity) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{4, 0}
}
// Channel is a logical grouping of channels, subchannels, and sockets.
@ -88,7 +118,7 @@ func (m *Channel) Reset() { *m = Channel{} }
func (m *Channel) String() string { return proto.CompactTextString(m) }
func (*Channel) ProtoMessage() {}
func (*Channel) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{0}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{0}
}
func (m *Channel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Channel.Unmarshal(m, b)
@ -170,7 +200,7 @@ func (m *Subchannel) Reset() { *m = Subchannel{} }
func (m *Subchannel) String() string { return proto.CompactTextString(m) }
func (*Subchannel) ProtoMessage() {}
func (*Subchannel) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{1}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{1}
}
func (m *Subchannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Subchannel.Unmarshal(m, b)
@ -238,7 +268,7 @@ func (m *ChannelConnectivityState) Reset() { *m = ChannelConnectivitySta
func (m *ChannelConnectivityState) String() string { return proto.CompactTextString(m) }
func (*ChannelConnectivityState) ProtoMessage() {}
func (*ChannelConnectivityState) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{2}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{2}
}
func (m *ChannelConnectivityState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelConnectivityState.Unmarshal(m, b)
@ -291,7 +321,7 @@ func (m *ChannelData) Reset() { *m = ChannelData{} }
func (m *ChannelData) String() string { return proto.CompactTextString(m) }
func (*ChannelData) ProtoMessage() {}
func (*ChannelData) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{3}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{3}
}
func (m *ChannelData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelData.Unmarshal(m, b)
@ -360,18 +390,203 @@ func (m *ChannelData) GetLastCallStartedTimestamp() *timestamp.Timestamp {
return nil
}
// A trace event is an interesting thing that happened to a channel or
// subchannel, such as creation, address resolution, subchannel creation, etc.
type ChannelTraceEvent struct {
// High level description of the event.
Description string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
// the severity of the trace event
Severity ChannelTraceEvent_Severity `protobuf:"varint,2,opt,name=severity,enum=grpc.channelz.v1.ChannelTraceEvent_Severity" json:"severity,omitempty"`
// When this event occurred.
Timestamp *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp,omitempty"`
// ref of referenced channel or subchannel.
// Optional, only present if this event refers to a child object. For example,
// this field would be filled if this trace event was for a subchannel being
// created.
//
// Types that are valid to be assigned to ChildRef:
// *ChannelTraceEvent_ChannelRef
// *ChannelTraceEvent_SubchannelRef
ChildRef isChannelTraceEvent_ChildRef `protobuf_oneof:"child_ref"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChannelTraceEvent) Reset() { *m = ChannelTraceEvent{} }
func (m *ChannelTraceEvent) String() string { return proto.CompactTextString(m) }
func (*ChannelTraceEvent) ProtoMessage() {}
func (*ChannelTraceEvent) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{4}
}
func (m *ChannelTraceEvent) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelTraceEvent.Unmarshal(m, b)
}
func (m *ChannelTraceEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ChannelTraceEvent.Marshal(b, m, deterministic)
}
func (dst *ChannelTraceEvent) XXX_Merge(src proto.Message) {
xxx_messageInfo_ChannelTraceEvent.Merge(dst, src)
}
func (m *ChannelTraceEvent) XXX_Size() int {
return xxx_messageInfo_ChannelTraceEvent.Size(m)
}
func (m *ChannelTraceEvent) XXX_DiscardUnknown() {
xxx_messageInfo_ChannelTraceEvent.DiscardUnknown(m)
}
var xxx_messageInfo_ChannelTraceEvent proto.InternalMessageInfo
type isChannelTraceEvent_ChildRef interface {
isChannelTraceEvent_ChildRef()
}
type ChannelTraceEvent_ChannelRef struct {
ChannelRef *ChannelRef `protobuf:"bytes,4,opt,name=channel_ref,json=channelRef,oneof"`
}
type ChannelTraceEvent_SubchannelRef struct {
SubchannelRef *SubchannelRef `protobuf:"bytes,5,opt,name=subchannel_ref,json=subchannelRef,oneof"`
}
func (*ChannelTraceEvent_ChannelRef) isChannelTraceEvent_ChildRef() {}
func (*ChannelTraceEvent_SubchannelRef) isChannelTraceEvent_ChildRef() {}
func (m *ChannelTraceEvent) GetChildRef() isChannelTraceEvent_ChildRef {
if m != nil {
return m.ChildRef
}
return nil
}
func (m *ChannelTraceEvent) GetDescription() string {
if m != nil {
return m.Description
}
return ""
}
func (m *ChannelTraceEvent) GetSeverity() ChannelTraceEvent_Severity {
if m != nil {
return m.Severity
}
return ChannelTraceEvent_CT_UNKNOWN
}
func (m *ChannelTraceEvent) GetTimestamp() *timestamp.Timestamp {
if m != nil {
return m.Timestamp
}
return nil
}
func (m *ChannelTraceEvent) GetChannelRef() *ChannelRef {
if x, ok := m.GetChildRef().(*ChannelTraceEvent_ChannelRef); ok {
return x.ChannelRef
}
return nil
}
func (m *ChannelTraceEvent) GetSubchannelRef() *SubchannelRef {
if x, ok := m.GetChildRef().(*ChannelTraceEvent_SubchannelRef); ok {
return x.SubchannelRef
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*ChannelTraceEvent) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _ChannelTraceEvent_OneofMarshaler, _ChannelTraceEvent_OneofUnmarshaler, _ChannelTraceEvent_OneofSizer, []interface{}{
(*ChannelTraceEvent_ChannelRef)(nil),
(*ChannelTraceEvent_SubchannelRef)(nil),
}
}
func _ChannelTraceEvent_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*ChannelTraceEvent)
// child_ref
switch x := m.ChildRef.(type) {
case *ChannelTraceEvent_ChannelRef:
b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ChannelRef); err != nil {
return err
}
case *ChannelTraceEvent_SubchannelRef:
b.EncodeVarint(5<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.SubchannelRef); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("ChannelTraceEvent.ChildRef has unexpected type %T", x)
}
return nil
}
func _ChannelTraceEvent_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*ChannelTraceEvent)
switch tag {
case 4: // child_ref.channel_ref
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(ChannelRef)
err := b.DecodeMessage(msg)
m.ChildRef = &ChannelTraceEvent_ChannelRef{msg}
return true, err
case 5: // child_ref.subchannel_ref
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(SubchannelRef)
err := b.DecodeMessage(msg)
m.ChildRef = &ChannelTraceEvent_SubchannelRef{msg}
return true, err
default:
return false, nil
}
}
func _ChannelTraceEvent_OneofSizer(msg proto.Message) (n int) {
m := msg.(*ChannelTraceEvent)
// child_ref
switch x := m.ChildRef.(type) {
case *ChannelTraceEvent_ChannelRef:
s := proto.Size(x.ChannelRef)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *ChannelTraceEvent_SubchannelRef:
s := proto.Size(x.SubchannelRef)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// ChannelTrace represents the recent events that have occurred on the channel.
type ChannelTrace struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
// Number of events ever logged in this tracing object. This can differ from
// events.size() because events can be overwritten or garbage collected by
// implementations.
NumEventsLogged int64 `protobuf:"varint,1,opt,name=num_events_logged,json=numEventsLogged" json:"num_events_logged,omitempty"`
// Time that this channel was created.
CreationTimestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=creation_timestamp,json=creationTimestamp" json:"creation_timestamp,omitempty"`
// List of events that have occurred on this channel.
Events []*ChannelTraceEvent `protobuf:"bytes,3,rep,name=events" json:"events,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChannelTrace) Reset() { *m = ChannelTrace{} }
func (m *ChannelTrace) String() string { return proto.CompactTextString(m) }
func (*ChannelTrace) ProtoMessage() {}
func (*ChannelTrace) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{4}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{5}
}
func (m *ChannelTrace) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelTrace.Unmarshal(m, b)
@ -391,6 +606,27 @@ func (m *ChannelTrace) XXX_DiscardUnknown() {
var xxx_messageInfo_ChannelTrace proto.InternalMessageInfo
func (m *ChannelTrace) GetNumEventsLogged() int64 {
if m != nil {
return m.NumEventsLogged
}
return 0
}
func (m *ChannelTrace) GetCreationTimestamp() *timestamp.Timestamp {
if m != nil {
return m.CreationTimestamp
}
return nil
}
func (m *ChannelTrace) GetEvents() []*ChannelTraceEvent {
if m != nil {
return m.Events
}
return nil
}
// ChannelRef is a reference to a Channel.
type ChannelRef struct {
// The globally unique id for this channel. Must be a positive number.
@ -406,7 +642,7 @@ func (m *ChannelRef) Reset() { *m = ChannelRef{} }
func (m *ChannelRef) String() string { return proto.CompactTextString(m) }
func (*ChannelRef) ProtoMessage() {}
func (*ChannelRef) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{5}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{6}
}
func (m *ChannelRef) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelRef.Unmarshal(m, b)
@ -455,7 +691,7 @@ func (m *SubchannelRef) Reset() { *m = SubchannelRef{} }
func (m *SubchannelRef) String() string { return proto.CompactTextString(m) }
func (*SubchannelRef) ProtoMessage() {}
func (*SubchannelRef) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{6}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{7}
}
func (m *SubchannelRef) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SubchannelRef.Unmarshal(m, b)
@ -503,7 +739,7 @@ func (m *SocketRef) Reset() { *m = SocketRef{} }
func (m *SocketRef) String() string { return proto.CompactTextString(m) }
func (*SocketRef) ProtoMessage() {}
func (*SocketRef) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{7}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{8}
}
func (m *SocketRef) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SocketRef.Unmarshal(m, b)
@ -552,7 +788,7 @@ func (m *ServerRef) Reset() { *m = ServerRef{} }
func (m *ServerRef) String() string { return proto.CompactTextString(m) }
func (*ServerRef) ProtoMessage() {}
func (*ServerRef) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{8}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{9}
}
func (m *ServerRef) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ServerRef.Unmarshal(m, b)
@ -605,7 +841,7 @@ func (m *Server) Reset() { *m = Server{} }
func (m *Server) String() string { return proto.CompactTextString(m) }
func (*Server) ProtoMessage() {}
func (*Server) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{9}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{10}
}
func (m *Server) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Server.Unmarshal(m, b)
@ -667,7 +903,7 @@ func (m *ServerData) Reset() { *m = ServerData{} }
func (m *ServerData) String() string { return proto.CompactTextString(m) }
func (*ServerData) ProtoMessage() {}
func (*ServerData) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{10}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{11}
}
func (m *ServerData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ServerData.Unmarshal(m, b)
@ -747,7 +983,7 @@ func (m *Socket) Reset() { *m = Socket{} }
func (m *Socket) String() string { return proto.CompactTextString(m) }
func (*Socket) ProtoMessage() {}
func (*Socket) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{11}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{12}
}
func (m *Socket) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Socket.Unmarshal(m, b)
@ -859,7 +1095,7 @@ func (m *SocketData) Reset() { *m = SocketData{} }
func (m *SocketData) String() string { return proto.CompactTextString(m) }
func (*SocketData) ProtoMessage() {}
func (*SocketData) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{12}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{13}
}
func (m *SocketData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SocketData.Unmarshal(m, b)
@ -986,7 +1222,7 @@ func (m *Address) Reset() { *m = Address{} }
func (m *Address) String() string { return proto.CompactTextString(m) }
func (*Address) ProtoMessage() {}
func (*Address) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{13}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14}
}
func (m *Address) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Address.Unmarshal(m, b)
@ -1160,7 +1396,7 @@ func (m *Address_TcpIpAddress) Reset() { *m = Address_TcpIpAddress{} }
func (m *Address_TcpIpAddress) String() string { return proto.CompactTextString(m) }
func (*Address_TcpIpAddress) ProtoMessage() {}
func (*Address_TcpIpAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{13, 0}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14, 0}
}
func (m *Address_TcpIpAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Address_TcpIpAddress.Unmarshal(m, b)
@ -1206,7 +1442,7 @@ func (m *Address_UdsAddress) Reset() { *m = Address_UdsAddress{} }
func (m *Address_UdsAddress) String() string { return proto.CompactTextString(m) }
func (*Address_UdsAddress) ProtoMessage() {}
func (*Address_UdsAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{13, 1}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14, 1}
}
func (m *Address_UdsAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Address_UdsAddress.Unmarshal(m, b)
@ -1248,7 +1484,7 @@ func (m *Address_OtherAddress) Reset() { *m = Address_OtherAddress{} }
func (m *Address_OtherAddress) String() string { return proto.CompactTextString(m) }
func (*Address_OtherAddress) ProtoMessage() {}
func (*Address_OtherAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{13, 2}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14, 2}
}
func (m *Address_OtherAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Address_OtherAddress.Unmarshal(m, b)
@ -1297,7 +1533,7 @@ func (m *Security) Reset() { *m = Security{} }
func (m *Security) String() string { return proto.CompactTextString(m) }
func (*Security) ProtoMessage() {}
func (*Security) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{14}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{15}
}
func (m *Security) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Security.Unmarshal(m, b)
@ -1444,7 +1680,7 @@ func (m *Security_Tls) Reset() { *m = Security_Tls{} }
func (m *Security_Tls) String() string { return proto.CompactTextString(m) }
func (*Security_Tls) ProtoMessage() {}
func (*Security_Tls) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{14, 0}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{15, 0}
}
func (m *Security_Tls) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Security_Tls.Unmarshal(m, b)
@ -1593,7 +1829,7 @@ func (m *Security_OtherSecurity) Reset() { *m = Security_OtherSecurity{}
func (m *Security_OtherSecurity) String() string { return proto.CompactTextString(m) }
func (*Security_OtherSecurity) ProtoMessage() {}
func (*Security_OtherSecurity) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{14, 1}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{15, 1}
}
func (m *Security_OtherSecurity) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Security_OtherSecurity.Unmarshal(m, b)
@ -1648,7 +1884,7 @@ func (m *SocketOption) Reset() { *m = SocketOption{} }
func (m *SocketOption) String() string { return proto.CompactTextString(m) }
func (*SocketOption) ProtoMessage() {}
func (*SocketOption) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{15}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{16}
}
func (m *SocketOption) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SocketOption.Unmarshal(m, b)
@ -1702,7 +1938,7 @@ func (m *SocketOptionTimeout) Reset() { *m = SocketOptionTimeout{} }
func (m *SocketOptionTimeout) String() string { return proto.CompactTextString(m) }
func (*SocketOptionTimeout) ProtoMessage() {}
func (*SocketOptionTimeout) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{16}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{17}
}
func (m *SocketOptionTimeout) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SocketOptionTimeout.Unmarshal(m, b)
@ -1745,7 +1981,7 @@ func (m *SocketOptionLinger) Reset() { *m = SocketOptionLinger{} }
func (m *SocketOptionLinger) String() string { return proto.CompactTextString(m) }
func (*SocketOptionLinger) ProtoMessage() {}
func (*SocketOptionLinger) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{17}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{18}
}
func (m *SocketOptionLinger) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SocketOptionLinger.Unmarshal(m, b)
@ -1820,7 +2056,7 @@ func (m *SocketOptionTcpInfo) Reset() { *m = SocketOptionTcpInfo{} }
func (m *SocketOptionTcpInfo) String() string { return proto.CompactTextString(m) }
func (*SocketOptionTcpInfo) ProtoMessage() {}
func (*SocketOptionTcpInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{18}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{19}
}
func (m *SocketOptionTcpInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SocketOptionTcpInfo.Unmarshal(m, b)
@ -2056,7 +2292,7 @@ func (m *GetTopChannelsRequest) Reset() { *m = GetTopChannelsRequest{} }
func (m *GetTopChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*GetTopChannelsRequest) ProtoMessage() {}
func (*GetTopChannelsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{19}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{20}
}
func (m *GetTopChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTopChannelsRequest.Unmarshal(m, b)
@ -2100,7 +2336,7 @@ func (m *GetTopChannelsResponse) Reset() { *m = GetTopChannelsResponse{}
func (m *GetTopChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*GetTopChannelsResponse) ProtoMessage() {}
func (*GetTopChannelsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{20}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{21}
}
func (m *GetTopChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTopChannelsResponse.Unmarshal(m, b)
@ -2147,7 +2383,7 @@ func (m *GetServersRequest) Reset() { *m = GetServersRequest{} }
func (m *GetServersRequest) String() string { return proto.CompactTextString(m) }
func (*GetServersRequest) ProtoMessage() {}
func (*GetServersRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{21}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{22}
}
func (m *GetServersRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetServersRequest.Unmarshal(m, b)
@ -2191,7 +2427,7 @@ func (m *GetServersResponse) Reset() { *m = GetServersResponse{} }
func (m *GetServersResponse) String() string { return proto.CompactTextString(m) }
func (*GetServersResponse) ProtoMessage() {}
func (*GetServersResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{22}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{23}
}
func (m *GetServersResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetServersResponse.Unmarshal(m, b)
@ -2239,7 +2475,7 @@ func (m *GetServerSocketsRequest) Reset() { *m = GetServerSocketsRequest
func (m *GetServerSocketsRequest) String() string { return proto.CompactTextString(m) }
func (*GetServerSocketsRequest) ProtoMessage() {}
func (*GetServerSocketsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{23}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{24}
}
func (m *GetServerSocketsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetServerSocketsRequest.Unmarshal(m, b)
@ -2290,7 +2526,7 @@ func (m *GetServerSocketsResponse) Reset() { *m = GetServerSocketsRespon
func (m *GetServerSocketsResponse) String() string { return proto.CompactTextString(m) }
func (*GetServerSocketsResponse) ProtoMessage() {}
func (*GetServerSocketsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{24}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{25}
}
func (m *GetServerSocketsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetServerSocketsResponse.Unmarshal(m, b)
@ -2336,7 +2572,7 @@ func (m *GetChannelRequest) Reset() { *m = GetChannelRequest{} }
func (m *GetChannelRequest) String() string { return proto.CompactTextString(m) }
func (*GetChannelRequest) ProtoMessage() {}
func (*GetChannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{25}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{26}
}
func (m *GetChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetChannelRequest.Unmarshal(m, b)
@ -2376,7 +2612,7 @@ func (m *GetChannelResponse) Reset() { *m = GetChannelResponse{} }
func (m *GetChannelResponse) String() string { return proto.CompactTextString(m) }
func (*GetChannelResponse) ProtoMessage() {}
func (*GetChannelResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{26}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{27}
}
func (m *GetChannelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetChannelResponse.Unmarshal(m, b)
@ -2415,7 +2651,7 @@ func (m *GetSubchannelRequest) Reset() { *m = GetSubchannelRequest{} }
func (m *GetSubchannelRequest) String() string { return proto.CompactTextString(m) }
func (*GetSubchannelRequest) ProtoMessage() {}
func (*GetSubchannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{27}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{28}
}
func (m *GetSubchannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSubchannelRequest.Unmarshal(m, b)
@ -2455,7 +2691,7 @@ func (m *GetSubchannelResponse) Reset() { *m = GetSubchannelResponse{} }
func (m *GetSubchannelResponse) String() string { return proto.CompactTextString(m) }
func (*GetSubchannelResponse) ProtoMessage() {}
func (*GetSubchannelResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{28}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{29}
}
func (m *GetSubchannelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSubchannelResponse.Unmarshal(m, b)
@ -2494,7 +2730,7 @@ func (m *GetSocketRequest) Reset() { *m = GetSocketRequest{} }
func (m *GetSocketRequest) String() string { return proto.CompactTextString(m) }
func (*GetSocketRequest) ProtoMessage() {}
func (*GetSocketRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{29}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{30}
}
func (m *GetSocketRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSocketRequest.Unmarshal(m, b)
@ -2534,7 +2770,7 @@ func (m *GetSocketResponse) Reset() { *m = GetSocketResponse{} }
func (m *GetSocketResponse) String() string { return proto.CompactTextString(m) }
func (*GetSocketResponse) ProtoMessage() {}
func (*GetSocketResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_channelz_544d5edb3d49afb2, []int{30}
return fileDescriptor_channelz_ce3ed45d08251f2f, []int{31}
}
func (m *GetSocketResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSocketResponse.Unmarshal(m, b)
@ -2566,6 +2802,7 @@ func init() {
proto.RegisterType((*Subchannel)(nil), "grpc.channelz.v1.Subchannel")
proto.RegisterType((*ChannelConnectivityState)(nil), "grpc.channelz.v1.ChannelConnectivityState")
proto.RegisterType((*ChannelData)(nil), "grpc.channelz.v1.ChannelData")
proto.RegisterType((*ChannelTraceEvent)(nil), "grpc.channelz.v1.ChannelTraceEvent")
proto.RegisterType((*ChannelTrace)(nil), "grpc.channelz.v1.ChannelTrace")
proto.RegisterType((*ChannelRef)(nil), "grpc.channelz.v1.ChannelRef")
proto.RegisterType((*SubchannelRef)(nil), "grpc.channelz.v1.SubchannelRef")
@ -2599,6 +2836,7 @@ func init() {
proto.RegisterType((*GetSocketRequest)(nil), "grpc.channelz.v1.GetSocketRequest")
proto.RegisterType((*GetSocketResponse)(nil), "grpc.channelz.v1.GetSocketResponse")
proto.RegisterEnum("grpc.channelz.v1.ChannelConnectivityState_State", ChannelConnectivityState_State_name, ChannelConnectivityState_State_value)
proto.RegisterEnum("grpc.channelz.v1.ChannelTraceEvent_Severity", ChannelTraceEvent_Severity_name, ChannelTraceEvent_Severity_value)
}
// Reference imports to suppress errors if they are not otherwise used.
@ -2850,156 +3088,171 @@ var _Channelz_serviceDesc = grpc.ServiceDesc{
},
},
Streams: []grpc.StreamDesc{},
Metadata: "channelz.proto",
Metadata: "grpc/channelz/v1/channelz.proto",
}
func init() { proto.RegisterFile("channelz.proto", fileDescriptor_channelz_544d5edb3d49afb2) }
var fileDescriptor_channelz_544d5edb3d49afb2 = []byte{
// 2317 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x6f, 0xdb, 0xc8,
0x15, 0x8f, 0xbe, 0x2c, 0xea, 0x59, 0x52, 0xe8, 0x49, 0x36, 0x4b, 0x2b, 0x1f, 0x4e, 0x99, 0x6c,
0xe2, 0xcd, 0x22, 0x72, 0xe2, 0x4d, 0x73, 0xe8, 0xb6, 0xc0, 0x2a, 0x8a, 0x9d, 0xd8, 0x75, 0x9c,
0x80, 0x92, 0x37, 0xd9, 0x1e, 0x96, 0x3b, 0x21, 0x47, 0x36, 0x6b, 0x8a, 0x54, 0x39, 0x23, 0x19,
0xc9, 0xb5, 0xf7, 0x1e, 0xfb, 0x27, 0xf4, 0xd2, 0x43, 0x81, 0x02, 0x05, 0xda, 0x6b, 0xd1, 0x7f,
0xa6, 0xff, 0x45, 0x31, 0x1f, 0x24, 0x47, 0x96, 0x64, 0x3b, 0xc8, 0xb1, 0x17, 0x43, 0x7c, 0xfc,
0xbd, 0xdf, 0x7b, 0xf3, 0xbe, 0x38, 0x33, 0x86, 0xa6, 0x77, 0x84, 0xa3, 0x88, 0x84, 0x1f, 0xdb,
0xa3, 0x24, 0x66, 0x31, 0x32, 0x0f, 0x93, 0x91, 0xd7, 0xce, 0x84, 0x93, 0xc7, 0xad, 0xd5, 0xc3,
0x38, 0x3e, 0x0c, 0xc9, 0x86, 0x78, 0xff, 0x7e, 0x3c, 0xd8, 0xc0, 0xd1, 0x07, 0x09, 0x6e, 0xdd,
0x3a, 0xfd, 0xca, 0x1f, 0x27, 0x98, 0x05, 0x71, 0xa4, 0xde, 0xaf, 0x9d, 0x7e, 0xcf, 0x82, 0x21,
0xa1, 0x0c, 0x0f, 0x47, 0x8b, 0x08, 0x4e, 0x12, 0x3c, 0x1a, 0x91, 0x84, 0xca, 0xf7, 0xf6, 0xdf,
0x8a, 0x50, 0xed, 0x4a, 0x5f, 0x50, 0x1b, 0x4a, 0x09, 0x19, 0x58, 0x85, 0xdb, 0x85, 0xf5, 0xe5,
0xcd, 0x1b, 0xed, 0xd3, 0x7e, 0xb6, 0x15, 0xce, 0x21, 0x03, 0x87, 0x03, 0xd1, 0x63, 0x28, 0xfb,
0x98, 0x61, 0xab, 0x28, 0x14, 0x6e, 0x2e, 0x54, 0x78, 0x8e, 0x19, 0x76, 0x04, 0x14, 0xfd, 0x06,
0x96, 0x15, 0xc0, 0xe5, 0xa6, 0x4a, 0xb7, 0x4b, 0xe7, 0x9a, 0x02, 0x2f, 0xfb, 0x8d, 0xb6, 0xa1,
0x49, 0xc7, 0xef, 0x75, 0x86, 0xb2, 0x60, 0x58, 0x9b, 0x65, 0xe8, 0x65, 0x38, 0x4e, 0xd2, 0xa0,
0xfa, 0x23, 0xfa, 0x15, 0x00, 0x8d, 0xbd, 0x63, 0xc2, 0x04, 0x47, 0x45, 0x70, 0x5c, 0x9f, 0xc3,
0x21, 0x30, 0x5c, 0xbf, 0x46, 0xd3, 0x9f, 0xf6, 0x3f, 0x8a, 0x00, 0x39, 0x39, 0x7a, 0xac, 0x07,
0xed, 0x5c, 0x3f, 0xfe, 0x8f, 0xe3, 0xf6, 0xef, 0x02, 0x58, 0xca, 0xbd, 0x6e, 0x1c, 0x45, 0xc4,
0x63, 0xc1, 0x24, 0x60, 0x1f, 0x7a, 0x0c, 0x33, 0x82, 0xb6, 0xa1, 0x42, 0xf9, 0x0f, 0x11, 0xc7,
0xe6, 0xe6, 0xa3, 0x85, 0x2b, 0x9b, 0x51, 0x6d, 0x8b, 0xbf, 0x8e, 0x54, 0xb7, 0x7f, 0x82, 0x8a,
0x24, 0x5c, 0x86, 0xea, 0xc1, 0xfe, 0x6f, 0xf7, 0x5f, 0xbf, 0xdd, 0x37, 0x2f, 0x21, 0x03, 0xca,
0x3b, 0xcf, 0xf7, 0xb6, 0xcc, 0x02, 0x6a, 0x02, 0x74, 0x5f, 0xef, 0xef, 0x6f, 0x75, 0xfb, 0x3b,
0xfb, 0x2f, 0xcc, 0x22, 0xaa, 0x41, 0xc5, 0xd9, 0xea, 0x3c, 0xff, 0xd1, 0x2c, 0xa1, 0x2f, 0x60,
0xa5, 0xef, 0x74, 0xf6, 0x7b, 0x3b, 0x5b, 0xfb, 0x7d, 0x77, 0xbb, 0xb3, 0xb3, 0x77, 0xe0, 0x6c,
0x99, 0x65, 0x54, 0x07, 0xa3, 0xf7, 0xf2, 0xa0, 0xff, 0x9c, 0x33, 0x55, 0xec, 0xff, 0x16, 0x61,
0x59, 0xcb, 0x0e, 0xfa, 0x5e, 0xf7, 0x7b, 0x79, 0xf3, 0xc1, 0xc5, 0xfd, 0x56, 0x1e, 0xa3, 0x6b,
0xb0, 0xc4, 0x70, 0x72, 0x48, 0x98, 0x28, 0x87, 0x9a, 0xa3, 0x9e, 0xd0, 0x13, 0xa8, 0xb0, 0x04,
0x7b, 0xc4, 0x2a, 0x09, 0xe6, 0x5b, 0x0b, 0x99, 0xfb, 0x1c, 0xe5, 0x48, 0x30, 0xba, 0x03, 0x0d,
0x0f, 0x87, 0x21, 0x75, 0x29, 0xc3, 0x09, 0x23, 0xbe, 0x55, 0xbe, 0x5d, 0x58, 0x2f, 0x39, 0x75,
0x21, 0xec, 0x49, 0x19, 0xba, 0x0f, 0x97, 0x15, 0x68, 0xec, 0x79, 0x84, 0xf8, 0xc4, 0xb7, 0x2a,
0x02, 0xd6, 0x94, 0xb0, 0x54, 0x8a, 0x7e, 0x01, 0x52, 0xd1, 0x1d, 0xe0, 0x20, 0x24, 0xbe, 0xb5,
0x24, 0x50, 0xcb, 0x42, 0xb6, 0x2d, 0x44, 0xe8, 0x47, 0xb8, 0x1e, 0x62, 0xca, 0x5c, 0x2e, 0x4b,
0x8d, 0xba, 0xd9, 0x10, 0xb2, 0xaa, 0xc2, 0xf9, 0x56, 0x5b, 0x4e, 0xa1, 0x76, 0x3a, 0x85, 0xda,
0xfd, 0x14, 0xe1, 0x58, 0x5c, 0xbd, 0x8b, 0xc3, 0x50, 0x79, 0x97, 0xbd, 0xb1, 0x9b, 0x50, 0xd7,
0x97, 0x68, 0x7b, 0x00, 0x79, 0x79, 0xa3, 0x9b, 0x90, 0x16, 0xb8, 0x1b, 0xf8, 0x22, 0xfc, 0x25,
0xa7, 0xa6, 0x24, 0x3b, 0x3e, 0x42, 0x50, 0x8e, 0xf0, 0x90, 0xa8, 0xa0, 0x8a, 0xdf, 0xbb, 0x65,
0xa3, 0x64, 0x96, 0x77, 0xcb, 0x46, 0xd9, 0xac, 0xec, 0x96, 0x8d, 0x8a, 0xb9, 0xb4, 0x5b, 0x36,
0x96, 0xcc, 0xea, 0x6e, 0xd9, 0xa8, 0x9a, 0xc6, 0x6e, 0xd9, 0x30, 0xcc, 0x9a, 0x1d, 0x42, 0x63,
0xaa, 0x03, 0x78, 0x44, 0xb5, 0xd6, 0x09, 0x7c, 0xb1, 0xa4, 0x92, 0x53, 0xcf, 0x85, 0x9a, 0x35,
0x63, 0xca, 0x5a, 0xc1, 0x2c, 0xee, 0x96, 0x8d, 0xa2, 0x59, 0x5a, 0x64, 0xd9, 0xfe, 0x19, 0x6a,
0x59, 0xaf, 0xa0, 0xeb, 0xa0, 0xba, 0x85, 0x5b, 0x29, 0x09, 0x2b, 0x86, 0x14, 0x68, 0x16, 0xca,
0x0b, 0x2d, 0xcc, 0x5f, 0x0f, 0xb7, 0x40, 0x92, 0x09, 0x49, 0x52, 0x0b, 0xe2, 0x81, 0x5b, 0xa8,
0x28, 0x0b, 0x42, 0xa0, 0x59, 0x58, 0xba, 0xd0, 0x1a, 0x72, 0x0b, 0x7f, 0x2d, 0xc0, 0x92, 0x34,
0x81, 0x1e, 0xea, 0xb3, 0x70, 0xde, 0x5c, 0x48, 0x3d, 0x91, 0x73, 0xf0, 0xd1, 0xd4, 0x1c, 0xbc,
0xb1, 0x08, 0xaf, 0x8d, 0xc1, 0xef, 0xa1, 0x11, 0x06, 0x94, 0x91, 0xc8, 0x95, 0x81, 0x51, 0x83,
0xf0, 0xcc, 0x11, 0x54, 0x97, 0x1a, 0x52, 0x60, 0xff, 0x89, 0x4f, 0xef, 0x8c, 0x36, 0xef, 0xb2,
0xc2, 0x67, 0x75, 0x59, 0xf1, 0x62, 0x5d, 0x56, 0xba, 0x50, 0x97, 0x95, 0x3f, 0xb9, 0xcb, 0x2a,
0x9f, 0xd1, 0x65, 0x7f, 0x29, 0xc2, 0x92, 0x8c, 0xcd, 0xf9, 0xe9, 0xcb, 0x62, 0x7a, 0xc1, 0xf4,
0x09, 0xbc, 0x96, 0xbe, 0x0d, 0xa8, 0x84, 0xb1, 0x87, 0x43, 0x35, 0xd3, 0x56, 0x67, 0x55, 0x3a,
0xbe, 0x9f, 0x10, 0x4a, 0x1d, 0x89, 0x43, 0x8f, 0x61, 0x29, 0x21, 0xc3, 0x98, 0xc9, 0xba, 0x3f,
0x53, 0x43, 0x01, 0xd1, 0x53, 0x30, 0x28, 0xf1, 0xc6, 0x49, 0xc0, 0x3e, 0xe4, 0x71, 0x99, 0x2d,
0x2c, 0x89, 0x70, 0x32, 0x2c, 0x5a, 0x83, 0x65, 0xc9, 0xe0, 0x6a, 0x5d, 0x00, 0x52, 0xb4, 0x8f,
0x87, 0xc4, 0xfe, 0x63, 0x15, 0x20, 0x5f, 0x11, 0x4f, 0x2f, 0x65, 0x09, 0xc1, 0xc3, 0xbc, 0x0a,
0xe4, 0x10, 0x6a, 0x2a, 0x71, 0x5a, 0x07, 0xdf, 0xc0, 0x4a, 0x06, 0xcc, 0x2a, 0x41, 0x16, 0x8c,
0x99, 0x42, 0xb3, 0x5a, 0xf8, 0x0a, 0x52, 0xf5, 0xb4, 0x1a, 0x64, 0xcd, 0x34, 0x94, 0x54, 0xd5,
0xc3, 0x1d, 0x68, 0x0c, 0x09, 0xa5, 0xf8, 0x90, 0x50, 0x97, 0x92, 0x88, 0xa5, 0x63, 0x3e, 0x15,
0xf6, 0x48, 0xc4, 0xb8, 0xe1, 0x0c, 0x94, 0x10, 0x8f, 0x04, 0x93, 0x6c, 0xd0, 0x9b, 0xe9, 0x0b,
0x47, 0xc9, 0xd1, 0x3a, 0x98, 0xc7, 0x84, 0x8c, 0x5c, 0x1c, 0x06, 0x93, 0x94, 0x54, 0x8e, 0xfb,
0x26, 0x97, 0x77, 0x84, 0x58, 0xd0, 0x1e, 0xc1, 0x1d, 0x51, 0x8b, 0x22, 0x43, 0xae, 0xf4, 0xcb,
0xf5, 0x12, 0x82, 0x3f, 0x75, 0xf2, 0xaf, 0x71, 0x9a, 0x3d, 0xce, 0xd2, 0x13, 0x24, 0x5d, 0xc9,
0x91, 0x01, 0xd0, 0xef, 0xe1, 0xae, 0xb0, 0xa4, 0xf2, 0xb2, 0xd0, 0x94, 0x71, 0xae, 0xa9, 0xdb,
0x9c, 0xc7, 0x11, 0x34, 0x0b, 0x6c, 0xa5, 0x1d, 0xa6, 0x02, 0x23, 0x02, 0xa0, 0x99, 0xa8, 0x5d,
0xac, 0xc3, 0x5e, 0x49, 0x6d, 0x1e, 0xa7, 0x9c, 0x1a, 0xc3, 0xda, 0x14, 0x75, 0x9a, 0x0b, 0x8d,
0x1e, 0xce, 0xa5, 0xbf, 0xa1, 0xd1, 0xa7, 0x49, 0xcb, 0x4d, 0xfc, 0x00, 0xab, 0x32, 0x1d, 0x83,
0x30, 0x3e, 0x71, 0xbd, 0x38, 0x62, 0x49, 0x1c, 0xba, 0x27, 0x41, 0xe4, 0xc7, 0x27, 0xd6, 0x72,
0xda, 0xcf, 0xa7, 0xc8, 0x77, 0x22, 0xf6, 0xf4, 0xc9, 0x0f, 0x38, 0x1c, 0x13, 0xe7, 0x9a, 0xd0,
0xde, 0x0e, 0xe3, 0x93, 0xae, 0xd4, 0x7d, 0x2b, 0x54, 0xd1, 0x3b, 0x68, 0xa9, 0xe0, 0xcf, 0x23,
0xae, 0x9f, 0x4f, 0xfc, 0xa5, 0x54, 0x9f, 0x65, 0x7e, 0x0a, 0x4b, 0xf1, 0x88, 0x1f, 0x64, 0xac,
0x86, 0x18, 0xe1, 0xb7, 0x16, 0x8d, 0x8f, 0xd7, 0x02, 0xe5, 0x28, 0xb4, 0xfd, 0xcf, 0x12, 0x54,
0x55, 0xcb, 0xa3, 0x57, 0xd0, 0x60, 0xde, 0x28, 0x18, 0xb9, 0x58, 0x0a, 0xd4, 0xe4, 0xba, 0xb7,
0x70, 0x48, 0xb4, 0xfb, 0xde, 0x68, 0x67, 0xa4, 0x1e, 0x5e, 0x5e, 0x72, 0xea, 0x42, 0x3d, 0xa5,
0x7b, 0x01, 0xcb, 0x63, 0x9f, 0x66, 0x64, 0x72, 0xac, 0xdd, 0x5d, 0x4c, 0x76, 0xe0, 0xd3, 0x9c,
0x0a, 0xc6, 0xd9, 0x13, 0xf7, 0x2b, 0x66, 0x47, 0x24, 0xc9, 0xa8, 0x4a, 0xe7, 0xf9, 0xf5, 0x9a,
0xc3, 0x35, 0xbf, 0x62, 0xed, 0xb9, 0xd5, 0x81, 0xba, 0xee, 0x37, 0xdf, 0xf9, 0x9c, 0x5a, 0x73,
0xdd, 0xa9, 0xe5, 0xcb, 0x40, 0x50, 0x1e, 0xc5, 0x89, 0xdc, 0x4e, 0x56, 0x1c, 0xf1, 0xbb, 0xb5,
0x0e, 0x90, 0x7b, 0x8b, 0x5a, 0x60, 0x0c, 0x82, 0x90, 0x88, 0x39, 0x57, 0x10, 0x73, 0x2e, 0x7b,
0x6e, 0xed, 0x43, 0x5d, 0x77, 0x26, 0xdb, 0x15, 0x14, 0xf2, 0x5d, 0x01, 0x7a, 0x00, 0x95, 0x09,
0xcf, 0xae, 0x0a, 0xd1, 0xd5, 0x99, 0x02, 0xe8, 0x44, 0x1f, 0x1c, 0x09, 0x79, 0x56, 0x83, 0xaa,
0xf2, 0xd4, 0xfe, 0x73, 0x09, 0x8c, 0x74, 0xf0, 0xa2, 0x4d, 0x28, 0xb1, 0x90, 0x2e, 0xfe, 0xec,
0xa6, 0xc0, 0x76, 0x3f, 0xe4, 0x11, 0xe1, 0x60, 0xbe, 0xd9, 0x16, 0x81, 0x51, 0x76, 0xd7, 0xcf,
0xd0, 0x12, 0x6b, 0x48, 0x9f, 0x5e, 0x5e, 0x72, 0xa4, 0x62, 0xeb, 0x5f, 0x05, 0x28, 0xf5, 0x43,
0x8a, 0xbe, 0x82, 0x06, 0x65, 0x38, 0xf2, 0x71, 0xe2, 0xbb, 0xf9, 0xf2, 0x78, 0xe4, 0x53, 0x31,
0x1f, 0xf9, 0x68, 0x0d, 0x40, 0x26, 0x32, 0xdf, 0x4a, 0xbe, 0xbc, 0xe4, 0xd4, 0x84, 0x4c, 0x00,
0xbe, 0x81, 0x15, 0xd9, 0x77, 0x1e, 0x49, 0x58, 0x30, 0x08, 0x3c, 0x7e, 0x14, 0x28, 0x89, 0x8c,
0x98, 0xe2, 0x45, 0x37, 0x97, 0xa3, 0x87, 0x80, 0x54, 0x33, 0xe9, 0xe8, 0xb2, 0x40, 0xaf, 0xc8,
0x37, 0x1a, 0xfc, 0x59, 0x13, 0xea, 0x5e, 0x30, 0xe2, 0xd6, 0xe9, 0x38, 0x60, 0xa4, 0xf5, 0x1a,
0x1a, 0x53, 0xab, 0xfa, 0xec, 0xd4, 0x54, 0xa1, 0x32, 0x8c, 0x7d, 0x12, 0xda, 0x11, 0xd4, 0xf5,
0x5e, 0x9b, 0x4b, 0x7c, 0x55, 0x27, 0xae, 0x29, 0x0a, 0xf4, 0x04, 0x00, 0xfb, 0x7e, 0xc0, 0xb5,
0xb2, 0xaf, 0xfa, 0x7c, 0x9b, 0x1a, 0xce, 0xde, 0x83, 0x2b, 0xba, 0x3d, 0x3e, 0xc6, 0xe2, 0x31,
0x43, 0xbf, 0x04, 0x23, 0xbd, 0xdd, 0x50, 0x75, 0xb1, 0x3a, 0x43, 0xf5, 0x5c, 0x01, 0x9c, 0x0c,
0x6a, 0x7b, 0x80, 0x74, 0xb6, 0xbd, 0x20, 0x3a, 0x24, 0x09, 0x3f, 0x56, 0x61, 0x7e, 0xdc, 0x92,
0xab, 0x30, 0x1c, 0xf5, 0x34, 0x65, 0xa4, 0x78, 0x71, 0x23, 0x7f, 0x37, 0x4e, 0xf9, 0xec, 0x8d,
0x76, 0xa2, 0x41, 0xcc, 0x7b, 0x91, 0xcf, 0x10, 0x37, 0x3f, 0x04, 0x36, 0x9c, 0x1a, 0x97, 0xc8,
0x53, 0xa8, 0x2d, 0x27, 0x94, 0xeb, 0x61, 0x85, 0x28, 0x0a, 0xc4, 0x32, 0x17, 0x76, 0xb1, 0xc4,
0x7c, 0x0d, 0xa6, 0xc0, 0x24, 0x84, 0x25, 0x38, 0xa2, 0xc3, 0x80, 0xc9, 0x81, 0xd1, 0x70, 0x2e,
0x73, 0xb9, 0x93, 0x8b, 0xf9, 0x1e, 0x45, 0x40, 0x47, 0x49, 0xfc, 0x9e, 0x50, 0x51, 0x3a, 0x0d,
0x47, 0x38, 0xf0, 0x46, 0x48, 0xf8, 0x56, 0x52, 0x00, 0xde, 0x63, 0xef, 0x38, 0x1e, 0x0c, 0xc4,
0xd7, 0x5e, 0x99, 0x7b, 0x26, 0x45, 0x19, 0x44, 0xce, 0x53, 0x2a, 0x3e, 0xf2, 0x0a, 0x22, 0x97,
0x46, 0xd1, 0x3d, 0xb8, 0x2c, 0x17, 0x15, 0xf9, 0xee, 0x09, 0xf5, 0x70, 0x48, 0xc4, 0xd7, 0xbc,
0xe1, 0x88, 0xc5, 0xf4, 0x22, 0xff, 0xad, 0x10, 0x66, 0xb8, 0xc4, 0x9b, 0xa4, 0x38, 0x23, 0xc7,
0x39, 0xde, 0x44, 0xe1, 0x56, 0xc1, 0x90, 0x38, 0x16, 0x8b, 0x0f, 0x69, 0xc3, 0xa9, 0x0a, 0x00,
0x8b, 0xb3, 0x57, 0x98, 0xc5, 0xe2, 0x23, 0xa8, 0x5e, 0x75, 0x58, 0x8c, 0x6e, 0x2b, 0x47, 0xb9,
0x17, 0x43, 0x4a, 0xc5, 0x67, 0x4c, 0xad, 0xb6, 0x17, 0xf9, 0xaf, 0x28, 0xcd, 0x10, 0xdc, 0x3e,
0x47, 0xd4, 0x73, 0x84, 0xe3, 0x4d, 0x38, 0x22, 0x5d, 0xec, 0x38, 0xc2, 0xde, 0x31, 0xf1, 0xad,
0x46, 0xbe, 0xd8, 0x03, 0x29, 0xca, 0x62, 0x4a, 0x25, 0xa2, 0xa9, 0x59, 0x91, 0x80, 0xeb, 0x20,
0x12, 0xea, 0x86, 0x31, 0x65, 0xd6, 0x65, 0xf1, 0x5a, 0xf8, 0xbc, 0x17, 0x53, 0x96, 0x19, 0x50,
0xc9, 0xb3, 0xcc, 0xdc, 0x80, 0x4a, 0x5c, 0x06, 0x19, 0x70, 0x3a, 0x46, 0xad, 0x95, 0x1c, 0xb2,
0x2d, 0x45, 0xe8, 0x21, 0x5c, 0x91, 0x26, 0xf8, 0x36, 0x81, 0xef, 0x94, 0xe5, 0xfe, 0x0b, 0x09,
0xa4, 0xa8, 0x8e, 0x3d, 0x4c, 0xc5, 0xb6, 0x53, 0x6d, 0xec, 0x50, 0x0e, 0xc7, 0xde, 0xb1, 0x44,
0x5f, 0xc9, 0x6b, 0x86, 0xa3, 0x3b, 0xde, 0xb1, 0x00, 0xcf, 0x72, 0x27, 0xc4, 0x9b, 0x58, 0x57,
0x67, 0xb9, 0x1d, 0xe2, 0x4d, 0x66, 0xb9, 0x05, 0xfa, 0x8b, 0x19, 0x6e, 0x01, 0x4e, 0x43, 0x33,
0x1a, 0xb2, 0xb1, 0x75, 0x2d, 0x0f, 0xcd, 0x9b, 0x21, 0x1b, 0xa3, 0x07, 0xb0, 0x92, 0x65, 0x87,
0x52, 0x76, 0x94, 0x10, 0x7a, 0x64, 0x7d, 0xa9, 0x15, 0xb6, 0x37, 0xe9, 0x29, 0xb1, 0x56, 0x21,
0xcc, 0xb2, 0xf4, 0x0a, 0x61, 0x59, 0x7e, 0x12, 0xc6, 0x26, 0x38, 0xb1, 0x56, 0xb5, 0x1c, 0x0b,
0x49, 0x66, 0x87, 0xd7, 0x49, 0x66, 0xa7, 0x95, 0xdb, 0xe9, 0x45, 0x7e, 0x66, 0x27, 0xed, 0x47,
0x8e, 0xf5, 0x4e, 0x22, 0xdf, 0xba, 0x9e, 0x27, 0xa3, 0x17, 0xf9, 0xdd, 0x93, 0x28, 0x2f, 0x08,
0xec, 0x4f, 0x78, 0x51, 0xdd, 0xc8, 0x0d, 0x76, 0x84, 0x84, 0xef, 0xfc, 0x55, 0xce, 0xe3, 0xc4,
0x27, 0x49, 0x10, 0x1d, 0x5a, 0x37, 0x05, 0xa8, 0x29, 0xd3, 0x9e, 0x4a, 0xed, 0x0e, 0x7c, 0xf1,
0x82, 0xb0, 0x7e, 0x3c, 0x52, 0x67, 0x48, 0xea, 0x90, 0x3f, 0x8c, 0x09, 0x65, 0x7c, 0xb3, 0x2d,
0xce, 0x0c, 0xee, 0xcc, 0x0d, 0x46, 0x53, 0xc8, 0xbb, 0xe9, 0xc5, 0x82, 0xed, 0xc2, 0xb5, 0xd3,
0x14, 0x74, 0x14, 0x47, 0x94, 0xa0, 0x6f, 0xa1, 0xaa, 0xb4, 0xad, 0x82, 0xd8, 0x41, 0xad, 0x2e,
0xbe, 0x0d, 0x4c, 0x91, 0xc8, 0x84, 0x12, 0x89, 0xe4, 0xe9, 0xc3, 0x70, 0xf8, 0x4f, 0xfb, 0x3b,
0x58, 0x79, 0x41, 0x98, 0x3c, 0x11, 0x67, 0xfe, 0xdd, 0xe3, 0x67, 0x1b, 0xee, 0x5f, 0x7e, 0x5b,
0x50, 0x48, 0x8f, 0x21, 0x38, 0x51, 0xe8, 0x1d, 0xdf, 0x7e, 0x07, 0x48, 0x57, 0x56, 0x9e, 0x3d,
0x82, 0x25, 0xa9, 0xa7, 0x1c, 0xb3, 0x16, 0x5e, 0x04, 0x28, 0xdc, 0x1c, 0xb7, 0x7e, 0x82, 0x2f,
0x33, 0x66, 0x39, 0x77, 0x33, 0xe7, 0xa6, 0x2e, 0x31, 0x0a, 0xa7, 0x2e, 0x31, 0x72, 0xcf, 0xb3,
0x9b, 0x94, 0xa2, 0xee, 0xb9, 0xba, 0x4e, 0xb1, 0x8f, 0xc0, 0x9a, 0xe5, 0x57, 0xfe, 0x4f, 0x5f,
0x72, 0x16, 0x3e, 0xe5, 0x92, 0x73, 0xce, 0x4a, 0x36, 0x45, 0x80, 0xb3, 0x8b, 0x2b, 0xb9, 0x86,
0xb3, 0x2f, 0xaf, 0xec, 0x1d, 0x11, 0xd7, 0x4c, 0x67, 0x5e, 0xc6, 0x0b, 0x17, 0xcb, 0xb8, 0xfd,
0x1d, 0x5c, 0xe5, 0x0b, 0xd5, 0xae, 0xb4, 0xa4, 0x07, 0x33, 0xd7, 0x5a, 0x85, 0xd9, 0x6b, 0x2d,
0xfb, 0x40, 0x14, 0xb0, 0xae, 0xac, 0x5c, 0xf9, 0x35, 0x40, 0x0e, 0x5c, 0xfc, 0x0f, 0x03, 0x4d,
0x53, 0xc3, 0xdb, 0x1b, 0x60, 0x72, 0x5a, 0x15, 0xb4, 0x3c, 0xab, 0x59, 0xca, 0x0a, 0xd3, 0x97,
0x5f, 0xf6, 0x96, 0x2c, 0x52, 0xa5, 0xa0, 0x95, 0x99, 0xbc, 0x04, 0x92, 0xf6, 0xad, 0x85, 0x29,
0x52, 0xb8, 0xcd, 0xff, 0x94, 0xc1, 0x50, 0x01, 0xfa, 0x88, 0x3c, 0x68, 0x4e, 0x77, 0x16, 0xba,
0x3f, 0x4b, 0x30, 0xb7, 0x7d, 0x5b, 0xeb, 0xe7, 0x03, 0x95, 0x8f, 0x6f, 0x01, 0xf2, 0x06, 0x41,
0x77, 0xe6, 0xea, 0x4d, 0xf7, 0x5e, 0xeb, 0xee, 0xd9, 0x20, 0x45, 0x1c, 0xc8, 0x10, 0xea, 0xf5,
0x8b, 0xbe, 0x3e, 0x43, 0x73, 0xba, 0x87, 0x5a, 0x0f, 0x2e, 0x02, 0x9d, 0x5a, 0x43, 0xfa, 0x3f,
0xa2, 0xf9, 0x6b, 0x98, 0x2e, 0xef, 0x05, 0x6b, 0x38, 0x5d, 0xcf, 0x3f, 0x43, 0x63, 0xaa, 0xba,
0xd0, 0xbd, 0xf9, 0x5e, 0x9d, 0xae, 0xdd, 0xd6, 0xfd, 0x73, 0x71, 0xca, 0x42, 0x1f, 0x6a, 0x59,
0xdd, 0x20, 0x7b, 0xbe, 0x96, 0x5e, 0x85, 0xad, 0x3b, 0x67, 0x62, 0x24, 0xeb, 0xb3, 0x77, 0x70,
0x25, 0x88, 0x67, 0x80, 0xcf, 0x1a, 0x69, 0x69, 0xbd, 0xe1, 0xfb, 0xc8, 0x37, 0x85, 0xdf, 0x3d,
0x52, 0xfb, 0xca, 0xc3, 0x38, 0xc4, 0xd1, 0x61, 0x3b, 0x4e, 0x0e, 0x37, 0xb8, 0xd2, 0x46, 0xaa,
0x24, 0x9e, 0xd2, 0x4f, 0xc0, 0x47, 0x77, 0xf2, 0xf8, 0xfd, 0x92, 0xd8, 0x82, 0x7e, 0xfb, 0xbf,
0x00, 0x00, 0x00, 0xff, 0xff, 0xce, 0xbe, 0x6e, 0x8a, 0x33, 0x1c, 0x00, 0x00,
func init() {
proto.RegisterFile("grpc/channelz/v1/channelz.proto", fileDescriptor_channelz_ce3ed45d08251f2f)
}
var fileDescriptor_channelz_ce3ed45d08251f2f = []byte{
// 2515 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4b, 0x6f, 0xdb, 0xca,
0x15, 0xb6, 0xde, 0xd4, 0xd1, 0x23, 0xf2, 0xe4, 0x45, 0x2b, 0x0f, 0xbb, 0x74, 0x6e, 0xe2, 0x9b,
0x34, 0x72, 0xec, 0x9b, 0x06, 0x45, 0xd3, 0xa2, 0x57, 0x56, 0xec, 0x58, 0xae, 0x23, 0x07, 0x94,
0x7c, 0x93, 0xdb, 0xc5, 0xe5, 0x65, 0xc8, 0xb1, 0xcc, 0x9a, 0x22, 0x55, 0xce, 0x48, 0x46, 0xb2,
0xed, 0xbe, 0xcb, 0xa2, 0xbf, 0xa0, 0x9b, 0x2e, 0x0a, 0x14, 0x28, 0xd0, 0x6e, 0x8b, 0xfe, 0x99,
0xfe, 0x8b, 0x62, 0x1e, 0x7c, 0xc8, 0x92, 0x2c, 0x07, 0x59, 0x76, 0x63, 0x88, 0x87, 0xdf, 0xf9,
0xce, 0x99, 0xf3, 0x9a, 0xe1, 0x18, 0x56, 0xfb, 0xc1, 0xd0, 0xda, 0xb4, 0x4e, 0x4d, 0xcf, 0xc3,
0xee, 0xa7, 0xcd, 0xf1, 0x56, 0xf4, 0xbb, 0x31, 0x0c, 0x7c, 0xea, 0xa3, 0x1a, 0x03, 0x34, 0x22,
0xe1, 0x78, 0xab, 0xbe, 0xd2, 0xf7, 0xfd, 0xbe, 0x8b, 0x37, 0xf9, 0xfb, 0x0f, 0xa3, 0x93, 0x4d,
0xd3, 0xfb, 0x28, 0xc0, 0xf5, 0xfb, 0x17, 0x5f, 0xd9, 0xa3, 0xc0, 0xa4, 0x8e, 0xef, 0xc9, 0xf7,
0xab, 0x17, 0xdf, 0x53, 0x67, 0x80, 0x09, 0x35, 0x07, 0xc3, 0x79, 0x04, 0xe7, 0x81, 0x39, 0x1c,
0xe2, 0x80, 0x88, 0xf7, 0xda, 0xdf, 0xd2, 0x50, 0x68, 0x09, 0x5f, 0x50, 0x03, 0x32, 0x01, 0x3e,
0x51, 0x53, 0x6b, 0xa9, 0x8d, 0xd2, 0xf6, 0xdd, 0xc6, 0x45, 0x3f, 0x1b, 0x12, 0xa7, 0xe3, 0x13,
0x9d, 0x01, 0xd1, 0x16, 0x64, 0x6d, 0x93, 0x9a, 0x6a, 0x9a, 0x2b, 0xdc, 0x9b, 0xab, 0xf0, 0xca,
0xa4, 0xa6, 0xce, 0xa1, 0xe8, 0x57, 0x50, 0x92, 0x00, 0x83, 0x99, 0xca, 0xac, 0x65, 0x16, 0x9a,
0x02, 0x2b, 0xfa, 0x8d, 0xf6, 0xa0, 0x4a, 0x46, 0x1f, 0x92, 0x0c, 0x59, 0xce, 0xb0, 0x3a, 0xcd,
0xd0, 0x8d, 0x70, 0x8c, 0xa4, 0x42, 0x92, 0x8f, 0xe8, 0x17, 0x00, 0xc4, 0xb7, 0xce, 0x30, 0xe5,
0x1c, 0x39, 0xce, 0x71, 0x67, 0x06, 0x07, 0xc7, 0x30, 0xfd, 0x22, 0x09, 0x7f, 0x6a, 0xff, 0x48,
0x03, 0xc4, 0xe4, 0x68, 0x2b, 0x19, 0xb4, 0x85, 0x7e, 0xfc, 0x1f, 0xc7, 0xed, 0xdf, 0x29, 0x50,
0xa5, 0x7b, 0x2d, 0xdf, 0xf3, 0xb0, 0x45, 0x9d, 0xb1, 0x43, 0x3f, 0x76, 0xa9, 0x49, 0x31, 0xda,
0x83, 0x1c, 0x61, 0x3f, 0x78, 0x1c, 0xab, 0xdb, 0xcf, 0xe6, 0xae, 0x6c, 0x4a, 0xb5, 0xc1, 0xff,
0xea, 0x42, 0x5d, 0xfb, 0x01, 0x72, 0x82, 0xb0, 0x04, 0x85, 0xe3, 0xce, 0x6f, 0x3a, 0x47, 0xef,
0x3a, 0xb5, 0x25, 0xa4, 0x40, 0xb6, 0xfd, 0xea, 0x70, 0xb7, 0x96, 0x42, 0x55, 0x80, 0xd6, 0x51,
0xa7, 0xb3, 0xdb, 0xea, 0xb5, 0x3b, 0xaf, 0x6b, 0x69, 0x54, 0x84, 0x9c, 0xbe, 0xdb, 0x7c, 0xf5,
0x7d, 0x2d, 0x83, 0x6e, 0xc2, 0x72, 0x4f, 0x6f, 0x76, 0xba, 0xed, 0xdd, 0x4e, 0xcf, 0xd8, 0x6b,
0xb6, 0x0f, 0x8f, 0xf5, 0xdd, 0x5a, 0x16, 0x95, 0x41, 0xe9, 0xee, 0x1f, 0xf7, 0x5e, 0x31, 0xa6,
0x9c, 0xf6, 0xdf, 0x34, 0x94, 0x12, 0xd9, 0x41, 0xdf, 0x26, 0xfd, 0x2e, 0x6d, 0x3f, 0xbe, 0xba,
0xdf, 0xd2, 0x63, 0x74, 0x0b, 0xf2, 0xd4, 0x0c, 0xfa, 0x98, 0xf2, 0x72, 0x28, 0xea, 0xf2, 0x09,
0x3d, 0x87, 0x1c, 0x0d, 0x4c, 0x0b, 0xab, 0x19, 0xce, 0x7c, 0x7f, 0x2e, 0x73, 0x8f, 0xa1, 0x74,
0x01, 0x46, 0xeb, 0x50, 0xb1, 0x4c, 0xd7, 0x25, 0x06, 0xa1, 0x66, 0x40, 0xb1, 0xad, 0x66, 0xd7,
0x52, 0x1b, 0x19, 0xbd, 0xcc, 0x85, 0x5d, 0x21, 0x43, 0x8f, 0xe0, 0x9a, 0x04, 0x8d, 0x2c, 0x0b,
0x63, 0x1b, 0xdb, 0x6a, 0x8e, 0xc3, 0xaa, 0x02, 0x16, 0x4a, 0xd1, 0x4f, 0x40, 0x28, 0x1a, 0x27,
0xa6, 0xe3, 0x62, 0x5b, 0xcd, 0x73, 0x54, 0x89, 0xcb, 0xf6, 0xb8, 0x08, 0x7d, 0x0f, 0x77, 0x5c,
0x93, 0x50, 0x83, 0xc9, 0x42, 0xa3, 0x46, 0x34, 0x84, 0xd4, 0x02, 0x77, 0xbe, 0xde, 0x10, 0x53,
0xa8, 0x11, 0x4e, 0xa1, 0x46, 0x2f, 0x44, 0xe8, 0x2a, 0x53, 0x6f, 0x99, 0xae, 0x2b, 0xbd, 0x8b,
0xde, 0x68, 0x7f, 0xce, 0xc0, 0x72, 0x72, 0x8d, 0xbb, 0x63, 0xec, 0x51, 0xb4, 0x06, 0x25, 0x1b,
0x13, 0x2b, 0x70, 0x86, 0x6c, 0x0c, 0xf2, 0xb8, 0x17, 0xf5, 0xa4, 0x08, 0xed, 0x83, 0x42, 0xf0,
0x18, 0x07, 0x0e, 0xfd, 0xc8, 0x63, 0x5a, 0xdd, 0xfe, 0xe9, 0xe5, 0xc1, 0xe3, 0xc4, 0x8d, 0xae,
0xd4, 0xd1, 0x23, 0x6d, 0xf4, 0x73, 0x28, 0xc6, 0x4b, 0xc9, 0x2c, 0x5c, 0x4a, 0x0c, 0x46, 0xbf,
0x9e, 0xec, 0xd7, 0xec, 0xe2, 0x91, 0xba, 0xbf, 0x34, 0xd1, 0xb1, 0xfb, 0x53, 0x1d, 0x9b, 0xbb,
0xd2, 0x84, 0xd9, 0x5f, 0xba, 0xd0, 0xb3, 0xda, 0x2e, 0x28, 0xe1, 0xd2, 0x78, 0xf9, 0xf7, 0x8c,
0xb8, 0x31, 0x4a, 0x50, 0x68, 0xf5, 0x8c, 0x76, 0x67, 0xef, 0x48, 0xf6, 0x46, 0xcf, 0x78, 0xd7,
0xd4, 0x3b, 0xa2, 0x37, 0xca, 0xa0, 0xb4, 0x7a, 0xc6, 0xae, 0xae, 0x1f, 0xe9, 0xb5, 0xcc, 0x4e,
0x09, 0x8a, 0xd6, 0xa9, 0xe3, 0xda, 0xcc, 0x17, 0xd6, 0xcb, 0xe5, 0x64, 0x04, 0xd1, 0x63, 0x58,
0xf6, 0x46, 0x03, 0x03, 0xb3, 0x48, 0x12, 0xc3, 0xf5, 0xfb, 0x7d, 0x6c, 0xf3, 0xdc, 0x64, 0xf4,
0x6b, 0xde, 0x68, 0xc0, 0x23, 0x4c, 0x0e, 0xb9, 0x18, 0xb5, 0x01, 0x59, 0x01, 0xe6, 0xbb, 0x58,
0xa2, 0x52, 0xd2, 0x0b, 0xc3, 0xbb, 0x1c, 0x6a, 0x45, 0x22, 0xf4, 0x12, 0xf2, 0xc2, 0xa4, 0x9c,
0x88, 0xeb, 0x57, 0x48, 0xb4, 0x2e, 0x55, 0x34, 0x0b, 0x20, 0x0e, 0x3f, 0xba, 0x07, 0x61, 0xf8,
0x0d, 0x27, 0x74, 0xbd, 0x28, 0x25, 0x6d, 0x1b, 0x21, 0xc8, 0x7a, 0xe6, 0x00, 0xcb, 0x26, 0xe5,
0xbf, 0x0f, 0xb2, 0x4a, 0xa6, 0x96, 0x3d, 0xc8, 0x2a, 0xd9, 0x5a, 0xee, 0x20, 0xab, 0xe4, 0x6a,
0xf9, 0x83, 0xac, 0x92, 0xaf, 0x15, 0x0e, 0xb2, 0x4a, 0xa1, 0xa6, 0x1c, 0x64, 0x15, 0xa5, 0x56,
0xd4, 0x5c, 0xa8, 0x4c, 0xe4, 0x87, 0x75, 0x68, 0x22, 0xb1, 0x8e, 0xcd, 0x5b, 0x24, 0xa3, 0x97,
0x63, 0x61, 0xc2, 0x9a, 0x32, 0x61, 0x2d, 0x55, 0x4b, 0x1f, 0x64, 0x95, 0x74, 0x2d, 0x33, 0xcf,
0xb2, 0xf6, 0x23, 0x14, 0xa3, 0xd9, 0x8b, 0xee, 0x80, 0x9c, 0xbe, 0xcc, 0x4a, 0x86, 0x5b, 0x51,
0x84, 0x20, 0x61, 0x21, 0x3b, 0xd7, 0xc2, 0xec, 0xf5, 0x30, 0x0b, 0x38, 0x18, 0xe3, 0x20, 0xb4,
0xc0, 0x1f, 0x98, 0x85, 0x9c, 0xb4, 0xc0, 0x05, 0x09, 0x0b, 0xf9, 0x2b, 0xad, 0x21, 0xb6, 0xf0,
0xd7, 0x14, 0xe4, 0x85, 0x09, 0xf4, 0x34, 0xb9, 0xb7, 0xce, 0xda, 0x67, 0x42, 0x4f, 0xc4, 0xbe,
0xfa, 0x6c, 0x62, 0x5f, 0xbd, 0x3b, 0x0f, 0x9f, 0xd8, 0x56, 0xbf, 0x85, 0x8a, 0xeb, 0x10, 0x8a,
0x3d, 0x43, 0x04, 0x46, 0x96, 0xd1, 0xa5, 0x5b, 0x5a, 0x59, 0x68, 0x08, 0x81, 0xf6, 0x47, 0x76,
0x1a, 0x88, 0x68, 0xe3, 0xa9, 0x9d, 0xfa, 0xa2, 0xa9, 0x9d, 0xbe, 0xda, 0xd4, 0xce, 0x5c, 0x69,
0x6a, 0x67, 0x3f, 0x7b, 0x6a, 0xe7, 0xbe, 0x60, 0x6a, 0xff, 0x25, 0x0d, 0x79, 0x11, 0x9b, 0xc5,
0xe9, 0x8b, 0x62, 0x7a, 0xc5, 0xf4, 0x71, 0x7c, 0x22, 0x7d, 0x9b, 0x90, 0x73, 0x7d, 0xcb, 0x74,
0xe5, 0x6c, 0x5e, 0x99, 0x56, 0x69, 0xda, 0x76, 0x80, 0x09, 0xd1, 0x05, 0x0e, 0x6d, 0x41, 0x3e,
0xc0, 0x03, 0x9f, 0x62, 0x39, 0x91, 0x2f, 0xd1, 0x90, 0x40, 0xf4, 0x82, 0xed, 0x26, 0xd6, 0x88,
0xef, 0x26, 0x51, 0x5c, 0xa6, 0x0b, 0x4b, 0x20, 0xf4, 0x08, 0x8b, 0x56, 0xa1, 0x24, 0x18, 0x8c,
0x44, 0x17, 0x80, 0x10, 0x75, 0xcc, 0x01, 0xd6, 0xfe, 0x50, 0x00, 0x88, 0x57, 0xc4, 0xd2, 0x4b,
0x68, 0x80, 0xcd, 0x41, 0x5c, 0x05, 0x62, 0x08, 0x55, 0xa5, 0x38, 0xac, 0x83, 0x27, 0xb0, 0x1c,
0x01, 0xa3, 0x4a, 0x10, 0x05, 0x53, 0x0b, 0xa1, 0x51, 0x2d, 0x7c, 0x05, 0xa1, 0x7a, 0x58, 0x0d,
0xa2, 0x66, 0x2a, 0x52, 0x2a, 0xeb, 0x61, 0x1d, 0x2a, 0x03, 0x4c, 0x88, 0xd9, 0xc7, 0xc4, 0x20,
0xd8, 0xa3, 0xe1, 0xb1, 0x21, 0x14, 0x76, 0xd9, 0xce, 0xfb, 0x04, 0x96, 0x23, 0x50, 0x80, 0x2d,
0xec, 0x8c, 0xa3, 0x83, 0x43, 0x2d, 0x7c, 0xa1, 0x4b, 0x39, 0xda, 0x80, 0xda, 0x19, 0xc6, 0x43,
0xc3, 0x74, 0x9d, 0x71, 0x48, 0x2a, 0x8e, 0x0f, 0x55, 0x26, 0x6f, 0x72, 0x31, 0xa7, 0x3d, 0x85,
0x75, 0x5e, 0x8b, 0x3c, 0x43, 0x86, 0xf0, 0xcb, 0xe0, 0xa3, 0xfe, 0x33, 0x4f, 0x12, 0xab, 0x8c,
0xe6, 0x90, 0xb1, 0x74, 0x39, 0x49, 0x4b, 0x70, 0xc4, 0xbb, 0xc5, 0xef, 0xe0, 0x01, 0xb7, 0x24,
0xf3, 0x32, 0xd7, 0x94, 0xb2, 0xd0, 0xd4, 0x1a, 0xe3, 0xd1, 0x39, 0xcd, 0x1c, 0x5b, 0x61, 0x87,
0xc9, 0xc0, 0xf0, 0x00, 0x24, 0x4c, 0x14, 0xaf, 0xd6, 0x61, 0x6f, 0x84, 0x36, 0x8b, 0x53, 0x4c,
0x6d, 0xc2, 0xea, 0x04, 0x75, 0x98, 0x8b, 0x04, 0x3d, 0x2c, 0xa4, 0xbf, 0x9b, 0xa0, 0x0f, 0x93,
0x16, 0x9b, 0xf8, 0x0e, 0x56, 0x44, 0x3a, 0x4e, 0x5c, 0xff, 0xdc, 0xb0, 0x7c, 0x8f, 0x06, 0xbe,
0x6b, 0x9c, 0x3b, 0x9e, 0xed, 0x9f, 0xab, 0xa5, 0xb0, 0x9f, 0x2f, 0x90, 0xb7, 0x3d, 0xfa, 0xe2,
0xf9, 0x77, 0xa6, 0x3b, 0xc2, 0xfa, 0x2d, 0xae, 0xbd, 0xe7, 0xfa, 0xe7, 0x2d, 0xa1, 0xfb, 0x8e,
0xab, 0xa2, 0xf7, 0x50, 0x97, 0xc1, 0x9f, 0x45, 0x5c, 0x5e, 0x4c, 0x7c, 0x5b, 0xa8, 0x4f, 0x33,
0xbf, 0x80, 0xbc, 0x2f, 0x4e, 0x84, 0x15, 0x3e, 0xc2, 0xef, 0xcf, 0x1b, 0x1f, 0x47, 0x1c, 0xa5,
0x4b, 0xb4, 0xf6, 0xcf, 0x0c, 0x14, 0x64, 0xcb, 0xa3, 0x37, 0x50, 0xa1, 0xd6, 0xd0, 0x19, 0x1a,
0xa6, 0x10, 0xc8, 0xc9, 0xf5, 0x70, 0xee, 0x90, 0x68, 0xf4, 0xac, 0x61, 0x7b, 0x28, 0x1f, 0xf6,
0x97, 0xf4, 0x32, 0x57, 0x0f, 0xe9, 0x5e, 0x43, 0x69, 0x64, 0x93, 0x88, 0x4c, 0x8c, 0xb5, 0x07,
0xf3, 0xc9, 0x8e, 0x6d, 0x12, 0x53, 0xc1, 0x28, 0x7a, 0x62, 0x7e, 0xf9, 0xf4, 0x14, 0x07, 0x11,
0x55, 0x66, 0x91, 0x5f, 0x47, 0x0c, 0x9e, 0xf0, 0xcb, 0x4f, 0x3c, 0xd7, 0x9b, 0x50, 0x4e, 0xfa,
0xcd, 0x4e, 0x3e, 0x17, 0xd6, 0x5c, 0xd6, 0x8b, 0xf1, 0x32, 0x10, 0x64, 0x87, 0x7e, 0x20, 0x3e,
0x4f, 0x72, 0x3a, 0xff, 0x5d, 0xdf, 0x00, 0x88, 0xbd, 0x45, 0x75, 0x50, 0x4e, 0x1c, 0x17, 0xf3,
0x39, 0x27, 0xce, 0xe3, 0xd1, 0x73, 0xbd, 0x03, 0xe5, 0xa4, 0x33, 0xd1, 0xa9, 0x20, 0x15, 0x9f,
0x0a, 0xd0, 0x63, 0xc8, 0x8d, 0x59, 0x76, 0x65, 0x88, 0x6e, 0x4c, 0x15, 0x40, 0xd3, 0xfb, 0xa8,
0x0b, 0xc8, 0x4e, 0x11, 0x0a, 0xd2, 0x53, 0xed, 0x4f, 0x19, 0x76, 0xb2, 0x95, 0xe3, 0x76, 0x1b,
0x32, 0xd4, 0x25, 0xf3, 0xb7, 0xdd, 0x10, 0xd8, 0xe8, 0xb9, 0x2c, 0x22, 0x0c, 0xcc, 0x3e, 0xde,
0x78, 0x60, 0xa4, 0xdd, 0x8d, 0x4b, 0xb4, 0xf8, 0x1a, 0xc2, 0xa7, 0xfd, 0x25, 0x5d, 0x28, 0xd6,
0xff, 0x95, 0x82, 0x4c, 0xcf, 0x25, 0xe8, 0x2b, 0xa8, 0x10, 0x6a, 0x7a, 0xb6, 0x19, 0xd8, 0x46,
0xbc, 0x3c, 0x16, 0xf9, 0x50, 0xcc, 0x46, 0x3e, 0x5a, 0x05, 0x10, 0x89, 0x8c, 0x8f, 0x92, 0xfb,
0x4b, 0x7a, 0x91, 0xcb, 0x38, 0xe0, 0x09, 0x2c, 0x8b, 0xbe, 0xb3, 0x70, 0x40, 0x9d, 0x13, 0xc7,
0x62, 0x9f, 0x96, 0x19, 0x9e, 0x91, 0x1a, 0x7f, 0xd1, 0x8a, 0xe5, 0xe8, 0x29, 0x20, 0xd9, 0x4c,
0x49, 0x74, 0x96, 0xa3, 0x97, 0xc5, 0x9b, 0x04, 0x7c, 0xa7, 0x0a, 0x65, 0xcb, 0x19, 0x32, 0xeb,
0x64, 0xe4, 0x50, 0x5c, 0x3f, 0x82, 0xca, 0xc4, 0xaa, 0xbe, 0x38, 0x35, 0x05, 0xc8, 0x0d, 0x7c,
0x1b, 0xbb, 0x9a, 0x07, 0xe5, 0x64, 0xaf, 0xcd, 0x24, 0xbe, 0x91, 0x24, 0x2e, 0x4a, 0x0a, 0xf4,
0x1c, 0xc0, 0xb4, 0x6d, 0x87, 0x69, 0x45, 0xbb, 0xfa, 0x6c, 0x9b, 0x09, 0x9c, 0x76, 0x08, 0xd7,
0x93, 0xf6, 0xd8, 0x18, 0xf3, 0x47, 0x14, 0xfd, 0x0c, 0x94, 0xf0, 0xb6, 0x4c, 0xd6, 0xc5, 0xca,
0x14, 0xd5, 0x2b, 0x09, 0xd0, 0x23, 0xa8, 0x66, 0x01, 0x4a, 0xb2, 0x1d, 0x3a, 0x5e, 0x1f, 0x07,
0xec, 0x33, 0xdd, 0x64, 0x9f, 0xef, 0x62, 0x15, 0x8a, 0x2e, 0x9f, 0x26, 0x8c, 0xa4, 0xaf, 0x6e,
0xe4, 0xef, 0xca, 0x05, 0x9f, 0xad, 0x61, 0xdb, 0x3b, 0xf1, 0x59, 0x2f, 0xb2, 0x19, 0x62, 0xc4,
0x97, 0x0a, 0x15, 0xbd, 0xc8, 0x24, 0xe2, 0x56, 0x43, 0x13, 0x13, 0xca, 0xb0, 0x4c, 0x89, 0x48,
0x73, 0x44, 0x89, 0x09, 0x5b, 0xa6, 0xc0, 0x7c, 0x0d, 0x35, 0x8e, 0x09, 0x30, 0x0d, 0x4c, 0x8f,
0x0c, 0x1c, 0x2a, 0x06, 0x46, 0x45, 0xbf, 0xc6, 0xe4, 0x7a, 0x2c, 0x66, 0x67, 0x14, 0x0e, 0x1d,
0x06, 0xfe, 0x07, 0x4c, 0x78, 0xe9, 0x54, 0x74, 0xee, 0xc0, 0x5b, 0x2e, 0x61, 0x47, 0x49, 0x0e,
0xf8, 0x60, 0x5a, 0x67, 0xfe, 0x89, 0xf8, 0x06, 0x95, 0xe6, 0x76, 0x84, 0x28, 0x82, 0x88, 0x79,
0x4a, 0xf8, 0x26, 0x2f, 0x21, 0x62, 0x69, 0x04, 0x3d, 0x84, 0x6b, 0x62, 0x51, 0x9e, 0x6d, 0x9c,
0x13, 0xcb, 0x74, 0x31, 0xdf, 0xcd, 0x2b, 0x3a, 0x5f, 0x4c, 0xd7, 0xb3, 0xdf, 0x71, 0x61, 0x84,
0x0b, 0xac, 0x71, 0x88, 0x53, 0x62, 0x9c, 0x6e, 0x8d, 0x25, 0x6e, 0x05, 0x14, 0x81, 0xa3, 0x3e,
0xdf, 0x48, 0x2b, 0x7a, 0x81, 0x03, 0xa8, 0x1f, 0xbd, 0x32, 0xa9, 0xcf, 0x37, 0x41, 0xf9, 0xaa,
0x49, 0x7d, 0xb4, 0x26, 0x1d, 0x65, 0x5e, 0x0c, 0x08, 0xe1, 0xdb, 0x98, 0x5c, 0x6d, 0xd7, 0xb3,
0xdf, 0x10, 0x12, 0x21, 0x98, 0x7d, 0x86, 0x28, 0xc7, 0x08, 0xdd, 0x1a, 0x33, 0x44, 0xb8, 0xd8,
0x91, 0x67, 0x5a, 0x67, 0xd8, 0x56, 0x2b, 0xf1, 0x62, 0x8f, 0x85, 0x28, 0x8a, 0x29, 0x11, 0x88,
0x6a, 0xc2, 0x8a, 0x00, 0xdc, 0x01, 0x9e, 0x50, 0xc3, 0xf5, 0x09, 0x55, 0xaf, 0xf1, 0xd7, 0xdc,
0xe7, 0x43, 0x9f, 0xd0, 0xc8, 0x80, 0x4c, 0x9e, 0x5a, 0x8b, 0x0d, 0xc8, 0xc4, 0x45, 0x90, 0x13,
0x46, 0x47, 0x89, 0xba, 0x1c, 0x43, 0xf6, 0x84, 0x08, 0x3d, 0x85, 0xeb, 0xc2, 0x04, 0x3b, 0x26,
0xb0, 0x93, 0xb2, 0x38, 0x7f, 0x21, 0x8e, 0xe4, 0xd5, 0x71, 0x68, 0x12, 0x7e, 0xec, 0x94, 0x07,
0x3b, 0x14, 0xc3, 0x4d, 0xeb, 0x4c, 0xa0, 0xaf, 0xc7, 0x35, 0xc3, 0xd0, 0x4d, 0xeb, 0x8c, 0x83,
0xa7, 0xb9, 0x03, 0x6c, 0x8d, 0xd5, 0x1b, 0xd3, 0xdc, 0x3a, 0xb6, 0xc6, 0xd3, 0xdc, 0x1c, 0x7d,
0x73, 0x8a, 0x9b, 0x83, 0xc3, 0xd0, 0x0c, 0x07, 0x74, 0xa4, 0xde, 0x8a, 0x43, 0xf3, 0x76, 0x40,
0x47, 0xe8, 0x31, 0x2c, 0x47, 0xd9, 0x21, 0x84, 0x9e, 0x06, 0x98, 0x9c, 0xaa, 0xb7, 0x13, 0x85,
0x6d, 0x8d, 0xbb, 0x52, 0x9c, 0xa8, 0x10, 0xaa, 0xaa, 0xc9, 0x0a, 0xa1, 0x51, 0x7e, 0x02, 0x4a,
0xc7, 0x66, 0xa0, 0xae, 0x24, 0x72, 0xcc, 0x25, 0x91, 0x1d, 0x56, 0x27, 0x91, 0x9d, 0x7a, 0x6c,
0xa7, 0xeb, 0xd9, 0x91, 0x9d, 0xb0, 0x1f, 0x19, 0xd6, 0x3a, 0xf7, 0x6c, 0xf5, 0x4e, 0x9c, 0x8c,
0xae, 0x67, 0xb7, 0xce, 0xbd, 0xb8, 0x20, 0x4c, 0x7b, 0xcc, 0x8a, 0xea, 0x6e, 0x6c, 0xb0, 0xc9,
0x25, 0xec, 0xe4, 0x2f, 0x73, 0xee, 0x07, 0x36, 0x0e, 0x1c, 0xaf, 0xaf, 0xde, 0xe3, 0xa0, 0xaa,
0x48, 0x7b, 0x28, 0xd5, 0x9a, 0x70, 0xf3, 0x35, 0xa6, 0x3d, 0x7f, 0x28, 0xbf, 0x21, 0x89, 0x8e,
0x7f, 0x3f, 0xc2, 0x84, 0xb2, 0xc3, 0x36, 0xff, 0x66, 0x30, 0xa6, 0x6e, 0x30, 0xaa, 0x5c, 0xde,
0x0a, 0x2f, 0x16, 0x34, 0x03, 0x6e, 0x5d, 0xa4, 0x20, 0x43, 0xdf, 0x23, 0x18, 0x7d, 0x03, 0x05,
0xa9, 0xad, 0xa6, 0xf8, 0x09, 0x6a, 0x65, 0xfe, 0x6d, 0x55, 0x88, 0x44, 0x35, 0xc8, 0x60, 0x4f,
0x7c, 0x7d, 0x28, 0x3a, 0xfb, 0xa9, 0xbd, 0x84, 0xe5, 0xd7, 0x98, 0x8a, 0x2f, 0xe2, 0xc8, 0xbf,
0x87, 0xec, 0xdb, 0x86, 0xf9, 0x17, 0xdf, 0x16, 0xa4, 0xc2, 0xcf, 0x10, 0x33, 0x90, 0xe8, 0xb6,
0xad, 0xbd, 0x07, 0x94, 0x54, 0x96, 0x9e, 0x3d, 0x83, 0xbc, 0xd0, 0x93, 0x8e, 0xa9, 0x73, 0x2f,
0x02, 0x24, 0x6e, 0x86, 0x5b, 0x3f, 0xc0, 0xed, 0x88, 0x59, 0xcc, 0xdd, 0xc8, 0xb9, 0x89, 0x4b,
0x8c, 0xd4, 0x85, 0x4b, 0x8c, 0xd8, 0xf3, 0xe8, 0x26, 0x25, 0x9d, 0xf4, 0x5c, 0x5e, 0xa7, 0x68,
0xa7, 0xa0, 0x4e, 0xf3, 0x4b, 0xff, 0x27, 0x2f, 0xcd, 0x53, 0x9f, 0x73, 0x69, 0x3e, 0x63, 0x25,
0xdb, 0x3c, 0xc0, 0xd1, 0xc5, 0x95, 0x58, 0xc3, 0xe5, 0x97, 0x57, 0x5a, 0x9b, 0xc7, 0x35, 0xd2,
0x99, 0x95, 0xf1, 0xd4, 0xd5, 0x32, 0xae, 0xbd, 0x84, 0x1b, 0x6c, 0xa1, 0x89, 0x2b, 0x2d, 0xe1,
0xc1, 0xd4, 0xb5, 0x56, 0x6a, 0xfa, 0x5a, 0x4b, 0x3b, 0xe6, 0x05, 0x9c, 0x54, 0x96, 0xae, 0xfc,
0x12, 0x20, 0x06, 0xce, 0xff, 0x07, 0x54, 0x42, 0x33, 0x81, 0xd7, 0x36, 0xa1, 0xc6, 0x68, 0x65,
0xd0, 0xe2, 0xac, 0x46, 0x29, 0x4b, 0x4d, 0x5e, 0x7e, 0x69, 0xbb, 0xa2, 0x48, 0xa5, 0x42, 0xa2,
0xcc, 0xc4, 0x25, 0x90, 0xb0, 0xaf, 0xce, 0x4d, 0x91, 0xc4, 0x6d, 0xff, 0x27, 0x0b, 0x8a, 0x0c,
0xd0, 0x27, 0x64, 0x41, 0x75, 0xb2, 0xb3, 0xd0, 0xa3, 0x69, 0x82, 0x99, 0xed, 0x5b, 0xdf, 0x58,
0x0c, 0x94, 0x3e, 0xbe, 0x03, 0x88, 0x1b, 0x04, 0xad, 0xcf, 0xd4, 0x9b, 0xec, 0xbd, 0xfa, 0x83,
0xcb, 0x41, 0x92, 0xd8, 0x11, 0x21, 0x4c, 0xd6, 0x2f, 0xfa, 0xfa, 0x12, 0xcd, 0xc9, 0x1e, 0xaa,
0x3f, 0xbe, 0x0a, 0x74, 0x62, 0x0d, 0xe1, 0xff, 0x1c, 0x67, 0xaf, 0x61, 0xb2, 0xbc, 0xe7, 0xac,
0xe1, 0x62, 0x3d, 0xff, 0x08, 0x95, 0x89, 0xea, 0x42, 0x0f, 0x67, 0x7b, 0x75, 0xb1, 0x76, 0xeb,
0x8f, 0x16, 0xe2, 0xa4, 0x85, 0x1e, 0x14, 0xa3, 0xba, 0x41, 0xda, 0x6c, 0xad, 0x64, 0x15, 0xd6,
0xd7, 0x2f, 0xc5, 0x08, 0xd6, 0x9d, 0xf7, 0x70, 0xdd, 0xf1, 0xa7, 0x80, 0x3b, 0x95, 0xb0, 0xb4,
0xde, 0xb2, 0x73, 0xe4, 0xdb, 0xd4, 0x6f, 0x9f, 0xc9, 0x73, 0x65, 0xdf, 0x77, 0x4d, 0xaf, 0xdf,
0xf0, 0x83, 0xfe, 0xe6, 0xe4, 0xff, 0x9a, 0xd9, 0x53, 0xb8, 0x05, 0x7c, 0x32, 0xc6, 0x5b, 0x1f,
0xf2, 0xfc, 0x08, 0xfa, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd3, 0x7a, 0xae, 0xc5, 0x94,
0x1e, 0x00, 0x00,
}

Просмотреть файл

@ -1,485 +0,0 @@
// Copyright 2018 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// This file defines an interface for exporting monitoring information
// out of gRPC servers. See the full design at
// https://github.com/grpc/proposal/blob/master/A14-channelz.md
//
// The canonical version of this proto can be found at
// https://github.com/grpc/grpc-proto/blob/master/grpc/channelz/v1/channelz.proto
syntax = "proto3";
package grpc.channelz.v1;
import "google/protobuf/any.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
option go_package = "google.golang.org/grpc/channelz/grpc_channelz_v1";
option java_multiple_files = true;
option java_package = "io.grpc.channelz.v1";
option java_outer_classname = "ChannelzProto";
// Channel is a logical grouping of channels, subchannels, and sockets.
message Channel {
// The identifier for this channel. This should bet set.
ChannelRef ref = 1;
// Data specific to this channel.
ChannelData data = 2;
// At most one of 'channel_ref+subchannel_ref' and 'socket' is set.
// There are no ordering guarantees on the order of channel refs.
// There may not be cycles in the ref graph.
// A channel ref may be present in more than one channel or subchannel.
repeated ChannelRef channel_ref = 3;
// At most one of 'channel_ref+subchannel_ref' and 'socket' is set.
// There are no ordering guarantees on the order of subchannel refs.
// There may not be cycles in the ref graph.
// A sub channel ref may be present in more than one channel or subchannel.
repeated SubchannelRef subchannel_ref = 4;
// There are no ordering guarantees on the order of sockets.
repeated SocketRef socket_ref = 5;
}
// Subchannel is a logical grouping of channels, subchannels, and sockets.
// A subchannel is load balanced over by it's ancestor
message Subchannel {
// The identifier for this channel.
SubchannelRef ref = 1;
// Data specific to this channel.
ChannelData data = 2;
// At most one of 'channel_ref+subchannel_ref' and 'socket' is set.
// There are no ordering guarantees on the order of channel refs.
// There may not be cycles in the ref graph.
// A channel ref may be present in more than one channel or subchannel.
repeated ChannelRef channel_ref = 3;
// At most one of 'channel_ref+subchannel_ref' and 'socket' is set.
// There are no ordering guarantees on the order of subchannel refs.
// There may not be cycles in the ref graph.
// A sub channel ref may be present in more than one channel or subchannel.
repeated SubchannelRef subchannel_ref = 4;
// There are no ordering guarantees on the order of sockets.
repeated SocketRef socket_ref = 5;
}
// These come from the specified states in this document:
// https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md
message ChannelConnectivityState {
enum State {
UNKNOWN = 0;
IDLE = 1;
CONNECTING = 2;
READY = 3;
TRANSIENT_FAILURE = 4;
SHUTDOWN = 5;
}
State state = 1;
}
// Channel data is data related to a specific Channel or Subchannel.
message ChannelData {
// The connectivity state of the channel or subchannel. Implementations
// should always set this.
ChannelConnectivityState state = 1;
// The target this channel originally tried to connect to. May be absent
string target = 2;
// A trace of recent events on the channel. May be absent.
ChannelTrace trace = 3;
// The number of calls started on the channel
int64 calls_started = 4;
// The number of calls that have completed with an OK status
int64 calls_succeeded = 5;
// The number of calls that have completed with a non-OK status
int64 calls_failed = 6;
// The last time a call was started on the channel.
google.protobuf.Timestamp last_call_started_timestamp = 7;
}
// ChannelTrace represents the recent events that have occurred on the channel.
message ChannelTrace {
// see the proto in the gRFC for channel tracing:
// A3-channel-tracing.md
}
// ChannelRef is a reference to a Channel.
message ChannelRef {
// The globally unique id for this channel. Must be a positive number.
int64 channel_id = 1;
// An optional name associated with the channel.
string name = 2;
// Intentionally don't use field numbers from other refs.
reserved 3, 4, 5, 6, 7, 8;
}
// ChannelRef is a reference to a Subchannel.
message SubchannelRef {
// The globally unique id for this subchannel. Must be a positive number.
int64 subchannel_id = 7;
// An optional name associated with the subchannel.
string name = 8;
// Intentionally don't use field numbers from other refs.
reserved 1, 2, 3, 4, 5, 6;
}
// SocketRef is a reference to a Socket.
message SocketRef {
int64 socket_id = 3;
// An optional name associated with the socket.
string name = 4;
// Intentionally don't use field numbers from other refs.
reserved 1, 2, 5, 6, 7, 8;
}
// ServerRef is a reference to a Server.
message ServerRef {
// A globally unique identifier for this server. Must be a positive number.
int64 server_id = 5;
// An optional name associated with the server.
string name = 6;
// Intentionally don't use field numbers from other refs.
reserved 1, 2, 3, 4, 7, 8;
}
// Server represents a single server. There may be multiple servers in a single
// program.
message Server {
// The identifier for a Server. This should be set.
ServerRef ref = 1;
// The associated data of the Server.
ServerData data = 2;
// The sockets that the server is listening on. There are no ordering
// guarantees. This may be absent.
repeated SocketRef listen_socket = 3;
}
// ServerData is data for a specific Server.
message ServerData {
// A trace of recent events on the server. May be absent.
ChannelTrace trace = 1;
// The number of incoming calls started on the server
int64 calls_started = 2;
// The number of incoming calls that have completed with an OK status
int64 calls_succeeded = 3;
// The number of incoming calls that have a completed with a non-OK status
int64 calls_failed = 4;
// The last time a call was started on the server.
google.protobuf.Timestamp last_call_started_timestamp = 5;
}
// Information about an actual connection. Pronounced "sock-ay".
message Socket {
// The identifier for the Socket.
SocketRef ref = 1;
// Data specific to this Socket.
SocketData data = 2;
// The locally bound address.
Address local = 3;
// The remote bound address. May be absent.
Address remote = 4;
// Security details for this socket. May be absent if not available, or
// there is no security on the socket.
Security security = 5;
// Optional, represents the name of the remote endpoint, if different than
// the original target name.
string remote_name = 6;
}
// SocketData is data associated for a specific Socket. The fields present
// are specific to the implementation, so there may be minor differences in
// the semantics. (e.g. flow control windows)
message SocketData {
// The number of streams that have been started.
int64 streams_started = 1;
// The number of streams that have ended successfully:
// On client side, received frame with eos bit set;
// On server side, sent frame with eos bit set.
int64 streams_succeeded = 2;
// The number of streams that have ended unsuccessfully:
// On client side, ended without receiving frame with eos bit set;
// On server side, ended without sending frame with eos bit set.
int64 streams_failed = 3;
// The number of grpc messages successfully sent on this socket.
int64 messages_sent = 4;
// The number of grpc messages received on this socket.
int64 messages_received = 5;
// The number of keep alives sent. This is typically implemented with HTTP/2
// ping messages.
int64 keep_alives_sent = 6;
// The last time a stream was created by this endpoint. Usually unset for
// servers.
google.protobuf.Timestamp last_local_stream_created_timestamp = 7;
// The last time a stream was created by the remote endpoint. Usually unset
// for clients.
google.protobuf.Timestamp last_remote_stream_created_timestamp = 8;
// The last time a message was sent by this endpoint.
google.protobuf.Timestamp last_message_sent_timestamp = 9;
// The last time a message was received by this endpoint.
google.protobuf.Timestamp last_message_received_timestamp = 10;
// The amount of window, granted to the local endpoint by the remote endpoint.
// This may be slightly out of date due to network latency. This does NOT
// include stream level or TCP level flow control info.
google.protobuf.Int64Value local_flow_control_window = 11;
// The amount of window, granted to the remote endpoint by the local endpoint.
// This may be slightly out of date due to network latency. This does NOT
// include stream level or TCP level flow control info.
google.protobuf.Int64Value remote_flow_control_window = 12;
// Socket options set on this socket. May be absent.
repeated SocketOption option = 13;
}
// Address represents the address used to create the socket.
message Address {
message TcpIpAddress {
// Either the IPv4 or IPv6 address in bytes. Will be either 4 bytes or 16
// bytes in length.
bytes ip_address = 1;
// 0-64k, or -1 if not appropriate.
int32 port = 2;
}
// A Unix Domain Socket address.
message UdsAddress {
string filename = 1;
}
// An address type not included above.
message OtherAddress {
// The human readable version of the value. This value should be set.
string name = 1;
// The actual address message.
google.protobuf.Any value = 2;
}
oneof address {
TcpIpAddress tcpip_address = 1;
UdsAddress uds_address = 2;
OtherAddress other_address = 3;
}
}
// Security represents details about how secure the socket is.
message Security {
message Tls {
oneof cipher_suite {
// The cipher suite name in the RFC 4346 format:
// https://tools.ietf.org/html/rfc4346#appendix-C
string standard_name = 1;
// Some other way to describe the cipher suite if
// the RFC 4346 name is not available.
string other_name = 2;
}
// the certificate used by this endpoint.
bytes local_certificate = 3;
// the certificate used by the remote endpoint.
bytes remote_certificate = 4;
}
message OtherSecurity {
// The human readable version of the value.
string name = 1;
// The actual security details message.
google.protobuf.Any value = 2;
}
oneof model {
Tls tls = 1;
OtherSecurity other = 2;
}
}
// SocketOption represents socket options for a socket. Specifically, these
// are the options returned by getsockopt().
message SocketOption {
// The full name of the socket option. Typically this will be the upper case
// name, such as "SO_REUSEPORT".
string name = 1;
// The human readable value of this socket option. At least one of value or
// additional will be set.
string value = 2;
// Additional data associated with the socket option. At least one of value
// or additional will be set.
google.protobuf.Any additional = 3;
}
// For use with SocketOption's additional field. This is primarily used for
// SO_RCVTIMEO and SO_SNDTIMEO
message SocketOptionTimeout {
google.protobuf.Duration duration = 1;
}
// For use with SocketOption's additional field. This is primarily used for
// SO_LINGER.
message SocketOptionLinger {
// active maps to `struct linger.l_onoff`
bool active = 1;
// duration maps to `struct linger.l_linger`
google.protobuf.Duration duration = 2;
}
// For use with SocketOption's additional field. Tcp info for
// SOL_TCP and TCP_INFO.
message SocketOptionTcpInfo {
uint32 tcpi_state = 1;
uint32 tcpi_ca_state = 2;
uint32 tcpi_retransmits = 3;
uint32 tcpi_probes = 4;
uint32 tcpi_backoff = 5;
uint32 tcpi_options = 6;
uint32 tcpi_snd_wscale = 7;
uint32 tcpi_rcv_wscale = 8;
uint32 tcpi_rto = 9;
uint32 tcpi_ato = 10;
uint32 tcpi_snd_mss = 11;
uint32 tcpi_rcv_mss = 12;
uint32 tcpi_unacked = 13;
uint32 tcpi_sacked = 14;
uint32 tcpi_lost = 15;
uint32 tcpi_retrans = 16;
uint32 tcpi_fackets = 17;
uint32 tcpi_last_data_sent = 18;
uint32 tcpi_last_ack_sent = 19;
uint32 tcpi_last_data_recv = 20;
uint32 tcpi_last_ack_recv = 21;
uint32 tcpi_pmtu = 22;
uint32 tcpi_rcv_ssthresh = 23;
uint32 tcpi_rtt = 24;
uint32 tcpi_rttvar = 25;
uint32 tcpi_snd_ssthresh = 26;
uint32 tcpi_snd_cwnd = 27;
uint32 tcpi_advmss = 28;
uint32 tcpi_reordering = 29;
}
// Channelz is a service exposed by gRPC servers that provides detailed debug
// information.
service Channelz {
// Gets all root channels (i.e. channels the application has directly
// created). This does not include subchannels nor non-top level channels.
rpc GetTopChannels(GetTopChannelsRequest) returns (GetTopChannelsResponse);
// Gets all servers that exist in the process.
rpc GetServers(GetServersRequest) returns (GetServersResponse);
// Gets all server sockets that exist in the process.
rpc GetServerSockets(GetServerSocketsRequest) returns (GetServerSocketsResponse);
// Returns a single Channel, or else a NOT_FOUND code.
rpc GetChannel(GetChannelRequest) returns (GetChannelResponse);
// Returns a single Subchannel, or else a NOT_FOUND code.
rpc GetSubchannel(GetSubchannelRequest) returns (GetSubchannelResponse);
// Returns a single Socket or else a NOT_FOUND code.
rpc GetSocket(GetSocketRequest) returns (GetSocketResponse);
}
message GetTopChannelsRequest {
// start_channel_id indicates that only channels at or above this id should be
// included in the results.
int64 start_channel_id = 1;
}
message GetTopChannelsResponse {
// list of channels that the connection detail service knows about. Sorted in
// ascending channel_id order.
repeated Channel channel = 1;
// If set, indicates that the list of channels is the final list. Requesting
// more channels can only return more if they are created after this RPC
// completes.
bool end = 2;
}
message GetServersRequest {
// start_server_id indicates that only servers at or above this id should be
// included in the results.
int64 start_server_id = 1;
}
message GetServersResponse {
// list of servers that the connection detail service knows about. Sorted in
// ascending server_id order.
repeated Server server = 1;
// If set, indicates that the list of servers is the final list. Requesting
// more servers will only return more if they are created after this RPC
// completes.
bool end = 2;
}
message GetServerSocketsRequest {
int64 server_id = 1;
// start_socket_id indicates that only sockets at or above this id should be
// included in the results.
int64 start_socket_id = 2;
}
message GetServerSocketsResponse {
// list of socket refs that the connection detail service knows about. Sorted in
// ascending socket_id order.
repeated SocketRef socket_ref = 1;
// If set, indicates that the list of sockets is the final list. Requesting
// more sockets will only return more if they are created after this RPC
// completes.
bool end = 2;
}
message GetChannelRequest {
// channel_id is the identifier of the specific channel to get.
int64 channel_id = 1;
}
message GetChannelResponse {
// The Channel that corresponds to the requested channel_id. This field
// should be set.
Channel channel = 1;
}
message GetSubchannelRequest {
// subchannel_id is the identifier of the specific subchannel to get.
int64 subchannel_id = 1;
}
message GetSubchannelResponse {
// The Subchannel that corresponds to the requested subchannel_id. This
// field should be set.
Subchannel subchannel = 1;
}
message GetSocketRequest {
// socket_id is the identifier of the specific socket to get.
int64 socket_id = 1;
}
message GetSocketResponse {
// The Socket that corresponds to the requested socket_id. This field
// should be set.
Socket socket = 1;
}

33
channelz/regenerate.sh Executable file
Просмотреть файл

@ -0,0 +1,33 @@
#!/bin/bash
# Copyright 2018 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eux -o pipefail
TMP=$(mktemp -d)
function finish {
rm -rf "$TMP"
}
trap finish EXIT
pushd "$TMP"
mkdir -p grpc/channelz/v1
curl https://raw.githubusercontent.com/grpc/grpc-proto/master/grpc/channelz/v1/channelz.proto > grpc/channelz/v1/channelz.proto
protoc --go_out=plugins=grpc,paths=source_relative:. -I. grpc/channelz/v1/*.proto
popd
rm -f grpc_channelz_v1/*.pb.go
cp "$TMP"/grpc/channelz/v1/*.pb.go grpc_channelz_v1/