github.com/mre-fog/trillianxx@v1.1.2-0.20180615153820-ae375a99d36a/storage/cloudspanner/spannerpb/spanner.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // source: spanner.proto 3 4 /* 5 Package spannerpb is a generated protocol buffer package. 6 7 It is generated from these files: 8 spanner.proto 9 10 It has these top-level messages: 11 LogStorageConfig 12 MapStorageConfig 13 TreeInfo 14 TreeHead 15 */ 16 package spannerpb 17 18 import proto "github.com/golang/protobuf/proto" 19 import fmt "fmt" 20 import math "math" 21 import google_protobuf "github.com/golang/protobuf/ptypes/any" 22 23 // Reference imports to suppress errors if they are not otherwise used. 24 var _ = proto.Marshal 25 var _ = fmt.Errorf 26 var _ = math.Inf 27 28 // This is a compile-time assertion to ensure that this generated file 29 // is compatible with the proto package it is being compiled against. 30 // A compilation error at this line likely means your copy of the 31 // proto package needs to be updated. 32 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 33 34 // State of the Tree. 35 // Mirrors trillian.TreeState. 36 type TreeState int32 37 38 const ( 39 TreeState_UNKNOWN_TREE_STATE TreeState = 0 40 TreeState_ACTIVE TreeState = 1 41 TreeState_FROZEN TreeState = 2 42 ) 43 44 var TreeState_name = map[int32]string{ 45 0: "UNKNOWN_TREE_STATE", 46 1: "ACTIVE", 47 2: "FROZEN", 48 } 49 var TreeState_value = map[string]int32{ 50 "UNKNOWN_TREE_STATE": 0, 51 "ACTIVE": 1, 52 "FROZEN": 2, 53 } 54 55 func (x TreeState) String() string { 56 return proto.EnumName(TreeState_name, int32(x)) 57 } 58 func (TreeState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } 59 60 // Type of the Tree. 61 // Mirrors trillian.TreeType. 62 type TreeType int32 63 64 const ( 65 TreeType_UNKNOWN TreeType = 0 66 TreeType_LOG TreeType = 1 67 TreeType_MAP TreeType = 2 68 ) 69 70 var TreeType_name = map[int32]string{ 71 0: "UNKNOWN", 72 1: "LOG", 73 2: "MAP", 74 } 75 var TreeType_value = map[string]int32{ 76 "UNKNOWN": 0, 77 "LOG": 1, 78 "MAP": 2, 79 } 80 81 func (x TreeType) String() string { 82 return proto.EnumName(TreeType_name, int32(x)) 83 } 84 func (TreeType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } 85 86 // Defines the preimage protection used for tree leaves / nodes. 87 // Eg, RFC6962 dictates a 0x00 prefix for leaves and 0x01 for nodes. 88 // Mirrors trillian.HashStrategy. 89 type HashStrategy int32 90 91 const ( 92 HashStrategy_UNKNOWN_HASH_STRATEGY HashStrategy = 0 93 HashStrategy_RFC_6962 HashStrategy = 1 94 HashStrategy_TEST_MAP_HASHER HashStrategy = 2 95 HashStrategy_OBJECT_RFC6962_SHA256 HashStrategy = 3 96 HashStrategy_CONIKS_SHA512_256 HashStrategy = 4 97 ) 98 99 var HashStrategy_name = map[int32]string{ 100 0: "UNKNOWN_HASH_STRATEGY", 101 1: "RFC_6962", 102 2: "TEST_MAP_HASHER", 103 3: "OBJECT_RFC6962_SHA256", 104 4: "CONIKS_SHA512_256", 105 } 106 var HashStrategy_value = map[string]int32{ 107 "UNKNOWN_HASH_STRATEGY": 0, 108 "RFC_6962": 1, 109 "TEST_MAP_HASHER": 2, 110 "OBJECT_RFC6962_SHA256": 3, 111 "CONIKS_SHA512_256": 4, 112 } 113 114 func (x HashStrategy) String() string { 115 return proto.EnumName(HashStrategy_name, int32(x)) 116 } 117 func (HashStrategy) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } 118 119 // Supported hash algorithms. 120 // The numbering space is the same as for TLS, given in RFC 5246 s7.4.1.4.1. See 121 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-18. 122 // Mirrors trillian.HashAlgorithm. 123 type HashAlgorithm int32 124 125 const ( 126 // No hash algorithm is used. 127 HashAlgorithm_NONE HashAlgorithm = 0 128 // SHA256 is used. 129 HashAlgorithm_SHA256 HashAlgorithm = 4 130 ) 131 132 var HashAlgorithm_name = map[int32]string{ 133 0: "NONE", 134 4: "SHA256", 135 } 136 var HashAlgorithm_value = map[string]int32{ 137 "NONE": 0, 138 "SHA256": 4, 139 } 140 141 func (x HashAlgorithm) String() string { 142 return proto.EnumName(HashAlgorithm_name, int32(x)) 143 } 144 func (HashAlgorithm) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } 145 146 // Supported signature algorithms. 147 // The numbering space is the same as for TLS, given in RFC 5246 s7.4.1.4.1. See 148 // http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-16. 149 // Mirrors trillian.SignatureAlgorithm. 150 type SignatureAlgorithm int32 151 152 const ( 153 // Anonymous signature scheme. 154 SignatureAlgorithm_ANONYMOUS SignatureAlgorithm = 0 155 // RSA signature scheme. 156 SignatureAlgorithm_RSA SignatureAlgorithm = 1 157 // ECDSA signature scheme. 158 SignatureAlgorithm_ECDSA SignatureAlgorithm = 3 159 ) 160 161 var SignatureAlgorithm_name = map[int32]string{ 162 0: "ANONYMOUS", 163 1: "RSA", 164 3: "ECDSA", 165 } 166 var SignatureAlgorithm_value = map[string]int32{ 167 "ANONYMOUS": 0, 168 "RSA": 1, 169 "ECDSA": 3, 170 } 171 172 func (x SignatureAlgorithm) String() string { 173 return proto.EnumName(SignatureAlgorithm_name, int32(x)) 174 } 175 func (SignatureAlgorithm) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } 176 177 // LogStorageConfig holds settings which tune the storage implementation for 178 // a given log tree. 179 type LogStorageConfig struct { 180 // num_unseq_buckets defines the length of the unsequenced time ring buffer. 181 // This value must *never* be reduced for any provisioned tree. 182 // 183 // This value should be >= 1, and there's probably not much benefit in 184 // raising it past about 4. 185 // TODO(al): test what the effects of various values are here. 186 NumUnseqBuckets int64 `protobuf:"varint,1,opt,name=num_unseq_buckets,json=numUnseqBuckets" json:"num_unseq_buckets,omitempty"` 187 // num_merkle_buckets defines the number of individual buckets below each 188 // unsequenced ring bucket. 189 // This value may be changed at any time (so long as you understand the 190 // impact it'll have on integration performace!) 191 // 192 // This value must lie in the range [1..256] 193 NumMerkleBuckets int64 `protobuf:"varint,2,opt,name=num_merkle_buckets,json=numMerkleBuckets" json:"num_merkle_buckets,omitempty"` 194 } 195 196 func (m *LogStorageConfig) Reset() { *m = LogStorageConfig{} } 197 func (m *LogStorageConfig) String() string { return proto.CompactTextString(m) } 198 func (*LogStorageConfig) ProtoMessage() {} 199 func (*LogStorageConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } 200 201 func (m *LogStorageConfig) GetNumUnseqBuckets() int64 { 202 if m != nil { 203 return m.NumUnseqBuckets 204 } 205 return 0 206 } 207 208 func (m *LogStorageConfig) GetNumMerkleBuckets() int64 { 209 if m != nil { 210 return m.NumMerkleBuckets 211 } 212 return 0 213 } 214 215 // MapStorageConfig holds settings which tune the storage implementation for 216 // a given map tree. 217 type MapStorageConfig struct { 218 } 219 220 func (m *MapStorageConfig) Reset() { *m = MapStorageConfig{} } 221 func (m *MapStorageConfig) String() string { return proto.CompactTextString(m) } 222 func (*MapStorageConfig) ProtoMessage() {} 223 func (*MapStorageConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } 224 225 // TreeInfo stores information about a Trillian tree. 226 type TreeInfo struct { 227 // tree_id is the ID of the tree, and is used as a primary key. 228 TreeId int64 `protobuf:"varint,1,opt,name=tree_id,json=treeId" json:"tree_id,omitempty"` 229 // key_id identifies the private key associated with this tree. 230 KeyId int64 `protobuf:"varint,2,opt,name=key_id,json=keyId" json:"key_id,omitempty"` 231 // name is a short name for this tree. 232 Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` 233 // description is a short free form text describing the tree. 234 Description string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"` 235 // tree_type identifies whether this is a Log or a Map tree. 236 TreeType TreeType `protobuf:"varint,5,opt,name=tree_type,json=treeType,enum=spannerpb.TreeType" json:"tree_type,omitempty"` 237 // tree_state is the state of the tree. 238 TreeState TreeState `protobuf:"varint,8,opt,name=tree_state,json=treeState,enum=spannerpb.TreeState" json:"tree_state,omitempty"` 239 // hash_strategy is the hashing strategy used by the tree. 240 HashStrategy HashStrategy `protobuf:"varint,9,opt,name=hash_strategy,json=hashStrategy,enum=spannerpb.HashStrategy" json:"hash_strategy,omitempty"` 241 // hash_algorithm is the hash algorithm used by the tree. 242 HashAlgorithm HashAlgorithm `protobuf:"varint,10,opt,name=hash_algorithm,json=hashAlgorithm,enum=spannerpb.HashAlgorithm" json:"hash_algorithm,omitempty"` 243 // signature_algorithm is the signature algorithm used by the tree. 244 SignatureAlgorithm SignatureAlgorithm `protobuf:"varint,11,opt,name=signature_algorithm,json=signatureAlgorithm,enum=spannerpb.SignatureAlgorithm" json:"signature_algorithm,omitempty"` 245 // create_time_nanos is the creation timestamp of the tree, in nanos since 246 // epoch. 247 CreateTimeNanos int64 `protobuf:"varint,13,opt,name=create_time_nanos,json=createTimeNanos" json:"create_time_nanos,omitempty"` 248 // update_time_nanos is the last update time of the tree, in nanos since 249 // epoch. 250 UpdateTimeNanos int64 `protobuf:"varint,14,opt,name=update_time_nanos,json=updateTimeNanos" json:"update_time_nanos,omitempty"` 251 // private_key should be used to generate signatures for this tree. 252 PrivateKey *google_protobuf.Any `protobuf:"bytes,15,opt,name=private_key,json=privateKey" json:"private_key,omitempty"` 253 // public_key_der should be used to verify signatures produced by this tree. 254 // It is the key in DER-encoded PKIX form. 255 PublicKeyDer []byte `protobuf:"bytes,16,opt,name=public_key_der,json=publicKeyDer,proto3" json:"public_key_der,omitempty"` 256 // config contains the log or map specific tree configuration. 257 // 258 // Types that are valid to be assigned to StorageConfig: 259 // *TreeInfo_LogStorageConfig 260 // *TreeInfo_MapStorageConfig 261 StorageConfig isTreeInfo_StorageConfig `protobuf_oneof:"storage_config"` 262 // max_root_duration_millis is the interval after which a new signed root is 263 // produced even if there have been no submission. If zero, this behavior is 264 // disabled. 265 MaxRootDurationMillis int64 `protobuf:"varint,17,opt,name=max_root_duration_millis,json=maxRootDurationMillis" json:"max_root_duration_millis,omitempty"` 266 // If true the tree was soft deleted. 267 Deleted bool `protobuf:"varint,18,opt,name=deleted" json:"deleted,omitempty"` 268 // Time of tree deletion, if any. 269 DeleteTimeNanos int64 `protobuf:"varint,19,opt,name=delete_time_nanos,json=deleteTimeNanos" json:"delete_time_nanos,omitempty"` 270 } 271 272 func (m *TreeInfo) Reset() { *m = TreeInfo{} } 273 func (m *TreeInfo) String() string { return proto.CompactTextString(m) } 274 func (*TreeInfo) ProtoMessage() {} 275 func (*TreeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } 276 277 type isTreeInfo_StorageConfig interface { 278 isTreeInfo_StorageConfig() 279 } 280 281 type TreeInfo_LogStorageConfig struct { 282 LogStorageConfig *LogStorageConfig `protobuf:"bytes,6,opt,name=log_storage_config,json=logStorageConfig,oneof"` 283 } 284 type TreeInfo_MapStorageConfig struct { 285 MapStorageConfig *MapStorageConfig `protobuf:"bytes,7,opt,name=map_storage_config,json=mapStorageConfig,oneof"` 286 } 287 288 func (*TreeInfo_LogStorageConfig) isTreeInfo_StorageConfig() {} 289 func (*TreeInfo_MapStorageConfig) isTreeInfo_StorageConfig() {} 290 291 func (m *TreeInfo) GetStorageConfig() isTreeInfo_StorageConfig { 292 if m != nil { 293 return m.StorageConfig 294 } 295 return nil 296 } 297 298 func (m *TreeInfo) GetTreeId() int64 { 299 if m != nil { 300 return m.TreeId 301 } 302 return 0 303 } 304 305 func (m *TreeInfo) GetKeyId() int64 { 306 if m != nil { 307 return m.KeyId 308 } 309 return 0 310 } 311 312 func (m *TreeInfo) GetName() string { 313 if m != nil { 314 return m.Name 315 } 316 return "" 317 } 318 319 func (m *TreeInfo) GetDescription() string { 320 if m != nil { 321 return m.Description 322 } 323 return "" 324 } 325 326 func (m *TreeInfo) GetTreeType() TreeType { 327 if m != nil { 328 return m.TreeType 329 } 330 return TreeType_UNKNOWN 331 } 332 333 func (m *TreeInfo) GetTreeState() TreeState { 334 if m != nil { 335 return m.TreeState 336 } 337 return TreeState_UNKNOWN_TREE_STATE 338 } 339 340 func (m *TreeInfo) GetHashStrategy() HashStrategy { 341 if m != nil { 342 return m.HashStrategy 343 } 344 return HashStrategy_UNKNOWN_HASH_STRATEGY 345 } 346 347 func (m *TreeInfo) GetHashAlgorithm() HashAlgorithm { 348 if m != nil { 349 return m.HashAlgorithm 350 } 351 return HashAlgorithm_NONE 352 } 353 354 func (m *TreeInfo) GetSignatureAlgorithm() SignatureAlgorithm { 355 if m != nil { 356 return m.SignatureAlgorithm 357 } 358 return SignatureAlgorithm_ANONYMOUS 359 } 360 361 func (m *TreeInfo) GetCreateTimeNanos() int64 { 362 if m != nil { 363 return m.CreateTimeNanos 364 } 365 return 0 366 } 367 368 func (m *TreeInfo) GetUpdateTimeNanos() int64 { 369 if m != nil { 370 return m.UpdateTimeNanos 371 } 372 return 0 373 } 374 375 func (m *TreeInfo) GetPrivateKey() *google_protobuf.Any { 376 if m != nil { 377 return m.PrivateKey 378 } 379 return nil 380 } 381 382 func (m *TreeInfo) GetPublicKeyDer() []byte { 383 if m != nil { 384 return m.PublicKeyDer 385 } 386 return nil 387 } 388 389 func (m *TreeInfo) GetLogStorageConfig() *LogStorageConfig { 390 if x, ok := m.GetStorageConfig().(*TreeInfo_LogStorageConfig); ok { 391 return x.LogStorageConfig 392 } 393 return nil 394 } 395 396 func (m *TreeInfo) GetMapStorageConfig() *MapStorageConfig { 397 if x, ok := m.GetStorageConfig().(*TreeInfo_MapStorageConfig); ok { 398 return x.MapStorageConfig 399 } 400 return nil 401 } 402 403 func (m *TreeInfo) GetMaxRootDurationMillis() int64 { 404 if m != nil { 405 return m.MaxRootDurationMillis 406 } 407 return 0 408 } 409 410 func (m *TreeInfo) GetDeleted() bool { 411 if m != nil { 412 return m.Deleted 413 } 414 return false 415 } 416 417 func (m *TreeInfo) GetDeleteTimeNanos() int64 { 418 if m != nil { 419 return m.DeleteTimeNanos 420 } 421 return 0 422 } 423 424 // XXX_OneofFuncs is for the internal use of the proto package. 425 func (*TreeInfo) 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{}) { 426 return _TreeInfo_OneofMarshaler, _TreeInfo_OneofUnmarshaler, _TreeInfo_OneofSizer, []interface{}{ 427 (*TreeInfo_LogStorageConfig)(nil), 428 (*TreeInfo_MapStorageConfig)(nil), 429 } 430 } 431 432 func _TreeInfo_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { 433 m := msg.(*TreeInfo) 434 // storage_config 435 switch x := m.StorageConfig.(type) { 436 case *TreeInfo_LogStorageConfig: 437 b.EncodeVarint(6<<3 | proto.WireBytes) 438 if err := b.EncodeMessage(x.LogStorageConfig); err != nil { 439 return err 440 } 441 case *TreeInfo_MapStorageConfig: 442 b.EncodeVarint(7<<3 | proto.WireBytes) 443 if err := b.EncodeMessage(x.MapStorageConfig); err != nil { 444 return err 445 } 446 case nil: 447 default: 448 return fmt.Errorf("TreeInfo.StorageConfig has unexpected type %T", x) 449 } 450 return nil 451 } 452 453 func _TreeInfo_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { 454 m := msg.(*TreeInfo) 455 switch tag { 456 case 6: // storage_config.log_storage_config 457 if wire != proto.WireBytes { 458 return true, proto.ErrInternalBadWireType 459 } 460 msg := new(LogStorageConfig) 461 err := b.DecodeMessage(msg) 462 m.StorageConfig = &TreeInfo_LogStorageConfig{msg} 463 return true, err 464 case 7: // storage_config.map_storage_config 465 if wire != proto.WireBytes { 466 return true, proto.ErrInternalBadWireType 467 } 468 msg := new(MapStorageConfig) 469 err := b.DecodeMessage(msg) 470 m.StorageConfig = &TreeInfo_MapStorageConfig{msg} 471 return true, err 472 default: 473 return false, nil 474 } 475 } 476 477 func _TreeInfo_OneofSizer(msg proto.Message) (n int) { 478 m := msg.(*TreeInfo) 479 // storage_config 480 switch x := m.StorageConfig.(type) { 481 case *TreeInfo_LogStorageConfig: 482 s := proto.Size(x.LogStorageConfig) 483 n += proto.SizeVarint(6<<3 | proto.WireBytes) 484 n += proto.SizeVarint(uint64(s)) 485 n += s 486 case *TreeInfo_MapStorageConfig: 487 s := proto.Size(x.MapStorageConfig) 488 n += proto.SizeVarint(7<<3 | proto.WireBytes) 489 n += proto.SizeVarint(uint64(s)) 490 n += s 491 case nil: 492 default: 493 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) 494 } 495 return n 496 } 497 498 // TreeHead is the storage format for Trillian's commitment to a particular 499 // tree state. 500 type TreeHead struct { 501 // tree_id identifies the tree this TreeHead is built from. 502 TreeId int64 `protobuf:"varint,1,opt,name=tree_id,json=treeId" json:"tree_id,omitempty"` 503 // ts_nanos is the nanosecond resolution timestamp at which the 504 // TreeHead was created. 505 TsNanos int64 `protobuf:"varint,2,opt,name=ts_nanos,json=tsNanos" json:"ts_nanos,omitempty"` 506 // tree_size is the number of entries in the tree. 507 TreeSize int64 `protobuf:"varint,3,opt,name=tree_size,json=treeSize" json:"tree_size,omitempty"` 508 // root_hash is the root of the tree. 509 RootHash []byte `protobuf:"bytes,4,opt,name=root_hash,json=rootHash,proto3" json:"root_hash,omitempty"` 510 // signature holds the raw digital signature across the serialized log_root 511 // (not present) represented by the data in this TreeHead. 512 Signature []byte `protobuf:"bytes,10,opt,name=signature,proto3" json:"signature,omitempty"` 513 // tree_revision identifies the revision at which the TreeHead was created. 514 TreeRevision int64 `protobuf:"varint,6,opt,name=tree_revision,json=treeRevision" json:"tree_revision,omitempty"` 515 Metadata []byte `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"` 516 } 517 518 func (m *TreeHead) Reset() { *m = TreeHead{} } 519 func (m *TreeHead) String() string { return proto.CompactTextString(m) } 520 func (*TreeHead) ProtoMessage() {} 521 func (*TreeHead) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } 522 523 func (m *TreeHead) GetTreeId() int64 { 524 if m != nil { 525 return m.TreeId 526 } 527 return 0 528 } 529 530 func (m *TreeHead) GetTsNanos() int64 { 531 if m != nil { 532 return m.TsNanos 533 } 534 return 0 535 } 536 537 func (m *TreeHead) GetTreeSize() int64 { 538 if m != nil { 539 return m.TreeSize 540 } 541 return 0 542 } 543 544 func (m *TreeHead) GetRootHash() []byte { 545 if m != nil { 546 return m.RootHash 547 } 548 return nil 549 } 550 551 func (m *TreeHead) GetSignature() []byte { 552 if m != nil { 553 return m.Signature 554 } 555 return nil 556 } 557 558 func (m *TreeHead) GetTreeRevision() int64 { 559 if m != nil { 560 return m.TreeRevision 561 } 562 return 0 563 } 564 565 func (m *TreeHead) GetMetadata() []byte { 566 if m != nil { 567 return m.Metadata 568 } 569 return nil 570 } 571 572 func init() { 573 proto.RegisterType((*LogStorageConfig)(nil), "spannerpb.LogStorageConfig") 574 proto.RegisterType((*MapStorageConfig)(nil), "spannerpb.MapStorageConfig") 575 proto.RegisterType((*TreeInfo)(nil), "spannerpb.TreeInfo") 576 proto.RegisterType((*TreeHead)(nil), "spannerpb.TreeHead") 577 proto.RegisterEnum("spannerpb.TreeState", TreeState_name, TreeState_value) 578 proto.RegisterEnum("spannerpb.TreeType", TreeType_name, TreeType_value) 579 proto.RegisterEnum("spannerpb.HashStrategy", HashStrategy_name, HashStrategy_value) 580 proto.RegisterEnum("spannerpb.HashAlgorithm", HashAlgorithm_name, HashAlgorithm_value) 581 proto.RegisterEnum("spannerpb.SignatureAlgorithm", SignatureAlgorithm_name, SignatureAlgorithm_value) 582 } 583 584 func init() { proto.RegisterFile("spanner.proto", fileDescriptor0) } 585 586 var fileDescriptor0 = []byte{ 587 // 950 bytes of a gzipped FileDescriptorProto 588 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0xed, 0x6e, 0x1a, 0x47, 589 0x14, 0xf5, 0x1a, 0x0c, 0xcb, 0x35, 0xd8, 0xe3, 0x71, 0xdc, 0xac, 0x93, 0x56, 0x42, 0x6e, 0x2b, 590 0x51, 0x54, 0x41, 0xeb, 0xc8, 0x8e, 0xa2, 0x54, 0xaa, 0xd6, 0x18, 0x07, 0x9b, 0xb0, 0x44, 0xb3, 591 0xeb, 0x56, 0xc9, 0x9f, 0xd5, 0xc0, 0x8e, 0x61, 0xe5, 0xfd, 0xea, 0xee, 0x6c, 0x14, 0xf2, 0xa3, 592 0x4f, 0xd0, 0x17, 0xed, 0x5b, 0x54, 0x33, 0xb3, 0x60, 0x8c, 0xd5, 0x7f, 0x33, 0xe7, 0x9e, 0x73, 593 0xaf, 0xe7, 0xfa, 0x9c, 0x05, 0x1a, 0x59, 0x42, 0xa3, 0x88, 0xa5, 0x9d, 0x24, 0x8d, 0x79, 0x8c, 594 0x6b, 0xc5, 0x35, 0x99, 0xbc, 0x38, 0x9e, 0xc5, 0xf1, 0x2c, 0x60, 0x5d, 0x59, 0x98, 0xe4, 0x77, 595 0x5d, 0x1a, 0x2d, 0x14, 0xeb, 0x24, 0x00, 0xf4, 0x3e, 0x9e, 0xd9, 0x3c, 0x4e, 0xe9, 0x8c, 0xf5, 596 0xe2, 0xe8, 0xce, 0x9f, 0xe1, 0x36, 0x1c, 0x44, 0x79, 0xe8, 0xe6, 0x51, 0xc6, 0xfe, 0x72, 0x27, 597 0xf9, 0xf4, 0x9e, 0xf1, 0xcc, 0xd0, 0x9a, 0x5a, 0xab, 0x44, 0xf6, 0xa3, 0x3c, 0xbc, 0x15, 0xf8, 598 0x85, 0x82, 0xf1, 0xcf, 0x80, 0x05, 0x37, 0x64, 0xe9, 0x7d, 0xc0, 0x56, 0xe4, 0x6d, 0x49, 0x46, 599 0x51, 0x1e, 0x8e, 0x64, 0xa1, 0x60, 0x9f, 0x60, 0x40, 0x23, 0x9a, 0x3c, 0x9a, 0x76, 0xf2, 0x4f, 600 0x15, 0x74, 0x27, 0x65, 0xec, 0x3a, 0xba, 0x8b, 0xf1, 0x73, 0xa8, 0xf2, 0x94, 0x31, 0xd7, 0xf7, 601 0x8a, 0x81, 0x15, 0x71, 0xbd, 0xf6, 0xf0, 0x11, 0x54, 0xee, 0xd9, 0x42, 0xe0, 0xaa, 0xf7, 0xce, 602 0x3d, 0x5b, 0x5c, 0x7b, 0x18, 0x43, 0x39, 0xa2, 0x21, 0x33, 0x4a, 0x4d, 0xad, 0x55, 0x23, 0xf2, 603 0x8c, 0x9b, 0xb0, 0xeb, 0xb1, 0x6c, 0x9a, 0xfa, 0x09, 0xf7, 0xe3, 0xc8, 0x28, 0xcb, 0xd2, 0x3a, 604 0x84, 0x7f, 0x81, 0x9a, 0x9c, 0xc2, 0x17, 0x09, 0x33, 0x76, 0x9a, 0x5a, 0x6b, 0xef, 0xf4, 0xb0, 605 0xb3, 0x5a, 0x57, 0x47, 0xfc, 0x35, 0xce, 0x22, 0x61, 0x44, 0xe7, 0xc5, 0x09, 0xbf, 0x02, 0x90, 606 0x8a, 0x8c, 0x53, 0xce, 0x0c, 0x5d, 0x4a, 0x9e, 0x6d, 0x48, 0x6c, 0x51, 0x23, 0xb2, 0xb3, 0x3c, 607 0xe2, 0xdf, 0xa0, 0x31, 0xa7, 0xd9, 0xdc, 0xcd, 0x78, 0x4a, 0x39, 0x9b, 0x2d, 0x8c, 0x9a, 0xd4, 608 0x3d, 0x5f, 0xd3, 0x0d, 0x68, 0x36, 0xb7, 0x8b, 0x32, 0xa9, 0xcf, 0xd7, 0x6e, 0xf8, 0x77, 0xd8, 609 0x93, 0x6a, 0x1a, 0xcc, 0xe2, 0xd4, 0xe7, 0xf3, 0xd0, 0x00, 0x29, 0x37, 0x36, 0xe4, 0xe6, 0xb2, 610 0x4e, 0xe4, 0xb4, 0xd5, 0x15, 0x5b, 0x70, 0x98, 0xf9, 0xb3, 0x88, 0xf2, 0x3c, 0x65, 0x6b, 0x5d, 611 0x76, 0x65, 0x97, 0xef, 0xd6, 0xba, 0xd8, 0x4b, 0xd6, 0x43, 0x2b, 0x9c, 0x3d, 0xc1, 0x84, 0x2d, 612 0xa6, 0x29, 0xa3, 0x9c, 0xb9, 0xdc, 0x0f, 0x99, 0x1b, 0xd1, 0x28, 0xce, 0x8c, 0x86, 0xb2, 0x85, 613 0x2a, 0x38, 0x7e, 0xc8, 0x2c, 0x01, 0x0b, 0x6e, 0x9e, 0x78, 0x1b, 0xdc, 0x3d, 0xc5, 0x55, 0x85, 614 0x07, 0xee, 0x19, 0xec, 0x26, 0xa9, 0xff, 0x59, 0x90, 0xef, 0xd9, 0xc2, 0xd8, 0x6f, 0x6a, 0xad, 615 0xdd, 0xd3, 0x67, 0x1d, 0xe5, 0xd9, 0xce, 0xd2, 0xb3, 0x1d, 0x33, 0x5a, 0x10, 0x28, 0x88, 0x43, 616 0xb6, 0xc0, 0x3f, 0xc0, 0x5e, 0x92, 0x4f, 0x02, 0x7f, 0x2a, 0x54, 0xae, 0xc7, 0x52, 0x03, 0x35, 617 0xb5, 0x56, 0x9d, 0xd4, 0x15, 0x3a, 0x64, 0x8b, 0x4b, 0x96, 0xe2, 0x21, 0xe0, 0x20, 0x9e, 0xb9, 618 0x99, 0xb2, 0x9c, 0x3b, 0x95, 0x9e, 0x33, 0x2a, 0x72, 0xc6, 0xcb, 0xb5, 0x1d, 0x6c, 0x86, 0x60, 619 0xb0, 0x45, 0x50, 0xb0, 0x19, 0x8c, 0x21, 0xe0, 0x90, 0x26, 0x9b, 0xcd, 0xaa, 0x4f, 0x9a, 0x6d, 620 0x7a, 0x5c, 0x34, 0x0b, 0x37, 0x30, 0xfc, 0x1a, 0x8c, 0x90, 0x7e, 0x71, 0xd3, 0x38, 0xe6, 0xae, 621 0x97, 0xa7, 0x54, 0x38, 0xd3, 0x0d, 0xfd, 0x20, 0xf0, 0x33, 0xe3, 0x40, 0x6e, 0xea, 0x28, 0xa4, 622 0x5f, 0x48, 0x1c, 0xf3, 0xcb, 0xa2, 0x3a, 0x92, 0x45, 0x6c, 0x40, 0xd5, 0x63, 0x01, 0xe3, 0xcc, 623 0x33, 0x70, 0x53, 0x6b, 0xe9, 0x64, 0x79, 0x15, 0x5b, 0x57, 0xc7, 0xf5, 0xad, 0x1f, 0xaa, 0xad, 624 0xab, 0xc2, 0x6a, 0xeb, 0x17, 0x08, 0xf6, 0x1e, 0xbf, 0xe3, 0xa6, 0xac, 0xd7, 0x51, 0xe3, 0xe4, 625 0x5f, 0x4d, 0xc5, 0x71, 0xc0, 0xa8, 0xf7, 0xff, 0x71, 0x3c, 0x06, 0x9d, 0x67, 0xc5, 0x00, 0x15, 626 0xc8, 0x2a, 0xcf, 0xd4, 0xbf, 0xf3, 0x65, 0x11, 0xae, 0xcc, 0xff, 0xaa, 0x72, 0x59, 0x52, 0x39, 627 0xb2, 0xfd, 0xaf, 0x4c, 0x14, 0xe5, 0x83, 0x85, 0x53, 0x65, 0x32, 0xeb, 0x44, 0x17, 0x80, 0x30, 628 0x32, 0xfe, 0x16, 0x6a, 0x2b, 0xdb, 0x49, 0xb3, 0xd7, 0xc9, 0x03, 0x80, 0xbf, 0x87, 0x86, 0xec, 629 0x9b, 0xb2, 0xcf, 0x7e, 0x26, 0x82, 0x5d, 0x91, 0xbd, 0xeb, 0x02, 0x24, 0x05, 0x86, 0x5f, 0x80, 630 0x1e, 0x32, 0x4e, 0x3d, 0xca, 0xa9, 0x4c, 0x5b, 0x9d, 0xac, 0xee, 0x37, 0x65, 0x7d, 0x07, 0x55, 631 0x6e, 0xca, 0xba, 0x8e, 0x6a, 0x37, 0x65, 0xbd, 0x8a, 0xf4, 0xf6, 0x5b, 0xa8, 0xad, 0x82, 0x8b, 632 0xbf, 0x01, 0x7c, 0x6b, 0x0d, 0xad, 0xf1, 0x9f, 0x96, 0xeb, 0x90, 0x7e, 0xdf, 0xb5, 0x1d, 0xd3, 633 0xe9, 0xa3, 0x2d, 0x0c, 0x50, 0x31, 0x7b, 0xce, 0xf5, 0x1f, 0x7d, 0xa4, 0x89, 0xf3, 0x15, 0x19, 634 0x7f, 0xea, 0x5b, 0x68, 0xbb, 0xfd, 0x93, 0xda, 0x93, 0xfc, 0x3c, 0xec, 0x42, 0xb5, 0xd0, 0xa2, 635 0x2d, 0x5c, 0x85, 0xd2, 0xfb, 0xf1, 0x3b, 0xa4, 0x89, 0xc3, 0xc8, 0xfc, 0x80, 0xb6, 0xdb, 0x7f, 636 0x43, 0x7d, 0x3d, 0xe8, 0xf8, 0x18, 0x8e, 0x96, 0xa3, 0x06, 0xa6, 0x3d, 0x70, 0x6d, 0x87, 0x98, 637 0x4e, 0xff, 0xdd, 0x47, 0xb4, 0x85, 0xeb, 0xa0, 0x93, 0xab, 0x9e, 0x7b, 0xfe, 0xe6, 0xfc, 0x14, 638 0x69, 0xf8, 0x10, 0xf6, 0x9d, 0xbe, 0xed, 0xb8, 0x23, 0xf3, 0x83, 0x64, 0xf6, 0x09, 0xda, 0x16, 639 0xea, 0xf1, 0xc5, 0x4d, 0xbf, 0xe7, 0xb8, 0xe4, 0xaa, 0x27, 0x88, 0xae, 0x3d, 0x30, 0x4f, 0xcf, 640 0xce, 0x51, 0x09, 0x1f, 0xc1, 0x41, 0x6f, 0x6c, 0x5d, 0x0f, 0x6d, 0x01, 0x9d, 0xfd, 0x7a, 0xea, 641 0x0a, 0xb8, 0xdc, 0xfe, 0x11, 0x1a, 0x8f, 0xbe, 0x14, 0x58, 0x87, 0xb2, 0x35, 0xb6, 0x8a, 0xd7, 642 0x15, 0xea, 0x72, 0xfb, 0x35, 0xe0, 0xa7, 0x9f, 0x02, 0xdc, 0x80, 0x9a, 0x69, 0x8d, 0xad, 0x8f, 643 0xa3, 0xf1, 0xad, 0xad, 0x5e, 0x47, 0x6c, 0x13, 0x69, 0xb8, 0x06, 0x3b, 0xfd, 0xde, 0xa5, 0x6d, 644 0xa2, 0xd2, 0xc5, 0xdb, 0x4f, 0x6f, 0x66, 0x3e, 0x9f, 0xe7, 0x93, 0xce, 0x34, 0x0e, 0xbb, 0xc5, 645 0x8f, 0x0d, 0x4f, 0x85, 0x5d, 0x69, 0xd4, 0x2d, 0x6c, 0xd6, 0x9d, 0x06, 0x71, 0xee, 0x15, 0x21, 646 0xe9, 0xae, 0xc2, 0x32, 0xa9, 0xc8, 0x84, 0xbf, 0xfa, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x4d, 0xcf, 647 0xfb, 0xcd, 0xbf, 0x06, 0x00, 0x00, 648 }