You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

530 lines
21 KiB

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