// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/config/filter/network/tcp_proxy/v2/tcp_proxy.proto

package envoy_config_filter_network_tcp_proxy_v2

import (
	fmt "fmt"
	_ "github.com/cncf/udpa/go/udpa/annotations"
	core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core"
	v2 "github.com/envoyproxy/go-control-plane/envoy/config/filter/accesslog/v2"
	_type "github.com/envoyproxy/go-control-plane/envoy/type"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	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.ProtoPackageIsVersion3 // please upgrade the proto package

type TcpProxy struct {
	StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
	// Types that are valid to be assigned to ClusterSpecifier:
	//	*TcpProxy_Cluster
	//	*TcpProxy_WeightedClusters
	ClusterSpecifier      isTcpProxy_ClusterSpecifier `protobuf_oneof:"cluster_specifier"`
	MetadataMatch         *core.Metadata              `protobuf:"bytes,9,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
	IdleTimeout           *duration.Duration          `protobuf:"bytes,8,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
	DownstreamIdleTimeout *duration.Duration          `protobuf:"bytes,3,opt,name=downstream_idle_timeout,json=downstreamIdleTimeout,proto3" json:"downstream_idle_timeout,omitempty"`
	UpstreamIdleTimeout   *duration.Duration          `protobuf:"bytes,4,opt,name=upstream_idle_timeout,json=upstreamIdleTimeout,proto3" json:"upstream_idle_timeout,omitempty"`
	AccessLog             []*v2.AccessLog             `protobuf:"bytes,5,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"`
	DeprecatedV1          *TcpProxy_DeprecatedV1      `protobuf:"bytes,6,opt,name=deprecated_v1,json=deprecatedV1,proto3" json:"deprecated_v1,omitempty"` // Deprecated: Do not use.
	MaxConnectAttempts    *wrappers.UInt32Value       `protobuf:"bytes,7,opt,name=max_connect_attempts,json=maxConnectAttempts,proto3" json:"max_connect_attempts,omitempty"`
	HashPolicy            []*_type.HashPolicy         `protobuf:"bytes,11,rep,name=hash_policy,json=hashPolicy,proto3" json:"hash_policy,omitempty"`
	TunnelingConfig       *TcpProxy_TunnelingConfig   `protobuf:"bytes,12,opt,name=tunneling_config,json=tunnelingConfig,proto3" json:"tunneling_config,omitempty"`
	XXX_NoUnkeyedLiteral  struct{}                    `json:"-"`
	XXX_unrecognized      []byte                      `json:"-"`
	XXX_sizecache         int32                       `json:"-"`
}

func (m *TcpProxy) Reset()         { *m = TcpProxy{} }
func (m *TcpProxy) String() string { return proto.CompactTextString(m) }
func (*TcpProxy) ProtoMessage()    {}
func (*TcpProxy) Descriptor() ([]byte, []int) {
	return fileDescriptor_1f6b35dbcbad27ba, []int{0}
}

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

var xxx_messageInfo_TcpProxy proto.InternalMessageInfo

func (m *TcpProxy) GetStatPrefix() string {
	if m != nil {
		return m.StatPrefix
	}
	return ""
}

type isTcpProxy_ClusterSpecifier interface {
	isTcpProxy_ClusterSpecifier()
}

type TcpProxy_Cluster struct {
	Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3,oneof"`
}

type TcpProxy_WeightedClusters struct {
	WeightedClusters *TcpProxy_WeightedCluster `protobuf:"bytes,10,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"`
}

func (*TcpProxy_Cluster) isTcpProxy_ClusterSpecifier() {}

func (*TcpProxy_WeightedClusters) isTcpProxy_ClusterSpecifier() {}

func (m *TcpProxy) GetClusterSpecifier() isTcpProxy_ClusterSpecifier {
	if m != nil {
		return m.ClusterSpecifier
	}
	return nil
}

func (m *TcpProxy) GetCluster() string {
	if x, ok := m.GetClusterSpecifier().(*TcpProxy_Cluster); ok {
		return x.Cluster
	}
	return ""
}

func (m *TcpProxy) GetWeightedClusters() *TcpProxy_WeightedCluster {
	if x, ok := m.GetClusterSpecifier().(*TcpProxy_WeightedClusters); ok {
		return x.WeightedClusters
	}
	return nil
}

func (m *TcpProxy) GetMetadataMatch() *core.Metadata {
	if m != nil {
		return m.MetadataMatch
	}
	return nil
}

func (m *TcpProxy) GetIdleTimeout() *duration.Duration {
	if m != nil {
		return m.IdleTimeout
	}
	return nil
}

func (m *TcpProxy) GetDownstreamIdleTimeout() *duration.Duration {
	if m != nil {
		return m.DownstreamIdleTimeout
	}
	return nil
}

func (m *TcpProxy) GetUpstreamIdleTimeout() *duration.Duration {
	if m != nil {
		return m.UpstreamIdleTimeout
	}
	return nil
}

func (m *TcpProxy) GetAccessLog() []*v2.AccessLog {
	if m != nil {
		return m.AccessLog
	}
	return nil
}

// Deprecated: Do not use.
func (m *TcpProxy) GetDeprecatedV1() *TcpProxy_DeprecatedV1 {
	if m != nil {
		return m.DeprecatedV1
	}
	return nil
}

func (m *TcpProxy) GetMaxConnectAttempts() *wrappers.UInt32Value {
	if m != nil {
		return m.MaxConnectAttempts
	}
	return nil
}

func (m *TcpProxy) GetHashPolicy() []*_type.HashPolicy {
	if m != nil {
		return m.HashPolicy
	}
	return nil
}

func (m *TcpProxy) GetTunnelingConfig() *TcpProxy_TunnelingConfig {
	if m != nil {
		return m.TunnelingConfig
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TcpProxy) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TcpProxy_Cluster)(nil),
		(*TcpProxy_WeightedClusters)(nil),
	}
}

// Deprecated: Do not use.
type TcpProxy_DeprecatedV1 struct {
	Routes               []*TcpProxy_DeprecatedV1_TCPRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *TcpProxy_DeprecatedV1) Reset()         { *m = TcpProxy_DeprecatedV1{} }
func (m *TcpProxy_DeprecatedV1) String() string { return proto.CompactTextString(m) }
func (*TcpProxy_DeprecatedV1) ProtoMessage()    {}
func (*TcpProxy_DeprecatedV1) Descriptor() ([]byte, []int) {
	return fileDescriptor_1f6b35dbcbad27ba, []int{0, 0}
}

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

var xxx_messageInfo_TcpProxy_DeprecatedV1 proto.InternalMessageInfo

func (m *TcpProxy_DeprecatedV1) GetRoutes() []*TcpProxy_DeprecatedV1_TCPRoute {
	if m != nil {
		return m.Routes
	}
	return nil
}

type TcpProxy_DeprecatedV1_TCPRoute struct {
	Cluster              string            `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
	DestinationIpList    []*core.CidrRange `protobuf:"bytes,2,rep,name=destination_ip_list,json=destinationIpList,proto3" json:"destination_ip_list,omitempty"`
	DestinationPorts     string            `protobuf:"bytes,3,opt,name=destination_ports,json=destinationPorts,proto3" json:"destination_ports,omitempty"`
	SourceIpList         []*core.CidrRange `protobuf:"bytes,4,rep,name=source_ip_list,json=sourceIpList,proto3" json:"source_ip_list,omitempty"`
	SourcePorts          string            `protobuf:"bytes,5,opt,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *TcpProxy_DeprecatedV1_TCPRoute) Reset()         { *m = TcpProxy_DeprecatedV1_TCPRoute{} }
func (m *TcpProxy_DeprecatedV1_TCPRoute) String() string { return proto.CompactTextString(m) }
func (*TcpProxy_DeprecatedV1_TCPRoute) ProtoMessage()    {}
func (*TcpProxy_DeprecatedV1_TCPRoute) Descriptor() ([]byte, []int) {
	return fileDescriptor_1f6b35dbcbad27ba, []int{0, 0, 0}
}

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

var xxx_messageInfo_TcpProxy_DeprecatedV1_TCPRoute proto.InternalMessageInfo

func (m *TcpProxy_DeprecatedV1_TCPRoute) GetCluster() string {
	if m != nil {
		return m.Cluster
	}
	return ""
}

func (m *TcpProxy_DeprecatedV1_TCPRoute) GetDestinationIpList() []*core.CidrRange {
	if m != nil {
		return m.DestinationIpList
	}
	return nil
}

func (m *TcpProxy_DeprecatedV1_TCPRoute) GetDestinationPorts() string {
	if m != nil {
		return m.DestinationPorts
	}
	return ""
}

func (m *TcpProxy_DeprecatedV1_TCPRoute) GetSourceIpList() []*core.CidrRange {
	if m != nil {
		return m.SourceIpList
	}
	return nil
}

func (m *TcpProxy_DeprecatedV1_TCPRoute) GetSourcePorts() string {
	if m != nil {
		return m.SourcePorts
	}
	return ""
}

type TcpProxy_WeightedCluster struct {
	Clusters             []*TcpProxy_WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
	XXX_unrecognized     []byte                                    `json:"-"`
	XXX_sizecache        int32                                     `json:"-"`
}

func (m *TcpProxy_WeightedCluster) Reset()         { *m = TcpProxy_WeightedCluster{} }
func (m *TcpProxy_WeightedCluster) String() string { return proto.CompactTextString(m) }
func (*TcpProxy_WeightedCluster) ProtoMessage()    {}
func (*TcpProxy_WeightedCluster) Descriptor() ([]byte, []int) {
	return fileDescriptor_1f6b35dbcbad27ba, []int{0, 1}
}

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

var xxx_messageInfo_TcpProxy_WeightedCluster proto.InternalMessageInfo

func (m *TcpProxy_WeightedCluster) GetClusters() []*TcpProxy_WeightedCluster_ClusterWeight {
	if m != nil {
		return m.Clusters
	}
	return nil
}

type TcpProxy_WeightedCluster_ClusterWeight struct {
	Name                 string         `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Weight               uint32         `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
	MetadataMatch        *core.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *TcpProxy_WeightedCluster_ClusterWeight) Reset() {
	*m = TcpProxy_WeightedCluster_ClusterWeight{}
}
func (m *TcpProxy_WeightedCluster_ClusterWeight) String() string { return proto.CompactTextString(m) }
func (*TcpProxy_WeightedCluster_ClusterWeight) ProtoMessage()    {}
func (*TcpProxy_WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int) {
	return fileDescriptor_1f6b35dbcbad27ba, []int{0, 1, 0}
}

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

var xxx_messageInfo_TcpProxy_WeightedCluster_ClusterWeight proto.InternalMessageInfo

func (m *TcpProxy_WeightedCluster_ClusterWeight) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *TcpProxy_WeightedCluster_ClusterWeight) GetWeight() uint32 {
	if m != nil {
		return m.Weight
	}
	return 0
}

func (m *TcpProxy_WeightedCluster_ClusterWeight) GetMetadataMatch() *core.Metadata {
	if m != nil {
		return m.MetadataMatch
	}
	return nil
}

type TcpProxy_TunnelingConfig struct {
	Hostname             string   `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TcpProxy_TunnelingConfig) Reset()         { *m = TcpProxy_TunnelingConfig{} }
func (m *TcpProxy_TunnelingConfig) String() string { return proto.CompactTextString(m) }
func (*TcpProxy_TunnelingConfig) ProtoMessage()    {}
func (*TcpProxy_TunnelingConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_1f6b35dbcbad27ba, []int{0, 2}
}

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

var xxx_messageInfo_TcpProxy_TunnelingConfig proto.InternalMessageInfo

func (m *TcpProxy_TunnelingConfig) GetHostname() string {
	if m != nil {
		return m.Hostname
	}
	return ""
}

func init() {
	proto.RegisterType((*TcpProxy)(nil), "envoy.config.filter.network.tcp_proxy.v2.TcpProxy")
	proto.RegisterType((*TcpProxy_DeprecatedV1)(nil), "envoy.config.filter.network.tcp_proxy.v2.TcpProxy.DeprecatedV1")
	proto.RegisterType((*TcpProxy_DeprecatedV1_TCPRoute)(nil), "envoy.config.filter.network.tcp_proxy.v2.TcpProxy.DeprecatedV1.TCPRoute")
	proto.RegisterType((*TcpProxy_WeightedCluster)(nil), "envoy.config.filter.network.tcp_proxy.v2.TcpProxy.WeightedCluster")
	proto.RegisterType((*TcpProxy_WeightedCluster_ClusterWeight)(nil), "envoy.config.filter.network.tcp_proxy.v2.TcpProxy.WeightedCluster.ClusterWeight")
	proto.RegisterType((*TcpProxy_TunnelingConfig)(nil), "envoy.config.filter.network.tcp_proxy.v2.TcpProxy.TunnelingConfig")
}

func init() {
	proto.RegisterFile("envoy/config/filter/network/tcp_proxy/v2/tcp_proxy.proto", fileDescriptor_1f6b35dbcbad27ba)
}

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