| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // source: github.com/luci/luci-go/deploytool/api/deploy/config.proto |
| |
| package deploy |
| |
| 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 |
| |
| // * The AppEngine module version scheme to use. |
| type Deployment_CloudProject_VersionScheme int32 |
| |
| const ( |
| // The DEFAULT version scheme uses the source group hash |
| Deployment_CloudProject_DEFAULT Deployment_CloudProject_VersionScheme = 0 |
| ) |
| |
| var Deployment_CloudProject_VersionScheme_name = map[int32]string{ |
| 0: "DEFAULT", |
| } |
| var Deployment_CloudProject_VersionScheme_value = map[string]int32{ |
| "DEFAULT": 0, |
| } |
| |
| func (x Deployment_CloudProject_VersionScheme) String() string { |
| return proto.EnumName(Deployment_CloudProject_VersionScheme_name, int32(x)) |
| } |
| func (Deployment_CloudProject_VersionScheme) EnumDescriptor() ([]byte, []int) { |
| return fileDescriptor2, []int{3, 0, 0} |
| } |
| |
| // * |
| // Layout defines the root directory of a deployment configuration. |
| // |
| // Each layout field has a default value, so an empty layout protobuf file is |
| // a valid layout. Each field may be overridden to suit your repository's |
| // structure, if needed. |
| type Layout struct { |
| // * |
| // If specified, the relative path to the sources configuration directory. If |
| // empty, this will default to "sources". |
| SourcesPath string `protobuf:"bytes,1,opt,name=sources_path,json=sourcesPath" json:"sources_path,omitempty"` |
| // * |
| // If specified, the relative path to the applications configuration |
| // directory. If empty, this will default to "applications". |
| ApplicationsPath string `protobuf:"bytes,2,opt,name=applications_path,json=applicationsPath" json:"applications_path,omitempty"` |
| // * |
| // If specified, the relative path to the deployments configuration directory. |
| // If empty, this will default to "deployments". |
| DeploymentsPath string `protobuf:"bytes,3,opt,name=deployments_path,json=deploymentsPath" json:"deployments_path,omitempty"` |
| // * |
| // If specified, the working directory to use. |
| WorkingPath string `protobuf:"bytes,5,opt,name=working_path,json=workingPath" json:"working_path,omitempty"` |
| } |
| |
| func (m *Layout) Reset() { *m = Layout{} } |
| func (m *Layout) String() string { return proto.CompactTextString(m) } |
| func (*Layout) ProtoMessage() {} |
| func (*Layout) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } |
| |
| func (m *Layout) GetSourcesPath() string { |
| if m != nil { |
| return m.SourcesPath |
| } |
| return "" |
| } |
| |
| func (m *Layout) GetApplicationsPath() string { |
| if m != nil { |
| return m.ApplicationsPath |
| } |
| return "" |
| } |
| |
| func (m *Layout) GetDeploymentsPath() string { |
| if m != nil { |
| return m.DeploymentsPath |
| } |
| return "" |
| } |
| |
| func (m *Layout) GetWorkingPath() string { |
| if m != nil { |
| return m.WorkingPath |
| } |
| return "" |
| } |
| |
| // * |
| // Source represents a single source configuration file. |
| // |
| // It contains definitions for the set of source repositories that make up this |
| // Source. |
| // |
| // Each source is defined within a source group directory, and is named |
| // "<source-name>.cfg". The source can be referenced internally by its full |
| // source path, "<source-group-name>/<source-name>". |
| // |
| // If the source root contains a "luci-deploy.cfg" file, it will be read |
| // and interepreted as a "SourceLayout" message. |
| type Source struct { |
| // Types that are valid to be assigned to Source: |
| // *Source_Git |
| Source isSource_Source `protobuf_oneof:"source"` |
| // * |
| // Go Paths to add to this repository. |
| // |
| // This will be prepended to the GOPATH that the repository exports during its |
| // configuration/initialization. |
| GoPath []*GoPath `protobuf:"bytes,10,rep,name=go_path,json=goPath" json:"go_path,omitempty"` |
| // * |
| // If true, this repository is allowed to run scripts: |
| // - At source initialization time, the initialization scripts defined in |
| // "/luci-deploy.cfg" will be executed. |
| // - At build time, build scripts associated with a Component will |
| // be executed. Note that if the a Component declares a build script and `run_scripts` is not true, |
| // the build will fail. |
| // |
| // It is important that this repository is trusted if this is set to true, |
| // since this script will be run on the deployment system under the |
| // deployment user account. |
| RunScripts bool `protobuf:"varint,11,opt,name=run_scripts,json=runScripts" json:"run_scripts,omitempty"` |
| // * If true, mark this as a tained source. |
| Tainted bool `protobuf:"varint,12,opt,name=tainted" json:"tainted,omitempty"` |
| } |
| |
| func (m *Source) Reset() { *m = Source{} } |
| func (m *Source) String() string { return proto.CompactTextString(m) } |
| func (*Source) ProtoMessage() {} |
| func (*Source) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} } |
| |
| type isSource_Source interface { |
| isSource_Source() |
| } |
| |
| type Source_Git struct { |
| Git *Source_GitRepo `protobuf:"bytes,1,opt,name=git,oneof"` |
| } |
| |
| func (*Source_Git) isSource_Source() {} |
| |
| func (m *Source) GetSource() isSource_Source { |
| if m != nil { |
| return m.Source |
| } |
| return nil |
| } |
| |
| func (m *Source) GetGit() *Source_GitRepo { |
| if x, ok := m.GetSource().(*Source_Git); ok { |
| return x.Git |
| } |
| return nil |
| } |
| |
| func (m *Source) GetGoPath() []*GoPath { |
| if m != nil { |
| return m.GoPath |
| } |
| return nil |
| } |
| |
| func (m *Source) GetRunScripts() bool { |
| if m != nil { |
| return m.RunScripts |
| } |
| return false |
| } |
| |
| func (m *Source) GetTainted() bool { |
| if m != nil { |
| return m.Tainted |
| } |
| return false |
| } |
| |
| // XXX_OneofFuncs is for the internal use of the proto package. |
| func (*Source) 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 _Source_OneofMarshaler, _Source_OneofUnmarshaler, _Source_OneofSizer, []interface{}{ |
| (*Source_Git)(nil), |
| } |
| } |
| |
| func _Source_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { |
| m := msg.(*Source) |
| // source |
| switch x := m.Source.(type) { |
| case *Source_Git: |
| b.EncodeVarint(1<<3 | proto.WireBytes) |
| if err := b.EncodeMessage(x.Git); err != nil { |
| return err |
| } |
| case nil: |
| default: |
| return fmt.Errorf("Source.Source has unexpected type %T", x) |
| } |
| return nil |
| } |
| |
| func _Source_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { |
| m := msg.(*Source) |
| switch tag { |
| case 1: // source.git |
| if wire != proto.WireBytes { |
| return true, proto.ErrInternalBadWireType |
| } |
| msg := new(Source_GitRepo) |
| err := b.DecodeMessage(msg) |
| m.Source = &Source_Git{msg} |
| return true, err |
| default: |
| return false, nil |
| } |
| } |
| |
| func _Source_OneofSizer(msg proto.Message) (n int) { |
| m := msg.(*Source) |
| // source |
| switch x := m.Source.(type) { |
| case *Source_Git: |
| s := proto.Size(x.Git) |
| n += proto.SizeVarint(1<<3 | proto.WireBytes) |
| n += proto.SizeVarint(uint64(s)) |
| n += s |
| case nil: |
| default: |
| panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) |
| } |
| return n |
| } |
| |
| // * GitRepo is a named Git repository. |
| type Source_GitRepo struct { |
| // * |
| // URL is the base URL of the repository. |
| // |
| // If this is a "file://" URL, the local file path will be used as the |
| // repository source. |
| Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` |
| // * |
| // Ref is the name of the Git ref to check out. |
| // |
| // If empty, the unpinned "refs/heads/master" will be used if this is a |
| // remote repository, and the current checkout will be used if this is a |
| // local (file://...) repository. |
| Ref string `protobuf:"bytes,2,opt,name=ref" json:"ref,omitempty"` |
| } |
| |
| func (m *Source_GitRepo) Reset() { *m = Source_GitRepo{} } |
| func (m *Source_GitRepo) String() string { return proto.CompactTextString(m) } |
| func (*Source_GitRepo) ProtoMessage() {} |
| func (*Source_GitRepo) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1, 0} } |
| |
| func (m *Source_GitRepo) GetUrl() string { |
| if m != nil { |
| return m.Url |
| } |
| return "" |
| } |
| |
| func (m *Source_GitRepo) GetRef() string { |
| if m != nil { |
| return m.Ref |
| } |
| return "" |
| } |
| |
| // * |
| // Application represents a single application. |
| // |
| // Application configurations are located under the applications directory, and |
| // are named "<application-name>.cfg". The internal name for a given application |
| // is "<application-name>". |
| // |
| // An application is composed of high-level application settings, a set of |
| // component configurations loaded from sources, and application-wide settings |
| // for those components. |
| // |
| // A applications is not bound to any specific source group, so the same |
| // application can be applied (via deployments) to multiple source groups. This |
| // enables canary configurations to be expressed. |
| type Application struct { |
| Component []*Application_Component `protobuf:"bytes,1,rep,name=component" json:"component,omitempty"` |
| } |
| |
| func (m *Application) Reset() { *m = Application{} } |
| func (m *Application) String() string { return proto.CompactTextString(m) } |
| func (*Application) ProtoMessage() {} |
| func (*Application) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{2} } |
| |
| func (m *Application) GetComponent() []*Application_Component { |
| if m != nil { |
| return m.Component |
| } |
| return nil |
| } |
| |
| // * |
| // Each Component entry is a application Component that will be pulled in from |
| // its Source repository. An application is composed of multiple Components. |
| // |
| // A Component is a single, deployable entity. It should be self-contained and |
| // able to co-exist with other Components in the Application. |
| type Application_Component struct { |
| // * |
| // Name is the local name of this Component. |
| // |
| // It can be referenced as <application-name>/<name>. |
| Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` |
| // * The "<source-name>" of the source where this component is defined. |
| Source string `protobuf:"bytes,2,opt,name=source" json:"source,omitempty"` |
| // * The source-relative path to the Component within "<source-name>". |
| Path string `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"` |
| // * The names of other sources to pull in to build this Component. |
| OtherSource []string `protobuf:"bytes,4,rep,name=other_source,json=otherSource" json:"other_source,omitempty"` |
| } |
| |
| func (m *Application_Component) Reset() { *m = Application_Component{} } |
| func (m *Application_Component) String() string { return proto.CompactTextString(m) } |
| func (*Application_Component) ProtoMessage() {} |
| func (*Application_Component) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{2, 0} } |
| |
| func (m *Application_Component) GetName() string { |
| if m != nil { |
| return m.Name |
| } |
| return "" |
| } |
| |
| func (m *Application_Component) GetSource() string { |
| if m != nil { |
| return m.Source |
| } |
| return "" |
| } |
| |
| func (m *Application_Component) GetPath() string { |
| if m != nil { |
| return m.Path |
| } |
| return "" |
| } |
| |
| func (m *Application_Component) GetOtherSource() []string { |
| if m != nil { |
| return m.OtherSource |
| } |
| return nil |
| } |
| |
| // * |
| // A Deployment represents a single cloud project deployment. It binds a |
| // set of Application configurations to a set of Sources and provides |
| // deployment-specific details, variables, and parameters. |
| // |
| // Deployment configurations are located under the deployments directory, and |
| // are named "<deployment-name>.cfg". The internal project name for a given |
| // deployment is "<deployment-name>". |
| // |
| // Each deployment entry roughly corresponds to a single Cloud Platform project. |
| type Deployment struct { |
| // * The name of the source group to use for this deployment. |
| SourceGroup string `protobuf:"bytes,1,opt,name=source_group,json=sourceGroup" json:"source_group,omitempty"` |
| // * The name of the Application that this Deployment manages. |
| Application string `protobuf:"bytes,2,opt,name=application" json:"application,omitempty"` |
| CloudProject *Deployment_CloudProject `protobuf:"bytes,3,opt,name=cloud_project,json=cloudProject" json:"cloud_project,omitempty"` |
| // * |
| // Map of key/value parameters for this Deployment. |
| // |
| // These will be automatically substituted where parameter substitution is |
| // allowed. |
| Parameter map[string]string `protobuf:"bytes,4,rep,name=parameter" json:"parameter,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` |
| } |
| |
| func (m *Deployment) Reset() { *m = Deployment{} } |
| func (m *Deployment) String() string { return proto.CompactTextString(m) } |
| func (*Deployment) ProtoMessage() {} |
| func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{3} } |
| |
| func (m *Deployment) GetSourceGroup() string { |
| if m != nil { |
| return m.SourceGroup |
| } |
| return "" |
| } |
| |
| func (m *Deployment) GetApplication() string { |
| if m != nil { |
| return m.Application |
| } |
| return "" |
| } |
| |
| func (m *Deployment) GetCloudProject() *Deployment_CloudProject { |
| if m != nil { |
| return m.CloudProject |
| } |
| return nil |
| } |
| |
| func (m *Deployment) GetParameter() map[string]string { |
| if m != nil { |
| return m.Parameter |
| } |
| return nil |
| } |
| |
| // * |
| // CloudProject defines the parameters for the deployent's Google Cloud |
| // Platform project, if applicable. |
| type Deployment_CloudProject struct { |
| // * The cloud project name. |
| Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` |
| VersionScheme Deployment_CloudProject_VersionScheme `protobuf:"varint,2,opt,name=version_scheme,json=versionScheme,enum=deploy.Deployment_CloudProject_VersionScheme" json:"version_scheme,omitempty"` |
| ResourceRef []*Deployment_CloudProject_ResourceRef `protobuf:"bytes,4,rep,name=resource_ref,json=resourceRef" json:"resource_ref,omitempty"` |
| GkeCluster []*Deployment_CloudProject_GKECluster `protobuf:"bytes,5,rep,name=gke_cluster,json=gkeCluster" json:"gke_cluster,omitempty"` |
| } |
| |
| func (m *Deployment_CloudProject) Reset() { *m = Deployment_CloudProject{} } |
| func (m *Deployment_CloudProject) String() string { return proto.CompactTextString(m) } |
| func (*Deployment_CloudProject) ProtoMessage() {} |
| func (*Deployment_CloudProject) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{3, 0} } |
| |
| func (m *Deployment_CloudProject) GetName() string { |
| if m != nil { |
| return m.Name |
| } |
| return "" |
| } |
| |
| func (m *Deployment_CloudProject) GetVersionScheme() Deployment_CloudProject_VersionScheme { |
| if m != nil { |
| return m.VersionScheme |
| } |
| return Deployment_CloudProject_DEFAULT |
| } |
| |
| func (m *Deployment_CloudProject) GetResourceRef() []*Deployment_CloudProject_ResourceRef { |
| if m != nil { |
| return m.ResourceRef |
| } |
| return nil |
| } |
| |
| func (m *Deployment_CloudProject) GetGkeCluster() []*Deployment_CloudProject_GKECluster { |
| if m != nil { |
| return m.GkeCluster |
| } |
| return nil |
| } |
| |
| type Deployment_CloudProject_ResourceRef struct { |
| // * The name of the source that this resource resides in |
| Source string `protobuf:"bytes,1,opt,name=source" json:"source,omitempty"` |
| // * The source-relative path to the AppEngineResources text protobuf. |
| Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"` |
| } |
| |
| func (m *Deployment_CloudProject_ResourceRef) Reset() { *m = Deployment_CloudProject_ResourceRef{} } |
| func (m *Deployment_CloudProject_ResourceRef) String() string { return proto.CompactTextString(m) } |
| func (*Deployment_CloudProject_ResourceRef) ProtoMessage() {} |
| func (*Deployment_CloudProject_ResourceRef) Descriptor() ([]byte, []int) { |
| return fileDescriptor2, []int{3, 0, 0} |
| } |
| |
| func (m *Deployment_CloudProject_ResourceRef) GetSource() string { |
| if m != nil { |
| return m.Source |
| } |
| return "" |
| } |
| |
| func (m *Deployment_CloudProject_ResourceRef) GetPath() string { |
| if m != nil { |
| return m.Path |
| } |
| return "" |
| } |
| |
| // * |
| // Defines a Google Container Engine (GKE) cluster within this cloud |
| // project. |
| type Deployment_CloudProject_GKECluster struct { |
| // * The cluster name. |
| Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` |
| // * The cluster zone. |
| Zone string `protobuf:"bytes,2,opt,name=zone" json:"zone,omitempty"` |
| // * The number of nodes in this cluster. |
| Nodes int32 `protobuf:"varint,3,opt,name=nodes" json:"nodes,omitempty"` |
| // * The size of the disk. |
| DiskSizeGb int32 `protobuf:"varint,4,opt,name=disk_size_gb,json=diskSizeGb" json:"disk_size_gb,omitempty"` |
| // * The name of the GKE machine type for this cluster. |
| MachineType string `protobuf:"bytes,5,opt,name=machine_type,json=machineType" json:"machine_type,omitempty"` |
| // * If true, enable GKE's auto-upgrade feature. |
| EnableAutoUpgrade bool `protobuf:"varint,6,opt,name=enable_auto_upgrade,json=enableAutoUpgrade" json:"enable_auto_upgrade,omitempty"` |
| Pod []*Deployment_CloudProject_GKECluster_PodBinding `protobuf:"bytes,10,rep,name=pod" json:"pod,omitempty"` |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) Reset() { *m = Deployment_CloudProject_GKECluster{} } |
| func (m *Deployment_CloudProject_GKECluster) String() string { return proto.CompactTextString(m) } |
| func (*Deployment_CloudProject_GKECluster) ProtoMessage() {} |
| func (*Deployment_CloudProject_GKECluster) Descriptor() ([]byte, []int) { |
| return fileDescriptor2, []int{3, 0, 1} |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) GetName() string { |
| if m != nil { |
| return m.Name |
| } |
| return "" |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) GetZone() string { |
| if m != nil { |
| return m.Zone |
| } |
| return "" |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) GetNodes() int32 { |
| if m != nil { |
| return m.Nodes |
| } |
| return 0 |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) GetDiskSizeGb() int32 { |
| if m != nil { |
| return m.DiskSizeGb |
| } |
| return 0 |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) GetMachineType() string { |
| if m != nil { |
| return m.MachineType |
| } |
| return "" |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) GetEnableAutoUpgrade() bool { |
| if m != nil { |
| return m.EnableAutoUpgrade |
| } |
| return false |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster) GetPod() []*Deployment_CloudProject_GKECluster_PodBinding { |
| if m != nil { |
| return m.Pod |
| } |
| return nil |
| } |
| |
| // * Binds a ContainerEnginePod component to this GKE cluster. |
| type Deployment_CloudProject_GKECluster_PodBinding struct { |
| // * |
| // The name of the Component to bind to this cluster. This component |
| // must be a ContainerEnginePod Component. |
| Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` |
| // * The number of pod replicas to host on this cluster. |
| Replicas int32 `protobuf:"varint,2,opt,name=replicas" json:"replicas,omitempty"` |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster_PodBinding) Reset() { |
| *m = Deployment_CloudProject_GKECluster_PodBinding{} |
| } |
| func (m *Deployment_CloudProject_GKECluster_PodBinding) String() string { |
| return proto.CompactTextString(m) |
| } |
| func (*Deployment_CloudProject_GKECluster_PodBinding) ProtoMessage() {} |
| func (*Deployment_CloudProject_GKECluster_PodBinding) Descriptor() ([]byte, []int) { |
| return fileDescriptor2, []int{3, 0, 1, 0} |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster_PodBinding) GetName() string { |
| if m != nil { |
| return m.Name |
| } |
| return "" |
| } |
| |
| func (m *Deployment_CloudProject_GKECluster_PodBinding) GetReplicas() int32 { |
| if m != nil { |
| return m.Replicas |
| } |
| return 0 |
| } |
| |
| func init() { |
| proto.RegisterType((*Layout)(nil), "deploy.Layout") |
| proto.RegisterType((*Source)(nil), "deploy.Source") |
| proto.RegisterType((*Source_GitRepo)(nil), "deploy.Source.GitRepo") |
| proto.RegisterType((*Application)(nil), "deploy.Application") |
| proto.RegisterType((*Application_Component)(nil), "deploy.Application.Component") |
| proto.RegisterType((*Deployment)(nil), "deploy.Deployment") |
| proto.RegisterType((*Deployment_CloudProject)(nil), "deploy.Deployment.CloudProject") |
| proto.RegisterType((*Deployment_CloudProject_ResourceRef)(nil), "deploy.Deployment.CloudProject.ResourceRef") |
| proto.RegisterType((*Deployment_CloudProject_GKECluster)(nil), "deploy.Deployment.CloudProject.GKECluster") |
| proto.RegisterType((*Deployment_CloudProject_GKECluster_PodBinding)(nil), "deploy.Deployment.CloudProject.GKECluster.PodBinding") |
| proto.RegisterEnum("deploy.Deployment_CloudProject_VersionScheme", Deployment_CloudProject_VersionScheme_name, Deployment_CloudProject_VersionScheme_value) |
| } |
| |
| func init() { |
| proto.RegisterFile("github.com/luci/luci-go/deploytool/api/deploy/config.proto", fileDescriptor2) |
| } |
| |
| var fileDescriptor2 = []byte{ |
| // 790 bytes of a gzipped FileDescriptorProto |
| 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xdd, 0x6a, 0xe3, 0x46, |
| 0x18, 0x5d, 0xc5, 0xb1, 0x1d, 0x7f, 0x72, 0x5c, 0xef, 0xb4, 0x2c, 0x46, 0xb4, 0xac, 0xe3, 0x9b, |
| 0xa6, 0xbb, 0x44, 0x06, 0x97, 0x42, 0xbb, 0x0d, 0x94, 0x6c, 0x92, 0xba, 0xb0, 0x4b, 0x31, 0xe3, |
| 0xa4, 0xb7, 0x42, 0x96, 0x26, 0xf2, 0xd4, 0xf2, 0xcc, 0x30, 0x1a, 0xa5, 0x38, 0x0f, 0xd4, 0x57, |
| 0x28, 0xf4, 0x01, 0x7a, 0xdd, 0xbe, 0x51, 0x99, 0x1f, 0x45, 0x0a, 0x18, 0xd2, 0xde, 0x24, 0xf3, |
| 0x9d, 0x39, 0x73, 0xbe, 0x2f, 0x67, 0x8e, 0x26, 0xf0, 0x2e, 0xa3, 0x6a, 0x5d, 0xae, 0xc2, 0x84, |
| 0x6f, 0xa7, 0x79, 0x99, 0x50, 0xf3, 0xe3, 0x2c, 0xe3, 0xd3, 0x94, 0x88, 0x9c, 0xef, 0x14, 0xe7, |
| 0xf9, 0x34, 0x16, 0xd4, 0x95, 0xd3, 0x84, 0xb3, 0x3b, 0x9a, 0x85, 0x42, 0x72, 0xc5, 0x51, 0xc7, |
| 0x82, 0xc1, 0xf9, 0xff, 0xd4, 0x58, 0x93, 0x64, 0xc3, 0x4b, 0x65, 0x55, 0x26, 0xbf, 0x7b, 0xd0, |
| 0xf9, 0x18, 0xef, 0x78, 0xa9, 0xd0, 0x09, 0xf4, 0x0b, 0x5e, 0xca, 0x84, 0x14, 0x91, 0x88, 0xd5, |
| 0x7a, 0xe4, 0x8d, 0xbd, 0xd3, 0x1e, 0xf6, 0x1d, 0xb6, 0x88, 0xd5, 0x1a, 0xbd, 0x85, 0x97, 0xb1, |
| 0x10, 0x39, 0x4d, 0x62, 0x45, 0x39, 0x73, 0xbc, 0x03, 0xc3, 0x1b, 0x36, 0x37, 0x0c, 0xf9, 0x2b, |
| 0x18, 0xda, 0x9e, 0x5b, 0xc2, 0x94, 0xe3, 0xb6, 0x0c, 0xf7, 0x93, 0x06, 0x6e, 0xa8, 0x27, 0xd0, |
| 0xff, 0x8d, 0xcb, 0x0d, 0x65, 0x99, 0xa5, 0xb5, 0x6d, 0x6b, 0x87, 0x69, 0xca, 0xe4, 0x1f, 0x0f, |
| 0x3a, 0x4b, 0x33, 0x0a, 0x7a, 0x03, 0xad, 0x8c, 0x2a, 0x33, 0x9f, 0x3f, 0x7b, 0x15, 0x5a, 0xb1, |
| 0xd0, 0x6e, 0x86, 0x73, 0xaa, 0x30, 0x11, 0xfc, 0xa7, 0x17, 0x58, 0x93, 0xd0, 0x97, 0xd0, 0xcd, |
| 0xb8, 0x15, 0x85, 0x71, 0xeb, 0xd4, 0x9f, 0x0d, 0x2a, 0xfe, 0x9c, 0x6b, 0x5d, 0xdc, 0xc9, 0xcc, |
| 0x6f, 0xf4, 0x1a, 0x7c, 0x59, 0xb2, 0xa8, 0x48, 0x24, 0x15, 0xaa, 0x18, 0xf9, 0x63, 0xef, 0xf4, |
| 0x08, 0x83, 0x2c, 0xd9, 0xd2, 0x22, 0x68, 0x04, 0x5d, 0x15, 0x53, 0xa6, 0x48, 0x3a, 0xea, 0x9b, |
| 0xcd, 0xaa, 0x0c, 0xce, 0xa0, 0xeb, 0xba, 0xa2, 0x21, 0xb4, 0x4a, 0x99, 0x3b, 0xeb, 0xf4, 0x52, |
| 0x23, 0x92, 0xdc, 0x39, 0x93, 0xf4, 0xf2, 0xfd, 0x11, 0x74, 0xac, 0xa7, 0x93, 0x3f, 0x3d, 0xf0, |
| 0x2f, 0x6a, 0xdb, 0xd0, 0xf7, 0xd0, 0x4b, 0xf8, 0x56, 0x70, 0x46, 0x98, 0xfe, 0xf3, 0xf4, 0xb8, |
| 0x5f, 0x54, 0xe3, 0x36, 0x78, 0xe1, 0x65, 0x45, 0xc2, 0x35, 0x3f, 0x60, 0xd0, 0x7b, 0xc4, 0x11, |
| 0x82, 0x43, 0x16, 0x6f, 0x89, 0x1b, 0xc4, 0xac, 0xd1, 0xab, 0xaa, 0xaf, 0x1b, 0xc6, 0x55, 0x9a, |
| 0xdb, 0xb8, 0x1b, 0xb3, 0xd6, 0x17, 0xc2, 0xd5, 0x9a, 0xc8, 0xc8, 0x9d, 0x38, 0x1c, 0xb7, 0xf4, |
| 0x85, 0x18, 0xcc, 0x1a, 0x3d, 0xf9, 0xbb, 0x0b, 0x70, 0xf5, 0x78, 0x8f, 0x75, 0x7a, 0xa2, 0x4c, |
| 0xf2, 0x52, 0x3c, 0x4d, 0xcf, 0x5c, 0x43, 0x68, 0x0c, 0x7e, 0x23, 0x24, 0x6e, 0x8a, 0x26, 0x84, |
| 0xae, 0xe0, 0x38, 0xc9, 0x79, 0x99, 0x46, 0x42, 0xf2, 0x5f, 0x49, 0xa2, 0xcc, 0x4c, 0xfe, 0xec, |
| 0x75, 0x65, 0x42, 0xdd, 0x2f, 0xbc, 0xd4, 0xbc, 0x85, 0xa5, 0xe1, 0x7e, 0xd2, 0xa8, 0xd0, 0x0f, |
| 0xd0, 0x13, 0xb1, 0x8c, 0xb7, 0x44, 0x11, 0x69, 0x26, 0xf7, 0x67, 0x27, 0x7b, 0x14, 0x16, 0x15, |
| 0xe7, 0x9a, 0x29, 0xb9, 0xc3, 0xf5, 0x99, 0xe0, 0x8f, 0x36, 0xf4, 0x9b, 0xfa, 0x7b, 0xed, 0xbc, |
| 0x81, 0xc1, 0x3d, 0x91, 0x05, 0xe5, 0x3a, 0x34, 0x6b, 0xb2, 0xb5, 0xb6, 0x0e, 0x66, 0x67, 0xcf, |
| 0x0c, 0x1b, 0xfe, 0x62, 0x4f, 0x2d, 0xcd, 0x21, 0x7c, 0x7c, 0xdf, 0x2c, 0xd1, 0xcf, 0xd0, 0x97, |
| 0xc4, 0x19, 0xa9, 0x73, 0x63, 0xc7, 0x7f, 0xfb, 0x9c, 0x26, 0x76, 0x67, 0x30, 0xb9, 0xc3, 0xbe, |
| 0xac, 0x0b, 0xf4, 0x01, 0xfc, 0x6c, 0x43, 0xa2, 0x24, 0x2f, 0x0b, 0xed, 0x46, 0xdb, 0xc8, 0xbd, |
| 0x79, 0x4e, 0x6e, 0xfe, 0xe1, 0xfa, 0xd2, 0x9e, 0xc0, 0x90, 0x6d, 0x88, 0x5b, 0x07, 0xdf, 0x81, |
| 0xdf, 0x68, 0xd4, 0x08, 0x94, 0xb7, 0x37, 0x50, 0x07, 0x75, 0xa0, 0x82, 0xbf, 0x0e, 0x00, 0x6a, |
| 0xd5, 0xbd, 0x86, 0x22, 0x38, 0x7c, 0xe0, 0xac, 0x4a, 0xa7, 0x59, 0xa3, 0xcf, 0xa0, 0xcd, 0x78, |
| 0x4a, 0x0a, 0x13, 0x84, 0x36, 0xb6, 0x05, 0x1a, 0x43, 0x3f, 0xa5, 0xc5, 0x26, 0x2a, 0xe8, 0x03, |
| 0x89, 0xb2, 0xd5, 0xe8, 0xd0, 0x6c, 0x82, 0xc6, 0x96, 0xf4, 0x81, 0xcc, 0x57, 0x3a, 0x8d, 0xdb, |
| 0x38, 0x59, 0x53, 0x46, 0x22, 0xb5, 0x13, 0xa4, 0x7a, 0x50, 0x1c, 0x76, 0xb3, 0x13, 0x04, 0x85, |
| 0xf0, 0x29, 0x61, 0xf1, 0x2a, 0x27, 0x51, 0x5c, 0x2a, 0x1e, 0x95, 0x22, 0x93, 0x71, 0x4a, 0x46, |
| 0x1d, 0xf3, 0x6d, 0xbf, 0xb4, 0x5b, 0x17, 0xa5, 0xe2, 0xb7, 0x76, 0x03, 0xcd, 0xa1, 0x25, 0x78, |
| 0xea, 0x5e, 0x91, 0x6f, 0xfe, 0xbb, 0x83, 0xe1, 0x82, 0xa7, 0xef, 0x29, 0x4b, 0x29, 0xcb, 0xb0, |
| 0x56, 0x08, 0xce, 0x01, 0x6a, 0x68, 0xaf, 0x13, 0x01, 0x1c, 0x49, 0x62, 0xbe, 0x8a, 0xc2, 0xb8, |
| 0xd1, 0xc6, 0x8f, 0xf5, 0xe4, 0x73, 0x38, 0x7e, 0x12, 0x20, 0xe4, 0x43, 0xf7, 0xea, 0xfa, 0xc7, |
| 0x8b, 0xdb, 0x8f, 0x37, 0xc3, 0x17, 0xc1, 0x39, 0x0c, 0x9e, 0xc6, 0x5a, 0xbf, 0x3f, 0x1b, 0xb2, |
| 0xab, 0x5e, 0xa4, 0x0d, 0xd9, 0x69, 0x4f, 0xef, 0xe3, 0xbc, 0xac, 0x8c, 0xb6, 0xc5, 0xbb, 0x83, |
| 0x6f, 0xbd, 0x55, 0xc7, 0xfc, 0x4f, 0xf8, 0xfa, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1e, 0xe7, |
| 0xb2, 0x3f, 0x97, 0x06, 0x00, 0x00, |
| } |