fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

1// Code generated by protoc-gen-go. DO NOT EDIT. 2// versions: 3// protoc-gen-go v1.29.1 4// protoc (unknown) 5// source: webserver.proto 6 7package v1 8 9import ( 10 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 11 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 12 durationpb "google.golang.org/protobuf/types/known/durationpb" 13 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 14 reflect "reflect" 15 sync "sync" 16) 17 18const ( 19 // Verify that this generated code is sufficiently up-to-date. 20 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 21 // Verify that runtime/protoimpl is sufficiently up-to-date. 22 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 23) 24 25type FlushReason int32 26 27const ( 28 FlushReason_UNKNOWN FlushReason = 0 29 FlushReason_TIMER_EXPIRED FlushReason = 1 30 FlushReason_FINAL_FLUSH FlushReason = 2 31 FlushReason_MAX_SIZE FlushReason = 3 32) 33 34// Enum value maps for FlushReason. 35var ( 36 FlushReason_name = map[int32]string{ 37 0: "UNKNOWN", 38 1: "TIMER_EXPIRED", 39 2: "FINAL_FLUSH", 40 3: "MAX_SIZE", 41 } 42 FlushReason_value = map[string]int32{ 43 "UNKNOWN": 0, 44 "TIMER_EXPIRED": 1, 45 "FINAL_FLUSH": 2, 46 "MAX_SIZE": 3, 47 } 48) 49 50func (x FlushReason) Enum() *FlushReason { 51 p := new(FlushReason) 52 *p = x 53 return p 54} 55 56func (x FlushReason) String() string { 57 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 58} 59 60func (FlushReason) Descriptor() protoreflect.EnumDescriptor { 61 return file_webserver_proto_enumTypes[0].Descriptor() 62} 63 64func (FlushReason) Type() protoreflect.EnumType { 65 return &file_webserver_proto_enumTypes[0] 66} 67 68func (x FlushReason) Number() protoreflect.EnumNumber { 69 return protoreflect.EnumNumber(x) 70} 71 72// Deprecated: Use FlushReason.Descriptor instead. 73func (FlushReason) EnumDescriptor() ([]byte, []int) { 74 return file_webserver_proto_rawDescGZIP(), []int{0} 75} 76 77type ListOptions_RepoListField int32 78 79const ( 80 ListOptions_REPO_LIST_FIELD_UNKNOWN ListOptions_RepoListField = 0 81 ListOptions_REPO_LIST_FIELD_REPOS ListOptions_RepoListField = 1 82 ListOptions_REPO_LIST_FIELD_MINIMAL ListOptions_RepoListField = 2 83 ListOptions_REPO_LIST_FIELD_REPOS_MAP ListOptions_RepoListField = 3 84) 85 86// Enum value maps for ListOptions_RepoListField. 87var ( 88 ListOptions_RepoListField_name = map[int32]string{ 89 0: "REPO_LIST_FIELD_UNKNOWN", 90 1: "REPO_LIST_FIELD_REPOS", 91 2: "REPO_LIST_FIELD_MINIMAL", 92 3: "REPO_LIST_FIELD_REPOS_MAP", 93 } 94 ListOptions_RepoListField_value = map[string]int32{ 95 "REPO_LIST_FIELD_UNKNOWN": 0, 96 "REPO_LIST_FIELD_REPOS": 1, 97 "REPO_LIST_FIELD_MINIMAL": 2, 98 "REPO_LIST_FIELD_REPOS_MAP": 3, 99 } 100) 101 102func (x ListOptions_RepoListField) Enum() *ListOptions_RepoListField { 103 p := new(ListOptions_RepoListField) 104 *p = x 105 return p 106} 107 108func (x ListOptions_RepoListField) String() string { 109 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 110} 111 112func (ListOptions_RepoListField) Descriptor() protoreflect.EnumDescriptor { 113 return file_webserver_proto_enumTypes[1].Descriptor() 114} 115 116func (ListOptions_RepoListField) Type() protoreflect.EnumType { 117 return &file_webserver_proto_enumTypes[1] 118} 119 120func (x ListOptions_RepoListField) Number() protoreflect.EnumNumber { 121 return protoreflect.EnumNumber(x) 122} 123 124// Deprecated: Use ListOptions_RepoListField.Descriptor instead. 125func (ListOptions_RepoListField) EnumDescriptor() ([]byte, []int) { 126 return file_webserver_proto_rawDescGZIP(), []int{4, 0} 127} 128 129type SearchRequest struct { 130 state protoimpl.MessageState 131 sizeCache protoimpl.SizeCache 132 unknownFields protoimpl.UnknownFields 133 134 Query *Q `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` 135 Opts *SearchOptions `protobuf:"bytes,2,opt,name=opts,proto3" json:"opts,omitempty"` 136} 137 138func (x *SearchRequest) Reset() { 139 *x = SearchRequest{} 140 if protoimpl.UnsafeEnabled { 141 mi := &file_webserver_proto_msgTypes[0] 142 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 143 ms.StoreMessageInfo(mi) 144 } 145} 146 147func (x *SearchRequest) String() string { 148 return protoimpl.X.MessageStringOf(x) 149} 150 151func (*SearchRequest) ProtoMessage() {} 152 153func (x *SearchRequest) ProtoReflect() protoreflect.Message { 154 mi := &file_webserver_proto_msgTypes[0] 155 if protoimpl.UnsafeEnabled && x != nil { 156 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 157 if ms.LoadMessageInfo() == nil { 158 ms.StoreMessageInfo(mi) 159 } 160 return ms 161 } 162 return mi.MessageOf(x) 163} 164 165// Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead. 166func (*SearchRequest) Descriptor() ([]byte, []int) { 167 return file_webserver_proto_rawDescGZIP(), []int{0} 168} 169 170func (x *SearchRequest) GetQuery() *Q { 171 if x != nil { 172 return x.Query 173 } 174 return nil 175} 176 177func (x *SearchRequest) GetOpts() *SearchOptions { 178 if x != nil { 179 return x.Opts 180 } 181 return nil 182} 183 184type SearchResponse struct { 185 state protoimpl.MessageState 186 sizeCache protoimpl.SizeCache 187 unknownFields protoimpl.UnknownFields 188 189 Stats *Stats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"` 190 Progress *Progress `protobuf:"bytes,2,opt,name=progress,proto3" json:"progress,omitempty"` 191 Files []*FileMatch `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"` 192 // RepoURLs holds a repo => template string map. 193 RepoUrls map[string]string `protobuf:"bytes,4,rep,name=repo_urls,json=repoUrls,proto3" json:"repo_urls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 194 // FragmentNames holds a repo => template string map, for 195 // the line number fragment. 196 LineFragments map[string]string `protobuf:"bytes,5,rep,name=line_fragments,json=lineFragments,proto3" json:"line_fragments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 197} 198 199func (x *SearchResponse) Reset() { 200 *x = SearchResponse{} 201 if protoimpl.UnsafeEnabled { 202 mi := &file_webserver_proto_msgTypes[1] 203 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 204 ms.StoreMessageInfo(mi) 205 } 206} 207 208func (x *SearchResponse) String() string { 209 return protoimpl.X.MessageStringOf(x) 210} 211 212func (*SearchResponse) ProtoMessage() {} 213 214func (x *SearchResponse) ProtoReflect() protoreflect.Message { 215 mi := &file_webserver_proto_msgTypes[1] 216 if protoimpl.UnsafeEnabled && x != nil { 217 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 218 if ms.LoadMessageInfo() == nil { 219 ms.StoreMessageInfo(mi) 220 } 221 return ms 222 } 223 return mi.MessageOf(x) 224} 225 226// Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead. 227func (*SearchResponse) Descriptor() ([]byte, []int) { 228 return file_webserver_proto_rawDescGZIP(), []int{1} 229} 230 231func (x *SearchResponse) GetStats() *Stats { 232 if x != nil { 233 return x.Stats 234 } 235 return nil 236} 237 238func (x *SearchResponse) GetProgress() *Progress { 239 if x != nil { 240 return x.Progress 241 } 242 return nil 243} 244 245func (x *SearchResponse) GetFiles() []*FileMatch { 246 if x != nil { 247 return x.Files 248 } 249 return nil 250} 251 252func (x *SearchResponse) GetRepoUrls() map[string]string { 253 if x != nil { 254 return x.RepoUrls 255 } 256 return nil 257} 258 259func (x *SearchResponse) GetLineFragments() map[string]string { 260 if x != nil { 261 return x.LineFragments 262 } 263 return nil 264} 265 266type SearchOptions struct { 267 state protoimpl.MessageState 268 sizeCache protoimpl.SizeCache 269 unknownFields protoimpl.UnknownFields 270 271 // Return an upper-bound estimate of eligible documents in 272 // stats.ShardFilesConsidered. 273 EstimateDocCount bool `protobuf:"varint,1,opt,name=estimate_doc_count,json=estimateDocCount,proto3" json:"estimate_doc_count,omitempty"` 274 // Return the whole file. 275 Whole bool `protobuf:"varint,2,opt,name=whole,proto3" json:"whole,omitempty"` 276 // Maximum number of matches: skip all processing an index 277 // shard after we found this many non-overlapping matches. 278 ShardMaxMatchCount int64 `protobuf:"varint,3,opt,name=shard_max_match_count,json=shardMaxMatchCount,proto3" json:"shard_max_match_count,omitempty"` 279 // Maximum number of matches: stop looking for more matches 280 // once we have this many matches across shards. 281 TotalMaxMatchCount int64 `protobuf:"varint,4,opt,name=total_max_match_count,json=totalMaxMatchCount,proto3" json:"total_max_match_count,omitempty"` 282 // Maximum number of matches: skip processing documents for a repository in 283 // a shard once we have found ShardRepoMaxMatchCount. 284 // 285 // A compound shard may contain multiple repositories. This will most often 286 // be set to 1 to find all repositories containing a result. 287 ShardRepoMaxMatchCount int64 `protobuf:"varint,5,opt,name=shard_repo_max_match_count,json=shardRepoMaxMatchCount,proto3" json:"shard_repo_max_match_count,omitempty"` 288 // Abort the search after this much time has passed. 289 MaxWallTime *durationpb.Duration `protobuf:"bytes,6,opt,name=max_wall_time,json=maxWallTime,proto3" json:"max_wall_time,omitempty"` 290 // FlushWallTime if non-zero will stop streaming behaviour at first and 291 // instead will collate and sort results. At FlushWallTime the results will 292 // be sent and then the behaviour will revert to the normal streaming. 293 FlushWallTime *durationpb.Duration `protobuf:"bytes,7,opt,name=flush_wall_time,json=flushWallTime,proto3" json:"flush_wall_time,omitempty"` 294 // Trim the number of results after collating and sorting the 295 // results 296 MaxDocDisplayCount int64 `protobuf:"varint,8,opt,name=max_doc_display_count,json=maxDocDisplayCount,proto3" json:"max_doc_display_count,omitempty"` 297 // If set to a number greater than zero then up to this many number 298 // of context lines will be added before and after each matched line. 299 // Note that the included context lines might contain matches and 300 // it's up to the consumer of the result to remove those lines. 301 NumContextLines int64 `protobuf:"varint,9,opt,name=num_context_lines,json=numContextLines,proto3" json:"num_context_lines,omitempty"` 302 // If true, ChunkMatches will be returned in each FileMatch rather than LineMatches 303 // EXPERIMENTAL: the behavior of this flag may be changed in future versions. 304 ChunkMatches bool `protobuf:"varint,10,opt,name=chunk_matches,json=chunkMatches,proto3" json:"chunk_matches,omitempty"` 305 // EXPERIMENTAL. If true, document ranks are used as additional input for 306 // sorting matches. 307 UseDocumentRanks bool `protobuf:"varint,11,opt,name=use_document_ranks,json=useDocumentRanks,proto3" json:"use_document_ranks,omitempty"` 308 // EXPERIMENTAL. When UseDocumentRanks is enabled, this can be optionally set to adjust 309 // their weight in the file match score. If the value is <= 0.0, the default weight value 310 // will be used. This option is temporary and is only exposed for testing/ tuning purposes. 311 DocumentRanksWeight float64 `protobuf:"fixed64,12,opt,name=document_ranks_weight,json=documentRanksWeight,proto3" json:"document_ranks_weight,omitempty"` 312 // Trace turns on opentracing for this request if true and if the Jaeger address was provided as 313 // a command-line flag 314 Trace bool `protobuf:"varint,13,opt,name=trace,proto3" json:"trace,omitempty"` 315 // If set, the search results will contain debug information for scoring. 316 DebugScore bool `protobuf:"varint,14,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"` 317 // EXPERIMENTAL. If true, use keyword-style scoring instead of the default scoring formula. 318 // Currently, this treats each match in a file as a term and computes an approximation to BM25. 319 // When enabled, all other scoring signals are ignored, including document ranks. 320 UseKeywordScoring bool `protobuf:"varint,15,opt,name=use_keyword_scoring,json=useKeywordScoring,proto3" json:"use_keyword_scoring,omitempty"` 321} 322 323func (x *SearchOptions) Reset() { 324 *x = SearchOptions{} 325 if protoimpl.UnsafeEnabled { 326 mi := &file_webserver_proto_msgTypes[2] 327 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 328 ms.StoreMessageInfo(mi) 329 } 330} 331 332func (x *SearchOptions) String() string { 333 return protoimpl.X.MessageStringOf(x) 334} 335 336func (*SearchOptions) ProtoMessage() {} 337 338func (x *SearchOptions) ProtoReflect() protoreflect.Message { 339 mi := &file_webserver_proto_msgTypes[2] 340 if protoimpl.UnsafeEnabled && x != nil { 341 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 342 if ms.LoadMessageInfo() == nil { 343 ms.StoreMessageInfo(mi) 344 } 345 return ms 346 } 347 return mi.MessageOf(x) 348} 349 350// Deprecated: Use SearchOptions.ProtoReflect.Descriptor instead. 351func (*SearchOptions) Descriptor() ([]byte, []int) { 352 return file_webserver_proto_rawDescGZIP(), []int{2} 353} 354 355func (x *SearchOptions) GetEstimateDocCount() bool { 356 if x != nil { 357 return x.EstimateDocCount 358 } 359 return false 360} 361 362func (x *SearchOptions) GetWhole() bool { 363 if x != nil { 364 return x.Whole 365 } 366 return false 367} 368 369func (x *SearchOptions) GetShardMaxMatchCount() int64 { 370 if x != nil { 371 return x.ShardMaxMatchCount 372 } 373 return 0 374} 375 376func (x *SearchOptions) GetTotalMaxMatchCount() int64 { 377 if x != nil { 378 return x.TotalMaxMatchCount 379 } 380 return 0 381} 382 383func (x *SearchOptions) GetShardRepoMaxMatchCount() int64 { 384 if x != nil { 385 return x.ShardRepoMaxMatchCount 386 } 387 return 0 388} 389 390func (x *SearchOptions) GetMaxWallTime() *durationpb.Duration { 391 if x != nil { 392 return x.MaxWallTime 393 } 394 return nil 395} 396 397func (x *SearchOptions) GetFlushWallTime() *durationpb.Duration { 398 if x != nil { 399 return x.FlushWallTime 400 } 401 return nil 402} 403 404func (x *SearchOptions) GetMaxDocDisplayCount() int64 { 405 if x != nil { 406 return x.MaxDocDisplayCount 407 } 408 return 0 409} 410 411func (x *SearchOptions) GetNumContextLines() int64 { 412 if x != nil { 413 return x.NumContextLines 414 } 415 return 0 416} 417 418func (x *SearchOptions) GetChunkMatches() bool { 419 if x != nil { 420 return x.ChunkMatches 421 } 422 return false 423} 424 425func (x *SearchOptions) GetUseDocumentRanks() bool { 426 if x != nil { 427 return x.UseDocumentRanks 428 } 429 return false 430} 431 432func (x *SearchOptions) GetDocumentRanksWeight() float64 { 433 if x != nil { 434 return x.DocumentRanksWeight 435 } 436 return 0 437} 438 439func (x *SearchOptions) GetTrace() bool { 440 if x != nil { 441 return x.Trace 442 } 443 return false 444} 445 446func (x *SearchOptions) GetDebugScore() bool { 447 if x != nil { 448 return x.DebugScore 449 } 450 return false 451} 452 453func (x *SearchOptions) GetUseKeywordScoring() bool { 454 if x != nil { 455 return x.UseKeywordScoring 456 } 457 return false 458} 459 460type ListRequest struct { 461 state protoimpl.MessageState 462 sizeCache protoimpl.SizeCache 463 unknownFields protoimpl.UnknownFields 464 465 Query *Q `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` 466 Opts *ListOptions `protobuf:"bytes,2,opt,name=opts,proto3" json:"opts,omitempty"` 467} 468 469func (x *ListRequest) Reset() { 470 *x = ListRequest{} 471 if protoimpl.UnsafeEnabled { 472 mi := &file_webserver_proto_msgTypes[3] 473 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 474 ms.StoreMessageInfo(mi) 475 } 476} 477 478func (x *ListRequest) String() string { 479 return protoimpl.X.MessageStringOf(x) 480} 481 482func (*ListRequest) ProtoMessage() {} 483 484func (x *ListRequest) ProtoReflect() protoreflect.Message { 485 mi := &file_webserver_proto_msgTypes[3] 486 if protoimpl.UnsafeEnabled && x != nil { 487 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 488 if ms.LoadMessageInfo() == nil { 489 ms.StoreMessageInfo(mi) 490 } 491 return ms 492 } 493 return mi.MessageOf(x) 494} 495 496// Deprecated: Use ListRequest.ProtoReflect.Descriptor instead. 497func (*ListRequest) Descriptor() ([]byte, []int) { 498 return file_webserver_proto_rawDescGZIP(), []int{3} 499} 500 501func (x *ListRequest) GetQuery() *Q { 502 if x != nil { 503 return x.Query 504 } 505 return nil 506} 507 508func (x *ListRequest) GetOpts() *ListOptions { 509 if x != nil { 510 return x.Opts 511 } 512 return nil 513} 514 515type ListOptions struct { 516 state protoimpl.MessageState 517 sizeCache protoimpl.SizeCache 518 unknownFields protoimpl.UnknownFields 519 520 // Field decides which field to populate in RepoList response. 521 Field ListOptions_RepoListField `protobuf:"varint,1,opt,name=field,proto3,enum=grpc.v1.ListOptions_RepoListField" json:"field,omitempty"` 522 // Return only Minimal data per repo that Sourcegraph frontend needs. 523 // 524 // Deprecated: use Field 525 Minimal bool `protobuf:"varint,16,opt,name=minimal,proto3" json:"minimal,omitempty"` 526} 527 528func (x *ListOptions) Reset() { 529 *x = ListOptions{} 530 if protoimpl.UnsafeEnabled { 531 mi := &file_webserver_proto_msgTypes[4] 532 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 533 ms.StoreMessageInfo(mi) 534 } 535} 536 537func (x *ListOptions) String() string { 538 return protoimpl.X.MessageStringOf(x) 539} 540 541func (*ListOptions) ProtoMessage() {} 542 543func (x *ListOptions) ProtoReflect() protoreflect.Message { 544 mi := &file_webserver_proto_msgTypes[4] 545 if protoimpl.UnsafeEnabled && x != nil { 546 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 547 if ms.LoadMessageInfo() == nil { 548 ms.StoreMessageInfo(mi) 549 } 550 return ms 551 } 552 return mi.MessageOf(x) 553} 554 555// Deprecated: Use ListOptions.ProtoReflect.Descriptor instead. 556func (*ListOptions) Descriptor() ([]byte, []int) { 557 return file_webserver_proto_rawDescGZIP(), []int{4} 558} 559 560func (x *ListOptions) GetField() ListOptions_RepoListField { 561 if x != nil { 562 return x.Field 563 } 564 return ListOptions_REPO_LIST_FIELD_UNKNOWN 565} 566 567func (x *ListOptions) GetMinimal() bool { 568 if x != nil { 569 return x.Minimal 570 } 571 return false 572} 573 574type ListResponse struct { 575 state protoimpl.MessageState 576 sizeCache protoimpl.SizeCache 577 unknownFields protoimpl.UnknownFields 578 579 // Returned when ListOptions.Field is RepoListFieldRepos. 580 Repos []*RepoListEntry `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"` 581 // ReposMap is set when ListOptions.Field is RepoListFieldReposMap. 582 ReposMap map[uint32]*MinimalRepoListEntry `protobuf:"bytes,2,rep,name=repos_map,json=reposMap,proto3" json:"repos_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 583 Crashes int64 `protobuf:"varint,3,opt,name=crashes,proto3" json:"crashes,omitempty"` 584 // Stats response to a List request. 585 // This is the aggregate RepoStats of all repos matching the input query. 586 Stats *RepoStats `protobuf:"bytes,4,opt,name=stats,proto3" json:"stats,omitempty"` 587 // Returned when ListOptions.Field is RepoListFieldMinimal. 588 // 589 // Deprecated: use ReposMap. 590 Minimal map[uint32]*MinimalRepoListEntry `protobuf:"bytes,5,rep,name=minimal,proto3" json:"minimal,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 591} 592 593func (x *ListResponse) Reset() { 594 *x = ListResponse{} 595 if protoimpl.UnsafeEnabled { 596 mi := &file_webserver_proto_msgTypes[5] 597 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 598 ms.StoreMessageInfo(mi) 599 } 600} 601 602func (x *ListResponse) String() string { 603 return protoimpl.X.MessageStringOf(x) 604} 605 606func (*ListResponse) ProtoMessage() {} 607 608func (x *ListResponse) ProtoReflect() protoreflect.Message { 609 mi := &file_webserver_proto_msgTypes[5] 610 if protoimpl.UnsafeEnabled && x != nil { 611 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 612 if ms.LoadMessageInfo() == nil { 613 ms.StoreMessageInfo(mi) 614 } 615 return ms 616 } 617 return mi.MessageOf(x) 618} 619 620// Deprecated: Use ListResponse.ProtoReflect.Descriptor instead. 621func (*ListResponse) Descriptor() ([]byte, []int) { 622 return file_webserver_proto_rawDescGZIP(), []int{5} 623} 624 625func (x *ListResponse) GetRepos() []*RepoListEntry { 626 if x != nil { 627 return x.Repos 628 } 629 return nil 630} 631 632func (x *ListResponse) GetReposMap() map[uint32]*MinimalRepoListEntry { 633 if x != nil { 634 return x.ReposMap 635 } 636 return nil 637} 638 639func (x *ListResponse) GetCrashes() int64 { 640 if x != nil { 641 return x.Crashes 642 } 643 return 0 644} 645 646func (x *ListResponse) GetStats() *RepoStats { 647 if x != nil { 648 return x.Stats 649 } 650 return nil 651} 652 653func (x *ListResponse) GetMinimal() map[uint32]*MinimalRepoListEntry { 654 if x != nil { 655 return x.Minimal 656 } 657 return nil 658} 659 660type RepoListEntry struct { 661 state protoimpl.MessageState 662 sizeCache protoimpl.SizeCache 663 unknownFields protoimpl.UnknownFields 664 665 Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` 666 IndexMetadata *IndexMetadata `protobuf:"bytes,2,opt,name=index_metadata,json=indexMetadata,proto3" json:"index_metadata,omitempty"` 667 Stats *RepoStats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"` 668} 669 670func (x *RepoListEntry) Reset() { 671 *x = RepoListEntry{} 672 if protoimpl.UnsafeEnabled { 673 mi := &file_webserver_proto_msgTypes[6] 674 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 675 ms.StoreMessageInfo(mi) 676 } 677} 678 679func (x *RepoListEntry) String() string { 680 return protoimpl.X.MessageStringOf(x) 681} 682 683func (*RepoListEntry) ProtoMessage() {} 684 685func (x *RepoListEntry) ProtoReflect() protoreflect.Message { 686 mi := &file_webserver_proto_msgTypes[6] 687 if protoimpl.UnsafeEnabled && x != nil { 688 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 689 if ms.LoadMessageInfo() == nil { 690 ms.StoreMessageInfo(mi) 691 } 692 return ms 693 } 694 return mi.MessageOf(x) 695} 696 697// Deprecated: Use RepoListEntry.ProtoReflect.Descriptor instead. 698func (*RepoListEntry) Descriptor() ([]byte, []int) { 699 return file_webserver_proto_rawDescGZIP(), []int{6} 700} 701 702func (x *RepoListEntry) GetRepository() *Repository { 703 if x != nil { 704 return x.Repository 705 } 706 return nil 707} 708 709func (x *RepoListEntry) GetIndexMetadata() *IndexMetadata { 710 if x != nil { 711 return x.IndexMetadata 712 } 713 return nil 714} 715 716func (x *RepoListEntry) GetStats() *RepoStats { 717 if x != nil { 718 return x.Stats 719 } 720 return nil 721} 722 723type Repository struct { 724 state protoimpl.MessageState 725 sizeCache protoimpl.SizeCache 726 unknownFields protoimpl.UnknownFields 727 728 // Sourcegraph's repository ID 729 Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 730 // The repository name 731 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 732 // The repository URL. 733 Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` 734 // The physical source where this repo came from, eg. full 735 // path to the zip filename or git repository directory. This 736 // will not be exposed in the UI, but can be used to detect 737 // orphaned index shards. 738 Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"` 739 // The branches indexed in this repo. 740 Branches []*RepositoryBranch `protobuf:"bytes,5,rep,name=branches,proto3" json:"branches,omitempty"` 741 // Nil if this is not the super project. 742 SubRepoMap map[string]*Repository `protobuf:"bytes,6,rep,name=sub_repo_map,json=subRepoMap,proto3" json:"sub_repo_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 743 // URL template to link to the commit of a branch 744 CommitUrlTemplate string `protobuf:"bytes,7,opt,name=commit_url_template,json=commitUrlTemplate,proto3" json:"commit_url_template,omitempty"` 745 // The repository URL for getting to a file. Has access to 746 // {{Branch}}, {{Path}} 747 FileUrlTemplate string `protobuf:"bytes,8,opt,name=file_url_template,json=fileUrlTemplate,proto3" json:"file_url_template,omitempty"` 748 // The URL fragment to add to a file URL for line numbers. has 749 // access to {{LineNumber}}. The fragment should include the 750 // separator, generally '#' or ';'. 751 LineFragmentTemplate string `protobuf:"bytes,9,opt,name=line_fragment_template,json=lineFragmentTemplate,proto3" json:"line_fragment_template,omitempty"` 752 // Perf optimization: priority is set when we load the shard. It corresponds to 753 // the value of "priority" stored in RawConfig. 754 Priority float64 `protobuf:"fixed64,10,opt,name=priority,proto3" json:"priority,omitempty"` 755 // All zoekt.* configuration settings. 756 RawConfig map[string]string `protobuf:"bytes,11,rep,name=raw_config,json=rawConfig,proto3" json:"raw_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 757 // Importance of the repository, bigger is more important 758 Rank uint32 `protobuf:"varint,12,opt,name=rank,proto3" json:"rank,omitempty"` 759 // index_options is a hash of the options used to create the index for the 760 // repo. 761 IndexOptions string `protobuf:"bytes,13,opt,name=index_options,json=indexOptions,proto3" json:"index_options,omitempty"` 762 // has_symbols is true if this repository has indexed ctags 763 // output. Sourcegraph specific: This field is more appropriate for 764 // IndexMetadata. However, we store it here since the Sourcegraph frontend 765 // can read this structure but not IndexMetadata. 766 HasSymbols bool `protobuf:"varint,14,opt,name=has_symbols,json=hasSymbols,proto3" json:"has_symbols,omitempty"` 767 // tombstone is true if we are not allowed to search this repo. 768 Tombstone bool `protobuf:"varint,15,opt,name=tombstone,proto3" json:"tombstone,omitempty"` 769 // latest_commit_date is the date of the latest commit among all indexed Branches. 770 // The date might be time.Time's 0-value if the repository was last indexed 771 // before this field was added. 772 LatestCommitDate *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=latest_commit_date,json=latestCommitDate,proto3" json:"latest_commit_date,omitempty"` 773 // file_tombstones is a set of file paths that should be ignored across all branches 774 // in this shard. 775 FileTombstones []string `protobuf:"bytes,17,rep,name=FileTombstones,proto3" json:"FileTombstones,omitempty"` 776} 777 778func (x *Repository) Reset() { 779 *x = Repository{} 780 if protoimpl.UnsafeEnabled { 781 mi := &file_webserver_proto_msgTypes[7] 782 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 783 ms.StoreMessageInfo(mi) 784 } 785} 786 787func (x *Repository) String() string { 788 return protoimpl.X.MessageStringOf(x) 789} 790 791func (*Repository) ProtoMessage() {} 792 793func (x *Repository) ProtoReflect() protoreflect.Message { 794 mi := &file_webserver_proto_msgTypes[7] 795 if protoimpl.UnsafeEnabled && x != nil { 796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 797 if ms.LoadMessageInfo() == nil { 798 ms.StoreMessageInfo(mi) 799 } 800 return ms 801 } 802 return mi.MessageOf(x) 803} 804 805// Deprecated: Use Repository.ProtoReflect.Descriptor instead. 806func (*Repository) Descriptor() ([]byte, []int) { 807 return file_webserver_proto_rawDescGZIP(), []int{7} 808} 809 810func (x *Repository) GetId() uint32 { 811 if x != nil { 812 return x.Id 813 } 814 return 0 815} 816 817func (x *Repository) GetName() string { 818 if x != nil { 819 return x.Name 820 } 821 return "" 822} 823 824func (x *Repository) GetUrl() string { 825 if x != nil { 826 return x.Url 827 } 828 return "" 829} 830 831func (x *Repository) GetSource() string { 832 if x != nil { 833 return x.Source 834 } 835 return "" 836} 837 838func (x *Repository) GetBranches() []*RepositoryBranch { 839 if x != nil { 840 return x.Branches 841 } 842 return nil 843} 844 845func (x *Repository) GetSubRepoMap() map[string]*Repository { 846 if x != nil { 847 return x.SubRepoMap 848 } 849 return nil 850} 851 852func (x *Repository) GetCommitUrlTemplate() string { 853 if x != nil { 854 return x.CommitUrlTemplate 855 } 856 return "" 857} 858 859func (x *Repository) GetFileUrlTemplate() string { 860 if x != nil { 861 return x.FileUrlTemplate 862 } 863 return "" 864} 865 866func (x *Repository) GetLineFragmentTemplate() string { 867 if x != nil { 868 return x.LineFragmentTemplate 869 } 870 return "" 871} 872 873func (x *Repository) GetPriority() float64 { 874 if x != nil { 875 return x.Priority 876 } 877 return 0 878} 879 880func (x *Repository) GetRawConfig() map[string]string { 881 if x != nil { 882 return x.RawConfig 883 } 884 return nil 885} 886 887func (x *Repository) GetRank() uint32 { 888 if x != nil { 889 return x.Rank 890 } 891 return 0 892} 893 894func (x *Repository) GetIndexOptions() string { 895 if x != nil { 896 return x.IndexOptions 897 } 898 return "" 899} 900 901func (x *Repository) GetHasSymbols() bool { 902 if x != nil { 903 return x.HasSymbols 904 } 905 return false 906} 907 908func (x *Repository) GetTombstone() bool { 909 if x != nil { 910 return x.Tombstone 911 } 912 return false 913} 914 915func (x *Repository) GetLatestCommitDate() *timestamppb.Timestamp { 916 if x != nil { 917 return x.LatestCommitDate 918 } 919 return nil 920} 921 922func (x *Repository) GetFileTombstones() []string { 923 if x != nil { 924 return x.FileTombstones 925 } 926 return nil 927} 928 929type IndexMetadata struct { 930 state protoimpl.MessageState 931 sizeCache protoimpl.SizeCache 932 unknownFields protoimpl.UnknownFields 933 934 IndexFormatVersion int64 `protobuf:"varint,1,opt,name=index_format_version,json=indexFormatVersion,proto3" json:"index_format_version,omitempty"` 935 IndexFeatureVersion int64 `protobuf:"varint,2,opt,name=index_feature_version,json=indexFeatureVersion,proto3" json:"index_feature_version,omitempty"` 936 IndexMinReaderVersion int64 `protobuf:"varint,3,opt,name=index_min_reader_version,json=indexMinReaderVersion,proto3" json:"index_min_reader_version,omitempty"` 937 IndexTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=index_time,json=indexTime,proto3" json:"index_time,omitempty"` 938 PlainAscii bool `protobuf:"varint,5,opt,name=plain_ascii,json=plainAscii,proto3" json:"plain_ascii,omitempty"` 939 LanguageMap map[string]uint32 `protobuf:"bytes,6,rep,name=language_map,json=languageMap,proto3" json:"language_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 940 ZoektVersion string `protobuf:"bytes,7,opt,name=zoekt_version,json=zoektVersion,proto3" json:"zoekt_version,omitempty"` 941 Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"` 942} 943 944func (x *IndexMetadata) Reset() { 945 *x = IndexMetadata{} 946 if protoimpl.UnsafeEnabled { 947 mi := &file_webserver_proto_msgTypes[8] 948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 949 ms.StoreMessageInfo(mi) 950 } 951} 952 953func (x *IndexMetadata) String() string { 954 return protoimpl.X.MessageStringOf(x) 955} 956 957func (*IndexMetadata) ProtoMessage() {} 958 959func (x *IndexMetadata) ProtoReflect() protoreflect.Message { 960 mi := &file_webserver_proto_msgTypes[8] 961 if protoimpl.UnsafeEnabled && x != nil { 962 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 963 if ms.LoadMessageInfo() == nil { 964 ms.StoreMessageInfo(mi) 965 } 966 return ms 967 } 968 return mi.MessageOf(x) 969} 970 971// Deprecated: Use IndexMetadata.ProtoReflect.Descriptor instead. 972func (*IndexMetadata) Descriptor() ([]byte, []int) { 973 return file_webserver_proto_rawDescGZIP(), []int{8} 974} 975 976func (x *IndexMetadata) GetIndexFormatVersion() int64 { 977 if x != nil { 978 return x.IndexFormatVersion 979 } 980 return 0 981} 982 983func (x *IndexMetadata) GetIndexFeatureVersion() int64 { 984 if x != nil { 985 return x.IndexFeatureVersion 986 } 987 return 0 988} 989 990func (x *IndexMetadata) GetIndexMinReaderVersion() int64 { 991 if x != nil { 992 return x.IndexMinReaderVersion 993 } 994 return 0 995} 996 997func (x *IndexMetadata) GetIndexTime() *timestamppb.Timestamp { 998 if x != nil { 999 return x.IndexTime 1000 } 1001 return nil 1002} 1003 1004func (x *IndexMetadata) GetPlainAscii() bool { 1005 if x != nil { 1006 return x.PlainAscii 1007 } 1008 return false 1009} 1010 1011func (x *IndexMetadata) GetLanguageMap() map[string]uint32 { 1012 if x != nil { 1013 return x.LanguageMap 1014 } 1015 return nil 1016} 1017 1018func (x *IndexMetadata) GetZoektVersion() string { 1019 if x != nil { 1020 return x.ZoektVersion 1021 } 1022 return "" 1023} 1024 1025func (x *IndexMetadata) GetId() string { 1026 if x != nil { 1027 return x.Id 1028 } 1029 return "" 1030} 1031 1032type MinimalRepoListEntry struct { 1033 state protoimpl.MessageState 1034 sizeCache protoimpl.SizeCache 1035 unknownFields protoimpl.UnknownFields 1036 1037 HasSymbols bool `protobuf:"varint,1,opt,name=has_symbols,json=hasSymbols,proto3" json:"has_symbols,omitempty"` 1038 Branches []*RepositoryBranch `protobuf:"bytes,2,rep,name=branches,proto3" json:"branches,omitempty"` 1039 IndexTimeUnix int64 `protobuf:"varint,3,opt,name=index_time_unix,json=indexTimeUnix,proto3" json:"index_time_unix,omitempty"` 1040} 1041 1042func (x *MinimalRepoListEntry) Reset() { 1043 *x = MinimalRepoListEntry{} 1044 if protoimpl.UnsafeEnabled { 1045 mi := &file_webserver_proto_msgTypes[9] 1046 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1047 ms.StoreMessageInfo(mi) 1048 } 1049} 1050 1051func (x *MinimalRepoListEntry) String() string { 1052 return protoimpl.X.MessageStringOf(x) 1053} 1054 1055func (*MinimalRepoListEntry) ProtoMessage() {} 1056 1057func (x *MinimalRepoListEntry) ProtoReflect() protoreflect.Message { 1058 mi := &file_webserver_proto_msgTypes[9] 1059 if protoimpl.UnsafeEnabled && x != nil { 1060 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1061 if ms.LoadMessageInfo() == nil { 1062 ms.StoreMessageInfo(mi) 1063 } 1064 return ms 1065 } 1066 return mi.MessageOf(x) 1067} 1068 1069// Deprecated: Use MinimalRepoListEntry.ProtoReflect.Descriptor instead. 1070func (*MinimalRepoListEntry) Descriptor() ([]byte, []int) { 1071 return file_webserver_proto_rawDescGZIP(), []int{9} 1072} 1073 1074func (x *MinimalRepoListEntry) GetHasSymbols() bool { 1075 if x != nil { 1076 return x.HasSymbols 1077 } 1078 return false 1079} 1080 1081func (x *MinimalRepoListEntry) GetBranches() []*RepositoryBranch { 1082 if x != nil { 1083 return x.Branches 1084 } 1085 return nil 1086} 1087 1088func (x *MinimalRepoListEntry) GetIndexTimeUnix() int64 { 1089 if x != nil { 1090 return x.IndexTimeUnix 1091 } 1092 return 0 1093} 1094 1095// RepositoryBranch describes an indexed branch, which is a name 1096// combined with a version. 1097type RepositoryBranch struct { 1098 state protoimpl.MessageState 1099 sizeCache protoimpl.SizeCache 1100 unknownFields protoimpl.UnknownFields 1101 1102 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1103 Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` 1104} 1105 1106func (x *RepositoryBranch) Reset() { 1107 *x = RepositoryBranch{} 1108 if protoimpl.UnsafeEnabled { 1109 mi := &file_webserver_proto_msgTypes[10] 1110 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1111 ms.StoreMessageInfo(mi) 1112 } 1113} 1114 1115func (x *RepositoryBranch) String() string { 1116 return protoimpl.X.MessageStringOf(x) 1117} 1118 1119func (*RepositoryBranch) ProtoMessage() {} 1120 1121func (x *RepositoryBranch) ProtoReflect() protoreflect.Message { 1122 mi := &file_webserver_proto_msgTypes[10] 1123 if protoimpl.UnsafeEnabled && x != nil { 1124 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1125 if ms.LoadMessageInfo() == nil { 1126 ms.StoreMessageInfo(mi) 1127 } 1128 return ms 1129 } 1130 return mi.MessageOf(x) 1131} 1132 1133// Deprecated: Use RepositoryBranch.ProtoReflect.Descriptor instead. 1134func (*RepositoryBranch) Descriptor() ([]byte, []int) { 1135 return file_webserver_proto_rawDescGZIP(), []int{10} 1136} 1137 1138func (x *RepositoryBranch) GetName() string { 1139 if x != nil { 1140 return x.Name 1141 } 1142 return "" 1143} 1144 1145func (x *RepositoryBranch) GetVersion() string { 1146 if x != nil { 1147 return x.Version 1148 } 1149 return "" 1150} 1151 1152// RepoStats is a collection of statistics for a set of repositories. 1153type RepoStats struct { 1154 state protoimpl.MessageState 1155 sizeCache protoimpl.SizeCache 1156 unknownFields protoimpl.UnknownFields 1157 1158 // repos is used for aggregrating the number of repositories. 1159 Repos int64 `protobuf:"varint,1,opt,name=repos,proto3" json:"repos,omitempty"` 1160 // shards is the total number of search shards. 1161 Shards int64 `protobuf:"varint,2,opt,name=shards,proto3" json:"shards,omitempty"` 1162 // documents holds the number of documents or files. 1163 Documents int64 `protobuf:"varint,3,opt,name=documents,proto3" json:"documents,omitempty"` 1164 // index_bytes is the amount of RAM used for index overhead. 1165 IndexBytes int64 `protobuf:"varint,4,opt,name=index_bytes,json=indexBytes,proto3" json:"index_bytes,omitempty"` 1166 // content_bytes is the amount of RAM used for raw content. 1167 ContentBytes int64 `protobuf:"varint,5,opt,name=content_bytes,json=contentBytes,proto3" json:"content_bytes,omitempty"` 1168 // new_lines_count is the number of newlines "\n" that appear in the zoekt 1169 // indexed documents. This is not exactly the same as line count, since it 1170 // will not include lines not terminated by "\n" (eg a file with no "\n", or 1171 // a final line without "\n"). Note: Zoekt deduplicates documents across 1172 // branches, so if a path has the same contents on multiple branches, there 1173 // is only one document for it. As such that document's newlines is only 1174 // counted once. See DefaultBranchNewLinesCount and AllBranchesNewLinesCount 1175 // for counts which do not deduplicate. 1176 NewLinesCount uint64 `protobuf:"varint,6,opt,name=new_lines_count,json=newLinesCount,proto3" json:"new_lines_count,omitempty"` 1177 // default_branch_new_lines_count is the number of newlines "\n" in the default 1178 // branch. 1179 DefaultBranchNewLinesCount uint64 `protobuf:"varint,7,opt,name=default_branch_new_lines_count,json=defaultBranchNewLinesCount,proto3" json:"default_branch_new_lines_count,omitempty"` 1180 // other_branches_new_lines_count is the number of newlines "\n" in all branches 1181 // except the default branch. 1182 OtherBranchesNewLinesCount uint64 `protobuf:"varint,8,opt,name=other_branches_new_lines_count,json=otherBranchesNewLinesCount,proto3" json:"other_branches_new_lines_count,omitempty"` 1183} 1184 1185func (x *RepoStats) Reset() { 1186 *x = RepoStats{} 1187 if protoimpl.UnsafeEnabled { 1188 mi := &file_webserver_proto_msgTypes[11] 1189 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1190 ms.StoreMessageInfo(mi) 1191 } 1192} 1193 1194func (x *RepoStats) String() string { 1195 return protoimpl.X.MessageStringOf(x) 1196} 1197 1198func (*RepoStats) ProtoMessage() {} 1199 1200func (x *RepoStats) ProtoReflect() protoreflect.Message { 1201 mi := &file_webserver_proto_msgTypes[11] 1202 if protoimpl.UnsafeEnabled && x != nil { 1203 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1204 if ms.LoadMessageInfo() == nil { 1205 ms.StoreMessageInfo(mi) 1206 } 1207 return ms 1208 } 1209 return mi.MessageOf(x) 1210} 1211 1212// Deprecated: Use RepoStats.ProtoReflect.Descriptor instead. 1213func (*RepoStats) Descriptor() ([]byte, []int) { 1214 return file_webserver_proto_rawDescGZIP(), []int{11} 1215} 1216 1217func (x *RepoStats) GetRepos() int64 { 1218 if x != nil { 1219 return x.Repos 1220 } 1221 return 0 1222} 1223 1224func (x *RepoStats) GetShards() int64 { 1225 if x != nil { 1226 return x.Shards 1227 } 1228 return 0 1229} 1230 1231func (x *RepoStats) GetDocuments() int64 { 1232 if x != nil { 1233 return x.Documents 1234 } 1235 return 0 1236} 1237 1238func (x *RepoStats) GetIndexBytes() int64 { 1239 if x != nil { 1240 return x.IndexBytes 1241 } 1242 return 0 1243} 1244 1245func (x *RepoStats) GetContentBytes() int64 { 1246 if x != nil { 1247 return x.ContentBytes 1248 } 1249 return 0 1250} 1251 1252func (x *RepoStats) GetNewLinesCount() uint64 { 1253 if x != nil { 1254 return x.NewLinesCount 1255 } 1256 return 0 1257} 1258 1259func (x *RepoStats) GetDefaultBranchNewLinesCount() uint64 { 1260 if x != nil { 1261 return x.DefaultBranchNewLinesCount 1262 } 1263 return 0 1264} 1265 1266func (x *RepoStats) GetOtherBranchesNewLinesCount() uint64 { 1267 if x != nil { 1268 return x.OtherBranchesNewLinesCount 1269 } 1270 return 0 1271} 1272 1273type Stats struct { 1274 state protoimpl.MessageState 1275 sizeCache protoimpl.SizeCache 1276 unknownFields protoimpl.UnknownFields 1277 1278 // Amount of I/O for reading contents. 1279 ContentBytesLoaded int64 `protobuf:"varint,1,opt,name=content_bytes_loaded,json=contentBytesLoaded,proto3" json:"content_bytes_loaded,omitempty"` 1280 // Amount of I/O for reading from index. 1281 IndexBytesLoaded int64 `protobuf:"varint,2,opt,name=index_bytes_loaded,json=indexBytesLoaded,proto3" json:"index_bytes_loaded,omitempty"` 1282 // Number of search shards that had a crash. 1283 Crashes int64 `protobuf:"varint,3,opt,name=crashes,proto3" json:"crashes,omitempty"` 1284 // Wall clock time for this search 1285 Duration *durationpb.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"` 1286 // Number of files containing a match. 1287 FileCount int64 `protobuf:"varint,5,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"` 1288 // Number of files in shards that we considered. 1289 ShardFilesConsidered int64 `protobuf:"varint,6,opt,name=shard_files_considered,json=shardFilesConsidered,proto3" json:"shard_files_considered,omitempty"` 1290 // Files that we evaluated. Equivalent to files for which all 1291 // atom matches (including negations) evaluated to true. 1292 FilesConsidered int64 `protobuf:"varint,7,opt,name=files_considered,json=filesConsidered,proto3" json:"files_considered,omitempty"` 1293 // Files for which we loaded file content to verify substring matches 1294 FilesLoaded int64 `protobuf:"varint,8,opt,name=files_loaded,json=filesLoaded,proto3" json:"files_loaded,omitempty"` 1295 // Candidate files whose contents weren't examined because we 1296 // gathered enough matches. 1297 FilesSkipped int64 `protobuf:"varint,9,opt,name=files_skipped,json=filesSkipped,proto3" json:"files_skipped,omitempty"` 1298 // Shards that we scanned to find matches. 1299 ShardsScanned int64 `protobuf:"varint,10,opt,name=shards_scanned,json=shardsScanned,proto3" json:"shards_scanned,omitempty"` 1300 // Shards that we did not process because a query was canceled. 1301 ShardsSkipped int64 `protobuf:"varint,11,opt,name=shards_skipped,json=shardsSkipped,proto3" json:"shards_skipped,omitempty"` 1302 // Shards that we did not process because the query was rejected by the 1303 // ngram filter indicating it had no matches. 1304 ShardsSkippedFilter int64 `protobuf:"varint,12,opt,name=shards_skipped_filter,json=shardsSkippedFilter,proto3" json:"shards_skipped_filter,omitempty"` 1305 // Number of non-overlapping matches 1306 MatchCount int64 `protobuf:"varint,13,opt,name=match_count,json=matchCount,proto3" json:"match_count,omitempty"` 1307 // Number of candidate matches as a result of searching ngrams. 1308 NgramMatches int64 `protobuf:"varint,14,opt,name=ngram_matches,json=ngramMatches,proto3" json:"ngram_matches,omitempty"` 1309 // Wall clock time for queued search. 1310 Wait *durationpb.Duration `protobuf:"bytes,15,opt,name=wait,proto3" json:"wait,omitempty"` 1311 // Number of times regexp was called on files that we evaluated. 1312 RegexpsConsidered int64 `protobuf:"varint,16,opt,name=regexps_considered,json=regexpsConsidered,proto3" json:"regexps_considered,omitempty"` 1313 // FlushReason explains why results were flushed. 1314 FlushReason FlushReason `protobuf:"varint,17,opt,name=flush_reason,json=flushReason,proto3,enum=grpc.v1.FlushReason" json:"flush_reason,omitempty"` 1315} 1316 1317func (x *Stats) Reset() { 1318 *x = Stats{} 1319 if protoimpl.UnsafeEnabled { 1320 mi := &file_webserver_proto_msgTypes[12] 1321 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1322 ms.StoreMessageInfo(mi) 1323 } 1324} 1325 1326func (x *Stats) String() string { 1327 return protoimpl.X.MessageStringOf(x) 1328} 1329 1330func (*Stats) ProtoMessage() {} 1331 1332func (x *Stats) ProtoReflect() protoreflect.Message { 1333 mi := &file_webserver_proto_msgTypes[12] 1334 if protoimpl.UnsafeEnabled && x != nil { 1335 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1336 if ms.LoadMessageInfo() == nil { 1337 ms.StoreMessageInfo(mi) 1338 } 1339 return ms 1340 } 1341 return mi.MessageOf(x) 1342} 1343 1344// Deprecated: Use Stats.ProtoReflect.Descriptor instead. 1345func (*Stats) Descriptor() ([]byte, []int) { 1346 return file_webserver_proto_rawDescGZIP(), []int{12} 1347} 1348 1349func (x *Stats) GetContentBytesLoaded() int64 { 1350 if x != nil { 1351 return x.ContentBytesLoaded 1352 } 1353 return 0 1354} 1355 1356func (x *Stats) GetIndexBytesLoaded() int64 { 1357 if x != nil { 1358 return x.IndexBytesLoaded 1359 } 1360 return 0 1361} 1362 1363func (x *Stats) GetCrashes() int64 { 1364 if x != nil { 1365 return x.Crashes 1366 } 1367 return 0 1368} 1369 1370func (x *Stats) GetDuration() *durationpb.Duration { 1371 if x != nil { 1372 return x.Duration 1373 } 1374 return nil 1375} 1376 1377func (x *Stats) GetFileCount() int64 { 1378 if x != nil { 1379 return x.FileCount 1380 } 1381 return 0 1382} 1383 1384func (x *Stats) GetShardFilesConsidered() int64 { 1385 if x != nil { 1386 return x.ShardFilesConsidered 1387 } 1388 return 0 1389} 1390 1391func (x *Stats) GetFilesConsidered() int64 { 1392 if x != nil { 1393 return x.FilesConsidered 1394 } 1395 return 0 1396} 1397 1398func (x *Stats) GetFilesLoaded() int64 { 1399 if x != nil { 1400 return x.FilesLoaded 1401 } 1402 return 0 1403} 1404 1405func (x *Stats) GetFilesSkipped() int64 { 1406 if x != nil { 1407 return x.FilesSkipped 1408 } 1409 return 0 1410} 1411 1412func (x *Stats) GetShardsScanned() int64 { 1413 if x != nil { 1414 return x.ShardsScanned 1415 } 1416 return 0 1417} 1418 1419func (x *Stats) GetShardsSkipped() int64 { 1420 if x != nil { 1421 return x.ShardsSkipped 1422 } 1423 return 0 1424} 1425 1426func (x *Stats) GetShardsSkippedFilter() int64 { 1427 if x != nil { 1428 return x.ShardsSkippedFilter 1429 } 1430 return 0 1431} 1432 1433func (x *Stats) GetMatchCount() int64 { 1434 if x != nil { 1435 return x.MatchCount 1436 } 1437 return 0 1438} 1439 1440func (x *Stats) GetNgramMatches() int64 { 1441 if x != nil { 1442 return x.NgramMatches 1443 } 1444 return 0 1445} 1446 1447func (x *Stats) GetWait() *durationpb.Duration { 1448 if x != nil { 1449 return x.Wait 1450 } 1451 return nil 1452} 1453 1454func (x *Stats) GetRegexpsConsidered() int64 { 1455 if x != nil { 1456 return x.RegexpsConsidered 1457 } 1458 return 0 1459} 1460 1461func (x *Stats) GetFlushReason() FlushReason { 1462 if x != nil { 1463 return x.FlushReason 1464 } 1465 return FlushReason_UNKNOWN 1466} 1467 1468// Progress contains information about the global progress of the running search query. 1469// This is used by the frontend to reorder results and emit them when stable. 1470// Sourcegraph specific: this is used when querying multiple zoekt-webserver instances. 1471type Progress struct { 1472 state protoimpl.MessageState 1473 sizeCache protoimpl.SizeCache 1474 unknownFields protoimpl.UnknownFields 1475 1476 // Priority of the shard that was searched. 1477 Priority float64 `protobuf:"fixed64,1,opt,name=priority,proto3" json:"priority,omitempty"` 1478 // max_pending_priority is the maximum priority of pending result that is being searched in parallel. 1479 // This is used to reorder results when the result set is known to be stable-- that is, when a result's 1480 // Priority is greater than the max(MaxPendingPriority) from the latest results of each backend, it can be returned to the user. 1481 // 1482 // max_pending_priority decreases monotonically in each SearchResult. 1483 MaxPendingPriority float64 `protobuf:"fixed64,2,opt,name=max_pending_priority,json=maxPendingPriority,proto3" json:"max_pending_priority,omitempty"` 1484} 1485 1486func (x *Progress) Reset() { 1487 *x = Progress{} 1488 if protoimpl.UnsafeEnabled { 1489 mi := &file_webserver_proto_msgTypes[13] 1490 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1491 ms.StoreMessageInfo(mi) 1492 } 1493} 1494 1495func (x *Progress) String() string { 1496 return protoimpl.X.MessageStringOf(x) 1497} 1498 1499func (*Progress) ProtoMessage() {} 1500 1501func (x *Progress) ProtoReflect() protoreflect.Message { 1502 mi := &file_webserver_proto_msgTypes[13] 1503 if protoimpl.UnsafeEnabled && x != nil { 1504 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1505 if ms.LoadMessageInfo() == nil { 1506 ms.StoreMessageInfo(mi) 1507 } 1508 return ms 1509 } 1510 return mi.MessageOf(x) 1511} 1512 1513// Deprecated: Use Progress.ProtoReflect.Descriptor instead. 1514func (*Progress) Descriptor() ([]byte, []int) { 1515 return file_webserver_proto_rawDescGZIP(), []int{13} 1516} 1517 1518func (x *Progress) GetPriority() float64 { 1519 if x != nil { 1520 return x.Priority 1521 } 1522 return 0 1523} 1524 1525func (x *Progress) GetMaxPendingPriority() float64 { 1526 if x != nil { 1527 return x.MaxPendingPriority 1528 } 1529 return 0 1530} 1531 1532// FileMatch contains all the matches within a file. 1533type FileMatch struct { 1534 state protoimpl.MessageState 1535 sizeCache protoimpl.SizeCache 1536 unknownFields protoimpl.UnknownFields 1537 1538 // Ranking; the higher, the better. 1539 Score float64 `protobuf:"fixed64,1,opt,name=score,proto3" json:"score,omitempty"` 1540 // For debugging. Needs DebugScore set, but public so tests in 1541 // other packages can print some diagnostics. 1542 Debug string `protobuf:"bytes,2,opt,name=debug,proto3" json:"debug,omitempty"` 1543 FileName string `protobuf:"bytes,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` 1544 // Repository is the globally unique name of the repo of the 1545 // match 1546 Repository string `protobuf:"bytes,4,opt,name=repository,proto3" json:"repository,omitempty"` 1547 Branches []string `protobuf:"bytes,5,rep,name=branches,proto3" json:"branches,omitempty"` 1548 // One of line_matches or chunk_matches will be returned depending on whether 1549 // the SearchOptions.ChunkMatches is set. 1550 LineMatches []*LineMatch `protobuf:"bytes,6,rep,name=line_matches,json=lineMatches,proto3" json:"line_matches,omitempty"` 1551 ChunkMatches []*ChunkMatch `protobuf:"bytes,7,rep,name=chunk_matches,json=chunkMatches,proto3" json:"chunk_matches,omitempty"` 1552 // repository_id is a Sourcegraph extension. This is the ID of Repository in 1553 // Sourcegraph. 1554 RepositoryId uint32 `protobuf:"varint,8,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"` 1555 RepositoryPriority float64 `protobuf:"fixed64,9,opt,name=repository_priority,json=repositoryPriority,proto3" json:"repository_priority,omitempty"` 1556 // Only set if requested 1557 Content []byte `protobuf:"bytes,10,opt,name=content,proto3" json:"content,omitempty"` 1558 // Checksum of the content. 1559 Checksum []byte `protobuf:"bytes,11,opt,name=checksum,proto3" json:"checksum,omitempty"` 1560 // Detected language of the result. 1561 Language string `protobuf:"bytes,12,opt,name=language,proto3" json:"language,omitempty"` 1562 // sub_repository_name is the globally unique name of the repo, 1563 // if it came from a subrepository 1564 SubRepositoryName string `protobuf:"bytes,13,opt,name=sub_repository_name,json=subRepositoryName,proto3" json:"sub_repository_name,omitempty"` 1565 // sub_repository_path holds the prefix where the subrepository 1566 // was mounted. 1567 SubRepositoryPath string `protobuf:"bytes,14,opt,name=sub_repository_path,json=subRepositoryPath,proto3" json:"sub_repository_path,omitempty"` 1568 // Commit SHA1 (hex) of the (sub)repo holding the file. 1569 Version string `protobuf:"bytes,15,opt,name=version,proto3" json:"version,omitempty"` 1570} 1571 1572func (x *FileMatch) Reset() { 1573 *x = FileMatch{} 1574 if protoimpl.UnsafeEnabled { 1575 mi := &file_webserver_proto_msgTypes[14] 1576 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1577 ms.StoreMessageInfo(mi) 1578 } 1579} 1580 1581func (x *FileMatch) String() string { 1582 return protoimpl.X.MessageStringOf(x) 1583} 1584 1585func (*FileMatch) ProtoMessage() {} 1586 1587func (x *FileMatch) ProtoReflect() protoreflect.Message { 1588 mi := &file_webserver_proto_msgTypes[14] 1589 if protoimpl.UnsafeEnabled && x != nil { 1590 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1591 if ms.LoadMessageInfo() == nil { 1592 ms.StoreMessageInfo(mi) 1593 } 1594 return ms 1595 } 1596 return mi.MessageOf(x) 1597} 1598 1599// Deprecated: Use FileMatch.ProtoReflect.Descriptor instead. 1600func (*FileMatch) Descriptor() ([]byte, []int) { 1601 return file_webserver_proto_rawDescGZIP(), []int{14} 1602} 1603 1604func (x *FileMatch) GetScore() float64 { 1605 if x != nil { 1606 return x.Score 1607 } 1608 return 0 1609} 1610 1611func (x *FileMatch) GetDebug() string { 1612 if x != nil { 1613 return x.Debug 1614 } 1615 return "" 1616} 1617 1618func (x *FileMatch) GetFileName() string { 1619 if x != nil { 1620 return x.FileName 1621 } 1622 return "" 1623} 1624 1625func (x *FileMatch) GetRepository() string { 1626 if x != nil { 1627 return x.Repository 1628 } 1629 return "" 1630} 1631 1632func (x *FileMatch) GetBranches() []string { 1633 if x != nil { 1634 return x.Branches 1635 } 1636 return nil 1637} 1638 1639func (x *FileMatch) GetLineMatches() []*LineMatch { 1640 if x != nil { 1641 return x.LineMatches 1642 } 1643 return nil 1644} 1645 1646func (x *FileMatch) GetChunkMatches() []*ChunkMatch { 1647 if x != nil { 1648 return x.ChunkMatches 1649 } 1650 return nil 1651} 1652 1653func (x *FileMatch) GetRepositoryId() uint32 { 1654 if x != nil { 1655 return x.RepositoryId 1656 } 1657 return 0 1658} 1659 1660func (x *FileMatch) GetRepositoryPriority() float64 { 1661 if x != nil { 1662 return x.RepositoryPriority 1663 } 1664 return 0 1665} 1666 1667func (x *FileMatch) GetContent() []byte { 1668 if x != nil { 1669 return x.Content 1670 } 1671 return nil 1672} 1673 1674func (x *FileMatch) GetChecksum() []byte { 1675 if x != nil { 1676 return x.Checksum 1677 } 1678 return nil 1679} 1680 1681func (x *FileMatch) GetLanguage() string { 1682 if x != nil { 1683 return x.Language 1684 } 1685 return "" 1686} 1687 1688func (x *FileMatch) GetSubRepositoryName() string { 1689 if x != nil { 1690 return x.SubRepositoryName 1691 } 1692 return "" 1693} 1694 1695func (x *FileMatch) GetSubRepositoryPath() string { 1696 if x != nil { 1697 return x.SubRepositoryPath 1698 } 1699 return "" 1700} 1701 1702func (x *FileMatch) GetVersion() string { 1703 if x != nil { 1704 return x.Version 1705 } 1706 return "" 1707} 1708 1709type LineMatch struct { 1710 state protoimpl.MessageState 1711 sizeCache protoimpl.SizeCache 1712 unknownFields protoimpl.UnknownFields 1713 1714 Line []byte `protobuf:"bytes,1,opt,name=line,proto3" json:"line,omitempty"` 1715 LineStart int64 `protobuf:"varint,2,opt,name=line_start,json=lineStart,proto3" json:"line_start,omitempty"` 1716 LineEnd int64 `protobuf:"varint,3,opt,name=line_end,json=lineEnd,proto3" json:"line_end,omitempty"` 1717 LineNumber int64 `protobuf:"varint,4,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"` 1718 // before and after are only set when SearchOptions.NumContextLines is > 0 1719 Before []byte `protobuf:"bytes,5,opt,name=before,proto3" json:"before,omitempty"` 1720 After []byte `protobuf:"bytes,6,opt,name=after,proto3" json:"after,omitempty"` 1721 // If set, this was a match on the filename. 1722 FileName bool `protobuf:"varint,7,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` 1723 // The higher the better. Only ranks the quality of the match 1724 // within the file, does not take rank of file into account 1725 Score float64 `protobuf:"fixed64,8,opt,name=score,proto3" json:"score,omitempty"` 1726 DebugScore string `protobuf:"bytes,9,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"` 1727 LineFragments []*LineFragmentMatch `protobuf:"bytes,10,rep,name=line_fragments,json=lineFragments,proto3" json:"line_fragments,omitempty"` 1728} 1729 1730func (x *LineMatch) Reset() { 1731 *x = LineMatch{} 1732 if protoimpl.UnsafeEnabled { 1733 mi := &file_webserver_proto_msgTypes[15] 1734 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1735 ms.StoreMessageInfo(mi) 1736 } 1737} 1738 1739func (x *LineMatch) String() string { 1740 return protoimpl.X.MessageStringOf(x) 1741} 1742 1743func (*LineMatch) ProtoMessage() {} 1744 1745func (x *LineMatch) ProtoReflect() protoreflect.Message { 1746 mi := &file_webserver_proto_msgTypes[15] 1747 if protoimpl.UnsafeEnabled && x != nil { 1748 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1749 if ms.LoadMessageInfo() == nil { 1750 ms.StoreMessageInfo(mi) 1751 } 1752 return ms 1753 } 1754 return mi.MessageOf(x) 1755} 1756 1757// Deprecated: Use LineMatch.ProtoReflect.Descriptor instead. 1758func (*LineMatch) Descriptor() ([]byte, []int) { 1759 return file_webserver_proto_rawDescGZIP(), []int{15} 1760} 1761 1762func (x *LineMatch) GetLine() []byte { 1763 if x != nil { 1764 return x.Line 1765 } 1766 return nil 1767} 1768 1769func (x *LineMatch) GetLineStart() int64 { 1770 if x != nil { 1771 return x.LineStart 1772 } 1773 return 0 1774} 1775 1776func (x *LineMatch) GetLineEnd() int64 { 1777 if x != nil { 1778 return x.LineEnd 1779 } 1780 return 0 1781} 1782 1783func (x *LineMatch) GetLineNumber() int64 { 1784 if x != nil { 1785 return x.LineNumber 1786 } 1787 return 0 1788} 1789 1790func (x *LineMatch) GetBefore() []byte { 1791 if x != nil { 1792 return x.Before 1793 } 1794 return nil 1795} 1796 1797func (x *LineMatch) GetAfter() []byte { 1798 if x != nil { 1799 return x.After 1800 } 1801 return nil 1802} 1803 1804func (x *LineMatch) GetFileName() bool { 1805 if x != nil { 1806 return x.FileName 1807 } 1808 return false 1809} 1810 1811func (x *LineMatch) GetScore() float64 { 1812 if x != nil { 1813 return x.Score 1814 } 1815 return 0 1816} 1817 1818func (x *LineMatch) GetDebugScore() string { 1819 if x != nil { 1820 return x.DebugScore 1821 } 1822 return "" 1823} 1824 1825func (x *LineMatch) GetLineFragments() []*LineFragmentMatch { 1826 if x != nil { 1827 return x.LineFragments 1828 } 1829 return nil 1830} 1831 1832type LineFragmentMatch struct { 1833 state protoimpl.MessageState 1834 sizeCache protoimpl.SizeCache 1835 unknownFields protoimpl.UnknownFields 1836 1837 // Offset within the line, in bytes. 1838 LineOffset int64 `protobuf:"varint,1,opt,name=line_offset,json=lineOffset,proto3" json:"line_offset,omitempty"` 1839 // Offset from file start, in bytes. 1840 Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` 1841 // Number bytes that match. 1842 MatchLength int64 `protobuf:"varint,3,opt,name=match_length,json=matchLength,proto3" json:"match_length,omitempty"` 1843 SymbolInfo *SymbolInfo `protobuf:"bytes,4,opt,name=symbol_info,json=symbolInfo,proto3,oneof" json:"symbol_info,omitempty"` 1844} 1845 1846func (x *LineFragmentMatch) Reset() { 1847 *x = LineFragmentMatch{} 1848 if protoimpl.UnsafeEnabled { 1849 mi := &file_webserver_proto_msgTypes[16] 1850 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1851 ms.StoreMessageInfo(mi) 1852 } 1853} 1854 1855func (x *LineFragmentMatch) String() string { 1856 return protoimpl.X.MessageStringOf(x) 1857} 1858 1859func (*LineFragmentMatch) ProtoMessage() {} 1860 1861func (x *LineFragmentMatch) ProtoReflect() protoreflect.Message { 1862 mi := &file_webserver_proto_msgTypes[16] 1863 if protoimpl.UnsafeEnabled && x != nil { 1864 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1865 if ms.LoadMessageInfo() == nil { 1866 ms.StoreMessageInfo(mi) 1867 } 1868 return ms 1869 } 1870 return mi.MessageOf(x) 1871} 1872 1873// Deprecated: Use LineFragmentMatch.ProtoReflect.Descriptor instead. 1874func (*LineFragmentMatch) Descriptor() ([]byte, []int) { 1875 return file_webserver_proto_rawDescGZIP(), []int{16} 1876} 1877 1878func (x *LineFragmentMatch) GetLineOffset() int64 { 1879 if x != nil { 1880 return x.LineOffset 1881 } 1882 return 0 1883} 1884 1885func (x *LineFragmentMatch) GetOffset() uint32 { 1886 if x != nil { 1887 return x.Offset 1888 } 1889 return 0 1890} 1891 1892func (x *LineFragmentMatch) GetMatchLength() int64 { 1893 if x != nil { 1894 return x.MatchLength 1895 } 1896 return 0 1897} 1898 1899func (x *LineFragmentMatch) GetSymbolInfo() *SymbolInfo { 1900 if x != nil { 1901 return x.SymbolInfo 1902 } 1903 return nil 1904} 1905 1906type SymbolInfo struct { 1907 state protoimpl.MessageState 1908 sizeCache protoimpl.SizeCache 1909 unknownFields protoimpl.UnknownFields 1910 1911 Sym string `protobuf:"bytes,1,opt,name=sym,proto3" json:"sym,omitempty"` 1912 Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` 1913 Parent string `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"` 1914 ParentKind string `protobuf:"bytes,4,opt,name=parent_kind,json=parentKind,proto3" json:"parent_kind,omitempty"` 1915} 1916 1917func (x *SymbolInfo) Reset() { 1918 *x = SymbolInfo{} 1919 if protoimpl.UnsafeEnabled { 1920 mi := &file_webserver_proto_msgTypes[17] 1921 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1922 ms.StoreMessageInfo(mi) 1923 } 1924} 1925 1926func (x *SymbolInfo) String() string { 1927 return protoimpl.X.MessageStringOf(x) 1928} 1929 1930func (*SymbolInfo) ProtoMessage() {} 1931 1932func (x *SymbolInfo) ProtoReflect() protoreflect.Message { 1933 mi := &file_webserver_proto_msgTypes[17] 1934 if protoimpl.UnsafeEnabled && x != nil { 1935 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1936 if ms.LoadMessageInfo() == nil { 1937 ms.StoreMessageInfo(mi) 1938 } 1939 return ms 1940 } 1941 return mi.MessageOf(x) 1942} 1943 1944// Deprecated: Use SymbolInfo.ProtoReflect.Descriptor instead. 1945func (*SymbolInfo) Descriptor() ([]byte, []int) { 1946 return file_webserver_proto_rawDescGZIP(), []int{17} 1947} 1948 1949func (x *SymbolInfo) GetSym() string { 1950 if x != nil { 1951 return x.Sym 1952 } 1953 return "" 1954} 1955 1956func (x *SymbolInfo) GetKind() string { 1957 if x != nil { 1958 return x.Kind 1959 } 1960 return "" 1961} 1962 1963func (x *SymbolInfo) GetParent() string { 1964 if x != nil { 1965 return x.Parent 1966 } 1967 return "" 1968} 1969 1970func (x *SymbolInfo) GetParentKind() string { 1971 if x != nil { 1972 return x.ParentKind 1973 } 1974 return "" 1975} 1976 1977type ChunkMatch struct { 1978 state protoimpl.MessageState 1979 sizeCache protoimpl.SizeCache 1980 unknownFields protoimpl.UnknownFields 1981 1982 // A contiguous range of complete lines that fully contains Ranges. 1983 Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` 1984 // The location (inclusive) of the beginning of content 1985 // relative to the beginning of the file. It will always be at the 1986 // beginning of a line (Column will always be 1). 1987 ContentStart *Location `protobuf:"bytes,2,opt,name=content_start,json=contentStart,proto3" json:"content_start,omitempty"` 1988 // True if this match is a match on the file name, in 1989 // which case Content will contain the file name. 1990 FileName bool `protobuf:"varint,3,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` 1991 // A set of matching ranges within this chunk. Each range is relative 1992 // to the beginning of the file (not the beginning of Content). 1993 Ranges []*Range `protobuf:"bytes,4,rep,name=ranges,proto3" json:"ranges,omitempty"` 1994 // The symbol information associated with Ranges. If it is non-nil, 1995 // its length will equal that of Ranges. Any of its elements may be nil. 1996 SymbolInfo []*SymbolInfo `protobuf:"bytes,5,rep,name=symbol_info,json=symbolInfo,proto3" json:"symbol_info,omitempty"` 1997 Score float64 `protobuf:"fixed64,6,opt,name=score,proto3" json:"score,omitempty"` 1998 DebugScore string `protobuf:"bytes,7,opt,name=debug_score,json=debugScore,proto3" json:"debug_score,omitempty"` 1999} 2000 2001func (x *ChunkMatch) Reset() { 2002 *x = ChunkMatch{} 2003 if protoimpl.UnsafeEnabled { 2004 mi := &file_webserver_proto_msgTypes[18] 2005 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2006 ms.StoreMessageInfo(mi) 2007 } 2008} 2009 2010func (x *ChunkMatch) String() string { 2011 return protoimpl.X.MessageStringOf(x) 2012} 2013 2014func (*ChunkMatch) ProtoMessage() {} 2015 2016func (x *ChunkMatch) ProtoReflect() protoreflect.Message { 2017 mi := &file_webserver_proto_msgTypes[18] 2018 if protoimpl.UnsafeEnabled && x != nil { 2019 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2020 if ms.LoadMessageInfo() == nil { 2021 ms.StoreMessageInfo(mi) 2022 } 2023 return ms 2024 } 2025 return mi.MessageOf(x) 2026} 2027 2028// Deprecated: Use ChunkMatch.ProtoReflect.Descriptor instead. 2029func (*ChunkMatch) Descriptor() ([]byte, []int) { 2030 return file_webserver_proto_rawDescGZIP(), []int{18} 2031} 2032 2033func (x *ChunkMatch) GetContent() []byte { 2034 if x != nil { 2035 return x.Content 2036 } 2037 return nil 2038} 2039 2040func (x *ChunkMatch) GetContentStart() *Location { 2041 if x != nil { 2042 return x.ContentStart 2043 } 2044 return nil 2045} 2046 2047func (x *ChunkMatch) GetFileName() bool { 2048 if x != nil { 2049 return x.FileName 2050 } 2051 return false 2052} 2053 2054func (x *ChunkMatch) GetRanges() []*Range { 2055 if x != nil { 2056 return x.Ranges 2057 } 2058 return nil 2059} 2060 2061func (x *ChunkMatch) GetSymbolInfo() []*SymbolInfo { 2062 if x != nil { 2063 return x.SymbolInfo 2064 } 2065 return nil 2066} 2067 2068func (x *ChunkMatch) GetScore() float64 { 2069 if x != nil { 2070 return x.Score 2071 } 2072 return 0 2073} 2074 2075func (x *ChunkMatch) GetDebugScore() string { 2076 if x != nil { 2077 return x.DebugScore 2078 } 2079 return "" 2080} 2081 2082type Range struct { 2083 state protoimpl.MessageState 2084 sizeCache protoimpl.SizeCache 2085 unknownFields protoimpl.UnknownFields 2086 2087 // The inclusive beginning of the range. 2088 Start *Location `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` 2089 // The exclusive end of the range. 2090 End *Location `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` 2091} 2092 2093func (x *Range) Reset() { 2094 *x = Range{} 2095 if protoimpl.UnsafeEnabled { 2096 mi := &file_webserver_proto_msgTypes[19] 2097 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2098 ms.StoreMessageInfo(mi) 2099 } 2100} 2101 2102func (x *Range) String() string { 2103 return protoimpl.X.MessageStringOf(x) 2104} 2105 2106func (*Range) ProtoMessage() {} 2107 2108func (x *Range) ProtoReflect() protoreflect.Message { 2109 mi := &file_webserver_proto_msgTypes[19] 2110 if protoimpl.UnsafeEnabled && x != nil { 2111 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2112 if ms.LoadMessageInfo() == nil { 2113 ms.StoreMessageInfo(mi) 2114 } 2115 return ms 2116 } 2117 return mi.MessageOf(x) 2118} 2119 2120// Deprecated: Use Range.ProtoReflect.Descriptor instead. 2121func (*Range) Descriptor() ([]byte, []int) { 2122 return file_webserver_proto_rawDescGZIP(), []int{19} 2123} 2124 2125func (x *Range) GetStart() *Location { 2126 if x != nil { 2127 return x.Start 2128 } 2129 return nil 2130} 2131 2132func (x *Range) GetEnd() *Location { 2133 if x != nil { 2134 return x.End 2135 } 2136 return nil 2137} 2138 2139type Location struct { 2140 state protoimpl.MessageState 2141 sizeCache protoimpl.SizeCache 2142 unknownFields protoimpl.UnknownFields 2143 2144 // 0-based byte offset from the beginning of the file 2145 ByteOffset uint32 `protobuf:"varint,1,opt,name=byte_offset,json=byteOffset,proto3" json:"byte_offset,omitempty"` 2146 // 1-based line number from the beginning of the file 2147 LineNumber uint32 `protobuf:"varint,2,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"` 2148 // 1-based column number (in runes) from the beginning of line 2149 Column uint32 `protobuf:"varint,3,opt,name=column,proto3" json:"column,omitempty"` 2150} 2151 2152func (x *Location) Reset() { 2153 *x = Location{} 2154 if protoimpl.UnsafeEnabled { 2155 mi := &file_webserver_proto_msgTypes[20] 2156 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2157 ms.StoreMessageInfo(mi) 2158 } 2159} 2160 2161func (x *Location) String() string { 2162 return protoimpl.X.MessageStringOf(x) 2163} 2164 2165func (*Location) ProtoMessage() {} 2166 2167func (x *Location) ProtoReflect() protoreflect.Message { 2168 mi := &file_webserver_proto_msgTypes[20] 2169 if protoimpl.UnsafeEnabled && x != nil { 2170 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2171 if ms.LoadMessageInfo() == nil { 2172 ms.StoreMessageInfo(mi) 2173 } 2174 return ms 2175 } 2176 return mi.MessageOf(x) 2177} 2178 2179// Deprecated: Use Location.ProtoReflect.Descriptor instead. 2180func (*Location) Descriptor() ([]byte, []int) { 2181 return file_webserver_proto_rawDescGZIP(), []int{20} 2182} 2183 2184func (x *Location) GetByteOffset() uint32 { 2185 if x != nil { 2186 return x.ByteOffset 2187 } 2188 return 0 2189} 2190 2191func (x *Location) GetLineNumber() uint32 { 2192 if x != nil { 2193 return x.LineNumber 2194 } 2195 return 0 2196} 2197 2198func (x *Location) GetColumn() uint32 { 2199 if x != nil { 2200 return x.Column 2201 } 2202 return 0 2203} 2204 2205var File_webserver_proto protoreflect.FileDescriptor 2206 2207var file_webserver_proto_rawDesc = []byte{ 2208 0x0a, 0x0f, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2209 0x6f, 0x12, 0x07, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 2210 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 2211 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 2212 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 2213 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x71, 0x75, 0x65, 2214 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5d, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 2215 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x71, 0x75, 0x65, 2216 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 2217 0x76, 0x31, 0x2e, 0x51, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6f, 2218 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 2219 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2220 0x73, 0x52, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x22, 0xa5, 0x03, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 2221 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x74, 2222 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x72, 0x70, 0x63, 2223 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 2224 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 2225 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 2226 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 2227 0x28, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 2228 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x74, 2229 0x63, 0x68, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x70, 2230 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 2231 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 2232 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 2233 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x51, 0x0a, 2234 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 2235 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2236 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 2237 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 2238 0x79, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2239 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 2240 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 2241 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 2242 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 2243 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 2244 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2245 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 2246 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 2247 0xc4, 0x05, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2248 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x6f, 2249 0x63, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 2250 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 2251 0x14, 0x0a, 0x05, 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 2252 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6d, 2253 0x61, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 2254 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x78, 0x4d, 0x61, 2255 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 2256 0x6c, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 2257 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x61, 2258 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 2259 0x68, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x61, 2260 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 2261 0x16, 0x73, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x78, 0x4d, 0x61, 0x74, 2262 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x77, 2263 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 2264 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2265 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x57, 0x61, 2266 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 2267 0x77, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 2268 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2269 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x6c, 0x75, 0x73, 2270 0x68, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 2271 0x5f, 0x64, 0x6f, 0x63, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x75, 2272 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x44, 0x6f, 0x63, 2273 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 2274 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 2275 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 2276 0x65, 0x78, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x75, 0x6e, 2277 0x6b, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 2278 0x0c, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x2c, 0x0a, 2279 0x12, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 2280 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x73, 0x65, 0x44, 0x6f, 2281 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x64, 2282 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x5f, 0x77, 0x65, 2283 0x69, 0x67, 0x68, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x64, 0x6f, 0x63, 0x75, 2284 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 2285 0x14, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 2286 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 2287 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 2288 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, 0x6b, 0x65, 2289 0x79, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 2290 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x53, 2291 0x63, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x59, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 2292 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 2293 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x51, 2294 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x18, 2295 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2296 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x6f, 0x70, 0x74, 2297 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 2298 0x73, 0x12, 0x38, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 2299 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 2300 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x46, 2301 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 2302 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x69, 2303 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x22, 0x83, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 2304 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x5f, 2305 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 2306 0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 2307 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x10, 0x01, 0x12, 2308 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 2309 0x4c, 0x44, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 2310 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 2311 0x52, 0x45, 0x50, 0x4f, 0x53, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x03, 0x22, 0xb7, 0x03, 0x0a, 0x0c, 2312 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 2313 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 2314 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 2315 0x74, 0x72, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x72, 0x65, 2316 0x70, 0x6f, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 2317 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 2318 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 2319 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 2320 0x63, 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 2321 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 2322 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2323 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 2324 0x12, 0x3c, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 2325 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 2326 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 2327 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x1a, 0x5a, 2328 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 2329 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 2330 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2331 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 2332 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 2333 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x0c, 0x4d, 0x69, 2334 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 2335 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 2336 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 2337 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x70, 2338 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 2339 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xad, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 2340 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 2341 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 2342 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 2343 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x0a, 0x0e, 2344 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 2345 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x49, 2346 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x69, 0x6e, 2347 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, 0x73, 2348 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x70, 2349 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 2350 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xc5, 0x06, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 2351 0x74, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 2352 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 2353 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 2354 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 2355 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 2356 0x63, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x05, 2357 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 2358 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 2359 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x73, 0x75, 0x62, 2360 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 2361 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 2362 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 0x45, 2363 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 2364 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x74, 2365 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 2366 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x55, 0x72, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 2367 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 2368 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x69, 0x6c, 2369 0x65, 0x55, 0x72, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 2370 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x65, 2371 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x69, 2372 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 2373 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 2374 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41, 2375 0x0a, 0x0a, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x03, 2376 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 2377 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 2378 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 2379 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 2380 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6f, 2381 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 2382 0x64, 0x65, 0x78, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 2383 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 2384 0x0a, 0x68, 0x61, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 2385 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 2386 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x6c, 0x61, 0x74, 2387 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 2388 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2389 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 2390 0x70, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, 2391 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x6d, 0x62, 0x73, 2392 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x46, 0x69, 0x6c, 2393 0x65, 0x54, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x1a, 0x52, 0x0a, 0x0f, 0x53, 2394 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 2395 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 2396 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 2397 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 2398 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 2399 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 2400 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 2401 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 2402 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcb, 0x03, 2403 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 2404 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 2405 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x69, 2406 0x6e, 0x64, 0x65, 0x78, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 2407 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 2408 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 2409 0x52, 0x13, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 2410 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6d, 2411 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 2412 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x69, 2413 0x6e, 0x52, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 2414 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 2415 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2416 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 2417 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 2418 0x69, 0x6e, 0x5f, 0x61, 0x73, 0x63, 0x69, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 2419 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x41, 0x73, 0x63, 0x69, 0x69, 0x12, 0x4a, 0x0a, 0x0c, 0x6c, 0x61, 2420 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 2421 0x32, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 2422 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 2423 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6c, 0x61, 0x6e, 0x67, 0x75, 2424 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 0x5f, 2425 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x7a, 2426 0x6f, 0x65, 0x6b, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 2427 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x3e, 0x0a, 0x10, 0x4c, 2428 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 2429 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 2430 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 2431 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x96, 0x01, 0x0a, 0x14, 2432 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x45, 2433 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x62, 2434 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x79, 2435 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 2436 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 2437 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 2438 0x63, 0x68, 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 2439 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x18, 2440 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 2441 0x55, 0x6e, 0x69, 0x78, 0x22, 0x40, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 2442 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 2443 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 2444 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 2445 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcd, 0x02, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x53, 2446 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 2447 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 2448 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 2449 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 2450 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2451 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 2452 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x74, 0x65, 2453 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 2454 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 2455 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 2456 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 2457 0x0d, 0x6e, 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 2458 0x0a, 0x1e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 2459 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 2460 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 2461 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 2462 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x62, 0x72, 0x61, 0x6e, 2463 0x63, 0x68, 0x65, 0x73, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 2464 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x6f, 0x74, 0x68, 0x65, 2465 0x72, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x4e, 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 2466 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdf, 0x05, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 2467 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 2468 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 2469 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 2470 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 2471 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 2472 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 2473 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 2474 0x03, 0x52, 0x07, 0x63, 0x72, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 2475 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 2476 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 2477 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 2478 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 2479 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 2480 0x12, 0x34, 0x0a, 0x16, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 2481 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 2482 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 2483 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 2484 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 2485 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 2486 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 2487 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4c, 0x6f, 2488 0x61, 0x64, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x73, 0x6b, 2489 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6c, 2490 0x65, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61, 2491 0x72, 0x64, 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 2492 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 2493 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 2494 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 2495 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x64, 2496 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 2497 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x53, 0x6b, 2498 0x69, 0x70, 0x70, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 2499 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 2500 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 2501 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 2502 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x67, 0x72, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 2503 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 2504 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2505 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 2506 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 2507 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x72, 0x65, 2508 0x67, 0x65, 0x78, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 2509 0x37, 0x0a, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 2510 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 2511 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x66, 0x6c, 0x75, 2512 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x58, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 2513 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 2514 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 2515 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 2516 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 2517 0x6d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 2518 0x74, 0x79, 0x22, 0xa3, 0x04, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 2519 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 2520 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 2521 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x1b, 0x0a, 0x09, 2522 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 2523 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 2524 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 2525 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x72, 0x61, 2526 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x62, 0x72, 0x61, 2527 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6d, 0x61, 2528 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 2529 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 2530 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0d, 2531 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 2532 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 2533 0x75, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0c, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 2534 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 2535 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 2536 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x72, 2537 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 2538 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 2539 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 2540 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 2541 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 2542 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 2543 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x0c, 2544 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x2e, 2545 0x0a, 0x13, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 2546 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x62, 2547 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 2548 0x0a, 0x13, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 2549 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x62, 2550 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 2551 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 2552 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xbf, 0x02, 0x0a, 0x09, 0x4c, 0x69, 0x6e, 2553 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 2554 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x69, 2555 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 2556 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 2557 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x69, 0x6e, 2558 0x65, 0x45, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 2559 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 2560 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 2561 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 2562 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x61, 0x66, 2563 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 2564 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 2565 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 2566 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 2567 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x62, 2568 0x75, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 2569 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 2570 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x46, 0x72, 2571 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 2572 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x11, 0x4c, 2573 0x69, 0x6e, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 2574 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 2575 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 2576 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 2577 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 2578 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 2579 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x0b, 2580 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 2581 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6d, 0x62, 2582 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 2583 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x6d, 0x62, 2584 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x6b, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, 2585 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 2586 0x28, 0x09, 0x52, 0x03, 0x73, 0x79, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 2587 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 2588 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 2589 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 2590 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 2591 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x90, 0x02, 0x0a, 0x0a, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x4d, 0x61, 2592 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 2593 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 2594 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 2595 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 2596 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 2597 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 2598 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 2599 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 2600 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, 2601 0x67, 0x65, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x79, 2602 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 2603 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 2604 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 2605 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 2606 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 2607 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x62, 2608 0x75, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 2609 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 2610 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 2611 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x65, 0x6e, 0x64, 2612 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 2613 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x64, 2614 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 2615 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 2616 0x0a, 0x62, 0x79, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 2617 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 2618 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 2619 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 2620 0x6c, 0x75, 0x6d, 0x6e, 0x2a, 0x4c, 0x0a, 0x0b, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x61, 2621 0x73, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 2622 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 2623 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x46, 0x4c, 0x55, 2624 0x53, 0x48, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x58, 0x5f, 0x53, 0x49, 0x5a, 0x45, 2625 0x10, 0x03, 0x32, 0xcb, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 2626 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 2627 0x68, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 2628 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 2629 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2630 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 2631 0x61, 0x72, 0x63, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 2632 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 2633 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 2634 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x35, 0x0a, 0x04, 0x4c, 0x69, 0x73, 2635 0x74, 0x12, 0x14, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 2636 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 2637 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 2638 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 2639 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x7a, 0x6f, 0x65, 0x6b, 0x74, 2640 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2641} 2642 2643var ( 2644 file_webserver_proto_rawDescOnce sync.Once 2645 file_webserver_proto_rawDescData = file_webserver_proto_rawDesc 2646) 2647 2648func file_webserver_proto_rawDescGZIP() []byte { 2649 file_webserver_proto_rawDescOnce.Do(func() { 2650 file_webserver_proto_rawDescData = protoimpl.X.CompressGZIP(file_webserver_proto_rawDescData) 2651 }) 2652 return file_webserver_proto_rawDescData 2653} 2654 2655var file_webserver_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 2656var file_webserver_proto_msgTypes = make([]protoimpl.MessageInfo, 28) 2657var file_webserver_proto_goTypes = []interface{}{ 2658 (FlushReason)(0), // 0: grpc.v1.FlushReason 2659 (ListOptions_RepoListField)(0), // 1: grpc.v1.ListOptions.RepoListField 2660 (*SearchRequest)(nil), // 2: grpc.v1.SearchRequest 2661 (*SearchResponse)(nil), // 3: grpc.v1.SearchResponse 2662 (*SearchOptions)(nil), // 4: grpc.v1.SearchOptions 2663 (*ListRequest)(nil), // 5: grpc.v1.ListRequest 2664 (*ListOptions)(nil), // 6: grpc.v1.ListOptions 2665 (*ListResponse)(nil), // 7: grpc.v1.ListResponse 2666 (*RepoListEntry)(nil), // 8: grpc.v1.RepoListEntry 2667 (*Repository)(nil), // 9: grpc.v1.Repository 2668 (*IndexMetadata)(nil), // 10: grpc.v1.IndexMetadata 2669 (*MinimalRepoListEntry)(nil), // 11: grpc.v1.MinimalRepoListEntry 2670 (*RepositoryBranch)(nil), // 12: grpc.v1.RepositoryBranch 2671 (*RepoStats)(nil), // 13: grpc.v1.RepoStats 2672 (*Stats)(nil), // 14: grpc.v1.Stats 2673 (*Progress)(nil), // 15: grpc.v1.Progress 2674 (*FileMatch)(nil), // 16: grpc.v1.FileMatch 2675 (*LineMatch)(nil), // 17: grpc.v1.LineMatch 2676 (*LineFragmentMatch)(nil), // 18: grpc.v1.LineFragmentMatch 2677 (*SymbolInfo)(nil), // 19: grpc.v1.SymbolInfo 2678 (*ChunkMatch)(nil), // 20: grpc.v1.ChunkMatch 2679 (*Range)(nil), // 21: grpc.v1.Range 2680 (*Location)(nil), // 22: grpc.v1.Location 2681 nil, // 23: grpc.v1.SearchResponse.RepoUrlsEntry 2682 nil, // 24: grpc.v1.SearchResponse.LineFragmentsEntry 2683 nil, // 25: grpc.v1.ListResponse.ReposMapEntry 2684 nil, // 26: grpc.v1.ListResponse.MinimalEntry 2685 nil, // 27: grpc.v1.Repository.SubRepoMapEntry 2686 nil, // 28: grpc.v1.Repository.RawConfigEntry 2687 nil, // 29: grpc.v1.IndexMetadata.LanguageMapEntry 2688 (*Q)(nil), // 30: grpc.v1.Q 2689 (*durationpb.Duration)(nil), // 31: google.protobuf.Duration 2690 (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp 2691} 2692var file_webserver_proto_depIdxs = []int32{ 2693 30, // 0: grpc.v1.SearchRequest.query:type_name -> grpc.v1.Q 2694 4, // 1: grpc.v1.SearchRequest.opts:type_name -> grpc.v1.SearchOptions 2695 14, // 2: grpc.v1.SearchResponse.stats:type_name -> grpc.v1.Stats 2696 15, // 3: grpc.v1.SearchResponse.progress:type_name -> grpc.v1.Progress 2697 16, // 4: grpc.v1.SearchResponse.files:type_name -> grpc.v1.FileMatch 2698 23, // 5: grpc.v1.SearchResponse.repo_urls:type_name -> grpc.v1.SearchResponse.RepoUrlsEntry 2699 24, // 6: grpc.v1.SearchResponse.line_fragments:type_name -> grpc.v1.SearchResponse.LineFragmentsEntry 2700 31, // 7: grpc.v1.SearchOptions.max_wall_time:type_name -> google.protobuf.Duration 2701 31, // 8: grpc.v1.SearchOptions.flush_wall_time:type_name -> google.protobuf.Duration 2702 30, // 9: grpc.v1.ListRequest.query:type_name -> grpc.v1.Q 2703 6, // 10: grpc.v1.ListRequest.opts:type_name -> grpc.v1.ListOptions 2704 1, // 11: grpc.v1.ListOptions.field:type_name -> grpc.v1.ListOptions.RepoListField 2705 8, // 12: grpc.v1.ListResponse.repos:type_name -> grpc.v1.RepoListEntry 2706 25, // 13: grpc.v1.ListResponse.repos_map:type_name -> grpc.v1.ListResponse.ReposMapEntry 2707 13, // 14: grpc.v1.ListResponse.stats:type_name -> grpc.v1.RepoStats 2708 26, // 15: grpc.v1.ListResponse.minimal:type_name -> grpc.v1.ListResponse.MinimalEntry 2709 9, // 16: grpc.v1.RepoListEntry.repository:type_name -> grpc.v1.Repository 2710 10, // 17: grpc.v1.RepoListEntry.index_metadata:type_name -> grpc.v1.IndexMetadata 2711 13, // 18: grpc.v1.RepoListEntry.stats:type_name -> grpc.v1.RepoStats 2712 12, // 19: grpc.v1.Repository.branches:type_name -> grpc.v1.RepositoryBranch 2713 27, // 20: grpc.v1.Repository.sub_repo_map:type_name -> grpc.v1.Repository.SubRepoMapEntry 2714 28, // 21: grpc.v1.Repository.raw_config:type_name -> grpc.v1.Repository.RawConfigEntry 2715 32, // 22: grpc.v1.Repository.latest_commit_date:type_name -> google.protobuf.Timestamp 2716 32, // 23: grpc.v1.IndexMetadata.index_time:type_name -> google.protobuf.Timestamp 2717 29, // 24: grpc.v1.IndexMetadata.language_map:type_name -> grpc.v1.IndexMetadata.LanguageMapEntry 2718 12, // 25: grpc.v1.MinimalRepoListEntry.branches:type_name -> grpc.v1.RepositoryBranch 2719 31, // 26: grpc.v1.Stats.duration:type_name -> google.protobuf.Duration 2720 31, // 27: grpc.v1.Stats.wait:type_name -> google.protobuf.Duration 2721 0, // 28: grpc.v1.Stats.flush_reason:type_name -> grpc.v1.FlushReason 2722 17, // 29: grpc.v1.FileMatch.line_matches:type_name -> grpc.v1.LineMatch 2723 20, // 30: grpc.v1.FileMatch.chunk_matches:type_name -> grpc.v1.ChunkMatch 2724 18, // 31: grpc.v1.LineMatch.line_fragments:type_name -> grpc.v1.LineFragmentMatch 2725 19, // 32: grpc.v1.LineFragmentMatch.symbol_info:type_name -> grpc.v1.SymbolInfo 2726 22, // 33: grpc.v1.ChunkMatch.content_start:type_name -> grpc.v1.Location 2727 21, // 34: grpc.v1.ChunkMatch.ranges:type_name -> grpc.v1.Range 2728 19, // 35: grpc.v1.ChunkMatch.symbol_info:type_name -> grpc.v1.SymbolInfo 2729 22, // 36: grpc.v1.Range.start:type_name -> grpc.v1.Location 2730 22, // 37: grpc.v1.Range.end:type_name -> grpc.v1.Location 2731 11, // 38: grpc.v1.ListResponse.ReposMapEntry.value:type_name -> grpc.v1.MinimalRepoListEntry 2732 11, // 39: grpc.v1.ListResponse.MinimalEntry.value:type_name -> grpc.v1.MinimalRepoListEntry 2733 9, // 40: grpc.v1.Repository.SubRepoMapEntry.value:type_name -> grpc.v1.Repository 2734 2, // 41: grpc.v1.WebserverService.Search:input_type -> grpc.v1.SearchRequest 2735 2, // 42: grpc.v1.WebserverService.StreamSearch:input_type -> grpc.v1.SearchRequest 2736 5, // 43: grpc.v1.WebserverService.List:input_type -> grpc.v1.ListRequest 2737 3, // 44: grpc.v1.WebserverService.Search:output_type -> grpc.v1.SearchResponse 2738 3, // 45: grpc.v1.WebserverService.StreamSearch:output_type -> grpc.v1.SearchResponse 2739 7, // 46: grpc.v1.WebserverService.List:output_type -> grpc.v1.ListResponse 2740 44, // [44:47] is the sub-list for method output_type 2741 41, // [41:44] is the sub-list for method input_type 2742 41, // [41:41] is the sub-list for extension type_name 2743 41, // [41:41] is the sub-list for extension extendee 2744 0, // [0:41] is the sub-list for field type_name 2745} 2746 2747func init() { file_webserver_proto_init() } 2748func file_webserver_proto_init() { 2749 if File_webserver_proto != nil { 2750 return 2751 } 2752 file_query_proto_init() 2753 if !protoimpl.UnsafeEnabled { 2754 file_webserver_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2755 switch v := v.(*SearchRequest); i { 2756 case 0: 2757 return &v.state 2758 case 1: 2759 return &v.sizeCache 2760 case 2: 2761 return &v.unknownFields 2762 default: 2763 return nil 2764 } 2765 } 2766 file_webserver_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2767 switch v := v.(*SearchResponse); i { 2768 case 0: 2769 return &v.state 2770 case 1: 2771 return &v.sizeCache 2772 case 2: 2773 return &v.unknownFields 2774 default: 2775 return nil 2776 } 2777 } 2778 file_webserver_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2779 switch v := v.(*SearchOptions); i { 2780 case 0: 2781 return &v.state 2782 case 1: 2783 return &v.sizeCache 2784 case 2: 2785 return &v.unknownFields 2786 default: 2787 return nil 2788 } 2789 } 2790 file_webserver_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2791 switch v := v.(*ListRequest); i { 2792 case 0: 2793 return &v.state 2794 case 1: 2795 return &v.sizeCache 2796 case 2: 2797 return &v.unknownFields 2798 default: 2799 return nil 2800 } 2801 } 2802 file_webserver_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2803 switch v := v.(*ListOptions); i { 2804 case 0: 2805 return &v.state 2806 case 1: 2807 return &v.sizeCache 2808 case 2: 2809 return &v.unknownFields 2810 default: 2811 return nil 2812 } 2813 } 2814 file_webserver_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2815 switch v := v.(*ListResponse); i { 2816 case 0: 2817 return &v.state 2818 case 1: 2819 return &v.sizeCache 2820 case 2: 2821 return &v.unknownFields 2822 default: 2823 return nil 2824 } 2825 } 2826 file_webserver_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2827 switch v := v.(*RepoListEntry); i { 2828 case 0: 2829 return &v.state 2830 case 1: 2831 return &v.sizeCache 2832 case 2: 2833 return &v.unknownFields 2834 default: 2835 return nil 2836 } 2837 } 2838 file_webserver_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2839 switch v := v.(*Repository); i { 2840 case 0: 2841 return &v.state 2842 case 1: 2843 return &v.sizeCache 2844 case 2: 2845 return &v.unknownFields 2846 default: 2847 return nil 2848 } 2849 } 2850 file_webserver_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2851 switch v := v.(*IndexMetadata); i { 2852 case 0: 2853 return &v.state 2854 case 1: 2855 return &v.sizeCache 2856 case 2: 2857 return &v.unknownFields 2858 default: 2859 return nil 2860 } 2861 } 2862 file_webserver_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2863 switch v := v.(*MinimalRepoListEntry); i { 2864 case 0: 2865 return &v.state 2866 case 1: 2867 return &v.sizeCache 2868 case 2: 2869 return &v.unknownFields 2870 default: 2871 return nil 2872 } 2873 } 2874 file_webserver_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2875 switch v := v.(*RepositoryBranch); i { 2876 case 0: 2877 return &v.state 2878 case 1: 2879 return &v.sizeCache 2880 case 2: 2881 return &v.unknownFields 2882 default: 2883 return nil 2884 } 2885 } 2886 file_webserver_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2887 switch v := v.(*RepoStats); i { 2888 case 0: 2889 return &v.state 2890 case 1: 2891 return &v.sizeCache 2892 case 2: 2893 return &v.unknownFields 2894 default: 2895 return nil 2896 } 2897 } 2898 file_webserver_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2899 switch v := v.(*Stats); i { 2900 case 0: 2901 return &v.state 2902 case 1: 2903 return &v.sizeCache 2904 case 2: 2905 return &v.unknownFields 2906 default: 2907 return nil 2908 } 2909 } 2910 file_webserver_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2911 switch v := v.(*Progress); i { 2912 case 0: 2913 return &v.state 2914 case 1: 2915 return &v.sizeCache 2916 case 2: 2917 return &v.unknownFields 2918 default: 2919 return nil 2920 } 2921 } 2922 file_webserver_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2923 switch v := v.(*FileMatch); i { 2924 case 0: 2925 return &v.state 2926 case 1: 2927 return &v.sizeCache 2928 case 2: 2929 return &v.unknownFields 2930 default: 2931 return nil 2932 } 2933 } 2934 file_webserver_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2935 switch v := v.(*LineMatch); i { 2936 case 0: 2937 return &v.state 2938 case 1: 2939 return &v.sizeCache 2940 case 2: 2941 return &v.unknownFields 2942 default: 2943 return nil 2944 } 2945 } 2946 file_webserver_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2947 switch v := v.(*LineFragmentMatch); i { 2948 case 0: 2949 return &v.state 2950 case 1: 2951 return &v.sizeCache 2952 case 2: 2953 return &v.unknownFields 2954 default: 2955 return nil 2956 } 2957 } 2958 file_webserver_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2959 switch v := v.(*SymbolInfo); i { 2960 case 0: 2961 return &v.state 2962 case 1: 2963 return &v.sizeCache 2964 case 2: 2965 return &v.unknownFields 2966 default: 2967 return nil 2968 } 2969 } 2970 file_webserver_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2971 switch v := v.(*ChunkMatch); i { 2972 case 0: 2973 return &v.state 2974 case 1: 2975 return &v.sizeCache 2976 case 2: 2977 return &v.unknownFields 2978 default: 2979 return nil 2980 } 2981 } 2982 file_webserver_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2983 switch v := v.(*Range); i { 2984 case 0: 2985 return &v.state 2986 case 1: 2987 return &v.sizeCache 2988 case 2: 2989 return &v.unknownFields 2990 default: 2991 return nil 2992 } 2993 } 2994 file_webserver_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 2995 switch v := v.(*Location); i { 2996 case 0: 2997 return &v.state 2998 case 1: 2999 return &v.sizeCache 3000 case 2: 3001 return &v.unknownFields 3002 default: 3003 return nil 3004 } 3005 } 3006 } 3007 file_webserver_proto_msgTypes[16].OneofWrappers = []interface{}{} 3008 type x struct{} 3009 out := protoimpl.TypeBuilder{ 3010 File: protoimpl.DescBuilder{ 3011 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3012 RawDescriptor: file_webserver_proto_rawDesc, 3013 NumEnums: 2, 3014 NumMessages: 28, 3015 NumExtensions: 0, 3016 NumServices: 1, 3017 }, 3018 GoTypes: file_webserver_proto_goTypes, 3019 DependencyIndexes: file_webserver_proto_depIdxs, 3020 EnumInfos: file_webserver_proto_enumTypes, 3021 MessageInfos: file_webserver_proto_msgTypes, 3022 }.Build() 3023 File_webserver_proto = out.File 3024 file_webserver_proto_rawDesc = nil 3025 file_webserver_proto_goTypes = nil 3026 file_webserver_proto_depIdxs = nil 3027}