blob: 74e09fa95cd51bede51ee5677c3daafdf9f67d0c [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/runtimeconfig/v1beta1/resources.proto
/*
Package runtimeconfig is a generated protocol buffer package.
It is generated from these files:
google/cloud/runtimeconfig/v1beta1/resources.proto
google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto
It has these top-level messages:
RuntimeConfig
Variable
EndCondition
Waiter
ListConfigsRequest
ListConfigsResponse
GetConfigRequest
CreateConfigRequest
UpdateConfigRequest
DeleteConfigRequest
ListVariablesRequest
ListVariablesResponse
WatchVariableRequest
GetVariableRequest
CreateVariableRequest
UpdateVariableRequest
DeleteVariableRequest
ListWaitersRequest
ListWaitersResponse
GetWaiterRequest
CreateWaiterRequest
DeleteWaiterRequest
*/
package runtimeconfig
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"
import google_protobuf1 "github.com/golang/protobuf/ptypes/duration"
import google_protobuf2 "github.com/golang/protobuf/ptypes/timestamp"
import google_rpc "google.golang.org/genproto/googleapis/rpc/status"
// 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
// The `VariableState` describes the last known state of the variable and is
// used during a `variables().watch` call to distinguish the state of the
// variable.
type VariableState int32
const (
// Default variable state.
VariableState_VARIABLE_STATE_UNSPECIFIED VariableState = 0
// The variable was updated, while `variables().watch` was executing.
VariableState_UPDATED VariableState = 1
// The variable was deleted, while `variables().watch` was executing.
VariableState_DELETED VariableState = 2
)
var VariableState_name = map[int32]string{
0: "VARIABLE_STATE_UNSPECIFIED",
1: "UPDATED",
2: "DELETED",
}
var VariableState_value = map[string]int32{
"VARIABLE_STATE_UNSPECIFIED": 0,
"UPDATED": 1,
"DELETED": 2,
}
func (x VariableState) String() string {
return proto.EnumName(VariableState_name, int32(x))
}
func (VariableState) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
// A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
// service. A RuntimeConfig resource consists of metadata and a hierarchy of
// variables.
type RuntimeConfig struct {
// The resource name of a runtime config. The name must have the format:
//
// projects/[PROJECT_ID]/configs/[CONFIG_NAME]
//
// The `[PROJECT_ID]` must be a valid project ID, and `[CONFIG_NAME]` is an
// arbitrary name that matches RFC 1035 segment specification. The length of
// `[CONFIG_NAME]` must be less than 64 bytes.
//
// You pick the RuntimeConfig resource name, but the server will validate that
// the name adheres to this format. After you create the resource, you cannot
// change the resource's name.
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// An optional description of the RuntimeConfig object.
Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
}
func (m *RuntimeConfig) Reset() { *m = RuntimeConfig{} }
func (m *RuntimeConfig) String() string { return proto.CompactTextString(m) }
func (*RuntimeConfig) ProtoMessage() {}
func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *RuntimeConfig) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *RuntimeConfig) GetDescription() string {
if m != nil {
return m.Description
}
return ""
}
// Describes a single variable within a RuntimeConfig resource.
// The name denotes the hierarchical variable name. For example,
// `ports/serving_port` is a valid variable name. The variable value is an
// opaque string and only leaf variables can have values (that is, variables
// that do not have any child variables).
type Variable struct {
// The name of the variable resource, in the format:
//
// projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]
//
// The `[PROJECT_ID]` must be a valid project ID, `[CONFIG_NAME]` must be a
// valid RuntimeConfig reource and `[VARIABLE_NAME]` follows Unix file system
// file path naming.
//
// The `[VARIABLE_NAME]` can contain ASCII letters, numbers, slashes and
// dashes. Slashes are used as path element separators and are not part of the
// `[VARIABLE_NAME]` itself, so `[VARIABLE_NAME]` must contain at least one
// non-slash character. Multiple slashes are coalesced into single slash
// character. Each path segment should follow RFC 1035 segment specification.
// The length of a `[VARIABLE_NAME]` must be less than 256 bytes.
//
// Once you create a variable, you cannot change the variable name.
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// The the value of the variable. It can be either a binary or a string
// value. You must specify one of either `value` or `text`. Specifying both
// will cause the server to return an error.
//
// Types that are valid to be assigned to Contents:
// *Variable_Value
// *Variable_Text
Contents isVariable_Contents `protobuf_oneof:"contents"`
// [Output Only] The time of the last variable update.
UpdateTime *google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
// [Ouput only] The current state of the variable. The variable state indicates
// the outcome of the `variables().watch` call and is visible through the
// `get` and `list` calls.
State VariableState `protobuf:"varint,4,opt,name=state,enum=google.cloud.runtimeconfig.v1beta1.VariableState" json:"state,omitempty"`
}
func (m *Variable) Reset() { *m = Variable{} }
func (m *Variable) String() string { return proto.CompactTextString(m) }
func (*Variable) ProtoMessage() {}
func (*Variable) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
type isVariable_Contents interface {
isVariable_Contents()
}
type Variable_Value struct {
Value []byte `protobuf:"bytes,2,opt,name=value,proto3,oneof"`
}
type Variable_Text struct {
Text string `protobuf:"bytes,5,opt,name=text,oneof"`
}
func (*Variable_Value) isVariable_Contents() {}
func (*Variable_Text) isVariable_Contents() {}
func (m *Variable) GetContents() isVariable_Contents {
if m != nil {
return m.Contents
}
return nil
}
func (m *Variable) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Variable) GetValue() []byte {
if x, ok := m.GetContents().(*Variable_Value); ok {
return x.Value
}
return nil
}
func (m *Variable) GetText() string {
if x, ok := m.GetContents().(*Variable_Text); ok {
return x.Text
}
return ""
}
func (m *Variable) GetUpdateTime() *google_protobuf2.Timestamp {
if m != nil {
return m.UpdateTime
}
return nil
}
func (m *Variable) GetState() VariableState {
if m != nil {
return m.State
}
return VariableState_VARIABLE_STATE_UNSPECIFIED
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*Variable) 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 _Variable_OneofMarshaler, _Variable_OneofUnmarshaler, _Variable_OneofSizer, []interface{}{
(*Variable_Value)(nil),
(*Variable_Text)(nil),
}
}
func _Variable_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*Variable)
// contents
switch x := m.Contents.(type) {
case *Variable_Value:
b.EncodeVarint(2<<3 | proto.WireBytes)
b.EncodeRawBytes(x.Value)
case *Variable_Text:
b.EncodeVarint(5<<3 | proto.WireBytes)
b.EncodeStringBytes(x.Text)
case nil:
default:
return fmt.Errorf("Variable.Contents has unexpected type %T", x)
}
return nil
}
func _Variable_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*Variable)
switch tag {
case 2: // contents.value
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeRawBytes(true)
m.Contents = &Variable_Value{x}
return true, err
case 5: // contents.text
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeStringBytes()
m.Contents = &Variable_Text{x}
return true, err
default:
return false, nil
}
}
func _Variable_OneofSizer(msg proto.Message) (n int) {
m := msg.(*Variable)
// contents
switch x := m.Contents.(type) {
case *Variable_Value:
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(len(x.Value)))
n += len(x.Value)
case *Variable_Text:
n += proto.SizeVarint(5<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(len(x.Text)))
n += len(x.Text)
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// The condition that a Waiter resource is waiting for.
type EndCondition struct {
// The condition oneof holds the available condition types for this
// EndCondition. Currently, the only available type is Cardinality.
//
// Types that are valid to be assigned to Condition:
// *EndCondition_Cardinality_
Condition isEndCondition_Condition `protobuf_oneof:"condition"`
}
func (m *EndCondition) Reset() { *m = EndCondition{} }
func (m *EndCondition) String() string { return proto.CompactTextString(m) }
func (*EndCondition) ProtoMessage() {}
func (*EndCondition) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
type isEndCondition_Condition interface {
isEndCondition_Condition()
}
type EndCondition_Cardinality_ struct {
Cardinality *EndCondition_Cardinality `protobuf:"bytes,1,opt,name=cardinality,oneof"`
}
func (*EndCondition_Cardinality_) isEndCondition_Condition() {}
func (m *EndCondition) GetCondition() isEndCondition_Condition {
if m != nil {
return m.Condition
}
return nil
}
func (m *EndCondition) GetCardinality() *EndCondition_Cardinality {
if x, ok := m.GetCondition().(*EndCondition_Cardinality_); ok {
return x.Cardinality
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*EndCondition) 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 _EndCondition_OneofMarshaler, _EndCondition_OneofUnmarshaler, _EndCondition_OneofSizer, []interface{}{
(*EndCondition_Cardinality_)(nil),
}
}
func _EndCondition_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*EndCondition)
// condition
switch x := m.Condition.(type) {
case *EndCondition_Cardinality_:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Cardinality); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("EndCondition.Condition has unexpected type %T", x)
}
return nil
}
func _EndCondition_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*EndCondition)
switch tag {
case 1: // condition.cardinality
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(EndCondition_Cardinality)
err := b.DecodeMessage(msg)
m.Condition = &EndCondition_Cardinality_{msg}
return true, err
default:
return false, nil
}
}
func _EndCondition_OneofSizer(msg proto.Message) (n int) {
m := msg.(*EndCondition)
// condition
switch x := m.Condition.(type) {
case *EndCondition_Cardinality_:
s := proto.Size(x.Cardinality)
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
}
// A Cardinality condition for the Waiter resource. A cardinality condition is
// met when the number of variables under a specified path prefix reaches a
// predefined number. For example, if you set a Cardinality condition where
// the `path` is set to `/foo` and the number of paths is set to 2, the
// following variables would meet the condition in a RuntimeConfig resource:
//
// + `/foo/variable1 = "value1"`
// + `/foo/variable2 = "value2"`
// + `/bar/variable3 = "value3"`
//
// It would not would not satisify the same condition with the `number` set to
// 3, however, because there is only 2 paths that start with `/foo`.
// Cardinality conditions are recursive; all subtrees under the specific
// path prefix are counted.
type EndCondition_Cardinality struct {
// The root of the variable subtree to monitor. For example, `/foo`.
Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
// The number variables under the `path` that must exist to meet this
// condition. Defaults to 1 if not specified.
Number int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"`
}
func (m *EndCondition_Cardinality) Reset() { *m = EndCondition_Cardinality{} }
func (m *EndCondition_Cardinality) String() string { return proto.CompactTextString(m) }
func (*EndCondition_Cardinality) ProtoMessage() {}
func (*EndCondition_Cardinality) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
func (m *EndCondition_Cardinality) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *EndCondition_Cardinality) GetNumber() int32 {
if m != nil {
return m.Number
}
return 0
}
// A Waiter resource waits for some end condition within a RuntimeConfig resource
// to be met before it returns. For example, assume you have a distributed
// system where each node writes to a Variable resource indidicating the node's
// readiness as part of the startup process.
//
// You then configure a Waiter resource with the success condition set to wait
// until some number of nodes have checked in. Afterwards, your application
// runs some arbitrary code after the condition has been met and the waiter
// returns successfully.
//
// Once created, a Waiter resource is immutable.
//
// To learn more about using waiters, read the
// [Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter)
// documentation.
type Waiter struct {
// The name of the Waiter resource, in the format:
//
// projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]
//
// The `[PROJECT_ID]` must be a valid Google Cloud project ID,
// the `[CONFIG_NAME]` must be a valid RuntimeConfig resource, the
// `[WAITER_NAME]` must match RFC 1035 segment specification, and the length
// of `[WAITER_NAME]` must be less than 64 bytes.
//
// After you create a Waiter resource, you cannot change the resource name.
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// [Required] Specifies the timeout of the waiter in seconds, beginning from
// the instant that `waiters().create` method is called. If this time elapses
// before the success or failure conditions are met, the waiter fails and sets
// the `error` code to `DEADLINE_EXCEEDED`.
Timeout *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=timeout" json:"timeout,omitempty"`
// [Optional] The failure condition of this waiter. If this condition is met,
// `done` will be set to `true` and the `error` code will be set to `ABORTED`.
// The failure condition takes precedence over the success condition. If both
// conditions are met, a failure will be indicated. This value is optional; if
// no failure condition is set, the only failure scenario will be a timeout.
Failure *EndCondition `protobuf:"bytes,3,opt,name=failure" json:"failure,omitempty"`
// [Required] The success condition. If this condition is met, `done` will be
// set to `true` and the `error` value will remain unset. The failure condition
// takes precedence over the success condition. If both conditions are met, a
// failure will be indicated.
Success *EndCondition `protobuf:"bytes,4,opt,name=success" json:"success,omitempty"`
// [Output Only] The instant at which this Waiter resource was created. Adding
// the value of `timeout` to this instant yields the timeout deadline for the
// waiter.
CreateTime *google_protobuf2.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
// [Output Only] If the value is `false`, it means the waiter is still waiting
// for one of its conditions to be met.
//
// If true, the waiter has finished. If the waiter finished due to a timeout
// or failure, `error` will be set.
Done bool `protobuf:"varint,6,opt,name=done" json:"done,omitempty"`
// [Output Only] If the waiter ended due to a failure or timeout, this value
// will be set.
Error *google_rpc.Status `protobuf:"bytes,7,opt,name=error" json:"error,omitempty"`
}
func (m *Waiter) Reset() { *m = Waiter{} }
func (m *Waiter) String() string { return proto.CompactTextString(m) }
func (*Waiter) ProtoMessage() {}
func (*Waiter) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (m *Waiter) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Waiter) GetTimeout() *google_protobuf1.Duration {
if m != nil {
return m.Timeout
}
return nil
}
func (m *Waiter) GetFailure() *EndCondition {
if m != nil {
return m.Failure
}
return nil
}
func (m *Waiter) GetSuccess() *EndCondition {
if m != nil {
return m.Success
}
return nil
}
func (m *Waiter) GetCreateTime() *google_protobuf2.Timestamp {
if m != nil {
return m.CreateTime
}
return nil
}
func (m *Waiter) GetDone() bool {
if m != nil {
return m.Done
}
return false
}
func (m *Waiter) GetError() *google_rpc.Status {
if m != nil {
return m.Error
}
return nil
}
func init() {
proto.RegisterType((*RuntimeConfig)(nil), "google.cloud.runtimeconfig.v1beta1.RuntimeConfig")
proto.RegisterType((*Variable)(nil), "google.cloud.runtimeconfig.v1beta1.Variable")
proto.RegisterType((*EndCondition)(nil), "google.cloud.runtimeconfig.v1beta1.EndCondition")
proto.RegisterType((*EndCondition_Cardinality)(nil), "google.cloud.runtimeconfig.v1beta1.EndCondition.Cardinality")
proto.RegisterType((*Waiter)(nil), "google.cloud.runtimeconfig.v1beta1.Waiter")
proto.RegisterEnum("google.cloud.runtimeconfig.v1beta1.VariableState", VariableState_name, VariableState_value)
}
func init() { proto.RegisterFile("google/cloud/runtimeconfig/v1beta1/resources.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 615 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x5d, 0x6f, 0xd3, 0x3c,
0x14, 0xc7, 0x9b, 0x3e, 0x7d, 0xd9, 0x4e, 0xb6, 0x47, 0x93, 0x85, 0x46, 0xa8, 0xd0, 0xa8, 0x7a,
0x81, 0x2a, 0x2e, 0x12, 0xda, 0x5d, 0xa1, 0x71, 0xd3, 0x97, 0xb0, 0x15, 0x4d, 0x30, 0xb9, 0xdd,
0x90, 0xb8, 0x19, 0xae, 0xe3, 0x85, 0x48, 0xa9, 0x1d, 0x39, 0xce, 0x04, 0xdf, 0x86, 0x6b, 0x3e,
0x01, 0x9f, 0x86, 0x2b, 0x3e, 0x08, 0xb2, 0xe3, 0x40, 0x0b, 0x13, 0x1b, 0xdc, 0xf9, 0xf8, 0xfc,
0xcf, 0xef, 0xbc, 0xf8, 0x24, 0x30, 0x8c, 0x85, 0x88, 0x53, 0x16, 0xd0, 0x54, 0x14, 0x51, 0x20,
0x0b, 0xae, 0x92, 0x15, 0xa3, 0x82, 0x5f, 0x25, 0x71, 0x70, 0x3d, 0x58, 0x32, 0x45, 0x06, 0x81,
0x64, 0xb9, 0x28, 0x24, 0x65, 0xb9, 0x9f, 0x49, 0xa1, 0x04, 0xea, 0x95, 0x31, 0xbe, 0x89, 0xf1,
0x37, 0x62, 0x7c, 0x1b, 0xd3, 0x79, 0x68, 0xb9, 0x24, 0x4b, 0x02, 0xc2, 0xb9, 0x50, 0x44, 0x25,
0x82, 0x5b, 0x42, 0xe7, 0xc0, 0x7a, 0x8d, 0xb5, 0x2c, 0xae, 0x82, 0xa8, 0x90, 0x46, 0x60, 0xfd,
0x8f, 0x7e, 0xf5, 0xeb, 0x0c, 0xb9, 0x22, 0xab, 0xcc, 0x0a, 0xee, 0x5b, 0x81, 0xcc, 0x68, 0x90,
0x2b, 0xa2, 0x0a, 0x4b, 0xee, 0x85, 0xb0, 0x8b, 0xcb, 0x82, 0x26, 0xa6, 0x20, 0x84, 0xa0, 0xc1,
0xc9, 0x8a, 0x79, 0x4e, 0xd7, 0xe9, 0x6f, 0x63, 0x73, 0x46, 0x5d, 0x70, 0x23, 0x96, 0x53, 0x99,
0x64, 0x3a, 0xa7, 0x57, 0x37, 0xae, 0xf5, 0xab, 0xde, 0x57, 0x07, 0xb6, 0x2e, 0x88, 0x4c, 0xc8,
0x32, 0x65, 0x37, 0x22, 0xf6, 0xa1, 0x79, 0x4d, 0xd2, 0x82, 0x99, 0xe0, 0x9d, 0x93, 0x1a, 0x2e,
0x4d, 0x74, 0x0f, 0x1a, 0x8a, 0x7d, 0x50, 0x5e, 0x53, 0x6b, 0x4f, 0x6a, 0xd8, 0x58, 0xe8, 0x08,
0xdc, 0x22, 0x8b, 0x88, 0x62, 0x97, 0xba, 0x32, 0xef, 0xbf, 0xae, 0xd3, 0x77, 0x87, 0x1d, 0xdf,
0xce, 0xb1, 0xea, 0xd2, 0x5f, 0x54, 0x5d, 0x62, 0x28, 0xe5, 0xfa, 0x02, 0x1d, 0x43, 0x53, 0xb7,
0xc8, 0xbc, 0x46, 0xd7, 0xe9, 0xff, 0x3f, 0x1c, 0xf8, 0xb7, 0x8f, 0xdf, 0xaf, 0x6a, 0x9f, 0xeb,
0x40, 0x5c, 0xc6, 0x8f, 0x01, 0xb6, 0xa8, 0xe0, 0x8a, 0x71, 0x95, 0xf7, 0xbe, 0x38, 0xb0, 0x13,
0xf2, 0x68, 0x22, 0x78, 0x94, 0xe8, 0x8e, 0xd1, 0x3b, 0x70, 0x29, 0x91, 0x51, 0xc2, 0x49, 0x9a,
0xa8, 0x8f, 0xa6, 0x57, 0x77, 0xf8, 0xfc, 0x2e, 0xb9, 0xd6, 0x31, 0xfe, 0xe4, 0x27, 0xe3, 0xa4,
0x86, 0xd7, 0x91, 0x9d, 0x67, 0xe0, 0xae, 0x79, 0xf5, 0x54, 0x33, 0xa2, 0xde, 0x57, 0x53, 0xd5,
0x67, 0xb4, 0x0f, 0x2d, 0x5e, 0xac, 0x96, 0x4c, 0x9a, 0xb1, 0x36, 0xb1, 0xb5, 0xc6, 0x2e, 0x6c,
0xd3, 0x2a, 0x45, 0xef, 0x5b, 0x1d, 0x5a, 0x6f, 0x48, 0xa2, 0x98, 0xbc, 0xf1, 0x65, 0x0e, 0xa1,
0xad, 0x8b, 0x14, 0x85, 0x32, 0x10, 0x77, 0xf8, 0xe0, 0xb7, 0x39, 0x4f, 0xed, 0xb6, 0xe1, 0x4a,
0x89, 0x5e, 0x42, 0xfb, 0x8a, 0x24, 0x69, 0x21, 0xab, 0xc7, 0x79, 0xfa, 0xb7, 0x9d, 0xe3, 0x0a,
0xa0, 0x59, 0x79, 0x41, 0x29, 0xcb, 0x73, 0xf3, 0x62, 0xff, 0xc4, 0xb2, 0x00, 0xbd, 0x38, 0x54,
0xb2, 0x1f, 0x8b, 0xd3, 0xbc, 0x7d, 0x71, 0x4a, 0xb9, 0x59, 0x1c, 0x04, 0x8d, 0x48, 0x70, 0xe6,
0xb5, 0xba, 0x4e, 0x7f, 0x0b, 0x9b, 0x33, 0xea, 0x43, 0x93, 0x49, 0x29, 0xa4, 0xd7, 0x36, 0x28,
0x54, 0xa1, 0x64, 0x46, 0xfd, 0xb9, 0xf9, 0x90, 0x70, 0x29, 0x78, 0x32, 0x83, 0xdd, 0x8d, 0x2d,
0x42, 0x07, 0xd0, 0xb9, 0x18, 0xe1, 0xd9, 0x68, 0x7c, 0x1a, 0x5e, 0xce, 0x17, 0xa3, 0x45, 0x78,
0x79, 0xfe, 0x6a, 0x7e, 0x16, 0x4e, 0x66, 0x2f, 0x66, 0xe1, 0x74, 0xaf, 0x86, 0x5c, 0x68, 0x9f,
0x9f, 0x4d, 0x47, 0x8b, 0x70, 0xba, 0xe7, 0x68, 0x63, 0x1a, 0x9e, 0x86, 0xda, 0xa8, 0x8f, 0x3f,
0x39, 0xf0, 0x98, 0x8a, 0xd5, 0x1d, 0xc6, 0x70, 0xe6, 0xbc, 0x7d, 0x6d, 0x55, 0xb1, 0x48, 0x09,
0x8f, 0x7d, 0x21, 0xe3, 0x20, 0x66, 0xdc, 0xb4, 0x1a, 0x94, 0x2e, 0x92, 0x25, 0xf9, 0x9f, 0x7e,
0x58, 0x47, 0x1b, 0xb7, 0x9f, 0xeb, 0xbd, 0xe3, 0x92, 0x38, 0x31, 0x79, 0x37, 0x7e, 0x0f, 0xfe,
0xc5, 0x60, 0xac, 0x43, 0x96, 0x2d, 0x93, 0xe0, 0xf0, 0x7b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x61,
0xe4, 0x09, 0x63, 0x10, 0x05, 0x00, 0x00,
}