github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/stats/histogram.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: sql/stats/histogram.proto
     3  
     4  package stats
     5  
     6  import proto "github.com/gogo/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import types "github.com/cockroachdb/cockroach/pkg/sql/types"
    10  
    11  import encoding_binary "encoding/binary"
    12  
    13  import io "io"
    14  
    15  // Reference imports to suppress errors if they are not otherwise used.
    16  var _ = proto.Marshal
    17  var _ = fmt.Errorf
    18  var _ = math.Inf
    19  
    20  // This is a compile-time assertion to ensure that this generated file
    21  // is compatible with the proto package it is being compiled against.
    22  // A compilation error at this line likely means your copy of the
    23  // proto package needs to be updated.
    24  const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    25  
    26  // HistogramData encodes the data for a histogram, which captures the
    27  // distribution of values on a specific column.
    28  type HistogramData struct {
    29  	// Value type for the column.
    30  	ColumnType *types.T `protobuf:"bytes,2,opt,name=column_type,json=columnType,proto3" json:"column_type,omitempty"`
    31  	// Histogram buckets. Note that NULL values are excluded from the
    32  	// histogram.
    33  	Buckets []HistogramData_Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets"`
    34  }
    35  
    36  func (m *HistogramData) Reset()         { *m = HistogramData{} }
    37  func (m *HistogramData) String() string { return proto.CompactTextString(m) }
    38  func (*HistogramData) ProtoMessage()    {}
    39  func (*HistogramData) Descriptor() ([]byte, []int) {
    40  	return fileDescriptor_histogram_40b21550afd0ea12, []int{0}
    41  }
    42  func (m *HistogramData) XXX_Unmarshal(b []byte) error {
    43  	return m.Unmarshal(b)
    44  }
    45  func (m *HistogramData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    46  	b = b[:cap(b)]
    47  	n, err := m.MarshalTo(b)
    48  	if err != nil {
    49  		return nil, err
    50  	}
    51  	return b[:n], nil
    52  }
    53  func (dst *HistogramData) XXX_Merge(src proto.Message) {
    54  	xxx_messageInfo_HistogramData.Merge(dst, src)
    55  }
    56  func (m *HistogramData) XXX_Size() int {
    57  	return m.Size()
    58  }
    59  func (m *HistogramData) XXX_DiscardUnknown() {
    60  	xxx_messageInfo_HistogramData.DiscardUnknown(m)
    61  }
    62  
    63  var xxx_messageInfo_HistogramData proto.InternalMessageInfo
    64  
    65  type HistogramData_Bucket struct {
    66  	// The estimated number of values that are equal to upper_bound.
    67  	NumEq int64 `protobuf:"varint,1,opt,name=num_eq,json=numEq,proto3" json:"num_eq,omitempty"`
    68  	// The estimated number of values in the bucket (excluding those
    69  	// that are equal to upper_bound). Splitting the count into two
    70  	// makes the histogram effectively equivalent to a histogram with
    71  	// twice as many buckets, with every other bucket containing a
    72  	// single value. This might be particularly advantageous if the
    73  	// histogram algorithm makes sure the top "heavy hitters" (most
    74  	// frequent elements) are bucket boundaries (similar to a
    75  	// compressed histogram).
    76  	NumRange int64 `protobuf:"varint,2,opt,name=num_range,json=numRange,proto3" json:"num_range,omitempty"`
    77  	// The estimated number of distinct values in the bucket (excluding
    78  	// those that are equal to upper_bound). This is a floating point
    79  	// value because it is estimated by distributing the known distinct
    80  	// count for the column among the buckets, in proportion to the number
    81  	// of rows in each bucket. This value is in fact derived from the rest
    82  	// of the data, but is included to avoid re-computing it later.
    83  	DistinctRange float64 `protobuf:"fixed64,4,opt,name=distinct_range,json=distinctRange,proto3" json:"distinct_range,omitempty"`
    84  	// The upper boundary of the bucket. The column values for the upper bound
    85  	// are encoded using the ascending key encoding of the column type.
    86  	UpperBound []byte `protobuf:"bytes,3,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"`
    87  }
    88  
    89  func (m *HistogramData_Bucket) Reset()         { *m = HistogramData_Bucket{} }
    90  func (m *HistogramData_Bucket) String() string { return proto.CompactTextString(m) }
    91  func (*HistogramData_Bucket) ProtoMessage()    {}
    92  func (*HistogramData_Bucket) Descriptor() ([]byte, []int) {
    93  	return fileDescriptor_histogram_40b21550afd0ea12, []int{0, 0}
    94  }
    95  func (m *HistogramData_Bucket) XXX_Unmarshal(b []byte) error {
    96  	return m.Unmarshal(b)
    97  }
    98  func (m *HistogramData_Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    99  	b = b[:cap(b)]
   100  	n, err := m.MarshalTo(b)
   101  	if err != nil {
   102  		return nil, err
   103  	}
   104  	return b[:n], nil
   105  }
   106  func (dst *HistogramData_Bucket) XXX_Merge(src proto.Message) {
   107  	xxx_messageInfo_HistogramData_Bucket.Merge(dst, src)
   108  }
   109  func (m *HistogramData_Bucket) XXX_Size() int {
   110  	return m.Size()
   111  }
   112  func (m *HistogramData_Bucket) XXX_DiscardUnknown() {
   113  	xxx_messageInfo_HistogramData_Bucket.DiscardUnknown(m)
   114  }
   115  
   116  var xxx_messageInfo_HistogramData_Bucket proto.InternalMessageInfo
   117  
   118  func init() {
   119  	proto.RegisterType((*HistogramData)(nil), "cockroach.sql.stats.HistogramData")
   120  	proto.RegisterType((*HistogramData_Bucket)(nil), "cockroach.sql.stats.HistogramData.Bucket")
   121  }
   122  func (m *HistogramData) Marshal() (dAtA []byte, err error) {
   123  	size := m.Size()
   124  	dAtA = make([]byte, size)
   125  	n, err := m.MarshalTo(dAtA)
   126  	if err != nil {
   127  		return nil, err
   128  	}
   129  	return dAtA[:n], nil
   130  }
   131  
   132  func (m *HistogramData) MarshalTo(dAtA []byte) (int, error) {
   133  	var i int
   134  	_ = i
   135  	var l int
   136  	_ = l
   137  	if len(m.Buckets) > 0 {
   138  		for _, msg := range m.Buckets {
   139  			dAtA[i] = 0xa
   140  			i++
   141  			i = encodeVarintHistogram(dAtA, i, uint64(msg.Size()))
   142  			n, err := msg.MarshalTo(dAtA[i:])
   143  			if err != nil {
   144  				return 0, err
   145  			}
   146  			i += n
   147  		}
   148  	}
   149  	if m.ColumnType != nil {
   150  		dAtA[i] = 0x12
   151  		i++
   152  		i = encodeVarintHistogram(dAtA, i, uint64(m.ColumnType.Size()))
   153  		n1, err := m.ColumnType.MarshalTo(dAtA[i:])
   154  		if err != nil {
   155  			return 0, err
   156  		}
   157  		i += n1
   158  	}
   159  	return i, nil
   160  }
   161  
   162  func (m *HistogramData_Bucket) Marshal() (dAtA []byte, err error) {
   163  	size := m.Size()
   164  	dAtA = make([]byte, size)
   165  	n, err := m.MarshalTo(dAtA)
   166  	if err != nil {
   167  		return nil, err
   168  	}
   169  	return dAtA[:n], nil
   170  }
   171  
   172  func (m *HistogramData_Bucket) MarshalTo(dAtA []byte) (int, error) {
   173  	var i int
   174  	_ = i
   175  	var l int
   176  	_ = l
   177  	if m.NumEq != 0 {
   178  		dAtA[i] = 0x8
   179  		i++
   180  		i = encodeVarintHistogram(dAtA, i, uint64(m.NumEq))
   181  	}
   182  	if m.NumRange != 0 {
   183  		dAtA[i] = 0x10
   184  		i++
   185  		i = encodeVarintHistogram(dAtA, i, uint64(m.NumRange))
   186  	}
   187  	if len(m.UpperBound) > 0 {
   188  		dAtA[i] = 0x1a
   189  		i++
   190  		i = encodeVarintHistogram(dAtA, i, uint64(len(m.UpperBound)))
   191  		i += copy(dAtA[i:], m.UpperBound)
   192  	}
   193  	if m.DistinctRange != 0 {
   194  		dAtA[i] = 0x21
   195  		i++
   196  		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.DistinctRange))))
   197  		i += 8
   198  	}
   199  	return i, nil
   200  }
   201  
   202  func encodeVarintHistogram(dAtA []byte, offset int, v uint64) int {
   203  	for v >= 1<<7 {
   204  		dAtA[offset] = uint8(v&0x7f | 0x80)
   205  		v >>= 7
   206  		offset++
   207  	}
   208  	dAtA[offset] = uint8(v)
   209  	return offset + 1
   210  }
   211  func (m *HistogramData) Size() (n int) {
   212  	if m == nil {
   213  		return 0
   214  	}
   215  	var l int
   216  	_ = l
   217  	if len(m.Buckets) > 0 {
   218  		for _, e := range m.Buckets {
   219  			l = e.Size()
   220  			n += 1 + l + sovHistogram(uint64(l))
   221  		}
   222  	}
   223  	if m.ColumnType != nil {
   224  		l = m.ColumnType.Size()
   225  		n += 1 + l + sovHistogram(uint64(l))
   226  	}
   227  	return n
   228  }
   229  
   230  func (m *HistogramData_Bucket) Size() (n int) {
   231  	if m == nil {
   232  		return 0
   233  	}
   234  	var l int
   235  	_ = l
   236  	if m.NumEq != 0 {
   237  		n += 1 + sovHistogram(uint64(m.NumEq))
   238  	}
   239  	if m.NumRange != 0 {
   240  		n += 1 + sovHistogram(uint64(m.NumRange))
   241  	}
   242  	l = len(m.UpperBound)
   243  	if l > 0 {
   244  		n += 1 + l + sovHistogram(uint64(l))
   245  	}
   246  	if m.DistinctRange != 0 {
   247  		n += 9
   248  	}
   249  	return n
   250  }
   251  
   252  func sovHistogram(x uint64) (n int) {
   253  	for {
   254  		n++
   255  		x >>= 7
   256  		if x == 0 {
   257  			break
   258  		}
   259  	}
   260  	return n
   261  }
   262  func sozHistogram(x uint64) (n int) {
   263  	return sovHistogram(uint64((x << 1) ^ uint64((int64(x) >> 63))))
   264  }
   265  func (m *HistogramData) Unmarshal(dAtA []byte) error {
   266  	l := len(dAtA)
   267  	iNdEx := 0
   268  	for iNdEx < l {
   269  		preIndex := iNdEx
   270  		var wire uint64
   271  		for shift := uint(0); ; shift += 7 {
   272  			if shift >= 64 {
   273  				return ErrIntOverflowHistogram
   274  			}
   275  			if iNdEx >= l {
   276  				return io.ErrUnexpectedEOF
   277  			}
   278  			b := dAtA[iNdEx]
   279  			iNdEx++
   280  			wire |= (uint64(b) & 0x7F) << shift
   281  			if b < 0x80 {
   282  				break
   283  			}
   284  		}
   285  		fieldNum := int32(wire >> 3)
   286  		wireType := int(wire & 0x7)
   287  		if wireType == 4 {
   288  			return fmt.Errorf("proto: HistogramData: wiretype end group for non-group")
   289  		}
   290  		if fieldNum <= 0 {
   291  			return fmt.Errorf("proto: HistogramData: illegal tag %d (wire type %d)", fieldNum, wire)
   292  		}
   293  		switch fieldNum {
   294  		case 1:
   295  			if wireType != 2 {
   296  				return fmt.Errorf("proto: wrong wireType = %d for field Buckets", wireType)
   297  			}
   298  			var msglen int
   299  			for shift := uint(0); ; shift += 7 {
   300  				if shift >= 64 {
   301  					return ErrIntOverflowHistogram
   302  				}
   303  				if iNdEx >= l {
   304  					return io.ErrUnexpectedEOF
   305  				}
   306  				b := dAtA[iNdEx]
   307  				iNdEx++
   308  				msglen |= (int(b) & 0x7F) << shift
   309  				if b < 0x80 {
   310  					break
   311  				}
   312  			}
   313  			if msglen < 0 {
   314  				return ErrInvalidLengthHistogram
   315  			}
   316  			postIndex := iNdEx + msglen
   317  			if postIndex > l {
   318  				return io.ErrUnexpectedEOF
   319  			}
   320  			m.Buckets = append(m.Buckets, HistogramData_Bucket{})
   321  			if err := m.Buckets[len(m.Buckets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   322  				return err
   323  			}
   324  			iNdEx = postIndex
   325  		case 2:
   326  			if wireType != 2 {
   327  				return fmt.Errorf("proto: wrong wireType = %d for field ColumnType", wireType)
   328  			}
   329  			var msglen int
   330  			for shift := uint(0); ; shift += 7 {
   331  				if shift >= 64 {
   332  					return ErrIntOverflowHistogram
   333  				}
   334  				if iNdEx >= l {
   335  					return io.ErrUnexpectedEOF
   336  				}
   337  				b := dAtA[iNdEx]
   338  				iNdEx++
   339  				msglen |= (int(b) & 0x7F) << shift
   340  				if b < 0x80 {
   341  					break
   342  				}
   343  			}
   344  			if msglen < 0 {
   345  				return ErrInvalidLengthHistogram
   346  			}
   347  			postIndex := iNdEx + msglen
   348  			if postIndex > l {
   349  				return io.ErrUnexpectedEOF
   350  			}
   351  			if m.ColumnType == nil {
   352  				m.ColumnType = &types.T{}
   353  			}
   354  			if err := m.ColumnType.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   355  				return err
   356  			}
   357  			iNdEx = postIndex
   358  		default:
   359  			iNdEx = preIndex
   360  			skippy, err := skipHistogram(dAtA[iNdEx:])
   361  			if err != nil {
   362  				return err
   363  			}
   364  			if skippy < 0 {
   365  				return ErrInvalidLengthHistogram
   366  			}
   367  			if (iNdEx + skippy) > l {
   368  				return io.ErrUnexpectedEOF
   369  			}
   370  			iNdEx += skippy
   371  		}
   372  	}
   373  
   374  	if iNdEx > l {
   375  		return io.ErrUnexpectedEOF
   376  	}
   377  	return nil
   378  }
   379  func (m *HistogramData_Bucket) Unmarshal(dAtA []byte) error {
   380  	l := len(dAtA)
   381  	iNdEx := 0
   382  	for iNdEx < l {
   383  		preIndex := iNdEx
   384  		var wire uint64
   385  		for shift := uint(0); ; shift += 7 {
   386  			if shift >= 64 {
   387  				return ErrIntOverflowHistogram
   388  			}
   389  			if iNdEx >= l {
   390  				return io.ErrUnexpectedEOF
   391  			}
   392  			b := dAtA[iNdEx]
   393  			iNdEx++
   394  			wire |= (uint64(b) & 0x7F) << shift
   395  			if b < 0x80 {
   396  				break
   397  			}
   398  		}
   399  		fieldNum := int32(wire >> 3)
   400  		wireType := int(wire & 0x7)
   401  		if wireType == 4 {
   402  			return fmt.Errorf("proto: Bucket: wiretype end group for non-group")
   403  		}
   404  		if fieldNum <= 0 {
   405  			return fmt.Errorf("proto: Bucket: illegal tag %d (wire type %d)", fieldNum, wire)
   406  		}
   407  		switch fieldNum {
   408  		case 1:
   409  			if wireType != 0 {
   410  				return fmt.Errorf("proto: wrong wireType = %d for field NumEq", wireType)
   411  			}
   412  			m.NumEq = 0
   413  			for shift := uint(0); ; shift += 7 {
   414  				if shift >= 64 {
   415  					return ErrIntOverflowHistogram
   416  				}
   417  				if iNdEx >= l {
   418  					return io.ErrUnexpectedEOF
   419  				}
   420  				b := dAtA[iNdEx]
   421  				iNdEx++
   422  				m.NumEq |= (int64(b) & 0x7F) << shift
   423  				if b < 0x80 {
   424  					break
   425  				}
   426  			}
   427  		case 2:
   428  			if wireType != 0 {
   429  				return fmt.Errorf("proto: wrong wireType = %d for field NumRange", wireType)
   430  			}
   431  			m.NumRange = 0
   432  			for shift := uint(0); ; shift += 7 {
   433  				if shift >= 64 {
   434  					return ErrIntOverflowHistogram
   435  				}
   436  				if iNdEx >= l {
   437  					return io.ErrUnexpectedEOF
   438  				}
   439  				b := dAtA[iNdEx]
   440  				iNdEx++
   441  				m.NumRange |= (int64(b) & 0x7F) << shift
   442  				if b < 0x80 {
   443  					break
   444  				}
   445  			}
   446  		case 3:
   447  			if wireType != 2 {
   448  				return fmt.Errorf("proto: wrong wireType = %d for field UpperBound", wireType)
   449  			}
   450  			var byteLen int
   451  			for shift := uint(0); ; shift += 7 {
   452  				if shift >= 64 {
   453  					return ErrIntOverflowHistogram
   454  				}
   455  				if iNdEx >= l {
   456  					return io.ErrUnexpectedEOF
   457  				}
   458  				b := dAtA[iNdEx]
   459  				iNdEx++
   460  				byteLen |= (int(b) & 0x7F) << shift
   461  				if b < 0x80 {
   462  					break
   463  				}
   464  			}
   465  			if byteLen < 0 {
   466  				return ErrInvalidLengthHistogram
   467  			}
   468  			postIndex := iNdEx + byteLen
   469  			if postIndex > l {
   470  				return io.ErrUnexpectedEOF
   471  			}
   472  			m.UpperBound = append(m.UpperBound[:0], dAtA[iNdEx:postIndex]...)
   473  			if m.UpperBound == nil {
   474  				m.UpperBound = []byte{}
   475  			}
   476  			iNdEx = postIndex
   477  		case 4:
   478  			if wireType != 1 {
   479  				return fmt.Errorf("proto: wrong wireType = %d for field DistinctRange", wireType)
   480  			}
   481  			var v uint64
   482  			if (iNdEx + 8) > l {
   483  				return io.ErrUnexpectedEOF
   484  			}
   485  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
   486  			iNdEx += 8
   487  			m.DistinctRange = float64(math.Float64frombits(v))
   488  		default:
   489  			iNdEx = preIndex
   490  			skippy, err := skipHistogram(dAtA[iNdEx:])
   491  			if err != nil {
   492  				return err
   493  			}
   494  			if skippy < 0 {
   495  				return ErrInvalidLengthHistogram
   496  			}
   497  			if (iNdEx + skippy) > l {
   498  				return io.ErrUnexpectedEOF
   499  			}
   500  			iNdEx += skippy
   501  		}
   502  	}
   503  
   504  	if iNdEx > l {
   505  		return io.ErrUnexpectedEOF
   506  	}
   507  	return nil
   508  }
   509  func skipHistogram(dAtA []byte) (n int, err error) {
   510  	l := len(dAtA)
   511  	iNdEx := 0
   512  	for iNdEx < l {
   513  		var wire uint64
   514  		for shift := uint(0); ; shift += 7 {
   515  			if shift >= 64 {
   516  				return 0, ErrIntOverflowHistogram
   517  			}
   518  			if iNdEx >= l {
   519  				return 0, io.ErrUnexpectedEOF
   520  			}
   521  			b := dAtA[iNdEx]
   522  			iNdEx++
   523  			wire |= (uint64(b) & 0x7F) << shift
   524  			if b < 0x80 {
   525  				break
   526  			}
   527  		}
   528  		wireType := int(wire & 0x7)
   529  		switch wireType {
   530  		case 0:
   531  			for shift := uint(0); ; shift += 7 {
   532  				if shift >= 64 {
   533  					return 0, ErrIntOverflowHistogram
   534  				}
   535  				if iNdEx >= l {
   536  					return 0, io.ErrUnexpectedEOF
   537  				}
   538  				iNdEx++
   539  				if dAtA[iNdEx-1] < 0x80 {
   540  					break
   541  				}
   542  			}
   543  			return iNdEx, nil
   544  		case 1:
   545  			iNdEx += 8
   546  			return iNdEx, nil
   547  		case 2:
   548  			var length int
   549  			for shift := uint(0); ; shift += 7 {
   550  				if shift >= 64 {
   551  					return 0, ErrIntOverflowHistogram
   552  				}
   553  				if iNdEx >= l {
   554  					return 0, io.ErrUnexpectedEOF
   555  				}
   556  				b := dAtA[iNdEx]
   557  				iNdEx++
   558  				length |= (int(b) & 0x7F) << shift
   559  				if b < 0x80 {
   560  					break
   561  				}
   562  			}
   563  			iNdEx += length
   564  			if length < 0 {
   565  				return 0, ErrInvalidLengthHistogram
   566  			}
   567  			return iNdEx, nil
   568  		case 3:
   569  			for {
   570  				var innerWire uint64
   571  				var start int = iNdEx
   572  				for shift := uint(0); ; shift += 7 {
   573  					if shift >= 64 {
   574  						return 0, ErrIntOverflowHistogram
   575  					}
   576  					if iNdEx >= l {
   577  						return 0, io.ErrUnexpectedEOF
   578  					}
   579  					b := dAtA[iNdEx]
   580  					iNdEx++
   581  					innerWire |= (uint64(b) & 0x7F) << shift
   582  					if b < 0x80 {
   583  						break
   584  					}
   585  				}
   586  				innerWireType := int(innerWire & 0x7)
   587  				if innerWireType == 4 {
   588  					break
   589  				}
   590  				next, err := skipHistogram(dAtA[start:])
   591  				if err != nil {
   592  					return 0, err
   593  				}
   594  				iNdEx = start + next
   595  			}
   596  			return iNdEx, nil
   597  		case 4:
   598  			return iNdEx, nil
   599  		case 5:
   600  			iNdEx += 4
   601  			return iNdEx, nil
   602  		default:
   603  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
   604  		}
   605  	}
   606  	panic("unreachable")
   607  }
   608  
   609  var (
   610  	ErrInvalidLengthHistogram = fmt.Errorf("proto: negative length found during unmarshaling")
   611  	ErrIntOverflowHistogram   = fmt.Errorf("proto: integer overflow")
   612  )
   613  
   614  func init() {
   615  	proto.RegisterFile("sql/stats/histogram.proto", fileDescriptor_histogram_40b21550afd0ea12)
   616  }
   617  
   618  var fileDescriptor_histogram_40b21550afd0ea12 = []byte{
   619  	// 326 bytes of a gzipped FileDescriptorProto
   620  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x90, 0x31, 0x4e, 0xf3, 0x30,
   621  	0x18, 0x86, 0xe3, 0xa6, 0xed, 0xff, 0xe3, 0x50, 0x06, 0x43, 0xa5, 0x10, 0x24, 0x37, 0x42, 0x42,
   622  	0x84, 0xc5, 0x95, 0xca, 0xc8, 0x16, 0x81, 0x04, 0xab, 0xd5, 0x89, 0xa5, 0x4a, 0xd3, 0x28, 0xad,
   623  	0xda, 0xd8, 0x49, 0x6c, 0x0f, 0xdd, 0x39, 0x00, 0x27, 0xe0, 0x3c, 0x1d, 0x3b, 0x76, 0x42, 0x90,
   624  	0x5e, 0x04, 0xd9, 0xa6, 0x03, 0x88, 0x25, 0x8a, 0x1f, 0xbf, 0xef, 0xf3, 0x59, 0x1f, 0x3c, 0x17,
   625  	0xd5, 0x6a, 0x28, 0x64, 0x22, 0xc5, 0x70, 0xbe, 0x10, 0x92, 0xe7, 0x75, 0x52, 0x90, 0xb2, 0xe6,
   626  	0x92, 0xa3, 0xd3, 0x94, 0xa7, 0xcb, 0x9a, 0x27, 0xe9, 0x9c, 0x88, 0x6a, 0x45, 0x4c, 0x28, 0x38,
   627  	0xcb, 0x79, 0xce, 0xcd, 0xfd, 0x50, 0xff, 0xd9, 0x68, 0xd0, 0xd7, 0x16, 0xb9, 0x2e, 0x33, 0x61,
   628  	0xbf, 0x16, 0x5f, 0xbe, 0xb5, 0x60, 0xef, 0xf1, 0x60, 0xbd, 0x4f, 0x64, 0x82, 0x9e, 0xe0, 0xbf,
   629  	0xa9, 0x4a, 0x97, 0x99, 0x14, 0x3e, 0x08, 0xdd, 0xc8, 0x1b, 0xdd, 0x90, 0x3f, 0xa6, 0x90, 0x1f,
   630  	0x25, 0x12, 0x9b, 0x46, 0xdc, 0xde, 0xbc, 0x0f, 0x1c, 0x7a, 0xe8, 0xa3, 0x3b, 0xe8, 0xa5, 0x7c,
   631  	0xa5, 0x0a, 0x36, 0xd1, 0x23, 0xfd, 0x56, 0x08, 0x22, 0x6f, 0x14, 0xfc, 0xd6, 0x65, 0x05, 0xb1,
   632  	0x2f, 0x1a, 0x53, 0x68, 0xe3, 0xe3, 0x75, 0x99, 0x05, 0x2f, 0x00, 0x76, 0xad, 0x16, 0xf5, 0x61,
   633  	0x97, 0xa9, 0x62, 0x92, 0x55, 0x3e, 0x08, 0x41, 0xe4, 0xd2, 0x0e, 0x53, 0xc5, 0x43, 0x85, 0x2e,
   634  	0xe0, 0x91, 0xc6, 0x75, 0xc2, 0x72, 0x2b, 0x77, 0xe9, 0x7f, 0xa6, 0x0a, 0xaa, 0xcf, 0x68, 0x00,
   635  	0x3d, 0x55, 0x96, 0x59, 0x3d, 0x99, 0x72, 0xc5, 0x66, 0xbe, 0x1b, 0x82, 0xe8, 0x98, 0x42, 0x83,
   636  	0x62, 0x4d, 0xd0, 0x15, 0x3c, 0x99, 0x2d, 0x84, 0x5c, 0xb0, 0x54, 0x7e, 0x2b, 0xda, 0x21, 0x88,
   637  	0x00, 0xed, 0x1d, 0xa8, 0xf1, 0xc4, 0xd7, 0x9b, 0x4f, 0xec, 0x6c, 0x1a, 0x0c, 0xb6, 0x0d, 0x06,
   638  	0xbb, 0x06, 0x83, 0x8f, 0x06, 0x83, 0xd7, 0x3d, 0x76, 0xb6, 0x7b, 0xec, 0xec, 0xf6, 0xd8, 0x79,
   639  	0xee, 0x98, 0x85, 0x4c, 0xbb, 0x66, 0xa1, 0xb7, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbf, 0xd2,
   640  	0x87, 0x1e, 0xaf, 0x01, 0x00, 0x00,
   641  }