// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/api/servicemanagement/v1/resources.proto

package servicemanagement // import "google.golang.org/genproto/googleapis/api/servicemanagement/v1"

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "github.com/golang/protobuf/ptypes/any"
import _ "github.com/golang/protobuf/ptypes/struct"
import timestamp "github.com/golang/protobuf/ptypes/timestamp"
import _ "google.golang.org/genproto/googleapis/api/annotations"
import configchange "google.golang.org/genproto/googleapis/api/configchange"
import _ "google.golang.org/genproto/googleapis/api/metric"
import _ "google.golang.org/genproto/googleapis/api/serviceconfig"
import _ "google.golang.org/genproto/googleapis/longrunning"
import _ "google.golang.org/genproto/googleapis/rpc/status"
import _ "google.golang.org/genproto/protobuf/field_mask"

// 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

// Code describes the status of the operation (or one of its steps).
type OperationMetadata_Status int32

const (
	// Unspecifed code.
	OperationMetadata_STATUS_UNSPECIFIED OperationMetadata_Status = 0
	// The operation or step has completed without errors.
	OperationMetadata_DONE OperationMetadata_Status = 1
	// The operation or step has not started yet.
	OperationMetadata_NOT_STARTED OperationMetadata_Status = 2
	// The operation or step is in progress.
	OperationMetadata_IN_PROGRESS OperationMetadata_Status = 3
	// The operation or step has completed with errors. If the operation is
	// rollbackable, the rollback completed with errors too.
	OperationMetadata_FAILED OperationMetadata_Status = 4
	// The operation or step has completed with cancellation.
	OperationMetadata_CANCELLED OperationMetadata_Status = 5
)

var OperationMetadata_Status_name = map[int32]string{
	0: "STATUS_UNSPECIFIED",
	1: "DONE",
	2: "NOT_STARTED",
	3: "IN_PROGRESS",
	4: "FAILED",
	5: "CANCELLED",
}
var OperationMetadata_Status_value = map[string]int32{
	"STATUS_UNSPECIFIED": 0,
	"DONE":               1,
	"NOT_STARTED":        2,
	"IN_PROGRESS":        3,
	"FAILED":             4,
	"CANCELLED":          5,
}

func (x OperationMetadata_Status) String() string {
	return proto.EnumName(OperationMetadata_Status_name, int32(x))
}
func (OperationMetadata_Status) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_resources_7dc64a21ee38b48b, []int{1, 0}
}

// The kind of diagnostic information possible.
type Diagnostic_Kind int32

const (
	// Warnings and errors
	Diagnostic_WARNING Diagnostic_Kind = 0
	// Only errors
	Diagnostic_ERROR Diagnostic_Kind = 1
)

var Diagnostic_Kind_name = map[int32]string{
	0: "WARNING",
	1: "ERROR",
}
var Diagnostic_Kind_value = map[string]int32{
	"WARNING": 0,
	"ERROR":   1,
}

func (x Diagnostic_Kind) String() string {
	return proto.EnumName(Diagnostic_Kind_name, int32(x))
}
func (Diagnostic_Kind) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_resources_7dc64a21ee38b48b, []int{2, 0}
}

type ConfigFile_FileType int32

const (
	// Unknown file type.
	ConfigFile_FILE_TYPE_UNSPECIFIED ConfigFile_FileType = 0
	// YAML-specification of service.
	ConfigFile_SERVICE_CONFIG_YAML ConfigFile_FileType = 1
	// OpenAPI specification, serialized in JSON.
	ConfigFile_OPEN_API_JSON ConfigFile_FileType = 2
	// OpenAPI specification, serialized in YAML.
	ConfigFile_OPEN_API_YAML ConfigFile_FileType = 3
	// FileDescriptorSet, generated by protoc.
	//
	// To generate, use protoc with imports and source info included.
	// For an example test.proto file, the following command would put the value
	// in a new file named out.pb.
	//
	// $protoc --include_imports --include_source_info test.proto -o out.pb
	ConfigFile_FILE_DESCRIPTOR_SET_PROTO ConfigFile_FileType = 4
	// Uncompiled Proto file. Used for storage and display purposes only,
	// currently server-side compilation is not supported. Should match the
	// inputs to 'protoc' command used to generated FILE_DESCRIPTOR_SET_PROTO. A
	// file of this type can only be included if at least one file of type
	// FILE_DESCRIPTOR_SET_PROTO is included.
	ConfigFile_PROTO_FILE ConfigFile_FileType = 6
)

var ConfigFile_FileType_name = map[int32]string{
	0: "FILE_TYPE_UNSPECIFIED",
	1: "SERVICE_CONFIG_YAML",
	2: "OPEN_API_JSON",
	3: "OPEN_API_YAML",
	4: "FILE_DESCRIPTOR_SET_PROTO",
	6: "PROTO_FILE",
}
var ConfigFile_FileType_value = map[string]int32{
	"FILE_TYPE_UNSPECIFIED":     0,
	"SERVICE_CONFIG_YAML":       1,
	"OPEN_API_JSON":             2,
	"OPEN_API_YAML":             3,
	"FILE_DESCRIPTOR_SET_PROTO": 4,
	"PROTO_FILE":                6,
}

func (x ConfigFile_FileType) String() string {
	return proto.EnumName(ConfigFile_FileType_name, int32(x))
}
func (ConfigFile_FileType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_resources_7dc64a21ee38b48b, []int{4, 0}
}

// Status of a Rollout.
type Rollout_RolloutStatus int32

const (
	// No status specified.
	Rollout_ROLLOUT_STATUS_UNSPECIFIED Rollout_RolloutStatus = 0
	// The Rollout is in progress.
	Rollout_IN_PROGRESS Rollout_RolloutStatus = 1
	// The Rollout has completed successfully.
	Rollout_SUCCESS Rollout_RolloutStatus = 2
	// The Rollout has been cancelled. This can happen if you have overlapping
	// Rollout pushes, and the previous ones will be cancelled.
	Rollout_CANCELLED Rollout_RolloutStatus = 3
	// The Rollout has failed and the rollback attempt has failed too.
	Rollout_FAILED Rollout_RolloutStatus = 4
	// The Rollout has not started yet and is pending for execution.
	Rollout_PENDING Rollout_RolloutStatus = 5
	// The Rollout has failed and rolled back to the previous successful
	// Rollout.
	Rollout_FAILED_ROLLED_BACK Rollout_RolloutStatus = 6
)

var Rollout_RolloutStatus_name = map[int32]string{
	0: "ROLLOUT_STATUS_UNSPECIFIED",
	1: "IN_PROGRESS",
	2: "SUCCESS",
	3: "CANCELLED",
	4: "FAILED",
	5: "PENDING",
	6: "FAILED_ROLLED_BACK",
}
var Rollout_RolloutStatus_value = map[string]int32{
	"ROLLOUT_STATUS_UNSPECIFIED": 0,
	"IN_PROGRESS":                1,
	"SUCCESS":                    2,
	"CANCELLED":                  3,
	"FAILED":                     4,
	"PENDING":                    5,
	"FAILED_ROLLED_BACK":         6,
}

func (x Rollout_RolloutStatus) String() string {
	return proto.EnumName(Rollout_RolloutStatus_name, int32(x))
}
func (Rollout_RolloutStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_resources_7dc64a21ee38b48b, []int{7, 0}
}

// The full representation of a Service that is managed by
// Google Service Management.
type ManagedService struct {
	// The name of the service. See the [overview](/service-management/overview)
	// for naming requirements.
	ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
	// ID of the project that produces and owns this service.
	ProducerProjectId    string   `protobuf:"bytes,3,opt,name=producer_project_id,json=producerProjectId,proto3" json:"producer_project_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

var xxx_messageInfo_ManagedService proto.InternalMessageInfo

func (m *ManagedService) GetServiceName() string {
	if m != nil {
		return m.ServiceName
	}
	return ""
}

func (m *ManagedService) GetProducerProjectId() string {
	if m != nil {
		return m.ProducerProjectId
	}
	return ""
}

// The metadata associated with a long running operation resource.
type OperationMetadata struct {
	// The full name of the resources that this operation is directly
	// associated with.
	ResourceNames []string `protobuf:"bytes,1,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
	// Detailed status information for each step. The order is undetermined.
	Steps []*OperationMetadata_Step `protobuf:"bytes,2,rep,name=steps,proto3" json:"steps,omitempty"`
	// Percentage of completion of this operation, ranging from 0 to 100.
	ProgressPercentage int32 `protobuf:"varint,3,opt,name=progress_percentage,json=progressPercentage,proto3" json:"progress_percentage,omitempty"`
	// The start time of the operation.
	StartTime            *timestamp.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

var xxx_messageInfo_OperationMetadata proto.InternalMessageInfo

func (m *OperationMetadata) GetResourceNames() []string {
	if m != nil {
		return m.ResourceNames
	}
	return nil
}

func (m *OperationMetadata) GetSteps() []*OperationMetadata_Step {
	if m != nil {
		return m.Steps
	}
	return nil
}

func (m *OperationMetadata) GetProgressPercentage() int32 {
	if m != nil {
		return m.ProgressPercentage
	}
	return 0
}

func (m *OperationMetadata) GetStartTime() *timestamp.Timestamp {
	if m != nil {
		return m.StartTime
	}
	return nil
}

// Represents the status of one operation step.
type OperationMetadata_Step struct {
	// The short description of the step.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// The status code.
	Status               OperationMetadata_Status `protobuf:"varint,4,opt,name=status,proto3,enum=google.api.servicemanagement.v1.OperationMetadata_Status" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

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

var xxx_messageInfo_OperationMetadata_Step proto.InternalMessageInfo

func (m *OperationMetadata_Step) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *OperationMetadata_Step) GetStatus() OperationMetadata_Status {
	if m != nil {
		return m.Status
	}
	return OperationMetadata_STATUS_UNSPECIFIED
}

// Represents a diagnostic message (error or warning)
type Diagnostic struct {
	// File name and line number of the error or warning.
	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
	// The kind of diagnostic information provided.
	Kind Diagnostic_Kind `protobuf:"varint,2,opt,name=kind,proto3,enum=google.api.servicemanagement.v1.Diagnostic_Kind" json:"kind,omitempty"`
	// Message describing the error or warning.
	Message              string   `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

var xxx_messageInfo_Diagnostic proto.InternalMessageInfo

func (m *Diagnostic) GetLocation() string {
	if m != nil {
		return m.Location
	}
	return ""
}

func (m *Diagnostic) GetKind() Diagnostic_Kind {
	if m != nil {
		return m.Kind
	}
	return Diagnostic_WARNING
}

func (m *Diagnostic) GetMessage() string {
	if m != nil {
		return m.Message
	}
	return ""
}

// Represents a source file which is used to generate the service configuration
// defined by `google.api.Service`.
type ConfigSource struct {
	// A unique ID for a specific instance of this message, typically assigned
	// by the client for tracking purpose. If empty, the server may choose to
	// generate one instead.
	Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"`
	// Set of source configuration files that are used to generate a service
	// configuration (`google.api.Service`).
	Files                []*ConfigFile `protobuf:"bytes,2,rep,name=files,proto3" json:"files,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

var xxx_messageInfo_ConfigSource proto.InternalMessageInfo

func (m *ConfigSource) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *ConfigSource) GetFiles() []*ConfigFile {
	if m != nil {
		return m.Files
	}
	return nil
}

// Generic specification of a source configuration file
type ConfigFile struct {
	// The file name of the configuration file (full or relative path).
	FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
	// The bytes that constitute the file.
	FileContents []byte `protobuf:"bytes,3,opt,name=file_contents,json=fileContents,proto3" json:"file_contents,omitempty"`
	// The type of configuration file this represents.
	FileType             ConfigFile_FileType `protobuf:"varint,4,opt,name=file_type,json=fileType,proto3,enum=google.api.servicemanagement.v1.ConfigFile_FileType" json:"file_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

var xxx_messageInfo_ConfigFile proto.InternalMessageInfo

func (m *ConfigFile) GetFilePath() string {
	if m != nil {
		return m.FilePath
	}
	return ""
}

func (m *ConfigFile) GetFileContents() []byte {
	if m != nil {
		return m.FileContents
	}
	return nil
}

func (m *ConfigFile) GetFileType() ConfigFile_FileType {
	if m != nil {
		return m.FileType
	}
	return ConfigFile_FILE_TYPE_UNSPECIFIED
}

// Represents a service configuration with its name and id.
type ConfigRef struct {
	// Resource name of a service config. It must have the following
	// format: "services/{service name}/configs/{config id}".
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

var xxx_messageInfo_ConfigRef proto.InternalMessageInfo

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

// Change report associated with a particular service configuration.
//
// It contains a list of ConfigChanges based on the comparison between
// two service configurations.
type ChangeReport struct {
	// List of changes between two service configurations.
	// The changes will be alphabetically sorted based on the identifier
	// of each change.
	// A ConfigChange identifier is a dot separated path to the configuration.
	// Example: visibility.rules[selector='LibraryService.CreateBook'].restriction
	ConfigChanges        []*configchange.ConfigChange `protobuf:"bytes,1,rep,name=config_changes,json=configChanges,proto3" json:"config_changes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

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

var xxx_messageInfo_ChangeReport proto.InternalMessageInfo

func (m *ChangeReport) GetConfigChanges() []*configchange.ConfigChange {
	if m != nil {
		return m.ConfigChanges
	}
	return nil
}

// A rollout resource that defines how service configuration versions are pushed
// to control plane systems. Typically, you create a new version of the
// service config, and then create a Rollout to push the service config.
type Rollout struct {
	// Optional unique identifier of this Rollout. Only lower case letters, digits
	//  and '-' are allowed.
	//
	// If not specified by client, the server will generate one. The generated id
	// will have the form of <date><revision number>, where "date" is the create
	// date in ISO 8601 format.  "revision number" is a monotonically increasing
	// positive number that is reset every day for each service.
	// An example of the generated rollout_id is '2016-02-16r1'
	RolloutId string `protobuf:"bytes,1,opt,name=rollout_id,json=rolloutId,proto3" json:"rollout_id,omitempty"`
	// Creation time of the rollout. Readonly.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The user who created the Rollout. Readonly.
	CreatedBy string `protobuf:"bytes,3,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
	// The status of this rollout. Readonly. In case of a failed rollout,
	// the system will automatically rollback to the current Rollout
	// version. Readonly.
	Status Rollout_RolloutStatus `protobuf:"varint,4,opt,name=status,proto3,enum=google.api.servicemanagement.v1.Rollout_RolloutStatus" json:"status,omitempty"`
	// Strategy that defines which versions of service configurations should be
	// pushed
	// and how they should be used at runtime.
	//
	// Types that are valid to be assigned to Strategy:
	//	*Rollout_TrafficPercentStrategy_
	//	*Rollout_DeleteServiceStrategy_
	Strategy isRollout_Strategy `protobuf_oneof:"strategy"`
	// The name of the service associated with this Rollout.
	ServiceName          string   `protobuf:"bytes,8,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

var xxx_messageInfo_Rollout proto.InternalMessageInfo

func (m *Rollout) GetRolloutId() string {
	if m != nil {
		return m.RolloutId
	}
	return ""
}

func (m *Rollout) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Rollout) GetCreatedBy() string {
	if m != nil {
		return m.CreatedBy
	}
	return ""
}

func (m *Rollout) GetStatus() Rollout_RolloutStatus {
	if m != nil {
		return m.Status
	}
	return Rollout_ROLLOUT_STATUS_UNSPECIFIED
}

type isRollout_Strategy interface {
	isRollout_Strategy()
}

type Rollout_TrafficPercentStrategy_ struct {
	TrafficPercentStrategy *Rollout_TrafficPercentStrategy `protobuf:"bytes,5,opt,name=traffic_percent_strategy,json=trafficPercentStrategy,proto3,oneof"`
}

type Rollout_DeleteServiceStrategy_ struct {
	DeleteServiceStrategy *Rollout_DeleteServiceStrategy `protobuf:"bytes,200,opt,name=delete_service_strategy,json=deleteServiceStrategy,proto3,oneof"`
}

func (*Rollout_TrafficPercentStrategy_) isRollout_Strategy() {}

func (*Rollout_DeleteServiceStrategy_) isRollout_Strategy() {}

func (m *Rollout) GetStrategy() isRollout_Strategy {
	if m != nil {
		return m.Strategy
	}
	return nil
}

func (m *Rollout) GetTrafficPercentStrategy() *Rollout_TrafficPercentStrategy {
	if x, ok := m.GetStrategy().(*Rollout_TrafficPercentStrategy_); ok {
		return x.TrafficPercentStrategy
	}
	return nil
}

func (m *Rollout) GetDeleteServiceStrategy() *Rollout_DeleteServiceStrategy {
	if x, ok := m.GetStrategy().(*Rollout_DeleteServiceStrategy_); ok {
		return x.DeleteServiceStrategy
	}
	return nil
}

func (m *Rollout) GetServiceName() string {
	if m != nil {
		return m.ServiceName
	}
	return ""
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*Rollout) 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 _Rollout_OneofMarshaler, _Rollout_OneofUnmarshaler, _Rollout_OneofSizer, []interface{}{
		(*Rollout_TrafficPercentStrategy_)(nil),
		(*Rollout_DeleteServiceStrategy_)(nil),
	}
}

func _Rollout_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Rollout)
	// strategy
	switch x := m.Strategy.(type) {
	case *Rollout_TrafficPercentStrategy_:
		b.EncodeVarint(5<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.TrafficPercentStrategy); err != nil {
			return err
		}
	case *Rollout_DeleteServiceStrategy_:
		b.EncodeVarint(200<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.DeleteServiceStrategy); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("Rollout.Strategy has unexpected type %T", x)
	}
	return nil
}

func _Rollout_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Rollout)
	switch tag {
	case 5: // strategy.traffic_percent_strategy
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Rollout_TrafficPercentStrategy)
		err := b.DecodeMessage(msg)
		m.Strategy = &Rollout_TrafficPercentStrategy_{msg}
		return true, err
	case 200: // strategy.delete_service_strategy
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Rollout_DeleteServiceStrategy)
		err := b.DecodeMessage(msg)
		m.Strategy = &Rollout_DeleteServiceStrategy_{msg}
		return true, err
	default:
		return false, nil
	}
}

func _Rollout_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*Rollout)
	// strategy
	switch x := m.Strategy.(type) {
	case *Rollout_TrafficPercentStrategy_:
		s := proto.Size(x.TrafficPercentStrategy)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Rollout_DeleteServiceStrategy_:
		s := proto.Size(x.DeleteServiceStrategy)
		n += 2 // 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
}

// Strategy that specifies how clients of Google Service Controller want to
// send traffic to use different config versions. This is generally
// used by API proxy to split traffic based on your configured precentage for
// each config version.
//
// One example of how to gradually rollout a new service configuration using
// this
// strategy:
// Day 1
//
//     Rollout {
//       id: "example.googleapis.com/rollout_20160206"
//       traffic_percent_strategy {
//         percentages: {
//           "example.googleapis.com/20160201": 70.00
//           "example.googleapis.com/20160206": 30.00
//         }
//       }
//     }
//
// Day 2
//
//     Rollout {
//       id: "example.googleapis.com/rollout_20160207"
//       traffic_percent_strategy: {
//         percentages: {
//           "example.googleapis.com/20160206": 100.00
//         }
//       }
//     }
type Rollout_TrafficPercentStrategy struct {
	// Maps service configuration IDs to their corresponding traffic percentage.
	// Key is the service configuration ID, Value is the traffic percentage
	// which must be greater than 0.0 and the sum must equal to 100.0.
	Percentages          map[string]float64 `protobuf:"bytes,1,rep,name=percentages,proto3" json:"percentages,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

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

var xxx_messageInfo_Rollout_TrafficPercentStrategy proto.InternalMessageInfo

func (m *Rollout_TrafficPercentStrategy) GetPercentages() map[string]float64 {
	if m != nil {
		return m.Percentages
	}
	return nil
}

// Strategy used to delete a service. This strategy is a placeholder only
// used by the system generated rollout to delete a service.
type Rollout_DeleteServiceStrategy struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

var xxx_messageInfo_Rollout_DeleteServiceStrategy proto.InternalMessageInfo

func init() {
	proto.RegisterType((*ManagedService)(nil), "google.api.servicemanagement.v1.ManagedService")
	proto.RegisterType((*OperationMetadata)(nil), "google.api.servicemanagement.v1.OperationMetadata")
	proto.RegisterType((*OperationMetadata_Step)(nil), "google.api.servicemanagement.v1.OperationMetadata.Step")
	proto.RegisterType((*Diagnostic)(nil), "google.api.servicemanagement.v1.Diagnostic")
	proto.RegisterType((*ConfigSource)(nil), "google.api.servicemanagement.v1.ConfigSource")
	proto.RegisterType((*ConfigFile)(nil), "google.api.servicemanagement.v1.ConfigFile")
	proto.RegisterType((*ConfigRef)(nil), "google.api.servicemanagement.v1.ConfigRef")
	proto.RegisterType((*ChangeReport)(nil), "google.api.servicemanagement.v1.ChangeReport")
	proto.RegisterType((*Rollout)(nil), "google.api.servicemanagement.v1.Rollout")
	proto.RegisterType((*Rollout_TrafficPercentStrategy)(nil), "google.api.servicemanagement.v1.Rollout.TrafficPercentStrategy")
	proto.RegisterMapType((map[string]float64)(nil), "google.api.servicemanagement.v1.Rollout.TrafficPercentStrategy.PercentagesEntry")
	proto.RegisterType((*Rollout_DeleteServiceStrategy)(nil), "google.api.servicemanagement.v1.Rollout.DeleteServiceStrategy")
	proto.RegisterEnum("google.api.servicemanagement.v1.OperationMetadata_Status", OperationMetadata_Status_name, OperationMetadata_Status_value)
	proto.RegisterEnum("google.api.servicemanagement.v1.Diagnostic_Kind", Diagnostic_Kind_name, Diagnostic_Kind_value)
	proto.RegisterEnum("google.api.servicemanagement.v1.ConfigFile_FileType", ConfigFile_FileType_name, ConfigFile_FileType_value)
	proto.RegisterEnum("google.api.servicemanagement.v1.Rollout_RolloutStatus", Rollout_RolloutStatus_name, Rollout_RolloutStatus_value)
}

func init() {
	proto.RegisterFile("google/api/servicemanagement/v1/resources.proto", fileDescriptor_resources_7dc64a21ee38b48b)
}

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