1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/protobuf/descriptor.proto
5 Package descriptor is a generated protocol buffer package.
7 It is generated from these files:
8 google/protobuf/descriptor.proto
10 It has these top-level messages:
18 EnumValueDescriptorProto
19 ServiceDescriptorProto
35 import proto "github.com/golang/protobuf/proto"
39 // Reference imports to suppress errors if they are not otherwise used.
44 // This is a compile-time assertion to ensure that this generated file
45 // is compatible with the proto package it is being compiled against.
46 // A compilation error at this line likely means your copy of the
47 // proto package needs to be updated.
48 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
50 type FieldDescriptorProto_Type int32
53 // 0 is reserved for errors.
54 // Order is weird for historical reasons.
55 FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1
56 FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2
57 // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
58 // negative values are likely.
59 FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3
60 FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4
61 // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
62 // negative values are likely.
63 FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5
64 FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6
65 FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7
66 FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8
67 FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9
68 // Tag-delimited aggregate.
69 // Group type is deprecated and not supported in proto3. However, Proto3
70 // implementations should still be able to parse the group wire format and
71 // treat group fields as unknown fields.
72 FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10
73 FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11
75 FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12
76 FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13
77 FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14
78 FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15
79 FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16
80 FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17
81 FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18
84 var FieldDescriptorProto_Type_name = map[int32]string{
104 var FieldDescriptorProto_Type_value = map[string]int32{
125 func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type {
126 p := new(FieldDescriptorProto_Type)
130 func (x FieldDescriptorProto_Type) String() string {
131 return proto.EnumName(FieldDescriptorProto_Type_name, int32(x))
133 func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error {
134 value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, "FieldDescriptorProto_Type")
138 *x = FieldDescriptorProto_Type(value)
141 func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} }
143 type FieldDescriptorProto_Label int32
146 // 0 is reserved for errors
147 FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1
148 FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2
149 FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3
152 var FieldDescriptorProto_Label_name = map[int32]string{
157 var FieldDescriptorProto_Label_value = map[string]int32{
163 func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label {
164 p := new(FieldDescriptorProto_Label)
168 func (x FieldDescriptorProto_Label) String() string {
169 return proto.EnumName(FieldDescriptorProto_Label_name, int32(x))
171 func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error {
172 value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, "FieldDescriptorProto_Label")
176 *x = FieldDescriptorProto_Label(value)
179 func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) {
180 return fileDescriptor0, []int{4, 1}
183 // Generated classes can be optimized for speed or code size.
184 type FileOptions_OptimizeMode int32
187 FileOptions_SPEED FileOptions_OptimizeMode = 1
189 FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2
190 FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3
193 var FileOptions_OptimizeMode_name = map[int32]string{
198 var FileOptions_OptimizeMode_value = map[string]int32{
204 func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode {
205 p := new(FileOptions_OptimizeMode)
209 func (x FileOptions_OptimizeMode) String() string {
210 return proto.EnumName(FileOptions_OptimizeMode_name, int32(x))
212 func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error {
213 value, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, "FileOptions_OptimizeMode")
217 *x = FileOptions_OptimizeMode(value)
220 func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{10, 0} }
222 type FieldOptions_CType int32
226 FieldOptions_STRING FieldOptions_CType = 0
227 FieldOptions_CORD FieldOptions_CType = 1
228 FieldOptions_STRING_PIECE FieldOptions_CType = 2
231 var FieldOptions_CType_name = map[int32]string{
236 var FieldOptions_CType_value = map[string]int32{
242 func (x FieldOptions_CType) Enum() *FieldOptions_CType {
243 p := new(FieldOptions_CType)
247 func (x FieldOptions_CType) String() string {
248 return proto.EnumName(FieldOptions_CType_name, int32(x))
250 func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error {
251 value, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, "FieldOptions_CType")
255 *x = FieldOptions_CType(value)
258 func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} }
260 type FieldOptions_JSType int32
263 // Use the default type.
264 FieldOptions_JS_NORMAL FieldOptions_JSType = 0
265 // Use JavaScript strings.
266 FieldOptions_JS_STRING FieldOptions_JSType = 1
267 // Use JavaScript numbers.
268 FieldOptions_JS_NUMBER FieldOptions_JSType = 2
271 var FieldOptions_JSType_name = map[int32]string{
276 var FieldOptions_JSType_value = map[string]int32{
282 func (x FieldOptions_JSType) Enum() *FieldOptions_JSType {
283 p := new(FieldOptions_JSType)
287 func (x FieldOptions_JSType) String() string {
288 return proto.EnumName(FieldOptions_JSType_name, int32(x))
290 func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error {
291 value, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, "FieldOptions_JSType")
295 *x = FieldOptions_JSType(value)
298 func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 1} }
300 // Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
301 // or neither? HTTP based RPC implementation may choose GET verb for safe
302 // methods, and PUT verb for idempotent methods instead of the default POST.
303 type MethodOptions_IdempotencyLevel int32
306 MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0
307 MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1
308 MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2
311 var MethodOptions_IdempotencyLevel_name = map[int32]string{
312 0: "IDEMPOTENCY_UNKNOWN",
313 1: "NO_SIDE_EFFECTS",
316 var MethodOptions_IdempotencyLevel_value = map[string]int32{
317 "IDEMPOTENCY_UNKNOWN": 0,
318 "NO_SIDE_EFFECTS": 1,
322 func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel {
323 p := new(MethodOptions_IdempotencyLevel)
327 func (x MethodOptions_IdempotencyLevel) String() string {
328 return proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x))
330 func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error {
331 value, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, "MethodOptions_IdempotencyLevel")
335 *x = MethodOptions_IdempotencyLevel(value)
338 func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) {
339 return fileDescriptor0, []int{17, 0}
342 // The protocol compiler can output a FileDescriptorSet containing the .proto
344 type FileDescriptorSet struct {
345 File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"`
346 XXX_unrecognized []byte `json:"-"`
349 func (m *FileDescriptorSet) Reset() { *m = FileDescriptorSet{} }
350 func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) }
351 func (*FileDescriptorSet) ProtoMessage() {}
352 func (*FileDescriptorSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
354 func (m *FileDescriptorSet) GetFile() []*FileDescriptorProto {
361 // Describes a complete .proto file.
362 type FileDescriptorProto struct {
363 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
364 Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"`
365 // Names of files imported by this file.
366 Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"`
367 // Indexes of the public imported files in the dependency list above.
368 PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"`
369 // Indexes of the weak imported files in the dependency list.
370 // For Google-internal migration only. Do not use.
371 WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"`
372 // All top-level definitions in this file.
373 MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"`
374 EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"`
375 Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"`
376 Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"`
377 Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"`
378 // This field contains optional information about the original source code.
379 // You may safely remove this entire field without harming runtime
380 // functionality of the descriptors -- the information is needed only by
381 // development tools.
382 SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"`
383 // The syntax of the proto file.
384 // The supported values are "proto2" and "proto3".
385 Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"`
386 XXX_unrecognized []byte `json:"-"`
389 func (m *FileDescriptorProto) Reset() { *m = FileDescriptorProto{} }
390 func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) }
391 func (*FileDescriptorProto) ProtoMessage() {}
392 func (*FileDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
394 func (m *FileDescriptorProto) GetName() string {
395 if m != nil && m.Name != nil {
401 func (m *FileDescriptorProto) GetPackage() string {
402 if m != nil && m.Package != nil {
408 func (m *FileDescriptorProto) GetDependency() []string {
415 func (m *FileDescriptorProto) GetPublicDependency() []int32 {
417 return m.PublicDependency
422 func (m *FileDescriptorProto) GetWeakDependency() []int32 {
424 return m.WeakDependency
429 func (m *FileDescriptorProto) GetMessageType() []*DescriptorProto {
436 func (m *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto {
443 func (m *FileDescriptorProto) GetService() []*ServiceDescriptorProto {
450 func (m *FileDescriptorProto) GetExtension() []*FieldDescriptorProto {
457 func (m *FileDescriptorProto) GetOptions() *FileOptions {
464 func (m *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo {
466 return m.SourceCodeInfo
471 func (m *FileDescriptorProto) GetSyntax() string {
472 if m != nil && m.Syntax != nil {
478 // Describes a message type.
479 type DescriptorProto struct {
480 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
481 Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"`
482 Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"`
483 NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"`
484 EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"`
485 ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"`
486 OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"`
487 Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"`
488 ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"`
489 // Reserved field names, which may not be used by fields in the same message.
490 // A given name may only be reserved once.
491 ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"`
492 XXX_unrecognized []byte `json:"-"`
495 func (m *DescriptorProto) Reset() { *m = DescriptorProto{} }
496 func (m *DescriptorProto) String() string { return proto.CompactTextString(m) }
497 func (*DescriptorProto) ProtoMessage() {}
498 func (*DescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
500 func (m *DescriptorProto) GetName() string {
501 if m != nil && m.Name != nil {
507 func (m *DescriptorProto) GetField() []*FieldDescriptorProto {
514 func (m *DescriptorProto) GetExtension() []*FieldDescriptorProto {
521 func (m *DescriptorProto) GetNestedType() []*DescriptorProto {
528 func (m *DescriptorProto) GetEnumType() []*EnumDescriptorProto {
535 func (m *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange {
537 return m.ExtensionRange
542 func (m *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto {
549 func (m *DescriptorProto) GetOptions() *MessageOptions {
556 func (m *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange {
558 return m.ReservedRange
563 func (m *DescriptorProto) GetReservedName() []string {
565 return m.ReservedName
570 type DescriptorProto_ExtensionRange struct {
571 Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
572 End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
573 Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"`
574 XXX_unrecognized []byte `json:"-"`
577 func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} }
578 func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) }
579 func (*DescriptorProto_ExtensionRange) ProtoMessage() {}
580 func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) {
581 return fileDescriptor0, []int{2, 0}
584 func (m *DescriptorProto_ExtensionRange) GetStart() int32 {
585 if m != nil && m.Start != nil {
591 func (m *DescriptorProto_ExtensionRange) GetEnd() int32 {
592 if m != nil && m.End != nil {
598 func (m *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions {
605 // Range of reserved tag numbers. Reserved tag numbers may not be used by
606 // fields or extension ranges in the same message. Reserved ranges may
608 type DescriptorProto_ReservedRange struct {
609 Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
610 End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
611 XXX_unrecognized []byte `json:"-"`
614 func (m *DescriptorProto_ReservedRange) Reset() { *m = DescriptorProto_ReservedRange{} }
615 func (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) }
616 func (*DescriptorProto_ReservedRange) ProtoMessage() {}
617 func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) {
618 return fileDescriptor0, []int{2, 1}
621 func (m *DescriptorProto_ReservedRange) GetStart() int32 {
622 if m != nil && m.Start != nil {
628 func (m *DescriptorProto_ReservedRange) GetEnd() int32 {
629 if m != nil && m.End != nil {
635 type ExtensionRangeOptions struct {
636 // The parser stores options it doesn't recognize here. See above.
637 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
638 proto.XXX_InternalExtensions `json:"-"`
639 XXX_unrecognized []byte `json:"-"`
642 func (m *ExtensionRangeOptions) Reset() { *m = ExtensionRangeOptions{} }
643 func (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) }
644 func (*ExtensionRangeOptions) ProtoMessage() {}
645 func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
647 var extRange_ExtensionRangeOptions = []proto.ExtensionRange{
651 func (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange {
652 return extRange_ExtensionRangeOptions
655 func (m *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption {
657 return m.UninterpretedOption
662 // Describes a field within a message.
663 type FieldDescriptorProto struct {
664 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
665 Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"`
666 Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"`
667 // If type_name is set, this need not be set. If both this and type_name
668 // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
669 Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"`
670 // For message and enum types, this is the name of the type. If the name
671 // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
672 // rules are used to find the type (i.e. first the nested types within this
673 // message are searched, then within the parent, on up to the root
675 TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"`
676 // For extensions, this is the name of the type being extended. It is
677 // resolved in the same manner as type_name.
678 Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"`
679 // For numeric types, contains the original text representation of the value.
680 // For booleans, "true" or "false".
681 // For strings, contains the default text contents (not escaped in any way).
682 // For bytes, contains the C escaped value. All bytes >= 128 are escaped.
683 // TODO(kenton): Base-64 encode?
684 DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"`
685 // If set, gives the index of a oneof in the containing type's oneof_decl
686 // list. This field is a member of that oneof.
687 OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"`
688 // JSON name of this field. The value is set by protocol compiler. If the
689 // user has set a "json_name" option on this field, that option's value
690 // will be used. Otherwise, it's deduced from the field's name by converting
692 JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"`
693 Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"`
694 XXX_unrecognized []byte `json:"-"`
697 func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} }
698 func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) }
699 func (*FieldDescriptorProto) ProtoMessage() {}
700 func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
702 func (m *FieldDescriptorProto) GetName() string {
703 if m != nil && m.Name != nil {
709 func (m *FieldDescriptorProto) GetNumber() int32 {
710 if m != nil && m.Number != nil {
716 func (m *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label {
717 if m != nil && m.Label != nil {
720 return FieldDescriptorProto_LABEL_OPTIONAL
723 func (m *FieldDescriptorProto) GetType() FieldDescriptorProto_Type {
724 if m != nil && m.Type != nil {
727 return FieldDescriptorProto_TYPE_DOUBLE
730 func (m *FieldDescriptorProto) GetTypeName() string {
731 if m != nil && m.TypeName != nil {
737 func (m *FieldDescriptorProto) GetExtendee() string {
738 if m != nil && m.Extendee != nil {
744 func (m *FieldDescriptorProto) GetDefaultValue() string {
745 if m != nil && m.DefaultValue != nil {
746 return *m.DefaultValue
751 func (m *FieldDescriptorProto) GetOneofIndex() int32 {
752 if m != nil && m.OneofIndex != nil {
758 func (m *FieldDescriptorProto) GetJsonName() string {
759 if m != nil && m.JsonName != nil {
765 func (m *FieldDescriptorProto) GetOptions() *FieldOptions {
772 // Describes a oneof.
773 type OneofDescriptorProto struct {
774 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
775 Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"`
776 XXX_unrecognized []byte `json:"-"`
779 func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} }
780 func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) }
781 func (*OneofDescriptorProto) ProtoMessage() {}
782 func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
784 func (m *OneofDescriptorProto) GetName() string {
785 if m != nil && m.Name != nil {
791 func (m *OneofDescriptorProto) GetOptions() *OneofOptions {
798 // Describes an enum type.
799 type EnumDescriptorProto struct {
800 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
801 Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"`
802 Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"`
803 XXX_unrecognized []byte `json:"-"`
806 func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} }
807 func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) }
808 func (*EnumDescriptorProto) ProtoMessage() {}
809 func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
811 func (m *EnumDescriptorProto) GetName() string {
812 if m != nil && m.Name != nil {
818 func (m *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto {
825 func (m *EnumDescriptorProto) GetOptions() *EnumOptions {
832 // Describes a value within an enum.
833 type EnumValueDescriptorProto struct {
834 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
835 Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"`
836 Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"`
837 XXX_unrecognized []byte `json:"-"`
840 func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorProto{} }
841 func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) }
842 func (*EnumValueDescriptorProto) ProtoMessage() {}
843 func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
845 func (m *EnumValueDescriptorProto) GetName() string {
846 if m != nil && m.Name != nil {
852 func (m *EnumValueDescriptorProto) GetNumber() int32 {
853 if m != nil && m.Number != nil {
859 func (m *EnumValueDescriptorProto) GetOptions() *EnumValueOptions {
866 // Describes a service.
867 type ServiceDescriptorProto struct {
868 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
869 Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"`
870 Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"`
871 XXX_unrecognized []byte `json:"-"`
874 func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} }
875 func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) }
876 func (*ServiceDescriptorProto) ProtoMessage() {}
877 func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
879 func (m *ServiceDescriptorProto) GetName() string {
880 if m != nil && m.Name != nil {
886 func (m *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto {
893 func (m *ServiceDescriptorProto) GetOptions() *ServiceOptions {
900 // Describes a method of a service.
901 type MethodDescriptorProto struct {
902 Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
903 // Input and output type names. These are resolved in the same way as
904 // FieldDescriptorProto.type_name, but must refer to a message type.
905 InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"`
906 OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"`
907 Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"`
908 // Identifies if client streams multiple client messages
909 ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"`
910 // Identifies if server streams multiple server messages
911 ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"`
912 XXX_unrecognized []byte `json:"-"`
915 func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} }
916 func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) }
917 func (*MethodDescriptorProto) ProtoMessage() {}
918 func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
920 const Default_MethodDescriptorProto_ClientStreaming bool = false
921 const Default_MethodDescriptorProto_ServerStreaming bool = false
923 func (m *MethodDescriptorProto) GetName() string {
924 if m != nil && m.Name != nil {
930 func (m *MethodDescriptorProto) GetInputType() string {
931 if m != nil && m.InputType != nil {
937 func (m *MethodDescriptorProto) GetOutputType() string {
938 if m != nil && m.OutputType != nil {
944 func (m *MethodDescriptorProto) GetOptions() *MethodOptions {
951 func (m *MethodDescriptorProto) GetClientStreaming() bool {
952 if m != nil && m.ClientStreaming != nil {
953 return *m.ClientStreaming
955 return Default_MethodDescriptorProto_ClientStreaming
958 func (m *MethodDescriptorProto) GetServerStreaming() bool {
959 if m != nil && m.ServerStreaming != nil {
960 return *m.ServerStreaming
962 return Default_MethodDescriptorProto_ServerStreaming
965 type FileOptions struct {
966 // Sets the Java package where classes generated from this .proto will be
967 // placed. By default, the proto package is used, but this is often
968 // inappropriate because proto packages do not normally start with backwards
970 JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"`
971 // If set, all the classes from the .proto file are wrapped in a single
972 // outer class with the given name. This applies to both Proto1
973 // (equivalent to the old "--one_java_file" option) and Proto2 (where
974 // a .proto always translates to a single class, but you may want to
975 // explicitly choose the class name).
976 JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"`
977 // If set true, then the Java code generator will generate a separate .java
978 // file for each top-level message, enum, and service defined in the .proto
979 // file. Thus, these types will *not* be nested inside the outer class
980 // named by java_outer_classname. However, the outer class will still be
981 // generated to contain the file's getDescriptor() method as well as any
982 // top-level extensions defined in the file.
983 JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"`
984 // This option does nothing.
985 JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"`
986 // If set true, then the Java2 code generator will generate code that
987 // throws an exception whenever an attempt is made to assign a non-UTF-8
988 // byte sequence to a string field.
989 // Message reflection will do the same.
990 // However, an extension field still accepts non-UTF-8 byte sequences.
991 // This option has no effect on when used with the lite runtime.
992 JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"`
993 OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"`
994 // Sets the Go package where structs generated from this .proto will be
995 // placed. If omitted, the Go package will be derived from the following:
996 // - The basename of the package import path, if provided.
997 // - Otherwise, the package statement in the .proto file, if present.
998 // - Otherwise, the basename of the .proto file, without extension.
999 GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"`
1000 // Should generic services be generated in each language? "Generic" services
1001 // are not specific to any particular RPC system. They are generated by the
1002 // main code generators in each language (without additional plugins).
1003 // Generic services were the only kind of service generation supported by
1004 // early versions of google.protobuf.
1006 // Generic services are now considered deprecated in favor of using plugins
1007 // that generate code specific to your particular RPC system. Therefore,
1008 // these default to false. Old code which depends on generic services should
1009 // explicitly set them to true.
1010 CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"`
1011 JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"`
1012 PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"`
1013 PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"`
1014 // Is this file deprecated?
1015 // Depending on the target platform, this can emit Deprecated annotations
1016 // for everything in the file, or it will be completely ignored; in the very
1017 // least, this is a formalization for deprecating files.
1018 Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
1019 // Enables the use of arenas for the proto messages in this file. This applies
1020 // only to generated classes for C++.
1021 CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=0" json:"cc_enable_arenas,omitempty"`
1022 // Sets the objective c class prefix which is prepended to all objective c
1023 // generated classes from this .proto. There is no default.
1024 ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"`
1025 // Namespace for generated classes; defaults to the package.
1026 CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"`
1027 // By default Swift generators will take the proto package and CamelCase it
1028 // replacing '.' with underscore and use that to prefix the types/symbols
1029 // defined. When this options is provided, they will use this value instead
1030 // to prefix the types/symbols defined.
1031 SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"`
1032 // Sets the php class prefix which is prepended to all php generated classes
1033 // from this .proto. Default is empty.
1034 PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"`
1035 // Use this option to change the namespace of php generated classes. Default
1036 // is empty. When this option is empty, the package name will be used for
1037 // determining the namespace.
1038 PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"`
1039 // The parser stores options it doesn't recognize here. See above.
1040 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1041 proto.XXX_InternalExtensions `json:"-"`
1042 XXX_unrecognized []byte `json:"-"`
1045 func (m *FileOptions) Reset() { *m = FileOptions{} }
1046 func (m *FileOptions) String() string { return proto.CompactTextString(m) }
1047 func (*FileOptions) ProtoMessage() {}
1048 func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
1050 var extRange_FileOptions = []proto.ExtensionRange{
1054 func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange {
1055 return extRange_FileOptions
1058 const Default_FileOptions_JavaMultipleFiles bool = false
1059 const Default_FileOptions_JavaStringCheckUtf8 bool = false
1060 const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED
1061 const Default_FileOptions_CcGenericServices bool = false
1062 const Default_FileOptions_JavaGenericServices bool = false
1063 const Default_FileOptions_PyGenericServices bool = false
1064 const Default_FileOptions_PhpGenericServices bool = false
1065 const Default_FileOptions_Deprecated bool = false
1066 const Default_FileOptions_CcEnableArenas bool = false
1068 func (m *FileOptions) GetJavaPackage() string {
1069 if m != nil && m.JavaPackage != nil {
1070 return *m.JavaPackage
1075 func (m *FileOptions) GetJavaOuterClassname() string {
1076 if m != nil && m.JavaOuterClassname != nil {
1077 return *m.JavaOuterClassname
1082 func (m *FileOptions) GetJavaMultipleFiles() bool {
1083 if m != nil && m.JavaMultipleFiles != nil {
1084 return *m.JavaMultipleFiles
1086 return Default_FileOptions_JavaMultipleFiles
1089 func (m *FileOptions) GetJavaGenerateEqualsAndHash() bool {
1090 if m != nil && m.JavaGenerateEqualsAndHash != nil {
1091 return *m.JavaGenerateEqualsAndHash
1096 func (m *FileOptions) GetJavaStringCheckUtf8() bool {
1097 if m != nil && m.JavaStringCheckUtf8 != nil {
1098 return *m.JavaStringCheckUtf8
1100 return Default_FileOptions_JavaStringCheckUtf8
1103 func (m *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode {
1104 if m != nil && m.OptimizeFor != nil {
1105 return *m.OptimizeFor
1107 return Default_FileOptions_OptimizeFor
1110 func (m *FileOptions) GetGoPackage() string {
1111 if m != nil && m.GoPackage != nil {
1117 func (m *FileOptions) GetCcGenericServices() bool {
1118 if m != nil && m.CcGenericServices != nil {
1119 return *m.CcGenericServices
1121 return Default_FileOptions_CcGenericServices
1124 func (m *FileOptions) GetJavaGenericServices() bool {
1125 if m != nil && m.JavaGenericServices != nil {
1126 return *m.JavaGenericServices
1128 return Default_FileOptions_JavaGenericServices
1131 func (m *FileOptions) GetPyGenericServices() bool {
1132 if m != nil && m.PyGenericServices != nil {
1133 return *m.PyGenericServices
1135 return Default_FileOptions_PyGenericServices
1138 func (m *FileOptions) GetPhpGenericServices() bool {
1139 if m != nil && m.PhpGenericServices != nil {
1140 return *m.PhpGenericServices
1142 return Default_FileOptions_PhpGenericServices
1145 func (m *FileOptions) GetDeprecated() bool {
1146 if m != nil && m.Deprecated != nil {
1147 return *m.Deprecated
1149 return Default_FileOptions_Deprecated
1152 func (m *FileOptions) GetCcEnableArenas() bool {
1153 if m != nil && m.CcEnableArenas != nil {
1154 return *m.CcEnableArenas
1156 return Default_FileOptions_CcEnableArenas
1159 func (m *FileOptions) GetObjcClassPrefix() string {
1160 if m != nil && m.ObjcClassPrefix != nil {
1161 return *m.ObjcClassPrefix
1166 func (m *FileOptions) GetCsharpNamespace() string {
1167 if m != nil && m.CsharpNamespace != nil {
1168 return *m.CsharpNamespace
1173 func (m *FileOptions) GetSwiftPrefix() string {
1174 if m != nil && m.SwiftPrefix != nil {
1175 return *m.SwiftPrefix
1180 func (m *FileOptions) GetPhpClassPrefix() string {
1181 if m != nil && m.PhpClassPrefix != nil {
1182 return *m.PhpClassPrefix
1187 func (m *FileOptions) GetPhpNamespace() string {
1188 if m != nil && m.PhpNamespace != nil {
1189 return *m.PhpNamespace
1194 func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption {
1196 return m.UninterpretedOption
1201 type MessageOptions struct {
1202 // Set true to use the old proto1 MessageSet wire format for extensions.
1203 // This is provided for backwards-compatibility with the MessageSet wire
1204 // format. You should not use this for any other reason: It's less
1205 // efficient, has fewer features, and is more complicated.
1207 // The message must be defined exactly as follows:
1209 // option message_set_wire_format = true;
1210 // extensions 4 to max;
1212 // Note that the message cannot have any defined fields; MessageSets only
1215 // All extensions of your type must be singular messages; e.g. they cannot
1216 // be int32s, enums, or repeated messages.
1218 // Because this is an option, the above two restrictions are not enforced by
1219 // the protocol compiler.
1220 MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"`
1221 // Disables the generation of the standard "descriptor()" accessor, which can
1222 // conflict with a field of the same name. This is meant to make migration
1223 // from proto1 easier; new code should avoid fields named "descriptor".
1224 NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"`
1225 // Is this message deprecated?
1226 // Depending on the target platform, this can emit Deprecated annotations
1227 // for the message, or it will be completely ignored; in the very least,
1228 // this is a formalization for deprecating messages.
1229 Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
1230 // Whether the message is an automatically generated map entry type for the
1234 // map<KeyType, ValueType> map_field = 1;
1235 // The parsed descriptor looks like:
1236 // message MapFieldEntry {
1237 // option map_entry = true;
1238 // optional KeyType key = 1;
1239 // optional ValueType value = 2;
1241 // repeated MapFieldEntry map_field = 1;
1243 // Implementations may choose not to generate the map_entry=true message, but
1244 // use a native map in the target language to hold the keys and values.
1245 // The reflection APIs in such implementions still need to work as
1246 // if the field is a repeated message field.
1248 // NOTE: Do not set the option in .proto files. Always use the maps syntax
1249 // instead. The option should only be implicitly set by the proto compiler
1251 MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"`
1252 // The parser stores options it doesn't recognize here. See above.
1253 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1254 proto.XXX_InternalExtensions `json:"-"`
1255 XXX_unrecognized []byte `json:"-"`
1258 func (m *MessageOptions) Reset() { *m = MessageOptions{} }
1259 func (m *MessageOptions) String() string { return proto.CompactTextString(m) }
1260 func (*MessageOptions) ProtoMessage() {}
1261 func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
1263 var extRange_MessageOptions = []proto.ExtensionRange{
1267 func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange {
1268 return extRange_MessageOptions
1271 const Default_MessageOptions_MessageSetWireFormat bool = false
1272 const Default_MessageOptions_NoStandardDescriptorAccessor bool = false
1273 const Default_MessageOptions_Deprecated bool = false
1275 func (m *MessageOptions) GetMessageSetWireFormat() bool {
1276 if m != nil && m.MessageSetWireFormat != nil {
1277 return *m.MessageSetWireFormat
1279 return Default_MessageOptions_MessageSetWireFormat
1282 func (m *MessageOptions) GetNoStandardDescriptorAccessor() bool {
1283 if m != nil && m.NoStandardDescriptorAccessor != nil {
1284 return *m.NoStandardDescriptorAccessor
1286 return Default_MessageOptions_NoStandardDescriptorAccessor
1289 func (m *MessageOptions) GetDeprecated() bool {
1290 if m != nil && m.Deprecated != nil {
1291 return *m.Deprecated
1293 return Default_MessageOptions_Deprecated
1296 func (m *MessageOptions) GetMapEntry() bool {
1297 if m != nil && m.MapEntry != nil {
1303 func (m *MessageOptions) GetUninterpretedOption() []*UninterpretedOption {
1305 return m.UninterpretedOption
1310 type FieldOptions struct {
1311 // The ctype option instructs the C++ code generator to use a different
1312 // representation of the field than it normally would. See the specific
1313 // options below. This option is not yet implemented in the open source
1314 // release -- sorry, we'll try to include it in a future version!
1315 Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"`
1316 // The packed option can be enabled for repeated primitive fields to enable
1317 // a more efficient representation on the wire. Rather than repeatedly
1318 // writing the tag and type for each element, the entire array is encoded as
1319 // a single length-delimited blob. In proto3, only explicit setting it to
1320 // false will avoid using packed encoding.
1321 Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"`
1322 // The jstype option determines the JavaScript type used for values of the
1323 // field. The option is permitted only for 64 bit integral and fixed types
1324 // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
1325 // is represented as JavaScript string, which avoids loss of precision that
1326 // can happen when a large value is converted to a floating point JavaScript.
1327 // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
1328 // use the JavaScript "number" type. The behavior of the default option
1329 // JS_NORMAL is implementation dependent.
1331 // This option is an enum to permit additional types to be added, e.g.
1332 // goog.math.Integer.
1333 Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"`
1334 // Should this field be parsed lazily? Lazy applies only to message-type
1335 // fields. It means that when the outer message is initially parsed, the
1336 // inner message's contents will not be parsed but instead stored in encoded
1337 // form. The inner message will actually be parsed when it is first accessed.
1339 // This is only a hint. Implementations are free to choose whether to use
1340 // eager or lazy parsing regardless of the value of this option. However,
1341 // setting this option true suggests that the protocol author believes that
1342 // using lazy parsing on this field is worth the additional bookkeeping
1343 // overhead typically needed to implement it.
1345 // This option does not affect the public interface of any generated code;
1346 // all method signatures remain the same. Furthermore, thread-safety of the
1347 // interface is not affected by this option; const methods remain safe to
1348 // call from multiple threads concurrently, while non-const methods continue
1349 // to require exclusive access.
1352 // Note that implementations may choose not to check required fields within
1353 // a lazy sub-message. That is, calling IsInitialized() on the outer message
1354 // may return true even if the inner message has missing required fields.
1355 // This is necessary because otherwise the inner message would have to be
1356 // parsed in order to perform the check, defeating the purpose of lazy
1357 // parsing. An implementation which chooses not to check required fields
1358 // must be consistent about it. That is, for any particular sub-message, the
1359 // implementation must either *always* check its required fields, or *never*
1360 // check its required fields, regardless of whether or not the message has
1362 Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"`
1363 // Is this field deprecated?
1364 // Depending on the target platform, this can emit Deprecated annotations
1365 // for accessors, or it will be completely ignored; in the very least, this
1366 // is a formalization for deprecating fields.
1367 Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
1368 // For Google-internal migration only. Do not use.
1369 Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"`
1370 // The parser stores options it doesn't recognize here. See above.
1371 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1372 proto.XXX_InternalExtensions `json:"-"`
1373 XXX_unrecognized []byte `json:"-"`
1376 func (m *FieldOptions) Reset() { *m = FieldOptions{} }
1377 func (m *FieldOptions) String() string { return proto.CompactTextString(m) }
1378 func (*FieldOptions) ProtoMessage() {}
1379 func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
1381 var extRange_FieldOptions = []proto.ExtensionRange{
1385 func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange {
1386 return extRange_FieldOptions
1389 const Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING
1390 const Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL
1391 const Default_FieldOptions_Lazy bool = false
1392 const Default_FieldOptions_Deprecated bool = false
1393 const Default_FieldOptions_Weak bool = false
1395 func (m *FieldOptions) GetCtype() FieldOptions_CType {
1396 if m != nil && m.Ctype != nil {
1399 return Default_FieldOptions_Ctype
1402 func (m *FieldOptions) GetPacked() bool {
1403 if m != nil && m.Packed != nil {
1409 func (m *FieldOptions) GetJstype() FieldOptions_JSType {
1410 if m != nil && m.Jstype != nil {
1413 return Default_FieldOptions_Jstype
1416 func (m *FieldOptions) GetLazy() bool {
1417 if m != nil && m.Lazy != nil {
1420 return Default_FieldOptions_Lazy
1423 func (m *FieldOptions) GetDeprecated() bool {
1424 if m != nil && m.Deprecated != nil {
1425 return *m.Deprecated
1427 return Default_FieldOptions_Deprecated
1430 func (m *FieldOptions) GetWeak() bool {
1431 if m != nil && m.Weak != nil {
1434 return Default_FieldOptions_Weak
1437 func (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption {
1439 return m.UninterpretedOption
1444 type OneofOptions struct {
1445 // The parser stores options it doesn't recognize here. See above.
1446 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1447 proto.XXX_InternalExtensions `json:"-"`
1448 XXX_unrecognized []byte `json:"-"`
1451 func (m *OneofOptions) Reset() { *m = OneofOptions{} }
1452 func (m *OneofOptions) String() string { return proto.CompactTextString(m) }
1453 func (*OneofOptions) ProtoMessage() {}
1454 func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
1456 var extRange_OneofOptions = []proto.ExtensionRange{
1460 func (*OneofOptions) ExtensionRangeArray() []proto.ExtensionRange {
1461 return extRange_OneofOptions
1464 func (m *OneofOptions) GetUninterpretedOption() []*UninterpretedOption {
1466 return m.UninterpretedOption
1471 type EnumOptions struct {
1472 // Set this option to true to allow mapping different tag names to the same
1474 AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"`
1475 // Is this enum deprecated?
1476 // Depending on the target platform, this can emit Deprecated annotations
1477 // for the enum, or it will be completely ignored; in the very least, this
1478 // is a formalization for deprecating enums.
1479 Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
1480 // The parser stores options it doesn't recognize here. See above.
1481 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1482 proto.XXX_InternalExtensions `json:"-"`
1483 XXX_unrecognized []byte `json:"-"`
1486 func (m *EnumOptions) Reset() { *m = EnumOptions{} }
1487 func (m *EnumOptions) String() string { return proto.CompactTextString(m) }
1488 func (*EnumOptions) ProtoMessage() {}
1489 func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
1491 var extRange_EnumOptions = []proto.ExtensionRange{
1495 func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange {
1496 return extRange_EnumOptions
1499 const Default_EnumOptions_Deprecated bool = false
1501 func (m *EnumOptions) GetAllowAlias() bool {
1502 if m != nil && m.AllowAlias != nil {
1503 return *m.AllowAlias
1508 func (m *EnumOptions) GetDeprecated() bool {
1509 if m != nil && m.Deprecated != nil {
1510 return *m.Deprecated
1512 return Default_EnumOptions_Deprecated
1515 func (m *EnumOptions) GetUninterpretedOption() []*UninterpretedOption {
1517 return m.UninterpretedOption
1522 type EnumValueOptions struct {
1523 // Is this enum value deprecated?
1524 // Depending on the target platform, this can emit Deprecated annotations
1525 // for the enum value, or it will be completely ignored; in the very least,
1526 // this is a formalization for deprecating enum values.
1527 Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
1528 // The parser stores options it doesn't recognize here. See above.
1529 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1530 proto.XXX_InternalExtensions `json:"-"`
1531 XXX_unrecognized []byte `json:"-"`
1534 func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} }
1535 func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) }
1536 func (*EnumValueOptions) ProtoMessage() {}
1537 func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
1539 var extRange_EnumValueOptions = []proto.ExtensionRange{
1543 func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange {
1544 return extRange_EnumValueOptions
1547 const Default_EnumValueOptions_Deprecated bool = false
1549 func (m *EnumValueOptions) GetDeprecated() bool {
1550 if m != nil && m.Deprecated != nil {
1551 return *m.Deprecated
1553 return Default_EnumValueOptions_Deprecated
1556 func (m *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption {
1558 return m.UninterpretedOption
1563 type ServiceOptions struct {
1564 // Is this service deprecated?
1565 // Depending on the target platform, this can emit Deprecated annotations
1566 // for the service, or it will be completely ignored; in the very least,
1567 // this is a formalization for deprecating services.
1568 Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
1569 // The parser stores options it doesn't recognize here. See above.
1570 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1571 proto.XXX_InternalExtensions `json:"-"`
1572 XXX_unrecognized []byte `json:"-"`
1575 func (m *ServiceOptions) Reset() { *m = ServiceOptions{} }
1576 func (m *ServiceOptions) String() string { return proto.CompactTextString(m) }
1577 func (*ServiceOptions) ProtoMessage() {}
1578 func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
1580 var extRange_ServiceOptions = []proto.ExtensionRange{
1584 func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange {
1585 return extRange_ServiceOptions
1588 const Default_ServiceOptions_Deprecated bool = false
1590 func (m *ServiceOptions) GetDeprecated() bool {
1591 if m != nil && m.Deprecated != nil {
1592 return *m.Deprecated
1594 return Default_ServiceOptions_Deprecated
1597 func (m *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption {
1599 return m.UninterpretedOption
1604 type MethodOptions struct {
1605 // Is this method deprecated?
1606 // Depending on the target platform, this can emit Deprecated annotations
1607 // for the method, or it will be completely ignored; in the very least,
1608 // this is a formalization for deprecating methods.
1609 Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
1610 IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"`
1611 // The parser stores options it doesn't recognize here. See above.
1612 UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
1613 proto.XXX_InternalExtensions `json:"-"`
1614 XXX_unrecognized []byte `json:"-"`
1617 func (m *MethodOptions) Reset() { *m = MethodOptions{} }
1618 func (m *MethodOptions) String() string { return proto.CompactTextString(m) }
1619 func (*MethodOptions) ProtoMessage() {}
1620 func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
1622 var extRange_MethodOptions = []proto.ExtensionRange{
1626 func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange {
1627 return extRange_MethodOptions
1630 const Default_MethodOptions_Deprecated bool = false
1631 const Default_MethodOptions_IdempotencyLevel MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN
1633 func (m *MethodOptions) GetDeprecated() bool {
1634 if m != nil && m.Deprecated != nil {
1635 return *m.Deprecated
1637 return Default_MethodOptions_Deprecated
1640 func (m *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel {
1641 if m != nil && m.IdempotencyLevel != nil {
1642 return *m.IdempotencyLevel
1644 return Default_MethodOptions_IdempotencyLevel
1647 func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption {
1649 return m.UninterpretedOption
1654 // A message representing a option the parser does not recognize. This only
1655 // appears in options protos created by the compiler::Parser class.
1656 // DescriptorPool resolves these when building Descriptor objects. Therefore,
1657 // options protos in descriptor objects (e.g. returned by Descriptor::options(),
1658 // or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
1660 type UninterpretedOption struct {
1661 Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"`
1662 // The value of the uninterpreted option, in whatever type the tokenizer
1663 // identified it as during parsing. Exactly one of these should be set.
1664 IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"`
1665 PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"`
1666 NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"`
1667 DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"`
1668 StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"`
1669 AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"`
1670 XXX_unrecognized []byte `json:"-"`
1673 func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} }
1674 func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) }
1675 func (*UninterpretedOption) ProtoMessage() {}
1676 func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
1678 func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart {
1685 func (m *UninterpretedOption) GetIdentifierValue() string {
1686 if m != nil && m.IdentifierValue != nil {
1687 return *m.IdentifierValue
1692 func (m *UninterpretedOption) GetPositiveIntValue() uint64 {
1693 if m != nil && m.PositiveIntValue != nil {
1694 return *m.PositiveIntValue
1699 func (m *UninterpretedOption) GetNegativeIntValue() int64 {
1700 if m != nil && m.NegativeIntValue != nil {
1701 return *m.NegativeIntValue
1706 func (m *UninterpretedOption) GetDoubleValue() float64 {
1707 if m != nil && m.DoubleValue != nil {
1708 return *m.DoubleValue
1713 func (m *UninterpretedOption) GetStringValue() []byte {
1715 return m.StringValue
1720 func (m *UninterpretedOption) GetAggregateValue() string {
1721 if m != nil && m.AggregateValue != nil {
1722 return *m.AggregateValue
1727 // The name of the uninterpreted option. Each string represents a segment in
1728 // a dot-separated name. is_extension is true iff a segment represents an
1729 // extension (denoted with parentheses in options specs in .proto files).
1730 // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
1731 // "foo.(bar.baz).qux".
1732 type UninterpretedOption_NamePart struct {
1733 NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"`
1734 IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"`
1735 XXX_unrecognized []byte `json:"-"`
1738 func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOption_NamePart{} }
1739 func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) }
1740 func (*UninterpretedOption_NamePart) ProtoMessage() {}
1741 func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) {
1742 return fileDescriptor0, []int{18, 0}
1745 func (m *UninterpretedOption_NamePart) GetNamePart() string {
1746 if m != nil && m.NamePart != nil {
1752 func (m *UninterpretedOption_NamePart) GetIsExtension() bool {
1753 if m != nil && m.IsExtension != nil {
1754 return *m.IsExtension
1759 // Encapsulates information about the original source file from which a
1760 // FileDescriptorProto was generated.
1761 type SourceCodeInfo struct {
1762 // A Location identifies a piece of source code in a .proto file which
1763 // corresponds to a particular definition. This information is intended
1764 // to be useful to IDEs, code indexers, documentation generators, and similar
1767 // For example, say we have a file like:
1769 // optional string foo = 1;
1771 // Let's look at just the field definition:
1772 // optional string foo = 1;
1775 // We have the following locations:
1776 // span path represents
1777 // [a,i) [ 4, 0, 2, 0 ] The whole field definition.
1778 // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
1779 // [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
1780 // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
1781 // [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
1784 // - A location may refer to a repeated field itself (i.e. not to any
1785 // particular index within it). This is used whenever a set of elements are
1786 // logically enclosed in a single code segment. For example, an entire
1787 // extend block (possibly containing multiple extension definitions) will
1788 // have an outer location whose path refers to the "extensions" repeated
1789 // field without an index.
1790 // - Multiple locations may have the same path. This happens when a single
1791 // logical declaration is spread out across multiple places. The most
1792 // obvious example is the "extend" block again -- there may be multiple
1793 // extend blocks in the same scope, each of which will have the same path.
1794 // - A location's span is not always a subset of its parent's span. For
1795 // example, the "extendee" of an extension declaration appears at the
1796 // beginning of the "extend" block and is shared by all extensions within
1798 // - Just because a location's span is a subset of some other location's span
1799 // does not mean that it is a descendent. For example, a "group" defines
1800 // both a type and a field in a single declaration. Thus, the locations
1801 // corresponding to the type and field and their components will overlap.
1802 // - Code which tries to interpret locations should probably be designed to
1803 // ignore those that it doesn't understand, as more types of locations could
1804 // be recorded in the future.
1805 Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"`
1806 XXX_unrecognized []byte `json:"-"`
1809 func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} }
1810 func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) }
1811 func (*SourceCodeInfo) ProtoMessage() {}
1812 func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
1814 func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location {
1821 type SourceCodeInfo_Location struct {
1822 // Identifies which part of the FileDescriptorProto was defined at this
1825 // Each element is a field number or an index. They form a path from
1826 // the root FileDescriptorProto to the place where the definition. For
1827 // example, this path:
1828 // [ 4, 3, 2, 7, 1 ]
1830 // file.message_type(3) // 4, 3
1831 // .field(7) // 2, 7
1833 // This is because FileDescriptorProto.message_type has field number 4:
1834 // repeated DescriptorProto message_type = 4;
1835 // and DescriptorProto.field has field number 2:
1836 // repeated FieldDescriptorProto field = 2;
1837 // and FieldDescriptorProto.name has field number 1:
1838 // optional string name = 1;
1840 // Thus, the above path gives the location of a field name. If we removed
1841 // the last element:
1843 // this path refers to the whole field declaration (from the beginning
1844 // of the label to the terminating semicolon).
1845 Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"`
1846 // Always has exactly three or four elements: start line, start column,
1847 // end line (optional, otherwise assumed same as start line), end column.
1848 // These are packed into a single field for efficiency. Note that line
1849 // and column numbers are zero-based -- typically you will want to add
1850 // 1 to each before displaying to a user.
1851 Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"`
1852 // If this SourceCodeInfo represents a complete declaration, these are any
1853 // comments appearing before and after the declaration which appear to be
1854 // attached to the declaration.
1856 // A series of line comments appearing on consecutive lines, with no other
1857 // tokens appearing on those lines, will be treated as a single comment.
1859 // leading_detached_comments will keep paragraphs of comments that appear
1860 // before (but not connected to) the current element. Each paragraph,
1861 // separated by empty lines, will be one comment element in the repeated
1864 // Only the comment content is provided; comment markers (e.g. //) are
1865 // stripped out. For block comments, leading whitespace and an asterisk
1866 // will be stripped from the beginning of each line other than the first.
1867 // Newlines are included in the output.
1871 // optional int32 foo = 1; // Comment attached to foo.
1872 // // Comment attached to bar.
1873 // optional int32 bar = 2;
1875 // optional string baz = 3;
1876 // // Comment attached to baz.
1877 // // Another line attached to baz.
1879 // // Comment attached to qux.
1881 // // Another line attached to qux.
1882 // optional double qux = 4;
1884 // // Detached comment for corge. This is not leading or trailing comments
1885 // // to qux or corge because there are blank lines separating it from
1888 // // Detached comment for corge paragraph 2.
1890 // optional string corge = 5;
1891 // /* Block comment attached
1892 // * to corge. Leading asterisks
1893 // * will be removed. */
1894 // /* Block comment attached to
1896 // optional int32 grault = 6;
1898 // // ignored detached comments.
1899 LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"`
1900 TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"`
1901 LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"`
1902 XXX_unrecognized []byte `json:"-"`
1905 func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location{} }
1906 func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) }
1907 func (*SourceCodeInfo_Location) ProtoMessage() {}
1908 func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} }
1910 func (m *SourceCodeInfo_Location) GetPath() []int32 {
1917 func (m *SourceCodeInfo_Location) GetSpan() []int32 {
1924 func (m *SourceCodeInfo_Location) GetLeadingComments() string {
1925 if m != nil && m.LeadingComments != nil {
1926 return *m.LeadingComments
1931 func (m *SourceCodeInfo_Location) GetTrailingComments() string {
1932 if m != nil && m.TrailingComments != nil {
1933 return *m.TrailingComments
1938 func (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string {
1940 return m.LeadingDetachedComments
1945 // Describes the relationship between generated code and its original source
1946 // file. A GeneratedCodeInfo message is associated with only one generated
1947 // source file, but may contain references to different source .proto files.
1948 type GeneratedCodeInfo struct {
1949 // An Annotation connects some span of text in generated code to an element
1950 // of its generating .proto file.
1951 Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"`
1952 XXX_unrecognized []byte `json:"-"`
1955 func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} }
1956 func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) }
1957 func (*GeneratedCodeInfo) ProtoMessage() {}
1958 func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
1960 func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation {
1967 type GeneratedCodeInfo_Annotation struct {
1968 // Identifies the element in the original source .proto file. This field
1969 // is formatted the same as SourceCodeInfo.Location.path.
1970 Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"`
1971 // Identifies the filesystem path to the original source .proto.
1972 SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"`
1973 // Identifies the starting offset in bytes in the generated code
1974 // that relates to the identified object.
1975 Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"`
1976 // Identifies the ending offset in bytes in the generated code that
1977 // relates to the identified offset. The end offset should be one past
1978 // the last relevant byte (so the length of the text = end - begin).
1979 End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"`
1980 XXX_unrecognized []byte `json:"-"`
1983 func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_Annotation{} }
1984 func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) }
1985 func (*GeneratedCodeInfo_Annotation) ProtoMessage() {}
1986 func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) {
1987 return fileDescriptor0, []int{20, 0}
1990 func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 {
1997 func (m *GeneratedCodeInfo_Annotation) GetSourceFile() string {
1998 if m != nil && m.SourceFile != nil {
1999 return *m.SourceFile
2004 func (m *GeneratedCodeInfo_Annotation) GetBegin() int32 {
2005 if m != nil && m.Begin != nil {
2011 func (m *GeneratedCodeInfo_Annotation) GetEnd() int32 {
2012 if m != nil && m.End != nil {
2019 proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet")
2020 proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto")
2021 proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto")
2022 proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange")
2023 proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange")
2024 proto.RegisterType((*ExtensionRangeOptions)(nil), "google.protobuf.ExtensionRangeOptions")
2025 proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto")
2026 proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto")
2027 proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto")
2028 proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto")
2029 proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto")
2030 proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto")
2031 proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions")
2032 proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions")
2033 proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions")
2034 proto.RegisterType((*OneofOptions)(nil), "google.protobuf.OneofOptions")
2035 proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions")
2036 proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions")
2037 proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions")
2038 proto.RegisterType((*MethodOptions)(nil), "google.protobuf.MethodOptions")
2039 proto.RegisterType((*UninterpretedOption)(nil), "google.protobuf.UninterpretedOption")
2040 proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart")
2041 proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo")
2042 proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location")
2043 proto.RegisterType((*GeneratedCodeInfo)(nil), "google.protobuf.GeneratedCodeInfo")
2044 proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation")
2045 proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value)
2046 proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value)
2047 proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value)
2048 proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value)
2049 proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value)
2050 proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value)
2053 func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor0) }
2055 var fileDescriptor0 = []byte{
2056 // 2519 bytes of a gzipped FileDescriptorProto
2057 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdd, 0x6e, 0x1b, 0xc7,
2058 0x15, 0x0e, 0x7f, 0x45, 0x1e, 0x52, 0xd4, 0x68, 0xa4, 0xd8, 0x6b, 0xe5, 0xc7, 0x32, 0xf3, 0x63,
2059 0xd9, 0x69, 0xa8, 0x40, 0xb1, 0x1d, 0x47, 0x29, 0xd2, 0x52, 0xe4, 0x5a, 0xa1, 0x4a, 0x91, 0xec,
2060 0x92, 0x6a, 0x7e, 0x6e, 0x16, 0xa3, 0xdd, 0x21, 0xb9, 0xf6, 0x72, 0x77, 0xb3, 0xbb, 0xb4, 0xad,
2061 0xa0, 0x17, 0x06, 0x7a, 0x55, 0xa0, 0x0f, 0x50, 0x14, 0x45, 0x2f, 0x72, 0x13, 0xa0, 0x0f, 0x50,
2062 0x20, 0x77, 0x7d, 0x82, 0x02, 0x79, 0x83, 0xa2, 0x28, 0xd0, 0x3e, 0x46, 0x31, 0x33, 0xbb, 0xcb,
2063 0x5d, 0xfe, 0xc4, 0x6a, 0x80, 0x38, 0x57, 0xe4, 0x7c, 0xe7, 0x3b, 0x67, 0xce, 0x9c, 0x39, 0x33,
2064 0x73, 0x66, 0x16, 0x76, 0x47, 0xb6, 0x3d, 0x32, 0xe9, 0xbe, 0xe3, 0xda, 0xbe, 0x7d, 0x3e, 0x1d,
2065 0xee, 0xeb, 0xd4, 0xd3, 0x5c, 0xc3, 0xf1, 0x6d, 0xb7, 0xc6, 0x31, 0xbc, 0x21, 0x18, 0xb5, 0x90,
2066 0x51, 0x3d, 0x85, 0xcd, 0x07, 0x86, 0x49, 0x9b, 0x11, 0xb1, 0x4f, 0x7d, 0x7c, 0x1f, 0xb2, 0x43,
2067 0xc3, 0xa4, 0x52, 0x6a, 0x37, 0xb3, 0x57, 0x3a, 0x78, 0xb3, 0x36, 0xa7, 0x54, 0x4b, 0x6a, 0xf4,
2068 0x18, 0xac, 0x70, 0x8d, 0xea, 0xbf, 0xb3, 0xb0, 0xb5, 0x44, 0x8a, 0x31, 0x64, 0x2d, 0x32, 0x61,
2069 0x16, 0x53, 0x7b, 0x45, 0x85, 0xff, 0xc7, 0x12, 0xac, 0x39, 0x44, 0x7b, 0x44, 0x46, 0x54, 0x4a,
2070 0x73, 0x38, 0x6c, 0xe2, 0xd7, 0x01, 0x74, 0xea, 0x50, 0x4b, 0xa7, 0x96, 0x76, 0x21, 0x65, 0x76,
2071 0x33, 0x7b, 0x45, 0x25, 0x86, 0xe0, 0x77, 0x60, 0xd3, 0x99, 0x9e, 0x9b, 0x86, 0xa6, 0xc6, 0x68,
2072 0xb0, 0x9b, 0xd9, 0xcb, 0x29, 0x48, 0x08, 0x9a, 0x33, 0xf2, 0x4d, 0xd8, 0x78, 0x42, 0xc9, 0xa3,
2073 0x38, 0xb5, 0xc4, 0xa9, 0x15, 0x06, 0xc7, 0x88, 0x0d, 0x28, 0x4f, 0xa8, 0xe7, 0x91, 0x11, 0x55,
2074 0xfd, 0x0b, 0x87, 0x4a, 0x59, 0x3e, 0xfa, 0xdd, 0x85, 0xd1, 0xcf, 0x8f, 0xbc, 0x14, 0x68, 0x0d,
2075 0x2e, 0x1c, 0x8a, 0xeb, 0x50, 0xa4, 0xd6, 0x74, 0x22, 0x2c, 0xe4, 0x56, 0xc4, 0x4f, 0xb6, 0xa6,
2076 0x93, 0x79, 0x2b, 0x05, 0xa6, 0x16, 0x98, 0x58, 0xf3, 0xa8, 0xfb, 0xd8, 0xd0, 0xa8, 0x94, 0xe7,
2077 0x06, 0x6e, 0x2e, 0x18, 0xe8, 0x0b, 0xf9, 0xbc, 0x8d, 0x50, 0x0f, 0x37, 0xa0, 0x48, 0x9f, 0xfa,
2078 0xd4, 0xf2, 0x0c, 0xdb, 0x92, 0xd6, 0xb8, 0x91, 0xb7, 0x96, 0xcc, 0x22, 0x35, 0xf5, 0x79, 0x13,
2079 0x33, 0x3d, 0x7c, 0x0f, 0xd6, 0x6c, 0xc7, 0x37, 0x6c, 0xcb, 0x93, 0x0a, 0xbb, 0xa9, 0xbd, 0xd2,
2080 0xc1, 0xab, 0x4b, 0x13, 0xa1, 0x2b, 0x38, 0x4a, 0x48, 0xc6, 0x2d, 0x40, 0x9e, 0x3d, 0x75, 0x35,
2081 0xaa, 0x6a, 0xb6, 0x4e, 0x55, 0xc3, 0x1a, 0xda, 0x52, 0x91, 0x1b, 0xb8, 0xbe, 0x38, 0x10, 0x4e,
2082 0x6c, 0xd8, 0x3a, 0x6d, 0x59, 0x43, 0x5b, 0xa9, 0x78, 0x89, 0x36, 0xbe, 0x02, 0x79, 0xef, 0xc2,
2083 0xf2, 0xc9, 0x53, 0xa9, 0xcc, 0x33, 0x24, 0x68, 0x55, 0xbf, 0xcd, 0xc3, 0xc6, 0x65, 0x52, 0xec,
2084 0x23, 0xc8, 0x0d, 0xd9, 0x28, 0xa5, 0xf4, 0xff, 0x13, 0x03, 0xa1, 0x93, 0x0c, 0x62, 0xfe, 0x07,
2085 0x06, 0xb1, 0x0e, 0x25, 0x8b, 0x7a, 0x3e, 0xd5, 0x45, 0x46, 0x64, 0x2e, 0x99, 0x53, 0x20, 0x94,
2086 0x16, 0x53, 0x2a, 0xfb, 0x83, 0x52, 0xea, 0x33, 0xd8, 0x88, 0x5c, 0x52, 0x5d, 0x62, 0x8d, 0xc2,
2087 0xdc, 0xdc, 0x7f, 0x9e, 0x27, 0x35, 0x39, 0xd4, 0x53, 0x98, 0x9a, 0x52, 0xa1, 0x89, 0x36, 0x6e,
2088 0x02, 0xd8, 0x16, 0xb5, 0x87, 0xaa, 0x4e, 0x35, 0x53, 0x2a, 0xac, 0x88, 0x52, 0x97, 0x51, 0x16,
2089 0xa2, 0x64, 0x0b, 0x54, 0x33, 0xf1, 0x87, 0xb3, 0x54, 0x5b, 0x5b, 0x91, 0x29, 0xa7, 0x62, 0x91,
2090 0x2d, 0x64, 0xdb, 0x19, 0x54, 0x5c, 0xca, 0xf2, 0x9e, 0xea, 0xc1, 0xc8, 0x8a, 0xdc, 0x89, 0xda,
2091 0x73, 0x47, 0xa6, 0x04, 0x6a, 0x62, 0x60, 0xeb, 0x6e, 0xbc, 0x89, 0xdf, 0x80, 0x08, 0x50, 0x79,
2092 0x5a, 0x01, 0xdf, 0x85, 0xca, 0x21, 0xd8, 0x21, 0x13, 0xba, 0xf3, 0x15, 0x54, 0x92, 0xe1, 0xc1,
2093 0xdb, 0x90, 0xf3, 0x7c, 0xe2, 0xfa, 0x3c, 0x0b, 0x73, 0x8a, 0x68, 0x60, 0x04, 0x19, 0x6a, 0xe9,
2094 0x7c, 0x97, 0xcb, 0x29, 0xec, 0x2f, 0xfe, 0xe5, 0x6c, 0xc0, 0x19, 0x3e, 0xe0, 0xb7, 0x17, 0x67,
2095 0x34, 0x61, 0x79, 0x7e, 0xdc, 0x3b, 0x1f, 0xc0, 0x7a, 0x62, 0x00, 0x97, 0xed, 0xba, 0xfa, 0x5b,
2096 0x78, 0x79, 0xa9, 0x69, 0xfc, 0x19, 0x6c, 0x4f, 0x2d, 0xc3, 0xf2, 0xa9, 0xeb, 0xb8, 0x94, 0x65,
2097 0xac, 0xe8, 0x4a, 0xfa, 0xcf, 0xda, 0x8a, 0x9c, 0x3b, 0x8b, 0xb3, 0x85, 0x15, 0x65, 0x6b, 0xba,
2098 0x08, 0xde, 0x2e, 0x16, 0xfe, 0xbb, 0x86, 0x9e, 0x3d, 0x7b, 0xf6, 0x2c, 0x5d, 0xfd, 0x63, 0x1e,
2099 0xb6, 0x97, 0xad, 0x99, 0xa5, 0xcb, 0xf7, 0x0a, 0xe4, 0xad, 0xe9, 0xe4, 0x9c, 0xba, 0x3c, 0x48,
2100 0x39, 0x25, 0x68, 0xe1, 0x3a, 0xe4, 0x4c, 0x72, 0x4e, 0x4d, 0x29, 0xbb, 0x9b, 0xda, 0xab, 0x1c,
2101 0xbc, 0x73, 0xa9, 0x55, 0x59, 0x6b, 0x33, 0x15, 0x45, 0x68, 0xe2, 0x8f, 0x21, 0x1b, 0x6c, 0xd1,
2102 0xcc, 0xc2, 0xed, 0xcb, 0x59, 0x60, 0x6b, 0x49, 0xe1, 0x7a, 0xf8, 0x15, 0x28, 0xb2, 0x5f, 0x91,
2103 0x1b, 0x79, 0xee, 0x73, 0x81, 0x01, 0x2c, 0x2f, 0xf0, 0x0e, 0x14, 0xf8, 0x32, 0xd1, 0x69, 0x78,
2104 0xb4, 0x45, 0x6d, 0x96, 0x58, 0x3a, 0x1d, 0x92, 0xa9, 0xe9, 0xab, 0x8f, 0x89, 0x39, 0xa5, 0x3c,
2105 0xe1, 0x8b, 0x4a, 0x39, 0x00, 0x7f, 0xc3, 0x30, 0x7c, 0x1d, 0x4a, 0x62, 0x55, 0x19, 0x96, 0x4e,
2106 0x9f, 0xf2, 0xdd, 0x33, 0xa7, 0x88, 0x85, 0xd6, 0x62, 0x08, 0xeb, 0xfe, 0xa1, 0x67, 0x5b, 0x61,
2107 0x6a, 0xf2, 0x2e, 0x18, 0xc0, 0xbb, 0xff, 0x60, 0x7e, 0xe3, 0x7e, 0x6d, 0xf9, 0xf0, 0xe6, 0x73,
2108 0xaa, 0xfa, 0xb7, 0x34, 0x64, 0xf9, 0x7e, 0xb1, 0x01, 0xa5, 0xc1, 0xe7, 0x3d, 0x59, 0x6d, 0x76,
2109 0xcf, 0x8e, 0xda, 0x32, 0x4a, 0xe1, 0x0a, 0x00, 0x07, 0x1e, 0xb4, 0xbb, 0xf5, 0x01, 0x4a, 0x47,
2110 0xed, 0x56, 0x67, 0x70, 0xef, 0x0e, 0xca, 0x44, 0x0a, 0x67, 0x02, 0xc8, 0xc6, 0x09, 0xef, 0x1f,
2111 0xa0, 0x1c, 0x46, 0x50, 0x16, 0x06, 0x5a, 0x9f, 0xc9, 0xcd, 0x7b, 0x77, 0x50, 0x3e, 0x89, 0xbc,
2112 0x7f, 0x80, 0xd6, 0xf0, 0x3a, 0x14, 0x39, 0x72, 0xd4, 0xed, 0xb6, 0x51, 0x21, 0xb2, 0xd9, 0x1f,
2113 0x28, 0xad, 0xce, 0x31, 0x2a, 0x46, 0x36, 0x8f, 0x95, 0xee, 0x59, 0x0f, 0x41, 0x64, 0xe1, 0x54,
2114 0xee, 0xf7, 0xeb, 0xc7, 0x32, 0x2a, 0x45, 0x8c, 0xa3, 0xcf, 0x07, 0x72, 0x1f, 0x95, 0x13, 0x6e,
2115 0xbd, 0x7f, 0x80, 0xd6, 0xa3, 0x2e, 0xe4, 0xce, 0xd9, 0x29, 0xaa, 0xe0, 0x4d, 0x58, 0x17, 0x5d,
2116 0x84, 0x4e, 0x6c, 0xcc, 0x41, 0xf7, 0xee, 0x20, 0x34, 0x73, 0x44, 0x58, 0xd9, 0x4c, 0x00, 0xf7,
2117 0xee, 0x20, 0x5c, 0x6d, 0x40, 0x8e, 0x67, 0x17, 0xc6, 0x50, 0x69, 0xd7, 0x8f, 0xe4, 0xb6, 0xda,
2118 0xed, 0x0d, 0x5a, 0xdd, 0x4e, 0xbd, 0x8d, 0x52, 0x33, 0x4c, 0x91, 0x7f, 0x7d, 0xd6, 0x52, 0xe4,
2119 0x26, 0x4a, 0xc7, 0xb1, 0x9e, 0x5c, 0x1f, 0xc8, 0x4d, 0x94, 0xa9, 0x6a, 0xb0, 0xbd, 0x6c, 0x9f,
2120 0x5c, 0xba, 0x32, 0x62, 0x53, 0x9c, 0x5e, 0x31, 0xc5, 0xdc, 0xd6, 0xc2, 0x14, 0x7f, 0x9d, 0x82,
2121 0xad, 0x25, 0x67, 0xc5, 0xd2, 0x4e, 0x7e, 0x01, 0x39, 0x91, 0xa2, 0xe2, 0xf4, 0xbc, 0xb5, 0xf4,
2122 0xd0, 0xe1, 0x09, 0xbb, 0x70, 0x82, 0x72, 0xbd, 0x78, 0x05, 0x91, 0x59, 0x51, 0x41, 0x30, 0x13,
2123 0x0b, 0x4e, 0xfe, 0x2e, 0x05, 0xd2, 0x2a, 0xdb, 0xcf, 0xd9, 0x28, 0xd2, 0x89, 0x8d, 0xe2, 0xa3,
2124 0x79, 0x07, 0x6e, 0xac, 0x1e, 0xc3, 0x82, 0x17, 0xdf, 0xa4, 0xe0, 0xca, 0xf2, 0x42, 0x6b, 0xa9,
2125 0x0f, 0x1f, 0x43, 0x7e, 0x42, 0xfd, 0xb1, 0x1d, 0x16, 0x1b, 0x6f, 0x2f, 0x39, 0xc2, 0x98, 0x78,
2126 0x3e, 0x56, 0x81, 0x56, 0xfc, 0x0c, 0xcc, 0xac, 0xaa, 0x96, 0x84, 0x37, 0x0b, 0x9e, 0xfe, 0x3e,
2127 0x0d, 0x2f, 0x2f, 0x35, 0xbe, 0xd4, 0xd1, 0xd7, 0x00, 0x0c, 0xcb, 0x99, 0xfa, 0xa2, 0xa0, 0x10,
2128 0xfb, 0x53, 0x91, 0x23, 0x7c, 0xed, 0xb3, 0xbd, 0x67, 0xea, 0x47, 0xf2, 0x0c, 0x97, 0x83, 0x80,
2129 0x38, 0xe1, 0xfe, 0xcc, 0xd1, 0x2c, 0x77, 0xf4, 0xf5, 0x15, 0x23, 0x5d, 0x38, 0xab, 0xdf, 0x03,
2130 0xa4, 0x99, 0x06, 0xb5, 0x7c, 0xd5, 0xf3, 0x5d, 0x4a, 0x26, 0x86, 0x35, 0xe2, 0x1b, 0x70, 0xe1,
2131 0x30, 0x37, 0x24, 0xa6, 0x47, 0x95, 0x0d, 0x21, 0xee, 0x87, 0x52, 0xa6, 0xc1, 0xcf, 0x38, 0x37,
2132 0xa6, 0x91, 0x4f, 0x68, 0x08, 0x71, 0xa4, 0x51, 0xfd, 0xb6, 0x00, 0xa5, 0x58, 0x59, 0x8a, 0x6f,
2133 0x40, 0xf9, 0x21, 0x79, 0x4c, 0xd4, 0xf0, 0xaa, 0x21, 0x22, 0x51, 0x62, 0x58, 0x2f, 0xb8, 0x6e,
2134 0xbc, 0x07, 0xdb, 0x9c, 0x62, 0x4f, 0x7d, 0xea, 0xaa, 0x9a, 0x49, 0x3c, 0x8f, 0x07, 0xad, 0xc0,
2135 0xa9, 0x98, 0xc9, 0xba, 0x4c, 0xd4, 0x08, 0x25, 0xf8, 0x2e, 0x6c, 0x71, 0x8d, 0xc9, 0xd4, 0xf4,
2136 0x0d, 0xc7, 0xa4, 0x2a, 0xbb, 0xfc, 0x78, 0x7c, 0x23, 0x8e, 0x3c, 0xdb, 0x64, 0x8c, 0xd3, 0x80,
2137 0xc0, 0x3c, 0xf2, 0x70, 0x13, 0x5e, 0xe3, 0x6a, 0x23, 0x6a, 0x51, 0x97, 0xf8, 0x54, 0xa5, 0x5f,
2138 0x4e, 0x89, 0xe9, 0xa9, 0xc4, 0xd2, 0xd5, 0x31, 0xf1, 0xc6, 0xd2, 0x36, 0x33, 0x70, 0x94, 0x96,
2139 0x52, 0xca, 0x35, 0x46, 0x3c, 0x0e, 0x78, 0x32, 0xa7, 0xd5, 0x2d, 0xfd, 0x13, 0xe2, 0x8d, 0xf1,
2140 0x21, 0x5c, 0xe1, 0x56, 0x3c, 0xdf, 0x35, 0xac, 0x91, 0xaa, 0x8d, 0xa9, 0xf6, 0x48, 0x9d, 0xfa,
2141 0xc3, 0xfb, 0xd2, 0x2b, 0xf1, 0xfe, 0xb9, 0x87, 0x7d, 0xce, 0x69, 0x30, 0xca, 0x99, 0x3f, 0xbc,
2142 0x8f, 0xfb, 0x50, 0x66, 0x93, 0x31, 0x31, 0xbe, 0xa2, 0xea, 0xd0, 0x76, 0xf9, 0xc9, 0x52, 0x59,
2143 0xb2, 0xb2, 0x63, 0x11, 0xac, 0x75, 0x03, 0x85, 0x53, 0x5b, 0xa7, 0x87, 0xb9, 0x7e, 0x4f, 0x96,
2144 0x9b, 0x4a, 0x29, 0xb4, 0xf2, 0xc0, 0x76, 0x59, 0x42, 0x8d, 0xec, 0x28, 0xc0, 0x25, 0x91, 0x50,
2145 0x23, 0x3b, 0x0c, 0xef, 0x5d, 0xd8, 0xd2, 0x34, 0x31, 0x66, 0x43, 0x53, 0x83, 0x2b, 0x8a, 0x27,
2146 0xa1, 0x44, 0xb0, 0x34, 0xed, 0x58, 0x10, 0x82, 0x1c, 0xf7, 0xf0, 0x87, 0xf0, 0xf2, 0x2c, 0x58,
2147 0x71, 0xc5, 0xcd, 0x85, 0x51, 0xce, 0xab, 0xde, 0x85, 0x2d, 0xe7, 0x62, 0x51, 0x11, 0x27, 0x7a,
2148 0x74, 0x2e, 0xe6, 0xd5, 0x3e, 0x80, 0x6d, 0x67, 0xec, 0x2c, 0xea, 0xdd, 0x8e, 0xeb, 0x61, 0x67,
2149 0xec, 0xcc, 0x2b, 0xbe, 0xc5, 0xef, 0xab, 0x2e, 0xd5, 0x88, 0x4f, 0x75, 0xe9, 0x6a, 0x9c, 0x1e,
2150 0x13, 0xe0, 0x7d, 0x40, 0x9a, 0xa6, 0x52, 0x8b, 0x9c, 0x9b, 0x54, 0x25, 0x2e, 0xb5, 0x88, 0x27,
2151 0x5d, 0x8f, 0x93, 0x2b, 0x9a, 0x26, 0x73, 0x69, 0x9d, 0x0b, 0xf1, 0x6d, 0xd8, 0xb4, 0xcf, 0x1f,
2152 0x6a, 0x22, 0x25, 0x55, 0xc7, 0xa5, 0x43, 0xe3, 0xa9, 0xf4, 0x26, 0x8f, 0xef, 0x06, 0x13, 0xf0,
2153 0x84, 0xec, 0x71, 0x18, 0xdf, 0x02, 0xa4, 0x79, 0x63, 0xe2, 0x3a, 0xbc, 0x26, 0xf0, 0x1c, 0xa2,
2154 0x51, 0xe9, 0x2d, 0x41, 0x15, 0x78, 0x27, 0x84, 0xd9, 0x92, 0xf0, 0x9e, 0x18, 0x43, 0x3f, 0xb4,
2155 0x78, 0x53, 0x2c, 0x09, 0x8e, 0x05, 0xd6, 0xf6, 0x00, 0xb1, 0x50, 0x24, 0x3a, 0xde, 0xe3, 0xb4,
2156 0x8a, 0x33, 0x76, 0xe2, 0xfd, 0xbe, 0x01, 0xeb, 0x8c, 0x39, 0xeb, 0xf4, 0x96, 0xa8, 0x67, 0x9c,
2157 0x71, 0xac, 0xc7, 0x1f, 0xad, 0xb4, 0xac, 0x1e, 0x42, 0x39, 0x9e, 0x9f, 0xb8, 0x08, 0x22, 0x43,
2158 0x51, 0x8a, 0x9d, 0xf5, 0x8d, 0x6e, 0x93, 0x9d, 0xd2, 0x5f, 0xc8, 0x28, 0xcd, 0xaa, 0x85, 0x76,
2159 0x6b, 0x20, 0xab, 0xca, 0x59, 0x67, 0xd0, 0x3a, 0x95, 0x51, 0x26, 0x56, 0x96, 0x9e, 0x64, 0x0b,
2160 0x6f, 0xa3, 0x9b, 0xd5, 0xef, 0xd2, 0x50, 0x49, 0xde, 0x33, 0xf0, 0xcf, 0xe1, 0x6a, 0xf8, 0x28,
2161 0xe0, 0x51, 0x5f, 0x7d, 0x62, 0xb8, 0x7c, 0xe1, 0x4c, 0x88, 0xa8, 0xb3, 0xa3, 0xa9, 0xdb, 0x0e,
2162 0x58, 0x7d, 0xea, 0x7f, 0x6a, 0xb8, 0x6c, 0x59, 0x4c, 0x88, 0x8f, 0xdb, 0x70, 0xdd, 0xb2, 0x55,
2163 0xcf, 0x27, 0x96, 0x4e, 0x5c, 0x5d, 0x9d, 0x3d, 0xc7, 0xa8, 0x44, 0xd3, 0xa8, 0xe7, 0xd9, 0xe2,
2164 0xc0, 0x8a, 0xac, 0xbc, 0x6a, 0xd9, 0xfd, 0x80, 0x3c, 0xdb, 0xc9, 0xeb, 0x01, 0x75, 0x2e, 0xcd,
2165 0x32, 0xab, 0xd2, 0xec, 0x15, 0x28, 0x4e, 0x88, 0xa3, 0x52, 0xcb, 0x77, 0x2f, 0x78, 0x75, 0x59,
2166 0x50, 0x0a, 0x13, 0xe2, 0xc8, 0xac, 0xfd, 0x42, 0x8a, 0xfc, 0x93, 0x6c, 0xa1, 0x80, 0x8a, 0x27,
2167 0xd9, 0x42, 0x11, 0x41, 0xf5, 0x5f, 0x19, 0x28, 0xc7, 0xab, 0x4d, 0x56, 0xbc, 0x6b, 0xfc, 0x64,
2168 0x49, 0xf1, 0xbd, 0xe7, 0x8d, 0xef, 0xad, 0x4d, 0x6b, 0x0d, 0x76, 0xe4, 0x1c, 0xe6, 0x45, 0x0d,
2169 0xa8, 0x08, 0x4d, 0x76, 0xdc, 0xb3, 0xdd, 0x86, 0x8a, 0x7b, 0x4d, 0x41, 0x09, 0x5a, 0xf8, 0x18,
2170 0xf2, 0x0f, 0x3d, 0x6e, 0x3b, 0xcf, 0x6d, 0xbf, 0xf9, 0xfd, 0xb6, 0x4f, 0xfa, 0xdc, 0x78, 0xf1,
2171 0xa4, 0xaf, 0x76, 0xba, 0xca, 0x69, 0xbd, 0xad, 0x04, 0xea, 0xf8, 0x1a, 0x64, 0x4d, 0xf2, 0xd5,
2172 0x45, 0xf2, 0x70, 0xe2, 0xd0, 0x65, 0x27, 0xe1, 0x1a, 0x64, 0x9f, 0x50, 0xf2, 0x28, 0x79, 0x24,
2173 0x70, 0xe8, 0x47, 0x5c, 0x0c, 0xfb, 0x90, 0xe3, 0xf1, 0xc2, 0x00, 0x41, 0xc4, 0xd0, 0x4b, 0xb8,
2174 0x00, 0xd9, 0x46, 0x57, 0x61, 0x0b, 0x02, 0x41, 0x59, 0xa0, 0x6a, 0xaf, 0x25, 0x37, 0x64, 0x94,
2175 0xae, 0xde, 0x85, 0xbc, 0x08, 0x02, 0x5b, 0x2c, 0x51, 0x18, 0xd0, 0x4b, 0x41, 0x33, 0xb0, 0x91,
2176 0x0a, 0xa5, 0x67, 0xa7, 0x47, 0xb2, 0x82, 0xd2, 0xc9, 0xa9, 0xce, 0xa2, 0x5c, 0xd5, 0x83, 0x72,
2177 0xbc, 0xdc, 0x7c, 0x31, 0x57, 0xc9, 0xbf, 0xa7, 0xa0, 0x14, 0x2b, 0x1f, 0x59, 0xe1, 0x42, 0x4c,
2178 0xd3, 0x7e, 0xa2, 0x12, 0xd3, 0x20, 0x5e, 0x90, 0x1a, 0xc0, 0xa1, 0x3a, 0x43, 0x2e, 0x3b, 0x75,
2179 0x2f, 0x68, 0x89, 0xe4, 0x50, 0xbe, 0xfa, 0x97, 0x14, 0xa0, 0xf9, 0x02, 0x74, 0xce, 0xcd, 0xd4,
2180 0x4f, 0xe9, 0x66, 0xf5, 0xcf, 0x29, 0xa8, 0x24, 0xab, 0xce, 0x39, 0xf7, 0x6e, 0xfc, 0xa4, 0xee,
2181 0xfd, 0x33, 0x0d, 0xeb, 0x89, 0x5a, 0xf3, 0xb2, 0xde, 0x7d, 0x09, 0x9b, 0x86, 0x4e, 0x27, 0x8e,
2182 0xed, 0x53, 0x4b, 0xbb, 0x50, 0x4d, 0xfa, 0x98, 0x9a, 0x52, 0x95, 0x6f, 0x1a, 0xfb, 0xdf, 0x5f,
2183 0xcd, 0xd6, 0x5a, 0x33, 0xbd, 0x36, 0x53, 0x3b, 0xdc, 0x6a, 0x35, 0xe5, 0xd3, 0x5e, 0x77, 0x20,
2184 0x77, 0x1a, 0x9f, 0xab, 0x67, 0x9d, 0x5f, 0x75, 0xba, 0x9f, 0x76, 0x14, 0x64, 0xcc, 0xd1, 0x7e,
2185 0xc4, 0x65, 0xdf, 0x03, 0x34, 0xef, 0x14, 0xbe, 0x0a, 0xcb, 0xdc, 0x42, 0x2f, 0xe1, 0x2d, 0xd8,
2186 0xe8, 0x74, 0xd5, 0x7e, 0xab, 0x29, 0xab, 0xf2, 0x83, 0x07, 0x72, 0x63, 0xd0, 0x17, 0xd7, 0xfb,
2187 0x88, 0x3d, 0x48, 0x2c, 0xf0, 0xea, 0x9f, 0x32, 0xb0, 0xb5, 0xc4, 0x13, 0x5c, 0x0f, 0x6e, 0x16,
2188 0xe2, 0xb2, 0xf3, 0xee, 0x65, 0xbc, 0xaf, 0xb1, 0x82, 0xa0, 0x47, 0x5c, 0x3f, 0xb8, 0x88, 0xdc,
2189 0x02, 0x16, 0x25, 0xcb, 0x37, 0x86, 0x06, 0x75, 0x83, 0xd7, 0x10, 0x71, 0xdd, 0xd8, 0x98, 0xe1,
2190 0xe2, 0x41, 0xe4, 0x67, 0x80, 0x1d, 0xdb, 0x33, 0x7c, 0xe3, 0x31, 0x55, 0x0d, 0x2b, 0x7c, 0x3a,
2191 0x61, 0xd7, 0x8f, 0xac, 0x82, 0x42, 0x49, 0xcb, 0xf2, 0x23, 0xb6, 0x45, 0x47, 0x64, 0x8e, 0xcd,
2192 0x36, 0xf3, 0x8c, 0x82, 0x42, 0x49, 0xc4, 0xbe, 0x01, 0x65, 0xdd, 0x9e, 0xb2, 0x9a, 0x4c, 0xf0,
2193 0xd8, 0xd9, 0x91, 0x52, 0x4a, 0x02, 0x8b, 0x28, 0x41, 0xb5, 0x3d, 0x7b, 0xb3, 0x29, 0x2b, 0x25,
2194 0x81, 0x09, 0xca, 0x4d, 0xd8, 0x20, 0xa3, 0x91, 0xcb, 0x8c, 0x87, 0x86, 0xc4, 0xfd, 0xa1, 0x12,
2195 0xc1, 0x9c, 0xb8, 0x73, 0x02, 0x85, 0x30, 0x0e, 0xec, 0xa8, 0x66, 0x91, 0x50, 0x1d, 0xf1, 0x6e,
2196 0x97, 0xde, 0x2b, 0x2a, 0x05, 0x2b, 0x14, 0xde, 0x80, 0xb2, 0xe1, 0xa9, 0xb3, 0x27, 0xe8, 0xf4,
2197 0x6e, 0x7a, 0xaf, 0xa0, 0x94, 0x0c, 0x2f, 0x7a, 0xbe, 0xab, 0x7e, 0x93, 0x86, 0x4a, 0xf2, 0x09,
2198 0x1d, 0x37, 0xa1, 0x60, 0xda, 0x1a, 0xe1, 0xa9, 0x25, 0xbe, 0xdf, 0xec, 0x3d, 0xe7, 0xd5, 0xbd,
2199 0xd6, 0x0e, 0xf8, 0x4a, 0xa4, 0xb9, 0xf3, 0x8f, 0x14, 0x14, 0x42, 0x18, 0x5f, 0x81, 0xac, 0x43,
2200 0xfc, 0x31, 0x37, 0x97, 0x3b, 0x4a, 0xa3, 0x94, 0xc2, 0xdb, 0x0c, 0xf7, 0x1c, 0x62, 0xf1, 0x14,
2201 0x08, 0x70, 0xd6, 0x66, 0xf3, 0x6a, 0x52, 0xa2, 0xf3, 0xcb, 0x89, 0x3d, 0x99, 0x50, 0xcb, 0xf7,
2202 0xc2, 0x79, 0x0d, 0xf0, 0x46, 0x00, 0xe3, 0x77, 0x60, 0xd3, 0x77, 0x89, 0x61, 0x26, 0xb8, 0x59,
2203 0xce, 0x45, 0xa1, 0x20, 0x22, 0x1f, 0xc2, 0xb5, 0xd0, 0xae, 0x4e, 0x7d, 0xa2, 0x8d, 0xa9, 0x3e,
2204 0x53, 0xca, 0xf3, 0xf7, 0xd9, 0xab, 0x01, 0xa1, 0x19, 0xc8, 0x43, 0xdd, 0xea, 0x77, 0x29, 0xd8,
2205 0x0c, 0xaf, 0x53, 0x7a, 0x14, 0xac, 0x53, 0x00, 0x62, 0x59, 0xb6, 0x1f, 0x0f, 0xd7, 0x62, 0x2a,
2206 0x2f, 0xe8, 0xd5, 0xea, 0x91, 0x92, 0x12, 0x33, 0xb0, 0x33, 0x01, 0x98, 0x49, 0x56, 0x86, 0xed,
2207 0x3a, 0x94, 0x82, 0xef, 0x23, 0xfc, 0x23, 0x9b, 0xb8, 0x80, 0x83, 0x80, 0xd8, 0xbd, 0x0b, 0x6f,
2208 0x43, 0xee, 0x9c, 0x8e, 0x0c, 0x2b, 0x78, 0xf5, 0x14, 0x8d, 0xf0, 0x25, 0x37, 0x1b, 0xbd, 0xe4,
2209 0x1e, 0xfd, 0x21, 0x05, 0x5b, 0x9a, 0x3d, 0x99, 0xf7, 0xf7, 0x08, 0xcd, 0xbd, 0x02, 0x78, 0x9f,
2210 0xa4, 0xbe, 0xf8, 0x78, 0x64, 0xf8, 0xe3, 0xe9, 0x79, 0x4d, 0xb3, 0x27, 0xfb, 0x23, 0xdb, 0x24,
2211 0xd6, 0x68, 0xf6, 0x95, 0x90, 0xff, 0xd1, 0xde, 0x1d, 0x51, 0xeb, 0xdd, 0x91, 0x1d, 0xfb, 0x66,
2212 0xf8, 0xd1, 0xec, 0xef, 0xd7, 0xe9, 0xcc, 0x71, 0xef, 0xe8, 0xaf, 0xe9, 0x9d, 0x63, 0xd1, 0x57,
2213 0x2f, 0x8c, 0x8d, 0x42, 0x87, 0x26, 0xd5, 0xd8, 0x78, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x0c,
2214 0xab, 0xb6, 0x37, 0x7e, 0x1c, 0x00, 0x00,