diff --git a/csi.proto b/csi.proto index cf221041..2e60bd11 100644 --- a/csi.proto +++ b/csi.proto @@ -185,6 +185,10 @@ message PluginCapability { Type type = 1; } + // Deprecated - Ability for a plugin to delcare online and offline + // controller expansion capabilities via PluginCapability + // is deprecated. A plugin may support either mode of operation + // without having to declare them in PluginCapability. message VolumeExpansion { enum Type { UNKNOWN = 0; @@ -234,7 +238,18 @@ message PluginCapability { oneof type { // Service that the plugin supports. Service service = 1; - VolumeExpansion volume_expansion = 2; + // Deprecated - Ability for a plugin to delcare online and offline + // controller expansion capabilities via PluginCapability + // is deprecated. A plugin may support either mode of operation + // without having to declare them in PluginCapability. + // + // If set a CO will ignore ONLINE and OFFLINE capabilities + // specified in PluginCapability. + // If a plugin can not support controller expansion of published + // and available volumes on a node - it may return + // FAILED_PRECONDITION error and CO should ensure that volume + // is not published before retrying with exponential backoff. + VolumeExpansion volume_expansion = 2 [deprecated=true]; } } message ProbeRequest { diff --git a/lib/go/csi/csi.pb.go b/lib/go/csi/csi.pb.go index 35f59755..42210cf0 100644 --- a/lib/go/csi/csi.pb.go +++ b/lib/go/csi/csi.pb.go @@ -573,6 +573,7 @@ func (m *PluginCapability) GetService() *PluginCapability_Service { return nil } +// Deprecated: Do not use. func (m *PluginCapability) GetVolumeExpansion() *PluginCapability_VolumeExpansion { if x, ok := m.GetType().(*PluginCapability_VolumeExpansion_); ok { return x.VolumeExpansion @@ -627,6 +628,10 @@ func (m *PluginCapability_Service) GetType() PluginCapability_Service_Type { return PluginCapability_Service_UNKNOWN } +// Deprecated - Ability for a plugin to delcare online and offline +// controller expansion capabilities via PluginCapability +// is deprecated. A plugin may support either mode of operation +// without having to declare them in PluginCapability. type PluginCapability_VolumeExpansion struct { Type PluginCapability_VolumeExpansion_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.PluginCapability_VolumeExpansion_Type" json:"type,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -4898,236 +4903,236 @@ func init() { } var fileDescriptor_9cdb00adce470e01 = []byte{ - // 3651 bytes of a gzipped FileDescriptorProto + // 3656 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3b, 0x4b, 0x6c, 0x1b, 0xd7, - 0xb5, 0x1a, 0x7e, 0xf4, 0x39, 0x94, 0x64, 0xfa, 0xea, 0x63, 0x7a, 0x24, 0xd9, 0xf2, 0x38, 0x76, - 0x64, 0xc7, 0xa6, 0x13, 0x25, 0x0e, 0x5e, 0x64, 0xe7, 0x43, 0x52, 0xb4, 0xc4, 0x98, 0xa6, 0x94, - 0x21, 0x65, 0xc7, 0x7e, 0x2f, 0x98, 0x8c, 0xc8, 0x2b, 0x79, 0x10, 0x72, 0x86, 0x9e, 0x19, 0xea, - 0x59, 0x6f, 0xf3, 0x1e, 0x5e, 0xd1, 0x45, 0xd1, 0x16, 0xe8, 0x2e, 0xdd, 0xb5, 0x68, 0xbb, 0x2a, - 0x12, 0x64, 0xd3, 0xa2, 0xcb, 0x02, 0x5d, 0x16, 0x68, 0xd1, 0x5d, 0x8b, 0x76, 0x91, 0x7d, 0x90, - 0x02, 0x59, 0x75, 0xd1, 0x55, 0x31, 0xf7, 0xde, 0x19, 0xce, 0x9f, 0xa4, 0x65, 0x23, 0x8b, 0xae, - 0xc4, 0x39, 0xf7, 0x9c, 0x73, 0xcf, 0xbd, 0xf7, 0x9c, 0x73, 0xcf, 0xe7, 0x0a, 0x6e, 0x1e, 0x2a, - 0xe6, 0xe3, 0xde, 0x7e, 0xbe, 0xa9, 0x75, 0x6e, 0x34, 0x35, 0xd5, 0x94, 0x15, 0x15, 0xeb, 0xd7, - 0x0d, 0x53, 0xd3, 0xe5, 0x43, 0x7c, 0x5d, 0x51, 0x4d, 0xac, 0x1f, 0xc8, 0x4d, 0x7c, 0xc3, 0xe8, - 0xe2, 0xe6, 0x8d, 0xa6, 0xa1, 0xe4, 0xbb, 0xba, 0x66, 0x6a, 0x68, 0xdc, 0xfa, 0x79, 0xf4, 0x1a, - 0xbf, 0x7a, 0xa8, 0x69, 0x87, 0x6d, 0x7c, 0x83, 0x40, 0xf7, 0x7b, 0x07, 0x37, 0x5a, 0xd8, 0x68, - 0xea, 0x4a, 0xd7, 0xd4, 0x74, 0x8a, 0xc9, 0x9f, 0xf7, 0x63, 0x98, 0x4a, 0x07, 0x1b, 0xa6, 0xdc, - 0xe9, 0x32, 0x84, 0x73, 0x7e, 0x84, 0xff, 0xd6, 0xe5, 0x6e, 0x17, 0xeb, 0x06, 0x1d, 0x17, 0x16, - 0x61, 0x7e, 0x0b, 0x9b, 0xbb, 0xed, 0xde, 0xa1, 0xa2, 0x56, 0xd4, 0x03, 0x4d, 0xc4, 0x4f, 0x7a, - 0xd8, 0x30, 0x85, 0xbf, 0x70, 0xb0, 0xe0, 0x1b, 0x30, 0xba, 0x9a, 0x6a, 0x60, 0x84, 0x20, 0xa5, - 0xca, 0x1d, 0x9c, 0xe3, 0x56, 0xb9, 0xb5, 0x29, 0x91, 0xfc, 0x46, 0x97, 0x60, 0xf6, 0x08, 0xab, - 0x2d, 0x4d, 0x97, 0x8e, 0xb0, 0x6e, 0x28, 0x9a, 0x9a, 0x4b, 0x90, 0xd1, 0x19, 0x0a, 0xbd, 0x4f, - 0x81, 0x68, 0x0b, 0x26, 0x3b, 0xb2, 0xaa, 0x1c, 0x60, 0xc3, 0xcc, 0x25, 0x57, 0x93, 0x6b, 0x99, - 0xf5, 0x57, 0xf2, 0x74, 0xa9, 0xf9, 0xd0, 0xb9, 0xf2, 0xf7, 0x18, 0x76, 0x59, 0x35, 0xf5, 0x63, - 0xd1, 0x21, 0xe6, 0x6f, 0xc1, 0x8c, 0x67, 0x08, 0x65, 0x21, 0xf9, 0x09, 0x3e, 0x66, 0x32, 0x59, - 0x3f, 0xd1, 0x3c, 0xa4, 0x8f, 0xe4, 0x76, 0x0f, 0x33, 0x49, 0xe8, 0xc7, 0x46, 0xe2, 0x3f, 0x38, - 0xe1, 0x1c, 0x2c, 0x3b, 0xb3, 0x95, 0xe4, 0xae, 0xbc, 0xaf, 0xb4, 0x15, 0x53, 0xc1, 0x86, 0xbd, - 0xf4, 0x8f, 0x60, 0x25, 0x62, 0x9c, 0xed, 0xc0, 0x6d, 0x98, 0x6e, 0xba, 0xe0, 0x39, 0x8e, 0x2c, - 0x25, 0x67, 0x2f, 0xc5, 0x47, 0x79, 0x2c, 0x7a, 0xb0, 0x85, 0x3f, 0x26, 0x21, 0xeb, 0x47, 0x41, - 0xb7, 0x61, 0xc2, 0xc0, 0xfa, 0x91, 0xd2, 0xa4, 0xfb, 0x9a, 0x59, 0x5f, 0x8d, 0xe2, 0x96, 0xaf, - 0x53, 0xbc, 0xed, 0x31, 0xd1, 0x26, 0x41, 0x7b, 0x90, 0x3d, 0xd2, 0xda, 0xbd, 0x0e, 0x96, 0xf0, - 0xd3, 0xae, 0xac, 0x3a, 0x07, 0x90, 0x59, 0x5f, 0x8b, 0x64, 0x73, 0x9f, 0x10, 0x94, 0x6d, 0xfc, - 0xed, 0x31, 0xf1, 0xd4, 0x91, 0x17, 0xc4, 0x7f, 0xca, 0xc1, 0x04, 0x9b, 0x0d, 0xbd, 0x05, 0x29, - 0xf3, 0xb8, 0x4b, 0xa5, 0x9b, 0x5d, 0xbf, 0x34, 0x48, 0xba, 0x7c, 0xe3, 0xb8, 0x8b, 0x45, 0x42, - 0x22, 0x7c, 0x00, 0x29, 0xeb, 0x0b, 0x65, 0x60, 0x62, 0xaf, 0x76, 0xb7, 0xb6, 0xf3, 0xa0, 0x96, - 0x1d, 0x43, 0x8b, 0x80, 0x4a, 0x3b, 0xb5, 0x86, 0xb8, 0x53, 0xad, 0x96, 0x45, 0xa9, 0x5e, 0x16, - 0xef, 0x57, 0x4a, 0xe5, 0x2c, 0x87, 0x5e, 0x82, 0xd5, 0xfb, 0x3b, 0xd5, 0xbd, 0x7b, 0x65, 0xa9, - 0x50, 0x2a, 0x95, 0xeb, 0xf5, 0x4a, 0xb1, 0x52, 0xad, 0x34, 0x1e, 0x4a, 0xa5, 0x9d, 0x5a, 0xbd, - 0x21, 0x16, 0x2a, 0xb5, 0x46, 0x3d, 0x9b, 0xe0, 0xff, 0x9f, 0x83, 0x53, 0xbe, 0x05, 0xa0, 0x82, - 0x47, 0xc2, 0xeb, 0xc3, 0x2e, 0xdc, 0x2d, 0xe9, 0xb5, 0x30, 0x49, 0x01, 0xc6, 0x77, 0x6a, 0xd5, - 0x4a, 0xcd, 0x92, 0x2e, 0x03, 0x13, 0x3b, 0x77, 0xee, 0x90, 0x8f, 0x44, 0x71, 0x9c, 0x4e, 0x28, - 0xcc, 0xc2, 0xf4, 0xae, 0xae, 0xed, 0x63, 0x5b, 0x7f, 0x0a, 0x30, 0xc3, 0xbe, 0x99, 0xbe, 0xbc, - 0x0a, 0x69, 0x1d, 0xcb, 0xad, 0x63, 0x76, 0xb4, 0x7c, 0x9e, 0xda, 0x64, 0xde, 0xb6, 0xc9, 0x7c, - 0x51, 0xd3, 0xda, 0xf7, 0x2d, 0xfd, 0x14, 0x29, 0xa2, 0xf0, 0x4d, 0x0a, 0xe6, 0x4a, 0x3a, 0x96, - 0x4d, 0x4c, 0xa5, 0x65, 0xac, 0x43, 0x6d, 0xef, 0x36, 0xcc, 0x5a, 0xfa, 0xd5, 0x54, 0xcc, 0x63, - 0x49, 0x97, 0xd5, 0x43, 0xcc, 0x8e, 0x7e, 0xc1, 0xde, 0x81, 0x12, 0x1b, 0x15, 0xad, 0x41, 0x71, - 0xa6, 0xe9, 0xfe, 0x44, 0x15, 0x98, 0x63, 0xaa, 0xe3, 0x51, 0xe9, 0xa4, 0x57, 0xa5, 0xa9, 0x14, - 0x2e, 0x95, 0x46, 0x47, 0x5e, 0x88, 0x82, 0x0d, 0x74, 0x17, 0xa0, 0x2b, 0xeb, 0x72, 0x07, 0x9b, - 0x58, 0x37, 0x72, 0x29, 0xaf, 0x7d, 0x87, 0xac, 0x26, 0xbf, 0xeb, 0x60, 0x53, 0xfb, 0x76, 0x91, - 0xa3, 0x2d, 0xcb, 0x20, 0x9a, 0x3a, 0x36, 0x8d, 0x5c, 0x9a, 0x70, 0x5a, 0x8b, 0xe3, 0x54, 0xa7, - 0xa8, 0x84, 0x4d, 0x31, 0xf9, 0xe3, 0x22, 0x27, 0xda, 0xd4, 0x68, 0x07, 0x16, 0xec, 0x05, 0x6a, - 0xaa, 0x89, 0x55, 0x53, 0x32, 0xb4, 0x9e, 0xde, 0xc4, 0xb9, 0x71, 0xb2, 0x4b, 0x4b, 0xbe, 0x25, - 0x52, 0x9c, 0x3a, 0x41, 0x11, 0xd9, 0xd6, 0x78, 0x80, 0xe8, 0x11, 0xf0, 0x72, 0xb3, 0x89, 0x0d, - 0x43, 0xa1, 0x7b, 0x21, 0xe9, 0xf8, 0x49, 0x4f, 0xd1, 0x71, 0x07, 0xab, 0xa6, 0x91, 0x9b, 0xf0, - 0x72, 0x6d, 0x68, 0x5d, 0xad, 0xad, 0x1d, 0x1e, 0x8b, 0x7d, 0x1c, 0xf1, 0xac, 0x87, 0xdc, 0x35, - 0x62, 0xf0, 0x6f, 0xc3, 0x29, 0xdf, 0xa6, 0x8c, 0xe2, 0xd9, 0xf8, 0x0d, 0x98, 0x76, 0xef, 0xc4, - 0x48, 0x5e, 0xf1, 0xfb, 0x09, 0x98, 0x0b, 0xd9, 0x03, 0xb4, 0x0d, 0x93, 0x86, 0x2a, 0x77, 0x8d, - 0xc7, 0x9a, 0xc9, 0xf4, 0xf7, 0x6a, 0xcc, 0x96, 0xe5, 0xeb, 0x0c, 0x97, 0x7e, 0x6e, 0x8f, 0x89, - 0x0e, 0x35, 0x2a, 0xc2, 0x38, 0xdd, 0x4f, 0xbf, 0x6f, 0x0a, 0xe3, 0x43, 0x61, 0x0e, 0x17, 0x46, - 0xc9, 0xbf, 0x06, 0xb3, 0xde, 0x19, 0xd0, 0x79, 0xc8, 0xd8, 0x33, 0x48, 0x4a, 0x8b, 0xad, 0x15, - 0x6c, 0x50, 0xa5, 0xc5, 0xbf, 0x02, 0xd3, 0x6e, 0x66, 0x68, 0x09, 0xa6, 0x98, 0x42, 0x38, 0xe8, - 0x93, 0x14, 0x50, 0x69, 0x39, 0x36, 0xfd, 0x0e, 0xcc, 0x7b, 0xf5, 0x8c, 0x99, 0xf2, 0x65, 0x67, - 0x0d, 0x74, 0x2f, 0x66, 0xbd, 0x6b, 0xb0, 0xe5, 0x14, 0x7e, 0x99, 0x82, 0xac, 0xdf, 0x68, 0xd0, - 0x6d, 0x48, 0xef, 0xb7, 0xb5, 0xe6, 0x27, 0x8c, 0xf6, 0xa5, 0x28, 0xeb, 0xca, 0x17, 0x2d, 0x2c, - 0x0a, 0xdd, 0x1e, 0x13, 0x29, 0x91, 0x45, 0xdd, 0xd1, 0x7a, 0xaa, 0xc9, 0x76, 0x2f, 0x9a, 0xfa, - 0x9e, 0x85, 0xd5, 0xa7, 0x26, 0x44, 0x68, 0x13, 0x32, 0x54, 0xed, 0xa4, 0x8e, 0xd6, 0xc2, 0xb9, - 0x24, 0xe1, 0x71, 0x31, 0x92, 0x47, 0x81, 0xe0, 0xde, 0xd3, 0x5a, 0x58, 0x04, 0xd9, 0xf9, 0xcd, - 0xcf, 0x40, 0xc6, 0x25, 0x1b, 0xbf, 0x05, 0x19, 0xd7, 0x64, 0xe8, 0x0c, 0x4c, 0x1c, 0x18, 0x92, - 0xe3, 0x84, 0xa7, 0xc4, 0xf1, 0x03, 0x83, 0xf8, 0xd3, 0xf3, 0x90, 0x21, 0x52, 0x48, 0x07, 0x6d, - 0xf9, 0xd0, 0xc8, 0x25, 0x56, 0x93, 0xd6, 0x19, 0x11, 0xd0, 0x1d, 0x0b, 0xc2, 0x7f, 0xcd, 0x01, - 0xf4, 0xa7, 0x44, 0xb7, 0x21, 0x45, 0xa4, 0xa4, 0xae, 0x7c, 0x6d, 0x08, 0x29, 0xf3, 0x44, 0x54, - 0x42, 0x25, 0xfc, 0x84, 0x83, 0x14, 0x61, 0xe3, 0xbf, 0x70, 0xea, 0x95, 0xda, 0x56, 0xb5, 0x2c, - 0xd5, 0x76, 0x36, 0xcb, 0xd2, 0x03, 0xb1, 0xd2, 0x28, 0x8b, 0x59, 0x0e, 0x2d, 0xc1, 0x19, 0x37, - 0x5c, 0x2c, 0x17, 0x36, 0xcb, 0xa2, 0xb4, 0x53, 0xab, 0x3e, 0xcc, 0x26, 0x10, 0x0f, 0x8b, 0xf7, - 0xf6, 0xaa, 0x8d, 0x4a, 0x70, 0x2c, 0x89, 0x96, 0x21, 0xe7, 0x1a, 0x63, 0x3c, 0x18, 0xdb, 0x94, - 0xc5, 0xd6, 0x35, 0x4a, 0x7f, 0xb2, 0xc1, 0x74, 0x71, 0xc6, 0x39, 0x0c, 0xa2, 0x6c, 0x0f, 0x60, - 0xc6, 0xe3, 0xa3, 0xad, 0x70, 0x8a, 0x39, 0x95, 0x96, 0xb4, 0x7f, 0x6c, 0x92, 0x10, 0x83, 0x5b, - 0x4b, 0x8a, 0x33, 0x36, 0xb4, 0x68, 0x01, 0xad, 0x6d, 0x6d, 0x2b, 0x1d, 0xc5, 0x64, 0x38, 0x09, - 0x82, 0x03, 0x04, 0x44, 0x10, 0x84, 0x2f, 0x13, 0x30, 0xce, 0xce, 0xe6, 0x92, 0xeb, 0x96, 0xf0, - 0xb0, 0xb4, 0xa1, 0x94, 0xa5, 0xc7, 0x38, 0x12, 0x5e, 0xe3, 0x40, 0xdb, 0x30, 0xeb, 0x76, 0xa5, - 0x4f, 0xed, 0x20, 0xee, 0x82, 0xf7, 0x80, 0xdc, 0xf6, 0xfc, 0x94, 0x85, 0x6e, 0x33, 0x47, 0x6e, - 0x18, 0x2a, 0xc2, 0xac, 0xcf, 0x1b, 0xa7, 0x06, 0x7b, 0xe3, 0x99, 0xa6, 0xc7, 0x31, 0x15, 0x60, - 0xce, 0x76, 0xa4, 0x6d, 0x2c, 0x99, 0xcc, 0xd1, 0xb2, 0xdb, 0x22, 0x1b, 0x70, 0xc0, 0xa8, 0x8f, - 0x6c, 0xc3, 0xf8, 0xf7, 0x00, 0x05, 0x65, 0x1d, 0xc9, 0x6b, 0xf6, 0x60, 0x2e, 0xc4, 0xc5, 0xa3, - 0x3c, 0x4c, 0x91, 0xa3, 0x32, 0x14, 0x13, 0xb3, 0xf0, 0x30, 0x28, 0x51, 0x1f, 0xc5, 0xc2, 0xef, - 0xea, 0xf8, 0x00, 0xeb, 0x3a, 0x6e, 0x11, 0xf3, 0x08, 0xc5, 0x77, 0x50, 0x84, 0xef, 0x70, 0x30, - 0x69, 0xc3, 0xd1, 0x06, 0x4c, 0x1a, 0xf8, 0x90, 0x5e, 0x3f, 0x74, 0xae, 0x73, 0x7e, 0xda, 0x7c, - 0x9d, 0x21, 0xb0, 0x40, 0xda, 0xc6, 0xb7, 0x02, 0x69, 0xcf, 0xd0, 0x48, 0x8b, 0xff, 0x0d, 0x07, - 0x73, 0x9b, 0xb8, 0x8d, 0xfd, 0x51, 0x4a, 0x9c, 0x87, 0x75, 0x5f, 0xec, 0x09, 0xef, 0xc5, 0x1e, - 0xc2, 0x2a, 0xe6, 0x62, 0x3f, 0xd1, 0x65, 0xb7, 0x08, 0xf3, 0xde, 0xd9, 0xa8, 0x7b, 0x17, 0xfe, - 0x9e, 0x84, 0x73, 0x96, 0x2e, 0xe8, 0x5a, 0xbb, 0x8d, 0xf5, 0xdd, 0xde, 0x7e, 0x5b, 0x31, 0x1e, - 0x8f, 0xb0, 0xb8, 0x33, 0x30, 0xa1, 0x6a, 0x2d, 0x97, 0xf1, 0x8c, 0x5b, 0x9f, 0x95, 0x16, 0x2a, - 0xc3, 0x69, 0x7f, 0x98, 0x75, 0xcc, 0x9c, 0x70, 0x74, 0x90, 0x95, 0x3d, 0xf2, 0xdf, 0x20, 0x3c, - 0x4c, 0x5a, 0x01, 0xa2, 0xa6, 0xb6, 0x8f, 0x89, 0xc5, 0x4c, 0x8a, 0xce, 0x37, 0x12, 0xfd, 0x11, - 0xd3, 0xeb, 0x4e, 0xc4, 0x14, 0xbb, 0xa2, 0xb8, 0xe0, 0xe9, 0xe3, 0x80, 0xc5, 0x8f, 0x13, 0xd6, - 0x6f, 0x0d, 0xc9, 0x7a, 0xa0, 0x27, 0x38, 0xc9, 0x29, 0x3e, 0x07, 0xf3, 0xfd, 0x3d, 0x07, 0xe7, - 0x23, 0x97, 0xc0, 0xae, 0xfc, 0x16, 0x9c, 0xea, 0xd2, 0x01, 0x67, 0x13, 0xa8, 0x95, 0xdd, 0x1a, - 0xb8, 0x09, 0x2c, 0x8b, 0x65, 0x50, 0xcf, 0x36, 0xcc, 0x76, 0x3d, 0x40, 0xbe, 0x00, 0x73, 0x21, - 0x68, 0x23, 0x2d, 0xe6, 0x2b, 0x0e, 0x56, 0xfb, 0xa2, 0xec, 0xa9, 0xdd, 0xe7, 0xa7, 0xbe, 0x8d, - 0xbe, 0x6e, 0x51, 0x97, 0x7f, 0x33, 0xb8, 0xf6, 0xf0, 0x09, 0x5f, 0x94, 0x05, 0x5f, 0x84, 0x0b, - 0x31, 0x53, 0x33, 0x73, 0xfe, 0x32, 0x05, 0x17, 0xee, 0xcb, 0x6d, 0xa5, 0xe5, 0x04, 0x72, 0x21, - 0xf9, 0x7e, 0xfc, 0x96, 0x34, 0x03, 0x16, 0x40, 0xbd, 0xd6, 0x6d, 0xc7, 0x6a, 0x07, 0xf1, 0x1f, - 0xe2, 0x3a, 0x7c, 0x8e, 0x49, 0xd8, 0xc3, 0x90, 0x24, 0xec, 0xad, 0xe1, 0x65, 0x8d, 0x4b, 0xc9, - 0xf6, 0xfc, 0x0e, 0xe6, 0xcd, 0xe1, 0xf9, 0xc6, 0x68, 0xc1, 0x89, 0xad, 0xf8, 0xdb, 0xcc, 0x9a, - 0x7e, 0x97, 0x02, 0x21, 0x6e, 0xf5, 0xcc, 0x87, 0x88, 0x30, 0xd5, 0xd4, 0xd4, 0x03, 0x45, 0xef, - 0xe0, 0x16, 0x8b, 0xfe, 0xdf, 0x18, 0x66, 0xf3, 0x98, 0x03, 0x29, 0xd9, 0xb4, 0x62, 0x9f, 0x0d, - 0xca, 0xc1, 0x44, 0x07, 0x1b, 0x86, 0x7c, 0x68, 0x8b, 0x65, 0x7f, 0xf2, 0x9f, 0x27, 0x61, 0xca, - 0x21, 0x41, 0x6a, 0x40, 0x83, 0xa9, 0xfb, 0xda, 0x7a, 0x16, 0x01, 0x9e, 0x5d, 0x99, 0x13, 0xcf, - 0xa0, 0xcc, 0x2d, 0x8f, 0x32, 0x53, 0x73, 0xd8, 0x7c, 0x26, 0xb1, 0x63, 0xf4, 0xfa, 0x5b, 0x57, - 0x40, 0xe1, 0xbf, 0x00, 0x55, 0x15, 0x83, 0x65, 0x51, 0x8e, 0x5b, 0xb2, 0x92, 0x26, 0xf9, 0xa9, - 0x84, 0x55, 0x53, 0x57, 0x58, 0xb8, 0x9e, 0x16, 0xa1, 0x23, 0x3f, 0x2d, 0x53, 0x88, 0x15, 0xd2, - 0x1b, 0xa6, 0xac, 0x9b, 0x8a, 0x7a, 0x28, 0x99, 0xda, 0x27, 0xd8, 0x29, 0xba, 0xda, 0xd0, 0x86, - 0x05, 0x14, 0xbe, 0x4e, 0xc0, 0x9c, 0x87, 0x3d, 0xd3, 0xc9, 0x5b, 0x30, 0xd1, 0xe7, 0xed, 0x09, - 0xe3, 0x43, 0xb0, 0xf3, 0x74, 0xdb, 0x6c, 0x0a, 0xb4, 0x02, 0xa0, 0xe2, 0xa7, 0xa6, 0x67, 0xde, - 0x29, 0x0b, 0x42, 0xe6, 0xe4, 0xbf, 0xcb, 0x39, 0x49, 0xb7, 0x29, 0x9b, 0x3d, 0x03, 0x5d, 0x03, - 0xc4, 0x5c, 0x34, 0x6e, 0x49, 0xec, 0x8e, 0xa1, 0xf3, 0x4e, 0x89, 0x59, 0x67, 0xa4, 0x46, 0x6e, - 0x1b, 0x03, 0x6d, 0x39, 0xf5, 0xcc, 0xa6, 0xa6, 0xb6, 0x14, 0xb3, 0x5f, 0xcf, 0x3c, 0x13, 0x48, - 0x10, 0xe8, 0x70, 0x31, 0xf9, 0xd3, 0x22, 0x67, 0x57, 0x30, 0x1d, 0x28, 0xff, 0x04, 0xd2, 0xf4, - 0x38, 0x86, 0xcc, 0xdb, 0xd1, 0x7b, 0x30, 0x6e, 0x10, 0x89, 0xfd, 0x35, 0x8a, 0xb0, 0x3d, 0x71, - 0xaf, 0x50, 0x64, 0x74, 0xc2, 0x3b, 0xc0, 0xf7, 0x2f, 0xa6, 0x2d, 0x6c, 0x0e, 0x7f, 0xfd, 0x6e, - 0x58, 0x6b, 0x10, 0x3e, 0x4d, 0xc0, 0x52, 0x28, 0x83, 0xd1, 0x2a, 0x10, 0x68, 0xdb, 0xb7, 0x92, - 0x57, 0x83, 0x37, 0x76, 0x80, 0x79, 0xe8, 0x8a, 0xf8, 0xff, 0x3b, 0xd9, 0x61, 0x16, 0x47, 0x3e, - 0xcc, 0xc0, 0x39, 0xd2, 0x9d, 0xf9, 0x3c, 0x01, 0x68, 0x0b, 0x9b, 0x4e, 0xaa, 0xcc, 0xb6, 0x34, - 0xc2, 0xdf, 0x70, 0xcf, 0xe0, 0x6f, 0xde, 0xf7, 0xf8, 0x1b, 0xea, 0xb1, 0xae, 0xba, 0x3a, 0x14, - 0xbe, 0xa9, 0x63, 0x6f, 0xcb, 0x88, 0xf4, 0x94, 0xc6, 0xfc, 0xc3, 0xa5, 0xa7, 0x27, 0x74, 0x2b, - 0x9b, 0x30, 0xe7, 0x91, 0x99, 0x29, 0xd0, 0x75, 0x40, 0xf2, 0x91, 0xac, 0xb4, 0x65, 0x4b, 0x2e, - 0x3b, 0xfb, 0x67, 0xd5, 0x80, 0xd3, 0xce, 0x88, 0x4d, 0x26, 0x08, 0xee, 0xa0, 0x92, 0xf1, 0xf3, - 0x77, 0x4c, 0xda, 0xee, 0x60, 0x2c, 0x80, 0xc3, 0xe6, 0xdd, 0x0a, 0xed, 0x9a, 0x5c, 0x0c, 0xaa, - 0x25, 0x6b, 0x21, 0x44, 0x36, 0x50, 0xfe, 0x96, 0x74, 0x5b, 0x48, 0x00, 0x1b, 0xdd, 0x82, 0xa4, - 0xde, 0x6d, 0x32, 0xf3, 0x78, 0x79, 0x08, 0xfe, 0x79, 0x71, 0xb7, 0xb4, 0x3d, 0x26, 0x5a, 0x54, - 0xfc, 0x3f, 0x12, 0x90, 0x14, 0x77, 0x4b, 0xe8, 0x3d, 0x4f, 0x37, 0xe1, 0xda, 0x90, 0x5c, 0xdc, - 0xcd, 0x84, 0xcf, 0x12, 0x61, 0xdd, 0x84, 0x1c, 0xcc, 0x97, 0xc4, 0x72, 0xa1, 0x51, 0x96, 0x36, - 0xcb, 0xd5, 0x72, 0xa3, 0x2c, 0xd1, 0x6e, 0x47, 0x96, 0x43, 0xcb, 0x90, 0xdb, 0xdd, 0x2b, 0x56, - 0x2b, 0xf5, 0x6d, 0x69, 0xaf, 0x66, 0xff, 0x62, 0xa3, 0x09, 0x94, 0x85, 0xe9, 0x6a, 0xa5, 0xde, - 0x60, 0x80, 0x7a, 0x36, 0x69, 0x41, 0xb6, 0xca, 0x0d, 0xa9, 0x54, 0xd8, 0x2d, 0x94, 0x2a, 0x8d, - 0x87, 0xd9, 0x14, 0xe2, 0x61, 0xd1, 0xcb, 0xbb, 0x5e, 0x2b, 0xec, 0xd6, 0xb7, 0x77, 0x1a, 0xd9, - 0x34, 0x42, 0x30, 0x4b, 0xe8, 0x6d, 0x50, 0x3d, 0x3b, 0x6e, 0x71, 0x28, 0x55, 0x77, 0x6a, 0x8e, - 0x0c, 0x13, 0x68, 0x1e, 0xb2, 0xf6, 0xcc, 0x62, 0xb9, 0xb0, 0x49, 0x2a, 0x5d, 0x93, 0xe8, 0x34, - 0xcc, 0x94, 0x3f, 0xdc, 0x2d, 0xd4, 0x36, 0x6d, 0xc4, 0x29, 0xb4, 0x0a, 0xcb, 0x6e, 0x71, 0x24, - 0x46, 0x55, 0xde, 0x24, 0xf5, 0xae, 0x7a, 0x16, 0xd0, 0x59, 0xc8, 0xb2, 0x46, 0x4e, 0x69, 0xa7, - 0xb6, 0x59, 0x69, 0x54, 0x76, 0x6a, 0xd9, 0x0c, 0x6f, 0x19, 0x32, 0x9a, 0x03, 0xb0, 0x24, 0x67, - 0xcc, 0xa6, 0x09, 0xd0, 0xa9, 0xbc, 0x7e, 0x95, 0x80, 0x05, 0x5a, 0x7a, 0xb5, 0x0b, 0xbd, 0xb6, - 0xa1, 0xaf, 0x41, 0x96, 0x16, 0x8b, 0x24, 0xbf, 0x0b, 0x9d, 0xa5, 0xf0, 0xfb, 0x76, 0xd0, 0x6e, - 0xb7, 0x49, 0x12, 0xae, 0x36, 0x49, 0xc5, 0x9f, 0xc2, 0x5c, 0xf5, 0x36, 0x14, 0x7c, 0xb3, 0xc5, - 0x65, 0xc5, 0xf7, 0x42, 0x62, 0xec, 0xeb, 0xf1, 0xdc, 0xe2, 0xe2, 0x8f, 0x93, 0xa4, 0xc0, 0x27, - 0x74, 0x11, 0x77, 0x60, 0xd1, 0x2f, 0x2f, 0xb3, 0xd6, 0x6b, 0x81, 0xb2, 0xbf, 0xe3, 0xb3, 0x1c, - 0x5c, 0x07, 0x43, 0xf8, 0x33, 0x07, 0x93, 0x36, 0xd8, 0x8a, 0x0d, 0x0c, 0xe5, 0x7f, 0xb0, 0xa7, - 0xcc, 0x38, 0x65, 0x41, 0x9c, 0xaa, 0xa5, 0xbb, 0x60, 0x9f, 0xf0, 0x17, 0xec, 0x43, 0xcf, 0x39, - 0x19, 0x7a, 0xce, 0xef, 0xc2, 0x4c, 0xd3, 0x12, 0x5f, 0xd1, 0x54, 0xc9, 0x54, 0x3a, 0x76, 0x15, - 0x31, 0xd8, 0x60, 0x6b, 0xd8, 0x5d, 0x71, 0x71, 0xda, 0x26, 0xb0, 0x40, 0x68, 0x15, 0xa6, 0x49, - 0xc3, 0x4d, 0x32, 0x35, 0xa9, 0x67, 0xe0, 0x5c, 0x9a, 0xd4, 0x54, 0x80, 0xc0, 0x1a, 0xda, 0x9e, - 0x81, 0x85, 0xdf, 0x72, 0xb0, 0x40, 0x4b, 0x45, 0x7e, 0x75, 0x1c, 0xd4, 0x78, 0x70, 0x6b, 0x9c, - 0xef, 0x2a, 0x09, 0x65, 0xf8, 0xa2, 0x32, 0xe5, 0x1c, 0x2c, 0xfa, 0xe7, 0x63, 0xe9, 0xf1, 0x17, - 0x09, 0x98, 0xb7, 0xe2, 0x1a, 0x7b, 0xe0, 0x79, 0x87, 0x9e, 0x23, 0x9c, 0xa4, 0x6f, 0x33, 0x53, - 0x81, 0xcd, 0xdc, 0xf6, 0x27, 0x9f, 0x57, 0xdc, 0x91, 0x99, 0x7f, 0x05, 0x2f, 0x6a, 0x2f, 0x3f, - 0xe3, 0x60, 0xc1, 0x37, 0x1f, 0xb3, 0x97, 0xb7, 0xfd, 0xd1, 0xf4, 0xc5, 0x08, 0xf9, 0x9e, 0x29, - 0x9e, 0xbe, 0x69, 0xc7, 0xb1, 0xa3, 0x99, 0xe5, 0x9f, 0x12, 0xb0, 0xd2, 0xbf, 0xb1, 0x48, 0xcb, - 0xbb, 0x35, 0x42, 0x39, 0xe8, 0x64, 0x9d, 0xe5, 0x0f, 0xfc, 0x0e, 0x77, 0x3d, 0x78, 0x89, 0x86, - 0x88, 0x14, 0xe7, 0x78, 0x43, 0xab, 0xa8, 0xa9, 0x51, 0xab, 0xa8, 0x27, 0xd2, 0x80, 0xff, 0x75, - 0x17, 0x88, 0xbd, 0xe2, 0x33, 0x4d, 0x18, 0xb2, 0xd3, 0xf2, 0x26, 0x9c, 0x21, 0xa1, 0xb3, 0xf3, - 0x62, 0xc3, 0xee, 0x23, 0x53, 0x97, 0x38, 0x29, 0x2e, 0x58, 0xc3, 0xce, 0x33, 0x05, 0xd6, 0x5d, - 0x68, 0x09, 0xdf, 0xa4, 0x60, 0xd1, 0x0a, 0xad, 0xeb, 0xa6, 0x7c, 0x38, 0x4a, 0xdd, 0xfd, 0x3f, - 0x83, 0x65, 0xcc, 0x84, 0xf7, 0x58, 0xc2, 0xb9, 0x0e, 0x53, 0xbd, 0x44, 0x79, 0x98, 0x33, 0x4c, - 0xf9, 0x90, 0xb8, 0x03, 0x59, 0x3f, 0xc4, 0xa6, 0xd4, 0x95, 0xcd, 0xc7, 0xcc, 0xd6, 0x4f, 0xb3, - 0xa1, 0x06, 0x19, 0xd9, 0x95, 0xcd, 0xc7, 0xcf, 0xe9, 0x20, 0xd1, 0xfb, 0x7e, 0xa7, 0xf0, 0xca, - 0x80, 0xb5, 0xc4, 0xe8, 0xd6, 0x87, 0x11, 0xa5, 0xee, 0xd7, 0x06, 0xb0, 0x1c, 0x5c, 0xe2, 0x3e, - 0x79, 0x69, 0xf7, 0x5b, 0xae, 0x92, 0x9f, 0x85, 0x33, 0x81, 0xc5, 0xb3, 0x2b, 0xe4, 0x10, 0x72, - 0xd6, 0xd0, 0x9e, 0x6a, 0x8c, 0xa8, 0x8e, 0x11, 0x1a, 0x93, 0x88, 0xd0, 0x18, 0x61, 0x09, 0xce, - 0x86, 0x4c, 0xc4, 0xa4, 0xf8, 0x75, 0x9a, 0x8a, 0x31, 0x7a, 0xc3, 0xe6, 0xa3, 0x28, 0xab, 0x78, - 0xc3, 0x7d, 0xec, 0xa1, 0xbd, 0x8d, 0x17, 0x61, 0x17, 0xe7, 0x21, 0xe3, 0xc6, 0x63, 0xd7, 0xa0, - 0x39, 0xc0, 0x70, 0xd2, 0x27, 0xea, 0x23, 0x8d, 0xfb, 0xfa, 0x48, 0xd5, 0xbe, 0x51, 0x4d, 0x78, - 0x43, 0xdb, 0xc8, 0xad, 0x88, 0x31, 0xab, 0x47, 0x01, 0xb3, 0x9a, 0xf4, 0x36, 0xa7, 0x22, 0x99, - 0xfe, 0x1b, 0x18, 0x16, 0x53, 0xea, 0xd0, 0xae, 0x91, 0xf0, 0x08, 0x78, 0xaa, 0xf1, 0xa3, 0xf7, - 0x71, 0x7c, 0x6a, 0x94, 0xf0, 0xab, 0x91, 0xb0, 0x02, 0x4b, 0xa1, 0xbc, 0xd9, 0xd4, 0xdf, 0xe3, - 0xa8, 0x60, 0x4e, 0x81, 0xa8, 0x6e, 0xca, 0xa6, 0x31, 0xec, 0xd4, 0x6c, 0xd0, 0x3d, 0x35, 0x05, - 0x11, 0x0d, 0x1e, 0xd1, 0x24, 0x84, 0x1f, 0x71, 0x74, 0x1f, 0xfc, 0xb2, 0xb0, 0xdb, 0xf6, 0x0a, - 0xa4, 0x7b, 0xa4, 0x06, 0x4e, 0xa3, 0xae, 0x39, 0xaf, 0x11, 0xec, 0x59, 0x43, 0x22, 0xc5, 0x78, - 0x6e, 0x55, 0x45, 0xe1, 0x0b, 0x0e, 0x32, 0x2e, 0xfe, 0x68, 0x19, 0xa6, 0x9c, 0xba, 0x89, 0x9d, - 0xef, 0x38, 0x00, 0xeb, 0xf8, 0x4d, 0xcd, 0x94, 0xdb, 0xec, 0x7d, 0x06, 0xfd, 0xb0, 0x52, 0xd4, - 0x9e, 0x81, 0x69, 0x38, 0x9c, 0x14, 0xc9, 0x6f, 0x74, 0x0d, 0x52, 0x3d, 0x55, 0x31, 0x89, 0xd9, - 0xcf, 0xfa, 0xed, 0x99, 0x4c, 0x95, 0xdf, 0x53, 0x15, 0x53, 0x24, 0x58, 0xc2, 0x55, 0x48, 0x59, - 0x5f, 0xde, 0xf2, 0xc2, 0x14, 0xa4, 0x8b, 0x0f, 0x1b, 0xe5, 0x7a, 0x96, 0x43, 0x00, 0xe3, 0x15, - 0x9a, 0x8c, 0x27, 0x84, 0xaa, 0xfd, 0x5c, 0xd2, 0x59, 0x84, 0xe5, 0x02, 0xe4, 0x7d, 0x55, 0xd3, - 0x3b, 0x72, 0x9b, 0xc8, 0x3c, 0x29, 0x3a, 0xdf, 0xd1, 0xad, 0x05, 0x5a, 0x88, 0x5b, 0x76, 0x4e, - 0x24, 0xac, 0x18, 0xf4, 0x31, 0xd5, 0xad, 0xa8, 0x32, 0x50, 0x21, 0xb4, 0x0c, 0xb4, 0xe2, 0xb9, - 0x65, 0x07, 0x14, 0x80, 0x7e, 0x98, 0x80, 0x85, 0x50, 0x3c, 0x74, 0xd3, 0x5d, 0xfa, 0xb9, 0x10, - 0xcb, 0xd3, 0x5d, 0xf4, 0xf9, 0x15, 0x47, 0x8b, 0x3e, 0x1b, 0x9e, 0xa2, 0xcf, 0xe5, 0x81, 0xf4, - 0xee, 0x72, 0xcf, 0x93, 0x88, 0x6a, 0x4f, 0xbd, 0x51, 0xd8, 0x2a, 0x4b, 0x7b, 0x35, 0xfa, 0xd7, - 0xa9, 0xf6, 0xcc, 0x43, 0xb6, 0x5f, 0x03, 0x91, 0xea, 0x8d, 0x42, 0xa3, 0x9e, 0x4d, 0x04, 0x2b, - 0x2d, 0xc9, 0xd0, 0x3a, 0x4a, 0xca, 0x5b, 0x32, 0x99, 0x07, 0xc4, 0x76, 0xdc, 0xfd, 0x82, 0xfb, - 0x67, 0x1c, 0xcc, 0x79, 0xc0, 0xec, 0x00, 0x5c, 0x4d, 0x5e, 0xce, 0xd3, 0xe4, 0xbd, 0x01, 0xf3, - 0x56, 0xd6, 0x47, 0xb5, 0xdd, 0x90, 0xba, 0x58, 0x27, 0xc5, 0x5d, 0xa6, 0xb7, 0xa7, 0x3b, 0xf2, - 0x53, 0x56, 0x00, 0xdf, 0xc5, 0xba, 0xc5, 0xf8, 0x39, 0x94, 0x38, 0x85, 0x1f, 0x24, 0x68, 0x6c, - 0x31, 0x72, 0x6e, 0x32, 0xd0, 0xcf, 0x04, 0x93, 0x97, 0xe4, 0x08, 0xc9, 0x4b, 0x84, 0x97, 0x4a, - 0x8d, 0x14, 0xd0, 0x8e, 0x7c, 0x2f, 0x0b, 0x05, 0x1a, 0xc7, 0x9c, 0x20, 0xaf, 0x58, 0xff, 0x27, - 0x07, 0x93, 0x95, 0x16, 0x56, 0x4d, 0xcb, 0x1e, 0x6a, 0x30, 0xe3, 0x79, 0x58, 0x8f, 0x96, 0x23, - 0xde, 0xdb, 0x93, 0x1d, 0xe7, 0x57, 0x62, 0x5f, 0xe3, 0x0b, 0x63, 0xe8, 0xc0, 0xf5, 0x4f, 0x01, - 0x9e, 0xca, 0xf9, 0x4b, 0x01, 0xca, 0x10, 0xd7, 0xc0, 0x5f, 0x1a, 0x80, 0xe5, 0xcc, 0xf3, 0x26, - 0xa4, 0xc9, 0x13, 0x6a, 0x34, 0xef, 0x3c, 0xe3, 0x76, 0xbd, 0xb0, 0xe6, 0x17, 0x7c, 0x50, 0x9b, - 0x6e, 0xfd, 0x0f, 0x53, 0x00, 0xfd, 0xf4, 0x0c, 0xdd, 0x85, 0x69, 0xf7, 0x2b, 0x4e, 0xb4, 0x14, - 0xf3, 0x86, 0x98, 0x5f, 0x0e, 0x1f, 0x74, 0x64, 0xba, 0x0b, 0xd3, 0xee, 0x37, 0x43, 0x7d, 0x66, - 0x21, 0xef, 0x96, 0xfa, 0xcc, 0x42, 0x9f, 0x19, 0x8d, 0xa1, 0x36, 0x9c, 0x89, 0x78, 0x35, 0x82, - 0x2e, 0x0f, 0xf7, 0xb6, 0x86, 0x7f, 0x79, 0xc8, 0xe7, 0x27, 0xc2, 0x18, 0xd2, 0xe1, 0x6c, 0xe4, - 0x63, 0x09, 0xb4, 0x36, 0xec, 0x53, 0x0e, 0xfe, 0xca, 0x10, 0x98, 0xce, 0x9c, 0x3d, 0xe0, 0xa3, - 0x3b, 0xb4, 0xe8, 0xca, 0xd0, 0x4f, 0x07, 0xf8, 0xab, 0xc3, 0x37, 0x7c, 0x85, 0x31, 0xb4, 0x0d, - 0x19, 0x57, 0xab, 0x0e, 0xf1, 0xa1, 0xfd, 0x3b, 0xca, 0x78, 0x29, 0xa6, 0xb7, 0x47, 0x39, 0xb9, - 0xda, 0x27, 0x7d, 0x4e, 0xc1, 0x3e, 0x50, 0x9f, 0x53, 0x48, 0xbf, 0xc5, 0xbf, 0xfd, 0xbe, 0x7b, - 0x31, 0x6c, 0xfb, 0xc3, 0x2f, 0xd6, 0xb0, 0xed, 0x8f, 0xb8, 0x64, 0x85, 0x31, 0xf4, 0x01, 0xcc, - 0x7a, 0x2b, 0xbb, 0x68, 0x25, 0xb6, 0x42, 0xcd, 0x9f, 0x8b, 0x1a, 0x76, 0xb3, 0xf4, 0x16, 0x12, - 0xfb, 0x2c, 0x43, 0x0b, 0x9a, 0x7d, 0x96, 0x11, 0xf5, 0xc7, 0x31, 0xcb, 0x3f, 0x79, 0xca, 0x63, - 0x7d, 0xff, 0x14, 0x56, 0xd5, 0xeb, 0xfb, 0xa7, 0xd0, 0x9a, 0x9a, 0x30, 0x86, 0x14, 0x58, 0x0c, - 0xaf, 0xce, 0xa0, 0x4b, 0x43, 0x15, 0x9f, 0xf8, 0xcb, 0x83, 0xd0, 0x9c, 0xa9, 0x9a, 0x30, 0x17, - 0xd2, 0x49, 0x45, 0x42, 0x6c, 0x9b, 0x95, 0x4e, 0x72, 0x71, 0x88, 0x56, 0xac, 0x60, 0xdd, 0xf0, - 0xeb, 0x7f, 0x4d, 0x43, 0x8a, 0x5c, 0xb5, 0x0d, 0x38, 0xe5, 0x4b, 0xc1, 0xd1, 0xb9, 0xf8, 0xc2, - 0x04, 0x7f, 0x3e, 0x72, 0xdc, 0x59, 0xc3, 0x23, 0x38, 0x1d, 0x48, 0xaa, 0xd1, 0xaa, 0x9b, 0x2e, - 0x2c, 0xb1, 0xe7, 0x2f, 0xc4, 0x60, 0xf8, 0x79, 0x7b, 0x7d, 0xdb, 0xea, 0xa0, 0xac, 0xcf, 0xcb, - 0x3b, 0xca, 0x9f, 0x7d, 0x4c, 0x23, 0x1b, 0xbf, 0x27, 0x13, 0xbc, 0x72, 0x85, 0xfa, 0xb0, 0x8b, - 0xb1, 0x38, 0xce, 0x0c, 0x1f, 0x39, 0x21, 0x95, 0x2b, 0xe9, 0x40, 0x1e, 0xe1, 0x42, 0x93, 0x23, - 0x5e, 0x88, 0x43, 0x71, 0xd8, 0x3f, 0x80, 0xac, 0xff, 0x9e, 0x47, 0x9e, 0xf3, 0x0a, 0xd3, 0xcd, - 0xd5, 0x68, 0x04, 0xff, 0xce, 0xf8, 0x9d, 0x8c, 0x5f, 0xaa, 0x30, 0xf7, 0x72, 0x31, 0x16, 0xc7, - 0xed, 0x16, 0x5d, 0x51, 0x65, 0xdf, 0x2d, 0x06, 0x23, 0xd0, 0xbe, 0x5b, 0x0c, 0x09, 0x43, 0x85, - 0xb1, 0x8d, 0xdb, 0x00, 0x72, 0xbb, 0xfb, 0x58, 0x96, 0xb0, 0xda, 0xeb, 0xa0, 0xe5, 0x40, 0xd3, - 0xa6, 0xac, 0xf6, 0x3a, 0x3b, 0x5d, 0x2b, 0x59, 0x31, 0x72, 0xbf, 0x98, 0x24, 0x29, 0xca, 0x14, - 0x21, 0xb0, 0x06, 0x36, 0xaa, 0x90, 0xed, 0x53, 0x4b, 0x24, 0xa7, 0x46, 0x17, 0x42, 0x79, 0x90, - 0xff, 0xac, 0xf2, 0x31, 0x9a, 0x75, 0x18, 0x91, 0xd1, 0x8d, 0xb7, 0x01, 0x9a, 0x86, 0x22, 0xd1, - 0xaa, 0x05, 0x5a, 0x09, 0xf0, 0xb9, 0xa3, 0xe0, 0x76, 0xcb, 0xe6, 0xf1, 0x73, 0x26, 0x4c, 0xd3, - 0x50, 0x68, 0xf1, 0x60, 0xe3, 0x5d, 0xc8, 0x50, 0x61, 0x0e, 0x2c, 0xbc, 0x41, 0xf4, 0x4c, 0x06, - 0xba, 0x7a, 0x32, 0xb2, 0x51, 0x86, 0x19, 0xca, 0x80, 0x25, 0x5a, 0xe8, 0x7c, 0x80, 0xc5, 0x3d, - 0x3a, 0xe2, 0x63, 0x32, 0x4d, 0xc8, 0xd8, 0xd8, 0x46, 0x11, 0xa6, 0x6d, 0x36, 0xe6, 0x63, 0xad, - 0x85, 0xce, 0x85, 0x70, 0xb1, 0x06, 0x7c, 0x4c, 0x32, 0x8c, 0x89, 0x35, 0xd4, 0x17, 0xc5, 0xfe, - 0xef, 0xc2, 0xa0, 0x28, 0x2c, 0x19, 0x0a, 0x15, 0x85, 0x8d, 0x15, 0xd3, 0x8f, 0x92, 0x4d, 0x43, - 0xd9, 0x1f, 0x27, 0x44, 0xaf, 0xff, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x60, 0x93, 0x14, 0xd0, 0x0a, - 0x3b, 0x00, 0x00, + 0xb5, 0x9a, 0x21, 0xa9, 0xcf, 0xa1, 0x24, 0xd3, 0x57, 0x1f, 0xd3, 0x23, 0xc9, 0x96, 0xc7, 0xb1, + 0x23, 0x3b, 0x36, 0x9d, 0x28, 0x71, 0xf0, 0x22, 0x3b, 0x1f, 0x92, 0xa2, 0x25, 0xc6, 0x34, 0xa5, + 0x0c, 0x29, 0x3b, 0xf6, 0x7b, 0xc1, 0x64, 0x44, 0x5e, 0xc9, 0x83, 0x90, 0x33, 0xf4, 0xcc, 0x50, + 0xcf, 0x7a, 0x9b, 0xf7, 0xf0, 0x8a, 0x2e, 0x8a, 0xb6, 0x40, 0x77, 0xe9, 0xae, 0x45, 0xdb, 0x55, + 0x91, 0x20, 0x9b, 0x16, 0x5d, 0x16, 0xe8, 0xb2, 0x40, 0x81, 0xa2, 0x9b, 0x16, 0xed, 0x22, 0xfb, + 0x20, 0x05, 0xb2, 0xea, 0xa2, 0xab, 0x62, 0xee, 0xbd, 0x33, 0x9c, 0x2f, 0x3f, 0x96, 0x8d, 0x2c, + 0xba, 0x12, 0xe7, 0xdc, 0x73, 0xce, 0x3d, 0xf7, 0xde, 0x73, 0xce, 0x3d, 0x9f, 0x2b, 0xb8, 0x79, + 0xa8, 0x5a, 0x8f, 0xbb, 0xfb, 0xb9, 0x86, 0xde, 0xbe, 0xd1, 0xd0, 0x35, 0x4b, 0x51, 0x35, 0x6c, + 0x5c, 0x37, 0x2d, 0xdd, 0x50, 0x0e, 0xf1, 0x75, 0x55, 0xb3, 0xb0, 0x71, 0xa0, 0x34, 0xf0, 0x0d, + 0xb3, 0x83, 0x1b, 0x37, 0x1a, 0xa6, 0x9a, 0xeb, 0x18, 0xba, 0xa5, 0xa3, 0x71, 0xfb, 0xe7, 0xd1, + 0x6b, 0xc2, 0xea, 0xa1, 0xae, 0x1f, 0xb6, 0xf0, 0x0d, 0x02, 0xdd, 0xef, 0x1e, 0xdc, 0x68, 0x62, + 0xb3, 0x61, 0xa8, 0x1d, 0x4b, 0x37, 0x28, 0xa6, 0x70, 0x3e, 0x88, 0x61, 0xa9, 0x6d, 0x6c, 0x5a, + 0x4a, 0xbb, 0xc3, 0x10, 0xce, 0x05, 0x11, 0xfe, 0xdb, 0x50, 0x3a, 0x1d, 0x6c, 0x98, 0x74, 0x5c, + 0x5c, 0x84, 0xf9, 0x2d, 0x6c, 0xed, 0xb6, 0xba, 0x87, 0xaa, 0x56, 0xd6, 0x0e, 0x74, 0x09, 0x3f, + 0xe9, 0x62, 0xd3, 0x12, 0xff, 0xc2, 0xc1, 0x42, 0x60, 0xc0, 0xec, 0xe8, 0x9a, 0x89, 0x11, 0x82, + 0xa4, 0xa6, 0xb4, 0x71, 0x96, 0x5b, 0xe5, 0xd6, 0xa6, 0x24, 0xf2, 0x1b, 0x5d, 0x82, 0xd9, 0x23, + 0xac, 0x35, 0x75, 0x43, 0x3e, 0xc2, 0x86, 0xa9, 0xea, 0x5a, 0x96, 0x27, 0xa3, 0x33, 0x14, 0x7a, + 0x9f, 0x02, 0xd1, 0x16, 0x4c, 0xb6, 0x15, 0x4d, 0x3d, 0xc0, 0xa6, 0x95, 0x4d, 0xac, 0x26, 0xd6, + 0xd2, 0xeb, 0xaf, 0xe4, 0xe8, 0x52, 0x73, 0x91, 0x73, 0xe5, 0xee, 0x31, 0xec, 0x92, 0x66, 0x19, + 0xc7, 0x92, 0x4b, 0x2c, 0xdc, 0x82, 0x19, 0xdf, 0x10, 0xca, 0x40, 0xe2, 0x13, 0x7c, 0xcc, 0x64, + 0xb2, 0x7f, 0xa2, 0x79, 0x48, 0x1d, 0x29, 0xad, 0x2e, 0x66, 0x92, 0xd0, 0x8f, 0x0d, 0xfe, 0x3f, + 0x38, 0xf1, 0x1c, 0x2c, 0xbb, 0xb3, 0x15, 0x95, 0x8e, 0xb2, 0xaf, 0xb6, 0x54, 0x4b, 0xc5, 0xa6, + 0xb3, 0xf4, 0x8f, 0x60, 0x25, 0x66, 0x9c, 0xed, 0xc0, 0x6d, 0x98, 0x6e, 0x78, 0xe0, 0x59, 0x8e, + 0x2c, 0x25, 0xeb, 0x2c, 0x25, 0x40, 0x79, 0x2c, 0xf9, 0xb0, 0xc5, 0x3f, 0x25, 0x20, 0x13, 0x44, + 0x41, 0xb7, 0x61, 0xc2, 0xc4, 0xc6, 0x91, 0xda, 0xa0, 0xfb, 0x9a, 0x5e, 0x5f, 0x8d, 0xe3, 0x96, + 0xab, 0x51, 0xbc, 0xed, 0x31, 0xc9, 0x21, 0x41, 0x0f, 0x21, 0x73, 0xa4, 0xb7, 0xba, 0x6d, 0x2c, + 0xe3, 0xa7, 0x1d, 0x45, 0x73, 0x0f, 0x20, 0xbd, 0xbe, 0x16, 0xcb, 0xe6, 0x3e, 0x21, 0x28, 0x39, + 0xf8, 0x05, 0x3e, 0xcb, 0x6d, 0x8f, 0x49, 0xa7, 0x8e, 0xfc, 0x60, 0xe1, 0x53, 0x0e, 0x26, 0xd8, + 0x8c, 0xe8, 0x2d, 0x48, 0x5a, 0xc7, 0x1d, 0x2a, 0xe1, 0xec, 0xfa, 0xa5, 0x41, 0x12, 0xe6, 0xea, + 0xc7, 0x1d, 0x2c, 0x11, 0x12, 0xf1, 0x03, 0x48, 0xda, 0x5f, 0x28, 0x0d, 0x13, 0x7b, 0xd5, 0xbb, + 0xd5, 0x9d, 0x07, 0xd5, 0xcc, 0x18, 0x5a, 0x04, 0x54, 0xdc, 0xa9, 0xd6, 0xa5, 0x9d, 0x4a, 0xa5, + 0x24, 0xc9, 0xb5, 0x92, 0x74, 0xbf, 0x5c, 0x2c, 0x65, 0x38, 0xf4, 0x12, 0xac, 0xde, 0xdf, 0xa9, + 0xec, 0xdd, 0x2b, 0xc9, 0xf9, 0x62, 0xb1, 0x54, 0xab, 0x95, 0x0b, 0xe5, 0x4a, 0xb9, 0xfe, 0x50, + 0x2e, 0xee, 0x54, 0x6b, 0x75, 0x29, 0x5f, 0xae, 0xd6, 0x6b, 0x19, 0x5e, 0xf8, 0x7f, 0x0e, 0x4e, + 0x05, 0x16, 0x81, 0xf2, 0x3e, 0x09, 0xaf, 0x0f, 0xbb, 0x78, 0xaf, 0xa4, 0xd7, 0xa2, 0x24, 0x05, + 0x18, 0xdf, 0xa9, 0x56, 0xca, 0x55, 0x5b, 0xba, 0x34, 0x4c, 0xec, 0xdc, 0xb9, 0x43, 0x3e, 0xf8, + 0xc2, 0x38, 0x9d, 0x50, 0x9c, 0x85, 0xe9, 0x5d, 0x43, 0xdf, 0xc7, 0x8e, 0x0e, 0xe5, 0x61, 0x86, + 0x7d, 0x33, 0x9d, 0x79, 0x15, 0x52, 0x06, 0x56, 0x9a, 0xc7, 0xec, 0x78, 0x85, 0x1c, 0xb5, 0xcb, + 0x9c, 0x63, 0x97, 0xb9, 0x82, 0xae, 0xb7, 0xee, 0xdb, 0x3a, 0x2a, 0x51, 0x44, 0xf1, 0x9b, 0x24, + 0xcc, 0x15, 0x0d, 0xac, 0x58, 0x98, 0x4a, 0xcb, 0x58, 0x47, 0xda, 0xdf, 0x6d, 0x98, 0xb5, 0x75, + 0xac, 0xa1, 0x5a, 0xc7, 0xb2, 0xa1, 0x68, 0x87, 0x98, 0x1d, 0xff, 0x82, 0xb3, 0x03, 0x45, 0x36, + 0x2a, 0xd9, 0x83, 0xd2, 0x4c, 0xc3, 0xfb, 0x89, 0xca, 0x30, 0xc7, 0xd4, 0xc7, 0xa7, 0xd6, 0x09, + 0xbf, 0x5a, 0x53, 0x29, 0x3c, 0x6a, 0x8d, 0x8e, 0xfc, 0x10, 0x15, 0x9b, 0xe8, 0x2e, 0x40, 0x47, + 0x31, 0x94, 0x36, 0xb6, 0xb0, 0x61, 0x66, 0x93, 0x7e, 0x1b, 0x8f, 0x58, 0x4d, 0x6e, 0xd7, 0xc5, + 0xa6, 0x36, 0xee, 0x21, 0x47, 0x5b, 0xb6, 0x51, 0x34, 0x0c, 0x6c, 0x99, 0xd9, 0x14, 0xe1, 0xb4, + 0xd6, 0x8f, 0x53, 0x8d, 0xa2, 0x12, 0x36, 0x85, 0xc4, 0x8f, 0x0b, 0x9c, 0xe4, 0x50, 0xa3, 0x1d, + 0x58, 0x70, 0x16, 0xa8, 0x6b, 0x16, 0xd6, 0x2c, 0xd9, 0xd4, 0xbb, 0x46, 0x03, 0x67, 0xc7, 0xc9, + 0x2e, 0x2d, 0x05, 0x96, 0x48, 0x71, 0x6a, 0x04, 0x45, 0x62, 0x5b, 0xe3, 0x03, 0xa2, 0x47, 0x20, + 0x28, 0x8d, 0x06, 0x36, 0x4d, 0x95, 0xee, 0x85, 0x6c, 0xe0, 0x27, 0x5d, 0xd5, 0xc0, 0x6d, 0xac, + 0x59, 0x66, 0x76, 0xc2, 0xcf, 0xb5, 0xae, 0x77, 0xf4, 0x96, 0x7e, 0x78, 0x2c, 0xf5, 0x70, 0xa4, + 0xb3, 0x3e, 0x72, 0xcf, 0x88, 0x29, 0xbc, 0x0d, 0xa7, 0x02, 0x9b, 0x32, 0x8a, 0x77, 0x13, 0x36, + 0x60, 0xda, 0xbb, 0x13, 0x23, 0x79, 0xc6, 0xef, 0xf3, 0x30, 0x17, 0xb1, 0x07, 0x68, 0x1b, 0x26, + 0x4d, 0x4d, 0xe9, 0x98, 0x8f, 0x75, 0x8b, 0xe9, 0xef, 0xd5, 0x3e, 0x5b, 0x96, 0xab, 0x31, 0x5c, + 0xfa, 0xb9, 0x3d, 0x26, 0xb9, 0xd4, 0xa8, 0x00, 0xe3, 0x74, 0x3f, 0x83, 0xfe, 0x29, 0x8a, 0x0f, + 0x85, 0xb9, 0x5c, 0x18, 0xa5, 0xf0, 0x1a, 0xcc, 0xfa, 0x67, 0x40, 0xe7, 0x21, 0xed, 0xcc, 0x20, + 0xab, 0x4d, 0xb6, 0x56, 0x70, 0x40, 0xe5, 0xa6, 0xf0, 0x0a, 0x4c, 0x7b, 0x99, 0xa1, 0x25, 0x98, + 0x62, 0x0a, 0xe1, 0xa2, 0x4f, 0x52, 0x40, 0xb9, 0xe9, 0xda, 0xf4, 0x3b, 0x30, 0xef, 0xd7, 0x33, + 0x66, 0xca, 0x97, 0xdd, 0x35, 0xd0, 0xbd, 0x98, 0xf5, 0xaf, 0xc1, 0x91, 0x53, 0xfc, 0x65, 0x12, + 0x32, 0x41, 0xa3, 0x41, 0xb7, 0x21, 0xb5, 0xdf, 0xd2, 0x1b, 0x9f, 0x30, 0xda, 0x97, 0xe2, 0xac, + 0x2b, 0x57, 0xb0, 0xb1, 0x28, 0x74, 0x7b, 0x4c, 0xa2, 0x44, 0x36, 0x75, 0x5b, 0xef, 0x6a, 0x16, + 0xdb, 0xbd, 0x78, 0xea, 0x7b, 0x36, 0x56, 0x8f, 0x9a, 0x10, 0xa1, 0x4d, 0x48, 0x53, 0xb5, 0x93, + 0xdb, 0x7a, 0x13, 0x67, 0x13, 0x84, 0xc7, 0xc5, 0x58, 0x1e, 0x79, 0x82, 0x7b, 0x4f, 0x6f, 0x62, + 0x09, 0x14, 0xf7, 0xb7, 0x30, 0x03, 0x69, 0x8f, 0x6c, 0xc2, 0x16, 0xa4, 0x3d, 0x93, 0xa1, 0x33, + 0x30, 0x71, 0x60, 0xca, 0xae, 0x13, 0x9e, 0x92, 0xc6, 0x0f, 0x4c, 0xe2, 0x4f, 0xcf, 0x43, 0x9a, + 0x48, 0x21, 0x1f, 0xb4, 0x94, 0x43, 0x33, 0xcb, 0xaf, 0x26, 0xec, 0x33, 0x22, 0xa0, 0x3b, 0x36, + 0x44, 0xf8, 0x9a, 0x03, 0xe8, 0x4d, 0x89, 0x6e, 0x43, 0x92, 0x48, 0x49, 0x5d, 0xf9, 0xda, 0x10, + 0x52, 0xe6, 0x88, 0xa8, 0x84, 0x4a, 0xfc, 0x09, 0x07, 0x49, 0xc2, 0x26, 0x78, 0xe1, 0xd4, 0xca, + 0xd5, 0xad, 0x4a, 0x49, 0xae, 0xee, 0x6c, 0x96, 0xe4, 0x07, 0x52, 0xb9, 0x5e, 0x92, 0x32, 0x1c, + 0x5a, 0x82, 0x33, 0x5e, 0xb8, 0x54, 0xca, 0x6f, 0x96, 0x24, 0x79, 0xa7, 0x5a, 0x79, 0x98, 0xe1, + 0x91, 0x00, 0x8b, 0xf7, 0xf6, 0x2a, 0xf5, 0x72, 0x78, 0x2c, 0x81, 0x96, 0x21, 0xeb, 0x19, 0x63, + 0x3c, 0x18, 0xdb, 0xa4, 0xcd, 0xd6, 0x33, 0x4a, 0x7f, 0xb2, 0xc1, 0x54, 0x61, 0xc6, 0x3d, 0x0c, + 0xa2, 0x6c, 0x0f, 0x60, 0xc6, 0xe7, 0xa3, 0xed, 0x90, 0x8a, 0x39, 0x95, 0xa6, 0xbc, 0x7f, 0x6c, + 0x91, 0x30, 0x83, 0x5b, 0x4b, 0x48, 0x33, 0x0e, 0xb4, 0x60, 0x03, 0xed, 0x6d, 0x6d, 0xa9, 0x6d, + 0xd5, 0x62, 0x38, 0x3c, 0xc1, 0x01, 0x02, 0x22, 0x08, 0xe2, 0x97, 0x3c, 0x8c, 0xb3, 0xb3, 0xb9, + 0xe4, 0xb9, 0x25, 0x7c, 0x2c, 0x1d, 0x28, 0x65, 0xe9, 0x33, 0x0e, 0xde, 0x6f, 0x1c, 0x68, 0x1b, + 0x66, 0xbd, 0xae, 0xf4, 0xa9, 0x13, 0xc8, 0x5d, 0xf0, 0x1f, 0x90, 0xd7, 0x9e, 0x9f, 0xb2, 0xf0, + 0x6d, 0xe6, 0xc8, 0x0b, 0x43, 0x05, 0x98, 0x0d, 0x78, 0xe3, 0xe4, 0x60, 0x6f, 0x3c, 0xd3, 0xf0, + 0x39, 0xa6, 0x3c, 0xcc, 0x39, 0x8e, 0xb4, 0x85, 0x65, 0x8b, 0x39, 0x5a, 0x76, 0x5b, 0x64, 0x42, + 0x0e, 0x18, 0xf5, 0x90, 0x1d, 0x98, 0xf0, 0x1e, 0xa0, 0xb0, 0xac, 0x23, 0x79, 0xcd, 0x2e, 0xcc, + 0x45, 0xb8, 0x78, 0x94, 0x83, 0x29, 0x72, 0x54, 0xa6, 0x6a, 0x61, 0x16, 0x22, 0x86, 0x25, 0xea, + 0xa1, 0xd8, 0xf8, 0x1d, 0x03, 0x1f, 0x60, 0xc3, 0xc0, 0x4d, 0x62, 0x1e, 0x91, 0xf8, 0x2e, 0x8a, + 0xf8, 0x1d, 0x0e, 0x26, 0x1d, 0x38, 0xda, 0x80, 0x49, 0x13, 0x1f, 0xd2, 0xeb, 0x87, 0xce, 0x75, + 0x2e, 0x48, 0x9b, 0xab, 0x31, 0x04, 0x16, 0x4c, 0x3b, 0xf8, 0x76, 0x30, 0xed, 0x1b, 0x1a, 0x69, + 0xf1, 0xbf, 0xe1, 0x60, 0x6e, 0x13, 0xb7, 0x70, 0x30, 0x4a, 0xe9, 0xe7, 0x61, 0xbd, 0x17, 0x3b, + 0xef, 0xbf, 0xd8, 0x23, 0x58, 0xf5, 0xb9, 0xd8, 0x4f, 0x74, 0xd9, 0x2d, 0xc2, 0xbc, 0x7f, 0x36, + 0xea, 0xde, 0xc5, 0xbf, 0x27, 0xe0, 0x9c, 0xad, 0x0b, 0x86, 0xde, 0x6a, 0x61, 0x63, 0xb7, 0xbb, + 0xdf, 0x52, 0xcd, 0xc7, 0x23, 0x2c, 0xee, 0x0c, 0x4c, 0x68, 0x7a, 0xd3, 0x63, 0x3c, 0xe3, 0xf6, + 0x67, 0xb9, 0x89, 0x4a, 0x70, 0x3a, 0x18, 0x66, 0x1d, 0x33, 0x27, 0x1c, 0x1f, 0x64, 0x65, 0x8e, + 0x82, 0x37, 0x88, 0x00, 0x93, 0x76, 0x80, 0xa8, 0x6b, 0xad, 0x63, 0x62, 0x31, 0x93, 0x92, 0xfb, + 0x8d, 0xa4, 0x60, 0xc4, 0xf4, 0xba, 0x1b, 0x31, 0xf5, 0x5d, 0x51, 0xbf, 0xe0, 0xe9, 0xe3, 0x90, + 0xc5, 0x8f, 0x13, 0xd6, 0x6f, 0x0d, 0xc9, 0x7a, 0xa0, 0x27, 0x38, 0xc9, 0x29, 0x3e, 0x07, 0xf3, + 0xfd, 0x3d, 0x07, 0xe7, 0x63, 0x97, 0xc0, 0xae, 0xfc, 0x26, 0x9c, 0xea, 0xd0, 0x01, 0x77, 0x13, + 0xa8, 0x95, 0xdd, 0x1a, 0xb8, 0x09, 0x2c, 0x93, 0x65, 0x50, 0xdf, 0x36, 0xcc, 0x76, 0x7c, 0x40, + 0x21, 0x0f, 0x73, 0x11, 0x68, 0x23, 0x2d, 0xe6, 0x2b, 0x0e, 0x56, 0x7b, 0xa2, 0xec, 0x69, 0x9d, + 0xe7, 0xa7, 0xbe, 0xf5, 0x9e, 0x6e, 0x51, 0x97, 0x7f, 0x33, 0xbc, 0xf6, 0xe8, 0x09, 0x5f, 0x94, + 0x05, 0x5f, 0x84, 0x0b, 0x7d, 0xa6, 0x66, 0xe6, 0xfc, 0x65, 0x12, 0x2e, 0xdc, 0x57, 0x5a, 0x6a, + 0xd3, 0x0d, 0xe4, 0x22, 0x72, 0xfe, 0xfe, 0x5b, 0xd2, 0x08, 0x59, 0x00, 0xf5, 0x5a, 0xb7, 0x5d, + 0xab, 0x1d, 0xc4, 0x7f, 0x88, 0xeb, 0xf0, 0x39, 0x26, 0x61, 0x0f, 0x23, 0x92, 0xb0, 0xb7, 0x86, + 0x97, 0xb5, 0x5f, 0x4a, 0xb6, 0x17, 0x74, 0x30, 0x6f, 0x0e, 0xcf, 0xb7, 0x8f, 0x16, 0x9c, 0xd8, + 0x8a, 0xbf, 0xcd, 0xac, 0xe9, 0x77, 0x49, 0x10, 0xfb, 0xad, 0x9e, 0xf9, 0x10, 0x09, 0xa6, 0x1a, + 0xba, 0x76, 0xa0, 0x1a, 0x6d, 0xdc, 0x64, 0xd1, 0xff, 0x1b, 0xc3, 0x6c, 0x1e, 0x73, 0x20, 0x45, + 0x87, 0x56, 0xea, 0xb1, 0x41, 0x59, 0x98, 0x68, 0x63, 0xd3, 0x54, 0x0e, 0x1d, 0xb1, 0x9c, 0x4f, + 0xe1, 0xf3, 0x04, 0x4c, 0xb9, 0x24, 0x48, 0x0b, 0x69, 0x30, 0x75, 0x5f, 0x5b, 0xcf, 0x22, 0xc0, + 0xb3, 0x2b, 0x33, 0xff, 0x0c, 0xca, 0xdc, 0xf4, 0x29, 0x33, 0x35, 0x87, 0xcd, 0x67, 0x12, 0xbb, + 0x8f, 0x5e, 0x7f, 0xeb, 0x0a, 0x28, 0xfe, 0x17, 0xa0, 0x8a, 0x6a, 0xb2, 0x2c, 0xca, 0x75, 0x4b, + 0x76, 0xd2, 0xa4, 0x3c, 0x95, 0xb1, 0x66, 0x19, 0x2a, 0x0b, 0xd7, 0x53, 0x12, 0xb4, 0x95, 0xa7, + 0x25, 0x0a, 0xb1, 0x43, 0x7a, 0xd3, 0x52, 0x0c, 0x4b, 0xd5, 0x0e, 0x65, 0x4b, 0xff, 0x04, 0xbb, + 0x85, 0x57, 0x07, 0x5a, 0xb7, 0x81, 0xe2, 0xd7, 0x3c, 0xcc, 0xf9, 0xd8, 0x33, 0x9d, 0xbc, 0x05, + 0x13, 0x3d, 0xde, 0xbe, 0x30, 0x3e, 0x02, 0x3b, 0x47, 0xb7, 0xcd, 0xa1, 0x40, 0x2b, 0x00, 0x1a, + 0x7e, 0x6a, 0xf9, 0xe6, 0x9d, 0xb2, 0x21, 0x64, 0x4e, 0xe1, 0xbb, 0x9c, 0x9b, 0x74, 0x5b, 0x8a, + 0xd5, 0x35, 0xd1, 0x35, 0x40, 0xcc, 0x45, 0xe3, 0xa6, 0xcc, 0xee, 0x18, 0x3a, 0xef, 0x94, 0x94, + 0x71, 0x47, 0xaa, 0xe4, 0xb6, 0x31, 0xd1, 0x96, 0x5b, 0xd3, 0x6c, 0xe8, 0x5a, 0x53, 0xb5, 0x7a, + 0x35, 0xcd, 0x33, 0xa1, 0x04, 0x81, 0x0e, 0x17, 0x12, 0x3f, 0x2d, 0x70, 0x4e, 0x05, 0xd3, 0x85, + 0x0a, 0x4f, 0x20, 0x45, 0x8f, 0x63, 0xc8, 0xbc, 0x1d, 0xbd, 0x07, 0xe3, 0x26, 0x91, 0x38, 0x58, + 0xa3, 0x88, 0xda, 0x13, 0xef, 0x0a, 0x25, 0x46, 0x27, 0xbe, 0x03, 0x42, 0xef, 0x62, 0xda, 0xc2, + 0xd6, 0xf0, 0xd7, 0xef, 0x86, 0xbd, 0x06, 0xf1, 0x53, 0x1e, 0x96, 0x22, 0x19, 0x8c, 0x56, 0x81, + 0x40, 0xdb, 0x81, 0x95, 0xbc, 0x1a, 0xbe, 0xb1, 0x43, 0xcc, 0x23, 0x57, 0x24, 0xfc, 0xdf, 0xc9, + 0x0e, 0xb3, 0x30, 0xf2, 0x61, 0x86, 0xce, 0x91, 0xee, 0xcc, 0xe7, 0x3c, 0xa0, 0x2d, 0x6c, 0xb9, + 0xa9, 0x32, 0xdb, 0xd2, 0x18, 0x7f, 0xc3, 0x3d, 0x83, 0xbf, 0x79, 0xdf, 0xe7, 0x6f, 0xa8, 0xc7, + 0xba, 0xea, 0xe9, 0x52, 0x04, 0xa6, 0xee, 0x7b, 0x5b, 0xc6, 0xa4, 0xa7, 0x34, 0xe6, 0x1f, 0x2e, + 0x3d, 0x3d, 0xa1, 0x5b, 0xd9, 0x84, 0x39, 0x9f, 0xcc, 0x4c, 0x81, 0xae, 0x03, 0x52, 0x8e, 0x14, + 0xb5, 0xa5, 0xd8, 0x72, 0x39, 0xd9, 0x3f, 0xab, 0x06, 0x9c, 0x76, 0x47, 0x1c, 0x32, 0x51, 0xf4, + 0x06, 0x95, 0x8c, 0x5f, 0xb0, 0x6b, 0xd2, 0xf2, 0x06, 0x63, 0x21, 0x1c, 0x36, 0xef, 0x56, 0x64, + 0xe7, 0xe4, 0x62, 0x58, 0x2d, 0x59, 0x0b, 0x21, 0xb6, 0x89, 0xf2, 0xb7, 0x84, 0xd7, 0x42, 0x42, + 0xd8, 0xe8, 0x16, 0x24, 0x8c, 0x4e, 0x83, 0x99, 0xc7, 0xcb, 0x43, 0xf0, 0xcf, 0x49, 0xbb, 0xc5, + 0xed, 0x31, 0xc9, 0xa6, 0x12, 0xfe, 0xc1, 0x43, 0x42, 0xda, 0x2d, 0xa2, 0xf7, 0x7c, 0xdd, 0x84, + 0x6b, 0x43, 0x72, 0xf1, 0x36, 0x13, 0x3e, 0xe3, 0xa3, 0xba, 0x09, 0x59, 0x98, 0x2f, 0x4a, 0xa5, + 0x7c, 0xbd, 0x24, 0x6f, 0x96, 0x2a, 0xa5, 0x7a, 0x49, 0xa6, 0xdd, 0x8e, 0x0c, 0x87, 0x96, 0x21, + 0xbb, 0xbb, 0x57, 0xa8, 0x94, 0x6b, 0xdb, 0xf2, 0x5e, 0xd5, 0xf9, 0xc5, 0x46, 0x79, 0x94, 0x81, + 0xe9, 0x4a, 0xb9, 0x56, 0x67, 0x80, 0x5a, 0x26, 0x61, 0x43, 0xb6, 0x4a, 0x75, 0xb9, 0x98, 0xdf, + 0xcd, 0x17, 0xcb, 0xf5, 0x87, 0x99, 0x24, 0x12, 0x60, 0xd1, 0xcf, 0xbb, 0x56, 0xcd, 0xef, 0xd6, + 0xb6, 0x77, 0xea, 0x99, 0x14, 0x42, 0x30, 0x4b, 0xe8, 0x1d, 0x50, 0x2d, 0x33, 0x6e, 0x73, 0x28, + 0x56, 0x76, 0xaa, 0xae, 0x0c, 0x13, 0x68, 0x1e, 0x32, 0xce, 0xcc, 0x52, 0x29, 0xbf, 0x49, 0x2a, + 0x5d, 0x93, 0xe8, 0x34, 0xcc, 0x94, 0x3e, 0xdc, 0xcd, 0x57, 0x37, 0x1d, 0xc4, 0x29, 0xb4, 0x0a, + 0xcb, 0x5e, 0x71, 0x64, 0x46, 0x55, 0xda, 0x24, 0xf5, 0xae, 0x5a, 0x06, 0xd0, 0x59, 0xc8, 0xb0, + 0x46, 0x4e, 0x71, 0xa7, 0xba, 0x59, 0xae, 0x97, 0x77, 0xaa, 0x99, 0xb4, 0x60, 0x1b, 0x32, 0x9a, + 0x03, 0xb0, 0x25, 0x67, 0xcc, 0xa6, 0x09, 0xd0, 0xad, 0xbc, 0x7e, 0xc5, 0xc3, 0x02, 0x2d, 0xbd, + 0x3a, 0x85, 0x5e, 0xc7, 0xd0, 0xd7, 0x20, 0x43, 0x8b, 0x45, 0x72, 0xd0, 0x85, 0xce, 0x52, 0xf8, + 0x7d, 0x27, 0x68, 0x77, 0xda, 0x24, 0xbc, 0xa7, 0x4d, 0x52, 0x0e, 0xa6, 0x30, 0x57, 0xfd, 0x0d, + 0x85, 0xc0, 0x6c, 0xfd, 0xb2, 0xe2, 0x7b, 0x11, 0x31, 0xf6, 0xf5, 0xfe, 0xdc, 0xfa, 0xc5, 0x1f, + 0x27, 0x49, 0x81, 0x4f, 0xe8, 0x22, 0xee, 0xc0, 0x62, 0x50, 0x5e, 0x66, 0xad, 0xd7, 0x42, 0x65, + 0x7f, 0xd7, 0x67, 0xb9, 0xb8, 0x2e, 0x86, 0xf8, 0x67, 0x0e, 0x26, 0x1d, 0xb0, 0x1d, 0x1b, 0x98, + 0xea, 0xff, 0x60, 0x5f, 0x99, 0x71, 0xca, 0x86, 0xb8, 0x55, 0x4b, 0x6f, 0xc1, 0x9e, 0x0f, 0x16, + 0xec, 0x23, 0xcf, 0x39, 0x11, 0x79, 0xce, 0xef, 0xc2, 0x4c, 0xc3, 0x16, 0x5f, 0xd5, 0x35, 0xd9, + 0x52, 0xdb, 0x4e, 0x15, 0x31, 0xdc, 0x60, 0xab, 0x3b, 0x9d, 0x71, 0x69, 0xda, 0x21, 0xb0, 0x41, + 0x68, 0x15, 0xa6, 0x49, 0xc3, 0x4d, 0xb6, 0x74, 0xb9, 0x6b, 0xe2, 0x6c, 0x8a, 0xd4, 0x54, 0x80, + 0xc0, 0xea, 0xfa, 0x9e, 0x89, 0xc5, 0xdf, 0x72, 0xb0, 0x40, 0x4b, 0x45, 0x41, 0x75, 0x1c, 0xd4, + 0x78, 0xf0, 0x6a, 0x5c, 0xe0, 0x2a, 0x89, 0x64, 0xf8, 0xa2, 0x32, 0xe5, 0x2c, 0x2c, 0x06, 0xe7, + 0x63, 0xe9, 0xf1, 0x17, 0x3c, 0xcc, 0xdb, 0x71, 0x8d, 0x33, 0xf0, 0xbc, 0x43, 0xcf, 0x11, 0x4e, + 0x32, 0xb0, 0x99, 0xc9, 0xd0, 0x66, 0x6e, 0x07, 0x93, 0xcf, 0x2b, 0xde, 0xc8, 0x2c, 0xb8, 0x82, + 0x17, 0xb5, 0x97, 0x9f, 0x71, 0xb0, 0x10, 0x98, 0x8f, 0xd9, 0xcb, 0xdb, 0xc1, 0x68, 0xfa, 0x62, + 0x8c, 0x7c, 0xcf, 0x14, 0x4f, 0xdf, 0x74, 0xe2, 0xd8, 0xd1, 0xcc, 0xf2, 0x8f, 0x3c, 0xac, 0xf4, + 0x6e, 0x2c, 0xd2, 0xf2, 0x6e, 0x8e, 0x50, 0x0e, 0x3a, 0x59, 0x67, 0xf9, 0x83, 0xa0, 0xc3, 0x5d, + 0x0f, 0x5f, 0xa2, 0x11, 0x22, 0xf5, 0x73, 0xbc, 0x91, 0x55, 0xd4, 0xe4, 0xa8, 0x55, 0xd4, 0x13, + 0x69, 0xc0, 0xff, 0x7a, 0x0b, 0xc4, 0x7e, 0xf1, 0x99, 0x26, 0x0c, 0xd9, 0x69, 0x79, 0x13, 0xce, + 0x90, 0xd0, 0xd9, 0x7d, 0xb5, 0xe1, 0xf4, 0x91, 0xa9, 0x4b, 0x9c, 0x94, 0x16, 0xec, 0x61, 0xf7, + 0x99, 0x02, 0xeb, 0x2e, 0x34, 0xc5, 0x6f, 0x92, 0xb0, 0x68, 0x87, 0xd6, 0x35, 0x4b, 0x39, 0x1c, + 0xa5, 0xee, 0xfe, 0x9f, 0xe1, 0x32, 0x26, 0xef, 0x3f, 0x96, 0x68, 0xae, 0xc3, 0x54, 0x2f, 0x51, + 0x0e, 0xe6, 0x4c, 0x4b, 0x39, 0x24, 0xee, 0x40, 0x31, 0x0e, 0xb1, 0x25, 0x77, 0x14, 0xeb, 0x31, + 0xb3, 0xf5, 0xd3, 0x6c, 0xa8, 0x4e, 0x46, 0x76, 0x15, 0xeb, 0xf1, 0x73, 0x3a, 0x48, 0xf4, 0x7e, + 0xd0, 0x29, 0xbc, 0x32, 0x60, 0x2d, 0x7d, 0x74, 0xeb, 0xc3, 0x98, 0x52, 0xf7, 0x6b, 0x03, 0x58, + 0x0e, 0x2e, 0x71, 0x9f, 0xbc, 0xb4, 0xfb, 0x2d, 0x57, 0xc9, 0xcf, 0xc2, 0x99, 0xd0, 0xe2, 0xd9, + 0x15, 0x72, 0x08, 0x59, 0x7b, 0x68, 0x4f, 0x33, 0x47, 0x54, 0xc7, 0x18, 0x8d, 0xe1, 0x63, 0x34, + 0x46, 0x5c, 0x82, 0xb3, 0x11, 0x13, 0x31, 0x29, 0x7e, 0x9d, 0xa2, 0x62, 0x8c, 0xde, 0xb0, 0xf9, + 0x28, 0xce, 0x2a, 0xde, 0xf0, 0x1e, 0x7b, 0x64, 0x6f, 0xe3, 0x45, 0xd8, 0xc5, 0x79, 0x48, 0x7b, + 0xf1, 0xd8, 0x35, 0x68, 0x0d, 0x30, 0x9c, 0xd4, 0x89, 0xfa, 0x48, 0xe3, 0x81, 0x3e, 0x52, 0xa5, + 0x67, 0x54, 0x13, 0xfe, 0xd0, 0x36, 0x76, 0x2b, 0xfa, 0x98, 0xd5, 0xa3, 0x90, 0x59, 0x4d, 0xfa, + 0x9b, 0x53, 0xb1, 0x4c, 0xff, 0x0d, 0x0c, 0x8b, 0x29, 0x75, 0x64, 0xd7, 0x48, 0x7c, 0x04, 0x02, + 0xd5, 0xf8, 0xd1, 0xfb, 0x38, 0x01, 0x35, 0xe2, 0x83, 0x6a, 0x24, 0xae, 0xc0, 0x52, 0x24, 0x6f, + 0x36, 0xf5, 0xf7, 0x38, 0x2a, 0x98, 0x5b, 0x20, 0xaa, 0x59, 0x8a, 0x65, 0x0e, 0x3b, 0x35, 0x1b, + 0xf4, 0x4e, 0x4d, 0x41, 0x44, 0x83, 0x47, 0x34, 0x09, 0xf1, 0x47, 0x1c, 0xdd, 0x87, 0xa0, 0x2c, + 0xec, 0xb6, 0xbd, 0x02, 0xa9, 0x2e, 0xa9, 0x81, 0xd3, 0xa8, 0x6b, 0xce, 0x6f, 0x04, 0x7b, 0xf6, + 0x90, 0x44, 0x31, 0x9e, 0x5b, 0x55, 0x51, 0xfc, 0x82, 0x83, 0xb4, 0x87, 0x3f, 0x5a, 0x86, 0x29, + 0xb7, 0x6e, 0xe2, 0xe4, 0x3b, 0x2e, 0xc0, 0x3e, 0x7e, 0x4b, 0xb7, 0x94, 0x16, 0x7b, 0x9f, 0x41, + 0x3f, 0xec, 0x14, 0xb5, 0x6b, 0x62, 0x1a, 0x0e, 0x27, 0x24, 0xf2, 0x1b, 0x5d, 0x83, 0x64, 0x57, + 0x53, 0x2d, 0x62, 0xf6, 0xb3, 0x41, 0x7b, 0x26, 0x53, 0xe5, 0xf6, 0x34, 0xd5, 0x92, 0x08, 0x96, + 0x78, 0x15, 0x92, 0xf6, 0x97, 0xbf, 0xbc, 0x30, 0x05, 0xa9, 0xc2, 0xc3, 0x7a, 0xa9, 0x96, 0xe1, + 0x10, 0xc0, 0x78, 0x99, 0x26, 0xe3, 0xbc, 0x58, 0x71, 0x9e, 0x4b, 0xba, 0x8b, 0xb0, 0x5d, 0x80, + 0xb2, 0xaf, 0xe9, 0x46, 0x5b, 0x69, 0x11, 0x99, 0x27, 0x25, 0xf7, 0x3b, 0xbe, 0xb5, 0x40, 0x0b, + 0x71, 0xcb, 0xee, 0x89, 0x44, 0x15, 0x83, 0x3e, 0xa6, 0xba, 0x15, 0x57, 0x06, 0xca, 0x47, 0x96, + 0x81, 0x56, 0x7c, 0xb7, 0xec, 0x80, 0x02, 0xd0, 0x0f, 0x79, 0x58, 0x88, 0xc4, 0x43, 0x37, 0xbd, + 0xa5, 0x9f, 0x0b, 0x7d, 0x79, 0x7a, 0x8b, 0x3e, 0xbf, 0xe2, 0x68, 0xd1, 0x67, 0xc3, 0x57, 0xf4, + 0xb9, 0x3c, 0x90, 0xde, 0x5b, 0xee, 0x79, 0x12, 0x53, 0xed, 0xa9, 0xd5, 0xf3, 0x5b, 0x25, 0x79, + 0xaf, 0x4a, 0xff, 0xba, 0xd5, 0x9e, 0x79, 0xc8, 0xf4, 0x6a, 0x20, 0x72, 0xad, 0x9e, 0xaf, 0xd7, + 0x32, 0x7c, 0xb8, 0xd2, 0x92, 0x88, 0xac, 0xa3, 0x24, 0xfd, 0x25, 0x93, 0x79, 0x40, 0x6c, 0xc7, + 0xbd, 0xaf, 0xb8, 0x7f, 0xc6, 0xc1, 0x9c, 0x0f, 0xcc, 0x0e, 0xc0, 0xd3, 0xe4, 0xe5, 0x7c, 0x4d, + 0xde, 0x1b, 0x30, 0x6f, 0x67, 0x7d, 0x54, 0xdb, 0x4d, 0xb9, 0x83, 0x0d, 0x52, 0xdc, 0x65, 0x7a, + 0x7b, 0xba, 0xad, 0x3c, 0x65, 0x05, 0xf0, 0x5d, 0x6c, 0xd8, 0x8c, 0x9f, 0x43, 0x89, 0x53, 0xfc, + 0x01, 0x4f, 0x63, 0x8b, 0x91, 0x73, 0x93, 0x81, 0x7e, 0x26, 0x9c, 0xbc, 0x24, 0x46, 0x48, 0x5e, + 0x62, 0xbc, 0x54, 0x72, 0xa4, 0x80, 0x76, 0xe4, 0x7b, 0x59, 0xcc, 0xd3, 0x38, 0xe6, 0x04, 0x79, + 0xc5, 0xfa, 0x3f, 0x39, 0x98, 0x2c, 0x37, 0xb1, 0x66, 0xd9, 0xf6, 0x50, 0x85, 0x19, 0xdf, 0xe3, + 0x7a, 0xb4, 0x1c, 0xf3, 0xe6, 0x9e, 0xec, 0xb8, 0xb0, 0xd2, 0xf7, 0x45, 0xbe, 0x38, 0x86, 0x0e, + 0x3c, 0xff, 0x18, 0xe0, 0xab, 0x9c, 0xbf, 0x14, 0xa2, 0x8c, 0x70, 0x0d, 0xc2, 0xa5, 0x01, 0x58, + 0xee, 0x3c, 0x6f, 0x42, 0x8a, 0x3c, 0xa1, 0x46, 0xf3, 0xee, 0x33, 0x6e, 0xcf, 0x0b, 0x6b, 0x61, + 0x21, 0x00, 0x75, 0xe8, 0xd6, 0xff, 0x30, 0x05, 0xd0, 0x4b, 0xcf, 0xd0, 0x5d, 0x98, 0xf6, 0xbe, + 0xe2, 0x44, 0x4b, 0x7d, 0xde, 0x10, 0x0b, 0xcb, 0xd1, 0x83, 0xae, 0x4c, 0x77, 0x61, 0xda, 0xfb, + 0x66, 0xa8, 0xc7, 0x2c, 0xe2, 0xdd, 0x52, 0x8f, 0x59, 0xe4, 0x33, 0xa3, 0x31, 0xd4, 0x82, 0x33, + 0x31, 0xaf, 0x46, 0xd0, 0xe5, 0xe1, 0xde, 0xd6, 0x08, 0x2f, 0x0f, 0xf9, 0xfc, 0x44, 0x1c, 0x43, + 0x06, 0x9c, 0x8d, 0x7d, 0x2c, 0x81, 0xd6, 0x86, 0x7d, 0xca, 0x21, 0x5c, 0x19, 0x02, 0xd3, 0x9d, + 0xb3, 0x0b, 0x42, 0x7c, 0x87, 0x16, 0x5d, 0x19, 0xfa, 0xe9, 0x80, 0x70, 0x75, 0xf8, 0x86, 0xaf, + 0x38, 0x86, 0xb6, 0x21, 0xed, 0x69, 0xd5, 0x21, 0x21, 0xb2, 0x7f, 0x47, 0x19, 0x2f, 0xf5, 0xe9, + 0xed, 0x51, 0x4e, 0x9e, 0xf6, 0x49, 0x8f, 0x53, 0xb8, 0x0f, 0xd4, 0xe3, 0x14, 0xd1, 0x6f, 0x09, + 0x6e, 0x7f, 0xe0, 0x5e, 0x8c, 0xda, 0xfe, 0xe8, 0x8b, 0x35, 0x6a, 0xfb, 0x63, 0x2e, 0x59, 0x71, + 0x0c, 0x7d, 0x00, 0xb3, 0xfe, 0xca, 0x2e, 0x5a, 0xe9, 0x5b, 0xa1, 0x16, 0xce, 0xc5, 0x0d, 0x7b, + 0x59, 0xfa, 0x0b, 0x89, 0x3d, 0x96, 0x91, 0x05, 0xcd, 0x1e, 0xcb, 0x98, 0xfa, 0xe3, 0x98, 0xed, + 0x9f, 0x7c, 0xe5, 0xb1, 0x9e, 0x7f, 0x8a, 0xaa, 0xea, 0xf5, 0xfc, 0x53, 0x64, 0x4d, 0x4d, 0x1c, + 0x43, 0x2a, 0x2c, 0x46, 0x57, 0x67, 0xd0, 0xa5, 0xa1, 0x8a, 0x4f, 0xc2, 0xe5, 0x41, 0x68, 0xee, + 0x54, 0x0d, 0x98, 0x8b, 0xe8, 0xa4, 0x22, 0xb1, 0x6f, 0x9b, 0x95, 0x4e, 0x72, 0x71, 0x88, 0x56, + 0xac, 0x68, 0xdf, 0xf0, 0xeb, 0x7f, 0x4d, 0x41, 0x92, 0x5c, 0xb5, 0x75, 0x38, 0x15, 0x48, 0xc1, + 0xd1, 0xb9, 0xfe, 0x85, 0x09, 0xe1, 0x7c, 0xec, 0xb8, 0xbb, 0x86, 0x47, 0x70, 0x3a, 0x94, 0x54, + 0xa3, 0x55, 0x2f, 0x5d, 0x54, 0x62, 0x2f, 0x5c, 0xe8, 0x83, 0x11, 0xe4, 0xed, 0xf7, 0x6d, 0xab, + 0x83, 0xb2, 0x3e, 0x3f, 0xef, 0x38, 0x7f, 0xf6, 0x31, 0x8d, 0x6c, 0x82, 0x9e, 0x4c, 0xf4, 0xcb, + 0x15, 0xe9, 0xc3, 0x2e, 0xf6, 0xc5, 0x71, 0x67, 0xf8, 0xc8, 0x0d, 0xa9, 0x3c, 0x49, 0x07, 0xf2, + 0x09, 0x17, 0x99, 0x1c, 0x09, 0x62, 0x3f, 0x14, 0x97, 0xfd, 0x03, 0xc8, 0x04, 0xef, 0x79, 0xe4, + 0x3b, 0xaf, 0x28, 0xdd, 0x5c, 0x8d, 0x47, 0x08, 0xee, 0x4c, 0xd0, 0xc9, 0x04, 0xa5, 0x8a, 0x72, + 0x2f, 0x17, 0xfb, 0xe2, 0x78, 0xdd, 0xa2, 0x27, 0xaa, 0xec, 0xb9, 0xc5, 0x70, 0x04, 0xda, 0x73, + 0x8b, 0x11, 0x61, 0xa8, 0x38, 0xb6, 0x71, 0x1b, 0x40, 0x69, 0x75, 0x1e, 0x2b, 0x32, 0xd6, 0xba, + 0x6d, 0xb4, 0x1c, 0x6a, 0xda, 0x94, 0xb4, 0x6e, 0x7b, 0xa7, 0x63, 0x27, 0x2b, 0x66, 0xf6, 0x17, + 0x93, 0x24, 0x45, 0x99, 0x22, 0x04, 0xf6, 0xc0, 0x46, 0x05, 0x32, 0x3d, 0x6a, 0x99, 0xe4, 0xd4, + 0xe8, 0x42, 0x24, 0x0f, 0xf2, 0x9f, 0x55, 0x01, 0x46, 0xb3, 0x2e, 0x23, 0x32, 0xba, 0xf1, 0x36, + 0x40, 0xc3, 0x54, 0x65, 0x5a, 0xb5, 0x40, 0x2b, 0x21, 0x3e, 0x77, 0x54, 0xdc, 0x6a, 0x3a, 0x3c, + 0x7e, 0xce, 0x84, 0x69, 0x98, 0x2a, 0x2d, 0x1e, 0x6c, 0xbc, 0x0b, 0x69, 0x2a, 0xcc, 0x81, 0x8d, + 0x37, 0x88, 0x9e, 0xc9, 0x40, 0x57, 0x4f, 0x46, 0x36, 0x4a, 0x30, 0x43, 0x19, 0xb0, 0x44, 0x0b, + 0x9d, 0x0f, 0xb1, 0xb8, 0x47, 0x47, 0x02, 0x4c, 0xa6, 0x09, 0x19, 0x1b, 0xdb, 0x28, 0xc0, 0xb4, + 0xc3, 0xc6, 0x7a, 0xac, 0x37, 0xd1, 0xb9, 0x08, 0x2e, 0xf6, 0x40, 0x80, 0x49, 0x9a, 0x31, 0xb1, + 0x87, 0x7a, 0xa2, 0x38, 0xff, 0x61, 0x18, 0x16, 0x85, 0x25, 0x43, 0x91, 0xa2, 0xb0, 0xb1, 0x42, + 0xea, 0x51, 0xa2, 0x61, 0xaa, 0xfb, 0xe3, 0x84, 0xe8, 0xf5, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, + 0xc8, 0x7e, 0x80, 0x61, 0x0e, 0x3b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/spec.md b/spec.md index 7773dde1..7b7cc3fc 100644 --- a/spec.md +++ b/spec.md @@ -595,6 +595,10 @@ message PluginCapability { Type type = 1; } + // Deprecated - Ability for a plugin to delcare online and offline + // controller expansion capabilities via PluginCapability + // is deprecated. A plugin may support either mode of operation + // without having to declare them in PluginCapability. message VolumeExpansion { enum Type { UNKNOWN = 0; @@ -644,7 +648,18 @@ message PluginCapability { oneof type { // Service that the plugin supports. Service service = 1; - VolumeExpansion volume_expansion = 2; + // Deprecated - Ability for a plugin to delcare online and offline + // controller expansion capabilities via PluginCapability + // is deprecated. A plugin may support either mode of operation + // without having to declare them in PluginCapability. + // + // If set a CO will ignore ONLINE and OFFLINE capabilities + // specified in PluginCapability. + // If a plugin can not support controller expansion of published + // and available volumes on a node - it may return + // FAILED_PRECONDITION error and CO should ensure that volume + // is not published before retrying with exponential backoff. + VolumeExpansion volume_expansion = 2 [deprecated=true]; } } ``` @@ -1930,24 +1945,15 @@ This RPC allows the CO to expand the size of a volume. This operation MUST be idempotent. If a volume corresponding to the specified volume ID is already larger than or equal to the target capacity of the expansion request, the plugin SHOULD reply 0 OK. -This call MAY be made by the CO during any time in the lifecycle of the volume after creation if plugin has `VolumeExpansion.ONLINE` capability. +This call MAY be made by the CO during any time in the lifecycle of the volume after creation but an SP may not permit controller expansion of volumes which are controller published or available on a node. In which case - the plugin may return gRPC error code `FAILED_PRECONDITION` (Volume in use) and CO SHOULD ensure that volume is not published before retrying with exponential backoff. + If plugin has `EXPAND_VOLUME` node capability, then `NodeExpandVolume` MUST be called after successful `ControllerExpandVolume` and `node_expansion_required` in `ControllerExpandVolumeResponse` is `true`. If specified, the `volume_capability` in `ControllerExpandVolumeRequest` should be same as what CO would pass in `ControllerPublishVolumeRequest`. -If the plugin has only `VolumeExpansion.OFFLINE` expansion capability and volume is currently published or available on a node then `ControllerExpandVolume` MUST be called ONLY after either: -- The plugin has controller `PUBLISH_UNPUBLISH_VOLUME` capability and `ControllerUnpublishVolume` has been invoked successfully. - -OR ELSE - -- The plugin does NOT have controller `PUBLISH_UNPUBLISH_VOLUME` capability, the plugin has node `STAGE_UNSTAGE_VOLUME` capability, and `NodeUnstageVolume` has been completed successfully. - -OR ELSE - -- The plugin does NOT have controller `PUBLISH_UNPUBLISH_VOLUME` capability, nor node `STAGE_UNSTAGE_VOLUME` capability, and `NodeUnpublishVolume` has completed successfully. Examples: -* Offline Volume Expansion: +* Offline Volume Expansion(SP does not permit controller expansion of controller published volume): Given an ElasticSearch process that runs on Azure Disk and needs more space. - The administrator takes the Elasticsearch server offline by stopping the workload and CO calls `ControllerUnpublishVolume`. - The administrator requests more space for the volume from CO. @@ -2003,7 +2009,7 @@ message ControllerExpandVolumeResponse { |-----------|-----------|-------------|-------------------| | Exceeds capabilities | 3 INVALID_ARGUMENT | Indicates that CO has specified capabilities not supported by the volume. | Caller MAY verify volume capabilities by calling ValidateVolumeCapabilities and retry with matching capabilities. | | Volume does not exist | 5 NOT FOUND | Indicates that a volume corresponding to the specified volume_id does not exist. | Caller MUST verify that the volume_id is correct and that the volume is accessible and has not been deleted before retrying with exponential back off. | -| Volume in use | 9 FAILED_PRECONDITION | Indicates that the volume corresponding to the specified `volume_id` could not be expanded because it is currently published on a node but the plugin does not have ONLINE expansion capability. | Caller SHOULD ensure that volume is not published and retry with exponential back off. | +| Volume in use | 9 FAILED_PRECONDITION | Indicates that the volume corresponding to the specified `volume_id` could not be expanded because it is currently published on a node. | Caller SHOULD ensure that volume is not published and retry with exponential back off. | | Unsupported `capacity_range` | 11 OUT_OF_RANGE | Indicates that the capacity range is not allowed by the Plugin. More human-readable information MAY be provided in the gRPC `status.message` field. | Caller MUST fix the capacity range before retrying. | #### RPC Interactions @@ -2523,8 +2529,6 @@ If plugin has `STAGE_UNSTAGE_VOLUME` node capability then: Otherwise `NodeExpandVolume` MUST be called after successful `NodePublishVolume`. -If a plugin only supports expansion via the `VolumeExpansion.OFFLINE` capability, then the volume MUST first be taken offline and expanded via `ControllerExpandVolume` (see `ControllerExpandVolume` for more details), and then node-staged or node-published before it can be expanded on the node via `NodeExpandVolume`. - The `staging_target_path` field is not required, for backwards compatibility, but the CO SHOULD supply it. Plugins can use this field to determine if `volume_path` is where the volume is published or staged, and setting this field to non-empty allows plugins to function with less stored state on the node.