// Code generated by protoc-gen-go.
// source: cq.proto
// DO NOT EDIT!

/*
Package cq is a generated protocol buffer package.

It is generated from these files:
	cq.proto

It has these top-level messages:
	Config
	Rietveld
	Gerrit
	Verifiers
*/
package cq

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This message describes a Commit Queue configuration. The config file cq.cfg
// should be stored in the config directory located on the branch that this CQ
// should commit to.
type Config struct {
	// Required. Version of the config format.
	Version *int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
	// Required. Name of the CQ. May only contain characters [a-zA-Z0-9_]. It is
	// used for various purposes, including, but not limited to match the project
	// name for CLs on Rietveld, name of the project in the status app, internal
	// name for logging etc. CQ name should not be confused with the project name
	// in LUCI as there may be multiple CQs per project.
	CqName *string `protobuf:"bytes,2,opt,name=cq_name" json:"cq_name,omitempty"`
	// List of verifiers that verify if the CL is ready to be committed.
	Verifiers *Verifiers `protobuf:"bytes,3,opt,name=verifiers" json:"verifiers,omitempty"`
	// URL of the CQ status app to push updates to.
	CqStatusUrl *string `protobuf:"bytes,4,opt,name=cq_status_url" json:"cq_status_url,omitempty"`
	// When true, hash of the commit is not posted by CQ. This is used for
	// projects using gnumbd as latter publishes actual hash later. Default value
	// is false.
	HideRefInCommittedMsg *bool `protobuf:"varint,5,opt,name=hide_ref_in_committed_msg" json:"hide_ref_in_committed_msg,omitempty"`
	// Delay between commit bursts in seconds. Default value is 480.
	CommitBurstDelay *int32 `protobuf:"varint,6,opt,name=commit_burst_delay" json:"commit_burst_delay,omitempty"`
	// Maximum number of commits done sequentially, before waiting for
	// commit_burst_delay. Default value is 4.
	MaxCommitBurst *int32 `protobuf:"varint,7,opt,name=max_commit_burst" json:"max_commit_burst,omitempty"`
	// Defines whether a CQ is used in production. Allows to disable CQ for a
	// given branch. Default is true.
	InProduction *bool `protobuf:"varint,8,opt,name=in_production" json:"in_production,omitempty"`
	// Configuration options for Rietveld code review.
	Rietveld *Rietveld `protobuf:"bytes,9,opt,name=rietveld" json:"rietveld,omitempty"`
	// EXPERIMENTAL! Configuration options for Gerrit code review.
	// TODO(tandrii): update this doc (GERRIT).
	Gerrit *Gerrit `protobuf:"bytes,15,opt,name=gerrit" json:"gerrit,omitempty"`
	// This can be used to override the Git repository URL used to checkout and
	// commit changes on CQ host. This should only be used in case, when the
	// source repository is not supported by luci-config (e.g. GitHub).
	GitRepoUrl *string `protobuf:"bytes,10,opt,name=git_repo_url" json:"git_repo_url,omitempty"`
	// Target ref to commit to. This can be used to specify a different ref than
	// the one where the luci config is located. This is useful, e.g. for projects
	// that use gnumbd where CQ should commit into a pending ref.
	TargetRef *string `protobuf:"bytes,11,opt,name=target_ref" json:"target_ref,omitempty"`
	// Deprecated. URL of the SVN repository. We are deprecating SVN support.
	SvnRepoUrl *string `protobuf:"bytes,12,opt,name=svn_repo_url" json:"svn_repo_url,omitempty"`
	// If present, the CQ will refrain from processing any commits whose start
	// time is >= this time.
	//
	// This is an UTC RFC3339 (stiptime(tm)) string representing the time.
	DrainingStartTime *string `protobuf:"bytes,13,opt,name=draining_start_time" json:"draining_start_time,omitempty"`
	XXX_unrecognized  []byte  `json:"-"`
}

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

func (m *Config) GetVersion() int32 {
	if m != nil && m.Version != nil {
		return *m.Version
	}
	return 0
}

func (m *Config) GetCqName() string {
	if m != nil && m.CqName != nil {
		return *m.CqName
	}
	return ""
}

func (m *Config) GetVerifiers() *Verifiers {
	if m != nil {
		return m.Verifiers
	}
	return nil
}

func (m *Config) GetCqStatusUrl() string {
	if m != nil && m.CqStatusUrl != nil {
		return *m.CqStatusUrl
	}
	return ""
}

func (m *Config) GetHideRefInCommittedMsg() bool {
	if m != nil && m.HideRefInCommittedMsg != nil {
		return *m.HideRefInCommittedMsg
	}
	return false
}

func (m *Config) GetCommitBurstDelay() int32 {
	if m != nil && m.CommitBurstDelay != nil {
		return *m.CommitBurstDelay
	}
	return 0
}

func (m *Config) GetMaxCommitBurst() int32 {
	if m != nil && m.MaxCommitBurst != nil {
		return *m.MaxCommitBurst
	}
	return 0
}

func (m *Config) GetInProduction() bool {
	if m != nil && m.InProduction != nil {
		return *m.InProduction
	}
	return false
}

func (m *Config) GetRietveld() *Rietveld {
	if m != nil {
		return m.Rietveld
	}
	return nil
}

func (m *Config) GetGerrit() *Gerrit {
	if m != nil {
		return m.Gerrit
	}
	return nil
}

func (m *Config) GetGitRepoUrl() string {
	if m != nil && m.GitRepoUrl != nil {
		return *m.GitRepoUrl
	}
	return ""
}

func (m *Config) GetTargetRef() string {
	if m != nil && m.TargetRef != nil {
		return *m.TargetRef
	}
	return ""
}

func (m *Config) GetSvnRepoUrl() string {
	if m != nil && m.SvnRepoUrl != nil {
		return *m.SvnRepoUrl
	}
	return ""
}

func (m *Config) GetDrainingStartTime() string {
	if m != nil && m.DrainingStartTime != nil {
		return *m.DrainingStartTime
	}
	return ""
}

type Rietveld struct {
	// Required. URL of the codereview site.
	Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
	// List of regular expressions used to check if CL's base URL should be
	// processed by this CQ. This may be useful if a single branch has multiple
	// sub-directories that are handled by different CQs. When no regular
	// expressions are specified, the regular expression '.*', which matches any
	// directory, is used.
	ProjectBases     []string `protobuf:"bytes,2,rep,name=project_bases" json:"project_bases,omitempty"`
	XXX_unrecognized []byte   `json:"-"`
}

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

func (m *Rietveld) GetUrl() string {
	if m != nil && m.Url != nil {
		return *m.Url
	}
	return ""
}

func (m *Rietveld) GetProjectBases() []string {
	if m != nil {
		return m.ProjectBases
	}
	return nil
}

// Gerrit CQ is EXPERIMENTAL! See http://crbug.com/493899 for more info.
//
// Unlike Rietveld, Gerrit doesn't need a separate url.
// Instead, the git_repo_url must be specified on the Gerrit instance,
// and CQ will deduce Gerrit url from it.
//
// TODO(tandrii): support Rietveld and Gerrit at the same time.
// This basically requires to start two CQ instances, instead of one.
//
// For example, if https://chromium.googlesource.com/infra/infra.git is your
// repo url provided in `git_repo_url` above, then
// https://chromium-review.googlesource.com/#/admin/projects/infra/infra should
// show general properties of your project.
//
// Also,
// https://chromium-review.googlesource.com/#/admin/projects/infra/infra,access
// should show ACLs for refs in your project, but you may need to be admin to
// see it. This will come handy to enable and customize the CQ-related workflows
// for your project.
type Gerrit struct {
	// If set, tells CQ to set score on a given label to mark result of CQ run.
	// Typically, this is Commit-Queue-Verified label.
	// If not set, CQ will just try to hit submit button.
	CqVerifiedLabel  *string `protobuf:"bytes,1,opt,name=cq_verified_label" json:"cq_verified_label,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

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

func (m *Gerrit) GetCqVerifiedLabel() string {
	if m != nil && m.CqVerifiedLabel != nil {
		return *m.CqVerifiedLabel
	}
	return ""
}

// Verifiers are various types of checks that a Commit Queue performs on a CL.
// All verifiers must pass in order for a CL to be landed. Configuration file
// describes types of verifiers that should be applied to each CL and their
// parameters.
type Verifiers struct {
	// This verifier is used to ensure that an LGTM was posted to the code review
	// site from a valid project committer.
	// This verifier is not supported with Gerrit.
	ReviewerLgtm *Verifiers_ReviewerLgtmVerifier `protobuf:"bytes,1,opt,name=reviewer_lgtm" json:"reviewer_lgtm,omitempty"`
	// This verifier is used to check tree status before committing a CL. If the
	// tree is closed, then the verifier will wait until it is reopened.
	TreeStatus *Verifiers_TreeStatusLgtmVerifier `protobuf:"bytes,2,opt,name=tree_status" json:"tree_status,omitempty"`
	// This verifier triggers a set of tryjobs that are to be run on builders on
	// Buildbot. It automatically retries failed try-jobs and only allows CL to
	// land if each builder has succeeded in the latest retry. If a given tryjob
	// result is too old (>1 day) it is ignored.
	TryJob *Verifiers_TryJobVerifier `protobuf:"bytes,3,opt,name=try_job" json:"try_job,omitempty"`
	// This verifier is used to ensure that the author has signed Google's
	// Contributor License Agreement.
	SignCla          *Verifiers_SignCLAVerifier `protobuf:"bytes,4,opt,name=sign_cla" json:"sign_cla,omitempty"`
	XXX_unrecognized []byte                     `json:"-"`
}

func (m *Verifiers) Reset()                    { *m = Verifiers{} }
func (m *Verifiers) String() string            { return proto.CompactTextString(m) }
func (*Verifiers) ProtoMessage()               {}
func (*Verifiers) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

func (m *Verifiers) GetReviewerLgtm() *Verifiers_ReviewerLgtmVerifier {
	if m != nil {
		return m.ReviewerLgtm
	}
	return nil
}

func (m *Verifiers) GetTreeStatus() *Verifiers_TreeStatusLgtmVerifier {
	if m != nil {
		return m.TreeStatus
	}
	return nil
}

func (m *Verifiers) GetTryJob() *Verifiers_TryJobVerifier {
	if m != nil {
		return m.TryJob
	}
	return nil
}

func (m *Verifiers) GetSignCla() *Verifiers_SignCLAVerifier {
	if m != nil {
		return m.SignCla
	}
	return nil
}

type Verifiers_ReviewerLgtmVerifier struct {
	// Required. Name of the chrome-infra-auth group, which contains the
	// list of identities authorized to approve (lgtm) a CL. This list is also
	// known as a committer list and often corresponds to the list of accounts
	// that have direct commit/push access to the repository. Some older lists
	// are still stored in the CQ source code, but are being moved to the new
	// location (https://crbug.com/511311).
	CommitterList *string `protobuf:"bytes,1,opt,name=committer_list" json:"committer_list,omitempty"`
	// Number of seconds to wait for LGTM on CQ. Default value is 0.
	MaxWaitSecs *int32 `protobuf:"varint,2,opt,name=max_wait_secs" json:"max_wait_secs,omitempty"`
	// Message to be posted to code review site when no LGTM is found. Default
	// value is "No LGTM from a valid reviewer yet. Only full committers are "
	// "accepted.\nEven if an LGTM may have been provided, it was from a "
	// "non-committer,\n_not_ a full super star committer.\nSee "
	// "http://www.chromium.org/getting-involved/become-a-committer\nNote that "
	// "this has nothing to do with OWNERS files."
	NoLgtmMsg        *string `protobuf:"bytes,3,opt,name=no_lgtm_msg" json:"no_lgtm_msg,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

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

func (m *Verifiers_ReviewerLgtmVerifier) GetCommitterList() string {
	if m != nil && m.CommitterList != nil {
		return *m.CommitterList
	}
	return ""
}

func (m *Verifiers_ReviewerLgtmVerifier) GetMaxWaitSecs() int32 {
	if m != nil && m.MaxWaitSecs != nil {
		return *m.MaxWaitSecs
	}
	return 0
}

func (m *Verifiers_ReviewerLgtmVerifier) GetNoLgtmMsg() string {
	if m != nil && m.NoLgtmMsg != nil {
		return *m.NoLgtmMsg
	}
	return ""
}

type Verifiers_TreeStatusLgtmVerifier struct {
	// Required. URL of the project tree status app.
	TreeStatusUrl    *string `protobuf:"bytes,1,opt,name=tree_status_url" json:"tree_status_url,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *Verifiers_TreeStatusLgtmVerifier) Reset()         { *m = Verifiers_TreeStatusLgtmVerifier{} }
func (m *Verifiers_TreeStatusLgtmVerifier) String() string { return proto.CompactTextString(m) }
func (*Verifiers_TreeStatusLgtmVerifier) ProtoMessage()    {}
func (*Verifiers_TreeStatusLgtmVerifier) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{3, 1}
}

func (m *Verifiers_TreeStatusLgtmVerifier) GetTreeStatusUrl() string {
	if m != nil && m.TreeStatusUrl != nil {
		return *m.TreeStatusUrl
	}
	return ""
}

type Verifiers_TryJobVerifier struct {
	// Buckets on which tryjobs are triggered/watched.
	Buckets []*Verifiers_TryJobVerifier_Bucket `protobuf:"bytes,1,rep,name=buckets" json:"buckets,omitempty"`
	// Provides project specific trybot retry configuration. This overrides the
	// defaults used in the CQ.
	TryJobRetryConfig *Verifiers_TryJobVerifier_TryJobRetryConfig `protobuf:"bytes,2,opt,name=try_job_retry_config" json:"try_job_retry_config,omitempty"`
	XXX_unrecognized  []byte                                      `json:"-"`
}

func (m *Verifiers_TryJobVerifier) Reset()                    { *m = Verifiers_TryJobVerifier{} }
func (m *Verifiers_TryJobVerifier) String() string            { return proto.CompactTextString(m) }
func (*Verifiers_TryJobVerifier) ProtoMessage()               {}
func (*Verifiers_TryJobVerifier) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 2} }

func (m *Verifiers_TryJobVerifier) GetBuckets() []*Verifiers_TryJobVerifier_Bucket {
	if m != nil {
		return m.Buckets
	}
	return nil
}

func (m *Verifiers_TryJobVerifier) GetTryJobRetryConfig() *Verifiers_TryJobVerifier_TryJobRetryConfig {
	if m != nil {
		return m.TryJobRetryConfig
	}
	return nil
}

type Verifiers_TryJobVerifier_Builder struct {
	// Name of the builder.
	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Optionally specify a builder name that triggers the given builder.
	// Otherwise, CQ will trigger this builder (default). If in doubt, you
	// probably won't need this.
	TriggeredBy *string `protobuf:"bytes,2,opt,name=triggered_by" json:"triggered_by,omitempty"`
	// When this field is present, it marks given builder as experimental. It
	// is only executed on a given percentage of the CLs and the outcome does
	// not affect the decicion whether a CL can land or not. This is typically
	// used to test new builders and estimate their capacity requirements.
	ExperimentPercentage *float32 `protobuf:"fixed32,4,opt,name=experiment_percentage" json:"experiment_percentage,omitempty"`
	XXX_unrecognized     []byte   `json:"-"`
}

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

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

func (m *Verifiers_TryJobVerifier_Builder) GetTriggeredBy() string {
	if m != nil && m.TriggeredBy != nil {
		return *m.TriggeredBy
	}
	return ""
}

func (m *Verifiers_TryJobVerifier_Builder) GetExperimentPercentage() float32 {
	if m != nil && m.ExperimentPercentage != nil {
		return *m.ExperimentPercentage
	}
	return 0
}

type Verifiers_TryJobVerifier_Bucket struct {
	// Name of the bucket. This is typically the same as a master name without
	// the 'master.' prefix, e.g. 'chromium.linux' or 'tryserver.webrtc'. CQ
	// will automatically add 'master.' prefix if not there.
	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Builders on which tryjobs should be triggered.
	Builders         []*Verifiers_TryJobVerifier_Builder `protobuf:"bytes,2,rep,name=builders" json:"builders,omitempty"`
	XXX_unrecognized []byte                              `json:"-"`
}

func (m *Verifiers_TryJobVerifier_Bucket) Reset()         { *m = Verifiers_TryJobVerifier_Bucket{} }
func (m *Verifiers_TryJobVerifier_Bucket) String() string { return proto.CompactTextString(m) }
func (*Verifiers_TryJobVerifier_Bucket) ProtoMessage()    {}
func (*Verifiers_TryJobVerifier_Bucket) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{3, 2, 1}
}

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

func (m *Verifiers_TryJobVerifier_Bucket) GetBuilders() []*Verifiers_TryJobVerifier_Builder {
	if m != nil {
		return m.Builders
	}
	return nil
}

type Verifiers_TryJobVerifier_TryJobRetryConfig struct {
	// Retry quota for a single tryjob.
	TryJobRetryQuota *int32 `protobuf:"varint,1,opt,name=try_job_retry_quota" json:"try_job_retry_quota,omitempty"`
	// Retry quota for all tryjobs in a CL.
	GlobalRetryQuota *int32 `protobuf:"varint,2,opt,name=global_retry_quota" json:"global_retry_quota,omitempty"`
	// The weight assigned to each tryjob failure.
	FailureRetryWeight *int32 `protobuf:"varint,3,opt,name=failure_retry_weight" json:"failure_retry_weight,omitempty"`
	// The weight assigned to each transient failure.
	TransientFailureRetryWeight *int32 `protobuf:"varint,4,opt,name=transient_failure_retry_weight" json:"transient_failure_retry_weight,omitempty"`
	// The weight assigned to tryjob timeouts.
	TimeoutRetryWeight *int32 `protobuf:"varint,5,opt,name=timeout_retry_weight" json:"timeout_retry_weight,omitempty"`
	XXX_unrecognized   []byte `json:"-"`
}

func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) Reset() {
	*m = Verifiers_TryJobVerifier_TryJobRetryConfig{}
}
func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) String() string {
	return proto.CompactTextString(m)
}
func (*Verifiers_TryJobVerifier_TryJobRetryConfig) ProtoMessage() {}
func (*Verifiers_TryJobVerifier_TryJobRetryConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{3, 2, 2}
}

func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetTryJobRetryQuota() int32 {
	if m != nil && m.TryJobRetryQuota != nil {
		return *m.TryJobRetryQuota
	}
	return 0
}

func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetGlobalRetryQuota() int32 {
	if m != nil && m.GlobalRetryQuota != nil {
		return *m.GlobalRetryQuota
	}
	return 0
}

func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetFailureRetryWeight() int32 {
	if m != nil && m.FailureRetryWeight != nil {
		return *m.FailureRetryWeight
	}
	return 0
}

func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetTransientFailureRetryWeight() int32 {
	if m != nil && m.TransientFailureRetryWeight != nil {
		return *m.TransientFailureRetryWeight
	}
	return 0
}

func (m *Verifiers_TryJobVerifier_TryJobRetryConfig) GetTimeoutRetryWeight() int32 {
	if m != nil && m.TimeoutRetryWeight != nil {
		return *m.TimeoutRetryWeight
	}
	return 0
}

type Verifiers_SignCLAVerifier struct {
	XXX_unrecognized []byte `json:"-"`
}

func (m *Verifiers_SignCLAVerifier) Reset()                    { *m = Verifiers_SignCLAVerifier{} }
func (m *Verifiers_SignCLAVerifier) String() string            { return proto.CompactTextString(m) }
func (*Verifiers_SignCLAVerifier) ProtoMessage()               {}
func (*Verifiers_SignCLAVerifier) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 3} }

func init() {
	proto.RegisterType((*Config)(nil), "Config")
	proto.RegisterType((*Rietveld)(nil), "Rietveld")
	proto.RegisterType((*Gerrit)(nil), "Gerrit")
	proto.RegisterType((*Verifiers)(nil), "Verifiers")
	proto.RegisterType((*Verifiers_ReviewerLgtmVerifier)(nil), "Verifiers.ReviewerLgtmVerifier")
	proto.RegisterType((*Verifiers_TreeStatusLgtmVerifier)(nil), "Verifiers.TreeStatusLgtmVerifier")
	proto.RegisterType((*Verifiers_TryJobVerifier)(nil), "Verifiers.TryJobVerifier")
	proto.RegisterType((*Verifiers_TryJobVerifier_Builder)(nil), "Verifiers.TryJobVerifier.Builder")
	proto.RegisterType((*Verifiers_TryJobVerifier_Bucket)(nil), "Verifiers.TryJobVerifier.Bucket")
	proto.RegisterType((*Verifiers_TryJobVerifier_TryJobRetryConfig)(nil), "Verifiers.TryJobVerifier.TryJobRetryConfig")
	proto.RegisterType((*Verifiers_SignCLAVerifier)(nil), "Verifiers.SignCLAVerifier")
}

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