github.com/adnan-c/fabric_e2e_couchdb@v0.6.1-preview.0.20170228180935-21ce6b23cf91/protos/gossip/message.pb.go (about) 1 // Code generated by protoc-gen-go. 2 // source: gossip/message.proto 3 // DO NOT EDIT! 4 5 /* 6 Package gossip is a generated protocol buffer package. 7 8 It is generated from these files: 9 gossip/message.proto 10 11 It has these top-level messages: 12 Envelope 13 SecretEnvelope 14 Secret 15 GossipMessage 16 StateInfo 17 StateInfoSnapshot 18 StateInfoPullRequest 19 ConnEstablish 20 PeerIdentity 21 DataRequest 22 GossipHello 23 DataUpdate 24 DataDigest 25 DataMessage 26 Payload 27 AliveMessage 28 LeadershipMessage 29 PeerTime 30 MembershipRequest 31 MembershipResponse 32 Member 33 Empty 34 RemoteStateRequest 35 RemoteStateResponse 36 */ 37 package gossip 38 39 import proto "github.com/golang/protobuf/proto" 40 import fmt "fmt" 41 import math "math" 42 43 import ( 44 context "golang.org/x/net/context" 45 grpc "google.golang.org/grpc" 46 ) 47 48 // Reference imports to suppress errors if they are not otherwise used. 49 var _ = proto.Marshal 50 var _ = fmt.Errorf 51 var _ = math.Inf 52 53 // This is a compile-time assertion to ensure that this generated file 54 // is compatible with the proto package it is being compiled against. 55 // A compilation error at this line likely means your copy of the 56 // proto package needs to be updated. 57 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 58 59 type PullMsgType int32 60 61 const ( 62 PullMsgType_Undefined PullMsgType = 0 63 PullMsgType_BlockMessage PullMsgType = 1 64 PullMsgType_IdentityMsg PullMsgType = 2 65 ) 66 67 var PullMsgType_name = map[int32]string{ 68 0: "Undefined", 69 1: "BlockMessage", 70 2: "IdentityMsg", 71 } 72 var PullMsgType_value = map[string]int32{ 73 "Undefined": 0, 74 "BlockMessage": 1, 75 "IdentityMsg": 2, 76 } 77 78 func (x PullMsgType) String() string { 79 return proto.EnumName(PullMsgType_name, int32(x)) 80 } 81 func (PullMsgType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } 82 83 type GossipMessage_Tag int32 84 85 const ( 86 GossipMessage_UNDEFINED GossipMessage_Tag = 0 87 GossipMessage_EMPTY GossipMessage_Tag = 1 88 GossipMessage_ORG_ONLY GossipMessage_Tag = 2 89 GossipMessage_CHAN_ONLY GossipMessage_Tag = 3 90 GossipMessage_CHAN_AND_ORG GossipMessage_Tag = 4 91 GossipMessage_CHAN_OR_ORG GossipMessage_Tag = 5 92 ) 93 94 var GossipMessage_Tag_name = map[int32]string{ 95 0: "UNDEFINED", 96 1: "EMPTY", 97 2: "ORG_ONLY", 98 3: "CHAN_ONLY", 99 4: "CHAN_AND_ORG", 100 5: "CHAN_OR_ORG", 101 } 102 var GossipMessage_Tag_value = map[string]int32{ 103 "UNDEFINED": 0, 104 "EMPTY": 1, 105 "ORG_ONLY": 2, 106 "CHAN_ONLY": 3, 107 "CHAN_AND_ORG": 4, 108 "CHAN_OR_ORG": 5, 109 } 110 111 func (x GossipMessage_Tag) String() string { 112 return proto.EnumName(GossipMessage_Tag_name, int32(x)) 113 } 114 func (GossipMessage_Tag) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} } 115 116 // Envelope contains a marshalled 117 // GossipMessage and a signature over it. 118 // It may also contain a SecretEnvelope 119 // which is a marshalled Secret 120 type Envelope struct { 121 Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` 122 Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` 123 SecretEnvelope *SecretEnvelope `protobuf:"bytes,3,opt,name=secretEnvelope" json:"secretEnvelope,omitempty"` 124 } 125 126 func (m *Envelope) Reset() { *m = Envelope{} } 127 func (m *Envelope) String() string { return proto.CompactTextString(m) } 128 func (*Envelope) ProtoMessage() {} 129 func (*Envelope) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } 130 131 func (m *Envelope) GetSecretEnvelope() *SecretEnvelope { 132 if m != nil { 133 return m.SecretEnvelope 134 } 135 return nil 136 } 137 138 // SecretEnvelope is a marshalled Secret 139 // and a signature over it. 140 // The signature should be validated by the peer 141 // that signed the Envelope the SecretEnvelope 142 // came with 143 type SecretEnvelope struct { 144 Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` 145 Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` 146 } 147 148 func (m *SecretEnvelope) Reset() { *m = SecretEnvelope{} } 149 func (m *SecretEnvelope) String() string { return proto.CompactTextString(m) } 150 func (*SecretEnvelope) ProtoMessage() {} 151 func (*SecretEnvelope) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } 152 153 // Secret is an entity that might be omitted 154 // from an Envelope when the remote peer that is receiving 155 // the Envelope shouldn't know the secret's content. 156 type Secret struct { 157 // Types that are valid to be assigned to Content: 158 // *Secret_InternalEndpoint 159 Content isSecret_Content `protobuf_oneof:"content"` 160 } 161 162 func (m *Secret) Reset() { *m = Secret{} } 163 func (m *Secret) String() string { return proto.CompactTextString(m) } 164 func (*Secret) ProtoMessage() {} 165 func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } 166 167 type isSecret_Content interface { 168 isSecret_Content() 169 } 170 171 type Secret_InternalEndpoint struct { 172 InternalEndpoint string `protobuf:"bytes,1,opt,name=internalEndpoint,oneof"` 173 } 174 175 func (*Secret_InternalEndpoint) isSecret_Content() {} 176 177 func (m *Secret) GetContent() isSecret_Content { 178 if m != nil { 179 return m.Content 180 } 181 return nil 182 } 183 184 func (m *Secret) GetInternalEndpoint() string { 185 if x, ok := m.GetContent().(*Secret_InternalEndpoint); ok { 186 return x.InternalEndpoint 187 } 188 return "" 189 } 190 191 // XXX_OneofFuncs is for the internal use of the proto package. 192 func (*Secret) 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{}) { 193 return _Secret_OneofMarshaler, _Secret_OneofUnmarshaler, _Secret_OneofSizer, []interface{}{ 194 (*Secret_InternalEndpoint)(nil), 195 } 196 } 197 198 func _Secret_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { 199 m := msg.(*Secret) 200 // content 201 switch x := m.Content.(type) { 202 case *Secret_InternalEndpoint: 203 b.EncodeVarint(1<<3 | proto.WireBytes) 204 b.EncodeStringBytes(x.InternalEndpoint) 205 case nil: 206 default: 207 return fmt.Errorf("Secret.Content has unexpected type %T", x) 208 } 209 return nil 210 } 211 212 func _Secret_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { 213 m := msg.(*Secret) 214 switch tag { 215 case 1: // content.internalEndpoint 216 if wire != proto.WireBytes { 217 return true, proto.ErrInternalBadWireType 218 } 219 x, err := b.DecodeStringBytes() 220 m.Content = &Secret_InternalEndpoint{x} 221 return true, err 222 default: 223 return false, nil 224 } 225 } 226 227 func _Secret_OneofSizer(msg proto.Message) (n int) { 228 m := msg.(*Secret) 229 // content 230 switch x := m.Content.(type) { 231 case *Secret_InternalEndpoint: 232 n += proto.SizeVarint(1<<3 | proto.WireBytes) 233 n += proto.SizeVarint(uint64(len(x.InternalEndpoint))) 234 n += len(x.InternalEndpoint) 235 case nil: 236 default: 237 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) 238 } 239 return n 240 } 241 242 // GossipMessage defines the message sent in a gossip network 243 type GossipMessage struct { 244 // used mainly for testing, but will might be used in the future 245 // for ensuring message delivery by acking 246 Nonce uint64 `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"` 247 // The channel of the message. 248 // Some GossipMessages may set this to nil, because 249 // they are cross-channels but some may not 250 Channel []byte `protobuf:"bytes,2,opt,name=channel,proto3" json:"channel,omitempty"` 251 // determines to which peers it is allowed 252 // to forward the message 253 Tag GossipMessage_Tag `protobuf:"varint,3,opt,name=tag,enum=gossip.GossipMessage_Tag" json:"tag,omitempty"` 254 // Types that are valid to be assigned to Content: 255 // *GossipMessage_AliveMsg 256 // *GossipMessage_MemReq 257 // *GossipMessage_MemRes 258 // *GossipMessage_DataMsg 259 // *GossipMessage_Hello 260 // *GossipMessage_DataDig 261 // *GossipMessage_DataReq 262 // *GossipMessage_DataUpdate 263 // *GossipMessage_Empty 264 // *GossipMessage_Conn 265 // *GossipMessage_StateInfo 266 // *GossipMessage_StateSnapshot 267 // *GossipMessage_StateInfoPullReq 268 // *GossipMessage_StateRequest 269 // *GossipMessage_StateResponse 270 // *GossipMessage_LeadershipMsg 271 // *GossipMessage_PeerIdentity 272 Content isGossipMessage_Content `protobuf_oneof:"content"` 273 } 274 275 func (m *GossipMessage) Reset() { *m = GossipMessage{} } 276 func (m *GossipMessage) String() string { return proto.CompactTextString(m) } 277 func (*GossipMessage) ProtoMessage() {} 278 func (*GossipMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } 279 280 type isGossipMessage_Content interface { 281 isGossipMessage_Content() 282 } 283 284 type GossipMessage_AliveMsg struct { 285 AliveMsg *AliveMessage `protobuf:"bytes,5,opt,name=aliveMsg,oneof"` 286 } 287 type GossipMessage_MemReq struct { 288 MemReq *MembershipRequest `protobuf:"bytes,6,opt,name=memReq,oneof"` 289 } 290 type GossipMessage_MemRes struct { 291 MemRes *MembershipResponse `protobuf:"bytes,7,opt,name=memRes,oneof"` 292 } 293 type GossipMessage_DataMsg struct { 294 DataMsg *DataMessage `protobuf:"bytes,8,opt,name=dataMsg,oneof"` 295 } 296 type GossipMessage_Hello struct { 297 Hello *GossipHello `protobuf:"bytes,9,opt,name=hello,oneof"` 298 } 299 type GossipMessage_DataDig struct { 300 DataDig *DataDigest `protobuf:"bytes,10,opt,name=dataDig,oneof"` 301 } 302 type GossipMessage_DataReq struct { 303 DataReq *DataRequest `protobuf:"bytes,11,opt,name=dataReq,oneof"` 304 } 305 type GossipMessage_DataUpdate struct { 306 DataUpdate *DataUpdate `protobuf:"bytes,12,opt,name=dataUpdate,oneof"` 307 } 308 type GossipMessage_Empty struct { 309 Empty *Empty `protobuf:"bytes,13,opt,name=empty,oneof"` 310 } 311 type GossipMessage_Conn struct { 312 Conn *ConnEstablish `protobuf:"bytes,14,opt,name=conn,oneof"` 313 } 314 type GossipMessage_StateInfo struct { 315 StateInfo *StateInfo `protobuf:"bytes,15,opt,name=stateInfo,oneof"` 316 } 317 type GossipMessage_StateSnapshot struct { 318 StateSnapshot *StateInfoSnapshot `protobuf:"bytes,16,opt,name=stateSnapshot,oneof"` 319 } 320 type GossipMessage_StateInfoPullReq struct { 321 StateInfoPullReq *StateInfoPullRequest `protobuf:"bytes,17,opt,name=stateInfoPullReq,oneof"` 322 } 323 type GossipMessage_StateRequest struct { 324 StateRequest *RemoteStateRequest `protobuf:"bytes,18,opt,name=stateRequest,oneof"` 325 } 326 type GossipMessage_StateResponse struct { 327 StateResponse *RemoteStateResponse `protobuf:"bytes,19,opt,name=stateResponse,oneof"` 328 } 329 type GossipMessage_LeadershipMsg struct { 330 LeadershipMsg *LeadershipMessage `protobuf:"bytes,20,opt,name=leadershipMsg,oneof"` 331 } 332 type GossipMessage_PeerIdentity struct { 333 PeerIdentity *PeerIdentity `protobuf:"bytes,21,opt,name=peerIdentity,oneof"` 334 } 335 336 func (*GossipMessage_AliveMsg) isGossipMessage_Content() {} 337 func (*GossipMessage_MemReq) isGossipMessage_Content() {} 338 func (*GossipMessage_MemRes) isGossipMessage_Content() {} 339 func (*GossipMessage_DataMsg) isGossipMessage_Content() {} 340 func (*GossipMessage_Hello) isGossipMessage_Content() {} 341 func (*GossipMessage_DataDig) isGossipMessage_Content() {} 342 func (*GossipMessage_DataReq) isGossipMessage_Content() {} 343 func (*GossipMessage_DataUpdate) isGossipMessage_Content() {} 344 func (*GossipMessage_Empty) isGossipMessage_Content() {} 345 func (*GossipMessage_Conn) isGossipMessage_Content() {} 346 func (*GossipMessage_StateInfo) isGossipMessage_Content() {} 347 func (*GossipMessage_StateSnapshot) isGossipMessage_Content() {} 348 func (*GossipMessage_StateInfoPullReq) isGossipMessage_Content() {} 349 func (*GossipMessage_StateRequest) isGossipMessage_Content() {} 350 func (*GossipMessage_StateResponse) isGossipMessage_Content() {} 351 func (*GossipMessage_LeadershipMsg) isGossipMessage_Content() {} 352 func (*GossipMessage_PeerIdentity) isGossipMessage_Content() {} 353 354 func (m *GossipMessage) GetContent() isGossipMessage_Content { 355 if m != nil { 356 return m.Content 357 } 358 return nil 359 } 360 361 func (m *GossipMessage) GetAliveMsg() *AliveMessage { 362 if x, ok := m.GetContent().(*GossipMessage_AliveMsg); ok { 363 return x.AliveMsg 364 } 365 return nil 366 } 367 368 func (m *GossipMessage) GetMemReq() *MembershipRequest { 369 if x, ok := m.GetContent().(*GossipMessage_MemReq); ok { 370 return x.MemReq 371 } 372 return nil 373 } 374 375 func (m *GossipMessage) GetMemRes() *MembershipResponse { 376 if x, ok := m.GetContent().(*GossipMessage_MemRes); ok { 377 return x.MemRes 378 } 379 return nil 380 } 381 382 func (m *GossipMessage) GetDataMsg() *DataMessage { 383 if x, ok := m.GetContent().(*GossipMessage_DataMsg); ok { 384 return x.DataMsg 385 } 386 return nil 387 } 388 389 func (m *GossipMessage) GetHello() *GossipHello { 390 if x, ok := m.GetContent().(*GossipMessage_Hello); ok { 391 return x.Hello 392 } 393 return nil 394 } 395 396 func (m *GossipMessage) GetDataDig() *DataDigest { 397 if x, ok := m.GetContent().(*GossipMessage_DataDig); ok { 398 return x.DataDig 399 } 400 return nil 401 } 402 403 func (m *GossipMessage) GetDataReq() *DataRequest { 404 if x, ok := m.GetContent().(*GossipMessage_DataReq); ok { 405 return x.DataReq 406 } 407 return nil 408 } 409 410 func (m *GossipMessage) GetDataUpdate() *DataUpdate { 411 if x, ok := m.GetContent().(*GossipMessage_DataUpdate); ok { 412 return x.DataUpdate 413 } 414 return nil 415 } 416 417 func (m *GossipMessage) GetEmpty() *Empty { 418 if x, ok := m.GetContent().(*GossipMessage_Empty); ok { 419 return x.Empty 420 } 421 return nil 422 } 423 424 func (m *GossipMessage) GetConn() *ConnEstablish { 425 if x, ok := m.GetContent().(*GossipMessage_Conn); ok { 426 return x.Conn 427 } 428 return nil 429 } 430 431 func (m *GossipMessage) GetStateInfo() *StateInfo { 432 if x, ok := m.GetContent().(*GossipMessage_StateInfo); ok { 433 return x.StateInfo 434 } 435 return nil 436 } 437 438 func (m *GossipMessage) GetStateSnapshot() *StateInfoSnapshot { 439 if x, ok := m.GetContent().(*GossipMessage_StateSnapshot); ok { 440 return x.StateSnapshot 441 } 442 return nil 443 } 444 445 func (m *GossipMessage) GetStateInfoPullReq() *StateInfoPullRequest { 446 if x, ok := m.GetContent().(*GossipMessage_StateInfoPullReq); ok { 447 return x.StateInfoPullReq 448 } 449 return nil 450 } 451 452 func (m *GossipMessage) GetStateRequest() *RemoteStateRequest { 453 if x, ok := m.GetContent().(*GossipMessage_StateRequest); ok { 454 return x.StateRequest 455 } 456 return nil 457 } 458 459 func (m *GossipMessage) GetStateResponse() *RemoteStateResponse { 460 if x, ok := m.GetContent().(*GossipMessage_StateResponse); ok { 461 return x.StateResponse 462 } 463 return nil 464 } 465 466 func (m *GossipMessage) GetLeadershipMsg() *LeadershipMessage { 467 if x, ok := m.GetContent().(*GossipMessage_LeadershipMsg); ok { 468 return x.LeadershipMsg 469 } 470 return nil 471 } 472 473 func (m *GossipMessage) GetPeerIdentity() *PeerIdentity { 474 if x, ok := m.GetContent().(*GossipMessage_PeerIdentity); ok { 475 return x.PeerIdentity 476 } 477 return nil 478 } 479 480 // XXX_OneofFuncs is for the internal use of the proto package. 481 func (*GossipMessage) 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{}) { 482 return _GossipMessage_OneofMarshaler, _GossipMessage_OneofUnmarshaler, _GossipMessage_OneofSizer, []interface{}{ 483 (*GossipMessage_AliveMsg)(nil), 484 (*GossipMessage_MemReq)(nil), 485 (*GossipMessage_MemRes)(nil), 486 (*GossipMessage_DataMsg)(nil), 487 (*GossipMessage_Hello)(nil), 488 (*GossipMessage_DataDig)(nil), 489 (*GossipMessage_DataReq)(nil), 490 (*GossipMessage_DataUpdate)(nil), 491 (*GossipMessage_Empty)(nil), 492 (*GossipMessage_Conn)(nil), 493 (*GossipMessage_StateInfo)(nil), 494 (*GossipMessage_StateSnapshot)(nil), 495 (*GossipMessage_StateInfoPullReq)(nil), 496 (*GossipMessage_StateRequest)(nil), 497 (*GossipMessage_StateResponse)(nil), 498 (*GossipMessage_LeadershipMsg)(nil), 499 (*GossipMessage_PeerIdentity)(nil), 500 } 501 } 502 503 func _GossipMessage_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { 504 m := msg.(*GossipMessage) 505 // content 506 switch x := m.Content.(type) { 507 case *GossipMessage_AliveMsg: 508 b.EncodeVarint(5<<3 | proto.WireBytes) 509 if err := b.EncodeMessage(x.AliveMsg); err != nil { 510 return err 511 } 512 case *GossipMessage_MemReq: 513 b.EncodeVarint(6<<3 | proto.WireBytes) 514 if err := b.EncodeMessage(x.MemReq); err != nil { 515 return err 516 } 517 case *GossipMessage_MemRes: 518 b.EncodeVarint(7<<3 | proto.WireBytes) 519 if err := b.EncodeMessage(x.MemRes); err != nil { 520 return err 521 } 522 case *GossipMessage_DataMsg: 523 b.EncodeVarint(8<<3 | proto.WireBytes) 524 if err := b.EncodeMessage(x.DataMsg); err != nil { 525 return err 526 } 527 case *GossipMessage_Hello: 528 b.EncodeVarint(9<<3 | proto.WireBytes) 529 if err := b.EncodeMessage(x.Hello); err != nil { 530 return err 531 } 532 case *GossipMessage_DataDig: 533 b.EncodeVarint(10<<3 | proto.WireBytes) 534 if err := b.EncodeMessage(x.DataDig); err != nil { 535 return err 536 } 537 case *GossipMessage_DataReq: 538 b.EncodeVarint(11<<3 | proto.WireBytes) 539 if err := b.EncodeMessage(x.DataReq); err != nil { 540 return err 541 } 542 case *GossipMessage_DataUpdate: 543 b.EncodeVarint(12<<3 | proto.WireBytes) 544 if err := b.EncodeMessage(x.DataUpdate); err != nil { 545 return err 546 } 547 case *GossipMessage_Empty: 548 b.EncodeVarint(13<<3 | proto.WireBytes) 549 if err := b.EncodeMessage(x.Empty); err != nil { 550 return err 551 } 552 case *GossipMessage_Conn: 553 b.EncodeVarint(14<<3 | proto.WireBytes) 554 if err := b.EncodeMessage(x.Conn); err != nil { 555 return err 556 } 557 case *GossipMessage_StateInfo: 558 b.EncodeVarint(15<<3 | proto.WireBytes) 559 if err := b.EncodeMessage(x.StateInfo); err != nil { 560 return err 561 } 562 case *GossipMessage_StateSnapshot: 563 b.EncodeVarint(16<<3 | proto.WireBytes) 564 if err := b.EncodeMessage(x.StateSnapshot); err != nil { 565 return err 566 } 567 case *GossipMessage_StateInfoPullReq: 568 b.EncodeVarint(17<<3 | proto.WireBytes) 569 if err := b.EncodeMessage(x.StateInfoPullReq); err != nil { 570 return err 571 } 572 case *GossipMessage_StateRequest: 573 b.EncodeVarint(18<<3 | proto.WireBytes) 574 if err := b.EncodeMessage(x.StateRequest); err != nil { 575 return err 576 } 577 case *GossipMessage_StateResponse: 578 b.EncodeVarint(19<<3 | proto.WireBytes) 579 if err := b.EncodeMessage(x.StateResponse); err != nil { 580 return err 581 } 582 case *GossipMessage_LeadershipMsg: 583 b.EncodeVarint(20<<3 | proto.WireBytes) 584 if err := b.EncodeMessage(x.LeadershipMsg); err != nil { 585 return err 586 } 587 case *GossipMessage_PeerIdentity: 588 b.EncodeVarint(21<<3 | proto.WireBytes) 589 if err := b.EncodeMessage(x.PeerIdentity); err != nil { 590 return err 591 } 592 case nil: 593 default: 594 return fmt.Errorf("GossipMessage.Content has unexpected type %T", x) 595 } 596 return nil 597 } 598 599 func _GossipMessage_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { 600 m := msg.(*GossipMessage) 601 switch tag { 602 case 5: // content.aliveMsg 603 if wire != proto.WireBytes { 604 return true, proto.ErrInternalBadWireType 605 } 606 msg := new(AliveMessage) 607 err := b.DecodeMessage(msg) 608 m.Content = &GossipMessage_AliveMsg{msg} 609 return true, err 610 case 6: // content.memReq 611 if wire != proto.WireBytes { 612 return true, proto.ErrInternalBadWireType 613 } 614 msg := new(MembershipRequest) 615 err := b.DecodeMessage(msg) 616 m.Content = &GossipMessage_MemReq{msg} 617 return true, err 618 case 7: // content.memRes 619 if wire != proto.WireBytes { 620 return true, proto.ErrInternalBadWireType 621 } 622 msg := new(MembershipResponse) 623 err := b.DecodeMessage(msg) 624 m.Content = &GossipMessage_MemRes{msg} 625 return true, err 626 case 8: // content.dataMsg 627 if wire != proto.WireBytes { 628 return true, proto.ErrInternalBadWireType 629 } 630 msg := new(DataMessage) 631 err := b.DecodeMessage(msg) 632 m.Content = &GossipMessage_DataMsg{msg} 633 return true, err 634 case 9: // content.hello 635 if wire != proto.WireBytes { 636 return true, proto.ErrInternalBadWireType 637 } 638 msg := new(GossipHello) 639 err := b.DecodeMessage(msg) 640 m.Content = &GossipMessage_Hello{msg} 641 return true, err 642 case 10: // content.dataDig 643 if wire != proto.WireBytes { 644 return true, proto.ErrInternalBadWireType 645 } 646 msg := new(DataDigest) 647 err := b.DecodeMessage(msg) 648 m.Content = &GossipMessage_DataDig{msg} 649 return true, err 650 case 11: // content.dataReq 651 if wire != proto.WireBytes { 652 return true, proto.ErrInternalBadWireType 653 } 654 msg := new(DataRequest) 655 err := b.DecodeMessage(msg) 656 m.Content = &GossipMessage_DataReq{msg} 657 return true, err 658 case 12: // content.dataUpdate 659 if wire != proto.WireBytes { 660 return true, proto.ErrInternalBadWireType 661 } 662 msg := new(DataUpdate) 663 err := b.DecodeMessage(msg) 664 m.Content = &GossipMessage_DataUpdate{msg} 665 return true, err 666 case 13: // content.empty 667 if wire != proto.WireBytes { 668 return true, proto.ErrInternalBadWireType 669 } 670 msg := new(Empty) 671 err := b.DecodeMessage(msg) 672 m.Content = &GossipMessage_Empty{msg} 673 return true, err 674 case 14: // content.conn 675 if wire != proto.WireBytes { 676 return true, proto.ErrInternalBadWireType 677 } 678 msg := new(ConnEstablish) 679 err := b.DecodeMessage(msg) 680 m.Content = &GossipMessage_Conn{msg} 681 return true, err 682 case 15: // content.stateInfo 683 if wire != proto.WireBytes { 684 return true, proto.ErrInternalBadWireType 685 } 686 msg := new(StateInfo) 687 err := b.DecodeMessage(msg) 688 m.Content = &GossipMessage_StateInfo{msg} 689 return true, err 690 case 16: // content.stateSnapshot 691 if wire != proto.WireBytes { 692 return true, proto.ErrInternalBadWireType 693 } 694 msg := new(StateInfoSnapshot) 695 err := b.DecodeMessage(msg) 696 m.Content = &GossipMessage_StateSnapshot{msg} 697 return true, err 698 case 17: // content.stateInfoPullReq 699 if wire != proto.WireBytes { 700 return true, proto.ErrInternalBadWireType 701 } 702 msg := new(StateInfoPullRequest) 703 err := b.DecodeMessage(msg) 704 m.Content = &GossipMessage_StateInfoPullReq{msg} 705 return true, err 706 case 18: // content.stateRequest 707 if wire != proto.WireBytes { 708 return true, proto.ErrInternalBadWireType 709 } 710 msg := new(RemoteStateRequest) 711 err := b.DecodeMessage(msg) 712 m.Content = &GossipMessage_StateRequest{msg} 713 return true, err 714 case 19: // content.stateResponse 715 if wire != proto.WireBytes { 716 return true, proto.ErrInternalBadWireType 717 } 718 msg := new(RemoteStateResponse) 719 err := b.DecodeMessage(msg) 720 m.Content = &GossipMessage_StateResponse{msg} 721 return true, err 722 case 20: // content.leadershipMsg 723 if wire != proto.WireBytes { 724 return true, proto.ErrInternalBadWireType 725 } 726 msg := new(LeadershipMessage) 727 err := b.DecodeMessage(msg) 728 m.Content = &GossipMessage_LeadershipMsg{msg} 729 return true, err 730 case 21: // content.peerIdentity 731 if wire != proto.WireBytes { 732 return true, proto.ErrInternalBadWireType 733 } 734 msg := new(PeerIdentity) 735 err := b.DecodeMessage(msg) 736 m.Content = &GossipMessage_PeerIdentity{msg} 737 return true, err 738 default: 739 return false, nil 740 } 741 } 742 743 func _GossipMessage_OneofSizer(msg proto.Message) (n int) { 744 m := msg.(*GossipMessage) 745 // content 746 switch x := m.Content.(type) { 747 case *GossipMessage_AliveMsg: 748 s := proto.Size(x.AliveMsg) 749 n += proto.SizeVarint(5<<3 | proto.WireBytes) 750 n += proto.SizeVarint(uint64(s)) 751 n += s 752 case *GossipMessage_MemReq: 753 s := proto.Size(x.MemReq) 754 n += proto.SizeVarint(6<<3 | proto.WireBytes) 755 n += proto.SizeVarint(uint64(s)) 756 n += s 757 case *GossipMessage_MemRes: 758 s := proto.Size(x.MemRes) 759 n += proto.SizeVarint(7<<3 | proto.WireBytes) 760 n += proto.SizeVarint(uint64(s)) 761 n += s 762 case *GossipMessage_DataMsg: 763 s := proto.Size(x.DataMsg) 764 n += proto.SizeVarint(8<<3 | proto.WireBytes) 765 n += proto.SizeVarint(uint64(s)) 766 n += s 767 case *GossipMessage_Hello: 768 s := proto.Size(x.Hello) 769 n += proto.SizeVarint(9<<3 | proto.WireBytes) 770 n += proto.SizeVarint(uint64(s)) 771 n += s 772 case *GossipMessage_DataDig: 773 s := proto.Size(x.DataDig) 774 n += proto.SizeVarint(10<<3 | proto.WireBytes) 775 n += proto.SizeVarint(uint64(s)) 776 n += s 777 case *GossipMessage_DataReq: 778 s := proto.Size(x.DataReq) 779 n += proto.SizeVarint(11<<3 | proto.WireBytes) 780 n += proto.SizeVarint(uint64(s)) 781 n += s 782 case *GossipMessage_DataUpdate: 783 s := proto.Size(x.DataUpdate) 784 n += proto.SizeVarint(12<<3 | proto.WireBytes) 785 n += proto.SizeVarint(uint64(s)) 786 n += s 787 case *GossipMessage_Empty: 788 s := proto.Size(x.Empty) 789 n += proto.SizeVarint(13<<3 | proto.WireBytes) 790 n += proto.SizeVarint(uint64(s)) 791 n += s 792 case *GossipMessage_Conn: 793 s := proto.Size(x.Conn) 794 n += proto.SizeVarint(14<<3 | proto.WireBytes) 795 n += proto.SizeVarint(uint64(s)) 796 n += s 797 case *GossipMessage_StateInfo: 798 s := proto.Size(x.StateInfo) 799 n += proto.SizeVarint(15<<3 | proto.WireBytes) 800 n += proto.SizeVarint(uint64(s)) 801 n += s 802 case *GossipMessage_StateSnapshot: 803 s := proto.Size(x.StateSnapshot) 804 n += proto.SizeVarint(16<<3 | proto.WireBytes) 805 n += proto.SizeVarint(uint64(s)) 806 n += s 807 case *GossipMessage_StateInfoPullReq: 808 s := proto.Size(x.StateInfoPullReq) 809 n += proto.SizeVarint(17<<3 | proto.WireBytes) 810 n += proto.SizeVarint(uint64(s)) 811 n += s 812 case *GossipMessage_StateRequest: 813 s := proto.Size(x.StateRequest) 814 n += proto.SizeVarint(18<<3 | proto.WireBytes) 815 n += proto.SizeVarint(uint64(s)) 816 n += s 817 case *GossipMessage_StateResponse: 818 s := proto.Size(x.StateResponse) 819 n += proto.SizeVarint(19<<3 | proto.WireBytes) 820 n += proto.SizeVarint(uint64(s)) 821 n += s 822 case *GossipMessage_LeadershipMsg: 823 s := proto.Size(x.LeadershipMsg) 824 n += proto.SizeVarint(20<<3 | proto.WireBytes) 825 n += proto.SizeVarint(uint64(s)) 826 n += s 827 case *GossipMessage_PeerIdentity: 828 s := proto.Size(x.PeerIdentity) 829 n += proto.SizeVarint(21<<3 | proto.WireBytes) 830 n += proto.SizeVarint(uint64(s)) 831 n += s 832 case nil: 833 default: 834 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) 835 } 836 return n 837 } 838 839 // StateInfo is used for a peer to relay its state information 840 // to other peers 841 type StateInfo struct { 842 Metadata []byte `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` 843 Timestamp *PeerTime `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"` 844 PkiID []byte `protobuf:"bytes,3,opt,name=pkiID,proto3" json:"pkiID,omitempty"` 845 } 846 847 func (m *StateInfo) Reset() { *m = StateInfo{} } 848 func (m *StateInfo) String() string { return proto.CompactTextString(m) } 849 func (*StateInfo) ProtoMessage() {} 850 func (*StateInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } 851 852 func (m *StateInfo) GetTimestamp() *PeerTime { 853 if m != nil { 854 return m.Timestamp 855 } 856 return nil 857 } 858 859 // StateInfoSnapshot is an aggregation of StateInfo messages 860 type StateInfoSnapshot struct { 861 Elements []*Envelope `protobuf:"bytes,1,rep,name=elements" json:"elements,omitempty"` 862 } 863 864 func (m *StateInfoSnapshot) Reset() { *m = StateInfoSnapshot{} } 865 func (m *StateInfoSnapshot) String() string { return proto.CompactTextString(m) } 866 func (*StateInfoSnapshot) ProtoMessage() {} 867 func (*StateInfoSnapshot) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } 868 869 func (m *StateInfoSnapshot) GetElements() []*Envelope { 870 if m != nil { 871 return m.Elements 872 } 873 return nil 874 } 875 876 // StateInfoPullRequest is used to fetch a StateInfoSnapshot 877 // from a remote peer 878 type StateInfoPullRequest struct { 879 } 880 881 func (m *StateInfoPullRequest) Reset() { *m = StateInfoPullRequest{} } 882 func (m *StateInfoPullRequest) String() string { return proto.CompactTextString(m) } 883 func (*StateInfoPullRequest) ProtoMessage() {} 884 func (*StateInfoPullRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } 885 886 // ConnEstablish is the message used for the gossip handshake 887 // Whenever a peer connects to another peer, it handshakes 888 // with it by sending this message that proves its identity 889 type ConnEstablish struct { 890 PkiID []byte `protobuf:"bytes,1,opt,name=pkiID,proto3" json:"pkiID,omitempty"` 891 Cert []byte `protobuf:"bytes,2,opt,name=cert,proto3" json:"cert,omitempty"` 892 Hash []byte `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"` 893 } 894 895 func (m *ConnEstablish) Reset() { *m = ConnEstablish{} } 896 func (m *ConnEstablish) String() string { return proto.CompactTextString(m) } 897 func (*ConnEstablish) ProtoMessage() {} 898 func (*ConnEstablish) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } 899 900 // PeerIdentity defines the identity of the peer 901 // Used to make other peers learn of the identity 902 // of a certain peer 903 type PeerIdentity struct { 904 PkiID []byte `protobuf:"bytes,1,opt,name=pkiID,proto3" json:"pkiID,omitempty"` 905 Cert []byte `protobuf:"bytes,2,opt,name=cert,proto3" json:"cert,omitempty"` 906 Metadata []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` 907 } 908 909 func (m *PeerIdentity) Reset() { *m = PeerIdentity{} } 910 func (m *PeerIdentity) String() string { return proto.CompactTextString(m) } 911 func (*PeerIdentity) ProtoMessage() {} 912 func (*PeerIdentity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } 913 914 // DataRequest is a message used for a peer to request 915 // certain data blocks from a remote peer 916 type DataRequest struct { 917 Nonce uint64 `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"` 918 Digests []string `protobuf:"bytes,2,rep,name=digests" json:"digests,omitempty"` 919 MsgType PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"` 920 } 921 922 func (m *DataRequest) Reset() { *m = DataRequest{} } 923 func (m *DataRequest) String() string { return proto.CompactTextString(m) } 924 func (*DataRequest) ProtoMessage() {} 925 func (*DataRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } 926 927 // GossipHello is the message that is used for the peer to initiate 928 // a pull round with another peer 929 type GossipHello struct { 930 Nonce uint64 `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"` 931 Metadata []byte `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` 932 MsgType PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"` 933 } 934 935 func (m *GossipHello) Reset() { *m = GossipHello{} } 936 func (m *GossipHello) String() string { return proto.CompactTextString(m) } 937 func (*GossipHello) ProtoMessage() {} 938 func (*GossipHello) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } 939 940 // DataUpdate is the the final message in the pull phase 941 // sent from the receiver to the initiator 942 type DataUpdate struct { 943 Nonce uint64 `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"` 944 Data []*Envelope `protobuf:"bytes,2,rep,name=data" json:"data,omitempty"` 945 MsgType PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"` 946 } 947 948 func (m *DataUpdate) Reset() { *m = DataUpdate{} } 949 func (m *DataUpdate) String() string { return proto.CompactTextString(m) } 950 func (*DataUpdate) ProtoMessage() {} 951 func (*DataUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } 952 953 func (m *DataUpdate) GetData() []*Envelope { 954 if m != nil { 955 return m.Data 956 } 957 return nil 958 } 959 960 // DataDigest is the message sent from the receiver peer 961 // to the initator peer and contains the data items it has 962 type DataDigest struct { 963 Nonce uint64 `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"` 964 Digests []string `protobuf:"bytes,2,rep,name=digests" json:"digests,omitempty"` 965 MsgType PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"` 966 } 967 968 func (m *DataDigest) Reset() { *m = DataDigest{} } 969 func (m *DataDigest) String() string { return proto.CompactTextString(m) } 970 func (*DataDigest) ProtoMessage() {} 971 func (*DataDigest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } 972 973 // DataMessage is the message that contains a block 974 type DataMessage struct { 975 Payload *Payload `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"` 976 } 977 978 func (m *DataMessage) Reset() { *m = DataMessage{} } 979 func (m *DataMessage) String() string { return proto.CompactTextString(m) } 980 func (*DataMessage) ProtoMessage() {} 981 func (*DataMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } 982 983 func (m *DataMessage) GetPayload() *Payload { 984 if m != nil { 985 return m.Payload 986 } 987 return nil 988 } 989 990 // Payload contains a block 991 type Payload struct { 992 SeqNum uint64 `protobuf:"varint,1,opt,name=seqNum" json:"seqNum,omitempty"` 993 Hash string `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"` 994 Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` 995 } 996 997 func (m *Payload) Reset() { *m = Payload{} } 998 func (m *Payload) String() string { return proto.CompactTextString(m) } 999 func (*Payload) ProtoMessage() {} 1000 func (*Payload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } 1001 1002 // AliveMessage is sent to inform remote peers 1003 // of a peer's existence and activity 1004 type AliveMessage struct { 1005 Membership *Member `protobuf:"bytes,1,opt,name=membership" json:"membership,omitempty"` 1006 Timestamp *PeerTime `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"` 1007 Identity []byte `protobuf:"bytes,4,opt,name=identity,proto3" json:"identity,omitempty"` 1008 } 1009 1010 func (m *AliveMessage) Reset() { *m = AliveMessage{} } 1011 func (m *AliveMessage) String() string { return proto.CompactTextString(m) } 1012 func (*AliveMessage) ProtoMessage() {} 1013 func (*AliveMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } 1014 1015 func (m *AliveMessage) GetMembership() *Member { 1016 if m != nil { 1017 return m.Membership 1018 } 1019 return nil 1020 } 1021 1022 func (m *AliveMessage) GetTimestamp() *PeerTime { 1023 if m != nil { 1024 return m.Timestamp 1025 } 1026 return nil 1027 } 1028 1029 // Leadership Message is sent during leader election to inform 1030 // remote peers about intent of peer to proclaim itself as leader 1031 type LeadershipMessage struct { 1032 PkiID []byte `protobuf:"bytes,1,opt,name=pkiID,proto3" json:"pkiID,omitempty"` 1033 Timestamp *PeerTime `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"` 1034 IsDeclaration bool `protobuf:"varint,3,opt,name=isDeclaration" json:"isDeclaration,omitempty"` 1035 } 1036 1037 func (m *LeadershipMessage) Reset() { *m = LeadershipMessage{} } 1038 func (m *LeadershipMessage) String() string { return proto.CompactTextString(m) } 1039 func (*LeadershipMessage) ProtoMessage() {} 1040 func (*LeadershipMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } 1041 1042 func (m *LeadershipMessage) GetTimestamp() *PeerTime { 1043 if m != nil { 1044 return m.Timestamp 1045 } 1046 return nil 1047 } 1048 1049 // PeerTime defines the logical time of a peer's life 1050 type PeerTime struct { 1051 IncNumber uint64 `protobuf:"varint,1,opt,name=inc_number,json=incNumber" json:"inc_number,omitempty"` 1052 SeqNum uint64 `protobuf:"varint,2,opt,name=seqNum" json:"seqNum,omitempty"` 1053 } 1054 1055 func (m *PeerTime) Reset() { *m = PeerTime{} } 1056 func (m *PeerTime) String() string { return proto.CompactTextString(m) } 1057 func (*PeerTime) ProtoMessage() {} 1058 func (*PeerTime) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } 1059 1060 // MembershipRequest is used to ask membership information 1061 // from a remote peer 1062 type MembershipRequest struct { 1063 SelfInformation *Envelope `protobuf:"bytes,1,opt,name=selfInformation" json:"selfInformation,omitempty"` 1064 Known [][]byte `protobuf:"bytes,2,rep,name=known,proto3" json:"known,omitempty"` 1065 } 1066 1067 func (m *MembershipRequest) Reset() { *m = MembershipRequest{} } 1068 func (m *MembershipRequest) String() string { return proto.CompactTextString(m) } 1069 func (*MembershipRequest) ProtoMessage() {} 1070 func (*MembershipRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } 1071 1072 func (m *MembershipRequest) GetSelfInformation() *Envelope { 1073 if m != nil { 1074 return m.SelfInformation 1075 } 1076 return nil 1077 } 1078 1079 // MembershipResponse is used for replying to MembershipRequests 1080 type MembershipResponse struct { 1081 Alive []*Envelope `protobuf:"bytes,1,rep,name=alive" json:"alive,omitempty"` 1082 Dead []*Envelope `protobuf:"bytes,2,rep,name=dead" json:"dead,omitempty"` 1083 } 1084 1085 func (m *MembershipResponse) Reset() { *m = MembershipResponse{} } 1086 func (m *MembershipResponse) String() string { return proto.CompactTextString(m) } 1087 func (*MembershipResponse) ProtoMessage() {} 1088 func (*MembershipResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } 1089 1090 func (m *MembershipResponse) GetAlive() []*Envelope { 1091 if m != nil { 1092 return m.Alive 1093 } 1094 return nil 1095 } 1096 1097 func (m *MembershipResponse) GetDead() []*Envelope { 1098 if m != nil { 1099 return m.Dead 1100 } 1101 return nil 1102 } 1103 1104 // Member holds membership-related information 1105 // about a peer 1106 type Member struct { 1107 Endpoint string `protobuf:"bytes,1,opt,name=endpoint" json:"endpoint,omitempty"` 1108 Metadata []byte `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` 1109 PkiID []byte `protobuf:"bytes,3,opt,name=pkiID,proto3" json:"pkiID,omitempty"` 1110 } 1111 1112 func (m *Member) Reset() { *m = Member{} } 1113 func (m *Member) String() string { return proto.CompactTextString(m) } 1114 func (*Member) ProtoMessage() {} 1115 func (*Member) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } 1116 1117 // Empty is used for pinging and in tests 1118 type Empty struct { 1119 } 1120 1121 func (m *Empty) Reset() { *m = Empty{} } 1122 func (m *Empty) String() string { return proto.CompactTextString(m) } 1123 func (*Empty) ProtoMessage() {} 1124 func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } 1125 1126 // RemoteStateRequest is used to ask a set of blocks 1127 // from a remote peer 1128 type RemoteStateRequest struct { 1129 SeqNums []uint64 `protobuf:"varint,1,rep,packed,name=seqNums" json:"seqNums,omitempty"` 1130 } 1131 1132 func (m *RemoteStateRequest) Reset() { *m = RemoteStateRequest{} } 1133 func (m *RemoteStateRequest) String() string { return proto.CompactTextString(m) } 1134 func (*RemoteStateRequest) ProtoMessage() {} 1135 func (*RemoteStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } 1136 1137 // RemoteStateResponse is used to send a set of blocks 1138 // to a remote peer 1139 type RemoteStateResponse struct { 1140 Payloads []*Payload `protobuf:"bytes,1,rep,name=payloads" json:"payloads,omitempty"` 1141 } 1142 1143 func (m *RemoteStateResponse) Reset() { *m = RemoteStateResponse{} } 1144 func (m *RemoteStateResponse) String() string { return proto.CompactTextString(m) } 1145 func (*RemoteStateResponse) ProtoMessage() {} 1146 func (*RemoteStateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } 1147 1148 func (m *RemoteStateResponse) GetPayloads() []*Payload { 1149 if m != nil { 1150 return m.Payloads 1151 } 1152 return nil 1153 } 1154 1155 func init() { 1156 proto.RegisterType((*Envelope)(nil), "gossip.Envelope") 1157 proto.RegisterType((*SecretEnvelope)(nil), "gossip.SecretEnvelope") 1158 proto.RegisterType((*Secret)(nil), "gossip.Secret") 1159 proto.RegisterType((*GossipMessage)(nil), "gossip.GossipMessage") 1160 proto.RegisterType((*StateInfo)(nil), "gossip.StateInfo") 1161 proto.RegisterType((*StateInfoSnapshot)(nil), "gossip.StateInfoSnapshot") 1162 proto.RegisterType((*StateInfoPullRequest)(nil), "gossip.StateInfoPullRequest") 1163 proto.RegisterType((*ConnEstablish)(nil), "gossip.ConnEstablish") 1164 proto.RegisterType((*PeerIdentity)(nil), "gossip.PeerIdentity") 1165 proto.RegisterType((*DataRequest)(nil), "gossip.DataRequest") 1166 proto.RegisterType((*GossipHello)(nil), "gossip.GossipHello") 1167 proto.RegisterType((*DataUpdate)(nil), "gossip.DataUpdate") 1168 proto.RegisterType((*DataDigest)(nil), "gossip.DataDigest") 1169 proto.RegisterType((*DataMessage)(nil), "gossip.DataMessage") 1170 proto.RegisterType((*Payload)(nil), "gossip.Payload") 1171 proto.RegisterType((*AliveMessage)(nil), "gossip.AliveMessage") 1172 proto.RegisterType((*LeadershipMessage)(nil), "gossip.LeadershipMessage") 1173 proto.RegisterType((*PeerTime)(nil), "gossip.PeerTime") 1174 proto.RegisterType((*MembershipRequest)(nil), "gossip.MembershipRequest") 1175 proto.RegisterType((*MembershipResponse)(nil), "gossip.MembershipResponse") 1176 proto.RegisterType((*Member)(nil), "gossip.Member") 1177 proto.RegisterType((*Empty)(nil), "gossip.Empty") 1178 proto.RegisterType((*RemoteStateRequest)(nil), "gossip.RemoteStateRequest") 1179 proto.RegisterType((*RemoteStateResponse)(nil), "gossip.RemoteStateResponse") 1180 proto.RegisterEnum("gossip.PullMsgType", PullMsgType_name, PullMsgType_value) 1181 proto.RegisterEnum("gossip.GossipMessage_Tag", GossipMessage_Tag_name, GossipMessage_Tag_value) 1182 } 1183 1184 // Reference imports to suppress errors if they are not otherwise used. 1185 var _ context.Context 1186 var _ grpc.ClientConn 1187 1188 // This is a compile-time assertion to ensure that this generated file 1189 // is compatible with the grpc package it is being compiled against. 1190 const _ = grpc.SupportPackageIsVersion3 1191 1192 // Client API for Gossip service 1193 1194 type GossipClient interface { 1195 // GossipStream is the gRPC stream used for sending and receiving messages 1196 GossipStream(ctx context.Context, opts ...grpc.CallOption) (Gossip_GossipStreamClient, error) 1197 // Ping is used to probe a remote peer's aliveness 1198 Ping(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) 1199 } 1200 1201 type gossipClient struct { 1202 cc *grpc.ClientConn 1203 } 1204 1205 func NewGossipClient(cc *grpc.ClientConn) GossipClient { 1206 return &gossipClient{cc} 1207 } 1208 1209 func (c *gossipClient) GossipStream(ctx context.Context, opts ...grpc.CallOption) (Gossip_GossipStreamClient, error) { 1210 stream, err := grpc.NewClientStream(ctx, &_Gossip_serviceDesc.Streams[0], c.cc, "/gossip.Gossip/GossipStream", opts...) 1211 if err != nil { 1212 return nil, err 1213 } 1214 x := &gossipGossipStreamClient{stream} 1215 return x, nil 1216 } 1217 1218 type Gossip_GossipStreamClient interface { 1219 Send(*Envelope) error 1220 Recv() (*Envelope, error) 1221 grpc.ClientStream 1222 } 1223 1224 type gossipGossipStreamClient struct { 1225 grpc.ClientStream 1226 } 1227 1228 func (x *gossipGossipStreamClient) Send(m *Envelope) error { 1229 return x.ClientStream.SendMsg(m) 1230 } 1231 1232 func (x *gossipGossipStreamClient) Recv() (*Envelope, error) { 1233 m := new(Envelope) 1234 if err := x.ClientStream.RecvMsg(m); err != nil { 1235 return nil, err 1236 } 1237 return m, nil 1238 } 1239 1240 func (c *gossipClient) Ping(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) { 1241 out := new(Empty) 1242 err := grpc.Invoke(ctx, "/gossip.Gossip/Ping", in, out, c.cc, opts...) 1243 if err != nil { 1244 return nil, err 1245 } 1246 return out, nil 1247 } 1248 1249 // Server API for Gossip service 1250 1251 type GossipServer interface { 1252 // GossipStream is the gRPC stream used for sending and receiving messages 1253 GossipStream(Gossip_GossipStreamServer) error 1254 // Ping is used to probe a remote peer's aliveness 1255 Ping(context.Context, *Empty) (*Empty, error) 1256 } 1257 1258 func RegisterGossipServer(s *grpc.Server, srv GossipServer) { 1259 s.RegisterService(&_Gossip_serviceDesc, srv) 1260 } 1261 1262 func _Gossip_GossipStream_Handler(srv interface{}, stream grpc.ServerStream) error { 1263 return srv.(GossipServer).GossipStream(&gossipGossipStreamServer{stream}) 1264 } 1265 1266 type Gossip_GossipStreamServer interface { 1267 Send(*Envelope) error 1268 Recv() (*Envelope, error) 1269 grpc.ServerStream 1270 } 1271 1272 type gossipGossipStreamServer struct { 1273 grpc.ServerStream 1274 } 1275 1276 func (x *gossipGossipStreamServer) Send(m *Envelope) error { 1277 return x.ServerStream.SendMsg(m) 1278 } 1279 1280 func (x *gossipGossipStreamServer) Recv() (*Envelope, error) { 1281 m := new(Envelope) 1282 if err := x.ServerStream.RecvMsg(m); err != nil { 1283 return nil, err 1284 } 1285 return m, nil 1286 } 1287 1288 func _Gossip_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1289 in := new(Empty) 1290 if err := dec(in); err != nil { 1291 return nil, err 1292 } 1293 if interceptor == nil { 1294 return srv.(GossipServer).Ping(ctx, in) 1295 } 1296 info := &grpc.UnaryServerInfo{ 1297 Server: srv, 1298 FullMethod: "/gossip.Gossip/Ping", 1299 } 1300 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1301 return srv.(GossipServer).Ping(ctx, req.(*Empty)) 1302 } 1303 return interceptor(ctx, in, info, handler) 1304 } 1305 1306 var _Gossip_serviceDesc = grpc.ServiceDesc{ 1307 ServiceName: "gossip.Gossip", 1308 HandlerType: (*GossipServer)(nil), 1309 Methods: []grpc.MethodDesc{ 1310 { 1311 MethodName: "Ping", 1312 Handler: _Gossip_Ping_Handler, 1313 }, 1314 }, 1315 Streams: []grpc.StreamDesc{ 1316 { 1317 StreamName: "GossipStream", 1318 Handler: _Gossip_GossipStream_Handler, 1319 ServerStreams: true, 1320 ClientStreams: true, 1321 }, 1322 }, 1323 Metadata: fileDescriptor0, 1324 } 1325 1326 func init() { proto.RegisterFile("gossip/message.proto", fileDescriptor0) } 1327 1328 var fileDescriptor0 = []byte{ 1329 // 1256 bytes of a gzipped FileDescriptorProto 1330 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6f, 0xdb, 0x36, 1331 0x10, 0x97, 0xe3, 0x4f, 0x9d, 0xed, 0xc4, 0x61, 0xd3, 0x42, 0xcb, 0x3a, 0x20, 0x10, 0xba, 0x22, 1332 0x5b, 0x5a, 0x67, 0x4b, 0xfb, 0x50, 0xf4, 0x61, 0x9b, 0x53, 0x7b, 0x75, 0x86, 0xda, 0x0d, 0x98, 1333 0x74, 0x40, 0xf7, 0x12, 0x30, 0x36, 0x23, 0x6b, 0x91, 0x28, 0x55, 0x64, 0x5a, 0xe4, 0x69, 0xc0, 1334 0x9e, 0x86, 0xfd, 0xd5, 0x03, 0x49, 0x51, 0x96, 0x22, 0xa7, 0x40, 0x0a, 0xec, 0x4d, 0x77, 0xfc, 1335 0xdd, 0x07, 0x8f, 0x77, 0x3f, 0x52, 0xb0, 0xe5, 0x45, 0x9c, 0xfb, 0xf1, 0x7e, 0x48, 0x39, 0x27, 1336 0x1e, 0xed, 0xc7, 0x49, 0x24, 0x22, 0xd4, 0xd0, 0x5a, 0xf7, 0xef, 0x0a, 0xb4, 0x46, 0xec, 0x23, 1337 0x0d, 0xa2, 0x98, 0x22, 0x07, 0x9a, 0x31, 0xb9, 0x0e, 0x22, 0x32, 0x77, 0x2a, 0x3b, 0x95, 0xdd, 1338 0x0e, 0x36, 0x22, 0x7a, 0x08, 0x36, 0xf7, 0x3d, 0x46, 0xc4, 0x55, 0x42, 0x9d, 0x35, 0xb5, 0xb6, 1339 0x54, 0xa0, 0x9f, 0x60, 0x9d, 0xd3, 0x59, 0x42, 0x85, 0xf1, 0xe4, 0x54, 0x77, 0x2a, 0xbb, 0xed, 1340 0x83, 0x07, 0x7d, 0x1d, 0xa5, 0x7f, 0x52, 0x58, 0xc5, 0x37, 0xd0, 0xee, 0x18, 0xd6, 0x8b, 0x88, 1341 0x2f, 0xcd, 0xc4, 0x1d, 0x40, 0x43, 0x7b, 0x42, 0x4f, 0xa0, 0xe7, 0x33, 0x41, 0x13, 0x46, 0x82, 1342 0x11, 0x9b, 0xc7, 0x91, 0xcf, 0x84, 0x72, 0x65, 0x8f, 0x2d, 0x5c, 0x5a, 0x39, 0xb4, 0xa1, 0x39, 1343 0x8b, 0x98, 0xa0, 0x4c, 0xb8, 0xff, 0xd8, 0xd0, 0x7d, 0xad, 0xd2, 0x9e, 0xe8, 0x8a, 0xa1, 0x2d, 1344 0xa8, 0xb3, 0x88, 0xcd, 0xa8, 0xb2, 0xaf, 0x61, 0x2d, 0xc8, 0x14, 0x67, 0x0b, 0xc2, 0x18, 0x0d, 1345 0xd2, 0x34, 0x8c, 0x88, 0xf6, 0xa0, 0x2a, 0x88, 0xa7, 0x6a, 0xb0, 0x7e, 0xf0, 0x95, 0xa9, 0x41, 1346 0xc1, 0x67, 0xff, 0x94, 0x78, 0x58, 0xa2, 0xd0, 0x01, 0xb4, 0x48, 0xe0, 0x7f, 0xa4, 0x13, 0xee, 1347 0x39, 0x75, 0x55, 0xb5, 0x2d, 0x63, 0x31, 0x50, 0x7a, 0x6d, 0x30, 0xb6, 0x70, 0x86, 0x43, 0xcf, 1348 0xa0, 0x11, 0xd2, 0x10, 0xd3, 0x0f, 0x4e, 0x43, 0x59, 0x64, 0x31, 0x26, 0x34, 0x3c, 0xa7, 0x09, 1349 0x5f, 0xf8, 0x31, 0xa6, 0x1f, 0xae, 0x28, 0x17, 0x63, 0x0b, 0xa7, 0x50, 0xf4, 0x3c, 0x35, 0xe2, 1350 0x4e, 0x53, 0x19, 0x6d, 0xaf, 0x32, 0xe2, 0x71, 0xc4, 0x38, 0xcd, 0xac, 0x38, 0xda, 0x87, 0xe6, 1351 0x9c, 0x08, 0x22, 0xb3, 0x6b, 0x29, 0xb3, 0x7b, 0xc6, 0x6c, 0x28, 0xd5, 0x59, 0x72, 0x06, 0x85, 1352 0xf6, 0xa0, 0xbe, 0xa0, 0x41, 0x10, 0x39, 0x76, 0x11, 0xae, 0xb7, 0x3f, 0x96, 0x4b, 0x63, 0x0b, 1353 0x6b, 0x0c, 0xea, 0x6b, 0xef, 0x43, 0xdf, 0x73, 0x40, 0xc1, 0x51, 0xde, 0xfb, 0xd0, 0xf7, 0xf4, 1354 0x16, 0x0c, 0xc8, 0x64, 0x23, 0x77, 0xde, 0x2e, 0x67, 0xb3, 0xdc, 0xb3, 0x41, 0xa1, 0xe7, 0x00, 1355 0xf2, 0xf3, 0x5d, 0x3c, 0x27, 0x82, 0x3a, 0x9d, 0x72, 0x0c, 0xbd, 0x32, 0xb6, 0x70, 0x0e, 0x87, 1356 0xbe, 0x85, 0x3a, 0x0d, 0x63, 0x71, 0xed, 0x74, 0x95, 0x41, 0xd7, 0x18, 0x8c, 0xa4, 0x52, 0x66, 1357 0xaf, 0x56, 0xd1, 0x1e, 0xd4, 0x66, 0x11, 0x63, 0xce, 0xba, 0x42, 0xdd, 0x37, 0xa8, 0x57, 0x11, 1358 0x63, 0x23, 0x2e, 0xc8, 0x79, 0xe0, 0xf3, 0xc5, 0xd8, 0xc2, 0x0a, 0x84, 0x7e, 0x04, 0x9b, 0x0b, 1359 0x22, 0xe8, 0x11, 0xbb, 0x88, 0x9c, 0x0d, 0x65, 0xb1, 0x99, 0x8d, 0x87, 0x59, 0x18, 0x5b, 0x78, 1360 0x89, 0x42, 0x03, 0xe8, 0x2a, 0xe1, 0x84, 0x91, 0x98, 0x2f, 0x22, 0xe1, 0xf4, 0x8a, 0xa7, 0x9d, 1361 0x99, 0x19, 0xc0, 0xd8, 0xc2, 0x45, 0x0b, 0xf4, 0x1b, 0xf4, 0x32, 0x7f, 0xc7, 0x57, 0x41, 0x20, 1362 0x2b, 0xb7, 0xa9, 0xbc, 0x3c, 0x2c, 0x79, 0x49, 0xd7, 0xd3, 0x12, 0x96, 0xec, 0xd0, 0x2f, 0xd0, 1363 0x51, 0xba, 0x14, 0xe3, 0xa0, 0x62, 0x1b, 0x61, 0x1a, 0x46, 0x82, 0x9e, 0xe4, 0x10, 0x63, 0x0b, 1364 0x17, 0x2c, 0xd0, 0xab, 0x74, 0x43, 0xa6, 0xcf, 0x9c, 0x7b, 0xca, 0xc5, 0xd7, 0x2b, 0x5d, 0x64, 1365 0xad, 0x58, 0xb4, 0x91, 0x55, 0x09, 0x28, 0x99, 0xeb, 0x8e, 0x95, 0x7d, 0xb9, 0x55, 0xac, 0xca, 1366 0x9b, 0xe5, 0x62, 0xd6, 0x9d, 0x45, 0x0b, 0xf4, 0x12, 0x3a, 0x31, 0xa5, 0xc9, 0xd1, 0x9c, 0x32, 1367 0xe1, 0x8b, 0x6b, 0xe7, 0x7e, 0x71, 0xee, 0x8e, 0x73, 0x6b, 0x72, 0x0f, 0x79, 0xac, 0x7b, 0x06, 1368 0xd5, 0x53, 0xe2, 0xa1, 0x2e, 0xd8, 0xef, 0xa6, 0xc3, 0xd1, 0xaf, 0x47, 0xd3, 0xd1, 0xb0, 0x67, 1369 0x21, 0x1b, 0xea, 0xa3, 0xc9, 0xf1, 0xe9, 0xfb, 0x5e, 0x05, 0x75, 0xa0, 0xf5, 0x16, 0xbf, 0x3e, 1370 0x7b, 0x3b, 0x7d, 0xf3, 0xbe, 0xb7, 0x26, 0x71, 0xaf, 0xc6, 0x83, 0xa9, 0x16, 0xab, 0xa8, 0x07, 1371 0x1d, 0x25, 0x0e, 0xa6, 0xc3, 0xb3, 0xb7, 0xf8, 0x75, 0xaf, 0x86, 0x36, 0xa0, 0xad, 0x01, 0x58, 1372 0x29, 0xea, 0x79, 0x2a, 0x0a, 0xc1, 0xce, 0x4e, 0x07, 0x6d, 0x43, 0x2b, 0xa4, 0x82, 0xc8, 0x36, 1373 0x4d, 0x39, 0x31, 0x93, 0x51, 0x1f, 0x6c, 0xe1, 0x87, 0x94, 0x0b, 0x12, 0xc6, 0x8a, 0x8d, 0xda, 1374 0x07, 0xbd, 0xfc, 0x6e, 0x4e, 0xfd, 0x90, 0xe2, 0x25, 0x44, 0x32, 0x5a, 0x7c, 0xe9, 0x1f, 0x0d, 1375 0x15, 0x47, 0x75, 0xb0, 0x16, 0xdc, 0x01, 0x6c, 0x96, 0x5a, 0x0a, 0x3d, 0x81, 0x16, 0x0d, 0x68, 1376 0x48, 0x99, 0xe0, 0x4e, 0x65, 0xa7, 0x9a, 0xf7, 0x9c, 0xf1, 0x79, 0x86, 0x70, 0x1f, 0xc0, 0xd6, 1377 0xaa, 0x7e, 0x72, 0x27, 0xd0, 0x2d, 0x8c, 0xc5, 0x32, 0x83, 0x4a, 0x2e, 0x03, 0x84, 0xa0, 0x36, 1378 0xa3, 0x89, 0x48, 0x09, 0x55, 0x7d, 0x4b, 0xdd, 0x82, 0xf0, 0x45, 0x9a, 0xaa, 0xfa, 0x76, 0x4f, 1379 0xa1, 0x93, 0x3f, 0xa4, 0x3b, 0x78, 0xcb, 0x57, 0xb1, 0x5a, 0xac, 0xa2, 0x1b, 0x40, 0x3b, 0x47, 1380 0x23, 0xb7, 0xd3, 0xfe, 0x5c, 0xf1, 0x12, 0x77, 0xd6, 0x76, 0xaa, 0xbb, 0x36, 0x36, 0x22, 0x7a, 1381 0x0a, 0xcd, 0x90, 0x7b, 0xa7, 0xd7, 0xe9, 0xf5, 0xb7, 0xbe, 0x24, 0x27, 0x59, 0x89, 0x89, 0x5e, 1382 0xc2, 0x06, 0xe3, 0x32, 0x68, 0xe7, 0x38, 0xf1, 0x96, 0x68, 0xf9, 0x74, 0xd7, 0x6e, 0x1c, 0xfa, 1383 0x1d, 0xe3, 0x7d, 0x02, 0x58, 0x12, 0xde, 0x2d, 0xe1, 0x1e, 0x41, 0x2d, 0x0d, 0xb5, 0xfa, 0xa0, 1384 0x6b, 0x5f, 0x12, 0xf8, 0x52, 0x07, 0xd6, 0x6c, 0xfe, 0x7f, 0x57, 0xf5, 0x85, 0x3e, 0x43, 0x73, 1385 0x75, 0x7f, 0x57, 0x7c, 0x47, 0xb4, 0x0f, 0x36, 0x32, 0x6b, 0xad, 0xce, 0x1e, 0x16, 0xee, 0x11, 1386 0x34, 0x53, 0x1d, 0x7a, 0x00, 0x0d, 0x4e, 0x3f, 0x4c, 0xaf, 0xc2, 0x34, 0xc9, 0x54, 0xca, 0x5a, 1387 0x51, 0x9e, 0x84, 0xad, 0x5b, 0x51, 0xea, 0x72, 0xcd, 0xa4, 0xbe, 0xdd, 0x7f, 0x2b, 0xd0, 0xc9, 1388 0x5f, 0xde, 0xa8, 0x0f, 0x10, 0x66, 0xb7, 0x6c, 0x9a, 0xc9, 0x7a, 0xf1, 0xfe, 0xc5, 0x39, 0xc4, 1389 0x9d, 0xe7, 0x79, 0x1b, 0x5a, 0xbe, 0x21, 0xb3, 0x9a, 0x6e, 0x13, 0x23, 0xbb, 0x7f, 0xc1, 0x66, 1390 0x89, 0x12, 0x6f, 0x19, 0x98, 0xbb, 0x86, 0x7d, 0x04, 0x5d, 0x9f, 0x0f, 0xe9, 0x2c, 0x20, 0x09, 1391 0x11, 0x7e, 0xc4, 0x54, 0x11, 0x5a, 0xb8, 0xa8, 0x74, 0x07, 0xd0, 0x32, 0xc6, 0xe8, 0x1b, 0x00, 1392 0x9f, 0xcd, 0xce, 0xd8, 0x95, 0xdc, 0x6a, 0x5a, 0x5d, 0xdb, 0x67, 0xb3, 0xa9, 0x52, 0xe4, 0x0a, 1393 0xbf, 0x96, 0x2f, 0xbc, 0x4b, 0x61, 0xb3, 0xf4, 0xb4, 0x41, 0x2f, 0x61, 0x83, 0xd3, 0xe0, 0x42, 1394 0x52, 0x4d, 0x12, 0xea, 0xf8, 0x95, 0x62, 0xce, 0x59, 0xdf, 0xde, 0x04, 0xca, 0xfd, 0x5f, 0xb2, 1395 0xe8, 0x13, 0x53, 0xdd, 0xd6, 0xc1, 0x5a, 0x70, 0xcf, 0x01, 0x95, 0x1f, 0x43, 0xe8, 0x31, 0xd4, 1396 0xd5, 0xcb, 0xeb, 0x56, 0xfa, 0xd3, 0xcb, 0x6a, 0x78, 0x28, 0x99, 0x7f, 0x66, 0x78, 0x28, 0x99, 1397 0xbb, 0xbf, 0x43, 0x43, 0xc7, 0x90, 0x87, 0x46, 0x0b, 0x2f, 0x53, 0x9c, 0xc9, 0x9f, 0x9d, 0xfb, 1398 0xd5, 0xe4, 0xdd, 0x84, 0xba, 0x7a, 0x9e, 0xb8, 0x7d, 0x40, 0xe5, 0xab, 0x58, 0x0e, 0x98, 0xae, 1399 0xa5, 0x66, 0xf1, 0x1a, 0x36, 0xa2, 0x7b, 0x08, 0xf7, 0x56, 0xdc, 0xbb, 0x68, 0x0f, 0x5a, 0xe9, 1400 0x64, 0x18, 0xde, 0x2f, 0x8d, 0x4e, 0x06, 0xf8, 0xfe, 0x67, 0x68, 0xe7, 0xa6, 0x51, 0x5d, 0x8e, 1401 0x6c, 0x4e, 0x2f, 0x7c, 0x46, 0xe7, 0x3d, 0x4b, 0x5e, 0x7a, 0x87, 0x41, 0x34, 0xbb, 0x4c, 0x9b, 1402 0xaf, 0x57, 0x91, 0x97, 0x9e, 0xe1, 0xee, 0x09, 0xf7, 0x7a, 0x6b, 0x07, 0x7f, 0x42, 0x43, 0x93, 1403 0x21, 0x7a, 0x01, 0x1d, 0xfd, 0x75, 0x22, 0x12, 0x4a, 0x42, 0x54, 0xaa, 0xe3, 0x76, 0x49, 0xe3, 1404 0x5a, 0xbb, 0x95, 0x1f, 0x2a, 0xe8, 0x31, 0xd4, 0x8e, 0x7d, 0xe6, 0xa1, 0xe2, 0x73, 0x6d, 0xbb, 1405 0x28, 0xba, 0xd6, 0xe1, 0xd3, 0x3f, 0xf6, 0x3c, 0x5f, 0x2c, 0xae, 0xce, 0xfb, 0xb3, 0x28, 0xdc, 1406 0x5f, 0x5c, 0xc7, 0x34, 0x09, 0xe8, 0xdc, 0xa3, 0xc9, 0xfe, 0x05, 0x39, 0x4f, 0xfc, 0xd9, 0xbe, 1407 0xfa, 0x43, 0xe2, 0xfb, 0xda, 0xec, 0xbc, 0xa1, 0xc4, 0x67, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 1408 0x9b, 0xa7, 0x27, 0x70, 0x48, 0x0d, 0x00, 0x00, 1409 }