Explorar o código

Correct some mistakes (#316)

* Regenerate

* Correct some mistakes

Most notable is the bug in (*proto.Properties).Parse, for which I've
added a test.

Found with honnef.co/go/tools/cmd/staticcheck.

	proto/properties.go:218:2: this value of s is never used (SA4006)
	proto/properties.go:329:5: ineffective break statement. Did you mean to break out of the outer loop? (SA4011)
	protoc-gen-go/generator/generator.go:1686:5: this value of obj is never used (SA4006)
Tamir Duberstein %!s(int64=8) %!d(string=hai) anos
pai
achega
013f295b1c

+ 1 - 1
Makefile

@@ -50,6 +50,6 @@ regenerate:
 	make -C protoc-gen-go/descriptor regenerate
 	make -C protoc-gen-go/plugin regenerate
 	make -C protoc-gen-go/testdata regenerate
-	make -C proto/testdata regenerate
+	make -C proto/test_proto regenerate
 	make -C jsonpb/jsonpb_test_proto regenerate
 	make -C _conformance regenerate

+ 1 - 1
_conformance/Makefile

@@ -30,4 +30,4 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 regenerate:
-	protoc --go_out=Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any,Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration,Mgoogle/protobuf/struct.proto=github.com/golang/protobuf/ptypes/struct,Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,Mgoogle/protobuf/wrappers.proto=github.com/golang/protobuf/ptypes/wrappers,Mgoogle/protobuf/field_mask.proto=google.golang.org/genproto/protobuf:. conformance_proto/conformance.proto
+	protoc -Iconformance_proto -I$(HOME)/src/protobuf/src --go_out=Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any,Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration,Mgoogle/protobuf/struct.proto=github.com/golang/protobuf/ptypes/struct,Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,Mgoogle/protobuf/wrappers.proto=github.com/golang/protobuf/ptypes/wrappers,Mgoogle/protobuf/field_mask.proto=google.golang.org/genproto/protobuf:. conformance_proto/conformance.proto

+ 2003 - 0
_conformance/conformance.pb.go

@@ -0,0 +1,2003 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: conformance.proto
+
+/*
+Package conformance is a generated protocol buffer package.
+
+It is generated from these files:
+	conformance.proto
+
+It has these top-level messages:
+	ConformanceRequest
+	ConformanceResponse
+	TestAllTypes
+	ForeignMessage
+*/
+package conformance
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import google_protobuf "github.com/golang/protobuf/ptypes/any"
+import google_protobuf1 "github.com/golang/protobuf/ptypes/duration"
+import google_protobuf2 "google.golang.org/genproto/protobuf"
+import google_protobuf3 "github.com/golang/protobuf/ptypes/struct"
+import google_protobuf4 "github.com/golang/protobuf/ptypes/timestamp"
+import google_protobuf5 "github.com/golang/protobuf/ptypes/wrappers"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+type WireFormat int32
+
+const (
+	WireFormat_UNSPECIFIED WireFormat = 0
+	WireFormat_PROTOBUF    WireFormat = 1
+	WireFormat_JSON        WireFormat = 2
+)
+
+var WireFormat_name = map[int32]string{
+	0: "UNSPECIFIED",
+	1: "PROTOBUF",
+	2: "JSON",
+}
+var WireFormat_value = map[string]int32{
+	"UNSPECIFIED": 0,
+	"PROTOBUF":    1,
+	"JSON":        2,
+}
+
+func (x WireFormat) String() string {
+	return proto.EnumName(WireFormat_name, int32(x))
+}
+func (WireFormat) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+
+type ForeignEnum int32
+
+const (
+	ForeignEnum_FOREIGN_FOO ForeignEnum = 0
+	ForeignEnum_FOREIGN_BAR ForeignEnum = 1
+	ForeignEnum_FOREIGN_BAZ ForeignEnum = 2
+)
+
+var ForeignEnum_name = map[int32]string{
+	0: "FOREIGN_FOO",
+	1: "FOREIGN_BAR",
+	2: "FOREIGN_BAZ",
+}
+var ForeignEnum_value = map[string]int32{
+	"FOREIGN_FOO": 0,
+	"FOREIGN_BAR": 1,
+	"FOREIGN_BAZ": 2,
+}
+
+func (x ForeignEnum) String() string {
+	return proto.EnumName(ForeignEnum_name, int32(x))
+}
+func (ForeignEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+
+type TestAllTypes_NestedEnum int32
+
+const (
+	TestAllTypes_FOO TestAllTypes_NestedEnum = 0
+	TestAllTypes_BAR TestAllTypes_NestedEnum = 1
+	TestAllTypes_BAZ TestAllTypes_NestedEnum = 2
+	TestAllTypes_NEG TestAllTypes_NestedEnum = -1
+)
+
+var TestAllTypes_NestedEnum_name = map[int32]string{
+	0:  "FOO",
+	1:  "BAR",
+	2:  "BAZ",
+	-1: "NEG",
+}
+var TestAllTypes_NestedEnum_value = map[string]int32{
+	"FOO": 0,
+	"BAR": 1,
+	"BAZ": 2,
+	"NEG": -1,
+}
+
+func (x TestAllTypes_NestedEnum) String() string {
+	return proto.EnumName(TestAllTypes_NestedEnum_name, int32(x))
+}
+func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
+
+// Represents a single test case's input.  The testee should:
+//
+//   1. parse this proto (which should always succeed)
+//   2. parse the protobuf or JSON payload in "payload" (which may fail)
+//   3. if the parse succeeded, serialize the message in the requested format.
+type ConformanceRequest struct {
+	// The payload (whether protobuf of JSON) is always for a TestAllTypes proto
+	// (see below).
+	//
+	// Types that are valid to be assigned to Payload:
+	//	*ConformanceRequest_ProtobufPayload
+	//	*ConformanceRequest_JsonPayload
+	Payload isConformanceRequest_Payload `protobuf_oneof:"payload"`
+	// Which format should the testee serialize its message to?
+	RequestedOutputFormat WireFormat `protobuf:"varint,3,opt,name=requested_output_format,json=requestedOutputFormat,enum=conformance.WireFormat" json:"requested_output_format,omitempty"`
+	XXX_NoUnkeyedLiteral  struct{}   `json:"-"`
+	XXX_unrecognized      []byte     `protobuf_unrecognized:"proto3" json:"-"`
+	XXX_sizecache         int32      `json:"-"`
+}
+
+func (m *ConformanceRequest) Reset()                    { *m = ConformanceRequest{} }
+func (m *ConformanceRequest) String() string            { return proto.CompactTextString(m) }
+func (*ConformanceRequest) ProtoMessage()               {}
+func (*ConformanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+func (m *ConformanceRequest) Unmarshal(b []byte) error {
+	return xxx_messageInfo_ConformanceRequest.Unmarshal(m, b)
+}
+func (m *ConformanceRequest) Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ConformanceRequest.Marshal(b, m, deterministic)
+}
+func (dst *ConformanceRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ConformanceRequest.Merge(dst, src)
+}
+func (m *ConformanceRequest) XXX_Size() int {
+	return xxx_messageInfo_ConformanceRequest.Size(m)
+}
+func (m *ConformanceRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_ConformanceRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConformanceRequest proto.InternalMessageInfo
+
+type isConformanceRequest_Payload interface {
+	isConformanceRequest_Payload()
+}
+
+type ConformanceRequest_ProtobufPayload struct {
+	ProtobufPayload []byte `protobuf:"bytes,1,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"`
+}
+type ConformanceRequest_JsonPayload struct {
+	JsonPayload string `protobuf:"bytes,2,opt,name=json_payload,json=jsonPayload,oneof"`
+}
+
+func (*ConformanceRequest_ProtobufPayload) isConformanceRequest_Payload() {}
+func (*ConformanceRequest_JsonPayload) isConformanceRequest_Payload()     {}
+
+func (m *ConformanceRequest) GetPayload() isConformanceRequest_Payload {
+	if m != nil {
+		return m.Payload
+	}
+	return nil
+}
+
+func (m *ConformanceRequest) GetProtobufPayload() []byte {
+	if x, ok := m.GetPayload().(*ConformanceRequest_ProtobufPayload); ok {
+		return x.ProtobufPayload
+	}
+	return nil
+}
+
+func (m *ConformanceRequest) GetJsonPayload() string {
+	if x, ok := m.GetPayload().(*ConformanceRequest_JsonPayload); ok {
+		return x.JsonPayload
+	}
+	return ""
+}
+
+func (m *ConformanceRequest) GetRequestedOutputFormat() WireFormat {
+	if m != nil {
+		return m.RequestedOutputFormat
+	}
+	return WireFormat_UNSPECIFIED
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*ConformanceRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _ConformanceRequest_OneofMarshaler, _ConformanceRequest_OneofUnmarshaler, _ConformanceRequest_OneofSizer, []interface{}{
+		(*ConformanceRequest_ProtobufPayload)(nil),
+		(*ConformanceRequest_JsonPayload)(nil),
+	}
+}
+
+func _ConformanceRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*ConformanceRequest)
+	// payload
+	switch x := m.Payload.(type) {
+	case *ConformanceRequest_ProtobufPayload:
+		b.EncodeVarint(1<<3 | proto.WireBytes)
+		b.EncodeRawBytes(x.ProtobufPayload)
+	case *ConformanceRequest_JsonPayload:
+		b.EncodeVarint(2<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.JsonPayload)
+	case nil:
+	default:
+		return fmt.Errorf("ConformanceRequest.Payload has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _ConformanceRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*ConformanceRequest)
+	switch tag {
+	case 1: // payload.protobuf_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeRawBytes(true)
+		m.Payload = &ConformanceRequest_ProtobufPayload{x}
+		return true, err
+	case 2: // payload.json_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Payload = &ConformanceRequest_JsonPayload{x}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _ConformanceRequest_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*ConformanceRequest)
+	// payload
+	switch x := m.Payload.(type) {
+	case *ConformanceRequest_ProtobufPayload:
+		n += proto.SizeVarint(1<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.ProtobufPayload)))
+		n += len(x.ProtobufPayload)
+	case *ConformanceRequest_JsonPayload:
+		n += proto.SizeVarint(2<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.JsonPayload)))
+		n += len(x.JsonPayload)
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// Represents a single test case's output.
+type ConformanceResponse struct {
+	// Types that are valid to be assigned to Result:
+	//	*ConformanceResponse_ParseError
+	//	*ConformanceResponse_SerializeError
+	//	*ConformanceResponse_RuntimeError
+	//	*ConformanceResponse_ProtobufPayload
+	//	*ConformanceResponse_JsonPayload
+	//	*ConformanceResponse_Skipped
+	Result               isConformanceResponse_Result `protobuf_oneof:"result"`
+	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
+	XXX_unrecognized     []byte                       `protobuf_unrecognized:"proto3" json:"-"`
+	XXX_sizecache        int32                        `json:"-"`
+}
+
+func (m *ConformanceResponse) Reset()                    { *m = ConformanceResponse{} }
+func (m *ConformanceResponse) String() string            { return proto.CompactTextString(m) }
+func (*ConformanceResponse) ProtoMessage()               {}
+func (*ConformanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+func (m *ConformanceResponse) Unmarshal(b []byte) error {
+	return xxx_messageInfo_ConformanceResponse.Unmarshal(m, b)
+}
+func (m *ConformanceResponse) Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ConformanceResponse.Marshal(b, m, deterministic)
+}
+func (dst *ConformanceResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ConformanceResponse.Merge(dst, src)
+}
+func (m *ConformanceResponse) XXX_Size() int {
+	return xxx_messageInfo_ConformanceResponse.Size(m)
+}
+func (m *ConformanceResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_ConformanceResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConformanceResponse proto.InternalMessageInfo
+
+type isConformanceResponse_Result interface {
+	isConformanceResponse_Result()
+}
+
+type ConformanceResponse_ParseError struct {
+	ParseError string `protobuf:"bytes,1,opt,name=parse_error,json=parseError,oneof"`
+}
+type ConformanceResponse_SerializeError struct {
+	SerializeError string `protobuf:"bytes,6,opt,name=serialize_error,json=serializeError,oneof"`
+}
+type ConformanceResponse_RuntimeError struct {
+	RuntimeError string `protobuf:"bytes,2,opt,name=runtime_error,json=runtimeError,oneof"`
+}
+type ConformanceResponse_ProtobufPayload struct {
+	ProtobufPayload []byte `protobuf:"bytes,3,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"`
+}
+type ConformanceResponse_JsonPayload struct {
+	JsonPayload string `protobuf:"bytes,4,opt,name=json_payload,json=jsonPayload,oneof"`
+}
+type ConformanceResponse_Skipped struct {
+	Skipped string `protobuf:"bytes,5,opt,name=skipped,oneof"`
+}
+
+func (*ConformanceResponse_ParseError) isConformanceResponse_Result()      {}
+func (*ConformanceResponse_SerializeError) isConformanceResponse_Result()  {}
+func (*ConformanceResponse_RuntimeError) isConformanceResponse_Result()    {}
+func (*ConformanceResponse_ProtobufPayload) isConformanceResponse_Result() {}
+func (*ConformanceResponse_JsonPayload) isConformanceResponse_Result()     {}
+func (*ConformanceResponse_Skipped) isConformanceResponse_Result()         {}
+
+func (m *ConformanceResponse) GetResult() isConformanceResponse_Result {
+	if m != nil {
+		return m.Result
+	}
+	return nil
+}
+
+func (m *ConformanceResponse) GetParseError() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_ParseError); ok {
+		return x.ParseError
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetSerializeError() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_SerializeError); ok {
+		return x.SerializeError
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetRuntimeError() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_RuntimeError); ok {
+		return x.RuntimeError
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetProtobufPayload() []byte {
+	if x, ok := m.GetResult().(*ConformanceResponse_ProtobufPayload); ok {
+		return x.ProtobufPayload
+	}
+	return nil
+}
+
+func (m *ConformanceResponse) GetJsonPayload() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_JsonPayload); ok {
+		return x.JsonPayload
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetSkipped() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_Skipped); ok {
+		return x.Skipped
+	}
+	return ""
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*ConformanceResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _ConformanceResponse_OneofMarshaler, _ConformanceResponse_OneofUnmarshaler, _ConformanceResponse_OneofSizer, []interface{}{
+		(*ConformanceResponse_ParseError)(nil),
+		(*ConformanceResponse_SerializeError)(nil),
+		(*ConformanceResponse_RuntimeError)(nil),
+		(*ConformanceResponse_ProtobufPayload)(nil),
+		(*ConformanceResponse_JsonPayload)(nil),
+		(*ConformanceResponse_Skipped)(nil),
+	}
+}
+
+func _ConformanceResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*ConformanceResponse)
+	// result
+	switch x := m.Result.(type) {
+	case *ConformanceResponse_ParseError:
+		b.EncodeVarint(1<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.ParseError)
+	case *ConformanceResponse_SerializeError:
+		b.EncodeVarint(6<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.SerializeError)
+	case *ConformanceResponse_RuntimeError:
+		b.EncodeVarint(2<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.RuntimeError)
+	case *ConformanceResponse_ProtobufPayload:
+		b.EncodeVarint(3<<3 | proto.WireBytes)
+		b.EncodeRawBytes(x.ProtobufPayload)
+	case *ConformanceResponse_JsonPayload:
+		b.EncodeVarint(4<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.JsonPayload)
+	case *ConformanceResponse_Skipped:
+		b.EncodeVarint(5<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.Skipped)
+	case nil:
+	default:
+		return fmt.Errorf("ConformanceResponse.Result has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _ConformanceResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*ConformanceResponse)
+	switch tag {
+	case 1: // result.parse_error
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_ParseError{x}
+		return true, err
+	case 6: // result.serialize_error
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_SerializeError{x}
+		return true, err
+	case 2: // result.runtime_error
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_RuntimeError{x}
+		return true, err
+	case 3: // result.protobuf_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeRawBytes(true)
+		m.Result = &ConformanceResponse_ProtobufPayload{x}
+		return true, err
+	case 4: // result.json_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_JsonPayload{x}
+		return true, err
+	case 5: // result.skipped
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_Skipped{x}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _ConformanceResponse_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*ConformanceResponse)
+	// result
+	switch x := m.Result.(type) {
+	case *ConformanceResponse_ParseError:
+		n += proto.SizeVarint(1<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.ParseError)))
+		n += len(x.ParseError)
+	case *ConformanceResponse_SerializeError:
+		n += proto.SizeVarint(6<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.SerializeError)))
+		n += len(x.SerializeError)
+	case *ConformanceResponse_RuntimeError:
+		n += proto.SizeVarint(2<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.RuntimeError)))
+		n += len(x.RuntimeError)
+	case *ConformanceResponse_ProtobufPayload:
+		n += proto.SizeVarint(3<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.ProtobufPayload)))
+		n += len(x.ProtobufPayload)
+	case *ConformanceResponse_JsonPayload:
+		n += proto.SizeVarint(4<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.JsonPayload)))
+		n += len(x.JsonPayload)
+	case *ConformanceResponse_Skipped:
+		n += proto.SizeVarint(5<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.Skipped)))
+		n += len(x.Skipped)
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// This proto includes every type of field in both singular and repeated
+// forms.
+type TestAllTypes struct {
+	// Singular
+	OptionalInt32          int32                       `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"`
+	OptionalInt64          int64                       `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"`
+	OptionalUint32         uint32                      `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"`
+	OptionalUint64         uint64                      `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"`
+	OptionalSint32         int32                       `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"`
+	OptionalSint64         int64                       `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"`
+	OptionalFixed32        uint32                      `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"`
+	OptionalFixed64        uint64                      `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"`
+	OptionalSfixed32       int32                       `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"`
+	OptionalSfixed64       int64                       `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"`
+	OptionalFloat          float32                     `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"`
+	OptionalDouble         float64                     `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"`
+	OptionalBool           bool                        `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"`
+	OptionalString         string                      `protobuf:"bytes,14,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"`
+	OptionalBytes          []byte                      `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"`
+	OptionalNestedMessage  *TestAllTypes_NestedMessage `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
+	OptionalForeignMessage *ForeignMessage             `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage" json:"optional_foreign_message,omitempty"`
+	OptionalNestedEnum     TestAllTypes_NestedEnum     `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,enum=conformance.TestAllTypes_NestedEnum" json:"optional_nested_enum,omitempty"`
+	OptionalForeignEnum    ForeignEnum                 `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,enum=conformance.ForeignEnum" json:"optional_foreign_enum,omitempty"`
+	OptionalStringPiece    string                      `protobuf:"bytes,24,opt,name=optional_string_piece,json=optionalStringPiece" json:"optional_string_piece,omitempty"`
+	OptionalCord           string                      `protobuf:"bytes,25,opt,name=optional_cord,json=optionalCord" json:"optional_cord,omitempty"`
+	RecursiveMessage       *TestAllTypes               `protobuf:"bytes,27,opt,name=recursive_message,json=recursiveMessage" json:"recursive_message,omitempty"`
+	// Repeated
+	RepeatedInt32          []int32                       `protobuf:"varint,31,rep,packed,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"`
+	RepeatedInt64          []int64                       `protobuf:"varint,32,rep,packed,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"`
+	RepeatedUint32         []uint32                      `protobuf:"varint,33,rep,packed,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"`
+	RepeatedUint64         []uint64                      `protobuf:"varint,34,rep,packed,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"`
+	RepeatedSint32         []int32                       `protobuf:"zigzag32,35,rep,packed,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"`
+	RepeatedSint64         []int64                       `protobuf:"zigzag64,36,rep,packed,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"`
+	RepeatedFixed32        []uint32                      `protobuf:"fixed32,37,rep,packed,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"`
+	RepeatedFixed64        []uint64                      `protobuf:"fixed64,38,rep,packed,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"`
+	RepeatedSfixed32       []int32                       `protobuf:"fixed32,39,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"`
+	RepeatedSfixed64       []int64                       `protobuf:"fixed64,40,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"`
+	RepeatedFloat          []float32                     `protobuf:"fixed32,41,rep,packed,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"`
+	RepeatedDouble         []float64                     `protobuf:"fixed64,42,rep,packed,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"`
+	RepeatedBool           []bool                        `protobuf:"varint,43,rep,packed,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"`
+	RepeatedString         []string                      `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"`
+	RepeatedBytes          [][]byte                      `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"`
+	RepeatedNestedMessage  []*TestAllTypes_NestedMessage `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage" json:"repeated_nested_message,omitempty"`
+	RepeatedForeignMessage []*ForeignMessage             `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage" json:"repeated_foreign_message,omitempty"`
+	RepeatedNestedEnum     []TestAllTypes_NestedEnum     `protobuf:"varint,51,rep,packed,name=repeated_nested_enum,json=repeatedNestedEnum,enum=conformance.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"`
+	RepeatedForeignEnum    []ForeignEnum                 `protobuf:"varint,52,rep,packed,name=repeated_foreign_enum,json=repeatedForeignEnum,enum=conformance.ForeignEnum" json:"repeated_foreign_enum,omitempty"`
+	RepeatedStringPiece    []string                      `protobuf:"bytes,54,rep,name=repeated_string_piece,json=repeatedStringPiece" json:"repeated_string_piece,omitempty"`
+	RepeatedCord           []string                      `protobuf:"bytes,55,rep,name=repeated_cord,json=repeatedCord" json:"repeated_cord,omitempty"`
+	// Map
+	MapInt32Int32           map[int32]int32                        `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	MapInt64Int64           map[int64]int64                        `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	MapUint32Uint32         map[uint32]uint32                      `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	MapUint64Uint64         map[uint64]uint64                      `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	MapSint32Sint32         map[int32]int32                        `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"`
+	MapSint64Sint64         map[int64]int64                        `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"`
+	MapFixed32Fixed32       map[uint32]uint32                      `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
+	MapFixed64Fixed64       map[uint64]uint64                      `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
+	MapSfixed32Sfixed32     map[int32]int32                        `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
+	MapSfixed64Sfixed64     map[int64]int64                        `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
+	MapInt32Float           map[int32]float32                      `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
+	MapInt32Double          map[int32]float64                      `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
+	MapBoolBool             map[bool]bool                          `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
+	MapStringString         map[string]string                      `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	MapStringBytes          map[string][]byte                      `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	MapStringNestedMessage  map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	MapStringForeignMessage map[string]*ForeignMessage             `protobuf:"bytes,72,rep,name=map_string_foreign_message,json=mapStringForeignMessage" json:"map_string_foreign_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	MapStringNestedEnum     map[string]TestAllTypes_NestedEnum     `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=conformance.TestAllTypes_NestedEnum"`
+	MapStringForeignEnum    map[string]ForeignEnum                 `protobuf:"bytes,74,rep,name=map_string_foreign_enum,json=mapStringForeignEnum" json:"map_string_foreign_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=conformance.ForeignEnum"`
+	// Types that are valid to be assigned to OneofField:
+	//	*TestAllTypes_OneofUint32
+	//	*TestAllTypes_OneofNestedMessage
+	//	*TestAllTypes_OneofString
+	//	*TestAllTypes_OneofBytes
+	//	*TestAllTypes_OneofBool
+	//	*TestAllTypes_OneofUint64
+	//	*TestAllTypes_OneofFloat
+	//	*TestAllTypes_OneofDouble
+	//	*TestAllTypes_OneofEnum
+	OneofField isTestAllTypes_OneofField `protobuf_oneof:"oneof_field"`
+	// Well-known types
+	OptionalBoolWrapper   *google_protobuf5.BoolValue     `protobuf:"bytes,201,opt,name=optional_bool_wrapper,json=optionalBoolWrapper" json:"optional_bool_wrapper,omitempty"`
+	OptionalInt32Wrapper  *google_protobuf5.Int32Value    `protobuf:"bytes,202,opt,name=optional_int32_wrapper,json=optionalInt32Wrapper" json:"optional_int32_wrapper,omitempty"`
+	OptionalInt64Wrapper  *google_protobuf5.Int64Value    `protobuf:"bytes,203,opt,name=optional_int64_wrapper,json=optionalInt64Wrapper" json:"optional_int64_wrapper,omitempty"`
+	OptionalUint32Wrapper *google_protobuf5.UInt32Value   `protobuf:"bytes,204,opt,name=optional_uint32_wrapper,json=optionalUint32Wrapper" json:"optional_uint32_wrapper,omitempty"`
+	OptionalUint64Wrapper *google_protobuf5.UInt64Value   `protobuf:"bytes,205,opt,name=optional_uint64_wrapper,json=optionalUint64Wrapper" json:"optional_uint64_wrapper,omitempty"`
+	OptionalFloatWrapper  *google_protobuf5.FloatValue    `protobuf:"bytes,206,opt,name=optional_float_wrapper,json=optionalFloatWrapper" json:"optional_float_wrapper,omitempty"`
+	OptionalDoubleWrapper *google_protobuf5.DoubleValue   `protobuf:"bytes,207,opt,name=optional_double_wrapper,json=optionalDoubleWrapper" json:"optional_double_wrapper,omitempty"`
+	OptionalStringWrapper *google_protobuf5.StringValue   `protobuf:"bytes,208,opt,name=optional_string_wrapper,json=optionalStringWrapper" json:"optional_string_wrapper,omitempty"`
+	OptionalBytesWrapper  *google_protobuf5.BytesValue    `protobuf:"bytes,209,opt,name=optional_bytes_wrapper,json=optionalBytesWrapper" json:"optional_bytes_wrapper,omitempty"`
+	RepeatedBoolWrapper   []*google_protobuf5.BoolValue   `protobuf:"bytes,211,rep,name=repeated_bool_wrapper,json=repeatedBoolWrapper" json:"repeated_bool_wrapper,omitempty"`
+	RepeatedInt32Wrapper  []*google_protobuf5.Int32Value  `protobuf:"bytes,212,rep,name=repeated_int32_wrapper,json=repeatedInt32Wrapper" json:"repeated_int32_wrapper,omitempty"`
+	RepeatedInt64Wrapper  []*google_protobuf5.Int64Value  `protobuf:"bytes,213,rep,name=repeated_int64_wrapper,json=repeatedInt64Wrapper" json:"repeated_int64_wrapper,omitempty"`
+	RepeatedUint32Wrapper []*google_protobuf5.UInt32Value `protobuf:"bytes,214,rep,name=repeated_uint32_wrapper,json=repeatedUint32Wrapper" json:"repeated_uint32_wrapper,omitempty"`
+	RepeatedUint64Wrapper []*google_protobuf5.UInt64Value `protobuf:"bytes,215,rep,name=repeated_uint64_wrapper,json=repeatedUint64Wrapper" json:"repeated_uint64_wrapper,omitempty"`
+	RepeatedFloatWrapper  []*google_protobuf5.FloatValue  `protobuf:"bytes,216,rep,name=repeated_float_wrapper,json=repeatedFloatWrapper" json:"repeated_float_wrapper,omitempty"`
+	RepeatedDoubleWrapper []*google_protobuf5.DoubleValue `protobuf:"bytes,217,rep,name=repeated_double_wrapper,json=repeatedDoubleWrapper" json:"repeated_double_wrapper,omitempty"`
+	RepeatedStringWrapper []*google_protobuf5.StringValue `protobuf:"bytes,218,rep,name=repeated_string_wrapper,json=repeatedStringWrapper" json:"repeated_string_wrapper,omitempty"`
+	RepeatedBytesWrapper  []*google_protobuf5.BytesValue  `protobuf:"bytes,219,rep,name=repeated_bytes_wrapper,json=repeatedBytesWrapper" json:"repeated_bytes_wrapper,omitempty"`
+	OptionalDuration      *google_protobuf1.Duration      `protobuf:"bytes,301,opt,name=optional_duration,json=optionalDuration" json:"optional_duration,omitempty"`
+	OptionalTimestamp     *google_protobuf4.Timestamp     `protobuf:"bytes,302,opt,name=optional_timestamp,json=optionalTimestamp" json:"optional_timestamp,omitempty"`
+	OptionalFieldMask     *google_protobuf2.FieldMask     `protobuf:"bytes,303,opt,name=optional_field_mask,json=optionalFieldMask" json:"optional_field_mask,omitempty"`
+	OptionalStruct        *google_protobuf3.Struct        `protobuf:"bytes,304,opt,name=optional_struct,json=optionalStruct" json:"optional_struct,omitempty"`
+	OptionalAny           *google_protobuf.Any            `protobuf:"bytes,305,opt,name=optional_any,json=optionalAny" json:"optional_any,omitempty"`
+	OptionalValue         *google_protobuf3.Value         `protobuf:"bytes,306,opt,name=optional_value,json=optionalValue" json:"optional_value,omitempty"`
+	RepeatedDuration      []*google_protobuf1.Duration    `protobuf:"bytes,311,rep,name=repeated_duration,json=repeatedDuration" json:"repeated_duration,omitempty"`
+	RepeatedTimestamp     []*google_protobuf4.Timestamp   `protobuf:"bytes,312,rep,name=repeated_timestamp,json=repeatedTimestamp" json:"repeated_timestamp,omitempty"`
+	RepeatedFieldmask     []*google_protobuf2.FieldMask   `protobuf:"bytes,313,rep,name=repeated_fieldmask,json=repeatedFieldmask" json:"repeated_fieldmask,omitempty"`
+	RepeatedStruct        []*google_protobuf3.Struct      `protobuf:"bytes,324,rep,name=repeated_struct,json=repeatedStruct" json:"repeated_struct,omitempty"`
+	RepeatedAny           []*google_protobuf.Any          `protobuf:"bytes,315,rep,name=repeated_any,json=repeatedAny" json:"repeated_any,omitempty"`
+	RepeatedValue         []*google_protobuf3.Value       `protobuf:"bytes,316,rep,name=repeated_value,json=repeatedValue" json:"repeated_value,omitempty"`
+	// Test field-name-to-JSON-name convention.
+	// (protobuf says names can be any valid C/C++ identifier.)
+	Fieldname1           int32    `protobuf:"varint,401,opt,name=fieldname1" json:"fieldname1,omitempty"`
+	FieldName2           int32    `protobuf:"varint,402,opt,name=field_name2,json=fieldName2" json:"field_name2,omitempty"`
+	XFieldName3          int32    `protobuf:"varint,403,opt,name=_field_name3,json=FieldName3" json:"_field_name3,omitempty"`
+	Field_Name4_         int32    `protobuf:"varint,404,opt,name=field__name4_,json=fieldName4" json:"field__name4_,omitempty"`
+	Field0Name5          int32    `protobuf:"varint,405,opt,name=field0name5" json:"field0name5,omitempty"`
+	Field_0Name6         int32    `protobuf:"varint,406,opt,name=field_0_name6,json=field0Name6" json:"field_0_name6,omitempty"`
+	FieldName7           int32    `protobuf:"varint,407,opt,name=fieldName7" json:"fieldName7,omitempty"`
+	FieldName8           int32    `protobuf:"varint,408,opt,name=FieldName8" json:"FieldName8,omitempty"`
+	Field_Name9          int32    `protobuf:"varint,409,opt,name=field_Name9,json=fieldName9" json:"field_Name9,omitempty"`
+	Field_Name10         int32    `protobuf:"varint,410,opt,name=Field_Name10,json=FieldName10" json:"Field_Name10,omitempty"`
+	FIELD_NAME11         int32    `protobuf:"varint,411,opt,name=FIELD_NAME11,json=FIELDNAME11" json:"FIELD_NAME11,omitempty"`
+	FIELDName12          int32    `protobuf:"varint,412,opt,name=FIELD_name12,json=FIELDName12" json:"FIELD_name12,omitempty"`
+	XFieldName13         int32    `protobuf:"varint,413,opt,name=__field_name13,json=FieldName13" json:"__field_name13,omitempty"`
+	X_FieldName14        int32    `protobuf:"varint,414,opt,name=__Field_name14,json=FieldName14" json:"__Field_name14,omitempty"`
+	Field_Name15         int32    `protobuf:"varint,415,opt,name=field__name15,json=fieldName15" json:"field__name15,omitempty"`
+	Field__Name16        int32    `protobuf:"varint,416,opt,name=field__Name16,json=fieldName16" json:"field__Name16,omitempty"`
+	FieldName17__        int32    `protobuf:"varint,417,opt,name=field_name17__,json=fieldName17" json:"field_name17__,omitempty"`
+	FieldName18__        int32    `protobuf:"varint,418,opt,name=Field_name18__,json=FieldName18" json:"Field_name18__,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `protobuf_unrecognized:"proto3" json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *TestAllTypes) Reset()                    { *m = TestAllTypes{} }
+func (m *TestAllTypes) String() string            { return proto.CompactTextString(m) }
+func (*TestAllTypes) ProtoMessage()               {}
+func (*TestAllTypes) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+func (m *TestAllTypes) Unmarshal(b []byte) error {
+	return xxx_messageInfo_TestAllTypes.Unmarshal(m, b)
+}
+func (m *TestAllTypes) Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_TestAllTypes.Marshal(b, m, deterministic)
+}
+func (dst *TestAllTypes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_TestAllTypes.Merge(dst, src)
+}
+func (m *TestAllTypes) XXX_Size() int {
+	return xxx_messageInfo_TestAllTypes.Size(m)
+}
+func (m *TestAllTypes) XXX_DiscardUnknown() {
+	xxx_messageInfo_TestAllTypes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TestAllTypes proto.InternalMessageInfo
+
+type isTestAllTypes_OneofField interface {
+	isTestAllTypes_OneofField()
+}
+
+type TestAllTypes_OneofUint32 struct {
+	OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,oneof"`
+}
+type TestAllTypes_OneofNestedMessage struct {
+	OneofNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,oneof"`
+}
+type TestAllTypes_OneofString struct {
+	OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,oneof"`
+}
+type TestAllTypes_OneofBytes struct {
+	OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"`
+}
+type TestAllTypes_OneofBool struct {
+	OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,oneof"`
+}
+type TestAllTypes_OneofUint64 struct {
+	OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,oneof"`
+}
+type TestAllTypes_OneofFloat struct {
+	OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,oneof"`
+}
+type TestAllTypes_OneofDouble struct {
+	OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,oneof"`
+}
+type TestAllTypes_OneofEnum struct {
+	OneofEnum TestAllTypes_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,enum=conformance.TestAllTypes_NestedEnum,oneof"`
+}
+
+func (*TestAllTypes_OneofUint32) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofNestedMessage) isTestAllTypes_OneofField() {}
+func (*TestAllTypes_OneofString) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofBytes) isTestAllTypes_OneofField()         {}
+func (*TestAllTypes_OneofBool) isTestAllTypes_OneofField()          {}
+func (*TestAllTypes_OneofUint64) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofFloat) isTestAllTypes_OneofField()         {}
+func (*TestAllTypes_OneofDouble) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofEnum) isTestAllTypes_OneofField()          {}
+
+func (m *TestAllTypes) GetOneofField() isTestAllTypes_OneofField {
+	if m != nil {
+		return m.OneofField
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalInt32() int32 {
+	if m != nil {
+		return m.OptionalInt32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalInt64() int64 {
+	if m != nil {
+		return m.OptionalInt64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalUint32() uint32 {
+	if m != nil {
+		return m.OptionalUint32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalUint64() uint64 {
+	if m != nil {
+		return m.OptionalUint64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSint32() int32 {
+	if m != nil {
+		return m.OptionalSint32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSint64() int64 {
+	if m != nil {
+		return m.OptionalSint64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalFixed32() uint32 {
+	if m != nil {
+		return m.OptionalFixed32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalFixed64() uint64 {
+	if m != nil {
+		return m.OptionalFixed64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSfixed32() int32 {
+	if m != nil {
+		return m.OptionalSfixed32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSfixed64() int64 {
+	if m != nil {
+		return m.OptionalSfixed64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalFloat() float32 {
+	if m != nil {
+		return m.OptionalFloat
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalDouble() float64 {
+	if m != nil {
+		return m.OptionalDouble
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalBool() bool {
+	if m != nil {
+		return m.OptionalBool
+	}
+	return false
+}
+
+func (m *TestAllTypes) GetOptionalString() string {
+	if m != nil {
+		return m.OptionalString
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetOptionalBytes() []byte {
+	if m != nil {
+		return m.OptionalBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalNestedMessage() *TestAllTypes_NestedMessage {
+	if m != nil {
+		return m.OptionalNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalForeignMessage() *ForeignMessage {
+	if m != nil {
+		return m.OptionalForeignMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalNestedEnum() TestAllTypes_NestedEnum {
+	if m != nil {
+		return m.OptionalNestedEnum
+	}
+	return TestAllTypes_FOO
+}
+
+func (m *TestAllTypes) GetOptionalForeignEnum() ForeignEnum {
+	if m != nil {
+		return m.OptionalForeignEnum
+	}
+	return ForeignEnum_FOREIGN_FOO
+}
+
+func (m *TestAllTypes) GetOptionalStringPiece() string {
+	if m != nil {
+		return m.OptionalStringPiece
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetOptionalCord() string {
+	if m != nil {
+		return m.OptionalCord
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetRecursiveMessage() *TestAllTypes {
+	if m != nil {
+		return m.RecursiveMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt32() []int32 {
+	if m != nil {
+		return m.RepeatedInt32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt64() []int64 {
+	if m != nil {
+		return m.RepeatedInt64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint32() []uint32 {
+	if m != nil {
+		return m.RepeatedUint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint64() []uint64 {
+	if m != nil {
+		return m.RepeatedUint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSint32() []int32 {
+	if m != nil {
+		return m.RepeatedSint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSint64() []int64 {
+	if m != nil {
+		return m.RepeatedSint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFixed32() []uint32 {
+	if m != nil {
+		return m.RepeatedFixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFixed64() []uint64 {
+	if m != nil {
+		return m.RepeatedFixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSfixed32() []int32 {
+	if m != nil {
+		return m.RepeatedSfixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSfixed64() []int64 {
+	if m != nil {
+		return m.RepeatedSfixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFloat() []float32 {
+	if m != nil {
+		return m.RepeatedFloat
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedDouble() []float64 {
+	if m != nil {
+		return m.RepeatedDouble
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBool() []bool {
+	if m != nil {
+		return m.RepeatedBool
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedString() []string {
+	if m != nil {
+		return m.RepeatedString
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBytes() [][]byte {
+	if m != nil {
+		return m.RepeatedBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage {
+	if m != nil {
+		return m.RepeatedNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedForeignMessage() []*ForeignMessage {
+	if m != nil {
+		return m.RepeatedForeignMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum {
+	if m != nil {
+		return m.RepeatedNestedEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedForeignEnum() []ForeignEnum {
+	if m != nil {
+		return m.RepeatedForeignEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedStringPiece() []string {
+	if m != nil {
+		return m.RepeatedStringPiece
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedCord() []string {
+	if m != nil {
+		return m.RepeatedCord
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt32Int32() map[int32]int32 {
+	if m != nil {
+		return m.MapInt32Int32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt64Int64() map[int64]int64 {
+	if m != nil {
+		return m.MapInt64Int64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 {
+	if m != nil {
+		return m.MapUint32Uint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 {
+	if m != nil {
+		return m.MapUint64Uint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSint32Sint32() map[int32]int32 {
+	if m != nil {
+		return m.MapSint32Sint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSint64Sint64() map[int64]int64 {
+	if m != nil {
+		return m.MapSint64Sint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapFixed32Fixed32() map[uint32]uint32 {
+	if m != nil {
+		return m.MapFixed32Fixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapFixed64Fixed64() map[uint64]uint64 {
+	if m != nil {
+		return m.MapFixed64Fixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSfixed32Sfixed32() map[int32]int32 {
+	if m != nil {
+		return m.MapSfixed32Sfixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSfixed64Sfixed64() map[int64]int64 {
+	if m != nil {
+		return m.MapSfixed64Sfixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt32Float() map[int32]float32 {
+	if m != nil {
+		return m.MapInt32Float
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt32Double() map[int32]float64 {
+	if m != nil {
+		return m.MapInt32Double
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapBoolBool() map[bool]bool {
+	if m != nil {
+		return m.MapBoolBool
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringString() map[string]string {
+	if m != nil {
+		return m.MapStringString
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringBytes() map[string][]byte {
+	if m != nil {
+		return m.MapStringBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringNestedMessage() map[string]*TestAllTypes_NestedMessage {
+	if m != nil {
+		return m.MapStringNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringForeignMessage() map[string]*ForeignMessage {
+	if m != nil {
+		return m.MapStringForeignMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringNestedEnum() map[string]TestAllTypes_NestedEnum {
+	if m != nil {
+		return m.MapStringNestedEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringForeignEnum() map[string]ForeignEnum {
+	if m != nil {
+		return m.MapStringForeignEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOneofUint32() uint32 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint32); ok {
+		return x.OneofUint32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofNestedMessage() *TestAllTypes_NestedMessage {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofNestedMessage); ok {
+		return x.OneofNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOneofString() string {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofString); ok {
+		return x.OneofString
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetOneofBytes() []byte {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofBytes); ok {
+		return x.OneofBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOneofBool() bool {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofBool); ok {
+		return x.OneofBool
+	}
+	return false
+}
+
+func (m *TestAllTypes) GetOneofUint64() uint64 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint64); ok {
+		return x.OneofUint64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofFloat() float32 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofFloat); ok {
+		return x.OneofFloat
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofDouble() float64 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofDouble); ok {
+		return x.OneofDouble
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofEnum() TestAllTypes_NestedEnum {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofEnum); ok {
+		return x.OneofEnum
+	}
+	return TestAllTypes_FOO
+}
+
+func (m *TestAllTypes) GetOptionalBoolWrapper() *google_protobuf5.BoolValue {
+	if m != nil {
+		return m.OptionalBoolWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalInt32Wrapper() *google_protobuf5.Int32Value {
+	if m != nil {
+		return m.OptionalInt32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalInt64Wrapper() *google_protobuf5.Int64Value {
+	if m != nil {
+		return m.OptionalInt64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalUint32Wrapper() *google_protobuf5.UInt32Value {
+	if m != nil {
+		return m.OptionalUint32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalUint64Wrapper() *google_protobuf5.UInt64Value {
+	if m != nil {
+		return m.OptionalUint64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalFloatWrapper() *google_protobuf5.FloatValue {
+	if m != nil {
+		return m.OptionalFloatWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalDoubleWrapper() *google_protobuf5.DoubleValue {
+	if m != nil {
+		return m.OptionalDoubleWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalStringWrapper() *google_protobuf5.StringValue {
+	if m != nil {
+		return m.OptionalStringWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalBytesWrapper() *google_protobuf5.BytesValue {
+	if m != nil {
+		return m.OptionalBytesWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBoolWrapper() []*google_protobuf5.BoolValue {
+	if m != nil {
+		return m.RepeatedBoolWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt32Wrapper() []*google_protobuf5.Int32Value {
+	if m != nil {
+		return m.RepeatedInt32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt64Wrapper() []*google_protobuf5.Int64Value {
+	if m != nil {
+		return m.RepeatedInt64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint32Wrapper() []*google_protobuf5.UInt32Value {
+	if m != nil {
+		return m.RepeatedUint32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint64Wrapper() []*google_protobuf5.UInt64Value {
+	if m != nil {
+		return m.RepeatedUint64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFloatWrapper() []*google_protobuf5.FloatValue {
+	if m != nil {
+		return m.RepeatedFloatWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedDoubleWrapper() []*google_protobuf5.DoubleValue {
+	if m != nil {
+		return m.RepeatedDoubleWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedStringWrapper() []*google_protobuf5.StringValue {
+	if m != nil {
+		return m.RepeatedStringWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBytesWrapper() []*google_protobuf5.BytesValue {
+	if m != nil {
+		return m.RepeatedBytesWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalDuration() *google_protobuf1.Duration {
+	if m != nil {
+		return m.OptionalDuration
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalTimestamp() *google_protobuf4.Timestamp {
+	if m != nil {
+		return m.OptionalTimestamp
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalFieldMask() *google_protobuf2.FieldMask {
+	if m != nil {
+		return m.OptionalFieldMask
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalStruct() *google_protobuf3.Struct {
+	if m != nil {
+		return m.OptionalStruct
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalAny() *google_protobuf.Any {
+	if m != nil {
+		return m.OptionalAny
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalValue() *google_protobuf3.Value {
+	if m != nil {
+		return m.OptionalValue
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedDuration() []*google_protobuf1.Duration {
+	if m != nil {
+		return m.RepeatedDuration
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedTimestamp() []*google_protobuf4.Timestamp {
+	if m != nil {
+		return m.RepeatedTimestamp
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFieldmask() []*google_protobuf2.FieldMask {
+	if m != nil {
+		return m.RepeatedFieldmask
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedStruct() []*google_protobuf3.Struct {
+	if m != nil {
+		return m.RepeatedStruct
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedAny() []*google_protobuf.Any {
+	if m != nil {
+		return m.RepeatedAny
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedValue() []*google_protobuf3.Value {
+	if m != nil {
+		return m.RepeatedValue
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetFieldname1() int32 {
+	if m != nil {
+		return m.Fieldname1
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName2() int32 {
+	if m != nil {
+		return m.FieldName2
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetXFieldName3() int32 {
+	if m != nil {
+		return m.XFieldName3
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name4_() int32 {
+	if m != nil {
+		return m.Field_Name4_
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField0Name5() int32 {
+	if m != nil {
+		return m.Field0Name5
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_0Name6() int32 {
+	if m != nil {
+		return m.Field_0Name6
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName7() int32 {
+	if m != nil {
+		return m.FieldName7
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName8() int32 {
+	if m != nil {
+		return m.FieldName8
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name9() int32 {
+	if m != nil {
+		return m.Field_Name9
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name10() int32 {
+	if m != nil {
+		return m.Field_Name10
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFIELD_NAME11() int32 {
+	if m != nil {
+		return m.FIELD_NAME11
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFIELDName12() int32 {
+	if m != nil {
+		return m.FIELDName12
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetXFieldName13() int32 {
+	if m != nil {
+		return m.XFieldName13
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetX_FieldName14() int32 {
+	if m != nil {
+		return m.X_FieldName14
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name15() int32 {
+	if m != nil {
+		return m.Field_Name15
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField__Name16() int32 {
+	if m != nil {
+		return m.Field__Name16
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName17__() int32 {
+	if m != nil {
+		return m.FieldName17__
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName18__() int32 {
+	if m != nil {
+		return m.FieldName18__
+	}
+	return 0
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*TestAllTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _TestAllTypes_OneofMarshaler, _TestAllTypes_OneofUnmarshaler, _TestAllTypes_OneofSizer, []interface{}{
+		(*TestAllTypes_OneofUint32)(nil),
+		(*TestAllTypes_OneofNestedMessage)(nil),
+		(*TestAllTypes_OneofString)(nil),
+		(*TestAllTypes_OneofBytes)(nil),
+		(*TestAllTypes_OneofBool)(nil),
+		(*TestAllTypes_OneofUint64)(nil),
+		(*TestAllTypes_OneofFloat)(nil),
+		(*TestAllTypes_OneofDouble)(nil),
+		(*TestAllTypes_OneofEnum)(nil),
+	}
+}
+
+func _TestAllTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*TestAllTypes)
+	// oneof_field
+	switch x := m.OneofField.(type) {
+	case *TestAllTypes_OneofUint32:
+		b.EncodeVarint(111<<3 | proto.WireVarint)
+		b.EncodeVarint(uint64(x.OneofUint32))
+	case *TestAllTypes_OneofNestedMessage:
+		b.EncodeVarint(112<<3 | proto.WireBytes)
+		if err := b.EncodeMessage(x.OneofNestedMessage); err != nil {
+			return err
+		}
+	case *TestAllTypes_OneofString:
+		b.EncodeVarint(113<<3 | proto.WireBytes)
+		b.EncodeStringBytes(x.OneofString)
+	case *TestAllTypes_OneofBytes:
+		b.EncodeVarint(114<<3 | proto.WireBytes)
+		b.EncodeRawBytes(x.OneofBytes)
+	case *TestAllTypes_OneofBool:
+		t := uint64(0)
+		if x.OneofBool {
+			t = 1
+		}
+		b.EncodeVarint(115<<3 | proto.WireVarint)
+		b.EncodeVarint(t)
+	case *TestAllTypes_OneofUint64:
+		b.EncodeVarint(116<<3 | proto.WireVarint)
+		b.EncodeVarint(uint64(x.OneofUint64))
+	case *TestAllTypes_OneofFloat:
+		b.EncodeVarint(117<<3 | proto.WireFixed32)
+		b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat)))
+	case *TestAllTypes_OneofDouble:
+		b.EncodeVarint(118<<3 | proto.WireFixed64)
+		b.EncodeFixed64(math.Float64bits(x.OneofDouble))
+	case *TestAllTypes_OneofEnum:
+		b.EncodeVarint(119<<3 | proto.WireVarint)
+		b.EncodeVarint(uint64(x.OneofEnum))
+	case nil:
+	default:
+		return fmt.Errorf("TestAllTypes.OneofField has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _TestAllTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*TestAllTypes)
+	switch tag {
+	case 111: // oneof_field.oneof_uint32
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofUint32{uint32(x)}
+		return true, err
+	case 112: // oneof_field.oneof_nested_message
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		msg := new(TestAllTypes_NestedMessage)
+		err := b.DecodeMessage(msg)
+		m.OneofField = &TestAllTypes_OneofNestedMessage{msg}
+		return true, err
+	case 113: // oneof_field.oneof_string
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.OneofField = &TestAllTypes_OneofString{x}
+		return true, err
+	case 114: // oneof_field.oneof_bytes
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeRawBytes(true)
+		m.OneofField = &TestAllTypes_OneofBytes{x}
+		return true, err
+	case 115: // oneof_field.oneof_bool
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofBool{x != 0}
+		return true, err
+	case 116: // oneof_field.oneof_uint64
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofUint64{x}
+		return true, err
+	case 117: // oneof_field.oneof_float
+		if wire != proto.WireFixed32 {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeFixed32()
+		m.OneofField = &TestAllTypes_OneofFloat{math.Float32frombits(uint32(x))}
+		return true, err
+	case 118: // oneof_field.oneof_double
+		if wire != proto.WireFixed64 {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeFixed64()
+		m.OneofField = &TestAllTypes_OneofDouble{math.Float64frombits(x)}
+		return true, err
+	case 119: // oneof_field.oneof_enum
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofEnum{TestAllTypes_NestedEnum(x)}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _TestAllTypes_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*TestAllTypes)
+	// oneof_field
+	switch x := m.OneofField.(type) {
+	case *TestAllTypes_OneofUint32:
+		n += proto.SizeVarint(111<<3 | proto.WireVarint)
+		n += proto.SizeVarint(uint64(x.OneofUint32))
+	case *TestAllTypes_OneofNestedMessage:
+		s := proto.Size(x.OneofNestedMessage)
+		n += proto.SizeVarint(112<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(s))
+		n += s
+	case *TestAllTypes_OneofString:
+		n += proto.SizeVarint(113<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.OneofString)))
+		n += len(x.OneofString)
+	case *TestAllTypes_OneofBytes:
+		n += proto.SizeVarint(114<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.OneofBytes)))
+		n += len(x.OneofBytes)
+	case *TestAllTypes_OneofBool:
+		n += proto.SizeVarint(115<<3 | proto.WireVarint)
+		n += 1
+	case *TestAllTypes_OneofUint64:
+		n += proto.SizeVarint(116<<3 | proto.WireVarint)
+		n += proto.SizeVarint(uint64(x.OneofUint64))
+	case *TestAllTypes_OneofFloat:
+		n += proto.SizeVarint(117<<3 | proto.WireFixed32)
+		n += 4
+	case *TestAllTypes_OneofDouble:
+		n += proto.SizeVarint(118<<3 | proto.WireFixed64)
+		n += 8
+	case *TestAllTypes_OneofEnum:
+		n += proto.SizeVarint(119<<3 | proto.WireVarint)
+		n += proto.SizeVarint(uint64(x.OneofEnum))
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+type TestAllTypes_NestedMessage struct {
+	A                    int32         `protobuf:"varint,1,opt,name=a" json:"a,omitempty"`
+	Corecursive          *TestAllTypes `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
+	XXX_unrecognized     []byte        `protobuf_unrecognized:"proto3" json:"-"`
+	XXX_sizecache        int32         `json:"-"`
+}
+
+func (m *TestAllTypes_NestedMessage) Reset()                    { *m = TestAllTypes_NestedMessage{} }
+func (m *TestAllTypes_NestedMessage) String() string            { return proto.CompactTextString(m) }
+func (*TestAllTypes_NestedMessage) ProtoMessage()               {}
+func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
+func (m *TestAllTypes_NestedMessage) Unmarshal(b []byte) error {
+	return xxx_messageInfo_TestAllTypes_NestedMessage.Unmarshal(m, b)
+}
+func (m *TestAllTypes_NestedMessage) Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_TestAllTypes_NestedMessage.Marshal(b, m, deterministic)
+}
+func (dst *TestAllTypes_NestedMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_TestAllTypes_NestedMessage.Merge(dst, src)
+}
+func (m *TestAllTypes_NestedMessage) XXX_Size() int {
+	return xxx_messageInfo_TestAllTypes_NestedMessage.Size(m)
+}
+func (m *TestAllTypes_NestedMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_TestAllTypes_NestedMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TestAllTypes_NestedMessage proto.InternalMessageInfo
+
+func (m *TestAllTypes_NestedMessage) GetA() int32 {
+	if m != nil {
+		return m.A
+	}
+	return 0
+}
+
+func (m *TestAllTypes_NestedMessage) GetCorecursive() *TestAllTypes {
+	if m != nil {
+		return m.Corecursive
+	}
+	return nil
+}
+
+type ForeignMessage struct {
+	C                    int32    `protobuf:"varint,1,opt,name=c" json:"c,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `protobuf_unrecognized:"proto3" json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ForeignMessage) Reset()                    { *m = ForeignMessage{} }
+func (m *ForeignMessage) String() string            { return proto.CompactTextString(m) }
+func (*ForeignMessage) ProtoMessage()               {}
+func (*ForeignMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
+func (m *ForeignMessage) Unmarshal(b []byte) error {
+	return xxx_messageInfo_ForeignMessage.Unmarshal(m, b)
+}
+func (m *ForeignMessage) Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ForeignMessage.Marshal(b, m, deterministic)
+}
+func (dst *ForeignMessage) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ForeignMessage.Merge(dst, src)
+}
+func (m *ForeignMessage) XXX_Size() int {
+	return xxx_messageInfo_ForeignMessage.Size(m)
+}
+func (m *ForeignMessage) XXX_DiscardUnknown() {
+	xxx_messageInfo_ForeignMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ForeignMessage proto.InternalMessageInfo
+
+func (m *ForeignMessage) GetC() int32 {
+	if m != nil {
+		return m.C
+	}
+	return 0
+}
+
+func init() {
+	proto.RegisterType((*ConformanceRequest)(nil), "conformance.ConformanceRequest")
+	proto.RegisterType((*ConformanceResponse)(nil), "conformance.ConformanceResponse")
+	proto.RegisterType((*TestAllTypes)(nil), "conformance.TestAllTypes")
+	proto.RegisterMapType((map[bool]bool)(nil), "conformance.TestAllTypes.MapBoolBoolEntry")
+	proto.RegisterMapType((map[uint32]uint32)(nil), "conformance.TestAllTypes.MapFixed32Fixed32Entry")
+	proto.RegisterMapType((map[uint64]uint64)(nil), "conformance.TestAllTypes.MapFixed64Fixed64Entry")
+	proto.RegisterMapType((map[int32]float64)(nil), "conformance.TestAllTypes.MapInt32DoubleEntry")
+	proto.RegisterMapType((map[int32]float32)(nil), "conformance.TestAllTypes.MapInt32FloatEntry")
+	proto.RegisterMapType((map[int32]int32)(nil), "conformance.TestAllTypes.MapInt32Int32Entry")
+	proto.RegisterMapType((map[int64]int64)(nil), "conformance.TestAllTypes.MapInt64Int64Entry")
+	proto.RegisterMapType((map[int32]int32)(nil), "conformance.TestAllTypes.MapSfixed32Sfixed32Entry")
+	proto.RegisterMapType((map[int64]int64)(nil), "conformance.TestAllTypes.MapSfixed64Sfixed64Entry")
+	proto.RegisterMapType((map[int32]int32)(nil), "conformance.TestAllTypes.MapSint32Sint32Entry")
+	proto.RegisterMapType((map[int64]int64)(nil), "conformance.TestAllTypes.MapSint64Sint64Entry")
+	proto.RegisterMapType((map[string][]byte)(nil), "conformance.TestAllTypes.MapStringBytesEntry")
+	proto.RegisterMapType((map[string]ForeignEnum)(nil), "conformance.TestAllTypes.MapStringForeignEnumEntry")
+	proto.RegisterMapType((map[string]*ForeignMessage)(nil), "conformance.TestAllTypes.MapStringForeignMessageEntry")
+	proto.RegisterMapType((map[string]TestAllTypes_NestedEnum)(nil), "conformance.TestAllTypes.MapStringNestedEnumEntry")
+	proto.RegisterMapType((map[string]*TestAllTypes_NestedMessage)(nil), "conformance.TestAllTypes.MapStringNestedMessageEntry")
+	proto.RegisterMapType((map[string]string)(nil), "conformance.TestAllTypes.MapStringStringEntry")
+	proto.RegisterMapType((map[uint32]uint32)(nil), "conformance.TestAllTypes.MapUint32Uint32Entry")
+	proto.RegisterMapType((map[uint64]uint64)(nil), "conformance.TestAllTypes.MapUint64Uint64Entry")
+	proto.RegisterType((*TestAllTypes_NestedMessage)(nil), "conformance.TestAllTypes.NestedMessage")
+	proto.RegisterType((*ForeignMessage)(nil), "conformance.ForeignMessage")
+	proto.RegisterEnum("conformance.WireFormat", WireFormat_name, WireFormat_value)
+	proto.RegisterEnum("conformance.ForeignEnum", ForeignEnum_name, ForeignEnum_value)
+	proto.RegisterEnum("conformance.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
+}
+
+func init() { proto.RegisterFile("conformance.proto", fileDescriptor0) }
+
+var fileDescriptor0 = []byte{
+	// 2731 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0x59, 0x73, 0xdb, 0xc8,
+	0x11, 0x16, 0x08, 0x59, 0xc7, 0x90, 0x92, 0xa8, 0xd1, 0x35, 0x96, 0x5d, 0x6b, 0x58, 0xb6, 0x63,
+	0xda, 0xde, 0xd5, 0xea, 0x80, 0x61, 0xd9, 0x9b, 0x75, 0x2c, 0xda, 0xa4, 0x25, 0x67, 0x2d, 0xb9,
+	0x20, 0x6b, 0x5d, 0xe5, 0x3c, 0x30, 0x10, 0x05, 0xa9, 0xb8, 0x26, 0x09, 0x2e, 0x40, 0x7a, 0xa3,
+	0x3c, 0xe6, 0x1f, 0xe4, 0xbe, 0xcf, 0xf7, 0x9c, 0x2f, 0x49, 0x2a, 0x79, 0x4a, 0xe5, 0x25, 0x77,
+	0x52, 0xb9, 0x93, 0xbf, 0x90, 0xff, 0x90, 0xad, 0x39, 0x31, 0x33, 0x00, 0x28, 0x7a, 0xab, 0x96,
+	0x12, 0x1b, 0xdf, 0x7c, 0xdd, 0xd3, 0xdd, 0xf8, 0x46, 0x68, 0x18, 0x4c, 0xd7, 0x83, 0xf6, 0x51,
+	0x10, 0xb6, 0xbc, 0x76, 0xdd, 0x5f, 0xee, 0x84, 0x41, 0x37, 0x80, 0x79, 0xc9, 0xb4, 0x78, 0xf6,
+	0x38, 0x08, 0x8e, 0x9b, 0xfe, 0x9b, 0xe4, 0xd2, 0x41, 0xef, 0xe8, 0x4d, 0xaf, 0x7d, 0x42, 0x71,
+	0x8b, 0xaf, 0xe9, 0x97, 0x0e, 0x7b, 0xa1, 0xd7, 0x6d, 0x04, 0x6d, 0x76, 0xdd, 0xd2, 0xaf, 0x1f,
+	0x35, 0xfc, 0xe6, 0x61, 0xad, 0xe5, 0x45, 0x2f, 0x18, 0xe2, 0xbc, 0x8e, 0x88, 0xba, 0x61, 0xaf,
+	0xde, 0x65, 0x57, 0x2f, 0xe8, 0x57, 0xbb, 0x8d, 0x96, 0x1f, 0x75, 0xbd, 0x56, 0x27, 0x2b, 0x80,
+	0x0f, 0x42, 0xaf, 0xd3, 0xf1, 0xc3, 0x88, 0x5e, 0x5f, 0xfa, 0x95, 0x01, 0xe0, 0xfd, 0x78, 0x2f,
+	0xae, 0xff, 0x7e, 0xcf, 0x8f, 0xba, 0xf0, 0x06, 0x28, 0xf2, 0x15, 0xb5, 0x8e, 0x77, 0xd2, 0x0c,
+	0xbc, 0x43, 0x64, 0x58, 0x46, 0xa9, 0xb0, 0x35, 0xe4, 0x4e, 0xf1, 0x2b, 0x4f, 0xe8, 0x05, 0x78,
+	0x09, 0x14, 0xde, 0x8b, 0x82, 0xb6, 0x00, 0xe6, 0x2c, 0xa3, 0x34, 0xbe, 0x35, 0xe4, 0xe6, 0xb1,
+	0x95, 0x83, 0x76, 0xc1, 0x42, 0x48, 0xc9, 0xfd, 0xc3, 0x5a, 0xd0, 0xeb, 0x76, 0x7a, 0xdd, 0x1a,
+	0xf1, 0xda, 0x45, 0xa6, 0x65, 0x94, 0x26, 0xd7, 0x16, 0x96, 0xe5, 0x34, 0x3f, 0x6b, 0x84, 0x7e,
+	0x95, 0x5c, 0x76, 0xe7, 0xc4, 0xba, 0x5d, 0xb2, 0x8c, 0x9a, 0xcb, 0xe3, 0x60, 0x94, 0x39, 0x5c,
+	0xfa, 0x4c, 0x0e, 0xcc, 0x28, 0x9b, 0x88, 0x3a, 0x41, 0x3b, 0xf2, 0xe1, 0x45, 0x90, 0xef, 0x78,
+	0x61, 0xe4, 0xd7, 0xfc, 0x30, 0x0c, 0x42, 0xb2, 0x01, 0x1c, 0x17, 0x20, 0xc6, 0x0a, 0xb6, 0xc1,
+	0x6b, 0x60, 0x2a, 0xf2, 0xc3, 0x86, 0xd7, 0x6c, 0x7c, 0x9a, 0xc3, 0x46, 0x18, 0x6c, 0x52, 0x5c,
+	0xa0, 0xd0, 0x2b, 0x60, 0x22, 0xec, 0xb5, 0x71, 0x82, 0x19, 0x90, 0xef, 0xb3, 0xc0, 0xcc, 0x14,
+	0x96, 0x96, 0x3a, 0x73, 0xd0, 0xd4, 0x0d, 0xa7, 0xa5, 0x6e, 0x11, 0x8c, 0x46, 0x2f, 0x1a, 0x9d,
+	0x8e, 0x7f, 0x88, 0xce, 0xb0, 0xeb, 0xdc, 0x50, 0x1e, 0x03, 0x23, 0xa1, 0x1f, 0xf5, 0x9a, 0xdd,
+	0xa5, 0xff, 0x55, 0x41, 0xe1, 0xa9, 0x1f, 0x75, 0x37, 0x9b, 0xcd, 0xa7, 0x27, 0x1d, 0x3f, 0x82,
+	0x57, 0xc0, 0x64, 0xd0, 0xc1, 0xbd, 0xe6, 0x35, 0x6b, 0x8d, 0x76, 0x77, 0x7d, 0x8d, 0x24, 0xe0,
+	0x8c, 0x3b, 0xc1, 0xad, 0xdb, 0xd8, 0xa8, 0xc3, 0x1c, 0x9b, 0xec, 0xcb, 0x54, 0x60, 0x8e, 0x0d,
+	0xaf, 0x82, 0x29, 0x01, 0xeb, 0x51, 0x3a, 0xbc, 0xab, 0x09, 0x57, 0xac, 0xde, 0x27, 0xd6, 0x04,
+	0xd0, 0xb1, 0xc9, 0xae, 0x86, 0x55, 0xa0, 0xc6, 0x18, 0x51, 0x46, 0xbc, 0xbd, 0xe9, 0x18, 0xb8,
+	0x97, 0x64, 0x8c, 0x28, 0x23, 0xae, 0x11, 0x54, 0x81, 0x8e, 0x0d, 0xaf, 0x81, 0xa2, 0x00, 0x1e,
+	0x35, 0x3e, 0xe5, 0x1f, 0xae, 0xaf, 0xa1, 0x51, 0xcb, 0x28, 0x8d, 0xba, 0x82, 0xa0, 0x4a, 0xcd,
+	0x49, 0xa8, 0x63, 0xa3, 0x31, 0xcb, 0x28, 0x8d, 0x68, 0x50, 0xc7, 0x86, 0x37, 0xc0, 0x74, 0xec,
+	0x9e, 0xd3, 0x8e, 0x5b, 0x46, 0x69, 0xca, 0x15, 0x1c, 0x7b, 0xcc, 0x9e, 0x02, 0x76, 0x6c, 0x04,
+	0x2c, 0xa3, 0x54, 0xd4, 0xc1, 0x8e, 0xad, 0xa4, 0xfe, 0xa8, 0x19, 0x78, 0x5d, 0x94, 0xb7, 0x8c,
+	0x52, 0x2e, 0x4e, 0x7d, 0x15, 0x1b, 0x95, 0xfd, 0x1f, 0x06, 0xbd, 0x83, 0xa6, 0x8f, 0x0a, 0x96,
+	0x51, 0x32, 0xe2, 0xfd, 0x3f, 0x20, 0x56, 0x78, 0x09, 0x88, 0x95, 0xb5, 0x83, 0x20, 0x68, 0xa2,
+	0x09, 0xcb, 0x28, 0x8d, 0xb9, 0x05, 0x6e, 0x2c, 0x07, 0x41, 0x53, 0xcd, 0x66, 0x37, 0x6c, 0xb4,
+	0x8f, 0xd1, 0x24, 0xee, 0x2a, 0x29, 0x9b, 0xc4, 0xaa, 0x44, 0x77, 0x70, 0xd2, 0xf5, 0x23, 0x34,
+	0x85, 0xdb, 0x38, 0x8e, 0xae, 0x8c, 0x8d, 0xb0, 0x06, 0x16, 0x04, 0xac, 0x4d, 0x6f, 0xef, 0x96,
+	0x1f, 0x45, 0xde, 0xb1, 0x8f, 0xa0, 0x65, 0x94, 0xf2, 0x6b, 0x57, 0x95, 0x1b, 0x5b, 0x6e, 0xd1,
+	0xe5, 0x1d, 0x82, 0x7f, 0x4c, 0xe1, 0xee, 0x1c, 0xe7, 0x51, 0xcc, 0x70, 0x1f, 0xa0, 0x38, 0x4b,
+	0x41, 0xe8, 0x37, 0x8e, 0xdb, 0xc2, 0xc3, 0x0c, 0xf1, 0x70, 0x4e, 0xf1, 0x50, 0xa5, 0x18, 0xce,
+	0x3a, 0x2f, 0x92, 0xa9, 0xd8, 0xe1, 0xbb, 0x60, 0x56, 0x8f, 0xdb, 0x6f, 0xf7, 0x5a, 0x68, 0x8e,
+	0xa8, 0xd1, 0xe5, 0xd3, 0x82, 0xae, 0xb4, 0x7b, 0x2d, 0x17, 0xaa, 0x11, 0x63, 0x1b, 0x7c, 0x07,
+	0xcc, 0x25, 0xc2, 0x25, 0xc4, 0xf3, 0x84, 0x18, 0xa5, 0xc5, 0x4a, 0xc8, 0x66, 0xb4, 0x40, 0x09,
+	0x9b, 0x23, 0xb1, 0xd1, 0x6a, 0xd5, 0x3a, 0x0d, 0xbf, 0xee, 0x23, 0x84, 0x6b, 0x56, 0xce, 0x8d,
+	0xe5, 0xe2, 0x75, 0xb4, 0x6e, 0x4f, 0xf0, 0x65, 0x78, 0x55, 0x6a, 0x85, 0x7a, 0x10, 0x1e, 0xa2,
+	0xb3, 0x0c, 0x6f, 0xc4, 0xed, 0x70, 0x3f, 0x08, 0x0f, 0x61, 0x15, 0x4c, 0x87, 0x7e, 0xbd, 0x17,
+	0x46, 0x8d, 0x97, 0xbe, 0x48, 0xeb, 0x39, 0x92, 0xd6, 0xb3, 0x99, 0x39, 0x70, 0x8b, 0x62, 0x0d,
+	0x4f, 0xe7, 0x15, 0x30, 0x19, 0xfa, 0x1d, 0xdf, 0xc3, 0x79, 0xa4, 0x37, 0xf3, 0x05, 0xcb, 0xc4,
+	0x6a, 0xc3, 0xad, 0x42, 0x6d, 0x64, 0x98, 0x63, 0x23, 0xcb, 0x32, 0xb1, 0xda, 0x48, 0x30, 0xaa,
+	0x0d, 0x02, 0xc6, 0xd4, 0xe6, 0xa2, 0x65, 0x62, 0xb5, 0xe1, 0xe6, 0x58, 0x6d, 0x14, 0xa0, 0x63,
+	0xa3, 0x25, 0xcb, 0xc4, 0x6a, 0x23, 0x03, 0x35, 0x46, 0xa6, 0x36, 0x97, 0x2c, 0x13, 0xab, 0x0d,
+	0x37, 0xef, 0x25, 0x19, 0x99, 0xda, 0x5c, 0xb6, 0x4c, 0xac, 0x36, 0x32, 0x90, 0xaa, 0x8d, 0x00,
+	0x72, 0x59, 0xb8, 0x62, 0x99, 0x58, 0x6d, 0xb8, 0x5d, 0x52, 0x1b, 0x15, 0xea, 0xd8, 0xe8, 0x23,
+	0x96, 0x89, 0xd5, 0x46, 0x81, 0x52, 0xb5, 0x89, 0xdd, 0x73, 0xda, 0xab, 0x96, 0x89, 0xd5, 0x46,
+	0x04, 0x20, 0xa9, 0x8d, 0x06, 0x76, 0x6c, 0x54, 0xb2, 0x4c, 0xac, 0x36, 0x2a, 0x98, 0xaa, 0x4d,
+	0x1c, 0x04, 0x51, 0x9b, 0x6b, 0x96, 0x89, 0xd5, 0x46, 0x84, 0xc0, 0xd5, 0x46, 0xc0, 0x98, 0xda,
+	0x5c, 0xb7, 0x4c, 0xac, 0x36, 0xdc, 0x1c, 0xab, 0x8d, 0x00, 0x12, 0xb5, 0xb9, 0x61, 0x99, 0x58,
+	0x6d, 0xb8, 0x91, 0xab, 0x4d, 0x1c, 0x21, 0x55, 0x9b, 0xd7, 0x2d, 0x13, 0xab, 0x8d, 0x88, 0x4f,
+	0xa8, 0x4d, 0xcc, 0x46, 0xd4, 0xe6, 0x0d, 0xcb, 0xc4, 0x6a, 0x23, 0xe8, 0xb8, 0xda, 0x08, 0x98,
+	0xa6, 0x36, 0x2b, 0x96, 0xf9, 0x4a, 0x6a, 0xc3, 0x79, 0x12, 0x6a, 0x13, 0x67, 0x49, 0x53, 0x9b,
+	0x55, 0xe2, 0xa1, 0xbf, 0xda, 0x88, 0x64, 0x26, 0xd4, 0x46, 0x8f, 0x9b, 0x88, 0xc2, 0xba, 0x65,
+	0x0e, 0xae, 0x36, 0x6a, 0xc4, 0x5c, 0x6d, 0x12, 0xe1, 0x12, 0x62, 0x9b, 0x10, 0xf7, 0x51, 0x1b,
+	0x2d, 0x50, 0xae, 0x36, 0x5a, 0xb5, 0x98, 0xda, 0x38, 0xb8, 0x66, 0x54, 0x6d, 0xd4, 0xba, 0x09,
+	0xb5, 0x11, 0xeb, 0x88, 0xda, 0xdc, 0x62, 0x78, 0x23, 0x6e, 0x07, 0xa2, 0x36, 0x4f, 0xc1, 0x54,
+	0xcb, 0xeb, 0x50, 0x81, 0x60, 0x32, 0xb1, 0x41, 0x92, 0xfa, 0x7a, 0x76, 0x06, 0x1e, 0x7b, 0x1d,
+	0xa2, 0x1d, 0xe4, 0xa3, 0xd2, 0xee, 0x86, 0x27, 0xee, 0x44, 0x4b, 0xb6, 0x49, 0xac, 0x8e, 0xcd,
+	0x54, 0xe5, 0xf6, 0x60, 0xac, 0x8e, 0x4d, 0x3e, 0x14, 0x56, 0x66, 0x83, 0xcf, 0xc1, 0x34, 0x66,
+	0xa5, 0xf2, 0xc3, 0x55, 0xe8, 0x0e, 0xe1, 0x5d, 0xee, 0xcb, 0x4b, 0xa5, 0x89, 0x7e, 0x52, 0x66,
+	0x1c, 0x9e, 0x6c, 0x95, 0xb9, 0x1d, 0x9b, 0x0b, 0xd7, 0x5b, 0x03, 0x72, 0x3b, 0x36, 0xfd, 0x54,
+	0xb9, 0xb9, 0x95, 0x73, 0x53, 0x91, 0xe3, 0x5a, 0xf7, 0xd1, 0x01, 0xb8, 0xa9, 0x00, 0xee, 0x69,
+	0x71, 0xcb, 0x56, 0x99, 0xdb, 0xb1, 0xb9, 0x3c, 0xbe, 0x3d, 0x20, 0xb7, 0x63, 0xef, 0x69, 0x71,
+	0xcb, 0x56, 0xf8, 0x49, 0x30, 0x83, 0xb9, 0x99, 0xb6, 0x09, 0x49, 0xbd, 0x4b, 0xd8, 0x57, 0xfa,
+	0xb2, 0x33, 0x9d, 0x65, 0x3f, 0x28, 0x3f, 0x0e, 0x54, 0xb5, 0x2b, 0x1e, 0x1c, 0x5b, 0x28, 0xf1,
+	0xc7, 0x06, 0xf5, 0xe0, 0xd8, 0xec, 0x87, 0xe6, 0x41, 0xd8, 0xe1, 0x11, 0x98, 0x23, 0xf9, 0xe1,
+	0x9b, 0x10, 0x0a, 0x7e, 0x8f, 0xf8, 0x58, 0xeb, 0x9f, 0x23, 0x06, 0xe6, 0x3f, 0xa9, 0x17, 0x1c,
+	0xb2, 0x7e, 0x45, 0xf5, 0x83, 0x2b, 0xc1, 0xf7, 0xb2, 0x39, 0xb0, 0x1f, 0xc7, 0xe6, 0x3f, 0x75,
+	0x3f, 0xf1, 0x15, 0xf5, 0x7e, 0xa5, 0x87, 0x46, 0x79, 0xd0, 0xfb, 0x95, 0x1c, 0x27, 0xda, 0xfd,
+	0x4a, 0x8f, 0x98, 0x67, 0xa0, 0x18, 0xb3, 0xb2, 0x33, 0xe6, 0x3e, 0xa1, 0x7d, 0xe3, 0x74, 0x5a,
+	0x7a, 0xfa, 0x50, 0xde, 0xc9, 0x96, 0x62, 0x84, 0x3b, 0x00, 0x7b, 0x22, 0xa7, 0x11, 0x3d, 0x92,
+	0x1e, 0x10, 0xd6, 0xeb, 0x7d, 0x59, 0xf1, 0x39, 0x85, 0xff, 0xa7, 0x94, 0xf9, 0x56, 0x6c, 0x11,
+	0xed, 0x4e, 0xa5, 0x90, 0x9d, 0x5f, 0x95, 0x41, 0xda, 0x9d, 0x40, 0xe9, 0xa7, 0xd4, 0xee, 0x92,
+	0x95, 0x27, 0x81, 0x71, 0xd3, 0x23, 0xaf, 0x3a, 0x40, 0x12, 0xe8, 0x72, 0x72, 0x1a, 0xc6, 0x49,
+	0x90, 0x8c, 0xb0, 0x03, 0xce, 0x4a, 0xc4, 0xda, 0x21, 0xf9, 0x90, 0x78, 0xb8, 0x39, 0x80, 0x07,
+	0xe5, 0x58, 0xa4, 0x9e, 0xe6, 0x5b, 0xa9, 0x17, 0x61, 0x04, 0x16, 0x25, 0x8f, 0xfa, 0xa9, 0xb9,
+	0x45, 0x5c, 0x3a, 0x03, 0xb8, 0x54, 0xcf, 0x4c, 0xea, 0x73, 0xa1, 0x95, 0x7e, 0x15, 0x1e, 0x83,
+	0xf9, 0xe4, 0x36, 0xc9, 0xd1, 0xb7, 0x3d, 0xc8, 0x3d, 0x20, 0x6d, 0x03, 0x1f, 0x7d, 0xd2, 0x3d,
+	0xa0, 0x5d, 0x81, 0xef, 0x81, 0x85, 0x94, 0xdd, 0x11, 0x4f, 0x8f, 0x88, 0xa7, 0xf5, 0xc1, 0xb7,
+	0x16, 0xbb, 0x9a, 0x6d, 0xa5, 0x5c, 0x82, 0x97, 0x40, 0x21, 0x68, 0xfb, 0xc1, 0x11, 0x3f, 0x6e,
+	0x02, 0xfc, 0x88, 0xbd, 0x35, 0xe4, 0xe6, 0x89, 0x95, 0x1d, 0x1e, 0x9f, 0x00, 0xb3, 0x14, 0xa4,
+	0xd5, 0xb6, 0xf3, 0x4a, 0x8f, 0x5b, 0x5b, 0x43, 0x2e, 0x24, 0x34, 0x6a, 0x2d, 0x45, 0x04, 0xac,
+	0xdb, 0xdf, 0xe7, 0x13, 0x09, 0x62, 0x65, 0xbd, 0x7b, 0x11, 0xd0, 0xaf, 0xac, 0x6d, 0x43, 0x36,
+	0xde, 0x00, 0xc4, 0x48, 0xbb, 0xf0, 0x02, 0x00, 0x0c, 0x82, 0xef, 0xc3, 0x08, 0x3f, 0x88, 0x6e,
+	0x0d, 0xb9, 0xe3, 0x14, 0x81, 0xef, 0x2d, 0x65, 0xab, 0x8e, 0x8d, 0xba, 0x96, 0x51, 0x1a, 0x56,
+	0xb6, 0xea, 0xd8, 0xb1, 0x23, 0xaa, 0x3d, 0x3d, 0xfc, 0x78, 0x2c, 0x1c, 0x51, 0x31, 0x11, 0x3c,
+	0x4c, 0x48, 0x5e, 0xe2, 0x47, 0x63, 0xc1, 0xc3, 0x84, 0xa1, 0xc2, 0xa3, 0x21, 0x65, 0xfb, 0x60,
+	0xf0, 0x47, 0x3c, 0x11, 0x33, 0x29, 0xcf, 0xae, 0xf4, 0x34, 0x46, 0x44, 0x86, 0x4d, 0xd3, 0xd0,
+	0x6f, 0x0c, 0x92, 0xfb, 0xc5, 0x65, 0x3a, 0x6e, 0x5b, 0xe6, 0x73, 0x9e, 0x65, 0xbc, 0xd5, 0x77,
+	0xbd, 0x66, 0xcf, 0x8f, 0x1f, 0xd3, 0xb0, 0xe9, 0x19, 0x5d, 0x07, 0x5d, 0x30, 0xaf, 0xce, 0x68,
+	0x04, 0xe3, 0x6f, 0x0d, 0xf6, 0x68, 0xab, 0x33, 0x12, 0xbd, 0xa3, 0x94, 0xb3, 0xca, 0x24, 0x27,
+	0x83, 0xd3, 0xb1, 0x05, 0xe7, 0xef, 0xfa, 0x70, 0x3a, 0x76, 0x92, 0xd3, 0xb1, 0x39, 0xe7, 0xbe,
+	0xf4, 0x90, 0xdf, 0x53, 0x03, 0xfd, 0x3d, 0x25, 0x3d, 0x9f, 0x20, 0xdd, 0x97, 0x22, 0x9d, 0x53,
+	0x87, 0x44, 0x59, 0xb4, 0x52, 0xac, 0x7f, 0xe8, 0x47, 0xcb, 0x83, 0x9d, 0x53, 0x47, 0x4a, 0x69,
+	0x19, 0x20, 0x8d, 0x23, 0x58, 0xff, 0x98, 0x95, 0x01, 0xd2, 0x4b, 0x5a, 0x06, 0x88, 0x2d, 0x2d,
+	0x54, 0xda, 0x69, 0x82, 0xf4, 0x4f, 0x59, 0xa1, 0xd2, 0xe6, 0xd3, 0x42, 0xa5, 0xc6, 0x34, 0x5a,
+	0xa6, 0x30, 0x9c, 0xf6, 0xcf, 0x59, 0xb4, 0xf4, 0x26, 0xd4, 0x68, 0xa9, 0x31, 0x2d, 0x03, 0xe4,
+	0x1e, 0x15, 0xac, 0x7f, 0xc9, 0xca, 0x00, 0xb9, 0x6d, 0xb5, 0x0c, 0x10, 0x1b, 0xe7, 0xdc, 0x95,
+	0x1e, 0x0e, 0x94, 0xe6, 0xff, 0xab, 0x41, 0x64, 0xb0, 0x6f, 0xf3, 0xcb, 0x0f, 0x85, 0x52, 0x90,
+	0xea, 0xc8, 0x40, 0x30, 0xfe, 0xcd, 0x60, 0x4f, 0x5a, 0xfd, 0x9a, 0x5f, 0x19, 0x2c, 0x64, 0x70,
+	0x4a, 0x0d, 0xf5, 0xf7, 0x3e, 0x9c, 0xa2, 0xf9, 0x95, 0x29, 0x84, 0x54, 0x23, 0x6d, 0x18, 0x21,
+	0x48, 0xff, 0x41, 0x49, 0x4f, 0x69, 0x7e, 0x75, 0x66, 0x91, 0x45, 0x2b, 0xc5, 0xfa, 0xcf, 0x7e,
+	0xb4, 0xa2, 0xf9, 0xd5, 0x09, 0x47, 0x5a, 0x06, 0xd4, 0xe6, 0xff, 0x57, 0x56, 0x06, 0xe4, 0xe6,
+	0x57, 0x86, 0x01, 0x69, 0xa1, 0x6a, 0xcd, 0xff, 0xef, 0xac, 0x50, 0x95, 0xe6, 0x57, 0x47, 0x07,
+	0x69, 0xb4, 0x5a, 0xf3, 0xff, 0x27, 0x8b, 0x56, 0x69, 0x7e, 0xf5, 0x59, 0x34, 0x2d, 0x03, 0x6a,
+	0xf3, 0xff, 0x37, 0x2b, 0x03, 0x72, 0xf3, 0x2b, 0x03, 0x07, 0xce, 0xf9, 0x50, 0x9a, 0xeb, 0xf2,
+	0x77, 0x38, 0xe8, 0xfb, 0x39, 0x36, 0x27, 0x4b, 0xec, 0x9d, 0x21, 0xe2, 0x99, 0x2f, 0xb7, 0xc0,
+	0x47, 0x40, 0x0c, 0x0d, 0x6b, 0xe2, 0x65, 0x0d, 0xfa, 0x41, 0x2e, 0xe3, 0xfc, 0x78, 0xca, 0x21,
+	0xae, 0xf0, 0x2f, 0x4c, 0xf0, 0xe3, 0x60, 0x46, 0x1a, 0x62, 0xf3, 0x17, 0x47, 0xe8, 0x87, 0x59,
+	0x64, 0x55, 0x8c, 0x79, 0xec, 0x45, 0x2f, 0x62, 0x32, 0x61, 0x82, 0x9b, 0xea, 0x5c, 0xb8, 0x57,
+	0xef, 0xa2, 0x1f, 0x51, 0xa2, 0x85, 0xb4, 0x22, 0xf4, 0xea, 0x5d, 0x65, 0x62, 0xdc, 0xab, 0x77,
+	0xe1, 0x06, 0x10, 0xb3, 0xc5, 0x9a, 0xd7, 0x3e, 0x41, 0x3f, 0xa6, 0xeb, 0x67, 0x13, 0xeb, 0x37,
+	0xdb, 0x27, 0x6e, 0x9e, 0x43, 0x37, 0xdb, 0x27, 0xf0, 0xae, 0x34, 0x6b, 0x7e, 0x89, 0xcb, 0x80,
+	0x7e, 0x42, 0xd7, 0xce, 0x27, 0xd6, 0xd2, 0x2a, 0x89, 0xe9, 0x26, 0xf9, 0x8a, 0xcb, 0x13, 0x37,
+	0x28, 0x2f, 0xcf, 0x4f, 0x73, 0xa4, 0xda, 0xfd, 0xca, 0x23, 0xfa, 0x52, 0x2a, 0x8f, 0x20, 0x8a,
+	0xcb, 0xf3, 0xb3, 0x5c, 0x86, 0xc2, 0x49, 0xe5, 0xe1, 0xcb, 0xe2, 0xf2, 0xc8, 0x5c, 0xa4, 0x3c,
+	0xa4, 0x3a, 0x3f, 0xcf, 0xe2, 0x92, 0xaa, 0x13, 0x0f, 0x05, 0xd9, 0x2a, 0x5c, 0x1d, 0xf9, 0x56,
+	0xc1, 0xd5, 0xf9, 0x35, 0x25, 0xca, 0xae, 0x8e, 0x74, 0x77, 0xb0, 0xea, 0x08, 0x0a, 0x5c, 0x9d,
+	0x5f, 0xd0, 0xf5, 0x19, 0xd5, 0xe1, 0x50, 0x56, 0x1d, 0xb1, 0x92, 0x56, 0xe7, 0x97, 0x74, 0x6d,
+	0x66, 0x75, 0x38, 0x9c, 0x56, 0xe7, 0x02, 0x00, 0x64, 0xff, 0x6d, 0xaf, 0xe5, 0xaf, 0xa2, 0xcf,
+	0x9a, 0xe4, 0x35, 0x94, 0x64, 0x82, 0x16, 0xc8, 0xd3, 0xfe, 0xc5, 0x5f, 0xd7, 0xd0, 0xe7, 0x64,
+	0xc4, 0x0e, 0x36, 0xc1, 0x8b, 0xa0, 0x50, 0x8b, 0x21, 0xeb, 0xe8, 0xf3, 0x0c, 0x52, 0xe5, 0x90,
+	0x75, 0xb8, 0x04, 0x26, 0x28, 0x82, 0x40, 0xec, 0x1a, 0xfa, 0x82, 0x4e, 0x43, 0xfe, 0x9e, 0x24,
+	0xdf, 0x56, 0x30, 0xe4, 0x26, 0xfa, 0x22, 0x45, 0xc8, 0x36, 0x78, 0x89, 0xd3, 0xac, 0x10, 0x1e,
+	0x07, 0x7d, 0x49, 0x01, 0x61, 0x1e, 0x47, 0xec, 0x08, 0x7f, 0xbb, 0x85, 0xbe, 0xac, 0x3b, 0xba,
+	0x85, 0x01, 0x22, 0xb4, 0x0d, 0xf4, 0x15, 0x3d, 0xda, 0x8d, 0x78, 0xcb, 0xf8, 0xeb, 0x6d, 0xf4,
+	0x55, 0x9d, 0xe2, 0x36, 0x5c, 0x02, 0x85, 0xaa, 0x40, 0xac, 0xae, 0xa0, 0xaf, 0xb1, 0x38, 0x04,
+	0xc9, 0xea, 0x0a, 0xc1, 0x6c, 0x57, 0xde, 0x79, 0x50, 0xdb, 0xd9, 0x7c, 0x5c, 0x59, 0x5d, 0x45,
+	0x5f, 0xe7, 0x18, 0x6c, 0xa4, 0xb6, 0x18, 0x43, 0x72, 0xbd, 0x86, 0xbe, 0xa1, 0x60, 0x88, 0x0d,
+	0x5e, 0x06, 0x93, 0x35, 0x29, 0xbf, 0xab, 0xeb, 0xe8, 0x9b, 0x09, 0x6f, 0xeb, 0x14, 0x55, 0x8d,
+	0x51, 0x36, 0xfa, 0x56, 0x02, 0x65, 0xc7, 0x09, 0xa4, 0xa0, 0x9b, 0xe8, 0xdb, 0x72, 0x02, 0x09,
+	0x48, 0xca, 0x32, 0xdd, 0x9d, 0x83, 0xbe, 0x93, 0x00, 0x39, 0xd8, 0x9f, 0x14, 0xd3, 0xad, 0x5a,
+	0x0d, 0x7d, 0x37, 0x81, 0xba, 0x85, 0x51, 0x52, 0x4c, 0x1b, 0xb5, 0x1a, 0xfa, 0x5e, 0x22, 0xaa,
+	0x8d, 0xc5, 0xe7, 0x60, 0x42, 0x7d, 0xd0, 0x29, 0x00, 0xc3, 0x63, 0x6f, 0x44, 0x0d, 0x0f, 0xbe,
+	0x05, 0xf2, 0xf5, 0x40, 0xbc, 0xd4, 0x40, 0xb9, 0xd3, 0x5e, 0x80, 0xc8, 0xe8, 0xc5, 0x7b, 0x00,
+	0x26, 0x87, 0x94, 0xb0, 0x08, 0xcc, 0x17, 0xfe, 0x09, 0x73, 0x81, 0x7f, 0x85, 0xb3, 0xe0, 0x0c,
+	0xbd, 0x7d, 0x72, 0xc4, 0x46, 0xbf, 0xdc, 0xc9, 0x6d, 0x18, 0x31, 0x83, 0x3c, 0x90, 0x94, 0x19,
+	0xcc, 0x14, 0x06, 0x53, 0x66, 0x28, 0x83, 0xd9, 0xb4, 0xd1, 0xa3, 0xcc, 0x31, 0x91, 0xc2, 0x31,
+	0x91, 0xce, 0xa1, 0x8c, 0x18, 0x65, 0x8e, 0xe1, 0x14, 0x8e, 0xe1, 0x24, 0x47, 0x62, 0x94, 0x28,
+	0x73, 0x4c, 0xa7, 0x70, 0x4c, 0xa7, 0x73, 0x28, 0x23, 0x43, 0x99, 0x03, 0xa6, 0x70, 0x40, 0x99,
+	0xe3, 0x01, 0x98, 0x4f, 0x1f, 0x0c, 0xca, 0x2c, 0xa3, 0x29, 0x2c, 0xa3, 0x19, 0x2c, 0xea, 0xf0,
+	0x4f, 0x66, 0x19, 0x49, 0x61, 0x19, 0x91, 0x59, 0xaa, 0x00, 0x65, 0x8d, 0xf7, 0x64, 0x9e, 0xa9,
+	0x14, 0x9e, 0xa9, 0x2c, 0x1e, 0x6d, 0x7c, 0x27, 0xf3, 0x14, 0x53, 0x78, 0x8a, 0xa9, 0xdd, 0x26,
+	0x0f, 0xe9, 0x4e, 0xeb, 0xd7, 0x9c, 0xcc, 0xb0, 0x09, 0x66, 0x52, 0xe6, 0x71, 0xa7, 0x51, 0x18,
+	0x32, 0xc5, 0x5d, 0x50, 0xd4, 0x87, 0x6f, 0xf2, 0xfa, 0xb1, 0x94, 0xf5, 0x63, 0x29, 0x4d, 0xa2,
+	0x0f, 0xda, 0x64, 0x8e, 0xf1, 0x14, 0x8e, 0xf1, 0xe4, 0x36, 0xf4, 0x89, 0xda, 0x69, 0x14, 0x05,
+	0x99, 0x22, 0x04, 0xe7, 0xfa, 0x8c, 0xcc, 0x52, 0xa8, 0xde, 0x96, 0xa9, 0x5e, 0xe1, 0x7d, 0x95,
+	0xe4, 0xf3, 0x18, 0x9c, 0xef, 0x37, 0x33, 0x4b, 0x71, 0xba, 0xaa, 0x3a, 0xed, 0xfb, 0x0a, 0x4b,
+	0x72, 0xd4, 0xa4, 0x0d, 0x97, 0x36, 0x2b, 0x4b, 0x71, 0x72, 0x47, 0x76, 0x32, 0xe8, 0x4b, 0x2d,
+	0xc9, 0x9b, 0x07, 0xce, 0x66, 0xce, 0xcb, 0x52, 0xdc, 0x2d, 0xab, 0xee, 0xb2, 0x5f, 0x75, 0xc5,
+	0x2e, 0x96, 0x6e, 0x03, 0x20, 0x4d, 0xf6, 0x46, 0x81, 0x59, 0xdd, 0xdd, 0x2d, 0x0e, 0xe1, 0x5f,
+	0xca, 0x9b, 0x6e, 0xd1, 0xa0, 0xbf, 0x3c, 0x2f, 0xe6, 0xb0, 0xbb, 0x9d, 0xca, 0xc3, 0xe2, 0xff,
+	0xf9, 0x7f, 0x46, 0x79, 0x42, 0x8c, 0xa2, 0xf0, 0xa9, 0xb2, 0xf4, 0x1a, 0x98, 0xd4, 0x06, 0x92,
+	0x05, 0x60, 0xd4, 0xf9, 0x81, 0x52, 0xbf, 0x7e, 0x13, 0x80, 0xf8, 0xdf, 0x30, 0xc1, 0x29, 0x90,
+	0xdf, 0xdf, 0xd9, 0x7b, 0x52, 0xb9, 0xbf, 0x5d, 0xdd, 0xae, 0x3c, 0x28, 0x0e, 0xc1, 0x02, 0x18,
+	0x7b, 0xe2, 0xee, 0x3e, 0xdd, 0x2d, 0xef, 0x57, 0x8b, 0x06, 0x1c, 0x03, 0xc3, 0x8f, 0xf6, 0x76,
+	0x77, 0x8a, 0xb9, 0xeb, 0xf7, 0x40, 0x5e, 0x9e, 0x07, 0x4e, 0x81, 0x7c, 0x75, 0xd7, 0xad, 0x6c,
+	0x3f, 0xdc, 0xa9, 0xd1, 0x48, 0x25, 0x03, 0x8d, 0x58, 0x31, 0x3c, 0x2f, 0xe6, 0xca, 0x17, 0xc1,
+	0x85, 0x7a, 0xd0, 0x4a, 0xfc, 0x61, 0x26, 0x25, 0xe7, 0x60, 0x84, 0x58, 0xd7, 0x3f, 0x0c, 0x00,
+	0x00, 0xff, 0xff, 0xf7, 0x8f, 0x2d, 0x94, 0xd9, 0x26, 0x00, 0x00,
+}

+ 4 - 9
jsonpb/jsonpb.go

@@ -973,13 +973,6 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe
 		}
 		if mp != nil {
 			target.Set(reflect.MakeMap(targetType))
-			var keyprop, valprop *proto.Properties
-			if prop != nil {
-				// These could still be nil if the protobuf metadata is broken somehow.
-				// TODO: This won't work because the fields are unexported.
-				// We should probably just reparse them.
-				//keyprop, valprop = prop.mkeyprop, prop.mvalprop
-			}
 			for ks, raw := range mp {
 				// Unmarshal map key. The core json library already decoded the key into a
 				// string, so we handle that specially. Other types were quoted post-serialization.
@@ -988,14 +981,16 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe
 					k = reflect.ValueOf(ks)
 				} else {
 					k = reflect.New(targetType.Key()).Elem()
-					if err := u.unmarshalValue(k, json.RawMessage(ks), keyprop); err != nil {
+					// TODO: pass the correct Properties if needed.
+					if err := u.unmarshalValue(k, json.RawMessage(ks), nil); err != nil {
 						return err
 					}
 				}
 
 				// Unmarshal map value.
 				v := reflect.New(targetType.Elem()).Elem()
-				if err := u.unmarshalValue(v, raw, valprop); err != nil {
+				// TODO: pass the correct Properties if needed.
+				if err := u.unmarshalValue(v, raw, nil); err != nil {
 					return err
 				}
 				target.SetMapIndex(k, v)

+ 1 - 1
jsonpb/jsonpb_test_proto/Makefile

@@ -30,4 +30,4 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 regenerate:
-	protoc --go_out=Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any,Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration,Mgoogle/protobuf/struct.proto=github.com/golang/protobuf/ptypes/struct,Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,Mgoogle/protobuf/wrappers.proto=github.com/golang/protobuf/ptypes/wrappers:. *.proto
+	protoc -I. -I$(HOME)/src/protobuf/src --go_out=Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any,Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration,Mgoogle/protobuf/struct.proto=github.com/golang/protobuf/ptypes/struct,Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,Mgoogle/protobuf/wrappers.proto=github.com/golang/protobuf/ptypes/wrappers:. *.proto

+ 26 - 26
jsonpb/jsonpb_test_proto/test_objects.pb.go

@@ -531,7 +531,7 @@ type MsgWithOneof_Salary struct {
 	Salary int64 `protobuf:"varint,2,opt,name=salary,oneof"`
 }
 type MsgWithOneof_Country struct {
-	Country string `protobuf:"bytes,3,opt,name=Country,json=country,oneof"`
+	Country string `protobuf:"bytes,3,opt,name=Country,oneof"`
 }
 type MsgWithOneof_HomeAddress struct {
 	HomeAddress string `protobuf:"bytes,4,opt,name=home_address,json=homeAddress,oneof"`
@@ -948,7 +948,7 @@ func init() {
 func init() { proto.RegisterFile("test_objects.proto", fileDescriptor1) }
 
 var fileDescriptor1 = []byte{
-	// 1162 bytes of a gzipped FileDescriptorProto
+	// 1160 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x95, 0x41, 0x73, 0xdb, 0x44,
 	0x14, 0xc7, 0x23, 0xc9, 0x92, 0xed, 0x75, 0x92, 0x9a, 0x6d, 0xda, 0x2a, 0x26, 0x80, 0xc6, 0x94,
 	0x22, 0x0a, 0x75, 0x07, 0xc7, 0xe3, 0x61, 0x0a, 0x97, 0xa4, 0x71, 0x29, 0x43, 0x13, 0x98, 0x4d,
@@ -998,28 +998,28 @@ var fileDescriptor1 = []byte{
 	0xff, 0x61, 0xa1, 0xcd, 0x63, 0x39, 0x79, 0x93, 0xa8, 0xb7, 0x3f, 0x31, 0xca, 0xc7, 0xf8, 0x3e,
 	0x72, 0x55, 0xa2, 0x52, 0xaa, 0xed, 0xea, 0x2f, 0x37, 0x88, 0x09, 0xb1, 0x8f, 0x3c, 0x19, 0xa5,
 	0x91, 0x98, 0x6b, 0x4f, 0xe7, 0xe5, 0x06, 0xc9, 0x63, 0xdc, 0x42, 0xd5, 0xe7, 0x3c, 0x83, 0x95,
-	0xe8, 0x67, 0x01, 0x7a, 0xaa, 0xe7, 0x26, 0x81, 0x3f, 0x45, 0x9b, 0x6f, 0xf9, 0x94, 0x0e, 0xa3,
-	0x38, 0x16, 0x54, 0x4a, 0xfd, 0x42, 0x80, 0xa0, 0x01, 0xd9, 0x03, 0x93, 0x3c, 0xac, 0x22, 0x37,
-	0x63, 0x09, 0x67, 0xed, 0x47, 0xa8, 0x42, 0x68, 0x94, 0x96, 0x9f, 0x6f, 0x99, 0x37, 0x42, 0x07,
-	0x8f, 0x6b, 0xb5, 0xb8, 0x79, 0x75, 0x75, 0x75, 0x65, 0xb7, 0x2f, 0xe1, 0x3f, 0xc2, 0x97, 0xbc,
-	0xc7, 0x7b, 0xa8, 0x9e, 0x4c, 0xa3, 0x49, 0xc2, 0x60, 0x65, 0x46, 0x5e, 0x26, 0xca, 0x96, 0xee,
-	0x11, 0xda, 0x16, 0x34, 0x4a, 0x87, 0xf4, 0xbd, 0xa2, 0x4c, 0x26, 0x9c, 0xe1, 0xcd, 0xf2, 0x48,
-	0x45, 0xa9, 0xff, 0xdb, 0xcd, 0x33, 0x99, 0xdb, 0x93, 0x2d, 0x68, 0x1a, 0x14, 0x3d, 0xed, 0xff,
-	0x5c, 0x84, 0x7e, 0x64, 0xfc, 0x92, 0xbd, 0x9e, 0xcf, 0xa8, 0xc4, 0x0f, 0x91, 0x1d, 0x31, 0x7f,
-	0x5b, 0xb7, 0xee, 0x74, 0xcc, 0x7c, 0xea, 0x14, 0xf3, 0xa9, 0x73, 0xc0, 0xe6, 0xc4, 0x8e, 0x18,
-	0xfe, 0x12, 0x39, 0x71, 0x66, 0x6e, 0x69, 0xa3, 0xbb, 0xbb, 0x22, 0x3b, 0xca, 0xa7, 0x24, 0x01,
-	0x15, 0xfe, 0x1c, 0xd9, 0x52, 0xf9, 0x9b, 0x5a, 0xfb, 0x60, 0x45, 0x7b, 0xaa, 0x27, 0x26, 0xb1,
-	0x25, 0xdc, 0x7e, 0x5b, 0xc9, 0x9c, 0x6f, 0x6b, 0x45, 0xf8, 0xba, 0x18, 0x9e, 0xc4, 0x56, 0x12,
-	0xb4, 0xe9, 0x85, 0x7f, 0x67, 0x8d, 0xf6, 0x55, 0x22, 0xd5, 0x2f, 0xb0, 0xc3, 0xc4, 0x4e, 0x2f,
-	0x70, 0x88, 0x9c, 0x8b, 0x28, 0xf5, 0x9b, 0x5a, 0x7c, 0x7f, 0x45, 0x6c, 0x84, 0x20, 0xc1, 0x1d,
-	0xe4, 0xc4, 0xa3, 0x54, 0x33, 0x6f, 0x74, 0xf7, 0x56, 0xbf, 0x4b, 0x3f, 0x72, 0xb9, 0x3e, 0x1e,
-	0xa5, 0xf8, 0x09, 0x72, 0xc6, 0xa9, 0xd2, 0x47, 0x00, 0x2e, 0xdc, 0xb2, 0x5e, 0x3f, 0x97, 0xb9,
-	0x7c, 0x9c, 0x2a, 0x90, 0x27, 0xf9, 0x6c, 0xbd, 0x4d, 0xae, 0xaf, 0x50, 0x2e, 0x4f, 0xfa, 0x3d,
-	0x58, 0x4d, 0xd6, 0xef, 0xe9, 0xa9, 0x72, 0xdb, 0x6a, 0xce, 0xae, 0xeb, 0xb3, 0x7e, 0x4f, 0xdb,
-	0xef, 0x77, 0xf5, 0x10, 0x5e, 0x63, 0xbf, 0xdf, 0x2d, 0xec, 0xf7, 0xbb, 0xda, 0x7e, 0xbf, 0xab,
-	0x27, 0xf3, 0x3a, 0xfb, 0x85, 0x3e, 0xd3, 0xfa, 0x8a, 0x1e, 0x61, 0xf5, 0x35, 0x9b, 0x0e, 0x77,
-	0xd8, 0xc8, 0xb5, 0x0e, 0xfc, 0xe1, 0x35, 0x42, 0x6b, 0xfc, 0xcd, 0x58, 0xc8, 0xfd, 0xa5, 0x12,
-	0xf8, 0x6b, 0xe4, 0x96, 0xc3, 0xfd, 0xb6, 0x0f, 0xd0, 0xe3, 0xc2, 0x34, 0x18, 0xe5, 0xb3, 0x00,
-	0x55, 0x58, 0x34, 0xa5, 0x4b, 0x07, 0xff, 0x77, 0xfd, 0xc2, 0xe8, 0xca, 0xff, 0x01, 0x00, 0x00,
-	0xff, 0xff, 0x51, 0xb7, 0x46, 0x20, 0xf9, 0x09, 0x00, 0x00,
+	0xe8, 0x67, 0x01, 0x7a, 0x8a, 0x04, 0xfe, 0x14, 0x6d, 0xbe, 0xe5, 0x53, 0x3a, 0x8c, 0xe2, 0x58,
+	0x50, 0x29, 0xf5, 0x0b, 0x01, 0x82, 0x06, 0x64, 0x0f, 0x4c, 0xf2, 0xb0, 0x8a, 0xdc, 0x8c, 0x25,
+	0x9c, 0xb5, 0x1f, 0xa1, 0x0a, 0xa1, 0x51, 0x5a, 0x7e, 0xbe, 0x65, 0xde, 0x08, 0x1d, 0x3c, 0xae,
+	0xd5, 0xe2, 0xe6, 0xd5, 0xd5, 0xd5, 0x95, 0xdd, 0xbe, 0x84, 0xff, 0x08, 0x5f, 0xf2, 0x1e, 0xef,
+	0xa1, 0x7a, 0x32, 0x8d, 0x26, 0x09, 0x83, 0x95, 0x19, 0x79, 0x99, 0x28, 0x5b, 0xba, 0x47, 0x68,
+	0x5b, 0xd0, 0x28, 0x1d, 0xd2, 0xf7, 0x8a, 0x32, 0x99, 0x70, 0x86, 0x37, 0xcb, 0x23, 0x15, 0xa5,
+	0xfe, 0x6f, 0x37, 0xcf, 0x64, 0x6e, 0x4f, 0xb6, 0xa0, 0x69, 0x50, 0xf4, 0xb4, 0xff, 0x73, 0x11,
+	0xfa, 0x91, 0xf1, 0x4b, 0xf6, 0x7a, 0x3e, 0xa3, 0x12, 0x3f, 0x44, 0x76, 0xc4, 0xfc, 0x6d, 0xdd,
+	0xba, 0xd3, 0x31, 0xf3, 0xa9, 0x53, 0xcc, 0xa7, 0xce, 0x01, 0x9b, 0x13, 0x3b, 0x62, 0xf8, 0x4b,
+	0xe4, 0xc4, 0x99, 0xb9, 0xa5, 0x8d, 0xee, 0xee, 0x8a, 0xec, 0x28, 0x9f, 0x92, 0x04, 0x54, 0xf8,
+	0x73, 0x64, 0x4b, 0xe5, 0x6f, 0x6a, 0xed, 0x83, 0x15, 0xed, 0xa9, 0x9e, 0x98, 0xc4, 0x96, 0x70,
+	0xfb, 0x6d, 0x25, 0x73, 0xbe, 0xad, 0x15, 0xe1, 0xeb, 0x62, 0x78, 0x12, 0x5b, 0x49, 0xd0, 0xa6,
+	0x17, 0xfe, 0x9d, 0x35, 0xda, 0x57, 0x89, 0x54, 0xbf, 0xc0, 0x0e, 0x13, 0x3b, 0xbd, 0xc0, 0x21,
+	0x72, 0x2e, 0xa2, 0xd4, 0x6f, 0x6a, 0xf1, 0xfd, 0x15, 0xb1, 0x11, 0x82, 0x04, 0x77, 0x90, 0x13,
+	0x8f, 0x52, 0xcd, 0xbc, 0xd1, 0xdd, 0x5b, 0xfd, 0x2e, 0xfd, 0xc8, 0xe5, 0xfa, 0x78, 0x94, 0xe2,
+	0x27, 0xc8, 0x19, 0xa7, 0x4a, 0x1f, 0x01, 0xb8, 0x70, 0xcb, 0x7a, 0xfd, 0x5c, 0xe6, 0xf2, 0x71,
+	0xaa, 0x40, 0x9e, 0xe4, 0xb3, 0xf5, 0x36, 0xb9, 0xbe, 0x42, 0xb9, 0x3c, 0xe9, 0xf7, 0x60, 0x35,
+	0x59, 0xbf, 0xa7, 0xa7, 0xca, 0x6d, 0xab, 0x39, 0xbb, 0xae, 0xcf, 0xfa, 0x3d, 0x6d, 0xbf, 0xdf,
+	0xd5, 0x43, 0x78, 0x8d, 0xfd, 0x7e, 0xb7, 0xb0, 0xdf, 0xef, 0x6a, 0xfb, 0xfd, 0xae, 0x9e, 0xcc,
+	0xeb, 0xec, 0x17, 0xfa, 0x4c, 0xeb, 0x2b, 0x7a, 0x84, 0xd5, 0xd7, 0x6c, 0x3a, 0xdc, 0x61, 0x23,
+	0xd7, 0x3a, 0xf0, 0x87, 0xd7, 0x08, 0xad, 0xf1, 0x37, 0x63, 0x21, 0xf7, 0x97, 0x4a, 0xe0, 0xaf,
+	0x91, 0x5b, 0x0e, 0xf7, 0xdb, 0x3e, 0x40, 0x8f, 0x0b, 0xd3, 0x60, 0x94, 0xcf, 0x02, 0x54, 0x61,
+	0xd1, 0x94, 0x2e, 0x1d, 0xfc, 0xdf, 0xf5, 0x0b, 0xa3, 0x2b, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff,
+	0xd5, 0x39, 0x32, 0x09, 0xf9, 0x09, 0x00, 0x00,
 }

+ 1 - 1
proto/extensions_test.go

@@ -213,7 +213,7 @@ func TestGetExtensionDefaults(t *testing.T) {
 		{pb.E_DefaultSfixed64, setInt64, int64(51)},
 		{pb.E_DefaultBool, setBool, true},
 		{pb.E_DefaultBool, setBool2, true},
-		{pb.E_DefaultString, setString, "Hello, string"},
+		{pb.E_DefaultString, setString, "Hello, string,def=foo"},
 		{pb.E_DefaultBytes, setBytes, []byte("Hello, bytes")},
 		{pb.E_DefaultEnum, setEnum, pb.DefaultsMessage_ONE},
 	}

+ 3 - 2
proto/properties.go

@@ -156,7 +156,7 @@ type Properties struct {
 // String formats the properties in the protobuf struct field tag style.
 func (p *Properties) String() string {
 	s := p.Wire
-	s = ","
+	s += ","
 	s += strconv.Itoa(p.Tag)
 	if p.Required {
 		s += ",req"
@@ -224,6 +224,7 @@ func (p *Properties) Parse(s string) {
 		return
 	}
 
+outer:
 	for i := 2; i < len(fields); i++ {
 		f := fields[i]
 		switch {
@@ -251,7 +252,7 @@ func (p *Properties) Parse(s string) {
 			if i+1 < len(fields) {
 				// Commas aren't escaped, and def is always last.
 				p.Default += "," + strings.Join(fields[i+1:], ",")
-				break
+				break outer
 			}
 		}
 	}

+ 405 - 405
proto/test_proto/test.pb.go

@@ -341,8 +341,8 @@ func (m *GoEnum) GetFoo() FOO {
 }
 
 type GoTestField struct {
-	Label                *string  `protobuf:"bytes,1,req,name=Label,json=label" json:"Label,omitempty"`
-	Type                 *string  `protobuf:"bytes,2,req,name=Type,json=type" json:"Type,omitempty"`
+	Label                *string  `protobuf:"bytes,1,req,name=Label" json:"Label,omitempty"`
+	Type                 *string  `protobuf:"bytes,2,req,name=Type" json:"Type,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -386,91 +386,91 @@ func (m *GoTestField) GetType() string {
 
 type GoTest struct {
 	// Some typical parameters
-	Kind  *GoTest_KIND `protobuf:"varint,1,req,name=Kind,json=kind,enum=test_proto.GoTest_KIND" json:"Kind,omitempty"`
-	Table *string      `protobuf:"bytes,2,opt,name=Table,json=table" json:"Table,omitempty"`
-	Param *int32       `protobuf:"varint,3,opt,name=Param,json=param" json:"Param,omitempty"`
+	Kind  *GoTest_KIND `protobuf:"varint,1,req,name=Kind,enum=test_proto.GoTest_KIND" json:"Kind,omitempty"`
+	Table *string      `protobuf:"bytes,2,opt,name=Table" json:"Table,omitempty"`
+	Param *int32       `protobuf:"varint,3,opt,name=Param" json:"Param,omitempty"`
 	// Required, repeated and optional foreign fields.
-	RequiredField *GoTestField   `protobuf:"bytes,4,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"`
-	RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField,json=repeatedField" json:"RepeatedField,omitempty"`
-	OptionalField *GoTestField   `protobuf:"bytes,6,opt,name=OptionalField,json=optionalField" json:"OptionalField,omitempty"`
+	RequiredField *GoTestField   `protobuf:"bytes,4,req,name=RequiredField" json:"RequiredField,omitempty"`
+	RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField" json:"RepeatedField,omitempty"`
+	OptionalField *GoTestField   `protobuf:"bytes,6,opt,name=OptionalField" json:"OptionalField,omitempty"`
 	// Required fields of all basic types
-	F_BoolRequired     *bool    `protobuf:"varint,10,req,name=F_Bool_required,json=fBoolRequired" json:"F_Bool_required,omitempty"`
-	F_Int32Required    *int32   `protobuf:"varint,11,req,name=F_Int32_required,json=fInt32Required" json:"F_Int32_required,omitempty"`
-	F_Int64Required    *int64   `protobuf:"varint,12,req,name=F_Int64_required,json=fInt64Required" json:"F_Int64_required,omitempty"`
-	F_Fixed32Required  *uint32  `protobuf:"fixed32,13,req,name=F_Fixed32_required,json=fFixed32Required" json:"F_Fixed32_required,omitempty"`
-	F_Fixed64Required  *uint64  `protobuf:"fixed64,14,req,name=F_Fixed64_required,json=fFixed64Required" json:"F_Fixed64_required,omitempty"`
-	F_Uint32Required   *uint32  `protobuf:"varint,15,req,name=F_Uint32_required,json=fUint32Required" json:"F_Uint32_required,omitempty"`
-	F_Uint64Required   *uint64  `protobuf:"varint,16,req,name=F_Uint64_required,json=fUint64Required" json:"F_Uint64_required,omitempty"`
-	F_FloatRequired    *float32 `protobuf:"fixed32,17,req,name=F_Float_required,json=fFloatRequired" json:"F_Float_required,omitempty"`
-	F_DoubleRequired   *float64 `protobuf:"fixed64,18,req,name=F_Double_required,json=fDoubleRequired" json:"F_Double_required,omitempty"`
-	F_StringRequired   *string  `protobuf:"bytes,19,req,name=F_String_required,json=fStringRequired" json:"F_String_required,omitempty"`
-	F_BytesRequired    []byte   `protobuf:"bytes,101,req,name=F_Bytes_required,json=fBytesRequired" json:"F_Bytes_required,omitempty"`
-	F_Sint32Required   *int32   `protobuf:"zigzag32,102,req,name=F_Sint32_required,json=fSint32Required" json:"F_Sint32_required,omitempty"`
-	F_Sint64Required   *int64   `protobuf:"zigzag64,103,req,name=F_Sint64_required,json=fSint64Required" json:"F_Sint64_required,omitempty"`
-	F_Sfixed32Required *int32   `protobuf:"fixed32,104,req,name=F_Sfixed32_required,json=fSfixed32Required" json:"F_Sfixed32_required,omitempty"`
-	F_Sfixed64Required *int64   `protobuf:"fixed64,105,req,name=F_Sfixed64_required,json=fSfixed64Required" json:"F_Sfixed64_required,omitempty"`
+	F_BoolRequired     *bool    `protobuf:"varint,10,req,name=F_Bool_required,json=FBoolRequired" json:"F_Bool_required,omitempty"`
+	F_Int32Required    *int32   `protobuf:"varint,11,req,name=F_Int32_required,json=FInt32Required" json:"F_Int32_required,omitempty"`
+	F_Int64Required    *int64   `protobuf:"varint,12,req,name=F_Int64_required,json=FInt64Required" json:"F_Int64_required,omitempty"`
+	F_Fixed32Required  *uint32  `protobuf:"fixed32,13,req,name=F_Fixed32_required,json=FFixed32Required" json:"F_Fixed32_required,omitempty"`
+	F_Fixed64Required  *uint64  `protobuf:"fixed64,14,req,name=F_Fixed64_required,json=FFixed64Required" json:"F_Fixed64_required,omitempty"`
+	F_Uint32Required   *uint32  `protobuf:"varint,15,req,name=F_Uint32_required,json=FUint32Required" json:"F_Uint32_required,omitempty"`
+	F_Uint64Required   *uint64  `protobuf:"varint,16,req,name=F_Uint64_required,json=FUint64Required" json:"F_Uint64_required,omitempty"`
+	F_FloatRequired    *float32 `protobuf:"fixed32,17,req,name=F_Float_required,json=FFloatRequired" json:"F_Float_required,omitempty"`
+	F_DoubleRequired   *float64 `protobuf:"fixed64,18,req,name=F_Double_required,json=FDoubleRequired" json:"F_Double_required,omitempty"`
+	F_StringRequired   *string  `protobuf:"bytes,19,req,name=F_String_required,json=FStringRequired" json:"F_String_required,omitempty"`
+	F_BytesRequired    []byte   `protobuf:"bytes,101,req,name=F_Bytes_required,json=FBytesRequired" json:"F_Bytes_required,omitempty"`
+	F_Sint32Required   *int32   `protobuf:"zigzag32,102,req,name=F_Sint32_required,json=FSint32Required" json:"F_Sint32_required,omitempty"`
+	F_Sint64Required   *int64   `protobuf:"zigzag64,103,req,name=F_Sint64_required,json=FSint64Required" json:"F_Sint64_required,omitempty"`
+	F_Sfixed32Required *int32   `protobuf:"fixed32,104,req,name=F_Sfixed32_required,json=FSfixed32Required" json:"F_Sfixed32_required,omitempty"`
+	F_Sfixed64Required *int64   `protobuf:"fixed64,105,req,name=F_Sfixed64_required,json=FSfixed64Required" json:"F_Sfixed64_required,omitempty"`
 	// Repeated fields of all basic types
-	F_BoolRepeated     []bool    `protobuf:"varint,20,rep,name=F_Bool_repeated,json=fBoolRepeated" json:"F_Bool_repeated,omitempty"`
-	F_Int32Repeated    []int32   `protobuf:"varint,21,rep,name=F_Int32_repeated,json=fInt32Repeated" json:"F_Int32_repeated,omitempty"`
-	F_Int64Repeated    []int64   `protobuf:"varint,22,rep,name=F_Int64_repeated,json=fInt64Repeated" json:"F_Int64_repeated,omitempty"`
-	F_Fixed32Repeated  []uint32  `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated,json=fFixed32Repeated" json:"F_Fixed32_repeated,omitempty"`
-	F_Fixed64Repeated  []uint64  `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated,json=fFixed64Repeated" json:"F_Fixed64_repeated,omitempty"`
-	F_Uint32Repeated   []uint32  `protobuf:"varint,25,rep,name=F_Uint32_repeated,json=fUint32Repeated" json:"F_Uint32_repeated,omitempty"`
-	F_Uint64Repeated   []uint64  `protobuf:"varint,26,rep,name=F_Uint64_repeated,json=fUint64Repeated" json:"F_Uint64_repeated,omitempty"`
-	F_FloatRepeated    []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated,json=fFloatRepeated" json:"F_Float_repeated,omitempty"`
-	F_DoubleRepeated   []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated,json=fDoubleRepeated" json:"F_Double_repeated,omitempty"`
-	F_StringRepeated   []string  `protobuf:"bytes,29,rep,name=F_String_repeated,json=fStringRepeated" json:"F_String_repeated,omitempty"`
-	F_BytesRepeated    [][]byte  `protobuf:"bytes,201,rep,name=F_Bytes_repeated,json=fBytesRepeated" json:"F_Bytes_repeated,omitempty"`
-	F_Sint32Repeated   []int32   `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated,json=fSint32Repeated" json:"F_Sint32_repeated,omitempty"`
-	F_Sint64Repeated   []int64   `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated,json=fSint64Repeated" json:"F_Sint64_repeated,omitempty"`
-	F_Sfixed32Repeated []int32   `protobuf:"fixed32,204,rep,name=F_Sfixed32_repeated,json=fSfixed32Repeated" json:"F_Sfixed32_repeated,omitempty"`
-	F_Sfixed64Repeated []int64   `protobuf:"fixed64,205,rep,name=F_Sfixed64_repeated,json=fSfixed64Repeated" json:"F_Sfixed64_repeated,omitempty"`
+	F_BoolRepeated     []bool    `protobuf:"varint,20,rep,name=F_Bool_repeated,json=FBoolRepeated" json:"F_Bool_repeated,omitempty"`
+	F_Int32Repeated    []int32   `protobuf:"varint,21,rep,name=F_Int32_repeated,json=FInt32Repeated" json:"F_Int32_repeated,omitempty"`
+	F_Int64Repeated    []int64   `protobuf:"varint,22,rep,name=F_Int64_repeated,json=FInt64Repeated" json:"F_Int64_repeated,omitempty"`
+	F_Fixed32Repeated  []uint32  `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated,json=FFixed32Repeated" json:"F_Fixed32_repeated,omitempty"`
+	F_Fixed64Repeated  []uint64  `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated,json=FFixed64Repeated" json:"F_Fixed64_repeated,omitempty"`
+	F_Uint32Repeated   []uint32  `protobuf:"varint,25,rep,name=F_Uint32_repeated,json=FUint32Repeated" json:"F_Uint32_repeated,omitempty"`
+	F_Uint64Repeated   []uint64  `protobuf:"varint,26,rep,name=F_Uint64_repeated,json=FUint64Repeated" json:"F_Uint64_repeated,omitempty"`
+	F_FloatRepeated    []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated,json=FFloatRepeated" json:"F_Float_repeated,omitempty"`
+	F_DoubleRepeated   []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated,json=FDoubleRepeated" json:"F_Double_repeated,omitempty"`
+	F_StringRepeated   []string  `protobuf:"bytes,29,rep,name=F_String_repeated,json=FStringRepeated" json:"F_String_repeated,omitempty"`
+	F_BytesRepeated    [][]byte  `protobuf:"bytes,201,rep,name=F_Bytes_repeated,json=FBytesRepeated" json:"F_Bytes_repeated,omitempty"`
+	F_Sint32Repeated   []int32   `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated,json=FSint32Repeated" json:"F_Sint32_repeated,omitempty"`
+	F_Sint64Repeated   []int64   `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated,json=FSint64Repeated" json:"F_Sint64_repeated,omitempty"`
+	F_Sfixed32Repeated []int32   `protobuf:"fixed32,204,rep,name=F_Sfixed32_repeated,json=FSfixed32Repeated" json:"F_Sfixed32_repeated,omitempty"`
+	F_Sfixed64Repeated []int64   `protobuf:"fixed64,205,rep,name=F_Sfixed64_repeated,json=FSfixed64Repeated" json:"F_Sfixed64_repeated,omitempty"`
 	// Optional fields of all basic types
-	F_BoolOptional     *bool    `protobuf:"varint,30,opt,name=F_Bool_optional,json=fBoolOptional" json:"F_Bool_optional,omitempty"`
-	F_Int32Optional    *int32   `protobuf:"varint,31,opt,name=F_Int32_optional,json=fInt32Optional" json:"F_Int32_optional,omitempty"`
-	F_Int64Optional    *int64   `protobuf:"varint,32,opt,name=F_Int64_optional,json=fInt64Optional" json:"F_Int64_optional,omitempty"`
-	F_Fixed32Optional  *uint32  `protobuf:"fixed32,33,opt,name=F_Fixed32_optional,json=fFixed32Optional" json:"F_Fixed32_optional,omitempty"`
-	F_Fixed64Optional  *uint64  `protobuf:"fixed64,34,opt,name=F_Fixed64_optional,json=fFixed64Optional" json:"F_Fixed64_optional,omitempty"`
-	F_Uint32Optional   *uint32  `protobuf:"varint,35,opt,name=F_Uint32_optional,json=fUint32Optional" json:"F_Uint32_optional,omitempty"`
-	F_Uint64Optional   *uint64  `protobuf:"varint,36,opt,name=F_Uint64_optional,json=fUint64Optional" json:"F_Uint64_optional,omitempty"`
-	F_FloatOptional    *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional,json=fFloatOptional" json:"F_Float_optional,omitempty"`
-	F_DoubleOptional   *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional,json=fDoubleOptional" json:"F_Double_optional,omitempty"`
-	F_StringOptional   *string  `protobuf:"bytes,39,opt,name=F_String_optional,json=fStringOptional" json:"F_String_optional,omitempty"`
-	F_BytesOptional    []byte   `protobuf:"bytes,301,opt,name=F_Bytes_optional,json=fBytesOptional" json:"F_Bytes_optional,omitempty"`
-	F_Sint32Optional   *int32   `protobuf:"zigzag32,302,opt,name=F_Sint32_optional,json=fSint32Optional" json:"F_Sint32_optional,omitempty"`
-	F_Sint64Optional   *int64   `protobuf:"zigzag64,303,opt,name=F_Sint64_optional,json=fSint64Optional" json:"F_Sint64_optional,omitempty"`
-	F_Sfixed32Optional *int32   `protobuf:"fixed32,304,opt,name=F_Sfixed32_optional,json=fSfixed32Optional" json:"F_Sfixed32_optional,omitempty"`
-	F_Sfixed64Optional *int64   `protobuf:"fixed64,305,opt,name=F_Sfixed64_optional,json=fSfixed64Optional" json:"F_Sfixed64_optional,omitempty"`
+	F_BoolOptional     *bool    `protobuf:"varint,30,opt,name=F_Bool_optional,json=FBoolOptional" json:"F_Bool_optional,omitempty"`
+	F_Int32Optional    *int32   `protobuf:"varint,31,opt,name=F_Int32_optional,json=FInt32Optional" json:"F_Int32_optional,omitempty"`
+	F_Int64Optional    *int64   `protobuf:"varint,32,opt,name=F_Int64_optional,json=FInt64Optional" json:"F_Int64_optional,omitempty"`
+	F_Fixed32Optional  *uint32  `protobuf:"fixed32,33,opt,name=F_Fixed32_optional,json=FFixed32Optional" json:"F_Fixed32_optional,omitempty"`
+	F_Fixed64Optional  *uint64  `protobuf:"fixed64,34,opt,name=F_Fixed64_optional,json=FFixed64Optional" json:"F_Fixed64_optional,omitempty"`
+	F_Uint32Optional   *uint32  `protobuf:"varint,35,opt,name=F_Uint32_optional,json=FUint32Optional" json:"F_Uint32_optional,omitempty"`
+	F_Uint64Optional   *uint64  `protobuf:"varint,36,opt,name=F_Uint64_optional,json=FUint64Optional" json:"F_Uint64_optional,omitempty"`
+	F_FloatOptional    *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional,json=FFloatOptional" json:"F_Float_optional,omitempty"`
+	F_DoubleOptional   *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional,json=FDoubleOptional" json:"F_Double_optional,omitempty"`
+	F_StringOptional   *string  `protobuf:"bytes,39,opt,name=F_String_optional,json=FStringOptional" json:"F_String_optional,omitempty"`
+	F_BytesOptional    []byte   `protobuf:"bytes,301,opt,name=F_Bytes_optional,json=FBytesOptional" json:"F_Bytes_optional,omitempty"`
+	F_Sint32Optional   *int32   `protobuf:"zigzag32,302,opt,name=F_Sint32_optional,json=FSint32Optional" json:"F_Sint32_optional,omitempty"`
+	F_Sint64Optional   *int64   `protobuf:"zigzag64,303,opt,name=F_Sint64_optional,json=FSint64Optional" json:"F_Sint64_optional,omitempty"`
+	F_Sfixed32Optional *int32   `protobuf:"fixed32,304,opt,name=F_Sfixed32_optional,json=FSfixed32Optional" json:"F_Sfixed32_optional,omitempty"`
+	F_Sfixed64Optional *int64   `protobuf:"fixed64,305,opt,name=F_Sfixed64_optional,json=FSfixed64Optional" json:"F_Sfixed64_optional,omitempty"`
 	// Default-valued fields of all basic types
-	F_BoolDefaulted     *bool    `protobuf:"varint,40,opt,name=F_Bool_defaulted,json=fBoolDefaulted,def=1" json:"F_Bool_defaulted,omitempty"`
-	F_Int32Defaulted    *int32   `protobuf:"varint,41,opt,name=F_Int32_defaulted,json=fInt32Defaulted,def=32" json:"F_Int32_defaulted,omitempty"`
-	F_Int64Defaulted    *int64   `protobuf:"varint,42,opt,name=F_Int64_defaulted,json=fInt64Defaulted,def=64" json:"F_Int64_defaulted,omitempty"`
-	F_Fixed32Defaulted  *uint32  `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,json=fFixed32Defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"`
-	F_Fixed64Defaulted  *uint64  `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,json=fFixed64Defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"`
-	F_Uint32Defaulted   *uint32  `protobuf:"varint,45,opt,name=F_Uint32_defaulted,json=fUint32Defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"`
-	F_Uint64Defaulted   *uint64  `protobuf:"varint,46,opt,name=F_Uint64_defaulted,json=fUint64Defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"`
-	F_FloatDefaulted    *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,json=fFloatDefaulted,def=314159" json:"F_Float_defaulted,omitempty"`
-	F_DoubleDefaulted   *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,json=fDoubleDefaulted,def=271828" json:"F_Double_defaulted,omitempty"`
-	F_StringDefaulted   *string  `protobuf:"bytes,49,opt,name=F_String_defaulted,json=fStringDefaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"`
-	F_BytesDefaulted    []byte   `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,json=fBytesDefaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"`
-	F_Sint32Defaulted   *int32   `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,json=fSint32Defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"`
-	F_Sint64Defaulted   *int64   `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,json=fSint64Defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"`
-	F_Sfixed32Defaulted *int32   `protobuf:"fixed32,404,opt,name=F_Sfixed32_defaulted,json=fSfixed32Defaulted,def=-32" json:"F_Sfixed32_defaulted,omitempty"`
-	F_Sfixed64Defaulted *int64   `protobuf:"fixed64,405,opt,name=F_Sfixed64_defaulted,json=fSfixed64Defaulted,def=-64" json:"F_Sfixed64_defaulted,omitempty"`
+	F_BoolDefaulted     *bool    `protobuf:"varint,40,opt,name=F_Bool_defaulted,json=FBoolDefaulted,def=1" json:"F_Bool_defaulted,omitempty"`
+	F_Int32Defaulted    *int32   `protobuf:"varint,41,opt,name=F_Int32_defaulted,json=FInt32Defaulted,def=32" json:"F_Int32_defaulted,omitempty"`
+	F_Int64Defaulted    *int64   `protobuf:"varint,42,opt,name=F_Int64_defaulted,json=FInt64Defaulted,def=64" json:"F_Int64_defaulted,omitempty"`
+	F_Fixed32Defaulted  *uint32  `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,json=FFixed32Defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"`
+	F_Fixed64Defaulted  *uint64  `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,json=FFixed64Defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"`
+	F_Uint32Defaulted   *uint32  `protobuf:"varint,45,opt,name=F_Uint32_defaulted,json=FUint32Defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"`
+	F_Uint64Defaulted   *uint64  `protobuf:"varint,46,opt,name=F_Uint64_defaulted,json=FUint64Defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"`
+	F_FloatDefaulted    *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,json=FFloatDefaulted,def=314159" json:"F_Float_defaulted,omitempty"`
+	F_DoubleDefaulted   *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,json=FDoubleDefaulted,def=271828" json:"F_Double_defaulted,omitempty"`
+	F_StringDefaulted   *string  `protobuf:"bytes,49,opt,name=F_String_defaulted,json=FStringDefaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"`
+	F_BytesDefaulted    []byte   `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,json=FBytesDefaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"`
+	F_Sint32Defaulted   *int32   `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,json=FSint32Defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"`
+	F_Sint64Defaulted   *int64   `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,json=FSint64Defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"`
+	F_Sfixed32Defaulted *int32   `protobuf:"fixed32,404,opt,name=F_Sfixed32_defaulted,json=FSfixed32Defaulted,def=-32" json:"F_Sfixed32_defaulted,omitempty"`
+	F_Sfixed64Defaulted *int64   `protobuf:"fixed64,405,opt,name=F_Sfixed64_defaulted,json=FSfixed64Defaulted,def=-64" json:"F_Sfixed64_defaulted,omitempty"`
 	// Packed repeated fields (no string or bytes).
-	F_BoolRepeatedPacked     []bool                  `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed,json=fBoolRepeatedPacked" json:"F_Bool_repeated_packed,omitempty"`
-	F_Int32RepeatedPacked    []int32                 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed,json=fInt32RepeatedPacked" json:"F_Int32_repeated_packed,omitempty"`
-	F_Int64RepeatedPacked    []int64                 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed,json=fInt64RepeatedPacked" json:"F_Int64_repeated_packed,omitempty"`
-	F_Fixed32RepeatedPacked  []uint32                `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed,json=fFixed32RepeatedPacked" json:"F_Fixed32_repeated_packed,omitempty"`
-	F_Fixed64RepeatedPacked  []uint64                `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed,json=fFixed64RepeatedPacked" json:"F_Fixed64_repeated_packed,omitempty"`
-	F_Uint32RepeatedPacked   []uint32                `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed,json=fUint32RepeatedPacked" json:"F_Uint32_repeated_packed,omitempty"`
-	F_Uint64RepeatedPacked   []uint64                `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed,json=fUint64RepeatedPacked" json:"F_Uint64_repeated_packed,omitempty"`
-	F_FloatRepeatedPacked    []float32               `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed,json=fFloatRepeatedPacked" json:"F_Float_repeated_packed,omitempty"`
-	F_DoubleRepeatedPacked   []float64               `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed,json=fDoubleRepeatedPacked" json:"F_Double_repeated_packed,omitempty"`
-	F_Sint32RepeatedPacked   []int32                 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed,json=fSint32RepeatedPacked" json:"F_Sint32_repeated_packed,omitempty"`
-	F_Sint64RepeatedPacked   []int64                 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed,json=fSint64RepeatedPacked" json:"F_Sint64_repeated_packed,omitempty"`
-	F_Sfixed32RepeatedPacked []int32                 `protobuf:"fixed32,504,rep,packed,name=F_Sfixed32_repeated_packed,json=fSfixed32RepeatedPacked" json:"F_Sfixed32_repeated_packed,omitempty"`
-	F_Sfixed64RepeatedPacked []int64                 `protobuf:"fixed64,505,rep,packed,name=F_Sfixed64_repeated_packed,json=fSfixed64RepeatedPacked" json:"F_Sfixed64_repeated_packed,omitempty"`
+	F_BoolRepeatedPacked     []bool                  `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed,json=FBoolRepeatedPacked" json:"F_Bool_repeated_packed,omitempty"`
+	F_Int32RepeatedPacked    []int32                 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed,json=FInt32RepeatedPacked" json:"F_Int32_repeated_packed,omitempty"`
+	F_Int64RepeatedPacked    []int64                 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed,json=FInt64RepeatedPacked" json:"F_Int64_repeated_packed,omitempty"`
+	F_Fixed32RepeatedPacked  []uint32                `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed,json=FFixed32RepeatedPacked" json:"F_Fixed32_repeated_packed,omitempty"`
+	F_Fixed64RepeatedPacked  []uint64                `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed,json=FFixed64RepeatedPacked" json:"F_Fixed64_repeated_packed,omitempty"`
+	F_Uint32RepeatedPacked   []uint32                `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed,json=FUint32RepeatedPacked" json:"F_Uint32_repeated_packed,omitempty"`
+	F_Uint64RepeatedPacked   []uint64                `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed,json=FUint64RepeatedPacked" json:"F_Uint64_repeated_packed,omitempty"`
+	F_FloatRepeatedPacked    []float32               `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed,json=FFloatRepeatedPacked" json:"F_Float_repeated_packed,omitempty"`
+	F_DoubleRepeatedPacked   []float64               `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed,json=FDoubleRepeatedPacked" json:"F_Double_repeated_packed,omitempty"`
+	F_Sint32RepeatedPacked   []int32                 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed,json=FSint32RepeatedPacked" json:"F_Sint32_repeated_packed,omitempty"`
+	F_Sint64RepeatedPacked   []int64                 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed,json=FSint64RepeatedPacked" json:"F_Sint64_repeated_packed,omitempty"`
+	F_Sfixed32RepeatedPacked []int32                 `protobuf:"fixed32,504,rep,packed,name=F_Sfixed32_repeated_packed,json=FSfixed32RepeatedPacked" json:"F_Sfixed32_repeated_packed,omitempty"`
+	F_Sfixed64RepeatedPacked []int64                 `protobuf:"fixed64,505,rep,packed,name=F_Sfixed64_repeated_packed,json=FSfixed64RepeatedPacked" json:"F_Sfixed64_repeated_packed,omitempty"`
 	Requiredgroup            *GoTest_RequiredGroup   `protobuf:"group,70,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"`
 	Repeatedgroup            []*GoTest_RepeatedGroup `protobuf:"group,80,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"`
 	Optionalgroup            *GoTest_OptionalGroup   `protobuf:"group,90,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"`
@@ -1095,7 +1095,7 @@ func (m *GoTest) GetOptionalgroup() *GoTest_OptionalGroup {
 
 // Required, repeated, and optional groups.
 type GoTest_RequiredGroup struct {
-	RequiredField        *string  `protobuf:"bytes,71,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"`
+	RequiredField        *string  `protobuf:"bytes,71,req,name=RequiredField" json:"RequiredField,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1131,7 +1131,7 @@ func (m *GoTest_RequiredGroup) GetRequiredField() string {
 }
 
 type GoTest_RepeatedGroup struct {
-	RequiredField        *string  `protobuf:"bytes,81,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"`
+	RequiredField        *string  `protobuf:"bytes,81,req,name=RequiredField" json:"RequiredField,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1167,7 +1167,7 @@ func (m *GoTest_RepeatedGroup) GetRequiredField() string {
 }
 
 type GoTest_OptionalGroup struct {
-	RequiredField        *string  `protobuf:"bytes,91,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"`
+	RequiredField        *string  `protobuf:"bytes,91,req,name=RequiredField" json:"RequiredField,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -1240,7 +1240,7 @@ func (m *GoTestRequiredGroupField) GetGroup() *GoTestRequiredGroupField_Group {
 }
 
 type GoTestRequiredGroupField_Group struct {
-	Field                *int32   `protobuf:"varint,2,req,name=Field,json=field" json:"Field,omitempty"`
+	Field                *int32   `protobuf:"varint,2,req,name=Field" json:"Field,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -2365,24 +2365,24 @@ func (m *Strings) GetBytesField() []byte {
 type Defaults struct {
 	// Default-valued fields of all basic types.
 	// Same as GoTest, but copied here to make testing easier.
-	F_Bool    *bool           `protobuf:"varint,1,opt,name=F_Bool,json=fBool,def=1" json:"F_Bool,omitempty"`
-	F_Int32   *int32          `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,def=32" json:"F_Int32,omitempty"`
-	F_Int64   *int64          `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,def=64" json:"F_Int64,omitempty"`
-	F_Fixed32 *uint32         `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,def=320" json:"F_Fixed32,omitempty"`
-	F_Fixed64 *uint64         `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,def=640" json:"F_Fixed64,omitempty"`
-	F_Uint32  *uint32         `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,def=3200" json:"F_Uint32,omitempty"`
-	F_Uint64  *uint64         `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,def=6400" json:"F_Uint64,omitempty"`
-	F_Float   *float32        `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,def=314159" json:"F_Float,omitempty"`
-	F_Double  *float64        `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,def=271828" json:"F_Double,omitempty"`
-	F_String  *string         `protobuf:"bytes,10,opt,name=F_String,json=fString,def=hello, \"world!\"\n" json:"F_String,omitempty"`
-	F_Bytes   []byte          `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,def=Bignose" json:"F_Bytes,omitempty"`
-	F_Sint32  *int32          `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,def=-32" json:"F_Sint32,omitempty"`
-	F_Sint64  *int64          `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,def=-64" json:"F_Sint64,omitempty"`
-	F_Enum    *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=test_proto.Defaults_Color,def=1" json:"F_Enum,omitempty"`
+	F_Bool    *bool           `protobuf:"varint,1,opt,name=F_Bool,json=FBool,def=1" json:"F_Bool,omitempty"`
+	F_Int32   *int32          `protobuf:"varint,2,opt,name=F_Int32,json=FInt32,def=32" json:"F_Int32,omitempty"`
+	F_Int64   *int64          `protobuf:"varint,3,opt,name=F_Int64,json=FInt64,def=64" json:"F_Int64,omitempty"`
+	F_Fixed32 *uint32         `protobuf:"fixed32,4,opt,name=F_Fixed32,json=FFixed32,def=320" json:"F_Fixed32,omitempty"`
+	F_Fixed64 *uint64         `protobuf:"fixed64,5,opt,name=F_Fixed64,json=FFixed64,def=640" json:"F_Fixed64,omitempty"`
+	F_Uint32  *uint32         `protobuf:"varint,6,opt,name=F_Uint32,json=FUint32,def=3200" json:"F_Uint32,omitempty"`
+	F_Uint64  *uint64         `protobuf:"varint,7,opt,name=F_Uint64,json=FUint64,def=6400" json:"F_Uint64,omitempty"`
+	F_Float   *float32        `protobuf:"fixed32,8,opt,name=F_Float,json=FFloat,def=314159" json:"F_Float,omitempty"`
+	F_Double  *float64        `protobuf:"fixed64,9,opt,name=F_Double,json=FDouble,def=271828" json:"F_Double,omitempty"`
+	F_String  *string         `protobuf:"bytes,10,opt,name=F_String,json=FString,def=hello, \"world!\"\n" json:"F_String,omitempty"`
+	F_Bytes   []byte          `protobuf:"bytes,11,opt,name=F_Bytes,json=FBytes,def=Bignose" json:"F_Bytes,omitempty"`
+	F_Sint32  *int32          `protobuf:"zigzag32,12,opt,name=F_Sint32,json=FSint32,def=-32" json:"F_Sint32,omitempty"`
+	F_Sint64  *int64          `protobuf:"zigzag64,13,opt,name=F_Sint64,json=FSint64,def=-64" json:"F_Sint64,omitempty"`
+	F_Enum    *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,json=FEnum,enum=test_proto.Defaults_Color,def=1" json:"F_Enum,omitempty"`
 	// More fields with crazy defaults.
-	F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,json=fPinf,def=inf" json:"F_Pinf,omitempty"`
-	F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,json=fNinf,def=-inf" json:"F_Ninf,omitempty"`
-	F_Nan  *float32 `protobuf:"fixed32,17,opt,name=F_Nan,json=fNan,def=nan" json:"F_Nan,omitempty"`
+	F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,json=FPinf,def=inf" json:"F_Pinf,omitempty"`
+	F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,json=FNinf,def=-inf" json:"F_Ninf,omitempty"`
+	F_Nan  *float32 `protobuf:"fixed32,17,opt,name=F_Nan,json=FNan,def=nan" json:"F_Nan,omitempty"`
 	// Sub-message.
 	Sub *SubDefaults `protobuf:"bytes,18,opt,name=sub" json:"sub,omitempty"`
 	// Redundant but explicit defaults.
@@ -3040,55 +3040,55 @@ type isOneof_Tormato interface {
 }
 
 type Oneof_F_Bool struct {
-	F_Bool bool `protobuf:"varint,1,opt,name=F_Bool,json=fBool,oneof"`
+	F_Bool bool `protobuf:"varint,1,opt,name=F_Bool,json=FBool,oneof"`
 }
 type Oneof_F_Int32 struct {
-	F_Int32 int32 `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,oneof"`
+	F_Int32 int32 `protobuf:"varint,2,opt,name=F_Int32,json=FInt32,oneof"`
 }
 type Oneof_F_Int64 struct {
-	F_Int64 int64 `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,oneof"`
+	F_Int64 int64 `protobuf:"varint,3,opt,name=F_Int64,json=FInt64,oneof"`
 }
 type Oneof_F_Fixed32 struct {
-	F_Fixed32 uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,oneof"`
+	F_Fixed32 uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=FFixed32,oneof"`
 }
 type Oneof_F_Fixed64 struct {
-	F_Fixed64 uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,oneof"`
+	F_Fixed64 uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=FFixed64,oneof"`
 }
 type Oneof_F_Uint32 struct {
-	F_Uint32 uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,oneof"`
+	F_Uint32 uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=FUint32,oneof"`
 }
 type Oneof_F_Uint64 struct {
-	F_Uint64 uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,oneof"`
+	F_Uint64 uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=FUint64,oneof"`
 }
 type Oneof_F_Float struct {
-	F_Float float32 `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,oneof"`
+	F_Float float32 `protobuf:"fixed32,8,opt,name=F_Float,json=FFloat,oneof"`
 }
 type Oneof_F_Double struct {
-	F_Double float64 `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,oneof"`
+	F_Double float64 `protobuf:"fixed64,9,opt,name=F_Double,json=FDouble,oneof"`
 }
 type Oneof_F_String struct {
-	F_String string `protobuf:"bytes,10,opt,name=F_String,json=fString,oneof"`
+	F_String string `protobuf:"bytes,10,opt,name=F_String,json=FString,oneof"`
 }
 type Oneof_F_Bytes struct {
-	F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,oneof"`
+	F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=FBytes,oneof"`
 }
 type Oneof_F_Sint32 struct {
-	F_Sint32 int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,oneof"`
+	F_Sint32 int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=FSint32,oneof"`
 }
 type Oneof_F_Sint64 struct {
-	F_Sint64 int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,oneof"`
+	F_Sint64 int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=FSint64,oneof"`
 }
 type Oneof_F_Enum struct {
-	F_Enum MyMessage_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=test_proto.MyMessage_Color,oneof"`
+	F_Enum MyMessage_Color `protobuf:"varint,14,opt,name=F_Enum,json=FEnum,enum=test_proto.MyMessage_Color,oneof"`
 }
 type Oneof_F_Message struct {
-	F_Message *GoTestField `protobuf:"bytes,15,opt,name=F_Message,json=fMessage,oneof"`
+	F_Message *GoTestField `protobuf:"bytes,15,opt,name=F_Message,json=FMessage,oneof"`
 }
 type Oneof_FGroup struct {
 	FGroup *Oneof_F_Group `protobuf:"group,16,opt,name=F_Group,json=fGroup,oneof"`
 }
 type Oneof_F_Largest_Tag struct {
-	F_Largest_Tag int32 `protobuf:"varint,536870911,opt,name=F_Largest_Tag,json=fLargestTag,oneof"`
+	F_Largest_Tag int32 `protobuf:"varint,536870911,opt,name=F_Largest_Tag,json=FLargestTag,oneof"`
 }
 type Oneof_Value struct {
 	Value int32 `protobuf:"varint,100,opt,name=value,oneof"`
@@ -4149,7 +4149,7 @@ var E_DefaultString = &proto.ExtensionDesc{
 	ExtensionType: (*string)(nil),
 	Field:         214,
 	Name:          "test_proto.default_string",
-	Tag:           "bytes,214,opt,name=default_string,json=defaultString,def=Hello, string",
+	Tag:           "bytes,214,opt,name=default_string,json=defaultString,def=Hello, string,def=foo",
 	Filename:      "test.proto",
 }
 
@@ -4769,296 +4769,296 @@ func init() {
 func init() { proto.RegisterFile("test.proto", fileDescriptor0) }
 
 var fileDescriptor0 = []byte{
-	// 4647 bytes of a gzipped FileDescriptorProto
+	// 4644 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0xd9, 0x73, 0x1b, 0x47,
 	0x7a, 0xd7, 0x0c, 0xee, 0x0f, 0x20, 0x31, 0x6c, 0xd1, 0x12, 0x44, 0x59, 0xd2, 0x08, 0x6b, 0xaf,
 	0x61, 0xc9, 0xa6, 0x49, 0x60, 0x08, 0x49, 0x70, 0xec, 0xb2, 0x0e, 0x80, 0x66, 0x49, 0x04, 0xe4,
 	0x21, 0x6d, 0x67, 0x9d, 0x07, 0x14, 0x48, 0x0c, 0x40, 0xac, 0x80, 0x19, 0x18, 0x18, 0x46, 0x64,
 	0x52, 0xa9, 0xf2, 0x63, 0xaa, 0xf2, 0x94, 0x4d, 0x52, 0x95, 0xf7, 0xbc, 0xe4, 0x25, 0xd7, 0x43,
 	0xf2, 0x37, 0xc4, 0xd7, 0x5e, 0xde, 0x2b, 0xc9, 0x26, 0x9b, 0xfb, 0xce, 0xe6, 0xde, 0x23, 0x2f,
-	0x4e, 0xf5, 0xd7, 0x3d, 0x33, 0x3d, 0x03, 0xa8, 0x45, 0x3e, 0x11, 0xd3, 0xfd, 0xfb, 0x7e, 0x7d,
-	0xcc, 0xaf, 0xbf, 0xa3, 0x39, 0x00, 0xae, 0x35, 0x75, 0x57, 0xc7, 0x13, 0xc7, 0x75, 0x08, 0xfe,
-	0x6e, 0xe3, 0xef, 0xe2, 0x75, 0x48, 0x6e, 0x3a, 0x75, 0xfb, 0x70, 0x44, 0xae, 0x42, 0xac, 0xe7,
-	0x38, 0x05, 0x45, 0x57, 0x4b, 0x8b, 0xe5, 0xfc, 0x6a, 0x80, 0x59, 0x6d, 0xb4, 0x5a, 0x26, 0xed,
-	0x2b, 0xde, 0x80, 0xec, 0xa6, 0xb3, 0x6b, 0x4d, 0xdd, 0xc6, 0xc0, 0x1a, 0x76, 0xc9, 0x32, 0x24,
-	0x1e, 0x74, 0xf6, 0xac, 0x21, 0xda, 0x64, 0xcc, 0xc4, 0x90, 0x3e, 0x10, 0x02, 0xf1, 0xdd, 0xe3,
-	0xb1, 0x55, 0x50, 0xb1, 0x31, 0xee, 0x1e, 0x8f, 0xad, 0xe2, 0x1f, 0x16, 0xe9, 0x30, 0xd4, 0x92,
-	0x5c, 0x87, 0xf8, 0xfd, 0x81, 0xdd, 0xe5, 0xe3, 0x9c, 0x17, 0xc7, 0x61, 0x88, 0xd5, 0xfb, 0x5b,
-	0xcd, 0x7b, 0x66, 0xfc, 0xd1, 0xc0, 0xc6, 0x11, 0x76, 0x3b, 0x7b, 0x43, 0x4a, 0xa6, 0xd0, 0x11,
-	0x5c, 0xfa, 0x40, 0x5b, 0x1f, 0x76, 0x26, 0x9d, 0x51, 0x21, 0xa6, 0x2b, 0xa5, 0x84, 0x99, 0x18,
-	0xd3, 0x07, 0xf2, 0x1a, 0x2c, 0x98, 0xd6, 0xfb, 0x87, 0x83, 0x89, 0xd5, 0xc5, 0xe9, 0x15, 0xe2,
-	0xba, 0x5a, 0xca, 0xce, 0x1b, 0x01, 0xbb, 0xcd, 0x85, 0x89, 0x88, 0x66, 0xe6, 0x63, 0xab, 0xe3,
-	0x7a, 0xe6, 0x09, 0x3d, 0xf6, 0x14, 0x73, 0x01, 0x4d, 0xcd, 0x5b, 0x63, 0x77, 0xe0, 0xd8, 0x9d,
-	0x21, 0x33, 0x4f, 0xea, 0x8a, 0xd4, 0xdc, 0x11, 0xd1, 0xe4, 0x8b, 0x90, 0x6f, 0xb4, 0xef, 0x38,
-	0xce, 0xb0, 0xed, 0xcd, 0xaa, 0x00, 0xba, 0x5a, 0x4a, 0x9b, 0x0b, 0x3d, 0xda, 0xea, 0x2d, 0x8c,
-	0x94, 0x40, 0x6b, 0xb4, 0xb7, 0x6c, 0xb7, 0x52, 0x0e, 0x80, 0x59, 0x5d, 0x2d, 0x25, 0xcc, 0xc5,
-	0x1e, 0x36, 0xcf, 0x20, 0xab, 0x46, 0x80, 0xcc, 0xe9, 0x6a, 0x29, 0xc6, 0x90, 0x55, 0xc3, 0x47,
-	0xbe, 0x04, 0xa4, 0xd1, 0x6e, 0x0c, 0x8e, 0xac, 0xae, 0xc8, 0xba, 0xa0, 0xab, 0xa5, 0x94, 0xa9,
-	0xf5, 0x78, 0xc7, 0x1c, 0xb4, 0xc8, 0xbc, 0xa8, 0xab, 0xa5, 0xa4, 0x87, 0x16, 0xb8, 0xaf, 0xc1,
-	0x52, 0xa3, 0xfd, 0xf6, 0x20, 0x3c, 0xe1, 0xbc, 0xae, 0x96, 0x16, 0xcc, 0x7c, 0x8f, 0xb5, 0xcf,
-	0x62, 0x45, 0x62, 0x4d, 0x57, 0x4b, 0x71, 0x8e, 0x15, 0x78, 0x71, 0x75, 0x8d, 0xa1, 0xd3, 0x71,
-	0x03, 0xe8, 0x92, 0xae, 0x96, 0x54, 0x73, 0xb1, 0x87, 0xcd, 0x61, 0xd6, 0x7b, 0xce, 0xe1, 0xde,
-	0xd0, 0x0a, 0xa0, 0x44, 0x57, 0x4b, 0x8a, 0x99, 0xef, 0xb1, 0xf6, 0x30, 0x76, 0xc7, 0x9d, 0x0c,
-	0xec, 0x7e, 0x80, 0x3d, 0x8b, 0x3a, 0xce, 0xf7, 0x58, 0x7b, 0x78, 0x06, 0x77, 0x8e, 0x5d, 0x6b,
-	0x1a, 0x40, 0x2d, 0x5d, 0x2d, 0xe5, 0xcc, 0xc5, 0x1e, 0x36, 0x47, 0x58, 0x23, 0x7b, 0xd0, 0xd3,
-	0xd5, 0xd2, 0x12, 0x65, 0x9d, 0xb3, 0x07, 0x3b, 0x91, 0x3d, 0xe8, 0xeb, 0x6a, 0x89, 0x70, 0xac,
-	0xb0, 0x07, 0xab, 0x70, 0xb6, 0xd1, 0xde, 0xe9, 0x45, 0x5f, 0xdc, 0x81, 0xae, 0x96, 0xf2, 0xe6,
-	0x52, 0xcf, 0xeb, 0x99, 0x87, 0x17, 0xd9, 0x07, 0xba, 0x5a, 0xd2, 0x7c, 0xbc, 0xc0, 0x2f, 0x6a,
-	0x92, 0x49, 0xbd, 0xb0, 0xac, 0xc7, 0x04, 0x4d, 0xb2, 0xc6, 0xb0, 0x26, 0x39, 0xf0, 0x19, 0x3d,
-	0x26, 0x6a, 0x32, 0x82, 0xc4, 0xe1, 0x39, 0xf2, 0x9c, 0x1e, 0x13, 0x35, 0xc9, 0x91, 0x11, 0x4d,
-	0x72, 0xec, 0x79, 0x3d, 0x16, 0xd6, 0xe4, 0x0c, 0x5a, 0x64, 0x2e, 0xe8, 0xb1, 0xb0, 0x26, 0x39,
-	0x3a, 0xac, 0x49, 0x0e, 0xbe, 0xa0, 0xc7, 0x42, 0x9a, 0x8c, 0x62, 0x45, 0xe2, 0x15, 0x3d, 0x16,
-	0xd2, 0xa4, 0xb8, 0x3a, 0x4f, 0x93, 0x1c, 0x7a, 0x51, 0x8f, 0x89, 0x9a, 0x14, 0x59, 0x7d, 0x4d,
-	0x72, 0xe8, 0xb3, 0x7a, 0x2c, 0xa4, 0x49, 0x11, 0xeb, 0x6b, 0x92, 0x63, 0x2f, 0xe9, 0xb1, 0x90,
-	0x26, 0x39, 0xf6, 0x45, 0x51, 0x93, 0x1c, 0xfa, 0xa1, 0xa2, 0xc7, 0x44, 0x51, 0x72, 0xe8, 0xf5,
-	0x90, 0x28, 0x39, 0xf6, 0x23, 0x8a, 0x15, 0x55, 0x19, 0x05, 0x8b, 0xbb, 0xf0, 0x31, 0x05, 0x8b,
-	0xb2, 0xe4, 0xe0, 0x57, 0x22, 0xb2, 0xe4, 0xf0, 0x4f, 0x28, 0x3c, 0xac, 0xcb, 0x59, 0x03, 0x91,
-	0xff, 0x53, 0x6a, 0x10, 0x16, 0x26, 0x37, 0x08, 0x84, 0xe9, 0x39, 0xd1, 0xc2, 0x65, 0x5d, 0xf1,
-	0x85, 0xe9, 0xf9, 0x61, 0x51, 0x98, 0x3e, 0xf0, 0x0a, 0x86, 0x0c, 0x2e, 0xcc, 0x19, 0x64, 0xd5,
-	0x08, 0x90, 0xba, 0xae, 0x04, 0xc2, 0xf4, 0x91, 0x21, 0x61, 0xfa, 0xd8, 0xab, 0xba, 0x22, 0x0a,
-	0x73, 0x0e, 0x5a, 0x64, 0x2e, 0xea, 0x8a, 0x28, 0x4c, 0x1f, 0x2d, 0x0a, 0xd3, 0x07, 0x7f, 0x41,
-	0x57, 0x04, 0x61, 0xce, 0x62, 0x45, 0xe2, 0xe7, 0x74, 0x45, 0x10, 0x66, 0x78, 0x75, 0x4c, 0x98,
-	0x3e, 0xf4, 0x79, 0x5d, 0x09, 0x84, 0x19, 0x66, 0xe5, 0xc2, 0xf4, 0xa1, 0x5f, 0xd4, 0x15, 0x41,
-	0x98, 0x61, 0x2c, 0x17, 0xa6, 0x8f, 0x7d, 0x01, 0xe3, 0xb4, 0x27, 0x4c, 0x1f, 0x2b, 0x08, 0xd3,
-	0x87, 0xfe, 0x0e, 0x8d, 0xe9, 0xbe, 0x30, 0x7d, 0xa8, 0x28, 0x4c, 0x1f, 0xfb, 0xbb, 0x14, 0x1b,
-	0x08, 0x73, 0x16, 0x2c, 0xee, 0xc2, 0xef, 0x51, 0x70, 0x20, 0x4c, 0x1f, 0x1c, 0x16, 0xa6, 0x0f,
-	0xff, 0x7d, 0x0a, 0x17, 0x85, 0x39, 0xcf, 0x40, 0xe4, 0xff, 0x03, 0x6a, 0x20, 0x0a, 0xd3, 0x37,
-	0x58, 0xc5, 0x65, 0x52, 0x61, 0x76, 0xad, 0x5e, 0xe7, 0x70, 0x48, 0x65, 0x5c, 0xa2, 0xca, 0xac,
-	0xc5, 0xdd, 0xc9, 0xa1, 0x45, 0xd7, 0xea, 0x38, 0xc3, 0x7b, 0x5e, 0x1f, 0x59, 0xa5, 0xd3, 0x67,
-	0x02, 0x0d, 0x0c, 0x5e, 0xa4, 0x0a, 0xad, 0xa9, 0x95, 0xb2, 0x99, 0x67, 0x2a, 0x9d, 0xc5, 0x57,
-	0x0d, 0x01, 0x7f, 0x8d, 0xea, 0xb4, 0xa6, 0x56, 0x0d, 0x86, 0xaf, 0x1a, 0x01, 0xbe, 0x42, 0x17,
-	0xe0, 0x89, 0x35, 0xb0, 0xb8, 0x4e, 0xd5, 0x5a, 0x8b, 0x55, 0xca, 0x6b, 0xe6, 0x92, 0x27, 0xd9,
-	0x79, 0x46, 0xa1, 0x61, 0x5e, 0xa2, 0xa2, 0xad, 0xc5, 0xaa, 0x86, 0x6f, 0x24, 0x8e, 0x54, 0xa6,
-	0x42, 0xe7, 0xd2, 0x0d, 0x6c, 0x5e, 0xa6, 0xda, 0xad, 0xc5, 0x2b, 0xe5, 0xb5, 0x35, 0x53, 0xe3,
-	0x0a, 0x9e, 0x63, 0x13, 0x1a, 0x67, 0x95, 0x6a, 0xb8, 0x16, 0xaf, 0x1a, 0xbe, 0x4d, 0x78, 0x9c,
-	0x25, 0x4f, 0xca, 0x81, 0xc9, 0x2b, 0x54, 0xcb, 0xb5, 0x64, 0x65, 0xdd, 0x58, 0xdf, 0xb8, 0x65,
-	0xe6, 0x99, 0xa6, 0x03, 0x1b, 0x83, 0x8e, 0xc3, 0x45, 0x1d, 0x18, 0xad, 0x51, 0x55, 0xd7, 0x92,
-	0xe5, 0x1b, 0xeb, 0x37, 0xcb, 0x37, 0x4d, 0x8d, 0xab, 0x3b, 0xb0, 0x7a, 0x9d, 0x5a, 0x71, 0x79,
-	0x07, 0x56, 0xeb, 0x54, 0xdf, 0x35, 0xed, 0xc0, 0x1a, 0x0e, 0x9d, 0x97, 0xf4, 0xe2, 0x63, 0x67,
-	0x32, 0xec, 0x5e, 0x2d, 0x82, 0xa9, 0x71, 0xc5, 0x8b, 0xa3, 0x2e, 0x79, 0x92, 0x0f, 0xcc, 0x7f,
-	0x95, 0x66, 0xac, 0xb9, 0x5a, 0xea, 0xce, 0xa0, 0x6f, 0x3b, 0x53, 0xcb, 0xcc, 0x33, 0xf1, 0x47,
-	0xf6, 0x64, 0x27, 0xba, 0x8f, 0x5f, 0xa1, 0x66, 0x4b, 0xb5, 0xd8, 0xcb, 0x95, 0x32, 0x1d, 0x69,
-	0xde, 0x3e, 0xee, 0x44, 0xf7, 0xf1, 0xd7, 0xa8, 0x0d, 0xa9, 0xc5, 0x5e, 0xae, 0x1a, 0xdc, 0x46,
-	0xdc, 0xc7, 0x2a, 0x2c, 0x0b, 0x67, 0x21, 0xb0, 0xfa, 0x75, 0x6a, 0x95, 0x67, 0x23, 0x11, 0xff,
-	0x44, 0xcc, 0xb5, 0x0b, 0x8d, 0xf6, 0x1b, 0xd4, 0x4e, 0x63, 0xa3, 0x11, 0xff, 0x60, 0x04, 0x76,
-	0x37, 0xe0, 0x5c, 0x24, 0x97, 0x68, 0x8f, 0x3b, 0xfb, 0x8f, 0xac, 0x6e, 0xa1, 0x4c, 0x53, 0x8a,
-	0x3b, 0xaa, 0xa6, 0x98, 0x67, 0x43, 0x69, 0xc5, 0x43, 0xec, 0x26, 0xb7, 0xe0, 0x7c, 0x34, 0xb9,
-	0xf0, 0x2c, 0x2b, 0x34, 0xc7, 0x40, 0xcb, 0xe5, 0x70, 0x9e, 0x11, 0x31, 0x15, 0x82, 0x8a, 0x67,
-	0x6a, 0xd0, 0xa4, 0x23, 0x30, 0x0d, 0x62, 0x0b, 0x37, 0x7d, 0x0d, 0x2e, 0xcc, 0xa6, 0x1f, 0x9e,
-	0xf1, 0x06, 0xcd, 0x42, 0xd0, 0xf8, 0x5c, 0x34, 0x13, 0x99, 0x31, 0x9f, 0x33, 0x76, 0x95, 0xa6,
-	0x25, 0xa2, 0xf9, 0xcc, 0xe8, 0xaf, 0x42, 0x61, 0x26, 0x41, 0xf1, 0xac, 0x6f, 0xd0, 0x3c, 0x05,
-	0xad, 0x9f, 0x89, 0xe4, 0x2a, 0x51, 0xe3, 0x39, 0x43, 0xdf, 0xa4, 0x89, 0x8b, 0x60, 0x3c, 0x33,
-	0x32, 0x6e, 0x59, 0x38, 0x85, 0xf1, 0x6c, 0x6f, 0xd1, 0x4c, 0x86, 0x6f, 0x59, 0x28, 0x9b, 0x11,
-	0xc7, 0x8d, 0xe4, 0x34, 0x9e, 0x6d, 0x8d, 0xa6, 0x36, 0x7c, 0xdc, 0x70, 0x7a, 0xc3, 0x8d, 0x7f,
-	0x86, 0x1a, 0xef, 0xcc, 0x5f, 0xf1, 0x8f, 0x62, 0x34, 0x29, 0xe1, 0xd6, 0x3b, 0xf3, 0x96, 0xec,
-	0x5b, 0xcf, 0x59, 0xf2, 0x8f, 0xa9, 0x35, 0x11, 0xac, 0x67, 0xd6, 0xfc, 0x06, 0xac, 0xcc, 0xc9,
-	0x57, 0x3c, 0xfb, 0x9f, 0x50, 0xfb, 0x3c, 0xda, 0x9f, 0x9f, 0x49, 0x5d, 0x66, 0x19, 0xe6, 0xcc,
-	0xe0, 0xa7, 0x94, 0x41, 0x0b, 0x31, 0xcc, 0xcc, 0xa1, 0x01, 0x7e, 0x35, 0xda, 0x9f, 0x38, 0x87,
-	0xe3, 0x42, 0x43, 0x57, 0x4b, 0x50, 0xd6, 0xe7, 0x54, 0xc7, 0x5e, 0x7a, 0xbe, 0x49, 0x71, 0x66,
-	0xd8, 0x8c, 0xf1, 0x30, 0x66, 0xc6, 0xf3, 0x50, 0x8f, 0x3d, 0x91, 0x87, 0xe1, 0x7c, 0x1e, 0xc1,
-	0x8c, 0xf2, 0x78, 0xe1, 0x8e, 0xf1, 0xbc, 0xa7, 0x2b, 0x4f, 0xe0, 0xf1, 0x82, 0x1f, 0xe7, 0x09,
-	0x99, 0xad, 0x6c, 0x04, 0x35, 0x39, 0xf6, 0x93, 0xe7, 0xa2, 0x45, 0xfa, 0x26, 0x56, 0x57, 0xe1,
-	0x5a, 0x9c, 0x99, 0x09, 0xd3, 0x9b, 0x35, 0x7b, 0xeb, 0x09, 0x66, 0xa1, 0xd9, 0xcc, 0x9a, 0xfd,
-	0xdc, 0x1c, 0xb3, 0xe2, 0x6f, 0x2a, 0x10, 0xbf, 0xbf, 0xd5, 0xbc, 0x47, 0xd2, 0x10, 0x7f, 0xa7,
-	0xb5, 0x75, 0x4f, 0x3b, 0x43, 0x7f, 0xdd, 0x69, 0xb5, 0x1e, 0x68, 0x0a, 0xc9, 0x40, 0xe2, 0xce,
-	0x97, 0x76, 0xeb, 0x3b, 0x9a, 0x4a, 0xf2, 0x90, 0x6d, 0x6c, 0x35, 0x37, 0xeb, 0xe6, 0x43, 0x73,
-	0xab, 0xb9, 0xab, 0xc5, 0x68, 0x5f, 0xe3, 0x41, 0xeb, 0xf6, 0xae, 0x16, 0x27, 0x29, 0x88, 0xd1,
-	0xb6, 0x04, 0x01, 0x48, 0xee, 0xec, 0x9a, 0x5b, 0xcd, 0x4d, 0x2d, 0x49, 0x59, 0x76, 0xb7, 0xb6,
-	0xeb, 0x5a, 0x8a, 0x22, 0x77, 0xdf, 0x7e, 0xf8, 0xa0, 0xae, 0xa5, 0xe9, 0xcf, 0xdb, 0xa6, 0x79,
-	0xfb, 0x4b, 0x5a, 0x86, 0x1a, 0x6d, 0xdf, 0x7e, 0xa8, 0x01, 0x76, 0xdf, 0xbe, 0xf3, 0xa0, 0xae,
-	0x65, 0x49, 0x0e, 0xd2, 0x8d, 0xb7, 0x9b, 0x77, 0x77, 0xb7, 0x5a, 0x4d, 0x2d, 0x57, 0xfc, 0x45,
-	0x28, 0xb0, 0x6d, 0x0e, 0xed, 0x22, 0xbb, 0x32, 0x78, 0x03, 0x12, 0xec, 0xdd, 0x28, 0xa8, 0x95,
-	0x6b, 0xb3, 0xef, 0x66, 0xd6, 0x68, 0x95, 0xbd, 0x25, 0x66, 0xb8, 0x72, 0x09, 0x12, 0x6c, 0x9f,
-	0x96, 0x21, 0xc1, 0xf6, 0x47, 0xc5, 0xab, 0x84, 0x44, 0x0f, 0xf7, 0xe5, 0xb7, 0x54, 0x80, 0x4d,
-	0x67, 0xe7, 0xd1, 0x60, 0x8c, 0x17, 0x37, 0x97, 0x00, 0xa6, 0x8f, 0x06, 0xe3, 0x36, 0x9e, 0x40,
-	0x7e, 0xe9, 0x90, 0xa1, 0x2d, 0xe8, 0x7b, 0xc9, 0x55, 0xc8, 0x61, 0x37, 0x3f, 0x22, 0x78, 0xd7,
-	0x90, 0x32, 0xb3, 0xb4, 0x8d, 0x3b, 0xc9, 0x30, 0xa4, 0x6a, 0xe0, 0x15, 0x43, 0x52, 0x80, 0x54,
-	0x0d, 0x72, 0x05, 0xf0, 0xb1, 0x3d, 0xc5, 0x68, 0x8a, 0xd7, 0x0a, 0x19, 0x13, 0xc7, 0x65, 0xf1,
-	0x95, 0xbc, 0x0e, 0x38, 0x26, 0x5b, 0x79, 0x7e, 0xde, 0x29, 0xf1, 0x26, 0xbc, 0x4a, 0x7f, 0xb0,
-	0xf5, 0x06, 0x26, 0x2b, 0x2d, 0xc8, 0xf8, 0xed, 0x74, 0x34, 0x6c, 0xe5, 0x6b, 0xd2, 0x70, 0x4d,
-	0x80, 0x4d, 0xfe, 0xa2, 0x18, 0x80, 0xcf, 0x67, 0x09, 0xe7, 0xc3, 0x8c, 0xd8, 0x84, 0x8a, 0x97,
-	0x60, 0xa1, 0xe9, 0xd8, 0xec, 0x1c, 0xe3, 0x3e, 0xe5, 0x40, 0xe9, 0x14, 0x14, 0xac, 0x7f, 0x95,
-	0x4e, 0xf1, 0x32, 0x80, 0xd0, 0xa7, 0x81, 0xb2, 0xc7, 0xfa, 0xd0, 0x1f, 0x28, 0x7b, 0xc5, 0xeb,
-	0x90, 0xdc, 0xee, 0x1c, 0xed, 0x76, 0xfa, 0xe4, 0x2a, 0xc0, 0xb0, 0x33, 0x75, 0xdb, 0xb8, 0xf9,
-	0x85, 0xcf, 0x3f, 0xff, 0xfc, 0x73, 0x05, 0x93, 0xe9, 0x0c, 0x6d, 0x65, 0x4a, 0x9d, 0x02, 0xb4,
-	0x86, 0xdd, 0x6d, 0x6b, 0x3a, 0xed, 0xf4, 0x2d, 0xb2, 0x01, 0x49, 0xdb, 0x9a, 0xd2, 0xe8, 0xab,
-	0xe0, 0x5d, 0xd3, 0x25, 0x71, 0x1f, 0x02, 0xdc, 0x6a, 0x13, 0x41, 0x26, 0x07, 0x13, 0x0d, 0x62,
-	0xf6, 0xe1, 0x08, 0x6f, 0xd4, 0x12, 0x26, 0xfd, 0xb9, 0xf2, 0x2c, 0x24, 0x19, 0x86, 0x10, 0x88,
-	0xdb, 0x9d, 0x91, 0x55, 0x60, 0x23, 0xe3, 0xef, 0xe2, 0x57, 0x14, 0x80, 0xa6, 0xf5, 0xf8, 0x44,
-	0xa3, 0x06, 0x38, 0xc9, 0xa8, 0x31, 0x36, 0xea, 0xab, 0xb2, 0x51, 0xa9, 0xda, 0x7a, 0x8e, 0xd3,
-	0x6d, 0xb3, 0x17, 0xcd, 0xae, 0xff, 0x32, 0xb4, 0x05, 0xdf, 0x5c, 0xf1, 0x3d, 0xc8, 0x6d, 0xd9,
-	0xb6, 0x35, 0xf1, 0x66, 0x45, 0x20, 0x7e, 0xe0, 0x4c, 0x5d, 0x7e, 0x13, 0x89, 0xbf, 0x49, 0x01,
-	0xe2, 0x63, 0x67, 0xe2, 0xb2, 0x95, 0xd6, 0xe2, 0xc6, 0xda, 0xda, 0x9a, 0x89, 0x2d, 0xe4, 0x59,
-	0xc8, 0xec, 0x3b, 0xb6, 0x6d, 0xed, 0xd3, 0x65, 0xc4, 0xb0, 0x74, 0x0c, 0x1a, 0x8a, 0xbf, 0xac,
-	0x40, 0xae, 0xe5, 0x1e, 0x04, 0xe4, 0x1a, 0xc4, 0x1e, 0x59, 0xc7, 0x38, 0xbd, 0x98, 0x49, 0x7f,
-	0xd2, 0x03, 0xf3, 0xf3, 0x9d, 0xe1, 0x21, 0xbb, 0x97, 0xcc, 0x99, 0xec, 0x81, 0x9c, 0x83, 0xe4,
-	0x63, 0x6b, 0xd0, 0x3f, 0x70, 0x91, 0x53, 0x35, 0xf9, 0x13, 0x59, 0x85, 0xc4, 0x80, 0x4e, 0xb6,
-	0x10, 0xc7, 0x1d, 0x2b, 0x88, 0x3b, 0x26, 0xae, 0xc2, 0x64, 0xb0, 0x6b, 0xe9, 0x74, 0x57, 0xfb,
-	0xe0, 0x83, 0x0f, 0x3e, 0x50, 0x8b, 0x07, 0xb0, 0xec, 0x1d, 0xe2, 0xd0, 0x72, 0x1f, 0x42, 0x61,
-	0x68, 0x39, 0xed, 0xde, 0xc0, 0xee, 0x0c, 0x87, 0xc7, 0xed, 0xc7, 0x8e, 0xdd, 0xee, 0xd8, 0x6d,
-	0x67, 0xba, 0xdf, 0x99, 0xe0, 0x16, 0xc8, 0x06, 0x59, 0x1e, 0x5a, 0x4e, 0x83, 0x19, 0xbe, 0xeb,
-	0xd8, 0xb7, 0xed, 0x16, 0xb5, 0x2a, 0x7e, 0x16, 0x87, 0xcc, 0xf6, 0xb1, 0xc7, 0xbf, 0x0c, 0x89,
-	0x7d, 0xe7, 0xd0, 0x66, 0xfb, 0x99, 0x30, 0xd9, 0x83, 0xff, 0x9e, 0x54, 0xe1, 0x3d, 0x2d, 0x43,
-	0xe2, 0xfd, 0x43, 0xc7, 0xb5, 0x70, 0xc9, 0x19, 0x93, 0x3d, 0xd0, 0x1d, 0x1b, 0x5b, 0x6e, 0x21,
-	0x8e, 0xd7, 0x14, 0xf4, 0x67, 0xb0, 0x07, 0x89, 0x13, 0xed, 0x01, 0x59, 0x83, 0xa4, 0x43, 0xdf,
-	0xc1, 0xb4, 0x90, 0xc4, 0x7b, 0xd8, 0x90, 0x81, 0xf8, 0x76, 0x4c, 0x8e, 0x23, 0xf7, 0x61, 0xe9,
-	0xb1, 0xd5, 0x1e, 0x1d, 0x4e, 0xdd, 0x76, 0xdf, 0x69, 0x77, 0x2d, 0x6b, 0x6c, 0x4d, 0x0a, 0x0b,
-	0x38, 0x5a, 0xc8, 0x43, 0xcc, 0xdb, 0x50, 0x73, 0xf1, 0xb1, 0xb5, 0x7d, 0x38, 0x75, 0x37, 0x9d,
-	0x7b, 0x68, 0x47, 0x36, 0x20, 0x33, 0xb1, 0xa8, 0x5f, 0xa0, 0x53, 0xce, 0xcd, 0xce, 0x20, 0x64,
-	0x9c, 0x9e, 0x58, 0x63, 0x6c, 0x20, 0x37, 0x20, 0xbd, 0x37, 0x78, 0x64, 0x4d, 0x0f, 0xac, 0x6e,
-	0x21, 0xa5, 0x2b, 0xa5, 0xc5, 0xf2, 0x45, 0xd1, 0xca, 0xdf, 0xe0, 0xd5, 0xbb, 0xce, 0xd0, 0x99,
-	0x98, 0x3e, 0x98, 0xbc, 0x06, 0x99, 0xa9, 0x33, 0xb2, 0x98, 0xda, 0xd3, 0x18, 0x6c, 0xaf, 0xcc,
-	0xb7, 0xdc, 0x71, 0x46, 0x96, 0xe7, 0xd5, 0x3c, 0x0b, 0x72, 0x91, 0x4d, 0x77, 0x8f, 0x16, 0x13,
-	0x05, 0xc0, 0x0b, 0x1f, 0x3a, 0x29, 0x2c, 0x2e, 0xc8, 0x0a, 0x9d, 0x54, 0xbf, 0x47, 0x73, 0xb6,
-	0x42, 0x16, 0x6b, 0x79, 0xff, 0x79, 0xe5, 0x25, 0xc8, 0xf8, 0x84, 0x81, 0x3b, 0x64, 0x2e, 0x28,
-	0x83, 0x1e, 0x82, 0xb9, 0x43, 0xe6, 0x7f, 0x9e, 0x87, 0x04, 0x4e, 0x9c, 0x46, 0x2e, 0xb3, 0x4e,
-	0x03, 0x65, 0x06, 0x12, 0x9b, 0x66, 0xbd, 0xde, 0xd4, 0x14, 0x8c, 0x99, 0x0f, 0xde, 0xae, 0x6b,
-	0xaa, 0xa0, 0xdf, 0xdf, 0x56, 0x21, 0x56, 0x3f, 0x42, 0xe5, 0x74, 0x3b, 0x6e, 0xc7, 0x3b, 0xe1,
-	0xf4, 0x37, 0xa9, 0x41, 0x66, 0xd4, 0xf1, 0xc6, 0x52, 0x71, 0x8b, 0x43, 0xbe, 0xa4, 0x7e, 0xe4,
-	0xae, 0x6e, 0x77, 0xd8, 0xc8, 0x75, 0xdb, 0x9d, 0x1c, 0x9b, 0xe9, 0x11, 0x7f, 0x5c, 0x79, 0x15,
-	0x16, 0x42, 0x5d, 0xe2, 0x11, 0x4d, 0xcc, 0x39, 0xa2, 0x09, 0x7e, 0x44, 0x6b, 0xea, 0x4d, 0xa5,
-	0x5c, 0x83, 0xf8, 0xc8, 0x99, 0x58, 0xe4, 0x99, 0xb9, 0x1b, 0x5c, 0xe8, 0xa3, 0x64, 0xf2, 0x91,
-	0xa9, 0x98, 0x68, 0x53, 0x7e, 0x11, 0xe2, 0xae, 0x75, 0xe4, 0x3e, 0xc9, 0xf6, 0x80, 0xad, 0x8f,
-	0x42, 0xca, 0x2f, 0x43, 0xd2, 0x3e, 0x1c, 0xed, 0x59, 0x93, 0x27, 0x81, 0x07, 0x38, 0x31, 0x0e,
-	0x2a, 0xbe, 0x03, 0xda, 0x5d, 0x67, 0x34, 0x1e, 0x5a, 0x47, 0xf5, 0x23, 0xd7, 0xb2, 0xa7, 0x03,
-	0xc7, 0xa6, 0x6b, 0xe8, 0x0d, 0x26, 0xe8, 0xd6, 0x14, 0x16, 0x97, 0x27, 0x53, 0x97, 0xba, 0x99,
-	0xa9, 0xb5, 0xef, 0xd8, 0x5d, 0xbe, 0x34, 0xfe, 0x44, 0xd1, 0xee, 0xc1, 0x60, 0x42, 0x3d, 0x1a,
-	0x0d, 0x3e, 0xec, 0xa1, 0xb8, 0x09, 0x79, 0x5e, 0x86, 0x4d, 0xf9, 0xc0, 0xc5, 0x6b, 0x90, 0xf3,
-	0x9a, 0xf0, 0x3f, 0x3f, 0x69, 0x88, 0xbf, 0x57, 0x37, 0x5b, 0xda, 0x19, 0xfa, 0x5e, 0x5b, 0xcd,
-	0xba, 0xa6, 0xd0, 0x1f, 0xbb, 0xef, 0xb6, 0x42, 0xef, 0xf2, 0x59, 0xc8, 0xf9, 0x73, 0xdf, 0xb1,
-	0x5c, 0xec, 0xa1, 0x51, 0x2a, 0x55, 0x53, 0xd3, 0x4a, 0x31, 0x05, 0x89, 0xfa, 0x68, 0xec, 0x1e,
-	0x17, 0x7f, 0x09, 0xb2, 0x1c, 0xf4, 0x60, 0x30, 0x75, 0xc9, 0x2d, 0x48, 0x8d, 0xf8, 0x7a, 0x15,
-	0xcc, 0x45, 0xc3, 0xb2, 0x0e, 0x90, 0xde, 0x6f, 0xd3, 0xc3, 0xaf, 0x54, 0x20, 0x25, 0xb8, 0x77,
-	0xee, 0x79, 0x54, 0xd1, 0xf3, 0x30, 0x1f, 0x15, 0x13, 0x7c, 0x54, 0x71, 0x1b, 0x52, 0x2c, 0x30,
-	0x4f, 0x31, 0xdd, 0x60, 0xf5, 0x3b, 0xd3, 0x18, 0x13, 0x5f, 0x96, 0xb5, 0xb1, 0x1c, 0xea, 0x0a,
-	0x64, 0xf1, 0xcc, 0xf8, 0x2a, 0xa4, 0xde, 0x1c, 0xb0, 0x89, 0x29, 0xfe, 0x8f, 0x12, 0x90, 0xf6,
-	0xf6, 0x8a, 0x5c, 0x84, 0x24, 0x2b, 0x62, 0x91, 0xca, 0xbb, 0xd4, 0x49, 0x60, 0xd9, 0x4a, 0x2e,
-	0x42, 0x8a, 0x17, 0xaa, 0x3c, 0xe0, 0xa8, 0x95, 0xb2, 0x99, 0x64, 0x85, 0xa9, 0xdf, 0x59, 0x35,
-	0xd0, 0x4f, 0xb2, 0xeb, 0x9a, 0x24, 0x2b, 0x3d, 0x89, 0x0e, 0x19, 0xbf, 0xd8, 0xc4, 0x10, 0xc1,
-	0xef, 0x66, 0xd2, 0x5e, 0x75, 0x29, 0x20, 0xaa, 0x06, 0x3a, 0x50, 0x7e, 0x11, 0x93, 0xee, 0x05,
-	0x79, 0x53, 0xda, 0x2b, 0x19, 0xf1, 0x3f, 0x4f, 0xde, 0xad, 0x4b, 0x8a, 0x17, 0x89, 0x01, 0xa0,
-	0x6a, 0xa0, 0x67, 0xf2, 0xae, 0x58, 0x52, 0xbc, 0x10, 0x24, 0x57, 0xe8, 0x14, 0xb1, 0xb0, 0x43,
-	0xff, 0x13, 0xdc, 0xa7, 0x24, 0x59, 0xb9, 0x47, 0xae, 0x52, 0x06, 0x56, 0xbd, 0xa1, 0x6b, 0x08,
-	0x2e, 0x4f, 0x52, 0xbc, 0xa8, 0x23, 0xd7, 0x29, 0x84, 0x6d, 0x7f, 0x01, 0x9e, 0x70, 0x53, 0x92,
-	0xe2, 0x37, 0x25, 0x44, 0xa7, 0x03, 0xa2, 0x87, 0x42, 0xaf, 0x24, 0xdc, 0x8a, 0x24, 0xd9, 0xad,
-	0x08, 0xb9, 0x8c, 0x74, 0x6c, 0x51, 0xb9, 0xe0, 0x06, 0x24, 0xc5, 0xab, 0xc0, 0xa0, 0x1f, 0x73,
-	0x49, 0xff, 0xb6, 0x23, 0xc5, 0xeb, 0x3c, 0x72, 0x93, 0xbe, 0x2f, 0xaa, 0xf0, 0xc2, 0x22, 0xfa,
-	0xe2, 0x15, 0x51, 0x7a, 0xde, 0x5b, 0x65, 0xae, 0xb8, 0xc6, 0xdc, 0x98, 0x99, 0xe8, 0xe1, 0x89,
-	0x58, 0xa1, 0x96, 0x0f, 0x07, 0x76, 0xaf, 0x90, 0xc7, 0xbd, 0x88, 0x0d, 0xec, 0x9e, 0x99, 0xe8,
-	0xd1, 0x16, 0xa6, 0x82, 0x26, 0xed, 0xd3, 0xb0, 0x2f, 0xfe, 0x32, 0xeb, 0xa4, 0x4d, 0xa4, 0x00,
-	0x89, 0x46, 0xbb, 0xd9, 0xb1, 0x0b, 0x4b, 0xcc, 0xce, 0xee, 0xd8, 0x66, 0xbc, 0xd7, 0xec, 0xd8,
-	0xe4, 0x45, 0x88, 0x4d, 0x0f, 0xf7, 0x0a, 0x64, 0xf6, 0xdf, 0x82, 0x3b, 0x87, 0x7b, 0xde, 0x64,
-	0x4c, 0x8a, 0x21, 0x17, 0x21, 0x3d, 0x75, 0x27, 0xed, 0x5f, 0xb0, 0x26, 0x4e, 0xe1, 0x2c, 0x6e,
-	0xe3, 0x19, 0x33, 0x35, 0x75, 0x27, 0xef, 0x59, 0x13, 0xe7, 0x84, 0x3e, 0xb8, 0x78, 0x19, 0xb2,
-	0x02, 0x2f, 0xc9, 0x83, 0x62, 0xb3, 0x04, 0xa6, 0xa6, 0xdc, 0x30, 0x15, 0xbb, 0xf8, 0x0e, 0xe4,
-	0xbc, 0x12, 0x0b, 0x57, 0x6c, 0xd0, 0xd3, 0x34, 0x74, 0x26, 0x78, 0x4a, 0x17, 0xcb, 0x97, 0xc3,
-	0x11, 0x33, 0x00, 0xf2, 0xc8, 0xc5, 0xc0, 0x45, 0x2d, 0x32, 0x19, 0xa5, 0xf8, 0x03, 0x05, 0x72,
-	0xdb, 0xce, 0x24, 0xf8, 0xff, 0xc5, 0x32, 0x24, 0xf6, 0x1c, 0x67, 0x38, 0x45, 0xe2, 0xb4, 0xc9,
-	0x1e, 0xc8, 0xf3, 0x90, 0xc3, 0x1f, 0x5e, 0x91, 0xac, 0xfa, 0xb7, 0x40, 0x59, 0x6c, 0xe7, 0x75,
-	0x31, 0x81, 0xf8, 0xc0, 0x76, 0xa7, 0xdc, 0xa3, 0xe1, 0x6f, 0xf2, 0x05, 0xc8, 0xd2, 0xbf, 0x9e,
-	0x65, 0xdc, 0xcf, 0xa6, 0x81, 0x36, 0x73, 0xc3, 0x17, 0x60, 0x01, 0x35, 0xe0, 0xc3, 0x52, 0xfe,
-	0x8d, 0x4f, 0x8e, 0x75, 0x70, 0x60, 0x01, 0x52, 0xcc, 0x21, 0x4c, 0xf1, 0x1f, 0xbe, 0x19, 0xd3,
-	0x7b, 0xa4, 0x6e, 0x16, 0x0b, 0x15, 0x96, 0x81, 0xa4, 0x4c, 0xfe, 0x54, 0xbc, 0x0b, 0x69, 0x0c,
-	0x97, 0xad, 0x61, 0x97, 0x3c, 0x07, 0x4a, 0xbf, 0x60, 0x61, 0xb8, 0x3e, 0x17, 0xaa, 0x42, 0x38,
-	0x60, 0x75, 0xd3, 0x54, 0xfa, 0x2b, 0x4b, 0xa0, 0x6c, 0xd2, 0xb2, 0xe0, 0x88, 0x3b, 0x6c, 0xe5,
-	0xa8, 0xf8, 0x16, 0x27, 0x69, 0x5a, 0x8f, 0xe5, 0x24, 0x4d, 0xeb, 0x31, 0x23, 0xb9, 0x32, 0x43,
-	0x42, 0x9f, 0x8e, 0xf9, 0xff, 0xc0, 0x95, 0xe3, 0x62, 0x05, 0x16, 0xf0, 0xa0, 0x0e, 0xec, 0xfe,
-	0x43, 0x67, 0x60, 0x63, 0x21, 0xd2, 0xc3, 0x04, 0x4e, 0x31, 0x95, 0x1e, 0x7d, 0x0f, 0xd6, 0x51,
-	0x67, 0x9f, 0xa5, 0xc3, 0x69, 0x93, 0x3d, 0x14, 0xbf, 0x1f, 0x87, 0x45, 0xee, 0x64, 0xdf, 0x1d,
-	0xb8, 0x07, 0xdb, 0x9d, 0x31, 0x69, 0x42, 0x8e, 0xfa, 0xd7, 0xf6, 0xa8, 0x33, 0x1e, 0xd3, 0x83,
-	0xac, 0x60, 0x68, 0xbe, 0x3e, 0xc7, 0x6d, 0x73, 0x8b, 0xd5, 0x66, 0x67, 0x64, 0x6d, 0x33, 0x34,
-	0x0b, 0xd4, 0x59, 0x3b, 0x68, 0x21, 0xf7, 0x21, 0x3b, 0x9a, 0xf6, 0x7d, 0x3a, 0x16, 0xe9, 0xaf,
-	0x49, 0xe8, 0xb6, 0xa7, 0xfd, 0x10, 0x1b, 0x8c, 0xfc, 0x06, 0x3a, 0x39, 0xea, 0x9d, 0x7d, 0xb6,
-	0xd8, 0x53, 0x27, 0x47, 0x5d, 0x49, 0x78, 0x72, 0x7b, 0x41, 0x0b, 0x69, 0x00, 0xd0, 0xa3, 0xe6,
-	0x3a, 0xb4, 0xc2, 0x43, 0x2d, 0x65, 0xcb, 0x25, 0x09, 0xdb, 0x8e, 0x3b, 0xd9, 0x75, 0x76, 0xdc,
-	0x09, 0x4f, 0x48, 0xa6, 0xfc, 0x71, 0xe5, 0x75, 0xd0, 0xa2, 0xbb, 0xf0, 0xb4, 0x9c, 0x24, 0x23,
-	0xe4, 0x24, 0x2b, 0x3f, 0x0b, 0xf9, 0xc8, 0xb2, 0x45, 0x73, 0xc2, 0xcc, 0x5f, 0x11, 0xcd, 0xb3,
-	0xe5, 0x0b, 0xa1, 0x6f, 0x34, 0xc4, 0x57, 0x2f, 0x32, 0xbf, 0x0e, 0x5a, 0x74, 0x0b, 0x44, 0xea,
-	0xb4, 0xa4, 0xa0, 0x41, 0xfb, 0x57, 0x61, 0x21, 0xb4, 0x68, 0xd1, 0x38, 0xf3, 0x94, 0x65, 0x15,
-	0x7f, 0x25, 0x01, 0x89, 0x96, 0x6d, 0x39, 0x3d, 0x72, 0x3e, 0x1c, 0x3b, 0xdf, 0x3c, 0xe3, 0xc5,
-	0xcd, 0x0b, 0x91, 0xb8, 0xf9, 0xe6, 0x19, 0x3f, 0x6a, 0x5e, 0x88, 0x44, 0x4d, 0xaf, 0xab, 0x6a,
-	0x90, 0x4b, 0x33, 0x31, 0xf3, 0xcd, 0x33, 0x42, 0xc0, 0xbc, 0x34, 0x13, 0x30, 0x83, 0xee, 0xaa,
-	0x41, 0x1d, 0x6c, 0x38, 0x5a, 0xbe, 0x79, 0x26, 0x88, 0x94, 0x17, 0xa3, 0x91, 0xd2, 0xef, 0xac,
-	0x1a, 0x6c, 0x4a, 0x42, 0x94, 0xc4, 0x29, 0xb1, 0xf8, 0x78, 0x31, 0x1a, 0x1f, 0xd1, 0x8e, 0x47,
-	0xc6, 0x8b, 0xd1, 0xc8, 0x88, 0x9d, 0x3c, 0x12, 0x5e, 0x88, 0x44, 0x42, 0x24, 0x65, 0x21, 0xf0,
-	0x62, 0x34, 0x04, 0x32, 0x3b, 0x61, 0xa6, 0x62, 0xfc, 0xf3, 0x3b, 0xab, 0x06, 0x31, 0x22, 0xc1,
-	0x4f, 0x56, 0x88, 0xe0, 0xdb, 0xc0, 0x30, 0x50, 0xa5, 0x1b, 0xe7, 0x25, 0xa8, 0x79, 0xe9, 0x27,
-	0x2c, 0xb8, 0xa3, 0x5e, 0x82, 0x66, 0x40, 0xaa, 0xc7, 0x6b, 0x75, 0x0d, 0x3d, 0x59, 0x48, 0x9c,
-	0x28, 0x81, 0xd5, 0x46, 0x1b, 0x3d, 0x1a, 0xae, 0x8e, 0x15, 0x1c, 0x25, 0x58, 0x68, 0xb4, 0x1f,
-	0x74, 0x26, 0x7d, 0x0a, 0xdd, 0xed, 0xf4, 0xfd, 0x5b, 0x0f, 0xaa, 0x82, 0x6c, 0x8f, 0xf7, 0xec,
-	0x76, 0xfa, 0xe4, 0x9c, 0x27, 0xb1, 0x2e, 0xf6, 0x2a, 0x5c, 0x64, 0x2b, 0xe7, 0xe9, 0xd6, 0x31,
-	0x32, 0xf4, 0x8d, 0x4b, 0xdc, 0x37, 0xde, 0x49, 0x41, 0xe2, 0xd0, 0x1e, 0x38, 0xf6, 0x9d, 0x0c,
-	0xa4, 0x5c, 0x67, 0x32, 0xea, 0xb8, 0x4e, 0xf1, 0x87, 0x0a, 0xc0, 0x5d, 0x67, 0x34, 0x3a, 0xb4,
-	0x07, 0xef, 0x1f, 0x5a, 0xe4, 0x32, 0x64, 0x47, 0x9d, 0x47, 0x56, 0x7b, 0x64, 0xb5, 0xf7, 0x27,
-	0xde, 0x69, 0xc8, 0xd0, 0xa6, 0x6d, 0xeb, 0xee, 0xe4, 0x98, 0x14, 0xbc, 0x04, 0x1e, 0x15, 0x84,
-	0xc2, 0xe4, 0x09, 0xfd, 0x32, 0x4f, 0x47, 0x93, 0xfc, 0x4d, 0x7a, 0x09, 0x29, 0x2b, 0x72, 0x52,
-	0xfc, 0x1d, 0xb2, 0x32, 0xe7, 0x3c, 0x24, 0x5d, 0x6b, 0x34, 0x6e, 0xef, 0xa3, 0x60, 0xa8, 0x28,
-	0x12, 0xf4, 0xf9, 0x2e, 0x79, 0x05, 0x62, 0xfb, 0xce, 0x10, 0xa5, 0xf2, 0xd4, 0xb7, 0x43, 0x91,
-	0xe4, 0x05, 0x88, 0x8d, 0xa6, 0x4c, 0x3e, 0xd9, 0xf2, 0xd9, 0x50, 0x06, 0xc1, 0x42, 0x16, 0x05,
-	0x8e, 0xa6, 0x7d, 0x7f, 0xed, 0xd7, 0xf2, 0x10, 0x6b, 0xb4, 0x5a, 0x34, 0x2b, 0x68, 0xb4, 0x5a,
-	0xeb, 0x9a, 0x52, 0x5b, 0x87, 0x74, 0x7f, 0x62, 0x59, 0xd4, 0x51, 0x3c, 0xa9, 0x2a, 0xf9, 0x32,
-	0x46, 0x41, 0x1f, 0x56, 0x7b, 0x0b, 0x52, 0xfb, 0xac, 0x2e, 0x21, 0x4f, 0xac, 0xc1, 0x0b, 0x7f,
-	0xcc, 0xee, 0x82, 0x9e, 0x15, 0x01, 0xd1, 0x6a, 0xc6, 0xf4, 0x78, 0x6a, 0xbb, 0x90, 0x99, 0xb4,
-	0x9f, 0x4e, 0xfa, 0x21, 0x8b, 0x3c, 0x72, 0xd2, 0xf4, 0x84, 0x37, 0xd5, 0x36, 0x61, 0xc9, 0x76,
-	0xbc, 0x7f, 0x49, 0xb5, 0xbb, 0xfc, 0xdc, 0xcd, 0x4b, 0xf9, 0xbc, 0x01, 0x2c, 0xf6, 0x8f, 0x6d,
-	0xdb, 0xe1, 0x1d, 0xec, 0xac, 0xd6, 0xea, 0xa0, 0x09, 0x44, 0x3d, 0x76, 0xb8, 0x65, 0x3c, 0x3d,
-	0xf6, 0xbf, 0x74, 0x9f, 0x07, 0xfd, 0x41, 0x84, 0x86, 0x9f, 0x58, 0x19, 0x4d, 0x9f, 0x7d, 0x9a,
-	0xe0, 0xd3, 0xa0, 0x13, 0x9c, 0xa5, 0xa1, 0xfe, 0x4b, 0x46, 0x73, 0xc0, 0xbe, 0x5b, 0x10, 0x69,
-	0xaa, 0x46, 0x64, 0x77, 0x0e, 0x4f, 0x30, 0x9d, 0x01, 0xfb, 0xf0, 0xc0, 0xe7, 0x61, 0xee, 0x71,
-	0x0e, 0xd1, 0xd3, 0x26, 0xf4, 0x65, 0xf6, 0x55, 0x42, 0x88, 0x68, 0x66, 0x46, 0xd3, 0x13, 0xcc,
-	0xe8, 0x11, 0xfb, 0x08, 0xc0, 0x27, 0xda, 0x99, 0x37, 0xa3, 0xe9, 0x09, 0x66, 0x34, 0x64, 0x1f,
-	0x08, 0x84, 0x88, 0xaa, 0x46, 0x6d, 0x0b, 0x88, 0xf8, 0xe2, 0x79, 0x2c, 0x91, 0x32, 0x8d, 0xd8,
-	0x87, 0x1f, 0xc1, 0xab, 0x67, 0x46, 0xf3, 0xa8, 0x9e, 0x36, 0x29, 0x9b, 0x7d, 0x15, 0x12, 0xa6,
-	0xaa, 0x1a, 0xb5, 0xfb, 0x70, 0x56, 0x5c, 0xde, 0x89, 0xa6, 0xe5, 0xb0, 0x4f, 0x1a, 0x82, 0x05,
-	0x72, 0xab, 0xb9, 0x64, 0x4f, 0x9b, 0xd8, 0x98, 0x7d, 0xee, 0x10, 0x21, 0xab, 0x1a, 0xb5, 0xbb,
-	0x90, 0x17, 0xc8, 0xf6, 0xb0, 0x0a, 0x96, 0x11, 0xbd, 0xcf, 0x3e, 0xd2, 0xf1, 0x89, 0x68, 0xfc,
-	0x8f, 0xbe, 0x3d, 0x16, 0x11, 0xa5, 0x34, 0x13, 0xf6, 0x8d, 0x49, 0x30, 0x1f, 0xb4, 0x89, 0x1c,
-	0x94, 0x3d, 0x16, 0x3e, 0x65, 0x3c, 0x53, 0xf6, 0xfd, 0x49, 0x30, 0x1d, 0x6a, 0x52, 0x1b, 0x85,
-	0x16, 0x65, 0xd1, 0xa0, 0x28, 0x65, 0x71, 0xd1, 0x7f, 0x97, 0x24, 0x90, 0x55, 0xf1, 0xb2, 0x45,
-	0x58, 0x3e, 0x7d, 0xac, 0xdd, 0x87, 0xc5, 0xd3, 0xb8, 0xac, 0x0f, 0x15, 0x56, 0x79, 0x57, 0x56,
-	0x69, 0x71, 0x6e, 0x2e, 0x74, 0x43, 0x9e, 0x6b, 0x13, 0x16, 0x4e, 0xe1, 0xb6, 0x3e, 0x52, 0x58,
-	0xfd, 0x4a, 0xb9, 0xcc, 0x5c, 0x37, 0xec, 0xbb, 0x16, 0x4e, 0xe1, 0xb8, 0x3e, 0x56, 0xd8, 0x85,
-	0x87, 0x51, 0xf6, 0x69, 0x3c, 0xdf, 0xb5, 0x70, 0x0a, 0xc7, 0xf5, 0x09, 0xab, 0x4f, 0x55, 0xa3,
-	0x22, 0xd2, 0xa0, 0xa7, 0x58, 0x3c, 0x8d, 0xe3, 0xfa, 0x54, 0xc1, 0x0b, 0x10, 0xd5, 0x30, 0xfc,
-	0xfd, 0xf1, 0x7d, 0xd7, 0xe2, 0x69, 0x1c, 0xd7, 0x57, 0x15, 0xbc, 0x28, 0x51, 0x8d, 0x8d, 0x10,
-	0x51, 0x78, 0x46, 0x27, 0x71, 0x5c, 0x5f, 0x53, 0xf0, 0xf6, 0x42, 0x35, 0xaa, 0x3e, 0xd1, 0xce,
-	0xcc, 0x8c, 0x4e, 0xe2, 0xb8, 0xbe, 0x8e, 0xd5, 0x40, 0x4d, 0x35, 0x6e, 0x84, 0x88, 0xd0, 0x77,
-	0xe5, 0x4f, 0xe5, 0xb8, 0xbe, 0xa1, 0xe0, 0x45, 0x93, 0x6a, 0xdc, 0x34, 0xbd, 0x19, 0x04, 0xbe,
-	0x2b, 0x7f, 0x2a, 0xc7, 0xf5, 0x4d, 0x05, 0x6f, 0xa4, 0x54, 0xe3, 0x56, 0x98, 0x0a, 0x7d, 0x97,
-	0x76, 0x3a, 0xc7, 0xf5, 0x99, 0x82, 0xdf, 0x9f, 0xa8, 0x1b, 0x6b, 0xa6, 0x37, 0x09, 0xc1, 0x77,
-	0x69, 0xa7, 0x73, 0x5c, 0xdf, 0x52, 0xf0, 0xa3, 0x14, 0x75, 0x63, 0x3d, 0x42, 0x56, 0x35, 0x6a,
-	0x75, 0xc8, 0x9d, 0xdc, 0x71, 0x7d, 0x5b, 0xbc, 0xef, 0xcb, 0x76, 0x05, 0xef, 0x65, 0x0a, 0xef,
-	0xef, 0x04, 0xae, 0xeb, 0x3b, 0x58, 0x35, 0xd5, 0x16, 0xde, 0x64, 0xb7, 0x62, 0xcc, 0x24, 0x78,
-	0x95, 0xcc, 0x91, 0xb5, 0x82, 0x53, 0x73, 0x02, 0x2f, 0xf6, 0x5d, 0x05, 0x2f, 0xcf, 0x72, 0x9c,
-	0x12, 0x2d, 0xfc, 0xf3, 0xc3, 0x5c, 0x9a, 0x1d, 0xac, 0xf5, 0xe9, 0xfe, 0xec, 0x7b, 0xca, 0xe9,
-	0x1c, 0x5a, 0x2d, 0xd6, 0x6a, 0xd6, 0xfd, 0x4d, 0xc1, 0x96, 0x37, 0x20, 0x7e, 0x54, 0x5e, 0x5b,
-	0x0f, 0xa7, 0x76, 0xe2, 0xdd, 0x31, 0x73, 0x63, 0xd9, 0xf2, 0x52, 0xe8, 0x92, 0x7d, 0x34, 0x76,
-	0x8f, 0x4d, 0xb4, 0xe4, 0x0c, 0x65, 0x09, 0xc3, 0x47, 0x52, 0x86, 0x32, 0x67, 0xa8, 0x48, 0x18,
-	0x3e, 0x96, 0x32, 0x54, 0x38, 0x83, 0x21, 0x61, 0xf8, 0x44, 0xca, 0x60, 0x70, 0x86, 0x0d, 0x09,
-	0xc3, 0xa7, 0x52, 0x86, 0x0d, 0xce, 0x50, 0x95, 0x30, 0x7c, 0x55, 0xca, 0x50, 0xe5, 0x0c, 0x37,
-	0x24, 0x0c, 0x5f, 0x93, 0x32, 0xdc, 0xe0, 0x0c, 0x37, 0x25, 0x0c, 0x5f, 0x97, 0x32, 0xdc, 0xe4,
-	0x0c, 0xb7, 0x24, 0x0c, 0xdf, 0x90, 0x32, 0xdc, 0x62, 0x0c, 0xeb, 0x6b, 0x12, 0x86, 0x6f, 0xca,
-	0x18, 0xd6, 0xd7, 0x38, 0x83, 0x4c, 0x93, 0x9f, 0x49, 0x19, 0xb8, 0x26, 0xd7, 0x65, 0x9a, 0xfc,
-	0x96, 0x94, 0x81, 0x6b, 0x72, 0x5d, 0xa6, 0xc9, 0x6f, 0x4b, 0x19, 0xb8, 0x26, 0xd7, 0x65, 0x9a,
-	0xfc, 0x8e, 0x94, 0x81, 0x6b, 0x72, 0x5d, 0xa6, 0xc9, 0xef, 0x4a, 0x19, 0xb8, 0x26, 0xd7, 0x65,
-	0x9a, 0xfc, 0x9e, 0x94, 0x81, 0x6b, 0x72, 0x5d, 0xa6, 0xc9, 0x3f, 0x91, 0x32, 0x70, 0x4d, 0xae,
-	0xcb, 0x34, 0xf9, 0xa7, 0x52, 0x06, 0xae, 0xc9, 0x75, 0x99, 0x26, 0xff, 0x4c, 0xca, 0xc0, 0x35,
-	0x59, 0x96, 0x69, 0xf2, 0xfb, 0x32, 0x86, 0x32, 0xd7, 0x64, 0x59, 0xa6, 0xc9, 0x3f, 0x97, 0x32,
-	0x70, 0x4d, 0x96, 0x65, 0x9a, 0xfc, 0x0b, 0x29, 0x03, 0xd7, 0x64, 0x59, 0xa6, 0xc9, 0x1f, 0x48,
-	0x19, 0xb8, 0x26, 0xcb, 0x32, 0x4d, 0xfe, 0xa5, 0x94, 0x81, 0x6b, 0xb2, 0x2c, 0xd3, 0xe4, 0x5f,
-	0x49, 0x19, 0xb8, 0x26, 0xcb, 0x32, 0x4d, 0xfe, 0xb5, 0x94, 0x81, 0x6b, 0xb2, 0x2c, 0xd3, 0xe4,
-	0xdf, 0x48, 0x19, 0xb8, 0x26, 0xcb, 0x32, 0x4d, 0xfe, 0xad, 0x94, 0x81, 0x6b, 0xb2, 0x2c, 0xd3,
-	0xe4, 0xdf, 0x49, 0x19, 0xb8, 0x26, 0x2b, 0x32, 0x4d, 0xfe, 0xbd, 0x8c, 0xa1, 0xc2, 0x35, 0x59,
-	0x91, 0x69, 0xf2, 0x1f, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0xff, 0x51, 0xca, 0xc0, 0x35,
-	0x59, 0x91, 0x69, 0xf2, 0x9f, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0xff, 0x59, 0xca, 0xc0,
-	0x35, 0x59, 0x91, 0x69, 0xf2, 0x5f, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0xff, 0x55, 0xca,
-	0xc0, 0x35, 0x59, 0x91, 0x69, 0xf2, 0xdf, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0x7f, 0x28,
-	0x65, 0xe0, 0x9a, 0xac, 0xc8, 0x34, 0xf9, 0xef, 0x52, 0x06, 0xae, 0x49, 0x43, 0xa6, 0xc9, 0xff,
-	0x90, 0x31, 0x18, 0x5c, 0x93, 0x86, 0x4c, 0x93, 0xff, 0x29, 0x65, 0xe0, 0x9a, 0x34, 0x64, 0x9a,
-	0xfc, 0x2f, 0x29, 0x03, 0xd7, 0xa4, 0x21, 0xd3, 0xe4, 0x7f, 0x4b, 0x19, 0xb8, 0x26, 0x0d, 0x99,
-	0x26, 0xff, 0x47, 0xca, 0xc0, 0x35, 0x69, 0xc8, 0x34, 0xf9, 0xbf, 0x52, 0x06, 0xae, 0x49, 0x43,
-	0xa6, 0xc9, 0x1f, 0x49, 0x19, 0xb8, 0x26, 0x0d, 0x99, 0x26, 0x7f, 0x2c, 0x65, 0xe0, 0x9a, 0x34,
-	0x64, 0x9a, 0xfc, 0x89, 0x94, 0x81, 0x6b, 0xd2, 0x90, 0x69, 0xf2, 0xa7, 0x52, 0x06, 0xae, 0xc9,
-	0x0d, 0x99, 0x26, 0xff, 0x4f, 0xc6, 0xb0, 0xb1, 0xf6, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf2,
-	0xf8, 0x02, 0x89, 0x50, 0x3d, 0x00, 0x00,
+	0x4e, 0xf5, 0xd7, 0x3d, 0x33, 0x3d, 0x03, 0xa8, 0x45, 0x3e, 0x61, 0xa6, 0xfb, 0xf7, 0xfd, 0xfa,
+	0xfa, 0xf5, 0xf7, 0xf5, 0xd7, 0x18, 0x00, 0xd7, 0x9a, 0xba, 0xab, 0xe3, 0x89, 0xe3, 0x3a, 0x04,
+	0x9f, 0xdb, 0xf8, 0x5c, 0xbc, 0x0e, 0xc9, 0x4d, 0xa7, 0x6e, 0x1f, 0x8e, 0xc8, 0x55, 0x88, 0xf5,
+	0x1c, 0xa7, 0xa0, 0xe8, 0x6a, 0x69, 0xb1, 0x9c, 0x5f, 0x0d, 0x30, 0xab, 0x8d, 0x56, 0xcb, 0xa4,
+	0x75, 0xc5, 0x1b, 0x90, 0xdd, 0x74, 0x76, 0xad, 0xa9, 0xdb, 0x18, 0x58, 0xc3, 0x2e, 0x59, 0x86,
+	0xc4, 0x83, 0xce, 0x9e, 0x35, 0x44, 0x9b, 0x8c, 0xc9, 0x5e, 0x08, 0x81, 0xf8, 0xee, 0xf1, 0xd8,
+	0x2a, 0xa8, 0x58, 0x88, 0xcf, 0xc5, 0x3f, 0x2c, 0xd2, 0x66, 0xa8, 0x25, 0xb9, 0x0e, 0xf1, 0xfb,
+	0x03, 0xbb, 0xcb, 0xdb, 0x39, 0x2f, 0xb6, 0xc3, 0x10, 0xab, 0xf7, 0xb7, 0x9a, 0xf7, 0x4c, 0x04,
+	0xd1, 0x16, 0x76, 0x3b, 0x7b, 0x43, 0x4a, 0xa6, 0xd0, 0x16, 0xf0, 0x85, 0x96, 0x3e, 0xec, 0x4c,
+	0x3a, 0xa3, 0x42, 0x4c, 0x57, 0x4a, 0x09, 0x93, 0xbd, 0x90, 0xd7, 0x60, 0xc1, 0xb4, 0xde, 0x3f,
+	0x1c, 0x4c, 0xac, 0x2e, 0x76, 0xaf, 0x10, 0xd7, 0xd5, 0x52, 0x76, 0x5e, 0x0b, 0x58, 0x6d, 0x86,
+	0xd1, 0xcc, 0x7c, 0x6c, 0x75, 0x5c, 0xcf, 0x3c, 0xa1, 0xc7, 0x9e, 0x62, 0x2e, 0xa0, 0xa9, 0x79,
+	0x6b, 0xec, 0x0e, 0x1c, 0xbb, 0x33, 0x64, 0xe6, 0x49, 0x5d, 0x91, 0x9a, 0x87, 0xd0, 0xe4, 0x8b,
+	0x90, 0x6f, 0xb4, 0xef, 0x38, 0xce, 0xb0, 0x3d, 0xe1, 0xbd, 0x2a, 0x80, 0xae, 0x96, 0xd2, 0xe6,
+	0x42, 0x83, 0x96, 0x7a, 0x5d, 0x25, 0x25, 0xd0, 0x1a, 0xed, 0x2d, 0xdb, 0xad, 0x94, 0x03, 0x60,
+	0x56, 0x57, 0x4b, 0x09, 0x73, 0xb1, 0x81, 0xc5, 0x33, 0xc8, 0xaa, 0x11, 0x20, 0x73, 0xba, 0x5a,
+	0x8a, 0x31, 0x64, 0xd5, 0xf0, 0x91, 0x2f, 0x01, 0x69, 0xb4, 0x1b, 0x83, 0x23, 0xab, 0x2b, 0xb2,
+	0x2e, 0xe8, 0x6a, 0x29, 0x65, 0x6a, 0x0d, 0x5e, 0x31, 0x07, 0x2d, 0x32, 0x2f, 0xea, 0x6a, 0x29,
+	0xe9, 0xa1, 0x05, 0xee, 0x6b, 0xb0, 0xd4, 0x68, 0xbf, 0x3d, 0x08, 0x77, 0x38, 0xaf, 0xab, 0xa5,
+	0x05, 0x33, 0xdf, 0x60, 0xe5, 0xb3, 0x58, 0x91, 0x58, 0xd3, 0xd5, 0x52, 0x9c, 0x63, 0x05, 0x5e,
+	0x1c, 0x5d, 0x63, 0xe8, 0x74, 0xdc, 0x00, 0xba, 0xa4, 0xab, 0x25, 0xd5, 0x5c, 0x6c, 0x60, 0x71,
+	0x98, 0xf5, 0x9e, 0x73, 0xb8, 0x37, 0xb4, 0x02, 0x28, 0xd1, 0xd5, 0x92, 0x62, 0xe6, 0x1b, 0xac,
+	0x3c, 0x8c, 0xdd, 0x71, 0x27, 0x03, 0xbb, 0x1f, 0x60, 0xcf, 0xa2, 0x8e, 0xf3, 0x0d, 0x56, 0x1e,
+	0xee, 0xc1, 0x9d, 0x63, 0xd7, 0x9a, 0x06, 0x50, 0x4b, 0x57, 0x4b, 0x39, 0x73, 0xb1, 0x81, 0xc5,
+	0x11, 0xd6, 0xc8, 0x1c, 0xf4, 0x74, 0xb5, 0xb4, 0x44, 0x59, 0xe7, 0xcc, 0xc1, 0x4e, 0x64, 0x0e,
+	0xfa, 0xba, 0x5a, 0x22, 0x1c, 0x2b, 0xcc, 0xc1, 0x2a, 0x9c, 0x6d, 0xb4, 0x77, 0x7a, 0xd1, 0x85,
+	0x3b, 0xd0, 0xd5, 0x52, 0xde, 0x5c, 0x6a, 0x78, 0x35, 0xf3, 0xf0, 0x22, 0xfb, 0x40, 0x57, 0x4b,
+	0x9a, 0x8f, 0x17, 0xf8, 0x45, 0x4d, 0x32, 0xa9, 0x17, 0x96, 0xf5, 0x98, 0xa0, 0x49, 0x56, 0x18,
+	0xd6, 0x24, 0x07, 0x3e, 0xa3, 0xc7, 0x44, 0x4d, 0x46, 0x90, 0xd8, 0x3c, 0x47, 0x9e, 0xd3, 0x63,
+	0xa2, 0x26, 0x39, 0x32, 0xa2, 0x49, 0x8e, 0x3d, 0xaf, 0xc7, 0xc2, 0x9a, 0x9c, 0x41, 0x8b, 0xcc,
+	0x05, 0x3d, 0x16, 0xd6, 0x24, 0x47, 0x87, 0x35, 0xc9, 0xc1, 0x17, 0xf4, 0x58, 0x48, 0x93, 0x51,
+	0xac, 0x48, 0xbc, 0xa2, 0xc7, 0x42, 0x9a, 0x14, 0x47, 0xe7, 0x69, 0x92, 0x43, 0x2f, 0xea, 0x31,
+	0x51, 0x93, 0x22, 0xab, 0xaf, 0x49, 0x0e, 0x7d, 0x56, 0x8f, 0x85, 0x34, 0x29, 0x62, 0x7d, 0x4d,
+	0x72, 0xec, 0x25, 0x3d, 0x16, 0xd2, 0x24, 0xc7, 0xbe, 0x28, 0x6a, 0x92, 0x43, 0x3f, 0x54, 0xf4,
+	0x98, 0x28, 0x4a, 0x0e, 0xbd, 0x1e, 0x12, 0x25, 0xc7, 0x7e, 0x44, 0xb1, 0xa2, 0x2a, 0xa3, 0x60,
+	0x71, 0x16, 0x3e, 0xa6, 0x60, 0x51, 0x96, 0x1c, 0xfc, 0x4a, 0x44, 0x96, 0x1c, 0xfe, 0x09, 0x85,
+	0x87, 0x75, 0x39, 0x6b, 0x20, 0xf2, 0x7f, 0x4a, 0x0d, 0xc2, 0xc2, 0xe4, 0x06, 0x81, 0x30, 0x1d,
+	0xee, 0x44, 0x0b, 0x97, 0x75, 0xc5, 0x17, 0xa6, 0xe7, 0x59, 0x45, 0x61, 0xfa, 0xc0, 0x2b, 0x18,
+	0x32, 0xb8, 0x30, 0x67, 0x90, 0x55, 0x23, 0x40, 0xea, 0xba, 0x12, 0x08, 0xd3, 0x47, 0x86, 0x84,
+	0xe9, 0x63, 0xaf, 0xea, 0x8a, 0x28, 0xcc, 0x39, 0x68, 0x91, 0xb9, 0xa8, 0x2b, 0xa2, 0x30, 0x7d,
+	0xb4, 0x28, 0x4c, 0x1f, 0xfc, 0x05, 0x5d, 0x11, 0x84, 0x39, 0x8b, 0x15, 0x89, 0x9f, 0xd3, 0x15,
+	0x41, 0x98, 0xe1, 0xd1, 0x31, 0x61, 0xfa, 0xd0, 0xe7, 0x75, 0x25, 0x10, 0x66, 0x98, 0x95, 0x0b,
+	0xd3, 0x87, 0x7e, 0x51, 0x57, 0x04, 0x61, 0x86, 0xb1, 0x5c, 0x98, 0x3e, 0xf6, 0x05, 0x8c, 0xd3,
+	0x9e, 0x30, 0x7d, 0xac, 0x20, 0x4c, 0x1f, 0xfa, 0x3b, 0x34, 0xa6, 0xfb, 0xc2, 0xf4, 0xa1, 0xa2,
+	0x30, 0x7d, 0xec, 0xef, 0x52, 0x6c, 0x20, 0xcc, 0x59, 0xb0, 0x38, 0x0b, 0xbf, 0x47, 0xc1, 0x81,
+	0x30, 0x7d, 0x70, 0x58, 0x98, 0x3e, 0xfc, 0xf7, 0x29, 0x5c, 0x14, 0xe6, 0x3c, 0x03, 0x91, 0xff,
+	0x0f, 0xa8, 0x81, 0x28, 0x4c, 0xdf, 0x60, 0x15, 0x87, 0x49, 0x85, 0xd9, 0xb5, 0x7a, 0x9d, 0xc3,
+	0x21, 0x95, 0x71, 0x89, 0x2a, 0xb3, 0x16, 0x77, 0x27, 0x87, 0x16, 0x1d, 0xab, 0xe3, 0x0c, 0xef,
+	0x79, 0x75, 0x64, 0x95, 0x76, 0x9f, 0x09, 0x34, 0x30, 0x78, 0x91, 0x2a, 0xb4, 0xa6, 0x56, 0xca,
+	0x66, 0x9e, 0xa9, 0x74, 0x16, 0x5f, 0x35, 0x04, 0xfc, 0x35, 0xaa, 0xd3, 0x9a, 0x5a, 0x35, 0x18,
+	0xbe, 0x6a, 0x04, 0xf8, 0x0a, 0x1d, 0x80, 0x27, 0xd6, 0xc0, 0xe2, 0x3a, 0x55, 0x6b, 0x2d, 0x56,
+	0x29, 0xaf, 0x99, 0x4b, 0x9e, 0x64, 0xe7, 0x19, 0x85, 0x9a, 0x79, 0x89, 0x8a, 0xb6, 0x16, 0xab,
+	0x1a, 0xbe, 0x91, 0xd8, 0x52, 0x99, 0x0a, 0x9d, 0x4b, 0x37, 0xb0, 0x79, 0x99, 0x6a, 0xb7, 0x16,
+	0xaf, 0x94, 0xd7, 0xd6, 0x4c, 0x8d, 0x2b, 0x78, 0x8e, 0x4d, 0xa8, 0x9d, 0x55, 0xaa, 0xe1, 0x5a,
+	0xbc, 0x6a, 0xf8, 0x36, 0xe1, 0x76, 0x96, 0x3c, 0x29, 0x07, 0x26, 0xaf, 0x50, 0x2d, 0xd7, 0x92,
+	0x95, 0x75, 0x63, 0x7d, 0xe3, 0x96, 0x99, 0x67, 0x9a, 0x0e, 0x6c, 0x0c, 0xda, 0x0e, 0x17, 0x75,
+	0x60, 0xb4, 0x46, 0x55, 0x5d, 0x4b, 0x96, 0x6f, 0xac, 0xdf, 0x2c, 0xdf, 0x34, 0x35, 0xae, 0xee,
+	0xc0, 0xea, 0x75, 0x6a, 0xc5, 0xe5, 0x1d, 0x58, 0xad, 0x53, 0x7d, 0xd7, 0xb4, 0x03, 0x6b, 0x38,
+	0x74, 0x5e, 0xd2, 0x8b, 0x8f, 0x9d, 0xc9, 0xb0, 0x7b, 0xb5, 0x08, 0xa6, 0xc6, 0x15, 0x2f, 0xb6,
+	0xba, 0xe4, 0x49, 0x3e, 0x30, 0xff, 0x55, 0x7a, 0x62, 0xcd, 0xd5, 0x52, 0x77, 0x06, 0x7d, 0xdb,
+	0x99, 0x5a, 0x66, 0x9e, 0x89, 0x3f, 0x32, 0x27, 0x3b, 0xd1, 0x79, 0xfc, 0x0a, 0x35, 0x5b, 0xaa,
+	0xc5, 0x5e, 0xae, 0x94, 0x69, 0x4b, 0xf3, 0xe6, 0x71, 0x27, 0x3a, 0x8f, 0xbf, 0x46, 0x6d, 0x48,
+	0x2d, 0xf6, 0x72, 0xd5, 0xe0, 0x36, 0xe2, 0x3c, 0x56, 0x61, 0x59, 0xd8, 0x0b, 0x81, 0xd5, 0xaf,
+	0x53, 0xab, 0x3c, 0x6b, 0x89, 0xf8, 0x3b, 0x62, 0xae, 0x5d, 0xa8, 0xb5, 0xdf, 0xa0, 0x76, 0x1a,
+	0x6b, 0x8d, 0xf8, 0x1b, 0x23, 0xb0, 0xbb, 0x01, 0xe7, 0x22, 0x67, 0x89, 0xf6, 0xb8, 0xb3, 0xff,
+	0xc8, 0xea, 0x16, 0xca, 0xf4, 0x48, 0x71, 0x47, 0xd5, 0x14, 0xf3, 0x6c, 0xe8, 0x58, 0xf1, 0x10,
+	0xab, 0xc9, 0x2d, 0x38, 0x1f, 0x3d, 0x5c, 0x78, 0x96, 0x15, 0x7a, 0xc6, 0x40, 0xcb, 0xe5, 0xf0,
+	0x39, 0x23, 0x62, 0x2a, 0x04, 0x15, 0xcf, 0xd4, 0xa0, 0x87, 0x8e, 0xc0, 0x34, 0x88, 0x2d, 0xdc,
+	0xf4, 0x35, 0xb8, 0x30, 0x7b, 0xfc, 0xf0, 0x8c, 0x37, 0xe8, 0x29, 0x04, 0x8d, 0xcf, 0x45, 0x4f,
+	0x22, 0x33, 0xe6, 0x73, 0xda, 0xae, 0xd2, 0x63, 0x89, 0x68, 0x3e, 0xd3, 0xfa, 0xab, 0x50, 0x98,
+	0x39, 0xa0, 0x78, 0xd6, 0x37, 0xe8, 0x39, 0x05, 0xad, 0x9f, 0x89, 0x9c, 0x55, 0xa2, 0xc6, 0x73,
+	0x9a, 0xbe, 0x49, 0x0f, 0x2e, 0x82, 0xf1, 0x4c, 0xcb, 0x38, 0x65, 0xe1, 0x23, 0x8c, 0x67, 0x7b,
+	0x8b, 0x9e, 0x64, 0xf8, 0x94, 0x85, 0x4e, 0x33, 0x62, 0xbb, 0x91, 0x33, 0x8d, 0x67, 0x5b, 0xa3,
+	0x47, 0x1b, 0xde, 0x6e, 0xf8, 0x78, 0xc3, 0x8d, 0x7f, 0x86, 0x1a, 0xef, 0xcc, 0x1f, 0xf1, 0x8f,
+	0x62, 0xf4, 0x50, 0xc2, 0xad, 0x77, 0xe6, 0x0d, 0xd9, 0xb7, 0x9e, 0x33, 0xe4, 0x1f, 0x53, 0x6b,
+	0x22, 0x58, 0xcf, 0x8c, 0xf9, 0x0d, 0x58, 0x99, 0x73, 0x5e, 0xf1, 0xec, 0x7f, 0x42, 0xed, 0xf3,
+	0x68, 0x7f, 0x7e, 0xe6, 0xe8, 0x32, 0xcb, 0x30, 0xa7, 0x07, 0x3f, 0xa5, 0x0c, 0x5a, 0x88, 0x61,
+	0xa6, 0x0f, 0x0d, 0x58, 0xf0, 0xce, 0xe3, 0xfd, 0x89, 0x73, 0x38, 0x2e, 0x34, 0x74, 0xb5, 0x04,
+	0x65, 0x7d, 0x4e, 0x76, 0xec, 0x1d, 0xcf, 0x37, 0x29, 0xce, 0x0c, 0x9b, 0x31, 0x1e, 0xc6, 0xcc,
+	0x78, 0x1e, 0xea, 0xb1, 0x27, 0xf2, 0x30, 0x9c, 0xcf, 0x23, 0x98, 0x51, 0x1e, 0x2f, 0xdc, 0x31,
+	0x9e, 0xf7, 0x74, 0xe5, 0x09, 0x3c, 0x5e, 0xf0, 0xe3, 0x3c, 0x21, 0xb3, 0x95, 0x8d, 0x20, 0x27,
+	0xc7, 0x7a, 0xf2, 0x5c, 0x34, 0x49, 0xdf, 0xc4, 0xec, 0x2a, 0x5c, 0xc8, 0xcc, 0x84, 0xee, 0xcd,
+	0x9a, 0xbd, 0xf5, 0x04, 0xb3, 0x50, 0x6f, 0x66, 0xcd, 0x7e, 0x6e, 0x8e, 0x59, 0xf1, 0x37, 0x15,
+	0x88, 0xdf, 0xdf, 0x6a, 0xde, 0x23, 0x69, 0x88, 0xbf, 0xd3, 0xda, 0xba, 0xa7, 0x9d, 0xa1, 0x4f,
+	0x77, 0x5a, 0xad, 0x07, 0x9a, 0x42, 0x32, 0x90, 0xb8, 0xf3, 0xa5, 0xdd, 0xfa, 0x8e, 0xa6, 0x92,
+	0x3c, 0x64, 0x1b, 0x5b, 0xcd, 0xcd, 0xba, 0xf9, 0xd0, 0xdc, 0x6a, 0xee, 0x6a, 0x31, 0x5a, 0xd7,
+	0x78, 0xd0, 0xba, 0xbd, 0xab, 0xc5, 0x49, 0x0a, 0x62, 0xb4, 0x2c, 0x41, 0x00, 0x92, 0x3b, 0xbb,
+	0xe6, 0x56, 0x73, 0x53, 0x4b, 0x52, 0x96, 0xdd, 0xad, 0xed, 0xba, 0x96, 0xa2, 0xc8, 0xdd, 0xb7,
+	0x1f, 0x3e, 0xa8, 0x6b, 0x69, 0xfa, 0x78, 0xdb, 0x34, 0x6f, 0x7f, 0x49, 0xcb, 0x50, 0xa3, 0xed,
+	0xdb, 0x0f, 0x35, 0xc0, 0xea, 0xdb, 0x77, 0x1e, 0xd4, 0xb5, 0x2c, 0xc9, 0x41, 0xba, 0xf1, 0x76,
+	0xf3, 0xee, 0xee, 0x56, 0xab, 0xa9, 0xe5, 0x8a, 0xbf, 0x08, 0x05, 0x36, 0xcd, 0xa1, 0x59, 0x64,
+	0x57, 0x06, 0x6f, 0x40, 0x82, 0xad, 0x8d, 0x82, 0x5a, 0xb9, 0x36, 0xbb, 0x36, 0xb3, 0x46, 0xab,
+	0x6c, 0x95, 0x98, 0xe1, 0xca, 0x25, 0x48, 0xb0, 0x79, 0x5a, 0x86, 0x04, 0x9b, 0x1f, 0x15, 0xaf,
+	0x12, 0xd8, 0x4b, 0xf1, 0xb7, 0x54, 0x80, 0x4d, 0x67, 0xe7, 0xd1, 0x60, 0x8c, 0x17, 0x37, 0x97,
+	0x00, 0xa6, 0x8f, 0x06, 0xe3, 0x36, 0xee, 0x40, 0x7e, 0xe9, 0x90, 0xa1, 0x25, 0xe8, 0x7b, 0xc9,
+	0x55, 0xc8, 0x61, 0x35, 0xdf, 0x22, 0x78, 0xd7, 0x90, 0x32, 0xb3, 0xb4, 0x8c, 0x3b, 0xc9, 0x30,
+	0xa4, 0x6a, 0xe0, 0x15, 0x43, 0x52, 0x80, 0x54, 0x0d, 0x72, 0x05, 0xf0, 0xb5, 0x3d, 0xc5, 0x68,
+	0x8a, 0xd7, 0x0a, 0x19, 0x13, 0xdb, 0x65, 0xf1, 0x95, 0xbc, 0x0e, 0xd8, 0x26, 0x1b, 0x79, 0x7e,
+	0xde, 0x2e, 0xf1, 0x3a, 0xbc, 0x4a, 0x1f, 0xd8, 0x78, 0x03, 0x93, 0x95, 0x16, 0x64, 0xfc, 0x72,
+	0xda, 0x1a, 0x96, 0xf2, 0x31, 0x69, 0x38, 0x26, 0xc0, 0x22, 0x7f, 0x50, 0x0c, 0xc0, 0xfb, 0xb3,
+	0x84, 0xfd, 0x61, 0x46, 0xac, 0x43, 0xc5, 0x4b, 0xb0, 0xd0, 0x74, 0x6c, 0xb6, 0x8f, 0x71, 0x9e,
+	0x72, 0xa0, 0x74, 0x0a, 0x0a, 0xe6, 0xbf, 0x4a, 0xa7, 0x78, 0x19, 0x40, 0xa8, 0xd3, 0x40, 0xd9,
+	0x63, 0x75, 0xe8, 0x0f, 0x94, 0xbd, 0xe2, 0x75, 0x48, 0x6e, 0x77, 0x8e, 0x76, 0x3b, 0x7d, 0x72,
+	0x15, 0x60, 0xd8, 0x99, 0xba, 0xed, 0x1e, 0xae, 0xc4, 0xe7, 0x9f, 0x7f, 0xfe, 0xb9, 0x82, 0x87,
+	0xe9, 0x0c, 0x2d, 0x65, 0x2b, 0x32, 0x05, 0x68, 0x0d, 0xbb, 0xdb, 0xd6, 0x74, 0xda, 0xe9, 0x5b,
+	0x64, 0x03, 0x92, 0xb6, 0x35, 0xa5, 0xd1, 0x57, 0xc1, 0xbb, 0xa6, 0x4b, 0xe2, 0x3c, 0x04, 0xb8,
+	0xd5, 0x26, 0x82, 0x4c, 0x0e, 0x26, 0x1a, 0xc4, 0xec, 0xc3, 0x11, 0xde, 0xa8, 0x25, 0x4c, 0xfa,
+	0xb8, 0xf2, 0x2c, 0x24, 0x19, 0x86, 0x10, 0x88, 0xdb, 0x9d, 0x91, 0x55, 0x60, 0x2d, 0xe3, 0x73,
+	0xf1, 0x2b, 0x0a, 0x40, 0xd3, 0x7a, 0x7c, 0xa2, 0x56, 0x03, 0x9c, 0xa4, 0xd5, 0x18, 0x6b, 0xf5,
+	0x55, 0x59, 0xab, 0x54, 0x6d, 0x3d, 0xc7, 0xe9, 0xb6, 0xd9, 0x42, 0xb3, 0xeb, 0xbf, 0x0c, 0x2d,
+	0xc1, 0x95, 0x2b, 0xbe, 0x07, 0xb9, 0x2d, 0xdb, 0xb6, 0x26, 0x5e, 0xaf, 0x08, 0xc4, 0x0f, 0x9c,
+	0xa9, 0xcb, 0x6f, 0x22, 0xf1, 0x99, 0x14, 0x20, 0x3e, 0x76, 0x26, 0x2e, 0x1b, 0x69, 0x2d, 0x6e,
+	0xac, 0xad, 0xad, 0x99, 0x58, 0x42, 0x9e, 0x85, 0xcc, 0xbe, 0x63, 0xdb, 0xd6, 0x3e, 0x1d, 0x46,
+	0x0c, 0x53, 0xc7, 0xa0, 0xa0, 0xf8, 0xcb, 0x0a, 0xe4, 0x5a, 0xee, 0x41, 0x40, 0xae, 0x41, 0xec,
+	0x91, 0x75, 0x8c, 0xdd, 0x8b, 0x99, 0xf4, 0x91, 0x6e, 0x98, 0x9f, 0xef, 0x0c, 0x0f, 0xd9, 0xbd,
+	0x64, 0xce, 0x64, 0x2f, 0xe4, 0x1c, 0x24, 0x1f, 0x5b, 0x83, 0xfe, 0x81, 0x8b, 0x9c, 0xaa, 0xc9,
+	0xdf, 0xc8, 0x2a, 0x24, 0x06, 0xb4, 0xb3, 0x85, 0x38, 0xce, 0x58, 0x41, 0x9c, 0x31, 0x71, 0x14,
+	0x26, 0x83, 0x5d, 0x4b, 0xa7, 0xbb, 0xda, 0x07, 0x1f, 0x7c, 0xf0, 0x81, 0x5a, 0x3c, 0x80, 0x65,
+	0x6f, 0x13, 0x87, 0x86, 0xfb, 0x10, 0x0a, 0x43, 0xcb, 0x69, 0xf7, 0x06, 0x76, 0x67, 0x38, 0x3c,
+	0x6e, 0x3f, 0x76, 0xec, 0x76, 0xc7, 0x6e, 0x3b, 0xd3, 0xfd, 0xce, 0x04, 0xa7, 0x40, 0xd6, 0xc8,
+	0xf2, 0xd0, 0x72, 0x1a, 0xcc, 0xf0, 0x5d, 0xc7, 0xbe, 0x6d, 0xb7, 0xa8, 0x55, 0xf1, 0xb3, 0x38,
+	0x64, 0xb6, 0x8f, 0x3d, 0xfe, 0x65, 0x48, 0xec, 0x3b, 0x87, 0x36, 0x9b, 0xcf, 0x84, 0xc9, 0x5e,
+	0xfc, 0x75, 0x52, 0x85, 0x75, 0x5a, 0x86, 0xc4, 0xfb, 0x87, 0x8e, 0x6b, 0xe1, 0x90, 0x33, 0x26,
+	0x7b, 0xa1, 0x33, 0x36, 0xb6, 0xdc, 0x42, 0x1c, 0xaf, 0x29, 0xe8, 0x63, 0x30, 0x07, 0x89, 0x13,
+	0xcd, 0x01, 0x59, 0x83, 0xa4, 0x43, 0xd7, 0x60, 0x5a, 0x48, 0xe2, 0x3d, 0x6c, 0xc8, 0x40, 0x5c,
+	0x1d, 0x93, 0xe3, 0xc8, 0x7d, 0x58, 0x7a, 0x6c, 0xb5, 0x47, 0x87, 0x53, 0xb7, 0xdd, 0x77, 0xda,
+	0x5d, 0xcb, 0x1a, 0x5b, 0x93, 0xc2, 0x02, 0xb6, 0x16, 0xf2, 0x10, 0xf3, 0x26, 0xd4, 0x5c, 0x7c,
+	0x6c, 0x6d, 0x1f, 0x4e, 0xdd, 0x4d, 0xe7, 0x1e, 0xda, 0x91, 0x0d, 0xc8, 0x4c, 0x2c, 0xea, 0x17,
+	0x68, 0x97, 0x73, 0xb3, 0x3d, 0x08, 0x19, 0xa7, 0x27, 0xd6, 0x18, 0x0b, 0xc8, 0x0d, 0x48, 0xef,
+	0x0d, 0x1e, 0x59, 0xd3, 0x03, 0xab, 0x5b, 0x48, 0xe9, 0x4a, 0x69, 0xb1, 0x7c, 0x51, 0xb4, 0xf2,
+	0x27, 0x78, 0xf5, 0xae, 0x33, 0x74, 0x26, 0xa6, 0x0f, 0x26, 0xaf, 0x41, 0x66, 0xea, 0x8c, 0x2c,
+	0xa6, 0xf6, 0x34, 0x06, 0xdb, 0x2b, 0xf3, 0x2d, 0x77, 0x9c, 0x91, 0xe5, 0x79, 0x35, 0xcf, 0x82,
+	0x5c, 0x64, 0xdd, 0xdd, 0xa3, 0xc9, 0x44, 0x01, 0xf0, 0xc2, 0x87, 0x76, 0x0a, 0x93, 0x0b, 0xb2,
+	0x42, 0x3b, 0xd5, 0xef, 0xd1, 0x33, 0x5b, 0x21, 0x8b, 0xb9, 0xbc, 0xff, 0xbe, 0xf2, 0x12, 0x64,
+	0x7c, 0xc2, 0xc0, 0x1d, 0x32, 0x17, 0x94, 0x41, 0x0f, 0xc1, 0xdc, 0x21, 0xf3, 0x3f, 0xcf, 0x43,
+	0x02, 0x3b, 0x4e, 0x23, 0x97, 0x59, 0xa7, 0x81, 0x32, 0x03, 0x89, 0x4d, 0xb3, 0x5e, 0x6f, 0x6a,
+	0x0a, 0xc6, 0xcc, 0x07, 0x6f, 0xd7, 0x35, 0x55, 0xd0, 0xef, 0x6f, 0xab, 0x10, 0xab, 0x1f, 0xa1,
+	0x72, 0xba, 0x1d, 0xb7, 0xe3, 0xed, 0x70, 0xfa, 0x4c, 0x6a, 0x90, 0x19, 0x75, 0xbc, 0xb6, 0x54,
+	0x9c, 0xe2, 0x90, 0x2f, 0xa9, 0x1f, 0xb9, 0xab, 0xdb, 0x1d, 0xd6, 0x72, 0xdd, 0x76, 0x27, 0xc7,
+	0x66, 0x7a, 0xc4, 0x5f, 0x57, 0x5e, 0x85, 0x85, 0x50, 0x95, 0xb8, 0x45, 0x13, 0x73, 0xb6, 0x68,
+	0x82, 0x6f, 0xd1, 0x9a, 0x7a, 0x53, 0x29, 0xd7, 0x20, 0x3e, 0x72, 0x26, 0x16, 0x79, 0x66, 0xee,
+	0x04, 0x17, 0xfa, 0x28, 0x99, 0x7c, 0xa4, 0x2b, 0x26, 0xda, 0x94, 0x5f, 0x84, 0xb8, 0x6b, 0x1d,
+	0xb9, 0x4f, 0xb2, 0x3d, 0x60, 0xe3, 0xa3, 0x90, 0xf2, 0xcb, 0x90, 0xb4, 0x0f, 0x47, 0x7b, 0xd6,
+	0xe4, 0x49, 0xe0, 0x01, 0x76, 0x8c, 0x83, 0x8a, 0xef, 0x80, 0x76, 0xd7, 0x19, 0x8d, 0x87, 0xd6,
+	0x51, 0xfd, 0xc8, 0xb5, 0xec, 0xe9, 0xc0, 0xb1, 0xe9, 0x18, 0x7a, 0x83, 0x09, 0xba, 0x35, 0x1c,
+	0x03, 0xbe, 0x50, 0x37, 0x33, 0xb5, 0xf6, 0x1d, 0xbb, 0xcb, 0x87, 0xc6, 0xdf, 0x28, 0xda, 0x3d,
+	0x18, 0x4c, 0xa8, 0x47, 0xa3, 0xc1, 0x87, 0xbd, 0x14, 0x37, 0x21, 0xcf, 0xd3, 0xb0, 0x29, 0x6f,
+	0xb8, 0x78, 0x0d, 0x72, 0x5e, 0x11, 0xfe, 0xf3, 0x93, 0x86, 0xf8, 0x7b, 0x75, 0xb3, 0xa5, 0x9d,
+	0xa1, 0xeb, 0xda, 0x6a, 0xd6, 0x35, 0x85, 0x3e, 0xec, 0xbe, 0xdb, 0x0a, 0xad, 0xe5, 0xb3, 0x90,
+	0xf3, 0xfb, 0xbe, 0x63, 0xb9, 0x58, 0x43, 0xa3, 0x54, 0xaa, 0xa6, 0xa6, 0x95, 0x62, 0x0a, 0x12,
+	0xf5, 0xd1, 0xd8, 0x3d, 0x2e, 0xfe, 0x12, 0x64, 0x39, 0xe8, 0xc1, 0x60, 0xea, 0x92, 0x5b, 0x90,
+	0x1a, 0xf1, 0xf1, 0x2a, 0x78, 0x16, 0x0d, 0xcb, 0x3a, 0x40, 0x7a, 0xcf, 0xa6, 0x87, 0x5f, 0xa9,
+	0x40, 0x4a, 0x70, 0xef, 0xdc, 0xf3, 0xa8, 0xa2, 0xe7, 0x61, 0x3e, 0x2a, 0x26, 0xf8, 0xa8, 0xe2,
+	0x36, 0xa4, 0x58, 0x60, 0x9e, 0xe2, 0x71, 0x83, 0xe5, 0xef, 0x4c, 0x63, 0x4c, 0x7c, 0x59, 0x56,
+	0xc6, 0xce, 0x50, 0x57, 0x20, 0x8b, 0x7b, 0xc6, 0x57, 0x21, 0xf5, 0xe6, 0x80, 0x45, 0x4c, 0xf1,
+	0x7f, 0x94, 0x80, 0xb4, 0x37, 0x57, 0xe4, 0x22, 0x24, 0x59, 0x12, 0x8b, 0x54, 0xde, 0xa5, 0x4e,
+	0x02, 0xd3, 0x56, 0x72, 0x11, 0x52, 0x3c, 0x51, 0xe5, 0x01, 0x47, 0xad, 0x94, 0xcd, 0x24, 0x4b,
+	0x4c, 0xfd, 0xca, 0xaa, 0x81, 0x7e, 0x92, 0x5d, 0xd7, 0x24, 0x59, 0xea, 0x49, 0x74, 0xc8, 0xf8,
+	0xc9, 0x26, 0x86, 0x08, 0x7e, 0x37, 0x93, 0xf6, 0xb2, 0x4b, 0x01, 0x51, 0x35, 0xd0, 0x81, 0xf2,
+	0x8b, 0x98, 0x74, 0x23, 0x38, 0x37, 0xa5, 0xbd, 0x94, 0x11, 0xff, 0x79, 0xf2, 0x6e, 0x5d, 0x52,
+	0x3c, 0x49, 0x0c, 0x00, 0x55, 0x03, 0x3d, 0x93, 0x77, 0xc5, 0x92, 0xe2, 0x89, 0x20, 0xb9, 0x42,
+	0xbb, 0x88, 0x89, 0x1d, 0xfa, 0x9f, 0xe0, 0x3e, 0x25, 0xc9, 0xd2, 0x3d, 0x72, 0x95, 0x32, 0xb0,
+	0xec, 0x0d, 0x5d, 0x43, 0x70, 0x79, 0x92, 0xe2, 0x49, 0x1d, 0xb9, 0x4e, 0x21, 0x6c, 0xfa, 0x0b,
+	0xf0, 0x84, 0x9b, 0x92, 0x14, 0xbf, 0x29, 0x21, 0x3a, 0x6d, 0x10, 0x3d, 0x14, 0x7a, 0x25, 0xe1,
+	0x56, 0x24, 0xc9, 0x6e, 0x45, 0xc8, 0x65, 0xa4, 0x63, 0x83, 0xca, 0x05, 0x37, 0x20, 0x29, 0x9e,
+	0x05, 0x06, 0xf5, 0x78, 0x96, 0xf4, 0x6f, 0x3b, 0x52, 0x3c, 0xcf, 0x23, 0x37, 0xe9, 0x7a, 0x51,
+	0x85, 0x17, 0x16, 0xd1, 0x17, 0xaf, 0x88, 0xd2, 0xf3, 0x56, 0x95, 0xb9, 0xe2, 0x1a, 0x73, 0x63,
+	0x66, 0xa2, 0x81, 0x3b, 0x62, 0x85, 0x5a, 0x3e, 0x1c, 0xd8, 0xbd, 0x42, 0x1e, 0xe7, 0x22, 0x36,
+	0xb0, 0x7b, 0x66, 0xa2, 0x41, 0x4b, 0x98, 0x0a, 0x9a, 0xb4, 0x4e, 0xc3, 0xba, 0xf8, 0xcb, 0xac,
+	0x92, 0x16, 0x91, 0x02, 0x24, 0x1a, 0xed, 0x66, 0xc7, 0x2e, 0x2c, 0x31, 0x3b, 0xbb, 0x63, 0x9b,
+	0xf1, 0x46, 0xb3, 0x63, 0x93, 0x17, 0x21, 0x36, 0x3d, 0xdc, 0x2b, 0x90, 0xd9, 0xbf, 0x05, 0x77,
+	0x0e, 0xf7, 0xbc, 0xce, 0x98, 0x14, 0x43, 0x2e, 0x42, 0x7a, 0xea, 0x4e, 0xda, 0xbf, 0x60, 0x4d,
+	0x9c, 0xc2, 0x59, 0x9c, 0xc6, 0x33, 0x66, 0x6a, 0xea, 0x4e, 0xde, 0xb3, 0x26, 0xce, 0x09, 0x7d,
+	0x70, 0xf1, 0x32, 0x64, 0x05, 0x5e, 0x92, 0x07, 0xc5, 0x66, 0x07, 0x98, 0x9a, 0x72, 0xc3, 0x54,
+	0xec, 0xe2, 0x3b, 0x90, 0xf3, 0x52, 0x2c, 0x1c, 0xb1, 0x41, 0x77, 0xd3, 0xd0, 0x99, 0xe0, 0x2e,
+	0x5d, 0x2c, 0x5f, 0x0e, 0x47, 0xcc, 0x00, 0xc8, 0x23, 0x17, 0x03, 0x17, 0xb5, 0x48, 0x67, 0x94,
+	0xe2, 0x0f, 0x14, 0xc8, 0x6d, 0x3b, 0x93, 0xe0, 0xff, 0x8b, 0x65, 0x48, 0xec, 0x39, 0xce, 0x70,
+	0x8a, 0xc4, 0x69, 0x93, 0xbd, 0x90, 0xe7, 0x21, 0x87, 0x0f, 0x5e, 0x92, 0xac, 0xfa, 0xb7, 0x40,
+	0x59, 0x2c, 0xe7, 0x79, 0x31, 0x81, 0xf8, 0xc0, 0x76, 0xa7, 0xdc, 0xa3, 0xe1, 0x33, 0xf9, 0x02,
+	0x64, 0xe9, 0xaf, 0x67, 0x19, 0xf7, 0x4f, 0xd3, 0x40, 0x8b, 0xb9, 0xe1, 0x0b, 0xb0, 0x80, 0x1a,
+	0xf0, 0x61, 0x29, 0xff, 0xc6, 0x27, 0xc7, 0x2a, 0x38, 0xb0, 0x00, 0x29, 0xe6, 0x10, 0xa6, 0xf8,
+	0x87, 0x6f, 0xc6, 0xf4, 0x5e, 0xa9, 0x9b, 0xc5, 0x44, 0x85, 0x9d, 0x40, 0x52, 0x26, 0x7f, 0x2b,
+	0xde, 0x85, 0x34, 0x86, 0xcb, 0xd6, 0xb0, 0x4b, 0x9e, 0x03, 0xa5, 0x5f, 0xb0, 0x30, 0x5c, 0x9f,
+	0x0b, 0x65, 0x21, 0x1c, 0xb0, 0xba, 0x69, 0x2a, 0xfd, 0x95, 0x25, 0x50, 0x36, 0x69, 0x5a, 0x70,
+	0xc4, 0x1d, 0xb6, 0x72, 0x54, 0x7c, 0x8b, 0x93, 0x34, 0xad, 0xc7, 0x72, 0x92, 0xa6, 0xf5, 0x98,
+	0x91, 0x5c, 0x99, 0x21, 0xa1, 0x6f, 0xc7, 0xfc, 0x3f, 0x70, 0xe5, 0xb8, 0x58, 0x81, 0x05, 0xdc,
+	0xa8, 0x03, 0xbb, 0xff, 0xd0, 0x19, 0xd8, 0x98, 0x88, 0xf4, 0xf0, 0x00, 0xa7, 0x98, 0x4a, 0x8f,
+	0xae, 0x83, 0x75, 0xd4, 0xd9, 0x67, 0xc7, 0xe1, 0xb4, 0xc9, 0x5e, 0x8a, 0xdf, 0x8f, 0xc3, 0x22,
+	0x77, 0xb2, 0xef, 0x0e, 0xdc, 0x83, 0xed, 0xce, 0x98, 0x34, 0x21, 0x47, 0xfd, 0x6b, 0x7b, 0xd4,
+	0x19, 0x8f, 0xe9, 0x46, 0x56, 0x30, 0x34, 0x5f, 0x9f, 0xe3, 0xb6, 0xb9, 0xc5, 0x6a, 0xb3, 0x33,
+	0xb2, 0xb6, 0x19, 0x9a, 0x05, 0xea, 0xac, 0x1d, 0x94, 0x90, 0xfb, 0x90, 0x1d, 0x4d, 0xfb, 0x3e,
+	0x1d, 0x8b, 0xf4, 0xd7, 0x24, 0x74, 0xdb, 0xd3, 0x7e, 0x88, 0x0d, 0x46, 0x7e, 0x01, 0xed, 0x1c,
+	0xf5, 0xce, 0x3e, 0x5b, 0xec, 0xa9, 0x9d, 0xa3, 0xae, 0x24, 0xdc, 0xb9, 0xbd, 0xa0, 0x84, 0x34,
+	0x00, 0xe8, 0x56, 0x73, 0x1d, 0x9a, 0xe1, 0xa1, 0x96, 0xb2, 0xe5, 0x92, 0x84, 0x6d, 0xc7, 0x9d,
+	0xec, 0x3a, 0x3b, 0xee, 0x84, 0x1f, 0x48, 0xa6, 0xfc, 0x75, 0xe5, 0x75, 0xd0, 0xa2, 0xb3, 0xf0,
+	0xb4, 0x33, 0x49, 0x46, 0x38, 0x93, 0xac, 0xfc, 0x2c, 0xe4, 0x23, 0xc3, 0x16, 0xcd, 0x09, 0x33,
+	0x7f, 0x45, 0x34, 0xcf, 0x96, 0x2f, 0x84, 0xbe, 0xd1, 0x10, 0x97, 0x5e, 0x64, 0x7e, 0x1d, 0xb4,
+	0xe8, 0x14, 0x88, 0xd4, 0x69, 0x49, 0x42, 0x83, 0xf6, 0xaf, 0xc2, 0x42, 0x68, 0xd0, 0xa2, 0x71,
+	0xe6, 0x29, 0xc3, 0x2a, 0xfe, 0x4a, 0x02, 0x12, 0x2d, 0xdb, 0x72, 0x7a, 0xe4, 0x7c, 0x38, 0x76,
+	0xbe, 0x79, 0xc6, 0x8b, 0x9b, 0x17, 0x22, 0x71, 0xf3, 0xcd, 0x33, 0x7e, 0xd4, 0xbc, 0x10, 0x89,
+	0x9a, 0x5e, 0x55, 0xd5, 0x20, 0x97, 0x66, 0x62, 0xe6, 0x9b, 0x67, 0x84, 0x80, 0x79, 0x69, 0x26,
+	0x60, 0x06, 0xd5, 0x55, 0x83, 0x3a, 0xd8, 0x70, 0xb4, 0x7c, 0xf3, 0x4c, 0x10, 0x29, 0x2f, 0x46,
+	0x23, 0xa5, 0x5f, 0x59, 0x35, 0x58, 0x97, 0x84, 0x28, 0x89, 0x5d, 0x62, 0xf1, 0xf1, 0x62, 0x34,
+	0x3e, 0xa2, 0x1d, 0x8f, 0x8c, 0x17, 0xa3, 0x91, 0x11, 0x2b, 0x79, 0x24, 0xbc, 0x10, 0x89, 0x84,
+	0x48, 0xca, 0x42, 0xe0, 0xc5, 0x68, 0x08, 0x64, 0x76, 0x42, 0x4f, 0xc5, 0xf8, 0xe7, 0x57, 0x56,
+	0x0d, 0x62, 0x44, 0x82, 0x9f, 0x2c, 0x11, 0xc1, 0xd5, 0xc0, 0x30, 0x50, 0xa5, 0x13, 0xe7, 0x1d,
+	0x50, 0xf3, 0xd2, 0x4f, 0x58, 0x70, 0x46, 0xbd, 0x03, 0x9a, 0x01, 0xa9, 0x1e, 0xcf, 0xd5, 0x35,
+	0xf4, 0x64, 0x21, 0x71, 0xa2, 0x04, 0x56, 0x1b, 0x6d, 0xf4, 0x68, 0x74, 0x74, 0x3d, 0x96, 0x70,
+	0x94, 0x60, 0xa1, 0xd1, 0x7e, 0xd0, 0x99, 0xf4, 0x29, 0x74, 0xb7, 0xd3, 0xf7, 0x6f, 0x3d, 0xa8,
+	0x0a, 0xb2, 0x0d, 0x5e, 0xb3, 0xdb, 0xe9, 0x93, 0x73, 0x9e, 0xc4, 0xba, 0x58, 0xab, 0x70, 0x91,
+	0xad, 0x9c, 0xa7, 0x53, 0xc7, 0xc8, 0xd0, 0x37, 0x2e, 0x71, 0xdf, 0x78, 0x27, 0x05, 0x89, 0x43,
+	0x7b, 0xe0, 0xd8, 0x77, 0x32, 0x90, 0x72, 0x9d, 0xc9, 0xa8, 0xe3, 0x3a, 0xc5, 0x1f, 0x2a, 0x00,
+	0x77, 0x9d, 0xd1, 0xe8, 0xd0, 0x1e, 0xbc, 0x7f, 0x68, 0x91, 0xcb, 0x90, 0x1d, 0x75, 0x1e, 0x59,
+	0xed, 0x91, 0xd5, 0xde, 0x9f, 0x78, 0xbb, 0x21, 0x43, 0x8b, 0xb6, 0xad, 0xbb, 0x93, 0x63, 0x52,
+	0xf0, 0x0e, 0xf0, 0xa8, 0x20, 0x14, 0x26, 0x3f, 0xd0, 0x2f, 0xf3, 0xe3, 0x68, 0x92, 0xaf, 0xa4,
+	0x77, 0x20, 0x65, 0x49, 0x4e, 0x8a, 0xaf, 0x21, 0x4b, 0x73, 0xce, 0x43, 0xd2, 0xb5, 0x46, 0xe3,
+	0xf6, 0x3e, 0x0a, 0x86, 0x8a, 0x22, 0x41, 0xdf, 0xef, 0x92, 0x57, 0x20, 0xb6, 0xef, 0x0c, 0x51,
+	0x2a, 0x4f, 0x5d, 0x1d, 0x8a, 0x24, 0x2f, 0x40, 0x6c, 0x34, 0x65, 0xf2, 0xc9, 0x96, 0xcf, 0x86,
+	0x4e, 0x10, 0x2c, 0x64, 0x51, 0xe0, 0x68, 0xda, 0xf7, 0xc7, 0x7e, 0x2d, 0x0f, 0xb1, 0x46, 0xab,
+	0x45, 0x4f, 0x05, 0x8d, 0x56, 0x6b, 0x5d, 0x53, 0x6a, 0xeb, 0x90, 0xee, 0x4f, 0x2c, 0x8b, 0x3a,
+	0x8a, 0x27, 0x65, 0x25, 0x5f, 0xc6, 0x28, 0xe8, 0xc3, 0x6a, 0x6f, 0x41, 0x6a, 0x9f, 0xe5, 0x25,
+	0xe4, 0x89, 0x39, 0x78, 0xe1, 0x8f, 0xd9, 0x5d, 0xd0, 0xb3, 0x22, 0x20, 0x9a, 0xcd, 0x98, 0x1e,
+	0x4f, 0x6d, 0x17, 0x32, 0x93, 0xf6, 0xd3, 0x49, 0x3f, 0x64, 0x91, 0x47, 0x4e, 0x9a, 0x9e, 0xf0,
+	0xa2, 0xda, 0x26, 0x2c, 0xd9, 0x8e, 0xf7, 0x97, 0x54, 0xbb, 0xcb, 0xf7, 0xdd, 0xbc, 0x23, 0x9f,
+	0xd7, 0x80, 0xc5, 0xfe, 0xd8, 0xb6, 0x1d, 0x5e, 0xc1, 0xf6, 0x6a, 0xad, 0x0e, 0x9a, 0x40, 0xd4,
+	0x63, 0x9b, 0x5b, 0xc6, 0xd3, 0x63, 0xff, 0xa5, 0xfb, 0x3c, 0xe8, 0x0f, 0x22, 0x34, 0x7c, 0xc7,
+	0xca, 0x68, 0xfa, 0xec, 0xd3, 0x04, 0x9f, 0x06, 0x9d, 0xe0, 0x2c, 0x0d, 0xf5, 0x5f, 0x32, 0x9a,
+	0x03, 0xf6, 0xdd, 0x82, 0x48, 0x53, 0x35, 0x22, 0xb3, 0x73, 0x78, 0x82, 0xee, 0x0c, 0xd8, 0x87,
+	0x07, 0x3e, 0x0f, 0x73, 0x8f, 0x73, 0x88, 0x9e, 0xd6, 0xa1, 0x2f, 0xb3, 0xaf, 0x12, 0x42, 0x44,
+	0x33, 0x3d, 0x9a, 0x9e, 0xa0, 0x47, 0x8f, 0xd8, 0x47, 0x00, 0x3e, 0xd1, 0xce, 0xbc, 0x1e, 0x4d,
+	0x4f, 0xd0, 0xa3, 0x21, 0xfb, 0x40, 0x20, 0x44, 0x54, 0x35, 0x6a, 0x5b, 0x40, 0xc4, 0x85, 0xe7,
+	0xb1, 0x44, 0xca, 0x34, 0x62, 0x1f, 0x7e, 0x04, 0x4b, 0xcf, 0x8c, 0xe6, 0x51, 0x3d, 0xad, 0x53,
+	0x36, 0xfb, 0x2a, 0x24, 0x4c, 0x55, 0x35, 0x6a, 0xf7, 0xe1, 0xac, 0x38, 0xbc, 0x13, 0x75, 0xcb,
+	0x61, 0x9f, 0x34, 0x04, 0x03, 0xe4, 0x56, 0x73, 0xc9, 0x9e, 0xd6, 0xb1, 0x31, 0xfb, 0xdc, 0x21,
+	0x42, 0x56, 0x35, 0x6a, 0x77, 0x21, 0x2f, 0x90, 0xed, 0x61, 0x16, 0x2c, 0x23, 0x7a, 0x9f, 0x7d,
+	0xa4, 0xe3, 0x13, 0xd1, 0xf8, 0x1f, 0x5d, 0x3d, 0x16, 0x11, 0xa5, 0x34, 0x13, 0xf6, 0x8d, 0x49,
+	0xd0, 0x1f, 0xb4, 0x89, 0x6c, 0x94, 0x3d, 0x16, 0x3e, 0x65, 0x3c, 0x53, 0xf6, 0xfd, 0x49, 0xd0,
+	0x1d, 0x6a, 0x52, 0x1b, 0x85, 0x06, 0x65, 0xd1, 0xa0, 0x28, 0x65, 0x71, 0xd1, 0x7f, 0x97, 0x24,
+	0x90, 0x55, 0xf1, 0xb2, 0x45, 0x18, 0x3e, 0x7d, 0xad, 0xdd, 0x87, 0xc5, 0xd3, 0xb8, 0xac, 0x0f,
+	0x15, 0x96, 0x79, 0x57, 0x56, 0x69, 0x72, 0x6e, 0x2e, 0x74, 0x43, 0x9e, 0x6b, 0x13, 0x16, 0x4e,
+	0xe1, 0xb6, 0x3e, 0x52, 0x58, 0xfe, 0x4a, 0xb9, 0xcc, 0x5c, 0x37, 0xec, 0xbb, 0x16, 0x4e, 0xe1,
+	0xb8, 0x3e, 0x56, 0xd8, 0x85, 0x87, 0x51, 0xf6, 0x69, 0x3c, 0xdf, 0xb5, 0x70, 0x0a, 0xc7, 0xf5,
+	0x09, 0xcb, 0x4f, 0x55, 0xa3, 0x22, 0xd2, 0xa0, 0xa7, 0x58, 0x3c, 0x8d, 0xe3, 0xfa, 0x54, 0xc1,
+	0x0b, 0x10, 0xd5, 0x30, 0xfc, 0xf9, 0xf1, 0x7d, 0xd7, 0xe2, 0x69, 0x1c, 0xd7, 0x57, 0x15, 0xbc,
+	0x28, 0x51, 0x8d, 0x8d, 0x10, 0x51, 0xb8, 0x47, 0x27, 0x71, 0x5c, 0x5f, 0x53, 0xf0, 0xf6, 0x42,
+	0x35, 0xaa, 0x3e, 0xd1, 0xce, 0x4c, 0x8f, 0x4e, 0xe2, 0xb8, 0xbe, 0x8e, 0xd9, 0x40, 0x4d, 0x35,
+	0x6e, 0x84, 0x88, 0xd0, 0x77, 0xe5, 0x4f, 0xe5, 0xb8, 0xbe, 0xa1, 0xe0, 0x45, 0x93, 0x6a, 0xdc,
+	0x34, 0xbd, 0x1e, 0x04, 0xbe, 0x2b, 0x7f, 0x2a, 0xc7, 0xf5, 0x4d, 0x05, 0x6f, 0xa4, 0x54, 0xe3,
+	0x56, 0x98, 0x0a, 0x7d, 0x97, 0x76, 0x3a, 0xc7, 0xf5, 0x99, 0x82, 0xdf, 0x9f, 0xa8, 0x1b, 0x6b,
+	0xa6, 0xd7, 0x09, 0xc1, 0x77, 0x69, 0xa7, 0x73, 0x5c, 0xdf, 0x52, 0xf0, 0xa3, 0x14, 0x75, 0x63,
+	0x3d, 0x42, 0x56, 0x35, 0x6a, 0x75, 0xc8, 0x9d, 0xdc, 0x71, 0x7d, 0x5b, 0xbc, 0xef, 0xcb, 0x76,
+	0x05, 0xef, 0xf5, 0x9e, 0xb0, 0x7e, 0x27, 0x70, 0x5d, 0xdf, 0xc1, 0xac, 0xa9, 0xf6, 0xcc, 0x9b,
+	0xec, 0x56, 0x8c, 0x99, 0xbc, 0xd4, 0xb5, 0x7a, 0xaf, 0xf5, 0x1c, 0x27, 0x58, 0x52, 0xe6, 0xd0,
+	0x5a, 0xc1, 0xee, 0x39, 0x81, 0x37, 0xfb, 0xae, 0x82, 0x97, 0x68, 0x39, 0x4e, 0x8d, 0x16, 0xfe,
+	0x3e, 0x62, 0xae, 0xcd, 0x0e, 0xc6, 0xfc, 0x74, 0xbf, 0xf6, 0x3d, 0xe5, 0x74, 0x8e, 0xad, 0x16,
+	0x6b, 0x35, 0xeb, 0xfe, 0xe4, 0x60, 0xc9, 0x1b, 0x10, 0x3f, 0x2a, 0xaf, 0xad, 0x87, 0x8f, 0x78,
+	0xe2, 0x1d, 0x32, 0x73, 0x67, 0xd9, 0xf2, 0x52, 0xe8, 0xb2, 0x7d, 0x34, 0x76, 0x8f, 0x4d, 0xb4,
+	0xe4, 0x0c, 0x65, 0x09, 0xc3, 0x47, 0x52, 0x86, 0x32, 0x67, 0xa8, 0x48, 0x18, 0x3e, 0x96, 0x32,
+	0x54, 0x38, 0x83, 0x21, 0x61, 0xf8, 0x44, 0xca, 0x60, 0x70, 0x86, 0x0d, 0x09, 0xc3, 0xa7, 0x52,
+	0x86, 0x0d, 0xce, 0x50, 0x95, 0x30, 0x7c, 0x55, 0xca, 0x50, 0xe5, 0x0c, 0x37, 0x24, 0x0c, 0x5f,
+	0x93, 0x32, 0xdc, 0xe0, 0x0c, 0x37, 0x25, 0x0c, 0x5f, 0x97, 0x32, 0xdc, 0xe4, 0x0c, 0xb7, 0x24,
+	0x0c, 0xdf, 0x90, 0x32, 0xdc, 0x62, 0x0c, 0xeb, 0x6b, 0x12, 0x86, 0x6f, 0xca, 0x18, 0xd6, 0xd7,
+	0x38, 0x83, 0x4c, 0x93, 0x9f, 0x49, 0x19, 0xb8, 0x26, 0xd7, 0x65, 0x9a, 0xfc, 0x96, 0x94, 0x81,
+	0x6b, 0x72, 0x5d, 0xa6, 0xc9, 0x6f, 0x4b, 0x19, 0xb8, 0x26, 0xd7, 0x65, 0x9a, 0xfc, 0x8e, 0x94,
+	0x81, 0x6b, 0x72, 0x5d, 0xa6, 0xc9, 0xef, 0x4a, 0x19, 0xb8, 0x26, 0xd7, 0x65, 0x9a, 0xfc, 0x9e,
+	0x94, 0x81, 0x6b, 0x72, 0x5d, 0xa6, 0xc9, 0x3f, 0x91, 0x32, 0x70, 0x4d, 0xae, 0xcb, 0x34, 0xf9,
+	0xa7, 0x52, 0x06, 0xae, 0xc9, 0x75, 0x99, 0x26, 0xff, 0x4c, 0xca, 0xc0, 0x35, 0x59, 0x96, 0x69,
+	0xf2, 0xfb, 0x32, 0x86, 0x32, 0xd7, 0x64, 0x59, 0xa6, 0xc9, 0x3f, 0x97, 0x32, 0x70, 0x4d, 0x96,
+	0x65, 0x9a, 0xfc, 0x0b, 0x29, 0x03, 0xd7, 0x64, 0x59, 0xa6, 0xc9, 0x1f, 0x48, 0x19, 0xb8, 0x26,
+	0xcb, 0x32, 0x4d, 0xfe, 0xa5, 0x94, 0x81, 0x6b, 0xb2, 0x2c, 0xd3, 0xe4, 0x5f, 0x49, 0x19, 0xb8,
+	0x26, 0xcb, 0x32, 0x4d, 0xfe, 0xb5, 0x94, 0x81, 0x6b, 0xb2, 0x2c, 0xd3, 0xe4, 0xdf, 0x48, 0x19,
+	0xb8, 0x26, 0xcb, 0x32, 0x4d, 0xfe, 0xad, 0x94, 0x81, 0x6b, 0xb2, 0x2c, 0xd3, 0xe4, 0xdf, 0x49,
+	0x19, 0xb8, 0x26, 0x2b, 0x32, 0x4d, 0xfe, 0xbd, 0x8c, 0xa1, 0xc2, 0x35, 0x59, 0x91, 0x69, 0xf2,
+	0x1f, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0xff, 0x51, 0xca, 0xc0, 0x35, 0x59, 0x91, 0x69,
+	0xf2, 0x9f, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0xff, 0x59, 0xca, 0xc0, 0x35, 0x59, 0x91,
+	0x69, 0xf2, 0x5f, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0xff, 0x55, 0xca, 0xc0, 0x35, 0x59,
+	0x91, 0x69, 0xf2, 0xdf, 0xa4, 0x0c, 0x5c, 0x93, 0x15, 0x99, 0x26, 0x7f, 0x28, 0x65, 0xe0, 0x9a,
+	0xac, 0xc8, 0x34, 0xf9, 0xef, 0x52, 0x06, 0xae, 0x49, 0x43, 0xa6, 0xc9, 0xff, 0x90, 0x31, 0x18,
+	0x5c, 0x93, 0x86, 0x4c, 0x93, 0xff, 0x29, 0x65, 0xe0, 0x9a, 0x34, 0x64, 0x9a, 0xfc, 0x2f, 0x29,
+	0x03, 0xd7, 0xa4, 0x21, 0xd3, 0xe4, 0x7f, 0x4b, 0x19, 0xb8, 0x26, 0x0d, 0x99, 0x26, 0xff, 0x47,
+	0xca, 0xc0, 0x35, 0x69, 0xc8, 0x34, 0xf9, 0xbf, 0x52, 0x06, 0xae, 0x49, 0x43, 0xa6, 0xc9, 0x1f,
+	0x49, 0x19, 0xb8, 0x26, 0x0d, 0x99, 0x26, 0x7f, 0x2c, 0x65, 0xe0, 0x9a, 0x34, 0x64, 0x9a, 0xfc,
+	0x89, 0x94, 0x81, 0x6b, 0xd2, 0x90, 0x69, 0xf2, 0xa7, 0x52, 0x06, 0xae, 0xc9, 0x0d, 0x99, 0x26,
+	0xff, 0x4f, 0xc6, 0xb0, 0xb1, 0xf6, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x90, 0x52, 0x25, 0x40,
+	0x58, 0x3d, 0x00, 0x00,
 }

+ 1 - 1
proto/test_proto/test.proto

@@ -354,7 +354,7 @@ extend DefaultsMessage {
   optional sfixed32 default_sfixed32 = 211 [default = 50];
   optional sfixed64 default_sfixed64 = 212 [default = 51];
   optional bool default_bool = 213 [default = true];
-  optional string default_string = 214 [default = "Hello, string"];
+  optional string default_string = 214 [default = "Hello, string,def=foo"];
   optional bytes default_bytes = 215 [default = "Hello, bytes"];
   optional DefaultsMessage.DefaultsEnum default_enum = 216 [default = ONE];
 }

+ 2 - 2
protoc-gen-go/descriptor/Makefile

@@ -33,5 +33,5 @@
 # at src/google/protobuf/descriptor.proto
 regenerate:
 	@echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION
-	cp $(HOME)/src/protobuf/include/google/protobuf/descriptor.proto .
-	protoc --go_out=../../../../.. -I$(HOME)/src/protobuf/include $(HOME)/src/protobuf/include/google/protobuf/descriptor.proto
+	cp $(HOME)/src/protobuf/src/google/protobuf/descriptor.proto .
+	protoc --go_out=../../../../.. -I$(HOME)/src/protobuf/src $(HOME)/src/protobuf/src/google/protobuf/descriptor.proto

+ 2 - 2
protoc-gen-go/generator/generator.go

@@ -1775,9 +1775,9 @@ func (g *Generator) GoType(message *Descriptor, field *descriptor.FieldDescripto
 }
 
 func (g *Generator) RecordTypeUse(t string) {
-	if obj, ok := g.typeNameToObject[t]; ok {
+	if _, ok := g.typeNameToObject[t]; ok {
 		// Call ObjectNamed to get the true object to record the use.
-		obj = g.ObjectNamed(t)
+		obj := g.ObjectNamed(t)
 		g.usedPackages[obj.PackageName()] = true
 	}
 }

+ 2 - 2
protoc-gen-go/plugin/Makefile

@@ -34,9 +34,9 @@
 # Also we need to fix an import.
 regenerate:
 	@echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION
-	cp $(HOME)/src/protobuf/include/google/protobuf/compiler/plugin.proto .
+	cp $(HOME)/src/protobuf/src/google/protobuf/compiler/plugin.proto .
 	protoc --go_out=Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor:../../../../.. \
-		-I$(HOME)/src/protobuf/include $(HOME)/src/protobuf/include/google/protobuf/compiler/plugin.proto
+		-I$(HOME)/src/protobuf/src $(HOME)/src/protobuf/src/google/protobuf/compiler/plugin.proto
 
 restore:
 	cp plugin.pb.golden plugin.pb.go