github.com/cheng762/platon-go@v1.8.17-0.20190529111256-7deff2d7be26/accounts/usbwallet/internal/trezor/messages.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // source: messages.proto 3 4 package trezor 5 6 import proto "github.com/golang/protobuf/proto" 7 import fmt "fmt" 8 import math "math" 9 10 // Reference imports to suppress errors if they are not otherwise used. 11 var _ = proto.Marshal 12 var _ = fmt.Errorf 13 var _ = math.Inf 14 15 // * 16 // Mapping between Trezor wire identifier (uint) and a protobuf message 17 type MessageType int32 18 19 const ( 20 MessageType_MessageType_Initialize MessageType = 0 21 MessageType_MessageType_Ping MessageType = 1 22 MessageType_MessageType_Success MessageType = 2 23 MessageType_MessageType_Failure MessageType = 3 24 MessageType_MessageType_ChangePin MessageType = 4 25 MessageType_MessageType_WipeDevice MessageType = 5 26 MessageType_MessageType_FirmwareErase MessageType = 6 27 MessageType_MessageType_FirmwareUpload MessageType = 7 28 MessageType_MessageType_FirmwareRequest MessageType = 8 29 MessageType_MessageType_GetEntropy MessageType = 9 30 MessageType_MessageType_Entropy MessageType = 10 31 MessageType_MessageType_GetPublicKey MessageType = 11 32 MessageType_MessageType_PublicKey MessageType = 12 33 MessageType_MessageType_LoadDevice MessageType = 13 34 MessageType_MessageType_ResetDevice MessageType = 14 35 MessageType_MessageType_SignTx MessageType = 15 36 MessageType_MessageType_SimpleSignTx MessageType = 16 37 MessageType_MessageType_Features MessageType = 17 38 MessageType_MessageType_PinMatrixRequest MessageType = 18 39 MessageType_MessageType_PinMatrixAck MessageType = 19 40 MessageType_MessageType_Cancel MessageType = 20 41 MessageType_MessageType_TxRequest MessageType = 21 42 MessageType_MessageType_TxAck MessageType = 22 43 MessageType_MessageType_CipherKeyValue MessageType = 23 44 MessageType_MessageType_ClearSession MessageType = 24 45 MessageType_MessageType_ApplySettings MessageType = 25 46 MessageType_MessageType_ButtonRequest MessageType = 26 47 MessageType_MessageType_ButtonAck MessageType = 27 48 MessageType_MessageType_ApplyFlags MessageType = 28 49 MessageType_MessageType_GetAddress MessageType = 29 50 MessageType_MessageType_Address MessageType = 30 51 MessageType_MessageType_SelfTest MessageType = 32 52 MessageType_MessageType_BackupDevice MessageType = 34 53 MessageType_MessageType_EntropyRequest MessageType = 35 54 MessageType_MessageType_EntropyAck MessageType = 36 55 MessageType_MessageType_SignMessage MessageType = 38 56 MessageType_MessageType_VerifyMessage MessageType = 39 57 MessageType_MessageType_MessageSignature MessageType = 40 58 MessageType_MessageType_PassphraseRequest MessageType = 41 59 MessageType_MessageType_PassphraseAck MessageType = 42 60 MessageType_MessageType_EstimateTxSize MessageType = 43 61 MessageType_MessageType_TxSize MessageType = 44 62 MessageType_MessageType_RecoveryDevice MessageType = 45 63 MessageType_MessageType_WordRequest MessageType = 46 64 MessageType_MessageType_WordAck MessageType = 47 65 MessageType_MessageType_CipheredKeyValue MessageType = 48 66 MessageType_MessageType_EncryptMessage MessageType = 49 67 MessageType_MessageType_EncryptedMessage MessageType = 50 68 MessageType_MessageType_DecryptMessage MessageType = 51 69 MessageType_MessageType_DecryptedMessage MessageType = 52 70 MessageType_MessageType_SignIdentity MessageType = 53 71 MessageType_MessageType_SignedIdentity MessageType = 54 72 MessageType_MessageType_GetFeatures MessageType = 55 73 MessageType_MessageType_EthereumGetAddress MessageType = 56 74 MessageType_MessageType_EthereumAddress MessageType = 57 75 MessageType_MessageType_EthereumSignTx MessageType = 58 76 MessageType_MessageType_EthereumTxRequest MessageType = 59 77 MessageType_MessageType_EthereumTxAck MessageType = 60 78 MessageType_MessageType_GetECDHSessionKey MessageType = 61 79 MessageType_MessageType_ECDHSessionKey MessageType = 62 80 MessageType_MessageType_SetU2FCounter MessageType = 63 81 MessageType_MessageType_EthereumSignMessage MessageType = 64 82 MessageType_MessageType_EthereumVerifyMessage MessageType = 65 83 MessageType_MessageType_EthereumMessageSignature MessageType = 66 84 MessageType_MessageType_DebugLinkDecision MessageType = 100 85 MessageType_MessageType_DebugLinkGetState MessageType = 101 86 MessageType_MessageType_DebugLinkState MessageType = 102 87 MessageType_MessageType_DebugLinkStop MessageType = 103 88 MessageType_MessageType_DebugLinkLog MessageType = 104 89 MessageType_MessageType_DebugLinkMemoryRead MessageType = 110 90 MessageType_MessageType_DebugLinkMemory MessageType = 111 91 MessageType_MessageType_DebugLinkMemoryWrite MessageType = 112 92 MessageType_MessageType_DebugLinkFlashErase MessageType = 113 93 ) 94 95 var MessageType_name = map[int32]string{ 96 0: "MessageType_Initialize", 97 1: "MessageType_Ping", 98 2: "MessageType_Success", 99 3: "MessageType_Failure", 100 4: "MessageType_ChangePin", 101 5: "MessageType_WipeDevice", 102 6: "MessageType_FirmwareErase", 103 7: "MessageType_FirmwareUpload", 104 8: "MessageType_FirmwareRequest", 105 9: "MessageType_GetEntropy", 106 10: "MessageType_Entropy", 107 11: "MessageType_GetPublicKey", 108 12: "MessageType_PublicKey", 109 13: "MessageType_LoadDevice", 110 14: "MessageType_ResetDevice", 111 15: "MessageType_SignTx", 112 16: "MessageType_SimpleSignTx", 113 17: "MessageType_Features", 114 18: "MessageType_PinMatrixRequest", 115 19: "MessageType_PinMatrixAck", 116 20: "MessageType_Cancel", 117 21: "MessageType_TxRequest", 118 22: "MessageType_TxAck", 119 23: "MessageType_CipherKeyValue", 120 24: "MessageType_ClearSession", 121 25: "MessageType_ApplySettings", 122 26: "MessageType_ButtonRequest", 123 27: "MessageType_ButtonAck", 124 28: "MessageType_ApplyFlags", 125 29: "MessageType_GetAddress", 126 30: "MessageType_Address", 127 32: "MessageType_SelfTest", 128 34: "MessageType_BackupDevice", 129 35: "MessageType_EntropyRequest", 130 36: "MessageType_EntropyAck", 131 38: "MessageType_SignMessage", 132 39: "MessageType_VerifyMessage", 133 40: "MessageType_MessageSignature", 134 41: "MessageType_PassphraseRequest", 135 42: "MessageType_PassphraseAck", 136 43: "MessageType_EstimateTxSize", 137 44: "MessageType_TxSize", 138 45: "MessageType_RecoveryDevice", 139 46: "MessageType_WordRequest", 140 47: "MessageType_WordAck", 141 48: "MessageType_CipheredKeyValue", 142 49: "MessageType_EncryptMessage", 143 50: "MessageType_EncryptedMessage", 144 51: "MessageType_DecryptMessage", 145 52: "MessageType_DecryptedMessage", 146 53: "MessageType_SignIdentity", 147 54: "MessageType_SignedIdentity", 148 55: "MessageType_GetFeatures", 149 56: "MessageType_EthereumGetAddress", 150 57: "MessageType_EthereumAddress", 151 58: "MessageType_EthereumSignTx", 152 59: "MessageType_EthereumTxRequest", 153 60: "MessageType_EthereumTxAck", 154 61: "MessageType_GetECDHSessionKey", 155 62: "MessageType_ECDHSessionKey", 156 63: "MessageType_SetU2FCounter", 157 64: "MessageType_EthereumSignMessage", 158 65: "MessageType_EthereumVerifyMessage", 159 66: "MessageType_EthereumMessageSignature", 160 100: "MessageType_DebugLinkDecision", 161 101: "MessageType_DebugLinkGetState", 162 102: "MessageType_DebugLinkState", 163 103: "MessageType_DebugLinkStop", 164 104: "MessageType_DebugLinkLog", 165 110: "MessageType_DebugLinkMemoryRead", 166 111: "MessageType_DebugLinkMemory", 167 112: "MessageType_DebugLinkMemoryWrite", 168 113: "MessageType_DebugLinkFlashErase", 169 } 170 var MessageType_value = map[string]int32{ 171 "MessageType_Initialize": 0, 172 "MessageType_Ping": 1, 173 "MessageType_Success": 2, 174 "MessageType_Failure": 3, 175 "MessageType_ChangePin": 4, 176 "MessageType_WipeDevice": 5, 177 "MessageType_FirmwareErase": 6, 178 "MessageType_FirmwareUpload": 7, 179 "MessageType_FirmwareRequest": 8, 180 "MessageType_GetEntropy": 9, 181 "MessageType_Entropy": 10, 182 "MessageType_GetPublicKey": 11, 183 "MessageType_PublicKey": 12, 184 "MessageType_LoadDevice": 13, 185 "MessageType_ResetDevice": 14, 186 "MessageType_SignTx": 15, 187 "MessageType_SimpleSignTx": 16, 188 "MessageType_Features": 17, 189 "MessageType_PinMatrixRequest": 18, 190 "MessageType_PinMatrixAck": 19, 191 "MessageType_Cancel": 20, 192 "MessageType_TxRequest": 21, 193 "MessageType_TxAck": 22, 194 "MessageType_CipherKeyValue": 23, 195 "MessageType_ClearSession": 24, 196 "MessageType_ApplySettings": 25, 197 "MessageType_ButtonRequest": 26, 198 "MessageType_ButtonAck": 27, 199 "MessageType_ApplyFlags": 28, 200 "MessageType_GetAddress": 29, 201 "MessageType_Address": 30, 202 "MessageType_SelfTest": 32, 203 "MessageType_BackupDevice": 34, 204 "MessageType_EntropyRequest": 35, 205 "MessageType_EntropyAck": 36, 206 "MessageType_SignMessage": 38, 207 "MessageType_VerifyMessage": 39, 208 "MessageType_MessageSignature": 40, 209 "MessageType_PassphraseRequest": 41, 210 "MessageType_PassphraseAck": 42, 211 "MessageType_EstimateTxSize": 43, 212 "MessageType_TxSize": 44, 213 "MessageType_RecoveryDevice": 45, 214 "MessageType_WordRequest": 46, 215 "MessageType_WordAck": 47, 216 "MessageType_CipheredKeyValue": 48, 217 "MessageType_EncryptMessage": 49, 218 "MessageType_EncryptedMessage": 50, 219 "MessageType_DecryptMessage": 51, 220 "MessageType_DecryptedMessage": 52, 221 "MessageType_SignIdentity": 53, 222 "MessageType_SignedIdentity": 54, 223 "MessageType_GetFeatures": 55, 224 "MessageType_EthereumGetAddress": 56, 225 "MessageType_EthereumAddress": 57, 226 "MessageType_EthereumSignTx": 58, 227 "MessageType_EthereumTxRequest": 59, 228 "MessageType_EthereumTxAck": 60, 229 "MessageType_GetECDHSessionKey": 61, 230 "MessageType_ECDHSessionKey": 62, 231 "MessageType_SetU2FCounter": 63, 232 "MessageType_EthereumSignMessage": 64, 233 "MessageType_EthereumVerifyMessage": 65, 234 "MessageType_EthereumMessageSignature": 66, 235 "MessageType_DebugLinkDecision": 100, 236 "MessageType_DebugLinkGetState": 101, 237 "MessageType_DebugLinkState": 102, 238 "MessageType_DebugLinkStop": 103, 239 "MessageType_DebugLinkLog": 104, 240 "MessageType_DebugLinkMemoryRead": 110, 241 "MessageType_DebugLinkMemory": 111, 242 "MessageType_DebugLinkMemoryWrite": 112, 243 "MessageType_DebugLinkFlashErase": 113, 244 } 245 246 func (x MessageType) Enum() *MessageType { 247 p := new(MessageType) 248 *p = x 249 return p 250 } 251 func (x MessageType) String() string { 252 return proto.EnumName(MessageType_name, int32(x)) 253 } 254 func (x *MessageType) UnmarshalJSON(data []byte) error { 255 value, err := proto.UnmarshalJSONEnum(MessageType_value, data, "MessageType") 256 if err != nil { 257 return err 258 } 259 *x = MessageType(value) 260 return nil 261 } 262 func (MessageType) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } 263 264 // * 265 // Request: Reset device to default state and ask for device details 266 // @next Features 267 type Initialize struct { 268 XXX_unrecognized []byte `json:"-"` 269 } 270 271 func (m *Initialize) Reset() { *m = Initialize{} } 272 func (m *Initialize) String() string { return proto.CompactTextString(m) } 273 func (*Initialize) ProtoMessage() {} 274 func (*Initialize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } 275 276 // * 277 // Request: Ask for device details (no device reset) 278 // @next Features 279 type GetFeatures struct { 280 XXX_unrecognized []byte `json:"-"` 281 } 282 283 func (m *GetFeatures) Reset() { *m = GetFeatures{} } 284 func (m *GetFeatures) String() string { return proto.CompactTextString(m) } 285 func (*GetFeatures) ProtoMessage() {} 286 func (*GetFeatures) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} } 287 288 // * 289 // Response: Reports various information about the device 290 // @prev Initialize 291 // @prev GetFeatures 292 type Features struct { 293 Vendor *string `protobuf:"bytes,1,opt,name=vendor" json:"vendor,omitempty"` 294 MajorVersion *uint32 `protobuf:"varint,2,opt,name=major_version,json=majorVersion" json:"major_version,omitempty"` 295 MinorVersion *uint32 `protobuf:"varint,3,opt,name=minor_version,json=minorVersion" json:"minor_version,omitempty"` 296 PatchVersion *uint32 `protobuf:"varint,4,opt,name=patch_version,json=patchVersion" json:"patch_version,omitempty"` 297 BootloaderMode *bool `protobuf:"varint,5,opt,name=bootloader_mode,json=bootloaderMode" json:"bootloader_mode,omitempty"` 298 DeviceId *string `protobuf:"bytes,6,opt,name=device_id,json=deviceId" json:"device_id,omitempty"` 299 PinProtection *bool `protobuf:"varint,7,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"` 300 PassphraseProtection *bool `protobuf:"varint,8,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"` 301 Language *string `protobuf:"bytes,9,opt,name=language" json:"language,omitempty"` 302 Label *string `protobuf:"bytes,10,opt,name=label" json:"label,omitempty"` 303 Coins []*CoinType `protobuf:"bytes,11,rep,name=coins" json:"coins,omitempty"` 304 Initialized *bool `protobuf:"varint,12,opt,name=initialized" json:"initialized,omitempty"` 305 Revision []byte `protobuf:"bytes,13,opt,name=revision" json:"revision,omitempty"` 306 BootloaderHash []byte `protobuf:"bytes,14,opt,name=bootloader_hash,json=bootloaderHash" json:"bootloader_hash,omitempty"` 307 Imported *bool `protobuf:"varint,15,opt,name=imported" json:"imported,omitempty"` 308 PinCached *bool `protobuf:"varint,16,opt,name=pin_cached,json=pinCached" json:"pin_cached,omitempty"` 309 PassphraseCached *bool `protobuf:"varint,17,opt,name=passphrase_cached,json=passphraseCached" json:"passphrase_cached,omitempty"` 310 FirmwarePresent *bool `protobuf:"varint,18,opt,name=firmware_present,json=firmwarePresent" json:"firmware_present,omitempty"` 311 NeedsBackup *bool `protobuf:"varint,19,opt,name=needs_backup,json=needsBackup" json:"needs_backup,omitempty"` 312 Flags *uint32 `protobuf:"varint,20,opt,name=flags" json:"flags,omitempty"` 313 XXX_unrecognized []byte `json:"-"` 314 } 315 316 func (m *Features) Reset() { *m = Features{} } 317 func (m *Features) String() string { return proto.CompactTextString(m) } 318 func (*Features) ProtoMessage() {} 319 func (*Features) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } 320 321 func (m *Features) GetVendor() string { 322 if m != nil && m.Vendor != nil { 323 return *m.Vendor 324 } 325 return "" 326 } 327 328 func (m *Features) GetMajorVersion() uint32 { 329 if m != nil && m.MajorVersion != nil { 330 return *m.MajorVersion 331 } 332 return 0 333 } 334 335 func (m *Features) GetMinorVersion() uint32 { 336 if m != nil && m.MinorVersion != nil { 337 return *m.MinorVersion 338 } 339 return 0 340 } 341 342 func (m *Features) GetPatchVersion() uint32 { 343 if m != nil && m.PatchVersion != nil { 344 return *m.PatchVersion 345 } 346 return 0 347 } 348 349 func (m *Features) GetBootloaderMode() bool { 350 if m != nil && m.BootloaderMode != nil { 351 return *m.BootloaderMode 352 } 353 return false 354 } 355 356 func (m *Features) GetDeviceId() string { 357 if m != nil && m.DeviceId != nil { 358 return *m.DeviceId 359 } 360 return "" 361 } 362 363 func (m *Features) GetPinProtection() bool { 364 if m != nil && m.PinProtection != nil { 365 return *m.PinProtection 366 } 367 return false 368 } 369 370 func (m *Features) GetPassphraseProtection() bool { 371 if m != nil && m.PassphraseProtection != nil { 372 return *m.PassphraseProtection 373 } 374 return false 375 } 376 377 func (m *Features) GetLanguage() string { 378 if m != nil && m.Language != nil { 379 return *m.Language 380 } 381 return "" 382 } 383 384 func (m *Features) GetLabel() string { 385 if m != nil && m.Label != nil { 386 return *m.Label 387 } 388 return "" 389 } 390 391 func (m *Features) GetCoins() []*CoinType { 392 if m != nil { 393 return m.Coins 394 } 395 return nil 396 } 397 398 func (m *Features) GetInitialized() bool { 399 if m != nil && m.Initialized != nil { 400 return *m.Initialized 401 } 402 return false 403 } 404 405 func (m *Features) GetRevision() []byte { 406 if m != nil { 407 return m.Revision 408 } 409 return nil 410 } 411 412 func (m *Features) GetBootloaderHash() []byte { 413 if m != nil { 414 return m.BootloaderHash 415 } 416 return nil 417 } 418 419 func (m *Features) GetImported() bool { 420 if m != nil && m.Imported != nil { 421 return *m.Imported 422 } 423 return false 424 } 425 426 func (m *Features) GetPinCached() bool { 427 if m != nil && m.PinCached != nil { 428 return *m.PinCached 429 } 430 return false 431 } 432 433 func (m *Features) GetPassphraseCached() bool { 434 if m != nil && m.PassphraseCached != nil { 435 return *m.PassphraseCached 436 } 437 return false 438 } 439 440 func (m *Features) GetFirmwarePresent() bool { 441 if m != nil && m.FirmwarePresent != nil { 442 return *m.FirmwarePresent 443 } 444 return false 445 } 446 447 func (m *Features) GetNeedsBackup() bool { 448 if m != nil && m.NeedsBackup != nil { 449 return *m.NeedsBackup 450 } 451 return false 452 } 453 454 func (m *Features) GetFlags() uint32 { 455 if m != nil && m.Flags != nil { 456 return *m.Flags 457 } 458 return 0 459 } 460 461 // * 462 // Request: clear session (removes cached PIN, passphrase, etc). 463 // @next Success 464 type ClearSession struct { 465 XXX_unrecognized []byte `json:"-"` 466 } 467 468 func (m *ClearSession) Reset() { *m = ClearSession{} } 469 func (m *ClearSession) String() string { return proto.CompactTextString(m) } 470 func (*ClearSession) ProtoMessage() {} 471 func (*ClearSession) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} } 472 473 // * 474 // Request: change language and/or label of the device 475 // @next Success 476 // @next Failure 477 // @next ButtonRequest 478 // @next PinMatrixRequest 479 type ApplySettings struct { 480 Language *string `protobuf:"bytes,1,opt,name=language" json:"language,omitempty"` 481 Label *string `protobuf:"bytes,2,opt,name=label" json:"label,omitempty"` 482 UsePassphrase *bool `protobuf:"varint,3,opt,name=use_passphrase,json=usePassphrase" json:"use_passphrase,omitempty"` 483 Homescreen []byte `protobuf:"bytes,4,opt,name=homescreen" json:"homescreen,omitempty"` 484 XXX_unrecognized []byte `json:"-"` 485 } 486 487 func (m *ApplySettings) Reset() { *m = ApplySettings{} } 488 func (m *ApplySettings) String() string { return proto.CompactTextString(m) } 489 func (*ApplySettings) ProtoMessage() {} 490 func (*ApplySettings) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} } 491 492 func (m *ApplySettings) GetLanguage() string { 493 if m != nil && m.Language != nil { 494 return *m.Language 495 } 496 return "" 497 } 498 499 func (m *ApplySettings) GetLabel() string { 500 if m != nil && m.Label != nil { 501 return *m.Label 502 } 503 return "" 504 } 505 506 func (m *ApplySettings) GetUsePassphrase() bool { 507 if m != nil && m.UsePassphrase != nil { 508 return *m.UsePassphrase 509 } 510 return false 511 } 512 513 func (m *ApplySettings) GetHomescreen() []byte { 514 if m != nil { 515 return m.Homescreen 516 } 517 return nil 518 } 519 520 // * 521 // Request: set flags of the device 522 // @next Success 523 // @next Failure 524 type ApplyFlags struct { 525 Flags *uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"` 526 XXX_unrecognized []byte `json:"-"` 527 } 528 529 func (m *ApplyFlags) Reset() { *m = ApplyFlags{} } 530 func (m *ApplyFlags) String() string { return proto.CompactTextString(m) } 531 func (*ApplyFlags) ProtoMessage() {} 532 func (*ApplyFlags) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} } 533 534 func (m *ApplyFlags) GetFlags() uint32 { 535 if m != nil && m.Flags != nil { 536 return *m.Flags 537 } 538 return 0 539 } 540 541 // * 542 // Request: Starts workflow for setting/changing/removing the PIN 543 // @next ButtonRequest 544 // @next PinMatrixRequest 545 type ChangePin struct { 546 Remove *bool `protobuf:"varint,1,opt,name=remove" json:"remove,omitempty"` 547 XXX_unrecognized []byte `json:"-"` 548 } 549 550 func (m *ChangePin) Reset() { *m = ChangePin{} } 551 func (m *ChangePin) String() string { return proto.CompactTextString(m) } 552 func (*ChangePin) ProtoMessage() {} 553 func (*ChangePin) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} } 554 555 func (m *ChangePin) GetRemove() bool { 556 if m != nil && m.Remove != nil { 557 return *m.Remove 558 } 559 return false 560 } 561 562 // * 563 // Request: Test if the device is alive, device sends back the message in Success response 564 // @next Success 565 type Ping struct { 566 Message *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` 567 ButtonProtection *bool `protobuf:"varint,2,opt,name=button_protection,json=buttonProtection" json:"button_protection,omitempty"` 568 PinProtection *bool `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"` 569 PassphraseProtection *bool `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"` 570 XXX_unrecognized []byte `json:"-"` 571 } 572 573 func (m *Ping) Reset() { *m = Ping{} } 574 func (m *Ping) String() string { return proto.CompactTextString(m) } 575 func (*Ping) ProtoMessage() {} 576 func (*Ping) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} } 577 578 func (m *Ping) GetMessage() string { 579 if m != nil && m.Message != nil { 580 return *m.Message 581 } 582 return "" 583 } 584 585 func (m *Ping) GetButtonProtection() bool { 586 if m != nil && m.ButtonProtection != nil { 587 return *m.ButtonProtection 588 } 589 return false 590 } 591 592 func (m *Ping) GetPinProtection() bool { 593 if m != nil && m.PinProtection != nil { 594 return *m.PinProtection 595 } 596 return false 597 } 598 599 func (m *Ping) GetPassphraseProtection() bool { 600 if m != nil && m.PassphraseProtection != nil { 601 return *m.PassphraseProtection 602 } 603 return false 604 } 605 606 // * 607 // Response: Success of the previous request 608 type Success struct { 609 Message *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` 610 XXX_unrecognized []byte `json:"-"` 611 } 612 613 func (m *Success) Reset() { *m = Success{} } 614 func (m *Success) String() string { return proto.CompactTextString(m) } 615 func (*Success) ProtoMessage() {} 616 func (*Success) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} } 617 618 func (m *Success) GetMessage() string { 619 if m != nil && m.Message != nil { 620 return *m.Message 621 } 622 return "" 623 } 624 625 // * 626 // Response: Failure of the previous request 627 type Failure struct { 628 Code *FailureType `protobuf:"varint,1,opt,name=code,enum=FailureType" json:"code,omitempty"` 629 Message *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` 630 XXX_unrecognized []byte `json:"-"` 631 } 632 633 func (m *Failure) Reset() { *m = Failure{} } 634 func (m *Failure) String() string { return proto.CompactTextString(m) } 635 func (*Failure) ProtoMessage() {} 636 func (*Failure) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} } 637 638 func (m *Failure) GetCode() FailureType { 639 if m != nil && m.Code != nil { 640 return *m.Code 641 } 642 return FailureType_Failure_UnexpectedMessage 643 } 644 645 func (m *Failure) GetMessage() string { 646 if m != nil && m.Message != nil { 647 return *m.Message 648 } 649 return "" 650 } 651 652 // * 653 // Response: Device is waiting for HW button press. 654 // @next ButtonAck 655 // @next Cancel 656 type ButtonRequest struct { 657 Code *ButtonRequestType `protobuf:"varint,1,opt,name=code,enum=ButtonRequestType" json:"code,omitempty"` 658 Data *string `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` 659 XXX_unrecognized []byte `json:"-"` 660 } 661 662 func (m *ButtonRequest) Reset() { *m = ButtonRequest{} } 663 func (m *ButtonRequest) String() string { return proto.CompactTextString(m) } 664 func (*ButtonRequest) ProtoMessage() {} 665 func (*ButtonRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} } 666 667 func (m *ButtonRequest) GetCode() ButtonRequestType { 668 if m != nil && m.Code != nil { 669 return *m.Code 670 } 671 return ButtonRequestType_ButtonRequest_Other 672 } 673 674 func (m *ButtonRequest) GetData() string { 675 if m != nil && m.Data != nil { 676 return *m.Data 677 } 678 return "" 679 } 680 681 // * 682 // Request: Computer agrees to wait for HW button press 683 // @prev ButtonRequest 684 type ButtonAck struct { 685 XXX_unrecognized []byte `json:"-"` 686 } 687 688 func (m *ButtonAck) Reset() { *m = ButtonAck{} } 689 func (m *ButtonAck) String() string { return proto.CompactTextString(m) } 690 func (*ButtonAck) ProtoMessage() {} 691 func (*ButtonAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} } 692 693 // * 694 // Response: Device is asking computer to show PIN matrix and awaits PIN encoded using this matrix scheme 695 // @next PinMatrixAck 696 // @next Cancel 697 type PinMatrixRequest struct { 698 Type *PinMatrixRequestType `protobuf:"varint,1,opt,name=type,enum=PinMatrixRequestType" json:"type,omitempty"` 699 XXX_unrecognized []byte `json:"-"` 700 } 701 702 func (m *PinMatrixRequest) Reset() { *m = PinMatrixRequest{} } 703 func (m *PinMatrixRequest) String() string { return proto.CompactTextString(m) } 704 func (*PinMatrixRequest) ProtoMessage() {} 705 func (*PinMatrixRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{12} } 706 707 func (m *PinMatrixRequest) GetType() PinMatrixRequestType { 708 if m != nil && m.Type != nil { 709 return *m.Type 710 } 711 return PinMatrixRequestType_PinMatrixRequestType_Current 712 } 713 714 // * 715 // Request: Computer responds with encoded PIN 716 // @prev PinMatrixRequest 717 type PinMatrixAck struct { 718 Pin *string `protobuf:"bytes,1,req,name=pin" json:"pin,omitempty"` 719 XXX_unrecognized []byte `json:"-"` 720 } 721 722 func (m *PinMatrixAck) Reset() { *m = PinMatrixAck{} } 723 func (m *PinMatrixAck) String() string { return proto.CompactTextString(m) } 724 func (*PinMatrixAck) ProtoMessage() {} 725 func (*PinMatrixAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{13} } 726 727 func (m *PinMatrixAck) GetPin() string { 728 if m != nil && m.Pin != nil { 729 return *m.Pin 730 } 731 return "" 732 } 733 734 // * 735 // Request: Abort last operation that required user interaction 736 // @prev ButtonRequest 737 // @prev PinMatrixRequest 738 // @prev PassphraseRequest 739 type Cancel struct { 740 XXX_unrecognized []byte `json:"-"` 741 } 742 743 func (m *Cancel) Reset() { *m = Cancel{} } 744 func (m *Cancel) String() string { return proto.CompactTextString(m) } 745 func (*Cancel) ProtoMessage() {} 746 func (*Cancel) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14} } 747 748 // * 749 // Response: Device awaits encryption passphrase 750 // @next PassphraseAck 751 // @next Cancel 752 type PassphraseRequest struct { 753 XXX_unrecognized []byte `json:"-"` 754 } 755 756 func (m *PassphraseRequest) Reset() { *m = PassphraseRequest{} } 757 func (m *PassphraseRequest) String() string { return proto.CompactTextString(m) } 758 func (*PassphraseRequest) ProtoMessage() {} 759 func (*PassphraseRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15} } 760 761 // * 762 // Request: Send passphrase back 763 // @prev PassphraseRequest 764 type PassphraseAck struct { 765 Passphrase *string `protobuf:"bytes,1,req,name=passphrase" json:"passphrase,omitempty"` 766 XXX_unrecognized []byte `json:"-"` 767 } 768 769 func (m *PassphraseAck) Reset() { *m = PassphraseAck{} } 770 func (m *PassphraseAck) String() string { return proto.CompactTextString(m) } 771 func (*PassphraseAck) ProtoMessage() {} 772 func (*PassphraseAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{16} } 773 774 func (m *PassphraseAck) GetPassphrase() string { 775 if m != nil && m.Passphrase != nil { 776 return *m.Passphrase 777 } 778 return "" 779 } 780 781 // * 782 // Request: Request a sample of random data generated by hardware RNG. May be used for testing. 783 // @next ButtonRequest 784 // @next Entropy 785 // @next Failure 786 type GetEntropy struct { 787 Size *uint32 `protobuf:"varint,1,req,name=size" json:"size,omitempty"` 788 XXX_unrecognized []byte `json:"-"` 789 } 790 791 func (m *GetEntropy) Reset() { *m = GetEntropy{} } 792 func (m *GetEntropy) String() string { return proto.CompactTextString(m) } 793 func (*GetEntropy) ProtoMessage() {} 794 func (*GetEntropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{17} } 795 796 func (m *GetEntropy) GetSize() uint32 { 797 if m != nil && m.Size != nil { 798 return *m.Size 799 } 800 return 0 801 } 802 803 // * 804 // Response: Reply with random data generated by internal RNG 805 // @prev GetEntropy 806 type Entropy struct { 807 Entropy []byte `protobuf:"bytes,1,req,name=entropy" json:"entropy,omitempty"` 808 XXX_unrecognized []byte `json:"-"` 809 } 810 811 func (m *Entropy) Reset() { *m = Entropy{} } 812 func (m *Entropy) String() string { return proto.CompactTextString(m) } 813 func (*Entropy) ProtoMessage() {} 814 func (*Entropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{18} } 815 816 func (m *Entropy) GetEntropy() []byte { 817 if m != nil { 818 return m.Entropy 819 } 820 return nil 821 } 822 823 // * 824 // Request: Ask device for public key corresponding to address_n path 825 // @next PassphraseRequest 826 // @next PublicKey 827 // @next Failure 828 type GetPublicKey struct { 829 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 830 EcdsaCurveName *string `protobuf:"bytes,2,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"` 831 ShowDisplay *bool `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"` 832 CoinName *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 833 XXX_unrecognized []byte `json:"-"` 834 } 835 836 func (m *GetPublicKey) Reset() { *m = GetPublicKey{} } 837 func (m *GetPublicKey) String() string { return proto.CompactTextString(m) } 838 func (*GetPublicKey) ProtoMessage() {} 839 func (*GetPublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{19} } 840 841 const Default_GetPublicKey_CoinName string = "Bitcoin" 842 843 func (m *GetPublicKey) GetAddressN() []uint32 { 844 if m != nil { 845 return m.AddressN 846 } 847 return nil 848 } 849 850 func (m *GetPublicKey) GetEcdsaCurveName() string { 851 if m != nil && m.EcdsaCurveName != nil { 852 return *m.EcdsaCurveName 853 } 854 return "" 855 } 856 857 func (m *GetPublicKey) GetShowDisplay() bool { 858 if m != nil && m.ShowDisplay != nil { 859 return *m.ShowDisplay 860 } 861 return false 862 } 863 864 func (m *GetPublicKey) GetCoinName() string { 865 if m != nil && m.CoinName != nil { 866 return *m.CoinName 867 } 868 return Default_GetPublicKey_CoinName 869 } 870 871 // * 872 // Response: Contains public key derived from device private seed 873 // @prev GetPublicKey 874 type PublicKey struct { 875 Node *HDNodeType `protobuf:"bytes,1,req,name=node" json:"node,omitempty"` 876 Xpub *string `protobuf:"bytes,2,opt,name=xpub" json:"xpub,omitempty"` 877 XXX_unrecognized []byte `json:"-"` 878 } 879 880 func (m *PublicKey) Reset() { *m = PublicKey{} } 881 func (m *PublicKey) String() string { return proto.CompactTextString(m) } 882 func (*PublicKey) ProtoMessage() {} 883 func (*PublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{20} } 884 885 func (m *PublicKey) GetNode() *HDNodeType { 886 if m != nil { 887 return m.Node 888 } 889 return nil 890 } 891 892 func (m *PublicKey) GetXpub() string { 893 if m != nil && m.Xpub != nil { 894 return *m.Xpub 895 } 896 return "" 897 } 898 899 // * 900 // Request: Ask device for address corresponding to address_n path 901 // @next PassphraseRequest 902 // @next Address 903 // @next Failure 904 type GetAddress struct { 905 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 906 CoinName *string `protobuf:"bytes,2,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 907 ShowDisplay *bool `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"` 908 Multisig *MultisigRedeemScriptType `protobuf:"bytes,4,opt,name=multisig" json:"multisig,omitempty"` 909 ScriptType *InputScriptType `protobuf:"varint,5,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"` 910 XXX_unrecognized []byte `json:"-"` 911 } 912 913 func (m *GetAddress) Reset() { *m = GetAddress{} } 914 func (m *GetAddress) String() string { return proto.CompactTextString(m) } 915 func (*GetAddress) ProtoMessage() {} 916 func (*GetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{21} } 917 918 const Default_GetAddress_CoinName string = "Bitcoin" 919 const Default_GetAddress_ScriptType InputScriptType = InputScriptType_SPENDADDRESS 920 921 func (m *GetAddress) GetAddressN() []uint32 { 922 if m != nil { 923 return m.AddressN 924 } 925 return nil 926 } 927 928 func (m *GetAddress) GetCoinName() string { 929 if m != nil && m.CoinName != nil { 930 return *m.CoinName 931 } 932 return Default_GetAddress_CoinName 933 } 934 935 func (m *GetAddress) GetShowDisplay() bool { 936 if m != nil && m.ShowDisplay != nil { 937 return *m.ShowDisplay 938 } 939 return false 940 } 941 942 func (m *GetAddress) GetMultisig() *MultisigRedeemScriptType { 943 if m != nil { 944 return m.Multisig 945 } 946 return nil 947 } 948 949 func (m *GetAddress) GetScriptType() InputScriptType { 950 if m != nil && m.ScriptType != nil { 951 return *m.ScriptType 952 } 953 return Default_GetAddress_ScriptType 954 } 955 956 // * 957 // Request: Ask device for Ethereum address corresponding to address_n path 958 // @next PassphraseRequest 959 // @next EthereumAddress 960 // @next Failure 961 type EthereumGetAddress struct { 962 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 963 ShowDisplay *bool `protobuf:"varint,2,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"` 964 XXX_unrecognized []byte `json:"-"` 965 } 966 967 func (m *EthereumGetAddress) Reset() { *m = EthereumGetAddress{} } 968 func (m *EthereumGetAddress) String() string { return proto.CompactTextString(m) } 969 func (*EthereumGetAddress) ProtoMessage() {} 970 func (*EthereumGetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{22} } 971 972 func (m *EthereumGetAddress) GetAddressN() []uint32 { 973 if m != nil { 974 return m.AddressN 975 } 976 return nil 977 } 978 979 func (m *EthereumGetAddress) GetShowDisplay() bool { 980 if m != nil && m.ShowDisplay != nil { 981 return *m.ShowDisplay 982 } 983 return false 984 } 985 986 // * 987 // Response: Contains address derived from device private seed 988 // @prev GetAddress 989 type Address struct { 990 Address *string `protobuf:"bytes,1,req,name=address" json:"address,omitempty"` 991 XXX_unrecognized []byte `json:"-"` 992 } 993 994 func (m *Address) Reset() { *m = Address{} } 995 func (m *Address) String() string { return proto.CompactTextString(m) } 996 func (*Address) ProtoMessage() {} 997 func (*Address) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{23} } 998 999 func (m *Address) GetAddress() string { 1000 if m != nil && m.Address != nil { 1001 return *m.Address 1002 } 1003 return "" 1004 } 1005 1006 // * 1007 // Response: Contains an Ethereum address derived from device private seed 1008 // @prev EthereumGetAddress 1009 type EthereumAddress struct { 1010 Address []byte `protobuf:"bytes,1,req,name=address" json:"address,omitempty"` 1011 XXX_unrecognized []byte `json:"-"` 1012 } 1013 1014 func (m *EthereumAddress) Reset() { *m = EthereumAddress{} } 1015 func (m *EthereumAddress) String() string { return proto.CompactTextString(m) } 1016 func (*EthereumAddress) ProtoMessage() {} 1017 func (*EthereumAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{24} } 1018 1019 func (m *EthereumAddress) GetAddress() []byte { 1020 if m != nil { 1021 return m.Address 1022 } 1023 return nil 1024 } 1025 1026 // * 1027 // Request: Request device to wipe all sensitive data and settings 1028 // @next ButtonRequest 1029 type WipeDevice struct { 1030 XXX_unrecognized []byte `json:"-"` 1031 } 1032 1033 func (m *WipeDevice) Reset() { *m = WipeDevice{} } 1034 func (m *WipeDevice) String() string { return proto.CompactTextString(m) } 1035 func (*WipeDevice) ProtoMessage() {} 1036 func (*WipeDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{25} } 1037 1038 // * 1039 // Request: Load seed and related internal settings from the computer 1040 // @next ButtonRequest 1041 // @next Success 1042 // @next Failure 1043 type LoadDevice struct { 1044 Mnemonic *string `protobuf:"bytes,1,opt,name=mnemonic" json:"mnemonic,omitempty"` 1045 Node *HDNodeType `protobuf:"bytes,2,opt,name=node" json:"node,omitempty"` 1046 Pin *string `protobuf:"bytes,3,opt,name=pin" json:"pin,omitempty"` 1047 PassphraseProtection *bool `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"` 1048 Language *string `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"` 1049 Label *string `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"` 1050 SkipChecksum *bool `protobuf:"varint,7,opt,name=skip_checksum,json=skipChecksum" json:"skip_checksum,omitempty"` 1051 U2FCounter *uint32 `protobuf:"varint,8,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"` 1052 XXX_unrecognized []byte `json:"-"` 1053 } 1054 1055 func (m *LoadDevice) Reset() { *m = LoadDevice{} } 1056 func (m *LoadDevice) String() string { return proto.CompactTextString(m) } 1057 func (*LoadDevice) ProtoMessage() {} 1058 func (*LoadDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{26} } 1059 1060 const Default_LoadDevice_Language string = "english" 1061 1062 func (m *LoadDevice) GetMnemonic() string { 1063 if m != nil && m.Mnemonic != nil { 1064 return *m.Mnemonic 1065 } 1066 return "" 1067 } 1068 1069 func (m *LoadDevice) GetNode() *HDNodeType { 1070 if m != nil { 1071 return m.Node 1072 } 1073 return nil 1074 } 1075 1076 func (m *LoadDevice) GetPin() string { 1077 if m != nil && m.Pin != nil { 1078 return *m.Pin 1079 } 1080 return "" 1081 } 1082 1083 func (m *LoadDevice) GetPassphraseProtection() bool { 1084 if m != nil && m.PassphraseProtection != nil { 1085 return *m.PassphraseProtection 1086 } 1087 return false 1088 } 1089 1090 func (m *LoadDevice) GetLanguage() string { 1091 if m != nil && m.Language != nil { 1092 return *m.Language 1093 } 1094 return Default_LoadDevice_Language 1095 } 1096 1097 func (m *LoadDevice) GetLabel() string { 1098 if m != nil && m.Label != nil { 1099 return *m.Label 1100 } 1101 return "" 1102 } 1103 1104 func (m *LoadDevice) GetSkipChecksum() bool { 1105 if m != nil && m.SkipChecksum != nil { 1106 return *m.SkipChecksum 1107 } 1108 return false 1109 } 1110 1111 func (m *LoadDevice) GetU2FCounter() uint32 { 1112 if m != nil && m.U2FCounter != nil { 1113 return *m.U2FCounter 1114 } 1115 return 0 1116 } 1117 1118 // * 1119 // Request: Ask device to do initialization involving user interaction 1120 // @next EntropyRequest 1121 // @next Failure 1122 type ResetDevice struct { 1123 DisplayRandom *bool `protobuf:"varint,1,opt,name=display_random,json=displayRandom" json:"display_random,omitempty"` 1124 Strength *uint32 `protobuf:"varint,2,opt,name=strength,def=256" json:"strength,omitempty"` 1125 PassphraseProtection *bool `protobuf:"varint,3,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"` 1126 PinProtection *bool `protobuf:"varint,4,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"` 1127 Language *string `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"` 1128 Label *string `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"` 1129 U2FCounter *uint32 `protobuf:"varint,7,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"` 1130 SkipBackup *bool `protobuf:"varint,8,opt,name=skip_backup,json=skipBackup" json:"skip_backup,omitempty"` 1131 XXX_unrecognized []byte `json:"-"` 1132 } 1133 1134 func (m *ResetDevice) Reset() { *m = ResetDevice{} } 1135 func (m *ResetDevice) String() string { return proto.CompactTextString(m) } 1136 func (*ResetDevice) ProtoMessage() {} 1137 func (*ResetDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{27} } 1138 1139 const Default_ResetDevice_Strength uint32 = 256 1140 const Default_ResetDevice_Language string = "english" 1141 1142 func (m *ResetDevice) GetDisplayRandom() bool { 1143 if m != nil && m.DisplayRandom != nil { 1144 return *m.DisplayRandom 1145 } 1146 return false 1147 } 1148 1149 func (m *ResetDevice) GetStrength() uint32 { 1150 if m != nil && m.Strength != nil { 1151 return *m.Strength 1152 } 1153 return Default_ResetDevice_Strength 1154 } 1155 1156 func (m *ResetDevice) GetPassphraseProtection() bool { 1157 if m != nil && m.PassphraseProtection != nil { 1158 return *m.PassphraseProtection 1159 } 1160 return false 1161 } 1162 1163 func (m *ResetDevice) GetPinProtection() bool { 1164 if m != nil && m.PinProtection != nil { 1165 return *m.PinProtection 1166 } 1167 return false 1168 } 1169 1170 func (m *ResetDevice) GetLanguage() string { 1171 if m != nil && m.Language != nil { 1172 return *m.Language 1173 } 1174 return Default_ResetDevice_Language 1175 } 1176 1177 func (m *ResetDevice) GetLabel() string { 1178 if m != nil && m.Label != nil { 1179 return *m.Label 1180 } 1181 return "" 1182 } 1183 1184 func (m *ResetDevice) GetU2FCounter() uint32 { 1185 if m != nil && m.U2FCounter != nil { 1186 return *m.U2FCounter 1187 } 1188 return 0 1189 } 1190 1191 func (m *ResetDevice) GetSkipBackup() bool { 1192 if m != nil && m.SkipBackup != nil { 1193 return *m.SkipBackup 1194 } 1195 return false 1196 } 1197 1198 // * 1199 // Request: Perform backup of the device seed if not backed up using ResetDevice 1200 // @next ButtonRequest 1201 type BackupDevice struct { 1202 XXX_unrecognized []byte `json:"-"` 1203 } 1204 1205 func (m *BackupDevice) Reset() { *m = BackupDevice{} } 1206 func (m *BackupDevice) String() string { return proto.CompactTextString(m) } 1207 func (*BackupDevice) ProtoMessage() {} 1208 func (*BackupDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{28} } 1209 1210 // * 1211 // Response: Ask for additional entropy from host computer 1212 // @prev ResetDevice 1213 // @next EntropyAck 1214 type EntropyRequest struct { 1215 XXX_unrecognized []byte `json:"-"` 1216 } 1217 1218 func (m *EntropyRequest) Reset() { *m = EntropyRequest{} } 1219 func (m *EntropyRequest) String() string { return proto.CompactTextString(m) } 1220 func (*EntropyRequest) ProtoMessage() {} 1221 func (*EntropyRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{29} } 1222 1223 // * 1224 // Request: Provide additional entropy for seed generation function 1225 // @prev EntropyRequest 1226 // @next ButtonRequest 1227 type EntropyAck struct { 1228 Entropy []byte `protobuf:"bytes,1,opt,name=entropy" json:"entropy,omitempty"` 1229 XXX_unrecognized []byte `json:"-"` 1230 } 1231 1232 func (m *EntropyAck) Reset() { *m = EntropyAck{} } 1233 func (m *EntropyAck) String() string { return proto.CompactTextString(m) } 1234 func (*EntropyAck) ProtoMessage() {} 1235 func (*EntropyAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{30} } 1236 1237 func (m *EntropyAck) GetEntropy() []byte { 1238 if m != nil { 1239 return m.Entropy 1240 } 1241 return nil 1242 } 1243 1244 // * 1245 // Request: Start recovery workflow asking user for specific words of mnemonic 1246 // Used to recovery device safely even on untrusted computer. 1247 // @next WordRequest 1248 type RecoveryDevice struct { 1249 WordCount *uint32 `protobuf:"varint,1,opt,name=word_count,json=wordCount" json:"word_count,omitempty"` 1250 PassphraseProtection *bool `protobuf:"varint,2,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"` 1251 PinProtection *bool `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"` 1252 Language *string `protobuf:"bytes,4,opt,name=language,def=english" json:"language,omitempty"` 1253 Label *string `protobuf:"bytes,5,opt,name=label" json:"label,omitempty"` 1254 EnforceWordlist *bool `protobuf:"varint,6,opt,name=enforce_wordlist,json=enforceWordlist" json:"enforce_wordlist,omitempty"` 1255 // 7 reserved for unused recovery method 1256 Type *uint32 `protobuf:"varint,8,opt,name=type" json:"type,omitempty"` 1257 U2FCounter *uint32 `protobuf:"varint,9,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"` 1258 DryRun *bool `protobuf:"varint,10,opt,name=dry_run,json=dryRun" json:"dry_run,omitempty"` 1259 XXX_unrecognized []byte `json:"-"` 1260 } 1261 1262 func (m *RecoveryDevice) Reset() { *m = RecoveryDevice{} } 1263 func (m *RecoveryDevice) String() string { return proto.CompactTextString(m) } 1264 func (*RecoveryDevice) ProtoMessage() {} 1265 func (*RecoveryDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{31} } 1266 1267 const Default_RecoveryDevice_Language string = "english" 1268 1269 func (m *RecoveryDevice) GetWordCount() uint32 { 1270 if m != nil && m.WordCount != nil { 1271 return *m.WordCount 1272 } 1273 return 0 1274 } 1275 1276 func (m *RecoveryDevice) GetPassphraseProtection() bool { 1277 if m != nil && m.PassphraseProtection != nil { 1278 return *m.PassphraseProtection 1279 } 1280 return false 1281 } 1282 1283 func (m *RecoveryDevice) GetPinProtection() bool { 1284 if m != nil && m.PinProtection != nil { 1285 return *m.PinProtection 1286 } 1287 return false 1288 } 1289 1290 func (m *RecoveryDevice) GetLanguage() string { 1291 if m != nil && m.Language != nil { 1292 return *m.Language 1293 } 1294 return Default_RecoveryDevice_Language 1295 } 1296 1297 func (m *RecoveryDevice) GetLabel() string { 1298 if m != nil && m.Label != nil { 1299 return *m.Label 1300 } 1301 return "" 1302 } 1303 1304 func (m *RecoveryDevice) GetEnforceWordlist() bool { 1305 if m != nil && m.EnforceWordlist != nil { 1306 return *m.EnforceWordlist 1307 } 1308 return false 1309 } 1310 1311 func (m *RecoveryDevice) GetType() uint32 { 1312 if m != nil && m.Type != nil { 1313 return *m.Type 1314 } 1315 return 0 1316 } 1317 1318 func (m *RecoveryDevice) GetU2FCounter() uint32 { 1319 if m != nil && m.U2FCounter != nil { 1320 return *m.U2FCounter 1321 } 1322 return 0 1323 } 1324 1325 func (m *RecoveryDevice) GetDryRun() bool { 1326 if m != nil && m.DryRun != nil { 1327 return *m.DryRun 1328 } 1329 return false 1330 } 1331 1332 // * 1333 // Response: Device is waiting for user to enter word of the mnemonic 1334 // Its position is shown only on device's internal display. 1335 // @prev RecoveryDevice 1336 // @prev WordAck 1337 type WordRequest struct { 1338 Type *WordRequestType `protobuf:"varint,1,opt,name=type,enum=WordRequestType" json:"type,omitempty"` 1339 XXX_unrecognized []byte `json:"-"` 1340 } 1341 1342 func (m *WordRequest) Reset() { *m = WordRequest{} } 1343 func (m *WordRequest) String() string { return proto.CompactTextString(m) } 1344 func (*WordRequest) ProtoMessage() {} 1345 func (*WordRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{32} } 1346 1347 func (m *WordRequest) GetType() WordRequestType { 1348 if m != nil && m.Type != nil { 1349 return *m.Type 1350 } 1351 return WordRequestType_WordRequestType_Plain 1352 } 1353 1354 // * 1355 // Request: Computer replies with word from the mnemonic 1356 // @prev WordRequest 1357 // @next WordRequest 1358 // @next Success 1359 // @next Failure 1360 type WordAck struct { 1361 Word *string `protobuf:"bytes,1,req,name=word" json:"word,omitempty"` 1362 XXX_unrecognized []byte `json:"-"` 1363 } 1364 1365 func (m *WordAck) Reset() { *m = WordAck{} } 1366 func (m *WordAck) String() string { return proto.CompactTextString(m) } 1367 func (*WordAck) ProtoMessage() {} 1368 func (*WordAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{33} } 1369 1370 func (m *WordAck) GetWord() string { 1371 if m != nil && m.Word != nil { 1372 return *m.Word 1373 } 1374 return "" 1375 } 1376 1377 // * 1378 // Request: Ask device to sign message 1379 // @next MessageSignature 1380 // @next Failure 1381 type SignMessage struct { 1382 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 1383 Message []byte `protobuf:"bytes,2,req,name=message" json:"message,omitempty"` 1384 CoinName *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 1385 ScriptType *InputScriptType `protobuf:"varint,4,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"` 1386 XXX_unrecognized []byte `json:"-"` 1387 } 1388 1389 func (m *SignMessage) Reset() { *m = SignMessage{} } 1390 func (m *SignMessage) String() string { return proto.CompactTextString(m) } 1391 func (*SignMessage) ProtoMessage() {} 1392 func (*SignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{34} } 1393 1394 const Default_SignMessage_CoinName string = "Bitcoin" 1395 const Default_SignMessage_ScriptType InputScriptType = InputScriptType_SPENDADDRESS 1396 1397 func (m *SignMessage) GetAddressN() []uint32 { 1398 if m != nil { 1399 return m.AddressN 1400 } 1401 return nil 1402 } 1403 1404 func (m *SignMessage) GetMessage() []byte { 1405 if m != nil { 1406 return m.Message 1407 } 1408 return nil 1409 } 1410 1411 func (m *SignMessage) GetCoinName() string { 1412 if m != nil && m.CoinName != nil { 1413 return *m.CoinName 1414 } 1415 return Default_SignMessage_CoinName 1416 } 1417 1418 func (m *SignMessage) GetScriptType() InputScriptType { 1419 if m != nil && m.ScriptType != nil { 1420 return *m.ScriptType 1421 } 1422 return Default_SignMessage_ScriptType 1423 } 1424 1425 // * 1426 // Request: Ask device to verify message 1427 // @next Success 1428 // @next Failure 1429 type VerifyMessage struct { 1430 Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` 1431 Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"` 1432 Message []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` 1433 CoinName *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 1434 XXX_unrecognized []byte `json:"-"` 1435 } 1436 1437 func (m *VerifyMessage) Reset() { *m = VerifyMessage{} } 1438 func (m *VerifyMessage) String() string { return proto.CompactTextString(m) } 1439 func (*VerifyMessage) ProtoMessage() {} 1440 func (*VerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{35} } 1441 1442 const Default_VerifyMessage_CoinName string = "Bitcoin" 1443 1444 func (m *VerifyMessage) GetAddress() string { 1445 if m != nil && m.Address != nil { 1446 return *m.Address 1447 } 1448 return "" 1449 } 1450 1451 func (m *VerifyMessage) GetSignature() []byte { 1452 if m != nil { 1453 return m.Signature 1454 } 1455 return nil 1456 } 1457 1458 func (m *VerifyMessage) GetMessage() []byte { 1459 if m != nil { 1460 return m.Message 1461 } 1462 return nil 1463 } 1464 1465 func (m *VerifyMessage) GetCoinName() string { 1466 if m != nil && m.CoinName != nil { 1467 return *m.CoinName 1468 } 1469 return Default_VerifyMessage_CoinName 1470 } 1471 1472 // * 1473 // Response: Signed message 1474 // @prev SignMessage 1475 type MessageSignature struct { 1476 Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` 1477 Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"` 1478 XXX_unrecognized []byte `json:"-"` 1479 } 1480 1481 func (m *MessageSignature) Reset() { *m = MessageSignature{} } 1482 func (m *MessageSignature) String() string { return proto.CompactTextString(m) } 1483 func (*MessageSignature) ProtoMessage() {} 1484 func (*MessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{36} } 1485 1486 func (m *MessageSignature) GetAddress() string { 1487 if m != nil && m.Address != nil { 1488 return *m.Address 1489 } 1490 return "" 1491 } 1492 1493 func (m *MessageSignature) GetSignature() []byte { 1494 if m != nil { 1495 return m.Signature 1496 } 1497 return nil 1498 } 1499 1500 // * 1501 // Request: Ask device to encrypt message 1502 // @next EncryptedMessage 1503 // @next Failure 1504 type EncryptMessage struct { 1505 Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey" json:"pubkey,omitempty"` 1506 Message []byte `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` 1507 DisplayOnly *bool `protobuf:"varint,3,opt,name=display_only,json=displayOnly" json:"display_only,omitempty"` 1508 AddressN []uint32 `protobuf:"varint,4,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 1509 CoinName *string `protobuf:"bytes,5,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 1510 XXX_unrecognized []byte `json:"-"` 1511 } 1512 1513 func (m *EncryptMessage) Reset() { *m = EncryptMessage{} } 1514 func (m *EncryptMessage) String() string { return proto.CompactTextString(m) } 1515 func (*EncryptMessage) ProtoMessage() {} 1516 func (*EncryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{37} } 1517 1518 const Default_EncryptMessage_CoinName string = "Bitcoin" 1519 1520 func (m *EncryptMessage) GetPubkey() []byte { 1521 if m != nil { 1522 return m.Pubkey 1523 } 1524 return nil 1525 } 1526 1527 func (m *EncryptMessage) GetMessage() []byte { 1528 if m != nil { 1529 return m.Message 1530 } 1531 return nil 1532 } 1533 1534 func (m *EncryptMessage) GetDisplayOnly() bool { 1535 if m != nil && m.DisplayOnly != nil { 1536 return *m.DisplayOnly 1537 } 1538 return false 1539 } 1540 1541 func (m *EncryptMessage) GetAddressN() []uint32 { 1542 if m != nil { 1543 return m.AddressN 1544 } 1545 return nil 1546 } 1547 1548 func (m *EncryptMessage) GetCoinName() string { 1549 if m != nil && m.CoinName != nil { 1550 return *m.CoinName 1551 } 1552 return Default_EncryptMessage_CoinName 1553 } 1554 1555 // * 1556 // Response: Encrypted message 1557 // @prev EncryptMessage 1558 type EncryptedMessage struct { 1559 Nonce []byte `protobuf:"bytes,1,opt,name=nonce" json:"nonce,omitempty"` 1560 Message []byte `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` 1561 Hmac []byte `protobuf:"bytes,3,opt,name=hmac" json:"hmac,omitempty"` 1562 XXX_unrecognized []byte `json:"-"` 1563 } 1564 1565 func (m *EncryptedMessage) Reset() { *m = EncryptedMessage{} } 1566 func (m *EncryptedMessage) String() string { return proto.CompactTextString(m) } 1567 func (*EncryptedMessage) ProtoMessage() {} 1568 func (*EncryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{38} } 1569 1570 func (m *EncryptedMessage) GetNonce() []byte { 1571 if m != nil { 1572 return m.Nonce 1573 } 1574 return nil 1575 } 1576 1577 func (m *EncryptedMessage) GetMessage() []byte { 1578 if m != nil { 1579 return m.Message 1580 } 1581 return nil 1582 } 1583 1584 func (m *EncryptedMessage) GetHmac() []byte { 1585 if m != nil { 1586 return m.Hmac 1587 } 1588 return nil 1589 } 1590 1591 // * 1592 // Request: Ask device to decrypt message 1593 // @next Success 1594 // @next Failure 1595 type DecryptMessage struct { 1596 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 1597 Nonce []byte `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"` 1598 Message []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` 1599 Hmac []byte `protobuf:"bytes,4,opt,name=hmac" json:"hmac,omitempty"` 1600 XXX_unrecognized []byte `json:"-"` 1601 } 1602 1603 func (m *DecryptMessage) Reset() { *m = DecryptMessage{} } 1604 func (m *DecryptMessage) String() string { return proto.CompactTextString(m) } 1605 func (*DecryptMessage) ProtoMessage() {} 1606 func (*DecryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{39} } 1607 1608 func (m *DecryptMessage) GetAddressN() []uint32 { 1609 if m != nil { 1610 return m.AddressN 1611 } 1612 return nil 1613 } 1614 1615 func (m *DecryptMessage) GetNonce() []byte { 1616 if m != nil { 1617 return m.Nonce 1618 } 1619 return nil 1620 } 1621 1622 func (m *DecryptMessage) GetMessage() []byte { 1623 if m != nil { 1624 return m.Message 1625 } 1626 return nil 1627 } 1628 1629 func (m *DecryptMessage) GetHmac() []byte { 1630 if m != nil { 1631 return m.Hmac 1632 } 1633 return nil 1634 } 1635 1636 // * 1637 // Response: Decrypted message 1638 // @prev DecryptedMessage 1639 type DecryptedMessage struct { 1640 Message []byte `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` 1641 Address *string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"` 1642 XXX_unrecognized []byte `json:"-"` 1643 } 1644 1645 func (m *DecryptedMessage) Reset() { *m = DecryptedMessage{} } 1646 func (m *DecryptedMessage) String() string { return proto.CompactTextString(m) } 1647 func (*DecryptedMessage) ProtoMessage() {} 1648 func (*DecryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{40} } 1649 1650 func (m *DecryptedMessage) GetMessage() []byte { 1651 if m != nil { 1652 return m.Message 1653 } 1654 return nil 1655 } 1656 1657 func (m *DecryptedMessage) GetAddress() string { 1658 if m != nil && m.Address != nil { 1659 return *m.Address 1660 } 1661 return "" 1662 } 1663 1664 // * 1665 // Request: Ask device to encrypt or decrypt value of given key 1666 // @next CipheredKeyValue 1667 // @next Failure 1668 type CipherKeyValue struct { 1669 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 1670 Key *string `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"` 1671 Value []byte `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"` 1672 Encrypt *bool `protobuf:"varint,4,opt,name=encrypt" json:"encrypt,omitempty"` 1673 AskOnEncrypt *bool `protobuf:"varint,5,opt,name=ask_on_encrypt,json=askOnEncrypt" json:"ask_on_encrypt,omitempty"` 1674 AskOnDecrypt *bool `protobuf:"varint,6,opt,name=ask_on_decrypt,json=askOnDecrypt" json:"ask_on_decrypt,omitempty"` 1675 Iv []byte `protobuf:"bytes,7,opt,name=iv" json:"iv,omitempty"` 1676 XXX_unrecognized []byte `json:"-"` 1677 } 1678 1679 func (m *CipherKeyValue) Reset() { *m = CipherKeyValue{} } 1680 func (m *CipherKeyValue) String() string { return proto.CompactTextString(m) } 1681 func (*CipherKeyValue) ProtoMessage() {} 1682 func (*CipherKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{41} } 1683 1684 func (m *CipherKeyValue) GetAddressN() []uint32 { 1685 if m != nil { 1686 return m.AddressN 1687 } 1688 return nil 1689 } 1690 1691 func (m *CipherKeyValue) GetKey() string { 1692 if m != nil && m.Key != nil { 1693 return *m.Key 1694 } 1695 return "" 1696 } 1697 1698 func (m *CipherKeyValue) GetValue() []byte { 1699 if m != nil { 1700 return m.Value 1701 } 1702 return nil 1703 } 1704 1705 func (m *CipherKeyValue) GetEncrypt() bool { 1706 if m != nil && m.Encrypt != nil { 1707 return *m.Encrypt 1708 } 1709 return false 1710 } 1711 1712 func (m *CipherKeyValue) GetAskOnEncrypt() bool { 1713 if m != nil && m.AskOnEncrypt != nil { 1714 return *m.AskOnEncrypt 1715 } 1716 return false 1717 } 1718 1719 func (m *CipherKeyValue) GetAskOnDecrypt() bool { 1720 if m != nil && m.AskOnDecrypt != nil { 1721 return *m.AskOnDecrypt 1722 } 1723 return false 1724 } 1725 1726 func (m *CipherKeyValue) GetIv() []byte { 1727 if m != nil { 1728 return m.Iv 1729 } 1730 return nil 1731 } 1732 1733 // * 1734 // Response: Return ciphered/deciphered value 1735 // @prev CipherKeyValue 1736 type CipheredKeyValue struct { 1737 Value []byte `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"` 1738 XXX_unrecognized []byte `json:"-"` 1739 } 1740 1741 func (m *CipheredKeyValue) Reset() { *m = CipheredKeyValue{} } 1742 func (m *CipheredKeyValue) String() string { return proto.CompactTextString(m) } 1743 func (*CipheredKeyValue) ProtoMessage() {} 1744 func (*CipheredKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{42} } 1745 1746 func (m *CipheredKeyValue) GetValue() []byte { 1747 if m != nil { 1748 return m.Value 1749 } 1750 return nil 1751 } 1752 1753 // * 1754 // Request: Estimated size of the transaction 1755 // This behaves exactly like SignTx, which means that it can ask using TxRequest 1756 // This call is non-blocking (except possible PassphraseRequest to unlock the seed) 1757 // @next TxSize 1758 // @next Failure 1759 type EstimateTxSize struct { 1760 OutputsCount *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"` 1761 InputsCount *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"` 1762 CoinName *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 1763 XXX_unrecognized []byte `json:"-"` 1764 } 1765 1766 func (m *EstimateTxSize) Reset() { *m = EstimateTxSize{} } 1767 func (m *EstimateTxSize) String() string { return proto.CompactTextString(m) } 1768 func (*EstimateTxSize) ProtoMessage() {} 1769 func (*EstimateTxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{43} } 1770 1771 const Default_EstimateTxSize_CoinName string = "Bitcoin" 1772 1773 func (m *EstimateTxSize) GetOutputsCount() uint32 { 1774 if m != nil && m.OutputsCount != nil { 1775 return *m.OutputsCount 1776 } 1777 return 0 1778 } 1779 1780 func (m *EstimateTxSize) GetInputsCount() uint32 { 1781 if m != nil && m.InputsCount != nil { 1782 return *m.InputsCount 1783 } 1784 return 0 1785 } 1786 1787 func (m *EstimateTxSize) GetCoinName() string { 1788 if m != nil && m.CoinName != nil { 1789 return *m.CoinName 1790 } 1791 return Default_EstimateTxSize_CoinName 1792 } 1793 1794 // * 1795 // Response: Estimated size of the transaction 1796 // @prev EstimateTxSize 1797 type TxSize struct { 1798 TxSize *uint32 `protobuf:"varint,1,opt,name=tx_size,json=txSize" json:"tx_size,omitempty"` 1799 XXX_unrecognized []byte `json:"-"` 1800 } 1801 1802 func (m *TxSize) Reset() { *m = TxSize{} } 1803 func (m *TxSize) String() string { return proto.CompactTextString(m) } 1804 func (*TxSize) ProtoMessage() {} 1805 func (*TxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{44} } 1806 1807 func (m *TxSize) GetTxSize() uint32 { 1808 if m != nil && m.TxSize != nil { 1809 return *m.TxSize 1810 } 1811 return 0 1812 } 1813 1814 // * 1815 // Request: Ask device to sign transaction 1816 // @next PassphraseRequest 1817 // @next PinMatrixRequest 1818 // @next TxRequest 1819 // @next Failure 1820 type SignTx struct { 1821 OutputsCount *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"` 1822 InputsCount *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"` 1823 CoinName *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 1824 Version *uint32 `protobuf:"varint,4,opt,name=version,def=1" json:"version,omitempty"` 1825 LockTime *uint32 `protobuf:"varint,5,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"` 1826 XXX_unrecognized []byte `json:"-"` 1827 } 1828 1829 func (m *SignTx) Reset() { *m = SignTx{} } 1830 func (m *SignTx) String() string { return proto.CompactTextString(m) } 1831 func (*SignTx) ProtoMessage() {} 1832 func (*SignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{45} } 1833 1834 const Default_SignTx_CoinName string = "Bitcoin" 1835 const Default_SignTx_Version uint32 = 1 1836 const Default_SignTx_LockTime uint32 = 0 1837 1838 func (m *SignTx) GetOutputsCount() uint32 { 1839 if m != nil && m.OutputsCount != nil { 1840 return *m.OutputsCount 1841 } 1842 return 0 1843 } 1844 1845 func (m *SignTx) GetInputsCount() uint32 { 1846 if m != nil && m.InputsCount != nil { 1847 return *m.InputsCount 1848 } 1849 return 0 1850 } 1851 1852 func (m *SignTx) GetCoinName() string { 1853 if m != nil && m.CoinName != nil { 1854 return *m.CoinName 1855 } 1856 return Default_SignTx_CoinName 1857 } 1858 1859 func (m *SignTx) GetVersion() uint32 { 1860 if m != nil && m.Version != nil { 1861 return *m.Version 1862 } 1863 return Default_SignTx_Version 1864 } 1865 1866 func (m *SignTx) GetLockTime() uint32 { 1867 if m != nil && m.LockTime != nil { 1868 return *m.LockTime 1869 } 1870 return Default_SignTx_LockTime 1871 } 1872 1873 // * 1874 // Request: Simplified transaction signing 1875 // This method doesn't support streaming, so there are hardware limits in number of inputs and outputs. 1876 // In case of success, the result is returned using TxRequest message. 1877 // @next PassphraseRequest 1878 // @next PinMatrixRequest 1879 // @next TxRequest 1880 // @next Failure 1881 type SimpleSignTx struct { 1882 Inputs []*TxInputType `protobuf:"bytes,1,rep,name=inputs" json:"inputs,omitempty"` 1883 Outputs []*TxOutputType `protobuf:"bytes,2,rep,name=outputs" json:"outputs,omitempty"` 1884 Transactions []*TransactionType `protobuf:"bytes,3,rep,name=transactions" json:"transactions,omitempty"` 1885 CoinName *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"` 1886 Version *uint32 `protobuf:"varint,5,opt,name=version,def=1" json:"version,omitempty"` 1887 LockTime *uint32 `protobuf:"varint,6,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"` 1888 XXX_unrecognized []byte `json:"-"` 1889 } 1890 1891 func (m *SimpleSignTx) Reset() { *m = SimpleSignTx{} } 1892 func (m *SimpleSignTx) String() string { return proto.CompactTextString(m) } 1893 func (*SimpleSignTx) ProtoMessage() {} 1894 func (*SimpleSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{46} } 1895 1896 const Default_SimpleSignTx_CoinName string = "Bitcoin" 1897 const Default_SimpleSignTx_Version uint32 = 1 1898 const Default_SimpleSignTx_LockTime uint32 = 0 1899 1900 func (m *SimpleSignTx) GetInputs() []*TxInputType { 1901 if m != nil { 1902 return m.Inputs 1903 } 1904 return nil 1905 } 1906 1907 func (m *SimpleSignTx) GetOutputs() []*TxOutputType { 1908 if m != nil { 1909 return m.Outputs 1910 } 1911 return nil 1912 } 1913 1914 func (m *SimpleSignTx) GetTransactions() []*TransactionType { 1915 if m != nil { 1916 return m.Transactions 1917 } 1918 return nil 1919 } 1920 1921 func (m *SimpleSignTx) GetCoinName() string { 1922 if m != nil && m.CoinName != nil { 1923 return *m.CoinName 1924 } 1925 return Default_SimpleSignTx_CoinName 1926 } 1927 1928 func (m *SimpleSignTx) GetVersion() uint32 { 1929 if m != nil && m.Version != nil { 1930 return *m.Version 1931 } 1932 return Default_SimpleSignTx_Version 1933 } 1934 1935 func (m *SimpleSignTx) GetLockTime() uint32 { 1936 if m != nil && m.LockTime != nil { 1937 return *m.LockTime 1938 } 1939 return Default_SimpleSignTx_LockTime 1940 } 1941 1942 // * 1943 // Response: Device asks for information for signing transaction or returns the last result 1944 // If request_index is set, device awaits TxAck message (with fields filled in according to request_type) 1945 // If signature_index is set, 'signature' contains signed input of signature_index's input 1946 // @prev SignTx 1947 // @prev SimpleSignTx 1948 // @prev TxAck 1949 type TxRequest struct { 1950 RequestType *RequestType `protobuf:"varint,1,opt,name=request_type,json=requestType,enum=RequestType" json:"request_type,omitempty"` 1951 Details *TxRequestDetailsType `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"` 1952 Serialized *TxRequestSerializedType `protobuf:"bytes,3,opt,name=serialized" json:"serialized,omitempty"` 1953 XXX_unrecognized []byte `json:"-"` 1954 } 1955 1956 func (m *TxRequest) Reset() { *m = TxRequest{} } 1957 func (m *TxRequest) String() string { return proto.CompactTextString(m) } 1958 func (*TxRequest) ProtoMessage() {} 1959 func (*TxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{47} } 1960 1961 func (m *TxRequest) GetRequestType() RequestType { 1962 if m != nil && m.RequestType != nil { 1963 return *m.RequestType 1964 } 1965 return RequestType_TXINPUT 1966 } 1967 1968 func (m *TxRequest) GetDetails() *TxRequestDetailsType { 1969 if m != nil { 1970 return m.Details 1971 } 1972 return nil 1973 } 1974 1975 func (m *TxRequest) GetSerialized() *TxRequestSerializedType { 1976 if m != nil { 1977 return m.Serialized 1978 } 1979 return nil 1980 } 1981 1982 // * 1983 // Request: Reported transaction data 1984 // @prev TxRequest 1985 // @next TxRequest 1986 type TxAck struct { 1987 Tx *TransactionType `protobuf:"bytes,1,opt,name=tx" json:"tx,omitempty"` 1988 XXX_unrecognized []byte `json:"-"` 1989 } 1990 1991 func (m *TxAck) Reset() { *m = TxAck{} } 1992 func (m *TxAck) String() string { return proto.CompactTextString(m) } 1993 func (*TxAck) ProtoMessage() {} 1994 func (*TxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{48} } 1995 1996 func (m *TxAck) GetTx() *TransactionType { 1997 if m != nil { 1998 return m.Tx 1999 } 2000 return nil 2001 } 2002 2003 // * 2004 // Request: Ask device to sign transaction 2005 // All fields are optional from the protocol's point of view. Each field defaults to value `0` if missing. 2006 // Note: the first at most 1024 bytes of data MUST be transmitted as part of this message. 2007 // @next PassphraseRequest 2008 // @next PinMatrixRequest 2009 // @next EthereumTxRequest 2010 // @next Failure 2011 type EthereumSignTx struct { 2012 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 2013 Nonce []byte `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"` 2014 GasPrice []byte `protobuf:"bytes,3,opt,name=gas_price,json=gasPrice" json:"gas_price,omitempty"` 2015 GasLimit []byte `protobuf:"bytes,4,opt,name=gas_limit,json=gasLimit" json:"gas_limit,omitempty"` 2016 To []byte `protobuf:"bytes,5,opt,name=to" json:"to,omitempty"` 2017 Value []byte `protobuf:"bytes,6,opt,name=value" json:"value,omitempty"` 2018 DataInitialChunk []byte `protobuf:"bytes,7,opt,name=data_initial_chunk,json=dataInitialChunk" json:"data_initial_chunk,omitempty"` 2019 DataLength *uint32 `protobuf:"varint,8,opt,name=data_length,json=dataLength" json:"data_length,omitempty"` 2020 ChainId *uint32 `protobuf:"varint,9,opt,name=chain_id,json=chainId" json:"chain_id,omitempty"` 2021 XXX_unrecognized []byte `json:"-"` 2022 } 2023 2024 func (m *EthereumSignTx) Reset() { *m = EthereumSignTx{} } 2025 func (m *EthereumSignTx) String() string { return proto.CompactTextString(m) } 2026 func (*EthereumSignTx) ProtoMessage() {} 2027 func (*EthereumSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{49} } 2028 2029 func (m *EthereumSignTx) GetAddressN() []uint32 { 2030 if m != nil { 2031 return m.AddressN 2032 } 2033 return nil 2034 } 2035 2036 func (m *EthereumSignTx) GetNonce() []byte { 2037 if m != nil { 2038 return m.Nonce 2039 } 2040 return nil 2041 } 2042 2043 func (m *EthereumSignTx) GetGasPrice() []byte { 2044 if m != nil { 2045 return m.GasPrice 2046 } 2047 return nil 2048 } 2049 2050 func (m *EthereumSignTx) GetGasLimit() []byte { 2051 if m != nil { 2052 return m.GasLimit 2053 } 2054 return nil 2055 } 2056 2057 func (m *EthereumSignTx) GetTo() []byte { 2058 if m != nil { 2059 return m.To 2060 } 2061 return nil 2062 } 2063 2064 func (m *EthereumSignTx) GetValue() []byte { 2065 if m != nil { 2066 return m.Value 2067 } 2068 return nil 2069 } 2070 2071 func (m *EthereumSignTx) GetDataInitialChunk() []byte { 2072 if m != nil { 2073 return m.DataInitialChunk 2074 } 2075 return nil 2076 } 2077 2078 func (m *EthereumSignTx) GetDataLength() uint32 { 2079 if m != nil && m.DataLength != nil { 2080 return *m.DataLength 2081 } 2082 return 0 2083 } 2084 2085 func (m *EthereumSignTx) GetChainId() uint32 { 2086 if m != nil && m.ChainId != nil { 2087 return *m.ChainId 2088 } 2089 return 0 2090 } 2091 2092 // * 2093 // Response: Device asks for more data from transaction payload, or returns the signature. 2094 // If data_length is set, device awaits that many more bytes of payload. 2095 // Otherwise, the signature_* fields contain the computed transaction signature. All three fields will be present. 2096 // @prev EthereumSignTx 2097 // @next EthereumTxAck 2098 type EthereumTxRequest struct { 2099 DataLength *uint32 `protobuf:"varint,1,opt,name=data_length,json=dataLength" json:"data_length,omitempty"` 2100 SignatureV *uint32 `protobuf:"varint,2,opt,name=signature_v,json=signatureV" json:"signature_v,omitempty"` 2101 SignatureR []byte `protobuf:"bytes,3,opt,name=signature_r,json=signatureR" json:"signature_r,omitempty"` 2102 SignatureS []byte `protobuf:"bytes,4,opt,name=signature_s,json=signatureS" json:"signature_s,omitempty"` 2103 XXX_unrecognized []byte `json:"-"` 2104 } 2105 2106 func (m *EthereumTxRequest) Reset() { *m = EthereumTxRequest{} } 2107 func (m *EthereumTxRequest) String() string { return proto.CompactTextString(m) } 2108 func (*EthereumTxRequest) ProtoMessage() {} 2109 func (*EthereumTxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{50} } 2110 2111 func (m *EthereumTxRequest) GetDataLength() uint32 { 2112 if m != nil && m.DataLength != nil { 2113 return *m.DataLength 2114 } 2115 return 0 2116 } 2117 2118 func (m *EthereumTxRequest) GetSignatureV() uint32 { 2119 if m != nil && m.SignatureV != nil { 2120 return *m.SignatureV 2121 } 2122 return 0 2123 } 2124 2125 func (m *EthereumTxRequest) GetSignatureR() []byte { 2126 if m != nil { 2127 return m.SignatureR 2128 } 2129 return nil 2130 } 2131 2132 func (m *EthereumTxRequest) GetSignatureS() []byte { 2133 if m != nil { 2134 return m.SignatureS 2135 } 2136 return nil 2137 } 2138 2139 // * 2140 // Request: Transaction payload data. 2141 // @prev EthereumTxRequest 2142 // @next EthereumTxRequest 2143 type EthereumTxAck struct { 2144 DataChunk []byte `protobuf:"bytes,1,opt,name=data_chunk,json=dataChunk" json:"data_chunk,omitempty"` 2145 XXX_unrecognized []byte `json:"-"` 2146 } 2147 2148 func (m *EthereumTxAck) Reset() { *m = EthereumTxAck{} } 2149 func (m *EthereumTxAck) String() string { return proto.CompactTextString(m) } 2150 func (*EthereumTxAck) ProtoMessage() {} 2151 func (*EthereumTxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{51} } 2152 2153 func (m *EthereumTxAck) GetDataChunk() []byte { 2154 if m != nil { 2155 return m.DataChunk 2156 } 2157 return nil 2158 } 2159 2160 // * 2161 // Request: Ask device to sign message 2162 // @next EthereumMessageSignature 2163 // @next Failure 2164 type EthereumSignMessage struct { 2165 AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` 2166 Message []byte `protobuf:"bytes,2,req,name=message" json:"message,omitempty"` 2167 XXX_unrecognized []byte `json:"-"` 2168 } 2169 2170 func (m *EthereumSignMessage) Reset() { *m = EthereumSignMessage{} } 2171 func (m *EthereumSignMessage) String() string { return proto.CompactTextString(m) } 2172 func (*EthereumSignMessage) ProtoMessage() {} 2173 func (*EthereumSignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{52} } 2174 2175 func (m *EthereumSignMessage) GetAddressN() []uint32 { 2176 if m != nil { 2177 return m.AddressN 2178 } 2179 return nil 2180 } 2181 2182 func (m *EthereumSignMessage) GetMessage() []byte { 2183 if m != nil { 2184 return m.Message 2185 } 2186 return nil 2187 } 2188 2189 // * 2190 // Request: Ask device to verify message 2191 // @next Success 2192 // @next Failure 2193 type EthereumVerifyMessage struct { 2194 Address []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` 2195 Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"` 2196 Message []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` 2197 XXX_unrecognized []byte `json:"-"` 2198 } 2199 2200 func (m *EthereumVerifyMessage) Reset() { *m = EthereumVerifyMessage{} } 2201 func (m *EthereumVerifyMessage) String() string { return proto.CompactTextString(m) } 2202 func (*EthereumVerifyMessage) ProtoMessage() {} 2203 func (*EthereumVerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{53} } 2204 2205 func (m *EthereumVerifyMessage) GetAddress() []byte { 2206 if m != nil { 2207 return m.Address 2208 } 2209 return nil 2210 } 2211 2212 func (m *EthereumVerifyMessage) GetSignature() []byte { 2213 if m != nil { 2214 return m.Signature 2215 } 2216 return nil 2217 } 2218 2219 func (m *EthereumVerifyMessage) GetMessage() []byte { 2220 if m != nil { 2221 return m.Message 2222 } 2223 return nil 2224 } 2225 2226 // * 2227 // Response: Signed message 2228 // @prev EthereumSignMessage 2229 type EthereumMessageSignature struct { 2230 Address []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` 2231 Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"` 2232 XXX_unrecognized []byte `json:"-"` 2233 } 2234 2235 func (m *EthereumMessageSignature) Reset() { *m = EthereumMessageSignature{} } 2236 func (m *EthereumMessageSignature) String() string { return proto.CompactTextString(m) } 2237 func (*EthereumMessageSignature) ProtoMessage() {} 2238 func (*EthereumMessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{54} } 2239 2240 func (m *EthereumMessageSignature) GetAddress() []byte { 2241 if m != nil { 2242 return m.Address 2243 } 2244 return nil 2245 } 2246 2247 func (m *EthereumMessageSignature) GetSignature() []byte { 2248 if m != nil { 2249 return m.Signature 2250 } 2251 return nil 2252 } 2253 2254 // * 2255 // Request: Ask device to sign identity 2256 // @next SignedIdentity 2257 // @next Failure 2258 type SignIdentity struct { 2259 Identity *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"` 2260 ChallengeHidden []byte `protobuf:"bytes,2,opt,name=challenge_hidden,json=challengeHidden" json:"challenge_hidden,omitempty"` 2261 ChallengeVisual *string `protobuf:"bytes,3,opt,name=challenge_visual,json=challengeVisual" json:"challenge_visual,omitempty"` 2262 EcdsaCurveName *string `protobuf:"bytes,4,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"` 2263 XXX_unrecognized []byte `json:"-"` 2264 } 2265 2266 func (m *SignIdentity) Reset() { *m = SignIdentity{} } 2267 func (m *SignIdentity) String() string { return proto.CompactTextString(m) } 2268 func (*SignIdentity) ProtoMessage() {} 2269 func (*SignIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{55} } 2270 2271 func (m *SignIdentity) GetIdentity() *IdentityType { 2272 if m != nil { 2273 return m.Identity 2274 } 2275 return nil 2276 } 2277 2278 func (m *SignIdentity) GetChallengeHidden() []byte { 2279 if m != nil { 2280 return m.ChallengeHidden 2281 } 2282 return nil 2283 } 2284 2285 func (m *SignIdentity) GetChallengeVisual() string { 2286 if m != nil && m.ChallengeVisual != nil { 2287 return *m.ChallengeVisual 2288 } 2289 return "" 2290 } 2291 2292 func (m *SignIdentity) GetEcdsaCurveName() string { 2293 if m != nil && m.EcdsaCurveName != nil { 2294 return *m.EcdsaCurveName 2295 } 2296 return "" 2297 } 2298 2299 // * 2300 // Response: Device provides signed identity 2301 // @prev SignIdentity 2302 type SignedIdentity struct { 2303 Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` 2304 PublicKey []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey" json:"public_key,omitempty"` 2305 Signature []byte `protobuf:"bytes,3,opt,name=signature" json:"signature,omitempty"` 2306 XXX_unrecognized []byte `json:"-"` 2307 } 2308 2309 func (m *SignedIdentity) Reset() { *m = SignedIdentity{} } 2310 func (m *SignedIdentity) String() string { return proto.CompactTextString(m) } 2311 func (*SignedIdentity) ProtoMessage() {} 2312 func (*SignedIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{56} } 2313 2314 func (m *SignedIdentity) GetAddress() string { 2315 if m != nil && m.Address != nil { 2316 return *m.Address 2317 } 2318 return "" 2319 } 2320 2321 func (m *SignedIdentity) GetPublicKey() []byte { 2322 if m != nil { 2323 return m.PublicKey 2324 } 2325 return nil 2326 } 2327 2328 func (m *SignedIdentity) GetSignature() []byte { 2329 if m != nil { 2330 return m.Signature 2331 } 2332 return nil 2333 } 2334 2335 // * 2336 // Request: Ask device to generate ECDH session key 2337 // @next ECDHSessionKey 2338 // @next Failure 2339 type GetECDHSessionKey struct { 2340 Identity *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"` 2341 PeerPublicKey []byte `protobuf:"bytes,2,opt,name=peer_public_key,json=peerPublicKey" json:"peer_public_key,omitempty"` 2342 EcdsaCurveName *string `protobuf:"bytes,3,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"` 2343 XXX_unrecognized []byte `json:"-"` 2344 } 2345 2346 func (m *GetECDHSessionKey) Reset() { *m = GetECDHSessionKey{} } 2347 func (m *GetECDHSessionKey) String() string { return proto.CompactTextString(m) } 2348 func (*GetECDHSessionKey) ProtoMessage() {} 2349 func (*GetECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{57} } 2350 2351 func (m *GetECDHSessionKey) GetIdentity() *IdentityType { 2352 if m != nil { 2353 return m.Identity 2354 } 2355 return nil 2356 } 2357 2358 func (m *GetECDHSessionKey) GetPeerPublicKey() []byte { 2359 if m != nil { 2360 return m.PeerPublicKey 2361 } 2362 return nil 2363 } 2364 2365 func (m *GetECDHSessionKey) GetEcdsaCurveName() string { 2366 if m != nil && m.EcdsaCurveName != nil { 2367 return *m.EcdsaCurveName 2368 } 2369 return "" 2370 } 2371 2372 // * 2373 // Response: Device provides ECDH session key 2374 // @prev GetECDHSessionKey 2375 type ECDHSessionKey struct { 2376 SessionKey []byte `protobuf:"bytes,1,opt,name=session_key,json=sessionKey" json:"session_key,omitempty"` 2377 XXX_unrecognized []byte `json:"-"` 2378 } 2379 2380 func (m *ECDHSessionKey) Reset() { *m = ECDHSessionKey{} } 2381 func (m *ECDHSessionKey) String() string { return proto.CompactTextString(m) } 2382 func (*ECDHSessionKey) ProtoMessage() {} 2383 func (*ECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{58} } 2384 2385 func (m *ECDHSessionKey) GetSessionKey() []byte { 2386 if m != nil { 2387 return m.SessionKey 2388 } 2389 return nil 2390 } 2391 2392 // * 2393 // Request: Set U2F counter 2394 // @next Success 2395 type SetU2FCounter struct { 2396 U2FCounter *uint32 `protobuf:"varint,1,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"` 2397 XXX_unrecognized []byte `json:"-"` 2398 } 2399 2400 func (m *SetU2FCounter) Reset() { *m = SetU2FCounter{} } 2401 func (m *SetU2FCounter) String() string { return proto.CompactTextString(m) } 2402 func (*SetU2FCounter) ProtoMessage() {} 2403 func (*SetU2FCounter) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{59} } 2404 2405 func (m *SetU2FCounter) GetU2FCounter() uint32 { 2406 if m != nil && m.U2FCounter != nil { 2407 return *m.U2FCounter 2408 } 2409 return 0 2410 } 2411 2412 // * 2413 // Request: Ask device to erase its firmware (so it can be replaced via FirmwareUpload) 2414 // @next Success 2415 // @next FirmwareRequest 2416 // @next Failure 2417 type FirmwareErase struct { 2418 Length *uint32 `protobuf:"varint,1,opt,name=length" json:"length,omitempty"` 2419 XXX_unrecognized []byte `json:"-"` 2420 } 2421 2422 func (m *FirmwareErase) Reset() { *m = FirmwareErase{} } 2423 func (m *FirmwareErase) String() string { return proto.CompactTextString(m) } 2424 func (*FirmwareErase) ProtoMessage() {} 2425 func (*FirmwareErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{60} } 2426 2427 func (m *FirmwareErase) GetLength() uint32 { 2428 if m != nil && m.Length != nil { 2429 return *m.Length 2430 } 2431 return 0 2432 } 2433 2434 // * 2435 // Response: Ask for firmware chunk 2436 // @next FirmwareUpload 2437 type FirmwareRequest struct { 2438 Offset *uint32 `protobuf:"varint,1,opt,name=offset" json:"offset,omitempty"` 2439 Length *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"` 2440 XXX_unrecognized []byte `json:"-"` 2441 } 2442 2443 func (m *FirmwareRequest) Reset() { *m = FirmwareRequest{} } 2444 func (m *FirmwareRequest) String() string { return proto.CompactTextString(m) } 2445 func (*FirmwareRequest) ProtoMessage() {} 2446 func (*FirmwareRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{61} } 2447 2448 func (m *FirmwareRequest) GetOffset() uint32 { 2449 if m != nil && m.Offset != nil { 2450 return *m.Offset 2451 } 2452 return 0 2453 } 2454 2455 func (m *FirmwareRequest) GetLength() uint32 { 2456 if m != nil && m.Length != nil { 2457 return *m.Length 2458 } 2459 return 0 2460 } 2461 2462 // * 2463 // Request: Send firmware in binary form to the device 2464 // @next Success 2465 // @next Failure 2466 type FirmwareUpload struct { 2467 Payload []byte `protobuf:"bytes,1,req,name=payload" json:"payload,omitempty"` 2468 Hash []byte `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"` 2469 XXX_unrecognized []byte `json:"-"` 2470 } 2471 2472 func (m *FirmwareUpload) Reset() { *m = FirmwareUpload{} } 2473 func (m *FirmwareUpload) String() string { return proto.CompactTextString(m) } 2474 func (*FirmwareUpload) ProtoMessage() {} 2475 func (*FirmwareUpload) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{62} } 2476 2477 func (m *FirmwareUpload) GetPayload() []byte { 2478 if m != nil { 2479 return m.Payload 2480 } 2481 return nil 2482 } 2483 2484 func (m *FirmwareUpload) GetHash() []byte { 2485 if m != nil { 2486 return m.Hash 2487 } 2488 return nil 2489 } 2490 2491 // * 2492 // Request: Perform a device self-test 2493 // @next Success 2494 // @next Failure 2495 type SelfTest struct { 2496 Payload []byte `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"` 2497 XXX_unrecognized []byte `json:"-"` 2498 } 2499 2500 func (m *SelfTest) Reset() { *m = SelfTest{} } 2501 func (m *SelfTest) String() string { return proto.CompactTextString(m) } 2502 func (*SelfTest) ProtoMessage() {} 2503 func (*SelfTest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{63} } 2504 2505 func (m *SelfTest) GetPayload() []byte { 2506 if m != nil { 2507 return m.Payload 2508 } 2509 return nil 2510 } 2511 2512 // * 2513 // Request: "Press" the button on the device 2514 // @next Success 2515 type DebugLinkDecision struct { 2516 YesNo *bool `protobuf:"varint,1,req,name=yes_no,json=yesNo" json:"yes_no,omitempty"` 2517 XXX_unrecognized []byte `json:"-"` 2518 } 2519 2520 func (m *DebugLinkDecision) Reset() { *m = DebugLinkDecision{} } 2521 func (m *DebugLinkDecision) String() string { return proto.CompactTextString(m) } 2522 func (*DebugLinkDecision) ProtoMessage() {} 2523 func (*DebugLinkDecision) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{64} } 2524 2525 func (m *DebugLinkDecision) GetYesNo() bool { 2526 if m != nil && m.YesNo != nil { 2527 return *m.YesNo 2528 } 2529 return false 2530 } 2531 2532 // * 2533 // Request: Computer asks for device state 2534 // @next DebugLinkState 2535 type DebugLinkGetState struct { 2536 XXX_unrecognized []byte `json:"-"` 2537 } 2538 2539 func (m *DebugLinkGetState) Reset() { *m = DebugLinkGetState{} } 2540 func (m *DebugLinkGetState) String() string { return proto.CompactTextString(m) } 2541 func (*DebugLinkGetState) ProtoMessage() {} 2542 func (*DebugLinkGetState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{65} } 2543 2544 // * 2545 // Response: Device current state 2546 // @prev DebugLinkGetState 2547 type DebugLinkState struct { 2548 Layout []byte `protobuf:"bytes,1,opt,name=layout" json:"layout,omitempty"` 2549 Pin *string `protobuf:"bytes,2,opt,name=pin" json:"pin,omitempty"` 2550 Matrix *string `protobuf:"bytes,3,opt,name=matrix" json:"matrix,omitempty"` 2551 Mnemonic *string `protobuf:"bytes,4,opt,name=mnemonic" json:"mnemonic,omitempty"` 2552 Node *HDNodeType `protobuf:"bytes,5,opt,name=node" json:"node,omitempty"` 2553 PassphraseProtection *bool `protobuf:"varint,6,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"` 2554 ResetWord *string `protobuf:"bytes,7,opt,name=reset_word,json=resetWord" json:"reset_word,omitempty"` 2555 ResetEntropy []byte `protobuf:"bytes,8,opt,name=reset_entropy,json=resetEntropy" json:"reset_entropy,omitempty"` 2556 RecoveryFakeWord *string `protobuf:"bytes,9,opt,name=recovery_fake_word,json=recoveryFakeWord" json:"recovery_fake_word,omitempty"` 2557 RecoveryWordPos *uint32 `protobuf:"varint,10,opt,name=recovery_word_pos,json=recoveryWordPos" json:"recovery_word_pos,omitempty"` 2558 XXX_unrecognized []byte `json:"-"` 2559 } 2560 2561 func (m *DebugLinkState) Reset() { *m = DebugLinkState{} } 2562 func (m *DebugLinkState) String() string { return proto.CompactTextString(m) } 2563 func (*DebugLinkState) ProtoMessage() {} 2564 func (*DebugLinkState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{66} } 2565 2566 func (m *DebugLinkState) GetLayout() []byte { 2567 if m != nil { 2568 return m.Layout 2569 } 2570 return nil 2571 } 2572 2573 func (m *DebugLinkState) GetPin() string { 2574 if m != nil && m.Pin != nil { 2575 return *m.Pin 2576 } 2577 return "" 2578 } 2579 2580 func (m *DebugLinkState) GetMatrix() string { 2581 if m != nil && m.Matrix != nil { 2582 return *m.Matrix 2583 } 2584 return "" 2585 } 2586 2587 func (m *DebugLinkState) GetMnemonic() string { 2588 if m != nil && m.Mnemonic != nil { 2589 return *m.Mnemonic 2590 } 2591 return "" 2592 } 2593 2594 func (m *DebugLinkState) GetNode() *HDNodeType { 2595 if m != nil { 2596 return m.Node 2597 } 2598 return nil 2599 } 2600 2601 func (m *DebugLinkState) GetPassphraseProtection() bool { 2602 if m != nil && m.PassphraseProtection != nil { 2603 return *m.PassphraseProtection 2604 } 2605 return false 2606 } 2607 2608 func (m *DebugLinkState) GetResetWord() string { 2609 if m != nil && m.ResetWord != nil { 2610 return *m.ResetWord 2611 } 2612 return "" 2613 } 2614 2615 func (m *DebugLinkState) GetResetEntropy() []byte { 2616 if m != nil { 2617 return m.ResetEntropy 2618 } 2619 return nil 2620 } 2621 2622 func (m *DebugLinkState) GetRecoveryFakeWord() string { 2623 if m != nil && m.RecoveryFakeWord != nil { 2624 return *m.RecoveryFakeWord 2625 } 2626 return "" 2627 } 2628 2629 func (m *DebugLinkState) GetRecoveryWordPos() uint32 { 2630 if m != nil && m.RecoveryWordPos != nil { 2631 return *m.RecoveryWordPos 2632 } 2633 return 0 2634 } 2635 2636 // * 2637 // Request: Ask device to restart 2638 type DebugLinkStop struct { 2639 XXX_unrecognized []byte `json:"-"` 2640 } 2641 2642 func (m *DebugLinkStop) Reset() { *m = DebugLinkStop{} } 2643 func (m *DebugLinkStop) String() string { return proto.CompactTextString(m) } 2644 func (*DebugLinkStop) ProtoMessage() {} 2645 func (*DebugLinkStop) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{67} } 2646 2647 // * 2648 // Response: Device wants host to log event 2649 type DebugLinkLog struct { 2650 Level *uint32 `protobuf:"varint,1,opt,name=level" json:"level,omitempty"` 2651 Bucket *string `protobuf:"bytes,2,opt,name=bucket" json:"bucket,omitempty"` 2652 Text *string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"` 2653 XXX_unrecognized []byte `json:"-"` 2654 } 2655 2656 func (m *DebugLinkLog) Reset() { *m = DebugLinkLog{} } 2657 func (m *DebugLinkLog) String() string { return proto.CompactTextString(m) } 2658 func (*DebugLinkLog) ProtoMessage() {} 2659 func (*DebugLinkLog) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{68} } 2660 2661 func (m *DebugLinkLog) GetLevel() uint32 { 2662 if m != nil && m.Level != nil { 2663 return *m.Level 2664 } 2665 return 0 2666 } 2667 2668 func (m *DebugLinkLog) GetBucket() string { 2669 if m != nil && m.Bucket != nil { 2670 return *m.Bucket 2671 } 2672 return "" 2673 } 2674 2675 func (m *DebugLinkLog) GetText() string { 2676 if m != nil && m.Text != nil { 2677 return *m.Text 2678 } 2679 return "" 2680 } 2681 2682 // * 2683 // Request: Read memory from device 2684 // @next DebugLinkMemory 2685 type DebugLinkMemoryRead struct { 2686 Address *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"` 2687 Length *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"` 2688 XXX_unrecognized []byte `json:"-"` 2689 } 2690 2691 func (m *DebugLinkMemoryRead) Reset() { *m = DebugLinkMemoryRead{} } 2692 func (m *DebugLinkMemoryRead) String() string { return proto.CompactTextString(m) } 2693 func (*DebugLinkMemoryRead) ProtoMessage() {} 2694 func (*DebugLinkMemoryRead) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{69} } 2695 2696 func (m *DebugLinkMemoryRead) GetAddress() uint32 { 2697 if m != nil && m.Address != nil { 2698 return *m.Address 2699 } 2700 return 0 2701 } 2702 2703 func (m *DebugLinkMemoryRead) GetLength() uint32 { 2704 if m != nil && m.Length != nil { 2705 return *m.Length 2706 } 2707 return 0 2708 } 2709 2710 // * 2711 // Response: Device sends memory back 2712 // @prev DebugLinkMemoryRead 2713 type DebugLinkMemory struct { 2714 Memory []byte `protobuf:"bytes,1,opt,name=memory" json:"memory,omitempty"` 2715 XXX_unrecognized []byte `json:"-"` 2716 } 2717 2718 func (m *DebugLinkMemory) Reset() { *m = DebugLinkMemory{} } 2719 func (m *DebugLinkMemory) String() string { return proto.CompactTextString(m) } 2720 func (*DebugLinkMemory) ProtoMessage() {} 2721 func (*DebugLinkMemory) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{70} } 2722 2723 func (m *DebugLinkMemory) GetMemory() []byte { 2724 if m != nil { 2725 return m.Memory 2726 } 2727 return nil 2728 } 2729 2730 // * 2731 // Request: Write memory to device. 2732 // WARNING: Writing to the wrong location can irreparably break the device. 2733 type DebugLinkMemoryWrite struct { 2734 Address *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"` 2735 Memory []byte `protobuf:"bytes,2,opt,name=memory" json:"memory,omitempty"` 2736 Flash *bool `protobuf:"varint,3,opt,name=flash" json:"flash,omitempty"` 2737 XXX_unrecognized []byte `json:"-"` 2738 } 2739 2740 func (m *DebugLinkMemoryWrite) Reset() { *m = DebugLinkMemoryWrite{} } 2741 func (m *DebugLinkMemoryWrite) String() string { return proto.CompactTextString(m) } 2742 func (*DebugLinkMemoryWrite) ProtoMessage() {} 2743 func (*DebugLinkMemoryWrite) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{71} } 2744 2745 func (m *DebugLinkMemoryWrite) GetAddress() uint32 { 2746 if m != nil && m.Address != nil { 2747 return *m.Address 2748 } 2749 return 0 2750 } 2751 2752 func (m *DebugLinkMemoryWrite) GetMemory() []byte { 2753 if m != nil { 2754 return m.Memory 2755 } 2756 return nil 2757 } 2758 2759 func (m *DebugLinkMemoryWrite) GetFlash() bool { 2760 if m != nil && m.Flash != nil { 2761 return *m.Flash 2762 } 2763 return false 2764 } 2765 2766 // * 2767 // Request: Erase block of flash on device 2768 // WARNING: Writing to the wrong location can irreparably break the device. 2769 type DebugLinkFlashErase struct { 2770 Sector *uint32 `protobuf:"varint,1,opt,name=sector" json:"sector,omitempty"` 2771 XXX_unrecognized []byte `json:"-"` 2772 } 2773 2774 func (m *DebugLinkFlashErase) Reset() { *m = DebugLinkFlashErase{} } 2775 func (m *DebugLinkFlashErase) String() string { return proto.CompactTextString(m) } 2776 func (*DebugLinkFlashErase) ProtoMessage() {} 2777 func (*DebugLinkFlashErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{72} } 2778 2779 func (m *DebugLinkFlashErase) GetSector() uint32 { 2780 if m != nil && m.Sector != nil { 2781 return *m.Sector 2782 } 2783 return 0 2784 } 2785 2786 func init() { 2787 proto.RegisterType((*Initialize)(nil), "Initialize") 2788 proto.RegisterType((*GetFeatures)(nil), "GetFeatures") 2789 proto.RegisterType((*Features)(nil), "Features") 2790 proto.RegisterType((*ClearSession)(nil), "ClearSession") 2791 proto.RegisterType((*ApplySettings)(nil), "ApplySettings") 2792 proto.RegisterType((*ApplyFlags)(nil), "ApplyFlags") 2793 proto.RegisterType((*ChangePin)(nil), "ChangePin") 2794 proto.RegisterType((*Ping)(nil), "Ping") 2795 proto.RegisterType((*Success)(nil), "Success") 2796 proto.RegisterType((*Failure)(nil), "Failure") 2797 proto.RegisterType((*ButtonRequest)(nil), "ButtonRequest") 2798 proto.RegisterType((*ButtonAck)(nil), "ButtonAck") 2799 proto.RegisterType((*PinMatrixRequest)(nil), "PinMatrixRequest") 2800 proto.RegisterType((*PinMatrixAck)(nil), "PinMatrixAck") 2801 proto.RegisterType((*Cancel)(nil), "Cancel") 2802 proto.RegisterType((*PassphraseRequest)(nil), "PassphraseRequest") 2803 proto.RegisterType((*PassphraseAck)(nil), "PassphraseAck") 2804 proto.RegisterType((*GetEntropy)(nil), "GetEntropy") 2805 proto.RegisterType((*Entropy)(nil), "Entropy") 2806 proto.RegisterType((*GetPublicKey)(nil), "GetPublicKey") 2807 proto.RegisterType((*PublicKey)(nil), "PublicKey") 2808 proto.RegisterType((*GetAddress)(nil), "GetAddress") 2809 proto.RegisterType((*EthereumGetAddress)(nil), "EthereumGetAddress") 2810 proto.RegisterType((*Address)(nil), "Address") 2811 proto.RegisterType((*EthereumAddress)(nil), "EthereumAddress") 2812 proto.RegisterType((*WipeDevice)(nil), "WipeDevice") 2813 proto.RegisterType((*LoadDevice)(nil), "LoadDevice") 2814 proto.RegisterType((*ResetDevice)(nil), "ResetDevice") 2815 proto.RegisterType((*BackupDevice)(nil), "BackupDevice") 2816 proto.RegisterType((*EntropyRequest)(nil), "EntropyRequest") 2817 proto.RegisterType((*EntropyAck)(nil), "EntropyAck") 2818 proto.RegisterType((*RecoveryDevice)(nil), "RecoveryDevice") 2819 proto.RegisterType((*WordRequest)(nil), "WordRequest") 2820 proto.RegisterType((*WordAck)(nil), "WordAck") 2821 proto.RegisterType((*SignMessage)(nil), "SignMessage") 2822 proto.RegisterType((*VerifyMessage)(nil), "VerifyMessage") 2823 proto.RegisterType((*MessageSignature)(nil), "MessageSignature") 2824 proto.RegisterType((*EncryptMessage)(nil), "EncryptMessage") 2825 proto.RegisterType((*EncryptedMessage)(nil), "EncryptedMessage") 2826 proto.RegisterType((*DecryptMessage)(nil), "DecryptMessage") 2827 proto.RegisterType((*DecryptedMessage)(nil), "DecryptedMessage") 2828 proto.RegisterType((*CipherKeyValue)(nil), "CipherKeyValue") 2829 proto.RegisterType((*CipheredKeyValue)(nil), "CipheredKeyValue") 2830 proto.RegisterType((*EstimateTxSize)(nil), "EstimateTxSize") 2831 proto.RegisterType((*TxSize)(nil), "TxSize") 2832 proto.RegisterType((*SignTx)(nil), "SignTx") 2833 proto.RegisterType((*SimpleSignTx)(nil), "SimpleSignTx") 2834 proto.RegisterType((*TxRequest)(nil), "TxRequest") 2835 proto.RegisterType((*TxAck)(nil), "TxAck") 2836 proto.RegisterType((*EthereumSignTx)(nil), "EthereumSignTx") 2837 proto.RegisterType((*EthereumTxRequest)(nil), "EthereumTxRequest") 2838 proto.RegisterType((*EthereumTxAck)(nil), "EthereumTxAck") 2839 proto.RegisterType((*EthereumSignMessage)(nil), "EthereumSignMessage") 2840 proto.RegisterType((*EthereumVerifyMessage)(nil), "EthereumVerifyMessage") 2841 proto.RegisterType((*EthereumMessageSignature)(nil), "EthereumMessageSignature") 2842 proto.RegisterType((*SignIdentity)(nil), "SignIdentity") 2843 proto.RegisterType((*SignedIdentity)(nil), "SignedIdentity") 2844 proto.RegisterType((*GetECDHSessionKey)(nil), "GetECDHSessionKey") 2845 proto.RegisterType((*ECDHSessionKey)(nil), "ECDHSessionKey") 2846 proto.RegisterType((*SetU2FCounter)(nil), "SetU2FCounter") 2847 proto.RegisterType((*FirmwareErase)(nil), "FirmwareErase") 2848 proto.RegisterType((*FirmwareRequest)(nil), "FirmwareRequest") 2849 proto.RegisterType((*FirmwareUpload)(nil), "FirmwareUpload") 2850 proto.RegisterType((*SelfTest)(nil), "SelfTest") 2851 proto.RegisterType((*DebugLinkDecision)(nil), "DebugLinkDecision") 2852 proto.RegisterType((*DebugLinkGetState)(nil), "DebugLinkGetState") 2853 proto.RegisterType((*DebugLinkState)(nil), "DebugLinkState") 2854 proto.RegisterType((*DebugLinkStop)(nil), "DebugLinkStop") 2855 proto.RegisterType((*DebugLinkLog)(nil), "DebugLinkLog") 2856 proto.RegisterType((*DebugLinkMemoryRead)(nil), "DebugLinkMemoryRead") 2857 proto.RegisterType((*DebugLinkMemory)(nil), "DebugLinkMemory") 2858 proto.RegisterType((*DebugLinkMemoryWrite)(nil), "DebugLinkMemoryWrite") 2859 proto.RegisterType((*DebugLinkFlashErase)(nil), "DebugLinkFlashErase") 2860 proto.RegisterEnum("MessageType", MessageType_name, MessageType_value) 2861 } 2862 2863 func init() { proto.RegisterFile("messages.proto", fileDescriptor1) } 2864 2865 var fileDescriptor1 = []byte{ 2866 // 3424 bytes of a gzipped FileDescriptorProto 2867 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xcb, 0x6f, 0xdc, 0x46, 2868 0x9a, 0x5f, 0x76, 0xb7, 0xfa, 0xf1, 0x35, 0xbb, 0x55, 0xa2, 0x2d, 0xbb, 0x2d, 0x5b, 0xb6, 0x4c, 2869 0xc9, 0xb6, 0x64, 0x27, 0xed, 0x44, 0x79, 0x6c, 0xd6, 0xbb, 0x79, 0xc8, 0x7a, 0xd8, 0xde, 0xd8, 2870 0x8e, 0xc0, 0x56, 0x9c, 0xdb, 0x12, 0x14, 0x59, 0xea, 0xae, 0x55, 0x37, 0xc9, 0xf0, 0xa1, 0xa8, 2871 0x7d, 0xd8, 0xeb, 0xee, 0x65, 0x81, 0xec, 0x69, 0x73, 0x1a, 0xe4, 0x36, 0x19, 0x04, 0x18, 0x0c, 2872 0x30, 0x18, 0x60, 0x72, 0x9a, 0x3f, 0x60, 0xfe, 0x8b, 0x39, 0xce, 0x1f, 0x30, 0xe7, 0x41, 0x3d, 2873 0x48, 0x16, 0x29, 0xb6, 0x6c, 0x27, 0xc0, 0x5c, 0x04, 0xd6, 0x57, 0xbf, 0xfe, 0xea, 0x7b, 0xd5, 2874 0x57, 0x5f, 0x7d, 0x25, 0xe8, 0x4e, 0x70, 0x18, 0x5a, 0x43, 0x1c, 0xf6, 0xfd, 0xc0, 0x8b, 0xbc, 2875 0xa5, 0x76, 0x34, 0xf5, 0x93, 0x81, 0xae, 0x02, 0x3c, 0x71, 0x49, 0x44, 0xac, 0x31, 0x79, 0x89, 2876 0xf5, 0x0e, 0xb4, 0x1f, 0xe1, 0x68, 0x0f, 0x5b, 0x51, 0x1c, 0xe0, 0x50, 0xff, 0x69, 0x0e, 0x9a, 2877 0xc9, 0x40, 0xbb, 0x04, 0xf5, 0x13, 0xec, 0x3a, 0x5e, 0xd0, 0x53, 0x56, 0x94, 0xf5, 0x96, 0x21, 2878 0x46, 0xda, 0x2a, 0x74, 0x26, 0xd6, 0x7f, 0x7a, 0x81, 0x79, 0x82, 0x83, 0x90, 0x78, 0x6e, 0xaf, 2879 0xb2, 0xa2, 0xac, 0x77, 0x0c, 0x95, 0x11, 0x5f, 0x70, 0x1a, 0x03, 0x11, 0x57, 0x02, 0x55, 0x05, 2880 0x88, 0x12, 0x25, 0x90, 0x6f, 0x45, 0xf6, 0x28, 0x05, 0xd5, 0x38, 0x88, 0x11, 0x13, 0xd0, 0x1d, 2881 0x98, 0x3f, 0xf4, 0xbc, 0x68, 0xec, 0x59, 0x0e, 0x0e, 0xcc, 0x89, 0xe7, 0xe0, 0xde, 0xdc, 0x8a, 2882 0xb2, 0xde, 0x34, 0xba, 0x19, 0xf9, 0x99, 0xe7, 0x60, 0xed, 0x2a, 0xb4, 0x1c, 0x7c, 0x42, 0x6c, 2883 0x6c, 0x12, 0xa7, 0x57, 0x67, 0x22, 0x37, 0x39, 0xe1, 0x89, 0xa3, 0xdd, 0x82, 0xae, 0x4f, 0x5c, 2884 0x93, 0xda, 0x00, 0xdb, 0x11, 0x5d, 0xab, 0xc1, 0x98, 0x74, 0x7c, 0xe2, 0xee, 0xa7, 0x44, 0xed, 2885 0x3d, 0x58, 0xf4, 0xad, 0x30, 0xf4, 0x47, 0x81, 0x15, 0x62, 0x19, 0xdd, 0x64, 0xe8, 0x8b, 0xd9, 2886 0xa4, 0xf4, 0xa3, 0x25, 0x68, 0x8e, 0x2d, 0x77, 0x18, 0x5b, 0x43, 0xdc, 0x6b, 0xf1, 0x75, 0x93, 2887 0xb1, 0x76, 0x11, 0xe6, 0xc6, 0xd6, 0x21, 0x1e, 0xf7, 0x80, 0x4d, 0xf0, 0x81, 0x76, 0x03, 0xe6, 2888 0x6c, 0x8f, 0xb8, 0x61, 0xaf, 0xbd, 0x52, 0x5d, 0x6f, 0x6f, 0xb6, 0xfa, 0xdb, 0x1e, 0x71, 0x0f, 2889 0xa6, 0x3e, 0x36, 0x38, 0x5d, 0x5b, 0x81, 0x36, 0x49, 0xbd, 0xe4, 0xf4, 0x54, 0xb6, 0xba, 0x4c, 2890 0xa2, 0x8b, 0x06, 0xf8, 0x84, 0x30, 0xb3, 0x75, 0x56, 0x94, 0x75, 0xd5, 0x48, 0xc7, 0x05, 0x93, 2891 0x8d, 0xac, 0x70, 0xd4, 0xeb, 0x32, 0x88, 0x64, 0xb2, 0xc7, 0x56, 0x38, 0xa2, 0x4c, 0xc8, 0xc4, 2892 0xf7, 0x82, 0x08, 0x3b, 0xbd, 0x79, 0xb6, 0x46, 0x3a, 0xd6, 0x96, 0x01, 0xa8, 0xc5, 0x6c, 0xcb, 2893 0x1e, 0x61, 0xa7, 0x87, 0xd8, 0x6c, 0xcb, 0x27, 0xee, 0x36, 0x23, 0x68, 0xf7, 0x60, 0x41, 0xb2, 2894 0x94, 0x40, 0x2d, 0x30, 0x14, 0xca, 0x26, 0x04, 0x78, 0x03, 0xd0, 0x11, 0x09, 0x26, 0xdf, 0x58, 2895 0x01, 0x35, 0x2a, 0x0e, 0xb1, 0x1b, 0xf5, 0x34, 0x86, 0x9d, 0x4f, 0xe8, 0xfb, 0x9c, 0xac, 0xdd, 2896 0x04, 0xd5, 0xc5, 0xd8, 0x09, 0xcd, 0x43, 0xcb, 0x3e, 0x8e, 0xfd, 0xde, 0x05, 0xae, 0x3a, 0xa3, 2897 0x3d, 0x64, 0x24, 0x6a, 0xd3, 0xa3, 0xb1, 0x35, 0x0c, 0x7b, 0x17, 0x59, 0xb8, 0xf0, 0x81, 0xde, 2898 0x05, 0x75, 0x7b, 0x8c, 0xad, 0x60, 0x80, 0x43, 0x6a, 0x04, 0xfd, 0x7f, 0x14, 0xe8, 0x6c, 0xf9, 2899 0xfe, 0x78, 0x3a, 0xc0, 0x51, 0x44, 0xdc, 0x61, 0x98, 0xf3, 0x93, 0x32, 0xcb, 0x4f, 0x15, 0xd9, 2900 0x4f, 0xb7, 0xa0, 0x1b, 0xd3, 0x38, 0x48, 0xf5, 0x61, 0x61, 0xdc, 0x34, 0x3a, 0x71, 0x88, 0xf7, 2901 0x53, 0xa2, 0x76, 0x1d, 0x60, 0xe4, 0x4d, 0x70, 0x68, 0x07, 0x18, 0xf3, 0x20, 0x56, 0x0d, 0x89, 2902 0xa2, 0xeb, 0x00, 0x4c, 0x92, 0x3d, 0x2a, 0x68, 0x26, 0xbe, 0x22, 0x8b, 0xbf, 0x0a, 0xad, 0xed, 2903 0x91, 0xe5, 0x0e, 0xf1, 0x3e, 0x71, 0xe9, 0xd6, 0x0b, 0xf0, 0xc4, 0x3b, 0xe1, 0x72, 0x36, 0x0d, 2904 0x31, 0xd2, 0x7f, 0xa3, 0x40, 0x6d, 0x9f, 0xb8, 0x43, 0xad, 0x07, 0x0d, 0xb1, 0xc9, 0x85, 0x26, 2905 0xc9, 0x90, 0xfa, 0xe5, 0x30, 0x8e, 0x22, 0x2f, 0x17, 0xeb, 0x15, 0xee, 0x17, 0x3e, 0x21, 0x45, 2906 0xee, 0xd9, 0x5d, 0x51, 0x7d, 0xa3, 0x5d, 0x51, 0x9b, 0xbd, 0x2b, 0xf4, 0x55, 0x68, 0x0c, 0x62, 2907 0xdb, 0xc6, 0x61, 0x38, 0x5b, 0x5a, 0x7d, 0x17, 0x1a, 0x7b, 0x16, 0x19, 0xc7, 0x01, 0xd6, 0x56, 2908 0xa0, 0x66, 0xd3, 0xcd, 0x4d, 0x11, 0xdd, 0x4d, 0xb5, 0x2f, 0xe8, 0x6c, 0x57, 0xb0, 0x19, 0x99, 2909 0x4d, 0x25, 0xcf, 0xe6, 0x73, 0xe8, 0x3c, 0x64, 0xba, 0x19, 0xf8, 0xeb, 0x18, 0x87, 0x91, 0x76, 2910 0x3b, 0xc7, 0x4c, 0xeb, 0xe7, 0x66, 0x25, 0x96, 0x1a, 0xd4, 0x1c, 0x2b, 0xb2, 0x04, 0x3f, 0xf6, 2911 0xad, 0xb7, 0xa1, 0xc5, 0xe1, 0x5b, 0xf6, 0xb1, 0xfe, 0x31, 0xa0, 0x7d, 0xe2, 0x3e, 0xb3, 0xa2, 2912 0x80, 0x9c, 0x26, 0xcc, 0x37, 0xa0, 0x46, 0x33, 0xaa, 0x60, 0xbe, 0xd8, 0x2f, 0x02, 0x38, 0x7f, 2913 0x0a, 0xd1, 0x57, 0x40, 0x4d, 0x67, 0xb7, 0xec, 0x63, 0x0d, 0x41, 0xd5, 0x27, 0x6e, 0x4f, 0x59, 2914 0xa9, 0xac, 0xb7, 0x0c, 0xfa, 0xa9, 0x37, 0xa1, 0xbe, 0x6d, 0xb9, 0x36, 0x1e, 0xeb, 0x17, 0x60, 2915 0x21, 0x8b, 0x29, 0xc1, 0x4a, 0xbf, 0x0f, 0x9d, 0x8c, 0x48, 0x39, 0x5c, 0x07, 0x90, 0xc2, 0x91, 2916 0x33, 0x92, 0x28, 0xfa, 0x0a, 0xc0, 0x23, 0x1c, 0xed, 0xba, 0x51, 0xe0, 0xf9, 0x53, 0xaa, 0x5f, 2917 0x48, 0x5e, 0x72, 0x5c, 0xc7, 0x60, 0xdf, 0xd4, 0x31, 0xc9, 0x74, 0x0f, 0x1a, 0x98, 0x7f, 0x32, 2918 0x84, 0x6a, 0x24, 0x43, 0xfd, 0x57, 0x0a, 0xa8, 0x8f, 0x70, 0xb4, 0x1f, 0x1f, 0x8e, 0x89, 0xfd, 2919 0x39, 0x9e, 0xd2, 0xec, 0x6a, 0x39, 0x4e, 0x80, 0xc3, 0xd0, 0xa4, 0xf2, 0x57, 0xd7, 0x3b, 0x46, 2920 0x53, 0x10, 0x9e, 0x6b, 0xeb, 0x80, 0xb0, 0xed, 0x84, 0x96, 0x69, 0xc7, 0xc1, 0x09, 0x36, 0x5d, 2921 0x6b, 0x92, 0xb8, 0xa8, 0xcb, 0xe8, 0xdb, 0x94, 0xfc, 0xdc, 0x9a, 0x60, 0xba, 0xbd, 0xc3, 0x91, 2922 0xf7, 0x8d, 0xe9, 0x90, 0xd0, 0x1f, 0x5b, 0x53, 0x11, 0x6f, 0x6d, 0x4a, 0xdb, 0xe1, 0x24, 0x6d, 2923 0x0d, 0x5a, 0x34, 0x09, 0x72, 0x2e, 0x34, 0xc2, 0x5a, 0x0f, 0x1a, 0x0f, 0x49, 0x44, 0x69, 0x46, 2924 0x93, 0xfe, 0xa5, 0x8c, 0xf4, 0xcf, 0xa0, 0x95, 0x09, 0x77, 0x03, 0x6a, 0x2e, 0x77, 0x77, 0x65, 2925 0xbd, 0xbd, 0xd9, 0xee, 0x3f, 0xde, 0x79, 0xee, 0x39, 0x22, 0x74, 0x5c, 0xe1, 0xe7, 0x53, 0x3f, 2926 0x3e, 0x4c, 0xfc, 0x4c, 0xbf, 0xf5, 0xbf, 0x2a, 0xcc, 0x54, 0x5b, 0x5c, 0x89, 0xf3, 0x15, 0xcc, 2927 0xc9, 0x54, 0x99, 0x21, 0xd3, 0xeb, 0x28, 0xf7, 0x01, 0x34, 0x27, 0xf1, 0x38, 0x22, 0x21, 0x19, 2928 0x32, 0xdd, 0xda, 0x9b, 0x57, 0xfa, 0xcf, 0x04, 0xc1, 0xc0, 0x0e, 0xc6, 0x93, 0x81, 0x1d, 0x10, 2929 0x9f, 0xc7, 0x50, 0x0a, 0xd5, 0x3e, 0x85, 0x76, 0xc8, 0xe8, 0x26, 0x8b, 0xbc, 0x39, 0x16, 0x79, 2930 0xa8, 0xff, 0xc4, 0xf5, 0xe3, 0x28, 0xfb, 0xc1, 0x03, 0x75, 0xb0, 0xbf, 0xfb, 0x7c, 0x67, 0x6b, 2931 0x67, 0xc7, 0xd8, 0x1d, 0x0c, 0x0c, 0x08, 0xd3, 0x19, 0xfd, 0x00, 0xb4, 0xdd, 0x68, 0x84, 0x03, 2932 0x1c, 0x4f, 0x5e, 0x57, 0xe7, 0xa2, 0x36, 0x95, 0x33, 0xda, 0xd0, 0x50, 0x4a, 0x58, 0xf5, 0xa0, 2933 0x21, 0x7e, 0x29, 0x82, 0x32, 0x19, 0xea, 0xf7, 0x60, 0x3e, 0x59, 0x7a, 0x06, 0x58, 0xcd, 0xc0, 2934 0x2a, 0xc0, 0x57, 0xc4, 0xc7, 0x3b, 0xec, 0xdc, 0xd6, 0xff, 0xaf, 0x02, 0xf0, 0xd4, 0xb3, 0x1c, 2935 0x3e, 0xa4, 0x09, 0x7c, 0xe2, 0xe2, 0x89, 0xe7, 0x12, 0x3b, 0x49, 0xe0, 0xc9, 0x38, 0x0d, 0x81, 2936 0x0a, 0x33, 0x6a, 0x49, 0x08, 0x88, 0xad, 0x57, 0x65, 0xbf, 0xa3, 0x9f, 0x3f, 0x2b, 0xad, 0x69, 2937 0xab, 0xd2, 0x21, 0x32, 0xc7, 0x03, 0x01, 0xbb, 0xc3, 0x31, 0x09, 0x47, 0x65, 0xa7, 0x49, 0x5d, 2938 0x3e, 0x4d, 0x56, 0xa1, 0x13, 0x1e, 0x13, 0xdf, 0xb4, 0x47, 0xd8, 0x3e, 0x0e, 0xe3, 0x89, 0x28, 2939 0x41, 0x54, 0x4a, 0xdc, 0x16, 0x34, 0xed, 0x06, 0xb4, 0xe3, 0xcd, 0x23, 0xd3, 0xf6, 0x62, 0x37, 2940 0xc2, 0x01, 0xab, 0x3b, 0x3a, 0x06, 0xc4, 0x9b, 0x47, 0xdb, 0x9c, 0xa2, 0xff, 0xb6, 0x02, 0x6d, 2941 0x03, 0x87, 0x38, 0x12, 0x46, 0xb9, 0x05, 0x5d, 0xe1, 0x21, 0x33, 0xb0, 0x5c, 0xc7, 0x9b, 0x88, 2942 0x33, 0xa3, 0x23, 0xa8, 0x06, 0x23, 0x6a, 0x37, 0xa0, 0x19, 0x46, 0x01, 0x76, 0x87, 0xd1, 0x88, 2943 0x17, 0x6c, 0x0f, 0xaa, 0x9b, 0x1f, 0x7c, 0x68, 0xa4, 0xc4, 0xd9, 0xd6, 0xa8, 0x9e, 0x63, 0x8d, 2944 0xb3, 0x07, 0x48, 0xad, 0xec, 0x00, 0xf9, 0x05, 0x46, 0x2b, 0xd8, 0xa3, 0x51, 0xb4, 0x07, 0x05, 2945 0x30, 0xab, 0x8a, 0x7a, 0x81, 0x17, 0x6a, 0x40, 0x49, 0xbc, 0x5c, 0xa0, 0x85, 0x01, 0xff, 0x12, 2946 0x41, 0x85, 0xa0, 0x2b, 0xf2, 0x5f, 0x92, 0x64, 0x6f, 0x03, 0x08, 0x0a, 0xcd, 0xb0, 0xb9, 0xa4, 2947 0xa8, 0xc8, 0x49, 0xf1, 0x4f, 0x15, 0xe8, 0x1a, 0xd8, 0xf6, 0x4e, 0x70, 0x30, 0x15, 0xd6, 0x5f, 2948 0x06, 0xf8, 0xc6, 0x0b, 0x1c, 0x2e, 0x9f, 0x38, 0xd1, 0x5b, 0x94, 0xc2, 0xc4, 0x9b, 0x6d, 0xd4, 2949 0xca, 0x1b, 0x19, 0xb5, 0xfa, 0x2a, 0xa3, 0xd6, 0x5e, 0x69, 0xd4, 0x39, 0xd9, 0xa8, 0x1b, 0x80, 2950 0xb0, 0x7b, 0xe4, 0x05, 0x36, 0x36, 0xa9, 0xac, 0x63, 0x12, 0x46, 0xcc, 0xea, 0x4d, 0x63, 0x5e, 2951 0xd0, 0xbf, 0x12, 0x64, 0x9a, 0x39, 0x59, 0xca, 0xe1, 0x81, 0xc8, 0xbe, 0x8b, 0x3e, 0x69, 0x9d, 2952 0xf1, 0xc9, 0x65, 0x68, 0x38, 0xc1, 0xd4, 0x0c, 0x62, 0x97, 0xd5, 0xbd, 0x4d, 0xa3, 0xee, 0x04, 2953 0x53, 0x23, 0x76, 0xf5, 0xf7, 0xa0, 0x4d, 0x39, 0x27, 0x27, 0xe9, 0x5a, 0xee, 0x24, 0x45, 0x7d, 2954 0x69, 0x4e, 0x3a, 0x44, 0x97, 0xa1, 0x41, 0x27, 0xa8, 0x6f, 0x34, 0xa8, 0x51, 0x81, 0x45, 0x8a, 2955 0x61, 0xdf, 0xfa, 0x8f, 0x0a, 0xb4, 0x07, 0x64, 0xe8, 0x3e, 0x13, 0x15, 0xd0, 0xb9, 0x49, 0x2d, 2956 0x57, 0x43, 0xb0, 0xcc, 0x93, 0x14, 0x4e, 0xb9, 0x14, 0x5f, 0x9d, 0x95, 0xe2, 0x0b, 0x89, 0xb8, 2957 0xf6, 0xc6, 0x89, 0xf8, 0xbf, 0x15, 0xe8, 0xbc, 0xc0, 0x01, 0x39, 0x9a, 0x26, 0xf2, 0xe6, 0x92, 2958 0xa1, 0x22, 0x65, 0x4e, 0xed, 0x1a, 0xb4, 0x42, 0x32, 0x74, 0xd9, 0x7d, 0x8c, 0x45, 0x8c, 0x6a, 2959 0x64, 0x04, 0x59, 0x95, 0x2a, 0x8f, 0xd3, 0x52, 0x55, 0x66, 0x9e, 0xa0, 0xff, 0x0e, 0x48, 0x88, 2960 0x30, 0x90, 0x79, 0xfe, 0x1c, 0x59, 0xf4, 0x1f, 0x14, 0xba, 0xa9, 0xec, 0x60, 0xea, 0x47, 0x89, 2961 0x5a, 0x97, 0xa0, 0xee, 0xc7, 0x87, 0xc7, 0x38, 0xd9, 0x45, 0x62, 0x54, 0xac, 0xe2, 0x24, 0xb1, 2962 0x6f, 0x82, 0x9a, 0x64, 0x32, 0xcf, 0x1d, 0xa7, 0xc7, 0xa7, 0xa0, 0x7d, 0xe1, 0x8e, 0x0b, 0x55, 2963 0x48, 0xed, 0xbc, 0x43, 0x7a, 0x6e, 0x96, 0xda, 0x2f, 0x00, 0x09, 0x49, 0xb1, 0x93, 0xc8, 0x7a, 2964 0x11, 0xe6, 0x5c, 0xcf, 0xb5, 0xb1, 0x10, 0x95, 0x0f, 0xce, 0x91, 0x54, 0x83, 0xda, 0x68, 0x62, 2965 0xd9, 0xc2, 0xee, 0xec, 0x5b, 0xff, 0x1a, 0xba, 0x3b, 0x38, 0x67, 0x81, 0x73, 0x03, 0x31, 0x5d, 2966 0xb2, 0x32, 0x63, 0xc9, 0x6a, 0xf9, 0x92, 0x35, 0x69, 0xc9, 0x3d, 0x40, 0x62, 0xc9, 0x4c, 0x95, 2967 0x42, 0xad, 0x2d, 0x71, 0x90, 0x7c, 0x5b, 0xc9, 0xf9, 0x56, 0xff, 0xb3, 0x02, 0xdd, 0x6d, 0xe2, 2968 0x8f, 0x70, 0xf0, 0x39, 0x9e, 0xbe, 0xb0, 0xc6, 0xf1, 0x2b, 0x64, 0x47, 0x50, 0xa5, 0x7e, 0xe5, 2969 0x5c, 0xe8, 0x27, 0xd5, 0xe6, 0x84, 0xfe, 0x4e, 0x48, 0xcd, 0x07, 0x3c, 0x93, 0x32, 0xf9, 0xc4, 2970 0xb1, 0x90, 0x0c, 0xb5, 0x35, 0xe8, 0x5a, 0xe1, 0xb1, 0xe9, 0xb9, 0x66, 0x02, 0xe0, 0x77, 0x7a, 2971 0xd5, 0x0a, 0x8f, 0xbf, 0x70, 0x77, 0xcf, 0xa0, 0x1c, 0xae, 0xa6, 0x48, 0x52, 0x1c, 0x25, 0x54, 2972 0xd7, 0xba, 0x50, 0x21, 0x27, 0xec, 0x60, 0x50, 0x8d, 0x0a, 0x39, 0xd1, 0xd7, 0x01, 0x71, 0x65, 2973 0xb0, 0x93, 0xaa, 0x93, 0xca, 0xa7, 0x48, 0xf2, 0xe9, 0xff, 0x05, 0xdd, 0xdd, 0x30, 0x22, 0x13, 2974 0x2b, 0xc2, 0x07, 0xa7, 0x03, 0xf2, 0x12, 0xd3, 0x23, 0xda, 0x8b, 0x23, 0x3f, 0x8e, 0xc2, 0x34, 2975 0xa3, 0xd3, 0xc2, 0x59, 0x15, 0x44, 0x9e, 0xd4, 0x6f, 0x82, 0x4a, 0x5c, 0x09, 0x53, 0x61, 0x98, 2976 0x36, 0xa7, 0x71, 0xc8, 0x6b, 0x25, 0x13, 0xfd, 0x26, 0xd4, 0xc5, 0xba, 0x97, 0xa1, 0x11, 0x9d, 2977 0x9a, 0xa2, 0x54, 0xa7, 0xd9, 0xb4, 0x1e, 0xb1, 0x09, 0xfd, 0xf7, 0x0a, 0xd4, 0xe9, 0xf6, 0x3c, 2978 0x38, 0xfd, 0xc7, 0xca, 0xa6, 0x5d, 0x85, 0x46, 0xae, 0x2b, 0xf3, 0x40, 0x79, 0xd7, 0x48, 0x28, 2979 0xda, 0x75, 0x68, 0x8d, 0x3d, 0xfb, 0xd8, 0x8c, 0x88, 0xd8, 0x69, 0x9d, 0x07, 0xca, 0x3b, 0x46, 2980 0x93, 0xd2, 0x0e, 0xc8, 0x04, 0xeb, 0x7f, 0x53, 0x40, 0x1d, 0x90, 0x89, 0x3f, 0xc6, 0x42, 0xf6, 2981 0x35, 0xa8, 0x73, 0x11, 0x58, 0x2c, 0xb5, 0x37, 0xd5, 0xfe, 0xc1, 0x29, 0xcb, 0x99, 0x2c, 0xcd, 2982 0x8b, 0x39, 0xed, 0x0e, 0x34, 0x84, 0x32, 0xbd, 0x0a, 0x83, 0x75, 0xfa, 0x07, 0xa7, 0x5f, 0x30, 2983 0x0a, 0xc3, 0x25, 0xb3, 0xda, 0xfb, 0xa0, 0x46, 0x81, 0xe5, 0x86, 0x16, 0x3b, 0x09, 0xc3, 0x5e, 2984 0x95, 0xa1, 0x51, 0xff, 0x20, 0x23, 0xb2, 0x1f, 0xe4, 0x50, 0xaf, 0x97, 0x16, 0x65, 0xc5, 0xe7, 2985 0xce, 0x57, 0xbc, 0x7e, 0x56, 0xf1, 0x5f, 0x2b, 0xd0, 0x3a, 0x48, 0x2f, 0x8a, 0xf7, 0x41, 0x0d, 2986 0xf8, 0xa7, 0x29, 0x1d, 0x73, 0x6a, 0x5f, 0x3e, 0xe2, 0xda, 0x41, 0x36, 0xd0, 0xee, 0x43, 0xc3, 2987 0xc1, 0x91, 0x45, 0xc6, 0xa1, 0xa8, 0x63, 0x17, 0xfb, 0x29, 0xb7, 0x1d, 0x3e, 0xc1, 0x0d, 0x21, 2988 0x50, 0xda, 0x47, 0x00, 0x21, 0x0e, 0x92, 0x36, 0x51, 0x95, 0xfd, 0xa6, 0x97, 0xfd, 0x66, 0x90, 2989 0xce, 0xb1, 0x9f, 0x49, 0x58, 0x7d, 0x03, 0xe6, 0x0e, 0xd8, 0x95, 0x74, 0x05, 0x2a, 0xd1, 0x29, 2990 0x13, 0xad, 0xcc, 0x82, 0x95, 0xe8, 0x54, 0xff, 0xdf, 0x0a, 0x74, 0x93, 0x0a, 0x5e, 0xf8, 0xf3, 2991 0x67, 0xa4, 0xb6, 0xab, 0xd0, 0x1a, 0x5a, 0xa1, 0xe9, 0x07, 0xc4, 0x4e, 0xd2, 0x44, 0x73, 0x68, 2992 0x85, 0xfb, 0x74, 0x9c, 0x4c, 0x8e, 0xc9, 0x84, 0x44, 0x22, 0xc5, 0xd1, 0xc9, 0xa7, 0x74, 0x4c, 2993 0x37, 0x78, 0xe4, 0x31, 0x67, 0xa8, 0x46, 0x25, 0xf2, 0xb2, 0xcd, 0x5c, 0x97, 0x93, 0xcd, 0x5b, 2994 0xa0, 0xd1, 0xeb, 0xbb, 0x29, 0x9a, 0x64, 0xa6, 0x3d, 0x8a, 0xdd, 0x63, 0x91, 0x16, 0x10, 0x9d, 2995 0x11, 0x6d, 0xcf, 0x6d, 0x4a, 0xa7, 0x25, 0x0c, 0x43, 0x8f, 0x79, 0x45, 0x2c, 0xca, 0x6c, 0x4a, 2996 0x7a, 0xca, 0xcb, 0xe1, 0x2b, 0xd0, 0xb4, 0x47, 0x16, 0x71, 0x4d, 0xe2, 0x88, 0x02, 0xa7, 0xc1, 2997 0xc6, 0x4f, 0x1c, 0xfd, 0xff, 0x15, 0x58, 0x48, 0xec, 0x91, 0x39, 0xbb, 0xc0, 0x51, 0x39, 0xc3, 2998 0x91, 0x16, 0xaa, 0xc9, 0x81, 0x69, 0x9e, 0x88, 0xae, 0x29, 0xa4, 0xa4, 0x17, 0x79, 0x40, 0x20, 2999 0x6c, 0x94, 0x01, 0x8c, 0x3c, 0x20, 0x4c, 0x1a, 0x4d, 0x29, 0x69, 0xa0, 0xf7, 0xa1, 0x93, 0x09, 3000 0x46, 0x9d, 0xbb, 0x0c, 0x4c, 0x02, 0x61, 0x0c, 0x9e, 0xfc, 0x5a, 0x94, 0xc2, 0xac, 0xa0, 0x3f, 3001 0x85, 0x0b, 0xb2, 0x63, 0x7f, 0x59, 0x05, 0xa5, 0x13, 0x58, 0x4c, 0xb8, 0x9d, 0x5b, 0xe1, 0xa8, 3002 0xbf, 0xb8, 0xc2, 0xd1, 0x0d, 0xe8, 0x25, 0x4b, 0xbd, 0xaa, 0x86, 0x79, 0xdd, 0xd5, 0xf4, 0x9f, 3003 0x58, 0xd2, 0x1a, 0xba, 0x4f, 0x1c, 0xec, 0x46, 0x24, 0x9a, 0x6a, 0x1b, 0xd0, 0x24, 0xe2, 0x5b, 3004 0xec, 0x8f, 0x4e, 0x3f, 0x99, 0xe4, 0xf7, 0x73, 0x92, 0x41, 0x91, 0x3d, 0xb2, 0xc6, 0xd4, 0xf7, 3005 0xd8, 0x1c, 0x11, 0xc7, 0xc1, 0xae, 0x58, 0x60, 0x3e, 0xa5, 0x3f, 0x66, 0xe4, 0x3c, 0xf4, 0x84, 3006 0x84, 0xb1, 0x35, 0x16, 0x97, 0xd2, 0x0c, 0xfa, 0x82, 0x91, 0x4b, 0xdb, 0x2a, 0xb5, 0xb2, 0xb6, 3007 0x8a, 0x3e, 0x84, 0x2e, 0x15, 0x1d, 0x3b, 0xa9, 0xf0, 0xb3, 0x2b, 0xb9, 0x65, 0x00, 0x9f, 0x75, 3008 0x4e, 0xcc, 0xe4, 0x10, 0x57, 0x8d, 0x96, 0x9f, 0xf6, 0x52, 0x72, 0x46, 0xaa, 0x16, 0x8d, 0xf4, 3009 0xad, 0x02, 0x0b, 0x8f, 0x70, 0xb4, 0xbb, 0xbd, 0xf3, 0x58, 0x34, 0x5a, 0xe9, 0x6f, 0xde, 0xc0, 3010 0x52, 0xb7, 0x61, 0xde, 0xc7, 0x38, 0x30, 0xcf, 0x88, 0xd0, 0xa1, 0xe4, 0xac, 0xa5, 0x53, 0xa6, 3011 0x7b, 0xb5, 0x54, 0xf7, 0x77, 0xa1, 0x5b, 0x10, 0x87, 0xee, 0x13, 0x3e, 0x32, 0xb3, 0xfa, 0x13, 3012 0xc2, 0x14, 0xa0, 0xbf, 0x03, 0x9d, 0x01, 0x8e, 0xbe, 0xdc, 0xdc, 0x93, 0x2e, 0x91, 0xf2, 0x8d, 3013 0x46, 0x39, 0x73, 0xeb, 0xbe, 0x03, 0x9d, 0x3d, 0xd1, 0xa9, 0xde, 0x65, 0x3d, 0xdf, 0x4b, 0x50, 3014 0xcf, 0xed, 0x74, 0x31, 0xd2, 0xb7, 0x60, 0x3e, 0x01, 0x26, 0x99, 0xe1, 0x12, 0xd4, 0xbd, 0xa3, 3015 0xa3, 0x10, 0x27, 0xf7, 0x43, 0x31, 0x92, 0x58, 0x54, 0x72, 0x2c, 0x3e, 0x81, 0x6e, 0xc2, 0xe2, 3016 0x4b, 0x7f, 0xec, 0x59, 0x0e, 0x75, 0xa6, 0x6f, 0x4d, 0xe9, 0x67, 0xd2, 0x2f, 0x11, 0x43, 0x56, 3017 0x16, 0x5a, 0xe1, 0x48, 0xd8, 0x90, 0x7d, 0xeb, 0x6b, 0xd0, 0x1c, 0xe0, 0xf1, 0xd1, 0x01, 0x5d, 3018 0x3b, 0xf7, 0x4b, 0x45, 0xfa, 0xa5, 0x7e, 0x17, 0x16, 0x76, 0xf0, 0x61, 0x3c, 0x7c, 0x4a, 0xdc, 3019 0xe3, 0x1d, 0x6c, 0xf3, 0x97, 0x83, 0x45, 0xa8, 0x4f, 0x71, 0x68, 0xba, 0x1e, 0x5b, 0xa7, 0x69, 3020 0xcc, 0x4d, 0x71, 0xf8, 0xdc, 0xd3, 0x2f, 0x48, 0xd8, 0x47, 0x38, 0x1a, 0x44, 0x56, 0x84, 0xf5, 3021 0xbf, 0x54, 0x68, 0xc5, 0x2b, 0xa8, 0x8c, 0xc4, 0x34, 0xb2, 0xa6, 0x5e, 0x1c, 0x25, 0x35, 0x3f, 3022 0x1f, 0x25, 0xbd, 0x97, 0x4a, 0xd6, 0x7b, 0xb9, 0x04, 0xf5, 0x09, 0xeb, 0x8a, 0x0a, 0xa7, 0x8a, 3023 0x51, 0xae, 0xc5, 0x53, 0x9b, 0xd1, 0xe2, 0x99, 0x9b, 0xd5, 0xe2, 0x99, 0x79, 0xdb, 0xae, 0x9f, 3024 0x73, 0xdb, 0x5e, 0x06, 0x08, 0x70, 0x88, 0x23, 0x76, 0x13, 0x66, 0xe7, 0x45, 0xcb, 0x68, 0x31, 3025 0x0a, 0xbd, 0x74, 0xd2, 0xaa, 0x8b, 0x4f, 0x27, 0x3d, 0x81, 0x26, 0xd3, 0x4c, 0x65, 0xc4, 0xa4, 3026 0x8f, 0xfa, 0x16, 0x68, 0x81, 0xe8, 0x0b, 0x98, 0x47, 0xd6, 0x31, 0xbf, 0x55, 0x8b, 0xb7, 0x20, 3027 0x94, 0xcc, 0xec, 0x59, 0xc7, 0xec, 0x5a, 0xad, 0xdd, 0x85, 0x85, 0x14, 0xcd, 0x9a, 0x07, 0xbe, 3028 0x17, 0xb2, 0x7b, 0x72, 0xc7, 0x98, 0x4f, 0x26, 0x28, 0x70, 0xdf, 0x0b, 0xf5, 0x79, 0xe8, 0x48, 3029 0x36, 0xf6, 0x7c, 0x7d, 0x1f, 0xd4, 0x94, 0xf0, 0xd4, 0x1b, 0xb2, 0x0b, 0x3e, 0x3e, 0xc1, 0xe3, 3030 0xe4, 0x35, 0x81, 0x0d, 0xa8, 0x79, 0x0f, 0x63, 0xfb, 0x18, 0x47, 0xc2, 0xe6, 0x62, 0xc4, 0x6e, 3031 0xf3, 0xf8, 0x34, 0x12, 0x46, 0x67, 0xdf, 0xfa, 0x23, 0xb8, 0x90, 0x72, 0x7c, 0x86, 0x27, 0x5e, 3032 0x30, 0x35, 0x30, 0x8f, 0x39, 0x39, 0x81, 0x74, 0xb2, 0x04, 0x32, 0x2b, 0x6e, 0x37, 0x60, 0xbe, 3033 0xc0, 0x88, 0xb9, 0x99, 0x7d, 0x25, 0x01, 0xc1, 0x47, 0xfa, 0x7f, 0xc0, 0xc5, 0x02, 0xf4, 0xab, 3034 0x80, 0x44, 0xf8, 0xfc, 0x45, 0x05, 0xa7, 0x8a, 0xcc, 0x49, 0xbc, 0xa6, 0x84, 0x23, 0x71, 0x5b, 3035 0xe4, 0x03, 0xfd, 0x6d, 0x49, 0xa7, 0x3d, 0x4a, 0x49, 0x37, 0x6d, 0x88, 0xed, 0xc8, 0x4b, 0x76, 3036 0xb8, 0x18, 0xdd, 0xfd, 0x71, 0x11, 0xda, 0xe2, 0x1c, 0x61, 0x75, 0xd8, 0x0a, 0x5c, 0x92, 0x86, 3037 0x66, 0xf6, 0x60, 0x8a, 0xfe, 0x69, 0xa9, 0xf6, 0xed, 0x1f, 0x7a, 0x8a, 0xb6, 0x94, 0x5e, 0x9e, 3038 0x19, 0x62, 0x9f, 0xb8, 0x43, 0xa4, 0x88, 0xb9, 0x65, 0xb8, 0x20, 0xcf, 0x89, 0x57, 0x10, 0x54, 3039 0x59, 0xaa, 0x7d, 0x57, 0x32, 0x2d, 0xde, 0x39, 0x50, 0x55, 0x4c, 0xdf, 0x80, 0x45, 0x79, 0x3a, 3040 0x7d, 0x14, 0x42, 0x35, 0xc1, 0xbe, 0x20, 0x5c, 0xd6, 0x2e, 0x45, 0x73, 0x02, 0x71, 0x07, 0xae, 3041 0xe4, 0x56, 0x90, 0x13, 0x17, 0xaa, 0x2f, 0x35, 0x29, 0xe8, 0x8f, 0x14, 0xb8, 0x0e, 0x4b, 0x65, 3042 0x40, 0x9e, 0x75, 0x50, 0x43, 0x42, 0x6e, 0xc0, 0xd5, 0x32, 0xa4, 0x48, 0x71, 0xa8, 0xb9, 0xd4, 3043 0xfc, 0x2e, 0x81, 0x16, 0xe4, 0xcb, 0x5e, 0x23, 0x50, 0xab, 0xdc, 0x40, 0xc9, 0x34, 0x08, 0x0b, 3044 0xe8, 0xd0, 0x2b, 0x30, 0x48, 0x8f, 0x05, 0xd4, 0x16, 0x2c, 0x0a, 0x56, 0xca, 0x00, 0xaa, 0x60, 3045 0x52, 0x90, 0x22, 0xeb, 0x22, 0xa3, 0x8e, 0x60, 0x71, 0x13, 0x2e, 0xcb, 0x08, 0xa9, 0xa7, 0x8a, 3046 0xba, 0x02, 0x72, 0x0d, 0xb4, 0x9c, 0x27, 0x59, 0xf1, 0x8b, 0xe6, 0xc5, 0xec, 0x5a, 0x5e, 0x4e, 3047 0xf9, 0xc2, 0x83, 0xd0, 0x52, 0x9d, 0x62, 0x9a, 0x8a, 0x76, 0x1d, 0x2e, 0xe6, 0x2c, 0x27, 0x9e, 3048 0xd7, 0xd1, 0x82, 0x10, 0xf4, 0x36, 0x5c, 0x2b, 0x44, 0x52, 0xee, 0x31, 0x09, 0x69, 0x29, 0xae, 3049 0x57, 0x8a, 0xdb, 0xb2, 0x8f, 0xd1, 0x05, 0xee, 0xa9, 0xdf, 0x95, 0xc8, 0xcc, 0x1f, 0x97, 0xd0, 3050 0xc5, 0x72, 0xbb, 0xa5, 0xe5, 0x2b, 0x5a, 0x14, 0xcb, 0x5c, 0x85, 0x85, 0x3c, 0x80, 0xf2, 0xbf, 3051 0x94, 0x6a, 0x9c, 0x8b, 0x97, 0x7c, 0xcf, 0x00, 0x5d, 0x16, 0xa8, 0x82, 0xff, 0xe4, 0x57, 0x59, 3052 0xd4, 0x13, 0x98, 0xd5, 0x7c, 0x88, 0xe6, 0x1e, 0x6a, 0xd1, 0x95, 0x72, 0x50, 0xee, 0x11, 0x0f, 3053 0x2d, 0x09, 0x81, 0x57, 0xf3, 0x1a, 0xa5, 0x4f, 0x77, 0xe8, 0xaa, 0x64, 0x94, 0x42, 0x34, 0x64, 3054 0xaf, 0xb1, 0xe8, 0x5a, 0xf9, 0xae, 0xca, 0x1e, 0x49, 0xd0, 0x72, 0x79, 0xd4, 0x26, 0xd3, 0xd7, 3055 0xd3, 0xa8, 0xcd, 0xf9, 0x39, 0x39, 0x81, 0xd1, 0x8a, 0xb4, 0x8b, 0x0a, 0x96, 0x91, 0xdb, 0xd2, 3056 0x48, 0x2f, 0xb7, 0x71, 0xbe, 0x55, 0x8d, 0x56, 0xcb, 0xc3, 0x3b, 0x6b, 0x5f, 0xa3, 0xb5, 0xf2, 3057 0xf0, 0x96, 0xea, 0x7b, 0x74, 0xbb, 0xdc, 0xbe, 0xb9, 0xa2, 0x1d, 0xdd, 0x11, 0xa0, 0x42, 0x7c, 3058 0x16, 0xcb, 0x6d, 0xb4, 0x2e, 0x24, 0xba, 0x03, 0xcb, 0xb9, 0xf8, 0x2c, 0x3e, 0x65, 0xa2, 0x8d, 3059 0x14, 0x78, 0xa5, 0x1c, 0x48, 0xa5, 0xbf, 0x2b, 0x39, 0xed, 0x76, 0xc1, 0x12, 0xb9, 0x56, 0x0d, 3060 0xba, 0x27, 0xed, 0x30, 0x2d, 0x1f, 0xb2, 0x6c, 0xfe, 0xad, 0xa5, 0xfa, 0x77, 0x7c, 0xbe, 0x60, 3061 0xd1, 0x7c, 0x07, 0x1f, 0xbd, 0x5d, 0x6e, 0x2f, 0xa9, 0x15, 0x8d, 0xfa, 0xe5, 0x99, 0x5b, 0x34, 3062 0xa5, 0xd1, 0xfd, 0x72, 0x4b, 0x15, 0x9b, 0x50, 0xe8, 0x9d, 0x74, 0x27, 0x17, 0x3c, 0x2c, 0x77, 3063 0x0d, 0xd1, 0xbb, 0xa9, 0x5e, 0xeb, 0x79, 0x7e, 0xc5, 0xae, 0x25, 0xda, 0x4c, 0x35, 0x2c, 0x70, 3064 0xcc, 0xf7, 0x21, 0xd1, 0x7b, 0xb3, 0x38, 0x16, 0x9b, 0x87, 0xe8, 0xfd, 0x94, 0xa3, 0x5e, 0xcc, 3065 0x6d, 0xd9, 0xbd, 0x08, 0x7d, 0x50, 0x1e, 0xa9, 0xf9, 0x0b, 0x08, 0xfa, 0x50, 0x68, 0x5b, 0xb0, 3066 0xab, 0xf4, 0xef, 0x46, 0xe8, 0x9f, 0x05, 0xa3, 0x75, 0xb8, 0x9e, 0x53, 0xf4, 0xcc, 0x43, 0x25, 3067 0xfa, 0x48, 0x20, 0x6f, 0xe5, 0x8f, 0xa1, 0xc2, 0xbb, 0x22, 0xfa, 0x17, 0xb1, 0x66, 0x71, 0x0f, 3068 0xe5, 0x9a, 0x17, 0xe8, 0x41, 0x7a, 0x4c, 0x2e, 0x97, 0xa1, 0xb2, 0x9c, 0xf8, 0xaf, 0x69, 0x8a, 3069 0xb9, 0x52, 0x0e, 0xa4, 0xde, 0xff, 0xb7, 0x72, 0x6e, 0x67, 0x2e, 0x49, 0xe8, 0xe3, 0x19, 0x1b, 3070 0x3c, 0x8f, 0xfa, 0xa4, 0x7c, 0xcd, 0xdc, 0x75, 0x05, 0x7d, 0x2a, 0x58, 0x6d, 0xc0, 0x8d, 0x59, 3071 0x7a, 0x26, 0x2e, 0xfd, 0x4c, 0x40, 0xef, 0xc1, 0xcd, 0x32, 0x68, 0x7e, 0xcf, 0x6f, 0x09, 0x70, 3072 0x1f, 0xd6, 0xca, 0xc0, 0x67, 0xf6, 0xfe, 0x43, 0x21, 0xec, 0xbd, 0xbc, 0xee, 0x67, 0xee, 0x15, 3073 0xc8, 0x59, 0x6a, 0x7e, 0x9f, 0x6c, 0xeb, 0x3b, 0x33, 0xc0, 0xc9, 0xc5, 0x02, 0xe1, 0xa5, 0xda, 3074 0xf7, 0x25, 0x86, 0xca, 0xdf, 0x35, 0xd0, 0xd1, 0x52, 0xed, 0x87, 0x12, 0x43, 0xe5, 0xaa, 0x65, 3075 0x34, 0x14, 0xac, 0x0a, 0xe1, 0x2c, 0x57, 0xd0, 0x68, 0x24, 0x18, 0x15, 0x8c, 0x59, 0x52, 0x13, 3076 0x23, 0x57, 0xb0, 0x2b, 0x84, 0x61, 0x01, 0x8a, 0x3c, 0xc1, 0xf1, 0x2e, 0xac, 0x9c, 0x03, 0x63, 3077 0x15, 0x2f, 0xf2, 0x05, 0xcb, 0x59, 0xab, 0x67, 0xd5, 0x2b, 0xfa, 0x9a, 0x43, 0x1f, 0xbe, 0x0f, 3078 0xab, 0xb6, 0x37, 0xe9, 0x87, 0x56, 0xe4, 0x85, 0x23, 0x32, 0xb6, 0x0e, 0xc3, 0x7e, 0x14, 0xe0, 3079 0x97, 0x5e, 0xd0, 0x1f, 0x93, 0x43, 0xfe, 0x6f, 0x7e, 0x87, 0xf1, 0xd1, 0xc3, 0xce, 0x01, 0x23, 3080 0x0a, 0xae, 0x7f, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x2a, 0xe4, 0xc0, 0x85, 0x16, 0x28, 0x00, 0x00, 3081 }