diff --git a/pkg/kubelet/apis/cri/runtime/v1alpha2/api.pb.go b/pkg/kubelet/apis/cri/runtime/v1alpha2/api.pb.go index 8aae4fbe697..79aea641047 100644 --- a/pkg/kubelet/apis/cri/runtime/v1alpha2/api.pb.go +++ b/pkg/kubelet/apis/cri/runtime/v1alpha2/api.pb.go @@ -112,7 +112,7 @@ limitations under the License. StatusResponse ImageFsInfoRequest UInt64Value - StorageIdentifier + FilesystemIdentifier FilesystemUsage ImageFsInfoResponse ContainerStatsRequest @@ -3222,19 +3222,19 @@ func (m *UInt64Value) GetValue() uint64 { return 0 } -// StorageIdentifier uniquely identify the storage.. -type StorageIdentifier struct { - // UUID of the device. - Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` +// FilesystemIdentifier uniquely identify the filesystem. +type FilesystemIdentifier struct { + // Mountpoint of a filesystem. + Mountpoint string `protobuf:"bytes,1,opt,name=mountpoint,proto3" json:"mountpoint,omitempty"` } -func (m *StorageIdentifier) Reset() { *m = StorageIdentifier{} } -func (*StorageIdentifier) ProtoMessage() {} -func (*StorageIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } +func (m *FilesystemIdentifier) Reset() { *m = FilesystemIdentifier{} } +func (*FilesystemIdentifier) ProtoMessage() {} +func (*FilesystemIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } -func (m *StorageIdentifier) GetUuid() string { +func (m *FilesystemIdentifier) GetMountpoint() string { if m != nil { - return m.Uuid + return m.Mountpoint } return "" } @@ -3243,8 +3243,8 @@ func (m *StorageIdentifier) GetUuid() string { type FilesystemUsage struct { // Timestamp in nanoseconds at which the information were collected. Must be > 0. Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - // The underlying storage of the filesystem. - StorageId *StorageIdentifier `protobuf:"bytes,2,opt,name=storage_id,json=storageId" json:"storage_id,omitempty"` + // The unique identifier of the filesystem. + FsId *FilesystemIdentifier `protobuf:"bytes,2,opt,name=fs_id,json=fsId" json:"fs_id,omitempty"` // UsedBytes represents the bytes used for images on the filesystem. // This may differ from the total bytes used on the filesystem and may not // equal CapacityBytes - AvailableBytes. @@ -3266,9 +3266,9 @@ func (m *FilesystemUsage) GetTimestamp() int64 { return 0 } -func (m *FilesystemUsage) GetStorageId() *StorageIdentifier { +func (m *FilesystemUsage) GetFsId() *FilesystemIdentifier { if m != nil { - return m.StorageId + return m.FsId } return nil } @@ -3659,7 +3659,7 @@ func init() { proto.RegisterType((*StatusResponse)(nil), "runtime.v1alpha2.StatusResponse") proto.RegisterType((*ImageFsInfoRequest)(nil), "runtime.v1alpha2.ImageFsInfoRequest") proto.RegisterType((*UInt64Value)(nil), "runtime.v1alpha2.UInt64Value") - proto.RegisterType((*StorageIdentifier)(nil), "runtime.v1alpha2.StorageIdentifier") + proto.RegisterType((*FilesystemIdentifier)(nil), "runtime.v1alpha2.FilesystemIdentifier") proto.RegisterType((*FilesystemUsage)(nil), "runtime.v1alpha2.FilesystemUsage") proto.RegisterType((*ImageFsInfoResponse)(nil), "runtime.v1alpha2.ImageFsInfoResponse") proto.RegisterType((*ContainerStatsRequest)(nil), "runtime.v1alpha2.ContainerStatsRequest") @@ -8362,7 +8362,7 @@ func (m *UInt64Value) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *StorageIdentifier) Marshal() (dAtA []byte, err error) { +func (m *FilesystemIdentifier) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -8372,16 +8372,16 @@ func (m *StorageIdentifier) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *StorageIdentifier) MarshalTo(dAtA []byte) (int, error) { +func (m *FilesystemIdentifier) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if len(m.Uuid) > 0 { + if len(m.Mountpoint) > 0 { dAtA[i] = 0xa i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Uuid))) - i += copy(dAtA[i:], m.Uuid) + i = encodeVarintApi(dAtA, i, uint64(len(m.Mountpoint))) + i += copy(dAtA[i:], m.Mountpoint) } return i, nil } @@ -8406,11 +8406,11 @@ func (m *FilesystemUsage) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintApi(dAtA, i, uint64(m.Timestamp)) } - if m.StorageId != nil { + if m.FsId != nil { dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(m.StorageId.Size())) - n57, err := m.StorageId.MarshalTo(dAtA[i:]) + i = encodeVarintApi(dAtA, i, uint64(m.FsId.Size())) + n57, err := m.FsId.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -10402,10 +10402,10 @@ func (m *UInt64Value) Size() (n int) { return n } -func (m *StorageIdentifier) Size() (n int) { +func (m *FilesystemIdentifier) Size() (n int) { var l int _ = l - l = len(m.Uuid) + l = len(m.Mountpoint) if l > 0 { n += 1 + l + sovApi(uint64(l)) } @@ -10418,8 +10418,8 @@ func (m *FilesystemUsage) Size() (n int) { if m.Timestamp != 0 { n += 1 + sovApi(uint64(m.Timestamp)) } - if m.StorageId != nil { - l = m.StorageId.Size() + if m.FsId != nil { + l = m.FsId.Size() n += 1 + l + sovApi(uint64(l)) } if m.UsedBytes != nil { @@ -11821,12 +11821,12 @@ func (this *UInt64Value) String() string { }, "") return s } -func (this *StorageIdentifier) String() string { +func (this *FilesystemIdentifier) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&StorageIdentifier{`, - `Uuid:` + fmt.Sprintf("%v", this.Uuid) + `,`, + s := strings.Join([]string{`&FilesystemIdentifier{`, + `Mountpoint:` + fmt.Sprintf("%v", this.Mountpoint) + `,`, `}`, }, "") return s @@ -11837,7 +11837,7 @@ func (this *FilesystemUsage) String() string { } s := strings.Join([]string{`&FilesystemUsage{`, `Timestamp:` + fmt.Sprintf("%v", this.Timestamp) + `,`, - `StorageId:` + strings.Replace(fmt.Sprintf("%v", this.StorageId), "StorageIdentifier", "StorageIdentifier", 1) + `,`, + `FsId:` + strings.Replace(fmt.Sprintf("%v", this.FsId), "FilesystemIdentifier", "FilesystemIdentifier", 1) + `,`, `UsedBytes:` + strings.Replace(fmt.Sprintf("%v", this.UsedBytes), "UInt64Value", "UInt64Value", 1) + `,`, `InodesUsed:` + strings.Replace(fmt.Sprintf("%v", this.InodesUsed), "UInt64Value", "UInt64Value", 1) + `,`, `}`, @@ -24486,7 +24486,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error { } return nil } -func (m *StorageIdentifier) Unmarshal(dAtA []byte) error { +func (m *FilesystemIdentifier) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24509,15 +24509,15 @@ func (m *StorageIdentifier) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: StorageIdentifier: wiretype end group for non-group") + return fmt.Errorf("proto: FilesystemIdentifier: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: StorageIdentifier: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FilesystemIdentifier: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uuid", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Mountpoint", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24542,7 +24542,7 @@ func (m *StorageIdentifier) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Uuid = string(dAtA[iNdEx:postIndex]) + m.Mountpoint = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -24615,7 +24615,7 @@ func (m *FilesystemUsage) Unmarshal(dAtA []byte) error { } case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FsId", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -24639,10 +24639,10 @@ func (m *FilesystemUsage) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StorageId == nil { - m.StorageId = &StorageIdentifier{} + if m.FsId == nil { + m.FsId = &FilesystemIdentifier{} } - if err := m.StorageId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.FsId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -26331,293 +26331,293 @@ var ( func init() { proto.RegisterFile("api.proto", fileDescriptorApi) } var fileDescriptorApi = []byte{ - // 4597 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5c, 0x4d, 0x6c, 0x1b, 0x49, - 0x76, 0x56, 0x93, 0xfa, 0x21, 0x1f, 0x45, 0x89, 0x2a, 0xcb, 0x16, 0x4d, 0x8f, 0x3d, 0x76, 0x7b, - 0xfc, 0xbb, 0x63, 0x79, 0xac, 0xd9, 0xf5, 0xc4, 0xf6, 0xac, 0x6d, 0x5a, 0x92, 0x6d, 0x66, 0x6d, - 0x4a, 0x69, 0x4a, 0xf3, 0xb3, 0xb3, 0x40, 0x6f, 0x8b, 0x5d, 0xa2, 0x7a, 0x4d, 0x76, 0xf5, 0xf4, - 0x8f, 0x6d, 0xe5, 0x10, 0x2c, 0x10, 0x64, 0x0f, 0x01, 0x02, 0xe4, 0x9c, 0x5b, 0x36, 0x87, 0x1c, - 0x72, 0x0b, 0x10, 0xe4, 0x90, 0x53, 0x82, 0x3d, 0xec, 0x25, 0x40, 0x4e, 0x8b, 0xfc, 0x5c, 0xb2, - 0x13, 0xe4, 0x1a, 0x24, 0xf7, 0x1c, 0x82, 0xfa, 0x6b, 0xf6, 0x2f, 0x7f, 0x3c, 0xde, 0x9d, 0xc9, - 0x49, 0x5d, 0xaf, 0xdf, 0x7b, 0xf5, 0xea, 0xd5, 0xeb, 0x57, 0xaf, 0xbe, 0x2a, 0x0a, 0xca, 0x86, - 0x63, 0xad, 0x3b, 0x2e, 0xf1, 0x09, 0xaa, 0xb9, 0x81, 0xed, 0x5b, 0x03, 0xbc, 0xfe, 0xf2, 0x96, - 0xd1, 0x77, 0x8e, 0x8c, 0x8d, 0xc6, 0x8d, 0x9e, 0xe5, 0x1f, 0x05, 0x07, 0xeb, 0x5d, 0x32, 0xb8, - 0xd9, 0x23, 0x3d, 0x72, 0x93, 0x31, 0x1e, 0x04, 0x87, 0xac, 0xc5, 0x1a, 0xec, 0x89, 0x2b, 0x50, - 0xaf, 0xc3, 0xd2, 0x27, 0xd8, 0xf5, 0x2c, 0x62, 0x6b, 0xf8, 0xcb, 0x00, 0x7b, 0x3e, 0xaa, 0xc3, - 0xc2, 0x4b, 0x4e, 0xa9, 0x2b, 0xe7, 0x95, 0xab, 0x65, 0x4d, 0x36, 0xd5, 0xbf, 0x54, 0x60, 0x39, - 0x64, 0xf6, 0x1c, 0x62, 0x7b, 0x38, 0x9f, 0x1b, 0x5d, 0x80, 0x45, 0x61, 0x9c, 0x6e, 0x1b, 0x03, - 0x5c, 0x2f, 0xb0, 0xd7, 0x15, 0x41, 0x6b, 0x1b, 0x03, 0x8c, 0xae, 0xc0, 0xb2, 0x64, 0x91, 0x4a, - 0x8a, 0x8c, 0x6b, 0x49, 0x90, 0x45, 0x6f, 0x68, 0x1d, 0x4e, 0x48, 0x46, 0xc3, 0xb1, 0x42, 0xe6, - 0x59, 0xc6, 0xbc, 0x22, 0x5e, 0x35, 0x1d, 0x4b, 0xf0, 0xab, 0x5f, 0x40, 0x79, 0xab, 0xdd, 0xd9, - 0x24, 0xf6, 0xa1, 0xd5, 0xa3, 0x26, 0x7a, 0xd8, 0xa5, 0x32, 0x75, 0xe5, 0x7c, 0x91, 0x9a, 0x28, - 0x9a, 0xa8, 0x01, 0x25, 0x0f, 0x1b, 0x6e, 0xf7, 0x08, 0x7b, 0xf5, 0x02, 0x7b, 0x15, 0xb6, 0xa9, - 0x14, 0x71, 0x7c, 0x8b, 0xd8, 0x5e, 0xbd, 0xc8, 0xa5, 0x44, 0x53, 0xfd, 0xb9, 0x02, 0x95, 0x5d, - 0xe2, 0xfa, 0xcf, 0x0d, 0xc7, 0xb1, 0xec, 0x1e, 0xba, 0x0d, 0x25, 0xe6, 0xcb, 0x2e, 0xe9, 0x33, - 0x1f, 0x2c, 0x6d, 0x34, 0xd6, 0x93, 0xd3, 0xb2, 0xbe, 0x2b, 0x38, 0xb4, 0x90, 0x17, 0x5d, 0x82, - 0xa5, 0x2e, 0xb1, 0x7d, 0xc3, 0xb2, 0xb1, 0xab, 0x3b, 0xc4, 0xf5, 0x99, 0x8b, 0xe6, 0xb4, 0x6a, - 0x48, 0xa5, 0xbd, 0xa0, 0x33, 0x50, 0x3e, 0x22, 0x9e, 0xcf, 0x39, 0x8a, 0x8c, 0xa3, 0x44, 0x09, - 0xec, 0xe5, 0x1a, 0x2c, 0xb0, 0x97, 0x96, 0x23, 0x9c, 0x31, 0x4f, 0x9b, 0x2d, 0x47, 0xfd, 0x95, - 0x02, 0x73, 0xcf, 0x49, 0x60, 0xfb, 0x89, 0x6e, 0x0c, 0xff, 0x48, 0x4c, 0x54, 0xa4, 0x1b, 0xc3, - 0x3f, 0x1a, 0x76, 0x43, 0x39, 0xf8, 0x5c, 0xf1, 0x6e, 0xe8, 0xcb, 0x06, 0x94, 0x5c, 0x6c, 0x98, - 0xc4, 0xee, 0x1f, 0x33, 0x13, 0x4a, 0x5a, 0xd8, 0xa6, 0x93, 0xe8, 0xe1, 0xbe, 0x65, 0x07, 0xaf, - 0x75, 0x17, 0xf7, 0x8d, 0x03, 0xdc, 0x67, 0xa6, 0x94, 0xb4, 0x25, 0x41, 0xd6, 0x38, 0x15, 0x6d, - 0x41, 0xc5, 0x71, 0x89, 0x63, 0xf4, 0x0c, 0xea, 0xc7, 0xfa, 0x1c, 0x73, 0x95, 0x9a, 0x76, 0x15, - 0x33, 0x7b, 0x77, 0xc8, 0xa9, 0x45, 0xc5, 0xd4, 0xbf, 0x56, 0x60, 0x99, 0x06, 0x8f, 0xe7, 0x18, - 0x5d, 0xbc, 0xc3, 0xa6, 0x04, 0xdd, 0x81, 0x05, 0x1b, 0xfb, 0xaf, 0x88, 0xfb, 0x42, 0x4c, 0xc0, - 0xbb, 0x69, 0xad, 0xa1, 0xcc, 0x73, 0x62, 0x62, 0x4d, 0xf2, 0xa3, 0x5b, 0x50, 0x74, 0x2c, 0x93, - 0x0d, 0x78, 0x02, 0x31, 0xca, 0x4b, 0x45, 0x2c, 0xa7, 0xcb, 0xfc, 0x30, 0x89, 0x88, 0xe5, 0x74, - 0x55, 0x15, 0xa0, 0x65, 0xfb, 0xb7, 0xbf, 0xfb, 0x89, 0xd1, 0x0f, 0x30, 0x5a, 0x85, 0xb9, 0x97, - 0xf4, 0x81, 0x19, 0x5b, 0xd4, 0x78, 0x43, 0xfd, 0xf3, 0x22, 0x9c, 0x79, 0x46, 0xfd, 0xd5, 0x31, - 0x6c, 0xf3, 0x80, 0xbc, 0xee, 0xe0, 0x6e, 0xe0, 0x5a, 0xfe, 0xf1, 0x26, 0xb1, 0x7d, 0xfc, 0xda, - 0x47, 0x6d, 0x58, 0xb1, 0xa5, 0x66, 0x5d, 0x86, 0x26, 0xd5, 0x50, 0xd9, 0xb8, 0x30, 0xc2, 0x08, - 0xee, 0x22, 0xad, 0x66, 0xc7, 0x09, 0x1e, 0x7a, 0x3a, 0x9c, 0x37, 0xa9, 0xad, 0xc0, 0xb4, 0x65, - 0x0c, 0xa9, 0xb3, 0xcd, 0x2c, 0x13, 0xba, 0xe4, 0xc4, 0x4a, 0x4d, 0x1f, 0x03, 0xfd, 0xaa, 0x75, - 0xc3, 0xd3, 0x03, 0x0f, 0xbb, 0xcc, 0x31, 0x95, 0x8d, 0x77, 0xd2, 0x5a, 0x86, 0x2e, 0xd0, 0xca, - 0x6e, 0x60, 0x37, 0xbd, 0x7d, 0x0f, 0xbb, 0x2c, 0x09, 0x88, 0x58, 0xd2, 0x5d, 0x42, 0xfc, 0x43, - 0x4f, 0xc6, 0x8f, 0x24, 0x6b, 0x8c, 0x8a, 0x6e, 0xc2, 0x09, 0x2f, 0x70, 0x9c, 0x3e, 0x1e, 0x60, - 0xdb, 0x37, 0xfa, 0x7a, 0xcf, 0x25, 0x81, 0xe3, 0xd5, 0xe7, 0xce, 0x17, 0xaf, 0x16, 0x35, 0x14, - 0x7d, 0xf5, 0x84, 0xbd, 0x41, 0xe7, 0x00, 0x1c, 0xd7, 0x7a, 0x69, 0xf5, 0x71, 0x0f, 0x9b, 0xf5, - 0x79, 0xa6, 0x34, 0x42, 0x41, 0x1f, 0xc0, 0xaa, 0x87, 0xbb, 0x5d, 0x32, 0x70, 0x74, 0xc7, 0x25, - 0x87, 0x56, 0x1f, 0xf3, 0xe8, 0x5f, 0x60, 0xd1, 0x8f, 0xc4, 0xbb, 0x5d, 0xfe, 0x8a, 0x7e, 0x07, - 0xea, 0xcf, 0x0b, 0x70, 0x92, 0x79, 0x62, 0x97, 0x98, 0x62, 0x9a, 0x44, 0x92, 0xb9, 0x08, 0xd5, - 0x2e, 0x33, 0x48, 0x77, 0x0c, 0x17, 0xdb, 0xbe, 0xf8, 0xc8, 0x16, 0x39, 0x71, 0x97, 0xd1, 0xd0, - 0x67, 0x50, 0xf3, 0xc4, 0xac, 0xea, 0x5d, 0x3e, 0xad, 0xc2, 0xe7, 0x37, 0xd2, 0xde, 0x1a, 0x11, - 0x0b, 0xda, 0xb2, 0x97, 0x0a, 0x8e, 0x05, 0xef, 0xd8, 0xeb, 0xfa, 0x7d, 0x9e, 0xad, 0x2a, 0x1b, - 0xdf, 0xcd, 0x51, 0x98, 0x34, 0x7c, 0xbd, 0xc3, 0xc5, 0xb6, 0x6d, 0xdf, 0x3d, 0xd6, 0xa4, 0x92, - 0xc6, 0x5d, 0x58, 0x8c, 0xbe, 0x40, 0x35, 0x28, 0xbe, 0xc0, 0xc7, 0x62, 0x50, 0xf4, 0x71, 0x18, - 0xc4, 0x3c, 0x57, 0xf0, 0xc6, 0xdd, 0xc2, 0xef, 0x28, 0xaa, 0x0b, 0x68, 0xd8, 0xcb, 0x73, 0xec, - 0x1b, 0xa6, 0xe1, 0x1b, 0x08, 0xc1, 0x2c, 0x5b, 0x06, 0xb8, 0x0a, 0xf6, 0x4c, 0xb5, 0x06, 0xe2, - 0xe3, 0x2b, 0x6b, 0xf4, 0x11, 0xbd, 0x03, 0xe5, 0x30, 0x50, 0xc5, 0x5a, 0x30, 0x24, 0xd0, 0x9c, - 0x6c, 0xf8, 0x3e, 0x1e, 0x38, 0x3e, 0x0b, 0x91, 0xaa, 0x26, 0x9b, 0xea, 0x7f, 0xcd, 0x42, 0x2d, - 0x35, 0x27, 0x0f, 0xa1, 0x34, 0x10, 0xdd, 0x8b, 0x0f, 0xe5, 0xbd, 0x8c, 0xc4, 0x9c, 0x32, 0x55, - 0x0b, 0xa5, 0x68, 0xde, 0xa3, 0x39, 0x30, 0xb2, 0x7e, 0x85, 0x6d, 0x3a, 0xe3, 0x7d, 0xd2, 0xd3, - 0x4d, 0xcb, 0xc5, 0x5d, 0x9f, 0xb8, 0xc7, 0xc2, 0xdc, 0xc5, 0x3e, 0xe9, 0x6d, 0x49, 0x1a, 0xba, - 0x0b, 0x60, 0xda, 0x1e, 0x9d, 0xec, 0x43, 0xab, 0xc7, 0x8c, 0xae, 0x6c, 0x9c, 0x49, 0x1b, 0x11, - 0x2e, 0x56, 0x5a, 0xd9, 0xb4, 0x3d, 0x61, 0xfe, 0x23, 0xa8, 0xd2, 0x9c, 0xaf, 0x0f, 0xf8, 0x3a, - 0xc3, 0x23, 0xbd, 0xb2, 0x71, 0x36, 0x6b, 0x0c, 0xe1, 0x6a, 0xa4, 0x2d, 0x3a, 0xc3, 0x86, 0x87, - 0x1e, 0xc3, 0x3c, 0x4b, 0xbe, 0x5e, 0x7d, 0x9e, 0x09, 0xaf, 0x8f, 0x72, 0x80, 0x88, 0x88, 0x67, - 0x4c, 0x80, 0x07, 0x84, 0x90, 0x46, 0xfb, 0x50, 0x31, 0x6c, 0x9b, 0xf8, 0x06, 0x4f, 0x14, 0x0b, - 0x4c, 0xd9, 0x87, 0x13, 0x28, 0x6b, 0x0e, 0xa5, 0xb8, 0xc6, 0xa8, 0x1e, 0xf4, 0x7d, 0x98, 0x63, - 0x99, 0xa4, 0x5e, 0x62, 0x9e, 0xb9, 0x32, 0x61, 0xd0, 0x6a, 0x5c, 0xaa, 0x71, 0x07, 0x2a, 0x11, - 0x63, 0xa7, 0x09, 0xd2, 0xc6, 0x7d, 0xa8, 0x25, 0x4d, 0x9b, 0x2a, 0xc8, 0x35, 0x58, 0xd5, 0x02, - 0x7b, 0x68, 0x98, 0xac, 0x9e, 0xee, 0xc2, 0xbc, 0x98, 0x6c, 0x1e, 0x71, 0xea, 0x78, 0x1f, 0x69, - 0x42, 0x42, 0xfd, 0x3e, 0x9c, 0x4c, 0xe8, 0x14, 0x45, 0xd6, 0x7b, 0xb0, 0xe4, 0x10, 0x53, 0xf7, - 0x38, 0x59, 0xb7, 0x4c, 0x99, 0x5d, 0x9c, 0x90, 0xb7, 0x65, 0x52, 0xf1, 0x8e, 0x4f, 0x9c, 0xb4, - 0x4d, 0x93, 0x89, 0xd7, 0xe1, 0x54, 0x52, 0x9c, 0x77, 0xaf, 0x3e, 0x80, 0x35, 0x0d, 0x0f, 0xc8, - 0x4b, 0xfc, 0xa6, 0xaa, 0x1b, 0x50, 0x4f, 0x2b, 0x10, 0xca, 0x3f, 0x87, 0xb5, 0x21, 0xb5, 0xe3, - 0x1b, 0x7e, 0xe0, 0x4d, 0xa5, 0x5c, 0x54, 0xa0, 0x07, 0xc4, 0xe3, 0xb3, 0x54, 0xd2, 0x64, 0x53, - 0xbd, 0x16, 0x55, 0xdd, 0xe6, 0x0b, 0x3e, 0xef, 0x01, 0x2d, 0x41, 0xc1, 0x72, 0x84, 0xba, 0x82, - 0xe5, 0xa8, 0x4f, 0xa1, 0x1c, 0xae, 0x98, 0xe8, 0xde, 0xb0, 0xf4, 0x2b, 0x4c, 0xba, 0xbe, 0x86, - 0xd5, 0xe1, 0x5e, 0x6a, 0x85, 0x10, 0x5d, 0xde, 0x03, 0x08, 0x33, 0x99, 0x5c, 0xb8, 0xcf, 0x8c, - 0x50, 0xac, 0x45, 0xd8, 0xd5, 0x7f, 0x8d, 0xe5, 0xb7, 0xc8, 0x20, 0xcc, 0x70, 0x10, 0x66, 0x2c, - 0xdf, 0x15, 0xde, 0x28, 0xdf, 0x7d, 0x04, 0x73, 0x9e, 0x6f, 0xf8, 0x58, 0x14, 0x37, 0x17, 0x46, - 0x89, 0x53, 0x23, 0xb0, 0xc6, 0xf9, 0xd1, 0x59, 0x80, 0xae, 0x8b, 0x0d, 0x1f, 0x9b, 0xba, 0xc1, - 0x93, 0x73, 0x51, 0x2b, 0x0b, 0x4a, 0xd3, 0x47, 0x9b, 0xc3, 0x02, 0x6d, 0x8e, 0x19, 0x76, 0x6d, - 0x94, 0xe6, 0xd8, 0x54, 0x0d, 0x4b, 0xb5, 0x30, 0x59, 0xcc, 0x4f, 0x98, 0x2c, 0x84, 0x02, 0x2e, - 0x15, 0x49, 0x85, 0x0b, 0xe3, 0x53, 0x21, 0x17, 0x9d, 0x24, 0x15, 0x96, 0xc6, 0xa7, 0x42, 0xa1, - 0x6c, 0x64, 0x2a, 0xfc, 0x26, 0x73, 0xd9, 0xbf, 0x28, 0x50, 0x4f, 0x7f, 0x83, 0x22, 0xf7, 0xdc, - 0x85, 0x79, 0x8f, 0x51, 0x26, 0x49, 0x68, 0x42, 0x56, 0x48, 0xa0, 0xa7, 0x30, 0x6b, 0xd9, 0x87, - 0x84, 0xed, 0xad, 0x32, 0x4b, 0x92, 0xbc, 0x5e, 0xd7, 0x5b, 0xf6, 0x21, 0xe1, 0x4e, 0x62, 0x1a, - 0x1a, 0x1f, 0x41, 0x39, 0x24, 0x4d, 0x35, 0xb6, 0x1d, 0x58, 0x4d, 0x84, 0x2c, 0xaf, 0xc1, 0xc3, - 0x48, 0x57, 0xa6, 0x8b, 0x74, 0xf5, 0xa7, 0x85, 0xe8, 0x97, 0xf8, 0xd8, 0xea, 0xfb, 0xd8, 0x4d, - 0x7d, 0x89, 0x1f, 0x4b, 0xed, 0xfc, 0x33, 0xbc, 0x3c, 0x56, 0x3b, 0xaf, 0x8a, 0xc5, 0xc7, 0xf4, - 0x23, 0x58, 0x62, 0xb1, 0xa6, 0x7b, 0xb8, 0xcf, 0xea, 0x08, 0x51, 0xd3, 0x7d, 0x6f, 0x94, 0x1a, - 0x6e, 0x09, 0x8f, 0xd8, 0x8e, 0x90, 0xe3, 0x1e, 0xac, 0xf6, 0xa3, 0xb4, 0xc6, 0x43, 0x40, 0x69, - 0xa6, 0xa9, 0x7c, 0xda, 0xa1, 0x29, 0x8e, 0x6e, 0x40, 0x33, 0x16, 0xbf, 0x43, 0x66, 0xc6, 0x24, - 0xb1, 0xc2, 0x0d, 0xd6, 0x84, 0x84, 0xfa, 0x8b, 0x22, 0xc0, 0xf0, 0xe5, 0xff, 0xa3, 0xdc, 0xf6, - 0x30, 0xcc, 0x2b, 0xbc, 0x3e, 0xbb, 0x3a, 0x4a, 0x71, 0x66, 0x46, 0xd9, 0x89, 0x67, 0x14, 0x5e, - 0xa9, 0xdd, 0x18, 0xa9, 0xe6, 0x5b, 0x9b, 0x4b, 0x9e, 0xc1, 0xa9, 0x64, 0x6c, 0x88, 0x44, 0xb2, - 0x01, 0x73, 0x96, 0x8f, 0x07, 0x1c, 0x84, 0xc9, 0xdc, 0x1f, 0x46, 0x84, 0x38, 0xab, 0x7a, 0x01, - 0xca, 0xad, 0x81, 0xd1, 0xc3, 0x1d, 0x07, 0x77, 0x69, 0xa7, 0x16, 0x6d, 0x08, 0x43, 0x78, 0x43, - 0xdd, 0x80, 0xd2, 0x0f, 0xf0, 0x31, 0xff, 0xa8, 0x27, 0x34, 0x54, 0xfd, 0x93, 0x02, 0xac, 0xb1, - 0xb5, 0x62, 0x53, 0x42, 0x20, 0x1a, 0xf6, 0x48, 0xe0, 0x76, 0xb1, 0xc7, 0x66, 0xdb, 0x09, 0x74, - 0x07, 0xbb, 0x16, 0x31, 0xc5, 0x0e, 0xbd, 0xdc, 0x75, 0x82, 0x5d, 0x46, 0x40, 0x67, 0x80, 0x36, - 0xf4, 0x2f, 0x03, 0x22, 0x02, 0xb1, 0xa8, 0x95, 0xba, 0x4e, 0xf0, 0x7b, 0xb4, 0x2d, 0x65, 0xbd, - 0x23, 0xc3, 0xc5, 0x1e, 0x8b, 0x33, 0x2e, 0xdb, 0x61, 0x04, 0x74, 0x0b, 0x4e, 0x0e, 0xf0, 0x80, - 0xb8, 0xc7, 0x7a, 0xdf, 0x1a, 0x58, 0xbe, 0x6e, 0xd9, 0xfa, 0xc1, 0xb1, 0x8f, 0x3d, 0x11, 0x53, - 0x88, 0xbf, 0x7c, 0x46, 0xdf, 0xb5, 0xec, 0x47, 0xf4, 0x0d, 0x52, 0xa1, 0x4a, 0xc8, 0x40, 0xf7, - 0xba, 0xc4, 0xc5, 0xba, 0x61, 0xfe, 0x84, 0x2d, 0x9f, 0x45, 0xad, 0x42, 0xc8, 0xa0, 0x43, 0x69, - 0x4d, 0xf3, 0x27, 0xe8, 0x5d, 0xa8, 0x74, 0x9d, 0xc0, 0xc3, 0xbe, 0x4e, 0xff, 0xb0, 0xd5, 0xb1, - 0xac, 0x01, 0x27, 0x6d, 0x3a, 0x81, 0x17, 0x61, 0x18, 0x50, 0xff, 0x2f, 0x44, 0x19, 0x9e, 0x53, - 0x37, 0x1b, 0x50, 0x8d, 0xed, 0xf0, 0xe9, 0x66, 0x8d, 0x6d, 0xe5, 0xc5, 0x66, 0x8d, 0x3e, 0x53, - 0x9a, 0x4b, 0xfa, 0xd2, 0x93, 0xec, 0x99, 0xd2, 0xfc, 0x63, 0x47, 0xee, 0xd4, 0xd8, 0x33, 0x75, - 0x79, 0x1f, 0xbf, 0x14, 0x28, 0x50, 0x59, 0xe3, 0x0d, 0xd5, 0x04, 0xd8, 0x34, 0x1c, 0xe3, 0xc0, - 0xea, 0x5b, 0xfe, 0x31, 0xba, 0x06, 0x35, 0xc3, 0x34, 0xf5, 0xae, 0xa4, 0x58, 0x58, 0x62, 0x73, - 0xcb, 0x86, 0x69, 0x6e, 0x46, 0xc8, 0xe8, 0x3b, 0xb0, 0x62, 0xba, 0xc4, 0x89, 0xf3, 0x72, 0xb0, - 0xae, 0x46, 0x5f, 0x44, 0x99, 0x69, 0x99, 0x74, 0x36, 0x3e, 0xb1, 0x49, 0x14, 0xe5, 0x21, 0x2c, - 0x26, 0x7a, 0xcd, 0x01, 0x2b, 0x86, 0xd6, 0x6a, 0x31, 0x89, 0x04, 0xaa, 0x50, 0x48, 0xa1, 0x0a, - 0x99, 0x38, 0x4d, 0xf1, 0xad, 0xe2, 0x34, 0xb3, 0x6f, 0x05, 0xa7, 0x99, 0x9b, 0x0e, 0xa7, 0xb9, - 0xcc, 0xc0, 0x5a, 0x29, 0xcd, 0xb6, 0xc4, 0x3c, 0xd4, 0xaa, 0x21, 0x8f, 0x2d, 0x41, 0xdd, 0x04, - 0x9e, 0xb3, 0x30, 0x0d, 0x9e, 0x53, 0xca, 0xc5, 0x73, 0x68, 0xd4, 0x38, 0x8e, 0xe1, 0x0e, 0x88, - 0x2b, 0x01, 0x9b, 0x7a, 0x99, 0x99, 0xb0, 0x2c, 0xe9, 0x02, 0xac, 0xc9, 0x85, 0x76, 0x20, 0x0f, - 0xda, 0x41, 0xe7, 0x61, 0xd1, 0x26, 0xba, 0x8d, 0x5f, 0xe9, 0x74, 0x2e, 0xbd, 0x7a, 0x85, 0x4f, - 0xac, 0x4d, 0xda, 0xf8, 0xd5, 0x2e, 0xa5, 0xa8, 0x7f, 0xa7, 0xc0, 0x6a, 0x3c, 0xb8, 0xc4, 0x46, - 0xfd, 0x09, 0x94, 0x5d, 0x99, 0x3f, 0x44, 0x40, 0x5d, 0xcb, 0x29, 0x4e, 0xd3, 0x09, 0x47, 0x1b, - 0xca, 0xa2, 0x1f, 0xe6, 0xe2, 0x43, 0x37, 0xc7, 0xe9, 0x1b, 0x87, 0x10, 0xa9, 0x5d, 0x38, 0xf5, - 0xa9, 0x65, 0x9b, 0xe4, 0x95, 0x97, 0x34, 0xbf, 0x95, 0x36, 0xff, 0x3b, 0xe9, 0xee, 0x92, 0xc2, - 0x59, 0x03, 0x50, 0xff, 0x4a, 0x81, 0xd3, 0xb9, 0x8c, 0x89, 0xf4, 0xa8, 0x24, 0xd3, 0xa3, 0x48, - 0xad, 0x5d, 0x12, 0xd8, 0x7e, 0x24, 0xb5, 0x6e, 0x32, 0x14, 0x9b, 0xe7, 0x30, 0x7d, 0x60, 0xbc, - 0xb6, 0x06, 0xc1, 0x40, 0xe4, 0x56, 0xaa, 0xee, 0x39, 0xa7, 0xbc, 0x41, 0x72, 0x55, 0x9b, 0xb0, - 0x12, 0x5a, 0x39, 0x12, 0xa7, 0x8a, 0xe0, 0x4e, 0x85, 0x38, 0xee, 0x64, 0xc3, 0xfc, 0x16, 0x7e, - 0x69, 0x75, 0xf1, 0x5b, 0x81, 0xd9, 0xcf, 0x43, 0xc5, 0xc1, 0xee, 0xc0, 0xf2, 0xbc, 0x30, 0x69, - 0x94, 0xb5, 0x28, 0x49, 0xfd, 0xcf, 0x79, 0x58, 0x4e, 0xce, 0xdf, 0x83, 0x14, 0xcc, 0x75, 0x31, - 0x23, 0x9d, 0x25, 0x07, 0x1a, 0xa9, 0x8c, 0x6e, 0xc9, 0x85, 0xb5, 0x90, 0xb7, 0x29, 0x0d, 0x17, - 0x61, 0xb1, 0xea, 0x52, 0x8f, 0x74, 0xc9, 0x60, 0x60, 0xd8, 0xa6, 0x3c, 0x1d, 0x11, 0x4d, 0xea, - 0x3f, 0xc3, 0xed, 0x51, 0xb7, 0x53, 0x32, 0x7b, 0xa6, 0x93, 0x47, 0x77, 0x70, 0x96, 0xcd, 0xe0, - 0x32, 0x96, 0x78, 0xca, 0x1a, 0x08, 0xd2, 0x96, 0xe5, 0xa2, 0x75, 0x98, 0xc5, 0xf6, 0x4b, 0x59, - 0xfa, 0x64, 0x1c, 0x9f, 0xc8, 0x25, 0x5e, 0x63, 0x7c, 0xe8, 0x26, 0xcc, 0x0f, 0x68, 0x58, 0xc8, - 0xbd, 0xdc, 0x5a, 0xce, 0x29, 0x82, 0x26, 0xd8, 0xd0, 0x06, 0x2c, 0x98, 0x6c, 0x9e, 0xe4, 0x86, - 0xad, 0x9e, 0x01, 0xc2, 0x31, 0x06, 0x4d, 0x32, 0xa2, 0xed, 0xb0, 0xb0, 0x2b, 0xe7, 0x55, 0x64, - 0x89, 0xa9, 0xc8, 0xac, 0xee, 0xf6, 0xe2, 0xd5, 0x1d, 0x30, 0x5d, 0x1b, 0xe3, 0x75, 0x8d, 0x46, - 0xce, 0x4e, 0x43, 0xa9, 0x4f, 0x7a, 0x3c, 0x8c, 0x2a, 0xfc, 0xe0, 0xad, 0x4f, 0x7a, 0x2c, 0x8a, - 0x56, 0x69, 0xa1, 0x6b, 0x5a, 0x76, 0x7d, 0x91, 0xa5, 0x30, 0xde, 0xa0, 0x1f, 0x1f, 0x7b, 0xd0, - 0x89, 0xdd, 0xc5, 0xf5, 0x2a, 0x7b, 0x55, 0x66, 0x94, 0x1d, 0xbb, 0xcb, 0x4a, 0x27, 0xdf, 0x3f, - 0xae, 0x2f, 0x31, 0x3a, 0x7d, 0xa4, 0x7b, 0x18, 0xbe, 0xdd, 0x5e, 0xce, 0xdb, 0xc3, 0x64, 0x25, - 0x43, 0xb9, 0xdb, 0x7e, 0x04, 0x0b, 0xaf, 0x78, 0x22, 0xa8, 0xd7, 0x98, 0xfc, 0xd5, 0xf1, 0x29, - 0x45, 0x68, 0x90, 0x82, 0xdf, 0x64, 0x19, 0xfb, 0x0b, 0x05, 0x4e, 0x6d, 0xb2, 0x12, 0x3f, 0x92, - 0xc7, 0xa6, 0x41, 0xa5, 0xee, 0x84, 0x38, 0x60, 0x2e, 0x84, 0x94, 0x1c, 0xb7, 0x10, 0x40, 0x2d, - 0x58, 0x92, 0xca, 0x85, 0x8a, 0xe2, 0xc4, 0x50, 0x62, 0xd5, 0x8b, 0x36, 0xd5, 0x8f, 0x61, 0x2d, - 0x35, 0x0a, 0x51, 0x8e, 0x5f, 0x80, 0xc5, 0x61, 0xbe, 0x0a, 0x07, 0x51, 0x09, 0x69, 0x2d, 0x53, - 0xbd, 0x0b, 0x27, 0x3b, 0xbe, 0xe1, 0xfa, 0x29, 0x17, 0x4c, 0x20, 0xcb, 0xd0, 0xc4, 0xb8, 0xac, - 0x00, 0xfc, 0x3a, 0xb0, 0xda, 0xf1, 0x89, 0xf3, 0x06, 0x4a, 0x69, 0xd6, 0xa1, 0xe3, 0x27, 0x81, - 0x5c, 0x1f, 0x64, 0x53, 0x5d, 0xe3, 0xd8, 0x67, 0xba, 0xb7, 0x7b, 0x70, 0x8a, 0x43, 0x8f, 0x6f, - 0x32, 0x88, 0xd3, 0x12, 0xf8, 0x4c, 0xeb, 0x7d, 0x0e, 0x27, 0x86, 0x6b, 0xef, 0x10, 0x56, 0xb8, - 0x1d, 0x87, 0x15, 0xce, 0x8f, 0x98, 0xf5, 0x18, 0xaa, 0xf0, 0x17, 0x85, 0x48, 0x5e, 0xcf, 0x01, - 0x15, 0xee, 0xc5, 0x41, 0x85, 0x4b, 0xe3, 0x74, 0xc7, 0x30, 0x85, 0x74, 0xd4, 0x16, 0x33, 0xa2, - 0xf6, 0x8b, 0x14, 0xf2, 0x30, 0x9b, 0x07, 0xdd, 0x24, 0xac, 0xfd, 0xad, 0x00, 0x0f, 0x1a, 0x07, - 0x1e, 0xc2, 0xae, 0x43, 0xa4, 0xf8, 0x4e, 0x02, 0x78, 0xb8, 0x30, 0xd6, 0xde, 0x10, 0x77, 0xf8, - 0x9b, 0x59, 0x28, 0x87, 0xef, 0x52, 0x3e, 0x4f, 0xbb, 0xad, 0x90, 0xe1, 0xb6, 0xe8, 0x0a, 0x5c, - 0xfc, 0x5a, 0x2b, 0xf0, 0xec, 0xc4, 0x2b, 0xf0, 0x19, 0x28, 0xb3, 0x07, 0xdd, 0xc5, 0x87, 0x62, - 0x45, 0x2d, 0x31, 0x82, 0x86, 0x0f, 0x87, 0x61, 0x38, 0x3f, 0x55, 0x18, 0x26, 0xa0, 0x8e, 0x85, - 0x24, 0xd4, 0xf1, 0x20, 0x5c, 0x11, 0xf9, 0x22, 0x7a, 0x65, 0x84, 0xde, 0xcc, 0xb5, 0xb0, 0x1d, - 0x5f, 0x0b, 0xf9, 0xba, 0xfa, 0xfe, 0x28, 0x2d, 0xdf, 0x5a, 0xa0, 0x63, 0x9f, 0x03, 0x1d, 0xd1, - 0x58, 0x14, 0x99, 0xf5, 0x1e, 0x40, 0x98, 0x44, 0x24, 0xda, 0x71, 0x66, 0xc4, 0x18, 0xb5, 0x08, - 0x3b, 0x55, 0x1b, 0x9b, 0x9a, 0xe1, 0x69, 0xc8, 0x64, 0xf9, 0x31, 0xe7, 0x28, 0xe4, 0x7f, 0xe7, - 0x22, 0xf9, 0x25, 0xe7, 0xf8, 0xe0, 0x41, 0x0a, 0x62, 0x9b, 0x32, 0x8a, 0x6f, 0xc7, 0x11, 0xb6, - 0x37, 0x8c, 0xba, 0x14, 0xc0, 0xc6, 0x2a, 0x17, 0xc3, 0x15, 0xaf, 0x39, 0x00, 0x52, 0x16, 0x94, - 0x26, 0xdb, 0x19, 0x1c, 0x5a, 0xb6, 0xe5, 0x1d, 0xf1, 0xf7, 0xf3, 0x7c, 0x67, 0x20, 0x49, 0x4d, - 0x76, 0x81, 0x06, 0xbf, 0xb6, 0x7c, 0xbd, 0x4b, 0x4c, 0xcc, 0x62, 0x7a, 0x4e, 0x2b, 0x51, 0xc2, - 0x26, 0x31, 0xf1, 0xf0, 0xcb, 0x2b, 0xbd, 0xd9, 0x97, 0x57, 0x4e, 0x7c, 0x79, 0xa7, 0x60, 0xde, - 0xc5, 0x86, 0x47, 0x6c, 0xb1, 0xd5, 0x14, 0x2d, 0x3a, 0x35, 0x03, 0xec, 0x79, 0xb4, 0x27, 0x51, - 0xae, 0x89, 0x66, 0xa4, 0xcc, 0x5c, 0x1c, 0x5b, 0x66, 0x8e, 0x38, 0x96, 0x48, 0x94, 0x99, 0xd5, - 0xb1, 0x65, 0xe6, 0x24, 0xa7, 0x12, 0x91, 0x42, 0x7b, 0x69, 0xb2, 0x42, 0x3b, 0x5a, 0x97, 0x2e, - 0xc7, 0xea, 0xd2, 0x6f, 0xf2, 0x63, 0xfd, 0x95, 0x02, 0x6b, 0xa9, 0xcf, 0x4a, 0x7c, 0xae, 0x77, - 0x12, 0x07, 0x1c, 0x17, 0xc6, 0xfa, 0x2c, 0x3c, 0xdf, 0x78, 0x12, 0x3b, 0xdf, 0xf8, 0x70, 0xbc, - 0xe0, 0x5b, 0x3f, 0xde, 0xf8, 0x23, 0x05, 0xde, 0xdd, 0x77, 0xcc, 0x44, 0x85, 0x27, 0x36, 0xe6, - 0x93, 0x27, 0x8e, 0x07, 0xb2, 0xd6, 0x2f, 0x4c, 0x8b, 0x5e, 0x70, 0x39, 0x55, 0x85, 0xf3, 0xf9, - 0x66, 0x88, 0x92, 0xe9, 0xc7, 0xb0, 0xbc, 0xfd, 0x1a, 0x77, 0x3b, 0xc7, 0x76, 0x77, 0x0a, 0xd3, - 0x6a, 0x50, 0xec, 0x0e, 0x4c, 0x81, 0xf8, 0xd1, 0xc7, 0x68, 0x15, 0x58, 0x8c, 0x57, 0x81, 0x3a, - 0xd4, 0x86, 0x3d, 0x88, 0xe9, 0x3d, 0x45, 0xa7, 0xd7, 0xa4, 0xcc, 0x54, 0xf9, 0xa2, 0x26, 0x5a, - 0x82, 0x8e, 0x5d, 0x97, 0x8d, 0x99, 0xd3, 0xb1, 0xeb, 0xc6, 0xb3, 0x45, 0x31, 0x9e, 0x2d, 0xd4, - 0x3f, 0x53, 0xa0, 0x42, 0x7b, 0xf8, 0x5a, 0xf6, 0x8b, 0xad, 0x56, 0x71, 0xb8, 0xd5, 0x0a, 0x77, - 0x6c, 0xb3, 0xd1, 0x1d, 0xdb, 0xd0, 0xf2, 0x39, 0x46, 0x4e, 0x5b, 0x3e, 0x1f, 0xd2, 0xb1, 0xeb, - 0xaa, 0xe7, 0x61, 0x91, 0xdb, 0x26, 0x46, 0x5e, 0x83, 0x62, 0xe0, 0xf6, 0x65, 0x1c, 0x05, 0x6e, - 0x5f, 0xfd, 0x63, 0x05, 0xaa, 0x4d, 0xdf, 0x37, 0xba, 0x47, 0x53, 0x0c, 0x20, 0x34, 0xae, 0x10, - 0x35, 0x2e, 0x3d, 0x88, 0xa1, 0xb9, 0xb3, 0x39, 0xe6, 0xce, 0xc5, 0xcc, 0x55, 0x61, 0x49, 0xda, - 0x92, 0x6b, 0x70, 0x1b, 0xd0, 0x2e, 0x71, 0xfd, 0xc7, 0xc4, 0x7d, 0x65, 0xb8, 0xe6, 0x74, 0x3b, - 0x30, 0x04, 0xb3, 0xe2, 0x52, 0x65, 0xf1, 0xea, 0x9c, 0xc6, 0x9e, 0xd5, 0x2b, 0x70, 0x22, 0xa6, - 0x2f, 0xb7, 0xe3, 0x87, 0x50, 0x61, 0x79, 0x5f, 0x94, 0xe2, 0xb7, 0xa2, 0x47, 0x0f, 0x13, 0xad, - 0x12, 0xea, 0xef, 0xc2, 0x0a, 0xad, 0x0f, 0x18, 0x3d, 0xfc, 0x14, 0xbf, 0x97, 0xa8, 0x53, 0xcf, - 0xe6, 0x28, 0x4a, 0xd4, 0xa8, 0x7f, 0xab, 0xc0, 0x1c, 0xa3, 0xa7, 0xd6, 0xec, 0x33, 0x50, 0x76, - 0xb1, 0x43, 0x74, 0xdf, 0xe8, 0x85, 0x57, 0x58, 0x29, 0x61, 0xcf, 0xe8, 0x79, 0xec, 0x06, 0x2e, - 0x7d, 0x69, 0x5a, 0x3d, 0xec, 0xf9, 0xf2, 0x1e, 0x6b, 0x85, 0xd2, 0xb6, 0x38, 0x89, 0x3a, 0xc9, - 0xb3, 0x7e, 0x9f, 0xd7, 0x9d, 0xb3, 0x1a, 0x7b, 0x46, 0xeb, 0xfc, 0x56, 0xd6, 0x24, 0xf0, 0x30, - 0xbb, 0xb3, 0xd5, 0x80, 0x52, 0x02, 0x11, 0x0e, 0xdb, 0xea, 0x36, 0xa0, 0xa8, 0x17, 0x84, 0xbf, - 0x6f, 0xc2, 0x3c, 0x73, 0x92, 0xac, 0x8e, 0xd6, 0x72, 0xdc, 0xa0, 0x09, 0x36, 0xd5, 0x00, 0xc4, - 0x1d, 0x1c, 0xab, 0x88, 0xa6, 0x9f, 0x95, 0x11, 0x15, 0xd2, 0x3f, 0x28, 0x70, 0x22, 0xd6, 0x87, - 0xb0, 0xf5, 0x46, 0xbc, 0x93, 0x5c, 0x53, 0x45, 0x07, 0x9b, 0xb1, 0x25, 0xe1, 0x66, 0x9e, 0x49, - 0xbf, 0xa1, 0xe5, 0xe0, 0x1f, 0x15, 0x80, 0x66, 0xe0, 0x1f, 0x09, 0x64, 0x30, 0x3a, 0x33, 0x4a, - 0x7c, 0x66, 0xe8, 0x3b, 0xc7, 0xf0, 0xbc, 0x57, 0xc4, 0x95, 0x7b, 0x9a, 0xb0, 0xcd, 0x30, 0xbc, - 0xc0, 0x3f, 0x92, 0xc7, 0x3a, 0xf4, 0x19, 0x5d, 0x82, 0x25, 0x7e, 0x6d, 0x5a, 0x37, 0x4c, 0xd3, - 0xc5, 0x9e, 0x27, 0xce, 0x77, 0xaa, 0x9c, 0xda, 0xe4, 0x44, 0xca, 0x66, 0x99, 0xd8, 0xf6, 0x2d, - 0xff, 0x58, 0xf7, 0xc9, 0x0b, 0x6c, 0x8b, 0xbd, 0x49, 0x55, 0x52, 0xf7, 0x28, 0x91, 0xb2, 0xb9, - 0xb8, 0x67, 0x79, 0xbe, 0x2b, 0xd9, 0xe4, 0x59, 0x82, 0xa0, 0x32, 0x36, 0x3a, 0x29, 0xb5, 0xdd, - 0xa0, 0xdf, 0xe7, 0x2e, 0x7e, 0xf3, 0x69, 0xff, 0x40, 0x0c, 0xa8, 0x90, 0x17, 0xd3, 0x43, 0xa7, - 0x89, 0xe1, 0xbe, 0x45, 0x10, 0xe6, 0x03, 0x58, 0x89, 0x8c, 0x41, 0x84, 0x55, 0xac, 0x88, 0x54, - 0xe2, 0x45, 0xa4, 0xfa, 0x04, 0x10, 0xc7, 0x1d, 0xbe, 0xe6, 0xb8, 0xd5, 0x93, 0x70, 0x22, 0xa6, - 0x48, 0xac, 0xc4, 0xd7, 0xa1, 0x2a, 0xee, 0xd8, 0x88, 0x40, 0x39, 0x0d, 0x25, 0x9a, 0x51, 0xbb, - 0x96, 0x29, 0xcf, 0xfc, 0x16, 0x1c, 0x62, 0x6e, 0x5a, 0xa6, 0xab, 0x7e, 0x0a, 0x55, 0x8d, 0xf7, - 0x23, 0x78, 0x1f, 0xc3, 0x92, 0xb8, 0x91, 0xa3, 0xc7, 0x6e, 0xba, 0x65, 0xdd, 0x84, 0x8e, 0x76, - 0xa2, 0x55, 0xed, 0x68, 0x53, 0x35, 0xa1, 0xc1, 0x4b, 0x86, 0x98, 0x7a, 0x39, 0xd8, 0xc7, 0x20, - 0x7f, 0x03, 0x30, 0xb6, 0x97, 0xb8, 0x7c, 0xd5, 0x8d, 0x36, 0xd5, 0xb3, 0x70, 0x26, 0xb3, 0x17, - 0xe1, 0x09, 0x07, 0x6a, 0xc3, 0x17, 0xa6, 0x25, 0x0f, 0x3f, 0xd9, 0xa1, 0xa6, 0x12, 0x39, 0xd4, - 0x3c, 0x15, 0x16, 0x89, 0x05, 0xb9, 0x88, 0xb1, 0x0a, 0x70, 0x58, 0xee, 0x17, 0xf3, 0xca, 0xfd, - 0xd9, 0x58, 0xb9, 0xaf, 0x76, 0x42, 0x7f, 0x8a, 0x6d, 0xd8, 0x23, 0xb6, 0x5d, 0xe4, 0x7d, 0xcb, - 0x84, 0xa8, 0x8e, 0x1a, 0x25, 0x67, 0xd5, 0x22, 0x52, 0xea, 0x35, 0xa8, 0xc6, 0x53, 0x63, 0x24, - 0xcf, 0x29, 0xa9, 0x3c, 0xb7, 0x94, 0x48, 0x71, 0x1f, 0x25, 0x2a, 0xe0, 0x7c, 0x1f, 0x27, 0xea, - 0xdf, 0xfb, 0xb1, 0x64, 0x77, 0x3d, 0xe3, 0x3c, 0xf2, 0x37, 0x94, 0xe7, 0x56, 0xc5, 0x7a, 0xf0, - 0xd8, 0xa3, 0xf2, 0x62, 0xd0, 0xea, 0x45, 0xa8, 0xec, 0xe7, 0x5d, 0xb3, 0x9f, 0x95, 0x67, 0xff, - 0x57, 0x60, 0xa5, 0xe3, 0x13, 0xd7, 0xe8, 0xe1, 0x16, 0xcb, 0x48, 0x87, 0x16, 0x3f, 0xdb, 0x0e, - 0x82, 0x70, 0x61, 0x65, 0xcf, 0xea, 0xff, 0x28, 0xb0, 0xfc, 0xd8, 0xea, 0x63, 0xef, 0xd8, 0xf3, - 0xf1, 0x60, 0x9f, 0xed, 0xd5, 0xde, 0x81, 0x32, 0x1d, 0xa0, 0xe7, 0x1b, 0x03, 0x47, 0x1e, 0x60, - 0x85, 0x04, 0x3a, 0x93, 0x1e, 0x57, 0x2d, 0x81, 0xa2, 0xcc, 0x2d, 0x74, 0xaa, 0x7b, 0xba, 0x9b, - 0x15, 0x24, 0xf4, 0x31, 0x40, 0xe0, 0x61, 0x53, 0x9c, 0x5d, 0x15, 0xf3, 0xaa, 0x84, 0xfd, 0xe8, - 0x19, 0x2d, 0x15, 0xe0, 0xd7, 0x05, 0xee, 0x43, 0xc5, 0xb2, 0x89, 0x89, 0xd9, 0x19, 0xad, 0x29, - 0xd0, 0xa4, 0x31, 0xe2, 0xc0, 0x25, 0xf6, 0x3d, 0x6c, 0xaa, 0x58, 0xac, 0x81, 0xd2, 0xaf, 0x22, - 0x40, 0xda, 0xb0, 0xc2, 0x93, 0xd5, 0x61, 0xe8, 0x0f, 0x19, 0xa9, 0x19, 0xbb, 0xa5, 0x84, 0xd3, - 0xb4, 0x9a, 0x25, 0x4a, 0x1a, 0x29, 0xaa, 0xde, 0x85, 0x93, 0xb1, 0x9d, 0xd1, 0x14, 0x5b, 0x15, - 0x75, 0x37, 0x01, 0x90, 0x0c, 0xc3, 0x58, 0xc0, 0x0f, 0x32, 0x8a, 0xc7, 0xc1, 0x0f, 0x1e, 0x87, - 0x1f, 0x3c, 0xf5, 0x0b, 0x38, 0x1d, 0x43, 0x72, 0x62, 0x16, 0xdd, 0x4f, 0x54, 0x6c, 0x97, 0xc7, - 0x69, 0x4d, 0x94, 0x6e, 0xff, 0xad, 0xc0, 0x6a, 0x16, 0xc3, 0x1b, 0x22, 0x8d, 0x3f, 0xce, 0xb9, - 0x1a, 0x76, 0x67, 0x32, 0xb3, 0x7e, 0x2b, 0x28, 0xed, 0x1e, 0x34, 0xb2, 0xfc, 0x99, 0x9e, 0xa5, - 0xe2, 0x34, 0xb3, 0xf4, 0xb3, 0x62, 0x04, 0x71, 0x6f, 0xfa, 0xbe, 0x6b, 0x1d, 0x04, 0x34, 0xe4, - 0xdf, 0x3a, 0x8a, 0xd5, 0x0a, 0xf1, 0x18, 0xee, 0xda, 0x5b, 0x23, 0xc4, 0x87, 0x76, 0x64, 0x62, - 0x32, 0x9f, 0xc5, 0x31, 0x19, 0x8e, 0xa5, 0xdf, 0x9e, 0x4c, 0xdf, 0xb7, 0x16, 0xf8, 0xfc, 0x59, - 0x01, 0x96, 0xe2, 0x53, 0x84, 0xb6, 0x01, 0x8c, 0xd0, 0x72, 0xf1, 0xa1, 0x5c, 0x9a, 0x68, 0x98, - 0x5a, 0x44, 0x10, 0xbd, 0x0f, 0xc5, 0xae, 0x13, 0x88, 0x59, 0xcb, 0x38, 0x04, 0xde, 0x74, 0x02, - 0x9e, 0x51, 0x28, 0x1b, 0xdd, 0x4b, 0xf1, 0x33, 0xfd, 0xfc, 0x2c, 0xf9, 0x9c, 0xbd, 0xe7, 0x32, - 0x82, 0x19, 0x3d, 0x85, 0xa5, 0x57, 0xae, 0xe5, 0x1b, 0x07, 0x7d, 0xac, 0xf7, 0x8d, 0x63, 0xec, - 0x8a, 0x2c, 0x39, 0x41, 0x22, 0xab, 0x4a, 0xc1, 0x67, 0x54, 0x4e, 0xfd, 0x03, 0x28, 0x49, 0x8b, - 0xc6, 0x2c, 0x0c, 0x7b, 0xb0, 0x16, 0x50, 0x36, 0x9d, 0x5d, 0xe3, 0xb2, 0x0d, 0x9b, 0xe8, 0x1e, - 0xa6, 0xcb, 0xb7, 0xbc, 0x60, 0x3e, 0x26, 0x45, 0xaf, 0x32, 0xe9, 0x4d, 0xe2, 0xe2, 0xb6, 0x61, - 0x93, 0x0e, 0x17, 0x55, 0x5f, 0x42, 0x25, 0x32, 0xc0, 0x31, 0x26, 0xb4, 0x60, 0x45, 0x1e, 0xc1, - 0x7b, 0xd8, 0x17, 0xcb, 0xcb, 0x44, 0x9d, 0x2f, 0x0b, 0xb9, 0x0e, 0xf6, 0xf9, 0xb5, 0x89, 0xfb, - 0x70, 0x5a, 0xc3, 0xc4, 0xc1, 0x76, 0x38, 0x9f, 0xcf, 0x48, 0x6f, 0x8a, 0x0c, 0xfe, 0x0e, 0x34, - 0xb2, 0xe4, 0x79, 0x7e, 0xb8, 0xfe, 0x0e, 0x94, 0xe4, 0x6f, 0x25, 0xd1, 0x02, 0x14, 0xf7, 0x36, - 0x77, 0x6b, 0x33, 0xf4, 0x61, 0x7f, 0x6b, 0xb7, 0xa6, 0x5c, 0x1f, 0x40, 0x2d, 0xf9, 0xf3, 0x40, - 0xb4, 0x06, 0x27, 0x76, 0xb5, 0x9d, 0xdd, 0xe6, 0x93, 0xe6, 0x5e, 0x6b, 0xa7, 0xad, 0xef, 0x6a, - 0xad, 0x4f, 0x9a, 0x7b, 0xdb, 0xb5, 0x19, 0x74, 0x01, 0xce, 0x46, 0x5f, 0x3c, 0xdd, 0xe9, 0xec, - 0xe9, 0x7b, 0x3b, 0xfa, 0xe6, 0x4e, 0x7b, 0xaf, 0xd9, 0x6a, 0x6f, 0x6b, 0x35, 0x05, 0x9d, 0x85, - 0xd3, 0x51, 0x96, 0x47, 0xad, 0xad, 0x96, 0xb6, 0xbd, 0x49, 0x9f, 0x9b, 0xcf, 0x6a, 0x85, 0xeb, - 0xb7, 0xa0, 0x1a, 0xfb, 0x35, 0x1f, 0x35, 0x64, 0x77, 0x67, 0xab, 0x36, 0x83, 0xaa, 0x50, 0x8e, - 0xea, 0x29, 0xc1, 0x6c, 0x7b, 0x67, 0x6b, 0xbb, 0x56, 0xb8, 0x7e, 0x17, 0x96, 0x13, 0xf7, 0x48, - 0xd1, 0x0a, 0x54, 0x3b, 0xcd, 0xf6, 0xd6, 0xa3, 0x9d, 0xcf, 0x74, 0x6d, 0xbb, 0xb9, 0xf5, 0x79, - 0x6d, 0x06, 0xad, 0x42, 0x4d, 0x92, 0xda, 0x3b, 0x7b, 0x9c, 0xaa, 0x5c, 0x7f, 0x91, 0xf8, 0xb2, - 0x30, 0x3a, 0x09, 0x2b, 0x61, 0x37, 0xfa, 0xa6, 0xb6, 0xdd, 0xdc, 0xdb, 0xa6, 0xbd, 0xc7, 0xc8, - 0xda, 0x7e, 0xbb, 0xdd, 0x6a, 0x3f, 0xa9, 0x29, 0x54, 0xeb, 0x90, 0xbc, 0xfd, 0x59, 0x8b, 0x32, - 0x17, 0xe2, 0xcc, 0xfb, 0xed, 0x1f, 0xb4, 0x77, 0x3e, 0x6d, 0xd7, 0x8a, 0x1b, 0x7f, 0xbf, 0x02, - 0x4b, 0xb2, 0xac, 0xc3, 0x2e, 0xbb, 0xc3, 0xb2, 0x0b, 0x0b, 0xf2, 0x17, 0xb7, 0x19, 0x79, 0x39, - 0xfe, 0x3b, 0xe1, 0xc6, 0x85, 0x11, 0x1c, 0xa2, 0xba, 0x9e, 0x41, 0x07, 0xac, 0xda, 0x8d, 0xdc, - 0xeb, 0xbd, 0x9c, 0x59, 0x5b, 0xa6, 0xae, 0x12, 0x37, 0xae, 0x8c, 0xe5, 0x0b, 0xfb, 0xc0, 0xb4, - 0xa0, 0x8d, 0xfe, 0x70, 0x05, 0x5d, 0xc9, 0x2c, 0xba, 0xd2, 0xbf, 0x8c, 0x69, 0x5c, 0x1d, 0xcf, - 0x18, 0x76, 0xf3, 0x02, 0x6a, 0xc9, 0x1f, 0xb1, 0xa0, 0x0c, 0xa0, 0x34, 0xe7, 0x97, 0x32, 0x8d, - 0xeb, 0x93, 0xb0, 0x46, 0x3b, 0x4b, 0xfd, 0xdc, 0xe3, 0xda, 0x24, 0xf7, 0xe7, 0x73, 0x3b, 0xcb, - 0xbb, 0x6a, 0xcf, 0x1d, 0x18, 0xbf, 0xb3, 0x8b, 0x32, 0x7f, 0x5b, 0x91, 0x71, 0xe3, 0x3b, 0xcb, - 0x81, 0xd9, 0xd7, 0x7f, 0xd5, 0x19, 0x74, 0x04, 0xcb, 0x89, 0xcb, 0x08, 0x28, 0x43, 0x3c, 0xfb, - 0xd6, 0x45, 0xe3, 0xda, 0x04, 0x9c, 0xf1, 0x88, 0x88, 0x5e, 0x3e, 0xc8, 0x8e, 0x88, 0x8c, 0xab, - 0x0d, 0xd9, 0x11, 0x91, 0x79, 0x8f, 0x81, 0x05, 0x77, 0xec, 0xd2, 0x41, 0x56, 0x70, 0x67, 0x5d, - 0x75, 0x68, 0x5c, 0x19, 0xcb, 0x17, 0x75, 0x5a, 0xe2, 0x0a, 0x42, 0x96, 0xd3, 0xb2, 0xaf, 0x38, - 0x34, 0xae, 0x4d, 0xc0, 0x99, 0x8c, 0x82, 0xe1, 0x81, 0x66, 0x5e, 0x14, 0xa4, 0x8e, 0xdf, 0xf3, - 0xa2, 0x20, 0x7d, 0x36, 0x2a, 0xa2, 0x20, 0x71, 0x10, 0x79, 0x75, 0x82, 0x83, 0x93, 0xfc, 0x28, - 0xc8, 0x3e, 0x62, 0x51, 0x67, 0xd0, 0x1f, 0x2a, 0x50, 0xcf, 0x3b, 0x94, 0x40, 0x19, 0x55, 0xdd, - 0x98, 0x73, 0x94, 0xc6, 0xc6, 0x34, 0x22, 0xa1, 0x15, 0x5f, 0x02, 0x4a, 0xaf, 0x76, 0xe8, 0x3b, - 0x59, 0x33, 0x93, 0xb3, 0xa6, 0x36, 0xde, 0x9f, 0x8c, 0x39, 0xec, 0xb2, 0x03, 0x25, 0x79, 0x0c, - 0x82, 0x32, 0xb2, 0x74, 0xe2, 0x10, 0xa6, 0xa1, 0x8e, 0x62, 0x09, 0x95, 0x3e, 0x81, 0x59, 0x4a, - 0x45, 0x67, 0xb3, 0xb9, 0xa5, 0xb2, 0x73, 0x79, 0xaf, 0x43, 0x45, 0xcf, 0x61, 0x9e, 0xe3, 0xfe, - 0x28, 0x03, 0x67, 0x88, 0x9d, 0x4e, 0x34, 0xce, 0xe7, 0x33, 0x84, 0xea, 0x7e, 0xc4, 0xff, 0x19, - 0x83, 0x80, 0xf4, 0xd1, 0x7b, 0xd9, 0xbf, 0x8e, 0x8d, 0x9f, 0x20, 0x34, 0x2e, 0x8d, 0xe1, 0x8a, - 0x7e, 0x14, 0x89, 0x5a, 0xf7, 0xca, 0xd8, 0x0d, 0x4b, 0xfe, 0x47, 0x91, 0xbd, 0x25, 0xe2, 0x41, - 0x92, 0xde, 0x32, 0x65, 0x05, 0x49, 0xee, 0x46, 0x35, 0x2b, 0x48, 0xf2, 0x77, 0x61, 0xea, 0x0c, - 0xf2, 0xe1, 0x44, 0x06, 0x30, 0x86, 0xde, 0xcf, 0x0b, 0xf2, 0x2c, 0x94, 0xae, 0x71, 0x63, 0x42, - 0xee, 0xe8, 0xe4, 0x8b, 0x8f, 0xfe, 0xdd, 0x7c, 0xb4, 0x28, 0x77, 0xf2, 0x93, 0x9f, 0xf8, 0xc6, - 0xbf, 0x15, 0x61, 0x91, 0x83, 0x9e, 0xa2, 0x82, 0xf9, 0x1c, 0x60, 0x78, 0xde, 0x80, 0x2e, 0x66, - 0xfb, 0x24, 0x76, 0x26, 0xd3, 0x78, 0x6f, 0x34, 0x53, 0x34, 0xd0, 0x22, 0xd8, 0x7d, 0x56, 0xa0, - 0xa5, 0x8f, 0x28, 0xb2, 0x02, 0x2d, 0xe3, 0x00, 0x40, 0x9d, 0x41, 0x9f, 0x40, 0x39, 0x04, 0x89, - 0x51, 0x16, 0xc8, 0x9c, 0x40, 0xc1, 0x1b, 0x17, 0x47, 0xf2, 0x44, 0xad, 0x8e, 0x20, 0xc0, 0x59, - 0x56, 0xa7, 0x91, 0xe6, 0x2c, 0xab, 0xb3, 0x60, 0xe4, 0xa1, 0x4f, 0x38, 0x5e, 0x94, 0xeb, 0x93, - 0x18, 0x4c, 0x97, 0xeb, 0x93, 0x38, 0xe8, 0xa4, 0xce, 0x3c, 0xba, 0xfc, 0xcb, 0x5f, 0x9f, 0x53, - 0xfe, 0xf9, 0xd7, 0xe7, 0x66, 0x7e, 0xfa, 0xd5, 0x39, 0xe5, 0x97, 0x5f, 0x9d, 0x53, 0xfe, 0xe9, - 0xab, 0x73, 0xca, 0xbf, 0x7f, 0x75, 0x4e, 0xf9, 0xd3, 0xff, 0x38, 0x37, 0xf3, 0xc3, 0x92, 0x94, - 0x3e, 0x98, 0x67, 0xff, 0x52, 0xe5, 0xc3, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x92, 0x3f, 0x16, - 0xfa, 0x18, 0x47, 0x00, 0x00, + // 4602 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5c, 0xcd, 0x6f, 0x1b, 0x49, + 0x76, 0x17, 0x49, 0x7d, 0x90, 0x8f, 0xa2, 0x44, 0x95, 0x65, 0x8b, 0xa6, 0x6d, 0x8d, 0xd5, 0x1e, + 0x7f, 0xce, 0x58, 0x1e, 0x6b, 0x76, 0x3d, 0xb1, 0x3d, 0x6b, 0x9b, 0x96, 0x64, 0x9b, 0x59, 0x9b, + 0x52, 0x9a, 0xd2, 0x7c, 0xec, 0x2c, 0xd0, 0xdb, 0x62, 0x97, 0xa8, 0x5e, 0x93, 0x5d, 0x3d, 0xdd, + 0x4d, 0xdb, 0xca, 0x21, 0x58, 0x20, 0xc8, 0x1e, 0x02, 0x04, 0xc8, 0x39, 0xb7, 0x6c, 0x0e, 0x39, + 0xe4, 0x16, 0x20, 0xc8, 0x21, 0xa7, 0x04, 0x7b, 0xd8, 0x4b, 0x80, 0x9c, 0x16, 0xf9, 0xb8, 0x64, + 0x27, 0xc8, 0x25, 0x87, 0x20, 0x7f, 0x40, 0x0e, 0x41, 0x7d, 0xf5, 0x77, 0xf3, 0x43, 0xe3, 0x9d, + 0x99, 0x9c, 0xd4, 0xf5, 0xfa, 0xbd, 0x57, 0xaf, 0x5e, 0xbd, 0x7e, 0xf5, 0xea, 0x57, 0x45, 0x41, + 0x49, 0xb7, 0xcd, 0x75, 0xdb, 0x21, 0x1e, 0x41, 0x55, 0x67, 0x60, 0x79, 0x66, 0x1f, 0xaf, 0xbf, + 0xba, 0xad, 0xf7, 0xec, 0x23, 0x7d, 0xa3, 0x7e, 0xb3, 0x6b, 0x7a, 0x47, 0x83, 0x83, 0xf5, 0x0e, + 0xe9, 0xdf, 0xea, 0x92, 0x2e, 0xb9, 0xc5, 0x18, 0x0f, 0x06, 0x87, 0xac, 0xc5, 0x1a, 0xec, 0x89, + 0x2b, 0x50, 0x6e, 0xc0, 0xc2, 0x27, 0xd8, 0x71, 0x4d, 0x62, 0xa9, 0xf8, 0xcb, 0x01, 0x76, 0x3d, + 0x54, 0x83, 0xb9, 0x57, 0x9c, 0x52, 0xcb, 0x5d, 0xcc, 0x5d, 0x2b, 0xa9, 0xb2, 0xa9, 0xfc, 0x65, + 0x0e, 0x16, 0x7d, 0x66, 0xd7, 0x26, 0x96, 0x8b, 0xb3, 0xb9, 0xd1, 0x1a, 0xcc, 0x0b, 0xe3, 0x34, + 0x4b, 0xef, 0xe3, 0x5a, 0x9e, 0xbd, 0x2e, 0x0b, 0x5a, 0x4b, 0xef, 0x63, 0x74, 0x15, 0x16, 0x25, + 0x8b, 0x54, 0x52, 0x60, 0x5c, 0x0b, 0x82, 0x2c, 0x7a, 0x43, 0xeb, 0x70, 0x4a, 0x32, 0xea, 0xb6, + 0xe9, 0x33, 0x4f, 0x33, 0xe6, 0x25, 0xf1, 0xaa, 0x61, 0x9b, 0x82, 0x5f, 0xf9, 0x02, 0x4a, 0x5b, + 0xad, 0xf6, 0x26, 0xb1, 0x0e, 0xcd, 0x2e, 0x35, 0xd1, 0xc5, 0x0e, 0x95, 0xa9, 0xe5, 0x2e, 0x16, + 0xa8, 0x89, 0xa2, 0x89, 0xea, 0x50, 0x74, 0xb1, 0xee, 0x74, 0x8e, 0xb0, 0x5b, 0xcb, 0xb3, 0x57, + 0x7e, 0x9b, 0x4a, 0x11, 0xdb, 0x33, 0x89, 0xe5, 0xd6, 0x0a, 0x5c, 0x4a, 0x34, 0x95, 0x5f, 0xe4, + 0xa0, 0xbc, 0x4b, 0x1c, 0xef, 0x85, 0x6e, 0xdb, 0xa6, 0xd5, 0x45, 0x77, 0xa0, 0xc8, 0x7c, 0xd9, + 0x21, 0x3d, 0xe6, 0x83, 0x85, 0x8d, 0xfa, 0x7a, 0x7c, 0x5a, 0xd6, 0x77, 0x05, 0x87, 0xea, 0xf3, + 0xa2, 0xcb, 0xb0, 0xd0, 0x21, 0x96, 0xa7, 0x9b, 0x16, 0x76, 0x34, 0x9b, 0x38, 0x1e, 0x73, 0xd1, + 0x8c, 0x5a, 0xf1, 0xa9, 0xb4, 0x17, 0x74, 0x0e, 0x4a, 0x47, 0xc4, 0xf5, 0x38, 0x47, 0x81, 0x71, + 0x14, 0x29, 0x81, 0xbd, 0x5c, 0x81, 0x39, 0xf6, 0xd2, 0xb4, 0x85, 0x33, 0x66, 0x69, 0xb3, 0x69, + 0x2b, 0xbf, 0xce, 0xc1, 0xcc, 0x0b, 0x32, 0xb0, 0xbc, 0x58, 0x37, 0xba, 0x77, 0x24, 0x26, 0x2a, + 0xd4, 0x8d, 0xee, 0x1d, 0x05, 0xdd, 0x50, 0x0e, 0x3e, 0x57, 0xbc, 0x1b, 0xfa, 0xb2, 0x0e, 0x45, + 0x07, 0xeb, 0x06, 0xb1, 0x7a, 0xc7, 0xcc, 0x84, 0xa2, 0xea, 0xb7, 0xe9, 0x24, 0xba, 0xb8, 0x67, + 0x5a, 0x83, 0x37, 0x9a, 0x83, 0x7b, 0xfa, 0x01, 0xee, 0x31, 0x53, 0x8a, 0xea, 0x82, 0x20, 0xab, + 0x9c, 0x8a, 0xb6, 0xa0, 0x6c, 0x3b, 0xc4, 0xd6, 0xbb, 0x3a, 0xf5, 0x63, 0x6d, 0x86, 0xb9, 0x4a, + 0x49, 0xba, 0x8a, 0x99, 0xbd, 0x1b, 0x70, 0xaa, 0x61, 0x31, 0xe5, 0xaf, 0x73, 0xb0, 0x48, 0x83, + 0xc7, 0xb5, 0xf5, 0x0e, 0xde, 0x61, 0x53, 0x82, 0xee, 0xc2, 0x9c, 0x85, 0xbd, 0xd7, 0xc4, 0x79, + 0x29, 0x26, 0xe0, 0x9d, 0xa4, 0x56, 0x5f, 0xe6, 0x05, 0x31, 0xb0, 0x2a, 0xf9, 0xd1, 0x6d, 0x28, + 0xd8, 0xa6, 0xc1, 0x06, 0x3c, 0x86, 0x18, 0xe5, 0xa5, 0x22, 0xa6, 0xdd, 0x61, 0x7e, 0x18, 0x47, + 0xc4, 0xb4, 0x3b, 0x8a, 0x02, 0xd0, 0xb4, 0xbc, 0x3b, 0xdf, 0xfb, 0x44, 0xef, 0x0d, 0x30, 0x5a, + 0x86, 0x99, 0x57, 0xf4, 0x81, 0x19, 0x5b, 0x50, 0x79, 0x43, 0xf9, 0xf3, 0x02, 0x9c, 0x7b, 0x4e, + 0xfd, 0xd5, 0xd6, 0x2d, 0xe3, 0x80, 0xbc, 0x69, 0xe3, 0xce, 0xc0, 0x31, 0xbd, 0xe3, 0x4d, 0x62, + 0x79, 0xf8, 0x8d, 0x87, 0x5a, 0xb0, 0x64, 0x49, 0xcd, 0x9a, 0x0c, 0x4d, 0xaa, 0xa1, 0xbc, 0xb1, + 0x36, 0xc4, 0x08, 0xee, 0x22, 0xb5, 0x6a, 0x45, 0x09, 0x2e, 0x7a, 0x16, 0xcc, 0x9b, 0xd4, 0x96, + 0x67, 0xda, 0x52, 0x86, 0xd4, 0xde, 0x66, 0x96, 0x09, 0x5d, 0x72, 0x62, 0xa5, 0xa6, 0x8f, 0x81, + 0x7e, 0xd5, 0x9a, 0xee, 0x6a, 0x03, 0x17, 0x3b, 0xcc, 0x31, 0xe5, 0x8d, 0xf3, 0x49, 0x2d, 0x81, + 0x0b, 0xd4, 0x92, 0x33, 0xb0, 0x1a, 0xee, 0xbe, 0x8b, 0x1d, 0x96, 0x04, 0x44, 0x2c, 0x69, 0x0e, + 0x21, 0xde, 0xa1, 0x2b, 0xe3, 0x47, 0x92, 0x55, 0x46, 0x45, 0xb7, 0xe0, 0x94, 0x3b, 0xb0, 0xed, + 0x1e, 0xee, 0x63, 0xcb, 0xd3, 0x7b, 0x5a, 0xd7, 0x21, 0x03, 0xdb, 0xad, 0xcd, 0x5c, 0x2c, 0x5c, + 0x2b, 0xa8, 0x28, 0xfc, 0xea, 0x29, 0x7b, 0x83, 0x56, 0x01, 0x6c, 0xc7, 0x7c, 0x65, 0xf6, 0x70, + 0x17, 0x1b, 0xb5, 0x59, 0xa6, 0x34, 0x44, 0x41, 0x1f, 0xc0, 0xb2, 0x8b, 0x3b, 0x1d, 0xd2, 0xb7, + 0x35, 0xdb, 0x21, 0x87, 0x66, 0x0f, 0xf3, 0xe8, 0x9f, 0x63, 0xd1, 0x8f, 0xc4, 0xbb, 0x5d, 0xfe, + 0x8a, 0x7e, 0x07, 0xca, 0x2f, 0xf2, 0x70, 0x9a, 0x79, 0x62, 0x97, 0x18, 0x62, 0x9a, 0x44, 0x92, + 0xb9, 0x04, 0x95, 0x0e, 0x33, 0x48, 0xb3, 0x75, 0x07, 0x5b, 0x9e, 0xf8, 0xc8, 0xe6, 0x39, 0x71, + 0x97, 0xd1, 0xd0, 0x67, 0x50, 0x75, 0xc5, 0xac, 0x6a, 0x1d, 0x3e, 0xad, 0xc2, 0xe7, 0x37, 0x93, + 0xde, 0x1a, 0x12, 0x0b, 0xea, 0xa2, 0x9b, 0x08, 0x8e, 0x39, 0xf7, 0xd8, 0xed, 0x78, 0x3d, 0x9e, + 0xad, 0xca, 0x1b, 0xdf, 0xcb, 0x50, 0x18, 0x37, 0x7c, 0xbd, 0xcd, 0xc5, 0xb6, 0x2d, 0xcf, 0x39, + 0x56, 0xa5, 0x92, 0xfa, 0x3d, 0x98, 0x0f, 0xbf, 0x40, 0x55, 0x28, 0xbc, 0xc4, 0xc7, 0x62, 0x50, + 0xf4, 0x31, 0x08, 0x62, 0x9e, 0x2b, 0x78, 0xe3, 0x5e, 0xfe, 0x77, 0x72, 0x8a, 0x03, 0x28, 0xe8, + 0xe5, 0x05, 0xf6, 0x74, 0x43, 0xf7, 0x74, 0x84, 0x60, 0x9a, 0x2d, 0x03, 0x5c, 0x05, 0x7b, 0xa6, + 0x5a, 0x07, 0xe2, 0xe3, 0x2b, 0xa9, 0xf4, 0x11, 0x9d, 0x87, 0x92, 0x1f, 0xa8, 0x62, 0x2d, 0x08, + 0x08, 0x34, 0x27, 0xeb, 0x9e, 0x87, 0xfb, 0xb6, 0xc7, 0x42, 0xa4, 0xa2, 0xca, 0xa6, 0xf2, 0xdf, + 0xd3, 0x50, 0x4d, 0xcc, 0xc9, 0x23, 0x28, 0xf6, 0x45, 0xf7, 0xe2, 0x43, 0x79, 0x37, 0x25, 0x31, + 0x27, 0x4c, 0x55, 0x7d, 0x29, 0x9a, 0xf7, 0x68, 0x0e, 0x0c, 0xad, 0x5f, 0x7e, 0x9b, 0xce, 0x78, + 0x8f, 0x74, 0x35, 0xc3, 0x74, 0x70, 0xc7, 0x23, 0xce, 0xb1, 0x30, 0x77, 0xbe, 0x47, 0xba, 0x5b, + 0x92, 0x86, 0xee, 0x01, 0x18, 0x96, 0x4b, 0x27, 0xfb, 0xd0, 0xec, 0x32, 0xa3, 0xcb, 0x1b, 0xe7, + 0x92, 0x46, 0xf8, 0x8b, 0x95, 0x5a, 0x32, 0x2c, 0x57, 0x98, 0xff, 0x18, 0x2a, 0x34, 0xe7, 0x6b, + 0x7d, 0xbe, 0xce, 0xf0, 0x48, 0x2f, 0x6f, 0x5c, 0x48, 0x1b, 0x83, 0xbf, 0x1a, 0xa9, 0xf3, 0x76, + 0xd0, 0x70, 0xd1, 0x13, 0x98, 0x65, 0xc9, 0xd7, 0xad, 0xcd, 0x32, 0xe1, 0xf5, 0x61, 0x0e, 0x10, + 0x11, 0xf1, 0x9c, 0x09, 0xf0, 0x80, 0x10, 0xd2, 0x68, 0x1f, 0xca, 0xba, 0x65, 0x11, 0x4f, 0xe7, + 0x89, 0x62, 0x8e, 0x29, 0xfb, 0x70, 0x0c, 0x65, 0x8d, 0x40, 0x8a, 0x6b, 0x0c, 0xeb, 0x41, 0x3f, + 0x80, 0x19, 0x96, 0x49, 0x6a, 0x45, 0xe6, 0x99, 0xab, 0x63, 0x06, 0xad, 0xca, 0xa5, 0xea, 0x77, + 0xa1, 0x1c, 0x32, 0x76, 0x92, 0x20, 0xad, 0x3f, 0x80, 0x6a, 0xdc, 0xb4, 0x89, 0x82, 0x5c, 0x85, + 0x65, 0x75, 0x60, 0x05, 0x86, 0xc9, 0xea, 0xe9, 0x1e, 0xcc, 0x8a, 0xc9, 0xe6, 0x11, 0xa7, 0x8c, + 0xf6, 0x91, 0x2a, 0x24, 0x94, 0x1f, 0xc0, 0xe9, 0x98, 0x4e, 0x51, 0x64, 0xbd, 0x0b, 0x0b, 0x36, + 0x31, 0x34, 0x97, 0x93, 0x35, 0xd3, 0x90, 0xd9, 0xc5, 0xf6, 0x79, 0x9b, 0x06, 0x15, 0x6f, 0x7b, + 0xc4, 0x4e, 0xda, 0x34, 0x9e, 0x78, 0x0d, 0xce, 0xc4, 0xc5, 0x79, 0xf7, 0xca, 0x43, 0x58, 0x51, + 0x71, 0x9f, 0xbc, 0xc2, 0x27, 0x55, 0x5d, 0x87, 0x5a, 0x52, 0x81, 0x50, 0xfe, 0x39, 0xac, 0x04, + 0xd4, 0xb6, 0xa7, 0x7b, 0x03, 0x77, 0x22, 0xe5, 0xa2, 0x02, 0x3d, 0x20, 0x2e, 0x9f, 0xa5, 0xa2, + 0x2a, 0x9b, 0xca, 0xf5, 0xb0, 0xea, 0x16, 0x5f, 0xf0, 0x79, 0x0f, 0x68, 0x01, 0xf2, 0xa6, 0x2d, + 0xd4, 0xe5, 0x4d, 0x5b, 0x79, 0x06, 0x25, 0x7f, 0xc5, 0x44, 0xf7, 0x83, 0xd2, 0x2f, 0x3f, 0xee, + 0xfa, 0xea, 0x57, 0x87, 0x7b, 0x89, 0x15, 0x42, 0x74, 0x79, 0x1f, 0xc0, 0xcf, 0x64, 0x72, 0xe1, + 0x3e, 0x37, 0x44, 0xb1, 0x1a, 0x62, 0x57, 0xfe, 0x35, 0x92, 0xdf, 0x42, 0x83, 0x30, 0xfc, 0x41, + 0x18, 0x91, 0x7c, 0x97, 0x3f, 0x51, 0xbe, 0xfb, 0x08, 0x66, 0x5c, 0x4f, 0xf7, 0xb0, 0x28, 0x6e, + 0xd6, 0x86, 0x89, 0x53, 0x23, 0xb0, 0xca, 0xf9, 0xd1, 0x05, 0x80, 0x8e, 0x83, 0x75, 0x0f, 0x1b, + 0x9a, 0xce, 0x93, 0x73, 0x41, 0x2d, 0x09, 0x4a, 0xc3, 0x43, 0x9b, 0x41, 0x81, 0x36, 0xc3, 0x0c, + 0xbb, 0x3e, 0x4c, 0x73, 0x64, 0xaa, 0x82, 0x52, 0xcd, 0x4f, 0x16, 0xb3, 0x63, 0x26, 0x0b, 0xa1, + 0x80, 0x4b, 0x85, 0x52, 0xe1, 0xdc, 0xe8, 0x54, 0xc8, 0x45, 0xc7, 0x49, 0x85, 0xc5, 0xd1, 0xa9, + 0x50, 0x28, 0x1b, 0x9a, 0x0a, 0xbf, 0xcd, 0x5c, 0xf6, 0x2f, 0x39, 0xa8, 0x25, 0xbf, 0x41, 0x91, + 0x7b, 0xee, 0xc1, 0xac, 0xcb, 0x28, 0xe3, 0x24, 0x34, 0x21, 0x2b, 0x24, 0xd0, 0x33, 0x98, 0x36, + 0xad, 0x43, 0xc2, 0xf6, 0x56, 0xa9, 0x25, 0x49, 0x56, 0xaf, 0xeb, 0x4d, 0xeb, 0x90, 0x70, 0x27, + 0x31, 0x0d, 0xf5, 0x8f, 0xa0, 0xe4, 0x93, 0x26, 0x1a, 0xdb, 0x0e, 0x2c, 0xc7, 0x42, 0x96, 0xd7, + 0xe0, 0x7e, 0xa4, 0xe7, 0x26, 0x8b, 0x74, 0xe5, 0x67, 0xf9, 0xf0, 0x97, 0xf8, 0xc4, 0xec, 0x79, + 0xd8, 0x49, 0x7c, 0x89, 0x1f, 0x4b, 0xed, 0xfc, 0x33, 0xbc, 0x32, 0x52, 0x3b, 0xaf, 0x8a, 0xc5, + 0xc7, 0xf4, 0x63, 0x58, 0x60, 0xb1, 0xa6, 0xb9, 0xb8, 0xc7, 0xea, 0x08, 0x51, 0xd3, 0x7d, 0x7f, + 0x98, 0x1a, 0x6e, 0x09, 0x8f, 0xd8, 0xb6, 0x90, 0xe3, 0x1e, 0xac, 0xf4, 0xc2, 0xb4, 0xfa, 0x23, + 0x40, 0x49, 0xa6, 0x89, 0x7c, 0xda, 0xa6, 0x29, 0x8e, 0x6e, 0x40, 0x53, 0x16, 0xbf, 0x43, 0x66, + 0xc6, 0x38, 0xb1, 0xc2, 0x0d, 0x56, 0x85, 0x84, 0xf2, 0xcb, 0x02, 0x40, 0xf0, 0xf2, 0xff, 0x51, + 0x6e, 0x7b, 0xe4, 0xe7, 0x15, 0x5e, 0x9f, 0x5d, 0x1b, 0xa6, 0x38, 0x35, 0xa3, 0xec, 0x44, 0x33, + 0x0a, 0xaf, 0xd4, 0x6e, 0x0e, 0x55, 0xf3, 0x9d, 0xcd, 0x25, 0xcf, 0xe1, 0x4c, 0x3c, 0x36, 0x44, + 0x22, 0xd9, 0x80, 0x19, 0xd3, 0xc3, 0x7d, 0x0e, 0xc2, 0xa4, 0xee, 0x0f, 0x43, 0x42, 0x9c, 0x55, + 0x59, 0x83, 0x52, 0xb3, 0xaf, 0x77, 0x71, 0xdb, 0xc6, 0x1d, 0xda, 0xa9, 0x49, 0x1b, 0xc2, 0x10, + 0xde, 0x50, 0x36, 0xa0, 0xf8, 0x43, 0x7c, 0xcc, 0x3f, 0xea, 0x31, 0x0d, 0x55, 0xfe, 0x24, 0x0f, + 0x2b, 0x6c, 0xad, 0xd8, 0x94, 0x10, 0x88, 0x8a, 0x5d, 0x32, 0x70, 0x3a, 0xd8, 0x65, 0xb3, 0x6d, + 0x0f, 0x34, 0x1b, 0x3b, 0x26, 0x31, 0xc4, 0x0e, 0xbd, 0xd4, 0xb1, 0x07, 0xbb, 0x8c, 0x80, 0xce, + 0x01, 0x6d, 0x68, 0x5f, 0x0e, 0x88, 0x08, 0xc4, 0x82, 0x5a, 0xec, 0xd8, 0x83, 0xdf, 0xa3, 0x6d, + 0x29, 0xeb, 0x1e, 0xe9, 0x0e, 0x76, 0x59, 0x9c, 0x71, 0xd9, 0x36, 0x23, 0xa0, 0xdb, 0x70, 0xba, + 0x8f, 0xfb, 0xc4, 0x39, 0xd6, 0x7a, 0x66, 0xdf, 0xf4, 0x34, 0xd3, 0xd2, 0x0e, 0x8e, 0x3d, 0xec, + 0x8a, 0x98, 0x42, 0xfc, 0xe5, 0x73, 0xfa, 0xae, 0x69, 0x3d, 0xa6, 0x6f, 0x90, 0x02, 0x15, 0x42, + 0xfa, 0x9a, 0xdb, 0x21, 0x0e, 0xd6, 0x74, 0xe3, 0xa7, 0x6c, 0xf9, 0x2c, 0xa8, 0x65, 0x42, 0xfa, + 0x6d, 0x4a, 0x6b, 0x18, 0x3f, 0x45, 0xef, 0x40, 0xb9, 0x63, 0x0f, 0x5c, 0xec, 0x69, 0xf4, 0x0f, + 0x5b, 0x1d, 0x4b, 0x2a, 0x70, 0xd2, 0xa6, 0x3d, 0x70, 0x43, 0x0c, 0x7d, 0xea, 0xff, 0xb9, 0x30, + 0xc3, 0x0b, 0xea, 0x66, 0x1d, 0x2a, 0x91, 0x1d, 0x3e, 0xdd, 0xac, 0xb1, 0xad, 0xbc, 0xd8, 0xac, + 0xd1, 0x67, 0x4a, 0x73, 0x48, 0x4f, 0x7a, 0x92, 0x3d, 0x53, 0x9a, 0x77, 0x6c, 0xcb, 0x9d, 0x1a, + 0x7b, 0xa6, 0x2e, 0xef, 0xe1, 0x57, 0x02, 0x05, 0x2a, 0xa9, 0xbc, 0xa1, 0x18, 0x00, 0x9b, 0xba, + 0xad, 0x1f, 0x98, 0x3d, 0xd3, 0x3b, 0x46, 0xd7, 0xa1, 0xaa, 0x1b, 0x86, 0xd6, 0x91, 0x14, 0x13, + 0x4b, 0x6c, 0x6e, 0x51, 0x37, 0x8c, 0xcd, 0x10, 0x19, 0xbd, 0x07, 0x4b, 0x86, 0x43, 0xec, 0x28, + 0x2f, 0x07, 0xeb, 0xaa, 0xf4, 0x45, 0x98, 0x99, 0x96, 0x49, 0x17, 0xa2, 0x13, 0x1b, 0x47, 0x51, + 0x1e, 0xc1, 0x7c, 0xac, 0xd7, 0x0c, 0xb0, 0x22, 0xb0, 0x56, 0x8d, 0x48, 0xc4, 0x50, 0x85, 0x7c, + 0x02, 0x55, 0x48, 0xc5, 0x69, 0x0a, 0x6f, 0x15, 0xa7, 0x99, 0x7e, 0x2b, 0x38, 0xcd, 0xcc, 0x64, + 0x38, 0xcd, 0x15, 0x06, 0xd6, 0x4a, 0x69, 0xb6, 0x25, 0xe6, 0xa1, 0x56, 0xf1, 0x79, 0x2c, 0x09, + 0xea, 0xc6, 0xf0, 0x9c, 0xb9, 0x49, 0xf0, 0x9c, 0x62, 0x26, 0x9e, 0x43, 0xa3, 0xc6, 0xb6, 0x75, + 0xa7, 0x4f, 0x1c, 0x09, 0xd8, 0xd4, 0x4a, 0xcc, 0x84, 0x45, 0x49, 0x17, 0x60, 0x4d, 0x26, 0xb4, + 0x03, 0x59, 0xd0, 0x0e, 0xba, 0x08, 0xf3, 0x16, 0xd1, 0x2c, 0xfc, 0x5a, 0xa3, 0x73, 0xe9, 0xd6, + 0xca, 0x7c, 0x62, 0x2d, 0xd2, 0xc2, 0xaf, 0x77, 0x29, 0x45, 0xf9, 0xbb, 0x1c, 0x2c, 0x47, 0x83, + 0x4b, 0x6c, 0xd4, 0x9f, 0x42, 0xc9, 0x91, 0xf9, 0x43, 0x04, 0xd4, 0xf5, 0x8c, 0xe2, 0x34, 0x99, + 0x70, 0xd4, 0x40, 0x16, 0xfd, 0x28, 0x13, 0x1f, 0xba, 0x35, 0x4a, 0xdf, 0x28, 0x84, 0x48, 0xe9, + 0xc0, 0x99, 0x4f, 0x4d, 0xcb, 0x20, 0xaf, 0xdd, 0xb8, 0xf9, 0xcd, 0xa4, 0xf9, 0xef, 0x25, 0xbb, + 0x8b, 0x0b, 0xa7, 0x0d, 0x40, 0xf9, 0xab, 0x1c, 0x9c, 0xcd, 0x64, 0x8c, 0xa5, 0xc7, 0x5c, 0x3c, + 0x3d, 0x8a, 0xd4, 0xda, 0x21, 0x03, 0xcb, 0x0b, 0xa5, 0xd6, 0x4d, 0x86, 0x62, 0xf3, 0x1c, 0xa6, + 0xf5, 0xf5, 0x37, 0x66, 0x7f, 0xd0, 0x17, 0xb9, 0x95, 0xaa, 0x7b, 0xc1, 0x29, 0x27, 0x48, 0xae, + 0x4a, 0x03, 0x96, 0x7c, 0x2b, 0x87, 0xe2, 0x54, 0x21, 0xdc, 0x29, 0x1f, 0xc5, 0x9d, 0x2c, 0x98, + 0xdd, 0xc2, 0xaf, 0xcc, 0x0e, 0x7e, 0x2b, 0x30, 0xfb, 0x45, 0x28, 0xdb, 0xd8, 0xe9, 0x9b, 0xae, + 0xeb, 0x27, 0x8d, 0x92, 0x1a, 0x26, 0x29, 0xff, 0x39, 0x0b, 0x8b, 0xf1, 0xf9, 0x7b, 0x98, 0x80, + 0xb9, 0x2e, 0xa5, 0xa4, 0xb3, 0xf8, 0x40, 0x43, 0x95, 0xd1, 0x6d, 0xb9, 0xb0, 0xe6, 0xb3, 0x36, + 0xa5, 0xfe, 0x22, 0x2c, 0x56, 0x5d, 0xea, 0x91, 0x0e, 0xe9, 0xf7, 0x75, 0xcb, 0x90, 0xa7, 0x23, + 0xa2, 0x49, 0xfd, 0xa7, 0x3b, 0x5d, 0xea, 0x76, 0x4a, 0x66, 0xcf, 0x74, 0xf2, 0xe8, 0x0e, 0xce, + 0xb4, 0x18, 0x5c, 0xc6, 0x12, 0x4f, 0x49, 0x05, 0x41, 0xda, 0x32, 0x1d, 0xb4, 0x0e, 0xd3, 0xd8, + 0x7a, 0x25, 0x4b, 0x9f, 0x94, 0xe3, 0x13, 0xb9, 0xc4, 0xab, 0x8c, 0x0f, 0xdd, 0x82, 0xd9, 0x3e, + 0x0d, 0x0b, 0xb9, 0x97, 0x5b, 0xc9, 0x38, 0x45, 0x50, 0x05, 0x1b, 0xda, 0x80, 0x39, 0x83, 0xcd, + 0x93, 0xdc, 0xb0, 0xd5, 0x52, 0x40, 0x38, 0xc6, 0xa0, 0x4a, 0x46, 0xb4, 0xed, 0x17, 0x76, 0xa5, + 0xac, 0x8a, 0x2c, 0x36, 0x15, 0xa9, 0xd5, 0xdd, 0x5e, 0xb4, 0xba, 0x03, 0xa6, 0x6b, 0x63, 0xb4, + 0xae, 0xe1, 0xc8, 0xd9, 0x59, 0x28, 0xf6, 0x48, 0x97, 0x87, 0x51, 0x99, 0x1f, 0xbc, 0xf5, 0x48, + 0x97, 0x45, 0xd1, 0x32, 0x2d, 0x74, 0x0d, 0xd3, 0xaa, 0xcd, 0xb3, 0x14, 0xc6, 0x1b, 0xf4, 0xe3, + 0x63, 0x0f, 0x1a, 0xb1, 0x3a, 0xb8, 0x56, 0x61, 0xaf, 0x4a, 0x8c, 0xb2, 0x63, 0x75, 0x58, 0xe9, + 0xe4, 0x79, 0xc7, 0xb5, 0x05, 0x46, 0xa7, 0x8f, 0x74, 0x0f, 0xc3, 0xb7, 0xdb, 0x8b, 0x59, 0x7b, + 0x98, 0xb4, 0x64, 0x28, 0x77, 0xdb, 0x8f, 0x61, 0xee, 0x35, 0x4f, 0x04, 0xb5, 0x2a, 0x93, 0xbf, + 0x36, 0x3a, 0xa5, 0x08, 0x0d, 0x52, 0xf0, 0xdb, 0x2c, 0x63, 0x7f, 0x99, 0x83, 0x33, 0x9b, 0xac, + 0xc4, 0x0f, 0xe5, 0xb1, 0x49, 0x50, 0xa9, 0xbb, 0x3e, 0x0e, 0x98, 0x09, 0x21, 0xc5, 0xc7, 0x2d, + 0x04, 0x50, 0x13, 0x16, 0xa4, 0x72, 0xa1, 0xa2, 0x30, 0x36, 0x94, 0x58, 0x71, 0xc3, 0x4d, 0xe5, + 0x63, 0x58, 0x49, 0x8c, 0x42, 0x94, 0xe3, 0x6b, 0x30, 0x1f, 0xe4, 0x2b, 0x7f, 0x10, 0x65, 0x9f, + 0xd6, 0x34, 0x94, 0x7b, 0x70, 0xba, 0xed, 0xe9, 0x8e, 0x97, 0x70, 0xc1, 0x18, 0xb2, 0x0c, 0x4d, + 0x8c, 0xca, 0x0a, 0xc0, 0xaf, 0x0d, 0xcb, 0x6d, 0x8f, 0xd8, 0x27, 0x50, 0x4a, 0xb3, 0x0e, 0x1d, + 0x3f, 0x19, 0xc8, 0xf5, 0x41, 0x36, 0x95, 0x15, 0x8e, 0x7d, 0x26, 0x7b, 0xbb, 0x0f, 0x67, 0x38, + 0xf4, 0x78, 0x92, 0x41, 0x9c, 0x95, 0xc0, 0x67, 0x52, 0xef, 0x0b, 0x38, 0x15, 0xac, 0xbd, 0x01, + 0xac, 0x70, 0x27, 0x0a, 0x2b, 0x5c, 0x1c, 0x32, 0xeb, 0x11, 0x54, 0xe1, 0x2f, 0xf2, 0xa1, 0xbc, + 0x9e, 0x01, 0x2a, 0xdc, 0x8f, 0x82, 0x0a, 0x97, 0x47, 0xe9, 0x8e, 0x60, 0x0a, 0xc9, 0xa8, 0x2d, + 0xa4, 0x44, 0xed, 0x17, 0x09, 0xe4, 0x61, 0x3a, 0x0b, 0xba, 0x89, 0x59, 0xfb, 0x8d, 0x00, 0x0f, + 0x2a, 0x07, 0x1e, 0xfc, 0xae, 0x7d, 0xa4, 0xf8, 0x6e, 0x0c, 0x78, 0x58, 0x1b, 0x69, 0xaf, 0x8f, + 0x3b, 0xfc, 0xcd, 0x34, 0x94, 0xfc, 0x77, 0x09, 0x9f, 0x27, 0xdd, 0x96, 0x4f, 0x71, 0x5b, 0x78, + 0x05, 0x2e, 0x7c, 0xad, 0x15, 0x78, 0x7a, 0xec, 0x15, 0xf8, 0x1c, 0x94, 0xd8, 0x83, 0xe6, 0xe0, + 0x43, 0xb1, 0xa2, 0x16, 0x19, 0x41, 0xc5, 0x87, 0x41, 0x18, 0xce, 0x4e, 0x14, 0x86, 0x31, 0xa8, + 0x63, 0x2e, 0x0e, 0x75, 0x3c, 0xf4, 0x57, 0x44, 0xbe, 0x88, 0x5e, 0x1d, 0xa2, 0x37, 0x75, 0x2d, + 0x6c, 0x45, 0xd7, 0x42, 0xbe, 0xae, 0xbe, 0x3f, 0x4c, 0xcb, 0x77, 0x16, 0xe8, 0xd8, 0xe7, 0x40, + 0x47, 0x38, 0x16, 0x45, 0x66, 0xbd, 0x0f, 0xe0, 0x27, 0x11, 0x89, 0x76, 0x9c, 0x1b, 0x32, 0x46, + 0x35, 0xc4, 0x4e, 0xd5, 0x46, 0xa6, 0x26, 0x38, 0x0d, 0x19, 0x2f, 0x3f, 0x66, 0x1c, 0x85, 0xfc, + 0xef, 0x4c, 0x28, 0xbf, 0x64, 0x1c, 0x1f, 0x3c, 0x4c, 0x40, 0x6c, 0x13, 0x46, 0xf1, 0x9d, 0x28, + 0xc2, 0x76, 0xc2, 0xa8, 0x4b, 0x00, 0x6c, 0xac, 0x72, 0xd1, 0x1d, 0xf1, 0x9a, 0x03, 0x20, 0x25, + 0x41, 0x69, 0xb0, 0x9d, 0xc1, 0xa1, 0x69, 0x99, 0xee, 0x11, 0x7f, 0x3f, 0xcb, 0x77, 0x06, 0x92, + 0xd4, 0x60, 0x17, 0x68, 0xf0, 0x1b, 0xd3, 0xd3, 0x3a, 0xc4, 0xc0, 0x2c, 0xa6, 0x67, 0xd4, 0x22, + 0x25, 0x6c, 0x12, 0x03, 0x07, 0x5f, 0x5e, 0xf1, 0x64, 0x5f, 0x5e, 0x29, 0xf6, 0xe5, 0x9d, 0x81, + 0x59, 0x07, 0xeb, 0x2e, 0xb1, 0xc4, 0x56, 0x53, 0xb4, 0xe8, 0xd4, 0xf4, 0xb1, 0xeb, 0xd2, 0x9e, + 0x44, 0xb9, 0x26, 0x9a, 0xa1, 0x32, 0x73, 0x7e, 0x64, 0x99, 0x39, 0xe4, 0x58, 0x22, 0x56, 0x66, + 0x56, 0x46, 0x96, 0x99, 0xe3, 0x9c, 0x4a, 0x84, 0x0a, 0xed, 0x85, 0xf1, 0x0a, 0xed, 0x70, 0x5d, + 0xba, 0x18, 0xa9, 0x4b, 0xbf, 0xcd, 0x8f, 0xf5, 0xd7, 0x39, 0x58, 0x49, 0x7c, 0x56, 0xe2, 0x73, + 0xbd, 0x1b, 0x3b, 0xe0, 0x58, 0x1b, 0xe9, 0x33, 0xff, 0x7c, 0xe3, 0x69, 0xe4, 0x7c, 0xe3, 0xc3, + 0xd1, 0x82, 0x6f, 0xfd, 0x78, 0xe3, 0x8f, 0x72, 0xf0, 0xce, 0xbe, 0x6d, 0xc4, 0x2a, 0x3c, 0xb1, + 0x31, 0x1f, 0x3f, 0x71, 0x3c, 0x94, 0xb5, 0x7e, 0x7e, 0x52, 0xf4, 0x82, 0xcb, 0x29, 0x0a, 0x5c, + 0xcc, 0x36, 0x43, 0x94, 0x4c, 0x3f, 0x81, 0xc5, 0xed, 0x37, 0xb8, 0xd3, 0x3e, 0xb6, 0x3a, 0x13, + 0x98, 0x56, 0x85, 0x42, 0xa7, 0x6f, 0x08, 0xc4, 0x8f, 0x3e, 0x86, 0xab, 0xc0, 0x42, 0xb4, 0x0a, + 0xd4, 0xa0, 0x1a, 0xf4, 0x20, 0xa6, 0xf7, 0x0c, 0x9d, 0x5e, 0x83, 0x32, 0x53, 0xe5, 0xf3, 0xaa, + 0x68, 0x09, 0x3a, 0x76, 0x1c, 0x36, 0x66, 0x4e, 0xc7, 0x8e, 0x13, 0xcd, 0x16, 0x85, 0x68, 0xb6, + 0x50, 0xfe, 0x2c, 0x07, 0x65, 0xda, 0xc3, 0xd7, 0xb2, 0x5f, 0x6c, 0xb5, 0x0a, 0xc1, 0x56, 0xcb, + 0xdf, 0xb1, 0x4d, 0x87, 0x77, 0x6c, 0x81, 0xe5, 0x33, 0x8c, 0x9c, 0xb4, 0x7c, 0xd6, 0xa7, 0x63, + 0xc7, 0x51, 0x2e, 0xc2, 0x3c, 0xb7, 0x4d, 0x8c, 0xbc, 0x0a, 0x85, 0x81, 0xd3, 0x93, 0x71, 0x34, + 0x70, 0x7a, 0xca, 0x1f, 0xe7, 0xa0, 0xd2, 0xf0, 0x3c, 0xbd, 0x73, 0x34, 0xc1, 0x00, 0x7c, 0xe3, + 0xf2, 0x61, 0xe3, 0x92, 0x83, 0x08, 0xcc, 0x9d, 0xce, 0x30, 0x77, 0x26, 0x62, 0xae, 0x02, 0x0b, + 0xd2, 0x96, 0x4c, 0x83, 0x5b, 0x80, 0x76, 0x89, 0xe3, 0x3d, 0x21, 0xce, 0x6b, 0xdd, 0x31, 0x26, + 0xdb, 0x81, 0x21, 0x98, 0x16, 0x97, 0x2a, 0x0b, 0xd7, 0x66, 0x54, 0xf6, 0xac, 0x5c, 0x85, 0x53, + 0x11, 0x7d, 0x99, 0x1d, 0x3f, 0x82, 0x32, 0xcb, 0xfb, 0xa2, 0x14, 0xbf, 0x1d, 0x3e, 0x7a, 0x18, + 0x6b, 0x95, 0x50, 0x7e, 0x17, 0x96, 0x68, 0x7d, 0xc0, 0xe8, 0xfe, 0xa7, 0xf8, 0xfd, 0x58, 0x9d, + 0x7a, 0x21, 0x43, 0x51, 0xac, 0x46, 0xfd, 0xdb, 0x1c, 0xcc, 0x30, 0x7a, 0x62, 0xcd, 0x3e, 0x07, + 0x25, 0x07, 0xdb, 0x44, 0xf3, 0xf4, 0xae, 0x7f, 0x85, 0x95, 0x12, 0xf6, 0xf4, 0xae, 0xcb, 0x6e, + 0xe0, 0xd2, 0x97, 0x86, 0xd9, 0xc5, 0xae, 0x27, 0xef, 0xb1, 0x96, 0x29, 0x6d, 0x8b, 0x93, 0xa8, + 0x93, 0x5c, 0xf3, 0xf7, 0x79, 0xdd, 0x39, 0xad, 0xb2, 0x67, 0xb4, 0xce, 0x6f, 0x65, 0x8d, 0x03, + 0x0f, 0xb3, 0x3b, 0x5b, 0x75, 0x28, 0xc6, 0x10, 0x61, 0xbf, 0xad, 0x6c, 0x03, 0x0a, 0x7b, 0x41, + 0xf8, 0xfb, 0x16, 0xcc, 0x32, 0x27, 0xc9, 0xea, 0x68, 0x25, 0xc3, 0x0d, 0xaa, 0x60, 0x53, 0x74, + 0x40, 0xdc, 0xc1, 0x91, 0x8a, 0x68, 0xf2, 0x59, 0x19, 0x52, 0x21, 0xfd, 0x43, 0x0e, 0x4e, 0x45, + 0xfa, 0x10, 0xb6, 0xde, 0x8c, 0x76, 0x92, 0x69, 0xaa, 0xe8, 0x60, 0x33, 0xb2, 0x24, 0xdc, 0xca, + 0x32, 0xe9, 0xb7, 0xb4, 0x1c, 0xfc, 0x63, 0x0e, 0xa0, 0x31, 0xf0, 0x8e, 0x04, 0x32, 0x18, 0x9e, + 0x99, 0x5c, 0x74, 0x66, 0xe8, 0x3b, 0x5b, 0x77, 0xdd, 0xd7, 0xc4, 0x91, 0x7b, 0x1a, 0xbf, 0xcd, + 0x30, 0xbc, 0x81, 0x77, 0x24, 0x8f, 0x75, 0xe8, 0x33, 0xba, 0x0c, 0x0b, 0xfc, 0xda, 0xb4, 0xa6, + 0x1b, 0x86, 0x83, 0x5d, 0x57, 0x9c, 0xef, 0x54, 0x38, 0xb5, 0xc1, 0x89, 0x94, 0xcd, 0x34, 0xb0, + 0xe5, 0x99, 0xde, 0xb1, 0xe6, 0x91, 0x97, 0xd8, 0x12, 0x7b, 0x93, 0x8a, 0xa4, 0xee, 0x51, 0x22, + 0x65, 0x73, 0x70, 0xd7, 0x74, 0x3d, 0x47, 0xb2, 0xc9, 0xb3, 0x04, 0x41, 0x65, 0x6c, 0x74, 0x52, + 0xaa, 0xbb, 0x83, 0x5e, 0x8f, 0xbb, 0xf8, 0xe4, 0xd3, 0xfe, 0x81, 0x18, 0x50, 0x3e, 0x2b, 0xa6, + 0x03, 0xa7, 0x89, 0xe1, 0xbe, 0x45, 0x10, 0xe6, 0x03, 0x58, 0x0a, 0x8d, 0x41, 0x84, 0x55, 0xa4, + 0x88, 0xcc, 0x45, 0x8b, 0x48, 0xe5, 0x29, 0x20, 0x8e, 0x3b, 0x7c, 0xcd, 0x71, 0x2b, 0xa7, 0xe1, + 0x54, 0x44, 0x91, 0x58, 0x89, 0x6f, 0x40, 0x45, 0xdc, 0xb1, 0x11, 0x81, 0x72, 0x16, 0x8a, 0x34, + 0xa3, 0x76, 0x4c, 0x43, 0x9e, 0xf9, 0xcd, 0xd9, 0xc4, 0xd8, 0x34, 0x0d, 0x47, 0xf9, 0x14, 0x2a, + 0x2a, 0xef, 0x47, 0xf0, 0x3e, 0x81, 0x05, 0x71, 0x23, 0x47, 0x8b, 0xdc, 0x74, 0x4b, 0xbb, 0x09, + 0x1d, 0xee, 0x44, 0xad, 0x58, 0xe1, 0xa6, 0x62, 0x40, 0x9d, 0x97, 0x0c, 0x11, 0xf5, 0x72, 0xb0, + 0x4f, 0x40, 0xfe, 0x06, 0x60, 0x64, 0x2f, 0x51, 0xf9, 0x8a, 0x13, 0x6e, 0x2a, 0x17, 0xe0, 0x5c, + 0x6a, 0x2f, 0xc2, 0x13, 0x36, 0x54, 0x83, 0x17, 0x86, 0x29, 0x0f, 0x3f, 0xd9, 0xa1, 0x66, 0x2e, + 0x74, 0xa8, 0x79, 0xc6, 0x2f, 0x12, 0xf3, 0x72, 0x11, 0x63, 0x15, 0x60, 0x50, 0xee, 0x17, 0xb2, + 0xca, 0xfd, 0xe9, 0x48, 0xb9, 0xaf, 0xb4, 0x7d, 0x7f, 0x8a, 0x6d, 0xd8, 0x63, 0xb6, 0x5d, 0xe4, + 0x7d, 0xcb, 0x84, 0xa8, 0x0c, 0x1b, 0x25, 0x67, 0x55, 0x43, 0x52, 0xca, 0x75, 0xa8, 0x44, 0x53, + 0x63, 0x28, 0xcf, 0xe5, 0x12, 0x79, 0x6e, 0x21, 0x96, 0xe2, 0x3e, 0x8a, 0x55, 0xc0, 0xd9, 0x3e, + 0x8e, 0xd5, 0xbf, 0x0f, 0x22, 0xc9, 0xee, 0x46, 0xca, 0x79, 0xe4, 0x6f, 0x29, 0xcf, 0x2d, 0x8b, + 0xf5, 0xe0, 0x89, 0x4b, 0xe5, 0xc5, 0xa0, 0x95, 0x4b, 0x50, 0xde, 0xcf, 0xba, 0x66, 0x3f, 0x2d, + 0xcf, 0xfe, 0xef, 0xc0, 0xf2, 0x13, 0xb3, 0x87, 0xdd, 0x63, 0xd7, 0xc3, 0xfd, 0x26, 0x4b, 0x4a, + 0x87, 0x26, 0x76, 0xd0, 0x2a, 0x00, 0xdb, 0xc2, 0xd8, 0xc4, 0xf4, 0x6f, 0x6f, 0x87, 0x28, 0xca, + 0x7f, 0xe5, 0x60, 0x31, 0x10, 0xdc, 0x67, 0x5b, 0xb7, 0xf3, 0x50, 0xa2, 0xe3, 0x75, 0x3d, 0xbd, + 0x6f, 0xcb, 0xf3, 0x2c, 0x9f, 0x80, 0xee, 0xc3, 0xcc, 0xa1, 0x2b, 0x21, 0xa3, 0x54, 0x00, 0x3d, + 0xcd, 0x10, 0x75, 0xfa, 0xd0, 0x6d, 0x1a, 0xe8, 0x63, 0x80, 0x81, 0x8b, 0x0d, 0x71, 0x86, 0x55, + 0xc8, 0xaa, 0x16, 0xf6, 0xc3, 0x67, 0xb5, 0x54, 0x80, 0x5f, 0x1b, 0x78, 0x00, 0x65, 0xd3, 0x22, + 0x06, 0x66, 0x67, 0xb5, 0x86, 0x40, 0x95, 0x46, 0x88, 0x03, 0x97, 0xd8, 0x77, 0xb1, 0xa1, 0x60, + 0xb1, 0x16, 0x4a, 0xff, 0x8a, 0x40, 0x69, 0xc1, 0x12, 0x4f, 0x5a, 0x87, 0xbe, 0xe1, 0x32, 0x62, + 0xd7, 0x86, 0x8d, 0x8e, 0x79, 0x4b, 0xad, 0x9a, 0xa2, 0xb4, 0x91, 0xa2, 0xca, 0x3d, 0x38, 0x1d, + 0xd9, 0x21, 0x4d, 0xb0, 0x65, 0x51, 0x76, 0x63, 0x40, 0x49, 0x10, 0xce, 0x02, 0x86, 0x90, 0xd1, + 0x3c, 0x0a, 0x86, 0x70, 0x39, 0x0c, 0xe1, 0x2a, 0x5f, 0xc0, 0xd9, 0x08, 0xa2, 0x13, 0xb1, 0xe8, + 0x41, 0xac, 0x72, 0xbb, 0x32, 0x4a, 0x6b, 0xac, 0x84, 0xfb, 0x9f, 0x1c, 0x2c, 0xa7, 0x31, 0x9c, + 0x10, 0x71, 0xfc, 0x49, 0xc6, 0x15, 0xb1, 0xbb, 0xe3, 0x99, 0xf5, 0x8d, 0xa0, 0xb5, 0x7b, 0x50, + 0x4f, 0xf3, 0x67, 0x72, 0x96, 0x0a, 0x93, 0xcc, 0xd2, 0xcf, 0x0b, 0x21, 0xe4, 0xbd, 0xe1, 0x79, + 0x8e, 0x79, 0x30, 0xa0, 0x21, 0xff, 0xd6, 0xd1, 0xac, 0xa6, 0x8f, 0xcb, 0x70, 0xd7, 0xde, 0x1e, + 0x22, 0x1e, 0xd8, 0x91, 0x8a, 0xcd, 0x7c, 0x16, 0xc5, 0x66, 0x38, 0xa6, 0x7e, 0x67, 0x3c, 0x7d, + 0xdf, 0x59, 0x00, 0xf4, 0xe7, 0x79, 0x58, 0x88, 0x4e, 0x11, 0xda, 0x06, 0xd0, 0x7d, 0xcb, 0xc5, + 0x87, 0x72, 0x79, 0xac, 0x61, 0xaa, 0x21, 0x41, 0xf4, 0x3e, 0x14, 0x3a, 0xf6, 0x40, 0xcc, 0x5a, + 0xca, 0x61, 0xf0, 0xa6, 0x3d, 0xe0, 0x19, 0x85, 0xb2, 0xd1, 0x3d, 0x15, 0x3f, 0xdb, 0xcf, 0xce, + 0x92, 0x2f, 0xd8, 0x7b, 0x2e, 0x23, 0x98, 0xd1, 0x33, 0x58, 0x78, 0xed, 0x98, 0x9e, 0x7e, 0xd0, + 0xc3, 0x5a, 0x4f, 0x3f, 0xc6, 0x8e, 0xc8, 0x92, 0x63, 0x24, 0xb2, 0x8a, 0x14, 0x7c, 0x4e, 0xe5, + 0x94, 0x3f, 0x80, 0xa2, 0xb4, 0x68, 0xc4, 0x8a, 0xb0, 0x07, 0x2b, 0x03, 0xca, 0xa6, 0xb1, 0xeb, + 0x5c, 0x96, 0x6e, 0x11, 0xcd, 0xc5, 0x74, 0x19, 0x97, 0x17, 0xcd, 0x47, 0xa4, 0xe8, 0x65, 0x26, + 0xbd, 0x49, 0x1c, 0xdc, 0xd2, 0x2d, 0xd2, 0xe6, 0xa2, 0xca, 0x2b, 0x28, 0x87, 0x06, 0x38, 0xc2, + 0x84, 0x26, 0x2c, 0xc9, 0xa3, 0x78, 0x17, 0x7b, 0x62, 0x79, 0x19, 0xab, 0xf3, 0x45, 0x21, 0xd7, + 0xc6, 0x1e, 0xbf, 0x3e, 0xf1, 0x00, 0xce, 0xaa, 0x98, 0xd8, 0xd8, 0xf2, 0xe7, 0xf3, 0x39, 0xe9, + 0x4e, 0x90, 0xc1, 0xcf, 0x43, 0x3d, 0x4d, 0x9e, 0xe7, 0x87, 0x1b, 0xe7, 0xa1, 0x28, 0x7f, 0x33, + 0x89, 0xe6, 0xa0, 0xb0, 0xb7, 0xb9, 0x5b, 0x9d, 0xa2, 0x0f, 0xfb, 0x5b, 0xbb, 0xd5, 0xdc, 0x8d, + 0x3e, 0x54, 0xe3, 0x3f, 0x13, 0x44, 0x2b, 0x70, 0x6a, 0x57, 0xdd, 0xd9, 0x6d, 0x3c, 0x6d, 0xec, + 0x35, 0x77, 0x5a, 0xda, 0xae, 0xda, 0xfc, 0xa4, 0xb1, 0xb7, 0x5d, 0x9d, 0x42, 0x6b, 0x70, 0x21, + 0xfc, 0xe2, 0xd9, 0x4e, 0x7b, 0x4f, 0xdb, 0xdb, 0xd1, 0x36, 0x77, 0x5a, 0x7b, 0x8d, 0x66, 0x6b, + 0x5b, 0xad, 0xe6, 0xd0, 0x05, 0x38, 0x1b, 0x66, 0x79, 0xdc, 0xdc, 0x6a, 0xaa, 0xdb, 0x9b, 0xf4, + 0xb9, 0xf1, 0xbc, 0x9a, 0xbf, 0x71, 0x1b, 0x2a, 0x91, 0x5f, 0xf5, 0x51, 0x43, 0x76, 0x77, 0xb6, + 0xaa, 0x53, 0xa8, 0x02, 0xa5, 0xb0, 0x9e, 0x22, 0x4c, 0xb7, 0x76, 0xb6, 0xb6, 0xab, 0xf9, 0x1b, + 0xf7, 0x60, 0x31, 0x76, 0x9f, 0x14, 0x2d, 0x41, 0xa5, 0xdd, 0x68, 0x6d, 0x3d, 0xde, 0xf9, 0x4c, + 0x53, 0xb7, 0x1b, 0x5b, 0x9f, 0x57, 0xa7, 0xd0, 0x32, 0x54, 0x25, 0xa9, 0xb5, 0xb3, 0xc7, 0xa9, + 0xb9, 0x1b, 0x2f, 0x63, 0x5f, 0x16, 0x46, 0xa7, 0x61, 0xc9, 0xef, 0x46, 0xdb, 0x54, 0xb7, 0x1b, + 0x7b, 0xdb, 0xb4, 0xf7, 0x08, 0x59, 0xdd, 0x6f, 0xb5, 0x9a, 0xad, 0xa7, 0xd5, 0x1c, 0xd5, 0x1a, + 0x90, 0xb7, 0x3f, 0x6b, 0x52, 0xe6, 0x7c, 0x94, 0x79, 0xbf, 0xf5, 0xc3, 0xd6, 0xce, 0xa7, 0xad, + 0x6a, 0x61, 0xe3, 0xef, 0x97, 0x60, 0x41, 0x96, 0x77, 0xd8, 0x61, 0x77, 0x59, 0x76, 0x61, 0x4e, + 0xfe, 0xf2, 0x36, 0x25, 0x2f, 0x47, 0x7f, 0x2f, 0x5c, 0x5f, 0x1b, 0xc2, 0x21, 0xaa, 0xec, 0x29, + 0x74, 0xc0, 0xaa, 0xde, 0xd0, 0xfd, 0xde, 0x2b, 0xa9, 0x35, 0x66, 0xe2, 0x4a, 0x71, 0xfd, 0xea, + 0x48, 0x3e, 0xbf, 0x0f, 0x4c, 0x0b, 0xdb, 0xf0, 0x0f, 0x58, 0xd0, 0xd5, 0xb4, 0x8a, 0x34, 0xe5, + 0x17, 0x32, 0xf5, 0x6b, 0xa3, 0x19, 0xfd, 0x6e, 0x5e, 0x42, 0x35, 0xfe, 0x63, 0x16, 0x94, 0x02, + 0x98, 0x66, 0xfc, 0x62, 0xa6, 0x7e, 0x63, 0x1c, 0xd6, 0x70, 0x67, 0x89, 0x9f, 0x7d, 0x5c, 0x1f, + 0xe7, 0x1e, 0x7d, 0x66, 0x67, 0x59, 0x57, 0xee, 0xb9, 0x03, 0xa3, 0x77, 0x77, 0x51, 0xea, 0x6f, + 0x2c, 0x52, 0x6e, 0x7e, 0xa7, 0x39, 0x30, 0xfd, 0x1a, 0xb0, 0x32, 0x85, 0x8e, 0x60, 0x31, 0x76, + 0x29, 0x01, 0xa5, 0x88, 0xa7, 0xdf, 0xbe, 0xa8, 0x5f, 0x1f, 0x83, 0x33, 0x1a, 0x11, 0xe1, 0x4b, + 0x08, 0xe9, 0x11, 0x91, 0x72, 0xc5, 0x21, 0x3d, 0x22, 0x52, 0xef, 0x33, 0xb0, 0xe0, 0x8e, 0x5c, + 0x3e, 0x48, 0x0b, 0xee, 0xb4, 0x2b, 0x0f, 0xf5, 0xab, 0x23, 0xf9, 0xc2, 0x4e, 0x8b, 0x5d, 0x45, + 0x48, 0x73, 0x5a, 0xfa, 0x55, 0x87, 0xfa, 0xf5, 0x31, 0x38, 0xe3, 0x51, 0x10, 0x1c, 0x6c, 0x66, + 0x45, 0x41, 0xe2, 0x18, 0x3e, 0x2b, 0x0a, 0x92, 0x67, 0xa4, 0x22, 0x0a, 0x62, 0x07, 0x92, 0xd7, + 0xc6, 0x38, 0x40, 0xc9, 0x8e, 0x82, 0xf4, 0xa3, 0x16, 0x65, 0x0a, 0xfd, 0x61, 0x0e, 0x6a, 0x59, + 0x87, 0x13, 0x28, 0xa5, 0xaa, 0x1b, 0x71, 0x9e, 0x52, 0xdf, 0x98, 0x44, 0xc4, 0xb7, 0xe2, 0x4b, + 0x40, 0xc9, 0xd5, 0x0e, 0xbd, 0x97, 0x36, 0x33, 0x19, 0x6b, 0x6a, 0xfd, 0xfd, 0xf1, 0x98, 0xfd, + 0x2e, 0xdb, 0x50, 0x94, 0xc7, 0x21, 0x28, 0x25, 0x4b, 0xc7, 0x0e, 0x63, 0xea, 0xca, 0x30, 0x16, + 0x5f, 0xe9, 0x53, 0x98, 0xa6, 0x54, 0x74, 0x21, 0x9d, 0x5b, 0x2a, 0x5b, 0xcd, 0x7a, 0xed, 0x2b, + 0x7a, 0x01, 0xb3, 0x1c, 0xff, 0x47, 0x29, 0x78, 0x43, 0xe4, 0x94, 0xa2, 0x7e, 0x31, 0x9b, 0xc1, + 0x57, 0xf7, 0x63, 0xfe, 0x4f, 0x19, 0x04, 0xb4, 0x8f, 0xde, 0x4d, 0xff, 0x95, 0x6c, 0xf4, 0x24, + 0xa1, 0x7e, 0x79, 0x04, 0x57, 0xf8, 0xa3, 0x88, 0xd5, 0xba, 0x57, 0x47, 0x6e, 0x58, 0xb2, 0x3f, + 0x8a, 0xf4, 0x2d, 0x11, 0x0f, 0x92, 0xe4, 0x96, 0x29, 0x2d, 0x48, 0x32, 0x37, 0xaa, 0x69, 0x41, + 0x92, 0xbd, 0x0b, 0x53, 0xa6, 0x90, 0x07, 0xa7, 0x52, 0x00, 0x32, 0xf4, 0x7e, 0x56, 0x90, 0xa7, + 0xa1, 0x75, 0xf5, 0x9b, 0x63, 0x72, 0x87, 0x27, 0x5f, 0x7c, 0xf4, 0xef, 0x64, 0xa3, 0x46, 0x99, + 0x93, 0x1f, 0xff, 0xc4, 0x37, 0xfe, 0xad, 0x00, 0xf3, 0x1c, 0xfc, 0x14, 0x15, 0xcc, 0xe7, 0x00, + 0xc1, 0xb9, 0x03, 0xba, 0x94, 0xee, 0x93, 0xc8, 0xd9, 0x4c, 0xfd, 0xdd, 0xe1, 0x4c, 0xe1, 0x40, + 0x0b, 0x61, 0xf8, 0x69, 0x81, 0x96, 0x3c, 0xaa, 0x48, 0x0b, 0xb4, 0x94, 0x83, 0x00, 0x65, 0x0a, + 0x7d, 0x02, 0x25, 0x1f, 0x2c, 0x46, 0x69, 0x60, 0x73, 0x0c, 0x0d, 0xaf, 0x5f, 0x1a, 0xca, 0x13, + 0xb6, 0x3a, 0x84, 0x04, 0xa7, 0x59, 0x9d, 0x44, 0x9c, 0xd3, 0xac, 0x4e, 0x83, 0x93, 0x03, 0x9f, + 0x70, 0xbc, 0x28, 0xd3, 0x27, 0x11, 0xb8, 0x2e, 0xd3, 0x27, 0x51, 0xd0, 0x49, 0x99, 0x7a, 0x7c, + 0xe5, 0x57, 0xbf, 0x59, 0xcd, 0xfd, 0xf3, 0x6f, 0x56, 0xa7, 0x7e, 0xf6, 0xd5, 0x6a, 0xee, 0x57, + 0x5f, 0xad, 0xe6, 0xfe, 0xe9, 0xab, 0xd5, 0xdc, 0xbf, 0x7f, 0xb5, 0x9a, 0xfb, 0xd3, 0xff, 0x58, + 0x9d, 0xfa, 0x51, 0x51, 0x4a, 0x1f, 0xcc, 0xb2, 0x7f, 0xad, 0xf2, 0xe1, 0xff, 0x05, 0x00, 0x00, + 0xff, 0xff, 0x36, 0xf8, 0x35, 0x67, 0x20, 0x47, 0x00, 0x00, } diff --git a/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto b/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto index 8c36e385bec..5c81e5f4c6d 100644 --- a/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto +++ b/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto @@ -1103,18 +1103,18 @@ message UInt64Value { uint64 value = 1; } -// StorageIdentifier uniquely identify the storage.. -message StorageIdentifier{ - // UUID of the device. - string uuid = 1; +// FilesystemIdentifier uniquely identify the filesystem. +message FilesystemIdentifier{ + // Mountpoint of a filesystem. + string mountpoint = 1; } // FilesystemUsage provides the filesystem usage information. message FilesystemUsage { // Timestamp in nanoseconds at which the information were collected. Must be > 0. int64 timestamp = 1; - // The underlying storage of the filesystem. - StorageIdentifier storage_id = 2; + // The unique identifier of the filesystem. + FilesystemIdentifier fs_id = 2; // UsedBytes represents the bytes used for images on the filesystem. // This may differ from the total bytes used on the filesystem and may not // equal CapacityBytes - AvailableBytes. diff --git a/pkg/kubelet/cadvisor/cadvisor_unsupported.go b/pkg/kubelet/cadvisor/cadvisor_unsupported.go index 954dca2260b..501c743d359 100644 --- a/pkg/kubelet/cadvisor/cadvisor_unsupported.go +++ b/pkg/kubelet/cadvisor/cadvisor_unsupported.go @@ -77,6 +77,6 @@ func (cu *cadvisorUnsupported) WatchEvents(request *events.Request) (*events.Eve return nil, unsupportedErr } -func (c *cadvisorUnsupported) GetFsInfoByFsUUID(uuid string) (cadvisorapiv2.FsInfo, error) { +func (cu *cadvisorUnsupported) GetDirFsInfo(path string) (cadvisorapiv2.FsInfo, error) { return cadvisorapiv2.FsInfo{}, nil } diff --git a/pkg/kubelet/cadvisor/cadvisor_windows.go b/pkg/kubelet/cadvisor/cadvisor_windows.go index 6120bb762c4..b61d024b962 100644 --- a/pkg/kubelet/cadvisor/cadvisor_windows.go +++ b/pkg/kubelet/cadvisor/cadvisor_windows.go @@ -77,6 +77,6 @@ func (cu *cadvisorClient) WatchEvents(request *events.Request) (*events.EventCha return &events.EventChannel{}, nil } -func (c *cadvisorClient) GetFsInfoByFsUUID(uuid string) (cadvisorapiv2.FsInfo, error) { +func (cu *cadvisorClient) GetDirFsInfo(path string) (cadvisorapiv2.FsInfo, error) { return cadvisorapiv2.FsInfo{}, nil } diff --git a/pkg/kubelet/cadvisor/testing/cadvisor_fake.go b/pkg/kubelet/cadvisor/testing/cadvisor_fake.go index 2432f9ad2a2..fa7a229e614 100644 --- a/pkg/kubelet/cadvisor/testing/cadvisor_fake.go +++ b/pkg/kubelet/cadvisor/testing/cadvisor_fake.go @@ -76,6 +76,6 @@ func (c *Fake) WatchEvents(request *events.Request) (*events.EventChannel, error return new(events.EventChannel), nil } -func (c *Fake) GetFsInfoByFsUUID(uuid string) (cadvisorapiv2.FsInfo, error) { +func (c *Fake) GetDirFsInfo(path string) (cadvisorapiv2.FsInfo, error) { return cadvisorapiv2.FsInfo{}, nil } diff --git a/pkg/kubelet/cadvisor/testing/cadvisor_mock.go b/pkg/kubelet/cadvisor/testing/cadvisor_mock.go index e503a8eabc5..d73588f2795 100644 --- a/pkg/kubelet/cadvisor/testing/cadvisor_mock.go +++ b/pkg/kubelet/cadvisor/testing/cadvisor_mock.go @@ -84,7 +84,7 @@ func (c *Mock) WatchEvents(request *events.Request) (*events.EventChannel, error return args.Get(0).(*events.EventChannel), args.Error(1) } -func (c *Mock) GetFsInfoByFsUUID(uuid string) (cadvisorapiv2.FsInfo, error) { - args := c.Called(uuid) +func (c *Mock) GetDirFsInfo(path string) (cadvisorapiv2.FsInfo, error) { + args := c.Called(path) return args.Get(0).(cadvisorapiv2.FsInfo), args.Error(1) } diff --git a/pkg/kubelet/cadvisor/types.go b/pkg/kubelet/cadvisor/types.go index 1aa37506e6f..72ffcec23d4 100644 --- a/pkg/kubelet/cadvisor/types.go +++ b/pkg/kubelet/cadvisor/types.go @@ -42,9 +42,8 @@ type Interface interface { // Get events streamed through passedChannel that fit the request. WatchEvents(request *events.Request) (*events.EventChannel, error) - // GetFsInfoByFsUUID returns the stats of the filesystem with the specified - // uuid. - GetFsInfoByFsUUID(uuid string) (cadvisorapiv2.FsInfo, error) + // Get filesystem information for the filesystem that contains the given file. + GetDirFsInfo(path string) (cadvisorapiv2.FsInfo, error) } // ImageFsInfoProvider informs cAdvisor how to find imagefs for container images. diff --git a/pkg/kubelet/stats/cri_stats_provider.go b/pkg/kubelet/stats/cri_stats_provider.go index 2de4f8bd8ca..42f732a7b84 100644 --- a/pkg/kubelet/stats/cri_stats_provider.go +++ b/pkg/kubelet/stats/cri_stats_provider.go @@ -95,10 +95,10 @@ func (p *criStatsProvider) ListPodStats() ([]statsapi.PodStats, error) { podSandboxMap[s.Id] = s } - // uuidToFsInfo is a map from filesystem UUID to its stats. This will be - // used as a cache to avoid querying cAdvisor for the filesystem stats with - // the same UUID many times. - uuidToFsInfo := make(map[runtimeapi.StorageIdentifier]*cadvisorapiv2.FsInfo) + // fsIDtoInfo is a map from filesystem id to its stats. This will be used + // as a cache to avoid querying cAdvisor for the filesystem stats with the + // same filesystem id many times. + fsIDtoInfo := make(map[runtimeapi.FilesystemIdentifier]*cadvisorapiv2.FsInfo) // sandboxIDToPodStats is a temporary map from sandbox ID to its pod stats. sandboxIDToPodStats := make(map[string]*statsapi.PodStats) @@ -149,7 +149,7 @@ func (p *criStatsProvider) ListPodStats() ([]statsapi.PodStats, error) { } sandboxIDToPodStats[podSandboxID] = ps } - cs := p.makeContainerStats(stats, container, &rootFsInfo, uuidToFsInfo) + cs := p.makeContainerStats(stats, container, &rootFsInfo, fsIDtoInfo) // If cadvisor stats is available for the container, use it to populate // container stats caStats, caFound := caInfos[containerID] @@ -186,11 +186,11 @@ func (p *criStatsProvider) ImageFsStats() (*statsapi.FsStats, error) { UsedBytes: &fs.UsedBytes.Value, InodesUsed: &fs.InodesUsed.Value, } - imageFsInfo := p.getFsInfo(fs.StorageId) + imageFsInfo := p.getFsInfo(fs.GetFsId()) if imageFsInfo != nil { - // The image filesystem UUID is unknown to the local node or - // there's an error on retrieving the stats. In these cases, we - // omit those stats and return the best-effort partial result. See + // The image filesystem id is unknown to the local node or there's + // an error on retrieving the stats. In these cases, we omit those + // stats and return the best-effort partial result. See // https://github.com/kubernetes/heapster/issues/1793. s.AvailableBytes = &imageFsInfo.Available s.CapacityBytes = &imageFsInfo.Capacity @@ -211,7 +211,7 @@ func (p *criStatsProvider) ImageFsDevice() (string, error) { return "", err } for _, fs := range resp { - fsInfo := p.getFsInfo(fs.GetStorageId()) + fsInfo := p.getFsInfo(fs.GetFsId()) if fsInfo != nil { return fsInfo.Device, nil } @@ -220,16 +220,17 @@ func (p *criStatsProvider) ImageFsDevice() (string, error) { } // getFsInfo returns the information of the filesystem with the specified -// storageID. If any error occurs, this function logs the error and returns +// fsID. If any error occurs, this function logs the error and returns // nil. -func (p *criStatsProvider) getFsInfo(storageID *runtimeapi.StorageIdentifier) *cadvisorapiv2.FsInfo { - if storageID == nil { - glog.V(2).Infof("Failed to get filesystem info: storageID is nil.") +func (p *criStatsProvider) getFsInfo(fsID *runtimeapi.FilesystemIdentifier) *cadvisorapiv2.FsInfo { + if fsID == nil { + glog.V(2).Infof("Failed to get filesystem info: fsID is nil.") return nil } - fsInfo, err := p.cadvisor.GetFsInfoByFsUUID(storageID.Uuid) + mountpoint := fsID.GetMountpoint() + fsInfo, err := p.cadvisor.GetDirFsInfo(mountpoint) if err != nil { - msg := fmt.Sprintf("Failed to get the info of the filesystem with id %q: %v.", storageID.Uuid, err) + msg := fmt.Sprintf("Failed to get the info of the filesystem with mountpoint %q: %v.", mountpoint, err) if err == cadvisorfs.ErrNoSuchDevice { glog.V(2).Info(msg) } else { @@ -275,7 +276,7 @@ func (p *criStatsProvider) makeContainerStats( stats *runtimeapi.ContainerStats, container *runtimeapi.Container, rootFsInfo *cadvisorapiv2.FsInfo, - uuidToFsInfo map[runtimeapi.StorageIdentifier]*cadvisorapiv2.FsInfo, + fsIDtoInfo map[runtimeapi.FilesystemIdentifier]*cadvisorapiv2.FsInfo, ) *statsapi.ContainerStats { result := &statsapi.ContainerStats{ Name: stats.Attributes.Metadata.Name, @@ -324,16 +325,16 @@ func (p *criStatsProvider) makeContainerStats( result.Rootfs.InodesUsed = &stats.WritableLayer.InodesUsed.Value } } - storageID := stats.GetWritableLayer().GetStorageId() - if storageID != nil { - imageFsInfo, found := uuidToFsInfo[*storageID] + fsID := stats.GetWritableLayer().GetFsId() + if fsID != nil { + imageFsInfo, found := fsIDtoInfo[*fsID] if !found { - imageFsInfo = p.getFsInfo(storageID) - uuidToFsInfo[*storageID] = imageFsInfo + imageFsInfo = p.getFsInfo(fsID) + fsIDtoInfo[*fsID] = imageFsInfo } if imageFsInfo != nil { - // The image filesystem UUID is unknown to the local node or there's an - // error on retrieving the stats. In these cases, we omit those stats + // The image filesystem id is unknown to the local node or there's + // an error on retrieving the stats. In these cases, we omit those stats // and return the best-effort partial result. See // https://github.com/kubernetes/heapster/issues/1793. result.Rootfs.AvailableBytes = &imageFsInfo.Available diff --git a/pkg/kubelet/stats/cri_stats_provider_test.go b/pkg/kubelet/stats/cri_stats_provider_test.go index 01d90e8422f..de4e917df9e 100644 --- a/pkg/kubelet/stats/cri_stats_provider_test.go +++ b/pkg/kubelet/stats/cri_stats_provider_test.go @@ -63,26 +63,26 @@ func TestCRIListPodStats(t *testing.T) { ) var ( - imageFsStorageUUID = "imagefs-storage-uuid" - unknownStorageUUID = "unknown-storage-uuid" - imageFsInfo = getTestFsInfo(2000) - rootFsInfo = getTestFsInfo(1000) + imageFsMountpoint = "/test/mount/point" + unknownMountpoint = "/unknown/mount/point" + imageFsInfo = getTestFsInfo(2000) + rootFsInfo = getTestFsInfo(1000) sandbox0 = makeFakePodSandbox("sandbox0-name", "sandbox0-uid", "sandbox0-ns") container0 = makeFakeContainer(sandbox0, cName0, 0, false) - containerStats0 = makeFakeContainerStats(container0, imageFsStorageUUID) + containerStats0 = makeFakeContainerStats(container0, imageFsMountpoint) container1 = makeFakeContainer(sandbox0, cName1, 0, false) - containerStats1 = makeFakeContainerStats(container1, unknownStorageUUID) + containerStats1 = makeFakeContainerStats(container1, unknownMountpoint) sandbox1 = makeFakePodSandbox("sandbox1-name", "sandbox1-uid", "sandbox1-ns") container2 = makeFakeContainer(sandbox1, cName2, 0, false) - containerStats2 = makeFakeContainerStats(container2, imageFsStorageUUID) + containerStats2 = makeFakeContainerStats(container2, imageFsMountpoint) sandbox2 = makeFakePodSandbox("sandbox2-name", "sandbox2-uid", "sandbox2-ns") container3 = makeFakeContainer(sandbox2, cName3, 0, true) - containerStats3 = makeFakeContainerStats(container3, imageFsStorageUUID) + containerStats3 = makeFakeContainerStats(container3, imageFsMountpoint) container4 = makeFakeContainer(sandbox2, cName3, 1, false) - containerStats4 = makeFakeContainerStats(container4, imageFsStorageUUID) + containerStats4 = makeFakeContainerStats(container4, imageFsMountpoint) ) var ( @@ -116,8 +116,8 @@ func TestCRIListPodStats(t *testing.T) { mockCadvisor. On("ContainerInfoV2", "/", options).Return(infos, nil). On("RootFsInfo").Return(rootFsInfo, nil). - On("GetFsInfoByFsUUID", imageFsStorageUUID).Return(imageFsInfo, nil). - On("GetFsInfoByFsUUID", unknownStorageUUID).Return(cadvisorapiv2.FsInfo{}, cadvisorfs.ErrNoSuchDevice) + On("GetDirFsInfo", imageFsMountpoint).Return(imageFsInfo, nil). + On("GetDirFsInfo", unknownMountpoint).Return(cadvisorapiv2.FsInfo{}, cadvisorfs.ErrNoSuchDevice) fakeRuntimeService.SetFakeSandboxes([]*critest.FakePodSandbox{ sandbox0, sandbox1, sandbox2, }) @@ -209,9 +209,9 @@ func TestCRIListPodStats(t *testing.T) { func TestCRIImagesFsStats(t *testing.T) { var ( - imageFsStorageUUID = "imagefs-storage-uuid" - imageFsInfo = getTestFsInfo(2000) - imageFsUsage = makeFakeImageFsUsage(imageFsStorageUUID) + imageFsMountpoint = "/test/mount/point" + imageFsInfo = getTestFsInfo(2000) + imageFsUsage = makeFakeImageFsUsage(imageFsMountpoint) ) var ( mockCadvisor = new(cadvisortest.Mock) @@ -222,7 +222,7 @@ func TestCRIImagesFsStats(t *testing.T) { fakeImageService = critest.NewFakeImageService() ) - mockCadvisor.On("GetFsInfoByFsUUID", imageFsStorageUUID).Return(imageFsInfo, nil) + mockCadvisor.On("GetDirFsInfo", imageFsMountpoint).Return(imageFsInfo, nil) fakeImageService.SetFakeFilesystemUsage([]*runtimeapi.FilesystemUsage{ imageFsUsage, }) @@ -292,7 +292,7 @@ func makeFakeContainer(sandbox *critest.FakePodSandbox, name string, attempt uin return c } -func makeFakeContainerStats(container *critest.FakeContainer, imageFsUUID string) *runtimeapi.ContainerStats { +func makeFakeContainerStats(container *critest.FakeContainer, imageFsMountpoint string) *runtimeapi.ContainerStats { containerStats := &runtimeapi.ContainerStats{ Attributes: &runtimeapi.ContainerAttributes{ Id: container.ContainerStatus.Id, @@ -300,7 +300,7 @@ func makeFakeContainerStats(container *critest.FakeContainer, imageFsUUID string }, WritableLayer: &runtimeapi.FilesystemUsage{ Timestamp: time.Now().UnixNano(), - StorageId: &runtimeapi.StorageIdentifier{Uuid: imageFsUUID}, + FsId: &runtimeapi.FilesystemIdentifier{Mountpoint: imageFsMountpoint}, UsedBytes: &runtimeapi.UInt64Value{Value: rand.Uint64() / 100}, InodesUsed: &runtimeapi.UInt64Value{Value: rand.Uint64() / 100}, }, @@ -321,10 +321,10 @@ func makeFakeContainerStats(container *critest.FakeContainer, imageFsUUID string return containerStats } -func makeFakeImageFsUsage(fsUUID string) *runtimeapi.FilesystemUsage { +func makeFakeImageFsUsage(fsMountpoint string) *runtimeapi.FilesystemUsage { return &runtimeapi.FilesystemUsage{ Timestamp: time.Now().UnixNano(), - StorageId: &runtimeapi.StorageIdentifier{Uuid: fsUUID}, + FsId: &runtimeapi.FilesystemIdentifier{Mountpoint: fsMountpoint}, UsedBytes: &runtimeapi.UInt64Value{Value: rand.Uint64()}, InodesUsed: &runtimeapi.UInt64Value{Value: rand.Uint64()}, }