فهرست منبع

Regenerate protos.

David Symonds 10 سال پیش
والد
کامیت
221834dcb8

+ 34 - 6
jsonpb/jsonpb_test_proto/more_test_objects.pb.go

@@ -35,9 +35,10 @@ type Simple3 struct {
 	Dub float64 `protobuf:"fixed64,1,opt,name=dub" json:"dub,omitempty"`
 }
 
-func (m *Simple3) Reset()         { *m = Simple3{} }
-func (m *Simple3) String() string { return proto.CompactTextString(m) }
-func (*Simple3) ProtoMessage()    {}
+func (m *Simple3) Reset()                    { *m = Simple3{} }
+func (m *Simple3) String() string            { return proto.CompactTextString(m) }
+func (*Simple3) ProtoMessage()               {}
+func (*Simple3) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 
 type Mappy struct {
 	Nummy map[int64]int32    `protobuf:"bytes,1,rep,name=nummy" json:"nummy,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
@@ -47,9 +48,10 @@ type Mappy struct {
 	Booly map[bool]bool      `protobuf:"bytes,5,rep,name=booly" json:"booly,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
 }
 
-func (m *Mappy) Reset()         { *m = Mappy{} }
-func (m *Mappy) String() string { return proto.CompactTextString(m) }
-func (*Mappy) ProtoMessage()    {}
+func (m *Mappy) Reset()                    { *m = Mappy{} }
+func (m *Mappy) String() string            { return proto.CompactTextString(m) }
+func (*Mappy) ProtoMessage()               {}
+func (*Mappy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
 
 func (m *Mappy) GetNummy() map[int64]int32 {
 	if m != nil {
@@ -85,3 +87,29 @@ func (m *Mappy) GetBooly() map[bool]bool {
 	}
 	return nil
 }
+
+func init() {
+	proto.RegisterType((*Simple3)(nil), "jsonpb.Simple3")
+	proto.RegisterType((*Mappy)(nil), "jsonpb.Mappy")
+}
+
+var fileDescriptor0 = []byte{
+	// 261 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0xd1, 0xc1, 0x4a, 0xc3, 0x30,
+	0x1c, 0x06, 0x70, 0xb2, 0x98, 0xb9, 0xfe, 0x8b, 0x08, 0x39, 0x68, 0xf0, 0x20, 0xb2, 0x8b, 0x3d,
+	0x48, 0x0f, 0xdb, 0x45, 0x04, 0x2f, 0x82, 0x47, 0xf5, 0xb0, 0x07, 0x18, 0x8b, 0x86, 0x61, 0x6d,
+	0x9b, 0x90, 0xa6, 0x42, 0x9e, 0xd1, 0x97, 0xb2, 0x89, 0xae, 0xfe, 0x0b, 0xf1, 0xfc, 0xfd, 0x42,
+	0xbe, 0x2f, 0x81, 0xf3, 0x46, 0x5b, 0xb5, 0x75, 0xaa, 0x73, 0x5b, 0x2d, 0x2b, 0xf5, 0xea, 0xba,
+	0xd2, 0x58, 0xed, 0x34, 0x9f, 0x57, 0x9d, 0x6e, 0x8d, 0x5c, 0x9e, 0xc1, 0xf1, 0xe6, 0xbd, 0x31,
+	0xb5, 0x5a, 0xf3, 0x1c, 0xe8, 0x5b, 0x2f, 0x05, 0xb9, 0x22, 0x05, 0x59, 0x7e, 0x51, 0x60, 0x4f,
+	0x3b, 0x63, 0x3c, 0xbf, 0x06, 0xd6, 0xf6, 0x4d, 0xe3, 0x87, 0x80, 0x16, 0xf9, 0x4a, 0x94, 0x3f,
+	0x27, 0xcb, 0x98, 0x96, 0xcf, 0x21, 0x7a, 0x6c, 0x9d, 0x8d, 0xb0, 0x73, 0xd6, 0x7a, 0x31, 0x4b,
+	0xc1, 0x4d, 0x88, 0x46, 0x38, 0x94, 0xa9, 0xbc, 0xa0, 0x29, 0xf8, 0x12, 0xa2, 0x11, 0xca, 0x7e,
+	0xbf, 0xf7, 0xe2, 0x28, 0x05, 0x1f, 0x42, 0xf4, 0x07, 0xb5, 0xae, 0xbd, 0x60, 0x49, 0x18, 0xa2,
+	0x08, 0x2f, 0x6e, 0x00, 0x50, 0xe3, 0x61, 0xf1, 0x87, 0xf2, 0x71, 0x31, 0xe5, 0x27, 0xc0, 0x3e,
+	0x77, 0x75, 0xaf, 0x86, 0xfa, 0xa4, 0x60, 0x77, 0xb3, 0x5b, 0x12, 0x34, 0xaa, 0x8d, 0x74, 0x36,
+	0xd5, 0x59, 0xd4, 0xf7, 0x00, 0xa8, 0x3b, 0xd2, 0x8c, 0x5f, 0x62, 0x9d, 0xaf, 0x4e, 0x0f, 0xfd,
+	0x7e, 0x9f, 0xfe, 0x70, 0x19, 0x5a, 0xf4, 0x7f, 0xb5, 0x6c, 0xd4, 0xe3, 0x2c, 0xac, 0x17, 0x53,
+	0xbd, 0x08, 0x5a, 0xce, 0xe3, 0xa7, 0xaf, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x3b, 0xe8,
+	0xea, 0x0f, 0x02, 0x00, 0x00,
+}

+ 78 - 21
jsonpb/jsonpb_test_proto/test_objects.pb.go

@@ -48,6 +48,7 @@ func (x *Widget_Color) UnmarshalJSON(data []byte) error {
 	*x = Widget_Color(value)
 	return nil
 }
+func (Widget_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 0} }
 
 // Test message for holding primitive types.
 type Simple struct {
@@ -65,9 +66,10 @@ type Simple struct {
 	XXX_unrecognized []byte   `json:"-"`
 }
 
-func (m *Simple) Reset()         { *m = Simple{} }
-func (m *Simple) String() string { return proto.CompactTextString(m) }
-func (*Simple) ProtoMessage()    {}
+func (m *Simple) Reset()                    { *m = Simple{} }
+func (m *Simple) String() string            { return proto.CompactTextString(m) }
+func (*Simple) ProtoMessage()               {}
+func (*Simple) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
 
 func (m *Simple) GetOBool() bool {
 	if m != nil && m.OBool != nil {
@@ -162,9 +164,10 @@ type Repeats struct {
 	XXX_unrecognized []byte    `json:"-"`
 }
 
-func (m *Repeats) Reset()         { *m = Repeats{} }
-func (m *Repeats) String() string { return proto.CompactTextString(m) }
-func (*Repeats) ProtoMessage()    {}
+func (m *Repeats) Reset()                    { *m = Repeats{} }
+func (m *Repeats) String() string            { return proto.CompactTextString(m) }
+func (*Repeats) ProtoMessage()               {}
+func (*Repeats) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
 
 func (m *Repeats) GetRBool() []bool {
 	if m != nil {
@@ -254,9 +257,10 @@ type Widget struct {
 	XXX_unrecognized []byte         `json:"-"`
 }
 
-func (m *Widget) Reset()         { *m = Widget{} }
-func (m *Widget) String() string { return proto.CompactTextString(m) }
-func (*Widget) ProtoMessage()    {}
+func (m *Widget) Reset()                    { *m = Widget{} }
+func (m *Widget) String() string            { return proto.CompactTextString(m) }
+func (*Widget) ProtoMessage()               {}
+func (*Widget) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
 
 func (m *Widget) GetColor() Widget_Color {
 	if m != nil && m.Color != nil {
@@ -306,9 +310,10 @@ type Maps struct {
 	XXX_unrecognized []byte           `json:"-"`
 }
 
-func (m *Maps) Reset()         { *m = Maps{} }
-func (m *Maps) String() string { return proto.CompactTextString(m) }
-func (*Maps) ProtoMessage()    {}
+func (m *Maps) Reset()                    { *m = Maps{} }
+func (m *Maps) String() string            { return proto.CompactTextString(m) }
+func (*Maps) ProtoMessage()               {}
+func (*Maps) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
 
 func (m *Maps) GetMInt64Str() map[int64]string {
 	if m != nil {
@@ -332,9 +337,10 @@ type MsgWithOneof struct {
 	XXX_unrecognized []byte               `json:"-"`
 }
 
-func (m *MsgWithOneof) Reset()         { *m = MsgWithOneof{} }
-func (m *MsgWithOneof) String() string { return proto.CompactTextString(m) }
-func (*MsgWithOneof) ProtoMessage()    {}
+func (m *MsgWithOneof) Reset()                    { *m = MsgWithOneof{} }
+func (m *MsgWithOneof) String() string            { return proto.CompactTextString(m) }
+func (*MsgWithOneof) ProtoMessage()               {}
+func (*MsgWithOneof) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
 
 type isMsgWithOneof_Union interface {
 	isMsgWithOneof_Union()
@@ -424,9 +430,10 @@ type Real struct {
 	XXX_unrecognized []byte                    `json:"-"`
 }
 
-func (m *Real) Reset()         { *m = Real{} }
-func (m *Real) String() string { return proto.CompactTextString(m) }
-func (*Real) ProtoMessage()    {}
+func (m *Real) Reset()                    { *m = Real{} }
+func (m *Real) String() string            { return proto.CompactTextString(m) }
+func (*Real) ProtoMessage()               {}
+func (*Real) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
 
 var extRange_Real = []proto.ExtensionRange{
 	{100, 536870911},
@@ -455,9 +462,10 @@ type Complex struct {
 	XXX_unrecognized []byte                    `json:"-"`
 }
 
-func (m *Complex) Reset()         { *m = Complex{} }
-func (m *Complex) String() string { return proto.CompactTextString(m) }
-func (*Complex) ProtoMessage()    {}
+func (m *Complex) Reset()                    { *m = Complex{} }
+func (m *Complex) String() string            { return proto.CompactTextString(m) }
+func (*Complex) ProtoMessage()               {}
+func (*Complex) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
 
 var extRange_Complex = []proto.ExtensionRange{
 	{100, 536870911},
@@ -497,7 +505,56 @@ var E_Name = &proto.ExtensionDesc{
 }
 
 func init() {
+	proto.RegisterType((*Simple)(nil), "jsonpb.Simple")
+	proto.RegisterType((*Repeats)(nil), "jsonpb.Repeats")
+	proto.RegisterType((*Widget)(nil), "jsonpb.Widget")
+	proto.RegisterType((*Maps)(nil), "jsonpb.Maps")
+	proto.RegisterType((*MsgWithOneof)(nil), "jsonpb.MsgWithOneof")
+	proto.RegisterType((*Real)(nil), "jsonpb.Real")
+	proto.RegisterType((*Complex)(nil), "jsonpb.Complex")
 	proto.RegisterEnum("jsonpb.Widget_Color", Widget_Color_name, Widget_Color_value)
 	proto.RegisterExtension(E_Complex_RealExtension)
 	proto.RegisterExtension(E_Name)
 }
+
+var fileDescriptor1 = []byte{
+	// 598 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x93, 0x5f, 0x6b, 0x13, 0x4d,
+	0x14, 0xc6, 0xbb, 0x3b, 0xfb, 0xf7, 0xa4, 0x4d, 0xb7, 0x43, 0x5f, 0x58, 0xfa, 0x52, 0x2d, 0x2b,
+	0x05, 0xf1, 0x22, 0x94, 0x58, 0x45, 0x72, 0x99, 0x1a, 0xac, 0x60, 0x14, 0x52, 0xa4, 0x57, 0xb2,
+	0x6c, 0x9a, 0x69, 0xdc, 0xba, 0xd9, 0x09, 0xb3, 0x13, 0x69, 0xd0, 0x0b, 0xc1, 0x2f, 0xa7, 0xdf,
+	0xc3, 0x0f, 0xe2, 0xcc, 0x9c, 0x6c, 0xb6, 0x8d, 0x9a, 0xcb, 0x67, 0x9e, 0xf3, 0xe4, 0xfc, 0xce,
+	0x39, 0x0b, 0x54, 0xb2, 0x4a, 0xa6, 0x7c, 0x7c, 0xc3, 0xae, 0x64, 0xd5, 0x99, 0x0b, 0x2e, 0x39,
+	0xf5, 0x6e, 0x2a, 0x5e, 0xce, 0xc7, 0xc9, 0x0f, 0x0b, 0xbc, 0x8b, 0x7c, 0x36, 0x2f, 0x18, 0x6d,
+	0x83, 0xc7, 0xd3, 0x31, 0xe7, 0x45, 0x6c, 0x1d, 0x59, 0x8f, 0x03, 0xba, 0x0b, 0x3e, 0x4f, 0xf3,
+	0x52, 0x3e, 0xed, 0xc6, 0xb6, 0x12, 0xdc, 0xb5, 0xf0, 0xfc, 0x34, 0x26, 0x4a, 0x20, 0x34, 0x82,
+	0x80, 0xa7, 0x0b, 0xb4, 0x38, 0x4a, 0xd9, 0x69, 0x14, 0xe5, 0x71, 0x95, 0xe2, 0xa0, 0x52, 0xa1,
+	0xc7, 0x53, 0xca, 0x5e, 0xa3, 0x28, 0x8f, 0xaf, 0x14, 0x8a, 0xc1, 0xd7, 0x05, 0xcf, 0x64, 0x1c,
+	0x28, 0xc1, 0x46, 0xcb, 0x84, 0x2f, 0xc6, 0x05, 0x8b, 0x43, 0xa5, 0x58, 0xab, 0x22, 0x29, 0xf2,
+	0x72, 0x1a, 0x83, 0x52, 0x42, 0x2c, 0x1a, 0x2f, 0x15, 0x5b, 0xdc, 0x52, 0xc2, 0x76, 0xf2, 0xd3,
+	0x02, 0x7f, 0xc4, 0xe6, 0x2c, 0x93, 0x95, 0x66, 0x11, 0x35, 0x0b, 0x41, 0x16, 0xb1, 0x66, 0x21,
+	0xc8, 0x22, 0xd6, 0x2c, 0x04, 0x59, 0x44, 0xc3, 0x42, 0x90, 0x45, 0x34, 0x2c, 0x04, 0x59, 0x44,
+	0xc3, 0x42, 0x90, 0x45, 0x34, 0x2c, 0x04, 0x59, 0xc4, 0x9a, 0x85, 0x20, 0x8b, 0x68, 0x58, 0x08,
+	0xb2, 0x88, 0x86, 0x85, 0x20, 0x8b, 0x58, 0xb3, 0x10, 0xc5, 0xf2, 0xdd, 0x06, 0xef, 0x32, 0x9f,
+	0x4c, 0x99, 0xa4, 0x8f, 0xc0, 0xbd, 0xe2, 0x05, 0x17, 0x66, 0x2b, 0xed, 0xee, 0x7e, 0x07, 0x37,
+	0xd7, 0xc1, 0xe7, 0xce, 0x99, 0x7e, 0xa3, 0xc7, 0x3a, 0x00, 0x6d, 0x9a, 0xef, 0x5f, 0xb6, 0x07,
+	0xe0, 0x55, 0x66, 0xd9, 0x66, 0x86, 0xad, 0x6e, 0xbb, 0x76, 0xad, 0x4e, 0xe0, 0x08, 0x71, 0x8c,
+	0x43, 0x37, 0xf2, 0x37, 0x87, 0x2f, 0x70, 0xc6, 0xf1, 0xbe, 0x89, 0xd8, 0xad, 0x0d, 0xf5, 0xe8,
+	0x13, 0x08, 0x45, 0x5a, 0x7b, 0xfe, 0x33, 0x21, 0x9b, 0x9e, 0xe4, 0x18, 0x5c, 0x6c, 0xc8, 0x07,
+	0x32, 0x1a, 0xbc, 0x8c, 0xb6, 0x68, 0x08, 0xee, 0xab, 0xd1, 0x60, 0xf0, 0x36, 0xb2, 0x68, 0x00,
+	0x4e, 0xff, 0xcd, 0xfb, 0x41, 0x64, 0x27, 0xbf, 0x2c, 0x70, 0x86, 0xd9, 0xbc, 0xa2, 0x27, 0xd0,
+	0x9a, 0xe1, 0xb6, 0xf4, 0xdc, 0xcc, 0x4e, 0x5b, 0xdd, 0xff, 0xeb, 0x54, 0x6d, 0xe9, 0x0c, 0x5f,
+	0xeb, 0xe7, 0x0b, 0x29, 0x06, 0xa5, 0x14, 0x4b, 0x7a, 0x0a, 0x3b, 0x33, 0x73, 0x00, 0x35, 0x8e,
+	0x6d, 0x6a, 0x0e, 0xef, 0xd7, 0xf4, 0x95, 0x01, 0xc1, 0x4c, 0xd5, 0xc1, 0x09, 0xb4, 0x37, 0x72,
+	0x5a, 0x40, 0x3e, 0xb1, 0xa5, 0x99, 0x3d, 0xa1, 0x3b, 0xe0, 0x7e, 0xce, 0x8a, 0x05, 0x33, 0xdf,
+	0x43, 0xd8, 0xb3, 0x5f, 0x58, 0x07, 0x7d, 0x88, 0x36, 0x53, 0xee, 0xd6, 0x04, 0xf4, 0xf0, 0x6e,
+	0xcd, 0x1f, 0xf3, 0xd4, 0x19, 0x49, 0x0f, 0xb6, 0x87, 0xd5, 0xf4, 0x32, 0x97, 0x1f, 0xdf, 0x95,
+	0x8c, 0x5f, 0xab, 0x6b, 0x70, 0x65, 0x2e, 0x55, 0xcf, 0x3a, 0x21, 0x3c, 0xdf, 0x52, 0x07, 0xe3,
+	0x55, 0x59, 0x91, 0x89, 0xa5, 0x09, 0x21, 0xe7, 0x5b, 0x7d, 0x1f, 0xdc, 0x45, 0x99, 0xf3, 0x32,
+	0x79, 0x08, 0xce, 0x88, 0x65, 0x45, 0xd3, 0x9a, 0xae, 0xb1, 0x9e, 0x04, 0xc1, 0x24, 0xfa, 0xa6,
+	0x7e, 0x76, 0xf2, 0x01, 0xfc, 0x33, 0xae, 0xff, 0xea, 0x96, 0xee, 0x41, 0x98, 0xcf, 0xb2, 0x69,
+	0x5e, 0xea, 0xa4, 0x0d, 0x5f, 0xf7, 0x19, 0xb4, 0x85, 0x0a, 0x4a, 0xd9, 0xad, 0x64, 0x65, 0xa5,
+	0xa2, 0xe9, 0x76, 0xb3, 0xb5, 0xac, 0x88, 0xbf, 0xdc, 0xdf, 0xf6, 0x2a, 0xb3, 0x77, 0x00, 0x4e,
+	0x99, 0xcd, 0xd8, 0x86, 0xf9, 0xab, 0x6e, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfb, 0xc2,
+	0xb2, 0xf6, 0x78, 0x04, 0x00, 0x00,
+}

+ 369 - 90
proto/testdata/test.pb.go

@@ -78,6 +78,7 @@ func (x *FOO) UnmarshalJSON(data []byte) error {
 	*x = FOO(value)
 	return nil
 }
+func (FOO) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 
 // An enum, for completeness.
 type GoTest_KIND int32
@@ -149,6 +150,7 @@ func (x *GoTest_KIND) UnmarshalJSON(data []byte) error {
 	*x = GoTest_KIND(value)
 	return nil
 }
+func (GoTest_KIND) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
 
 type MyMessage_Color int32
 
@@ -185,6 +187,7 @@ func (x *MyMessage_Color) UnmarshalJSON(data []byte) error {
 	*x = MyMessage_Color(value)
 	return nil
 }
+func (MyMessage_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11, 0} }
 
 type DefaultsMessage_DefaultsEnum int32
 
@@ -221,6 +224,9 @@ func (x *DefaultsMessage_DefaultsEnum) UnmarshalJSON(data []byte) error {
 	*x = DefaultsMessage_DefaultsEnum(value)
 	return nil
 }
+func (DefaultsMessage_DefaultsEnum) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor0, []int{14, 0}
+}
 
 type Defaults_Color int32
 
@@ -257,6 +263,7 @@ func (x *Defaults_Color) UnmarshalJSON(data []byte) error {
 	*x = Defaults_Color(value)
 	return nil
 }
+func (Defaults_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} }
 
 type RepeatedEnum_Color int32
 
@@ -287,15 +294,17 @@ func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error {
 	*x = RepeatedEnum_Color(value)
 	return nil
 }
+func (RepeatedEnum_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{21, 0} }
 
 type GoEnum struct {
 	Foo              *FOO   `protobuf:"varint,1,req,name=foo,enum=testdata.FOO" json:"foo,omitempty"`
 	XXX_unrecognized []byte `json:"-"`
 }
 
-func (m *GoEnum) Reset()         { *m = GoEnum{} }
-func (m *GoEnum) String() string { return proto.CompactTextString(m) }
-func (*GoEnum) ProtoMessage()    {}
+func (m *GoEnum) Reset()                    { *m = GoEnum{} }
+func (m *GoEnum) String() string            { return proto.CompactTextString(m) }
+func (*GoEnum) ProtoMessage()               {}
+func (*GoEnum) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 
 func (m *GoEnum) GetFoo() FOO {
 	if m != nil && m.Foo != nil {
@@ -310,9 +319,10 @@ type GoTestField struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *GoTestField) Reset()         { *m = GoTestField{} }
-func (m *GoTestField) String() string { return proto.CompactTextString(m) }
-func (*GoTestField) ProtoMessage()    {}
+func (m *GoTestField) Reset()                    { *m = GoTestField{} }
+func (m *GoTestField) String() string            { return proto.CompactTextString(m) }
+func (*GoTestField) ProtoMessage()               {}
+func (*GoTestField) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
 
 func (m *GoTestField) GetLabel() string {
 	if m != nil && m.Label != nil {
@@ -411,9 +421,10 @@ type GoTest struct {
 	XXX_unrecognized        []byte                  `json:"-"`
 }
 
-func (m *GoTest) Reset()         { *m = GoTest{} }
-func (m *GoTest) String() string { return proto.CompactTextString(m) }
-func (*GoTest) ProtoMessage()    {}
+func (m *GoTest) Reset()                    { *m = GoTest{} }
+func (m *GoTest) String() string            { return proto.CompactTextString(m) }
+func (*GoTest) ProtoMessage()               {}
+func (*GoTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
 
 const Default_GoTest_F_BoolDefaulted bool = true
 const Default_GoTest_F_Int32Defaulted int32 = 32
@@ -996,9 +1007,10 @@ type GoSkipTest struct {
 	XXX_unrecognized []byte                `json:"-"`
 }
 
-func (m *GoSkipTest) Reset()         { *m = GoSkipTest{} }
-func (m *GoSkipTest) String() string { return proto.CompactTextString(m) }
-func (*GoSkipTest) ProtoMessage()    {}
+func (m *GoSkipTest) Reset()                    { *m = GoSkipTest{} }
+func (m *GoSkipTest) String() string            { return proto.CompactTextString(m) }
+func (*GoSkipTest) ProtoMessage()               {}
+func (*GoSkipTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
 
 func (m *GoSkipTest) GetSkipInt32() int32 {
 	if m != nil && m.SkipInt32 != nil {
@@ -1066,9 +1078,10 @@ type NonPackedTest struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *NonPackedTest) Reset()         { *m = NonPackedTest{} }
-func (m *NonPackedTest) String() string { return proto.CompactTextString(m) }
-func (*NonPackedTest) ProtoMessage()    {}
+func (m *NonPackedTest) Reset()                    { *m = NonPackedTest{} }
+func (m *NonPackedTest) String() string            { return proto.CompactTextString(m) }
+func (*NonPackedTest) ProtoMessage()               {}
+func (*NonPackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
 
 func (m *NonPackedTest) GetA() []int32 {
 	if m != nil {
@@ -1082,9 +1095,10 @@ type PackedTest struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *PackedTest) Reset()         { *m = PackedTest{} }
-func (m *PackedTest) String() string { return proto.CompactTextString(m) }
-func (*PackedTest) ProtoMessage()    {}
+func (m *PackedTest) Reset()                    { *m = PackedTest{} }
+func (m *PackedTest) String() string            { return proto.CompactTextString(m) }
+func (*PackedTest) ProtoMessage()               {}
+func (*PackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
 
 func (m *PackedTest) GetB() []int32 {
 	if m != nil {
@@ -1099,9 +1113,10 @@ type MaxTag struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *MaxTag) Reset()         { *m = MaxTag{} }
-func (m *MaxTag) String() string { return proto.CompactTextString(m) }
-func (*MaxTag) ProtoMessage()    {}
+func (m *MaxTag) Reset()                    { *m = MaxTag{} }
+func (m *MaxTag) String() string            { return proto.CompactTextString(m) }
+func (*MaxTag) ProtoMessage()               {}
+func (*MaxTag) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
 
 func (m *MaxTag) GetLastField() string {
 	if m != nil && m.LastField != nil {
@@ -1116,9 +1131,10 @@ type OldMessage struct {
 	XXX_unrecognized []byte             `json:"-"`
 }
 
-func (m *OldMessage) Reset()         { *m = OldMessage{} }
-func (m *OldMessage) String() string { return proto.CompactTextString(m) }
-func (*OldMessage) ProtoMessage()    {}
+func (m *OldMessage) Reset()                    { *m = OldMessage{} }
+func (m *OldMessage) String() string            { return proto.CompactTextString(m) }
+func (*OldMessage) ProtoMessage()               {}
+func (*OldMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
 
 func (m *OldMessage) GetNested() *OldMessage_Nested {
 	if m != nil {
@@ -1139,9 +1155,10 @@ type OldMessage_Nested struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *OldMessage_Nested) Reset()         { *m = OldMessage_Nested{} }
-func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) }
-func (*OldMessage_Nested) ProtoMessage()    {}
+func (m *OldMessage_Nested) Reset()                    { *m = OldMessage_Nested{} }
+func (m *OldMessage_Nested) String() string            { return proto.CompactTextString(m) }
+func (*OldMessage_Nested) ProtoMessage()               {}
+func (*OldMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 0} }
 
 func (m *OldMessage_Nested) GetName() string {
 	if m != nil && m.Name != nil {
@@ -1159,9 +1176,10 @@ type NewMessage struct {
 	XXX_unrecognized []byte `json:"-"`
 }
 
-func (m *NewMessage) Reset()         { *m = NewMessage{} }
-func (m *NewMessage) String() string { return proto.CompactTextString(m) }
-func (*NewMessage) ProtoMessage()    {}
+func (m *NewMessage) Reset()                    { *m = NewMessage{} }
+func (m *NewMessage) String() string            { return proto.CompactTextString(m) }
+func (*NewMessage) ProtoMessage()               {}
+func (*NewMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
 
 func (m *NewMessage) GetNested() *NewMessage_Nested {
 	if m != nil {
@@ -1183,9 +1201,10 @@ type NewMessage_Nested struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *NewMessage_Nested) Reset()         { *m = NewMessage_Nested{} }
-func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) }
-func (*NewMessage_Nested) ProtoMessage()    {}
+func (m *NewMessage_Nested) Reset()                    { *m = NewMessage_Nested{} }
+func (m *NewMessage_Nested) String() string            { return proto.CompactTextString(m) }
+func (*NewMessage_Nested) ProtoMessage()               {}
+func (*NewMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} }
 
 func (m *NewMessage_Nested) GetName() string {
 	if m != nil && m.Name != nil {
@@ -1208,9 +1227,10 @@ type InnerMessage struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *InnerMessage) Reset()         { *m = InnerMessage{} }
-func (m *InnerMessage) String() string { return proto.CompactTextString(m) }
-func (*InnerMessage) ProtoMessage()    {}
+func (m *InnerMessage) Reset()                    { *m = InnerMessage{} }
+func (m *InnerMessage) String() string            { return proto.CompactTextString(m) }
+func (*InnerMessage) ProtoMessage()               {}
+func (*InnerMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
 
 const Default_InnerMessage_Port int32 = 4000
 
@@ -1244,9 +1264,10 @@ type OtherMessage struct {
 	XXX_unrecognized []byte                    `json:"-"`
 }
 
-func (m *OtherMessage) Reset()         { *m = OtherMessage{} }
-func (m *OtherMessage) String() string { return proto.CompactTextString(m) }
-func (*OtherMessage) ProtoMessage()    {}
+func (m *OtherMessage) Reset()                    { *m = OtherMessage{} }
+func (m *OtherMessage) String() string            { return proto.CompactTextString(m) }
+func (*OtherMessage) ProtoMessage()               {}
+func (*OtherMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
 
 var extRange_OtherMessage = []proto.ExtensionRange{
 	{100, 536870911},
@@ -1307,9 +1328,10 @@ type MyMessage struct {
 	XXX_unrecognized []byte                    `json:"-"`
 }
 
-func (m *MyMessage) Reset()         { *m = MyMessage{} }
-func (m *MyMessage) String() string { return proto.CompactTextString(m) }
-func (*MyMessage) ProtoMessage()    {}
+func (m *MyMessage) Reset()                    { *m = MyMessage{} }
+func (m *MyMessage) String() string            { return proto.CompactTextString(m) }
+func (*MyMessage) ProtoMessage()               {}
+func (*MyMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
 
 var extRange_MyMessage = []proto.ExtensionRange{
 	{100, 536870911},
@@ -1423,9 +1445,10 @@ type Ext struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *Ext) Reset()         { *m = Ext{} }
-func (m *Ext) String() string { return proto.CompactTextString(m) }
-func (*Ext) ProtoMessage()    {}
+func (m *Ext) Reset()                    { *m = Ext{} }
+func (m *Ext) String() string            { return proto.CompactTextString(m) }
+func (*Ext) ProtoMessage()               {}
+func (*Ext) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
 
 func (m *Ext) GetData() string {
 	if m != nil && m.Data != nil {
@@ -1465,9 +1488,10 @@ type ComplexExtension struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *ComplexExtension) Reset()         { *m = ComplexExtension{} }
-func (m *ComplexExtension) String() string { return proto.CompactTextString(m) }
-func (*ComplexExtension) ProtoMessage()    {}
+func (m *ComplexExtension) Reset()                    { *m = ComplexExtension{} }
+func (m *ComplexExtension) String() string            { return proto.CompactTextString(m) }
+func (*ComplexExtension) ProtoMessage()               {}
+func (*ComplexExtension) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
 
 func (m *ComplexExtension) GetFirst() int32 {
 	if m != nil && m.First != nil {
@@ -1495,9 +1519,10 @@ type DefaultsMessage struct {
 	XXX_unrecognized []byte                    `json:"-"`
 }
 
-func (m *DefaultsMessage) Reset()         { *m = DefaultsMessage{} }
-func (m *DefaultsMessage) String() string { return proto.CompactTextString(m) }
-func (*DefaultsMessage) ProtoMessage()    {}
+func (m *DefaultsMessage) Reset()                    { *m = DefaultsMessage{} }
+func (m *DefaultsMessage) String() string            { return proto.CompactTextString(m) }
+func (*DefaultsMessage) ProtoMessage()               {}
+func (*DefaultsMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
 
 var extRange_DefaultsMessage = []proto.ExtensionRange{
 	{100, 536870911},
@@ -1518,9 +1543,10 @@ type MyMessageSet struct {
 	XXX_unrecognized []byte                    `json:"-"`
 }
 
-func (m *MyMessageSet) Reset()         { *m = MyMessageSet{} }
-func (m *MyMessageSet) String() string { return proto.CompactTextString(m) }
-func (*MyMessageSet) ProtoMessage()    {}
+func (m *MyMessageSet) Reset()                    { *m = MyMessageSet{} }
+func (m *MyMessageSet) String() string            { return proto.CompactTextString(m) }
+func (*MyMessageSet) ProtoMessage()               {}
+func (*MyMessageSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
 
 func (m *MyMessageSet) Marshal() ([]byte, error) {
 	return proto.MarshalMessageSet(m.ExtensionMap())
@@ -1557,18 +1583,20 @@ type Empty struct {
 	XXX_unrecognized []byte `json:"-"`
 }
 
-func (m *Empty) Reset()         { *m = Empty{} }
-func (m *Empty) String() string { return proto.CompactTextString(m) }
-func (*Empty) ProtoMessage()    {}
+func (m *Empty) Reset()                    { *m = Empty{} }
+func (m *Empty) String() string            { return proto.CompactTextString(m) }
+func (*Empty) ProtoMessage()               {}
+func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
 
 type MessageList struct {
 	Message          []*MessageList_Message `protobuf:"group,1,rep,name=Message" json:"message,omitempty"`
 	XXX_unrecognized []byte                 `json:"-"`
 }
 
-func (m *MessageList) Reset()         { *m = MessageList{} }
-func (m *MessageList) String() string { return proto.CompactTextString(m) }
-func (*MessageList) ProtoMessage()    {}
+func (m *MessageList) Reset()                    { *m = MessageList{} }
+func (m *MessageList) String() string            { return proto.CompactTextString(m) }
+func (*MessageList) ProtoMessage()               {}
+func (*MessageList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
 
 func (m *MessageList) GetMessage() []*MessageList_Message {
 	if m != nil {
@@ -1607,9 +1635,10 @@ type Strings struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *Strings) Reset()         { *m = Strings{} }
-func (m *Strings) String() string { return proto.CompactTextString(m) }
-func (*Strings) ProtoMessage()    {}
+func (m *Strings) Reset()                    { *m = Strings{} }
+func (m *Strings) String() string            { return proto.CompactTextString(m) }
+func (*Strings) ProtoMessage()               {}
+func (*Strings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
 
 func (m *Strings) GetStringField() string {
 	if m != nil && m.StringField != nil {
@@ -1653,9 +1682,10 @@ type Defaults struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *Defaults) Reset()         { *m = Defaults{} }
-func (m *Defaults) String() string { return proto.CompactTextString(m) }
-func (*Defaults) ProtoMessage()    {}
+func (m *Defaults) Reset()                    { *m = Defaults{} }
+func (m *Defaults) String() string            { return proto.CompactTextString(m) }
+func (*Defaults) ProtoMessage()               {}
+func (*Defaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
 
 const Default_Defaults_F_Bool bool = true
 const Default_Defaults_F_Int32 int32 = 32
@@ -1816,9 +1846,10 @@ type SubDefaults struct {
 	XXX_unrecognized []byte `json:"-"`
 }
 
-func (m *SubDefaults) Reset()         { *m = SubDefaults{} }
-func (m *SubDefaults) String() string { return proto.CompactTextString(m) }
-func (*SubDefaults) ProtoMessage()    {}
+func (m *SubDefaults) Reset()                    { *m = SubDefaults{} }
+func (m *SubDefaults) String() string            { return proto.CompactTextString(m) }
+func (*SubDefaults) ProtoMessage()               {}
+func (*SubDefaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
 
 const Default_SubDefaults_N int64 = 7
 
@@ -1834,9 +1865,10 @@ type RepeatedEnum struct {
 	XXX_unrecognized []byte               `json:"-"`
 }
 
-func (m *RepeatedEnum) Reset()         { *m = RepeatedEnum{} }
-func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) }
-func (*RepeatedEnum) ProtoMessage()    {}
+func (m *RepeatedEnum) Reset()                    { *m = RepeatedEnum{} }
+func (m *RepeatedEnum) String() string            { return proto.CompactTextString(m) }
+func (*RepeatedEnum) ProtoMessage()               {}
+func (*RepeatedEnum) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
 
 func (m *RepeatedEnum) GetColor() []RepeatedEnum_Color {
 	if m != nil {
@@ -1856,9 +1888,10 @@ type MoreRepeated struct {
 	XXX_unrecognized []byte   `json:"-"`
 }
 
-func (m *MoreRepeated) Reset()         { *m = MoreRepeated{} }
-func (m *MoreRepeated) String() string { return proto.CompactTextString(m) }
-func (*MoreRepeated) ProtoMessage()    {}
+func (m *MoreRepeated) Reset()                    { *m = MoreRepeated{} }
+func (m *MoreRepeated) String() string            { return proto.CompactTextString(m) }
+func (*MoreRepeated) ProtoMessage()               {}
+func (*MoreRepeated) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
 
 func (m *MoreRepeated) GetBools() []bool {
 	if m != nil {
@@ -1914,9 +1947,10 @@ type GroupOld struct {
 	XXX_unrecognized []byte      `json:"-"`
 }
 
-func (m *GroupOld) Reset()         { *m = GroupOld{} }
-func (m *GroupOld) String() string { return proto.CompactTextString(m) }
-func (*GroupOld) ProtoMessage()    {}
+func (m *GroupOld) Reset()                    { *m = GroupOld{} }
+func (m *GroupOld) String() string            { return proto.CompactTextString(m) }
+func (*GroupOld) ProtoMessage()               {}
+func (*GroupOld) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
 
 func (m *GroupOld) GetG() *GroupOld_G {
 	if m != nil {
@@ -1946,9 +1980,10 @@ type GroupNew struct {
 	XXX_unrecognized []byte      `json:"-"`
 }
 
-func (m *GroupNew) Reset()         { *m = GroupNew{} }
-func (m *GroupNew) String() string { return proto.CompactTextString(m) }
-func (*GroupNew) ProtoMessage()    {}
+func (m *GroupNew) Reset()                    { *m = GroupNew{} }
+func (m *GroupNew) String() string            { return proto.CompactTextString(m) }
+func (*GroupNew) ProtoMessage()               {}
+func (*GroupNew) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
 
 func (m *GroupNew) GetG() *GroupNew_G {
 	if m != nil {
@@ -1986,9 +2021,10 @@ type FloatingPoint struct {
 	XXX_unrecognized []byte   `json:"-"`
 }
 
-func (m *FloatingPoint) Reset()         { *m = FloatingPoint{} }
-func (m *FloatingPoint) String() string { return proto.CompactTextString(m) }
-func (*FloatingPoint) ProtoMessage()    {}
+func (m *FloatingPoint) Reset()                    { *m = FloatingPoint{} }
+func (m *FloatingPoint) String() string            { return proto.CompactTextString(m) }
+func (*FloatingPoint) ProtoMessage()               {}
+func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
 
 func (m *FloatingPoint) GetF() float64 {
 	if m != nil && m.F != nil {
@@ -2005,9 +2041,10 @@ type MessageWithMap struct {
 	XXX_unrecognized []byte                   `json:"-"`
 }
 
-func (m *MessageWithMap) Reset()         { *m = MessageWithMap{} }
-func (m *MessageWithMap) String() string { return proto.CompactTextString(m) }
-func (*MessageWithMap) ProtoMessage()    {}
+func (m *MessageWithMap) Reset()                    { *m = MessageWithMap{} }
+func (m *MessageWithMap) String() string            { return proto.CompactTextString(m) }
+func (*MessageWithMap) ProtoMessage()               {}
+func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
 
 func (m *MessageWithMap) GetNameMapping() map[int32]string {
 	if m != nil {
@@ -2052,9 +2089,10 @@ type Communique struct {
 	XXX_unrecognized []byte             `json:"-"`
 }
 
-func (m *Communique) Reset()         { *m = Communique{} }
-func (m *Communique) String() string { return proto.CompactTextString(m) }
-func (*Communique) ProtoMessage()    {}
+func (m *Communique) Reset()                    { *m = Communique{} }
+func (m *Communique) String() string            { return proto.CompactTextString(m) }
+func (*Communique) ProtoMessage()               {}
+func (*Communique) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
 
 type isCommunique_Union interface {
 	isCommunique_Union()
@@ -2917,6 +2955,44 @@ var E_X250 = &proto.ExtensionDesc{
 }
 
 func init() {
+	proto.RegisterType((*GoEnum)(nil), "testdata.GoEnum")
+	proto.RegisterType((*GoTestField)(nil), "testdata.GoTestField")
+	proto.RegisterType((*GoTest)(nil), "testdata.GoTest")
+	proto.RegisterType((*GoTest_RequiredGroup)(nil), "testdata.GoTest.RequiredGroup")
+	proto.RegisterType((*GoTest_RepeatedGroup)(nil), "testdata.GoTest.RepeatedGroup")
+	proto.RegisterType((*GoTest_OptionalGroup)(nil), "testdata.GoTest.OptionalGroup")
+	proto.RegisterType((*GoSkipTest)(nil), "testdata.GoSkipTest")
+	proto.RegisterType((*GoSkipTest_SkipGroup)(nil), "testdata.GoSkipTest.SkipGroup")
+	proto.RegisterType((*NonPackedTest)(nil), "testdata.NonPackedTest")
+	proto.RegisterType((*PackedTest)(nil), "testdata.PackedTest")
+	proto.RegisterType((*MaxTag)(nil), "testdata.MaxTag")
+	proto.RegisterType((*OldMessage)(nil), "testdata.OldMessage")
+	proto.RegisterType((*OldMessage_Nested)(nil), "testdata.OldMessage.Nested")
+	proto.RegisterType((*NewMessage)(nil), "testdata.NewMessage")
+	proto.RegisterType((*NewMessage_Nested)(nil), "testdata.NewMessage.Nested")
+	proto.RegisterType((*InnerMessage)(nil), "testdata.InnerMessage")
+	proto.RegisterType((*OtherMessage)(nil), "testdata.OtherMessage")
+	proto.RegisterType((*MyMessage)(nil), "testdata.MyMessage")
+	proto.RegisterType((*MyMessage_SomeGroup)(nil), "testdata.MyMessage.SomeGroup")
+	proto.RegisterType((*Ext)(nil), "testdata.Ext")
+	proto.RegisterType((*ComplexExtension)(nil), "testdata.ComplexExtension")
+	proto.RegisterType((*DefaultsMessage)(nil), "testdata.DefaultsMessage")
+	proto.RegisterType((*MyMessageSet)(nil), "testdata.MyMessageSet")
+	proto.RegisterType((*Empty)(nil), "testdata.Empty")
+	proto.RegisterType((*MessageList)(nil), "testdata.MessageList")
+	proto.RegisterType((*MessageList_Message)(nil), "testdata.MessageList.Message")
+	proto.RegisterType((*Strings)(nil), "testdata.Strings")
+	proto.RegisterType((*Defaults)(nil), "testdata.Defaults")
+	proto.RegisterType((*SubDefaults)(nil), "testdata.SubDefaults")
+	proto.RegisterType((*RepeatedEnum)(nil), "testdata.RepeatedEnum")
+	proto.RegisterType((*MoreRepeated)(nil), "testdata.MoreRepeated")
+	proto.RegisterType((*GroupOld)(nil), "testdata.GroupOld")
+	proto.RegisterType((*GroupOld_G)(nil), "testdata.GroupOld.G")
+	proto.RegisterType((*GroupNew)(nil), "testdata.GroupNew")
+	proto.RegisterType((*GroupNew_G)(nil), "testdata.GroupNew.G")
+	proto.RegisterType((*FloatingPoint)(nil), "testdata.FloatingPoint")
+	proto.RegisterType((*MessageWithMap)(nil), "testdata.MessageWithMap")
+	proto.RegisterType((*Communique)(nil), "testdata.Communique")
 	proto.RegisterEnum("testdata.FOO", FOO_name, FOO_value)
 	proto.RegisterEnum("testdata.GoTest_KIND", GoTest_KIND_name, GoTest_KIND_value)
 	proto.RegisterEnum("testdata.MyMessage_Color", MyMessage_Color_name, MyMessage_Color_value)
@@ -3012,3 +3088,206 @@ func init() {
 	proto.RegisterExtension(E_X249)
 	proto.RegisterExtension(E_X250)
 }
+
+var fileDescriptor0 = []byte{
+	// 3179 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x58, 0x59, 0x57, 0x5b, 0xd7,
+	0x15, 0xf6, 0xd5, 0xac, 0x23, 0x01, 0x97, 0x8b, 0x8d, 0x05, 0x99, 0xf0, 0x75, 0xe2, 0x3a, 0x76,
+	0x42, 0x40, 0x08, 0x8c, 0x6f, 0x57, 0x57, 0x6a, 0x6c, 0x89, 0xd0, 0x18, 0x44, 0x01, 0x37, 0x2b,
+	0xe9, 0x6a, 0xb5, 0x04, 0x5c, 0x40, 0x41, 0xd2, 0x95, 0xa5, 0xab, 0xc6, 0xf4, 0xa9, 0xaf, 0x7d,
+	0xe8, 0x43, 0xdb, 0xd5, 0xb5, 0xb2, 0xfa, 0x1f, 0xda, 0xbe, 0xf7, 0x17, 0x34, 0xf3, 0x3c, 0x74,
+	0x9e, 0xe7, 0x39, 0x6d, 0x93, 0xb6, 0x2f, 0xed, 0xde, 0xfb, 0xdc, 0x51, 0xd2, 0x39, 0x60, 0x1e,
+	0x6c, 0xe9, 0x7e, 0xfb, 0xdb, 0xe7, 0x9c, 0x7d, 0xf6, 0xf0, 0x5d, 0x31, 0x66, 0x9b, 0x1d, 0x7b,
+	0xba, 0xd5, 0xb6, 0x6c, 0x4b, 0x4b, 0xe1, 0xe7, 0xdd, 0xaa, 0x5d, 0xd5, 0x1f, 0x64, 0x89, 0x65,
+	0xab, 0xd8, 0xec, 0x36, 0xb4, 0x49, 0x16, 0xdd, 0xb3, 0xac, 0x9c, 0x32, 0x15, 0xb9, 0x38, 0x9c,
+	0x1f, 0x9a, 0x76, 0x2d, 0xa6, 0x4b, 0xe5, 0xb2, 0x7e, 0x89, 0x65, 0x96, 0xad, 0x2d, 0x78, 0x52,
+	0xaa, 0x99, 0xf5, 0x5d, 0x6d, 0x88, 0xc5, 0x6f, 0x56, 0xb7, 0xcd, 0x3a, 0x19, 0xa7, 0xb5, 0x2c,
+	0x8b, 0x6d, 0x1d, 0xb5, 0xcc, 0x5c, 0x04, 0xbf, 0xe9, 0x5f, 0x3e, 0x8d, 0x2e, 0xd1, 0x58, 0x3b,
+	0xcf, 0x62, 0x4f, 0xd6, 0x9a, 0xbb, 0x8e, 0xcf, 0x33, 0xbe, 0x4f, 0x8e, 0x4f, 0x3f, 0xb9, 0xb2,
+	0x76, 0x03, 0x9d, 0x6d, 0x55, 0xb7, 0xeb, 0x48, 0x57, 0xc0, 0x19, 0x7c, 0x5d, 0xaf, 0xb6, 0xab,
+	0x8d, 0x5c, 0x14, 0xbe, 0xc6, 0xb5, 0x47, 0xd8, 0xd0, 0x86, 0x79, 0xbb, 0x5b, 0x6b, 0x9b, 0xbb,
+	0xb4, 0x76, 0x2e, 0x06, 0xbe, 0x32, 0xfd, 0xbe, 0xf8, 0xc6, 0xc8, 0xba, 0x65, 0x56, 0x6d, 0xd7,
+	0x3a, 0x3e, 0x15, 0x95, 0x5a, 0x97, 0x5b, 0x76, 0xcd, 0x6a, 0x56, 0xeb, 0xdc, 0x3a, 0x01, 0x4b,
+	0x0a, 0xad, 0xcf, 0xb2, 0x91, 0x52, 0x65, 0xc9, 0xb2, 0xea, 0x95, 0xb6, 0xb3, 0xa1, 0x1c, 0x83,
+	0xbd, 0xa4, 0xb4, 0x1c, 0x53, 0x4b, 0x95, 0x95, 0xa6, 0x3d, 0x97, 0xf7, 0x91, 0x0c, 0x20, 0x71,
+	0x0f, 0x59, 0x28, 0xf8, 0x48, 0x16, 0x90, 0x28, 0x04, 0x5b, 0x2b, 0x55, 0x4a, 0xb5, 0x3b, 0xe6,
+	0x6e, 0x90, 0x35, 0x04, 0x58, 0x32, 0x80, 0x05, 0x79, 0xc3, 0x80, 0x25, 0xb4, 0x09, 0x36, 0x5a,
+	0xaa, 0xdc, 0xaa, 0x85, 0x17, 0x1b, 0x01, 0x68, 0xc8, 0x87, 0x82, 0x2c, 0x15, 0xa0, 0x18, 0xdf,
+	0x47, 0xa9, 0x6e, 0x55, 0x6d, 0x1f, 0x19, 0x05, 0x24, 0xc2, 0x49, 0x37, 0xac, 0x2e, 0xc4, 0xdf,
+	0x87, 0x34, 0x80, 0x14, 0x0e, 0x6d, 0xda, 0xed, 0x5a, 0x73, 0xdf, 0x87, 0xc6, 0xe8, 0xc2, 0xc9,
+	0xdf, 0xd2, 0x11, 0x84, 0xc9, 0x47, 0x4c, 0x40, 0xb2, 0x0e, 0xa9, 0x67, 0x7f, 0x7b, 0x00, 0x8d,
+	0xfa, 0x50, 0x70, 0x7f, 0xfb, 0x00, 0x69, 0xa1, 0xd0, 0xf2, 0xdb, 0xcb, 0x9d, 0x86, 0x8b, 0xeb,
+	0x09, 0xad, 0x83, 0x9c, 0x01, 0xa4, 0x27, 0xb4, 0x0e, 0x32, 0x0e, 0x48, 0x5f, 0x68, 0x1d, 0xec,
+	0x2c, 0x60, 0x7d, 0xa1, 0x75, 0xb0, 0x1c, 0x60, 0xbd, 0xa1, 0x75, 0xa0, 0x09, 0x80, 0x7a, 0x43,
+	0xeb, 0x40, 0x93, 0x00, 0xf5, 0x84, 0xd6, 0x41, 0xee, 0x01, 0xa4, 0x37, 0xb4, 0x0e, 0x74, 0x2f,
+	0x40, 0xbd, 0xa1, 0x75, 0xa0, 0xfb, 0x00, 0x4a, 0x03, 0x14, 0x08, 0xad, 0x83, 0xbc, 0xa0, 0x00,
+	0x94, 0x85, 0xcd, 0x07, 0x63, 0xeb, 0x60, 0x2f, 0x22, 0x36, 0xea, 0x63, 0xc1, 0x1d, 0xbe, 0x84,
+	0x58, 0x30, 0xba, 0x96, 0x93, 0xed, 0xb9, 0xfb, 0x21, 0xd1, 0x43, 0xd1, 0xf5, 0x90, 0x07, 0xa8,
+	0xea, 0x02, 0xd1, 0xf5, 0x90, 0x29, 0x40, 0x7a, 0xa2, 0xeb, 0x61, 0xe7, 0x00, 0xeb, 0x89, 0xae,
+	0x87, 0xe9, 0x80, 0x85, 0xa3, 0xeb, 0x41, 0xe7, 0x01, 0x0a, 0x47, 0xd7, 0x83, 0x1e, 0x04, 0x28,
+	0x14, 0x5d, 0x0f, 0x79, 0x08, 0x90, 0x70, 0x74, 0x3d, 0xe8, 0x02, 0x40, 0xe1, 0xe8, 0x7a, 0xd0,
+	0xc7, 0xa8, 0xb9, 0x04, 0xa2, 0xeb, 0x21, 0xdf, 0xc2, 0xbe, 0x13, 0x8e, 0xae, 0x87, 0x7d, 0x1b,
+	0xb1, 0x70, 0x74, 0x3d, 0xec, 0x3b, 0x88, 0x69, 0xda, 0xfd, 0xe4, 0x12, 0xa3, 0xbb, 0x6b, 0xee,
+	0x55, 0xbb, 0x75, 0x0c, 0xfc, 0x45, 0x0c, 0xaf, 0x11, 0xb3, 0xdb, 0x5d, 0x53, 0xbb, 0x0f, 0xb9,
+	0x3c, 0xc8, 0xbe, 0xc1, 0xc3, 0x18, 0x65, 0x23, 0x32, 0x97, 0xf7, 0x60, 0xf0, 0xec, 0xc3, 0x97,
+	0x30, 0xd4, 0x46, 0x64, 0xa1, 0xa0, 0x4d, 0xb1, 0x31, 0x3f, 0xdc, 0xbe, 0xc1, 0x65, 0x8c, 0xb7,
+	0x11, 0x9d, 0xcb, 0xcf, 0x04, 0x2c, 0x42, 0x2e, 0x1e, 0xc1, 0xa8, 0x1b, 0xd1, 0x85, 0x02, 0x5a,
+	0x68, 0x5e, 0xe8, 0x7d, 0x83, 0x47, 0x31, 0xf6, 0x46, 0x0c, 0x5c, 0x04, 0x2c, 0x42, 0x2e, 0xa6,
+	0xf1, 0x0a, 0x8c, 0x18, 0xb8, 0x98, 0xd1, 0xce, 0xe1, 0x36, 0xf9, 0x45, 0xf8, 0x06, 0x8f, 0xe1,
+	0x4d, 0x18, 0x89, 0xb9, 0xd9, 0xc2, 0xec, 0xfc, 0x55, 0x4d, 0x47, 0x27, 0xce, 0x8d, 0xf8, 0x36,
+	0x33, 0x78, 0x25, 0x46, 0x22, 0x7f, 0x65, 0x76, 0x31, 0xbf, 0x08, 0x1d, 0x57, 0xf3, 0xae, 0xc6,
+	0xb7, 0x99, 0xc5, 0xbb, 0x31, 0xd4, 0x03, 0xb3, 0x5e, 0xb7, 0x1e, 0x99, 0xd2, 0x9f, 0xb3, 0xda,
+	0xf5, 0xdd, 0x73, 0xe0, 0xee, 0x3c, 0x2e, 0xca, 0x6f, 0xcb, 0x37, 0xfe, 0x2a, 0xce, 0x85, 0xac,
+	0x91, 0x5c, 0xaa, 0xed, 0x37, 0xad, 0x8e, 0xc9, 0xf7, 0xbe, 0xd9, 0x7b, 0xba, 0xaf, 0xa1, 0xd5,
+	0xa8, 0x11, 0x7d, 0x14, 0x42, 0xec, 0x59, 0x84, 0x4e, 0xf7, 0x75, 0xb4, 0xd0, 0xc0, 0x02, 0xa2,
+	0xac, 0xb3, 0xf1, 0x9e, 0xfe, 0x53, 0x69, 0x55, 0x77, 0x0e, 0xc1, 0x2a, 0x8f, 0x6d, 0x68, 0x29,
+	0xa2, 0x2a, 0xb0, 0x99, 0xb3, 0xbd, 0xad, 0xc8, 0x35, 0x9a, 0xc3, 0x8e, 0x14, 0x32, 0x0a, 0x54,
+	0xa1, 0x6b, 0x54, 0xc0, 0xe6, 0x44, 0x46, 0x0f, 0xb1, 0x89, 0xfe, 0x06, 0xe5, 0x9a, 0xcd, 0x63,
+	0x9f, 0xea, 0x31, 0x1b, 0xe0, 0x6d, 0x01, 0x5b, 0x16, 0x99, 0x3d, 0xc8, 0x72, 0x7d, 0x6d, 0xcb,
+	0xb5, 0xba, 0x82, 0xdd, 0x2b, 0x6c, 0x35, 0xc0, 0xd7, 0x22, 0x36, 0x32, 0x7f, 0xfb, 0xe1, 0x66,
+	0xe6, 0x1a, 0x5d, 0xc5, 0x9e, 0xe6, 0xbb, 0xea, 0xe9, 0x6b, 0xae, 0x95, 0x81, 0xed, 0xcd, 0xd9,
+	0x7d, 0xae, 0xaf, 0x59, 0xb9, 0x56, 0x1f, 0x46, 0xb1, 0x67, 0x85, 0xcd, 0x06, 0xec, 0xeb, 0x23,
+	0x34, 0xd3, 0xc8, 0x6c, 0x9e, 0x0d, 0xb9, 0x23, 0x63, 0xbf, 0x6d, 0x75, 0x5b, 0xb9, 0x12, 0xcc,
+	0x0d, 0x96, 0xbf, 0xbf, 0x4f, 0x51, 0xb8, 0x5a, 0x61, 0x19, 0xad, 0x38, 0x8d, 0x3b, 0xe5, 0xb4,
+	0x75, 0xf0, 0x38, 0x98, 0xc6, 0xad, 0x3c, 0x9a, 0x5b, 0xe5, 0x9c, 0xf6, 0x0c, 0xa4, 0xca, 0x20,
+	0x9a, 0xab, 0x1e, 0x88, 0x36, 0x79, 0xc1, 0x97, 0x2a, 0xdc, 0xcf, 0x99, 0x5e, 0xed, 0xb2, 0x8c,
+	0xd3, 0x93, 0xdb, 0x05, 0xd7, 0xeb, 0xb3, 0xfb, 0xb4, 0x6b, 0x17, 0x5a, 0xa0, 0xdf, 0xee, 0xb3,
+	0x24, 0xb8, 0x9e, 0x57, 0x40, 0x66, 0xa1, 0x92, 0x4a, 0xb1, 0xd8, 0x67, 0xca, 0x2b, 0x37, 0xd4,
+	0x53, 0xf8, 0x69, 0xa9, 0x5c, 0xbe, 0x09, 0x91, 0x4b, 0xb3, 0xf8, 0xd2, 0xd3, 0x5b, 0xc5, 0x4d,
+	0x35, 0xa2, 0x8d, 0xb0, 0x4c, 0x69, 0x65, 0x6d, 0xb9, 0xb8, 0xb1, 0xbe, 0xb1, 0xb2, 0xb6, 0xa5,
+	0x46, 0x11, 0x2b, 0xdd, 0x2c, 0x5f, 0xdb, 0x52, 0x63, 0x5a, 0x92, 0x45, 0xf1, 0x59, 0x5c, 0x63,
+	0x2c, 0xb1, 0xb9, 0x05, 0xf8, 0xb2, 0x9a, 0x40, 0x2f, 0x5b, 0x2b, 0xab, 0x45, 0x35, 0x89, 0x96,
+	0x5b, 0xb7, 0xd6, 0x6f, 0x16, 0xd5, 0x14, 0x7e, 0xbc, 0xb6, 0xb1, 0x71, 0xed, 0x69, 0x35, 0x8d,
+	0xa4, 0xd5, 0x6b, 0xeb, 0x2a, 0x23, 0xf8, 0xda, 0x12, 0xc0, 0x19, 0xd0, 0x82, 0xa9, 0xd2, 0xad,
+	0xb5, 0xeb, 0x5b, 0x2b, 0xe5, 0x35, 0x35, 0xab, 0xbf, 0xac, 0x30, 0xb6, 0x6c, 0x6d, 0x1e, 0xd6,
+	0x5a, 0xa4, 0x07, 0xc1, 0x7b, 0x07, 0x3e, 0x57, 0x28, 0x2d, 0x1c, 0x8d, 0x74, 0x9a, 0x65, 0xe9,
+	0xd9, 0x1e, 0x2f, 0x08, 0xd2, 0x47, 0xc9, 0xf0, 0xd3, 0x85, 0x02, 0x29, 0xa3, 0x84, 0x36, 0xc6,
+	0x32, 0xf4, 0xb4, 0x43, 0x1d, 0x84, 0x24, 0x51, 0x5a, 0x9b, 0x65, 0x69, 0x7c, 0xc8, 0x6f, 0x6a,
+	0xa4, 0x3f, 0x2f, 0xdc, 0xd5, 0xa7, 0xf1, 0x03, 0xbf, 0xa9, 0x05, 0x96, 0xf6, 0xbe, 0xa0, 0x53,
+	0xe2, 0x3a, 0xbb, 0x52, 0xdd, 0x5d, 0xf1, 0x87, 0xce, 0x52, 0xa3, 0x14, 0xe9, 0x49, 0x36, 0xb4,
+	0x66, 0x35, 0xd7, 0x29, 0x3d, 0xe9, 0x40, 0x69, 0xa6, 0x54, 0x73, 0x38, 0x65, 0xe3, 0xfa, 0x3d,
+	0x8c, 0x05, 0x80, 0x21, 0xa6, 0x6c, 0x73, 0x00, 0xf3, 0x57, 0x9f, 0x62, 0x89, 0xd5, 0xea, 0x9d,
+	0xad, 0xea, 0xbe, 0x36, 0xce, 0x58, 0xbd, 0xda, 0xb1, 0xe1, 0x60, 0x78, 0x81, 0xff, 0x83, 0x3f,
+	0x05, 0xbb, 0x9f, 0xfe, 0x79, 0xc6, 0xca, 0xf5, 0xdd, 0x55, 0xb3, 0xd3, 0xa9, 0xee, 0x9b, 0xda,
+	0x65, 0x96, 0x68, 0x82, 0x1b, 0x13, 0xa5, 0x33, 0x4a, 0xd2, 0x7b, 0xfc, 0x03, 0xf9, 0x56, 0xd3,
+	0x6b, 0x64, 0xa2, 0x65, 0x58, 0x14, 0xf4, 0x3b, 0xc9, 0xe7, 0xf8, 0xe4, 0x38, 0x4b, 0x38, 0x8f,
+	0x41, 0x95, 0x37, 0xab, 0x0d, 0x33, 0xc7, 0xfd, 0xb7, 0x19, 0x5b, 0x33, 0x9f, 0x3b, 0x81, 0x7f,
+	0xdf, 0x6a, 0x80, 0xff, 0xe8, 0xe4, 0xa5, 0xc1, 0xfe, 0xf1, 0x6a, 0xe1, 0xed, 0x61, 0xb7, 0xc2,
+	0xaf, 0x81, 0xa4, 0xbc, 0x7e, 0x9d, 0x65, 0x57, 0x9a, 0x4d, 0xb3, 0xed, 0xae, 0x0a, 0x8c, 0x03,
+	0xab, 0x63, 0x3b, 0x6f, 0x0d, 0x1a, 0x8b, 0xb5, 0xac, 0xb6, 0xcd, 0xf7, 0x6d, 0xc4, 0x60, 0xca,
+	0xcc, 0x68, 0xa3, 0x2c, 0xbd, 0x63, 0x01, 0x65, 0x07, 0xb7, 0x86, 0x0d, 0x3a, 0xa5, 0x1f, 0xb2,
+	0x6c, 0xd9, 0x3e, 0xf0, 0x9d, 0xc0, 0x6e, 0x0e, 0xcd, 0x23, 0x5a, 0x35, 0x8a, 0x2f, 0x0b, 0x5f,
+	0xa8, 0xd6, 0xbb, 0xfc, 0xdd, 0x21, 0xab, 0x0d, 0xb3, 0xc4, 0x73, 0x66, 0x6d, 0xff, 0xc0, 0x26,
+	0x6e, 0x04, 0xba, 0x4b, 0xbc, 0x86, 0x1b, 0x80, 0x97, 0x06, 0x3c, 0xe5, 0xb8, 0x7f, 0xca, 0xe0,
+	0xbe, 0x2e, 0xa5, 0x52, 0xbb, 0xea, 0x97, 0xe0, 0x2f, 0xa2, 0x7f, 0x23, 0xca, 0xd2, 0xab, 0x47,
+	0xee, 0x52, 0xe0, 0x7d, 0xc7, 0xea, 0x36, 0xf9, 0x86, 0xe3, 0xde, 0x81, 0xbd, 0xf7, 0x94, 0xdb,
+	0x5d, 0xcb, 0x36, 0x69, 0xa9, 0x34, 0x6e, 0xab, 0x65, 0xda, 0xb0, 0x10, 0x8a, 0x38, 0x6f, 0xdd,
+	0xb8, 0x6c, 0x5d, 0xed, 0x02, 0x4b, 0x58, 0x78, 0xb4, 0x0e, 0xbc, 0x78, 0x44, 0xc3, 0x76, 0xa1,
+	0x23, 0x3f, 0xcc, 0xd2, 0xd0, 0xc6, 0x2a, 0xdc, 0x65, 0xb6, 0xd7, 0x34, 0xe4, 0xf2, 0x32, 0x4b,
+	0x6d, 0xd7, 0x0e, 0xcd, 0xce, 0x01, 0xc4, 0x2f, 0x09, 0x8b, 0x0f, 0xe7, 0x27, 0x7c, 0x4b, 0xef,
+	0x64, 0xd3, 0xd7, 0xad, 0xba, 0xd5, 0xd6, 0x66, 0xa0, 0x72, 0xac, 0x86, 0xc9, 0xaf, 0x2c, 0x45,
+	0x3d, 0xee, 0xbe, 0x41, 0xd6, 0x9b, 0x60, 0xc4, 0x6b, 0x65, 0x94, 0xef, 0x64, 0x1b, 0x67, 0x32,
+	0xbc, 0xfd, 0xa0, 0x2a, 0x55, 0x71, 0xc5, 0xfd, 0x3d, 0x1c, 0x1a, 0x50, 0xd1, 0x30, 0xec, 0x27,
+	0xa7, 0xa0, 0xba, 0x3c, 0x86, 0x57, 0x5d, 0x3c, 0xe1, 0xd3, 0x78, 0xd9, 0x3a, 0xc4, 0x87, 0xef,
+	0x00, 0x3a, 0xc8, 0x46, 0x11, 0x1b, 0x16, 0x74, 0x90, 0xe5, 0x8d, 0x62, 0x71, 0x0d, 0x3a, 0x16,
+	0xf6, 0xae, 0x9b, 0xb7, 0x8a, 0x6a, 0x24, 0x70, 0x2f, 0x5f, 0x51, 0x58, 0xb4, 0x78, 0xc7, 0xc6,
+	0x2b, 0xc0, 0xbd, 0xf1, 0x9c, 0xcb, 0xcf, 0xb0, 0x58, 0xc3, 0x6a, 0x9b, 0xda, 0xd8, 0x80, 0x4d,
+	0xc3, 0x9b, 0x05, 0x86, 0x3e, 0xf0, 0x1e, 0x0b, 0xfc, 0xfc, 0x39, 0x16, 0xb3, 0x4d, 0xf0, 0x33,
+	0x90, 0x71, 0x40, 0x4e, 0xcf, 0x43, 0x69, 0x74, 0x1b, 0xdb, 0x66, 0x7b, 0xb0, 0x51, 0x8d, 0x0e,
+	0xf0, 0x49, 0xa6, 0x5e, 0xb7, 0x1a, 0xad, 0xba, 0x79, 0x07, 0xbc, 0x9a, 0xcd, 0x0e, 0x34, 0x69,
+	0x4c, 0x88, 0xbd, 0x5a, 0x9b, 0xd2, 0x1b, 0x25, 0x34, 0xe4, 0x62, 0xc7, 0x84, 0x64, 0xde, 0xe5,
+	0x09, 0x8e, 0xb0, 0x7d, 0x50, 0x6b, 0x63, 0x5a, 0x63, 0xbb, 0x58, 0x66, 0x23, 0x37, 0xb8, 0x16,
+	0xe9, 0x38, 0xae, 0xe1, 0x25, 0x3b, 0xeb, 0x3e, 0xa2, 0x17, 0x72, 0x08, 0xc4, 0x33, 0xc5, 0x8d,
+	0x32, 0x44, 0x07, 0xc2, 0x54, 0x5e, 0x2b, 0x42, 0x6c, 0xe0, 0xc3, 0xd6, 0x53, 0xe5, 0x50, 0x68,
+	0xee, 0x65, 0x59, 0x6f, 0x77, 0x9b, 0xa6, 0x4d, 0x08, 0xb6, 0x95, 0xa4, 0x11, 0x49, 0x29, 0x7a,
+	0x92, 0xc5, 0x8b, 0x8d, 0x96, 0x7d, 0xa4, 0x9b, 0x2c, 0xe3, 0x18, 0xdd, 0xac, 0x41, 0x7f, 0x9a,
+	0x66, 0xc9, 0x86, 0x73, 0x22, 0x85, 0x66, 0x62, 0xf0, 0xe2, 0x7d, 0x3b, 0xf7, 0x33, 0xcc, 0xa2,
+	0x64, 0xa0, 0x8a, 0x9d, 0x32, 0x88, 0xf0, 0x32, 0xe0, 0x35, 0x12, 0xc5, 0x1a, 0xd1, 0x0b, 0x2c,
+	0xc9, 0xe5, 0x5d, 0x87, 0x5a, 0x38, 0x57, 0x7a, 0xfc, 0xea, 0x79, 0x9f, 0x80, 0x7c, 0xa0, 0xec,
+	0x71, 0x1e, 0x52, 0xdd, 0xea, 0xcf, 0xc7, 0x58, 0xca, 0x3d, 0x3a, 0xf0, 0x12, 0x5c, 0x8c, 0x11,
+	0xc3, 0x95, 0xd1, 0x63, 0x2c, 0xe9, 0xc8, 0x2f, 0xa7, 0x61, 0xa0, 0x78, 0x76, 0x1f, 0xc2, 0x80,
+	0x88, 0x7a, 0x92, 0x79, 0x9c, 0xa5, 0x3d, 0x79, 0x45, 0x85, 0xef, 0x08, 0x65, 0xff, 0x39, 0x98,
+	0xc7, 0x7d, 0x79, 0x3c, 0x0e, 0x13, 0xcb, 0x11, 0x50, 0xf4, 0x03, 0x80, 0x2b, 0x8a, 0xbd, 0xe7,
+	0x60, 0x9e, 0x0c, 0x48, 0xe1, 0xb3, 0xb8, 0x28, 0x89, 0x24, 0xaa, 0x19, 0x5f, 0x00, 0xe7, 0x90,
+	0xc0, 0x85, 0x11, 0xe5, 0xb9, 0x2f, 0x7b, 0x75, 0x44, 0x78, 0x5c, 0xa0, 0x6a, 0x06, 0x8b, 0xdd,
+	0x1c, 0xba, 0x25, 0xb1, 0x4b, 0x65, 0x14, 0x50, 0xb8, 0x67, 0x88, 0xcd, 0x37, 0x98, 0xf5, 0x65,
+	0xad, 0xf7, 0x98, 0xc6, 0xa3, 0xa7, 0x65, 0x1f, 0xc3, 0xf0, 0x61, 0xfe, 0xc0, 0x78, 0xc4, 0xfa,
+	0xcf, 0xf9, 0x17, 0xeb, 0x86, 0x98, 0x97, 0xbf, 0xc1, 0x2b, 0x0e, 0x82, 0x08, 0x84, 0xf5, 0x5a,
+	0x73, 0x0f, 0x86, 0x27, 0x1e, 0x27, 0x0a, 0x1f, 0xf9, 0x25, 0xac, 0xe1, 0x43, 0x95, 0x1e, 0xc6,
+	0x1e, 0xc5, 0xa7, 0x1a, 0x08, 0x86, 0xca, 0x5a, 0xb5, 0x09, 0xe3, 0x90, 0x2c, 0x9b, 0xd5, 0x26,
+	0x9c, 0x2d, 0xda, 0xe9, 0x6e, 0xe7, 0xb4, 0xde, 0x9f, 0x4e, 0x36, 0xbb, 0xdb, 0xde, 0x95, 0x6a,
+	0x2c, 0x05, 0xa9, 0x50, 0xf9, 0xa2, 0xd9, 0xb6, 0x72, 0x63, 0x74, 0xfe, 0x53, 0x27, 0xec, 0x01,
+	0x30, 0x56, 0x33, 0x41, 0x4f, 0x59, 0xa6, 0x34, 0x79, 0xef, 0x37, 0x94, 0x2b, 0xfa, 0x2a, 0xcb,
+	0xba, 0x4a, 0x8a, 0x2a, 0xe6, 0x32, 0x26, 0x23, 0xf8, 0xa4, 0x9c, 0x1e, 0xce, 0xdf, 0xeb, 0xef,
+	0x26, 0x68, 0xc6, 0x8f, 0xaf, 0xab, 0x3d, 0x1b, 0x50, 0xf4, 0x6f, 0x2a, 0x50, 0x4b, 0xd0, 0x50,
+	0x5c, 0x63, 0x4c, 0xee, 0x6d, 0x48, 0xc4, 0x0e, 0xf9, 0xc3, 0xf7, 0xe5, 0x2c, 0x7d, 0x75, 0x05,
+	0x6a, 0xc4, 0x7b, 0x39, 0x80, 0x9a, 0x80, 0x8b, 0xe8, 0xf0, 0xda, 0x86, 0x0c, 0xc9, 0xe0, 0x37,
+	0xd7, 0x2c, 0xe6, 0xbd, 0x1e, 0x4c, 0xb0, 0x21, 0xba, 0x2f, 0x0f, 0x4a, 0x7a, 0x2f, 0x05, 0x23,
+	0x2c, 0xc9, 0xab, 0xa5, 0x43, 0xbf, 0x59, 0xa5, 0xb1, 0x7f, 0x90, 0xf8, 0xe1, 0xc3, 0x21, 0xa9,
+	0x7f, 0x9c, 0xa5, 0xa8, 0xa3, 0xc2, 0xfc, 0xd7, 0x1e, 0x60, 0xca, 0x7e, 0xce, 0xa4, 0x86, 0x7d,
+	0x3a, 0x20, 0x75, 0x1c, 0x78, 0x7a, 0x79, 0x72, 0x98, 0x29, 0xcb, 0x28, 0x4e, 0xee, 0xf0, 0x62,
+	0xd1, 0x4b, 0x0e, 0x19, 0x86, 0xbb, 0x8c, 0x0c, 0x30, 0x90, 0x27, 0xc2, 0x64, 0xfc, 0x78, 0xc4,
+	0x7f, 0x8d, 0x43, 0x01, 0x44, 0x99, 0x0f, 0xfb, 0x5c, 0xb7, 0xe0, 0x28, 0x88, 0xed, 0xd1, 0x78,
+	0x54, 0xf4, 0x0f, 0xa2, 0x6c, 0xd8, 0xe9, 0x11, 0x4f, 0xd5, 0xec, 0x83, 0xd5, 0x6a, 0x4b, 0x7b,
+	0x9c, 0x65, 0xb1, 0x55, 0x54, 0x1a, 0xd5, 0x56, 0x0b, 0x73, 0x5f, 0xa1, 0xd9, 0xf5, 0x70, 0x5f,
+	0xab, 0x71, 0xec, 0xa7, 0xd7, 0xc0, 0x78, 0x95, 0xdb, 0x16, 0x9b, 0x76, 0xfb, 0x48, 0xfb, 0x04,
+	0xcb, 0x34, 0x3a, 0xfb, 0x1e, 0x3f, 0x42, 0xfc, 0x8b, 0x42, 0xfe, 0x6a, 0x67, 0x3f, 0x44, 0x87,
+	0xf5, 0xb1, 0xd9, 0x78, 0xfc, 0xe8, 0x31, 0xeb, 0x63, 0xf9, 0x85, 0x1c, 0x18, 0x20, 0x58, 0x21,
+	0x71, 0x6d, 0x0b, 0x75, 0x20, 0x5d, 0x64, 0x26, 0x7f, 0x41, 0x48, 0x87, 0x0a, 0xdf, 0xb2, 0xe0,
+	0x1f, 0xe2, 0x4e, 0xe6, 0x99, 0xda, 0x77, 0x9e, 0x80, 0x78, 0x89, 0x87, 0xc5, 0x4b, 0xda, 0x88,
+	0x2c, 0x2a, 0x93, 0x9f, 0x62, 0x23, 0xbd, 0x67, 0x08, 0x50, 0x34, 0x50, 0x0c, 0x01, 0x4a, 0x26,
+	0x7f, 0x36, 0xf0, 0x2b, 0x6d, 0xf0, 0x5a, 0xc8, 0x17, 0xac, 0xdf, 0x77, 0x9e, 0x80, 0xb3, 0x54,
+	0x8f, 0x78, 0x22, 0xce, 0x63, 0x6c, 0x28, 0x74, 0x88, 0x20, 0x21, 0x3d, 0x60, 0xc3, 0xfa, 0x77,
+	0x41, 0xe0, 0xc3, 0x24, 0x6c, 0x74, 0x9b, 0xb5, 0xdb, 0xd4, 0xa5, 0x33, 0x8d, 0xea, 0x21, 0x04,
+	0xdc, 0xac, 0xec, 0xb4, 0xdd, 0x75, 0x54, 0x77, 0xa2, 0x52, 0xd7, 0x8d, 0x3f, 0x71, 0x0a, 0x72,
+	0x9b, 0x8f, 0x10, 0x6c, 0xb7, 0x69, 0xfe, 0x9d, 0xc6, 0x3a, 0xb6, 0xd9, 0x2c, 0x7c, 0x07, 0x86,
+	0x6d, 0x36, 0x5a, 0x95, 0x1d, 0xea, 0xb0, 0x0a, 0x3c, 0xb9, 0xc8, 0xa2, 0x50, 0xd9, 0xd4, 0x56,
+	0x65, 0x92, 0x06, 0x2c, 0xa7, 0x58, 0x14, 0x52, 0x86, 0xda, 0x6c, 0x26, 0x3f, 0x1a, 0xe8, 0x47,
+	0xbc, 0xba, 0x9e, 0x38, 0xb5, 0x04, 0x33, 0x11, 0xb6, 0x6b, 0x35, 0x2f, 0x8d, 0xb0, 0x68, 0xa9,
+	0x5c, 0xc6, 0x66, 0x03, 0xff, 0xcd, 0xaa, 0x8a, 0xf1, 0x10, 0x4b, 0xed, 0xb7, 0x4d, 0x13, 0xe3,
+	0x38, 0x78, 0xfa, 0x3f, 0x8b, 0xa5, 0x69, 0xdc, 0x60, 0xc9, 0x1d, 0x3e, 0xfd, 0x35, 0x81, 0x64,
+	0xcb, 0x7d, 0x8f, 0xeb, 0xea, 0x49, 0x1f, 0xee, 0xd5, 0x0b, 0x46, 0x09, 0xb4, 0x54, 0xe5, 0x38,
+	0x3f, 0x2f, 0xf0, 0x92, 0x91, 0xf9, 0x29, 0xb0, 0xd1, 0xa6, 0xe5, 0xfe, 0xb0, 0x51, 0xd9, 0xa5,
+	0xf9, 0xa3, 0x4d, 0xf4, 0x77, 0x7d, 0xd7, 0xa5, 0x49, 0xa3, 0x69, 0x8e, 0xa9, 0x01, 0x16, 0xc9,
+	0x37, 0x19, 0x69, 0x8f, 0x1a, 0x7e, 0x98, 0x44, 0x13, 0x49, 0x46, 0xda, 0xa7, 0x41, 0xdd, 0x47,
+	0x82, 0x21, 0x25, 0x21, 0x1d, 0x50, 0x73, 0x0f, 0x1f, 0xaa, 0x7b, 0xec, 0x52, 0x35, 0x1a, 0xdc,
+	0xfd, 0x2c, 0xf9, 0x5a, 0xcf, 0xd2, 0x58, 0x0f, 0xb3, 0x3a, 0xc7, 0xae, 0x75, 0x48, 0x33, 0xb8,
+	0x9f, 0x25, 0x5f, 0xab, 0x4e, 0x23, 0x7a, 0x9e, 0x69, 0xc1, 0xb0, 0x73, 0x95, 0x22, 0xa3, 0x35,
+	0x48, 0xc0, 0x0c, 0xa0, 0xc9, 0x57, 0x6b, 0x92, 0xbe, 0x59, 0x60, 0x63, 0xc1, 0x3d, 0x9e, 0x60,
+	0x39, 0x0b, 0x78, 0x23, 0x03, 0x79, 0xf2, 0xf5, 0x5a, 0xc0, 0x53, 0x8d, 0x3c, 0x1b, 0x09, 0xf0,
+	0x70, 0x56, 0xca, 0x38, 0xb7, 0x49, 0xde, 0xf5, 0xc4, 0x91, 0xaa, 0x54, 0xc6, 0x6a, 0x53, 0xef,
+	0x09, 0x27, 0x15, 0x29, 0x4a, 0x19, 0xa9, 0x43, 0x1d, 0xee, 0x99, 0xd0, 0xf6, 0x4c, 0x54, 0x0c,
+	0x12, 0x8e, 0x4d, 0xbd, 0xe6, 0x82, 0xd0, 0x60, 0x3a, 0x28, 0xd6, 0x0d, 0x83, 0x0d, 0x9f, 0xbc,
+	0x04, 0x5f, 0x50, 0xb8, 0x3c, 0x9c, 0x9b, 0x46, 0xe5, 0x68, 0x5c, 0x61, 0x43, 0x27, 0x2e, 0xc4,
+	0x17, 0x15, 0xae, 0xc7, 0x90, 0x0a, 0x69, 0x31, 0x74, 0xe2, 0x62, 0x7c, 0x49, 0xe1, 0xb2, 0xb9,
+	0x90, 0xef, 0xa1, 0xc9, 0x2f, 0xf6, 0x65, 0x2e, 0xb6, 0x22, 0x85, 0x39, 0xc8, 0x8a, 0xe1, 0x93,
+	0x17, 0xe4, 0x2b, 0x0a, 0x55, 0x64, 0xa4, 0x50, 0xe8, 0xe5, 0xc9, 0xd7, 0x7b, 0x55, 0xa1, 0x9a,
+	0x8c, 0x14, 0xe6, 0x83, 0xbc, 0xe3, 0x8b, 0xf2, 0x35, 0x85, 0xaa, 0x32, 0x52, 0x58, 0xe8, 0xe5,
+	0xc9, 0xd7, 0x7b, 0x9d, 0x06, 0x2b, 0xf0, 0xae, 0xc0, 0x35, 0x8c, 0xdc, 0x45, 0x61, 0xbe, 0xa1,
+	0x50, 0x65, 0x46, 0x0a, 0x8b, 0x7d, 0x44, 0xf9, 0x8a, 0x6f, 0x2a, 0x54, 0x9b, 0x91, 0xc2, 0x55,
+	0x63, 0x91, 0xa9, 0x77, 0x53, 0x9c, 0x6f, 0x29, 0x54, 0x9d, 0x91, 0xf9, 0x99, 0x7e, 0xa6, 0x7c,
+	0xcd, 0xb7, 0x15, 0xaa, 0xcf, 0xc8, 0xfc, 0x2c, 0x44, 0x27, 0x7b, 0xd2, 0x02, 0x7d, 0x27, 0xf0,
+	0x02, 0x66, 0x5c, 0x0b, 0x44, 0xf5, 0xd8, 0x22, 0x7d, 0x97, 0x04, 0x83, 0x31, 0xf4, 0x04, 0x7f,
+	0xcb, 0xe1, 0x04, 0xe3, 0x71, 0x3f, 0xef, 0x8e, 0xad, 0xd8, 0xf7, 0x14, 0x2a, 0xd9, 0xac, 0xe3,
+	0x81, 0xec, 0x8d, 0xcf, 0xf9, 0x7b, 0x3f, 0xae, 0x7a, 0xdf, 0x57, 0xee, 0xaa, 0x7c, 0xf1, 0xfd,
+	0x1a, 0x42, 0x13, 0xbb, 0x93, 0x9f, 0x99, 0x0d, 0x0e, 0xe3, 0xe0, 0xab, 0x35, 0x2f, 0xdb, 0x4c,
+	0x7e, 0x24, 0xf0, 0x9b, 0x02, 0xbe, 0x5b, 0x3b, 0xbc, 0xbc, 0x90, 0xf7, 0xa2, 0x94, 0x37, 0x27,
+	0xe4, 0xbd, 0x24, 0xe5, 0x15, 0x84, 0xbc, 0x97, 0xa5, 0xbc, 0x79, 0x21, 0xef, 0x15, 0x29, 0x6f,
+	0x41, 0xc8, 0x7b, 0x55, 0xca, 0xbb, 0x22, 0xe4, 0xbd, 0x26, 0xe5, 0x2d, 0x0a, 0x79, 0xaf, 0x4b,
+	0x79, 0x57, 0x85, 0xbc, 0x37, 0x64, 0xbc, 0xd9, 0x19, 0x21, 0xef, 0x4d, 0x29, 0x4f, 0x9c, 0x2f,
+	0x6f, 0x49, 0x79, 0xe2, 0x7c, 0x79, 0x5b, 0xca, 0x13, 0xe7, 0xcb, 0x3b, 0x52, 0x9e, 0x38, 0x5f,
+	0xde, 0x95, 0xf2, 0xc4, 0xf9, 0xf2, 0x9e, 0x94, 0x27, 0xce, 0x97, 0xf7, 0xa5, 0x3c, 0x71, 0xbe,
+	0x7c, 0x5f, 0xca, 0x13, 0xe7, 0xcb, 0x0f, 0xa4, 0x3c, 0x71, 0xbe, 0xfc, 0x50, 0xc6, 0xcb, 0x8b,
+	0xf3, 0xe5, 0x47, 0x52, 0x9e, 0x38, 0x5f, 0x7e, 0x2c, 0xe5, 0x89, 0xf3, 0xe5, 0x27, 0x52, 0x9e,
+	0x38, 0x5f, 0x7e, 0x2a, 0xe5, 0x89, 0xf3, 0xe5, 0x67, 0x52, 0x9e, 0x38, 0x5f, 0x7e, 0x2e, 0xe5,
+	0x89, 0xf3, 0xe5, 0x17, 0x52, 0x9e, 0x38, 0x5f, 0x7e, 0x29, 0xe5, 0x89, 0xf3, 0xe5, 0x57, 0x52,
+	0x9e, 0x38, 0x5f, 0x7e, 0x2d, 0xe3, 0xcd, 0x89, 0xf3, 0xe5, 0x37, 0x52, 0x9e, 0x38, 0x5f, 0x7e,
+	0x2b, 0xe5, 0x89, 0xf3, 0xe5, 0x77, 0x52, 0x9e, 0x38, 0x5f, 0x7e, 0x2f, 0xe5, 0x89, 0xf3, 0xe5,
+	0x0f, 0x52, 0x9e, 0x38, 0x5f, 0xfe, 0x28, 0xe5, 0x89, 0xf3, 0xe5, 0x4f, 0x52, 0x9e, 0x38, 0x5f,
+	0xfe, 0x2c, 0xe5, 0x89, 0xf3, 0xe5, 0x2f, 0x52, 0x9e, 0x38, 0x5f, 0xfe, 0x2a, 0xe3, 0x15, 0xc4,
+	0xf9, 0xf2, 0x37, 0x29, 0x4f, 0x9c, 0x2f, 0x7f, 0x97, 0xf2, 0xc4, 0xf9, 0xf2, 0x81, 0x94, 0x27,
+	0xce, 0x97, 0x7f, 0x48, 0x79, 0xe2, 0x7c, 0xf9, 0xa7, 0x94, 0x27, 0xce, 0x97, 0x7f, 0x49, 0x79,
+	0xe2, 0x7c, 0xf9, 0x50, 0xca, 0x13, 0xe7, 0xcb, 0x47, 0x52, 0x9e, 0x38, 0x5f, 0xfe, 0x2d, 0xe5,
+	0x89, 0xf3, 0xe5, 0x3f, 0x32, 0xde, 0xbc, 0x38, 0x5f, 0xfe, 0x3b, 0x98, 0xf7, 0xff, 0x00, 0x00,
+	0x00, 0xff, 0xff, 0xe8, 0x36, 0xff, 0x82, 0x12, 0x2a, 0x00, 0x00,
+}

+ 216 - 57
protoc-gen-go/descriptor/descriptor.pb.go

@@ -126,6 +126,7 @@ func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error {
 	*x = FieldDescriptorProto_Type(value)
 	return nil
 }
+func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} }
 
 type FieldDescriptorProto_Label int32
 
@@ -163,6 +164,9 @@ func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error {
 	*x = FieldDescriptorProto_Label(value)
 	return nil
 }
+func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor0, []int{3, 1}
+}
 
 // Generated classes can be optimized for speed or code size.
 type FileOptions_OptimizeMode int32
@@ -201,6 +205,7 @@ func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error {
 	*x = FileOptions_OptimizeMode(value)
 	return nil
 }
+func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{9, 0} }
 
 type FieldOptions_CType int32
 
@@ -238,6 +243,7 @@ func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error {
 	*x = FieldOptions_CType(value)
 	return nil
 }
+func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11, 0} }
 
 // The protocol compiler can output a FileDescriptorSet containing the .proto
 // files it parses.
@@ -246,9 +252,10 @@ type FileDescriptorSet struct {
 	XXX_unrecognized []byte                 `json:"-"`
 }
 
-func (m *FileDescriptorSet) Reset()         { *m = FileDescriptorSet{} }
-func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) }
-func (*FileDescriptorSet) ProtoMessage()    {}
+func (m *FileDescriptorSet) Reset()                    { *m = FileDescriptorSet{} }
+func (m *FileDescriptorSet) String() string            { return proto.CompactTextString(m) }
+func (*FileDescriptorSet) ProtoMessage()               {}
+func (*FileDescriptorSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 
 func (m *FileDescriptorSet) GetFile() []*FileDescriptorProto {
 	if m != nil {
@@ -285,9 +292,10 @@ type FileDescriptorProto struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *FileDescriptorProto) Reset()         { *m = FileDescriptorProto{} }
-func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*FileDescriptorProto) ProtoMessage()    {}
+func (m *FileDescriptorProto) Reset()                    { *m = FileDescriptorProto{} }
+func (m *FileDescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*FileDescriptorProto) ProtoMessage()               {}
+func (*FileDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
 
 func (m *FileDescriptorProto) GetName() string {
 	if m != nil && m.Name != nil {
@@ -386,9 +394,10 @@ type DescriptorProto struct {
 	XXX_unrecognized []byte                            `json:"-"`
 }
 
-func (m *DescriptorProto) Reset()         { *m = DescriptorProto{} }
-func (m *DescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*DescriptorProto) ProtoMessage()    {}
+func (m *DescriptorProto) Reset()                    { *m = DescriptorProto{} }
+func (m *DescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*DescriptorProto) ProtoMessage()               {}
+func (*DescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
 
 func (m *DescriptorProto) GetName() string {
 	if m != nil && m.Name != nil {
@@ -455,6 +464,9 @@ type DescriptorProto_ExtensionRange struct {
 func (m *DescriptorProto_ExtensionRange) Reset()         { *m = DescriptorProto_ExtensionRange{} }
 func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) }
 func (*DescriptorProto_ExtensionRange) ProtoMessage()    {}
+func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) {
+	return fileDescriptor0, []int{2, 0}
+}
 
 func (m *DescriptorProto_ExtensionRange) GetStart() int32 {
 	if m != nil && m.Start != nil {
@@ -507,9 +519,10 @@ type FieldDescriptorProto struct {
 	XXX_unrecognized []byte        `json:"-"`
 }
 
-func (m *FieldDescriptorProto) Reset()         { *m = FieldDescriptorProto{} }
-func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*FieldDescriptorProto) ProtoMessage()    {}
+func (m *FieldDescriptorProto) Reset()                    { *m = FieldDescriptorProto{} }
+func (m *FieldDescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*FieldDescriptorProto) ProtoMessage()               {}
+func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
 
 func (m *FieldDescriptorProto) GetName() string {
 	if m != nil && m.Name != nil {
@@ -587,9 +600,10 @@ type OneofDescriptorProto struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *OneofDescriptorProto) Reset()         { *m = OneofDescriptorProto{} }
-func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*OneofDescriptorProto) ProtoMessage()    {}
+func (m *OneofDescriptorProto) Reset()                    { *m = OneofDescriptorProto{} }
+func (m *OneofDescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*OneofDescriptorProto) ProtoMessage()               {}
+func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
 
 func (m *OneofDescriptorProto) GetName() string {
 	if m != nil && m.Name != nil {
@@ -606,9 +620,10 @@ type EnumDescriptorProto struct {
 	XXX_unrecognized []byte                      `json:"-"`
 }
 
-func (m *EnumDescriptorProto) Reset()         { *m = EnumDescriptorProto{} }
-func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*EnumDescriptorProto) ProtoMessage()    {}
+func (m *EnumDescriptorProto) Reset()                    { *m = EnumDescriptorProto{} }
+func (m *EnumDescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*EnumDescriptorProto) ProtoMessage()               {}
+func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
 
 func (m *EnumDescriptorProto) GetName() string {
 	if m != nil && m.Name != nil {
@@ -639,9 +654,10 @@ type EnumValueDescriptorProto struct {
 	XXX_unrecognized []byte            `json:"-"`
 }
 
-func (m *EnumValueDescriptorProto) Reset()         { *m = EnumValueDescriptorProto{} }
-func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*EnumValueDescriptorProto) ProtoMessage()    {}
+func (m *EnumValueDescriptorProto) Reset()                    { *m = EnumValueDescriptorProto{} }
+func (m *EnumValueDescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*EnumValueDescriptorProto) ProtoMessage()               {}
+func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
 
 func (m *EnumValueDescriptorProto) GetName() string {
 	if m != nil && m.Name != nil {
@@ -672,9 +688,10 @@ type ServiceDescriptorProto struct {
 	XXX_unrecognized []byte                   `json:"-"`
 }
 
-func (m *ServiceDescriptorProto) Reset()         { *m = ServiceDescriptorProto{} }
-func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*ServiceDescriptorProto) ProtoMessage()    {}
+func (m *ServiceDescriptorProto) Reset()                    { *m = ServiceDescriptorProto{} }
+func (m *ServiceDescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*ServiceDescriptorProto) ProtoMessage()               {}
+func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
 
 func (m *ServiceDescriptorProto) GetName() string {
 	if m != nil && m.Name != nil {
@@ -712,9 +729,10 @@ type MethodDescriptorProto struct {
 	XXX_unrecognized []byte `json:"-"`
 }
 
-func (m *MethodDescriptorProto) Reset()         { *m = MethodDescriptorProto{} }
-func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) }
-func (*MethodDescriptorProto) ProtoMessage()    {}
+func (m *MethodDescriptorProto) Reset()                    { *m = MethodDescriptorProto{} }
+func (m *MethodDescriptorProto) String() string            { return proto.CompactTextString(m) }
+func (*MethodDescriptorProto) ProtoMessage()               {}
+func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
 
 const Default_MethodDescriptorProto_ClientStreaming bool = false
 const Default_MethodDescriptorProto_ServerStreaming bool = false
@@ -832,9 +850,10 @@ type FileOptions struct {
 	XXX_unrecognized    []byte                    `json:"-"`
 }
 
-func (m *FileOptions) Reset()         { *m = FileOptions{} }
-func (m *FileOptions) String() string { return proto.CompactTextString(m) }
-func (*FileOptions) ProtoMessage()    {}
+func (m *FileOptions) Reset()                    { *m = FileOptions{} }
+func (m *FileOptions) String() string            { return proto.CompactTextString(m) }
+func (*FileOptions) ProtoMessage()               {}
+func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
 
 var extRange_FileOptions = []proto.ExtensionRange{
 	{1000, 536870911},
@@ -1008,9 +1027,10 @@ type MessageOptions struct {
 	XXX_unrecognized    []byte                    `json:"-"`
 }
 
-func (m *MessageOptions) Reset()         { *m = MessageOptions{} }
-func (m *MessageOptions) String() string { return proto.CompactTextString(m) }
-func (*MessageOptions) ProtoMessage()    {}
+func (m *MessageOptions) Reset()                    { *m = MessageOptions{} }
+func (m *MessageOptions) String() string            { return proto.CompactTextString(m) }
+func (*MessageOptions) ProtoMessage()               {}
+func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
 
 var extRange_MessageOptions = []proto.ExtensionRange{
 	{1000, 536870911},
@@ -1118,9 +1138,10 @@ type FieldOptions struct {
 	XXX_unrecognized    []byte                    `json:"-"`
 }
 
-func (m *FieldOptions) Reset()         { *m = FieldOptions{} }
-func (m *FieldOptions) String() string { return proto.CompactTextString(m) }
-func (*FieldOptions) ProtoMessage()    {}
+func (m *FieldOptions) Reset()                    { *m = FieldOptions{} }
+func (m *FieldOptions) String() string            { return proto.CompactTextString(m) }
+func (*FieldOptions) ProtoMessage()               {}
+func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
 
 var extRange_FieldOptions = []proto.ExtensionRange{
 	{1000, 536870911},
@@ -1198,9 +1219,10 @@ type EnumOptions struct {
 	XXX_unrecognized    []byte                    `json:"-"`
 }
 
-func (m *EnumOptions) Reset()         { *m = EnumOptions{} }
-func (m *EnumOptions) String() string { return proto.CompactTextString(m) }
-func (*EnumOptions) ProtoMessage()    {}
+func (m *EnumOptions) Reset()                    { *m = EnumOptions{} }
+func (m *EnumOptions) String() string            { return proto.CompactTextString(m) }
+func (*EnumOptions) ProtoMessage()               {}
+func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
 
 var extRange_EnumOptions = []proto.ExtensionRange{
 	{1000, 536870911},
@@ -1251,9 +1273,10 @@ type EnumValueOptions struct {
 	XXX_unrecognized    []byte                    `json:"-"`
 }
 
-func (m *EnumValueOptions) Reset()         { *m = EnumValueOptions{} }
-func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) }
-func (*EnumValueOptions) ProtoMessage()    {}
+func (m *EnumValueOptions) Reset()                    { *m = EnumValueOptions{} }
+func (m *EnumValueOptions) String() string            { return proto.CompactTextString(m) }
+func (*EnumValueOptions) ProtoMessage()               {}
+func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
 
 var extRange_EnumValueOptions = []proto.ExtensionRange{
 	{1000, 536870911},
@@ -1297,9 +1320,10 @@ type ServiceOptions struct {
 	XXX_unrecognized    []byte                    `json:"-"`
 }
 
-func (m *ServiceOptions) Reset()         { *m = ServiceOptions{} }
-func (m *ServiceOptions) String() string { return proto.CompactTextString(m) }
-func (*ServiceOptions) ProtoMessage()    {}
+func (m *ServiceOptions) Reset()                    { *m = ServiceOptions{} }
+func (m *ServiceOptions) String() string            { return proto.CompactTextString(m) }
+func (*ServiceOptions) ProtoMessage()               {}
+func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
 
 var extRange_ServiceOptions = []proto.ExtensionRange{
 	{1000, 536870911},
@@ -1343,9 +1367,10 @@ type MethodOptions struct {
 	XXX_unrecognized    []byte                    `json:"-"`
 }
 
-func (m *MethodOptions) Reset()         { *m = MethodOptions{} }
-func (m *MethodOptions) String() string { return proto.CompactTextString(m) }
-func (*MethodOptions) ProtoMessage()    {}
+func (m *MethodOptions) Reset()                    { *m = MethodOptions{} }
+func (m *MethodOptions) String() string            { return proto.CompactTextString(m) }
+func (*MethodOptions) ProtoMessage()               {}
+func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
 
 var extRange_MethodOptions = []proto.ExtensionRange{
 	{1000, 536870911},
@@ -1396,9 +1421,10 @@ type UninterpretedOption struct {
 	XXX_unrecognized []byte   `json:"-"`
 }
 
-func (m *UninterpretedOption) Reset()         { *m = UninterpretedOption{} }
-func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) }
-func (*UninterpretedOption) ProtoMessage()    {}
+func (m *UninterpretedOption) Reset()                    { *m = UninterpretedOption{} }
+func (m *UninterpretedOption) String() string            { return proto.CompactTextString(m) }
+func (*UninterpretedOption) ProtoMessage()               {}
+func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
 
 func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart {
 	if m != nil {
@@ -1463,6 +1489,9 @@ type UninterpretedOption_NamePart struct {
 func (m *UninterpretedOption_NamePart) Reset()         { *m = UninterpretedOption_NamePart{} }
 func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) }
 func (*UninterpretedOption_NamePart) ProtoMessage()    {}
+func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) {
+	return fileDescriptor0, []int{16, 0}
+}
 
 func (m *UninterpretedOption_NamePart) GetNamePart() string {
 	if m != nil && m.NamePart != nil {
@@ -1528,9 +1557,10 @@ type SourceCodeInfo struct {
 	XXX_unrecognized []byte                     `json:"-"`
 }
 
-func (m *SourceCodeInfo) Reset()         { *m = SourceCodeInfo{} }
-func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) }
-func (*SourceCodeInfo) ProtoMessage()    {}
+func (m *SourceCodeInfo) Reset()                    { *m = SourceCodeInfo{} }
+func (m *SourceCodeInfo) String() string            { return proto.CompactTextString(m) }
+func (*SourceCodeInfo) ProtoMessage()               {}
+func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
 
 func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location {
 	if m != nil {
@@ -1609,9 +1639,10 @@ type SourceCodeInfo_Location struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *SourceCodeInfo_Location) Reset()         { *m = SourceCodeInfo_Location{} }
-func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) }
-func (*SourceCodeInfo_Location) ProtoMessage()    {}
+func (m *SourceCodeInfo_Location) Reset()                    { *m = SourceCodeInfo_Location{} }
+func (m *SourceCodeInfo_Location) String() string            { return proto.CompactTextString(m) }
+func (*SourceCodeInfo_Location) ProtoMessage()               {}
+func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17, 0} }
 
 func (m *SourceCodeInfo_Location) GetPath() []int32 {
 	if m != nil {
@@ -1642,8 +1673,136 @@ func (m *SourceCodeInfo_Location) GetTrailingComments() string {
 }
 
 func init() {
+	proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet")
+	proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto")
+	proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto")
+	proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange")
+	proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto")
+	proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto")
+	proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto")
+	proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto")
+	proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto")
+	proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto")
+	proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions")
+	proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions")
+	proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions")
+	proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions")
+	proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions")
+	proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions")
+	proto.RegisterType((*MethodOptions)(nil), "google.protobuf.MethodOptions")
+	proto.RegisterType((*UninterpretedOption)(nil), "google.protobuf.UninterpretedOption")
+	proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart")
+	proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo")
+	proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location")
 	proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value)
 	proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value)
 	proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value)
 	proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value)
 }
+
+var fileDescriptor0 = []byte{
+	// 1635 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x72, 0xdb, 0xd4,
+	0x17, 0xff, 0xfb, 0x43, 0xfe, 0x38, 0x76, 0x1c, 0x45, 0x49, 0x5b, 0x35, 0xff, 0x96, 0xb4, 0xa6,
+	0x2d, 0x69, 0x69, 0x1d, 0x26, 0x2d, 0xa5, 0x84, 0x55, 0x3e, 0xd4, 0xd4, 0x33, 0x4e, 0x6c, 0x12,
+	0x87, 0xa1, 0x6c, 0x34, 0x37, 0xf2, 0xb5, 0xa3, 0x56, 0x96, 0x8c, 0x24, 0xa7, 0x4d, 0x19, 0x66,
+	0x78, 0x00, 0x98, 0xe1, 0x09, 0x18, 0x5e, 0x81, 0x0d, 0x2b, 0x36, 0xec, 0x79, 0x03, 0xb6, 0x0c,
+	0xf0, 0x18, 0x9c, 0x7b, 0xaf, 0x25, 0x4b, 0x8a, 0x9d, 0xb6, 0x4c, 0x4b, 0x57, 0xee, 0xb9, 0xbf,
+	0x73, 0xce, 0xef, 0x9e, 0xcf, 0xab, 0xc0, 0x95, 0x9e, 0xe3, 0xf4, 0x2c, 0xba, 0x32, 0x70, 0x1d,
+	0xdf, 0x39, 0x1c, 0x76, 0x57, 0x3a, 0xd4, 0x33, 0x5c, 0x73, 0xe0, 0x3b, 0x6e, 0x8d, 0xcb, 0x94,
+	0x59, 0x81, 0xa8, 0x05, 0x88, 0xea, 0x36, 0xcc, 0x3d, 0x34, 0x2d, 0xba, 0x15, 0x02, 0xf7, 0xa9,
+	0xaf, 0xac, 0x42, 0xb6, 0x8b, 0x42, 0x35, 0x75, 0x25, 0xb3, 0x5c, 0x5a, 0xbd, 0x56, 0x4b, 0x28,
+	0xd5, 0xe2, 0x1a, 0x2d, 0x26, 0xae, 0xfe, 0x9e, 0x81, 0xf9, 0x09, 0x72, 0xa5, 0x0c, 0x59, 0x9b,
+	0xf4, 0x99, 0xad, 0xd4, 0x72, 0x51, 0x99, 0x85, 0xfc, 0x80, 0x18, 0x4f, 0x49, 0x8f, 0xaa, 0x69,
+	0x2e, 0x50, 0x00, 0x3a, 0x74, 0x40, 0xed, 0x0e, 0xb5, 0x8d, 0x13, 0x35, 0x83, 0x0e, 0x8b, 0xca,
+	0x45, 0x98, 0x1b, 0x0c, 0x0f, 0x2d, 0xd3, 0xd0, 0x23, 0x47, 0x80, 0x47, 0x92, 0x72, 0x01, 0x66,
+	0x9f, 0x51, 0xf2, 0x34, 0x7a, 0x50, 0xe2, 0x07, 0xf7, 0xa1, 0xdc, 0xa7, 0x9e, 0x87, 0x86, 0x75,
+	0xff, 0x64, 0x40, 0xd5, 0x2c, 0xa7, 0x7e, 0xe5, 0x14, 0xf5, 0x24, 0xbd, 0x8f, 0xa0, 0x48, 0xed,
+	0x61, 0x5f, 0x28, 0x49, 0x53, 0xee, 0xab, 0x21, 0x22, 0xa9, 0xf8, 0x00, 0xf2, 0x1e, 0x75, 0x8f,
+	0x4d, 0x83, 0xaa, 0x39, 0xae, 0xf6, 0xde, 0x29, 0xb5, 0x7d, 0x71, 0x7e, 0x5a, 0xb3, 0x48, 0x9f,
+	0xfb, 0xd4, 0xf6, 0x4c, 0xc7, 0x56, 0xf3, 0x5c, 0xf7, 0xfa, 0x84, 0x10, 0x53, 0xab, 0x93, 0xd4,
+	0xbc, 0x03, 0x79, 0x67, 0xe0, 0xa3, 0x9a, 0xa7, 0x16, 0x30, 0x7a, 0xa5, 0xd5, 0x4b, 0x13, 0x53,
+	0xd3, 0x14, 0x18, 0xe5, 0x63, 0x90, 0x3d, 0x67, 0xe8, 0x1a, 0x54, 0x37, 0x9c, 0x0e, 0xd5, 0x4d,
+	0xbb, 0xeb, 0xa8, 0x45, 0xae, 0xb7, 0x74, 0x9a, 0x2b, 0x07, 0x6e, 0x22, 0xae, 0x8e, 0x30, 0xa5,
+	0x02, 0x39, 0xef, 0xc4, 0xf6, 0xc9, 0x73, 0xb5, 0xcc, 0xd2, 0x54, 0xfd, 0x23, 0x03, 0xb3, 0x67,
+	0x67, 0xf6, 0x1e, 0x48, 0x5d, 0xc6, 0x19, 0xf3, 0xfa, 0x1a, 0x37, 0x8a, 0xc5, 0x22, 0xf7, 0x3a,
+	0x9a, 0x1f, 0x42, 0xc9, 0xa6, 0x9e, 0x4f, 0x3b, 0x22, 0x75, 0x99, 0x7f, 0x93, 0xef, 0xec, 0x6b,
+	0xe4, 0xfb, 0x11, 0xcc, 0x86, 0x4c, 0x75, 0x97, 0xd8, 0xbd, 0xa0, 0x5c, 0x56, 0x5e, 0xe6, 0xb3,
+	0xa6, 0x05, 0x7a, 0x7b, 0x4c, 0x0d, 0xd3, 0x02, 0x8e, 0x4d, 0x9d, 0x2e, 0x16, 0xb1, 0x61, 0x61,
+	0x22, 0x27, 0x5f, 0xba, 0xc9, 0x20, 0x49, 0x12, 0x1f, 0x8c, 0x0b, 0x20, 0x3f, 0x25, 0x91, 0x3b,
+	0xa2, 0x0b, 0x46, 0x35, 0xb0, 0x78, 0x1b, 0x2a, 0x09, 0xf7, 0x33, 0x20, 0x79, 0x3e, 0x71, 0x7d,
+	0x9e, 0x37, 0x49, 0x29, 0x41, 0x06, 0x3b, 0x89, 0x77, 0xa3, 0x54, 0xfd, 0x45, 0x82, 0x85, 0x89,
+	0xd1, 0x8e, 0xe7, 0x1a, 0xab, 0x03, 0x23, 0x74, 0x48, 0x5d, 0x0c, 0x3b, 0xb3, 0xb1, 0x06, 0x92,
+	0x45, 0x0e, 0xa9, 0x85, 0x01, 0x4d, 0x2d, 0x57, 0x56, 0xdf, 0x7f, 0xa5, 0x0c, 0xd6, 0x1a, 0x4c,
+	0x05, 0x2b, 0x20, 0x3b, 0xea, 0x3d, 0xa6, 0x7a, 0xeb, 0xd5, 0x54, 0xdb, 0xa8, 0xa1, 0xcc, 0x41,
+	0x91, 0x69, 0xea, 0x9c, 0x58, 0x8e, 0x13, 0x93, 0xa1, 0xc0, 0x93, 0xd4, 0xa1, 0xc1, 0x7c, 0x39,
+	0x07, 0x33, 0x1d, 0xda, 0x25, 0x43, 0xcb, 0xd7, 0x8f, 0x89, 0x35, 0xa4, 0x3c, 0x6e, 0x45, 0x65,
+	0x1e, 0x4a, 0x22, 0x07, 0x26, 0x62, 0x9f, 0xf3, 0xae, 0x90, 0x98, 0xc1, 0x27, 0x1e, 0x66, 0x97,
+	0x1b, 0x04, 0x8e, 0xab, 0x25, 0x3b, 0xee, 0xf2, 0x64, 0x82, 0xa3, 0x70, 0x57, 0x7f, 0x4e, 0x43,
+	0x96, 0x93, 0x9b, 0x85, 0x52, 0xfb, 0x71, 0x4b, 0xd3, 0xb7, 0x9a, 0x07, 0x1b, 0x0d, 0x4d, 0x4e,
+	0x61, 0xcc, 0x80, 0x0b, 0x1e, 0x36, 0x9a, 0xeb, 0x6d, 0x39, 0x1d, 0xfe, 0xbf, 0xbe, 0xdb, 0xbe,
+	0x7f, 0x4f, 0xce, 0x84, 0x0a, 0x07, 0x42, 0x90, 0x8d, 0x02, 0xee, 0xae, 0xca, 0x12, 0xde, 0xad,
+	0x2c, 0x0c, 0xd4, 0x3f, 0xd7, 0xb6, 0x10, 0x91, 0x8b, 0x4b, 0x10, 0x93, 0xc7, 0xdc, 0x16, 0xb9,
+	0x64, 0xa3, 0xd9, 0x6c, 0xc8, 0x85, 0xd0, 0xe6, 0x7e, 0x7b, 0xaf, 0xbe, 0xbb, 0x2d, 0x17, 0x43,
+	0x9b, 0xdb, 0x7b, 0xcd, 0x83, 0x96, 0x0c, 0xa1, 0x85, 0x1d, 0x6d, 0x7f, 0x7f, 0x7d, 0x5b, 0x93,
+	0x4b, 0x21, 0x62, 0xe3, 0x71, 0x5b, 0xdb, 0x97, 0xcb, 0x31, 0x5a, 0xe8, 0x62, 0x26, 0x74, 0xa1,
+	0xed, 0x1e, 0xec, 0xc8, 0x15, 0x8c, 0xd9, 0x8c, 0x70, 0x11, 0x90, 0x98, 0x4d, 0x88, 0x90, 0xa9,
+	0x3c, 0x26, 0x22, 0xac, 0xcc, 0xc5, 0x04, 0x88, 0x50, 0xaa, 0x9b, 0x20, 0x89, 0x7a, 0x50, 0xa0,
+	0xd2, 0x58, 0xdf, 0xd0, 0x1a, 0x7a, 0xb3, 0xd5, 0xae, 0x37, 0x77, 0xd7, 0x1b, 0x18, 0xbb, 0x50,
+	0xb6, 0xa7, 0x7d, 0x7a, 0x50, 0xdf, 0xd3, 0xb6, 0x30, 0x7e, 0x11, 0x59, 0x4b, 0x5b, 0x6f, 0xa3,
+	0x2c, 0x53, 0xbd, 0x06, 0x0b, 0x13, 0xdb, 0x26, 0x56, 0xbd, 0xd5, 0x6f, 0x53, 0x30, 0x3f, 0xa9,
+	0xc3, 0xe3, 0x35, 0xfe, 0x00, 0x24, 0x51, 0x30, 0x62, 0x9e, 0xdd, 0x9c, 0x38, 0x24, 0x3e, 0x63,
+	0x88, 0x33, 0xa6, 0x74, 0x66, 0xca, 0x94, 0x66, 0xba, 0x41, 0xc9, 0x58, 0xa0, 0x4e, 0x35, 0x35,
+	0xad, 0xed, 0x78, 0xb7, 0xe2, 0x9a, 0x4e, 0x38, 0xba, 0x3a, 0x9d, 0x64, 0xe0, 0xed, 0xfb, 0x14,
+	0x9c, 0x9f, 0xb2, 0x97, 0xe2, 0xce, 0xee, 0x43, 0xae, 0x4f, 0xfd, 0x23, 0x27, 0x18, 0xe8, 0x37,
+	0x26, 0x4c, 0x1a, 0x76, 0x7c, 0xc6, 0x88, 0xca, 0x4c, 0xdb, 0x35, 0xc2, 0x7f, 0x40, 0xe9, 0xd7,
+	0x14, 0x9c, 0x9b, 0x6c, 0x2b, 0xce, 0x08, 0x9f, 0x0a, 0xa6, 0x3d, 0x18, 0xfa, 0x62, 0x76, 0xa7,
+	0xc3, 0x3e, 0x1e, 0xfa, 0xa1, 0x30, 0xc3, 0x85, 0x2b, 0x63, 0x0a, 0x59, 0x4e, 0xe1, 0x9d, 0x29,
+	0xdc, 0x83, 0x45, 0xb9, 0x04, 0xb2, 0x61, 0x99, 0xd4, 0xf6, 0x75, 0xcf, 0x77, 0x29, 0xe9, 0x9b,
+	0x76, 0x8f, 0xcf, 0xa3, 0xc2, 0x9a, 0xd4, 0x25, 0x96, 0x47, 0x19, 0x80, 0x2d, 0x7b, 0xea, 0x46,
+	0x00, 0xb9, 0x08, 0xa0, 0xfa, 0x5b, 0x16, 0x4a, 0xd1, 0xd5, 0xbb, 0x00, 0xe5, 0x27, 0xe4, 0x98,
+	0xe8, 0xc1, 0x63, 0x47, 0xdc, 0xe0, 0x12, 0x2c, 0x70, 0x29, 0x52, 0x46, 0x53, 0x86, 0x45, 0x3c,
+	0x8f, 0xdf, 0xaf, 0xc0, 0x4f, 0xab, 0x30, 0xcf, 0x4f, 0xfb, 0x38, 0xac, 0xcc, 0x81, 0x45, 0x75,
+	0xf6, 0x06, 0xf3, 0xf8, 0x20, 0x0a, 0x89, 0xdc, 0x86, 0xcb, 0x1c, 0xd3, 0xa3, 0x36, 0x75, 0x89,
+	0x4f, 0x75, 0xfa, 0xe5, 0x10, 0x0f, 0x74, 0x62, 0x77, 0xf4, 0x23, 0xe2, 0x1d, 0xa9, 0x0b, 0x51,
+	0xf4, 0x75, 0x38, 0xcf, 0xd1, 0x48, 0x1a, 0x19, 0xeb, 0xc6, 0x11, 0x35, 0x9e, 0xea, 0x43, 0xbf,
+	0xfb, 0x40, 0xfd, 0x7f, 0x14, 0xf6, 0x10, 0xca, 0x2c, 0x5e, 0x7d, 0xf3, 0x05, 0xfa, 0x74, 0x5c,
+	0x3e, 0x0d, 0x2b, 0x13, 0x2a, 0x3e, 0x72, 0xc1, 0x5a, 0x73, 0xa4, 0xb0, 0x83, 0x2f, 0x86, 0x35,
+	0x69, 0xbf, 0xa5, 0x69, 0x5b, 0x2c, 0x41, 0x3d, 0x27, 0xbc, 0x72, 0x29, 0xb8, 0x94, 0x61, 0x08,
+	0xba, 0xf8, 0x9e, 0x1b, 0xbd, 0x98, 0x3c, 0x55, 0x8e, 0xfa, 0xbf, 0x06, 0xe7, 0xc6, 0x97, 0x8a,
+	0xa2, 0xe6, 0xa2, 0x28, 0xb4, 0x34, 0x38, 0x39, 0x8d, 0x51, 0xa2, 0x98, 0x8b, 0xfc, 0x35, 0xe9,
+	0x52, 0x03, 0x43, 0xd3, 0x51, 0x2f, 0x24, 0x52, 0x88, 0x44, 0xa8, 0x4d, 0x0e, 0x31, 0xb2, 0xc4,
+	0xc5, 0x1f, 0x9e, 0xba, 0x14, 0x05, 0x6c, 0xc2, 0xc2, 0xd0, 0x36, 0x6d, 0xcc, 0x0c, 0x1a, 0x60,
+	0xef, 0x0a, 0x51, 0x43, 0xea, 0x5f, 0xf9, 0x29, 0xaf, 0x84, 0x83, 0x28, 0x5a, 0xc4, 0xa5, 0xba,
+	0x06, 0xe5, 0x68, 0x64, 0x94, 0x22, 0x88, 0xd8, 0xe0, 0x10, 0xc3, 0xc1, 0xb9, 0xd9, 0xdc, 0x62,
+	0x23, 0xef, 0x0b, 0x0d, 0xe7, 0x17, 0x8e, 0xde, 0x46, 0xbd, 0xad, 0xe9, 0x7b, 0x07, 0xbb, 0xed,
+	0xfa, 0x8e, 0x26, 0x67, 0x6e, 0x15, 0x0b, 0x7f, 0xe7, 0xe5, 0x6f, 0xf0, 0x5f, 0xba, 0xfa, 0x67,
+	0x0a, 0x2a, 0xf1, 0x45, 0xae, 0xdc, 0x80, 0x0b, 0xc1, 0x03, 0xd7, 0xa3, 0xbe, 0xfe, 0xcc, 0x74,
+	0x79, 0xb2, 0xfa, 0x44, 0x2c, 0xf2, 0xf0, 0x1a, 0x35, 0x58, 0xb2, 0x1d, 0xcc, 0x38, 0x56, 0x04,
+	0x71, 0x3b, 0xfa, 0xf8, 0x0b, 0x40, 0x27, 0x06, 0xc6, 0xcb, 0x73, 0xc4, 0xf4, 0x98, 0x12, 0xb2,
+	0x4c, 0xf4, 0x08, 0xf7, 0x61, 0x9f, 0x0c, 0x30, 0x66, 0xbe, 0x7b, 0xc2, 0xf7, 0x66, 0xe1, 0x8d,
+	0x04, 0x29, 0x7a, 0xd1, 0x1f, 0xd3, 0x50, 0x8e, 0x2e, 0x50, 0xf6, 0x94, 0x30, 0x78, 0x2b, 0xa7,
+	0x78, 0x11, 0xbe, 0x7b, 0xe6, 0xba, 0xad, 0x6d, 0xb2, 0x5d, 0xbb, 0x96, 0x13, 0xfb, 0x8d, 0xcd,
+	0x47, 0x56, 0x7c, 0x54, 0xbc, 0x66, 0x0a, 0x38, 0x1c, 0xb2, 0x16, 0x79, 0x71, 0x12, 0x6f, 0xe5,
+	0x33, 0xee, 0x8b, 0x78, 0xf6, 0x71, 0x11, 0xef, 0xb8, 0x37, 0x52, 0x16, 0x2b, 0x20, 0x71, 0xaa,
+	0xd8, 0x21, 0x23, 0xb2, 0xf2, 0xff, 0x94, 0x02, 0x64, 0x37, 0x9b, 0x7b, 0xac, 0x34, 0xb0, 0x16,
+	0x84, 0x54, 0x6f, 0xd5, 0xb5, 0x4d, 0xac, 0x8e, 0x68, 0x88, 0xbe, 0x4b, 0x41, 0x29, 0xb2, 0x2f,
+	0xd8, 0xc8, 0x23, 0x96, 0xe5, 0x3c, 0xd3, 0x89, 0x65, 0x62, 0x0d, 0x8b, 0xab, 0x9e, 0x71, 0xab,
+	0x37, 0x9d, 0xb2, 0xaf, 0x41, 0x4e, 0x6e, 0x95, 0x84, 0xfb, 0xd4, 0xdb, 0x74, 0xff, 0x15, 0x54,
+	0xe2, 0xfb, 0x23, 0xe1, 0xfc, 0xea, 0xdb, 0x74, 0xfe, 0x02, 0x66, 0xe2, 0x9b, 0xe3, 0x3f, 0xf4,
+	0xfd, 0x43, 0x1a, 0xe6, 0x27, 0x40, 0x94, 0x4f, 0x46, 0x4b, 0x52, 0xac, 0xe9, 0x3b, 0xaf, 0x62,
+	0xb6, 0xb6, 0x8b, 0x0a, 0x2d, 0xfc, 0x06, 0x50, 0x54, 0x90, 0x4d, 0xfc, 0x8c, 0xf6, 0x4d, 0xfc,
+	0x76, 0x73, 0x47, 0x2f, 0x64, 0xb1, 0x44, 0x17, 0x41, 0x19, 0x38, 0x9e, 0xe9, 0x9b, 0xc7, 0xec,
+	0xcb, 0x31, 0x78, 0x3d, 0xb3, 0x7d, 0x9a, 0x65, 0x67, 0x36, 0xed, 0x91, 0xc4, 0x19, 0x6b, 0xb3,
+	0x0c, 0xdb, 0x7c, 0x1d, 0x67, 0xc8, 0x86, 0xac, 0x90, 0xb2, 0x35, 0x99, 0x62, 0xd2, 0xd1, 0x12,
+	0x1a, 0xbf, 0xc2, 0xcb, 0xec, 0x6b, 0x9e, 0xf4, 0x7a, 0x2e, 0x33, 0x15, 0xc0, 0xf9, 0x2a, 0x5c,
+	0xbc, 0x0b, 0x85, 0x90, 0x22, 0x4e, 0x21, 0x76, 0x3f, 0xdc, 0x2b, 0xfc, 0x9b, 0x25, 0x8d, 0xdc,
+	0xd0, 0x9a, 0xe9, 0xe9, 0xe3, 0x0f, 0xc7, 0x34, 0x4a, 0x0b, 0xd5, 0x9f, 0x70, 0x68, 0x26, 0x3e,
+	0x63, 0xd7, 0xa0, 0x60, 0x39, 0x98, 0x1b, 0x06, 0x12, 0x7f, 0xcc, 0x58, 0x7e, 0xc9, 0x97, 0x6f,
+	0xad, 0x31, 0xc2, 0x2f, 0x1a, 0x50, 0x08, 0x7e, 0x63, 0x83, 0x66, 0x07, 0xc4, 0x3f, 0xe2, 0x36,
+	0xa4, 0x8d, 0x34, 0x6f, 0xd9, 0xac, 0x37, 0x20, 0x36, 0x8f, 0xba, 0x90, 0x60, 0x28, 0x2d, 0x4a,
+	0x3a, 0x7c, 0xd1, 0x3a, 0xfd, 0x3e, 0x06, 0xd5, 0x1b, 0x85, 0xf2, 0x22, 0xcc, 0xf9, 0x2e, 0x31,
+	0xad, 0xd8, 0x11, 0x8b, 0x64, 0x71, 0xe3, 0x26, 0xae, 0x47, 0xa7, 0x9f, 0xe4, 0xb4, 0x21, 0x27,
+	0x5e, 0x42, 0xde, 0xa3, 0xd4, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xe5, 0x5c, 0x96, 0xdd,
+	0x11, 0x00, 0x00,
+}

+ 39 - 9
protoc-gen-go/plugin/plugin.pb.go

@@ -47,9 +47,10 @@ type CodeGeneratorRequest struct {
 	XXX_unrecognized []byte                                 `json:"-"`
 }
 
-func (m *CodeGeneratorRequest) Reset()         { *m = CodeGeneratorRequest{} }
-func (m *CodeGeneratorRequest) String() string { return proto.CompactTextString(m) }
-func (*CodeGeneratorRequest) ProtoMessage()    {}
+func (m *CodeGeneratorRequest) Reset()                    { *m = CodeGeneratorRequest{} }
+func (m *CodeGeneratorRequest) String() string            { return proto.CompactTextString(m) }
+func (*CodeGeneratorRequest) ProtoMessage()               {}
+func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 
 func (m *CodeGeneratorRequest) GetFileToGenerate() []string {
 	if m != nil {
@@ -87,9 +88,10 @@ type CodeGeneratorResponse struct {
 	XXX_unrecognized []byte                        `json:"-"`
 }
 
-func (m *CodeGeneratorResponse) Reset()         { *m = CodeGeneratorResponse{} }
-func (m *CodeGeneratorResponse) String() string { return proto.CompactTextString(m) }
-func (*CodeGeneratorResponse) ProtoMessage()    {}
+func (m *CodeGeneratorResponse) Reset()                    { *m = CodeGeneratorResponse{} }
+func (m *CodeGeneratorResponse) String() string            { return proto.CompactTextString(m) }
+func (*CodeGeneratorResponse) ProtoMessage()               {}
+func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
 
 func (m *CodeGeneratorResponse) GetError() string {
 	if m != nil && m.Error != nil {
@@ -162,9 +164,10 @@ type CodeGeneratorResponse_File struct {
 	XXX_unrecognized []byte  `json:"-"`
 }
 
-func (m *CodeGeneratorResponse_File) Reset()         { *m = CodeGeneratorResponse_File{} }
-func (m *CodeGeneratorResponse_File) String() string { return proto.CompactTextString(m) }
-func (*CodeGeneratorResponse_File) ProtoMessage()    {}
+func (m *CodeGeneratorResponse_File) Reset()                    { *m = CodeGeneratorResponse_File{} }
+func (m *CodeGeneratorResponse_File) String() string            { return proto.CompactTextString(m) }
+func (*CodeGeneratorResponse_File) ProtoMessage()               {}
+func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} }
 
 func (m *CodeGeneratorResponse_File) GetName() string {
 	if m != nil && m.Name != nil {
@@ -186,3 +189,30 @@ func (m *CodeGeneratorResponse_File) GetContent() string {
 	}
 	return ""
 }
+
+func init() {
+	proto.RegisterType((*CodeGeneratorRequest)(nil), "google.protobuf.compiler.CodeGeneratorRequest")
+	proto.RegisterType((*CodeGeneratorResponse)(nil), "google.protobuf.compiler.CodeGeneratorResponse")
+	proto.RegisterType((*CodeGeneratorResponse_File)(nil), "google.protobuf.compiler.CodeGeneratorResponse.File")
+}
+
+var fileDescriptor0 = []byte{
+	// 269 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x91, 0xc1, 0x4a, 0xc3, 0x40,
+	0x10, 0x86, 0xa9, 0x46, 0xa4, 0x63, 0x25, 0x1a, 0x14, 0x43, 0xf1, 0x10, 0x44, 0xc1, 0x83, 0x6c,
+	0x40, 0x3c, 0x78, 0xf2, 0x10, 0x45, 0xaf, 0xc5, 0x17, 0x08, 0x31, 0x9d, 0x86, 0x85, 0x74, 0x67,
+	0x9d, 0xdd, 0x1c, 0x7d, 0x21, 0x9f, 0xd2, 0xc9, 0xa6, 0x15, 0x09, 0xf6, 0x14, 0xf8, 0xe7, 0xcf,
+	0xf7, 0xcd, 0xb0, 0x70, 0xd3, 0x10, 0x35, 0x2d, 0xe6, 0x96, 0xc9, 0xd3, 0x47, 0xb7, 0xca, 0x6b,
+	0x5a, 0x5b, 0xdd, 0x22, 0xe7, 0xb6, 0xed, 0x1a, 0x6d, 0x54, 0x18, 0x24, 0xe9, 0x50, 0x53, 0xdb,
+	0x9a, 0xda, 0xd6, 0xe6, 0xd9, 0x18, 0xb0, 0x44, 0x57, 0xb3, 0xb6, 0x9e, 0x78, 0x68, 0x5f, 0x7d,
+	0xc1, 0xd9, 0x33, 0x2d, 0xf1, 0x0d, 0x0d, 0x72, 0x25, 0xf1, 0x3b, 0x7e, 0x76, 0xe8, 0x7c, 0x92,
+	0xc2, 0xc9, 0x4a, 0x10, 0xa5, 0xa7, 0xb2, 0x19, 0x66, 0x98, 0x4e, 0xb2, 0xfd, 0xdb, 0x69, 0x72,
+	0x0a, 0x53, 0x5b, 0x71, 0xb5, 0x46, 0x8f, 0x9c, 0xee, 0x65, 0x13, 0x89, 0x1e, 0x01, 0x02, 0xad,
+	0xec, 0x7f, 0x49, 0x63, 0xa9, 0x1d, 0xdd, 0x5f, 0xab, 0xf1, 0x56, 0xaf, 0x32, 0x7c, 0xf9, 0xf5,
+	0x2f, 0x82, 0xfe, 0x7b, 0x02, 0xe7, 0x23, 0xbf, 0xb3, 0x64, 0x1c, 0x26, 0xc7, 0x70, 0x80, 0xcc,
+	0xc4, 0x62, 0xed, 0x15, 0x05, 0x44, 0x7f, 0xe0, 0x0f, 0x6a, 0xd7, 0xc9, 0xea, 0x5f, 0x5a, 0x70,
+	0xcf, 0x9f, 0x20, 0xea, 0xbf, 0xc9, 0x0c, 0x22, 0x23, 0xfb, 0x6f, 0xc8, 0x17, 0x10, 0x6b, 0xa9,
+	0xb0, 0xd7, 0x64, 0x4a, 0x4b, 0xda, 0xf8, 0xcd, 0x55, 0x31, 0x1c, 0xd6, 0x64, 0x3c, 0x4a, 0x10,
+	0xf7, 0x41, 0x71, 0x07, 0x97, 0xa2, 0xd9, 0xa9, 0x2e, 0x66, 0x8b, 0xf0, 0x2a, 0xe1, 0x32, 0xf7,
+	0x13, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x18, 0x2a, 0x2a, 0xbd, 0x01, 0x00, 0x00,
+}