1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/spanner/v1/result_set.proto
3
4package spanner
5
6import (
7	fmt "fmt"
8	math "math"
9
10	proto "github.com/golang/protobuf/proto"
11	_struct "github.com/golang/protobuf/ptypes/struct"
12	_ "google.golang.org/genproto/googleapis/api/annotations"
13)
14
15// Reference imports to suppress errors if they are not otherwise used.
16var _ = proto.Marshal
17var _ = fmt.Errorf
18var _ = 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.
24const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
25
26// Results from [Read][google.spanner.v1.Spanner.Read] or
27// [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql].
28type ResultSet struct {
29	// Metadata about the result set, such as row type information.
30	Metadata *ResultSetMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
31	// Each element in `rows` is a row whose format is defined by
32	// [metadata.row_type][google.spanner.v1.ResultSetMetadata.row_type]. The ith
33	// element in each row matches the ith field in
34	// [metadata.row_type][google.spanner.v1.ResultSetMetadata.row_type]. Elements
35	// are encoded based on type as described [here][google.spanner.v1.TypeCode].
36	Rows []*_struct.ListValue `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"`
37	// Query plan and execution statistics for the SQL statement that
38	// produced this result set. These can be requested by setting
39	// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
40	// DML statements always produce stats containing the number of rows
41	// modified, unless executed using the
42	// [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN]
43	// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
44	// Other fields may or may not be populated, based on the
45	// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
46	Stats                *ResultSetStats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"`
47	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
48	XXX_unrecognized     []byte          `json:"-"`
49	XXX_sizecache        int32           `json:"-"`
50}
51
52func (m *ResultSet) Reset()         { *m = ResultSet{} }
53func (m *ResultSet) String() string { return proto.CompactTextString(m) }
54func (*ResultSet) ProtoMessage()    {}
55func (*ResultSet) Descriptor() ([]byte, []int) {
56	return fileDescriptor_e8c1400ddbf24213, []int{0}
57}
58
59func (m *ResultSet) XXX_Unmarshal(b []byte) error {
60	return xxx_messageInfo_ResultSet.Unmarshal(m, b)
61}
62func (m *ResultSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
63	return xxx_messageInfo_ResultSet.Marshal(b, m, deterministic)
64}
65func (m *ResultSet) XXX_Merge(src proto.Message) {
66	xxx_messageInfo_ResultSet.Merge(m, src)
67}
68func (m *ResultSet) XXX_Size() int {
69	return xxx_messageInfo_ResultSet.Size(m)
70}
71func (m *ResultSet) XXX_DiscardUnknown() {
72	xxx_messageInfo_ResultSet.DiscardUnknown(m)
73}
74
75var xxx_messageInfo_ResultSet proto.InternalMessageInfo
76
77func (m *ResultSet) GetMetadata() *ResultSetMetadata {
78	if m != nil {
79		return m.Metadata
80	}
81	return nil
82}
83
84func (m *ResultSet) GetRows() []*_struct.ListValue {
85	if m != nil {
86		return m.Rows
87	}
88	return nil
89}
90
91func (m *ResultSet) GetStats() *ResultSetStats {
92	if m != nil {
93		return m.Stats
94	}
95	return nil
96}
97
98// Partial results from a streaming read or SQL query. Streaming reads and
99// SQL queries better tolerate large result sets, large rows, and large
100// values, but are a little trickier to consume.
101type PartialResultSet struct {
102	// Metadata about the result set, such as row type information.
103	// Only present in the first response.
104	Metadata *ResultSetMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
105	// A streamed result set consists of a stream of values, which might
106	// be split into many `PartialResultSet` messages to accommodate
107	// large rows and/or large values. Every N complete values defines a
108	// row, where N is equal to the number of entries in
109	// [metadata.row_type.fields][google.spanner.v1.StructType.fields].
110	//
111	// Most values are encoded based on type as described
112	// [here][google.spanner.v1.TypeCode].
113	//
114	// It is possible that the last value in values is "chunked",
115	// meaning that the rest of the value is sent in subsequent
116	// `PartialResultSet`(s). This is denoted by the
117	// [chunked_value][google.spanner.v1.PartialResultSet.chunked_value] field.
118	// Two or more chunked values can be merged to form a complete value as
119	// follows:
120	//
121	//   * `bool/number/null`: cannot be chunked
122	//   * `string`: concatenate the strings
123	//   * `list`: concatenate the lists. If the last element in a list is a
124	//     `string`, `list`, or `object`, merge it with the first element in
125	//     the next list by applying these rules recursively.
126	//   * `object`: concatenate the (field name, field value) pairs. If a
127	//     field name is duplicated, then apply these rules recursively
128	//     to merge the field values.
129	//
130	// Some examples of merging:
131	//
132	//     # Strings are concatenated.
133	//     "foo", "bar" => "foobar"
134	//
135	//     # Lists of non-strings are concatenated.
136	//     [2, 3], [4] => [2, 3, 4]
137	//
138	//     # Lists are concatenated, but the last and first elements are merged
139	//     # because they are strings.
140	//     ["a", "b"], ["c", "d"] => ["a", "bc", "d"]
141	//
142	//     # Lists are concatenated, but the last and first elements are merged
143	//     # because they are lists. Recursively, the last and first elements
144	//     # of the inner lists are merged because they are strings.
145	//     ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"]
146	//
147	//     # Non-overlapping object fields are combined.
148	//     {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"}
149	//
150	//     # Overlapping object fields are merged.
151	//     {"a": "1"}, {"a": "2"} => {"a": "12"}
152	//
153	//     # Examples of merging objects containing lists of strings.
154	//     {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]}
155	//
156	// For a more complete example, suppose a streaming SQL query is
157	// yielding a result set whose rows contain a single string
158	// field. The following `PartialResultSet`s might be yielded:
159	//
160	//     {
161	//       "metadata": { ... }
162	//       "values": ["Hello", "W"]
163	//       "chunked_value": true
164	//       "resume_token": "Af65..."
165	//     }
166	//     {
167	//       "values": ["orl"]
168	//       "chunked_value": true
169	//       "resume_token": "Bqp2..."
170	//     }
171	//     {
172	//       "values": ["d"]
173	//       "resume_token": "Zx1B..."
174	//     }
175	//
176	// This sequence of `PartialResultSet`s encodes two rows, one
177	// containing the field value `"Hello"`, and a second containing the
178	// field value `"World" = "W" + "orl" + "d"`.
179	Values []*_struct.Value `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
180	// If true, then the final value in
181	// [values][google.spanner.v1.PartialResultSet.values] is chunked, and must be
182	// combined with more values from subsequent `PartialResultSet`s to obtain a
183	// complete field value.
184	ChunkedValue bool `protobuf:"varint,3,opt,name=chunked_value,json=chunkedValue,proto3" json:"chunked_value,omitempty"`
185	// Streaming calls might be interrupted for a variety of reasons, such
186	// as TCP connection loss. If this occurs, the stream of results can
187	// be resumed by re-sending the original request and including
188	// `resume_token`. Note that executing any other transaction in the
189	// same session invalidates the token.
190	ResumeToken []byte `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3" json:"resume_token,omitempty"`
191	// Query plan and execution statistics for the statement that produced this
192	// streaming result set. These can be requested by setting
193	// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode]
194	// and are sent only once with the last response in the stream. This field
195	// will also be present in the last response for DML statements.
196	Stats                *ResultSetStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
197	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
198	XXX_unrecognized     []byte          `json:"-"`
199	XXX_sizecache        int32           `json:"-"`
200}
201
202func (m *PartialResultSet) Reset()         { *m = PartialResultSet{} }
203func (m *PartialResultSet) String() string { return proto.CompactTextString(m) }
204func (*PartialResultSet) ProtoMessage()    {}
205func (*PartialResultSet) Descriptor() ([]byte, []int) {
206	return fileDescriptor_e8c1400ddbf24213, []int{1}
207}
208
209func (m *PartialResultSet) XXX_Unmarshal(b []byte) error {
210	return xxx_messageInfo_PartialResultSet.Unmarshal(m, b)
211}
212func (m *PartialResultSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
213	return xxx_messageInfo_PartialResultSet.Marshal(b, m, deterministic)
214}
215func (m *PartialResultSet) XXX_Merge(src proto.Message) {
216	xxx_messageInfo_PartialResultSet.Merge(m, src)
217}
218func (m *PartialResultSet) XXX_Size() int {
219	return xxx_messageInfo_PartialResultSet.Size(m)
220}
221func (m *PartialResultSet) XXX_DiscardUnknown() {
222	xxx_messageInfo_PartialResultSet.DiscardUnknown(m)
223}
224
225var xxx_messageInfo_PartialResultSet proto.InternalMessageInfo
226
227func (m *PartialResultSet) GetMetadata() *ResultSetMetadata {
228	if m != nil {
229		return m.Metadata
230	}
231	return nil
232}
233
234func (m *PartialResultSet) GetValues() []*_struct.Value {
235	if m != nil {
236		return m.Values
237	}
238	return nil
239}
240
241func (m *PartialResultSet) GetChunkedValue() bool {
242	if m != nil {
243		return m.ChunkedValue
244	}
245	return false
246}
247
248func (m *PartialResultSet) GetResumeToken() []byte {
249	if m != nil {
250		return m.ResumeToken
251	}
252	return nil
253}
254
255func (m *PartialResultSet) GetStats() *ResultSetStats {
256	if m != nil {
257		return m.Stats
258	}
259	return nil
260}
261
262// Metadata about a [ResultSet][google.spanner.v1.ResultSet] or
263// [PartialResultSet][google.spanner.v1.PartialResultSet].
264type ResultSetMetadata struct {
265	// Indicates the field names and types for the rows in the result
266	// set.  For example, a SQL query like `"SELECT UserId, UserName FROM
267	// Users"` could return a `row_type` value like:
268	//
269	//     "fields": [
270	//       { "name": "UserId", "type": { "code": "INT64" } },
271	//       { "name": "UserName", "type": { "code": "STRING" } },
272	//     ]
273	RowType *StructType `protobuf:"bytes,1,opt,name=row_type,json=rowType,proto3" json:"row_type,omitempty"`
274	// If the read or SQL query began a transaction as a side-effect, the
275	// information about the new transaction is yielded here.
276	Transaction          *Transaction `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
277	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
278	XXX_unrecognized     []byte       `json:"-"`
279	XXX_sizecache        int32        `json:"-"`
280}
281
282func (m *ResultSetMetadata) Reset()         { *m = ResultSetMetadata{} }
283func (m *ResultSetMetadata) String() string { return proto.CompactTextString(m) }
284func (*ResultSetMetadata) ProtoMessage()    {}
285func (*ResultSetMetadata) Descriptor() ([]byte, []int) {
286	return fileDescriptor_e8c1400ddbf24213, []int{2}
287}
288
289func (m *ResultSetMetadata) XXX_Unmarshal(b []byte) error {
290	return xxx_messageInfo_ResultSetMetadata.Unmarshal(m, b)
291}
292func (m *ResultSetMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
293	return xxx_messageInfo_ResultSetMetadata.Marshal(b, m, deterministic)
294}
295func (m *ResultSetMetadata) XXX_Merge(src proto.Message) {
296	xxx_messageInfo_ResultSetMetadata.Merge(m, src)
297}
298func (m *ResultSetMetadata) XXX_Size() int {
299	return xxx_messageInfo_ResultSetMetadata.Size(m)
300}
301func (m *ResultSetMetadata) XXX_DiscardUnknown() {
302	xxx_messageInfo_ResultSetMetadata.DiscardUnknown(m)
303}
304
305var xxx_messageInfo_ResultSetMetadata proto.InternalMessageInfo
306
307func (m *ResultSetMetadata) GetRowType() *StructType {
308	if m != nil {
309		return m.RowType
310	}
311	return nil
312}
313
314func (m *ResultSetMetadata) GetTransaction() *Transaction {
315	if m != nil {
316		return m.Transaction
317	}
318	return nil
319}
320
321// Additional statistics about a [ResultSet][google.spanner.v1.ResultSet] or
322// [PartialResultSet][google.spanner.v1.PartialResultSet].
323type ResultSetStats struct {
324	// [QueryPlan][google.spanner.v1.QueryPlan] for the query associated with this
325	// result.
326	QueryPlan *QueryPlan `protobuf:"bytes,1,opt,name=query_plan,json=queryPlan,proto3" json:"query_plan,omitempty"`
327	// Aggregated statistics from the execution of the query. Only present when
328	// the query is profiled. For example, a query could return the statistics as
329	// follows:
330	//
331	//     {
332	//       "rows_returned": "3",
333	//       "elapsed_time": "1.22 secs",
334	//       "cpu_time": "1.19 secs"
335	//     }
336	QueryStats *_struct.Struct `protobuf:"bytes,2,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"`
337	// The number of rows modified by the DML statement.
338	//
339	// Types that are valid to be assigned to RowCount:
340	//	*ResultSetStats_RowCountExact
341	//	*ResultSetStats_RowCountLowerBound
342	RowCount             isResultSetStats_RowCount `protobuf_oneof:"row_count"`
343	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
344	XXX_unrecognized     []byte                    `json:"-"`
345	XXX_sizecache        int32                     `json:"-"`
346}
347
348func (m *ResultSetStats) Reset()         { *m = ResultSetStats{} }
349func (m *ResultSetStats) String() string { return proto.CompactTextString(m) }
350func (*ResultSetStats) ProtoMessage()    {}
351func (*ResultSetStats) Descriptor() ([]byte, []int) {
352	return fileDescriptor_e8c1400ddbf24213, []int{3}
353}
354
355func (m *ResultSetStats) XXX_Unmarshal(b []byte) error {
356	return xxx_messageInfo_ResultSetStats.Unmarshal(m, b)
357}
358func (m *ResultSetStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
359	return xxx_messageInfo_ResultSetStats.Marshal(b, m, deterministic)
360}
361func (m *ResultSetStats) XXX_Merge(src proto.Message) {
362	xxx_messageInfo_ResultSetStats.Merge(m, src)
363}
364func (m *ResultSetStats) XXX_Size() int {
365	return xxx_messageInfo_ResultSetStats.Size(m)
366}
367func (m *ResultSetStats) XXX_DiscardUnknown() {
368	xxx_messageInfo_ResultSetStats.DiscardUnknown(m)
369}
370
371var xxx_messageInfo_ResultSetStats proto.InternalMessageInfo
372
373func (m *ResultSetStats) GetQueryPlan() *QueryPlan {
374	if m != nil {
375		return m.QueryPlan
376	}
377	return nil
378}
379
380func (m *ResultSetStats) GetQueryStats() *_struct.Struct {
381	if m != nil {
382		return m.QueryStats
383	}
384	return nil
385}
386
387type isResultSetStats_RowCount interface {
388	isResultSetStats_RowCount()
389}
390
391type ResultSetStats_RowCountExact struct {
392	RowCountExact int64 `protobuf:"varint,3,opt,name=row_count_exact,json=rowCountExact,proto3,oneof"`
393}
394
395type ResultSetStats_RowCountLowerBound struct {
396	RowCountLowerBound int64 `protobuf:"varint,4,opt,name=row_count_lower_bound,json=rowCountLowerBound,proto3,oneof"`
397}
398
399func (*ResultSetStats_RowCountExact) isResultSetStats_RowCount() {}
400
401func (*ResultSetStats_RowCountLowerBound) isResultSetStats_RowCount() {}
402
403func (m *ResultSetStats) GetRowCount() isResultSetStats_RowCount {
404	if m != nil {
405		return m.RowCount
406	}
407	return nil
408}
409
410func (m *ResultSetStats) GetRowCountExact() int64 {
411	if x, ok := m.GetRowCount().(*ResultSetStats_RowCountExact); ok {
412		return x.RowCountExact
413	}
414	return 0
415}
416
417func (m *ResultSetStats) GetRowCountLowerBound() int64 {
418	if x, ok := m.GetRowCount().(*ResultSetStats_RowCountLowerBound); ok {
419		return x.RowCountLowerBound
420	}
421	return 0
422}
423
424// XXX_OneofWrappers is for the internal use of the proto package.
425func (*ResultSetStats) XXX_OneofWrappers() []interface{} {
426	return []interface{}{
427		(*ResultSetStats_RowCountExact)(nil),
428		(*ResultSetStats_RowCountLowerBound)(nil),
429	}
430}
431
432func init() {
433	proto.RegisterType((*ResultSet)(nil), "google.spanner.v1.ResultSet")
434	proto.RegisterType((*PartialResultSet)(nil), "google.spanner.v1.PartialResultSet")
435	proto.RegisterType((*ResultSetMetadata)(nil), "google.spanner.v1.ResultSetMetadata")
436	proto.RegisterType((*ResultSetStats)(nil), "google.spanner.v1.ResultSetStats")
437}
438
439func init() { proto.RegisterFile("google/spanner/v1/result_set.proto", fileDescriptor_e8c1400ddbf24213) }
440
441var fileDescriptor_e8c1400ddbf24213 = []byte{
442	// 560 bytes of a gzipped FileDescriptorProto
443	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcf, 0x6e, 0x13, 0x3f,
444	0x10, 0xc7, 0x7f, 0x4e, 0xda, 0xfe, 0x12, 0x6f, 0x0a, 0xd4, 0x52, 0x69, 0x14, 0x15, 0x94, 0xa6,
445	0x1c, 0x72, 0xda, 0x55, 0xda, 0x03, 0x91, 0x7a, 0xa9, 0x52, 0x21, 0x38, 0x14, 0x29, 0x38, 0x51,
446	0x0e, 0x28, 0xd2, 0xca, 0xd9, 0x98, 0x25, 0xea, 0xc6, 0xde, 0xda, 0xde, 0x84, 0x3c, 0x00, 0x67,
447	0xee, 0x3c, 0x02, 0x0f, 0xc0, 0x43, 0xf0, 0x3a, 0x5c, 0x38, 0x22, 0xff, 0xd9, 0x24, 0xb0, 0x11,
448	0x12, 0x12, 0x37, 0xef, 0xcc, 0xe7, 0xeb, 0x99, 0xef, 0x78, 0x16, 0xb6, 0x62, 0xce, 0xe3, 0x84,
449	0x06, 0x32, 0x25, 0x8c, 0x51, 0x11, 0x2c, 0x3a, 0x81, 0xa0, 0x32, 0x4b, 0x54, 0x28, 0xa9, 0xf2,
450	0x53, 0xc1, 0x15, 0x47, 0x47, 0x96, 0xf1, 0x1d, 0xe3, 0x2f, 0x3a, 0x8d, 0x53, 0x27, 0x23, 0xe9,
451	0x2c, 0x20, 0x8c, 0x71, 0x45, 0xd4, 0x8c, 0x33, 0x69, 0x05, 0xeb, 0xac, 0xf9, 0x9a, 0x64, 0xef,
452	0x02, 0xa9, 0x44, 0x16, 0xb9, 0xeb, 0x1a, 0x3b, 0x4a, 0xde, 0x67, 0x54, 0xac, 0xc2, 0x34, 0x21,
453	0xcc, 0x31, 0xe7, 0x45, 0x46, 0x09, 0xc2, 0x24, 0x89, 0x74, 0x9d, 0xdf, 0xca, 0x6c, 0x43, 0xab,
454	0x94, 0xda, 0x6c, 0xeb, 0x2b, 0x80, 0x55, 0x6c, 0xac, 0x0c, 0xa8, 0x42, 0xd7, 0xb0, 0x32, 0xa7,
455	0x8a, 0x4c, 0x89, 0x22, 0x75, 0xd0, 0x04, 0x6d, 0xef, 0xe2, 0x99, 0x5f, 0xb0, 0xe5, 0xaf, 0xf9,
456	0xd7, 0x8e, 0xc5, 0x6b, 0x15, 0xf2, 0xe1, 0x9e, 0xe0, 0x4b, 0x59, 0x2f, 0x35, 0xcb, 0x6d, 0xef,
457	0xa2, 0x91, 0xab, 0x73, 0x8f, 0xfe, 0xed, 0x4c, 0xaa, 0x11, 0x49, 0x32, 0x8a, 0x0d, 0x87, 0x9e,
458	0xc3, 0x7d, 0xa9, 0x88, 0x92, 0xf5, 0xb2, 0x29, 0x77, 0xf6, 0xa7, 0x72, 0x03, 0x0d, 0x62, 0xcb,
459	0xb7, 0x3e, 0x96, 0xe0, 0xa3, 0x3e, 0x11, 0x6a, 0x46, 0x92, 0x7f, 0xdb, 0xff, 0xc1, 0x42, 0xb7,
460	0x97, 0x3b, 0x78, 0x5c, 0x70, 0x60, 0xbb, 0x77, 0x14, 0x3a, 0x87, 0x87, 0xd1, 0xfb, 0x8c, 0xdd,
461	0xd1, 0x69, 0x68, 0x22, 0xc6, 0x47, 0x05, 0xd7, 0x5c, 0xd0, 0xc0, 0xe8, 0x0c, 0xd6, 0xf4, 0xba,
462	0xcc, 0x69, 0xa8, 0xf8, 0x1d, 0x65, 0xf5, 0xbd, 0x26, 0x68, 0xd7, 0xb0, 0x67, 0x63, 0x43, 0x1d,
463	0xda, 0xcc, 0x61, 0xff, 0x2f, 0xe7, 0xf0, 0x09, 0xc0, 0xa3, 0x82, 0x21, 0xd4, 0x85, 0x15, 0xc1,
464	0x97, 0xa1, 0x7e, 0x68, 0x37, 0x88, 0x27, 0x3b, 0x6e, 0x1c, 0x98, 0x85, 0x1b, 0xae, 0x52, 0x8a,
465	0xff, 0x17, 0x7c, 0xa9, 0x0f, 0xe8, 0x1a, 0x7a, 0x5b, 0x3b, 0x54, 0x2f, 0x19, 0xf1, 0xd3, 0x1d,
466	0xe2, 0xe1, 0x86, 0xc2, 0xdb, 0x92, 0xd6, 0x77, 0x00, 0x1f, 0xfc, 0xda, 0x2b, 0xba, 0x82, 0x70,
467	0xb3, 0xbc, 0xae, 0xa1, 0xd3, 0x1d, 0x77, 0xbe, 0xd1, 0x50, 0x3f, 0x21, 0x0c, 0x57, 0xef, 0xf3,
468	0x23, 0xea, 0x42, 0xcf, 0x8a, 0xed, 0x80, 0x6c, 0x47, 0x27, 0x85, 0x77, 0xb1, 0x66, 0xb0, 0x2d,
469	0x64, 0xcb, 0xb6, 0xe1, 0x43, 0x3d, 0x85, 0x88, 0x67, 0x4c, 0x85, 0xf4, 0x03, 0x89, 0x94, 0x79,
470	0x9e, 0xf2, 0xab, 0xff, 0xf0, 0xa1, 0xe0, 0xcb, 0x1b, 0x1d, 0x7f, 0xa1, 0xc3, 0xe8, 0x12, 0x1e,
471	0x6f, 0xc8, 0x84, 0x2f, 0xa9, 0x08, 0x27, 0x3c, 0x63, 0x53, 0xf3, 0x54, 0x9a, 0x47, 0x39, 0x7f,
472	0xab, 0x93, 0x3d, 0x9d, 0xeb, 0x79, 0xb0, 0xba, 0x16, 0xf5, 0x3e, 0x03, 0x78, 0x1c, 0xf1, 0x79,
473	0xd1, 0x54, 0x6f, 0x33, 0x8c, 0xbe, 0xee, 0xb5, 0x0f, 0xde, 0x76, 0x1d, 0x14, 0xf3, 0x84, 0xb0,
474	0xd8, 0xe7, 0x22, 0x0e, 0x62, 0xca, 0x8c, 0x93, 0xc0, 0xa6, 0x48, 0x3a, 0x93, 0x5b, 0x7f, 0xec,
475	0x95, 0x3b, 0xfe, 0x00, 0xe0, 0x4b, 0xe9, 0xe4, 0xa5, 0x55, 0xdf, 0x24, 0x3c, 0x9b, 0xfa, 0x03,
476	0x57, 0x68, 0xd4, 0xf9, 0x96, 0x67, 0xc6, 0x26, 0x33, 0x76, 0x99, 0xf1, 0xa8, 0x33, 0x39, 0x30,
477	0x77, 0x5f, 0xfe, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x73, 0xdc, 0x50, 0xf9, 0xc8, 0x04, 0x00, 0x00,
478}
479