plugins/driver: remove NodeResources from task Resources and use PercentTicks field for docker driver

This commit is contained in:
Nick Ethier
2018-11-16 11:08:53 -05:00
parent 37ed75502e
commit 3601e4241d
6 changed files with 255 additions and 269 deletions

View File

@@ -659,8 +659,8 @@ func (tr *TaskRunner) buildTaskConfig() *drivers.TaskConfig {
LinuxResources: &drivers.LinuxResources{
MemoryLimitBytes: int64(tr.Task().Resources.MemoryMB) * 1024 * 1024,
CPUShares: int64(tr.Task().Resources.CPU),
PercentTicks: float64(tr.task.Resources.CPU) / float64(tr.clientConfig.Node.Resources.CPU),
},
NodeResources: tr.clientConfig.Node.Resources,
},
Env: tr.envBuilder.Build().Map(),
User: tr.task.User,

View File

@@ -787,7 +787,6 @@ func (d *Driver) createContainerConfig(task *drivers.TaskConfig, driverConfig *T
// See https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/sec-cpu
if driverConfig.CPUHardLimit {
numCores := runtime.NumCPU()
percentTicks := float64(task.Resources.NomadResources.CPU) / float64(task.Resources.NomadResources.CPU)
if driverConfig.CPUCFSPeriod < 0 || driverConfig.CPUCFSPeriod > 1000000 {
return c, fmt.Errorf("invalid value for cpu_cfs_period")
}
@@ -795,7 +794,7 @@ func (d *Driver) createContainerConfig(task *drivers.TaskConfig, driverConfig *T
driverConfig.CPUCFSPeriod = task.Resources.LinuxResources.CPUPeriod
}
hostConfig.CPUPeriod = driverConfig.CPUCFSPeriod
hostConfig.CPUQuota = int64(percentTicks*float64(driverConfig.CPUCFSPeriod)) * int64(numCores)
hostConfig.CPUQuota = int64(task.Resources.LinuxResources.PercentTicks*float64(driverConfig.CPUCFSPeriod)) * int64(numCores)
}
// Windows does not support MemorySwap/MemorySwappiness #2193

View File

@@ -178,7 +178,6 @@ func (tc *TaskConfig) EncodeConcreteDriverConfig(t interface{}) error {
type Resources struct {
NomadResources *structs.Resources
LinuxResources *LinuxResources
NodeResources *structs.Resources
}
func (r *Resources) Copy() *Resources {
@@ -192,9 +191,6 @@ func (r *Resources) Copy() *Resources {
if r.LinuxResources != nil {
res.LinuxResources = r.LinuxResources.Copy()
}
if r.NodeResources != nil {
res.NodeResources = r.NodeResources.Copy()
}
return res
}
@@ -206,6 +202,14 @@ type LinuxResources struct {
OOMScoreAdj int64
CpusetCPUs string
CpusetMems string
// PrecentTicks is used to calculate the CPUQuota, currently the docker
// driver exposes cpu period and quota through the driver configuration
// and thus the calculation for CPUQuota cannot be done on the client.
// This is a capatability and should only be used by docker until the docker
// specific options are deprecated in favor of exposes CPUPeriod and
// CPUQuota at the task resource stanza.
PercentTicks float64
}
func (r *LinuxResources) Copy() *LinuxResources {

View File

@@ -49,7 +49,7 @@ func (x TaskState) String() string {
return proto.EnumName(TaskState_name, int32(x))
}
func (TaskState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{0}
return fileDescriptor_driver_73765692e9f557ed, []int{0}
}
type FingerprintResponse_HealthState int32
@@ -75,7 +75,7 @@ func (x FingerprintResponse_HealthState) String() string {
return proto.EnumName(FingerprintResponse_HealthState_name, int32(x))
}
func (FingerprintResponse_HealthState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{5, 0}
return fileDescriptor_driver_73765692e9f557ed, []int{5, 0}
}
type StartTaskResponse_Result int32
@@ -101,7 +101,7 @@ func (x StartTaskResponse_Result) String() string {
return proto.EnumName(StartTaskResponse_Result_name, int32(x))
}
func (StartTaskResponse_Result) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{9, 0}
return fileDescriptor_driver_73765692e9f557ed, []int{9, 0}
}
type DriverCapabilities_FSIsolation int32
@@ -127,7 +127,7 @@ func (x DriverCapabilities_FSIsolation) String() string {
return proto.EnumName(DriverCapabilities_FSIsolation_name, int32(x))
}
func (DriverCapabilities_FSIsolation) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{25, 0}
return fileDescriptor_driver_73765692e9f557ed, []int{25, 0}
}
type CPUUsage_Fields int32
@@ -162,7 +162,7 @@ func (x CPUUsage_Fields) String() string {
return proto.EnumName(CPUUsage_Fields_name, int32(x))
}
func (CPUUsage_Fields) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{41, 0}
return fileDescriptor_driver_73765692e9f557ed, []int{41, 0}
}
type MemoryUsage_Fields int32
@@ -194,7 +194,7 @@ func (x MemoryUsage_Fields) String() string {
return proto.EnumName(MemoryUsage_Fields_name, int32(x))
}
func (MemoryUsage_Fields) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{42, 0}
return fileDescriptor_driver_73765692e9f557ed, []int{42, 0}
}
type TaskConfigSchemaRequest struct {
@@ -207,7 +207,7 @@ func (m *TaskConfigSchemaRequest) Reset() { *m = TaskConfigSchemaRequest
func (m *TaskConfigSchemaRequest) String() string { return proto.CompactTextString(m) }
func (*TaskConfigSchemaRequest) ProtoMessage() {}
func (*TaskConfigSchemaRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{0}
return fileDescriptor_driver_73765692e9f557ed, []int{0}
}
func (m *TaskConfigSchemaRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskConfigSchemaRequest.Unmarshal(m, b)
@@ -239,7 +239,7 @@ func (m *TaskConfigSchemaResponse) Reset() { *m = TaskConfigSchemaRespon
func (m *TaskConfigSchemaResponse) String() string { return proto.CompactTextString(m) }
func (*TaskConfigSchemaResponse) ProtoMessage() {}
func (*TaskConfigSchemaResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{1}
return fileDescriptor_driver_73765692e9f557ed, []int{1}
}
func (m *TaskConfigSchemaResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskConfigSchemaResponse.Unmarshal(m, b)
@@ -276,7 +276,7 @@ func (m *CapabilitiesRequest) Reset() { *m = CapabilitiesRequest{} }
func (m *CapabilitiesRequest) String() string { return proto.CompactTextString(m) }
func (*CapabilitiesRequest) ProtoMessage() {}
func (*CapabilitiesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{2}
return fileDescriptor_driver_73765692e9f557ed, []int{2}
}
func (m *CapabilitiesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CapabilitiesRequest.Unmarshal(m, b)
@@ -311,7 +311,7 @@ func (m *CapabilitiesResponse) Reset() { *m = CapabilitiesResponse{} }
func (m *CapabilitiesResponse) String() string { return proto.CompactTextString(m) }
func (*CapabilitiesResponse) ProtoMessage() {}
func (*CapabilitiesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{3}
return fileDescriptor_driver_73765692e9f557ed, []int{3}
}
func (m *CapabilitiesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CapabilitiesResponse.Unmarshal(m, b)
@@ -348,7 +348,7 @@ func (m *FingerprintRequest) Reset() { *m = FingerprintRequest{} }
func (m *FingerprintRequest) String() string { return proto.CompactTextString(m) }
func (*FingerprintRequest) ProtoMessage() {}
func (*FingerprintRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{4}
return fileDescriptor_driver_73765692e9f557ed, []int{4}
}
func (m *FingerprintRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FingerprintRequest.Unmarshal(m, b)
@@ -391,7 +391,7 @@ func (m *FingerprintResponse) Reset() { *m = FingerprintResponse{} }
func (m *FingerprintResponse) String() string { return proto.CompactTextString(m) }
func (*FingerprintResponse) ProtoMessage() {}
func (*FingerprintResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{5}
return fileDescriptor_driver_73765692e9f557ed, []int{5}
}
func (m *FingerprintResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FingerprintResponse.Unmarshal(m, b)
@@ -446,7 +446,7 @@ func (m *RecoverTaskRequest) Reset() { *m = RecoverTaskRequest{} }
func (m *RecoverTaskRequest) String() string { return proto.CompactTextString(m) }
func (*RecoverTaskRequest) ProtoMessage() {}
func (*RecoverTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{6}
return fileDescriptor_driver_73765692e9f557ed, []int{6}
}
func (m *RecoverTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RecoverTaskRequest.Unmarshal(m, b)
@@ -490,7 +490,7 @@ func (m *RecoverTaskResponse) Reset() { *m = RecoverTaskResponse{} }
func (m *RecoverTaskResponse) String() string { return proto.CompactTextString(m) }
func (*RecoverTaskResponse) ProtoMessage() {}
func (*RecoverTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{7}
return fileDescriptor_driver_73765692e9f557ed, []int{7}
}
func (m *RecoverTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RecoverTaskResponse.Unmarshal(m, b)
@@ -522,7 +522,7 @@ func (m *StartTaskRequest) Reset() { *m = StartTaskRequest{} }
func (m *StartTaskRequest) String() string { return proto.CompactTextString(m) }
func (*StartTaskRequest) ProtoMessage() {}
func (*StartTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{8}
return fileDescriptor_driver_73765692e9f557ed, []int{8}
}
func (m *StartTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StartTaskRequest.Unmarshal(m, b)
@@ -576,7 +576,7 @@ func (m *StartTaskResponse) Reset() { *m = StartTaskResponse{} }
func (m *StartTaskResponse) String() string { return proto.CompactTextString(m) }
func (*StartTaskResponse) ProtoMessage() {}
func (*StartTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{9}
return fileDescriptor_driver_73765692e9f557ed, []int{9}
}
func (m *StartTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StartTaskResponse.Unmarshal(m, b)
@@ -636,7 +636,7 @@ func (m *WaitTaskRequest) Reset() { *m = WaitTaskRequest{} }
func (m *WaitTaskRequest) String() string { return proto.CompactTextString(m) }
func (*WaitTaskRequest) ProtoMessage() {}
func (*WaitTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{10}
return fileDescriptor_driver_73765692e9f557ed, []int{10}
}
func (m *WaitTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WaitTaskRequest.Unmarshal(m, b)
@@ -677,7 +677,7 @@ func (m *WaitTaskResponse) Reset() { *m = WaitTaskResponse{} }
func (m *WaitTaskResponse) String() string { return proto.CompactTextString(m) }
func (*WaitTaskResponse) ProtoMessage() {}
func (*WaitTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{11}
return fileDescriptor_driver_73765692e9f557ed, []int{11}
}
func (m *WaitTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WaitTaskResponse.Unmarshal(m, b)
@@ -729,7 +729,7 @@ func (m *StopTaskRequest) Reset() { *m = StopTaskRequest{} }
func (m *StopTaskRequest) String() string { return proto.CompactTextString(m) }
func (*StopTaskRequest) ProtoMessage() {}
func (*StopTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{12}
return fileDescriptor_driver_73765692e9f557ed, []int{12}
}
func (m *StopTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopTaskRequest.Unmarshal(m, b)
@@ -780,7 +780,7 @@ func (m *StopTaskResponse) Reset() { *m = StopTaskResponse{} }
func (m *StopTaskResponse) String() string { return proto.CompactTextString(m) }
func (*StopTaskResponse) ProtoMessage() {}
func (*StopTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{13}
return fileDescriptor_driver_73765692e9f557ed, []int{13}
}
func (m *StopTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopTaskResponse.Unmarshal(m, b)
@@ -814,7 +814,7 @@ func (m *DestroyTaskRequest) Reset() { *m = DestroyTaskRequest{} }
func (m *DestroyTaskRequest) String() string { return proto.CompactTextString(m) }
func (*DestroyTaskRequest) ProtoMessage() {}
func (*DestroyTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{14}
return fileDescriptor_driver_73765692e9f557ed, []int{14}
}
func (m *DestroyTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DestroyTaskRequest.Unmarshal(m, b)
@@ -858,7 +858,7 @@ func (m *DestroyTaskResponse) Reset() { *m = DestroyTaskResponse{} }
func (m *DestroyTaskResponse) String() string { return proto.CompactTextString(m) }
func (*DestroyTaskResponse) ProtoMessage() {}
func (*DestroyTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{15}
return fileDescriptor_driver_73765692e9f557ed, []int{15}
}
func (m *DestroyTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DestroyTaskResponse.Unmarshal(m, b)
@@ -890,7 +890,7 @@ func (m *InspectTaskRequest) Reset() { *m = InspectTaskRequest{} }
func (m *InspectTaskRequest) String() string { return proto.CompactTextString(m) }
func (*InspectTaskRequest) ProtoMessage() {}
func (*InspectTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{16}
return fileDescriptor_driver_73765692e9f557ed, []int{16}
}
func (m *InspectTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InspectTaskRequest.Unmarshal(m, b)
@@ -933,7 +933,7 @@ func (m *InspectTaskResponse) Reset() { *m = InspectTaskResponse{} }
func (m *InspectTaskResponse) String() string { return proto.CompactTextString(m) }
func (*InspectTaskResponse) ProtoMessage() {}
func (*InspectTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{17}
return fileDescriptor_driver_73765692e9f557ed, []int{17}
}
func (m *InspectTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InspectTaskResponse.Unmarshal(m, b)
@@ -986,7 +986,7 @@ func (m *TaskStatsRequest) Reset() { *m = TaskStatsRequest{} }
func (m *TaskStatsRequest) String() string { return proto.CompactTextString(m) }
func (*TaskStatsRequest) ProtoMessage() {}
func (*TaskStatsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{18}
return fileDescriptor_driver_73765692e9f557ed, []int{18}
}
func (m *TaskStatsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskStatsRequest.Unmarshal(m, b)
@@ -1025,7 +1025,7 @@ func (m *TaskStatsResponse) Reset() { *m = TaskStatsResponse{} }
func (m *TaskStatsResponse) String() string { return proto.CompactTextString(m) }
func (*TaskStatsResponse) ProtoMessage() {}
func (*TaskStatsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{19}
return fileDescriptor_driver_73765692e9f557ed, []int{19}
}
func (m *TaskStatsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskStatsResponse.Unmarshal(m, b)
@@ -1062,7 +1062,7 @@ func (m *TaskEventsRequest) Reset() { *m = TaskEventsRequest{} }
func (m *TaskEventsRequest) String() string { return proto.CompactTextString(m) }
func (*TaskEventsRequest) ProtoMessage() {}
func (*TaskEventsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{20}
return fileDescriptor_driver_73765692e9f557ed, []int{20}
}
func (m *TaskEventsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskEventsRequest.Unmarshal(m, b)
@@ -1096,7 +1096,7 @@ func (m *SignalTaskRequest) Reset() { *m = SignalTaskRequest{} }
func (m *SignalTaskRequest) String() string { return proto.CompactTextString(m) }
func (*SignalTaskRequest) ProtoMessage() {}
func (*SignalTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{21}
return fileDescriptor_driver_73765692e9f557ed, []int{21}
}
func (m *SignalTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalTaskRequest.Unmarshal(m, b)
@@ -1140,7 +1140,7 @@ func (m *SignalTaskResponse) Reset() { *m = SignalTaskResponse{} }
func (m *SignalTaskResponse) String() string { return proto.CompactTextString(m) }
func (*SignalTaskResponse) ProtoMessage() {}
func (*SignalTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{22}
return fileDescriptor_driver_73765692e9f557ed, []int{22}
}
func (m *SignalTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalTaskResponse.Unmarshal(m, b)
@@ -1177,7 +1177,7 @@ func (m *ExecTaskRequest) Reset() { *m = ExecTaskRequest{} }
func (m *ExecTaskRequest) String() string { return proto.CompactTextString(m) }
func (*ExecTaskRequest) ProtoMessage() {}
func (*ExecTaskRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{23}
return fileDescriptor_driver_73765692e9f557ed, []int{23}
}
func (m *ExecTaskRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecTaskRequest.Unmarshal(m, b)
@@ -1234,7 +1234,7 @@ func (m *ExecTaskResponse) Reset() { *m = ExecTaskResponse{} }
func (m *ExecTaskResponse) String() string { return proto.CompactTextString(m) }
func (*ExecTaskResponse) ProtoMessage() {}
func (*ExecTaskResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{24}
return fileDescriptor_driver_73765692e9f557ed, []int{24}
}
func (m *ExecTaskResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecTaskResponse.Unmarshal(m, b)
@@ -1293,7 +1293,7 @@ func (m *DriverCapabilities) Reset() { *m = DriverCapabilities{} }
func (m *DriverCapabilities) String() string { return proto.CompactTextString(m) }
func (*DriverCapabilities) ProtoMessage() {}
func (*DriverCapabilities) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{25}
return fileDescriptor_driver_73765692e9f557ed, []int{25}
}
func (m *DriverCapabilities) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DriverCapabilities.Unmarshal(m, b)
@@ -1372,7 +1372,7 @@ func (m *TaskConfig) Reset() { *m = TaskConfig{} }
func (m *TaskConfig) String() string { return proto.CompactTextString(m) }
func (*TaskConfig) ProtoMessage() {}
func (*TaskConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{26}
return fileDescriptor_driver_73765692e9f557ed, []int{26}
}
func (m *TaskConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskConfig.Unmarshal(m, b)
@@ -1487,19 +1487,17 @@ type Resources struct {
// RawResources are the resources set for the task
RawResources *RawResources `protobuf:"bytes,1,opt,name=raw_resources,json=rawResources,proto3" json:"raw_resources,omitempty"`
// LinuxResources are the computed values to set for specific Linux features
LinuxResources *LinuxResources `protobuf:"bytes,2,opt,name=linux_resources,json=linuxResources,proto3" json:"linux_resources,omitempty"`
// NodeResources are the total resources the Node has been allocated
NodeResources *RawResources `protobuf:"bytes,3,opt,name=node_resources,json=nodeResources,proto3" json:"node_resources,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
LinuxResources *LinuxResources `protobuf:"bytes,2,opt,name=linux_resources,json=linuxResources,proto3" json:"linux_resources,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Resources) Reset() { *m = Resources{} }
func (m *Resources) String() string { return proto.CompactTextString(m) }
func (*Resources) ProtoMessage() {}
func (*Resources) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{27}
return fileDescriptor_driver_73765692e9f557ed, []int{27}
}
func (m *Resources) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Resources.Unmarshal(m, b)
@@ -1533,13 +1531,6 @@ func (m *Resources) GetLinuxResources() *LinuxResources {
return nil
}
func (m *Resources) GetNodeResources() *RawResources {
if m != nil {
return m.NodeResources
}
return nil
}
type RawResources struct {
Cpu int64 `protobuf:"varint,1,opt,name=cpu,proto3" json:"cpu,omitempty"`
Memory int64 `protobuf:"varint,2,opt,name=memory,proto3" json:"memory,omitempty"`
@@ -1555,7 +1546,7 @@ func (m *RawResources) Reset() { *m = RawResources{} }
func (m *RawResources) String() string { return proto.CompactTextString(m) }
func (*RawResources) ProtoMessage() {}
func (*RawResources) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{28}
return fileDescriptor_driver_73765692e9f557ed, []int{28}
}
func (m *RawResources) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RawResources.Unmarshal(m, b)
@@ -1626,7 +1617,7 @@ func (m *NetworkResource) Reset() { *m = NetworkResource{} }
func (m *NetworkResource) String() string { return proto.CompactTextString(m) }
func (*NetworkResource) ProtoMessage() {}
func (*NetworkResource) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{29}
return fileDescriptor_driver_73765692e9f557ed, []int{29}
}
func (m *NetworkResource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkResource.Unmarshal(m, b)
@@ -1700,7 +1691,7 @@ func (m *NetworkPort) Reset() { *m = NetworkPort{} }
func (m *NetworkPort) String() string { return proto.CompactTextString(m) }
func (*NetworkPort) ProtoMessage() {}
func (*NetworkPort) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{30}
return fileDescriptor_driver_73765692e9f557ed, []int{30}
}
func (m *NetworkPort) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkPort.Unmarshal(m, b)
@@ -1748,7 +1739,9 @@ type LinuxResources struct {
// CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified)
CpusetCpus string `protobuf:"bytes,6,opt,name=cpuset_cpus,json=cpusetCpus,proto3" json:"cpuset_cpus,omitempty"`
// CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified)
CpusetMems string `protobuf:"bytes,7,opt,name=cpuset_mems,json=cpusetMems,proto3" json:"cpuset_mems,omitempty"`
CpusetMems string `protobuf:"bytes,7,opt,name=cpuset_mems,json=cpusetMems,proto3" json:"cpuset_mems,omitempty"`
// PercentTicks is a compatability option for docker and should not be used
PercentTicks float64 `protobuf:"fixed64,8,opt,name=PercentTicks,proto3" json:"PercentTicks,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1758,7 +1751,7 @@ func (m *LinuxResources) Reset() { *m = LinuxResources{} }
func (m *LinuxResources) String() string { return proto.CompactTextString(m) }
func (*LinuxResources) ProtoMessage() {}
func (*LinuxResources) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{31}
return fileDescriptor_driver_73765692e9f557ed, []int{31}
}
func (m *LinuxResources) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LinuxResources.Unmarshal(m, b)
@@ -1827,6 +1820,13 @@ func (m *LinuxResources) GetCpusetMems() string {
return ""
}
func (m *LinuxResources) GetPercentTicks() float64 {
if m != nil {
return m.PercentTicks
}
return 0
}
type Mount struct {
// TaskPath is the file path within the task directory to mount to
TaskPath string `protobuf:"bytes,1,opt,name=task_path,json=taskPath,proto3" json:"task_path,omitempty"`
@@ -1843,7 +1843,7 @@ func (m *Mount) Reset() { *m = Mount{} }
func (m *Mount) String() string { return proto.CompactTextString(m) }
func (*Mount) ProtoMessage() {}
func (*Mount) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{32}
return fileDescriptor_driver_73765692e9f557ed, []int{32}
}
func (m *Mount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Mount.Unmarshal(m, b)
@@ -1906,7 +1906,7 @@ func (m *Device) Reset() { *m = Device{} }
func (m *Device) String() string { return proto.CompactTextString(m) }
func (*Device) ProtoMessage() {}
func (*Device) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{33}
return fileDescriptor_driver_73765692e9f557ed, []int{33}
}
func (m *Device) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Device.Unmarshal(m, b)
@@ -1964,7 +1964,7 @@ func (m *TaskHandle) Reset() { *m = TaskHandle{} }
func (m *TaskHandle) String() string { return proto.CompactTextString(m) }
func (*TaskHandle) ProtoMessage() {}
func (*TaskHandle) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{34}
return fileDescriptor_driver_73765692e9f557ed, []int{34}
}
func (m *TaskHandle) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskHandle.Unmarshal(m, b)
@@ -2024,7 +2024,7 @@ func (m *NetworkOverride) Reset() { *m = NetworkOverride{} }
func (m *NetworkOverride) String() string { return proto.CompactTextString(m) }
func (*NetworkOverride) ProtoMessage() {}
func (*NetworkOverride) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{35}
return fileDescriptor_driver_73765692e9f557ed, []int{35}
}
func (m *NetworkOverride) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkOverride.Unmarshal(m, b)
@@ -2082,7 +2082,7 @@ func (m *ExitResult) Reset() { *m = ExitResult{} }
func (m *ExitResult) String() string { return proto.CompactTextString(m) }
func (*ExitResult) ProtoMessage() {}
func (*ExitResult) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{36}
return fileDescriptor_driver_73765692e9f557ed, []int{36}
}
func (m *ExitResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExitResult.Unmarshal(m, b)
@@ -2145,7 +2145,7 @@ func (m *TaskStatus) Reset() { *m = TaskStatus{} }
func (m *TaskStatus) String() string { return proto.CompactTextString(m) }
func (*TaskStatus) ProtoMessage() {}
func (*TaskStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{37}
return fileDescriptor_driver_73765692e9f557ed, []int{37}
}
func (m *TaskStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskStatus.Unmarshal(m, b)
@@ -2220,7 +2220,7 @@ func (m *TaskDriverStatus) Reset() { *m = TaskDriverStatus{} }
func (m *TaskDriverStatus) String() string { return proto.CompactTextString(m) }
func (*TaskDriverStatus) ProtoMessage() {}
func (*TaskDriverStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{38}
return fileDescriptor_driver_73765692e9f557ed, []int{38}
}
func (m *TaskDriverStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskDriverStatus.Unmarshal(m, b)
@@ -2265,7 +2265,7 @@ func (m *TaskStats) Reset() { *m = TaskStats{} }
func (m *TaskStats) String() string { return proto.CompactTextString(m) }
func (*TaskStats) ProtoMessage() {}
func (*TaskStats) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{39}
return fileDescriptor_driver_73765692e9f557ed, []int{39}
}
func (m *TaskStats) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskStats.Unmarshal(m, b)
@@ -2327,7 +2327,7 @@ func (m *TaskResourceUsage) Reset() { *m = TaskResourceUsage{} }
func (m *TaskResourceUsage) String() string { return proto.CompactTextString(m) }
func (*TaskResourceUsage) ProtoMessage() {}
func (*TaskResourceUsage) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{40}
return fileDescriptor_driver_73765692e9f557ed, []int{40}
}
func (m *TaskResourceUsage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TaskResourceUsage.Unmarshal(m, b)
@@ -2379,7 +2379,7 @@ func (m *CPUUsage) Reset() { *m = CPUUsage{} }
func (m *CPUUsage) String() string { return proto.CompactTextString(m) }
func (*CPUUsage) ProtoMessage() {}
func (*CPUUsage) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{41}
return fileDescriptor_driver_73765692e9f557ed, []int{41}
}
func (m *CPUUsage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CPUUsage.Unmarshal(m, b)
@@ -2465,7 +2465,7 @@ func (m *MemoryUsage) Reset() { *m = MemoryUsage{} }
func (m *MemoryUsage) String() string { return proto.CompactTextString(m) }
func (*MemoryUsage) ProtoMessage() {}
func (*MemoryUsage) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{42}
return fileDescriptor_driver_73765692e9f557ed, []int{42}
}
func (m *MemoryUsage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemoryUsage.Unmarshal(m, b)
@@ -2545,7 +2545,7 @@ func (m *DriverTaskEvent) Reset() { *m = DriverTaskEvent{} }
func (m *DriverTaskEvent) String() string { return proto.CompactTextString(m) }
func (*DriverTaskEvent) ProtoMessage() {}
func (*DriverTaskEvent) Descriptor() ([]byte, []int) {
return fileDescriptor_driver_41ce58b9a7aabf23, []int{43}
return fileDescriptor_driver_73765692e9f557ed, []int{43}
}
func (m *DriverTaskEvent) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DriverTaskEvent.Unmarshal(m, b)
@@ -3236,185 +3236,185 @@ var _Driver_serviceDesc = grpc.ServiceDesc{
}
func init() {
proto.RegisterFile("plugins/drivers/proto/driver.proto", fileDescriptor_driver_41ce58b9a7aabf23)
proto.RegisterFile("plugins/drivers/proto/driver.proto", fileDescriptor_driver_73765692e9f557ed)
}
var fileDescriptor_driver_41ce58b9a7aabf23 = []byte{
var fileDescriptor_driver_73765692e9f557ed = []byte{
// 2809 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0x4b, 0x6f, 0x23, 0xc7,
0x11, 0x16, 0x9f, 0x22, 0x8b, 0x14, 0x35, 0xdb, 0xbb, 0x1b, 0xd3, 0x34, 0x12, 0xaf, 0x07, 0x70,
0x20, 0xd8, 0x5e, 0xca, 0x96, 0x11, 0xef, 0x23, 0xf0, 0x83, 0xa6, 0x66, 0x57, 0xf2, 0x4a, 0x94,
0xd2, 0xa4, 0xb0, 0x5e, 0x27, 0xf6, 0x64, 0x34, 0xd3, 0x22, 0x67, 0xc5, 0x79, 0xb8, 0x7b, 0xa8,
0x95, 0x10, 0x04, 0x09, 0x12, 0x20, 0x48, 0x02, 0x04, 0xc8, 0x25, 0xc8, 0x39, 0xb9, 0x05, 0xb9,
0xe6, 0x94, 0x20, 0x97, 0xfc, 0x8a, 0x1c, 0x73, 0x09, 0x90, 0x6b, 0x7e, 0x81, 0x83, 0x7e, 0xcc,
0x70, 0x28, 0x69, 0xbd, 0x43, 0x2a, 0x27, 0x4e, 0x55, 0x77, 0x7f, 0x5d, 0xac, 0xaa, 0xae, 0xaa,
0xee, 0x02, 0x3d, 0x1c, 0x4f, 0x86, 0xae, 0xcf, 0xd6, 0x1d, 0xea, 0x9e, 0x10, 0xca, 0xd6, 0x43,
0x1a, 0x44, 0x81, 0xa2, 0xda, 0x82, 0x40, 0xaf, 0x8f, 0x2c, 0x36, 0x72, 0xed, 0x80, 0x86, 0x6d,
0x3f, 0xf0, 0x2c, 0xa7, 0xad, 0xd6, 0xb4, 0xd5, 0x1a, 0x39, 0xad, 0xf5, 0xad, 0x61, 0x10, 0x0c,
0xc7, 0x44, 0x22, 0x1c, 0x4e, 0x8e, 0xd6, 0x9d, 0x09, 0xb5, 0x22, 0x37, 0xf0, 0xd5, 0xf8, 0xab,
0xe7, 0xc7, 0x23, 0xd7, 0x23, 0x2c, 0xb2, 0xbc, 0x50, 0x4d, 0xf8, 0x68, 0xe8, 0x46, 0xa3, 0xc9,
0x61, 0xdb, 0x0e, 0xbc, 0xf5, 0x64, 0xcb, 0x75, 0xb1, 0xe5, 0x7a, 0x2c, 0x26, 0x1b, 0x59, 0x94,
0x38, 0xeb, 0x23, 0x7b, 0xcc, 0x42, 0x62, 0xf3, 0x5f, 0x93, 0x7f, 0x48, 0x04, 0xfd, 0x65, 0x78,
0x69, 0x60, 0xb1, 0xe3, 0x6e, 0xe0, 0x1f, 0xb9, 0xc3, 0xbe, 0x3d, 0x22, 0x9e, 0x85, 0xc9, 0x97,
0x13, 0xc2, 0x22, 0xfd, 0x07, 0xd0, 0xbc, 0x38, 0xc4, 0xc2, 0xc0, 0x67, 0x04, 0x7d, 0x04, 0x45,
0x0e, 0xd2, 0xcc, 0xdd, 0xca, 0xad, 0xd5, 0x36, 0xde, 0x6a, 0x3f, 0xef, 0xff, 0xca, 0xcd, 0xdb,
0x6a, 0xf3, 0x76, 0x3f, 0x24, 0x36, 0x16, 0x2b, 0xf5, 0x9b, 0x70, 0xbd, 0x6b, 0x85, 0xd6, 0xa1,
0x3b, 0x76, 0x23, 0x97, 0xb0, 0x78, 0xd3, 0x09, 0xdc, 0x98, 0x65, 0xab, 0x0d, 0x3f, 0x87, 0xba,
0x9d, 0xe2, 0xab, 0x8d, 0xef, 0xb5, 0x33, 0x29, 0xba, 0xbd, 0x29, 0xa8, 0x19, 0xe0, 0x19, 0x38,
0xfd, 0x06, 0xa0, 0x07, 0xae, 0x3f, 0x24, 0x34, 0xa4, 0xae, 0x1f, 0xc5, 0xc2, 0xfc, 0xba, 0x00,
0xd7, 0x67, 0xd8, 0x4a, 0x98, 0xa7, 0x00, 0x56, 0x14, 0x51, 0xf7, 0x70, 0x12, 0x09, 0x51, 0x0a,
0x6b, 0xb5, 0x8d, 0x4f, 0x32, 0x8a, 0x72, 0x09, 0x5e, 0xbb, 0x93, 0x80, 0x19, 0x7e, 0x44, 0xcf,
0x70, 0x0a, 0x1d, 0x7d, 0x01, 0xe5, 0x11, 0xb1, 0xc6, 0xd1, 0xa8, 0x99, 0xbf, 0x95, 0x5b, 0x6b,
0x6c, 0x3c, 0xb8, 0xc2, 0x3e, 0x5b, 0x02, 0xa8, 0x1f, 0x59, 0x11, 0xc1, 0x0a, 0x15, 0xdd, 0x06,
0x24, 0xbf, 0x4c, 0x87, 0x30, 0x9b, 0xba, 0x21, 0xf7, 0xbf, 0x66, 0xe1, 0x56, 0x6e, 0xad, 0x8a,
0xaf, 0xc9, 0x91, 0xcd, 0xe9, 0x40, 0xeb, 0x7d, 0x58, 0x3d, 0x27, 0x2d, 0xd2, 0xa0, 0x70, 0x4c,
0xce, 0x84, 0x45, 0xaa, 0x98, 0x7f, 0xa2, 0x1b, 0x50, 0x3a, 0xb1, 0xc6, 0x13, 0x22, 0x44, 0xae,
0x62, 0x49, 0xdc, 0xcf, 0xdf, 0xcd, 0xe9, 0xf7, 0xa0, 0x96, 0x12, 0x02, 0x35, 0x00, 0x0e, 0x7a,
0x9b, 0xc6, 0xc0, 0xe8, 0x0e, 0x8c, 0x4d, 0x6d, 0x09, 0xad, 0x40, 0xf5, 0xa0, 0xb7, 0x65, 0x74,
0x76, 0x06, 0x5b, 0x4f, 0xb4, 0x1c, 0xaa, 0xc1, 0x72, 0x4c, 0xe4, 0xf5, 0x53, 0x40, 0x98, 0xd8,
0xc1, 0x09, 0xa1, 0xdc, 0x2b, 0x95, 0x89, 0xd0, 0x4b, 0xb0, 0x1c, 0x59, 0xec, 0xd8, 0x74, 0x1d,
0x25, 0x40, 0x99, 0x93, 0xdb, 0x0e, 0xda, 0x86, 0xf2, 0xc8, 0xf2, 0x9d, 0xb1, 0x14, 0xa2, 0xb6,
0xf1, 0x4e, 0x46, 0xbd, 0x71, 0xf0, 0x2d, 0xb1, 0x10, 0x2b, 0x00, 0xee, 0xaa, 0x33, 0x3b, 0x4b,
0x6d, 0xea, 0x4f, 0x40, 0xeb, 0x47, 0x16, 0x8d, 0xd2, 0xe2, 0x18, 0x50, 0xe4, 0xfb, 0x2b, 0xf7,
0x9c, 0x67, 0x4f, 0x79, 0xcc, 0xb0, 0x58, 0xae, 0xff, 0x37, 0x0f, 0xd7, 0x52, 0xd8, 0xca, 0xed,
0x1e, 0x43, 0x99, 0x12, 0x36, 0x19, 0x47, 0x02, 0xbe, 0xb1, 0xf1, 0x61, 0x46, 0xf8, 0x0b, 0x48,
0x6d, 0x2c, 0x60, 0xb0, 0x82, 0x43, 0x6b, 0xa0, 0xc9, 0x15, 0x26, 0xa1, 0x34, 0xa0, 0xa6, 0xc7,
0x86, 0xca, 0x74, 0x0d, 0xc9, 0x37, 0x38, 0x7b, 0x97, 0x0d, 0x53, 0x5a, 0x2d, 0x5c, 0x51, 0xab,
0xc8, 0x02, 0xcd, 0x27, 0xd1, 0xb3, 0x80, 0x1e, 0x9b, 0x5c, 0xb5, 0xd4, 0x75, 0x48, 0xb3, 0x28,
0x40, 0xdf, 0xcb, 0x08, 0xda, 0x93, 0xcb, 0xf7, 0xd4, 0x6a, 0xbc, 0xea, 0xcf, 0x32, 0xf4, 0x37,
0xa1, 0x2c, 0xff, 0x29, 0xf7, 0xa4, 0xfe, 0x41, 0xb7, 0x6b, 0xf4, 0xfb, 0xda, 0x12, 0xaa, 0x42,
0x09, 0x1b, 0x03, 0xcc, 0x3d, 0xac, 0x0a, 0xa5, 0x07, 0x9d, 0x41, 0x67, 0x47, 0xcb, 0xeb, 0x6f,
0xc0, 0xea, 0x63, 0xcb, 0x8d, 0xb2, 0x38, 0x97, 0x1e, 0x80, 0x36, 0x9d, 0xab, 0xac, 0xb3, 0x3d,
0x63, 0x9d, 0xec, 0xaa, 0x31, 0x4e, 0xdd, 0xe8, 0x9c, 0x3d, 0x34, 0x28, 0x10, 0x4a, 0x95, 0x09,
0xf8, 0xa7, 0xfe, 0x0c, 0x56, 0xfb, 0x51, 0x10, 0x66, 0xf2, 0xfc, 0x77, 0x61, 0x99, 0xe7, 0x89,
0x60, 0x12, 0x29, 0xd7, 0x7f, 0xb9, 0x2d, 0xf3, 0x48, 0x3b, 0xce, 0x23, 0xed, 0x4d, 0x95, 0x67,
0x70, 0x3c, 0x13, 0x7d, 0x03, 0xca, 0xcc, 0x1d, 0xfa, 0xd6, 0x58, 0x1d, 0x7d, 0x45, 0xe9, 0x88,
0x3b, 0x79, 0xbc, 0xb1, 0x72, 0xfc, 0x2e, 0xa0, 0x4d, 0xc2, 0x22, 0x1a, 0x9c, 0x65, 0x92, 0xe7,
0x06, 0x94, 0x8e, 0x02, 0x6a, 0xcb, 0x83, 0x58, 0xc1, 0x92, 0xe0, 0x87, 0x6a, 0x06, 0x44, 0x61,
0xdf, 0x06, 0xb4, 0xed, 0xf3, 0x04, 0x91, 0xcd, 0x10, 0xbf, 0xcd, 0xc3, 0xf5, 0x99, 0xf9, 0xca,
0x18, 0x8b, 0x9f, 0x43, 0x1e, 0x98, 0x26, 0x4c, 0x9e, 0x43, 0xb4, 0x07, 0x65, 0x39, 0x43, 0x69,
0xf2, 0xce, 0x1c, 0x40, 0x32, 0xe7, 0x28, 0x38, 0x05, 0x73, 0xa9, 0xd3, 0x17, 0xfe, 0xdf, 0x4e,
0xaf, 0xc5, 0xff, 0x83, 0xbd, 0x50, 0x7f, 0xdf, 0x87, 0x6b, 0xa9, 0xc9, 0x4a, 0x79, 0x0f, 0xa0,
0xc4, 0x38, 0x43, 0x69, 0xef, 0xed, 0x39, 0xb5, 0xc7, 0xb0, 0x5c, 0xae, 0x5f, 0x97, 0xe0, 0xc6,
0x09, 0xf1, 0x13, 0x51, 0xf4, 0x4d, 0xb8, 0xd6, 0x17, 0xae, 0x95, 0xc9, 0x77, 0xa6, 0x6e, 0x99,
0x9f, 0x71, 0xcb, 0x1b, 0x80, 0xd2, 0x28, 0xca, 0x79, 0xce, 0x60, 0xd5, 0x38, 0x25, 0x76, 0x26,
0xe4, 0x26, 0x2c, 0xdb, 0x81, 0xe7, 0x59, 0xbe, 0xd3, 0xcc, 0xdf, 0x2a, 0xac, 0x55, 0x71, 0x4c,
0xa6, 0xcf, 0x4f, 0x21, 0xeb, 0xf9, 0xd1, 0x7f, 0x93, 0x03, 0x6d, 0xba, 0xb7, 0x52, 0x24, 0x97,
0x3e, 0x72, 0x38, 0x10, 0xdf, 0xbb, 0x8e, 0x15, 0xa5, 0xf8, 0xf1, 0x11, 0x97, 0x7c, 0x42, 0x69,
0x2a, 0x84, 0x14, 0xae, 0x18, 0x42, 0xf4, 0x7f, 0xe7, 0x00, 0x5d, 0xac, 0x7a, 0xd0, 0x6b, 0x50,
0x67, 0xc4, 0x77, 0x4c, 0xa9, 0x46, 0x69, 0xe1, 0x0a, 0xae, 0x71, 0x9e, 0xd4, 0x27, 0x43, 0x08,
0x8a, 0xe4, 0x94, 0xd8, 0xea, 0xb4, 0x8a, 0x6f, 0x34, 0x82, 0xfa, 0x11, 0x33, 0x5d, 0x16, 0x8c,
0xad, 0xa4, 0x3c, 0x68, 0x6c, 0x18, 0x0b, 0x57, 0x5f, 0xed, 0x07, 0xfd, 0xed, 0x18, 0x0c, 0xd7,
0x8e, 0x58, 0x42, 0xe8, 0x6d, 0xa8, 0xa5, 0xc6, 0x50, 0x05, 0x8a, 0xbd, 0xbd, 0x9e, 0xa1, 0x2d,
0x21, 0x80, 0x72, 0x77, 0x0b, 0xef, 0xed, 0x0d, 0x64, 0xd4, 0xde, 0xde, 0xed, 0x3c, 0x34, 0xb4,
0xbc, 0xfe, 0x55, 0x11, 0x60, 0x9a, 0x3e, 0x51, 0x03, 0xf2, 0x89, 0xa5, 0xf3, 0xae, 0xc3, 0xff,
0x8c, 0x6f, 0x79, 0x71, 0x21, 0x22, 0xbe, 0xd1, 0x06, 0xdc, 0xf4, 0xd8, 0x30, 0xb4, 0xec, 0x63,
0x53, 0x65, 0x3d, 0x5b, 0x2c, 0x16, 0xff, 0xaa, 0x8e, 0xaf, 0xab, 0x41, 0x25, 0xb5, 0xc4, 0xdd,
0x81, 0x02, 0xf1, 0x4f, 0x9a, 0x45, 0x51, 0xea, 0xdd, 0x9f, 0x3b, 0xad, 0xb7, 0x0d, 0xff, 0x44,
0x96, 0x76, 0x1c, 0x06, 0xf5, 0xa0, 0x4a, 0x09, 0x0b, 0x26, 0xd4, 0x26, 0xac, 0x59, 0x9a, 0xeb,
0x90, 0xe1, 0x78, 0x1d, 0x9e, 0x42, 0xa0, 0x4d, 0x28, 0x7b, 0xc1, 0xc4, 0x8f, 0x58, 0xb3, 0x2c,
0x04, 0x7c, 0x2b, 0x23, 0xd8, 0x2e, 0x5f, 0x84, 0xd5, 0x5a, 0xf4, 0x10, 0x96, 0x1d, 0x72, 0xe2,
0x72, 0x99, 0x96, 0x05, 0xcc, 0xed, 0xac, 0xf6, 0x15, 0xab, 0x70, 0xbc, 0x9a, 0x2b, 0x7d, 0xc2,
0x08, 0x6d, 0x56, 0xa4, 0xd2, 0xf9, 0x37, 0x7a, 0x05, 0xaa, 0xd6, 0x78, 0x1c, 0xd8, 0xa6, 0xe3,
0xd2, 0x66, 0x55, 0x0c, 0x54, 0x04, 0x63, 0xd3, 0xa5, 0xe8, 0x55, 0xa8, 0xc9, 0x93, 0x61, 0x86,
0x56, 0x34, 0x6a, 0x82, 0x18, 0x06, 0xc9, 0xda, 0xb7, 0xa2, 0x91, 0x9a, 0x40, 0x28, 0x95, 0x13,
0x6a, 0xc9, 0x04, 0x42, 0xa9, 0x98, 0xf0, 0x6d, 0x58, 0x15, 0xc7, 0x7c, 0x48, 0x83, 0x49, 0x68,
0x0a, 0x93, 0xd7, 0xc5, 0xa4, 0x15, 0xce, 0x7e, 0xc8, 0xb9, 0x3d, 0x6e, 0xfb, 0x97, 0xa1, 0xf2,
0x34, 0x38, 0x94, 0x13, 0x56, 0xc4, 0x84, 0xe5, 0xa7, 0xc1, 0x21, 0x1f, 0x6a, 0xbd, 0x07, 0x95,
0xd8, 0x4a, 0x73, 0x95, 0xb4, 0x7f, 0xc8, 0x43, 0x35, 0xb1, 0x0a, 0xfa, 0x14, 0x56, 0xa8, 0xf5,
0xcc, 0x9c, 0x9a, 0x57, 0xc6, 0xd0, 0x77, 0xb3, 0x9a, 0xd7, 0x7a, 0x36, 0xb5, 0x70, 0x9d, 0xa6,
0x28, 0xf4, 0x05, 0xac, 0x8e, 0x5d, 0x7f, 0x72, 0x9a, 0xc2, 0x96, 0x49, 0xe9, 0x3b, 0x19, 0xb1,
0x77, 0xf8, 0xea, 0x29, 0x7a, 0x63, 0x3c, 0x43, 0xa3, 0xcf, 0xa0, 0xe1, 0x07, 0x0e, 0x49, 0xc1,
0x17, 0x16, 0x17, 0x7d, 0x85, 0x43, 0x25, 0xa4, 0xfe, 0x97, 0x1c, 0xd4, 0xd3, 0xe3, 0x5c, 0xc1,
0x76, 0x38, 0x11, 0xca, 0x29, 0x60, 0xfe, 0xc9, 0x63, 0xa2, 0x47, 0xbc, 0x80, 0x9e, 0x89, 0x7f,
0x55, 0xc0, 0x8a, 0xe2, 0xce, 0xe4, 0xb8, 0xec, 0x58, 0x08, 0x53, 0xc0, 0xe2, 0x9b, 0xf3, 0xdc,
0x20, 0x64, 0xa2, 0x5c, 0x2c, 0x60, 0xf1, 0x8d, 0x30, 0x54, 0x54, 0x26, 0xe4, 0x47, 0xaa, 0x30,
0x7f, 0x46, 0x8d, 0x85, 0xc3, 0x09, 0x8e, 0xfe, 0xfb, 0x3c, 0xac, 0x9e, 0x1b, 0xe5, 0x72, 0x4a,
0x3f, 0x8f, 0xf3, 0x89, 0xa4, 0xb8, 0x4c, 0xb6, 0xeb, 0xc4, 0x45, 0x9b, 0xf8, 0x16, 0xd1, 0x28,
0x54, 0x05, 0x55, 0xde, 0x0d, 0xb9, 0x13, 0x79, 0x87, 0x6e, 0x24, 0x05, 0x2f, 0x61, 0x49, 0xa0,
0x27, 0xd0, 0xa0, 0x84, 0x11, 0x7a, 0x42, 0x1c, 0x33, 0x0c, 0x68, 0x14, 0xcb, 0xbf, 0x31, 0x9f,
0xfc, 0xfb, 0x01, 0x8d, 0xf0, 0x4a, 0x8c, 0xc4, 0x29, 0x86, 0x1e, 0xc3, 0x8a, 0x73, 0xe6, 0x5b,
0x9e, 0x6b, 0x2b, 0xe4, 0xf2, 0xc2, 0xc8, 0x75, 0x05, 0x24, 0x80, 0xf9, 0x3d, 0x2e, 0x35, 0xc8,
0xff, 0xd8, 0xd8, 0x3a, 0x24, 0x63, 0xa5, 0x13, 0x49, 0xcc, 0x9e, 0x99, 0x92, 0x3a, 0x33, 0xfa,
0x57, 0x39, 0x68, 0xcc, 0xba, 0x22, 0xfa, 0x26, 0x80, 0x1d, 0x4e, 0xcc, 0x90, 0x50, 0x37, 0x70,
0x94, 0x53, 0x54, 0xed, 0x70, 0xb2, 0x2f, 0x18, 0x3c, 0x76, 0xf0, 0xe1, 0x2f, 0x27, 0x41, 0x64,
0x29, 0xef, 0xa8, 0xd8, 0xe1, 0xe4, 0x7b, 0x9c, 0x8e, 0xd7, 0x8a, 0x87, 0x06, 0xa6, 0xbc, 0x84,
0x4f, 0xef, 0x0b, 0x06, 0x7a, 0x0b, 0x90, 0x74, 0x24, 0x73, 0xec, 0x7a, 0x6e, 0x64, 0x1e, 0x9e,
0xf1, 0x2b, 0xbb, 0x74, 0x1c, 0x4d, 0x8e, 0xec, 0xf0, 0x81, 0x8f, 0x39, 0x1f, 0xe9, 0xb0, 0x12,
0x04, 0x9e, 0xc9, 0xec, 0x80, 0x12, 0xd3, 0x72, 0x9e, 0x8a, 0xe0, 0x5c, 0xc0, 0xb5, 0x20, 0xf0,
0xfa, 0x9c, 0xd7, 0x71, 0x9e, 0xf2, 0x58, 0x64, 0x87, 0x13, 0x46, 0x22, 0x93, 0xff, 0x34, 0xcb,
0x32, 0x16, 0x49, 0x56, 0x37, 0x9c, 0xb0, 0xd4, 0x04, 0x8f, 0x78, 0x3c, 0x96, 0xa6, 0x26, 0xec,
0x12, 0x8f, 0xe9, 0x9f, 0x43, 0x49, 0x44, 0x5e, 0xfe, 0xc7, 0x44, 0xd4, 0x12, 0x41, 0x4d, 0xaa,
0xae, 0xc2, 0x19, 0x22, 0xa4, 0xbd, 0x02, 0xd5, 0x51, 0xc0, 0x54, 0x48, 0x94, 0x5e, 0x55, 0xe1,
0x0c, 0x31, 0xd8, 0x82, 0x0a, 0x25, 0x96, 0x13, 0xf8, 0xe3, 0x33, 0xf1, 0x9f, 0x2b, 0x38, 0xa1,
0xf5, 0x2f, 0xa1, 0x2c, 0x23, 0xf2, 0x15, 0xf0, 0x6f, 0x03, 0xb2, 0x65, 0x2c, 0x0d, 0x09, 0xf5,
0x5c, 0xc6, 0xdc, 0xc0, 0x67, 0xf1, 0xab, 0x80, 0x1c, 0xd9, 0x9f, 0x0e, 0xe8, 0xff, 0xc8, 0xc9,
0x2c, 0x2c, 0xaf, 0x78, 0xbc, 0x8e, 0x51, 0x29, 0x75, 0xe1, 0x7b, 0xb0, 0x02, 0x88, 0x6b, 0x51,
0xa2, 0x5e, 0x3f, 0xe6, 0xad, 0x45, 0x89, 0xac, 0x45, 0x09, 0x2f, 0x7c, 0x54, 0xb2, 0x97, 0x70,
0x32, 0xd7, 0xd7, 0x9c, 0xa4, 0x48, 0x27, 0xfa, 0x7f, 0x72, 0xc9, 0x69, 0x8f, 0x8b, 0x69, 0xf4,
0x05, 0x54, 0xf8, 0xc1, 0x31, 0x3d, 0x2b, 0x54, 0xef, 0x3c, 0xdd, 0xc5, 0xea, 0xf4, 0x36, 0x3f,
0x27, 0xbb, 0x56, 0x28, 0xab, 0x80, 0xe5, 0x50, 0x52, 0x3c, 0x6a, 0x58, 0xce, 0x34, 0x6a, 0xf0,
0x6f, 0xf4, 0x3a, 0x34, 0xac, 0x49, 0x14, 0x98, 0x96, 0x73, 0x42, 0x68, 0xe4, 0x32, 0xa2, 0x2c,
0xbc, 0xc2, 0xb9, 0x9d, 0x98, 0xd9, 0xba, 0x0f, 0xf5, 0x34, 0xe6, 0x8b, 0x72, 0x56, 0x29, 0x9d,
0xb3, 0x7e, 0x08, 0x30, 0xad, 0x19, 0xb9, 0x27, 0x90, 0x53, 0x37, 0x32, 0xed, 0xc0, 0x91, 0x51,
0xad, 0x84, 0x2b, 0x9c, 0xd1, 0x0d, 0x1c, 0x72, 0xae, 0x02, 0x2f, 0xc5, 0x15, 0x38, 0x3f, 0x77,
0xfc, 0xa8, 0x1c, 0xbb, 0xe3, 0x31, 0x71, 0x94, 0x84, 0xd5, 0x20, 0xf0, 0x1e, 0x09, 0x86, 0xfe,
0xf7, 0xbc, 0xf4, 0x08, 0x79, 0xff, 0xc9, 0x54, 0x97, 0x25, 0xa6, 0x2e, 0x5c, 0xcd, 0xd4, 0xf7,
0x00, 0x58, 0x64, 0xd1, 0x88, 0x38, 0xa6, 0x15, 0xa9, 0x27, 0x85, 0xd6, 0x85, 0x12, 0x7e, 0x10,
0x3f, 0xa5, 0xe2, 0xaa, 0x9a, 0xdd, 0x89, 0xd0, 0xfb, 0x50, 0xb7, 0x03, 0x2f, 0x1c, 0x13, 0xb5,
0xb8, 0xf4, 0xc2, 0xc5, 0xb5, 0x64, 0x7e, 0x27, 0x4a, 0xd5, 0xef, 0xe5, 0xab, 0xd6, 0xef, 0x7f,
0xcd, 0xc9, 0x6b, 0x5c, 0xfa, 0x16, 0x89, 0x86, 0x97, 0xbc, 0x3b, 0x3e, 0x5c, 0xf0, 0x4a, 0xfa,
0x75, 0x8f, 0x8e, 0x57, 0x7d, 0xe5, 0xfb, 0x5b, 0x01, 0xaa, 0xc9, 0x6d, 0xf0, 0x82, 0xed, 0xef,
0x42, 0x35, 0x79, 0xc7, 0x56, 0x25, 0xcc, 0xd7, 0x9a, 0x27, 0x99, 0x8c, 0x8e, 0x00, 0x59, 0xc3,
0x61, 0x52, 0xa1, 0x98, 0x13, 0x66, 0x0d, 0xe3, 0xfb, 0xf3, 0xdd, 0x39, 0xf4, 0x10, 0x67, 0x9e,
0x03, 0xbe, 0x1e, 0x6b, 0xd6, 0x70, 0x38, 0xc3, 0x41, 0x3f, 0x82, 0x9b, 0xb3, 0x7b, 0x98, 0x87,
0x67, 0x66, 0xe8, 0x3a, 0xaa, 0xfe, 0xdf, 0x9a, 0xf7, 0x42, 0xdc, 0x9e, 0x81, 0xff, 0xf8, 0x6c,
0xdf, 0x75, 0xa4, 0xce, 0x11, 0xbd, 0x30, 0xd0, 0xfa, 0x09, 0xbc, 0xf4, 0x9c, 0xe9, 0x97, 0xd8,
0xa0, 0x97, 0xb6, 0xc1, 0x55, 0x94, 0x90, 0xb2, 0xde, 0x1f, 0x73, 0xf2, 0xde, 0x3e, 0xab, 0x93,
0xce, 0xb4, 0x62, 0xab, 0x6d, 0xac, 0x67, 0xdc, 0xa7, 0xbb, 0x7f, 0x20, 0xe1, 0x45, 0x89, 0xf7,
0xc9, 0x4c, 0x89, 0x97, 0xbd, 0x0c, 0xd9, 0x15, 0x8b, 0x24, 0x90, 0x42, 0xd0, 0xff, 0x5c, 0x80,
0x4a, 0x8c, 0x2e, 0xae, 0x07, 0x67, 0x2c, 0x22, 0x9e, 0xe9, 0xc5, 0x21, 0x2c, 0x87, 0x41, 0xb2,
0x76, 0x79, 0x10, 0x7b, 0x05, 0xaa, 0xfc, 0x16, 0x22, 0x87, 0xf3, 0x62, 0xb8, 0xc2, 0x19, 0x62,
0xf0, 0x55, 0xa8, 0x45, 0x41, 0x64, 0x8d, 0xcd, 0xc8, 0xb5, 0x8f, 0x65, 0x92, 0xcb, 0x61, 0x10,
0xac, 0x01, 0xe7, 0xa0, 0x37, 0xe1, 0x5a, 0x34, 0xa2, 0x41, 0x14, 0x8d, 0x79, 0x85, 0x26, 0x6a,
0x12, 0x59, 0x42, 0x14, 0xb1, 0x96, 0x0c, 0xc8, 0x5a, 0x85, 0xf1, 0xe8, 0x3d, 0x9d, 0xcc, 0x5d,
0x57, 0x04, 0x91, 0x22, 0x5e, 0x49, 0xb8, 0xdc, 0xb5, 0x51, 0x13, 0x96, 0x43, 0x42, 0x6d, 0xe2,
0xcb, 0x58, 0x91, 0xc3, 0x31, 0x89, 0x4c, 0x58, 0xf5, 0x88, 0xc5, 0x26, 0x94, 0x38, 0xe6, 0x91,
0x4b, 0xc6, 0x8e, 0xbc, 0x8e, 0x35, 0x32, 0xd7, 0xb3, 0xb1, 0x5a, 0xda, 0x0f, 0xc4, 0x6a, 0xdc,
0x88, 0xe1, 0x24, 0xcd, 0xeb, 0x03, 0xf9, 0x85, 0x56, 0xa1, 0xd6, 0x7f, 0xd2, 0x1f, 0x18, 0xbb,
0xe6, 0xee, 0xde, 0xa6, 0xa1, 0xde, 0xdf, 0xfb, 0x06, 0x96, 0x64, 0x8e, 0x8f, 0x0f, 0xf6, 0x06,
0x9d, 0x1d, 0x73, 0xb0, 0xdd, 0x7d, 0xd4, 0xd7, 0xf2, 0xe8, 0x26, 0x5c, 0x1b, 0x6c, 0xe1, 0xbd,
0xc1, 0x60, 0xc7, 0xd8, 0x34, 0xf7, 0x0d, 0xbc, 0xbd, 0xb7, 0xd9, 0xd7, 0x0a, 0x08, 0x41, 0x63,
0xca, 0x1e, 0x6c, 0xef, 0x1a, 0x5a, 0x11, 0xd5, 0x60, 0x79, 0xdf, 0xc0, 0x5d, 0xa3, 0x37, 0xd0,
0x4a, 0xfa, 0x3f, 0xf3, 0x50, 0x4b, 0x59, 0x91, 0x3b, 0x32, 0x65, 0xf2, 0x6e, 0x54, 0xc4, 0xfc,
0x93, 0x07, 0x13, 0xdb, 0xb2, 0x47, 0xd2, 0x3a, 0x45, 0x2c, 0x09, 0x6e, 0x37, 0xcf, 0x3a, 0x4d,
0x9d, 0xf3, 0x22, 0xae, 0x78, 0xd6, 0xa9, 0x04, 0x79, 0x0d, 0xea, 0xc7, 0x84, 0xfa, 0x64, 0xac,
0xc6, 0xa5, 0x45, 0x6a, 0x92, 0x27, 0xa7, 0xac, 0x81, 0xa6, 0xa6, 0x4c, 0x61, 0xa4, 0x39, 0x1a,
0x92, 0xbf, 0x1b, 0x83, 0x1d, 0x5e, 0xd4, 0x7a, 0x59, 0x68, 0xfd, 0xde, 0xfc, 0x4e, 0xfa, 0x3c,
0xc5, 0xf7, 0x13, 0xc5, 0x2f, 0x43, 0x01, 0xc7, 0x4f, 0xd1, 0xdd, 0x4e, 0x77, 0x8b, 0x2b, 0x7b,
0x05, 0xaa, 0xbb, 0x9d, 0x4f, 0xcd, 0x83, 0xbe, 0x78, 0xd8, 0x40, 0x1a, 0xd4, 0x1f, 0x19, 0xb8,
0x67, 0xec, 0x28, 0x4e, 0x01, 0xdd, 0x00, 0x4d, 0x71, 0xa6, 0xf3, 0x8a, 0xfa, 0x9f, 0xf2, 0xb0,
0x2a, 0xe3, 0x7a, 0xf2, 0xd6, 0xf6, 0xfc, 0x47, 0xaf, 0xc5, 0x43, 0x6f, 0x13, 0x96, 0x3d, 0xc2,
0x12, 0x3b, 0x54, 0x71, 0x4c, 0x22, 0x17, 0x6a, 0x96, 0xef, 0x07, 0x91, 0x78, 0xb0, 0x61, 0x2a,
0x44, 0x3e, 0x9c, 0xeb, 0x69, 0x28, 0x91, 0xbc, 0xdd, 0x99, 0x22, 0xc9, 0x08, 0x99, 0xc6, 0x6e,
0x7d, 0x00, 0xda, 0xf9, 0x09, 0xf3, 0xe4, 0xa5, 0x37, 0xde, 0x99, 0xa6, 0x25, 0xc2, 0x1d, 0xf4,
0xa0, 0xf7, 0xa8, 0xb7, 0xf7, 0xb8, 0xa7, 0x2d, 0x71, 0x02, 0x1f, 0xf4, 0x7a, 0xdb, 0xbd, 0x87,
0x5a, 0x0e, 0x01, 0x94, 0x8d, 0x4f, 0xb7, 0x07, 0xc6, 0xa6, 0x96, 0xdf, 0xf8, 0xd7, 0x0a, 0x94,
0xa5, 0x90, 0xe8, 0x77, 0x2a, 0x25, 0xa7, 0x1b, 0xa2, 0xe8, 0x83, 0xb9, 0x4b, 0xdb, 0x99, 0x26,
0x6b, 0xeb, 0xc3, 0x85, 0xd7, 0xab, 0x37, 0xcf, 0x25, 0xf4, 0xab, 0x1c, 0xd4, 0x67, 0x1e, 0xf9,
0xb2, 0xbe, 0x4f, 0x5d, 0xd2, 0x7f, 0x6d, 0x7d, 0x77, 0xa1, 0xb5, 0x89, 0x2c, 0xbf, 0xcc, 0x41,
0x2d, 0xd5, 0x79, 0x44, 0xf7, 0x16, 0xe9, 0x56, 0x4a, 0x49, 0xee, 0x2f, 0xde, 0xe8, 0xd4, 0x97,
0xde, 0xce, 0xa1, 0x5f, 0xe4, 0xa0, 0x96, 0x6a, 0xdb, 0x65, 0x16, 0xe5, 0x62, 0x93, 0x31, 0xb3,
0x28, 0x97, 0x75, 0x09, 0x97, 0xd0, 0x4f, 0x73, 0x50, 0x4d, 0x5a, 0x70, 0xe8, 0xce, 0xfc, 0x4d,
0x3b, 0x29, 0xc4, 0xdd, 0x45, 0xbb, 0x7d, 0xfa, 0x12, 0xfa, 0x31, 0x54, 0xe2, 0x7e, 0x15, 0xca,
0x9a, 0x46, 0xce, 0x35, 0xc3, 0x5a, 0x77, 0xe6, 0x5e, 0x97, 0xde, 0x3e, 0x6e, 0x22, 0x65, 0xde,
0xfe, 0x5c, 0xbb, 0xab, 0x75, 0x67, 0xee, 0x75, 0xc9, 0xf6, 0xdc, 0x13, 0x52, 0xbd, 0xa6, 0xcc,
0x9e, 0x70, 0xb1, 0xc9, 0x95, 0xd9, 0x13, 0x2e, 0x6b, 0x6d, 0x49, 0x41, 0x52, 0xdd, 0xaa, 0xcc,
0x82, 0x5c, 0xec, 0x88, 0x65, 0x16, 0xe4, 0x92, 0xe6, 0x98, 0x72, 0xc9, 0x69, 0x81, 0x7e, 0x67,
0xee, 0x06, 0xcf, 0x9c, 0x2e, 0x79, 0xa1, 0xc5, 0xa4, 0x2f, 0xa1, 0x9f, 0xa9, 0x27, 0x03, 0xd9,
0x1d, 0x42, 0xf3, 0x40, 0xcd, 0x34, 0x94, 0x5a, 0xef, 0x2d, 0x96, 0x6a, 0x44, 0x8c, 0xf8, 0x79,
0x0e, 0x60, 0xda, 0x47, 0xca, 0x2c, 0xc4, 0x85, 0x06, 0x56, 0xeb, 0xde, 0x02, 0x2b, 0xd3, 0xc7,
0x23, 0x6e, 0x1d, 0x65, 0x3e, 0x1e, 0xe7, 0xfa, 0x5c, 0x99, 0x8f, 0xc7, 0xf9, 0x1e, 0x95, 0xbe,
0xf4, 0xf1, 0xf2, 0x67, 0x25, 0x99, 0xfb, 0xcb, 0xe2, 0xe7, 0xdd, 0xff, 0x05, 0x00, 0x00, 0xff,
0xff, 0x96, 0x9e, 0x17, 0x6c, 0xe2, 0x24, 0x00, 0x00,
0xf1, 0x17, 0x9f, 0x22, 0x8b, 0x14, 0x35, 0xdb, 0xbb, 0xfb, 0x37, 0x4d, 0xe3, 0x1f, 0xaf, 0x07,
0x70, 0xb0, 0xb0, 0xbd, 0x94, 0x2d, 0x23, 0xde, 0x47, 0xe0, 0x07, 0x4d, 0xce, 0xae, 0xe4, 0x95,
0x28, 0xa5, 0x49, 0x61, 0xbd, 0x49, 0xec, 0xc9, 0x68, 0xa6, 0x45, 0xce, 0x8a, 0xf3, 0x70, 0xf7,
0x50, 0x2b, 0x21, 0x08, 0x12, 0x24, 0x40, 0x90, 0x04, 0x08, 0x90, 0x4b, 0x90, 0x7b, 0x72, 0x0a,
0x72, 0xcd, 0x29, 0x41, 0x2e, 0x01, 0xf2, 0x1d, 0x72, 0xcc, 0x25, 0x40, 0xae, 0xf9, 0x04, 0x09,
0xfa, 0x31, 0xc3, 0xa1, 0xa4, 0xb5, 0x87, 0x54, 0x4e, 0x9c, 0xae, 0xee, 0xfa, 0x75, 0xb1, 0xaa,
0xba, 0xaa, 0xba, 0x0b, 0xf4, 0x70, 0x32, 0x1d, 0xb9, 0x3e, 0xdb, 0x70, 0xa8, 0x7b, 0x42, 0x28,
0xdb, 0x08, 0x69, 0x10, 0x05, 0x6a, 0xd4, 0x16, 0x03, 0xf4, 0xfa, 0xd8, 0x62, 0x63, 0xd7, 0x0e,
0x68, 0xd8, 0xf6, 0x03, 0xcf, 0x72, 0xda, 0x8a, 0xa7, 0xad, 0x78, 0xe4, 0xb2, 0xd6, 0xd7, 0x46,
0x41, 0x30, 0x9a, 0x10, 0x89, 0x70, 0x38, 0x3d, 0xda, 0x70, 0xa6, 0xd4, 0x8a, 0xdc, 0xc0, 0x57,
0xf3, 0xaf, 0x9e, 0x9f, 0x8f, 0x5c, 0x8f, 0xb0, 0xc8, 0xf2, 0x42, 0xb5, 0xe0, 0xa3, 0x91, 0x1b,
0x8d, 0xa7, 0x87, 0x6d, 0x3b, 0xf0, 0x36, 0x92, 0x2d, 0x37, 0xc4, 0x96, 0x1b, 0xb1, 0x98, 0x6c,
0x6c, 0x51, 0xe2, 0x6c, 0x8c, 0xed, 0x09, 0x0b, 0x89, 0xcd, 0x7f, 0x4d, 0xfe, 0x21, 0x11, 0xf4,
0x97, 0xe1, 0xa5, 0xa1, 0xc5, 0x8e, 0xbb, 0x81, 0x7f, 0xe4, 0x8e, 0x06, 0xf6, 0x98, 0x78, 0x16,
0x26, 0x5f, 0x4c, 0x09, 0x8b, 0xf4, 0xef, 0x42, 0xf3, 0xe2, 0x14, 0x0b, 0x03, 0x9f, 0x11, 0xf4,
0x11, 0x14, 0x39, 0x48, 0x33, 0x77, 0x2b, 0x77, 0xbb, 0xb6, 0xf9, 0x56, 0xfb, 0x45, 0xff, 0x57,
0x6e, 0xde, 0x56, 0x9b, 0xb7, 0x07, 0x21, 0xb1, 0xb1, 0xe0, 0xd4, 0x6f, 0xc2, 0xf5, 0xae, 0x15,
0x5a, 0x87, 0xee, 0xc4, 0x8d, 0x5c, 0xc2, 0xe2, 0x4d, 0xa7, 0x70, 0x63, 0x9e, 0xac, 0x36, 0xfc,
0x0c, 0xea, 0x76, 0x8a, 0xae, 0x36, 0xbe, 0xdf, 0xce, 0xa4, 0xe8, 0x76, 0x4f, 0x8c, 0xe6, 0x80,
0xe7, 0xe0, 0xf4, 0x1b, 0x80, 0x1e, 0xba, 0xfe, 0x88, 0xd0, 0x90, 0xba, 0x7e, 0x14, 0x0b, 0xf3,
0x8b, 0x02, 0x5c, 0x9f, 0x23, 0x2b, 0x61, 0x9e, 0x01, 0x58, 0x51, 0x44, 0xdd, 0xc3, 0x69, 0x24,
0x44, 0x29, 0xdc, 0xae, 0x6d, 0x7e, 0x92, 0x51, 0x94, 0x4b, 0xf0, 0xda, 0x9d, 0x04, 0xcc, 0xf0,
0x23, 0x7a, 0x86, 0x53, 0xe8, 0xe8, 0x73, 0x28, 0x8f, 0x89, 0x35, 0x89, 0xc6, 0xcd, 0xfc, 0xad,
0xdc, 0xed, 0xc6, 0xe6, 0xc3, 0x2b, 0xec, 0xb3, 0x25, 0x80, 0x06, 0x91, 0x15, 0x11, 0xac, 0x50,
0xd1, 0x1d, 0x40, 0xf2, 0xcb, 0x74, 0x08, 0xb3, 0xa9, 0x1b, 0x72, 0xff, 0x6b, 0x16, 0x6e, 0xe5,
0x6e, 0x57, 0xf1, 0x35, 0x39, 0xd3, 0x9b, 0x4d, 0xb4, 0xde, 0x87, 0xf5, 0x73, 0xd2, 0x22, 0x0d,
0x0a, 0xc7, 0xe4, 0x4c, 0x58, 0xa4, 0x8a, 0xf9, 0x27, 0xba, 0x01, 0xa5, 0x13, 0x6b, 0x32, 0x25,
0x42, 0xe4, 0x2a, 0x96, 0x83, 0x07, 0xf9, 0x7b, 0x39, 0xfd, 0x3e, 0xd4, 0x52, 0x42, 0xa0, 0x06,
0xc0, 0x41, 0xbf, 0x67, 0x0c, 0x8d, 0xee, 0xd0, 0xe8, 0x69, 0x2b, 0x68, 0x0d, 0xaa, 0x07, 0xfd,
0x2d, 0xa3, 0xb3, 0x33, 0xdc, 0x7a, 0xaa, 0xe5, 0x50, 0x0d, 0x56, 0xe3, 0x41, 0x5e, 0x3f, 0x05,
0x84, 0x89, 0x1d, 0x9c, 0x10, 0xca, 0xbd, 0x52, 0x99, 0x08, 0xbd, 0x04, 0xab, 0x91, 0xc5, 0x8e,
0x4d, 0xd7, 0x51, 0x02, 0x94, 0xf9, 0x70, 0xdb, 0x41, 0xdb, 0x50, 0x1e, 0x5b, 0xbe, 0x33, 0x91,
0x42, 0xd4, 0x36, 0xdf, 0xc9, 0xa8, 0x37, 0x0e, 0xbe, 0x25, 0x18, 0xb1, 0x02, 0xe0, 0xae, 0x3a,
0xb7, 0xb3, 0xd4, 0xa6, 0xfe, 0x14, 0xb4, 0x41, 0x64, 0xd1, 0x28, 0x2d, 0x8e, 0x01, 0x45, 0xbe,
0xbf, 0x72, 0xcf, 0x45, 0xf6, 0x94, 0xc7, 0x0c, 0x0b, 0x76, 0xfd, 0xdf, 0x79, 0xb8, 0x96, 0xc2,
0x56, 0x6e, 0xf7, 0x04, 0xca, 0x94, 0xb0, 0xe9, 0x24, 0x12, 0xf0, 0x8d, 0xcd, 0x0f, 0x33, 0xc2,
0x5f, 0x40, 0x6a, 0x63, 0x01, 0x83, 0x15, 0x1c, 0xba, 0x0d, 0x9a, 0xe4, 0x30, 0x09, 0xa5, 0x01,
0x35, 0x3d, 0x36, 0x52, 0xa6, 0x6b, 0x48, 0xba, 0xc1, 0xc9, 0xbb, 0x6c, 0x94, 0xd2, 0x6a, 0xe1,
0x8a, 0x5a, 0x45, 0x16, 0x68, 0x3e, 0x89, 0x9e, 0x07, 0xf4, 0xd8, 0xe4, 0xaa, 0xa5, 0xae, 0x43,
0x9a, 0x45, 0x01, 0xfa, 0x5e, 0x46, 0xd0, 0xbe, 0x64, 0xdf, 0x53, 0xdc, 0x78, 0xdd, 0x9f, 0x27,
0xe8, 0x6f, 0x42, 0x59, 0xfe, 0x53, 0xee, 0x49, 0x83, 0x83, 0x6e, 0xd7, 0x18, 0x0c, 0xb4, 0x15,
0x54, 0x85, 0x12, 0x36, 0x86, 0x98, 0x7b, 0x58, 0x15, 0x4a, 0x0f, 0x3b, 0xc3, 0xce, 0x8e, 0x96,
0xd7, 0xdf, 0x80, 0xf5, 0x27, 0x96, 0x1b, 0x65, 0x71, 0x2e, 0x3d, 0x00, 0x6d, 0xb6, 0x56, 0x59,
0x67, 0x7b, 0xce, 0x3a, 0xd9, 0x55, 0x63, 0x9c, 0xba, 0xd1, 0x39, 0x7b, 0x68, 0x50, 0x20, 0x94,
0x2a, 0x13, 0xf0, 0x4f, 0xfd, 0x39, 0xac, 0x0f, 0xa2, 0x20, 0xcc, 0xe4, 0xf9, 0xef, 0xc2, 0x2a,
0xcf, 0x13, 0xc1, 0x34, 0x52, 0xae, 0xff, 0x72, 0x5b, 0xe6, 0x91, 0x76, 0x9c, 0x47, 0xda, 0x3d,
0x95, 0x67, 0x70, 0xbc, 0x12, 0xfd, 0x1f, 0x94, 0x99, 0x3b, 0xf2, 0xad, 0x89, 0x3a, 0xfa, 0x6a,
0xa4, 0x23, 0xee, 0xe4, 0xf1, 0xc6, 0xca, 0xf1, 0xbb, 0x80, 0x7a, 0x84, 0x45, 0x34, 0x38, 0xcb,
0x24, 0xcf, 0x0d, 0x28, 0x1d, 0x05, 0xd4, 0x96, 0x07, 0xb1, 0x82, 0xe5, 0x80, 0x1f, 0xaa, 0x39,
0x10, 0x85, 0x7d, 0x07, 0xd0, 0xb6, 0xcf, 0x13, 0x44, 0x36, 0x43, 0xfc, 0x2a, 0x0f, 0xd7, 0xe7,
0xd6, 0x2b, 0x63, 0x2c, 0x7f, 0x0e, 0x79, 0x60, 0x9a, 0x32, 0x79, 0x0e, 0xd1, 0x1e, 0x94, 0xe5,
0x0a, 0xa5, 0xc9, 0xbb, 0x0b, 0x00, 0xc9, 0x9c, 0xa3, 0xe0, 0x14, 0xcc, 0xa5, 0x4e, 0x5f, 0xf8,
0x5f, 0x3b, 0xbd, 0x16, 0xff, 0x0f, 0xf6, 0x95, 0xfa, 0xfb, 0x0e, 0x5c, 0x4b, 0x2d, 0x56, 0xca,
0x7b, 0x08, 0x25, 0xc6, 0x09, 0x4a, 0x7b, 0x6f, 0x2f, 0xa8, 0x3d, 0x86, 0x25, 0xbb, 0x7e, 0x5d,
0x82, 0x1b, 0x27, 0xc4, 0x4f, 0x44, 0xd1, 0x7b, 0x70, 0x6d, 0x20, 0x5c, 0x2b, 0x93, 0xef, 0xcc,
0xdc, 0x32, 0x3f, 0xe7, 0x96, 0x37, 0x00, 0xa5, 0x51, 0x94, 0xf3, 0x9c, 0xc1, 0xba, 0x71, 0x4a,
0xec, 0x4c, 0xc8, 0x4d, 0x58, 0xb5, 0x03, 0xcf, 0xb3, 0x7c, 0xa7, 0x99, 0xbf, 0x55, 0xb8, 0x5d,
0xc5, 0xf1, 0x30, 0x7d, 0x7e, 0x0a, 0x59, 0xcf, 0x8f, 0xfe, 0xcb, 0x1c, 0x68, 0xb3, 0xbd, 0x95,
0x22, 0xb9, 0xf4, 0x91, 0xc3, 0x81, 0xf8, 0xde, 0x75, 0xac, 0x46, 0x8a, 0x1e, 0x1f, 0x71, 0x49,
0x27, 0x94, 0xa6, 0x42, 0x48, 0xe1, 0x8a, 0x21, 0x44, 0xff, 0x67, 0x0e, 0xd0, 0xc5, 0xaa, 0x07,
0xbd, 0x06, 0x75, 0x46, 0x7c, 0xc7, 0x94, 0x6a, 0x94, 0x16, 0xae, 0xe0, 0x1a, 0xa7, 0x49, 0x7d,
0x32, 0x84, 0xa0, 0x48, 0x4e, 0x89, 0xad, 0x4e, 0xab, 0xf8, 0x46, 0x63, 0xa8, 0x1f, 0x31, 0xd3,
0x65, 0xc1, 0xc4, 0x4a, 0xca, 0x83, 0xc6, 0xa6, 0xb1, 0x74, 0xf5, 0xd5, 0x7e, 0x38, 0xd8, 0x8e,
0xc1, 0x70, 0xed, 0x88, 0x25, 0x03, 0xbd, 0x0d, 0xb5, 0xd4, 0x1c, 0xaa, 0x40, 0xb1, 0xbf, 0xd7,
0x37, 0xb4, 0x15, 0x04, 0x50, 0xee, 0x6e, 0xe1, 0xbd, 0xbd, 0xa1, 0x8c, 0xda, 0xdb, 0xbb, 0x9d,
0x47, 0x86, 0x96, 0xd7, 0xff, 0x53, 0x04, 0x98, 0xa5, 0x4f, 0xd4, 0x80, 0x7c, 0x62, 0xe9, 0xbc,
0xeb, 0xf0, 0x3f, 0xe3, 0x5b, 0x5e, 0x5c, 0x88, 0x88, 0x6f, 0xb4, 0x09, 0x37, 0x3d, 0x36, 0x0a,
0x2d, 0xfb, 0xd8, 0x54, 0x59, 0xcf, 0x16, 0xcc, 0xe2, 0x5f, 0xd5, 0xf1, 0x75, 0x35, 0xa9, 0xa4,
0x96, 0xb8, 0x3b, 0x50, 0x20, 0xfe, 0x49, 0xb3, 0x28, 0x4a, 0xbd, 0x07, 0x0b, 0xa7, 0xf5, 0xb6,
0xe1, 0x9f, 0xc8, 0xd2, 0x8e, 0xc3, 0xa0, 0x3e, 0x54, 0x29, 0x61, 0xc1, 0x94, 0xda, 0x84, 0x35,
0x4b, 0x0b, 0x1d, 0x32, 0x1c, 0xf3, 0xe1, 0x19, 0x04, 0xea, 0x41, 0xd9, 0x0b, 0xa6, 0x7e, 0xc4,
0x9a, 0x65, 0x21, 0xe0, 0x5b, 0x19, 0xc1, 0x76, 0x39, 0x13, 0x56, 0xbc, 0xe8, 0x11, 0xac, 0x3a,
0xe4, 0xc4, 0xe5, 0x32, 0xad, 0x0a, 0x98, 0x3b, 0x59, 0xed, 0x2b, 0xb8, 0x70, 0xcc, 0xcd, 0x95,
0x3e, 0x65, 0x84, 0x36, 0x2b, 0x52, 0xe9, 0xfc, 0x1b, 0xbd, 0x02, 0x55, 0x6b, 0x32, 0x09, 0x6c,
0xd3, 0x71, 0x69, 0xb3, 0x2a, 0x26, 0x2a, 0x82, 0xd0, 0x73, 0x29, 0x7a, 0x15, 0x6a, 0xf2, 0x64,
0x98, 0xa1, 0x15, 0x8d, 0x9b, 0x20, 0xa6, 0x41, 0x92, 0xf6, 0xad, 0x68, 0xac, 0x16, 0x10, 0x4a,
0xe5, 0x82, 0x5a, 0xb2, 0x80, 0x50, 0x2a, 0x16, 0x7c, 0x1d, 0xd6, 0xc5, 0x31, 0x1f, 0xd1, 0x60,
0x1a, 0x9a, 0xc2, 0xe4, 0x75, 0xb1, 0x68, 0x8d, 0x93, 0x1f, 0x71, 0x6a, 0x9f, 0xdb, 0xfe, 0x65,
0xa8, 0x3c, 0x0b, 0x0e, 0xe5, 0x82, 0x35, 0xb1, 0x60, 0xf5, 0x59, 0x70, 0xc8, 0xa7, 0x5a, 0xef,
0x41, 0x25, 0xb6, 0xd2, 0x42, 0x25, 0xed, 0xdf, 0x72, 0x50, 0x4d, 0xac, 0x82, 0x3e, 0x85, 0x35,
0x6a, 0x3d, 0x37, 0x67, 0xe6, 0x95, 0x31, 0xf4, 0xdd, 0xac, 0xe6, 0xb5, 0x9e, 0xcf, 0x2c, 0x5c,
0xa7, 0xa9, 0x11, 0xfa, 0x1c, 0xd6, 0x27, 0xae, 0x3f, 0x3d, 0x4d, 0x61, 0xcb, 0xa4, 0xf4, 0x8d,
0x8c, 0xd8, 0x3b, 0x9c, 0x7b, 0x86, 0xde, 0x98, 0xcc, 0x8d, 0xf5, 0x3f, 0xe6, 0xa0, 0x9e, 0xde,
0x9e, 0x2b, 0xc1, 0x0e, 0xa7, 0xe2, 0x0f, 0x14, 0x30, 0xff, 0xe4, 0x71, 0xcb, 0x23, 0x5e, 0x40,
0xcf, 0xc4, 0xce, 0x05, 0xac, 0x46, 0xdc, 0xe0, 0x8e, 0xcb, 0x8e, 0xc5, 0x01, 0x2a, 0x60, 0xf1,
0xcd, 0x69, 0x6e, 0x10, 0x32, 0x51, 0xd2, 0x15, 0xb0, 0xf8, 0x46, 0x18, 0x2a, 0x2a, 0x5b, 0x71,
0xb7, 0x2f, 0x2c, 0x9e, 0xf5, 0x62, 0xe1, 0x70, 0x82, 0xa3, 0xff, 0x26, 0x0f, 0xeb, 0xe7, 0x66,
0xb9, 0x9c, 0xd2, 0x17, 0xe3, 0x98, 0x2f, 0x47, 0x5c, 0x26, 0xdb, 0x75, 0xe2, 0xc2, 0x4a, 0x7c,
0x8b, 0x88, 0x11, 0xaa, 0xa2, 0x27, 0xef, 0x86, 0xdc, 0xd0, 0xde, 0xa1, 0x1b, 0x49, 0xc1, 0x4b,
0x58, 0x0e, 0xd0, 0x53, 0x68, 0x50, 0xc2, 0x08, 0x3d, 0x21, 0x8e, 0x19, 0x06, 0x34, 0x8a, 0xe5,
0xdf, 0x5c, 0x4c, 0xfe, 0xfd, 0x80, 0x46, 0x78, 0x2d, 0x46, 0xe2, 0x23, 0x86, 0x9e, 0xc0, 0x9a,
0x73, 0xe6, 0x5b, 0x9e, 0x6b, 0x2b, 0xe4, 0xf2, 0xd2, 0xc8, 0x75, 0x05, 0x24, 0x80, 0xf9, 0x5d,
0x2b, 0x35, 0xc9, 0xff, 0xd8, 0xc4, 0x3a, 0x24, 0x13, 0xa5, 0x13, 0x39, 0x98, 0xf7, 0xeb, 0x92,
0xf2, 0x6b, 0xfd, 0x77, 0x79, 0x68, 0xcc, 0xbb, 0x0b, 0xfa, 0x7f, 0x00, 0x3b, 0x9c, 0x9a, 0x21,
0xa1, 0x6e, 0xe0, 0x28, 0xa7, 0xa8, 0xda, 0xe1, 0x74, 0x5f, 0x10, 0xf8, 0xf9, 0xe6, 0xd3, 0x5f,
0x4c, 0x83, 0xc8, 0x52, 0xde, 0x51, 0xb1, 0xc3, 0xe9, 0xb7, 0xf8, 0x38, 0xe6, 0x15, 0x8f, 0x01,
0x4c, 0x79, 0x09, 0x5f, 0x3e, 0x10, 0x04, 0xf4, 0x16, 0x20, 0xe9, 0x48, 0xe6, 0xc4, 0xf5, 0xdc,
0xc8, 0x3c, 0x3c, 0xe3, 0xd7, 0x6a, 0xe9, 0x38, 0x9a, 0x9c, 0xd9, 0xe1, 0x13, 0x1f, 0x73, 0x3a,
0xd2, 0x61, 0x2d, 0x08, 0x3c, 0x93, 0xd9, 0x01, 0x25, 0xa6, 0xe5, 0x3c, 0x13, 0x01, 0xb4, 0x80,
0x6b, 0x41, 0xe0, 0x0d, 0x38, 0xad, 0xe3, 0x3c, 0xe3, 0xf1, 0xc2, 0x0e, 0xa7, 0x8c, 0x44, 0x26,
0xff, 0x69, 0x96, 0x65, 0xbc, 0x90, 0xa4, 0x6e, 0x38, 0x65, 0xa9, 0x05, 0x1e, 0xf1, 0x78, 0xbc,
0x4b, 0x2d, 0xd8, 0x25, 0x1e, 0xdf, 0xa5, 0xbe, 0x4f, 0xa8, 0x4d, 0xfc, 0x68, 0xe8, 0xda, 0xc7,
0x4c, 0xc4, 0xb2, 0x1c, 0x9e, 0xa3, 0xe9, 0x9f, 0x41, 0x49, 0x44, 0x50, 0xfe, 0xe7, 0x45, 0xf4,
0x11, 0xc1, 0x49, 0xaa, 0xb7, 0xc2, 0x09, 0x22, 0x34, 0xbd, 0x02, 0xd5, 0x71, 0xc0, 0x54, 0x68,
0x93, 0x9e, 0x57, 0xe1, 0x04, 0x31, 0xd9, 0x82, 0x0a, 0x25, 0x96, 0x13, 0xf8, 0x93, 0x33, 0xa1,
0x97, 0x0a, 0x4e, 0xc6, 0xfa, 0x17, 0x50, 0x96, 0x91, 0xf5, 0x0a, 0xf8, 0x77, 0x00, 0xd9, 0x32,
0x26, 0x86, 0x84, 0x7a, 0x2e, 0x63, 0x6e, 0xe0, 0xb3, 0xf8, 0x76, 0x2f, 0x67, 0xf6, 0x67, 0x13,
0xfa, 0x5f, 0x73, 0x32, 0x9b, 0xca, 0xab, 0x1a, 0xaf, 0x47, 0x54, 0x6a, 0x5c, 0xfa, 0x3e, 0xab,
0x00, 0xe2, 0x9a, 0x92, 0xa8, 0x57, 0x8c, 0x45, 0x6b, 0x4a, 0x22, 0x6b, 0x4a, 0xc2, 0x0b, 0x18,
0x95, 0xb4, 0x25, 0x9c, 0xcc, 0xd9, 0x35, 0x27, 0x29, 0xb6, 0x89, 0xfe, 0xaf, 0x5c, 0x12, 0x11,
0xe2, 0xa2, 0x18, 0x7d, 0x0e, 0x15, 0x7e, 0xb8, 0x4c, 0xcf, 0x0a, 0xd5, 0x7b, 0x4d, 0x77, 0xb9,
0x7a, 0xbb, 0xcd, 0xcf, 0xd2, 0xae, 0x15, 0xca, 0x6c, 0xbe, 0x1a, 0xca, 0x11, 0x8f, 0x2c, 0x96,
0x33, 0x8b, 0x2c, 0xfc, 0x1b, 0xbd, 0x0e, 0x0d, 0x6b, 0x1a, 0x05, 0xa6, 0xe5, 0x9c, 0x10, 0x1a,
0xb9, 0x8c, 0x28, 0x0b, 0xaf, 0x71, 0x6a, 0x27, 0x26, 0xb6, 0x1e, 0x40, 0x3d, 0x8d, 0xf9, 0x55,
0xb9, 0xa7, 0x94, 0xce, 0x3d, 0xdf, 0x03, 0x98, 0xd5, 0x7e, 0xdc, 0x13, 0xc8, 0xa9, 0x1b, 0x99,
0x76, 0xe0, 0xc8, 0xc8, 0x57, 0xc2, 0x15, 0x4e, 0xe8, 0x06, 0x0e, 0x39, 0x57, 0x49, 0x97, 0xe2,
0x4a, 0x9a, 0x9f, 0x4d, 0x7e, 0x9c, 0x8e, 0xdd, 0xc9, 0x84, 0x38, 0x4a, 0xc2, 0x6a, 0x10, 0x78,
0x8f, 0x05, 0x41, 0xff, 0x4b, 0x5e, 0x7a, 0x84, 0xbc, 0xc7, 0x64, 0xaa, 0xaf, 0x12, 0x53, 0x17,
0xae, 0x66, 0xea, 0xfb, 0x00, 0x2c, 0xb2, 0x68, 0x44, 0x1c, 0xd3, 0x8a, 0xd4, 0xd3, 0x40, 0xeb,
0x42, 0x29, 0x3e, 0x8c, 0x9f, 0x44, 0x71, 0x55, 0xad, 0xee, 0x44, 0xe8, 0x7d, 0xa8, 0xdb, 0x81,
0x17, 0x4e, 0x88, 0x62, 0x2e, 0x7d, 0x25, 0x73, 0x2d, 0x59, 0xdf, 0x89, 0x52, 0x75, 0x78, 0xf9,
0xaa, 0x75, 0xf8, 0x9f, 0x72, 0xf2, 0x3a, 0x96, 0xbe, 0x0d, 0xa2, 0xd1, 0x25, 0xef, 0x87, 0x8f,
0x96, 0xbc, 0x5a, 0x7e, 0xd9, 0xe3, 0xe1, 0x55, 0x5f, 0xeb, 0xfe, 0x5c, 0x80, 0x6a, 0x72, 0xab,
0xbb, 0x60, 0xfb, 0x7b, 0x50, 0x4d, 0xde, 0xa3, 0x55, 0x29, 0xf2, 0xa5, 0xe6, 0x49, 0x16, 0xa3,
0x23, 0x40, 0xd6, 0x68, 0x94, 0x14, 0x32, 0xe6, 0x94, 0x59, 0xa3, 0xf8, 0x1e, 0x7c, 0x6f, 0x01,
0x3d, 0xc4, 0xd9, 0xe9, 0x80, 0xf3, 0x63, 0xcd, 0x1a, 0x8d, 0xe6, 0x28, 0xe8, 0xfb, 0x70, 0x73,
0x7e, 0x0f, 0xf3, 0xf0, 0xcc, 0x0c, 0x5d, 0x47, 0xd5, 0xf1, 0x5b, 0x8b, 0x5e, 0x6c, 0xdb, 0x73,
0xf0, 0x1f, 0x9f, 0xed, 0xbb, 0x8e, 0xd4, 0x39, 0xa2, 0x17, 0x26, 0x5a, 0x3f, 0x84, 0x97, 0x5e,
0xb0, 0xfc, 0x12, 0x1b, 0xf4, 0xd3, 0x36, 0xb8, 0x8a, 0x12, 0x52, 0xd6, 0xfb, 0x6d, 0x4e, 0xde,
0xbf, 0xe7, 0x75, 0xd2, 0x99, 0x55, 0x75, 0xb5, 0xcd, 0x8d, 0x8c, 0xfb, 0x74, 0xf7, 0x0f, 0x24,
0xbc, 0x28, 0x03, 0x3f, 0x99, 0x2b, 0x03, 0xb3, 0x97, 0x2a, 0xbb, 0x82, 0x49, 0x02, 0x29, 0x04,
0xfd, 0x0f, 0x05, 0xa8, 0xc4, 0xe8, 0xa2, 0xcc, 0x3f, 0x63, 0x11, 0xf1, 0x4c, 0x2f, 0x0e, 0x61,
0x39, 0x0c, 0x92, 0xb4, 0xcb, 0x83, 0xd8, 0x2b, 0x50, 0xe5, 0xb7, 0x09, 0x39, 0x9d, 0x17, 0xd3,
0x15, 0x4e, 0x10, 0x93, 0xaf, 0x42, 0x2d, 0x0a, 0x22, 0x6b, 0x62, 0x46, 0x22, 0x63, 0x17, 0x24,
0xb7, 0x20, 0x89, 0x7c, 0x8d, 0xde, 0x84, 0x6b, 0xd1, 0x98, 0x06, 0x51, 0x34, 0xe1, 0x55, 0x9c,
0xa8, 0x5b, 0x64, 0x99, 0x51, 0xc4, 0x5a, 0x32, 0x21, 0xeb, 0x19, 0xc6, 0xa3, 0xf7, 0x6c, 0x31,
0x77, 0x5d, 0x11, 0x44, 0x8a, 0x78, 0x2d, 0xa1, 0x72, 0xd7, 0x46, 0x4d, 0x58, 0x0d, 0x65, 0x4d,
0x20, 0x62, 0x45, 0x0e, 0xc7, 0x43, 0x64, 0xc2, 0xba, 0x47, 0x2c, 0x36, 0xa5, 0xc4, 0x31, 0x8f,
0x5c, 0x32, 0x71, 0xe4, 0xb5, 0xaa, 0x91, 0xb9, 0xe6, 0x8d, 0xd5, 0xd2, 0x7e, 0x28, 0xb8, 0x71,
0x23, 0x86, 0x93, 0x63, 0x5e, 0x1f, 0xc8, 0x2f, 0xb4, 0x0e, 0xb5, 0xc1, 0xd3, 0xc1, 0xd0, 0xd8,
0x35, 0x77, 0xf7, 0x7a, 0x86, 0x7a, 0x47, 0x1f, 0x18, 0x58, 0x0e, 0x73, 0x7c, 0x7e, 0xb8, 0x37,
0xec, 0xec, 0x98, 0xc3, 0xed, 0xee, 0xe3, 0x81, 0x96, 0x47, 0x37, 0xe1, 0xda, 0x70, 0x0b, 0xef,
0x0d, 0x87, 0x3b, 0x46, 0xcf, 0xdc, 0x37, 0xf0, 0xf6, 0x5e, 0x6f, 0xa0, 0x15, 0x10, 0x82, 0xc6,
0x8c, 0x3c, 0xdc, 0xde, 0x35, 0xb4, 0x22, 0xaa, 0xc1, 0xea, 0xbe, 0x81, 0xbb, 0x46, 0x7f, 0xa8,
0x95, 0xf4, 0xbf, 0xe7, 0xa1, 0x96, 0xb2, 0x22, 0x77, 0x64, 0xca, 0xe4, 0x1d, 0xa7, 0x88, 0xf9,
0x27, 0x0f, 0x26, 0xb6, 0x65, 0x8f, 0xa5, 0x75, 0x8a, 0x58, 0x0e, 0xb8, 0xdd, 0x3c, 0xeb, 0x34,
0x75, 0xce, 0x8b, 0xb8, 0xe2, 0x59, 0xa7, 0x12, 0xe4, 0x35, 0xa8, 0x1f, 0x13, 0xea, 0x93, 0x89,
0x9a, 0x97, 0x16, 0xa9, 0x49, 0x9a, 0x5c, 0x72, 0x1b, 0x34, 0xb5, 0x64, 0x06, 0x23, 0xcd, 0xd1,
0x90, 0xf4, 0xdd, 0x18, 0xec, 0xf0, 0xa2, 0xd6, 0xcb, 0x42, 0xeb, 0xf7, 0x17, 0x77, 0xd2, 0x17,
0x29, 0x7e, 0x90, 0x28, 0x7e, 0x15, 0x0a, 0x38, 0x7e, 0x52, 0xee, 0x76, 0xba, 0x5b, 0x5c, 0xd9,
0x6b, 0x50, 0xdd, 0xed, 0x7c, 0x6a, 0x1e, 0x0c, 0xc4, 0x03, 0x05, 0xd2, 0xa0, 0xfe, 0xd8, 0xc0,
0x7d, 0x63, 0x47, 0x51, 0x0a, 0xe8, 0x06, 0x68, 0x8a, 0x32, 0x5b, 0x57, 0xd4, 0x7f, 0x9f, 0x87,
0x75, 0x19, 0xd7, 0x93, 0x37, 0xb3, 0x17, 0x3f, 0x5e, 0x2d, 0x1f, 0x7a, 0x9b, 0xb0, 0xea, 0x11,
0x96, 0xd8, 0xa1, 0x8a, 0xe3, 0x21, 0x72, 0xa1, 0x66, 0xf9, 0x7e, 0x10, 0x89, 0x87, 0x17, 0xa6,
0x42, 0xe4, 0xa3, 0x85, 0x9e, 0x78, 0x12, 0xc9, 0xdb, 0x9d, 0x19, 0x92, 0x8c, 0x90, 0x69, 0xec,
0xd6, 0x07, 0xa0, 0x9d, 0x5f, 0xb0, 0x48, 0x5e, 0x7a, 0xe3, 0x9d, 0x59, 0x5a, 0x22, 0xdc, 0x41,
0x0f, 0xfa, 0x8f, 0xfb, 0x7b, 0x4f, 0xfa, 0xda, 0x0a, 0x1f, 0xe0, 0x83, 0x7e, 0x7f, 0xbb, 0xff,
0x48, 0xcb, 0x21, 0x80, 0xb2, 0xf1, 0xe9, 0xf6, 0xd0, 0xe8, 0x69, 0xf9, 0xcd, 0x7f, 0xac, 0x41,
0x59, 0x0a, 0x89, 0x7e, 0xad, 0x52, 0x72, 0xba, 0xb1, 0x89, 0x3e, 0x58, 0xb8, 0xb4, 0x9d, 0x6b,
0x96, 0xb6, 0x3e, 0x5c, 0x9a, 0x5f, 0xbd, 0x5d, 0xae, 0xa0, 0x9f, 0xe7, 0xa0, 0x3e, 0xf7, 0x58,
0x97, 0xf5, 0x9d, 0xe9, 0x92, 0x3e, 0x6a, 0xeb, 0x9b, 0x4b, 0xf1, 0x26, 0xb2, 0xfc, 0x2c, 0x07,
0xb5, 0x54, 0x07, 0x11, 0xdd, 0x5f, 0xa6, 0xeb, 0x28, 0x25, 0x79, 0xb0, 0x7c, 0xc3, 0x52, 0x5f,
0x79, 0x3b, 0x87, 0x7e, 0x9a, 0x83, 0x5a, 0xaa, 0xfd, 0x96, 0x59, 0x94, 0x8b, 0xcd, 0xc2, 0xcc,
0xa2, 0x5c, 0xd6, 0xed, 0x5b, 0x41, 0x3f, 0xca, 0x41, 0x35, 0x69, 0xa5, 0xa1, 0xbb, 0x8b, 0x37,
0xdf, 0xa4, 0x10, 0xf7, 0x96, 0xed, 0xda, 0xe9, 0x2b, 0xe8, 0x07, 0x50, 0x89, 0xfb, 0x4e, 0x28,
0x6b, 0x1a, 0x39, 0xd7, 0xd4, 0x6a, 0xdd, 0x5d, 0x98, 0x2f, 0xbd, 0x7d, 0xdc, 0x0c, 0xca, 0xbc,
0xfd, 0xb9, 0xb6, 0x55, 0xeb, 0xee, 0xc2, 0x7c, 0xc9, 0xf6, 0xdc, 0x13, 0x52, 0x3d, 0xa3, 0xcc,
0x9e, 0x70, 0xb1, 0x59, 0x95, 0xd9, 0x13, 0x2e, 0x6b, 0x51, 0x49, 0x41, 0x52, 0x5d, 0xa7, 0xcc,
0x82, 0x5c, 0xec, 0x6c, 0x65, 0x16, 0xe4, 0x92, 0x26, 0x97, 0x72, 0xc9, 0x59, 0x81, 0x7e, 0x77,
0xe1, 0x46, 0xcd, 0x82, 0x2e, 0x79, 0xa1, 0x55, 0xa4, 0xaf, 0xa0, 0x1f, 0xab, 0x27, 0x03, 0xd9,
0xe5, 0x41, 0x8b, 0x40, 0xcd, 0x35, 0x86, 0x5a, 0xef, 0x2d, 0x97, 0x6a, 0x44, 0x8c, 0xf8, 0x49,
0x0e, 0x60, 0xd6, 0x0f, 0xca, 0x2c, 0xc4, 0x85, 0x46, 0x54, 0xeb, 0xfe, 0x12, 0x9c, 0xe9, 0xe3,
0x11, 0xb7, 0x80, 0x32, 0x1f, 0x8f, 0x73, 0xfd, 0xaa, 0xcc, 0xc7, 0xe3, 0x7c, 0xaf, 0x49, 0x5f,
0xf9, 0x78, 0xf5, 0xdb, 0x25, 0x99, 0xfb, 0xcb, 0xe2, 0xe7, 0xdd, 0xff, 0x06, 0x00, 0x00, 0xff,
0xff, 0x74, 0x59, 0xcc, 0x0a, 0xaa, 0x24, 0x00, 0x00,
}

View File

@@ -346,9 +346,6 @@ message Resources {
// LinuxResources are the computed values to set for specific Linux features
LinuxResources linux_resources = 2;
// NodeResources are the total resources the Node has been allocated
RawResources node_resources = 3;
}
message RawResources {
@@ -389,6 +386,8 @@ message LinuxResources {
string cpuset_cpus = 6;
// CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified)
string cpuset_mems = 7;
// PercentTicks is a compatability option for docker and should not be used
double PercentTicks = 8;
}
message Mount {

View File

@@ -133,15 +133,7 @@ func resourcesFromProto(pb *proto.Resources) *Resources {
OOMScoreAdj: pb.LinuxResources.OomScoreAdj,
CpusetCPUs: pb.LinuxResources.CpusetCpus,
CpusetMems: pb.LinuxResources.CpusetMems,
}
}
if pb.NodeResources != nil {
r.NodeResources = &structs.Resources{
CPU: int(pb.NodeResources.Cpu),
MemoryMB: int(pb.NodeResources.Memory),
IOPS: int(pb.NodeResources.Iops),
DiskMB: int(pb.NodeResources.Disk),
PercentTicks: pb.LinuxResources.PercentTicks,
}
}
@@ -194,15 +186,7 @@ func resourcesToProto(r *Resources) *proto.Resources {
OomScoreAdj: r.LinuxResources.OOMScoreAdj,
CpusetCpus: r.LinuxResources.CpusetCPUs,
CpusetMems: r.LinuxResources.CpusetMems,
}
}
if r.NodeResources != nil {
pb.NodeResources = &proto.RawResources{
Cpu: int64(r.NodeResources.CPU),
Memory: int64(r.NodeResources.MemoryMB),
Iops: int64(r.NodeResources.IOPS),
Disk: int64(r.NodeResources.DiskMB),
PercentTicks: r.LinuxResources.PercentTicks,
}
}