// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: test_objects.proto

package jsonpb

import (
	fmt "fmt"
	proto "github.com/gogo/protobuf/proto"
	types "github.com/gogo/protobuf/types"
	math "math"
)

// 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.GoGoProtoPackageIsVersion2 // please upgrade the proto package

type Widget_Color int32

const (
	Widget_RED   Widget_Color = 0
	Widget_GREEN Widget_Color = 1
	Widget_BLUE  Widget_Color = 2
)

var Widget_Color_name = map[int32]string{
	0: "RED",
	1: "GREEN",
	2: "BLUE",
}

var Widget_Color_value = map[string]int32{
	"RED":   0,
	"GREEN": 1,
	"BLUE":  2,
}

func (x Widget_Color) Enum() *Widget_Color {
	p := new(Widget_Color)
	*p = x
	return p
}

func (x Widget_Color) String() string {
	return proto.EnumName(Widget_Color_name, int32(x))
}

func (x *Widget_Color) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(Widget_Color_value, data, "Widget_Color")
	if err != nil {
		return err
	}
	*x = Widget_Color(value)
	return nil
}

func (Widget_Color) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{3, 0}
}

// Test message for holding primitive types.
type Simple struct {
	OBool                *bool    `protobuf:"varint,1,opt,name=o_bool,json=oBool" json:"o_bool,omitempty"`
	OInt32               *int32   `protobuf:"varint,2,opt,name=o_int32,json=oInt32" json:"o_int32,omitempty"`
	OInt32Str            *int32   `protobuf:"varint,3,opt,name=o_int32_str,json=oInt32Str" json:"o_int32_str,omitempty"`
	OInt64               *int64   `protobuf:"varint,4,opt,name=o_int64,json=oInt64" json:"o_int64,omitempty"`
	OInt64Str            *int64   `protobuf:"varint,5,opt,name=o_int64_str,json=oInt64Str" json:"o_int64_str,omitempty"`
	OUint32              *uint32  `protobuf:"varint,6,opt,name=o_uint32,json=oUint32" json:"o_uint32,omitempty"`
	OUint32Str           *uint32  `protobuf:"varint,7,opt,name=o_uint32_str,json=oUint32Str" json:"o_uint32_str,omitempty"`
	OUint64              *uint64  `protobuf:"varint,8,opt,name=o_uint64,json=oUint64" json:"o_uint64,omitempty"`
	OUint64Str           *uint64  `protobuf:"varint,9,opt,name=o_uint64_str,json=oUint64Str" json:"o_uint64_str,omitempty"`
	OSint32              *int32   `protobuf:"zigzag32,10,opt,name=o_sint32,json=oSint32" json:"o_sint32,omitempty"`
	OSint32Str           *int32   `protobuf:"zigzag32,11,opt,name=o_sint32_str,json=oSint32Str" json:"o_sint32_str,omitempty"`
	OSint64              *int64   `protobuf:"zigzag64,12,opt,name=o_sint64,json=oSint64" json:"o_sint64,omitempty"`
	OSint64Str           *int64   `protobuf:"zigzag64,13,opt,name=o_sint64_str,json=oSint64Str" json:"o_sint64_str,omitempty"`
	OFloat               *float32 `protobuf:"fixed32,14,opt,name=o_float,json=oFloat" json:"o_float,omitempty"`
	OFloatStr            *float32 `protobuf:"fixed32,15,opt,name=o_float_str,json=oFloatStr" json:"o_float_str,omitempty"`
	ODouble              *float64 `protobuf:"fixed64,16,opt,name=o_double,json=oDouble" json:"o_double,omitempty"`
	ODoubleStr           *float64 `protobuf:"fixed64,17,opt,name=o_double_str,json=oDoubleStr" json:"o_double_str,omitempty"`
	OString              *string  `protobuf:"bytes,18,opt,name=o_string,json=oString" json:"o_string,omitempty"`
	OBytes               []byte   `protobuf:"bytes,19,opt,name=o_bytes,json=oBytes" json:"o_bytes,omitempty"`
	OCastBytes           Bytes    `protobuf:"bytes,20,opt,name=o_cast_bytes,json=oCastBytes,casttype=Bytes" json:"o_cast_bytes,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Simple) Reset()         { *m = Simple{} }
func (m *Simple) String() string { return proto.CompactTextString(m) }
func (*Simple) ProtoMessage()    {}
func (*Simple) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{0}
}
func (m *Simple) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Simple.Unmarshal(m, b)
}
func (m *Simple) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Simple.Marshal(b, m, deterministic)
}
func (m *Simple) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Simple.Merge(m, src)
}
func (m *Simple) XXX_Size() int {
	return xxx_messageInfo_Simple.Size(m)
}
func (m *Simple) XXX_DiscardUnknown() {
	xxx_messageInfo_Simple.DiscardUnknown(m)
}

var xxx_messageInfo_Simple proto.InternalMessageInfo

func (m *Simple) GetOBool() bool {
	if m != nil && m.OBool != nil {
		return *m.OBool
	}
	return false
}

func (m *Simple) GetOInt32() int32 {
	if m != nil && m.OInt32 != nil {
		return *m.OInt32
	}
	return 0
}

func (m *Simple) GetOInt32Str() int32 {
	if m != nil && m.OInt32Str != nil {
		return *m.OInt32Str
	}
	return 0
}

func (m *Simple) GetOInt64() int64 {
	if m != nil && m.OInt64 != nil {
		return *m.OInt64
	}
	return 0
}

func (m *Simple) GetOInt64Str() int64 {
	if m != nil && m.OInt64Str != nil {
		return *m.OInt64Str
	}
	return 0
}

func (m *Simple) GetOUint32() uint32 {
	if m != nil && m.OUint32 != nil {
		return *m.OUint32
	}
	return 0
}

func (m *Simple) GetOUint32Str() uint32 {
	if m != nil && m.OUint32Str != nil {
		return *m.OUint32Str
	}
	return 0
}

func (m *Simple) GetOUint64() uint64 {
	if m != nil && m.OUint64 != nil {
		return *m.OUint64
	}
	return 0
}

func (m *Simple) GetOUint64Str() uint64 {
	if m != nil && m.OUint64Str != nil {
		return *m.OUint64Str
	}
	return 0
}

func (m *Simple) GetOSint32() int32 {
	if m != nil && m.OSint32 != nil {
		return *m.OSint32
	}
	return 0
}

func (m *Simple) GetOSint32Str() int32 {
	if m != nil && m.OSint32Str != nil {
		return *m.OSint32Str
	}
	return 0
}

func (m *Simple) GetOSint64() int64 {
	if m != nil && m.OSint64 != nil {
		return *m.OSint64
	}
	return 0
}

func (m *Simple) GetOSint64Str() int64 {
	if m != nil && m.OSint64Str != nil {
		return *m.OSint64Str
	}
	return 0
}

func (m *Simple) GetOFloat() float32 {
	if m != nil && m.OFloat != nil {
		return *m.OFloat
	}
	return 0
}

func (m *Simple) GetOFloatStr() float32 {
	if m != nil && m.OFloatStr != nil {
		return *m.OFloatStr
	}
	return 0
}

func (m *Simple) GetODouble() float64 {
	if m != nil && m.ODouble != nil {
		return *m.ODouble
	}
	return 0
}

func (m *Simple) GetODoubleStr() float64 {
	if m != nil && m.ODoubleStr != nil {
		return *m.ODoubleStr
	}
	return 0
}

func (m *Simple) GetOString() string {
	if m != nil && m.OString != nil {
		return *m.OString
	}
	return ""
}

func (m *Simple) GetOBytes() []byte {
	if m != nil {
		return m.OBytes
	}
	return nil
}

func (m *Simple) GetOCastBytes() Bytes {
	if m != nil {
		return m.OCastBytes
	}
	return nil
}

// Test message for holding special non-finites primitives.
type NonFinites struct {
	FNan                 *float32 `protobuf:"fixed32,1,opt,name=f_nan,json=fNan" json:"f_nan,omitempty"`
	FPinf                *float32 `protobuf:"fixed32,2,opt,name=f_pinf,json=fPinf" json:"f_pinf,omitempty"`
	FNinf                *float32 `protobuf:"fixed32,3,opt,name=f_ninf,json=fNinf" json:"f_ninf,omitempty"`
	DNan                 *float64 `protobuf:"fixed64,4,opt,name=d_nan,json=dNan" json:"d_nan,omitempty"`
	DPinf                *float64 `protobuf:"fixed64,5,opt,name=d_pinf,json=dPinf" json:"d_pinf,omitempty"`
	DNinf                *float64 `protobuf:"fixed64,6,opt,name=d_ninf,json=dNinf" json:"d_ninf,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NonFinites) Reset()         { *m = NonFinites{} }
func (m *NonFinites) String() string { return proto.CompactTextString(m) }
func (*NonFinites) ProtoMessage()    {}
func (*NonFinites) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{1}
}
func (m *NonFinites) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NonFinites.Unmarshal(m, b)
}
func (m *NonFinites) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NonFinites.Marshal(b, m, deterministic)
}
func (m *NonFinites) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NonFinites.Merge(m, src)
}
func (m *NonFinites) XXX_Size() int {
	return xxx_messageInfo_NonFinites.Size(m)
}
func (m *NonFinites) XXX_DiscardUnknown() {
	xxx_messageInfo_NonFinites.DiscardUnknown(m)
}

var xxx_messageInfo_NonFinites proto.InternalMessageInfo

func (m *NonFinites) GetFNan() float32 {
	if m != nil && m.FNan != nil {
		return *m.FNan
	}
	return 0
}

func (m *NonFinites) GetFPinf() float32 {
	if m != nil && m.FPinf != nil {
		return *m.FPinf
	}
	return 0
}

func (m *NonFinites) GetFNinf() float32 {
	if m != nil && m.FNinf != nil {
		return *m.FNinf
	}
	return 0
}

func (m *NonFinites) GetDNan() float64 {
	if m != nil && m.DNan != nil {
		return *m.DNan
	}
	return 0
}

func (m *NonFinites) GetDPinf() float64 {
	if m != nil && m.DPinf != nil {
		return *m.DPinf
	}
	return 0
}

func (m *NonFinites) GetDNinf() float64 {
	if m != nil && m.DNinf != nil {
		return *m.DNinf
	}
	return 0
}

// Test message for holding repeated primitives.
type Repeats struct {
	RBool                []bool    `protobuf:"varint,1,rep,name=r_bool,json=rBool" json:"r_bool,omitempty"`
	RInt32               []int32   `protobuf:"varint,2,rep,name=r_int32,json=rInt32" json:"r_int32,omitempty"`
	RInt64               []int64   `protobuf:"varint,3,rep,name=r_int64,json=rInt64" json:"r_int64,omitempty"`
	RUint32              []uint32  `protobuf:"varint,4,rep,name=r_uint32,json=rUint32" json:"r_uint32,omitempty"`
	RUint64              []uint64  `protobuf:"varint,5,rep,name=r_uint64,json=rUint64" json:"r_uint64,omitempty"`
	RSint32              []int32   `protobuf:"zigzag32,6,rep,name=r_sint32,json=rSint32" json:"r_sint32,omitempty"`
	RSint64              []int64   `protobuf:"zigzag64,7,rep,name=r_sint64,json=rSint64" json:"r_sint64,omitempty"`
	RFloat               []float32 `protobuf:"fixed32,8,rep,name=r_float,json=rFloat" json:"r_float,omitempty"`
	RDouble              []float64 `protobuf:"fixed64,9,rep,name=r_double,json=rDouble" json:"r_double,omitempty"`
	RString              []string  `protobuf:"bytes,10,rep,name=r_string,json=rString" json:"r_string,omitempty"`
	RBytes               [][]byte  `protobuf:"bytes,11,rep,name=r_bytes,json=rBytes" json:"r_bytes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *Repeats) Reset()         { *m = Repeats{} }
func (m *Repeats) String() string { return proto.CompactTextString(m) }
func (*Repeats) ProtoMessage()    {}
func (*Repeats) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{2}
}
func (m *Repeats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Repeats.Unmarshal(m, b)
}
func (m *Repeats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Repeats.Marshal(b, m, deterministic)
}
func (m *Repeats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Repeats.Merge(m, src)
}
func (m *Repeats) XXX_Size() int {
	return xxx_messageInfo_Repeats.Size(m)
}
func (m *Repeats) XXX_DiscardUnknown() {
	xxx_messageInfo_Repeats.DiscardUnknown(m)
}

var xxx_messageInfo_Repeats proto.InternalMessageInfo

func (m *Repeats) GetRBool() []bool {
	if m != nil {
		return m.RBool
	}
	return nil
}

func (m *Repeats) GetRInt32() []int32 {
	if m != nil {
		return m.RInt32
	}
	return nil
}

func (m *Repeats) GetRInt64() []int64 {
	if m != nil {
		return m.RInt64
	}
	return nil
}

func (m *Repeats) GetRUint32() []uint32 {
	if m != nil {
		return m.RUint32
	}
	return nil
}

func (m *Repeats) GetRUint64() []uint64 {
	if m != nil {
		return m.RUint64
	}
	return nil
}

func (m *Repeats) GetRSint32() []int32 {
	if m != nil {
		return m.RSint32
	}
	return nil
}

func (m *Repeats) GetRSint64() []int64 {
	if m != nil {
		return m.RSint64
	}
	return nil
}

func (m *Repeats) GetRFloat() []float32 {
	if m != nil {
		return m.RFloat
	}
	return nil
}

func (m *Repeats) GetRDouble() []float64 {
	if m != nil {
		return m.RDouble
	}
	return nil
}

func (m *Repeats) GetRString() []string {
	if m != nil {
		return m.RString
	}
	return nil
}

func (m *Repeats) GetRBytes() [][]byte {
	if m != nil {
		return m.RBytes
	}
	return nil
}

// Test message for holding enums and nested messages.
type Widget struct {
	Color                *Widget_Color  `protobuf:"varint,1,opt,name=color,enum=jsonpb.Widget_Color" json:"color,omitempty"`
	RColor               []Widget_Color `protobuf:"varint,2,rep,name=r_color,json=rColor,enum=jsonpb.Widget_Color" json:"r_color,omitempty"`
	Simple               *Simple        `protobuf:"bytes,10,opt,name=simple" json:"simple,omitempty"`
	RSimple              []*Simple      `protobuf:"bytes,11,rep,name=r_simple,json=rSimple" json:"r_simple,omitempty"`
	Repeats              *Repeats       `protobuf:"bytes,20,opt,name=repeats" json:"repeats,omitempty"`
	RRepeats             []*Repeats     `protobuf:"bytes,21,rep,name=r_repeats,json=rRepeats" json:"r_repeats,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *Widget) Reset()         { *m = Widget{} }
func (m *Widget) String() string { return proto.CompactTextString(m) }
func (*Widget) ProtoMessage()    {}
func (*Widget) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{3}
}
func (m *Widget) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Widget.Unmarshal(m, b)
}
func (m *Widget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Widget.Marshal(b, m, deterministic)
}
func (m *Widget) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Widget.Merge(m, src)
}
func (m *Widget) XXX_Size() int {
	return xxx_messageInfo_Widget.Size(m)
}
func (m *Widget) XXX_DiscardUnknown() {
	xxx_messageInfo_Widget.DiscardUnknown(m)
}

var xxx_messageInfo_Widget proto.InternalMessageInfo

func (m *Widget) GetColor() Widget_Color {
	if m != nil && m.Color != nil {
		return *m.Color
	}
	return Widget_RED
}

func (m *Widget) GetRColor() []Widget_Color {
	if m != nil {
		return m.RColor
	}
	return nil
}

func (m *Widget) GetSimple() *Simple {
	if m != nil {
		return m.Simple
	}
	return nil
}

func (m *Widget) GetRSimple() []*Simple {
	if m != nil {
		return m.RSimple
	}
	return nil
}

func (m *Widget) GetRepeats() *Repeats {
	if m != nil {
		return m.Repeats
	}
	return nil
}

func (m *Widget) GetRRepeats() []*Repeats {
	if m != nil {
		return m.RRepeats
	}
	return nil
}

type Maps struct {
	MInt64Str            map[int64]string `protobuf:"bytes,1,rep,name=m_int64_str,json=mInt64Str" json:"m_int64_str,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MBoolSimple          map[bool]*Simple `protobuf:"bytes,2,rep,name=m_bool_simple,json=mBoolSimple" json:"m_bool_simple,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *Maps) Reset()         { *m = Maps{} }
func (m *Maps) String() string { return proto.CompactTextString(m) }
func (*Maps) ProtoMessage()    {}
func (*Maps) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{4}
}
func (m *Maps) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Maps.Unmarshal(m, b)
}
func (m *Maps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Maps.Marshal(b, m, deterministic)
}
func (m *Maps) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Maps.Merge(m, src)
}
func (m *Maps) XXX_Size() int {
	return xxx_messageInfo_Maps.Size(m)
}
func (m *Maps) XXX_DiscardUnknown() {
	xxx_messageInfo_Maps.DiscardUnknown(m)
}

var xxx_messageInfo_Maps proto.InternalMessageInfo

func (m *Maps) GetMInt64Str() map[int64]string {
	if m != nil {
		return m.MInt64Str
	}
	return nil
}

func (m *Maps) GetMBoolSimple() map[bool]*Simple {
	if m != nil {
		return m.MBoolSimple
	}
	return nil
}

type MsgWithOneof struct {
	// Types that are valid to be assigned to Union:
	//	*MsgWithOneof_Title
	//	*MsgWithOneof_Salary
	//	*MsgWithOneof_Country
	//	*MsgWithOneof_HomeAddress
	//	*MsgWithOneof_MsgWithRequired
	Union                isMsgWithOneof_Union `protobuf_oneof:"union"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *MsgWithOneof) Reset()         { *m = MsgWithOneof{} }
func (m *MsgWithOneof) String() string { return proto.CompactTextString(m) }
func (*MsgWithOneof) ProtoMessage()    {}
func (*MsgWithOneof) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{5}
}
func (m *MsgWithOneof) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MsgWithOneof.Unmarshal(m, b)
}
func (m *MsgWithOneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MsgWithOneof.Marshal(b, m, deterministic)
}
func (m *MsgWithOneof) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MsgWithOneof.Merge(m, src)
}
func (m *MsgWithOneof) XXX_Size() int {
	return xxx_messageInfo_MsgWithOneof.Size(m)
}
func (m *MsgWithOneof) XXX_DiscardUnknown() {
	xxx_messageInfo_MsgWithOneof.DiscardUnknown(m)
}

var xxx_messageInfo_MsgWithOneof proto.InternalMessageInfo

type isMsgWithOneof_Union interface {
	isMsgWithOneof_Union()
}

type MsgWithOneof_Title struct {
	Title string `protobuf:"bytes,1,opt,name=title,oneof"`
}
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,oneof"`
}
type MsgWithOneof_HomeAddress struct {
	HomeAddress string `protobuf:"bytes,4,opt,name=home_address,json=homeAddress,oneof"`
}
type MsgWithOneof_MsgWithRequired struct {
	MsgWithRequired *MsgWithRequired `protobuf:"bytes,5,opt,name=msg_with_required,json=msgWithRequired,oneof"`
}

func (*MsgWithOneof_Title) isMsgWithOneof_Union()           {}
func (*MsgWithOneof_Salary) isMsgWithOneof_Union()          {}
func (*MsgWithOneof_Country) isMsgWithOneof_Union()         {}
func (*MsgWithOneof_HomeAddress) isMsgWithOneof_Union()     {}
func (*MsgWithOneof_MsgWithRequired) isMsgWithOneof_Union() {}

func (m *MsgWithOneof) GetUnion() isMsgWithOneof_Union {
	if m != nil {
		return m.Union
	}
	return nil
}

func (m *MsgWithOneof) GetTitle() string {
	if x, ok := m.GetUnion().(*MsgWithOneof_Title); ok {
		return x.Title
	}
	return ""
}

func (m *MsgWithOneof) GetSalary() int64 {
	if x, ok := m.GetUnion().(*MsgWithOneof_Salary); ok {
		return x.Salary
	}
	return 0
}

func (m *MsgWithOneof) GetCountry() string {
	if x, ok := m.GetUnion().(*MsgWithOneof_Country); ok {
		return x.Country
	}
	return ""
}

func (m *MsgWithOneof) GetHomeAddress() string {
	if x, ok := m.GetUnion().(*MsgWithOneof_HomeAddress); ok {
		return x.HomeAddress
	}
	return ""
}

func (m *MsgWithOneof) GetMsgWithRequired() *MsgWithRequired {
	if x, ok := m.GetUnion().(*MsgWithOneof_MsgWithRequired); ok {
		return x.MsgWithRequired
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*MsgWithOneof) 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 _MsgWithOneof_OneofMarshaler, _MsgWithOneof_OneofUnmarshaler, _MsgWithOneof_OneofSizer, []interface{}{
		(*MsgWithOneof_Title)(nil),
		(*MsgWithOneof_Salary)(nil),
		(*MsgWithOneof_Country)(nil),
		(*MsgWithOneof_HomeAddress)(nil),
		(*MsgWithOneof_MsgWithRequired)(nil),
	}
}

func _MsgWithOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*MsgWithOneof)
	// union
	switch x := m.Union.(type) {
	case *MsgWithOneof_Title:
		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Title)
	case *MsgWithOneof_Salary:
		_ = b.EncodeVarint(2<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Salary))
	case *MsgWithOneof_Country:
		_ = b.EncodeVarint(3<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Country)
	case *MsgWithOneof_HomeAddress:
		_ = b.EncodeVarint(4<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.HomeAddress)
	case *MsgWithOneof_MsgWithRequired:
		_ = b.EncodeVarint(5<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.MsgWithRequired); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("MsgWithOneof.Union has unexpected type %T", x)
	}
	return nil
}

func _MsgWithOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*MsgWithOneof)
	switch tag {
	case 1: // union.title
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Union = &MsgWithOneof_Title{x}
		return true, err
	case 2: // union.salary
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Union = &MsgWithOneof_Salary{int64(x)}
		return true, err
	case 3: // union.Country
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Union = &MsgWithOneof_Country{x}
		return true, err
	case 4: // union.home_address
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Union = &MsgWithOneof_HomeAddress{x}
		return true, err
	case 5: // union.msg_with_required
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(MsgWithRequired)
		err := b.DecodeMessage(msg)
		m.Union = &MsgWithOneof_MsgWithRequired{msg}
		return true, err
	default:
		return false, nil
	}
}

func _MsgWithOneof_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*MsgWithOneof)
	// union
	switch x := m.Union.(type) {
	case *MsgWithOneof_Title:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(len(x.Title)))
		n += len(x.Title)
	case *MsgWithOneof_Salary:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(x.Salary))
	case *MsgWithOneof_Country:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(len(x.Country)))
		n += len(x.Country)
	case *MsgWithOneof_HomeAddress:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(len(x.HomeAddress)))
		n += len(x.HomeAddress)
	case *MsgWithOneof_MsgWithRequired:
		s := proto.Size(x.MsgWithRequired)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type Real struct {
	Value                        *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral         struct{} `json:"-"`
	proto.XXX_InternalExtensions `json:"-"`
	XXX_unrecognized             []byte `json:"-"`
	XXX_sizecache                int32  `json:"-"`
}

func (m *Real) Reset()         { *m = Real{} }
func (m *Real) String() string { return proto.CompactTextString(m) }
func (*Real) ProtoMessage()    {}
func (*Real) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{6}
}

var extRange_Real = []proto.ExtensionRange{
	{Start: 100, End: 536870911},
}

func (*Real) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_Real
}

func (m *Real) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Real.Unmarshal(m, b)
}
func (m *Real) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Real.Marshal(b, m, deterministic)
}
func (m *Real) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Real.Merge(m, src)
}
func (m *Real) XXX_Size() int {
	return xxx_messageInfo_Real.Size(m)
}
func (m *Real) XXX_DiscardUnknown() {
	xxx_messageInfo_Real.DiscardUnknown(m)
}

var xxx_messageInfo_Real proto.InternalMessageInfo

func (m *Real) GetValue() float64 {
	if m != nil && m.Value != nil {
		return *m.Value
	}
	return 0
}

type Complex struct {
	Imaginary                    *float64 `protobuf:"fixed64,1,opt,name=imaginary" json:"imaginary,omitempty"`
	XXX_NoUnkeyedLiteral         struct{} `json:"-"`
	proto.XXX_InternalExtensions `json:"-"`
	XXX_unrecognized             []byte `json:"-"`
	XXX_sizecache                int32  `json:"-"`
}

func (m *Complex) Reset()         { *m = Complex{} }
func (m *Complex) String() string { return proto.CompactTextString(m) }
func (*Complex) ProtoMessage()    {}
func (*Complex) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{7}
}

var extRange_Complex = []proto.ExtensionRange{
	{Start: 100, End: 536870911},
}

func (*Complex) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_Complex
}

func (m *Complex) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Complex.Unmarshal(m, b)
}
func (m *Complex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Complex.Marshal(b, m, deterministic)
}
func (m *Complex) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Complex.Merge(m, src)
}
func (m *Complex) XXX_Size() int {
	return xxx_messageInfo_Complex.Size(m)
}
func (m *Complex) XXX_DiscardUnknown() {
	xxx_messageInfo_Complex.DiscardUnknown(m)
}

var xxx_messageInfo_Complex proto.InternalMessageInfo

func (m *Complex) GetImaginary() float64 {
	if m != nil && m.Imaginary != nil {
		return *m.Imaginary
	}
	return 0
}

var E_Complex_RealExtension = &proto.ExtensionDesc{
	ExtendedType:  (*Real)(nil),
	ExtensionType: (*Complex)(nil),
	Field:         123,
	Name:          "jsonpb.Complex.real_extension",
	Tag:           "bytes,123,opt,name=real_extension",
	Filename:      "test_objects.proto",
}

type KnownTypes struct {
	An                   *types.Any         `protobuf:"bytes,14,opt,name=an" json:"an,omitempty"`
	Dur                  *types.Duration    `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"`
	St                   *types.Struct      `protobuf:"bytes,12,opt,name=st" json:"st,omitempty"`
	Ts                   *types.Timestamp   `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"`
	Lv                   *types.ListValue   `protobuf:"bytes,15,opt,name=lv" json:"lv,omitempty"`
	Val                  *types.Value       `protobuf:"bytes,16,opt,name=val" json:"val,omitempty"`
	Dbl                  *types.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"`
	Flt                  *types.FloatValue  `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"`
	I64                  *types.Int64Value  `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"`
	U64                  *types.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"`
	I32                  *types.Int32Value  `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"`
	U32                  *types.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"`
	Bool                 *types.BoolValue   `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"`
	Str                  *types.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"`
	Bytes                *types.BytesValue  `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *KnownTypes) Reset()         { *m = KnownTypes{} }
func (m *KnownTypes) String() string { return proto.CompactTextString(m) }
func (*KnownTypes) ProtoMessage()    {}
func (*KnownTypes) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{8}
}
func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_KnownTypes.Unmarshal(m, b)
}
func (m *KnownTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_KnownTypes.Marshal(b, m, deterministic)
}
func (m *KnownTypes) XXX_Merge(src proto.Message) {
	xxx_messageInfo_KnownTypes.Merge(m, src)
}
func (m *KnownTypes) XXX_Size() int {
	return xxx_messageInfo_KnownTypes.Size(m)
}
func (m *KnownTypes) XXX_DiscardUnknown() {
	xxx_messageInfo_KnownTypes.DiscardUnknown(m)
}

var xxx_messageInfo_KnownTypes proto.InternalMessageInfo

func (m *KnownTypes) GetAn() *types.Any {
	if m != nil {
		return m.An
	}
	return nil
}

func (m *KnownTypes) GetDur() *types.Duration {
	if m != nil {
		return m.Dur
	}
	return nil
}

func (m *KnownTypes) GetSt() *types.Struct {
	if m != nil {
		return m.St
	}
	return nil
}

func (m *KnownTypes) GetTs() *types.Timestamp {
	if m != nil {
		return m.Ts
	}
	return nil
}

func (m *KnownTypes) GetLv() *types.ListValue {
	if m != nil {
		return m.Lv
	}
	return nil
}

func (m *KnownTypes) GetVal() *types.Value {
	if m != nil {
		return m.Val
	}
	return nil
}

func (m *KnownTypes) GetDbl() *types.DoubleValue {
	if m != nil {
		return m.Dbl
	}
	return nil
}

func (m *KnownTypes) GetFlt() *types.FloatValue {
	if m != nil {
		return m.Flt
	}
	return nil
}

func (m *KnownTypes) GetI64() *types.Int64Value {
	if m != nil {
		return m.I64
	}
	return nil
}

func (m *KnownTypes) GetU64() *types.UInt64Value {
	if m != nil {
		return m.U64
	}
	return nil
}

func (m *KnownTypes) GetI32() *types.Int32Value {
	if m != nil {
		return m.I32
	}
	return nil
}

func (m *KnownTypes) GetU32() *types.UInt32Value {
	if m != nil {
		return m.U32
	}
	return nil
}

func (m *KnownTypes) GetBool() *types.BoolValue {
	if m != nil {
		return m.Bool
	}
	return nil
}

func (m *KnownTypes) GetStr() *types.StringValue {
	if m != nil {
		return m.Str
	}
	return nil
}

func (m *KnownTypes) GetBytes() *types.BytesValue {
	if m != nil {
		return m.Bytes
	}
	return nil
}

// Test messages for marshaling/unmarshaling required fields.
type MsgWithRequired struct {
	Str                  *string  `protobuf:"bytes,1,req,name=str" json:"str,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MsgWithRequired) Reset()         { *m = MsgWithRequired{} }
func (m *MsgWithRequired) String() string { return proto.CompactTextString(m) }
func (*MsgWithRequired) ProtoMessage()    {}
func (*MsgWithRequired) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{9}
}
func (m *MsgWithRequired) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MsgWithRequired.Unmarshal(m, b)
}
func (m *MsgWithRequired) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MsgWithRequired.Marshal(b, m, deterministic)
}
func (m *MsgWithRequired) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MsgWithRequired.Merge(m, src)
}
func (m *MsgWithRequired) XXX_Size() int {
	return xxx_messageInfo_MsgWithRequired.Size(m)
}
func (m *MsgWithRequired) XXX_DiscardUnknown() {
	xxx_messageInfo_MsgWithRequired.DiscardUnknown(m)
}

var xxx_messageInfo_MsgWithRequired proto.InternalMessageInfo

func (m *MsgWithRequired) GetStr() string {
	if m != nil && m.Str != nil {
		return *m.Str
	}
	return ""
}

type MsgWithIndirectRequired struct {
	Subm                 *MsgWithRequired            `protobuf:"bytes,1,opt,name=subm" json:"subm,omitempty"`
	MapField             map[string]*MsgWithRequired `protobuf:"bytes,2,rep,name=map_field,json=mapField" json:"map_field,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	SliceField           []*MsgWithRequired          `protobuf:"bytes,3,rep,name=slice_field,json=sliceField" json:"slice_field,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

func (m *MsgWithIndirectRequired) Reset()         { *m = MsgWithIndirectRequired{} }
func (m *MsgWithIndirectRequired) String() string { return proto.CompactTextString(m) }
func (*MsgWithIndirectRequired) ProtoMessage()    {}
func (*MsgWithIndirectRequired) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{10}
}
func (m *MsgWithIndirectRequired) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MsgWithIndirectRequired.Unmarshal(m, b)
}
func (m *MsgWithIndirectRequired) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MsgWithIndirectRequired.Marshal(b, m, deterministic)
}
func (m *MsgWithIndirectRequired) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MsgWithIndirectRequired.Merge(m, src)
}
func (m *MsgWithIndirectRequired) XXX_Size() int {
	return xxx_messageInfo_MsgWithIndirectRequired.Size(m)
}
func (m *MsgWithIndirectRequired) XXX_DiscardUnknown() {
	xxx_messageInfo_MsgWithIndirectRequired.DiscardUnknown(m)
}

var xxx_messageInfo_MsgWithIndirectRequired proto.InternalMessageInfo

func (m *MsgWithIndirectRequired) GetSubm() *MsgWithRequired {
	if m != nil {
		return m.Subm
	}
	return nil
}

func (m *MsgWithIndirectRequired) GetMapField() map[string]*MsgWithRequired {
	if m != nil {
		return m.MapField
	}
	return nil
}

func (m *MsgWithIndirectRequired) GetSliceField() []*MsgWithRequired {
	if m != nil {
		return m.SliceField
	}
	return nil
}

type MsgWithRequiredBytes struct {
	Byts                 []byte   `protobuf:"bytes,1,req,name=byts" json:"byts,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MsgWithRequiredBytes) Reset()         { *m = MsgWithRequiredBytes{} }
func (m *MsgWithRequiredBytes) String() string { return proto.CompactTextString(m) }
func (*MsgWithRequiredBytes) ProtoMessage()    {}
func (*MsgWithRequiredBytes) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{11}
}
func (m *MsgWithRequiredBytes) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MsgWithRequiredBytes.Unmarshal(m, b)
}
func (m *MsgWithRequiredBytes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MsgWithRequiredBytes.Marshal(b, m, deterministic)
}
func (m *MsgWithRequiredBytes) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MsgWithRequiredBytes.Merge(m, src)
}
func (m *MsgWithRequiredBytes) XXX_Size() int {
	return xxx_messageInfo_MsgWithRequiredBytes.Size(m)
}
func (m *MsgWithRequiredBytes) XXX_DiscardUnknown() {
	xxx_messageInfo_MsgWithRequiredBytes.DiscardUnknown(m)
}

var xxx_messageInfo_MsgWithRequiredBytes proto.InternalMessageInfo

func (m *MsgWithRequiredBytes) GetByts() []byte {
	if m != nil {
		return m.Byts
	}
	return nil
}

type MsgWithRequiredWKT struct {
	Str                  *types.StringValue `protobuf:"bytes,1,req,name=str" json:"str,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *MsgWithRequiredWKT) Reset()         { *m = MsgWithRequiredWKT{} }
func (m *MsgWithRequiredWKT) String() string { return proto.CompactTextString(m) }
func (*MsgWithRequiredWKT) ProtoMessage()    {}
func (*MsgWithRequiredWKT) Descriptor() ([]byte, []int) {
	return fileDescriptor_e97c739a0ce14cc6, []int{12}
}
func (m *MsgWithRequiredWKT) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MsgWithRequiredWKT.Unmarshal(m, b)
}
func (m *MsgWithRequiredWKT) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MsgWithRequiredWKT.Marshal(b, m, deterministic)
}
func (m *MsgWithRequiredWKT) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MsgWithRequiredWKT.Merge(m, src)
}
func (m *MsgWithRequiredWKT) XXX_Size() int {
	return xxx_messageInfo_MsgWithRequiredWKT.Size(m)
}
func (m *MsgWithRequiredWKT) XXX_DiscardUnknown() {
	xxx_messageInfo_MsgWithRequiredWKT.DiscardUnknown(m)
}

var xxx_messageInfo_MsgWithRequiredWKT proto.InternalMessageInfo

func (m *MsgWithRequiredWKT) GetStr() *types.StringValue {
	if m != nil {
		return m.Str
	}
	return nil
}

var E_Name = &proto.ExtensionDesc{
	ExtendedType:  (*Real)(nil),
	ExtensionType: (*string)(nil),
	Field:         124,
	Name:          "jsonpb.name",
	Tag:           "bytes,124,opt,name=name",
	Filename:      "test_objects.proto",
}

var E_Extm = &proto.ExtensionDesc{
	ExtendedType:  (*Real)(nil),
	ExtensionType: (*MsgWithRequired)(nil),
	Field:         125,
	Name:          "jsonpb.extm",
	Tag:           "bytes,125,opt,name=extm",
	Filename:      "test_objects.proto",
}

func init() {
	proto.RegisterEnum("jsonpb.Widget_Color", Widget_Color_name, Widget_Color_value)
	proto.RegisterType((*Simple)(nil), "jsonpb.Simple")
	proto.RegisterType((*NonFinites)(nil), "jsonpb.NonFinites")
	proto.RegisterType((*Repeats)(nil), "jsonpb.Repeats")
	proto.RegisterType((*Widget)(nil), "jsonpb.Widget")
	proto.RegisterType((*Maps)(nil), "jsonpb.Maps")
	proto.RegisterMapType((map[bool]*Simple)(nil), "jsonpb.Maps.MBoolSimpleEntry")
	proto.RegisterMapType((map[int64]string)(nil), "jsonpb.Maps.MInt64StrEntry")
	proto.RegisterType((*MsgWithOneof)(nil), "jsonpb.MsgWithOneof")
	proto.RegisterType((*Real)(nil), "jsonpb.Real")
	proto.RegisterExtension(E_Complex_RealExtension)
	proto.RegisterType((*Complex)(nil), "jsonpb.Complex")
	proto.RegisterType((*KnownTypes)(nil), "jsonpb.KnownTypes")
	proto.RegisterType((*MsgWithRequired)(nil), "jsonpb.MsgWithRequired")
	proto.RegisterType((*MsgWithIndirectRequired)(nil), "jsonpb.MsgWithIndirectRequired")
	proto.RegisterMapType((map[string]*MsgWithRequired)(nil), "jsonpb.MsgWithIndirectRequired.MapFieldEntry")
	proto.RegisterType((*MsgWithRequiredBytes)(nil), "jsonpb.MsgWithRequiredBytes")
	proto.RegisterType((*MsgWithRequiredWKT)(nil), "jsonpb.MsgWithRequiredWKT")
	proto.RegisterExtension(E_Name)
	proto.RegisterExtension(E_Extm)
}

func init() { proto.RegisterFile("test_objects.proto", fileDescriptor_e97c739a0ce14cc6) }

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