blob: 173d8232bcb8be84703101e697631a77bf4a6de1 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: test_platform/skylab_test_runner/request.proto
package skylab_test_runner
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
test_platform "go.chromium.org/chromiumos/infra/proto/go/test_platform"
execution "go.chromium.org/chromiumos/infra/proto/go/test_platform/execution"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Request represents a request for running an individual test via the
// skylab_test_runner recipe.
type Request struct {
Prejob *Request_Prejob `protobuf:"bytes,1,opt,name=prejob,proto3" json:"prejob,omitempty"`
Test *Request_Test `protobuf:"bytes,2,opt,name=test,proto3" json:"test,omitempty"`
// Soft deadline for test_runner execution.
//
// All prejob or test execution should abort beyond this deadline.
// Clean up actions may execute beyond the deadline.
Deadline *timestamp.Timestamp `protobuf:"bytes,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
// The UID of the individual CTP request which kicked off this test run.
// Note that distinct requests inside a multi-request CTP build will have
// different UIDs.
ParentRequestUid string `protobuf:"bytes,4,opt,name=parent_request_uid,json=parentRequestUid,proto3" json:"parent_request_uid,omitempty"`
// The buildbucket ID of the CTP build that sent this test_runner request.
ParentBuildId int64 `protobuf:"varint,5,opt,name=parent_build_id,json=parentBuildId,proto3" json:"parent_build_id,omitempty"`
// Set of Tests to run. The string is a UUID provided by the client
// and used to identify each test result in the response.
Tests map[string]*Request_Test `protobuf:"bytes,6,rep,name=tests,proto3" json:"tests,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Uniformly applied parameters for all test executions in the parent test
// platform request.
ExecutionParam *execution.Param `protobuf:"bytes,7,opt,name=execution_param,json=executionParam,proto3" json:"execution_param,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Request) Reset() { *m = Request{} }
func (m *Request) String() string { return proto.CompactTextString(m) }
func (*Request) ProtoMessage() {}
func (*Request) Descriptor() ([]byte, []int) {
return fileDescriptor_0203b6078e3ef1f3, []int{0}
}
func (m *Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request.Unmarshal(m, b)
}
func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request.Marshal(b, m, deterministic)
}
func (m *Request) XXX_Merge(src proto.Message) {
xxx_messageInfo_Request.Merge(m, src)
}
func (m *Request) XXX_Size() int {
return xxx_messageInfo_Request.Size(m)
}
func (m *Request) XXX_DiscardUnknown() {
xxx_messageInfo_Request.DiscardUnknown(m)
}
var xxx_messageInfo_Request proto.InternalMessageInfo
func (m *Request) GetPrejob() *Request_Prejob {
if m != nil {
return m.Prejob
}
return nil
}
func (m *Request) GetTest() *Request_Test {
if m != nil {
return m.Test
}
return nil
}
func (m *Request) GetDeadline() *timestamp.Timestamp {
if m != nil {
return m.Deadline
}
return nil
}
func (m *Request) GetParentRequestUid() string {
if m != nil {
return m.ParentRequestUid
}
return ""
}
func (m *Request) GetParentBuildId() int64 {
if m != nil {
return m.ParentBuildId
}
return 0
}
func (m *Request) GetTests() map[string]*Request_Test {
if m != nil {
return m.Tests
}
return nil
}
func (m *Request) GetExecutionParam() *execution.Param {
if m != nil {
return m.ExecutionParam
}
return nil
}
// Prejob defines parameters that affect the steps before the actual test
// (e.g. provision).
type Request_Prejob struct {
SoftwareDependencies []*test_platform.Request_Params_SoftwareDependency `protobuf:"bytes,1,rep,name=software_dependencies,json=softwareDependencies,proto3" json:"software_dependencies,omitempty"` // Deprecated: Do not use.
// Mutable software prerequisites. Are installed before running the test if
// necessary. E.g. {"cros-version" : "reef-release/R77-12345.0.0"}
ProvisionableLabels map[string]string `protobuf:"bytes,2,rep,name=provisionable_labels,json=provisionableLabels,proto3" json:"provisionable_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// If set, use the Provision TLS API for the prejob.
// See go/cros-prover go/cros-tls
//
// crbug.com/1137444: This is a transitional argument. Once go/cros-prover
// migration is complete, all prejobs will use the TLS API and this argument
// will be dropped.
UseTls bool `protobuf:"varint,3,opt,name=use_tls,json=useTls,proto3" json:"use_tls,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Request_Prejob) Reset() { *m = Request_Prejob{} }
func (m *Request_Prejob) String() string { return proto.CompactTextString(m) }
func (*Request_Prejob) ProtoMessage() {}
func (*Request_Prejob) Descriptor() ([]byte, []int) {
return fileDescriptor_0203b6078e3ef1f3, []int{0, 0}
}
func (m *Request_Prejob) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request_Prejob.Unmarshal(m, b)
}
func (m *Request_Prejob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request_Prejob.Marshal(b, m, deterministic)
}
func (m *Request_Prejob) XXX_Merge(src proto.Message) {
xxx_messageInfo_Request_Prejob.Merge(m, src)
}
func (m *Request_Prejob) XXX_Size() int {
return xxx_messageInfo_Request_Prejob.Size(m)
}
func (m *Request_Prejob) XXX_DiscardUnknown() {
xxx_messageInfo_Request_Prejob.DiscardUnknown(m)
}
var xxx_messageInfo_Request_Prejob proto.InternalMessageInfo
// Deprecated: Do not use.
func (m *Request_Prejob) GetSoftwareDependencies() []*test_platform.Request_Params_SoftwareDependency {
if m != nil {
return m.SoftwareDependencies
}
return nil
}
func (m *Request_Prejob) GetProvisionableLabels() map[string]string {
if m != nil {
return m.ProvisionableLabels
}
return nil
}
func (m *Request_Prejob) GetUseTls() bool {
if m != nil {
return m.UseTls
}
return false
}
// Test describes which test harness and which test(s) to run.
type Request_Test struct {
// Types that are valid to be assigned to Harness:
// *Request_Test_Autotest_
Harness isRequest_Test_Harness `protobuf_oneof:"harness"`
Offload *Request_Test_OffloadOptions `protobuf:"bytes,2,opt,name=offload,proto3" json:"offload,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Request_Test) Reset() { *m = Request_Test{} }
func (m *Request_Test) String() string { return proto.CompactTextString(m) }
func (*Request_Test) ProtoMessage() {}
func (*Request_Test) Descriptor() ([]byte, []int) {
return fileDescriptor_0203b6078e3ef1f3, []int{0, 1}
}
func (m *Request_Test) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request_Test.Unmarshal(m, b)
}
func (m *Request_Test) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request_Test.Marshal(b, m, deterministic)
}
func (m *Request_Test) XXX_Merge(src proto.Message) {
xxx_messageInfo_Request_Test.Merge(m, src)
}
func (m *Request_Test) XXX_Size() int {
return xxx_messageInfo_Request_Test.Size(m)
}
func (m *Request_Test) XXX_DiscardUnknown() {
xxx_messageInfo_Request_Test.DiscardUnknown(m)
}
var xxx_messageInfo_Request_Test proto.InternalMessageInfo
type isRequest_Test_Harness interface {
isRequest_Test_Harness()
}
type Request_Test_Autotest_ struct {
Autotest *Request_Test_Autotest `protobuf:"bytes,1,opt,name=autotest,proto3,oneof"`
}
func (*Request_Test_Autotest_) isRequest_Test_Harness() {}
func (m *Request_Test) GetHarness() isRequest_Test_Harness {
if m != nil {
return m.Harness
}
return nil
}
func (m *Request_Test) GetAutotest() *Request_Test_Autotest {
if x, ok := m.GetHarness().(*Request_Test_Autotest_); ok {
return x.Autotest
}
return nil
}
func (m *Request_Test) GetOffload() *Request_Test_OffloadOptions {
if m != nil {
return m.Offload
}
return nil
}
// XXX_OneofWrappers is for the internal use of the proto package.
func (*Request_Test) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*Request_Test_Autotest_)(nil),
}
}
type Request_Test_Autotest struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
TestArgs string `protobuf:"bytes,2,opt,name=test_args,json=testArgs,proto3" json:"test_args,omitempty"`
// Keyvals are key:value pairs added to the autoserv command.
Keyvals map[string]string `protobuf:"bytes,3,rep,name=keyvals,proto3" json:"keyvals,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// If true, run the test as a client-side test: the test logic is
// executed in its entirety on the DUT itself.
// Otherwise, run the test as a server-side test: the test logic is
// executed on the drone server and interacts with the DUT as an external
// object.
IsClientTest bool `protobuf:"varint,4,opt,name=is_client_test,json=isClientTest,proto3" json:"is_client_test,omitempty"`
// Name to be used to display this test's output artifacts, e.g. logs,
// results etc. By default display_name is the same as name.
//
// display_name is especially useful when using test_args to distinguish
// between multiple instances of the same test in a request.
DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Request_Test_Autotest) Reset() { *m = Request_Test_Autotest{} }
func (m *Request_Test_Autotest) String() string { return proto.CompactTextString(m) }
func (*Request_Test_Autotest) ProtoMessage() {}
func (*Request_Test_Autotest) Descriptor() ([]byte, []int) {
return fileDescriptor_0203b6078e3ef1f3, []int{0, 1, 0}
}
func (m *Request_Test_Autotest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request_Test_Autotest.Unmarshal(m, b)
}
func (m *Request_Test_Autotest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request_Test_Autotest.Marshal(b, m, deterministic)
}
func (m *Request_Test_Autotest) XXX_Merge(src proto.Message) {
xxx_messageInfo_Request_Test_Autotest.Merge(m, src)
}
func (m *Request_Test_Autotest) XXX_Size() int {
return xxx_messageInfo_Request_Test_Autotest.Size(m)
}
func (m *Request_Test_Autotest) XXX_DiscardUnknown() {
xxx_messageInfo_Request_Test_Autotest.DiscardUnknown(m)
}
var xxx_messageInfo_Request_Test_Autotest proto.InternalMessageInfo
func (m *Request_Test_Autotest) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Request_Test_Autotest) GetTestArgs() string {
if m != nil {
return m.TestArgs
}
return ""
}
func (m *Request_Test_Autotest) GetKeyvals() map[string]string {
if m != nil {
return m.Keyvals
}
return nil
}
func (m *Request_Test_Autotest) GetIsClientTest() bool {
if m != nil {
return m.IsClientTest
}
return false
}
func (m *Request_Test_Autotest) GetDisplayName() string {
if m != nil {
return m.DisplayName
}
return ""
}
// User-specified options for how results are served to clients
type Request_Test_OffloadOptions struct {
// If this test needs synchronous offloading of results to Google Storage
SynchronousGsEnable bool `protobuf:"varint,1,opt,name=synchronous_gs_enable,json=synchronousGsEnable,proto3" json:"synchronous_gs_enable,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Request_Test_OffloadOptions) Reset() { *m = Request_Test_OffloadOptions{} }
func (m *Request_Test_OffloadOptions) String() string { return proto.CompactTextString(m) }
func (*Request_Test_OffloadOptions) ProtoMessage() {}
func (*Request_Test_OffloadOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_0203b6078e3ef1f3, []int{0, 1, 1}
}
func (m *Request_Test_OffloadOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request_Test_OffloadOptions.Unmarshal(m, b)
}
func (m *Request_Test_OffloadOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request_Test_OffloadOptions.Marshal(b, m, deterministic)
}
func (m *Request_Test_OffloadOptions) XXX_Merge(src proto.Message) {
xxx_messageInfo_Request_Test_OffloadOptions.Merge(m, src)
}
func (m *Request_Test_OffloadOptions) XXX_Size() int {
return xxx_messageInfo_Request_Test_OffloadOptions.Size(m)
}
func (m *Request_Test_OffloadOptions) XXX_DiscardUnknown() {
xxx_messageInfo_Request_Test_OffloadOptions.DiscardUnknown(m)
}
var xxx_messageInfo_Request_Test_OffloadOptions proto.InternalMessageInfo
func (m *Request_Test_OffloadOptions) GetSynchronousGsEnable() bool {
if m != nil {
return m.SynchronousGsEnable
}
return false
}
func init() {
proto.RegisterType((*Request)(nil), "test_platform.skylab_test_runner.Request")
proto.RegisterMapType((map[string]*Request_Test)(nil), "test_platform.skylab_test_runner.Request.TestsEntry")
proto.RegisterType((*Request_Prejob)(nil), "test_platform.skylab_test_runner.Request.Prejob")
proto.RegisterMapType((map[string]string)(nil), "test_platform.skylab_test_runner.Request.Prejob.ProvisionableLabelsEntry")
proto.RegisterType((*Request_Test)(nil), "test_platform.skylab_test_runner.Request.Test")
proto.RegisterType((*Request_Test_Autotest)(nil), "test_platform.skylab_test_runner.Request.Test.Autotest")
proto.RegisterMapType((map[string]string)(nil), "test_platform.skylab_test_runner.Request.Test.Autotest.KeyvalsEntry")
proto.RegisterType((*Request_Test_OffloadOptions)(nil), "test_platform.skylab_test_runner.Request.Test.OffloadOptions")
}
func init() {
proto.RegisterFile("test_platform/skylab_test_runner/request.proto", fileDescriptor_0203b6078e3ef1f3)
}
var fileDescriptor_0203b6078e3ef1f3 = []byte{
// 725 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x5d, 0x6f, 0xd3, 0x48,
0x14, 0xdd, 0x7c, 0x27, 0x37, 0xdd, 0xb6, 0x9a, 0xb6, 0x5a, 0xcb, 0x95, 0x76, 0xb3, 0xbb, 0x08,
0xe5, 0x01, 0x8d, 0x51, 0x41, 0x80, 0x2a, 0xf1, 0xd0, 0x90, 0xd2, 0x0f, 0x2a, 0x5a, 0x0d, 0xad,
0x90, 0x78, 0xc0, 0x9a, 0xc4, 0x13, 0x77, 0xa8, 0xed, 0x31, 0x73, 0xed, 0x42, 0x24, 0x7e, 0x0c,
0x4f, 0x3c, 0xf0, 0x73, 0xf8, 0x45, 0xc8, 0x63, 0x27, 0x4d, 0x5a, 0x50, 0x09, 0x6f, 0x99, 0x3b,
0xe7, 0x9e, 0x7b, 0xee, 0x3d, 0x77, 0x62, 0xa0, 0x89, 0xc0, 0xc4, 0x8d, 0x03, 0x9e, 0x8c, 0x94,
0x0e, 0x1d, 0xbc, 0x18, 0x07, 0x7c, 0xe0, 0x9a, 0xa0, 0x4e, 0xa3, 0x48, 0x68, 0x47, 0x8b, 0xf7,
0xa9, 0xc0, 0x84, 0xc6, 0x5a, 0x25, 0x8a, 0x74, 0xe6, 0xf0, 0xf4, 0x26, 0xde, 0xfe, 0xc7, 0x57,
0xca, 0x0f, 0x84, 0x63, 0xf0, 0x83, 0x74, 0xe4, 0x24, 0x32, 0x14, 0x98, 0xf0, 0x30, 0xce, 0x29,
0xec, 0xff, 0xe7, 0x4b, 0x8a, 0x8f, 0x62, 0x98, 0x26, 0x52, 0x45, 0x4e, 0xcc, 0x35, 0x0f, 0x0b,
0xd0, 0xe6, 0x3c, 0x68, 0x4e, 0xc4, 0x7f, 0x5f, 0xda, 0xd0, 0x60, 0x79, 0x84, 0xec, 0x43, 0x3d,
0xd6, 0xe2, 0x9d, 0x1a, 0x58, 0xa5, 0x4e, 0xa9, 0xdb, 0xde, 0xba, 0x4f, 0x6f, 0x53, 0x48, 0x8b,
0x54, 0x7a, 0x62, 0xf2, 0x58, 0x91, 0x4f, 0x7a, 0x50, 0xcd, 0x50, 0x56, 0xd9, 0xf0, 0xd0, 0x5f,
0xe7, 0x39, 0x15, 0x98, 0x30, 0x93, 0x4b, 0x1e, 0x41, 0xd3, 0x13, 0xdc, 0x0b, 0x64, 0x24, 0xac,
0x8a, 0xe1, 0xb1, 0x69, 0x3e, 0x0f, 0x3a, 0x99, 0x07, 0x3d, 0x9d, 0xcc, 0x83, 0x4d, 0xb1, 0xe4,
0x1e, 0x90, 0x98, 0x6b, 0x11, 0x25, 0x6e, 0xd1, 0xa9, 0x9b, 0x4a, 0xcf, 0xaa, 0x76, 0x4a, 0xdd,
0x16, 0x5b, 0xcd, 0x6f, 0x8a, 0x6a, 0x67, 0xd2, 0x23, 0x77, 0x61, 0xa5, 0x40, 0x0f, 0x52, 0x19,
0x78, 0xae, 0xf4, 0xac, 0x5a, 0xa7, 0xd4, 0xad, 0xb0, 0x3f, 0xf3, 0x70, 0x2f, 0x8b, 0x1e, 0x78,
0xe4, 0x10, 0x6a, 0x99, 0x2a, 0xb4, 0xea, 0x9d, 0x4a, 0xb7, 0xbd, 0xf5, 0x70, 0xb1, 0x96, 0x70,
0x37, 0x4a, 0xf4, 0x98, 0xe5, 0x14, 0x64, 0x0f, 0x56, 0xa6, 0x4e, 0xb9, 0xc6, 0x29, 0xab, 0x61,
0x1a, 0xfc, 0xfb, 0x1a, 0xeb, 0x14, 0x45, 0x4f, 0x32, 0x14, 0x5b, 0x9e, 0x06, 0xcc, 0xd9, 0xfe,
0x56, 0x86, 0x7a, 0x3e, 0x79, 0x22, 0x61, 0x03, 0xd5, 0x28, 0xf9, 0xc0, 0xb5, 0x70, 0x3d, 0x11,
0x8b, 0xc8, 0x13, 0xd1, 0x50, 0x0a, 0xb4, 0x4a, 0x46, 0xef, 0x75, 0x2b, 0xa7, 0xbe, 0x65, 0x3c,
0x48, 0x5f, 0x15, 0xa9, 0xfd, 0x49, 0xe6, 0xb8, 0x57, 0xb6, 0x4a, 0x6c, 0x1d, 0xaf, 0xc7, 0xa5,
0x40, 0xf2, 0x09, 0xd6, 0x63, 0xad, 0x2e, 0x25, 0x4a, 0x15, 0xf1, 0x41, 0x20, 0xdc, 0x80, 0x0f,
0x44, 0x80, 0x56, 0xd9, 0x54, 0x3a, 0x58, 0x74, 0x69, 0xe8, 0xc9, 0x2c, 0xd9, 0x91, 0xe1, 0xca,
0xc7, 0xb5, 0x16, 0xdf, 0xbc, 0x21, 0x7f, 0x41, 0x23, 0x45, 0xe1, 0x26, 0x01, 0x9a, 0xad, 0x68,
0xb2, 0x7a, 0x8a, 0xe2, 0x34, 0x40, 0xfb, 0x39, 0x58, 0x3f, 0x63, 0x22, 0xab, 0x50, 0xb9, 0x10,
0x63, 0xb3, 0xd6, 0x2d, 0x96, 0xfd, 0x24, 0xeb, 0x50, 0xbb, 0xe4, 0x41, 0x2a, 0xcc, 0x8a, 0xb6,
0x58, 0x7e, 0xd8, 0x2e, 0x3f, 0x29, 0xd9, 0x5f, 0xab, 0x50, 0xcd, 0x3c, 0x23, 0x67, 0xd0, 0xe4,
0x69, 0xa2, 0xcc, 0x22, 0xe7, 0x0f, 0xe2, 0xf1, 0x62, 0xae, 0xd3, 0x9d, 0x22, 0x7d, 0xff, 0x0f,
0x36, 0xa5, 0x22, 0xaf, 0xa1, 0xa1, 0x46, 0xa3, 0x40, 0x71, 0xaf, 0x78, 0x1e, 0x4f, 0x17, 0x64,
0x3d, 0xce, 0xb3, 0x8f, 0xe3, 0x6c, 0x11, 0x90, 0x4d, 0xd8, 0xec, 0xcf, 0x65, 0x68, 0x4e, 0x2a,
0x12, 0x02, 0xd5, 0x88, 0x87, 0xa2, 0x68, 0xd9, 0xfc, 0x26, 0x9b, 0xd0, 0x32, 0xa4, 0x5c, 0xfb,
0x58, 0xf4, 0xdd, 0xcc, 0x02, 0x3b, 0xda, 0x47, 0xf2, 0x16, 0x1a, 0x17, 0x62, 0x7c, 0xc9, 0xcd,
0x5c, 0x33, 0x23, 0xfb, 0xbf, 0xd9, 0x2c, 0x7d, 0x91, 0xd3, 0xe4, 0x1e, 0x4e, 0x48, 0xc9, 0x1d,
0x58, 0x96, 0xe8, 0x0e, 0x03, 0x99, 0xbd, 0x35, 0x33, 0xd3, 0xaa, 0xb1, 0x6f, 0x49, 0xe2, 0x33,
0x13, 0x34, 0x33, 0xff, 0x17, 0x96, 0x3c, 0x89, 0x71, 0xc0, 0xc7, 0xae, 0x91, 0x5f, 0x33, 0x2a,
0xdb, 0x45, 0xec, 0x25, 0x0f, 0x85, 0xbd, 0x0d, 0x4b, 0xb3, 0x15, 0x16, 0xf2, 0xb6, 0x0f, 0xcb,
0xf3, 0xd3, 0x23, 0x5b, 0xb0, 0x81, 0xe3, 0x68, 0x78, 0xae, 0x55, 0xa4, 0x52, 0x74, 0x7d, 0x74,
0x85, 0xd9, 0x1e, 0xc3, 0xd7, 0x64, 0x6b, 0x33, 0x97, 0x7b, 0xb8, 0x6b, 0xae, 0x7a, 0x2d, 0x68,
0x9c, 0x73, 0x1d, 0x09, 0x44, 0xfb, 0x1c, 0xe0, 0xea, 0x7d, 0xff, 0x40, 0x4a, 0x7f, 0x56, 0xca,
0xe2, 0xff, 0x84, 0x57, 0xd2, 0x7b, 0x47, 0x6f, 0x0e, 0x7d, 0x45, 0x33, 0x2d, 0xa1, 0x4c, 0x43,
0xaa, 0xb4, 0xef, 0x4c, 0x0e, 0x0a, 0x1d, 0x19, 0x8d, 0x34, 0xcf, 0xbf, 0x13, 0x8e, 0xaf, 0x9c,
0xdb, 0xbe, 0x44, 0x83, 0xba, 0x81, 0x3e, 0xf8, 0x1e, 0x00, 0x00, 0xff, 0xff, 0xae, 0x5b, 0x0b,
0x27, 0xb4, 0x06, 0x00, 0x00,
}