diff --git a/api/client/proto/authservice.pb.go b/api/client/proto/authservice.pb.go index 0f3b93942d253..851b856522157 100644 --- a/api/client/proto/authservice.pb.go +++ b/api/client/proto/authservice.pb.go @@ -140,6 +140,42 @@ func (DeviceUsage) EnumDescriptor() ([]byte, []int) { return fileDescriptor_0ffcffcda38ae159, []int{2} } +// MFARequired indicates if MFA is required to access a +// resource. +type MFARequired int32 + +const ( + // Indicates the client/server are either old and don't support + // checking if MFA is required during the ceremony or that there + // was a catastrophic error checking RBAC to determine if completing + // an MFA ceremony will grant access to a resource. + MFARequired_MFA_REQUIRED_UNSPECIFIED MFARequired = 0 + // Completing an MFA ceremony will grant access to a resource. + MFARequired_MFA_REQUIRED_YES MFARequired = 1 + // Completing an MFA ceremony will not grant access to a resource. + MFARequired_MFA_REQUIRED_NO MFARequired = 2 +) + +var MFARequired_name = map[int32]string{ + 0: "MFA_REQUIRED_UNSPECIFIED", + 1: "MFA_REQUIRED_YES", + 2: "MFA_REQUIRED_NO", +} + +var MFARequired_value = map[string]int32{ + "MFA_REQUIRED_UNSPECIFIED": 0, + "MFA_REQUIRED_YES": 1, + "MFA_REQUIRED_NO": 2, +} + +func (x MFARequired) String() string { + return proto.EnumName(MFARequired_name, int32(x)) +} + +func (MFARequired) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_0ffcffcda38ae159, []int{3} +} + // Order specifies any ordering of some objects as returned in regards to some aspect // of said objects which may be trivially ordered such as a timestamp. type Order int32 @@ -164,7 +200,7 @@ func (x Order) String() string { } func (Order) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{3} + return fileDescriptor_0ffcffcda38ae159, []int{4} } type UserCertsRequest_CertUsage int32 @@ -1251,6 +1287,10 @@ type UserCertsRequest struct { // An optional field, that when provided, the response will be validated // and the ID of the validated MFA device will be stored in the certificate. MFAResponse *MFAAuthenticateResponse `protobuf:"bytes,18,opt,name=MFAResponse,proto3" json:"mfa_response,omitempty"` + // SSHLogin is the OS Login for the SSH session that the certificate will be used for. + // This login is used when performing RBAC checks to determine if MFA is required + // to access the resource. + SSHLogin string `protobuf:"bytes,19,opt,name=SSHLogin,proto3" json:"SSHLogin,omitempty"` // AttestationStatement is an attestation statement for the given public key. AttestationStatement *v1.AttestationStatement `protobuf:"bytes,20,opt,name=attestation_statement,json=attestationStatement,proto3" json:"attestation_statement,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1417,6 +1457,13 @@ func (m *UserCertsRequest) GetMFAResponse() *MFAAuthenticateResponse { return nil } +func (m *UserCertsRequest) GetSSHLogin() string { + if m != nil { + return m.SSHLogin + } + return "" +} + func (m *UserCertsRequest) GetAttestationStatement() *v1.AttestationStatement { if m != nil { return m.AttestationStatement @@ -6197,10 +6244,15 @@ type MFAAuthenticateChallenge struct { // Credential assertions hold, among other information, a list of allowed // credentials for the ceremony (one for each U2F or Webauthn device // registered by the user). - WebauthnChallenge *webauthn.CredentialAssertion `protobuf:"bytes,3,opt,name=WebauthnChallenge,proto3" json:"WebauthnChallenge,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WebauthnChallenge *webauthn.CredentialAssertion `protobuf:"bytes,3,opt,name=WebauthnChallenge,proto3" json:"WebauthnChallenge,omitempty"` + // MFARequired indicates whether proceeding with the MFA ceremony will + // grant access to the resource. If `MFA_REQUIRED_NO` is returned by the + // server then the stream will be terminated to prevent a fruitless MFA ceremony from + // proceeding. + MFARequired MFARequired `protobuf:"varint,4,opt,name=MFARequired,proto3,enum=proto.MFARequired" json:"MFARequired,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *MFAAuthenticateChallenge) Reset() { *m = MFAAuthenticateChallenge{} } @@ -6250,6 +6302,13 @@ func (m *MFAAuthenticateChallenge) GetWebauthnChallenge() *webauthn.CredentialAs return nil } +func (m *MFAAuthenticateChallenge) GetMFARequired() MFARequired { + if m != nil { + return m.MFARequired + } + return MFARequired_MFA_REQUIRED_UNSPECIFIED +} + // MFAAuthenticateResponse is a response to MFAAuthenticateChallenge using one // of the MFA devices registered for a user. type MFAAuthenticateResponse struct { @@ -13816,6 +13875,7 @@ func init() { proto.RegisterEnum("proto.Operation", Operation_name, Operation_value) proto.RegisterEnum("proto.DeviceType", DeviceType_name, DeviceType_value) proto.RegisterEnum("proto.DeviceUsage", DeviceUsage_name, DeviceUsage_value) + proto.RegisterEnum("proto.MFARequired", MFARequired_name, MFARequired_value) proto.RegisterEnum("proto.Order", Order_name, Order_value) proto.RegisterEnum("proto.UserCertsRequest_CertUsage", UserCertsRequest_CertUsage_name, UserCertsRequest_CertUsage_value) proto.RegisterEnum("proto.UserCertsRequest_Requester", UserCertsRequest_Requester_name, UserCertsRequest_Requester_value) @@ -14036,819 +14096,823 @@ func init() { } var fileDescriptor_0ffcffcda38ae159 = []byte{ - // 12981 bytes of a gzipped FileDescriptorProto + // 13047 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0xbd, 0x5d, 0x6c, 0x1c, 0x49, 0x92, 0x18, 0xac, 0x6e, 0xfe, 0x07, 0x7f, 0xd4, 0x4a, 0x91, 0x62, 0xab, 0x45, 0xb1, 0xa5, 0xd2, 0x48, 0xa3, 0xd1, 0xed, 0xea, 0x87, 0x9a, 0xff, 0x99, 0x9d, 0xd9, 0xee, 0x26, 0x25, 0x52, 0xa2, 0x48, 0x4e, 0x35, 0xd9, 0x9c, 0xdd, 0x9d, 0xdd, 0xde, 0x62, 0x77, 0x8a, 0xac, 0x4f, 0xcd, 0xae, 0xde, 0xaa, 0x6a, 0x69, 0x74, 0x1f, 0xbe, 0xcf, 0x3e, 0x9f, 0xef, 0x60, 0xf8, 0xf7, 0x0c, 0xdc, - 0xd9, 0x3e, 0xf8, 0xc1, 0x06, 0xec, 0x17, 0x1b, 0xb0, 0x7d, 0x0f, 0x3e, 0xdc, 0x8b, 0x01, 0xe3, - 0x6c, 0x03, 0x5e, 0xdb, 0x30, 0xe0, 0x07, 0x1f, 0x0c, 0xd8, 0x00, 0xed, 0xdb, 0x47, 0x02, 0x7e, - 0x32, 0xec, 0x87, 0x7d, 0xb1, 0x91, 0xbf, 0x95, 0x59, 0x95, 0x55, 0x4d, 0x6a, 0xb8, 0xe3, 0x17, - 0x89, 0x9d, 0x19, 0x11, 0x99, 0x19, 0x99, 0x15, 0x19, 0x19, 0x19, 0x19, 0x01, 0x77, 0x43, 0xdc, - 0xc1, 0x3d, 0xcf, 0x0f, 0xef, 0x75, 0xf0, 0xbe, 0xd3, 0x7a, 0x7d, 0xaf, 0xd5, 0x71, 0x71, 0x37, - 0xbc, 0xd7, 0xf3, 0xbd, 0xd0, 0xbb, 0xe7, 0xf4, 0xc3, 0x83, 0x00, 0xfb, 0x2f, 0xdd, 0x16, 0xbe, - 0x4b, 0x4b, 0xd0, 0x08, 0xfd, 0xaf, 0x34, 0xbb, 0xef, 0xed, 0x7b, 0x0c, 0x86, 0xfc, 0xc5, 0x2a, - 0x4b, 0x57, 0xf6, 0x3d, 0x6f, 0xbf, 0x83, 0x19, 0xf2, 0x5e, 0xff, 0xf9, 0x3d, 0x7c, 0xd8, 0x0b, - 0x5f, 0xf3, 0xca, 0x72, 0xbc, 0x32, 0x74, 0x0f, 0x71, 0x10, 0x3a, 0x87, 0x3d, 0x0e, 0xf0, 0x8e, - 0xec, 0x8a, 0x13, 0x86, 0xa4, 0x26, 0x74, 0xbd, 0xee, 0xbd, 0x97, 0x0f, 0xd4, 0x9f, 0x1c, 0xf4, - 0x76, 0x66, 0xaf, 0x5b, 0xd8, 0x0f, 0x83, 0x04, 0x51, 0x0e, 0x19, 0xbe, 0xee, 0xe1, 0xe0, 0x1e, - 0x7e, 0x89, 0xbb, 0xa1, 0xf8, 0x8f, 0x83, 0x5e, 0x37, 0x83, 0xd2, 0x7f, 0x39, 0xc8, 0x77, 0xcd, - 0x20, 0xaf, 0xf0, 0x1e, 0xe1, 0x54, 0x57, 0xfe, 0x31, 0x00, 0xdc, 0x77, 0x7a, 0x3d, 0xec, 0x47, - 0x7f, 0x24, 0xfa, 0xda, 0x0f, 0x9c, 0x7d, 0xcc, 0xfb, 0xf8, 0xf2, 0x81, 0xfa, 0x93, 0x81, 0x5a, - 0x7f, 0x70, 0x15, 0x46, 0x56, 0x48, 0x01, 0xfa, 0x10, 0x86, 0xb7, 0x5f, 0xf7, 0x70, 0x31, 0x77, - 0x2d, 0x77, 0x7b, 0x66, 0xa9, 0xc0, 0xea, 0xef, 0x6e, 0xf6, 0xb0, 0x4f, 0x19, 0x56, 0x45, 0xc7, - 0x47, 0xe5, 0x19, 0xd2, 0xee, 0x77, 0xbc, 0x43, 0x37, 0xa4, 0x13, 0x62, 0x53, 0x0c, 0xb4, 0x0b, - 0x33, 0x36, 0x0e, 0xbc, 0xbe, 0xdf, 0xc2, 0xab, 0xd8, 0x69, 0x63, 0xbf, 0x98, 0xbf, 0x96, 0xbb, - 0x3d, 0xb9, 0x34, 0x77, 0x97, 0x0d, 0x59, 0xaf, 0xac, 0x5e, 0x3a, 0x3e, 0x2a, 0x23, 0x9f, 0x97, - 0x45, 0xc4, 0x56, 0xcf, 0xd9, 0x31, 0x32, 0xe8, 0x2b, 0x98, 0xae, 0x61, 0x3f, 0xac, 0xf4, 0xc3, - 0x03, 0xcf, 0x77, 0xc3, 0xd7, 0xc5, 0x21, 0x4a, 0xf7, 0x12, 0xa7, 0xab, 0xd5, 0x35, 0x96, 0xaa, - 0x0b, 0xc7, 0x47, 0xe5, 0x22, 0x99, 0xb3, 0xa6, 0x23, 0x4a, 0x35, 0xf2, 0x3a, 0x31, 0xf4, 0x25, - 0x4c, 0xd5, 0xc9, 0x62, 0x68, 0x6d, 0x7b, 0x2f, 0x70, 0x37, 0x28, 0x0e, 0x6b, 0x9d, 0x56, 0xab, - 0x1a, 0x4b, 0xd5, 0x2b, 0xc7, 0x47, 0xe5, 0x79, 0xba, 0x76, 0x5a, 0xcd, 0x90, 0x16, 0x6a, 0xa4, - 0x35, 0x4a, 0xe8, 0xa7, 0x30, 0xb3, 0xe5, 0x7b, 0x2f, 0xdd, 0xc0, 0xf5, 0xba, 0xb4, 0xa8, 0x38, - 0x42, 0x69, 0xcf, 0x73, 0xda, 0x7a, 0x65, 0x63, 0xa9, 0x7a, 0xf5, 0xf8, 0xa8, 0x7c, 0xb9, 0x27, - 0x4a, 0x59, 0x03, 0x3a, 0x67, 0x74, 0x14, 0xb4, 0x0d, 0x93, 0xb5, 0x4e, 0x3f, 0x08, 0xb1, 0xbf, - 0xe1, 0x1c, 0xe2, 0xe2, 0x28, 0x25, 0x3f, 0x2b, 0xf8, 0x12, 0xd5, 0x34, 0x96, 0xaa, 0xa5, 0xe3, - 0xa3, 0xf2, 0xa5, 0x16, 0x2b, 0x6a, 0x76, 0x9d, 0x43, 0x9d, 0xe5, 0x2a, 0x19, 0xf4, 0x01, 0x0c, - 0xef, 0x04, 0xd8, 0x2f, 0x8e, 0x53, 0x72, 0xd3, 0x9c, 0x1c, 0x29, 0x6a, 0x2c, 0xb1, 0xf9, 0xef, - 0x07, 0xd8, 0xd7, 0xf0, 0x29, 0x02, 0x41, 0xb4, 0xbd, 0x0e, 0x2e, 0x4e, 0x68, 0x88, 0xa4, 0xa8, - 0xf1, 0x3e, 0x43, 0xf4, 0xbd, 0x8e, 0xde, 0x30, 0x45, 0x40, 0x6b, 0x30, 0x41, 0x5a, 0x0e, 0x7a, - 0x4e, 0x0b, 0x17, 0x81, 0x62, 0x17, 0x38, 0xb6, 0x2c, 0xaf, 0xce, 0x1f, 0x1f, 0x95, 0x2f, 0x76, - 0xc5, 0x4f, 0x8d, 0x4a, 0x84, 0x8d, 0x3e, 0x87, 0xd1, 0x3a, 0xf6, 0x5f, 0x62, 0xbf, 0x38, 0x49, - 0xe9, 0x9c, 0x17, 0x13, 0x49, 0x0b, 0x1b, 0x4b, 0xd5, 0xd9, 0xe3, 0xa3, 0x72, 0x21, 0xa0, 0xbf, - 0x34, 0x1a, 0x1c, 0x8d, 0xac, 0x36, 0x1b, 0xbf, 0xc4, 0x7e, 0x80, 0xb7, 0xfb, 0xdd, 0x2e, 0xee, - 0x14, 0xa7, 0xb4, 0xd5, 0xa6, 0xd5, 0x89, 0xd5, 0xe6, 0xb3, 0xc2, 0x66, 0x48, 0x4b, 0xf5, 0xd5, - 0xa6, 0x21, 0xa0, 0x03, 0x28, 0xb0, 0xbf, 0x6a, 0x5e, 0xb7, 0x8b, 0x5b, 0xe4, 0x93, 0x2a, 0x4e, - 0xd3, 0x06, 0x2e, 0xf3, 0x06, 0xe2, 0xd5, 0x8d, 0xa5, 0x6a, 0xf9, 0xf8, 0xa8, 0x7c, 0x85, 0xd1, - 0x6e, 0xb6, 0x64, 0x85, 0xd6, 0x4c, 0x82, 0x2a, 0x19, 0x47, 0xa5, 0xd5, 0xc2, 0x41, 0x60, 0xe3, - 0x9f, 0xf5, 0x71, 0x10, 0x16, 0x67, 0xb4, 0x71, 0x68, 0x75, 0x8d, 0x87, 0x6c, 0x1c, 0x0e, 0x2d, - 0x6c, 0xfa, 0xac, 0x54, 0x1f, 0x87, 0x86, 0x80, 0xb6, 0x00, 0x2a, 0xbd, 0x5e, 0x1d, 0x07, 0x64, - 0x31, 0x16, 0xcf, 0x53, 0xd2, 0x17, 0x39, 0xe9, 0x5d, 0xbc, 0xc7, 0x2b, 0x1a, 0x4b, 0xd5, 0xcb, - 0xc7, 0x47, 0xe5, 0x39, 0xa7, 0xd7, 0x6b, 0x06, 0xac, 0x48, 0x23, 0xaa, 0xd0, 0x60, 0x7c, 0x3f, - 0xf4, 0x42, 0xcc, 0x97, 0x62, 0xb1, 0x10, 0xe3, 0xbb, 0x52, 0x27, 0xfa, 0xeb, 0xd3, 0xc2, 0x26, - 0x5f, 0xd6, 0x71, 0xbe, 0x2b, 0x08, 0xe4, 0x5b, 0x5c, 0x76, 0x42, 0x67, 0xcf, 0x09, 0x30, 0x5f, - 0x1e, 0x17, 0xb4, 0x6f, 0x51, 0xaf, 0x6c, 0x3c, 0x64, 0xdf, 0x62, 0x9b, 0x97, 0x36, 0x0d, 0xeb, - 0x25, 0x46, 0x8f, 0x70, 0x24, 0x1a, 0x78, 0x11, 0x0d, 0xe0, 0xc8, 0x2b, 0xbc, 0x67, 0xe6, 0x48, - 0x04, 0x8a, 0x56, 0x61, 0x7c, 0x17, 0xef, 0x31, 0xc9, 0x71, 0x91, 0xd2, 0xbb, 0x10, 0xd1, 0x63, - 0x32, 0xe3, 0x21, 0xfb, 0x2a, 0x08, 0xb5, 0xa4, 0xb4, 0x90, 0xd8, 0xe8, 0xb7, 0x72, 0x30, 0x2f, - 0xbe, 0x70, 0x1c, 0xbe, 0xf2, 0xfc, 0x17, 0x6e, 0x77, 0xbf, 0xe6, 0x75, 0x9f, 0xbb, 0xfb, 0xc5, - 0x59, 0x4a, 0xf9, 0x5a, 0x4c, 0x68, 0xc4, 0xa0, 0x1a, 0x4b, 0xd5, 0xb7, 0x8f, 0x8f, 0xca, 0x37, - 0xa4, 0x00, 0x91, 0xf5, 0x64, 0x41, 0x3e, 0x77, 0xf7, 0xb5, 0x86, 0xd3, 0xda, 0x42, 0xbf, 0x91, - 0x83, 0x4b, 0x7c, 0x74, 0x36, 0x6e, 0x79, 0x7e, 0x3b, 0xea, 0xc6, 0x1c, 0xed, 0x46, 0x59, 0x7e, - 0xad, 0x26, 0xa0, 0xc6, 0x52, 0xf5, 0xd6, 0xf1, 0x51, 0xd9, 0xe2, 0x8c, 0x6b, 0xfa, 0xa2, 0xda, - 0xd4, 0x89, 0x94, 0x86, 0xc8, 0x4a, 0x20, 0xc2, 0x7f, 0xcb, 0xc7, 0xcf, 0xb1, 0x8f, 0xbb, 0x2d, - 0x5c, 0xbc, 0xa4, 0xad, 0x04, 0xbd, 0x52, 0x48, 0x65, 0xb2, 0x95, 0x34, 0x7b, 0xb2, 0x58, 0x5f, - 0x09, 0x3a, 0x0a, 0xfa, 0x19, 0x20, 0xce, 0x80, 0x4a, 0xbf, 0xed, 0x86, 0x7c, 0x80, 0xf3, 0xb4, - 0x95, 0x2b, 0x3a, 0x9f, 0x15, 0x80, 0xc6, 0x52, 0xd5, 0x3a, 0x3e, 0x2a, 0x2f, 0x0a, 0x16, 0x3b, - 0xa4, 0xca, 0x34, 0x30, 0x03, 0x71, 0x22, 0x79, 0xd7, 0xbd, 0xd6, 0x8b, 0x62, 0x51, 0x93, 0xbc, - 0xa4, 0x48, 0x88, 0xec, 0x8e, 0xd7, 0x7a, 0xa1, 0x4b, 0x5e, 0x52, 0x8b, 0x42, 0xb8, 0xc8, 0x67, - 0xc9, 0xc6, 0x41, 0xe8, 0xbb, 0x54, 0x76, 0x04, 0xc5, 0xcb, 0x94, 0xce, 0x82, 0x90, 0xc1, 0x49, - 0x88, 0xc6, 0xbb, 0xac, 0xb7, 0x7c, 0x21, 0x34, 0x7d, 0xa5, 0x4e, 0x6b, 0xc6, 0x44, 0x1e, 0xfd, - 0x7f, 0x30, 0xb7, 0xeb, 0x76, 0xdb, 0xde, 0xab, 0x60, 0x19, 0x07, 0x2f, 0x42, 0xaf, 0x57, 0x67, - 0x4a, 0x61, 0xb1, 0x44, 0xdb, 0x5d, 0x14, 0xcb, 0xdc, 0x04, 0xd3, 0x78, 0x58, 0xbd, 0x79, 0x7c, - 0x54, 0xbe, 0xfe, 0x8a, 0x55, 0x36, 0xdb, 0xac, 0xb6, 0xc9, 0xf5, 0x4a, 0xad, 0x71, 0x73, 0x2b, - 0x64, 0x09, 0xe8, 0x15, 0xc5, 0x2b, 0xda, 0x12, 0xd0, 0x2b, 0x85, 0x30, 0x88, 0x35, 0xa8, 0x2f, - 0x01, 0x1d, 0x05, 0x3d, 0x86, 0x71, 0x21, 0x1e, 0x8a, 0x0b, 0xda, 0xa7, 0x2b, 0x8a, 0x1b, 0x0f, - 0x99, 0x06, 0x24, 0x44, 0x8c, 0xfe, 0xe5, 0x0a, 0x28, 0xb4, 0x0e, 0x13, 0x54, 0x46, 0x52, 0x91, - 0x75, 0x95, 0x52, 0x42, 0x62, 0xa1, 0x8a, 0xf2, 0xc6, 0xc3, 0x6a, 0xf1, 0xf8, 0xa8, 0x3c, 0xcb, - 0xa4, 0x6c, 0x42, 0x50, 0x45, 0x04, 0xd0, 0x43, 0x18, 0xaa, 0xf4, 0x7a, 0xc5, 0x45, 0x4a, 0x67, - 0x2a, 0xa2, 0xd3, 0x78, 0x58, 0xbd, 0x70, 0x7c, 0x54, 0x9e, 0x76, 0x7a, 0xfa, 0xb0, 0x08, 0x34, - 0xda, 0x83, 0x42, 0xbd, 0xeb, 0xbd, 0x7a, 0xde, 0x71, 0x5e, 0x60, 0x21, 0xde, 0xca, 0xe9, 0xe2, - 0x8d, 0x6e, 0x56, 0x81, 0x40, 0x30, 0x0a, 0xb9, 0x04, 0x3d, 0xb2, 0x2d, 0x3e, 0xed, 0xef, 0x61, - 0xbf, 0x8b, 0x43, 0x1c, 0xf0, 0xd1, 0x5e, 0xd3, 0xb6, 0xc5, 0x78, 0x75, 0xe3, 0x21, 0x6b, 0xe9, - 0x85, 0x2c, 0x37, 0x8d, 0x3d, 0x41, 0x15, 0x75, 0xe0, 0x42, 0x54, 0x26, 0xb6, 0x9a, 0xeb, 0xb4, - 0xa9, 0x52, 0xa2, 0xa9, 0x68, 0xbb, 0xb9, 0x76, 0x7c, 0x54, 0x5e, 0x50, 0xda, 0x32, 0x6d, 0x39, - 0x49, 0xc2, 0xe8, 0x29, 0x4c, 0xac, 0x75, 0x83, 0xd0, 0xe9, 0x74, 0xb0, 0x5f, 0xb4, 0xb4, 0xe9, - 0x93, 0xe5, 0x8d, 0x07, 0x4c, 0x88, 0xbb, 0xa2, 0x40, 0x9f, 0x3d, 0x09, 0x87, 0xda, 0x70, 0x5e, - 0xdd, 0x73, 0xc8, 0xf7, 0x72, 0x83, 0x92, 0x2c, 0x1a, 0x36, 0x31, 0xf2, 0xa5, 0x3c, 0xa8, 0x2e, - 0x1e, 0x1f, 0x95, 0x4b, 0xda, 0x2e, 0x16, 0xff, 0x44, 0xe2, 0x24, 0xd1, 0x9f, 0x23, 0x32, 0xba, - 0xf2, 0x6c, 0x7d, 0xad, 0xbd, 0xc5, 0x8b, 0xa8, 0xd2, 0x49, 0xf4, 0xf9, 0xb7, 0x74, 0x19, 0x6d, - 0x04, 0x6a, 0x3c, 0x60, 0x3b, 0x45, 0xe0, 0x1c, 0x76, 0x9a, 0x6e, 0x5b, 0x7e, 0x97, 0xcd, 0x1e, - 0x07, 0x88, 0x09, 0x69, 0x23, 0x11, 0xf4, 0x63, 0x98, 0x91, 0x35, 0x6c, 0xc5, 0xdd, 0x4c, 0x5f, - 0x71, 0x74, 0x90, 0x4a, 0x7b, 0xc9, 0x05, 0x17, 0x23, 0x46, 0xbe, 0x2a, 0xa2, 0xb0, 0x3e, 0xf6, - 0xbd, 0x7e, 0xaf, 0x78, 0x4b, 0x9b, 0x16, 0x59, 0xde, 0x78, 0xc0, 0xbe, 0x2a, 0xa2, 0xeb, 0x36, - 0xf7, 0x49, 0x89, 0x3e, 0x2f, 0x12, 0x90, 0xec, 0xd3, 0x3b, 0x6b, 0x5c, 0xca, 0xbf, 0xad, 0x7d, - 0xec, 0xa2, 0x58, 0x4c, 0x71, 0xdf, 0x35, 0x09, 0x74, 0x89, 0x8d, 0x1c, 0x98, 0xd9, 0x7c, 0x11, - 0x3a, 0x6b, 0x87, 0xe4, 0xd4, 0x66, 0xf7, 0x3b, 0xb8, 0x78, 0x5b, 0x13, 0x4c, 0x7a, 0xa5, 0x98, - 0x5f, 0xef, 0x45, 0xe8, 0x34, 0x5d, 0x5a, 0xdc, 0xf4, 0xfb, 0x31, 0x05, 0x3b, 0x46, 0x90, 0xc8, - 0x3e, 0x52, 0x52, 0x09, 0x02, 0x77, 0xbf, 0x7b, 0x88, 0xbb, 0x61, 0xf1, 0x9d, 0x44, 0x13, 0x51, - 0x65, 0xe3, 0x01, 0x93, 0x7d, 0xb4, 0x09, 0x47, 0x16, 0x27, 0x5b, 0x88, 0x50, 0x50, 0x1d, 0x26, - 0xd7, 0xba, 0x21, 0xde, 0x67, 0x07, 0xc6, 0xe2, 0x1d, 0xed, 0x50, 0xa2, 0xd4, 0x34, 0x1e, 0x30, - 0x55, 0xc8, 0x8d, 0x8a, 0xf4, 0x33, 0x89, 0x02, 0x5b, 0x05, 0x18, 0x17, 0xa7, 0xc2, 0x27, 0xc3, - 0xe3, 0x63, 0x85, 0x71, 0x6b, 0x15, 0x46, 0x76, 0x9d, 0xb0, 0x75, 0x80, 0x3e, 0x87, 0x91, 0xa7, - 0x6e, 0xb7, 0x1d, 0x14, 0x73, 0xd7, 0x86, 0xe8, 0xc1, 0x81, 0x1d, 0x59, 0x69, 0x25, 0xa9, 0xa8, - 0xce, 0xff, 0xfc, 0xa8, 0x7c, 0xee, 0xf8, 0xa8, 0x7c, 0xfe, 0x05, 0x01, 0x53, 0xce, 0xad, 0x0c, - 0xcf, 0xfa, 0xa7, 0x79, 0x98, 0x90, 0xd0, 0x68, 0x01, 0x86, 0xc9, 0xff, 0xf4, 0x00, 0x3c, 0x51, - 0x1d, 0x3f, 0x3e, 0x2a, 0x0f, 0x13, 0x3c, 0x9b, 0x96, 0xa2, 0x25, 0x98, 0x5c, 0xf7, 0x9c, 0x76, - 0x1d, 0xb7, 0x7c, 0x1c, 0x06, 0xf4, 0x84, 0x3b, 0x5e, 0x2d, 0x1c, 0x1f, 0x95, 0xa7, 0x3a, 0x9e, - 0xd3, 0x6e, 0x06, 0xac, 0xdc, 0x56, 0x81, 0x08, 0x45, 0x7a, 0x3c, 0x1b, 0x8a, 0x28, 0x92, 0x63, - 0x8c, 0x4d, 0x4b, 0xd1, 0x13, 0x18, 0x7d, 0xe4, 0x76, 0x88, 0x14, 0x1a, 0xa6, 0xfd, 0x5f, 0x88, - 0xf7, 0xff, 0x2e, 0xab, 0x5e, 0xe9, 0x86, 0xfe, 0x6b, 0x76, 0x7a, 0x79, 0x4e, 0x0b, 0x94, 0x81, - 0x70, 0x0a, 0xe8, 0x3e, 0x8c, 0xd5, 0xfb, 0x7b, 0xb4, 0xfb, 0x23, 0xb4, 0x31, 0xba, 0xc5, 0x04, - 0xfd, 0xbd, 0x26, 0x19, 0x82, 0x82, 0x20, 0xc0, 0x4a, 0x1f, 0xc1, 0xa4, 0x42, 0x1e, 0x15, 0x60, - 0xe8, 0x05, 0x7e, 0xcd, 0xc6, 0x6e, 0x93, 0x3f, 0xd1, 0x2c, 0x8c, 0xbc, 0x74, 0x3a, 0x7d, 0x4c, - 0x87, 0x3a, 0x61, 0xb3, 0x1f, 0x1f, 0xe7, 0x3f, 0xcc, 0x59, 0x7f, 0x38, 0x0a, 0x85, 0x55, 0x2f, - 0x08, 0xc9, 0x71, 0x5a, 0x9e, 0x0b, 0x6e, 0xc0, 0x28, 0x29, 0x5b, 0x5b, 0xe6, 0xfc, 0x9b, 0x3c, - 0x3e, 0x2a, 0x8f, 0x1d, 0x78, 0x41, 0xd8, 0x74, 0xdb, 0x36, 0xaf, 0x42, 0xef, 0xc0, 0xf8, 0x86, - 0xd7, 0xc6, 0x94, 0x29, 0x94, 0x6c, 0x75, 0xfa, 0xf8, 0xa8, 0x3c, 0xd1, 0xf5, 0xda, 0x98, 0x1e, - 0x4d, 0x6d, 0x59, 0x8d, 0x1a, 0xfc, 0x48, 0xc9, 0x78, 0x57, 0x25, 0xbc, 0x23, 0x67, 0xc8, 0x5f, - 0x1e, 0x95, 0xdf, 0xdf, 0x77, 0xc3, 0x83, 0xfe, 0xde, 0xdd, 0x96, 0x77, 0x78, 0x6f, 0xdf, 0x77, - 0x5e, 0xba, 0xcc, 0xa2, 0xe3, 0x74, 0xee, 0x45, 0x76, 0x9f, 0x9e, 0xcb, 0xcd, 0x2d, 0xf5, 0xd7, - 0x41, 0x88, 0x0f, 0x09, 0x25, 0x7e, 0xe2, 0xdc, 0x85, 0xd9, 0x4a, 0xbb, 0xed, 0x32, 0x8c, 0x2d, - 0xdf, 0xed, 0xb6, 0xdc, 0x9e, 0xd3, 0x09, 0xe8, 0x1c, 0x4c, 0x54, 0x6f, 0x1c, 0x1f, 0x95, 0xcb, - 0x8e, 0xac, 0x6f, 0xf6, 0x24, 0x80, 0xc2, 0x43, 0x23, 0x01, 0xf4, 0x10, 0xc6, 0x97, 0x37, 0xea, - 0xf4, 0x3c, 0x5a, 0x1c, 0xa1, 0xc4, 0xe8, 0x97, 0xdf, 0xee, 0x06, 0x74, 0x68, 0x2a, 0x01, 0x09, - 0x88, 0xde, 0x87, 0xa9, 0xad, 0xfe, 0x5e, 0xc7, 0x6d, 0x6d, 0xaf, 0xd7, 0x9f, 0xe2, 0xd7, 0xf4, - 0x20, 0x3f, 0xc5, 0xf4, 0xb6, 0x1e, 0x2d, 0x6f, 0x86, 0x9d, 0xa0, 0xf9, 0x02, 0xbf, 0xb6, 0x35, - 0xb8, 0x08, 0xaf, 0x5e, 0x5f, 0x25, 0x78, 0x63, 0x09, 0xbc, 0x20, 0x38, 0x50, 0xf1, 0x18, 0x1c, - 0xba, 0x07, 0xc0, 0x8e, 0x47, 0x95, 0x76, 0x9b, 0x9d, 0xf3, 0x27, 0xaa, 0xe7, 0x8f, 0x8f, 0xca, - 0x93, 0xfc, 0x40, 0xe5, 0xb4, 0xdb, 0xbe, 0xad, 0x80, 0xa0, 0x1a, 0x8c, 0xdb, 0x1e, 0x63, 0x30, - 0x3f, 0xdd, 0x9f, 0x97, 0xa7, 0x7b, 0x56, 0xcc, 0xed, 0x39, 0xfc, 0x97, 0x3a, 0x4a, 0x01, 0x81, - 0xca, 0x30, 0xb6, 0xe1, 0xd5, 0x9c, 0xd6, 0x01, 0x3b, 0xe3, 0x8f, 0x57, 0x47, 0x8e, 0x8f, 0xca, - 0xb9, 0xef, 0xda, 0xa2, 0x14, 0xbd, 0x84, 0xc9, 0x68, 0xa2, 0x82, 0xe2, 0x24, 0x65, 0xdf, 0xf6, - 0xf1, 0x51, 0xf9, 0x52, 0x40, 0x8b, 0x9b, 0x64, 0xea, 0x15, 0x0e, 0x7e, 0x83, 0x55, 0xa0, 0x36, - 0x84, 0x3a, 0x70, 0x75, 0x87, 0xec, 0xb2, 0x7b, 0x1d, 0x1c, 0x15, 0x57, 0x82, 0x00, 0xfb, 0x84, - 0xd6, 0xda, 0x32, 0x35, 0x01, 0x4c, 0xf0, 0xb3, 0x47, 0xd4, 0x13, 0x22, 0x10, 0x19, 0x48, 0xd3, - 0x55, 0x3f, 0xae, 0x6c, 0x62, 0xd6, 0xff, 0x9e, 0x82, 0x02, 0xd9, 0x3c, 0xb4, 0xef, 0xe6, 0x3b, - 0x30, 0xc1, 0x66, 0xe8, 0x29, 0xff, 0xfc, 0xa6, 0xaa, 0x33, 0xc7, 0x47, 0x65, 0xe0, 0xd3, 0x48, - 0xa6, 0x30, 0x02, 0x40, 0xb7, 0x61, 0x9c, 0x50, 0xe8, 0x46, 0x1f, 0xd0, 0xd4, 0xf1, 0x51, 0x79, - 0xbc, 0xcf, 0xcb, 0x6c, 0x59, 0x8b, 0xea, 0x30, 0xb6, 0xf2, 0x75, 0xcf, 0xf5, 0x71, 0xc0, 0xad, - 0x66, 0xa5, 0xbb, 0xcc, 0x6e, 0x7a, 0x57, 0xd8, 0x4d, 0xef, 0x6e, 0x0b, 0xbb, 0x69, 0xf5, 0x2a, - 0x17, 0x94, 0x17, 0x30, 0x43, 0x89, 0xc6, 0xf4, 0x3b, 0xff, 0xb5, 0x9c, 0xb3, 0x05, 0x25, 0xf4, - 0x1d, 0x18, 0x7d, 0xe4, 0xf9, 0x87, 0x4e, 0x48, 0x8d, 0x65, 0x13, 0x5c, 0x28, 0xd1, 0x12, 0x4d, - 0x28, 0xd1, 0x12, 0xf4, 0x08, 0x66, 0x6c, 0xaf, 0x1f, 0xe2, 0x6d, 0x4f, 0xa8, 0x5b, 0x4c, 0x36, - 0xd1, 0xbd, 0xcb, 0x27, 0x35, 0xcd, 0xd0, 0x4b, 0x2a, 0x54, 0x76, 0x0c, 0x0b, 0xad, 0xc0, 0x8c, - 0x66, 0x83, 0x08, 0x8a, 0xa3, 0x74, 0x81, 0xb0, 0xf3, 0x99, 0x66, 0xb9, 0x50, 0xbf, 0xb2, 0x18, - 0x12, 0xda, 0x30, 0x29, 0x80, 0x63, 0xb4, 0x47, 0x03, 0x95, 0x3c, 0x93, 0x8a, 0x87, 0xe1, 0x3c, - 0xef, 0xa8, 0xd4, 0xf8, 0xc7, 0xb9, 0xe5, 0x82, 0x09, 0xf2, 0x58, 0x6d, 0xf5, 0x06, 0xe7, 0xf2, - 0x15, 0x39, 0xf6, 0xe4, 0x19, 0xc0, 0x8e, 0xd3, 0x24, 0x72, 0x45, 0xca, 0xcc, 0x09, 0xda, 0x5b, - 0x66, 0x0f, 0x13, 0x32, 0x53, 0xfd, 0xe2, 0xa4, 0xf4, 0x5c, 0x87, 0x91, 0x9d, 0xc0, 0xd9, 0x67, - 0xdf, 0xdb, 0xcc, 0xd2, 0x75, 0xde, 0xa3, 0xf8, 0xea, 0xa3, 0x26, 0x54, 0x0a, 0x58, 0xbd, 0x48, - 0xf6, 0x49, 0x6a, 0x1f, 0x56, 0xf7, 0x49, 0x5a, 0x87, 0xbe, 0x00, 0xe0, 0xbd, 0x22, 0x87, 0x88, - 0x49, 0xae, 0xe9, 0x68, 0x83, 0xac, 0xf4, 0x7a, 0xd5, 0x45, 0x3e, 0xbe, 0x4b, 0x72, 0x7c, 0xda, - 0xb1, 0xc2, 0x56, 0x88, 0xa0, 0xcf, 0x61, 0x8a, 0x7e, 0x8e, 0x62, 0x46, 0xa7, 0xe8, 0x8c, 0x52, - 0x2b, 0x2b, 0xfd, 0xc2, 0x0c, 0xf3, 0xa9, 0x21, 0xa0, 0xff, 0x1f, 0xe6, 0x38, 0xb9, 0xd8, 0x89, - 0x6e, 0x9a, 0x9f, 0x60, 0xb5, 0xee, 0xe9, 0x30, 0xd5, 0x3b, 0xbc, 0xa7, 0x96, 0xec, 0x69, 0xea, - 0x19, 0xcf, 0x36, 0x37, 0x83, 0xd6, 0xe0, 0xfc, 0x4e, 0x80, 0xb5, 0x31, 0xcc, 0x50, 0xd9, 0x46, - 0x0f, 0x27, 0xfd, 0x00, 0x37, 0xd3, 0xc6, 0x11, 0xc7, 0x43, 0x36, 0xa0, 0x65, 0xdf, 0xeb, 0xc5, - 0xd6, 0xf8, 0x79, 0xca, 0x11, 0x7a, 0xd6, 0x6e, 0xfb, 0x5e, 0xaf, 0x99, 0xbe, 0xd0, 0x0d, 0xd8, - 0xe8, 0x27, 0x70, 0x29, 0x32, 0x09, 0x2e, 0xbb, 0xce, 0x7e, 0xd7, 0x0b, 0x42, 0xb7, 0xb5, 0xb6, - 0x4c, 0xad, 0x6b, 0x5c, 0xa4, 0x45, 0x26, 0xc5, 0x66, 0x5b, 0x82, 0xe8, 0x22, 0x2d, 0x85, 0x0a, - 0xfa, 0x11, 0x4c, 0xf3, 0xb6, 0xb8, 0x09, 0xfa, 0x42, 0xf6, 0x42, 0x93, 0xc0, 0xdc, 0x1c, 0x2c, - 0x7e, 0xb2, 0x6d, 0x5f, 0xa7, 0x85, 0xbe, 0x82, 0xc9, 0x67, 0x8f, 0x2a, 0x36, 0x0e, 0x7a, 0x5e, - 0x37, 0xc0, 0xdc, 0xa4, 0xb6, 0xc8, 0x49, 0x3f, 0x7b, 0x54, 0xa9, 0xf4, 0xc3, 0x03, 0xdc, 0x0d, - 0xdd, 0x96, 0x13, 0x62, 0x01, 0xc5, 0xec, 0xdc, 0x87, 0xcf, 0x9d, 0xa6, 0xcf, 0x4b, 0x94, 0x51, - 0xa8, 0xe4, 0xd0, 0x1e, 0xcc, 0x29, 0x17, 0x41, 0x4d, 0xf2, 0x3f, 0xa6, 0xfa, 0x30, 0x33, 0x88, - 0x7d, 0x57, 0xde, 0x64, 0xdd, 0x55, 0xef, 0x8b, 0x5e, 0x3e, 0xb8, 0x5b, 0x89, 0x7e, 0xd6, 0x05, - 0x92, 0x3d, 0xeb, 0x18, 0x4a, 0xad, 0x2f, 0x61, 0x42, 0x7e, 0x5a, 0x68, 0x0c, 0x86, 0x2a, 0x9d, - 0x4e, 0xe1, 0x1c, 0xf9, 0xa3, 0x5e, 0x5f, 0x2d, 0xe4, 0xd0, 0x0c, 0x40, 0x24, 0x4f, 0x0a, 0x79, - 0x34, 0x15, 0x59, 0x0d, 0x0a, 0x43, 0x14, 0xbe, 0xd7, 0x2b, 0x0c, 0x23, 0x14, 0x37, 0x57, 0x14, - 0x46, 0xac, 0x4f, 0x60, 0x42, 0x32, 0x0b, 0x9d, 0x87, 0xc9, 0x9d, 0x8d, 0xfa, 0xd6, 0x4a, 0x6d, - 0xed, 0xd1, 0xda, 0xca, 0x72, 0xe1, 0x1c, 0xba, 0x0a, 0x97, 0xb7, 0xeb, 0xab, 0xcd, 0xe5, 0x6a, - 0x73, 0x7d, 0xb3, 0x56, 0x59, 0x6f, 0x6e, 0xd9, 0x9b, 0x5f, 0xfe, 0xa0, 0xb9, 0xbd, 0xb3, 0xb1, - 0xb1, 0xb2, 0x5e, 0xc8, 0x59, 0xff, 0x29, 0x97, 0x90, 0x59, 0x44, 0xb1, 0xe5, 0x87, 0x30, 0x3a, - 0x8f, 0x4c, 0x7b, 0xa3, 0x8a, 0xad, 0x38, 0xc0, 0xd1, 0x29, 0x52, 0x81, 0xc8, 0x36, 0xb4, 0x45, - 0x26, 0xa3, 0xe5, 0x75, 0xd4, 0x6d, 0xa8, 0xc7, 0xcb, 0x6c, 0x59, 0x8b, 0x96, 0x94, 0x0d, 0x6b, - 0x28, 0xd2, 0x4c, 0xc5, 0x86, 0xa5, 0x0a, 0x2f, 0xb9, 0x75, 0x2d, 0x29, 0x36, 0x94, 0xe1, 0x08, - 0xc7, 0x20, 0x2c, 0x25, 0x9c, 0xd5, 0x4f, 0x11, 0x07, 0xe8, 0x93, 0x84, 0xc9, 0x87, 0x8d, 0x90, - 0xca, 0xbb, 0xd8, 0x57, 0x9f, 0xb0, 0xe6, 0x94, 0x61, 0x64, 0xdd, 0xdb, 0x77, 0xbb, 0x7c, 0x90, - 0x13, 0xc7, 0x47, 0xe5, 0x91, 0x0e, 0x29, 0xb0, 0x59, 0xb9, 0xf5, 0x57, 0x87, 0x54, 0xd1, 0x28, - 0x15, 0xfe, 0x9c, 0x51, 0xe1, 0xff, 0x0e, 0x4c, 0xf0, 0x73, 0xe8, 0xda, 0x32, 0xa7, 0x48, 0xb7, - 0x7a, 0x61, 0xd5, 0x74, 0xdb, 0x76, 0x04, 0x40, 0x54, 0x35, 0xb6, 0xef, 0x53, 0x55, 0x6d, 0x28, - 0x52, 0xd5, 0xb8, 0x66, 0xc0, 0x54, 0xb5, 0x08, 0x84, 0x4c, 0xa4, 0x7a, 0x27, 0x34, 0x1c, 0x4d, - 0xa4, 0x7a, 0xfb, 0xa3, 0xdf, 0xf8, 0x7c, 0x0c, 0x50, 0xd9, 0xad, 0x53, 0x45, 0xc5, 0xde, 0xe0, - 0xdb, 0x33, 0xfd, 0x90, 0x9c, 0x57, 0x01, 0x57, 0x75, 0x7c, 0x55, 0xa7, 0x53, 0xa0, 0x51, 0x15, - 0xa6, 0x2b, 0xbf, 0xde, 0xf7, 0xf1, 0x5a, 0x9b, 0x7c, 0x8b, 0x21, 0x53, 0x5e, 0x27, 0xf8, 0x7d, - 0x02, 0xa9, 0x68, 0xba, 0xbc, 0x46, 0x21, 0xa0, 0xa3, 0xa0, 0x4d, 0xb8, 0xf0, 0xb8, 0x26, 0x8c, - 0x00, 0x95, 0x56, 0xcb, 0xeb, 0x77, 0x43, 0xbe, 0x27, 0x5f, 0x3f, 0x3e, 0x2a, 0x5f, 0xdd, 0x6f, - 0x45, 0x76, 0x04, 0x87, 0x55, 0xab, 0x9b, 0x72, 0x02, 0xd7, 0xea, 0xc0, 0xcc, 0x63, 0x1c, 0x92, - 0xa5, 0x24, 0x14, 0xac, 0xec, 0x39, 0xf9, 0x14, 0x26, 0x77, 0xdd, 0xf0, 0x40, 0x3f, 0xd6, 0x51, - 0x0e, 0xbc, 0x72, 0xc3, 0x03, 0x71, 0xac, 0x53, 0x45, 0x89, 0x02, 0x6e, 0xad, 0xc0, 0x79, 0xde, - 0x9a, 0xd4, 0xe7, 0x96, 0x74, 0x82, 0xb9, 0xe8, 0x9c, 0xa8, 0x12, 0xd4, 0xc9, 0xfc, 0x61, 0x1e, - 0xe6, 0x6a, 0x07, 0x4e, 0x77, 0x1f, 0x6f, 0x39, 0x41, 0xf0, 0xca, 0xf3, 0xdb, 0x4a, 0xe7, 0xe9, - 0x8d, 0x5c, 0xa2, 0xf3, 0xf4, 0xda, 0x6d, 0x09, 0x26, 0x37, 0x3b, 0x6d, 0x81, 0x43, 0x3b, 0x3f, - 0xc5, 0xda, 0xf2, 0x3a, 0xed, 0x66, 0x4f, 0xd0, 0x52, 0x81, 0x08, 0xce, 0x06, 0x7e, 0x25, 0x71, - 0x86, 0x22, 0x9c, 0x2e, 0x7e, 0xa5, 0xe0, 0x28, 0x40, 0x68, 0x05, 0x2e, 0xd4, 0x71, 0xcb, 0xeb, - 0xb6, 0x1f, 0x39, 0xad, 0xd0, 0xf3, 0xd9, 0xc5, 0xc4, 0x70, 0xa4, 0x8b, 0x04, 0xb4, 0xb2, 0xf9, - 0x9c, 0xd6, 0xb2, 0xfb, 0x08, 0x3b, 0x89, 0x81, 0x36, 0xe9, 0xb5, 0x06, 0xbd, 0xd7, 0xe6, 0x17, - 0xa2, 0x37, 0xef, 0xca, 0x8b, 0xee, 0x9a, 0x8f, 0xe9, 0xa2, 0x70, 0x3a, 0x52, 0x65, 0x96, 0xa2, - 0x9d, 0x0a, 0x17, 0x01, 0x69, 0x4b, 0x22, 0x16, 0x8e, 0x2b, 0x86, 0xa8, 0x9e, 0x50, 0x15, 0x99, - 0x6d, 0x20, 0xed, 0xf2, 0x8b, 0x4a, 0x81, 0xd8, 0xce, 0x1a, 0x57, 0x1c, 0xad, 0x1d, 0x98, 0xde, - 0xea, 0xf4, 0xf7, 0xdd, 0x2e, 0x91, 0x36, 0x75, 0xfc, 0x33, 0xb4, 0x0c, 0x10, 0x15, 0xf0, 0x16, - 0x84, 0x81, 0x2a, 0xaa, 0x68, 0x3c, 0xe4, 0xdf, 0x2b, 0x2d, 0xa1, 0xba, 0x9e, 0xad, 0xe0, 0x59, - 0x7f, 0x71, 0x08, 0x10, 0x6f, 0x83, 0x6e, 0x1c, 0x75, 0x1c, 0x12, 0x99, 0x7e, 0x09, 0xf2, 0xf2, - 0x10, 0x3d, 0x7a, 0x7c, 0x54, 0xce, 0xbb, 0x6d, 0x3b, 0xbf, 0xb6, 0x8c, 0xde, 0x85, 0x11, 0x0a, - 0x46, 0xa7, 0x79, 0x46, 0xb6, 0xa7, 0x52, 0x60, 0x02, 0x8a, 0x6e, 0x68, 0x36, 0x03, 0x46, 0xef, - 0xc1, 0xc4, 0x32, 0xee, 0xe0, 0x7d, 0x27, 0xf4, 0x84, 0x10, 0x61, 0xc7, 0x52, 0x51, 0xa8, 0x2c, - 0xed, 0x08, 0x92, 0x28, 0xfa, 0x36, 0x76, 0x02, 0xaf, 0xab, 0x2a, 0xfa, 0x3e, 0x2d, 0x51, 0x15, - 0x7d, 0x06, 0x83, 0x7e, 0x2f, 0x07, 0x93, 0x95, 0x6e, 0x97, 0x1f, 0xf7, 0x02, 0x3e, 0xb9, 0x73, - 0x77, 0xa5, 0x5b, 0xc2, 0xba, 0xb3, 0x87, 0x3b, 0x0d, 0xa7, 0xd3, 0xc7, 0x41, 0xf5, 0x2b, 0xa2, - 0x7b, 0xfd, 0xe7, 0xa3, 0xf2, 0x27, 0xa7, 0x38, 0xc0, 0x45, 0x0e, 0x0e, 0xdb, 0xbe, 0xe3, 0x86, - 0x01, 0xbd, 0x5a, 0x8c, 0x1a, 0x54, 0x3f, 0x4f, 0xa5, 0x1f, 0xe8, 0x1d, 0x18, 0x61, 0x07, 0x4a, - 0x76, 0x5e, 0xa0, 0x93, 0x1d, 0x3b, 0x49, 0xda, 0x0c, 0xc2, 0xba, 0x21, 0xb7, 0xd5, 0xb5, 0xe5, - 0xb4, 0x29, 0xb0, 0x6a, 0xb0, 0xf0, 0x18, 0x87, 0x36, 0x0e, 0x70, 0x28, 0xbe, 0x0d, 0xba, 0xb2, - 0x23, 0x1b, 0xc8, 0x18, 0xfd, 0x2d, 0x91, 0xe9, 0x7c, 0xb0, 0xef, 0x41, 0xd4, 0x58, 0x7f, 0x3e, - 0x07, 0xe5, 0x9a, 0x8f, 0x99, 0xea, 0x92, 0x42, 0x28, 0x5b, 0x66, 0x2d, 0x70, 0x4f, 0x8d, 0x7c, - 0x54, 0x4b, 0xb8, 0xc4, 0xbd, 0x31, 0x6e, 0xc2, 0xd0, 0xf6, 0xf6, 0x3a, 0x9d, 0xeb, 0x21, 0x3a, - 0xe4, 0xa1, 0x30, 0xec, 0xfc, 0xf2, 0xa8, 0x3c, 0xbe, 0xdc, 0x67, 0x26, 0x35, 0x9b, 0xd4, 0x5b, - 0xcf, 0x61, 0xce, 0xc6, 0x5d, 0xfc, 0x8a, 0x1c, 0x57, 0xb5, 0x03, 0x69, 0x19, 0x46, 0xd8, 0x07, - 0x9e, 0x18, 0x02, 0x2b, 0xd7, 0x4f, 0xac, 0xf9, 0x01, 0x27, 0x56, 0xeb, 0x1f, 0xe4, 0xa1, 0xc0, - 0x86, 0x5b, 0xf5, 0xc2, 0x93, 0x8d, 0x8f, 0x8f, 0x20, 0x9f, 0x3d, 0x02, 0x74, 0x2b, 0xe2, 0xf6, - 0x50, 0xa4, 0x83, 0xd0, 0xae, 0x92, 0xad, 0x54, 0x54, 0x92, 0x01, 0xb1, 0x55, 0xc0, 0x4c, 0x3c, - 0x74, 0x40, 0x74, 0x15, 0xf0, 0xb9, 0x47, 0xbf, 0x9d, 0x83, 0x51, 0xb6, 0xae, 0xb2, 0x57, 0xee, - 0xee, 0xd9, 0xac, 0xdc, 0x42, 0x48, 0xff, 0x52, 0xbf, 0x23, 0x56, 0x67, 0xfd, 0xa3, 0x3c, 0x5c, - 0x50, 0x78, 0xc5, 0xf5, 0xd5, 0x77, 0x98, 0x0a, 0xa5, 0x30, 0x8c, 0x1a, 0xcd, 0xa8, 0x79, 0x3a, - 0x3a, 0xf4, 0x53, 0xce, 0xbd, 0x03, 0xe3, 0x64, 0x48, 0x71, 0xfb, 0x1a, 0xdd, 0xc8, 0x19, 0xa8, - 0xa8, 0x3e, 0x31, 0xf7, 0xee, 0xc1, 0x38, 0xfd, 0x93, 0xcc, 0xc8, 0x70, 0xfa, 0x8c, 0x48, 0x20, - 0xe4, 0x02, 0x3c, 0xf1, 0xdc, 0xee, 0x33, 0x1c, 0x1e, 0x78, 0xc2, 0x1a, 0xb9, 0x46, 0xe4, 0xe0, - 0xff, 0xe3, 0xb9, 0xdd, 0xe6, 0x21, 0x2d, 0x3e, 0xad, 0xfd, 0x26, 0x22, 0x68, 0x2b, 0xc4, 0xad, - 0xfb, 0x50, 0x20, 0x22, 0xeb, 0xe4, 0x4b, 0xcb, 0x9a, 0x05, 0xf4, 0x18, 0x87, 0x55, 0x4f, 0xdb, - 0xb3, 0xad, 0x69, 0x98, 0xdc, 0x72, 0xbb, 0xfb, 0xe2, 0xe7, 0x1f, 0x0c, 0xc1, 0x14, 0xfb, 0xcd, - 0x67, 0x20, 0xa6, 0x59, 0xe5, 0x4e, 0xa2, 0x59, 0x7d, 0x08, 0xd3, 0xfc, 0xbe, 0x0a, 0xfb, 0xf4, - 0x1e, 0x83, 0xcd, 0x07, 0x3d, 0xfd, 0xb0, 0xfb, 0xaa, 0xe6, 0x4b, 0x56, 0x63, 0xeb, 0x80, 0x68, - 0x1d, 0x66, 0x58, 0xc1, 0x23, 0xec, 0x84, 0xfd, 0xc8, 0x80, 0x73, 0x9e, 0x1f, 0x80, 0x44, 0x31, - 0x93, 0x67, 0x9c, 0xd6, 0x73, 0x5e, 0x68, 0xc7, 0x70, 0xd1, 0xe7, 0x70, 0x7e, 0xcb, 0xf7, 0xbe, - 0x7e, 0xad, 0xe8, 0x92, 0x4c, 0xa4, 0xcf, 0x1d, 0x1f, 0x95, 0x2f, 0xf4, 0x48, 0x55, 0x53, 0xd5, - 0x28, 0xe3, 0xd0, 0x64, 0x4d, 0xad, 0x05, 0x55, 0xcf, 0x77, 0xbb, 0xfb, 0x74, 0x36, 0xc7, 0xd9, - 0x9a, 0x72, 0x83, 0xe6, 0x1e, 0x2d, 0xb4, 0x65, 0x75, 0xcc, 0xba, 0x38, 0x36, 0xd8, 0xba, 0x78, - 0x1f, 0x60, 0xdd, 0x73, 0xda, 0x95, 0x4e, 0xa7, 0x56, 0x09, 0xa8, 0xf5, 0x44, 0xb5, 0xa9, 0x3b, - 0x9d, 0x4e, 0xb3, 0xe5, 0x04, 0xb6, 0x02, 0xf3, 0x64, 0x78, 0x7c, 0xb4, 0x30, 0x66, 0x9f, 0x5f, - 0x77, 0x5b, 0xb8, 0x1b, 0xe0, 0x5d, 0xc7, 0xef, 0xba, 0xdd, 0xfd, 0xc0, 0xfa, 0x2f, 0xc3, 0x30, - 0x2e, 0x87, 0x7c, 0x57, 0x3d, 0x5d, 0x71, 0x0d, 0x8c, 0x4a, 0xa8, 0xc8, 0xc2, 0x63, 0x2b, 0x10, - 0xe8, 0x32, 0xbb, 0x1c, 0x65, 0xba, 0xdf, 0x18, 0x59, 0xdd, 0x4e, 0xaf, 0xc7, 0xae, 0x40, 0x2f, - 0x41, 0x7e, 0xb9, 0x4a, 0xf9, 0x3f, 0xce, 0x76, 0x82, 0xf6, 0x9e, 0x9d, 0x5f, 0xae, 0x92, 0x55, - 0xb6, 0xb9, 0xb6, 0x5c, 0xa3, 0xac, 0x1c, 0x67, 0xab, 0xcc, 0x73, 0xdb, 0x2d, 0x9b, 0x96, 0x92, - 0xda, 0x7a, 0xe5, 0xd9, 0x3a, 0x67, 0x17, 0xad, 0x0d, 0x9c, 0xc3, 0x8e, 0x4d, 0x4b, 0xc9, 0x89, - 0x84, 0x29, 0x18, 0x35, 0xaf, 0x1b, 0xfa, 0x5e, 0x27, 0xa0, 0x8a, 0xf3, 0xb8, 0xa6, 0x8b, 0xb4, - 0x78, 0x95, 0x1d, 0x03, 0x45, 0xbb, 0x30, 0x5f, 0x69, 0xbf, 0x74, 0xba, 0x2d, 0xdc, 0x66, 0x35, - 0xbb, 0x9e, 0xff, 0xe2, 0x79, 0xc7, 0x7b, 0x15, 0x50, 0x7e, 0x8f, 0x73, 0xa3, 0x18, 0x07, 0x11, - 0x46, 0x83, 0x57, 0x02, 0xc8, 0x4e, 0xc3, 0x26, 0x52, 0xb2, 0xd6, 0xf1, 0xfa, 0x6d, 0x3e, 0x0b, - 0x54, 0x4a, 0xb6, 0x48, 0x81, 0xcd, 0xca, 0x09, 0x97, 0x56, 0xeb, 0xcf, 0xa8, 0x09, 0x8a, 0x73, - 0xe9, 0x20, 0x38, 0xb4, 0x49, 0x19, 0xba, 0x09, 0x63, 0xe2, 0x70, 0xc5, 0xec, 0xbb, 0xd4, 0xf8, - 0x2f, 0x0e, 0x55, 0xa2, 0x8e, 0x7c, 0x12, 0x36, 0x6e, 0x79, 0x2f, 0xb1, 0xff, 0xba, 0xe6, 0xb5, - 0xb1, 0x30, 0x98, 0x70, 0x83, 0x00, 0xab, 0x68, 0xb6, 0x48, 0x8d, 0xad, 0x03, 0x92, 0x06, 0x98, - 0xe2, 0x14, 0x50, 0x8f, 0x23, 0xde, 0x00, 0x53, 0xac, 0x02, 0x5b, 0xd4, 0xa1, 0x65, 0xb8, 0x50, - 0xe9, 0x87, 0xde, 0xa1, 0x13, 0xba, 0xad, 0x9d, 0xde, 0xbe, 0xef, 0x90, 0x46, 0x0a, 0x14, 0x81, - 0x9e, 0x20, 0x1d, 0x51, 0xd9, 0xec, 0xf3, 0x5a, 0x3b, 0x89, 0xf0, 0x64, 0x78, 0x7c, 0xb2, 0x30, - 0xf5, 0x64, 0x78, 0x7c, 0xaa, 0x30, 0xfd, 0x64, 0x78, 0x7c, 0xba, 0x30, 0x63, 0x3d, 0x80, 0x0b, - 0x4c, 0xce, 0x9c, 0xf8, 0x5c, 0x61, 0x6d, 0x01, 0xd4, 0xf1, 0xa1, 0xd3, 0x3b, 0xf0, 0xc8, 0x8a, - 0xac, 0xaa, 0xbf, 0xb8, 0xc2, 0x88, 0xa4, 0xc7, 0x0b, 0xaf, 0x68, 0x3c, 0x14, 0xc7, 0x41, 0x01, - 0x69, 0x2b, 0x58, 0xd6, 0xbf, 0xcf, 0x03, 0xa2, 0x9e, 0x1f, 0xf5, 0xd0, 0xc7, 0xce, 0xa1, 0xe8, - 0xc6, 0x47, 0x30, 0xc5, 0xb6, 0x0c, 0x56, 0x4c, 0xbb, 0x43, 0xb4, 0x51, 0x26, 0x2b, 0xd4, 0xaa, - 0xd5, 0x73, 0xb6, 0x06, 0x4a, 0x50, 0x6d, 0x1c, 0xf4, 0x0f, 0x05, 0x6a, 0x5e, 0x43, 0x55, 0xab, - 0x08, 0xaa, 0xfa, 0x1b, 0x7d, 0x0e, 0x33, 0x35, 0xef, 0xb0, 0x47, 0x78, 0xc2, 0x91, 0x87, 0xf8, - 0xce, 0xc9, 0xdb, 0xd5, 0x2a, 0x57, 0xcf, 0xd9, 0x31, 0x70, 0xb4, 0x01, 0x17, 0x1f, 0x75, 0xfa, - 0xc1, 0x41, 0xa5, 0xdb, 0xae, 0x75, 0xbc, 0x40, 0x50, 0x19, 0xe6, 0xa6, 0x6a, 0x2e, 0xe9, 0x92, - 0x10, 0xab, 0xe7, 0x6c, 0x13, 0x22, 0xba, 0xc9, 0xdd, 0x58, 0xf9, 0x0e, 0x3e, 0x7d, 0x97, 0x7b, - 0xb9, 0x6e, 0x76, 0xf1, 0xe6, 0xf3, 0xd5, 0x73, 0x36, 0xab, 0xad, 0x4e, 0xc0, 0x98, 0x90, 0xf2, - 0xf7, 0xc8, 0x62, 0x91, 0xec, 0x24, 0xda, 0x72, 0x3f, 0x40, 0x25, 0x18, 0xdf, 0xe9, 0x11, 0xe1, - 0x23, 0x54, 0x38, 0x5b, 0xfe, 0xb6, 0xbe, 0xa3, 0x73, 0x1a, 0x2d, 0xa8, 0xc7, 0x79, 0x06, 0x1c, - 0x15, 0x58, 0xab, 0x3a, 0x73, 0xb3, 0xa1, 0xb5, 0x76, 0xf3, 0xb1, 0x76, 0x0b, 0x71, 0x5e, 0x5b, - 0x73, 0x46, 0xe6, 0x59, 0x5f, 0xc2, 0xe2, 0x4e, 0x8f, 0x9c, 0x9d, 0x2a, 0xbd, 0x5e, 0xc7, 0x6d, - 0x31, 0x93, 0x14, 0xdd, 0x0d, 0xc4, 0x62, 0x79, 0x5f, 0xfa, 0x48, 0xe6, 0x52, 0x3d, 0x4a, 0xe0, - 0xf8, 0xa8, 0x3c, 0xca, 0x76, 0x15, 0xe1, 0x1a, 0x69, 0xfd, 0x4e, 0x0e, 0x16, 0xd9, 0x17, 0x90, - 0x4a, 0xfa, 0xd7, 0x54, 0x4f, 0x4e, 0x45, 0x4d, 0x91, 0x7e, 0x9b, 0xaa, 0xaf, 0x66, 0x74, 0x59, - 0x98, 0x4f, 0xbf, 0x2c, 0xcc, 0xbc, 0x3d, 0xb5, 0xbe, 0x00, 0x8b, 0xf7, 0xa8, 0xd3, 0x49, 0x74, - 0x2a, 0x78, 0x93, 0x5e, 0x59, 0xff, 0x3d, 0x0f, 0xf3, 0x8f, 0x71, 0x17, 0xfb, 0x0e, 0x1d, 0xa7, - 0xa6, 0x91, 0xab, 0x17, 0x2f, 0xb9, 0xcc, 0x8b, 0x17, 0xa9, 0x6e, 0xe6, 0x53, 0xd4, 0xcd, 0xcb, - 0x30, 0xb4, 0x63, 0xaf, 0xf1, 0x61, 0x51, 0x41, 0xda, 0xf7, 0x5d, 0x9b, 0x94, 0xa1, 0xb5, 0xe8, - 0xd2, 0x66, 0x78, 0xe0, 0xa5, 0xcd, 0x45, 0x6e, 0xc4, 0x1e, 0xe3, 0x97, 0x36, 0xfa, 0x55, 0xcd, - 0x86, 0xa2, 0xd3, 0x12, 0x71, 0x73, 0x87, 0x7f, 0x53, 0x29, 0x03, 0xe4, 0xea, 0x29, 0xbb, 0x6b, - 0xa6, 0x4b, 0x80, 0x69, 0xa9, 0x42, 0x37, 0x2d, 0x7d, 0x01, 0x93, 0x0a, 0x88, 0xe1, 0xbe, 0xf8, - 0x3b, 0xea, 0x7d, 0x31, 0x39, 0x71, 0x4b, 0xcd, 0xb7, 0x1e, 0x12, 0xed, 0x80, 0x29, 0xd1, 0xea, - 0x3d, 0xf2, 0x27, 0x50, 0x4c, 0xf6, 0x86, 0xab, 0x5c, 0x83, 0x4e, 0x21, 0xd6, 0x32, 0xcc, 0x3e, - 0xc6, 0x61, 0xe4, 0x46, 0xaa, 0xdc, 0xa7, 0xc5, 0xbe, 0xb3, 0x0c, 0x23, 0x9b, 0x55, 0x87, 0xb9, - 0x18, 0x15, 0xde, 0xfe, 0xc7, 0x30, 0x26, 0x1c, 0x50, 0x72, 0xe9, 0x0e, 0x28, 0x74, 0xdd, 0x72, - 0xca, 0xb6, 0x40, 0xb0, 0x76, 0xe1, 0x92, 0x46, 0x34, 0x90, 0x54, 0xbf, 0x07, 0xe3, 0xa2, 0x2c, - 0x66, 0x36, 0xd0, 0xc8, 0xd2, 0xa5, 0x15, 0x08, 0x64, 0x89, 0x62, 0x1d, 0xc0, 0xa5, 0x75, 0x37, - 0xd0, 0x29, 0xb3, 0x51, 0x5f, 0x81, 0x89, 0x9e, 0xb3, 0x8f, 0x9b, 0x81, 0xfb, 0xeb, 0x6c, 0x7d, - 0x8e, 0xd8, 0xe3, 0xa4, 0xa0, 0xee, 0xfe, 0x3a, 0x46, 0x57, 0x01, 0x68, 0x25, 0xe5, 0x1f, 0x17, - 0x2f, 0x14, 0x9c, 0x9d, 0xe7, 0x10, 0x0c, 0x93, 0x65, 0xcc, 0x16, 0xa4, 0x4d, 0xff, 0xb6, 0x7c, - 0x98, 0x4f, 0xb4, 0xc4, 0xc7, 0x70, 0x0f, 0x64, 0xd7, 0x32, 0xc6, 0x60, 0x4b, 0x20, 0x74, 0x0b, - 0xce, 0x77, 0xf1, 0xd7, 0x61, 0x33, 0xd1, 0x87, 0x69, 0x52, 0xbc, 0x25, 0xfa, 0x61, 0xfd, 0x98, - 0x9e, 0xae, 0xe3, 0x1e, 0x62, 0x67, 0xc6, 0xbc, 0x0e, 0x94, 0xc8, 0x90, 0x74, 0x87, 0xa0, 0x5f, - 0x19, 0x03, 0x5f, 0xc2, 0x15, 0x63, 0x6b, 0xbf, 0x6a, 0x26, 0xfe, 0x69, 0x1e, 0xe6, 0xd9, 0x2e, - 0x95, 0xfc, 0x34, 0x4e, 0x2e, 0xc3, 0xbe, 0x15, 0xdb, 0xf3, 0x7d, 0x83, 0xed, 0x99, 0xa2, 0xa8, - 0xb6, 0x67, 0xcd, 0xe2, 0xfc, 0xa1, 0xd9, 0xe2, 0x4c, 0x15, 0x48, 0xdd, 0xe2, 0x1c, 0xb7, 0x33, - 0xaf, 0xa4, 0xdb, 0x99, 0xa9, 0x39, 0xcc, 0x60, 0x67, 0x36, 0x58, 0x97, 0x9f, 0x0c, 0x8f, 0xe7, - 0x0b, 0x43, 0x56, 0x03, 0x8a, 0x49, 0x16, 0x9f, 0x81, 0xdc, 0xf8, 0xa3, 0x1c, 0x5c, 0xe5, 0x1a, - 0x46, 0xec, 0x23, 0x38, 0xfd, 0x0c, 0xbe, 0x07, 0x53, 0x1c, 0x77, 0x3b, 0x5a, 0x2c, 0xcc, 0xd7, - 0x53, 0x48, 0x42, 0x26, 0x4e, 0x35, 0x30, 0xf4, 0x9e, 0x72, 0xda, 0x67, 0x16, 0xa4, 0xcb, 0x64, - 0xbb, 0x64, 0x66, 0x81, 0xd4, 0x33, 0xbf, 0xf5, 0x15, 0x2c, 0xa6, 0x75, 0xfc, 0x0c, 0xf8, 0xf2, - 0xc7, 0x39, 0xb8, 0xc2, 0xc9, 0x6b, 0x9f, 0xd3, 0x1b, 0x89, 0xfc, 0x53, 0xb8, 0x50, 0x3c, 0x81, - 0x49, 0xd2, 0xa0, 0xe8, 0xb7, 0xfe, 0xf8, 0x48, 0xa9, 0x59, 0x76, 0x42, 0x87, 0xdf, 0x98, 0x39, - 0x87, 0x1d, 0xe1, 0x87, 0x68, 0xab, 0xc8, 0xd6, 0x0f, 0x61, 0xc1, 0x3c, 0x84, 0x33, 0xe0, 0xcf, - 0x13, 0x28, 0x19, 0x04, 0xe7, 0x9b, 0x6d, 0x88, 0x3f, 0x80, 0x2b, 0x46, 0x5a, 0x67, 0xd0, 0xcd, - 0x55, 0xb2, 0xdd, 0x87, 0x67, 0x30, 0x85, 0xd6, 0x2e, 0x5c, 0x36, 0x50, 0x3a, 0x83, 0x2e, 0x3e, - 0x86, 0x79, 0xa9, 0xe6, 0x7e, 0xa3, 0x1e, 0x3e, 0x83, 0xab, 0x8c, 0xd0, 0xd9, 0xcc, 0xca, 0x53, - 0xb8, 0xc2, 0xc9, 0x9d, 0x01, 0xf7, 0x56, 0x61, 0x21, 0x3a, 0xcd, 0x1a, 0x74, 0x89, 0x13, 0x0b, - 0x19, 0x6b, 0x1d, 0xae, 0x45, 0x94, 0x52, 0x36, 0xd6, 0x93, 0x53, 0x63, 0xba, 0x58, 0x34, 0x4b, - 0x67, 0xa8, 0x8b, 0x45, 0x80, 0x67, 0xa6, 0x4e, 0xac, 0xc1, 0x45, 0x46, 0x58, 0xd7, 0x5b, 0x97, - 0x54, 0xbd, 0xd5, 0xf8, 0x6e, 0x27, 0xa9, 0xca, 0x3e, 0xa3, 0xaa, 0xac, 0x00, 0x89, 0x7a, 0xf8, - 0x1e, 0x8c, 0xf2, 0xa7, 0x89, 0xac, 0x7f, 0x06, 0x62, 0x4c, 0x53, 0x67, 0x68, 0x1c, 0xd8, 0xda, - 0x84, 0x22, 0x3b, 0x06, 0x3e, 0xed, 0xef, 0x09, 0xe7, 0x6e, 0x31, 0x1b, 0x0f, 0x63, 0x07, 0xc0, - 0xc4, 0x23, 0x39, 0xd3, 0xe9, 0xef, 0x43, 0x28, 0xb2, 0x69, 0x36, 0x10, 0x14, 0x87, 0xb4, 0xbc, - 0xf1, 0x90, 0xb6, 0x28, 0x96, 0x5a, 0xa5, 0xd3, 0x51, 0x90, 0xa5, 0xe1, 0xf5, 0x27, 0x70, 0x35, - 0xea, 0xaa, 0xea, 0xad, 0x2f, 0xc8, 0x7f, 0x2f, 0xd6, 0xdf, 0x8c, 0x47, 0x01, 0xa6, 0x9e, 0xef, - 0x89, 0xcf, 0x30, 0x8d, 0xfe, 0x89, 0xbc, 0x56, 0xb3, 0xc7, 0x78, 0x03, 0xae, 0x6b, 0x63, 0x54, - 0x9b, 0x91, 0x03, 0xfd, 0x21, 0x5c, 0x61, 0x03, 0xd5, 0xdf, 0x8e, 0x89, 0x6e, 0x7c, 0x12, 0x1b, - 0x66, 0xea, 0xe3, 0x34, 0xd3, 0x20, 0xff, 0x4a, 0x4e, 0x48, 0x07, 0x33, 0xf1, 0x6f, 0xfb, 0x64, - 0xbe, 0x01, 0x65, 0xc9, 0x10, 0xbd, 0x47, 0x6f, 0x76, 0x2c, 0x7f, 0x06, 0x73, 0x89, 0xf7, 0x0d, - 0x44, 0xb7, 0x46, 0xef, 0x92, 0x2f, 0x98, 0x2d, 0x28, 0xfe, 0x85, 0xa4, 0xbe, 0x87, 0xb0, 0x25, - 0xa4, 0xd5, 0x84, 0x85, 0xe4, 0x54, 0x28, 0x2b, 0xfa, 0x73, 0x22, 0x6d, 0xd8, 0x23, 0x8b, 0xdc, - 0x80, 0x47, 0x16, 0x5c, 0xe4, 0x30, 0x74, 0x81, 0x65, 0x59, 0x42, 0x2a, 0xc6, 0xc6, 0xaf, 0x2e, - 0xfc, 0x7f, 0x9c, 0x03, 0x24, 0xea, 0x6a, 0x75, 0x5b, 0xb4, 0x7d, 0x19, 0x86, 0x6a, 0x75, 0x9b, - 0xbb, 0x81, 0x52, 0xd3, 0x40, 0x2b, 0xf0, 0x6d, 0x52, 0x16, 0xd7, 0xb0, 0xf3, 0x27, 0xd1, 0xb0, - 0xd7, 0x00, 0xd5, 0xdd, 0xfd, 0xee, 0xae, 0x1b, 0x1e, 0xc8, 0xc6, 0x2a, 0xdc, 0x9a, 0x4d, 0x3d, - 0xf0, 0x03, 0x77, 0xbf, 0xdb, 0xa4, 0x7e, 0x09, 0xf2, 0xa9, 0x48, 0xcb, 0xb1, 0x0d, 0x48, 0xd6, - 0x8f, 0xe0, 0xa2, 0xd6, 0x5f, 0x2e, 0xa2, 0x16, 0x60, 0xb8, 0x86, 0xfd, 0x90, 0xf7, 0x98, 0xae, - 0x84, 0x16, 0xf6, 0x43, 0x9b, 0x96, 0xa2, 0x5b, 0x30, 0x56, 0xab, 0xd0, 0xcb, 0x45, 0x6a, 0x0c, - 0x99, 0x62, 0xc2, 0xb4, 0xe5, 0x34, 0xe9, 0xc3, 0x7a, 0x5b, 0x54, 0x5a, 0x7f, 0x7f, 0x58, 0xa1, - 0x4e, 0xd0, 0x07, 0xb3, 0xe3, 0x01, 0x00, 0x5b, 0x53, 0x0a, 0x37, 0x88, 0x76, 0x3b, 0xc9, 0xef, - 0x43, 0xd8, 0x7e, 0x63, 0x2b, 0x40, 0x27, 0xbc, 0x18, 0x15, 0xfe, 0x50, 0x0c, 0x49, 0x5c, 0x1a, - 0x4a, 0x7f, 0x28, 0x4e, 0x3a, 0xb0, 0x55, 0x20, 0xf4, 0x93, 0xb8, 0x37, 0xdc, 0x08, 0xbd, 0xa3, - 0x7f, 0x8b, 0xdb, 0x5c, 0x0c, 0x63, 0x3b, 0x9d, 0x43, 0xdc, 0x2b, 0x98, 0x23, 0xb8, 0xee, 0x73, - 0xea, 0xf2, 0xb6, 0xf2, 0x75, 0x88, 0xbb, 0x6c, 0xe3, 0x1a, 0xa5, 0xed, 0xdc, 0xcc, 0x68, 0x27, - 0x02, 0xe6, 0x2f, 0xc1, 0x23, 0x3a, 0x4d, 0x2c, 0xeb, 0x6c, 0x33, 0x7d, 0xba, 0xea, 0xec, 0xf5, - 0x95, 0x6e, 0xbb, 0xe7, 0xb9, 0xf2, 0xc4, 0xc4, 0x56, 0x9d, 0xdf, 0x69, 0x62, 0x5e, 0x6e, 0xab, - 0x40, 0xd6, 0xad, 0x4c, 0x0f, 0xb5, 0x71, 0x18, 0xde, 0xae, 0x6d, 0xaf, 0x17, 0x72, 0xd6, 0x3d, - 0x00, 0xa5, 0x25, 0x80, 0xd1, 0x8d, 0x4d, 0xfb, 0x59, 0x65, 0xbd, 0x70, 0x0e, 0xcd, 0xc1, 0x85, - 0xdd, 0xb5, 0x8d, 0xe5, 0xcd, 0xdd, 0x7a, 0xb3, 0xfe, 0xac, 0x62, 0x6f, 0xd7, 0x2a, 0xf6, 0x72, - 0x21, 0x67, 0x7d, 0x05, 0xb3, 0xfa, 0x08, 0xcf, 0x74, 0x11, 0x86, 0x70, 0x51, 0x2a, 0x6b, 0x4f, - 0x76, 0xb7, 0x15, 0x7f, 0x1e, 0x7e, 0xfa, 0x8b, 0xdf, 0xfd, 0xf1, 0x73, 0x22, 0xff, 0xee, 0x14, - 0x20, 0xed, 0xc6, 0x36, 0x9f, 0x79, 0x63, 0x6b, 0x7d, 0x00, 0xb3, 0x7a, 0xab, 0x27, 0xb5, 0x7f, - 0xbd, 0x45, 0x1d, 0x9d, 0x14, 0x3f, 0x52, 0x84, 0xd4, 0x0b, 0x09, 0x2e, 0x8b, 0x3f, 0x80, 0x02, - 0x87, 0x8a, 0xd4, 0x8a, 0x1b, 0xc2, 0x40, 0xc9, 0x64, 0xa6, 0xfe, 0x5a, 0x5f, 0xf8, 0x43, 0xbc, - 0x2d, 0xae, 0x3c, 0x06, 0xb5, 0xf0, 0x37, 0x73, 0x50, 0x8c, 0xb9, 0x64, 0xd6, 0x0e, 0x9c, 0x4e, - 0x07, 0x77, 0xf7, 0x31, 0xba, 0x0d, 0xc3, 0xdb, 0x9b, 0xdb, 0x5b, 0xdc, 0x24, 0x38, 0xcb, 0x97, - 0x29, 0x29, 0x92, 0x30, 0x36, 0x85, 0x40, 0x4f, 0xe1, 0x82, 0x70, 0xeb, 0x91, 0x55, 0xfc, 0xc4, - 0x75, 0x35, 0xdb, 0x49, 0x28, 0x89, 0xf7, 0x64, 0x78, 0x3c, 0x57, 0xc8, 0x5b, 0xbf, 0x97, 0x83, - 0xf9, 0x14, 0x67, 0x51, 0xf4, 0x8e, 0xd6, 0xb1, 0x8b, 0x4a, 0xc7, 0x04, 0xc8, 0xea, 0x39, 0xde, - 0xb3, 0x9a, 0xe2, 0xb5, 0x34, 0x74, 0x0a, 0xaf, 0x25, 0xfe, 0x0e, 0x9b, 0xc2, 0xf1, 0x57, 0x4c, - 0xb4, 0xdc, 0x3a, 0x0f, 0xd3, 0x1a, 0x07, 0x2c, 0x0b, 0xa6, 0xd4, 0x96, 0x09, 0x9b, 0x6b, 0x5e, - 0x5b, 0xb2, 0x99, 0xfc, 0x6d, 0xfd, 0xf5, 0x1c, 0xcc, 0x52, 0x27, 0xd6, 0x7d, 0x97, 0x7c, 0x57, - 0x11, 0x8b, 0x97, 0xb4, 0x91, 0x2c, 0x68, 0x23, 0x89, 0xc1, 0xca, 0x21, 0x7d, 0x9c, 0x18, 0xd2, - 0x82, 0x69, 0x48, 0xf4, 0xc0, 0xea, 0x7a, 0x5d, 0x6d, 0x24, 0xca, 0x0d, 0xca, 0xdf, 0xca, 0xc1, - 0x45, 0xa5, 0x4f, 0xb2, 0xff, 0x0f, 0xb4, 0x2e, 0x5d, 0x31, 0x74, 0x29, 0xc1, 0xe4, 0x6a, 0xa2, - 0x47, 0x6f, 0x65, 0xf5, 0x68, 0x20, 0x8f, 0xff, 0x24, 0x07, 0x73, 0x46, 0x1e, 0xa0, 0x4b, 0x44, - 0xd5, 0x6a, 0xf9, 0x38, 0xe4, 0xec, 0xe5, 0xbf, 0x48, 0xf9, 0x5a, 0x10, 0xf4, 0x79, 0xf0, 0x92, - 0x09, 0x9b, 0xff, 0x42, 0x6f, 0xc1, 0xf4, 0x16, 0xf6, 0x5d, 0xaf, 0xcd, 0xfc, 0xd9, 0xd8, 0x65, - 0xfc, 0xb4, 0xad, 0x17, 0xa2, 0x05, 0x98, 0xa8, 0x74, 0xf6, 0x3d, 0xdf, 0x0d, 0x0f, 0xd8, 0x25, - 0xd6, 0x84, 0x1d, 0x15, 0x10, 0xda, 0xcb, 0xee, 0xbe, 0xf0, 0x2f, 0x99, 0xb6, 0xf9, 0x2f, 0x54, - 0x84, 0x31, 0x61, 0x8b, 0xa2, 0x96, 0x2c, 0x5b, 0xfc, 0x24, 0x18, 0x5f, 0xd8, 0x74, 0x11, 0xd0, - 0x97, 0x3d, 0x36, 0xff, 0x65, 0xdd, 0x81, 0x59, 0x13, 0x1f, 0x8d, 0x4b, 0xe6, 0xcf, 0xe6, 0xe1, - 0x62, 0xa5, 0xdd, 0x7e, 0xf6, 0xa8, 0xb2, 0x8c, 0x55, 0x05, 0xe7, 0x5d, 0x18, 0x5e, 0xeb, 0xba, - 0x21, 0xd7, 0x6e, 0x84, 0x5b, 0xb5, 0x01, 0x92, 0x40, 0x91, 0x19, 0x22, 0xff, 0x23, 0x1b, 0x2e, - 0xae, 0x7c, 0xed, 0x06, 0xa1, 0xdb, 0xdd, 0x57, 0x7d, 0xb3, 0xf3, 0x27, 0xf1, 0xcd, 0x5e, 0x3d, - 0x67, 0x9b, 0x90, 0xd1, 0x36, 0x5c, 0xda, 0xc0, 0xaf, 0x0c, 0x4b, 0x48, 0x3e, 0x59, 0x91, 0x64, - 0x0d, 0x2b, 0x27, 0x05, 0x57, 0x5d, 0xa1, 0xbf, 0x9d, 0xa7, 0xaf, 0xbd, 0x94, 0x81, 0xf1, 0x96, - 0x77, 0x60, 0x56, 0xe9, 0x50, 0x24, 0x71, 0x72, 0xfc, 0xa1, 0xab, 0x71, 0x38, 0xea, 0x87, 0x64, - 0x44, 0x47, 0xbb, 0x30, 0xaf, 0x77, 0x2a, 0xa2, 0xac, 0x7f, 0x0c, 0x26, 0x90, 0xd5, 0x73, 0x76, - 0x1a, 0x36, 0x5a, 0x82, 0xa1, 0x4a, 0xeb, 0x05, 0x67, 0x8b, 0x79, 0xca, 0xd8, 0xc8, 0x2a, 0xad, - 0x17, 0xf4, 0xf9, 0x76, 0xeb, 0x85, 0xf6, 0x3d, 0xfc, 0xab, 0x1c, 0xcc, 0xa7, 0xcc, 0x30, 0x5a, - 0x04, 0x60, 0x85, 0x8a, 0x6c, 0x57, 0x4a, 0x88, 0xaa, 0xc5, 0x7e, 0x51, 0xa7, 0xb3, 0x21, 0xaa, - 0x71, 0x88, 0xd7, 0x1f, 0x51, 0x85, 0xad, 0x00, 0xa1, 0x2d, 0x98, 0x64, 0xbf, 0xd8, 0x23, 0x94, - 0x61, 0x8a, 0x83, 0x34, 0x1c, 0xf6, 0xea, 0x84, 0xaa, 0x24, 0x6d, 0x5a, 0xd0, 0x8c, 0x3f, 0x3e, - 0x51, 0x49, 0x70, 0xcb, 0x6b, 0x2d, 0x3e, 0x0a, 0x39, 0x68, 0x74, 0x1b, 0x46, 0x59, 0x21, 0x9f, - 0x43, 0x11, 0x46, 0x26, 0x02, 0xe6, 0xf5, 0xd6, 0xdf, 0xcd, 0xc1, 0x25, 0xb6, 0xb7, 0x25, 0x3e, - 0x8d, 0x0f, 0xb4, 0x4f, 0xe3, 0xba, 0xec, 0xb0, 0x09, 0x58, 0xfb, 0x3a, 0xaa, 0xfa, 0x8b, 0x85, - 0x93, 0x7e, 0x15, 0x2a, 0x92, 0xba, 0x6e, 0xff, 0x5e, 0x4e, 0x18, 0xa2, 0x92, 0x4b, 0x77, 0x05, - 0xa6, 0xde, 0x6c, 0xc9, 0x6a, 0x68, 0xe8, 0x3d, 0xb6, 0xa2, 0xf2, 0xd9, 0x23, 0xcd, 0x5c, 0x54, - 0x9f, 0x42, 0x29, 0x9d, 0x35, 0x83, 0x96, 0x95, 0xf5, 0xc8, 0x80, 0xfd, 0x26, 0xd3, 0xd9, 0x4f, - 0xd0, 0xa9, 0xbf, 0xee, 0xb6, 0xc4, 0x8c, 0xde, 0x8a, 0xbb, 0x64, 0xa6, 0xba, 0xb9, 0xa9, 0xbd, - 0xcd, 0x47, 0x37, 0x1e, 0x7c, 0x71, 0x52, 0xb5, 0x4d, 0xed, 0xfe, 0x3f, 0xcb, 0xeb, 0x6b, 0xf1, - 0x4d, 0x1a, 0xad, 0xc1, 0xf4, 0x06, 0x7e, 0x95, 0x68, 0x97, 0xba, 0xf0, 0x74, 0xf1, 0xab, 0xa6, - 0xd2, 0xb6, 0xea, 0x42, 0xaf, 0xe1, 0xa0, 0x3d, 0x98, 0x11, 0x52, 0xe3, 0xa4, 0xc2, 0x93, 0xbd, - 0xc0, 0x23, 0x2d, 0xa4, 0xbc, 0x97, 0x89, 0x51, 0x3c, 0xfb, 0xef, 0xd9, 0xda, 0x82, 0x62, 0x92, - 0x7b, 0xbc, 0xb5, 0x77, 0x07, 0xcd, 0x3d, 0x33, 0x83, 0xb4, 0xf5, 0x75, 0xb0, 0x4a, 0xad, 0x68, - 0x12, 0x46, 0xda, 0x1a, 0xee, 0xc7, 0x27, 0x83, 0xba, 0x02, 0x89, 0xc9, 0x50, 0x9f, 0x46, 0x0b, - 0x0f, 0xdd, 0x1a, 0x35, 0x44, 0xaa, 0x94, 0x78, 0xc7, 0xee, 0xc0, 0x18, 0x2f, 0x92, 0x4f, 0xce, - 0xe3, 0xab, 0x52, 0x00, 0x58, 0xbf, 0x9f, 0x83, 0xcb, 0xd4, 0x2c, 0xea, 0x76, 0xf7, 0x3b, 0x78, - 0x27, 0xd0, 0x9d, 0x6c, 0xbf, 0xab, 0x09, 0x9a, 0xf9, 0x94, 0x57, 0x53, 0xbf, 0x2a, 0xf1, 0xf2, - 0x77, 0x72, 0x50, 0x32, 0xf5, 0xed, 0x6c, 0x25, 0xcc, 0x5d, 0x7e, 0x2c, 0xcb, 0x73, 0x2b, 0x0a, - 0x43, 0x97, 0x6d, 0x8a, 0xc1, 0x92, 0x41, 0x92, 0xff, 0x35, 0xd1, 0xf2, 0xbf, 0x72, 0x30, 0xbb, - 0x16, 0xd0, 0xee, 0xff, 0xac, 0xef, 0xfa, 0x58, 0x3e, 0x88, 0xb8, 0x6b, 0x7a, 0xc4, 0x49, 0xe7, - 0xd5, 0x1c, 0x87, 0xe3, 0x5d, 0xe5, 0x2d, 0x51, 0x3e, 0xeb, 0x75, 0xa6, 0x16, 0x7c, 0xe5, 0x16, - 0x0c, 0x6f, 0x10, 0x75, 0x6a, 0x88, 0xaf, 0x3f, 0x86, 0x41, 0x8a, 0xe8, 0xb3, 0x1f, 0xd2, 0x65, - 0xf2, 0x03, 0x3d, 0x4a, 0x3c, 0x2e, 0x1a, 0x1e, 0xfc, 0xfa, 0x30, 0x19, 0x35, 0xa6, 0x3a, 0x0e, - 0xa3, 0xdb, 0x8e, 0xbf, 0x8f, 0x43, 0xeb, 0x87, 0x50, 0xe2, 0x0e, 0x49, 0xcc, 0xd0, 0x4c, 0xdd, - 0x96, 0x82, 0xc8, 0xda, 0x9a, 0xe5, 0x44, 0xb4, 0x08, 0x50, 0x0f, 0x1d, 0x3f, 0x5c, 0xeb, 0xb6, - 0xf1, 0xd7, 0x74, 0xb4, 0x23, 0xb6, 0x52, 0x62, 0xbd, 0x07, 0x13, 0x72, 0x08, 0xf4, 0x2c, 0xa7, - 0x68, 0x8c, 0x74, 0x38, 0xb3, 0xda, 0x73, 0x27, 0xf1, 0xc6, 0xe9, 0x21, 0xcc, 0xc5, 0xa6, 0x82, - 0xaf, 0x93, 0x12, 0x99, 0x30, 0x56, 0xc6, 0xbc, 0x2c, 0x6d, 0xf9, 0xdb, 0xaa, 0xc1, 0x85, 0xc4, - 0x4c, 0x23, 0x44, 0xdf, 0xbf, 0xb1, 0x73, 0x3a, 0xd9, 0x50, 0xea, 0xf5, 0x55, 0x52, 0xb6, 0xbd, - 0x5e, 0x67, 0x7e, 0xe4, 0xa4, 0x6c, 0x7b, 0xbd, 0x5e, 0x1d, 0x65, 0x2b, 0xc7, 0xfa, 0x87, 0x79, - 0x7a, 0x7c, 0x4d, 0xf0, 0x20, 0x66, 0x3b, 0x54, 0xed, 0x97, 0x55, 0x98, 0xa0, 0x23, 0x5e, 0x16, - 0x2f, 0x25, 0xb2, 0x7d, 0x68, 0xc6, 0x7f, 0x7e, 0x54, 0x3e, 0x47, 0x1d, 0x67, 0x22, 0x34, 0xf4, - 0x19, 0x8c, 0xad, 0x74, 0xdb, 0x94, 0xc2, 0xd0, 0x29, 0x28, 0x08, 0x24, 0x32, 0x0f, 0xb4, 0xcb, - 0x44, 0x15, 0xe2, 0x06, 0x24, 0x5b, 0x29, 0xa1, 0x6c, 0x76, 0x0f, 0x5d, 0xe6, 0xab, 0x36, 0x62, - 0xb3, 0x1f, 0x84, 0x9b, 0xb4, 0x0b, 0x22, 0x0c, 0xc0, 0x84, 0x2d, 0x7f, 0x23, 0x0b, 0x46, 0x36, - 0xfd, 0x36, 0x7f, 0xae, 0x3c, 0xb3, 0x34, 0x25, 0x82, 0x33, 0x92, 0x32, 0x9b, 0x55, 0x59, 0xff, - 0x23, 0x07, 0xf3, 0x8f, 0x71, 0x68, 0x5c, 0x37, 0x1a, 0x57, 0x72, 0xdf, 0x98, 0x2b, 0xf9, 0x37, - 0xe1, 0x8a, 0x1c, 0xf5, 0x50, 0xda, 0xa8, 0x87, 0xd3, 0x46, 0x3d, 0x92, 0x3e, 0xea, 0xc7, 0x30, - 0xca, 0x86, 0x8a, 0x6e, 0xc0, 0xc8, 0x5a, 0x88, 0x0f, 0x23, 0xb3, 0x86, 0xea, 0x01, 0x68, 0xb3, - 0x3a, 0x72, 0xe2, 0x5a, 0x77, 0x82, 0x50, 0xbc, 0x5c, 0x98, 0xb0, 0xc5, 0x4f, 0xeb, 0xa7, 0xf4, - 0x29, 0xd7, 0xba, 0xd7, 0x7a, 0xa1, 0x58, 0xa9, 0xc7, 0xd8, 0x57, 0x19, 0xbf, 0x80, 0x21, 0x50, - 0xac, 0xc6, 0x16, 0x10, 0xe8, 0x1a, 0x4c, 0xae, 0x75, 0x1f, 0x79, 0x7e, 0x0b, 0x6f, 0x76, 0x3b, - 0x8c, 0xfa, 0xb8, 0xad, 0x16, 0x71, 0x5b, 0x0c, 0x6f, 0x21, 0xb2, 0xc5, 0xd0, 0x82, 0x98, 0x2d, - 0x86, 0xc5, 0xef, 0xb2, 0x59, 0x1d, 0x37, 0xf5, 0x90, 0xbf, 0xb3, 0x0c, 0x31, 0xd2, 0x62, 0x33, - 0x08, 0x70, 0x0f, 0x2e, 0xdb, 0xb8, 0xd7, 0x71, 0x88, 0xc2, 0x75, 0xe8, 0x31, 0x78, 0x39, 0xe6, - 0x6b, 0x06, 0x57, 0x77, 0xdd, 0xa8, 0x2c, 0xbb, 0x9c, 0xcf, 0xe8, 0xf2, 0x21, 0x5c, 0x7f, 0x8c, - 0x43, 0x63, 0x10, 0xae, 0x68, 0xf0, 0xab, 0x30, 0x1e, 0xe8, 0xf6, 0xfb, 0x41, 0xf1, 0xbf, 0xf8, - 0x65, 0x1c, 0xa7, 0x23, 0xff, 0xb2, 0x3e, 0x87, 0x72, 0x5a, 0x73, 0x27, 0x73, 0xd7, 0x75, 0xe1, - 0x5a, 0x3a, 0x01, 0xb9, 0x2d, 0x0a, 0x5b, 0xbf, 0x3c, 0x3a, 0x67, 0xf7, 0x56, 0xbf, 0x1e, 0xe0, - 0x7f, 0x58, 0x55, 0xe1, 0xb8, 0xf8, 0x0d, 0xba, 0xdb, 0xa4, 0x37, 0xfe, 0x3a, 0x81, 0x88, 0xaf, - 0x15, 0x18, 0x17, 0x65, 0x9c, 0xaf, 0xa9, 0xf1, 0xcd, 0x28, 0x43, 0xdb, 0x82, 0x80, 0x44, 0xb3, - 0x7e, 0x2a, 0xae, 0x94, 0x74, 0x8c, 0x93, 0xbd, 0xdf, 0x39, 0xc9, 0x1d, 0x92, 0xe5, 0xc1, 0x65, - 0x9d, 0xb6, 0x6a, 0xf8, 0x2f, 0x28, 0x86, 0x7f, 0x66, 0xef, 0xbf, 0xa6, 0x1b, 0xa2, 0xf3, 0x7c, - 0x5d, 0x46, 0x45, 0x68, 0x51, 0x35, 0xef, 0x4f, 0x25, 0x1f, 0x3c, 0xdd, 0x87, 0x92, 0xa9, 0x41, - 0xc5, 0x80, 0x22, 0x6d, 0xc8, 0x4c, 0x21, 0xb1, 0x7e, 0x23, 0x07, 0x96, 0xe6, 0xc4, 0xa5, 0x85, - 0xaa, 0x92, 0x9f, 0xcc, 0x3b, 0x42, 0xb0, 0x51, 0xb7, 0x31, 0xe6, 0xc6, 0xdf, 0x21, 0x05, 0xea, - 0x2b, 0x33, 0x26, 0xed, 0xee, 0xc3, 0xd8, 0x06, 0xfe, 0x3a, 0x12, 0x3f, 0x4c, 0x17, 0xa5, 0x8e, - 0x5d, 0x2f, 0xb0, 0xfa, 0x4c, 0x56, 0x80, 0x11, 0x45, 0xe8, 0x46, 0x66, 0x1f, 0xe4, 0xa3, 0xf6, - 0x42, 0xbc, 0x8e, 0xcf, 0xfd, 0xc0, 0xa8, 0x5d, 0xf4, 0x21, 0x48, 0x3c, 0x58, 0x57, 0x60, 0x27, - 0xe8, 0x9d, 0xbe, 0xf7, 0xe8, 0x23, 0x80, 0x6d, 0x2f, 0x74, 0x3a, 0x35, 0x6a, 0xe3, 0xa2, 0x82, - 0x9f, 0x5d, 0x3c, 0x85, 0xa4, 0xb4, 0x19, 0x7f, 0xcf, 0xab, 0x00, 0x5b, 0xdf, 0xa7, 0x5f, 0xa4, - 0xb9, 0xd3, 0x27, 0xfb, 0x48, 0x6a, 0x70, 0x23, 0xe6, 0x34, 0xf1, 0x06, 0x44, 0x42, 0x98, 0x23, - 0xec, 0x97, 0x31, 0xbf, 0xbe, 0x9d, 0x59, 0xff, 0xb7, 0x39, 0xe6, 0xe9, 0xa9, 0x36, 0xcb, 0x27, - 0xba, 0x06, 0x10, 0x95, 0xc6, 0x9e, 0x12, 0xa8, 0x21, 0xcc, 0xe8, 0xe1, 0x35, 0x0a, 0x61, 0x16, - 0xd8, 0x0a, 0xda, 0xb7, 0x3b, 0x93, 0x0f, 0xa9, 0xa7, 0x84, 0x6c, 0xfd, 0x64, 0x7c, 0x7f, 0x5f, - 0xd8, 0x68, 0x4e, 0x89, 0x77, 0x00, 0xb3, 0x5a, 0x94, 0xe7, 0x28, 0x6c, 0x6d, 0x14, 0xdd, 0x7a, - 0xa2, 0xfa, 0xe9, 0x2f, 0x8f, 0xca, 0x1f, 0x9e, 0xe6, 0x01, 0x9a, 0xa0, 0xb9, 0x2d, 0xdf, 0x59, - 0x5a, 0xf3, 0x30, 0x54, 0xb3, 0xd7, 0xa9, 0xa8, 0xb2, 0xd7, 0xa5, 0xa8, 0xb2, 0xd7, 0xad, 0x7f, - 0x9e, 0x87, 0x32, 0x7b, 0xcd, 0x4d, 0x1d, 0x6c, 0xa2, 0xb3, 0x92, 0xe2, 0xb1, 0x73, 0x52, 0x0b, - 0x41, 0xec, 0xb5, 0x76, 0xfe, 0x24, 0xaf, 0xb5, 0xff, 0xdf, 0x37, 0xb7, 0xaa, 0xb2, 0x08, 0x7e, - 0x91, 0x61, 0x80, 0xd5, 0x9a, 0x2c, 0x04, 0x29, 0x4d, 0x24, 0x4d, 0x1a, 0xc3, 0xa7, 0x37, 0x69, - 0x58, 0x7f, 0x23, 0x0f, 0xd7, 0xd2, 0x39, 0xc8, 0x5b, 0x5a, 0xd6, 0xc2, 0xee, 0x66, 0x38, 0x06, - 0xd1, 0x2f, 0x41, 0x09, 0xbb, 0x1b, 0x0f, 0xb5, 0x2b, 0x9e, 0x1a, 0xc5, 0x6e, 0xa9, 0xb4, 0x17, - 0x48, 0x22, 0x68, 0x39, 0x2b, 0xd2, 0x82, 0x5c, 0xf1, 0x32, 0xb4, 0x07, 0xf3, 0x5b, 0xbe, 0xfb, - 0xd2, 0x09, 0xf1, 0x53, 0xfc, 0x7a, 0xcb, 0xeb, 0xb8, 0xad, 0xd7, 0x2b, 0x5d, 0x67, 0xaf, 0x83, - 0xdb, 0xfc, 0xc6, 0xfd, 0xf6, 0xf1, 0x51, 0xf9, 0xad, 0x1e, 0x03, 0x21, 0x9f, 0x59, 0xb3, 0x47, - 0x81, 0x9a, 0x98, 0x41, 0x29, 0x44, 0xd3, 0x08, 0x59, 0xff, 0x26, 0x07, 0x57, 0xa8, 0x7a, 0xcc, - 0xef, 0x09, 0x44, 0xe3, 0x6f, 0xe4, 0x1f, 0xaa, 0x0e, 0x90, 0xaf, 0x2c, 0xea, 0x1f, 0xaa, 0x3d, - 0xc5, 0xb2, 0x35, 0x30, 0xb4, 0x06, 0x93, 0xfc, 0xb7, 0x62, 0x0c, 0x9e, 0x53, 0xc4, 0x0f, 0x5d, - 0xb8, 0xcc, 0x16, 0x44, 0x97, 0x29, 0x27, 0xd6, 0xa4, 0x0f, 0x94, 0x55, 0x5c, 0xeb, 0x17, 0x79, - 0x58, 0x68, 0x60, 0xdf, 0x7d, 0xfe, 0x3a, 0x65, 0x30, 0x9b, 0x30, 0x2b, 0x8a, 0xe8, 0x98, 0xf5, - 0x0f, 0x86, 0x85, 0x0a, 0x12, 0x5d, 0x0d, 0x08, 0x40, 0x53, 0x7e, 0x3f, 0x46, 0xc4, 0x53, 0x78, - 0x7e, 0xbe, 0x0b, 0xe3, 0xb1, 0x08, 0x09, 0x74, 0xfe, 0xc5, 0xf7, 0xa6, 0x07, 0x71, 0x94, 0x1f, - 0xde, 0x6f, 0xa6, 0x5f, 0x38, 0x72, 0xbb, 0xc0, 0xa0, 0x18, 0x36, 0xf4, 0xf3, 0x23, 0x9f, 0x9e, - 0xa3, 0xd4, 0x1a, 0x3e, 0xbf, 0xd5, 0x73, 0x76, 0x5a, 0x4b, 0xd5, 0x49, 0x98, 0xa8, 0xd0, 0xeb, - 0x50, 0x72, 0x0c, 0xff, 0x9f, 0x79, 0x58, 0x14, 0x8f, 0x87, 0x52, 0xd8, 0xfc, 0x25, 0xcc, 0x8b, - 0xa2, 0x4a, 0x8f, 0x6c, 0xff, 0xb8, 0xad, 0x73, 0x9a, 0x85, 0xeb, 0x12, 0x9c, 0x76, 0x38, 0x4c, - 0xc4, 0xec, 0x34, 0xf4, 0xb3, 0x31, 0x6f, 0x7e, 0x66, 0x8a, 0x57, 0x41, 0xcd, 0x8c, 0xaa, 0x04, - 0xd4, 0xe3, 0x47, 0xaa, 0xd2, 0xb0, 0x9d, 0x30, 0x8f, 0x0e, 0x7f, 0x53, 0xf3, 0xe8, 0xea, 0xb9, - 0xb8, 0x81, 0xb4, 0x3a, 0x03, 0x53, 0x1b, 0xf8, 0x55, 0xc4, 0xf7, 0xdf, 0xca, 0xc5, 0xde, 0x3a, - 0x12, 0x7d, 0x81, 0x3d, 0x7a, 0xcc, 0x45, 0xb1, 0x08, 0xe8, 0x5b, 0x47, 0x55, 0x5f, 0x60, 0xa0, - 0x6b, 0x30, 0xc6, 0x7c, 0x85, 0xdb, 0x27, 0x38, 0x69, 0xcb, 0x57, 0x40, 0x2d, 0x86, 0xc2, 0x0e, - 0xdd, 0x1c, 0xdf, 0x7a, 0x0a, 0xd7, 0xb9, 0xab, 0xba, 0x3e, 0xf9, 0xb4, 0xa1, 0x53, 0x6e, 0x46, - 0x96, 0x03, 0x8b, 0x8f, 0x71, 0x5c, 0xf4, 0x68, 0xaf, 0xa4, 0x3e, 0x87, 0xf3, 0x5a, 0xb9, 0xa4, - 0x48, 0x75, 0x4c, 0xb9, 0x86, 0x24, 0xe9, 0x38, 0xb4, 0x75, 0xcd, 0xd4, 0x84, 0xda, 0x59, 0x0b, - 0xd3, 0xb8, 0x5b, 0x7e, 0x74, 0x27, 0x1c, 0x9c, 0x42, 0xea, 0xdd, 0x56, 0xbe, 0x6b, 0x26, 0xf1, - 0x58, 0xdc, 0x22, 0xb1, 0x8f, 0xca, 0x5a, 0x6b, 0x1a, 0x26, 0x6b, 0x5e, 0x37, 0xc4, 0x5f, 0x53, - 0xc5, 0xc5, 0x9a, 0x81, 0x29, 0x51, 0xd5, 0xc1, 0x41, 0x60, 0xfd, 0xed, 0x21, 0xb0, 0x38, 0x63, - 0x4d, 0xb6, 0x50, 0xc1, 0x8f, 0xbd, 0x44, 0x67, 0xf9, 0x46, 0x75, 0x49, 0xb5, 0xf8, 0x46, 0xb5, - 0x6c, 0xe5, 0x51, 0xad, 0xad, 0x15, 0x95, 0xea, 0x61, 0x7b, 0xe3, 0xa3, 0xff, 0x51, 0x8a, 0x98, - 0x64, 0x1f, 0x1b, 0x8d, 0x98, 0x9d, 0x22, 0x26, 0x35, 0xba, 0x66, 0x91, 0x69, 0x6b, 0x6c, 0xe0, - 0x0a, 0x04, 0x92, 0x8f, 0x3c, 0x65, 0x0d, 0xf7, 0x2d, 0x62, 0x05, 0xcd, 0x44, 0x96, 0x08, 0x95, - 0x08, 0xda, 0xd1, 0x79, 0xc9, 0xbf, 0x47, 0xe1, 0x83, 0xa1, 0x56, 0x31, 0xaa, 0x3d, 0xa5, 0x44, - 0x4f, 0xba, 0xa1, 0xc1, 0x2a, 0xf6, 0xed, 0xdf, 0x95, 0x0f, 0x06, 0xc8, 0x46, 0xea, 0x76, 0x30, - 0x7f, 0x1d, 0x23, 0xa6, 0xa5, 0x6f, 0xbe, 0xcb, 0xce, 0x9d, 0x48, 0x46, 0xd3, 0x10, 0xa1, 0x98, - 0xa3, 0xa7, 0x5d, 0xa0, 0x98, 0xe8, 0x5b, 0x47, 0x39, 0xf1, 0x4c, 0x22, 0x71, 0xc1, 0x7b, 0x5a, - 0xbd, 0xb0, 0xaa, 0xdd, 0xc9, 0xe6, 0x53, 0xee, 0x64, 0xb5, 0x1b, 0xac, 0x70, 0xc0, 0x25, 0xed, - 0xd0, 0x37, 0xbf, 0xd4, 0xf9, 0x27, 0xa3, 0x70, 0x61, 0xcb, 0xd9, 0x77, 0xbb, 0x44, 0xf6, 0x88, - 0xa8, 0xbd, 0xa8, 0x92, 0xc8, 0xc0, 0x90, 0xed, 0xe4, 0x6a, 0x48, 0xb1, 0xb0, 0xa4, 0x06, 0x43, - 0xcf, 0xa7, 0x3d, 0x5d, 0xd5, 0x43, 0x9e, 0x7f, 0xa4, 0xd9, 0xf0, 0x13, 0x8e, 0xce, 0xd4, 0xeb, - 0xae, 0xeb, 0xb5, 0x63, 0x59, 0x49, 0xa8, 0x1d, 0x7c, 0x13, 0x26, 0x15, 0x6f, 0x65, 0xbe, 0x40, - 0x13, 0x14, 0x28, 0x5b, 0x5e, 0xf4, 0xf7, 0xcc, 0xe1, 0xb5, 0x55, 0x0a, 0x86, 0xb8, 0xf3, 0x23, - 0x67, 0x1c, 0x77, 0xfe, 0x87, 0xac, 0xcb, 0xe2, 0x46, 0x64, 0x74, 0x60, 0x5c, 0xf3, 0xa8, 0xf7, - 0xa6, 0x88, 0xe6, 0x2a, 0x31, 0x63, 0x8c, 0xf6, 0xb1, 0x5f, 0x49, 0x8c, 0xf6, 0xd4, 0xf4, 0x00, - 0xe3, 0xdf, 0x4a, 0x7a, 0x00, 0x43, 0x9c, 0xf5, 0x89, 0x33, 0x8f, 0xb3, 0x5e, 0x05, 0x18, 0x17, - 0xd9, 0x8f, 0xac, 0x7f, 0x39, 0x06, 0xb3, 0xe4, 0xa0, 0x2f, 0x3e, 0x96, 0x20, 0xda, 0x49, 0xa7, - 0x44, 0x99, 0x72, 0x6e, 0xe5, 0x4a, 0x2f, 0x2b, 0x6f, 0xc6, 0x92, 0x31, 0x69, 0x08, 0xe8, 0x3d, - 0xf5, 0x9a, 0x24, 0xaf, 0xc4, 0x0d, 0x4d, 0xe6, 0xd1, 0x51, 0xef, 0x4f, 0xde, 0xd1, 0xac, 0xf4, - 0x99, 0x66, 0x8d, 0x87, 0x71, 0xd3, 0x3d, 0x0f, 0x06, 0x46, 0xf7, 0x18, 0xdd, 0x8c, 0x10, 0xd9, - 0xf4, 0x77, 0x60, 0x94, 0x86, 0xd4, 0x11, 0xcf, 0x92, 0xdf, 0xe6, 0xf2, 0xc6, 0xc4, 0x04, 0x16, - 0x7c, 0x27, 0x50, 0xe2, 0x5f, 0x77, 0x68, 0x81, 0x1a, 0x39, 0x87, 0x81, 0xa0, 0x6d, 0xb8, 0xb8, - 0xe5, 0xe3, 0x36, 0x77, 0x5f, 0xed, 0xf9, 0xfc, 0x54, 0xc8, 0xde, 0x07, 0xd2, 0x18, 0x9a, 0x3d, - 0x51, 0xdd, 0xc4, 0xb2, 0x5e, 0x15, 0xd8, 0x06, 0x74, 0xb4, 0x02, 0x33, 0x75, 0xec, 0xf8, 0xad, - 0x83, 0xa7, 0xf8, 0x35, 0xd9, 0x67, 0x82, 0xe2, 0x58, 0x14, 0x78, 0x36, 0xa0, 0x35, 0x64, 0xa0, - 0xb4, 0x4a, 0xbd, 0x3d, 0xd7, 0x91, 0xd0, 0xf7, 0x61, 0xb4, 0xee, 0xf9, 0x61, 0xf5, 0x75, 0x2c, - 0xb1, 0x12, 0x2b, 0xac, 0x5e, 0x16, 0xc1, 0x77, 0x03, 0xcf, 0x0f, 0x9b, 0x7b, 0x2a, 0xdf, 0x38, - 0x1e, 0x7a, 0x44, 0x94, 0x58, 0xa2, 0x58, 0x4b, 0x0b, 0x0c, 0x0b, 0xc3, 0xc1, 0x15, 0x55, 0xaa, - 0x8d, 0x9b, 0xcc, 0x30, 0x31, 0x2c, 0xf4, 0x1a, 0x66, 0xf5, 0x95, 0xcf, 0x03, 0x90, 0x83, 0x96, - 0xa2, 0xc4, 0x04, 0x52, 0xbd, 0xcd, 0x7b, 0x79, 0x2d, 0xfe, 0x7d, 0x25, 0x62, 0x92, 0x1b, 0x9b, - 0x40, 0xcf, 0x68, 0xec, 0x63, 0xc6, 0x99, 0x4a, 0x20, 0xe2, 0x3c, 0x93, 0x41, 0xd0, 0x40, 0x7f, - 0x7d, 0xfa, 0xf5, 0x50, 0x8e, 0x3a, 0x41, 0x3c, 0xdc, 0xb3, 0x9d, 0x40, 0x45, 0x5b, 0x70, 0x61, - 0x27, 0xc0, 0x5b, 0x3e, 0x7e, 0xe9, 0xe2, 0x57, 0x82, 0xde, 0x14, 0xa5, 0x47, 0xa7, 0x9b, 0xd0, - 0xeb, 0xb1, 0x5a, 0x13, 0xc1, 0x24, 0x72, 0xe9, 0x23, 0x98, 0x54, 0xd6, 0xdb, 0xa9, 0x02, 0xa2, - 0xff, 0x49, 0x8e, 0x59, 0x09, 0x95, 0x05, 0xcc, 0x8d, 0x14, 0x9b, 0x30, 0x21, 0x0b, 0xe5, 0x1b, - 0x05, 0xa1, 0xe8, 0xc4, 0x36, 0x4a, 0xf6, 0xf9, 0x88, 0xaf, 0x5b, 0xed, 0x6d, 0x44, 0xe3, 0xdb, - 0xb5, 0xdc, 0xfd, 0x66, 0xf4, 0xf0, 0x92, 0x3f, 0x12, 0xf5, 0x9d, 0xd6, 0x8b, 0xc8, 0x74, 0xfa, - 0x13, 0xf2, 0x7d, 0xa8, 0x15, 0x3c, 0x1f, 0xd4, 0xbc, 0x9e, 0xcc, 0x87, 0x57, 0x8a, 0x94, 0x02, - 0xf2, 0xfd, 0x29, 0x2b, 0xd6, 0x3f, 0x1c, 0x15, 0x81, 0xfa, 0xf1, 0x9e, 0xb7, 0x6c, 0xf6, 0x6e, - 0xd0, 0xd8, 0x83, 0xf7, 0x93, 0x2f, 0xdf, 0x68, 0xee, 0x86, 0xe8, 0xe5, 0x9b, 0xca, 0xc6, 0xe8, - 0x0d, 0xdc, 0x0e, 0x5c, 0xb1, 0xf1, 0xa1, 0xf7, 0x12, 0x9f, 0x2d, 0xd9, 0x1f, 0xc1, 0x65, 0x9d, - 0xe0, 0x4e, 0xaf, 0x4d, 0x03, 0x86, 0xb0, 0x0b, 0x54, 0x63, 0x00, 0x3f, 0x8e, 0xc0, 0x02, 0xf8, - 0xb1, 0x90, 0x4e, 0xe4, 0x4f, 0x55, 0xde, 0xd2, 0x3a, 0xcb, 0x83, 0x05, 0x9d, 0x78, 0xa5, 0xdd, - 0xde, 0x72, 0xfc, 0xd0, 0x6d, 0xb9, 0x3d, 0xa7, 0x1b, 0x12, 0xad, 0x45, 0xf9, 0x19, 0x53, 0x93, - 0x94, 0x1a, 0x36, 0xfb, 0xbd, 0xa8, 0x40, 0x55, 0xe7, 0x14, 0x38, 0x0b, 0x43, 0x39, 0xce, 0x1e, - 0xc2, 0x32, 0xb5, 0xcd, 0x2a, 0x4c, 0x2b, 0x3f, 0xe5, 0xa9, 0x83, 0xc6, 0x00, 0x55, 0x5a, 0xd0, - 0x19, 0xa6, 0xa3, 0x58, 0x2d, 0x28, 0x99, 0x98, 0x46, 0x03, 0x59, 0xbc, 0x46, 0x2b, 0x51, 0x48, - 0x8c, 0xc1, 0x17, 0xd7, 0xe7, 0xd3, 0xc2, 0x61, 0x58, 0x7f, 0x6d, 0x18, 0xae, 0xf0, 0xc9, 0x38, - 0xcb, 0x19, 0x47, 0x3f, 0x85, 0x49, 0x65, 0x8e, 0x39, 0xd3, 0xaf, 0x09, 0x5f, 0x97, 0xb4, 0xb5, - 0xc0, 0xb4, 0xaf, 0x3e, 0x2d, 0x68, 0xc6, 0xa6, 0x9b, 0x68, 0x5f, 0xea, 0xb2, 0xe9, 0xc0, 0x8c, - 0x3e, 0xd1, 0x5c, 0xa3, 0xbd, 0x61, 0x6c, 0x44, 0x07, 0x15, 0xd1, 0xa0, 0xda, 0x4d, 0xe3, 0x74, - 0xd3, 0x14, 0x56, 0xfa, 0x22, 0xfa, 0x1a, 0x2e, 0x24, 0x66, 0x99, 0x2b, 0xc0, 0xb7, 0x8c, 0x0d, - 0x26, 0xa0, 0x59, 0x30, 0x75, 0x9f, 0x16, 0xa7, 0x36, 0x9b, 0x6c, 0x04, 0xb5, 0x61, 0x4a, 0x9d, - 0x78, 0xae, 0x21, 0x5f, 0xcf, 0x60, 0x25, 0x03, 0x64, 0x4a, 0x11, 0xe7, 0x25, 0x9d, 0x7b, 0x3d, - 0xeb, 0xa3, 0x46, 0xb5, 0x3a, 0x0e, 0xa3, 0xec, 0x37, 0x11, 0x01, 0x5b, 0x3e, 0x0e, 0x70, 0xb7, - 0x85, 0x55, 0xb7, 0xa5, 0x6f, 0x2a, 0x02, 0xfe, 0x75, 0x0e, 0x8a, 0x26, 0xba, 0x75, 0xdc, 0x6d, - 0xa3, 0x2d, 0x28, 0xc4, 0x1b, 0xe2, 0xab, 0xda, 0x12, 0xbb, 0x42, 0x7a, 0x97, 0x88, 0xc6, 0x9c, - 0xe8, 0xe6, 0x06, 0x5c, 0x50, 0xca, 0x4e, 0xe9, 0x1f, 0x96, 0x44, 0x55, 0x4f, 0xd1, 0xab, 0xd4, - 0x0d, 0x6e, 0xd9, 0x3b, 0x74, 0xdc, 0x2e, 0x51, 0x10, 0x95, 0xe0, 0x15, 0x10, 0x95, 0x72, 0xde, - 0xb0, 0x93, 0x26, 0x2d, 0x15, 0xbe, 0x92, 0x12, 0xc4, 0xfa, 0x94, 0x4a, 0x70, 0x7e, 0x9c, 0x60, - 0xef, 0x6d, 0x24, 0xb1, 0x6b, 0x30, 0xb2, 0xbd, 0x5e, 0xaf, 0x55, 0xf8, 0xeb, 0x1d, 0xf6, 0xa0, - 0xb5, 0x13, 0x34, 0x5b, 0x8e, 0xcd, 0x2a, 0xac, 0x4f, 0x68, 0xcc, 0x3e, 0x1e, 0xf1, 0x4d, 0xe2, - 0xdd, 0x84, 0x31, 0x5e, 0xc4, 0x31, 0xe9, 0x2d, 0x73, 0x87, 0x43, 0x89, 0x3a, 0x6b, 0x4b, 0xe8, - 0xd7, 0x1d, 0xec, 0x04, 0xca, 0xc6, 0xfc, 0x21, 0x51, 0xc2, 0x59, 0x19, 0xdf, 0x97, 0x67, 0x64, - 0x40, 0x55, 0x5a, 0xcc, 0x4e, 0xde, 0x02, 0xc6, 0x96, 0x7f, 0x59, 0x7f, 0x9c, 0x87, 0x59, 0x11, - 0xb6, 0x46, 0xb3, 0x2a, 0x0c, 0x0c, 0x9c, 0xf9, 0x03, 0x3d, 0x32, 0x50, 0x4d, 0x46, 0x06, 0xfa, - 0x06, 0xe9, 0x2c, 0x78, 0x4c, 0xa1, 0x13, 0xbe, 0x6d, 0x7b, 0x2a, 0xb5, 0xef, 0x61, 0x4d, 0xfb, - 0x36, 0x8d, 0x47, 0xd3, 0xbe, 0xe9, 0xb4, 0x30, 0xed, 0x5b, 0xe8, 0xdc, 0xdf, 0x44, 0x61, 0xfa, - 0x90, 0x2c, 0x2d, 0xad, 0xc9, 0x93, 0x3e, 0x7b, 0x5a, 0xa7, 0x4f, 0xff, 0x37, 0xd7, 0x96, 0x6b, - 0x64, 0x4d, 0xf3, 0xae, 0x8a, 0x19, 0xb8, 0x47, 0x1d, 0xe0, 0x38, 0x4d, 0x75, 0x61, 0x52, 0x11, - 0xcb, 0x03, 0x5e, 0x28, 0x20, 0xd6, 0x43, 0x19, 0x48, 0xc0, 0x40, 0x2d, 0x2d, 0x0a, 0xec, 0x06, - 0x0d, 0x91, 0xf0, 0x98, 0xce, 0xd7, 0x59, 0x74, 0xe2, 0xf7, 0x73, 0x2c, 0xe6, 0x42, 0x7d, 0x53, - 0x89, 0xb0, 0xdf, 0x7d, 0xee, 0x29, 0x46, 0x55, 0xa5, 0x19, 0x25, 0x45, 0x11, 0x35, 0xaa, 0xd2, - 0xfc, 0x84, 0xfc, 0xf5, 0x20, 0x4d, 0xf6, 0x63, 0xc7, 0xa1, 0xd1, 0x47, 0x30, 0xad, 0x14, 0xc9, - 0x4d, 0x9a, 0xc5, 0x1b, 0x54, 0xd1, 0xdd, 0xb6, 0xad, 0x43, 0x5a, 0xbf, 0x95, 0x87, 0x2b, 0x19, - 0x49, 0x4d, 0xe8, 0x19, 0x90, 0x1e, 0xdd, 0x25, 0xa7, 0x78, 0x40, 0x68, 0xfa, 0x52, 0x52, 0x93, - 0x91, 0x12, 0x10, 0x7d, 0x0a, 0x93, 0x6a, 0x8e, 0x95, 0xbc, 0x12, 0x75, 0xdc, 0x9c, 0x57, 0x45, - 0x05, 0x47, 0x01, 0x40, 0xd4, 0x13, 0xfe, 0x04, 0xb9, 0x4e, 0x1f, 0xb3, 0x46, 0x09, 0x5a, 0xce, - 0x24, 0x53, 0x8c, 0xd2, 0x8c, 0xf5, 0x97, 0xf2, 0xb0, 0x98, 0xc1, 0x87, 0x3a, 0x0e, 0xff, 0x6f, - 0xb0, 0x22, 0x96, 0x36, 0x67, 0xe8, 0x5b, 0x4a, 0x9b, 0x63, 0xfd, 0x6e, 0x1e, 0x2e, 0xed, 0xf4, - 0x02, 0xea, 0xa7, 0xba, 0xd6, 0x7d, 0x89, 0xbb, 0xa1, 0xe7, 0xbf, 0xa6, 0x7e, 0x76, 0xe8, 0x3d, - 0x18, 0x59, 0xc5, 0x9d, 0x8e, 0xc7, 0xb7, 0xb5, 0xab, 0xc2, 0xce, 0x1d, 0x87, 0xa6, 0x40, 0xab, - 0xe7, 0x6c, 0x06, 0x8d, 0x3e, 0x82, 0x89, 0x55, 0xec, 0xf8, 0xe1, 0x1e, 0x76, 0x84, 0xe6, 0x7a, - 0x99, 0xa3, 0x2a, 0x28, 0x1c, 0x60, 0xf5, 0x9c, 0x1d, 0x41, 0xa3, 0x25, 0x18, 0xde, 0xf2, 0xba, - 0xfb, 0xf2, 0x21, 0x5b, 0x4a, 0x83, 0x04, 0x66, 0xf5, 0x9c, 0x4d, 0x61, 0xd1, 0x33, 0x98, 0xae, - 0xec, 0xe3, 0x6e, 0xf8, 0x0c, 0x87, 0x4e, 0xdb, 0x09, 0x1d, 0xae, 0xe1, 0xdc, 0x4c, 0x43, 0xd6, - 0x80, 0x69, 0x4e, 0x5c, 0xb5, 0xa0, 0x3a, 0x02, 0x43, 0xcf, 0x82, 0x7d, 0xeb, 0x77, 0x72, 0x50, - 0x5c, 0xf6, 0x5e, 0x75, 0x8d, 0x8c, 0xf9, 0x40, 0x67, 0x8c, 0xf0, 0xa6, 0x36, 0xc0, 0xc7, 0x58, - 0xf3, 0x2e, 0x0c, 0x6f, 0xb9, 0xdd, 0xfd, 0xd8, 0xa6, 0x6e, 0xc0, 0x23, 0x50, 0x74, 0x84, 0x6e, - 0x77, 0x5f, 0x74, 0xe9, 0x1d, 0x98, 0x4f, 0x81, 0x44, 0x33, 0x52, 0xbc, 0x0d, 0x53, 0xb1, 0xf6, - 0x36, 0xcc, 0x19, 0x99, 0x96, 0x00, 0xfc, 0x17, 0x39, 0xc3, 0xec, 0xb3, 0xbe, 0x16, 0x61, 0x4c, - 0x84, 0xbb, 0x65, 0xfb, 0x80, 0xf8, 0x49, 0xfd, 0x3c, 0xc5, 0xd7, 0xc1, 0x03, 0x1c, 0xca, 0x8f, - 0xa0, 0xa1, 0xbc, 0xe3, 0x67, 0x6b, 0xf8, 0xe3, 0x6f, 0xb0, 0x52, 0x25, 0x2d, 0xd2, 0xe6, 0xaa, - 0x17, 0x84, 0x5d, 0xe9, 0x86, 0x60, 0xcb, 0xdf, 0xd6, 0x7f, 0xcc, 0xd3, 0x60, 0x89, 0x19, 0xd3, - 0x4c, 0xc6, 0xbd, 0x59, 0xe7, 0xe3, 0xc8, 0x6f, 0xd6, 0xd1, 0x02, 0x4c, 0x6c, 0xd6, 0xb5, 0x68, - 0xbe, 0x76, 0x54, 0x80, 0xee, 0xb0, 0x9c, 0x68, 0x15, 0xbf, 0x75, 0xe0, 0x86, 0xb8, 0x15, 0xf6, - 0x7d, 0x2e, 0x9c, 0xec, 0x44, 0x39, 0xb2, 0x60, 0xea, 0x71, 0xc7, 0xdd, 0x6b, 0x09, 0x62, 0xac, - 0x73, 0x5a, 0x19, 0xba, 0x05, 0x33, 0x3c, 0x01, 0x24, 0x0b, 0x76, 0xcc, 0x93, 0x8a, 0xd9, 0xb1, - 0x52, 0xd2, 0x6e, 0xcd, 0xeb, 0x86, 0x8e, 0xdb, 0xc5, 0xbe, 0xdd, 0xef, 0x86, 0x2e, 0x4f, 0x07, - 0x3e, 0x61, 0x27, 0xca, 0xd1, 0xbb, 0x30, 0x27, 0xcb, 0x36, 0xfd, 0xd6, 0x01, 0x0e, 0x42, 0x9f, - 0x06, 0x86, 0xa7, 0xef, 0xba, 0x6d, 0x73, 0x25, 0x6d, 0xa1, 0xe3, 0xf5, 0xdb, 0x2b, 0xdd, 0x97, - 0xae, 0xef, 0xb1, 0xd4, 0x81, 0xe3, 0xbc, 0x85, 0x58, 0xb9, 0xb5, 0x65, 0xfc, 0x02, 0xbe, 0xc1, - 0xe2, 0xb0, 0x6a, 0x80, 0x92, 0x12, 0x00, 0x7d, 0x17, 0x26, 0xea, 0xf5, 0xd5, 0xcc, 0x50, 0x26, - 0x76, 0x04, 0x61, 0xbd, 0x0f, 0x97, 0x24, 0x11, 0x16, 0xe9, 0x53, 0xf1, 0x26, 0xe7, 0x19, 0x6e, - 0xa4, 0x13, 0x7b, 0x54, 0x60, 0xfd, 0x28, 0x81, 0x57, 0xef, 0x1f, 0x1e, 0x3a, 0xfe, 0x6b, 0x54, - 0xd1, 0xf1, 0x86, 0x06, 0xca, 0xba, 0xea, 0xf0, 0xcf, 0x8f, 0xca, 0xe7, 0x54, 0xe2, 0x36, 0xcc, - 0x6a, 0x5f, 0xa4, 0xe8, 0x52, 0x29, 0xbe, 0x91, 0x28, 0x9f, 0xca, 0x22, 0x00, 0x0f, 0x05, 0xbc, - 0xee, 0xed, 0x73, 0x27, 0x63, 0xa5, 0xc4, 0x7a, 0x04, 0x73, 0x31, 0x9a, 0x5c, 0xb1, 0xfa, 0x2e, - 0x48, 0x55, 0x90, 0x12, 0x1d, 0xaa, 0x5e, 0xf8, 0xe5, 0x51, 0x79, 0x9a, 0x2c, 0x8b, 0xbb, 0x51, - 0x40, 0x2f, 0xf1, 0x97, 0xf5, 0x4c, 0xd5, 0xd8, 0x2b, 0x1d, 0xed, 0x79, 0xc8, 0x03, 0x18, 0x65, - 0x25, 0xb1, 0xb0, 0x39, 0x2a, 0x34, 0x1f, 0x2d, 0x07, 0xb4, 0xe6, 0xa8, 0x0b, 0x18, 0xfd, 0x51, - 0x89, 0x9c, 0x8d, 0xad, 0x1d, 0x16, 0xc3, 0x31, 0x2a, 0x96, 0xa1, 0x79, 0x86, 0x2b, 0x91, 0x53, - 0xb4, 0x30, 0x4b, 0x0a, 0xb8, 0xae, 0xf7, 0xaa, 0x83, 0xdb, 0xfb, 0x34, 0xd1, 0x4e, 0x75, 0x8a, - 0x9b, 0x25, 0x87, 0x1d, 0x42, 0x80, 0xa2, 0x59, 0x9f, 0xc3, 0x5c, 0xad, 0x83, 0x1d, 0x3f, 0xde, - 0x1e, 0xba, 0x05, 0x63, 0xb4, 0x4c, 0xbf, 0x5d, 0x73, 0x48, 0x11, 0xbd, 0x5d, 0xe3, 0x95, 0x44, - 0xc9, 0x64, 0x21, 0x42, 0xd4, 0x21, 0x45, 0xfa, 0xdd, 0x08, 0xfd, 0x1d, 0x73, 0x39, 0x32, 0x8c, - 0x9e, 0xc1, 0x59, 0x9f, 0xd1, 0x3b, 0x6d, 0x53, 0x1e, 0xa5, 0x93, 0xb9, 0xb4, 0xfd, 0x19, 0x58, - 0xa8, 0xf4, 0x7a, 0xb8, 0xdb, 0x8e, 0x10, 0xc9, 0x31, 0xf8, 0x64, 0xae, 0xc2, 0xa8, 0x02, 0x23, - 0x14, 0x5a, 0x9a, 0x26, 0x78, 0x77, 0x0d, 0xdd, 0xa1, 0x70, 0x5c, 0xe7, 0xa6, 0x0d, 0x30, 0x4c, - 0xab, 0x0d, 0xf3, 0xf5, 0xfe, 0xde, 0xa1, 0xcb, 0xd2, 0x19, 0x51, 0x77, 0x7b, 0xd1, 0xf6, 0x9a, - 0x08, 0xbb, 0xcb, 0x98, 0x71, 0x3b, 0xca, 0x9d, 0x44, 0x2f, 0x0a, 0xb9, 0x0b, 0xfe, 0xcb, 0x07, - 0x77, 0x23, 0x54, 0xba, 0x1d, 0xb2, 0x56, 0x68, 0x35, 0x0f, 0xcd, 0x6b, 0x5d, 0x84, 0x0b, 0xea, - 0x31, 0x8f, 0xad, 0x90, 0x39, 0xb8, 0xa8, 0x1f, 0xdf, 0x58, 0xf1, 0x12, 0x75, 0x0e, 0x5d, 0xc5, - 0x0e, 0xbd, 0xfa, 0x35, 0xbb, 0xd8, 0xcd, 0x40, 0xde, 0x6d, 0x0b, 0xf1, 0xed, 0xb6, 0xad, 0x3f, - 0xca, 0xc1, 0x6d, 0x76, 0xf4, 0x37, 0xe3, 0x51, 0x8d, 0x3c, 0x05, 0x19, 0x7d, 0x08, 0x2c, 0xad, - 0x06, 0xb7, 0xdd, 0x59, 0x9c, 0x8b, 0x59, 0x94, 0x18, 0x02, 0xaa, 0xc0, 0x94, 0x7a, 0x47, 0x1c, - 0x7b, 0xc2, 0x9b, 0x72, 0x36, 0xb7, 0x27, 0x0f, 0x9f, 0x3b, 0xe2, 0xc7, 0x9d, 0x3b, 0x30, 0xb1, - 0xd9, 0xc3, 0xec, 0xcb, 0x44, 0xe3, 0x30, 0xbc, 0xb6, 0xb1, 0xb6, 0xcd, 0xb2, 0x49, 0x6d, 0xed, - 0x6c, 0x17, 0x72, 0x08, 0x60, 0x74, 0x79, 0x65, 0x7d, 0x65, 0x7b, 0xa5, 0x90, 0xbf, 0xd3, 0x54, - 0x2f, 0x86, 0xd1, 0x15, 0x98, 0x5f, 0x5e, 0x69, 0xac, 0xd5, 0x56, 0x9a, 0xdb, 0x3f, 0xd8, 0x5a, - 0x69, 0xea, 0x91, 0x38, 0x66, 0xa1, 0xa0, 0x56, 0x6e, 0x6f, 0x6e, 0x6f, 0x15, 0x72, 0xa8, 0x08, - 0xb3, 0x6a, 0xe9, 0xee, 0x4a, 0xb5, 0xb2, 0xb3, 0xbd, 0xba, 0x51, 0x18, 0xb2, 0x86, 0xc7, 0xf3, - 0x85, 0xfc, 0x9d, 0x9f, 0x6a, 0xb7, 0xc6, 0x68, 0x01, 0x8a, 0x1c, 0x7c, 0xa7, 0x5e, 0x79, 0x9c, - 0xde, 0x04, 0xab, 0x7d, 0xf6, 0xa8, 0x52, 0xc8, 0xa1, 0xab, 0x70, 0x59, 0x2b, 0xdd, 0xaa, 0xd4, - 0xeb, 0xbb, 0x9b, 0xf6, 0xf2, 0xfa, 0x4a, 0xbd, 0x5e, 0xc8, 0xdf, 0xb9, 0xc5, 0x9f, 0x7d, 0xa0, - 0x19, 0x80, 0xe5, 0x95, 0x7a, 0x6d, 0x65, 0x63, 0x79, 0x6d, 0xe3, 0x71, 0xe1, 0x1c, 0x9a, 0x86, - 0x89, 0x8a, 0xfc, 0x99, 0x5b, 0xfa, 0x77, 0x7f, 0x39, 0x07, 0x93, 0x84, 0x7b, 0xe2, 0xfa, 0xee, - 0x2b, 0x45, 0x5a, 0x73, 0x99, 0xc8, 0x83, 0x2f, 0xa7, 0x8a, 0x66, 0xba, 0x18, 0x4b, 0x19, 0xca, - 0x18, 0x05, 0xb8, 0x9d, 0xbb, 0x9f, 0x43, 0x36, 0x35, 0x43, 0xc4, 0xb6, 0x03, 0x49, 0xd9, 0xbc, - 0xbd, 0x94, 0x52, 0xaa, 0xc5, 0x2e, 0xf2, 0x04, 0xa6, 0x89, 0x94, 0x96, 0xb5, 0xe8, 0x4a, 0x1c, - 0x5e, 0xd9, 0x18, 0x4a, 0x0b, 0xe6, 0x4a, 0x19, 0x25, 0x6d, 0x8a, 0xf6, 0x2f, 0x08, 0x9d, 0x2e, - 0xd1, 0x7e, 0xe6, 0xd4, 0x74, 0xd3, 0xdd, 0x16, 0x66, 0xf7, 0x30, 0xa5, 0x0b, 0xb1, 0xe2, 0xc6, - 0x83, 0xfb, 0x39, 0x54, 0xa7, 0x4f, 0x53, 0x34, 0x71, 0x8f, 0xc4, 0x65, 0x6b, 0x72, 0x1f, 0x60, - 0xbd, 0x29, 0x4b, 0xdb, 0x41, 0xca, 0x3e, 0xb1, 0x01, 0x28, 0x29, 0x45, 0xd1, 0xb5, 0x68, 0x2a, - 0xcc, 0x02, 0xb6, 0x74, 0x29, 0x61, 0xe0, 0x5d, 0x21, 0x87, 0x17, 0xb4, 0x02, 0x33, 0xdc, 0xe5, - 0x86, 0xcb, 0x75, 0x94, 0xb5, 0x33, 0xa4, 0x92, 0x79, 0x4c, 0xf9, 0x24, 0xf7, 0x06, 0x54, 0x8a, - 0xc6, 0x11, 0xdf, 0x30, 0x4a, 0x57, 0x8c, 0x75, 0x7c, 0x7c, 0x8f, 0x60, 0x46, 0xdf, 0x66, 0x90, - 0x98, 0x20, 0xe3, 0xee, 0x93, 0xda, 0xa1, 0x26, 0xcc, 0x3f, 0x73, 0x5c, 0xaa, 0x79, 0x71, 0x33, - 0xa2, 0x30, 0x02, 0xa2, 0x72, 0x86, 0x55, 0xb0, 0x8e, 0xbb, 0xed, 0xd2, 0xa0, 0x47, 0x99, 0x74, - 0xe5, 0xd6, 0x61, 0xd6, 0x74, 0x8b, 0x83, 0x2c, 0x3d, 0x48, 0xbc, 0xc9, 0x2e, 0x5e, 0x4a, 0xbb, - 0xca, 0x41, 0xcf, 0xa8, 0xb8, 0x8e, 0x51, 0x54, 0xd6, 0xc4, 0xa9, 0xc9, 0x15, 0xa9, 0xe3, 0x57, - 0xe8, 0xc6, 0xef, 0x64, 0x02, 0x94, 0xc2, 0xb8, 0x54, 0x62, 0xf7, 0x73, 0xe8, 0x2b, 0xb0, 0xd2, - 0xc8, 0xed, 0xba, 0xe1, 0x01, 0xbf, 0x93, 0xbc, 0x62, 0x24, 0xc0, 0x3f, 0x94, 0x0c, 0xea, 0x36, - 0xcc, 0x9a, 0x6e, 0x8f, 0x24, 0x43, 0x33, 0xae, 0x96, 0x52, 0x57, 0x81, 0x0d, 0xb3, 0xa6, 0xfb, - 0x09, 0x49, 0x33, 0xe3, 0xf2, 0x22, 0x95, 0xe6, 0xa7, 0x30, 0x43, 0x56, 0xc9, 0x53, 0x8c, 0x7b, - 0x95, 0x8e, 0xfb, 0x12, 0x07, 0x48, 0x3c, 0x58, 0x96, 0x45, 0x69, 0xb8, 0xb7, 0x73, 0xe8, 0xd7, - 0x60, 0x92, 0xa6, 0xa2, 0xe6, 0xef, 0xeb, 0xa6, 0xd4, 0xf4, 0xd4, 0x25, 0xf1, 0x8b, 0x56, 0xde, - 0xcf, 0xa1, 0xef, 0xc1, 0xd8, 0x63, 0x1c, 0x52, 0xef, 0x99, 0xeb, 0xd2, 0x90, 0xca, 0x2e, 0x2d, - 0xd7, 0xba, 0xd2, 0xbd, 0x40, 0x74, 0x38, 0xae, 0xab, 0xa3, 0x7b, 0x00, 0x4c, 0x20, 0x50, 0x0a, - 0xf1, 0xea, 0x52, 0xa2, 0xdb, 0xe8, 0x31, 0xd9, 0xe7, 0x3a, 0x38, 0xc4, 0x27, 0x6d, 0x32, 0x8d, - 0x47, 0xeb, 0x30, 0x23, 0xa3, 0xb5, 0x6d, 0x50, 0xf7, 0x4b, 0x2b, 0x46, 0x2c, 0x38, 0x05, 0xb5, - 0x8f, 0xc9, 0x57, 0xc1, 0x0c, 0x9b, 0xf2, 0x31, 0x37, 0x4a, 0x7b, 0xde, 0x2d, 0x99, 0xc8, 0xc0, - 0x14, 0x5c, 0x99, 0x5d, 0x5b, 0xe2, 0xc6, 0xf3, 0x6d, 0xc7, 0x70, 0x31, 0x94, 0xd4, 0x76, 0xf5, - 0x87, 0xdd, 0x91, 0xcc, 0x4d, 0x7b, 0x8f, 0x5e, 0xba, 0x9e, 0x01, 0xc1, 0xc4, 0x1d, 0x95, 0x24, - 0x4f, 0x60, 0x5a, 0x7b, 0x0a, 0x1c, 0xed, 0x57, 0x86, 0xb7, 0xda, 0xd1, 0x7e, 0x65, 0x7c, 0x3d, - 0xfc, 0x88, 0x0a, 0x90, 0x58, 0xfe, 0xb6, 0x92, 0x29, 0x4f, 0x1b, 0xff, 0x20, 0x45, 0x6e, 0x89, - 0x18, 0xca, 0x53, 0x76, 0xb6, 0xd0, 0x0a, 0x1b, 0x4b, 0x99, 0x94, 0x52, 0xb2, 0xc1, 0xdd, 0xcf, - 0xa1, 0x15, 0xb8, 0x28, 0xfd, 0x65, 0xa3, 0x2a, 0x94, 0x82, 0x90, 0xba, 0x0c, 0x3e, 0x87, 0x8b, - 0x7c, 0x51, 0x69, 0x64, 0x0a, 0x52, 0x3e, 0x70, 0xfb, 0x6a, 0x2a, 0x81, 0x27, 0x30, 0x57, 0x8f, - 0x0d, 0x8a, 0xdd, 0x06, 0x5e, 0xd6, 0x49, 0x28, 0x89, 0xe3, 0x52, 0x69, 0x3d, 0x05, 0xc4, 0xd4, - 0x77, 0x41, 0xee, 0xa5, 0x8b, 0x5f, 0xa1, 0xab, 0xb1, 0x21, 0x91, 0x42, 0x0a, 0x46, 0x05, 0x4c, - 0x1a, 0x8b, 0xd0, 0x36, 0x0b, 0x98, 0xcf, 0x92, 0xd2, 0x38, 0x3d, 0x67, 0xcf, 0xed, 0xb8, 0xa1, - 0x8b, 0xc9, 0x1a, 0x53, 0x11, 0xd4, 0x2a, 0xb1, 0x1c, 0x2e, 0xa7, 0x42, 0xa0, 0xcf, 0x60, 0xfa, - 0x31, 0x0e, 0xa3, 0xdc, 0x78, 0x68, 0x3e, 0x91, 0x4d, 0x8f, 0x4f, 0x9d, 0x78, 0x9d, 0xa1, 0x27, - 0xe4, 0x5b, 0x83, 0x02, 0x93, 0x8f, 0x0a, 0x89, 0xab, 0x09, 0x12, 0x1c, 0xc4, 0xf1, 0x9d, 0xc3, - 0x20, 0x95, 0x5b, 0xf7, 0x98, 0xb9, 0x0d, 0x09, 0x47, 0x48, 0x55, 0x01, 0xbb, 0xa8, 0x95, 0xc9, - 0xd8, 0x18, 0x73, 0xc6, 0xa4, 0x70, 0xe8, 0x46, 0xb4, 0x19, 0xa6, 0x66, 0x7a, 0x2b, 0xa1, 0xf8, - 0xdb, 0x89, 0xc6, 0x43, 0x24, 0xe3, 0x8b, 0x1b, 0x88, 0xde, 0xd2, 0xf6, 0xec, 0xd3, 0xd1, 0xfd, - 0x0c, 0x26, 0x64, 0x76, 0x31, 0x29, 0x58, 0xe2, 0xb9, 0xd9, 0x4a, 0xc5, 0x64, 0x05, 0x1f, 0xe9, - 0xa7, 0x2c, 0x97, 0xa0, 0x8e, 0x1f, 0x4f, 0xc0, 0x95, 0xca, 0xd8, 0x8f, 0x60, 0x52, 0x49, 0xbd, - 0x25, 0x17, 0x72, 0x32, 0x1d, 0x57, 0x69, 0x5a, 0xe9, 0x7b, 0x63, 0xe9, 0x7e, 0x0e, 0xdd, 0xa3, - 0x9b, 0x0b, 0x75, 0x1e, 0x9e, 0x8b, 0xd0, 0x94, 0x64, 0x3c, 0x31, 0x14, 0xf4, 0x01, 0x7d, 0x31, - 0x5d, 0xeb, 0xfb, 0x3e, 0xee, 0x32, 0xbc, 0x34, 0x1d, 0x22, 0x86, 0xf8, 0x19, 0x15, 0x26, 0x0a, - 0x22, 0xbb, 0x5e, 0x1b, 0x84, 0xcd, 0x62, 0xe7, 0xdd, 0xcf, 0xa1, 0x87, 0x30, 0x2e, 0x12, 0x82, - 0xa2, 0x4b, 0x7a, 0x57, 0xd3, 0x87, 0xf7, 0x10, 0x80, 0x31, 0x9b, 0xf6, 0x54, 0xaf, 0x4e, 0x65, - 0xe7, 0x43, 0xb2, 0x63, 0xb6, 0x4f, 0x89, 0xf4, 0x99, 0xd8, 0x35, 0x29, 0x52, 0x51, 0x9b, 0x42, - 0x95, 0x9d, 0x69, 0xf8, 0x44, 0xe5, 0xd5, 0xf2, 0x94, 0x46, 0x2a, 0xaf, 0x29, 0x7d, 0x69, 0x2a, - 0x9d, 0x35, 0x28, 0x54, 0x5a, 0x74, 0x3f, 0x90, 0x09, 0x8e, 0xe4, 0x79, 0x23, 0x5e, 0x21, 0x68, - 0xcd, 0xc5, 0xf3, 0x25, 0xad, 0x63, 0x87, 0x3e, 0x22, 0x9f, 0x97, 0x5a, 0x41, 0xac, 0xca, 0x8c, - 0x91, 0x71, 0xbe, 0x98, 0xad, 0x91, 0x13, 0x51, 0xe7, 0x9b, 0x91, 0xf9, 0x98, 0xca, 0x32, 0x25, - 0xf9, 0xd3, 0xa5, 0x38, 0xbe, 0x3c, 0x89, 0x09, 0xd7, 0x06, 0x09, 0x5a, 0x81, 0xf3, 0xfc, 0xc9, - 0xaa, 0x64, 0x4b, 0x1a, 0x76, 0x5a, 0xf3, 0x1f, 0xc0, 0xcc, 0x0a, 0x91, 0xf5, 0xfd, 0xb6, 0xcb, - 0x02, 0x67, 0x20, 0x3d, 0x12, 0x42, 0x2a, 0xe2, 0xaa, 0xc8, 0x3d, 0xa8, 0x64, 0x45, 0x92, 0x5f, - 0x69, 0x32, 0xf1, 0x54, 0x69, 0x56, 0x90, 0x55, 0x13, 0x28, 0xf1, 0x93, 0xf2, 0x7c, 0x4a, 0x1e, - 0x22, 0x74, 0x53, 0x3b, 0xfd, 0xa5, 0x25, 0x13, 0x32, 0xe8, 0x7b, 0x5f, 0x2a, 0x91, 0xd9, 0x53, - 0x68, 0x66, 0x27, 0x28, 0x4a, 0x1d, 0xb7, 0x7c, 0xea, 0x6e, 0x4c, 0x24, 0x84, 0xde, 0xd1, 0xa9, - 0x67, 0x24, 0x1b, 0x4a, 0x6d, 0x81, 0x9e, 0xae, 0xf5, 0x3c, 0x37, 0x68, 0x31, 0x3b, 0x1d, 0x8f, - 0x72, 0xba, 0x4e, 0x49, 0x90, 0xf3, 0x84, 0x2e, 0xb3, 0x28, 0x7c, 0x3b, 0x52, 0xcf, 0xaa, 0xf1, - 0xe8, 0xf5, 0x52, 0x15, 0x33, 0x27, 0xbb, 0x79, 0x4c, 0xc5, 0xa5, 0x12, 0x0a, 0x3e, 0x55, 0xe0, - 0x5d, 0x35, 0xd1, 0x09, 0x94, 0xbd, 0xf0, 0x7c, 0x2c, 0x6d, 0x8c, 0x34, 0x90, 0x98, 0x13, 0xd7, - 0x94, 0x16, 0xd3, 0xaa, 0x39, 0xc5, 0xba, 0xc8, 0x1e, 0xaa, 0x8c, 0x74, 0x51, 0xdb, 0xa1, 0x92, - 0x83, 0x2d, 0xa7, 0xd6, 0x4b, 0xde, 0x15, 0xe2, 0x61, 0xfe, 0x25, 0xd1, 0x94, 0xf8, 0xff, 0x19, - 0x22, 0x71, 0x56, 0x5d, 0x1a, 0x03, 0x39, 0x98, 0x46, 0x67, 0x1b, 0xe6, 0x8c, 0x51, 0xf9, 0xa5, - 0x1a, 0x91, 0x15, 0xb3, 0x3f, 0x95, 0x2a, 0x86, 0x4b, 0xe6, 0xc4, 0x1c, 0xe8, 0x2d, 0xfd, 0xf0, - 0x6f, 0x4e, 0x53, 0x50, 0xba, 0x39, 0x00, 0x8a, 0x33, 0xf4, 0x2b, 0xba, 0x6d, 0x26, 0xda, 0xb8, - 0xae, 0x98, 0x03, 0x52, 0x1a, 0xb0, 0xb2, 0x40, 0xe4, 0x1a, 0x98, 0x35, 0x25, 0x06, 0x4a, 0x65, - 0xf1, 0x8d, 0x74, 0x9a, 0xd1, 0xc2, 0x6a, 0x88, 0x07, 0xe6, 0xa9, 0x9c, 0xc9, 0x4c, 0xe0, 0x90, - 0x71, 0x9e, 0x2c, 0xc9, 0xf5, 0x70, 0xf2, 0x2e, 0xa7, 0xdb, 0x86, 0x66, 0x4d, 0x69, 0x43, 0xe2, - 0xa6, 0x1b, 0x53, 0x56, 0x08, 0xc9, 0x86, 0xcc, 0xbc, 0x23, 0x0d, 0x66, 0xc6, 0xd1, 0xa9, 0xab, - 0x66, 0x1c, 0x23, 0xe9, 0x6b, 0xe9, 0x00, 0xd1, 0x8a, 0x30, 0xe4, 0x3f, 0x92, 0x2b, 0x22, 0x3d, - 0x13, 0x93, 0x5c, 0x11, 0x59, 0xe9, 0x93, 0x6c, 0xf1, 0xd1, 0xa5, 0xb0, 0x25, 0x23, 0x59, 0x46, - 0xc6, 0x91, 0xab, 0x18, 0x4d, 0x5c, 0xac, 0xdb, 0xa7, 0x9d, 0xb6, 0xaf, 0xe0, 0x72, 0x6a, 0x62, - 0x0c, 0xf4, 0x76, 0xe2, 0x83, 0x4e, 0xe1, 0x44, 0x7a, 0x4f, 0xa7, 0xb5, 0x9c, 0x16, 0xd2, 0x8e, - 0x15, 0x4b, 0x9f, 0x91, 0x10, 0xfd, 0x86, 0xdc, 0x1a, 0x4c, 0xf4, 0x2b, 0xf9, 0x31, 0x4e, 0x22, - 0xfa, 0x4d, 0xe9, 0x34, 0xa4, 0x4c, 0x55, 0xfa, 0x25, 0x54, 0xba, 0x78, 0xc5, 0x69, 0x64, 0xea, - 0x49, 0xba, 0x96, 0x46, 0x67, 0x99, 0x1e, 0x39, 0x44, 0xba, 0x0c, 0x74, 0x59, 0x63, 0x93, 0xb6, - 0xdd, 0x96, 0xb4, 0xc1, 0xe9, 0x3b, 0x6d, 0x8d, 0x1a, 0x8c, 0x65, 0x7a, 0x8e, 0xd4, 0x5e, 0x5c, - 0x49, 0xd2, 0xd0, 0x8c, 0xc5, 0x92, 0x0b, 0xac, 0x37, 0x0b, 0x71, 0xe6, 0x68, 0x1d, 0x4a, 0x1f, - 0x12, 0x52, 0x59, 0x33, 0xa0, 0x4b, 0xe9, 0xaa, 0xee, 0x45, 0x76, 0x78, 0x60, 0x11, 0xa0, 0xc4, - 0x43, 0xaf, 0x4b, 0xd2, 0xf2, 0xa5, 0x94, 0x66, 0x98, 0x39, 0xbe, 0x80, 0x0b, 0x89, 0x4c, 0x23, - 0x52, 0x78, 0xa4, 0xe5, 0x20, 0x49, 0xa3, 0x66, 0x0d, 0xfd, 0x85, 0x7c, 0x0e, 0x3d, 0x23, 0x3d, - 0x8b, 0x21, 0x36, 0x96, 0x06, 0x13, 0x4d, 0x68, 0x8c, 0x8c, 0xdc, 0x17, 0x22, 0x28, 0x96, 0xa9, - 0x87, 0x69, 0x49, 0x4d, 0xb2, 0x7b, 0xf8, 0x03, 0xb1, 0x51, 0xc7, 0x72, 0x9a, 0xc4, 0x36, 0x6a, - 0x73, 0xc6, 0x93, 0x6c, 0xd2, 0x5b, 0xd4, 0xb1, 0xc6, 0x90, 0x0e, 0x45, 0xee, 0x49, 0x99, 0xd9, - 0x52, 0x0c, 0x6a, 0xb3, 0xdc, 0xe5, 0x52, 0x29, 0x66, 0xe6, 0x47, 0x49, 0x9d, 0xf9, 0x9f, 0x28, - 0xbb, 0x5c, 0x22, 0xe9, 0x09, 0xba, 0x6d, 0xe2, 0x84, 0x29, 0x2f, 0x4a, 0xc6, 0x2e, 0x3a, 0x6b, - 0xca, 0x97, 0xa2, 0x58, 0xc3, 0x53, 0x93, 0xa9, 0x18, 0xb8, 0x20, 0xb7, 0x8b, 0x14, 0x6a, 0x19, - 0xd9, 0x53, 0x52, 0x7b, 0xf8, 0x43, 0x65, 0xbb, 0x88, 0x65, 0x39, 0x91, 0x46, 0x9a, 0x01, 0x69, - 0x50, 0x52, 0x69, 0x6f, 0x50, 0x57, 0xac, 0x64, 0x8a, 0x12, 0xb9, 0xc4, 0xb2, 0x12, 0x98, 0x18, - 0x8d, 0xe5, 0x73, 0xc9, 0x21, 0x12, 0x7a, 0x97, 0x62, 0xa6, 0xee, 0x41, 0x1d, 0x93, 0xfb, 0x9a, - 0x21, 0xb5, 0x49, 0x6c, 0x5f, 0x4b, 0x4f, 0x7e, 0x92, 0x71, 0x02, 0x3d, 0x5f, 0x77, 0xf7, 0xbb, - 0x4a, 0x9e, 0x11, 0x79, 0xfe, 0x4c, 0xe6, 0x4a, 0x91, 0x22, 0xdb, 0x94, 0x96, 0x64, 0x33, 0x72, - 0xd1, 0x56, 0x33, 0x46, 0xa0, 0x52, 0x7a, 0xa2, 0x0c, 0x29, 0xbe, 0x8d, 0x29, 0x26, 0x14, 0x82, - 0x6a, 0xba, 0x06, 0x49, 0xd0, 0x90, 0x39, 0x42, 0x12, 0x34, 0xe6, 0x77, 0x60, 0x26, 0x2d, 0xdb, - 0xeb, 0x60, 0xd5, 0xa4, 0xa5, 0x24, 0x5b, 0x88, 0xd9, 0x96, 0xd0, 0x27, 0xd4, 0xb2, 0x94, 0x6d, - 0x8e, 0x9a, 0xd7, 0x29, 0x45, 0xbb, 0xcf, 0x43, 0x71, 0xbd, 0x42, 0x1b, 0xd4, 0x29, 0x0f, 0x36, - 0x16, 0x51, 0x24, 0xdd, 0x58, 0xa4, 0x76, 0x34, 0xdd, 0xee, 0x3c, 0xa5, 0x86, 0xf8, 0x95, 0xbc, - 0x32, 0xc4, 0x21, 0x97, 0xbc, 0x32, 0x45, 0xf7, 0xa6, 0x36, 0x85, 0x6d, 0x61, 0x19, 0x89, 0xe8, - 0x5d, 0xcd, 0x0c, 0xcf, 0x5d, 0x5a, 0xcc, 0x8e, 0x69, 0xcd, 0x6f, 0x46, 0x0b, 0xf1, 0x28, 0xc4, - 0xc8, 0x14, 0x5d, 0x5d, 0x09, 0xee, 0x2c, 0x4f, 0x97, 0xa9, 0xe1, 0x8b, 0xb7, 0x84, 0xf1, 0x5f, - 0xa7, 0x9b, 0x12, 0x63, 0x5b, 0x25, 0x9d, 0xad, 0xf0, 0x45, 0x01, 0x89, 0xd5, 0xb3, 0x7e, 0x22, - 0xe0, 0xb1, 0xaa, 0xf0, 0x19, 0x62, 0x18, 0xbb, 0xe2, 0x49, 0x9f, 0x39, 0x63, 0xc7, 0x3b, 0xfa, - 0xd9, 0x39, 0x23, 0xb8, 0xc5, 0xc0, 0xbb, 0x67, 0xf4, 0x63, 0x91, 0x8a, 0x34, 0x19, 0xcf, 0xfe, - 0x66, 0xcc, 0x8c, 0x6d, 0x0e, 0x87, 0x50, 0xca, 0x0a, 0x97, 0x8f, 0x9e, 0x51, 0xa7, 0x85, 0xcd, - 0xb5, 0xe5, 0x1a, 0x77, 0x66, 0xf2, 0xfc, 0xc4, 0x45, 0xe0, 0xae, 0x1b, 0x1e, 0xb0, 0x04, 0x0f, - 0x8a, 0xf4, 0x61, 0x20, 0x1a, 0x62, 0xe3, 0x21, 0xaa, 0xd3, 0x93, 0x90, 0x56, 0x6a, 0xb8, 0x0b, - 0x34, 0x10, 0x2c, 0x99, 0x09, 0xd2, 0x14, 0x55, 0x2b, 0x42, 0x9d, 0xd1, 0xbb, 0x99, 0xd2, 0x87, - 0x2c, 0x7d, 0x8d, 0x2d, 0x1b, 0x33, 0x99, 0x93, 0x8a, 0xef, 0xc7, 0x30, 0xc7, 0x18, 0x1e, 0x7b, - 0x3f, 0xa1, 0xf5, 0x47, 0x29, 0x2f, 0xa5, 0x94, 0xa3, 0x0d, 0xea, 0x0b, 0x13, 0x2f, 0x55, 0x4e, - 0x85, 0xe6, 0x07, 0x1a, 0xa9, 0xf4, 0xd8, 0x54, 0x92, 0x63, 0xd0, 0x1b, 0x4d, 0xa5, 0x86, 0xd8, - 0x58, 0xe2, 0x53, 0xa9, 0x95, 0x9e, 0x6e, 0x2a, 0x63, 0x04, 0xf5, 0xa9, 0xd4, 0xbb, 0x99, 0xd2, - 0x87, 0xc1, 0x53, 0x69, 0x26, 0x73, 0xea, 0xa9, 0x8c, 0x3d, 0x5e, 0xd1, 0xfa, 0x63, 0x9a, 0xca, - 0x38, 0x3c, 0x9b, 0xca, 0x78, 0x69, 0xec, 0x80, 0x9f, 0x31, 0x95, 0x71, 0xcc, 0x2f, 0x28, 0x3d, - 0xf6, 0x3a, 0xe6, 0x54, 0x93, 0x29, 0x62, 0x2c, 0xc4, 0x50, 0x1b, 0x0f, 0xd1, 0x2e, 0xb5, 0x2e, - 0xc5, 0xca, 0x4f, 0x36, 0xa1, 0x0b, 0x69, 0x44, 0xe9, 0x94, 0xae, 0x09, 0x3d, 0x2b, 0xde, 0xdd, - 0xd4, 0xbe, 0x64, 0xcd, 0x07, 0x9b, 0xd6, 0x38, 0xa9, 0xd3, 0x4e, 0xec, 0x33, 0x21, 0x34, 0x13, - 0x0f, 0x8c, 0x62, 0xbd, 0x52, 0x27, 0x37, 0xb5, 0x06, 0x6d, 0x53, 0xdb, 0x59, 0xb2, 0x5c, 0xb1, - 0xbb, 0xa5, 0xbd, 0x64, 0x1a, 0x48, 0x35, 0xf1, 0x62, 0x49, 0xa5, 0x9a, 0xf6, 0x9c, 0x49, 0x52, - 0x4d, 0x62, 0x2f, 0xd3, 0xcf, 0x76, 0xdb, 0x27, 0xc7, 0xce, 0x76, 0xf2, 0x4c, 0xaa, 0xf3, 0x4f, - 0xdc, 0x10, 0xeb, 0xe0, 0x8d, 0x25, 0xb4, 0x46, 0x17, 0xa0, 0x5e, 0x9c, 0x75, 0x68, 0x37, 0x93, - 0xa1, 0xeb, 0x63, 0x55, 0x9c, 0x42, 0x62, 0x7d, 0x4a, 0x6b, 0x3b, 0xbd, 0x53, 0xd2, 0xa2, 0x71, - 0xc2, 0xd1, 0xa5, 0xad, 0x0e, 0xa6, 0x05, 0x32, 0x03, 0xc2, 0x20, 0xce, 0xd0, 0x40, 0xa7, 0x32, - 0xb5, 0x73, 0x63, 0x09, 0x7d, 0x1f, 0x26, 0x04, 0xf2, 0x60, 0x86, 0xc4, 0xb1, 0x29, 0x43, 0x3e, - 0x83, 0x49, 0xce, 0x10, 0xda, 0x83, 0xb4, 0x96, 0x32, 0x54, 0xca, 0x49, 0xb6, 0xb8, 0xdf, 0x10, - 0x9f, 0x2a, 0x42, 0xca, 0xbb, 0x41, 0x45, 0x11, 0x4a, 0x3e, 0x60, 0x54, 0x14, 0x21, 0xd3, 0x53, - 0xc3, 0xef, 0xc1, 0x24, 0x9f, 0x92, 0x4c, 0x6e, 0xa6, 0x9f, 0x50, 0xe7, 0x14, 0xcf, 0xc7, 0x7e, - 0xdb, 0x0d, 0x6b, 0x5e, 0xf7, 0xb9, 0xbb, 0x3f, 0x90, 0xb1, 0x49, 0x94, 0xc6, 0x12, 0x6a, 0xd0, - 0x80, 0xce, 0x22, 0xcc, 0x36, 0x0e, 0x5f, 0x79, 0xfe, 0x0b, 0xb7, 0xbb, 0x3f, 0x80, 0xe4, 0x35, - 0x9d, 0x64, 0x1c, 0x8f, 0xd1, 0xad, 0xa7, 0xd3, 0x1d, 0x88, 0x9f, 0x71, 0x42, 0x5d, 0xa0, 0xbe, - 0x07, 0xa7, 0xed, 0x71, 0xfa, 0xed, 0xc7, 0xe5, 0xc8, 0x67, 0xd0, 0xc6, 0x2d, 0xcf, 0x6f, 0x0f, - 0x26, 0x56, 0xd6, 0x3d, 0xf4, 0x62, 0x68, 0x8d, 0x25, 0x42, 0xb5, 0x9e, 0x4a, 0x75, 0x10, 0x76, - 0x86, 0x84, 0xbe, 0x42, 0xc7, 0x7e, 0xca, 0xde, 0xa6, 0x5b, 0xf4, 0xa8, 0x1f, 0x54, 0x3f, 0x3c, - 0xd8, 0xf2, 0xf1, 0x73, 0xec, 0x53, 0xc7, 0xcf, 0x41, 0x2e, 0x8f, 0x3a, 0x78, 0x63, 0x89, 0x50, - 0xa9, 0x27, 0xa8, 0xa4, 0x41, 0x67, 0x29, 0x27, 0x74, 0x68, 0x27, 0xec, 0x4d, 0x1a, 0x99, 0x0f, - 0xa9, 0xdd, 0x75, 0x67, 0x6d, 0x00, 0x47, 0x84, 0x2b, 0xb2, 0x00, 0x6c, 0x3c, 0x20, 0x98, 0x75, - 0x05, 0x33, 0x09, 0x91, 0xda, 0xe6, 0xf7, 0x85, 0x81, 0x75, 0x60, 0xb3, 0xe9, 0x1e, 0x15, 0x13, - 0x32, 0xd9, 0x04, 0x52, 0x8e, 0xd2, 0x5a, 0x2a, 0x85, 0xd2, 0xb4, 0xea, 0xf8, 0x18, 0xa0, 0x0a, - 0xd3, 0x5c, 0xd5, 0xa4, 0x0b, 0xca, 0xdd, 0xae, 0x31, 0x1b, 0x43, 0x9c, 0x04, 0x33, 0x05, 0xac, - 0x7b, 0xad, 0x17, 0xaa, 0x29, 0x40, 0x89, 0xe2, 0x5f, 0xd2, 0x63, 0xec, 0xf3, 0x4d, 0x80, 0x06, - 0xda, 0x57, 0x9d, 0x4c, 0xd4, 0x38, 0xfe, 0xaa, 0x29, 0x40, 0xcf, 0x38, 0x20, 0x4d, 0x01, 0xb4, - 0x41, 0x9d, 0xf2, 0x60, 0x53, 0x00, 0x45, 0xd2, 0x4d, 0x01, 0x6a, 0x47, 0xd3, 0xc5, 0x05, 0x4a, - 0xa6, 0x1c, 0x90, 0x4a, 0x66, 0x6a, 0x36, 0x82, 0x0c, 0xff, 0x91, 0x8b, 0x86, 0x2c, 0x29, 0xf2, - 0x88, 0x9d, 0x9e, 0x41, 0xa5, 0xa4, 0x3b, 0x43, 0xdc, 0xcf, 0xa1, 0x0d, 0x9a, 0x20, 0x9c, 0x0b, - 0x30, 0x1b, 0x07, 0xa1, 0xef, 0xd2, 0x67, 0x31, 0xe9, 0x3b, 0xa4, 0xd0, 0x29, 0x0d, 0x38, 0x8d, - 0x77, 0x09, 0xbd, 0xba, 0x99, 0x5e, 0x26, 0x5e, 0x86, 0x15, 0x85, 0x9b, 0xdc, 0x4e, 0xd3, 0xc5, - 0xf4, 0x25, 0x3e, 0xc6, 0x6e, 0xee, 0xd3, 0x51, 0x0b, 0x51, 0x5c, 0x3d, 0xae, 0x25, 0xdf, 0x85, - 0x51, 0x86, 0x94, 0xba, 0x47, 0x4e, 0xa9, 0x38, 0xe8, 0x81, 0x70, 0x33, 0x23, 0x28, 0x5a, 0x55, - 0x6a, 0xbf, 0x1e, 0xc0, 0x04, 0xbb, 0x8f, 0x38, 0x39, 0xca, 0x27, 0xc2, 0x19, 0x2d, 0xab, 0x63, - 0xe9, 0xfe, 0x99, 0xd3, 0xea, 0xa5, 0xfd, 0xe9, 0x19, 0xf9, 0x3d, 0x7a, 0x27, 0x24, 0x4c, 0x85, - 0xe9, 0xf8, 0x73, 0xb1, 0xc0, 0x71, 0x9c, 0xa5, 0x4c, 0x40, 0xca, 0x74, 0x43, 0x69, 0xdd, 0xbf, - 0x90, 0xc0, 0x46, 0x9f, 0x88, 0x47, 0x10, 0x12, 0x39, 0x09, 0x94, 0xc1, 0xb3, 0x19, 0xc6, 0xe6, - 0x37, 0x41, 0x96, 0x02, 0x76, 0x60, 0xb7, 0x4f, 0x72, 0x77, 0x35, 0x98, 0x75, 0x69, 0x54, 0x36, - 0xa9, 0xe2, 0x95, 0x08, 0x69, 0x98, 0x4e, 0x68, 0x31, 0x3d, 0x0a, 0x22, 0x9d, 0x8c, 0x27, 0xf4, - 0x30, 0x93, 0x4c, 0x1d, 0x95, 0x36, 0xbc, 0x8c, 0xa8, 0x8a, 0xd1, 0xe9, 0x2d, 0x49, 0x2e, 0x03, - 0x2d, 0xeb, 0x30, 0xc8, 0x26, 0xec, 0x6c, 0xc8, 0xad, 0x09, 0x27, 0xaa, 0x93, 0x0f, 0x36, 0x43, - 0x09, 0x32, 0xdc, 0xee, 0x0c, 0x9c, 0x8b, 0x34, 0x72, 0x3f, 0xa6, 0xfa, 0x9f, 0x39, 0x5f, 0x4c, - 0x2a, 0xb1, 0xdb, 0xca, 0x85, 0x6b, 0x76, 0xa6, 0x99, 0x17, 0xf4, 0x75, 0x89, 0x39, 0xe8, 0xe3, - 0xad, 0x01, 0x54, 0x04, 0x27, 0xde, 0x1e, 0x08, 0x27, 0xef, 0x0a, 0x78, 0xae, 0x7f, 0x73, 0x7b, - 0x03, 0x82, 0x58, 0x1a, 0xae, 0x6f, 0x52, 0x92, 0xb1, 0x08, 0x82, 0xba, 0x87, 0x5a, 0xe6, 0x18, - 0xd2, 0x2f, 0x72, 0xa3, 0x94, 0xfd, 0xa7, 0x9c, 0x84, 0x74, 0x8d, 0x1e, 0x25, 0x53, 0xd4, 0xa0, - 0xac, 0x10, 0x83, 0xa5, 0xeb, 0x69, 0x1c, 0x0e, 0x14, 0x77, 0x05, 0xee, 0x0f, 0x13, 0x0b, 0x7f, - 0x9a, 0x16, 0x48, 0x35, 0xc3, 0x5e, 0xc3, 0x9f, 0xdb, 0x9c, 0x09, 0xa1, 0xe4, 0x6c, 0x9f, 0x9e, - 0x90, 0xbc, 0xa4, 0x8c, 0x11, 0xb2, 0x32, 0xa6, 0xf7, 0x34, 0x3e, 0x2d, 0xf1, 0xa9, 0x38, 0xed, - 0x84, 0x3a, 0xd1, 0x13, 0x93, 0x64, 0x1e, 0x1d, 0xa9, 0xcb, 0xa5, 0xe6, 0xf4, 0x91, 0xb3, 0x9b, - 0x91, 0x84, 0xa7, 0x46, 0x3e, 0x53, 0xd6, 0x84, 0x96, 0xc4, 0xa3, 0x66, 0xaf, 0xcb, 0x93, 0xbe, - 0x29, 0xbb, 0x47, 0x09, 0x44, 0xa5, 0xbd, 0x8e, 0xea, 0x50, 0x62, 0x4b, 0xc4, 0xf4, 0xc4, 0x59, - 0xbe, 0x0a, 0x30, 0x55, 0x66, 0x9c, 0x2e, 0xea, 0x50, 0x62, 0xcb, 0xe5, 0x2c, 0x89, 0x36, 0x69, - 0xc2, 0x36, 0x23, 0xc5, 0x9b, 0xca, 0xe3, 0xca, 0xf4, 0x87, 0xe3, 0xa5, 0xec, 0x86, 0xd1, 0x8f, - 0x60, 0xce, 0xf8, 0x72, 0x5c, 0xde, 0x23, 0x67, 0xbd, 0x2b, 0x1f, 0x44, 0xfc, 0x05, 0x14, 0xd3, - 0x72, 0x74, 0x44, 0xaf, 0x14, 0xb2, 0xd3, 0xa0, 0x48, 0x99, 0x3a, 0x30, 0xd9, 0xc7, 0x06, 0xcc, - 0x9a, 0xf2, 0x5e, 0xc8, 0x8f, 0x23, 0x23, 0x29, 0x86, 0xf1, 0x29, 0xc4, 0x16, 0xcc, 0x19, 0x73, - 0x4f, 0x48, 0xce, 0x64, 0x65, 0xa6, 0x30, 0x52, 0xfc, 0x12, 0xe6, 0x53, 0x12, 0x2d, 0x44, 0x97, - 0x5d, 0x99, 0x89, 0x18, 0x32, 0x2e, 0xdd, 0x4b, 0xe9, 0x31, 0xfc, 0xa5, 0xaf, 0xc5, 0xc0, 0x30, - 0xff, 0x25, 0x63, 0x62, 0x13, 0xb4, 0x4d, 0x17, 0xa1, 0x29, 0xa8, 0xbf, 0xba, 0x08, 0x33, 0x82, - 0xfe, 0xa7, 0x3c, 0x61, 0x99, 0x4f, 0x89, 0xe3, 0x9f, 0x41, 0xf5, 0x04, 0xbd, 0xdd, 0x10, 0xf2, - 0x5f, 0x0f, 0xec, 0x1e, 0xf3, 0x87, 0x34, 0x46, 0x7d, 0x37, 0xf6, 0x53, 0x79, 0x34, 0xdd, 0xe9, - 0x64, 0xa8, 0x41, 0x48, 0x7d, 0x35, 0x4d, 0x20, 0x1b, 0x0f, 0xc8, 0x21, 0x42, 0xc5, 0xcd, 0x92, - 0xa8, 0x09, 0x64, 0xaa, 0x78, 0x7e, 0x0c, 0x53, 0x75, 0xb5, 0x71, 0x43, 0x23, 0xa9, 0x8b, 0x42, - 0xbe, 0x14, 0x18, 0xdc, 0xf7, 0x81, 0x37, 0x51, 0x95, 0x4e, 0xe7, 0x44, 0xa3, 0x48, 0xb5, 0xc9, - 0x6a, 0xb1, 0x6f, 0xa5, 0xa4, 0x36, 0x85, 0x74, 0x96, 0x36, 0x59, 0x73, 0xb8, 0xdc, 0x15, 0xca, - 0xd2, 0x28, 0x72, 0x60, 0xc6, 0x19, 0x5c, 0x2e, 0x22, 0x43, 0x80, 0xc2, 0xa7, 0xea, 0x73, 0x76, - 0x16, 0x6f, 0x30, 0xc3, 0x88, 0x18, 0x7f, 0xc6, 0x1e, 0x0b, 0x50, 0xd8, 0x80, 0xa2, 0x88, 0xfc, - 0xc5, 0x62, 0x6f, 0x45, 0xb1, 0x86, 0x22, 0x77, 0xa4, 0xf4, 0xd0, 0x60, 0x19, 0x7c, 0x2b, 0xc4, - 0xa3, 0x6a, 0x48, 0xcb, 0x51, 0x4a, 0xb8, 0x8d, 0x8c, 0xd5, 0x00, 0x51, 0xec, 0x0c, 0x69, 0x9f, - 0x49, 0x84, 0xd3, 0x28, 0x5d, 0x36, 0xd4, 0x48, 0xcd, 0x6a, 0x4a, 0x8d, 0xb4, 0x21, 0xbd, 0x35, - 0x0c, 0xe1, 0x37, 0x4a, 0x57, 0x8c, 0x75, 0x9c, 0x50, 0x08, 0x57, 0x32, 0x12, 0xd6, 0x49, 0x6d, - 0x75, 0x70, 0x62, 0xbd, 0xd2, 0x9d, 0x93, 0x80, 0xf2, 0x56, 0xb1, 0x8c, 0xe4, 0x97, 0x84, 0x42, - 0x6f, 0x1b, 0xdc, 0x95, 0x4d, 0xb9, 0xe0, 0x4a, 0x83, 0x72, 0xe5, 0xa1, 0x5d, 0x58, 0x88, 0xb9, - 0x53, 0xeb, 0x2d, 0x0d, 0x22, 0x90, 0x3a, 0x83, 0xbb, 0xb0, 0xc0, 0x5f, 0x78, 0x9f, 0x31, 0xe1, - 0x3d, 0x58, 0xc8, 0xca, 0x82, 0x87, 0xee, 0x98, 0x5d, 0xa6, 0x8d, 0xec, 0x49, 0x57, 0x5d, 0xaf, - 0x25, 0x5d, 0xa7, 0x63, 0xf3, 0x7e, 0x5a, 0xb1, 0xf2, 0x0c, 0x66, 0xf4, 0x0c, 0x78, 0x48, 0x15, - 0x1d, 0x89, 0x7c, 0x7c, 0xa5, 0xab, 0x29, 0xb5, 0x7c, 0x7d, 0x7c, 0x46, 0x05, 0xbd, 0xac, 0x50, - 0xa3, 0x3e, 0xc4, 0x33, 0xcc, 0x95, 0x0c, 0xe9, 0xf4, 0xd0, 0xf7, 0xe0, 0x7c, 0xf4, 0x46, 0x8f, - 0x91, 0x30, 0x80, 0x65, 0xd8, 0x8b, 0xce, 0x47, 0xaf, 0xf5, 0x4e, 0x8f, 0xbe, 0x2a, 0xa4, 0x7d, - 0x84, 0x7e, 0x35, 0xe1, 0x45, 0xae, 0x8d, 0xe1, 0x24, 0x42, 0x5f, 0xe1, 0xed, 0x69, 0x67, 0xa7, - 0x45, 0x3f, 0x37, 0x73, 0xf8, 0x1b, 0xf5, 0x73, 0xcb, 0x0c, 0xd1, 0x23, 0x35, 0xcc, 0x14, 0x3a, - 0x1d, 0xb8, 0x3e, 0x30, 0x60, 0x0f, 0xba, 0xa7, 0xc5, 0x47, 0x18, 0x1c, 0xda, 0x27, 0x6d, 0x48, - 0xd5, 0xe5, 0x9f, 0xff, 0xe9, 0x62, 0xee, 0xe7, 0xbf, 0x58, 0xcc, 0xfd, 0x87, 0x5f, 0x2c, 0xe6, - 0xfe, 0xdb, 0x2f, 0x16, 0x73, 0x3f, 0x5c, 0x3a, 0x59, 0x04, 0xba, 0x56, 0xc7, 0xc5, 0xdd, 0xf0, - 0x1e, 0x23, 0x37, 0x4a, 0xff, 0x7b, 0xf8, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x15, 0xf1, 0x27, - 0xc1, 0x0f, 0xcd, 0x00, 0x00, + 0x19, 0x3e, 0xdc, 0x83, 0x0d, 0xd8, 0x2f, 0x36, 0x60, 0xfb, 0x1e, 0x7c, 0xb8, 0x17, 0x03, 0xc6, + 0xd9, 0x06, 0xbc, 0xb6, 0x71, 0x80, 0x1f, 0x7c, 0x30, 0x60, 0x03, 0xb4, 0x6f, 0x1f, 0x09, 0xf8, + 0xc9, 0xb0, 0x1f, 0xf6, 0xc9, 0xc8, 0xdf, 0xca, 0xac, 0xca, 0xaa, 0x26, 0x35, 0xdc, 0xf1, 0x8b, + 0xc4, 0xce, 0x8c, 0x88, 0xcc, 0x8c, 0xcc, 0x8a, 0x8c, 0x8c, 0x8c, 0x8c, 0x80, 0xbb, 0x21, 0xee, + 0xe0, 0x9e, 0xe7, 0x87, 0xf7, 0x3a, 0x78, 0xdf, 0x69, 0xbd, 0xbe, 0xd7, 0xea, 0xb8, 0xb8, 0x1b, + 0xde, 0xeb, 0xf9, 0x5e, 0xe8, 0xdd, 0x73, 0xfa, 0xe1, 0x41, 0x80, 0xfd, 0x97, 0x6e, 0x0b, 0xdf, + 0xa5, 0x25, 0x68, 0x84, 0xfe, 0x57, 0x9a, 0xdd, 0xf7, 0xf6, 0x3d, 0x06, 0x43, 0xfe, 0x62, 0x95, + 0xa5, 0x2b, 0xfb, 0x9e, 0xb7, 0xdf, 0xc1, 0x0c, 0x79, 0xaf, 0xff, 0xfc, 0x1e, 0x3e, 0xec, 0x85, + 0xaf, 0x79, 0x65, 0x39, 0x5e, 0x19, 0xba, 0x87, 0x38, 0x08, 0x9d, 0xc3, 0x1e, 0x07, 0x78, 0x47, + 0x76, 0xc5, 0x09, 0x43, 0x52, 0x13, 0xba, 0x5e, 0xf7, 0xde, 0xcb, 0x07, 0xea, 0x4f, 0x0e, 0x7a, + 0x3b, 0xb3, 0xd7, 0x2d, 0xec, 0x87, 0x41, 0x82, 0x28, 0x87, 0x0c, 0x5f, 0xf7, 0x70, 0x70, 0x0f, + 0xbf, 0xc4, 0xdd, 0x50, 0xfc, 0xc7, 0x41, 0xaf, 0x9b, 0x41, 0xe9, 0xbf, 0x1c, 0xe4, 0xbb, 0x66, + 0x90, 0x57, 0x78, 0x8f, 0x70, 0xaa, 0x2b, 0xff, 0x18, 0x00, 0xee, 0x3b, 0xbd, 0x1e, 0xf6, 0xa3, + 0x3f, 0x12, 0x7d, 0xed, 0x07, 0xce, 0x3e, 0xe6, 0x7d, 0x7c, 0xf9, 0x40, 0xfd, 0xc9, 0x40, 0xad, + 0x3f, 0xbc, 0x0a, 0x23, 0x2b, 0xa4, 0x00, 0x7d, 0x08, 0xc3, 0xdb, 0xaf, 0x7b, 0xb8, 0x98, 0xbb, + 0x96, 0xbb, 0x3d, 0xb3, 0x54, 0x60, 0xf5, 0x77, 0x37, 0x7b, 0xd8, 0xa7, 0x0c, 0xab, 0xa2, 0xe3, + 0xa3, 0xf2, 0x0c, 0x69, 0xf7, 0x3b, 0xde, 0xa1, 0x1b, 0xd2, 0x09, 0xb1, 0x29, 0x06, 0xda, 0x85, + 0x19, 0x1b, 0x07, 0x5e, 0xdf, 0x6f, 0xe1, 0x55, 0xec, 0xb4, 0xb1, 0x5f, 0xcc, 0x5f, 0xcb, 0xdd, + 0x9e, 0x5c, 0x9a, 0xbb, 0xcb, 0x86, 0xac, 0x57, 0x56, 0x2f, 0x1d, 0x1f, 0x95, 0x91, 0xcf, 0xcb, + 0x22, 0x62, 0xab, 0xe7, 0xec, 0x18, 0x19, 0xf4, 0x15, 0x4c, 0xd7, 0xb0, 0x1f, 0x56, 0xfa, 0xe1, + 0x81, 0xe7, 0xbb, 0xe1, 0xeb, 0xe2, 0x10, 0xa5, 0x7b, 0x89, 0xd3, 0xd5, 0xea, 0x1a, 0x4b, 0xd5, + 0x85, 0xe3, 0xa3, 0x72, 0x91, 0xcc, 0x59, 0xd3, 0x11, 0xa5, 0x1a, 0x79, 0x9d, 0x18, 0xfa, 0x12, + 0xa6, 0xea, 0x64, 0x31, 0xb4, 0xb6, 0xbd, 0x17, 0xb8, 0x1b, 0x14, 0x87, 0xb5, 0x4e, 0xab, 0x55, + 0x8d, 0xa5, 0xea, 0x95, 0xe3, 0xa3, 0xf2, 0x3c, 0x5d, 0x3b, 0xad, 0x66, 0x48, 0x0b, 0x35, 0xd2, + 0x1a, 0x25, 0xf4, 0x53, 0x98, 0xd9, 0xf2, 0xbd, 0x97, 0x6e, 0xe0, 0x7a, 0x5d, 0x5a, 0x54, 0x1c, + 0xa1, 0xb4, 0xe7, 0x39, 0x6d, 0xbd, 0xb2, 0xb1, 0x54, 0xbd, 0x7a, 0x7c, 0x54, 0xbe, 0xdc, 0x13, + 0xa5, 0xac, 0x01, 0x9d, 0x33, 0x3a, 0x0a, 0xda, 0x86, 0xc9, 0x5a, 0xa7, 0x1f, 0x84, 0xd8, 0xdf, + 0x70, 0x0e, 0x71, 0x71, 0x94, 0x92, 0x9f, 0x15, 0x7c, 0x89, 0x6a, 0x1a, 0x4b, 0xd5, 0xd2, 0xf1, + 0x51, 0xf9, 0x52, 0x8b, 0x15, 0x35, 0xbb, 0xce, 0xa1, 0xce, 0x72, 0x95, 0x0c, 0xfa, 0x00, 0x86, + 0x77, 0x02, 0xec, 0x17, 0xc7, 0x29, 0xb9, 0x69, 0x4e, 0x8e, 0x14, 0x35, 0x96, 0xd8, 0xfc, 0xf7, + 0x03, 0xec, 0x6b, 0xf8, 0x14, 0x81, 0x20, 0xda, 0x5e, 0x07, 0x17, 0x27, 0x34, 0x44, 0x52, 0xd4, + 0x78, 0x9f, 0x21, 0xfa, 0x5e, 0x47, 0x6f, 0x98, 0x22, 0xa0, 0x35, 0x98, 0x20, 0x2d, 0x07, 0x3d, + 0xa7, 0x85, 0x8b, 0x40, 0xb1, 0x0b, 0x1c, 0x5b, 0x96, 0x57, 0xe7, 0x8f, 0x8f, 0xca, 0x17, 0xbb, + 0xe2, 0xa7, 0x46, 0x25, 0xc2, 0x46, 0x9f, 0xc3, 0x68, 0x1d, 0xfb, 0x2f, 0xb1, 0x5f, 0x9c, 0xa4, + 0x74, 0xce, 0x8b, 0x89, 0xa4, 0x85, 0x8d, 0xa5, 0xea, 0xec, 0xf1, 0x51, 0xb9, 0x10, 0xd0, 0x5f, + 0x1a, 0x0d, 0x8e, 0x46, 0x56, 0x9b, 0x8d, 0x5f, 0x62, 0x3f, 0xc0, 0xdb, 0xfd, 0x6e, 0x17, 0x77, + 0x8a, 0x53, 0xda, 0x6a, 0xd3, 0xea, 0xc4, 0x6a, 0xf3, 0x59, 0x61, 0x33, 0xa4, 0xa5, 0xfa, 0x6a, + 0xd3, 0x10, 0xd0, 0x01, 0x14, 0xd8, 0x5f, 0x35, 0xaf, 0xdb, 0xc5, 0x2d, 0xf2, 0x49, 0x15, 0xa7, + 0x69, 0x03, 0x97, 0x79, 0x03, 0xf1, 0xea, 0xc6, 0x52, 0xb5, 0x7c, 0x7c, 0x54, 0xbe, 0xc2, 0x68, + 0x37, 0x5b, 0xb2, 0x42, 0x6b, 0x26, 0x41, 0x95, 0x8c, 0xa3, 0xd2, 0x6a, 0xe1, 0x20, 0xb0, 0xf1, + 0xcf, 0xfa, 0x38, 0x08, 0x8b, 0x33, 0xda, 0x38, 0xb4, 0xba, 0xc6, 0x43, 0x36, 0x0e, 0x87, 0x16, + 0x36, 0x7d, 0x56, 0xaa, 0x8f, 0x43, 0x43, 0x40, 0x5b, 0x00, 0x95, 0x5e, 0xaf, 0x8e, 0x03, 0xb2, + 0x18, 0x8b, 0xe7, 0x29, 0xe9, 0x8b, 0x9c, 0xf4, 0x2e, 0xde, 0xe3, 0x15, 0x8d, 0xa5, 0xea, 0xe5, + 0xe3, 0xa3, 0xf2, 0x9c, 0xd3, 0xeb, 0x35, 0x03, 0x56, 0xa4, 0x11, 0x55, 0x68, 0x30, 0xbe, 0x1f, + 0x7a, 0x21, 0xe6, 0x4b, 0xb1, 0x58, 0x88, 0xf1, 0x5d, 0xa9, 0x13, 0xfd, 0xf5, 0x69, 0x61, 0x93, + 0x2f, 0xeb, 0x38, 0xdf, 0x15, 0x04, 0xf2, 0x2d, 0x2e, 0x3b, 0xa1, 0xb3, 0xe7, 0x04, 0x98, 0x2f, + 0x8f, 0x0b, 0xda, 0xb7, 0xa8, 0x57, 0x36, 0x1e, 0xb2, 0x6f, 0xb1, 0xcd, 0x4b, 0x9b, 0x86, 0xf5, + 0x12, 0xa3, 0x47, 0x38, 0x12, 0x0d, 0xbc, 0x88, 0x06, 0x70, 0xe4, 0x15, 0xde, 0x33, 0x73, 0x24, + 0x02, 0x45, 0xab, 0x30, 0xbe, 0x8b, 0xf7, 0x98, 0xe4, 0xb8, 0x48, 0xe9, 0x5d, 0x88, 0xe8, 0x31, + 0x99, 0xf1, 0x90, 0x7d, 0x15, 0x84, 0x5a, 0x52, 0x5a, 0x48, 0x6c, 0xf4, 0x5b, 0x39, 0x98, 0x17, + 0x5f, 0x38, 0x0e, 0x5f, 0x79, 0xfe, 0x0b, 0xb7, 0xbb, 0x5f, 0xf3, 0xba, 0xcf, 0xdd, 0xfd, 0xe2, + 0x2c, 0xa5, 0x7c, 0x2d, 0x26, 0x34, 0x62, 0x50, 0x8d, 0xa5, 0xea, 0xdb, 0xc7, 0x47, 0xe5, 0x1b, + 0x52, 0x80, 0xc8, 0x7a, 0xb2, 0x20, 0x9f, 0xbb, 0xfb, 0x5a, 0xc3, 0x69, 0x6d, 0xa1, 0xdf, 0xc8, + 0xc1, 0x25, 0x3e, 0x3a, 0x1b, 0xb7, 0x3c, 0xbf, 0x1d, 0x75, 0x63, 0x8e, 0x76, 0xa3, 0x2c, 0xbf, + 0x56, 0x13, 0x50, 0x63, 0xa9, 0x7a, 0xeb, 0xf8, 0xa8, 0x6c, 0x71, 0xc6, 0x35, 0x7d, 0x51, 0x6d, + 0xea, 0x44, 0x4a, 0x43, 0x64, 0x25, 0x10, 0xe1, 0xbf, 0xe5, 0xe3, 0xe7, 0xd8, 0xc7, 0xdd, 0x16, + 0x2e, 0x5e, 0xd2, 0x56, 0x82, 0x5e, 0x29, 0xa4, 0x32, 0xd9, 0x4a, 0x9a, 0x3d, 0x59, 0xac, 0xaf, + 0x04, 0x1d, 0x05, 0xfd, 0x0c, 0x10, 0x67, 0x40, 0xa5, 0xdf, 0x76, 0x43, 0x3e, 0xc0, 0x79, 0xda, + 0xca, 0x15, 0x9d, 0xcf, 0x0a, 0x40, 0x63, 0xa9, 0x6a, 0x1d, 0x1f, 0x95, 0x17, 0x05, 0x8b, 0x1d, + 0x52, 0x65, 0x1a, 0x98, 0x81, 0x38, 0x91, 0xbc, 0xeb, 0x5e, 0xeb, 0x45, 0xb1, 0xa8, 0x49, 0x5e, + 0x52, 0x24, 0x44, 0x76, 0xc7, 0x6b, 0xbd, 0xd0, 0x25, 0x2f, 0xa9, 0x45, 0x21, 0x5c, 0xe4, 0xb3, + 0x64, 0xe3, 0x20, 0xf4, 0x5d, 0x2a, 0x3b, 0x82, 0xe2, 0x65, 0x4a, 0x67, 0x41, 0xc8, 0xe0, 0x24, + 0x44, 0xe3, 0x5d, 0xd6, 0x5b, 0xbe, 0x10, 0x9a, 0xbe, 0x52, 0xa7, 0x35, 0x63, 0x22, 0x8f, 0xfe, + 0x3f, 0x98, 0xdb, 0x75, 0xbb, 0x6d, 0xef, 0x55, 0xb0, 0x8c, 0x83, 0x17, 0xa1, 0xd7, 0xab, 0x33, + 0xa5, 0xb0, 0x58, 0xa2, 0xed, 0x2e, 0x8a, 0x65, 0x6e, 0x82, 0x69, 0x3c, 0xac, 0xde, 0x3c, 0x3e, + 0x2a, 0x5f, 0x7f, 0xc5, 0x2a, 0x9b, 0x6d, 0x56, 0xdb, 0xe4, 0x7a, 0xa5, 0xd6, 0xb8, 0xb9, 0x15, + 0xb2, 0x04, 0xf4, 0x8a, 0xe2, 0x15, 0x6d, 0x09, 0xe8, 0x95, 0x42, 0x18, 0xc4, 0x1a, 0xd4, 0x97, + 0x80, 0x8e, 0x82, 0x1e, 0xc3, 0xb8, 0x10, 0x0f, 0xc5, 0x05, 0xed, 0xd3, 0x15, 0xc5, 0x8d, 0x87, + 0x4c, 0x03, 0x12, 0x22, 0x46, 0xff, 0x72, 0x05, 0x14, 0x5a, 0x87, 0x09, 0x2a, 0x23, 0xa9, 0xc8, + 0xba, 0x4a, 0x29, 0x21, 0xb1, 0x50, 0x45, 0x79, 0xe3, 0x61, 0xb5, 0x78, 0x7c, 0x54, 0x9e, 0x65, + 0x52, 0x36, 0x21, 0xa8, 0x22, 0x02, 0xe8, 0x21, 0x0c, 0x55, 0x7a, 0xbd, 0xe2, 0x22, 0xa5, 0x33, + 0x15, 0xd1, 0x69, 0x3c, 0xac, 0x5e, 0x38, 0x3e, 0x2a, 0x4f, 0x3b, 0x3d, 0x7d, 0x58, 0x04, 0x1a, + 0xed, 0x41, 0xa1, 0xde, 0xf5, 0x5e, 0x3d, 0xef, 0x38, 0x2f, 0xb0, 0x10, 0x6f, 0xe5, 0x74, 0xf1, + 0x46, 0x37, 0xab, 0x40, 0x20, 0x18, 0x85, 0x5c, 0x82, 0x1e, 0xd9, 0x16, 0x9f, 0xf6, 0xf7, 0xb0, + 0xdf, 0xc5, 0x21, 0x0e, 0xf8, 0x68, 0xaf, 0x69, 0xdb, 0x62, 0xbc, 0xba, 0xf1, 0x90, 0xb5, 0xf4, + 0x42, 0x96, 0x9b, 0xc6, 0x9e, 0xa0, 0x8a, 0x3a, 0x70, 0x21, 0x2a, 0x13, 0x5b, 0xcd, 0x75, 0xda, + 0x54, 0x29, 0xd1, 0x54, 0xb4, 0xdd, 0x5c, 0x3b, 0x3e, 0x2a, 0x2f, 0x28, 0x6d, 0x99, 0xb6, 0x9c, + 0x24, 0x61, 0xf4, 0x14, 0x26, 0xd6, 0xba, 0x41, 0xe8, 0x74, 0x3a, 0xd8, 0x2f, 0x5a, 0xda, 0xf4, + 0xc9, 0xf2, 0xc6, 0x03, 0x26, 0xc4, 0x5d, 0x51, 0xa0, 0xcf, 0x9e, 0x84, 0x43, 0x6d, 0x38, 0xaf, + 0xee, 0x39, 0xe4, 0x7b, 0xb9, 0x41, 0x49, 0x16, 0x0d, 0x9b, 0x18, 0xf9, 0x52, 0x1e, 0x54, 0x17, + 0x8f, 0x8f, 0xca, 0x25, 0x6d, 0x17, 0x8b, 0x7f, 0x22, 0x71, 0x92, 0xe8, 0x2f, 0x11, 0x19, 0x5d, + 0x79, 0xb6, 0xbe, 0xd6, 0xde, 0xe2, 0x45, 0x54, 0xe9, 0x24, 0xfa, 0xfc, 0x5b, 0xba, 0x8c, 0x36, + 0x02, 0x35, 0x1e, 0xb0, 0x9d, 0x22, 0x70, 0x0e, 0x3b, 0x4d, 0xb7, 0x2d, 0xbf, 0xcb, 0x66, 0x8f, + 0x03, 0xc4, 0x84, 0xb4, 0x91, 0x08, 0xfa, 0x31, 0xcc, 0xc8, 0x1a, 0xb6, 0xe2, 0x6e, 0xa6, 0xaf, + 0x38, 0x3a, 0x48, 0xa5, 0xbd, 0xe4, 0x82, 0x8b, 0x11, 0x23, 0x5f, 0x15, 0x51, 0x58, 0x1f, 0xfb, + 0x5e, 0xbf, 0x57, 0xbc, 0xa5, 0x4d, 0x8b, 0x2c, 0x6f, 0x3c, 0x60, 0x5f, 0x15, 0xd1, 0x75, 0x9b, + 0xfb, 0xa4, 0x44, 0x9f, 0x17, 0x09, 0x48, 0xf6, 0xe9, 0x9d, 0x35, 0x2e, 0xe5, 0xdf, 0xd6, 0x3e, + 0x76, 0x51, 0x2c, 0xa6, 0xb8, 0xef, 0x9a, 0x04, 0xba, 0xc4, 0x46, 0x0e, 0xcc, 0x6c, 0xbe, 0x08, + 0x9d, 0xb5, 0x43, 0x72, 0x6a, 0xb3, 0xfb, 0x1d, 0x5c, 0xbc, 0xad, 0x09, 0x26, 0xbd, 0x52, 0xcc, + 0xaf, 0xf7, 0x22, 0x74, 0x9a, 0x2e, 0x2d, 0x6e, 0xfa, 0xfd, 0x98, 0x82, 0x1d, 0x23, 0x48, 0x64, + 0x1f, 0x29, 0xa9, 0x04, 0x81, 0xbb, 0xdf, 0x3d, 0xc4, 0xdd, 0xb0, 0xf8, 0x4e, 0xa2, 0x89, 0xa8, + 0xb2, 0xf1, 0x80, 0xc9, 0x3e, 0xda, 0x84, 0x23, 0x8b, 0x93, 0x2d, 0x44, 0x28, 0xa8, 0x0e, 0x93, + 0x6b, 0xdd, 0x10, 0xef, 0xb3, 0x03, 0x63, 0xf1, 0x8e, 0x76, 0x28, 0x51, 0x6a, 0x1a, 0x0f, 0x98, + 0x2a, 0xe4, 0x46, 0x45, 0xfa, 0x99, 0x44, 0x81, 0xad, 0x02, 0x8c, 0x8b, 0x53, 0xe1, 0x93, 0xe1, + 0xf1, 0xb1, 0xc2, 0xb8, 0xb5, 0x0a, 0x23, 0xbb, 0x4e, 0xd8, 0x3a, 0x40, 0x9f, 0xc3, 0xc8, 0x53, + 0xb7, 0xdb, 0x0e, 0x8a, 0xb9, 0x6b, 0x43, 0xf4, 0xe0, 0xc0, 0x8e, 0xac, 0xb4, 0x92, 0x54, 0x54, + 0xe7, 0x7f, 0x7e, 0x54, 0x3e, 0x77, 0x7c, 0x54, 0x3e, 0xff, 0x82, 0x80, 0x29, 0xe7, 0x56, 0x86, + 0x67, 0xfd, 0xf3, 0x3c, 0x4c, 0x48, 0x68, 0xb4, 0x00, 0xc3, 0xe4, 0x7f, 0x7a, 0x00, 0x9e, 0xa8, + 0x8e, 0x1f, 0x1f, 0x95, 0x87, 0x09, 0x9e, 0x4d, 0x4b, 0xd1, 0x12, 0x4c, 0xae, 0x7b, 0x4e, 0xbb, + 0x8e, 0x5b, 0x3e, 0x0e, 0x03, 0x7a, 0xc2, 0x1d, 0xaf, 0x16, 0x8e, 0x8f, 0xca, 0x53, 0x1d, 0xcf, + 0x69, 0x37, 0x03, 0x56, 0x6e, 0xab, 0x40, 0x84, 0x22, 0x3d, 0x9e, 0x0d, 0x45, 0x14, 0xc9, 0x31, + 0xc6, 0xa6, 0xa5, 0xe8, 0x09, 0x8c, 0x3e, 0x72, 0x3b, 0x44, 0x0a, 0x0d, 0xd3, 0xfe, 0x2f, 0xc4, + 0xfb, 0x7f, 0x97, 0x55, 0xaf, 0x74, 0x43, 0xff, 0x35, 0x3b, 0xbd, 0x3c, 0xa7, 0x05, 0xca, 0x40, + 0x38, 0x05, 0x74, 0x1f, 0xc6, 0xea, 0xfd, 0x3d, 0xda, 0xfd, 0x11, 0xda, 0x18, 0xdd, 0x62, 0x82, + 0xfe, 0x5e, 0x93, 0x0c, 0x41, 0x41, 0x10, 0x60, 0xa5, 0x8f, 0x60, 0x52, 0x21, 0x8f, 0x0a, 0x30, + 0xf4, 0x02, 0xbf, 0x66, 0x63, 0xb7, 0xc9, 0x9f, 0x68, 0x16, 0x46, 0x5e, 0x3a, 0x9d, 0x3e, 0xa6, + 0x43, 0x9d, 0xb0, 0xd9, 0x8f, 0x8f, 0xf3, 0x1f, 0xe6, 0xac, 0x3f, 0x1a, 0x85, 0xc2, 0xaa, 0x17, + 0x84, 0xe4, 0x38, 0x2d, 0xcf, 0x05, 0x37, 0x60, 0x94, 0x94, 0xad, 0x2d, 0x73, 0xfe, 0x4d, 0x1e, + 0x1f, 0x95, 0xc7, 0x0e, 0xbc, 0x20, 0x6c, 0xba, 0x6d, 0x9b, 0x57, 0xa1, 0x77, 0x60, 0x7c, 0xc3, + 0x6b, 0x63, 0xca, 0x14, 0x4a, 0xb6, 0x3a, 0x7d, 0x7c, 0x54, 0x9e, 0xe8, 0x7a, 0x6d, 0x4c, 0x8f, + 0xa6, 0xb6, 0xac, 0x46, 0x0d, 0x7e, 0xa4, 0x64, 0xbc, 0xab, 0x12, 0xde, 0x91, 0x33, 0xe4, 0x2f, + 0x8f, 0xca, 0xef, 0xef, 0xbb, 0xe1, 0x41, 0x7f, 0xef, 0x6e, 0xcb, 0x3b, 0xbc, 0xb7, 0xef, 0x3b, + 0x2f, 0x5d, 0x66, 0xd1, 0x71, 0x3a, 0xf7, 0x22, 0xbb, 0x4f, 0xcf, 0xe5, 0xe6, 0x96, 0xfa, 0xeb, + 0x20, 0xc4, 0x87, 0x84, 0x12, 0x3f, 0x71, 0xee, 0xc2, 0x6c, 0xa5, 0xdd, 0x76, 0x19, 0xc6, 0x96, + 0xef, 0x76, 0x5b, 0x6e, 0xcf, 0xe9, 0x04, 0x74, 0x0e, 0x26, 0xaa, 0x37, 0x8e, 0x8f, 0xca, 0x65, + 0x47, 0xd6, 0x37, 0x7b, 0x12, 0x40, 0xe1, 0xa1, 0x91, 0x00, 0x7a, 0x08, 0xe3, 0xcb, 0x1b, 0x75, + 0x7a, 0x1e, 0x2d, 0x8e, 0x50, 0x62, 0xf4, 0xcb, 0x6f, 0x77, 0x03, 0x3a, 0x34, 0x95, 0x80, 0x04, + 0x44, 0xef, 0xc3, 0xd4, 0x56, 0x7f, 0xaf, 0xe3, 0xb6, 0xb6, 0xd7, 0xeb, 0x4f, 0xf1, 0x6b, 0x7a, + 0x90, 0x9f, 0x62, 0x7a, 0x5b, 0x8f, 0x96, 0x37, 0xc3, 0x4e, 0xd0, 0x7c, 0x81, 0x5f, 0xdb, 0x1a, + 0x5c, 0x84, 0x57, 0xaf, 0xaf, 0x12, 0xbc, 0xb1, 0x04, 0x5e, 0x10, 0x1c, 0xa8, 0x78, 0x0c, 0x0e, + 0xdd, 0x03, 0x60, 0xc7, 0xa3, 0x4a, 0xbb, 0xcd, 0xce, 0xf9, 0x13, 0xd5, 0xf3, 0xc7, 0x47, 0xe5, + 0x49, 0x7e, 0xa0, 0x72, 0xda, 0x6d, 0xdf, 0x56, 0x40, 0x50, 0x0d, 0xc6, 0x6d, 0x8f, 0x31, 0x98, + 0x9f, 0xee, 0xcf, 0xcb, 0xd3, 0x3d, 0x2b, 0xe6, 0xf6, 0x1c, 0xfe, 0x4b, 0x1d, 0xa5, 0x80, 0x40, + 0x65, 0x18, 0xdb, 0xf0, 0x6a, 0x4e, 0xeb, 0x80, 0x9d, 0xf1, 0xc7, 0xab, 0x23, 0xc7, 0x47, 0xe5, + 0xdc, 0x77, 0x6d, 0x51, 0x8a, 0x5e, 0xc2, 0x64, 0x34, 0x51, 0x41, 0x71, 0x92, 0xb2, 0x6f, 0xfb, + 0xf8, 0xa8, 0x7c, 0x29, 0xa0, 0xc5, 0x4d, 0x32, 0xf5, 0x0a, 0x07, 0xbf, 0xc1, 0x2a, 0x50, 0x1b, + 0x42, 0x1d, 0xb8, 0xba, 0x43, 0x76, 0xd9, 0xbd, 0x0e, 0x8e, 0x8a, 0x2b, 0x41, 0x80, 0x7d, 0x42, + 0x6b, 0x6d, 0x99, 0x9a, 0x00, 0x26, 0xf8, 0xd9, 0x23, 0xea, 0x09, 0x11, 0x88, 0x0c, 0xa4, 0xe9, + 0xaa, 0x1f, 0x57, 0x36, 0x31, 0xeb, 0x0f, 0xa6, 0xa1, 0x40, 0x36, 0x0f, 0xed, 0xbb, 0xf9, 0x0e, + 0x4c, 0xb0, 0x19, 0x7a, 0xca, 0x3f, 0xbf, 0xa9, 0xea, 0xcc, 0xf1, 0x51, 0x19, 0xf8, 0x34, 0x92, + 0x29, 0x8c, 0x00, 0xd0, 0x6d, 0x18, 0x27, 0x14, 0xba, 0xd1, 0x07, 0x34, 0x75, 0x7c, 0x54, 0x1e, + 0xef, 0xf3, 0x32, 0x5b, 0xd6, 0xa2, 0x3a, 0x8c, 0xad, 0x7c, 0xdd, 0x73, 0x7d, 0x1c, 0x70, 0xab, + 0x59, 0xe9, 0x2e, 0xb3, 0x9b, 0xde, 0x15, 0x76, 0xd3, 0xbb, 0xdb, 0xc2, 0x6e, 0x5a, 0xbd, 0xca, + 0x05, 0xe5, 0x05, 0xcc, 0x50, 0xa2, 0x31, 0xfd, 0xce, 0x7f, 0x2b, 0xe7, 0x6c, 0x41, 0x09, 0x7d, + 0x07, 0x46, 0x1f, 0x79, 0xfe, 0xa1, 0x13, 0x52, 0x63, 0xd9, 0x04, 0x17, 0x4a, 0xb4, 0x44, 0x13, + 0x4a, 0xb4, 0x04, 0x3d, 0x82, 0x19, 0xdb, 0xeb, 0x87, 0x78, 0xdb, 0x13, 0xea, 0x16, 0x93, 0x4d, + 0x74, 0xef, 0xf2, 0x49, 0x4d, 0x33, 0xf4, 0x92, 0x0a, 0x95, 0x1d, 0xc3, 0x42, 0x2b, 0x30, 0xa3, + 0xd9, 0x20, 0x82, 0xe2, 0x28, 0x5d, 0x20, 0xec, 0x7c, 0xa6, 0x59, 0x2e, 0xd4, 0xaf, 0x2c, 0x86, + 0x84, 0x36, 0x4c, 0x0a, 0xe0, 0x18, 0xed, 0xd1, 0x40, 0x25, 0xcf, 0xa4, 0xe2, 0x61, 0x38, 0xcf, + 0x3b, 0x2a, 0x35, 0xfe, 0x71, 0x6e, 0xb9, 0x60, 0x82, 0x3c, 0x56, 0x5b, 0xbd, 0xc1, 0xb9, 0x7c, + 0x45, 0x8e, 0x3d, 0x79, 0x06, 0xb0, 0xe3, 0x34, 0x89, 0x5c, 0x91, 0x32, 0x73, 0x82, 0xf6, 0x96, + 0xd9, 0xc3, 0x84, 0xcc, 0x54, 0xbf, 0x38, 0x29, 0x3d, 0xd7, 0x61, 0x64, 0x27, 0x70, 0xf6, 0xd9, + 0xf7, 0x36, 0xb3, 0x74, 0x9d, 0xf7, 0x28, 0xbe, 0xfa, 0xa8, 0x09, 0x95, 0x02, 0x56, 0x2f, 0x92, + 0x7d, 0x92, 0xda, 0x87, 0xd5, 0x7d, 0x92, 0xd6, 0xa1, 0x2f, 0x00, 0x78, 0xaf, 0xc8, 0x21, 0x62, + 0x92, 0x6b, 0x3a, 0xda, 0x20, 0x2b, 0xbd, 0x5e, 0x75, 0x91, 0x8f, 0xef, 0x92, 0x1c, 0x9f, 0x76, + 0xac, 0xb0, 0x15, 0x22, 0xe8, 0x73, 0x98, 0xa2, 0x9f, 0xa3, 0x98, 0xd1, 0x29, 0x3a, 0xa3, 0xd4, + 0xca, 0x4a, 0xbf, 0x30, 0xc3, 0x7c, 0x6a, 0x08, 0xe8, 0xff, 0x87, 0x39, 0x4e, 0x2e, 0x76, 0xa2, + 0x9b, 0xe6, 0x27, 0x58, 0xad, 0x7b, 0x3a, 0x4c, 0xf5, 0x0e, 0xef, 0xa9, 0x25, 0x7b, 0x9a, 0x7a, + 0xc6, 0xb3, 0xcd, 0xcd, 0xa0, 0x35, 0x38, 0xbf, 0x13, 0x60, 0x6d, 0x0c, 0x33, 0x54, 0xb6, 0xd1, + 0xc3, 0x49, 0x3f, 0xc0, 0xcd, 0xb4, 0x71, 0xc4, 0xf1, 0x90, 0x0d, 0x68, 0xd9, 0xf7, 0x7a, 0xb1, + 0x35, 0x7e, 0x9e, 0x72, 0x84, 0x9e, 0xb5, 0xdb, 0xbe, 0xd7, 0x6b, 0xa6, 0x2f, 0x74, 0x03, 0x36, + 0xfa, 0x09, 0x5c, 0x8a, 0x4c, 0x82, 0xcb, 0xae, 0xb3, 0xdf, 0xf5, 0x82, 0xd0, 0x6d, 0xad, 0x2d, + 0x53, 0xeb, 0x1a, 0x17, 0x69, 0x91, 0x49, 0xb1, 0xd9, 0x96, 0x20, 0xba, 0x48, 0x4b, 0xa1, 0x82, + 0x7e, 0x04, 0xd3, 0xbc, 0x2d, 0x6e, 0x82, 0xbe, 0x90, 0xbd, 0xd0, 0x24, 0x30, 0x37, 0x07, 0x8b, + 0x9f, 0x6c, 0xdb, 0xd7, 0x69, 0xa1, 0xaf, 0x60, 0xf2, 0xd9, 0xa3, 0x8a, 0x8d, 0x83, 0x9e, 0xd7, + 0x0d, 0x30, 0x37, 0xa9, 0x2d, 0x72, 0xd2, 0xcf, 0x1e, 0x55, 0x2a, 0xfd, 0xf0, 0x00, 0x77, 0x43, + 0xb7, 0xe5, 0x84, 0x58, 0x40, 0x31, 0x3b, 0xf7, 0xe1, 0x73, 0xa7, 0xe9, 0xf3, 0x12, 0x65, 0x14, + 0x2a, 0x39, 0x54, 0x82, 0xf1, 0x7a, 0x7d, 0x75, 0xdd, 0xdb, 0x77, 0x99, 0x75, 0x6d, 0xc2, 0x96, + 0xbf, 0xd1, 0x1e, 0xcc, 0x29, 0x97, 0x44, 0x4d, 0xf2, 0x3f, 0xa6, 0xba, 0x32, 0x33, 0x96, 0x7d, + 0x57, 0xde, 0x72, 0xdd, 0x55, 0xef, 0x92, 0x5e, 0x3e, 0xb8, 0x5b, 0x89, 0x7e, 0xd6, 0x05, 0x92, + 0x3d, 0xeb, 0x18, 0x4a, 0xad, 0x2f, 0x61, 0x42, 0x7e, 0x76, 0x68, 0x0c, 0x86, 0x2a, 0x9d, 0x4e, + 0xe1, 0x1c, 0xf9, 0xa3, 0x5e, 0x5f, 0x2d, 0xe4, 0xd0, 0x0c, 0x40, 0x24, 0x6b, 0x0a, 0x79, 0x34, + 0x15, 0x59, 0x14, 0x0a, 0x43, 0x14, 0xbe, 0xd7, 0x2b, 0x0c, 0x23, 0x14, 0x37, 0x65, 0x14, 0x46, + 0xac, 0x4f, 0x60, 0x42, 0x32, 0x12, 0x9d, 0x87, 0xc9, 0x9d, 0x8d, 0xfa, 0xd6, 0x4a, 0x6d, 0xed, + 0xd1, 0xda, 0xca, 0x72, 0xe1, 0x1c, 0xba, 0x0a, 0x97, 0xb7, 0xeb, 0xab, 0xcd, 0xe5, 0x6a, 0x73, + 0x7d, 0xb3, 0x56, 0x59, 0x6f, 0x6e, 0xd9, 0x9b, 0x5f, 0xfe, 0xa0, 0xb9, 0xbd, 0xb3, 0xb1, 0xb1, + 0xb2, 0x5e, 0xc8, 0x59, 0xff, 0x39, 0x97, 0x90, 0x67, 0x44, 0xe9, 0xe5, 0x07, 0x34, 0x3a, 0xc7, + 0x4c, 0xb3, 0xa3, 0x4a, 0xaf, 0x38, 0xdc, 0xd1, 0xe9, 0x53, 0x81, 0xc8, 0x16, 0xb5, 0x45, 0x26, + 0xaa, 0xe5, 0x75, 0xd4, 0x2d, 0xaa, 0xc7, 0xcb, 0x6c, 0x59, 0x8b, 0x96, 0x94, 0xcd, 0x6c, 0x28, + 0xd2, 0x5a, 0xc5, 0x66, 0xa6, 0x0a, 0x36, 0xb9, 0xad, 0x2d, 0x29, 0xf6, 0x95, 0xe1, 0x08, 0xc7, + 0x20, 0x48, 0x25, 0x9c, 0xd5, 0x4f, 0x11, 0x15, 0xe8, 0x93, 0x84, 0x39, 0x88, 0x8d, 0x90, 0xca, + 0xc2, 0x98, 0x44, 0x48, 0x58, 0x7a, 0xca, 0x30, 0xc2, 0xd6, 0x10, 0x1b, 0xe4, 0xc4, 0xf1, 0x51, + 0x79, 0xa4, 0x43, 0x0a, 0x6c, 0x56, 0x6e, 0xfd, 0xcd, 0x21, 0x55, 0x6c, 0xca, 0xc3, 0x40, 0xce, + 0x78, 0x18, 0xf8, 0x0e, 0x4c, 0xf0, 0x33, 0xea, 0xda, 0x32, 0xa7, 0x48, 0xd5, 0x00, 0x61, 0xf1, + 0x74, 0xdb, 0x76, 0x04, 0x40, 0xd4, 0x38, 0xa6, 0x13, 0x50, 0x35, 0x6e, 0x28, 0x52, 0xe3, 0xb8, + 0xd6, 0xc0, 0xd4, 0xb8, 0x08, 0x84, 0x4c, 0xa4, 0x7a, 0x5f, 0x34, 0x1c, 0x4d, 0xa4, 0x7a, 0x33, + 0xa4, 0xdf, 0x06, 0x7d, 0x0c, 0x50, 0xd9, 0xad, 0x53, 0x25, 0xc6, 0xde, 0xe0, 0x5b, 0x37, 0xfd, + 0xc8, 0x9c, 0x57, 0x01, 0x57, 0x83, 0x7c, 0x55, 0xdf, 0x53, 0xa0, 0x51, 0x15, 0xa6, 0x2b, 0xbf, + 0xde, 0xf7, 0xf1, 0x5a, 0x9b, 0x7c, 0xa7, 0x21, 0x53, 0x6c, 0x27, 0xf8, 0x5d, 0x03, 0xa9, 0x68, + 0xba, 0xbc, 0x46, 0x21, 0xa0, 0xa3, 0xa0, 0x4d, 0xb8, 0xf0, 0xb8, 0x26, 0x0c, 0x04, 0x95, 0x56, + 0xcb, 0xeb, 0x77, 0x43, 0xbe, 0x5f, 0x5f, 0x3f, 0x3e, 0x2a, 0x5f, 0xdd, 0x6f, 0x45, 0x36, 0x06, + 0x87, 0x55, 0xab, 0x1b, 0x76, 0x02, 0xd7, 0xea, 0xc0, 0xcc, 0x63, 0x1c, 0x92, 0xa5, 0x24, 0x94, + 0xaf, 0xec, 0x39, 0xf9, 0x14, 0x26, 0x77, 0xdd, 0xf0, 0x40, 0x3f, 0xf2, 0x51, 0x0e, 0xbc, 0x72, + 0xc3, 0x03, 0x71, 0xe4, 0x53, 0xc5, 0x8c, 0x02, 0x6e, 0xad, 0xc0, 0x79, 0xde, 0x9a, 0xd4, 0xf5, + 0x96, 0x74, 0x82, 0xb9, 0xe8, 0x0c, 0xa9, 0x12, 0xd4, 0xc9, 0xfc, 0x51, 0x1e, 0xe6, 0x6a, 0x07, + 0x4e, 0x77, 0x1f, 0x6f, 0x39, 0x41, 0xf0, 0xca, 0xf3, 0xdb, 0x4a, 0xe7, 0xe9, 0x6d, 0x5d, 0xa2, + 0xf3, 0xf4, 0x4a, 0x6e, 0x09, 0x26, 0x37, 0x3b, 0x6d, 0x81, 0x43, 0x3b, 0x3f, 0xc5, 0xda, 0xf2, + 0x3a, 0xed, 0x66, 0x4f, 0xd0, 0x52, 0x81, 0x08, 0xce, 0x06, 0x7e, 0x25, 0x71, 0x86, 0x22, 0x9c, + 0x2e, 0x7e, 0xa5, 0xe0, 0x28, 0x40, 0x68, 0x05, 0x2e, 0xd4, 0x71, 0xcb, 0xeb, 0xb6, 0x1f, 0x39, + 0xad, 0xd0, 0xf3, 0xd9, 0xa5, 0xc5, 0x70, 0xa4, 0xa7, 0x04, 0xb4, 0xb2, 0xf9, 0x9c, 0xd6, 0xb2, + 0xbb, 0x0a, 0x3b, 0x89, 0x81, 0x36, 0xe9, 0x95, 0x07, 0xbd, 0xf3, 0xe6, 0x97, 0xa5, 0x37, 0xef, + 0xca, 0x4b, 0xf0, 0x9a, 0x8f, 0xe9, 0xa2, 0x70, 0x3a, 0x52, 0x9d, 0x96, 0x62, 0x9f, 0x0a, 0x17, + 0x01, 0x69, 0x4b, 0x22, 0x16, 0x8e, 0x2b, 0x8d, 0xa8, 0x9e, 0x50, 0x23, 0x99, 0xdd, 0x20, 0xed, + 0x62, 0x8c, 0x4a, 0x81, 0xd8, 0xae, 0x1b, 0x57, 0x2a, 0xad, 0x1d, 0x98, 0xde, 0xea, 0xf4, 0xf7, + 0xdd, 0x2e, 0x91, 0x36, 0x75, 0xfc, 0x33, 0xb4, 0x0c, 0x10, 0x15, 0xf0, 0x16, 0x84, 0xf1, 0x2a, + 0xaa, 0x68, 0x3c, 0xe4, 0xdf, 0x2b, 0x2d, 0xa1, 0x7a, 0xa0, 0xad, 0xe0, 0x59, 0x7f, 0x75, 0x08, + 0x10, 0x6f, 0x83, 0x6e, 0x1c, 0x75, 0x1c, 0x12, 0x99, 0x7e, 0x09, 0xf2, 0xf2, 0x80, 0x3d, 0x7a, + 0x7c, 0x54, 0xce, 0xbb, 0x6d, 0x3b, 0xbf, 0xb6, 0x8c, 0xde, 0x85, 0x11, 0x0a, 0x46, 0xa7, 0x79, + 0x46, 0xb6, 0xa7, 0x52, 0x60, 0x02, 0x8a, 0x6e, 0x68, 0x36, 0x03, 0x46, 0xef, 0xc1, 0xc4, 0x32, + 0xee, 0xe0, 0x7d, 0x27, 0xf4, 0x84, 0x10, 0x61, 0x47, 0x56, 0x51, 0xa8, 0x2c, 0xed, 0x08, 0x92, + 0x1c, 0x02, 0x6c, 0xec, 0x04, 0x5e, 0x57, 0x3d, 0x04, 0xf8, 0xb4, 0x44, 0x3d, 0x04, 0x30, 0x18, + 0xf4, 0x7b, 0x39, 0x98, 0xac, 0x74, 0xbb, 0xfc, 0x28, 0x18, 0xf0, 0xc9, 0x9d, 0xbb, 0x2b, 0x5d, + 0x16, 0xd6, 0x9d, 0x3d, 0xdc, 0x69, 0x38, 0x9d, 0x3e, 0x0e, 0xaa, 0x5f, 0x11, 0xbd, 0xec, 0xbf, + 0x1c, 0x95, 0x3f, 0x39, 0xc5, 0xe1, 0x2e, 0x72, 0x7e, 0xd8, 0xf6, 0x1d, 0x37, 0x0c, 0xe8, 0xb5, + 0x63, 0xd4, 0xa0, 0xfa, 0x79, 0x2a, 0xfd, 0x40, 0xef, 0xc0, 0x08, 0x3b, 0x6c, 0xb2, 0xb3, 0x04, + 0x9d, 0xec, 0xd8, 0x29, 0xd3, 0x66, 0x10, 0xd6, 0x0d, 0xb9, 0xad, 0xae, 0x2d, 0xa7, 0x4d, 0x81, + 0x55, 0x83, 0x85, 0xc7, 0x38, 0xb4, 0x71, 0x80, 0x43, 0xf1, 0x6d, 0xd0, 0x95, 0x1d, 0xd9, 0x47, + 0xc6, 0xe8, 0x6f, 0x89, 0x4c, 0xe7, 0x83, 0x7d, 0x0f, 0xa2, 0xc6, 0xfa, 0xcb, 0x39, 0x28, 0xd7, + 0x7c, 0xcc, 0xd4, 0x9a, 0x14, 0x42, 0xd9, 0x32, 0x6b, 0x81, 0x7b, 0x71, 0xe4, 0xa3, 0x5a, 0xc2, + 0x25, 0xee, 0xa9, 0x71, 0x13, 0x86, 0xb6, 0xb7, 0xd7, 0xe9, 0x5c, 0x0f, 0xd1, 0x21, 0x0f, 0x85, + 0x61, 0xe7, 0x97, 0x47, 0xe5, 0xf1, 0xe5, 0x3e, 0x33, 0xb7, 0xd9, 0xa4, 0xde, 0x7a, 0x0e, 0x73, + 0x36, 0xee, 0xe2, 0x57, 0xe4, 0x28, 0xab, 0x1d, 0x56, 0xcb, 0x30, 0xc2, 0x3e, 0xf0, 0xc4, 0x10, + 0x58, 0xb9, 0x7e, 0x9a, 0xcd, 0x0f, 0x38, 0xcd, 0x5a, 0xff, 0x28, 0x0f, 0x05, 0x36, 0xdc, 0xaa, + 0x17, 0x9e, 0x6c, 0x7c, 0x7c, 0x04, 0xf9, 0xec, 0x11, 0xa0, 0x5b, 0x11, 0xb7, 0x87, 0x22, 0x1d, + 0x84, 0x76, 0x95, 0x6c, 0xa5, 0xa2, 0x92, 0x0c, 0x88, 0xad, 0x02, 0x66, 0xfe, 0xa1, 0x03, 0xa2, + 0xab, 0x80, 0xcf, 0x3d, 0xfa, 0xed, 0x1c, 0x8c, 0xb2, 0x75, 0x95, 0xbd, 0x72, 0x77, 0xcf, 0x66, + 0xe5, 0x16, 0x42, 0xfa, 0x97, 0xfa, 0x1d, 0xb1, 0x3a, 0xeb, 0x9f, 0xe4, 0xe1, 0x82, 0xc2, 0x2b, + 0xae, 0xcb, 0xbe, 0xc3, 0x54, 0x28, 0x85, 0x61, 0xd4, 0xa0, 0x46, 0x4d, 0xd7, 0x91, 0x41, 0x80, + 0x72, 0xee, 0x1d, 0x18, 0x27, 0x43, 0x8a, 0xdb, 0xde, 0xe8, 0x46, 0xce, 0x40, 0x45, 0xf5, 0x89, + 0xb9, 0x77, 0x0f, 0xc6, 0xe9, 0x9f, 0x64, 0x46, 0x86, 0xd3, 0x67, 0x44, 0x02, 0x21, 0x17, 0xe0, + 0x89, 0xe7, 0x76, 0x9f, 0xe1, 0xf0, 0xc0, 0x13, 0x96, 0xca, 0x35, 0x22, 0x07, 0xff, 0x1f, 0xcf, + 0xed, 0x36, 0x0f, 0x69, 0xf1, 0x69, 0x6d, 0x3b, 0x11, 0x41, 0x5b, 0x21, 0x6e, 0xdd, 0x87, 0x02, + 0x11, 0x59, 0x27, 0x5f, 0x5a, 0xd6, 0x2c, 0xa0, 0xc7, 0x38, 0xac, 0x7a, 0xda, 0x9e, 0x6d, 0x4d, + 0xc3, 0xe4, 0x96, 0xdb, 0xdd, 0x17, 0x3f, 0xff, 0x70, 0x08, 0xa6, 0xd8, 0x6f, 0x3e, 0x03, 0x31, + 0xcd, 0x2a, 0x77, 0x12, 0xcd, 0xea, 0x43, 0x98, 0xe6, 0x77, 0x59, 0xd8, 0xa7, 0x77, 0x1c, 0x6c, + 0x3e, 0xe8, 0xc9, 0x88, 0xdd, 0x65, 0x35, 0x5f, 0xb2, 0x1a, 0x5b, 0x07, 0x44, 0xeb, 0x30, 0xc3, + 0x0a, 0x1e, 0x61, 0x27, 0xec, 0x47, 0xc6, 0x9d, 0xf3, 0xfc, 0x70, 0x24, 0x8a, 0x99, 0x3c, 0xe3, + 0xb4, 0x9e, 0xf3, 0x42, 0x3b, 0x86, 0x8b, 0x3e, 0x87, 0xf3, 0x5b, 0xbe, 0xf7, 0xf5, 0x6b, 0x45, + 0x97, 0x64, 0x22, 0x7d, 0xee, 0xf8, 0xa8, 0x7c, 0xa1, 0x47, 0xaa, 0x9a, 0xaa, 0x46, 0x19, 0x87, + 0x26, 0x6b, 0x6a, 0x2d, 0xa8, 0x7a, 0xbe, 0xdb, 0xdd, 0xa7, 0xb3, 0x39, 0xce, 0xd6, 0x94, 0x1b, + 0x34, 0xf7, 0x68, 0xa1, 0x2d, 0xab, 0x63, 0x96, 0xc7, 0xb1, 0xc1, 0x96, 0xc7, 0xfb, 0x00, 0xeb, + 0x9e, 0xd3, 0xae, 0x74, 0x3a, 0xb5, 0x4a, 0x40, 0x2d, 0x2b, 0xaa, 0xbd, 0xdd, 0xe9, 0x74, 0x9a, + 0x2d, 0x27, 0xb0, 0x15, 0x98, 0x27, 0xc3, 0xe3, 0xa3, 0x85, 0x31, 0xfb, 0xfc, 0xba, 0xdb, 0xc2, + 0xdd, 0x00, 0xef, 0x3a, 0x7e, 0xd7, 0xed, 0xee, 0x07, 0xd6, 0x7f, 0x1d, 0x86, 0x71, 0x39, 0xe4, + 0xbb, 0xea, 0xe9, 0x8a, 0x6b, 0x60, 0x54, 0x42, 0x45, 0xd6, 0x1f, 0x5b, 0x81, 0x40, 0x97, 0xd9, + 0xc5, 0x29, 0xd3, 0xfd, 0xc6, 0xc8, 0xea, 0x76, 0x7a, 0x3d, 0x76, 0x3d, 0x7a, 0x09, 0xf2, 0xcb, + 0x55, 0xca, 0xff, 0x71, 0xb6, 0x13, 0xb4, 0xf7, 0xec, 0xfc, 0x72, 0x95, 0xac, 0xb2, 0xcd, 0xb5, + 0xe5, 0x1a, 0x65, 0xe5, 0x38, 0x5b, 0x65, 0x9e, 0xdb, 0x6e, 0xd9, 0xb4, 0x94, 0xd4, 0xd6, 0x2b, + 0xcf, 0xd6, 0x39, 0xbb, 0x68, 0x6d, 0xe0, 0x1c, 0x76, 0x6c, 0x5a, 0x4a, 0x4e, 0x24, 0x4c, 0xc1, + 0xa8, 0x79, 0xdd, 0xd0, 0xf7, 0x3a, 0x01, 0x55, 0x9c, 0xc7, 0x35, 0x5d, 0xa4, 0xc5, 0xab, 0xec, + 0x18, 0x28, 0xda, 0x85, 0xf9, 0x4a, 0xfb, 0xa5, 0xd3, 0x6d, 0xe1, 0x36, 0xab, 0xd9, 0xf5, 0xfc, + 0x17, 0xcf, 0x3b, 0xde, 0xab, 0x80, 0xf2, 0x7b, 0x9c, 0x1b, 0xcc, 0x38, 0x88, 0x30, 0x28, 0xbc, + 0x12, 0x40, 0x76, 0x1a, 0x36, 0x91, 0x92, 0xb5, 0x8e, 0xd7, 0x6f, 0xf3, 0x59, 0xa0, 0x52, 0xb2, + 0x45, 0x0a, 0x6c, 0x56, 0x4e, 0xb8, 0xb4, 0x5a, 0x7f, 0x46, 0xcd, 0x53, 0x9c, 0x4b, 0x07, 0xc1, + 0xa1, 0x4d, 0xca, 0xd0, 0x4d, 0x18, 0x13, 0x87, 0x2b, 0x66, 0xfb, 0xa5, 0x17, 0x03, 0xe2, 0x50, + 0x25, 0xea, 0xc8, 0x27, 0x61, 0xe3, 0x96, 0xf7, 0x12, 0xfb, 0xaf, 0x6b, 0x5e, 0x1b, 0x0b, 0x63, + 0x0a, 0x37, 0x16, 0xb0, 0x8a, 0x66, 0x8b, 0xd4, 0xd8, 0x3a, 0x20, 0x69, 0x80, 0x29, 0x4e, 0x01, + 0xf5, 0x46, 0xe2, 0x0d, 0x30, 0xc5, 0x2a, 0xb0, 0x45, 0x1d, 0x5a, 0x86, 0x0b, 0x95, 0x7e, 0xe8, + 0x1d, 0x3a, 0xa1, 0xdb, 0xda, 0xe9, 0xed, 0xfb, 0x0e, 0x69, 0xa4, 0x40, 0x11, 0xe8, 0x09, 0xd2, + 0x11, 0x95, 0xcd, 0x3e, 0xaf, 0xb5, 0x93, 0x08, 0x4f, 0x86, 0xc7, 0x27, 0x0b, 0x53, 0x4f, 0x86, + 0xc7, 0xa7, 0x0a, 0xd3, 0x4f, 0x86, 0xc7, 0xa7, 0x0b, 0x33, 0xd6, 0x03, 0xb8, 0xc0, 0xe4, 0xcc, + 0x89, 0xcf, 0x15, 0xd6, 0x16, 0x40, 0x1d, 0x1f, 0x3a, 0xbd, 0x03, 0x8f, 0xac, 0xc8, 0xaa, 0xfa, + 0x8b, 0x2b, 0x8c, 0x48, 0x7a, 0xc3, 0xf0, 0x8a, 0xc6, 0x43, 0x71, 0x1c, 0x14, 0x90, 0xb6, 0x82, + 0x65, 0xfd, 0x69, 0x1e, 0x10, 0xf5, 0x0a, 0xa9, 0x87, 0x3e, 0x76, 0x0e, 0x45, 0x37, 0x3e, 0x82, + 0x29, 0xb6, 0x65, 0xb0, 0x62, 0xda, 0x1d, 0xa2, 0x8d, 0x32, 0x59, 0xa1, 0x56, 0xad, 0x9e, 0xb3, + 0x35, 0x50, 0x82, 0x6a, 0xe3, 0xa0, 0x7f, 0x28, 0x50, 0xf3, 0x1a, 0xaa, 0x5a, 0x45, 0x50, 0xd5, + 0xdf, 0xe8, 0x73, 0x98, 0xa9, 0x79, 0x87, 0x3d, 0xc2, 0x13, 0x8e, 0x3c, 0xc4, 0x77, 0x4e, 0xde, + 0xae, 0x56, 0xb9, 0x7a, 0xce, 0x8e, 0x81, 0xa3, 0x0d, 0xb8, 0xf8, 0xa8, 0xd3, 0x0f, 0x0e, 0x2a, + 0xdd, 0x76, 0xad, 0xe3, 0x05, 0x82, 0xca, 0x30, 0x37, 0x63, 0x73, 0x49, 0x97, 0x84, 0x58, 0x3d, + 0x67, 0x9b, 0x10, 0xd1, 0x4d, 0xee, 0xe2, 0xca, 0x77, 0xf0, 0xe9, 0xbb, 0xdc, 0x03, 0x76, 0xb3, + 0x8b, 0x37, 0x9f, 0xaf, 0x9e, 0xb3, 0x59, 0x6d, 0x75, 0x02, 0xc6, 0x84, 0x94, 0xbf, 0x47, 0x16, + 0x8b, 0x64, 0x27, 0xd1, 0x96, 0xfb, 0x01, 0x2a, 0xc1, 0xf8, 0x4e, 0x8f, 0x08, 0x1f, 0xa1, 0xc2, + 0xd9, 0xf2, 0xb7, 0xf5, 0x1d, 0x9d, 0xd3, 0x68, 0x41, 0x3d, 0xce, 0x33, 0xe0, 0xa8, 0xc0, 0x5a, + 0xd5, 0x99, 0x9b, 0x0d, 0xad, 0xb5, 0x9b, 0x8f, 0xb5, 0x5b, 0x88, 0xf3, 0xda, 0x9a, 0x33, 0x32, + 0xcf, 0xfa, 0x12, 0x16, 0x77, 0x7a, 0xe4, 0xec, 0x54, 0xe9, 0xf5, 0x3a, 0x6e, 0x8b, 0x99, 0xa4, + 0xe8, 0x6e, 0x20, 0x16, 0xcb, 0xfb, 0xd2, 0x7f, 0x32, 0x97, 0xea, 0x6d, 0x02, 0xc7, 0x47, 0xe5, + 0x51, 0xb6, 0xab, 0x08, 0xb7, 0x49, 0xeb, 0x77, 0x72, 0xb0, 0xc8, 0xbe, 0x80, 0x54, 0xd2, 0xbf, + 0xa6, 0x7a, 0x79, 0x2a, 0x6a, 0x8a, 0xf4, 0xe9, 0x54, 0xfd, 0x38, 0xa3, 0x8b, 0xc4, 0x7c, 0xfa, + 0x45, 0x62, 0xe6, 0xcd, 0xaa, 0xf5, 0x05, 0x58, 0xbc, 0x47, 0x9d, 0x4e, 0xa2, 0x53, 0xc1, 0x9b, + 0xf4, 0xca, 0xfa, 0x1f, 0x79, 0x98, 0x7f, 0x8c, 0xbb, 0xd8, 0x77, 0xe8, 0x38, 0x35, 0x8d, 0x5c, + 0xbd, 0x94, 0xc9, 0x65, 0x5e, 0xca, 0x48, 0x75, 0x33, 0x9f, 0xa2, 0x6e, 0x5e, 0x86, 0xa1, 0x1d, + 0x7b, 0x8d, 0x0f, 0x8b, 0x0a, 0xd2, 0xbe, 0xef, 0xda, 0xa4, 0x0c, 0xad, 0x45, 0x17, 0x3a, 0xc3, + 0x03, 0x2f, 0x74, 0x2e, 0x72, 0x03, 0xf7, 0x18, 0xbf, 0xd0, 0xd1, 0xaf, 0x71, 0x36, 0x14, 0x9d, + 0x96, 0x88, 0x9b, 0x3b, 0xfc, 0x9b, 0x4a, 0x19, 0x20, 0x57, 0x4f, 0xd9, 0x3d, 0x34, 0x5d, 0x02, + 0x4c, 0x4b, 0x15, 0xba, 0x69, 0xe9, 0x0b, 0x98, 0x54, 0x40, 0x0c, 0x77, 0xc9, 0xdf, 0x51, 0xef, + 0x92, 0xc9, 0x89, 0x5b, 0x6a, 0xbe, 0xf5, 0x90, 0x68, 0x07, 0x4c, 0x89, 0x56, 0xef, 0x98, 0x3f, + 0x81, 0x62, 0xb2, 0x37, 0x5c, 0xe5, 0x1a, 0x74, 0x0a, 0xb1, 0x96, 0x61, 0xf6, 0x31, 0x0e, 0x23, + 0x17, 0x53, 0xe5, 0xae, 0x2d, 0xf6, 0x9d, 0x65, 0x18, 0xd9, 0xac, 0x3a, 0xcc, 0xc5, 0xa8, 0xf0, + 0xf6, 0x3f, 0x86, 0x31, 0xe1, 0x9c, 0x92, 0x4b, 0x77, 0x4e, 0xa1, 0xeb, 0x96, 0x53, 0xb6, 0x05, + 0x82, 0xb5, 0x0b, 0x97, 0x34, 0xa2, 0x81, 0xa4, 0xfa, 0x3d, 0x18, 0x17, 0x65, 0x31, 0xb3, 0x81, + 0x46, 0x96, 0x2e, 0xad, 0x40, 0x20, 0x4b, 0x14, 0xeb, 0x00, 0x2e, 0xad, 0xbb, 0x81, 0x4e, 0x99, + 0x8d, 0xfa, 0x0a, 0x4c, 0xf4, 0x9c, 0x7d, 0xdc, 0x0c, 0xdc, 0x5f, 0x67, 0xeb, 0x73, 0xc4, 0x1e, + 0x27, 0x05, 0x75, 0xf7, 0xd7, 0x31, 0xba, 0x0a, 0x40, 0x2b, 0x29, 0xff, 0xb8, 0x78, 0xa1, 0xe0, + 0xec, 0x3c, 0x87, 0x60, 0x98, 0x2c, 0x63, 0xb6, 0x20, 0x6d, 0xfa, 0xb7, 0xe5, 0xc3, 0x7c, 0xa2, + 0x25, 0x3e, 0x86, 0x7b, 0x20, 0xbb, 0x96, 0x31, 0x06, 0x5b, 0x02, 0xa1, 0x5b, 0x70, 0xbe, 0x8b, + 0xbf, 0x0e, 0x9b, 0x89, 0x3e, 0x4c, 0x93, 0xe2, 0x2d, 0xd1, 0x0f, 0xeb, 0xc7, 0xf4, 0x74, 0x1d, + 0xf7, 0x1e, 0x3b, 0x33, 0xe6, 0x75, 0xa0, 0x44, 0x86, 0xa4, 0x3b, 0x0b, 0xfd, 0xca, 0x18, 0xf8, + 0x12, 0xae, 0x18, 0x5b, 0xfb, 0x55, 0x33, 0xf1, 0xcf, 0xf3, 0x30, 0xcf, 0x76, 0xa9, 0xe4, 0xa7, + 0x71, 0x72, 0x19, 0xf6, 0xad, 0xd8, 0x9e, 0xef, 0x1b, 0x6c, 0xcf, 0x14, 0x45, 0xb5, 0x3d, 0x6b, + 0x16, 0xe7, 0x0f, 0xcd, 0x16, 0x67, 0xaa, 0x40, 0xea, 0x16, 0xe7, 0xb8, 0x9d, 0x79, 0x25, 0xdd, + 0xce, 0x4c, 0xcd, 0x61, 0x06, 0x3b, 0xb3, 0xc1, 0xba, 0xfc, 0x64, 0x78, 0x3c, 0x5f, 0x18, 0xb2, + 0x1a, 0x50, 0x4c, 0xb2, 0xf8, 0x0c, 0xe4, 0xc6, 0x1f, 0xe7, 0xe0, 0x2a, 0xd7, 0x30, 0x62, 0x1f, + 0xc1, 0xe9, 0x67, 0xf0, 0x3d, 0x98, 0xe2, 0xb8, 0xdb, 0xd1, 0x62, 0x61, 0x7e, 0xa0, 0x42, 0x12, + 0x32, 0x71, 0xaa, 0x81, 0xa1, 0xf7, 0x94, 0xd3, 0x3e, 0xb3, 0x20, 0x5d, 0x26, 0xdb, 0x25, 0x33, + 0x0b, 0xa4, 0x9e, 0xf9, 0xad, 0xaf, 0x60, 0x31, 0xad, 0xe3, 0x67, 0xc0, 0x97, 0x3f, 0xc9, 0xc1, + 0x15, 0x4e, 0x5e, 0xfb, 0x9c, 0xde, 0x48, 0xe4, 0x9f, 0xc2, 0xbd, 0xe2, 0x09, 0x4c, 0x92, 0x06, + 0x45, 0xbf, 0xf5, 0x87, 0x49, 0x4a, 0xcd, 0xb2, 0x13, 0x3a, 0xfc, 0xc6, 0xcc, 0x39, 0xec, 0x08, + 0x1f, 0x45, 0x5b, 0x45, 0xb6, 0x7e, 0x08, 0x0b, 0xe6, 0x21, 0x9c, 0x01, 0x7f, 0x9e, 0x40, 0xc9, + 0x20, 0x38, 0xdf, 0x6c, 0x43, 0xfc, 0x01, 0x5c, 0x31, 0xd2, 0x3a, 0x83, 0x6e, 0xae, 0x92, 0xed, + 0x3e, 0x3c, 0x83, 0x29, 0xb4, 0x76, 0xe1, 0xb2, 0x81, 0xd2, 0x19, 0x74, 0xf1, 0x31, 0xcc, 0x4b, + 0x35, 0xf7, 0x1b, 0xf5, 0xf0, 0x19, 0x5c, 0x65, 0x84, 0xce, 0x66, 0x56, 0x9e, 0xc2, 0x15, 0x4e, + 0xee, 0x0c, 0xb8, 0xb7, 0x0a, 0x0b, 0xd1, 0x69, 0xd6, 0xa0, 0x4b, 0x9c, 0x58, 0xc8, 0x58, 0xeb, + 0x70, 0x2d, 0xa2, 0x94, 0xb2, 0xb1, 0x9e, 0x9c, 0x1a, 0xd3, 0xc5, 0xa2, 0x59, 0x3a, 0x43, 0x5d, + 0x2c, 0x02, 0x3c, 0x33, 0x75, 0x62, 0x0d, 0x2e, 0x32, 0xc2, 0xba, 0xde, 0xba, 0xa4, 0xea, 0xad, + 0xc6, 0x37, 0x3d, 0x49, 0x55, 0xf6, 0x19, 0x55, 0x65, 0x05, 0x48, 0xd4, 0xc3, 0xf7, 0x60, 0x94, + 0x3f, 0x5b, 0x64, 0xfd, 0x33, 0x10, 0x63, 0x9a, 0x3a, 0x43, 0xe3, 0xc0, 0xd6, 0x26, 0x14, 0xd9, + 0x31, 0xf0, 0x69, 0x7f, 0x4f, 0x38, 0x7e, 0x8b, 0xd9, 0x78, 0x18, 0x3b, 0x00, 0x26, 0x1e, 0xd0, + 0x99, 0x4e, 0x7f, 0x1f, 0x42, 0x91, 0x4d, 0xb3, 0x81, 0xa0, 0x38, 0xa4, 0xe5, 0x8d, 0x87, 0xb4, + 0x45, 0xb1, 0xd4, 0x2a, 0x9d, 0x8e, 0x82, 0x2c, 0x0d, 0xaf, 0x3f, 0x81, 0xab, 0x51, 0x57, 0x55, + 0x4f, 0x7e, 0x41, 0xfe, 0x7b, 0xb1, 0xfe, 0x66, 0x3c, 0x18, 0x30, 0xf5, 0x7c, 0x4f, 0x7c, 0x86, + 0x69, 0xf4, 0x4f, 0xe4, 0xd1, 0x9a, 0x3d, 0xc6, 0x1b, 0x70, 0x5d, 0x1b, 0xa3, 0xda, 0x8c, 0x1c, + 0xe8, 0x0f, 0xe1, 0x0a, 0x1b, 0xa8, 0xfe, 0xae, 0x4c, 0x74, 0xe3, 0x93, 0xd8, 0x30, 0x53, 0x1f, + 0xae, 0x99, 0x06, 0xf9, 0x37, 0x72, 0x42, 0x3a, 0x98, 0x89, 0x7f, 0xdb, 0x27, 0xf3, 0x0d, 0x28, + 0x4b, 0x86, 0xe8, 0x3d, 0x7a, 0xb3, 0x63, 0xf9, 0x33, 0x98, 0x4b, 0xbc, 0x7d, 0x20, 0xba, 0x35, + 0x7a, 0x97, 0x7c, 0xc1, 0x6c, 0x41, 0xf1, 0x2f, 0x24, 0xf5, 0xad, 0x84, 0x2d, 0x21, 0xad, 0x26, + 0x2c, 0x24, 0xa7, 0x42, 0x59, 0xd1, 0x9f, 0x13, 0x69, 0xc3, 0x1e, 0x60, 0xe4, 0x06, 0x3c, 0xc0, + 0xe0, 0x22, 0x87, 0xa1, 0x0b, 0x2c, 0xcb, 0x12, 0x52, 0x31, 0x36, 0x7e, 0x75, 0xe1, 0xff, 0xd3, + 0x1c, 0x20, 0x51, 0x57, 0xab, 0xdb, 0xa2, 0xed, 0xcb, 0x30, 0x54, 0xab, 0xdb, 0xdc, 0x45, 0x94, + 0x9a, 0x06, 0x5a, 0x81, 0x6f, 0x93, 0xb2, 0xb8, 0x86, 0x9d, 0x3f, 0x89, 0x86, 0xbd, 0x06, 0xa8, + 0xee, 0xee, 0x77, 0x77, 0xdd, 0xf0, 0x40, 0x36, 0x56, 0xe1, 0xd6, 0x6c, 0xea, 0x9d, 0x1f, 0xb8, + 0xfb, 0xdd, 0x26, 0xf5, 0x4b, 0x90, 0xcf, 0x48, 0x5a, 0x8e, 0x6d, 0x40, 0xb2, 0x7e, 0x04, 0x17, + 0xb5, 0xfe, 0x72, 0x11, 0xb5, 0x00, 0xc3, 0x35, 0xec, 0x87, 0xbc, 0xc7, 0x74, 0x25, 0xb4, 0xb0, + 0x1f, 0xda, 0xb4, 0x14, 0xdd, 0x82, 0xb1, 0x5a, 0x85, 0x5e, 0x2e, 0x52, 0x63, 0xc8, 0x14, 0x13, + 0xa6, 0x2d, 0xa7, 0x49, 0x1f, 0xdd, 0xdb, 0xa2, 0xd2, 0xfa, 0x87, 0xc3, 0x0a, 0x75, 0x82, 0x3e, + 0x98, 0x1d, 0x0f, 0x00, 0xd8, 0x9a, 0x52, 0xb8, 0x41, 0xb4, 0xdb, 0x49, 0x7e, 0x1f, 0xc2, 0xf6, + 0x1b, 0x5b, 0x01, 0x3a, 0xe1, 0xc5, 0xa8, 0xf0, 0x87, 0x62, 0x48, 0xe2, 0xd2, 0x50, 0xfa, 0x43, + 0x71, 0xd2, 0x81, 0xad, 0x02, 0xa1, 0x9f, 0xc4, 0x3d, 0xe5, 0x46, 0xe8, 0x1d, 0xfd, 0x5b, 0xdc, + 0xe6, 0x62, 0x18, 0xdb, 0xe9, 0x9c, 0xe5, 0x5e, 0xc1, 0x1c, 0xc1, 0x75, 0x9f, 0x53, 0x77, 0xb8, + 0x95, 0xaf, 0x43, 0xdc, 0x65, 0x1b, 0xd7, 0x28, 0x6d, 0xe7, 0x66, 0x46, 0x3b, 0x11, 0x30, 0x7f, + 0x25, 0x1e, 0xd1, 0x69, 0x62, 0x59, 0x67, 0x9b, 0xe9, 0xd3, 0x55, 0x67, 0xaf, 0xaf, 0x74, 0xdb, + 0x3d, 0xcf, 0x95, 0x27, 0x26, 0xb6, 0xea, 0xfc, 0x4e, 0x13, 0xf3, 0x72, 0x5b, 0x05, 0xb2, 0x6e, + 0x65, 0x7a, 0xa8, 0x8d, 0xc3, 0xf0, 0x76, 0x6d, 0x7b, 0xbd, 0x90, 0xb3, 0xee, 0x01, 0x28, 0x2d, + 0x01, 0x8c, 0x6e, 0x6c, 0xda, 0xcf, 0x2a, 0xeb, 0x85, 0x73, 0x68, 0x0e, 0x2e, 0xec, 0xae, 0x6d, + 0x2c, 0x6f, 0xee, 0xd6, 0x9b, 0xf5, 0x67, 0x15, 0x7b, 0xbb, 0x56, 0xb1, 0x97, 0x0b, 0x39, 0xeb, + 0x2b, 0x98, 0xd5, 0x47, 0x78, 0xa6, 0x8b, 0x30, 0x84, 0x8b, 0x52, 0x59, 0x7b, 0xb2, 0xbb, 0xad, + 0xf8, 0xf3, 0xf0, 0xd3, 0x5f, 0xfc, 0xee, 0x8f, 0x9f, 0x13, 0xf9, 0x77, 0xa7, 0x00, 0x69, 0x37, + 0xb6, 0xf9, 0xcc, 0x1b, 0x5b, 0xeb, 0x03, 0x98, 0xd5, 0x5b, 0x3d, 0xa9, 0xfd, 0xeb, 0x2d, 0xea, + 0xe8, 0xa4, 0xf8, 0x98, 0x22, 0xa4, 0x5e, 0x48, 0x70, 0x59, 0xfc, 0x01, 0x14, 0x38, 0x54, 0xa4, + 0x56, 0xdc, 0x10, 0x06, 0x4a, 0x26, 0x33, 0xf5, 0x97, 0xfc, 0xc2, 0x1f, 0xe2, 0x6d, 0x71, 0xe5, + 0x31, 0xa8, 0x85, 0x3f, 0xcd, 0x41, 0x31, 0xe6, 0xae, 0x59, 0x3b, 0x70, 0x3a, 0x1d, 0xdc, 0xdd, + 0xc7, 0xe8, 0x36, 0x0c, 0x6f, 0x6f, 0x6e, 0x6f, 0x71, 0x93, 0xe0, 0x2c, 0x5f, 0xa6, 0xa4, 0x48, + 0xc2, 0xd8, 0x14, 0x02, 0x3d, 0x85, 0x0b, 0xc2, 0xad, 0x47, 0x56, 0xf1, 0x13, 0xd7, 0xd5, 0x6c, + 0x27, 0xa1, 0x24, 0x1e, 0x7a, 0x97, 0xfb, 0x96, 0xfe, 0xac, 0xef, 0xfa, 0xb8, 0x4d, 0xad, 0x11, + 0x33, 0x4b, 0x28, 0xf2, 0x2d, 0x15, 0x35, 0xb6, 0x0a, 0xf6, 0x64, 0x78, 0x3c, 0x57, 0xc8, 0x5b, + 0xbf, 0x97, 0x83, 0xf9, 0x14, 0xf7, 0x53, 0xf4, 0x8e, 0x36, 0x9c, 0x8b, 0xca, 0x70, 0x04, 0xc8, + 0xea, 0x39, 0x3e, 0x9e, 0x9a, 0xe2, 0xeb, 0x34, 0x74, 0x0a, 0x5f, 0x27, 0xfe, 0xb2, 0x9b, 0xc2, + 0xf1, 0x77, 0x51, 0xb4, 0xdc, 0x3a, 0x0f, 0xd3, 0x1a, 0xdf, 0x2c, 0x0b, 0xa6, 0xd4, 0x96, 0xc9, + 0xe4, 0xd4, 0xbc, 0xb6, 0x9c, 0x1c, 0xf2, 0xb7, 0xf5, 0xb7, 0x73, 0x30, 0x4b, 0x87, 0xb8, 0xef, + 0x92, 0xaf, 0x31, 0xe2, 0xd0, 0x92, 0x36, 0x92, 0x05, 0x6d, 0x24, 0x31, 0x58, 0x39, 0xa4, 0x8f, + 0x13, 0x43, 0x5a, 0x30, 0x0d, 0x89, 0x1e, 0x73, 0x5d, 0xaf, 0xab, 0x8d, 0x44, 0xb9, 0x77, 0xf9, + 0xbb, 0x39, 0xb8, 0xa8, 0xf4, 0x49, 0xf6, 0xff, 0x81, 0xd6, 0xa5, 0x2b, 0x86, 0x2e, 0x25, 0x98, + 0x5c, 0x4d, 0xf4, 0xe8, 0xad, 0xac, 0x1e, 0x0d, 0xe4, 0xf1, 0x9f, 0xe5, 0x60, 0xce, 0xc8, 0x03, + 0x74, 0x89, 0x28, 0x68, 0x2d, 0x1f, 0x87, 0x9c, 0xbd, 0xfc, 0x17, 0x29, 0x5f, 0x0b, 0x82, 0x3e, + 0x0f, 0x87, 0x32, 0x61, 0xf3, 0x5f, 0xe8, 0x2d, 0x98, 0xde, 0xc2, 0xbe, 0xeb, 0xb5, 0x99, 0x17, + 0x1c, 0xbb, 0xc2, 0x9f, 0xb6, 0xf5, 0x42, 0xb4, 0x00, 0x13, 0x95, 0xce, 0xbe, 0xe7, 0xbb, 0xe1, + 0x01, 0xbb, 0xfa, 0x9a, 0xb0, 0xa3, 0x02, 0x42, 0x7b, 0xd9, 0xdd, 0x17, 0x5e, 0x29, 0xd3, 0x36, + 0xff, 0x85, 0x8a, 0x30, 0x26, 0x2c, 0x58, 0xd4, 0xfe, 0x65, 0x8b, 0x9f, 0x04, 0xe3, 0x0b, 0x9b, + 0x2e, 0x02, 0xfa, 0x56, 0xc8, 0xe6, 0xbf, 0xac, 0x3b, 0x30, 0x6b, 0xe2, 0xa3, 0x71, 0xc9, 0xfc, + 0xc5, 0x3c, 0x5c, 0xac, 0xb4, 0xdb, 0xcf, 0x1e, 0x55, 0x96, 0xb1, 0xaa, 0x16, 0xbd, 0x0b, 0xc3, + 0x6b, 0x5d, 0x37, 0xe4, 0x3a, 0x91, 0x70, 0xd4, 0x36, 0x40, 0x12, 0x28, 0x32, 0x43, 0xe4, 0x7f, + 0x64, 0xc3, 0xc5, 0x95, 0xaf, 0xdd, 0x20, 0x74, 0xbb, 0xfb, 0xaa, 0xb7, 0x77, 0xfe, 0x24, 0xde, + 0xde, 0xab, 0xe7, 0x6c, 0x13, 0x32, 0xda, 0x86, 0x4b, 0x1b, 0xf8, 0x95, 0x61, 0x09, 0xc9, 0x47, + 0x30, 0xca, 0x87, 0x9e, 0x58, 0x39, 0x29, 0xb8, 0xea, 0x0a, 0xfd, 0xed, 0x3c, 0x7d, 0x3f, 0xa6, + 0x0c, 0x8c, 0xb7, 0xbc, 0x03, 0xb3, 0x4a, 0x87, 0x22, 0x39, 0x95, 0xe3, 0x4f, 0x67, 0x8d, 0xc3, + 0x51, 0x3f, 0x24, 0x23, 0x3a, 0xda, 0x85, 0x79, 0xbd, 0x53, 0x11, 0x65, 0xfd, 0x63, 0x30, 0x81, + 0xac, 0x9e, 0xb3, 0xd3, 0xb0, 0xd1, 0x12, 0x0c, 0x55, 0x5a, 0x2f, 0x38, 0x5b, 0xcc, 0x53, 0xc6, + 0x46, 0x56, 0x69, 0xbd, 0xa0, 0x0f, 0xc2, 0x5b, 0x2f, 0xb4, 0xef, 0xe1, 0xdf, 0xe4, 0x60, 0x3e, + 0x65, 0x86, 0xd1, 0x22, 0x00, 0x2b, 0x54, 0x76, 0x04, 0xa5, 0x84, 0x28, 0x68, 0xec, 0x17, 0x75, + 0x55, 0x1b, 0xa2, 0x22, 0x58, 0xbc, 0x27, 0x89, 0x2a, 0x6c, 0x05, 0x08, 0x6d, 0xc1, 0x24, 0xfb, + 0xc5, 0x9e, 0xb5, 0xe8, 0x62, 0x5b, 0xa9, 0x61, 0x8a, 0x4c, 0x9b, 0x16, 0x34, 0xe3, 0xcf, 0x59, + 0x54, 0x12, 0xdc, 0x5e, 0x5b, 0x8b, 0x8f, 0x42, 0x0e, 0x1a, 0xdd, 0x86, 0x51, 0x56, 0xc8, 0xe7, + 0x50, 0x04, 0xa6, 0x89, 0x80, 0x79, 0xbd, 0xf5, 0xf7, 0x73, 0x70, 0x89, 0xed, 0x88, 0x89, 0x4f, + 0xe3, 0x03, 0xed, 0xd3, 0xb8, 0x2e, 0x3b, 0x6c, 0x02, 0xd6, 0xbe, 0x8e, 0xaa, 0xfe, 0x06, 0xe2, + 0xa4, 0x5f, 0x85, 0x8a, 0xa4, 0xae, 0xdb, 0x7f, 0x90, 0x13, 0xe6, 0xab, 0xe4, 0xd2, 0x5d, 0x81, + 0xa9, 0x37, 0x5b, 0xb2, 0x1a, 0x1a, 0x7a, 0x8f, 0xad, 0xa8, 0x7c, 0xf6, 0x48, 0x33, 0x17, 0xd5, + 0xa7, 0x50, 0x4a, 0x67, 0xcd, 0xa0, 0x65, 0x65, 0x3d, 0x32, 0x60, 0xbf, 0xc9, 0x74, 0xf6, 0x13, + 0x74, 0xea, 0xaf, 0xbb, 0x2d, 0x31, 0xa3, 0xb7, 0xe2, 0x8e, 0x9c, 0xa9, 0xce, 0x71, 0x6a, 0x6f, + 0xf3, 0xd1, 0x3d, 0x09, 0x5f, 0x9c, 0x54, 0xd9, 0x53, 0xbb, 0xff, 0x2f, 0xf2, 0xfa, 0x5a, 0x7c, + 0x93, 0x46, 0x6b, 0x30, 0xbd, 0x81, 0x5f, 0x25, 0xda, 0xa5, 0x8e, 0x3f, 0x5d, 0xfc, 0xaa, 0xa9, + 0xb4, 0xad, 0x3a, 0xde, 0x6b, 0x38, 0x68, 0x0f, 0x66, 0x84, 0xd4, 0x38, 0xa9, 0xf0, 0x64, 0x6f, + 0xfa, 0x48, 0x0b, 0x29, 0x2f, 0x70, 0x62, 0x14, 0xcf, 0xfe, 0x7b, 0xb6, 0xb6, 0xa0, 0x98, 0xe4, + 0x1e, 0x6f, 0xed, 0xdd, 0x41, 0x73, 0xcf, 0x8c, 0x27, 0x6d, 0x7d, 0x1d, 0xac, 0x52, 0xdb, 0x9b, + 0x84, 0x91, 0x16, 0x8a, 0xfb, 0xf1, 0xc9, 0xa0, 0x0e, 0x44, 0x62, 0x32, 0xd4, 0xc7, 0xd6, 0xc2, + 0xaf, 0xb7, 0x46, 0xcd, 0x97, 0x2a, 0x25, 0xde, 0xb1, 0x3b, 0x30, 0xc6, 0x8b, 0xe4, 0x23, 0xf6, + 0xf8, 0xaa, 0x14, 0x00, 0xd6, 0xef, 0xe7, 0xe0, 0x32, 0x35, 0xa6, 0xba, 0xdd, 0xfd, 0x0e, 0xde, + 0x09, 0x74, 0xd7, 0xdc, 0xef, 0x6a, 0x82, 0x66, 0x3e, 0xe5, 0x1d, 0xd6, 0xaf, 0x4a, 0xbc, 0xfc, + 0xbd, 0x1c, 0x94, 0x4c, 0x7d, 0x3b, 0x5b, 0x09, 0x73, 0x97, 0x1f, 0xe6, 0xf2, 0xdc, 0xf6, 0xc2, + 0xd0, 0x65, 0x9b, 0x62, 0xb0, 0x64, 0x90, 0xe4, 0x7f, 0x4d, 0xb4, 0xfc, 0xef, 0x1c, 0xcc, 0xae, + 0x05, 0xaa, 0x82, 0xcf, 0x19, 0x77, 0xd7, 0xf4, 0x2c, 0x94, 0xce, 0xab, 0x39, 0xb2, 0xc7, 0xbb, + 0xca, 0x0b, 0xa4, 0x7c, 0xd6, 0x7b, 0x4f, 0x2d, 0x9c, 0xcb, 0x2d, 0x18, 0xde, 0x20, 0xea, 0xd4, + 0x10, 0x5f, 0x7f, 0x0c, 0x83, 0x14, 0xd1, 0xc7, 0x42, 0xa4, 0xcb, 0xe4, 0x07, 0x7a, 0x94, 0x78, + 0x92, 0x34, 0x3c, 0xf8, 0x3d, 0x63, 0x32, 0x0e, 0x4d, 0x75, 0x1c, 0x46, 0xb7, 0x1d, 0x7f, 0x1f, + 0x87, 0xd6, 0x0f, 0xa1, 0xc4, 0xdd, 0x98, 0x98, 0x79, 0x9a, 0x3a, 0x3b, 0x05, 0x91, 0x8d, 0x36, + 0xcb, 0xf5, 0x68, 0x11, 0xa0, 0x1e, 0x3a, 0x7e, 0xb8, 0xd6, 0x6d, 0xe3, 0xaf, 0xe9, 0x68, 0x47, + 0x6c, 0xa5, 0xc4, 0x7a, 0x0f, 0x26, 0xe4, 0x10, 0xe8, 0x09, 0x50, 0xd1, 0x18, 0xe9, 0x70, 0x66, + 0xb5, 0x47, 0x52, 0xe2, 0x65, 0xd4, 0x43, 0x98, 0x8b, 0x4d, 0x45, 0xf4, 0x34, 0x4f, 0x9e, 0xcc, + 0xa8, 0x6f, 0xa6, 0x2d, 0x7f, 0x5b, 0x35, 0xb8, 0x90, 0x98, 0x69, 0x84, 0xe8, 0xab, 0x39, 0x76, + 0xba, 0x27, 0x1b, 0x4a, 0xbd, 0xbe, 0x4a, 0xca, 0xb6, 0xd7, 0xeb, 0xcc, 0xfb, 0x9c, 0x94, 0x6d, + 0xaf, 0xd7, 0xab, 0xa3, 0x6c, 0xe5, 0x58, 0xff, 0x38, 0x4f, 0x0f, 0xbd, 0x09, 0x1e, 0xc4, 0x2c, + 0x8e, 0xaa, 0xd5, 0xb3, 0x0a, 0x13, 0x74, 0xc4, 0xcb, 0xe2, 0x7d, 0x45, 0xb6, 0xe7, 0xcd, 0xf8, + 0xcf, 0x8f, 0xca, 0xe7, 0xa8, 0xbb, 0x4d, 0x84, 0x86, 0x3e, 0x83, 0xb1, 0x95, 0x6e, 0x9b, 0x52, + 0x18, 0x3a, 0x05, 0x05, 0x81, 0x44, 0xe6, 0x81, 0x76, 0x99, 0xa8, 0x42, 0xdc, 0xec, 0x64, 0x2b, + 0x25, 0x94, 0xcd, 0xee, 0xa1, 0xcb, 0x3c, 0xdc, 0x46, 0x6c, 0xf6, 0x83, 0x3e, 0x74, 0x24, 0x5d, + 0x10, 0x81, 0x05, 0x26, 0x6c, 0xf9, 0x1b, 0x59, 0x30, 0xb2, 0xe9, 0xb7, 0xf9, 0x03, 0xe8, 0x99, + 0xa5, 0x29, 0x11, 0xee, 0x91, 0x94, 0xd9, 0xac, 0xca, 0xfa, 0x9f, 0x39, 0x98, 0x7f, 0x8c, 0x43, + 0xe3, 0xba, 0xd1, 0xb8, 0x92, 0xfb, 0xc6, 0x5c, 0xc9, 0xbf, 0x09, 0x57, 0xe4, 0xa8, 0x87, 0xd2, + 0x46, 0x3d, 0x9c, 0x36, 0xea, 0x91, 0xf4, 0x51, 0x3f, 0x86, 0x51, 0x36, 0x54, 0x74, 0x03, 0x46, + 0xd6, 0x42, 0x7c, 0x18, 0x19, 0x43, 0x54, 0xbf, 0x41, 0x9b, 0xd5, 0x91, 0x13, 0xd7, 0xba, 0x13, + 0x84, 0xe2, 0xbd, 0xc3, 0x84, 0x2d, 0x7e, 0x5a, 0x3f, 0xa5, 0x0f, 0xc0, 0xd6, 0xbd, 0xd6, 0x0b, + 0xc5, 0xb6, 0x3d, 0xc6, 0xbe, 0xca, 0xf8, 0xb5, 0x0d, 0x81, 0x62, 0x35, 0xb6, 0x80, 0x40, 0xd7, + 0x60, 0x72, 0xad, 0xfb, 0xc8, 0xf3, 0x5b, 0x78, 0xb3, 0xdb, 0x61, 0xd4, 0xc7, 0x6d, 0xb5, 0x88, + 0x5b, 0x70, 0x78, 0x0b, 0x91, 0x05, 0x87, 0x16, 0xc4, 0x2c, 0x38, 0x2c, 0x22, 0x98, 0xcd, 0xea, + 0xb8, 0x81, 0x88, 0xfc, 0x9d, 0x65, 0xbe, 0x91, 0x76, 0x9e, 0x41, 0x80, 0x7b, 0x70, 0xd9, 0xc6, + 0xbd, 0x8e, 0x43, 0x14, 0xae, 0x43, 0x8f, 0xc1, 0xcb, 0x31, 0x5f, 0x33, 0x38, 0xc8, 0xeb, 0xa6, + 0x68, 0xd9, 0xe5, 0x7c, 0x46, 0x97, 0x0f, 0xe1, 0xfa, 0x63, 0x1c, 0x1a, 0xc3, 0x7a, 0x45, 0x83, + 0x5f, 0x85, 0xf1, 0x40, 0xb7, 0xfa, 0x0f, 0x8a, 0x28, 0xc6, 0xaf, 0xf0, 0x38, 0x1d, 0xf9, 0x97, + 0xf5, 0x39, 0x94, 0xd3, 0x9a, 0x3b, 0x99, 0x93, 0xaf, 0x0b, 0xd7, 0xd2, 0x09, 0xc8, 0x6d, 0x51, + 0xdc, 0x10, 0xc8, 0xa3, 0x73, 0x76, 0x6f, 0xf5, 0x4b, 0x05, 0xfe, 0x87, 0x55, 0x15, 0xee, 0x8e, + 0xdf, 0xa0, 0xbb, 0x4d, 0xea, 0x27, 0xa0, 0x13, 0x88, 0xf8, 0x5a, 0x81, 0x71, 0x51, 0xc6, 0xf9, + 0x9a, 0x1a, 0x31, 0x8d, 0x32, 0xb4, 0x2d, 0x08, 0x48, 0x34, 0xeb, 0xa7, 0xe2, 0x22, 0x4a, 0xc7, + 0x38, 0xd9, 0xab, 0x9f, 0x93, 0xdc, 0x3c, 0x59, 0x1e, 0x5c, 0xd6, 0x69, 0xab, 0xd7, 0x05, 0x05, + 0xe5, 0xba, 0x80, 0xdd, 0x12, 0x5c, 0xd3, 0xcd, 0xd7, 0x79, 0xbe, 0x2e, 0xa3, 0x22, 0xb4, 0xa8, + 0x5e, 0x0a, 0x4c, 0x25, 0x9f, 0x49, 0xdd, 0x87, 0x92, 0xa9, 0x41, 0xc5, 0x80, 0x22, 0x2d, 0xcf, + 0x4c, 0x21, 0xb1, 0x7e, 0x23, 0x07, 0x96, 0xe6, 0xfa, 0xa5, 0x05, 0xbf, 0x92, 0x9f, 0xcc, 0x3b, + 0x42, 0xb0, 0x51, 0x67, 0x33, 0xe6, 0xfc, 0xdf, 0x21, 0x05, 0xea, 0xdb, 0x34, 0x26, 0xed, 0xee, + 0xc3, 0xd8, 0x06, 0xfe, 0x3a, 0x12, 0x3f, 0x4c, 0x17, 0xa5, 0xee, 0x60, 0x2f, 0xb0, 0xfa, 0xb8, + 0x56, 0x80, 0x11, 0x45, 0xe8, 0x46, 0x66, 0x1f, 0x78, 0xff, 0xf7, 0xa0, 0x10, 0xaf, 0xe3, 0x73, + 0x3f, 0x30, 0x0e, 0x18, 0x7d, 0x3e, 0x12, 0x0f, 0xff, 0x15, 0xd8, 0x09, 0x7a, 0xa7, 0xef, 0x3d, + 0xfa, 0x08, 0x60, 0xdb, 0x0b, 0x9d, 0x4e, 0x8d, 0xda, 0xb8, 0xa8, 0xe0, 0x67, 0xd7, 0x55, 0x21, + 0x29, 0x6d, 0xc6, 0x5f, 0x01, 0x2b, 0xc0, 0xd6, 0xf7, 0xe9, 0x17, 0x69, 0xee, 0xf4, 0xc9, 0x3e, + 0x92, 0x1a, 0xdc, 0x88, 0xb9, 0x5a, 0xbc, 0x01, 0x91, 0x10, 0xe6, 0x08, 0xfb, 0x65, 0x14, 0xb1, + 0x6f, 0x67, 0xd6, 0xff, 0x7d, 0x8e, 0xf9, 0x87, 0xaa, 0xcd, 0xf2, 0x89, 0xae, 0x01, 0x44, 0xa5, + 0xb1, 0x07, 0x08, 0x6a, 0x50, 0x34, 0x7a, 0x78, 0x8d, 0x82, 0xa2, 0x05, 0xb6, 0x82, 0xf6, 0xed, + 0xce, 0xe4, 0x43, 0xea, 0x5f, 0x21, 0x5b, 0x3f, 0x19, 0xdf, 0xdf, 0x17, 0x36, 0x9a, 0x53, 0xe2, + 0x1d, 0xc0, 0xac, 0x16, 0x37, 0x3a, 0x0a, 0x84, 0x1b, 0xc5, 0xcb, 0x9e, 0xa8, 0x7e, 0xfa, 0xcb, + 0xa3, 0xf2, 0x87, 0xa7, 0x79, 0xb6, 0x26, 0x68, 0x6e, 0xcb, 0xd7, 0x99, 0xd6, 0x3c, 0x0c, 0xd5, + 0xec, 0x75, 0x2a, 0xaa, 0xec, 0x75, 0x29, 0xaa, 0xec, 0x75, 0xeb, 0x5f, 0xe6, 0xa1, 0xcc, 0xde, + 0x80, 0x53, 0xb7, 0x9c, 0xe8, 0xac, 0xa4, 0xf8, 0xf9, 0x9c, 0xd4, 0x42, 0x10, 0x7b, 0xe3, 0x9d, + 0x3f, 0xc9, 0x1b, 0xef, 0xff, 0xf7, 0xcd, 0xad, 0xaa, 0x2c, 0x26, 0x60, 0x64, 0x18, 0x60, 0xb5, + 0x26, 0x0b, 0x41, 0x4a, 0x13, 0x49, 0x93, 0xc6, 0xf0, 0xe9, 0x4d, 0x1a, 0xd6, 0xdf, 0xc9, 0xc3, + 0xb5, 0x74, 0x0e, 0xf2, 0x96, 0x96, 0xb5, 0x40, 0xbe, 0x19, 0xee, 0x44, 0xf4, 0x4b, 0x50, 0x02, + 0xf9, 0xc6, 0x83, 0xf7, 0x8a, 0x07, 0x4a, 0xb1, 0xbb, 0x2d, 0xed, 0xdd, 0x92, 0x08, 0x83, 0xce, + 0x8a, 0xb4, 0xb0, 0x59, 0xbc, 0x0c, 0xed, 0xc1, 0xfc, 0x96, 0xef, 0xbe, 0x74, 0x42, 0xfc, 0x14, + 0xbf, 0xde, 0xf2, 0x3a, 0x6e, 0xeb, 0xf5, 0x4a, 0xd7, 0xd9, 0xeb, 0xe0, 0x36, 0xbf, 0xa7, 0xbf, + 0x7d, 0x7c, 0x54, 0x7e, 0xab, 0xc7, 0x40, 0xc8, 0x67, 0xd6, 0xec, 0x51, 0xa0, 0x26, 0x66, 0x50, + 0x0a, 0xd1, 0x34, 0x42, 0xd6, 0xbf, 0xcb, 0xc1, 0x15, 0xaa, 0x1e, 0xf3, 0x7b, 0x02, 0xd1, 0xf8, + 0x1b, 0x79, 0x95, 0xaa, 0x03, 0xe4, 0x2b, 0x8b, 0x7a, 0x95, 0x6a, 0x0f, 0xb8, 0x6c, 0x0d, 0x0c, + 0xad, 0xc1, 0x24, 0xff, 0xad, 0x18, 0x83, 0xe7, 0x14, 0xf1, 0x43, 0x17, 0x2e, 0xb3, 0x05, 0xd1, + 0x65, 0xca, 0x89, 0x35, 0xe9, 0xb3, 0x66, 0x15, 0xd7, 0xfa, 0x45, 0x1e, 0x16, 0x1a, 0xd8, 0x77, + 0x9f, 0xbf, 0x4e, 0x19, 0xcc, 0x26, 0xcc, 0x8a, 0x22, 0x3a, 0x66, 0xfd, 0x83, 0x61, 0xc1, 0x87, + 0x44, 0x57, 0x03, 0x02, 0xd0, 0x94, 0xdf, 0x8f, 0x11, 0xf1, 0x14, 0xfe, 0xa2, 0xef, 0xc2, 0x78, + 0x2c, 0xae, 0x02, 0x9d, 0x7f, 0xf1, 0xbd, 0xe9, 0x61, 0x21, 0xe5, 0x87, 0xf7, 0x9b, 0xe9, 0x17, + 0x8e, 0xdc, 0x2e, 0x30, 0x28, 0x2a, 0x0e, 0xfd, 0xfc, 0xc8, 0xa7, 0xe7, 0x28, 0xb5, 0x86, 0xcf, + 0x6f, 0xf5, 0x9c, 0x9d, 0xd6, 0x52, 0x75, 0x12, 0x26, 0x2a, 0xf4, 0x12, 0x95, 0x1c, 0xc3, 0xff, + 0x57, 0x1e, 0x16, 0xc5, 0x93, 0xa3, 0x14, 0x36, 0x7f, 0x09, 0xf3, 0xa2, 0xa8, 0xd2, 0x23, 0xdb, + 0x3f, 0x6e, 0xeb, 0x9c, 0x66, 0x01, 0xc0, 0x04, 0xa7, 0x1d, 0x0e, 0x13, 0x31, 0x3b, 0x0d, 0xfd, + 0x6c, 0xcc, 0x9b, 0x9f, 0x99, 0xa2, 0x5c, 0x50, 0x33, 0xa3, 0x2a, 0x01, 0xf5, 0x88, 0x94, 0xaa, + 0x34, 0x6c, 0x27, 0xcc, 0xa3, 0xc3, 0xdf, 0xd4, 0x3c, 0xba, 0x7a, 0x2e, 0x6e, 0x20, 0xad, 0xce, + 0xc0, 0xd4, 0x06, 0x7e, 0x15, 0xf1, 0xfd, 0xb7, 0x72, 0xb1, 0x17, 0x92, 0x44, 0x5f, 0x60, 0x4f, + 0x25, 0x73, 0x51, 0x04, 0x03, 0xfa, 0x42, 0x52, 0xd5, 0x17, 0x18, 0xe8, 0x1a, 0x8c, 0x31, 0x0f, + 0xe3, 0xf6, 0x09, 0x4e, 0xda, 0xf2, 0xed, 0x50, 0x8b, 0xa1, 0xb0, 0x43, 0x37, 0xc7, 0xb7, 0x9e, + 0xc2, 0x75, 0xee, 0xe0, 0xae, 0x4f, 0x3e, 0x6d, 0xe8, 0x94, 0x9b, 0x91, 0xe5, 0xc0, 0xe2, 0x63, + 0x1c, 0x17, 0x3d, 0xda, 0xdb, 0xaa, 0xcf, 0xe1, 0xbc, 0x56, 0x2e, 0x29, 0x52, 0x1d, 0x53, 0xae, + 0x21, 0x49, 0x3a, 0x0e, 0x6d, 0x5d, 0x33, 0x35, 0xa1, 0x76, 0xd6, 0xc2, 0x34, 0x92, 0x97, 0x1f, + 0xdd, 0x09, 0x07, 0xa7, 0x90, 0x7a, 0xb7, 0x95, 0xef, 0x9a, 0x49, 0x3c, 0x16, 0xed, 0x48, 0xec, + 0xa3, 0xb2, 0xd6, 0x9a, 0x86, 0xc9, 0x9a, 0xd7, 0x0d, 0xf1, 0xd7, 0x54, 0x71, 0xb1, 0x66, 0x60, + 0x4a, 0x54, 0x75, 0x70, 0x10, 0x58, 0x7f, 0x30, 0x04, 0x16, 0x67, 0xac, 0xc9, 0x16, 0x2a, 0xf8, + 0xb1, 0x97, 0xe8, 0x2c, 0xdf, 0xa8, 0x2e, 0xa9, 0x16, 0xdf, 0xa8, 0x96, 0xad, 0x3c, 0xaa, 0xb5, + 0xb5, 0xa2, 0x52, 0x3d, 0x10, 0x70, 0x7c, 0xf4, 0x3f, 0x4a, 0x11, 0x93, 0xec, 0x63, 0xa3, 0x31, + 0xb8, 0x53, 0xc4, 0xa4, 0x46, 0xd7, 0x2c, 0x32, 0x6d, 0x8d, 0x0d, 0x5c, 0x81, 0x40, 0xf2, 0x69, + 0xa8, 0xac, 0xe1, 0x1e, 0x49, 0xac, 0xa0, 0x99, 0xc8, 0x3b, 0xa1, 0x12, 0x41, 0x3b, 0x3a, 0x2f, + 0xf9, 0xf7, 0x28, 0x7c, 0x30, 0xd4, 0x2a, 0x46, 0xb5, 0xa7, 0x94, 0xe8, 0x69, 0x3c, 0x34, 0x58, + 0xc5, 0xbe, 0xfd, 0xbb, 0xf2, 0x99, 0x01, 0xd9, 0x48, 0xdd, 0x0e, 0xe6, 0x6f, 0x6a, 0xc4, 0xb4, + 0xf4, 0xcd, 0x77, 0xd9, 0xb9, 0x13, 0xc9, 0x68, 0x1a, 0x74, 0x14, 0x73, 0xf4, 0xb4, 0x0b, 0x14, + 0x13, 0x7d, 0xeb, 0x28, 0x27, 0x1e, 0x57, 0x24, 0x2e, 0x78, 0x4f, 0xab, 0x17, 0x56, 0xb5, 0x3b, + 0xd9, 0x7c, 0xca, 0x9d, 0xac, 0x76, 0x83, 0x15, 0x0e, 0xb8, 0xa4, 0x1d, 0xfa, 0xe6, 0x97, 0x3a, + 0xff, 0x6c, 0x14, 0x2e, 0x6c, 0x39, 0xfb, 0x6e, 0x97, 0xc8, 0x1e, 0x11, 0x07, 0x18, 0x55, 0x12, + 0x39, 0x1d, 0xb2, 0x5d, 0x63, 0x0d, 0x49, 0x1b, 0x96, 0xd4, 0xf0, 0xea, 0xf9, 0xb4, 0x07, 0xaf, + 0x7a, 0x10, 0xf5, 0x8f, 0x34, 0x1b, 0x7e, 0xc2, 0x3d, 0x9a, 0xfa, 0xea, 0x75, 0xbd, 0x76, 0x2c, + 0xcf, 0x09, 0xb5, 0x83, 0x6f, 0xc2, 0xa4, 0xe2, 0xe3, 0xcc, 0x17, 0x68, 0x82, 0x02, 0x65, 0xcb, + 0x8b, 0xfe, 0x9e, 0x39, 0x60, 0xb7, 0x4a, 0xc1, 0x10, 0xc9, 0x7e, 0xe4, 0x8c, 0x23, 0xd9, 0xff, + 0x90, 0x75, 0x59, 0xdc, 0x88, 0x8c, 0x0e, 0x8c, 0x94, 0x1e, 0xf5, 0xde, 0x14, 0x23, 0x5d, 0x25, + 0x66, 0x8c, 0xfa, 0x3e, 0xf6, 0x2b, 0x89, 0xfa, 0x9e, 0x9a, 0x70, 0x60, 0xfc, 0x5b, 0x49, 0x38, + 0x60, 0x88, 0xdc, 0x3e, 0x71, 0xe6, 0x91, 0xdb, 0xab, 0x00, 0xe3, 0x22, 0x9f, 0x92, 0xf5, 0xaf, + 0xc7, 0x60, 0x96, 0x1c, 0xf4, 0xc5, 0xc7, 0x12, 0x44, 0x3b, 0xe9, 0x94, 0x28, 0x53, 0xce, 0xad, + 0x5c, 0xe9, 0x65, 0xe5, 0xcd, 0x58, 0x7a, 0x27, 0x0d, 0x01, 0xbd, 0xa7, 0x5e, 0x93, 0xe4, 0x95, + 0x48, 0xa4, 0xc9, 0xcc, 0x3c, 0xea, 0xfd, 0xc9, 0x3b, 0x9a, 0x95, 0x3e, 0xd3, 0xac, 0xf1, 0x30, + 0x6e, 0xba, 0xe7, 0x21, 0xc4, 0xe8, 0x1e, 0xa3, 0x9b, 0x11, 0x22, 0x9b, 0xfe, 0x0e, 0x8c, 0xd2, + 0x40, 0x3c, 0xe2, 0x31, 0xf3, 0xdb, 0x5c, 0xde, 0x98, 0x98, 0xc0, 0x42, 0xf6, 0x04, 0x4a, 0x44, + 0xed, 0x0e, 0x2d, 0x50, 0xe3, 0xed, 0x30, 0x10, 0xb4, 0x0d, 0x17, 0xb7, 0x7c, 0xdc, 0xe6, 0x4e, + 0xaf, 0x3d, 0x9f, 0x9f, 0x0a, 0xd9, 0xab, 0x42, 0x1a, 0x95, 0xb3, 0x27, 0xaa, 0x9b, 0x58, 0xd6, + 0xab, 0x02, 0xdb, 0x80, 0x8e, 0x56, 0x60, 0xa6, 0x8e, 0x1d, 0xbf, 0x75, 0xf0, 0x14, 0xbf, 0x26, + 0xfb, 0x4c, 0x50, 0x1c, 0x8b, 0x42, 0xd9, 0x06, 0xb4, 0x86, 0x0c, 0x94, 0x56, 0xa9, 0xb7, 0xe7, + 0x3a, 0x12, 0xfa, 0x3e, 0x8c, 0xd6, 0x3d, 0x3f, 0xac, 0xbe, 0x8e, 0xa5, 0x6a, 0x62, 0x85, 0xd5, + 0xcb, 0x22, 0x9c, 0x6f, 0xe0, 0xf9, 0x61, 0x73, 0x4f, 0xe5, 0x1b, 0xc7, 0x43, 0x8f, 0x88, 0x12, + 0x4b, 0x14, 0x6b, 0x69, 0x81, 0x61, 0xc1, 0x3b, 0xb8, 0xa2, 0x4a, 0xb5, 0x71, 0x93, 0x19, 0x26, + 0x86, 0x85, 0x5e, 0xc3, 0xac, 0xbe, 0xf2, 0x79, 0x48, 0x73, 0xd0, 0x92, 0x9e, 0x98, 0x40, 0xaa, + 0xb7, 0x79, 0x2f, 0xaf, 0xc5, 0xbf, 0xaf, 0x44, 0x94, 0x73, 0x63, 0x13, 0xe8, 0x19, 0x8d, 0xa6, + 0xcc, 0x38, 0x53, 0x09, 0x44, 0xe4, 0x68, 0x32, 0x08, 0x1a, 0x1e, 0xb0, 0x4f, 0xbf, 0x1e, 0xca, + 0x51, 0x27, 0x88, 0x07, 0x90, 0xb6, 0x13, 0xa8, 0x68, 0x0b, 0x2e, 0xec, 0x04, 0x78, 0xcb, 0xc7, + 0x2f, 0x5d, 0xfc, 0x4a, 0xd0, 0x9b, 0xa2, 0xf4, 0xe8, 0x74, 0x13, 0x7a, 0x3d, 0x56, 0x6b, 0x22, + 0x98, 0x44, 0x2e, 0x7d, 0x04, 0x93, 0xca, 0x7a, 0x3b, 0x55, 0x88, 0xf5, 0x3f, 0xcb, 0x31, 0x2b, + 0xa1, 0xb2, 0x80, 0xb9, 0x91, 0x62, 0x13, 0x26, 0x64, 0xa1, 0x7c, 0xd9, 0x20, 0x14, 0x9d, 0xd8, + 0x46, 0xc9, 0x3e, 0x1f, 0xf1, 0x75, 0xab, 0xbd, 0x8d, 0x68, 0x7c, 0xbb, 0x96, 0xbb, 0xdf, 0x8c, + 0x9e, 0x6b, 0xf2, 0xa7, 0xa5, 0xbe, 0xd3, 0x7a, 0x11, 0x99, 0x4e, 0x7f, 0x42, 0xbe, 0x0f, 0xb5, + 0x82, 0x67, 0x98, 0x9a, 0xd7, 0xd3, 0x03, 0xf1, 0x4a, 0x91, 0xa4, 0x40, 0xbe, 0x5a, 0x65, 0xc5, + 0xfa, 0x87, 0xa3, 0x22, 0x50, 0x3f, 0xde, 0xf3, 0x96, 0xcd, 0x5e, 0x1b, 0x1a, 0x7b, 0xf0, 0x7e, + 0xf2, 0xbd, 0x1c, 0xcd, 0x06, 0x11, 0xbd, 0x97, 0x53, 0xd9, 0x18, 0xbd, 0x9c, 0xdb, 0x81, 0x2b, + 0x36, 0x3e, 0xf4, 0x5e, 0xe2, 0xb3, 0x25, 0xfb, 0x23, 0xb8, 0xac, 0x13, 0xdc, 0xe9, 0xb5, 0x69, + 0x98, 0x11, 0x76, 0x81, 0x6a, 0x0c, 0xfb, 0xc7, 0x11, 0x58, 0xd8, 0x3f, 0x16, 0x08, 0x8a, 0xfc, + 0xa9, 0xca, 0x5b, 0x5a, 0x67, 0x79, 0xb0, 0xa0, 0x13, 0xaf, 0xb4, 0xdb, 0x5b, 0x8e, 0x1f, 0xba, + 0x2d, 0xb7, 0xe7, 0x74, 0x43, 0xa2, 0xb5, 0x28, 0x3f, 0x63, 0x6a, 0x92, 0x52, 0xc3, 0x66, 0xbf, + 0x17, 0x15, 0xa8, 0xea, 0x9c, 0x02, 0x67, 0x61, 0x28, 0xc7, 0xd9, 0x43, 0x58, 0xa6, 0xb6, 0x59, + 0x85, 0x69, 0xe5, 0xa7, 0x3c, 0x75, 0xd0, 0xc8, 0xa1, 0x4a, 0x0b, 0x3a, 0xc3, 0x74, 0x14, 0xab, + 0x05, 0x25, 0x13, 0xd3, 0x68, 0xf8, 0x8b, 0xd7, 0x68, 0x25, 0x0a, 0xa4, 0x31, 0xf8, 0xe2, 0xfa, + 0x7c, 0x5a, 0x10, 0x0d, 0xeb, 0x6f, 0x0d, 0xc3, 0x15, 0x3e, 0x19, 0x67, 0x39, 0xe3, 0xe8, 0xa7, + 0x30, 0xa9, 0xcc, 0x31, 0x67, 0xfa, 0x35, 0xe1, 0xeb, 0x92, 0xb6, 0x16, 0x98, 0xf6, 0xd5, 0xa7, + 0x05, 0xcd, 0xd8, 0x74, 0x13, 0xed, 0x4b, 0x5d, 0x36, 0x1d, 0x98, 0xd1, 0x27, 0x9a, 0x6b, 0xb4, + 0x37, 0x8c, 0x8d, 0xe8, 0xa0, 0x22, 0x86, 0x54, 0xbb, 0x69, 0x9c, 0x6e, 0x9a, 0x14, 0x4b, 0x5f, + 0x44, 0x5f, 0xc3, 0x85, 0xc4, 0x2c, 0x73, 0x05, 0xf8, 0x96, 0xb1, 0xc1, 0x04, 0x34, 0x0b, 0xcf, + 0xee, 0xd3, 0xe2, 0xd4, 0x66, 0x93, 0x8d, 0xa0, 0x36, 0x4c, 0xa9, 0x13, 0xcf, 0x35, 0xe4, 0xeb, + 0x19, 0xac, 0x64, 0x80, 0x4c, 0x29, 0xe2, 0xbc, 0xa4, 0x73, 0xaf, 0xe7, 0x91, 0xd4, 0xa8, 0x56, + 0xc7, 0x61, 0x94, 0xfd, 0x26, 0x22, 0x60, 0xcb, 0xc7, 0x01, 0xee, 0xb6, 0xb0, 0xea, 0xb6, 0xf4, + 0x4d, 0x45, 0xc0, 0xbf, 0xcd, 0x41, 0xd1, 0x44, 0xb7, 0x8e, 0xbb, 0x6d, 0xb4, 0x05, 0x85, 0x78, + 0x43, 0x7c, 0x55, 0x5b, 0x62, 0x57, 0x48, 0xef, 0x12, 0xd1, 0x98, 0x13, 0xdd, 0xdc, 0x80, 0x0b, + 0x4a, 0xd9, 0x29, 0xfd, 0xc3, 0x92, 0xa8, 0xea, 0x29, 0x7a, 0x95, 0xba, 0xc1, 0x2d, 0x7b, 0x87, + 0x8e, 0xdb, 0x25, 0x0a, 0xa2, 0x12, 0xf2, 0x02, 0xa2, 0x52, 0xce, 0x1b, 0x76, 0xd2, 0xa4, 0xa5, + 0xc2, 0x57, 0x52, 0x82, 0x58, 0x9f, 0x52, 0x09, 0xce, 0x8f, 0x13, 0xec, 0x95, 0x8e, 0x24, 0x76, + 0x0d, 0x46, 0xb6, 0xd7, 0xeb, 0xb5, 0x0a, 0x7f, 0xf3, 0xc3, 0x9e, 0xc1, 0x76, 0x82, 0x66, 0xcb, + 0xb1, 0x59, 0x85, 0xf5, 0x09, 0x8d, 0xf4, 0xc7, 0xe3, 0xc4, 0x49, 0xbc, 0x9b, 0x30, 0xc6, 0x8b, + 0x38, 0x26, 0xbd, 0x65, 0xee, 0x70, 0x28, 0x51, 0x67, 0x6d, 0x09, 0xfd, 0xba, 0x83, 0x9d, 0x40, + 0xd9, 0x98, 0x3f, 0x24, 0x4a, 0x38, 0x2b, 0xe3, 0xfb, 0xf2, 0x8c, 0x0c, 0xc3, 0x4a, 0x8b, 0xd9, + 0xc9, 0x5b, 0xc0, 0xd8, 0xf2, 0x2f, 0xeb, 0x4f, 0xf2, 0x30, 0x2b, 0x82, 0xdd, 0x68, 0x56, 0x85, + 0x81, 0xe1, 0x36, 0x7f, 0xa0, 0xc7, 0x13, 0xaa, 0xc9, 0x78, 0x42, 0xdf, 0x20, 0x41, 0x06, 0x8f, + 0x44, 0x74, 0xc2, 0x17, 0x71, 0x4f, 0xa5, 0xf6, 0x3d, 0xac, 0x69, 0xdf, 0xa6, 0xf1, 0x68, 0xda, + 0x37, 0x9d, 0x16, 0xa6, 0x7d, 0x0b, 0x9d, 0xfb, 0x9b, 0x28, 0x4c, 0x1f, 0x92, 0xa5, 0xa5, 0x35, + 0x79, 0xd2, 0xc7, 0x52, 0xeb, 0x34, 0x60, 0xc0, 0xe6, 0xda, 0x72, 0x8d, 0xac, 0x69, 0xde, 0x55, + 0x31, 0x03, 0xf7, 0xa8, 0x03, 0x1c, 0xa7, 0xa9, 0x2e, 0x4c, 0x2a, 0x62, 0x79, 0x98, 0x0c, 0x05, + 0xc4, 0x7a, 0x28, 0xc3, 0x0f, 0x18, 0xa8, 0xa5, 0xc5, 0x8e, 0xdd, 0xa0, 0x81, 0x15, 0x1e, 0xd3, + 0xf9, 0x3a, 0x8b, 0x4e, 0xfc, 0x7e, 0x8e, 0x45, 0x6a, 0xa8, 0x6f, 0x2a, 0x31, 0xfb, 0xbb, 0xcf, + 0x3d, 0xc5, 0xa8, 0xaa, 0x34, 0xa3, 0x24, 0x3d, 0xa2, 0x46, 0x55, 0x9a, 0xf1, 0x90, 0xbf, 0x39, + 0xa4, 0xe9, 0x83, 0xec, 0x38, 0x34, 0xfa, 0x08, 0xa6, 0x95, 0x22, 0xb9, 0x49, 0xb3, 0x28, 0x85, + 0x2a, 0xba, 0xdb, 0xb6, 0x75, 0x48, 0xeb, 0xb7, 0xf2, 0x70, 0x25, 0x23, 0x4d, 0x0a, 0x3d, 0x03, + 0xd2, 0xa3, 0xbb, 0xe4, 0x14, 0x0f, 0x23, 0x4d, 0xdf, 0x57, 0x6a, 0x32, 0x52, 0x02, 0xa2, 0x4f, + 0x61, 0x52, 0xcd, 0xda, 0x92, 0x57, 0x62, 0x95, 0x9b, 0x33, 0xb5, 0xa8, 0xe0, 0x28, 0x00, 0x88, + 0x7a, 0xc2, 0x1f, 0x2e, 0xd7, 0xe9, 0x13, 0xd8, 0x28, 0xe5, 0xcb, 0x99, 0xe4, 0x9e, 0x51, 0x9a, + 0xb1, 0xfe, 0x5a, 0x1e, 0x16, 0x33, 0xf8, 0x50, 0xc7, 0xe1, 0xff, 0x0d, 0x56, 0xc4, 0x12, 0xf1, + 0x0c, 0x7d, 0x4b, 0x89, 0x78, 0xac, 0xdf, 0xcd, 0xc3, 0xa5, 0x9d, 0x5e, 0x40, 0xfd, 0x54, 0xd7, + 0xba, 0x2f, 0x71, 0x37, 0xf4, 0xfc, 0xd7, 0xd4, 0xcf, 0x0e, 0xbd, 0x07, 0x23, 0xab, 0xb8, 0xd3, + 0xf1, 0xf8, 0xb6, 0x76, 0x55, 0xd8, 0xb9, 0xe3, 0xd0, 0x14, 0x68, 0xf5, 0x9c, 0xcd, 0xa0, 0xd1, + 0x47, 0x30, 0xb1, 0x8a, 0x1d, 0x3f, 0xdc, 0xc3, 0x8e, 0xd0, 0x5c, 0x2f, 0x73, 0x54, 0x05, 0x85, + 0x03, 0xac, 0x9e, 0xb3, 0x23, 0x68, 0xb4, 0x04, 0xc3, 0x5b, 0x5e, 0x77, 0x5f, 0x3e, 0x64, 0x4b, + 0x69, 0x90, 0xc0, 0xac, 0x9e, 0xb3, 0x29, 0x2c, 0x7a, 0x06, 0xd3, 0x95, 0x7d, 0xdc, 0x0d, 0x9f, + 0xe1, 0xd0, 0x69, 0x3b, 0xa1, 0xc3, 0x35, 0x9c, 0x9b, 0x69, 0xc8, 0x1a, 0x30, 0xcd, 0xb2, 0xab, + 0x16, 0x54, 0x47, 0x60, 0xe8, 0x59, 0xb0, 0x6f, 0xfd, 0x4e, 0x0e, 0x8a, 0xcb, 0xde, 0xab, 0xae, + 0x91, 0x31, 0x1f, 0xe8, 0x8c, 0x11, 0xde, 0xd4, 0x06, 0xf8, 0x18, 0x6b, 0xde, 0x85, 0xe1, 0x2d, + 0xb7, 0xbb, 0x1f, 0xdb, 0xd4, 0x0d, 0x78, 0x04, 0x8a, 0x8e, 0xd0, 0xed, 0xee, 0x8b, 0x2e, 0xbd, + 0x03, 0xf3, 0x29, 0x90, 0x68, 0x46, 0x8a, 0xb7, 0x61, 0x2a, 0xd6, 0xde, 0x86, 0x39, 0x23, 0xd3, + 0x12, 0x80, 0xff, 0x2a, 0x67, 0x98, 0x7d, 0xd6, 0xd7, 0x22, 0x8c, 0x89, 0x20, 0xb9, 0x6c, 0x1f, + 0x10, 0x3f, 0xa9, 0x9f, 0xa7, 0xf8, 0x3a, 0x78, 0x58, 0x44, 0xf9, 0x11, 0x34, 0x94, 0xd7, 0xff, + 0x6c, 0x0d, 0x7f, 0xfc, 0x0d, 0x56, 0xaa, 0xa4, 0x45, 0xda, 0x5c, 0xf5, 0x82, 0xb0, 0x2b, 0xdd, + 0x10, 0x6c, 0xf9, 0xdb, 0xfa, 0x4f, 0x79, 0x1a, 0x62, 0x31, 0x63, 0x9a, 0xc9, 0xb8, 0x37, 0xeb, + 0x7c, 0x1c, 0xf9, 0xcd, 0x3a, 0x5a, 0x80, 0x89, 0xcd, 0xba, 0x16, 0x03, 0xd8, 0x8e, 0x0a, 0xd0, + 0x1d, 0x96, 0x65, 0xad, 0xe2, 0xb7, 0x0e, 0xdc, 0x10, 0xb7, 0xc2, 0xbe, 0xcf, 0x85, 0x93, 0x9d, + 0x28, 0x47, 0x16, 0x4c, 0x3d, 0xee, 0xb8, 0x7b, 0x2d, 0x41, 0x8c, 0x75, 0x4e, 0x2b, 0x43, 0xb7, + 0x60, 0x86, 0xa7, 0x94, 0x64, 0x21, 0x92, 0x79, 0x9a, 0x32, 0x3b, 0x56, 0x4a, 0xda, 0xad, 0x79, + 0xdd, 0xd0, 0x71, 0xbb, 0xd8, 0xb7, 0xfb, 0xdd, 0xd0, 0xe5, 0x09, 0xc6, 0x27, 0xec, 0x44, 0x39, + 0x7a, 0x17, 0xe6, 0x64, 0xd9, 0xa6, 0xdf, 0x3a, 0xc0, 0x41, 0xe8, 0xd3, 0x70, 0xf2, 0xf4, 0x35, + 0xb8, 0x6d, 0xae, 0xa4, 0x2d, 0x74, 0xbc, 0x7e, 0x7b, 0xa5, 0xfb, 0xd2, 0xf5, 0x3d, 0x96, 0x8c, + 0x70, 0x9c, 0xb7, 0x10, 0x2b, 0xb7, 0xb6, 0x8c, 0x5f, 0xc0, 0x37, 0x58, 0x1c, 0x56, 0x0d, 0x50, + 0x52, 0x02, 0xa0, 0xef, 0xc2, 0x44, 0xbd, 0xbe, 0x9a, 0x19, 0x00, 0xc5, 0x8e, 0x20, 0xac, 0xf7, + 0xe1, 0x92, 0x24, 0xc2, 0xe2, 0x83, 0x2a, 0xde, 0xe4, 0x3c, 0x67, 0x8e, 0x74, 0x62, 0x8f, 0x0a, + 0xac, 0x1f, 0x25, 0xf0, 0xea, 0xfd, 0xc3, 0x43, 0xc7, 0x7f, 0x8d, 0x2a, 0x3a, 0xde, 0xd0, 0x40, + 0x59, 0x57, 0x1d, 0xfe, 0xf9, 0x51, 0xf9, 0x9c, 0x4a, 0xdc, 0x86, 0x59, 0xed, 0x8b, 0x14, 0x5d, + 0x2a, 0xc5, 0x37, 0x12, 0xe5, 0x53, 0x59, 0x04, 0xe0, 0x01, 0x84, 0xd7, 0xbd, 0x7d, 0xee, 0x64, + 0xac, 0x94, 0x58, 0x8f, 0x60, 0x2e, 0x46, 0x93, 0x2b, 0x56, 0xdf, 0x05, 0xa9, 0x0a, 0x52, 0xa2, + 0x43, 0xd5, 0x0b, 0xbf, 0x3c, 0x2a, 0x4f, 0x93, 0x65, 0x71, 0x37, 0x0a, 0x03, 0x26, 0xfe, 0xb2, + 0x9e, 0xa9, 0x1a, 0x7b, 0xa5, 0xa3, 0x3d, 0x0f, 0x79, 0x00, 0xa3, 0xac, 0x24, 0x16, 0x6c, 0x47, + 0x85, 0xe6, 0xa3, 0xe5, 0x80, 0xd6, 0x1c, 0x75, 0x01, 0xa3, 0x3f, 0x2a, 0x91, 0xb3, 0xb1, 0xb5, + 0xc3, 0x22, 0x3f, 0x46, 0xc5, 0x32, 0xa0, 0xcf, 0x70, 0x25, 0x72, 0x8a, 0x16, 0x66, 0x49, 0x01, + 0xd7, 0xf5, 0x5e, 0x75, 0x70, 0x7b, 0x9f, 0xa6, 0xe7, 0xa9, 0x4e, 0x71, 0xb3, 0xe4, 0xb0, 0x43, + 0x08, 0x50, 0x34, 0xeb, 0x73, 0x98, 0xab, 0x75, 0xb0, 0xe3, 0xc7, 0xdb, 0x43, 0xb7, 0x60, 0x8c, + 0x96, 0xe9, 0xb7, 0x6b, 0x0e, 0x29, 0xa2, 0xb7, 0x6b, 0xbc, 0x92, 0x28, 0x99, 0x2c, 0xb0, 0x88, + 0x3a, 0xa4, 0x48, 0xbf, 0x1b, 0xa1, 0xbf, 0x63, 0x2e, 0x47, 0x86, 0xd1, 0x33, 0x38, 0xeb, 0x33, + 0x7a, 0xa7, 0x6d, 0xca, 0xcc, 0x74, 0x32, 0x97, 0xb6, 0xbf, 0x00, 0x0b, 0x95, 0x5e, 0x0f, 0x77, + 0xdb, 0x11, 0x22, 0x39, 0x06, 0x9f, 0xcc, 0x55, 0x18, 0x55, 0x60, 0x84, 0x42, 0x4b, 0xd3, 0x04, + 0xef, 0xae, 0xa1, 0x3b, 0x14, 0x8e, 0xeb, 0xdc, 0xb4, 0x01, 0x86, 0x69, 0xb5, 0x61, 0xbe, 0xde, + 0xdf, 0x3b, 0x74, 0x59, 0x12, 0x24, 0xea, 0x6e, 0x2f, 0xda, 0x5e, 0x13, 0xc1, 0x7a, 0x19, 0x33, + 0x6e, 0x47, 0x19, 0x97, 0xe8, 0x45, 0x21, 0x77, 0xc1, 0x7f, 0xf9, 0xe0, 0x6e, 0x84, 0x4a, 0xb7, + 0x43, 0xd6, 0x0a, 0xad, 0xe6, 0x01, 0x7d, 0xad, 0x8b, 0x70, 0x41, 0x3d, 0xe6, 0xb1, 0x15, 0x32, + 0x07, 0x17, 0xf5, 0xe3, 0x1b, 0x2b, 0x5e, 0xa2, 0xce, 0xa1, 0xab, 0xd8, 0xa1, 0x57, 0xbf, 0x66, + 0x17, 0xbb, 0x19, 0xc8, 0xbb, 0x6d, 0x21, 0xbe, 0xdd, 0xb6, 0xf5, 0xc7, 0x39, 0xb8, 0xcd, 0x8e, + 0xfe, 0x66, 0x3c, 0xaa, 0x91, 0xa7, 0x20, 0xa3, 0x0f, 0x81, 0x25, 0xe3, 0xe0, 0xb6, 0x3b, 0x8b, + 0x73, 0x31, 0x8b, 0x12, 0x43, 0x40, 0x15, 0x98, 0x52, 0xef, 0x88, 0x63, 0x4f, 0x78, 0x53, 0xce, + 0xe6, 0xf6, 0xe4, 0xe1, 0x73, 0x47, 0xfc, 0xb8, 0x73, 0x07, 0x26, 0x36, 0x7b, 0x98, 0x7d, 0x99, + 0x68, 0x1c, 0x86, 0xd7, 0x36, 0xd6, 0xb6, 0x59, 0x0e, 0xaa, 0xad, 0x9d, 0xed, 0x42, 0x0e, 0x01, + 0x8c, 0x2e, 0xaf, 0xac, 0xaf, 0x6c, 0xaf, 0x14, 0xf2, 0x77, 0x9a, 0xea, 0xc5, 0x30, 0xba, 0x02, + 0xf3, 0xcb, 0x2b, 0x8d, 0xb5, 0xda, 0x4a, 0x73, 0xfb, 0x07, 0x5b, 0x2b, 0x4d, 0x3d, 0x7e, 0xc7, + 0x2c, 0x14, 0xd4, 0xca, 0xed, 0xcd, 0xed, 0xad, 0x42, 0x0e, 0x15, 0x61, 0x56, 0x2d, 0xdd, 0x5d, + 0xa9, 0x56, 0x76, 0xb6, 0x57, 0x37, 0x0a, 0x43, 0xd6, 0xf0, 0x78, 0xbe, 0x90, 0xbf, 0xf3, 0x53, + 0xed, 0xd6, 0x18, 0x2d, 0x40, 0x91, 0x83, 0xef, 0xd4, 0x2b, 0x8f, 0xd3, 0x9b, 0x60, 0xb5, 0xcf, + 0x1e, 0x55, 0x0a, 0x39, 0x74, 0x15, 0x2e, 0x6b, 0xa5, 0x5b, 0x95, 0x7a, 0x7d, 0x77, 0xd3, 0x5e, + 0x5e, 0x5f, 0xa9, 0xd7, 0x0b, 0xf9, 0x3b, 0x0d, 0x2d, 0xe6, 0x03, 0x69, 0xe1, 0xd9, 0xa3, 0x4a, + 0xd3, 0x5e, 0xf9, 0x62, 0x67, 0xcd, 0x5e, 0x59, 0x4e, 0xb6, 0xa0, 0xd5, 0xfe, 0x60, 0xa5, 0x5e, + 0xc8, 0xa1, 0x8b, 0x70, 0x5e, 0x2b, 0xdd, 0xd8, 0x2c, 0xe4, 0xef, 0xdc, 0xe2, 0xcf, 0x49, 0xd0, + 0x0c, 0xc0, 0xf2, 0x4a, 0xbd, 0xb6, 0xb2, 0xb1, 0xbc, 0xb6, 0xf1, 0xb8, 0x70, 0x0e, 0x4d, 0xc3, + 0x44, 0x45, 0xfe, 0xcc, 0x2d, 0xfd, 0x87, 0xbf, 0x9e, 0x83, 0x49, 0x32, 0x2b, 0xe2, 0x5a, 0xf0, + 0x2b, 0x65, 0x17, 0xe0, 0xb2, 0x96, 0x87, 0x82, 0x4e, 0x15, 0xf9, 0x74, 0x91, 0x97, 0x32, 0x94, + 0x3c, 0x0a, 0x70, 0x3b, 0x77, 0x3f, 0x87, 0x6c, 0x6a, 0xde, 0x88, 0x6d, 0x33, 0x92, 0xb2, 0x79, + 0xdb, 0x2a, 0xa5, 0x54, 0x8b, 0xdd, 0xe9, 0x09, 0x4c, 0x13, 0xe9, 0x2f, 0x6b, 0xd1, 0x95, 0x38, + 0xbc, 0xb2, 0xe1, 0x94, 0x16, 0xcc, 0x95, 0x32, 0x66, 0xdb, 0x14, 0xed, 0x5f, 0x10, 0x3a, 0x5d, + 0xa2, 0x55, 0xcd, 0xa9, 0x89, 0xb1, 0xbb, 0x2d, 0xcc, 0xee, 0x77, 0x4a, 0x17, 0x62, 0xc5, 0x8d, + 0x07, 0xf7, 0x73, 0xa8, 0x4e, 0x9f, 0xbc, 0x68, 0xdb, 0x08, 0x12, 0x97, 0xb8, 0xc9, 0xfd, 0x85, + 0xf5, 0xa6, 0x2c, 0x6d, 0x12, 0x29, 0xfb, 0xcf, 0x06, 0xa0, 0xa4, 0x74, 0x46, 0xd7, 0xa2, 0xa9, + 0x30, 0x0b, 0xee, 0xd2, 0xa5, 0x84, 0xe1, 0x78, 0x85, 0x1c, 0x8a, 0xd0, 0x0a, 0xcc, 0x70, 0x57, + 0x1e, 0xbe, 0x5f, 0xa0, 0xac, 0x1d, 0x27, 0x95, 0xcc, 0x63, 0xca, 0x27, 0xb9, 0xe7, 0xa0, 0x52, + 0x34, 0x8e, 0xf8, 0x46, 0x54, 0xba, 0x62, 0xac, 0xe3, 0xe3, 0x7b, 0x04, 0x33, 0xfa, 0xf6, 0x85, + 0xc4, 0x04, 0x19, 0x77, 0xb5, 0xd4, 0x0e, 0x35, 0x61, 0xfe, 0x99, 0xe3, 0x52, 0x8d, 0x8e, 0x9b, + 0x27, 0x85, 0x71, 0x11, 0x95, 0x33, 0xac, 0x8d, 0x75, 0xdc, 0x6d, 0x97, 0x06, 0x3d, 0xf6, 0xa4, + 0x2b, 0xb7, 0x0e, 0xb3, 0xa6, 0xdb, 0x21, 0x64, 0xe9, 0x21, 0xeb, 0x4d, 0xf6, 0xf6, 0x52, 0xda, + 0x15, 0x11, 0x7a, 0x46, 0xb7, 0x81, 0x18, 0x45, 0x65, 0x4d, 0x9c, 0x9a, 0x5c, 0x91, 0x3a, 0x94, + 0x85, 0x6e, 0xfc, 0xae, 0x27, 0x40, 0x29, 0x8c, 0x4b, 0x25, 0x76, 0x3f, 0x87, 0xbe, 0x02, 0x2b, + 0x8d, 0xdc, 0xae, 0x1b, 0x1e, 0xf0, 0xbb, 0xce, 0x2b, 0x46, 0x02, 0xfc, 0x43, 0xc9, 0xa0, 0x6e, + 0xc3, 0xac, 0xe9, 0x56, 0x4a, 0x32, 0x34, 0xe3, 0xca, 0x2a, 0x75, 0x15, 0xd8, 0x30, 0x6b, 0xba, + 0xf7, 0x90, 0x34, 0x33, 0x2e, 0x45, 0x52, 0x69, 0x7e, 0x0a, 0x33, 0x64, 0x95, 0x3c, 0xc5, 0xb8, + 0x57, 0xe9, 0xb8, 0x2f, 0x71, 0x80, 0xc4, 0x43, 0x68, 0x59, 0x94, 0x86, 0x7b, 0x3b, 0x87, 0x7e, + 0x0d, 0x26, 0x69, 0xd2, 0x6c, 0xfe, 0x6e, 0x6f, 0x4a, 0x4d, 0xa4, 0x5d, 0x12, 0xbf, 0x68, 0xe5, + 0xfd, 0x1c, 0xfa, 0x1e, 0x8c, 0x3d, 0xc6, 0x21, 0xf5, 0xca, 0xb9, 0x2e, 0x0d, 0xb4, 0xec, 0x32, + 0x74, 0xad, 0x2b, 0xdd, 0x16, 0x44, 0x87, 0xe3, 0x67, 0x00, 0x74, 0x0f, 0x80, 0x09, 0x04, 0x4a, + 0x21, 0x5e, 0x5d, 0x4a, 0x74, 0x1b, 0x3d, 0x26, 0xfb, 0x67, 0x07, 0x87, 0xf8, 0xa4, 0x4d, 0xa6, + 0xf1, 0x68, 0x1d, 0x66, 0x64, 0xec, 0xb8, 0x0d, 0xea, 0xd6, 0x69, 0xc5, 0x88, 0x05, 0xa7, 0xa0, + 0xf6, 0x31, 0xf9, 0x2a, 0x98, 0xc1, 0x54, 0x3e, 0x12, 0x47, 0x69, 0xcf, 0xc6, 0x25, 0x13, 0x19, + 0x98, 0x82, 0x2b, 0xf3, 0x80, 0x4b, 0xdc, 0x78, 0x66, 0xf0, 0x18, 0x2e, 0x86, 0x92, 0xda, 0xae, + 0xfe, 0x60, 0x3c, 0x92, 0xb9, 0x69, 0xef, 0xdc, 0x4b, 0xd7, 0x33, 0x20, 0x98, 0xb8, 0xa3, 0x92, + 0xe4, 0x09, 0x4c, 0x6b, 0x4f, 0x8c, 0xa3, 0xfd, 0xca, 0xf0, 0x06, 0x3c, 0xda, 0xaf, 0x8c, 0xaf, + 0x92, 0x1f, 0x51, 0x01, 0x12, 0xcb, 0x26, 0x57, 0x32, 0x65, 0x8d, 0xe3, 0x1f, 0xa4, 0xc8, 0x74, + 0x11, 0x43, 0x79, 0xca, 0xce, 0x2c, 0x5a, 0x61, 0x63, 0x29, 0x93, 0x52, 0x4a, 0x6e, 0xba, 0xfb, + 0x39, 0xb4, 0x02, 0x17, 0xa5, 0x1f, 0x6e, 0x54, 0x85, 0x52, 0x10, 0x52, 0x97, 0xc1, 0xe7, 0x70, + 0x91, 0x2f, 0x2a, 0x8d, 0x4c, 0x41, 0xca, 0x07, 0x6e, 0xb7, 0x4d, 0x25, 0xf0, 0x04, 0xe6, 0xea, + 0xb1, 0x41, 0xb1, 0x5b, 0xc6, 0xcb, 0x3a, 0x09, 0x25, 0x8d, 0x5d, 0x2a, 0xad, 0xa7, 0x80, 0xd8, + 0xb1, 0x40, 0x90, 0x7b, 0xe9, 0xe2, 0x57, 0xe8, 0x6a, 0x6c, 0x48, 0xa4, 0x90, 0x82, 0x51, 0x01, + 0x93, 0xc6, 0x22, 0xb4, 0xcd, 0xc2, 0xf7, 0xb3, 0x14, 0x39, 0x4e, 0xcf, 0xd9, 0x73, 0x3b, 0x6e, + 0xe8, 0x62, 0xb2, 0xc6, 0x54, 0x04, 0xb5, 0x4a, 0x2c, 0x87, 0xcb, 0xa9, 0x10, 0xe8, 0x33, 0x98, + 0x7e, 0x8c, 0xc3, 0x28, 0x53, 0x1f, 0x9a, 0x4f, 0xe4, 0xf6, 0xe3, 0x53, 0x27, 0x5e, 0x7d, 0xe8, + 0xe9, 0x01, 0xd7, 0xa0, 0xc0, 0xe4, 0xa3, 0x42, 0xe2, 0x6a, 0x82, 0x04, 0x07, 0x71, 0x7c, 0xe7, + 0x30, 0x48, 0xe5, 0xd6, 0x3d, 0x66, 0xc6, 0x43, 0xc2, 0xc1, 0x52, 0x55, 0xc0, 0x2e, 0x6a, 0x65, + 0x32, 0xe6, 0xc6, 0x9c, 0x31, 0x45, 0x1d, 0xba, 0x11, 0x6d, 0x86, 0xa9, 0x79, 0xe7, 0x4a, 0x28, + 0xfe, 0x26, 0xa3, 0xf1, 0x10, 0xc9, 0x68, 0xe7, 0x06, 0xa2, 0xb7, 0xb4, 0x3d, 0xfb, 0x74, 0x74, + 0x3f, 0x83, 0x09, 0x99, 0xeb, 0x4c, 0x0a, 0x96, 0x78, 0xa6, 0xb8, 0x52, 0x31, 0x59, 0xc1, 0x47, + 0xfa, 0x29, 0xcb, 0x6c, 0xa8, 0xe3, 0xc7, 0xd3, 0x81, 0xa5, 0x32, 0xf6, 0x23, 0x98, 0x54, 0x12, + 0x81, 0xc9, 0x85, 0x9c, 0x4c, 0x0e, 0x56, 0x9a, 0x56, 0xfa, 0xde, 0x58, 0xba, 0x9f, 0x43, 0xf7, + 0xe8, 0xe6, 0x42, 0x9d, 0x92, 0xe7, 0x22, 0x34, 0x25, 0x35, 0x50, 0x0c, 0x05, 0x7d, 0x40, 0x5f, + 0x62, 0xd7, 0xfa, 0xbe, 0x8f, 0xbb, 0x0c, 0x2f, 0x4d, 0x87, 0x88, 0x21, 0x7e, 0x46, 0x85, 0x89, + 0x82, 0xc8, 0xae, 0xed, 0x06, 0x61, 0xb3, 0x48, 0x7e, 0xf7, 0x73, 0xe8, 0x21, 0x8c, 0x8b, 0xf4, + 0xa4, 0xe8, 0x92, 0xde, 0xd5, 0xf4, 0xe1, 0x3d, 0x04, 0x60, 0xcc, 0xa6, 0x3d, 0xd5, 0xab, 0x53, + 0xd9, 0xf9, 0x90, 0xec, 0x98, 0xed, 0x53, 0x22, 0x7d, 0x26, 0x76, 0x4d, 0x8a, 0x54, 0xd4, 0xa6, + 0x50, 0x65, 0x67, 0x1a, 0x3e, 0x51, 0x79, 0xb5, 0xac, 0xa9, 0x91, 0xca, 0x6b, 0x4a, 0xa6, 0x9a, + 0x4a, 0x67, 0x0d, 0x0a, 0x95, 0x16, 0xdd, 0x0f, 0x64, 0xba, 0x25, 0x79, 0xde, 0x88, 0x57, 0x08, + 0x5a, 0x73, 0xf1, 0xec, 0x4d, 0xeb, 0xd8, 0xa1, 0x8f, 0xd3, 0xe7, 0xa5, 0x56, 0x10, 0xab, 0x32, + 0x63, 0x64, 0x9c, 0x2f, 0x66, 0x6b, 0xe4, 0x44, 0xd4, 0xf9, 0x66, 0x64, 0x3e, 0xa6, 0xb2, 0x4c, + 0x49, 0x45, 0x75, 0x29, 0x8e, 0x2f, 0x4f, 0x62, 0xc2, 0x65, 0x42, 0x82, 0x56, 0xe0, 0x3c, 0x7f, + 0x0a, 0x2b, 0xd9, 0x92, 0x86, 0x9d, 0xd6, 0xfc, 0x07, 0x30, 0xb3, 0x42, 0x64, 0x7d, 0xbf, 0xed, + 0xb2, 0x80, 0x1c, 0x48, 0x8f, 0xb0, 0x90, 0x8a, 0xb8, 0x2a, 0x32, 0x21, 0x2a, 0x39, 0x9a, 0xe4, + 0x57, 0x9a, 0x4c, 0x83, 0x55, 0x9a, 0x15, 0x64, 0xd5, 0x74, 0x4e, 0xfc, 0xa4, 0x3c, 0x9f, 0x92, + 0x15, 0x09, 0xdd, 0xd4, 0x4e, 0x7f, 0x69, 0xa9, 0x8d, 0x0c, 0xfa, 0xde, 0x97, 0x4a, 0x9c, 0xf8, + 0x14, 0x9a, 0xd9, 0xe9, 0x92, 0x52, 0xc7, 0x2d, 0x9f, 0xd0, 0x1b, 0xd3, 0x1a, 0xa1, 0x77, 0x74, + 0xea, 0x19, 0xa9, 0x8f, 0x52, 0x5b, 0xa0, 0xa7, 0x6b, 0x3d, 0xeb, 0x0e, 0x5a, 0xcc, 0x4e, 0x0e, + 0xa4, 0x9c, 0xae, 0x53, 0xd2, 0xf5, 0x3c, 0xa1, 0xcb, 0x2c, 0x0a, 0x26, 0x8f, 0xd4, 0xb3, 0x6a, + 0x3c, 0x96, 0xbe, 0x54, 0xc5, 0xcc, 0xa9, 0x77, 0x1e, 0x53, 0x71, 0xa9, 0x04, 0xa6, 0x4f, 0x15, + 0x78, 0x57, 0x4d, 0x74, 0x02, 0x65, 0x2f, 0x3c, 0x1f, 0x4b, 0x62, 0x23, 0x0d, 0x24, 0xe6, 0x34, + 0x3a, 0xa5, 0xc5, 0xb4, 0x6a, 0x4e, 0xb1, 0x2e, 0x72, 0x99, 0x2a, 0x23, 0x5d, 0xd4, 0x76, 0xa8, + 0xe4, 0x60, 0xcb, 0xa9, 0xf5, 0x92, 0x77, 0x85, 0x78, 0xd2, 0x01, 0x49, 0x34, 0x25, 0x1b, 0x41, + 0x86, 0x48, 0x9c, 0x55, 0x97, 0xc6, 0x40, 0x0e, 0xa6, 0xd1, 0xd9, 0x86, 0x39, 0x63, 0x8e, 0x00, + 0xa9, 0x46, 0x64, 0x65, 0x10, 0x48, 0xa5, 0x8a, 0xe1, 0x92, 0x39, 0x4d, 0x08, 0x7a, 0x4b, 0x3f, + 0xfc, 0x9b, 0x93, 0x26, 0x94, 0x6e, 0x0e, 0x80, 0xe2, 0x0c, 0xfd, 0x8a, 0x6e, 0x9b, 0x89, 0x36, + 0xae, 0x2b, 0xe6, 0x80, 0x94, 0x06, 0xac, 0x2c, 0x10, 0xb9, 0x06, 0x66, 0x4d, 0x69, 0x8a, 0x52, + 0x59, 0x7c, 0x23, 0x9d, 0x66, 0xb4, 0xb0, 0x1a, 0xe2, 0xe1, 0x7a, 0x2a, 0x67, 0x32, 0xd3, 0x49, + 0x64, 0x9c, 0x27, 0x4b, 0x72, 0x3d, 0x9c, 0xbc, 0xcb, 0xe9, 0xb6, 0xa1, 0x59, 0x53, 0x12, 0x93, + 0xb8, 0xe9, 0xc6, 0x94, 0xa3, 0x42, 0xb2, 0x21, 0x33, 0x0b, 0x4a, 0x83, 0x99, 0x71, 0x74, 0xea, + 0xaa, 0x19, 0xc7, 0x48, 0xfa, 0x5a, 0x3a, 0x40, 0xb4, 0x22, 0x0c, 0xd9, 0x98, 0xe4, 0x8a, 0x48, + 0xcf, 0x0b, 0x25, 0x57, 0x44, 0x56, 0x32, 0x27, 0x5b, 0x7c, 0x74, 0x29, 0x6c, 0xc9, 0x48, 0xdd, + 0x91, 0x71, 0xe4, 0x2a, 0x46, 0x13, 0x17, 0xeb, 0xf6, 0x69, 0xa7, 0xed, 0x2b, 0xb8, 0x9c, 0x9a, + 0xa6, 0x03, 0xbd, 0x9d, 0xf8, 0xa0, 0x53, 0x38, 0x91, 0xde, 0xd3, 0x69, 0x2d, 0xc3, 0x86, 0xb4, + 0x63, 0xc5, 0x92, 0x79, 0x24, 0x44, 0xbf, 0x21, 0xd3, 0x07, 0x13, 0xfd, 0x4a, 0xb6, 0x8e, 0x93, + 0x88, 0x7e, 0x53, 0x72, 0x0f, 0x29, 0x53, 0x95, 0x7e, 0x09, 0x95, 0x2e, 0x5e, 0x71, 0x1a, 0x99, + 0x7a, 0x92, 0xae, 0xa5, 0xd1, 0x59, 0xa6, 0x47, 0x0e, 0x91, 0xbc, 0x03, 0x5d, 0xd6, 0xd8, 0xa4, + 0x6d, 0xb7, 0x25, 0x6d, 0x70, 0xfa, 0x4e, 0x5b, 0xa3, 0x06, 0x63, 0x99, 0x2c, 0x24, 0xb5, 0x17, + 0x57, 0x92, 0x34, 0x34, 0x63, 0xb1, 0xe4, 0x02, 0xeb, 0xcd, 0x42, 0x9c, 0x39, 0x5a, 0x87, 0xd2, + 0x87, 0x84, 0x54, 0xd6, 0x0c, 0xe8, 0x52, 0xba, 0xaa, 0x7b, 0x91, 0x1d, 0x1e, 0x58, 0x64, 0x29, + 0xf1, 0x80, 0xec, 0x92, 0xb4, 0x7c, 0x29, 0xa5, 0x19, 0x66, 0x8e, 0x2f, 0xe0, 0x42, 0x22, 0xef, + 0x89, 0x14, 0x1e, 0x69, 0x19, 0x51, 0xd2, 0xa8, 0x59, 0x43, 0x7f, 0x25, 0x9f, 0x43, 0xcf, 0x48, + 0xcf, 0x62, 0x88, 0x8d, 0xa5, 0xc1, 0x44, 0x13, 0x1a, 0x23, 0x23, 0xf7, 0x85, 0x08, 0xb6, 0x65, + 0xea, 0x61, 0x5a, 0x8a, 0x95, 0xec, 0x1e, 0xfe, 0x40, 0x6c, 0xd4, 0xb1, 0x0c, 0x2b, 0xb1, 0x8d, + 0xda, 0x9c, 0x7f, 0x25, 0x9b, 0xf4, 0x16, 0x75, 0xd8, 0x31, 0x24, 0x67, 0x91, 0x7b, 0x52, 0x66, + 0xee, 0x16, 0x83, 0xda, 0x2c, 0x77, 0xb9, 0x54, 0x8a, 0x99, 0xd9, 0x5a, 0x52, 0x67, 0xfe, 0x27, + 0xca, 0x2e, 0x97, 0x48, 0xc1, 0x82, 0x6e, 0x9b, 0x38, 0x61, 0xca, 0xd2, 0x92, 0xb1, 0x8b, 0xce, + 0x9a, 0xb2, 0xb7, 0x28, 0xd6, 0xf0, 0xd4, 0xd4, 0x2e, 0x06, 0x2e, 0xc8, 0xed, 0x22, 0x85, 0x5a, + 0x46, 0x2e, 0x97, 0xd4, 0x1e, 0xfe, 0x50, 0xd9, 0x2e, 0x62, 0x39, 0x57, 0xa4, 0x91, 0x66, 0x40, + 0x52, 0x96, 0x54, 0xda, 0x1b, 0xd4, 0xc5, 0x2b, 0x99, 0x30, 0x45, 0x2e, 0xb1, 0xac, 0x74, 0x2a, + 0x46, 0x63, 0xf9, 0x5c, 0x72, 0x88, 0x84, 0xde, 0xa5, 0x98, 0xa9, 0x7b, 0x50, 0xc7, 0xe4, 0xbe, + 0x66, 0x48, 0xb4, 0x12, 0xdb, 0xd7, 0xd2, 0x53, 0xb1, 0x64, 0x9c, 0x40, 0xcf, 0xd7, 0xdd, 0xfd, + 0xae, 0x92, 0xf5, 0x44, 0x9e, 0x3f, 0x93, 0x99, 0x5b, 0xa4, 0xc8, 0x36, 0x25, 0x49, 0xd9, 0x8c, + 0x5c, 0xbf, 0xd5, 0xfc, 0x15, 0xa8, 0x94, 0x9e, 0xb6, 0x43, 0x8a, 0x6f, 0x63, 0xc2, 0x0b, 0x85, + 0xa0, 0x9a, 0x3c, 0x42, 0x12, 0x34, 0xe4, 0xb1, 0x90, 0x04, 0x8d, 0xd9, 0x26, 0x98, 0x49, 0xcb, + 0xf6, 0x3a, 0x58, 0x35, 0x69, 0x29, 0xa9, 0x1f, 0x62, 0xb6, 0x25, 0xf4, 0x09, 0xb5, 0x2c, 0x65, + 0x9b, 0xa3, 0xe6, 0x75, 0x4a, 0xd1, 0xee, 0xf3, 0x50, 0x5c, 0xaf, 0xd0, 0x06, 0x75, 0xca, 0x83, + 0x8d, 0x45, 0x14, 0x49, 0x37, 0x16, 0xa9, 0x1d, 0x4d, 0xb7, 0x3b, 0x4f, 0xa9, 0xa1, 0x83, 0x25, + 0xaf, 0x0c, 0xf1, 0xcd, 0x25, 0xaf, 0x4c, 0x51, 0xc3, 0xa9, 0x4d, 0x61, 0x5b, 0x58, 0x46, 0x22, + 0x7a, 0x57, 0x33, 0xc3, 0x7e, 0x97, 0x16, 0xb3, 0x63, 0x65, 0xf3, 0x9b, 0xd1, 0x42, 0x3c, 0xba, + 0x31, 0x32, 0x45, 0x6d, 0x57, 0x82, 0x46, 0xcb, 0xd3, 0x65, 0x6a, 0x58, 0xe4, 0x2d, 0x61, 0xfc, + 0xd7, 0xe9, 0xa6, 0xc4, 0xee, 0x56, 0x49, 0x67, 0x2b, 0x7c, 0x51, 0xa0, 0x63, 0xf5, 0xac, 0x9f, + 0x08, 0xa4, 0xac, 0x2a, 0x7c, 0x86, 0xd8, 0xc8, 0xae, 0x78, 0x2a, 0x68, 0xce, 0x1f, 0xf2, 0x8e, + 0x7e, 0x76, 0xce, 0x08, 0x9a, 0x31, 0xf0, 0xee, 0x19, 0xfd, 0x58, 0x24, 0x46, 0x4d, 0xc6, 0xc9, + 0xbf, 0x19, 0x33, 0x63, 0x9b, 0xc3, 0x2c, 0x94, 0xb2, 0xc2, 0xf0, 0xa3, 0x67, 0xd4, 0x69, 0x61, + 0x73, 0x6d, 0xb9, 0xc6, 0x9d, 0xa4, 0x3c, 0x3f, 0x71, 0x11, 0xb8, 0xeb, 0x86, 0x07, 0x2c, 0x71, + 0x84, 0x22, 0x7d, 0x18, 0x88, 0x86, 0xd8, 0x78, 0x88, 0xea, 0xf4, 0x24, 0xa4, 0x95, 0x1a, 0xee, + 0x02, 0x0d, 0x04, 0x4b, 0x66, 0x82, 0x34, 0x61, 0xd6, 0x8a, 0x50, 0x67, 0xf4, 0x6e, 0xa6, 0xf4, + 0x21, 0x4b, 0x5f, 0x63, 0xcb, 0xc6, 0x4c, 0xe6, 0xa4, 0xe2, 0xfb, 0x31, 0xcc, 0x31, 0x86, 0xc7, + 0xde, 0x65, 0x68, 0xfd, 0x51, 0xca, 0x4b, 0x29, 0xe5, 0x68, 0x83, 0xfa, 0xc2, 0xc4, 0x4b, 0x95, + 0x53, 0xa1, 0xf9, 0xe1, 0x47, 0x2a, 0x3d, 0x36, 0x95, 0xe4, 0x18, 0xf4, 0x46, 0x53, 0xa9, 0x21, + 0x36, 0x96, 0xf8, 0x54, 0x6a, 0xa5, 0xa7, 0x9b, 0xca, 0x18, 0x41, 0x7d, 0x2a, 0xf5, 0x6e, 0xa6, + 0xf4, 0x61, 0xf0, 0x54, 0x9a, 0xc9, 0x9c, 0x7a, 0x2a, 0x63, 0x8f, 0x62, 0xb4, 0xfe, 0x98, 0xa6, + 0x32, 0x0e, 0xcf, 0xa6, 0x32, 0x5e, 0x1a, 0x3b, 0xe0, 0x67, 0x4c, 0x65, 0x1c, 0xf3, 0x0b, 0x4a, + 0x8f, 0xbd, 0xba, 0x39, 0xd5, 0x64, 0x8a, 0xd8, 0x0d, 0x31, 0xd4, 0xc6, 0x43, 0xb4, 0x4b, 0xad, + 0x4b, 0xb1, 0xf2, 0x93, 0x4d, 0xe8, 0x42, 0x1a, 0x51, 0x3a, 0xa5, 0x6b, 0x42, 0xcf, 0x8a, 0x77, + 0x37, 0xb5, 0x2f, 0x59, 0xf3, 0xc1, 0xa6, 0x35, 0x4e, 0xea, 0xb4, 0x13, 0xfb, 0x4c, 0x08, 0xcd, + 0xc4, 0xc3, 0xa5, 0x58, 0xaf, 0xd4, 0xc9, 0x4d, 0xad, 0x41, 0xdb, 0xd4, 0x76, 0x96, 0x2c, 0x57, + 0xec, 0x6e, 0x69, 0x2f, 0xa4, 0x06, 0x52, 0x4d, 0xbc, 0x84, 0x52, 0xa9, 0xa6, 0x3d, 0x93, 0x92, + 0x54, 0x93, 0xd8, 0xcb, 0xf4, 0xb3, 0xdd, 0xf6, 0xc9, 0xb1, 0xb3, 0x9d, 0x3c, 0x93, 0xea, 0xfc, + 0x13, 0x37, 0xc4, 0x3a, 0x78, 0x63, 0x09, 0xad, 0xd1, 0x05, 0xa8, 0x17, 0x67, 0x1d, 0xda, 0xcd, + 0x64, 0xe8, 0xfa, 0x58, 0x15, 0xa7, 0x90, 0x58, 0x9f, 0xd2, 0xda, 0x4e, 0xef, 0x94, 0xb4, 0x68, + 0x9c, 0x70, 0x74, 0x69, 0xab, 0x83, 0x69, 0x81, 0xcc, 0x80, 0x30, 0x88, 0x33, 0x34, 0x80, 0xaa, + 0x4c, 0x34, 0xdd, 0x58, 0x42, 0xdf, 0x87, 0x09, 0x81, 0x3c, 0x98, 0x21, 0x71, 0x6c, 0xca, 0x90, + 0xcf, 0x60, 0x92, 0x33, 0x84, 0xf6, 0x20, 0xad, 0xa5, 0x0c, 0x95, 0x72, 0x92, 0x2d, 0xee, 0x37, + 0xc4, 0xa7, 0x8a, 0x90, 0xf2, 0x1e, 0x51, 0x51, 0x84, 0x92, 0x0f, 0x23, 0x15, 0x45, 0xc8, 0xf4, + 0x84, 0xf1, 0x7b, 0x30, 0xc9, 0xa7, 0x24, 0x93, 0x9b, 0xe9, 0x27, 0xd4, 0x39, 0xc5, 0xf3, 0xb1, + 0xdf, 0x76, 0xc3, 0x9a, 0xd7, 0x7d, 0xee, 0xee, 0x0f, 0x64, 0x6c, 0x12, 0xa5, 0xb1, 0x84, 0x1a, + 0x34, 0x50, 0xb4, 0x08, 0xdf, 0x8d, 0xc3, 0x57, 0x9e, 0xff, 0xc2, 0xed, 0xee, 0x0f, 0x20, 0x79, + 0x4d, 0x27, 0x19, 0xc7, 0x63, 0x74, 0xeb, 0xe9, 0x74, 0x07, 0xe2, 0x67, 0x9c, 0x50, 0x17, 0xa8, + 0xef, 0xc1, 0x69, 0x7b, 0x9c, 0x7e, 0xfb, 0x71, 0x39, 0xf2, 0x19, 0xb4, 0x71, 0xcb, 0xf3, 0xdb, + 0x83, 0x89, 0x95, 0x75, 0x0f, 0xbd, 0x18, 0x5a, 0x63, 0x89, 0x50, 0xad, 0xa7, 0x52, 0x1d, 0x84, + 0x9d, 0x21, 0xa1, 0xaf, 0xd0, 0xb1, 0x9f, 0xb2, 0xb7, 0xe9, 0x16, 0x3d, 0xea, 0x07, 0xd5, 0x0f, + 0x0f, 0xb6, 0x7c, 0xfc, 0x1c, 0xfb, 0xd4, 0xf1, 0x73, 0x90, 0xcb, 0xa3, 0x0e, 0xde, 0x58, 0x22, + 0x54, 0xea, 0x09, 0x2a, 0x69, 0xd0, 0x59, 0xca, 0x09, 0x1d, 0xda, 0x09, 0x7b, 0x93, 0x46, 0xe6, + 0x43, 0x6a, 0x77, 0xdd, 0x59, 0x1b, 0xc0, 0x11, 0xe1, 0x8a, 0x2c, 0x00, 0x1b, 0x0f, 0x08, 0x66, + 0x5d, 0xc1, 0x4c, 0x42, 0xa4, 0xb6, 0xf9, 0x7d, 0x61, 0x60, 0x1d, 0xd8, 0x6c, 0xba, 0x47, 0xc5, + 0x84, 0x4c, 0x62, 0x81, 0x94, 0xa3, 0xb4, 0x96, 0xa2, 0xa1, 0x34, 0xad, 0x3a, 0x3e, 0x06, 0xa8, + 0xc2, 0x34, 0x57, 0x35, 0x99, 0x83, 0x72, 0xb7, 0x6b, 0xcc, 0xf2, 0x10, 0x27, 0xc1, 0x4c, 0x01, + 0xeb, 0x5e, 0xeb, 0x85, 0x6a, 0x0a, 0x50, 0xb2, 0x03, 0x94, 0xf4, 0xd8, 0xfd, 0x7c, 0x13, 0xa0, + 0x01, 0xfc, 0x55, 0x27, 0x13, 0x35, 0x3f, 0x80, 0x6a, 0x0a, 0xd0, 0x33, 0x19, 0x48, 0x53, 0x00, + 0x6d, 0x50, 0xa7, 0x3c, 0xd8, 0x14, 0x40, 0x91, 0x74, 0x53, 0x80, 0xda, 0xd1, 0x74, 0x71, 0x81, + 0x92, 0xa9, 0x0c, 0xa4, 0x92, 0x99, 0x9a, 0xe5, 0x20, 0xc3, 0x7f, 0xe4, 0xa2, 0x21, 0xfb, 0x8a, + 0x3c, 0x62, 0xa7, 0x67, 0x66, 0x29, 0xe9, 0xce, 0x10, 0xf7, 0x73, 0x68, 0x83, 0xa6, 0x2b, 0xe7, + 0x02, 0xcc, 0xc6, 0x41, 0xe8, 0xbb, 0xf4, 0xb9, 0x4d, 0xfa, 0x0e, 0x29, 0x74, 0x4a, 0x03, 0x4e, + 0xe3, 0x5d, 0x42, 0xaf, 0x6e, 0xa6, 0x97, 0x89, 0x97, 0x61, 0x45, 0xe1, 0x26, 0xb7, 0xd3, 0x74, + 0x31, 0x7d, 0x89, 0x8f, 0xb1, 0x9b, 0xfb, 0x74, 0xd4, 0x42, 0x14, 0xaf, 0x8f, 0x6b, 0xc9, 0x77, + 0x61, 0x94, 0x21, 0xa5, 0xee, 0x91, 0x53, 0x2a, 0x0e, 0x7a, 0x20, 0xdc, 0xcc, 0x08, 0x8a, 0x56, + 0x95, 0xda, 0xaf, 0x07, 0x30, 0xc1, 0xee, 0x23, 0x4e, 0x8e, 0xf2, 0x89, 0x70, 0x46, 0xcb, 0xea, + 0x58, 0xba, 0x7f, 0xe6, 0xb4, 0x7a, 0x69, 0x7f, 0x7a, 0x46, 0x7e, 0x8f, 0xde, 0x09, 0x09, 0x53, + 0x61, 0x3a, 0xfe, 0x5c, 0x2c, 0x20, 0x1d, 0x67, 0x29, 0x13, 0x90, 0x32, 0x8d, 0x51, 0x5a, 0xf7, + 0x2f, 0x24, 0xb0, 0xd1, 0x27, 0xe2, 0x11, 0x84, 0x44, 0x4e, 0x02, 0x65, 0xf0, 0x6c, 0x86, 0xb1, + 0xf9, 0x4d, 0x90, 0xa5, 0x80, 0x1d, 0xd8, 0xed, 0x93, 0xdc, 0x5d, 0x0d, 0x66, 0x5d, 0x1a, 0x95, + 0x4d, 0xaa, 0x78, 0x25, 0x42, 0x25, 0xa6, 0x13, 0x5a, 0x4c, 0x8f, 0xae, 0x48, 0x27, 0xe3, 0x09, + 0x3d, 0xcc, 0x24, 0x53, 0x52, 0xa5, 0x0d, 0x2f, 0x23, 0x5a, 0x63, 0x74, 0x7a, 0x4b, 0x92, 0xcb, + 0x40, 0xcb, 0x3a, 0x0c, 0xb2, 0x09, 0x3b, 0x1b, 0x72, 0x6b, 0xc2, 0x89, 0xea, 0xe4, 0x83, 0xcd, + 0x50, 0x82, 0x0c, 0xb7, 0x3b, 0x03, 0xe7, 0x22, 0x8d, 0xdc, 0x8f, 0xa9, 0xfe, 0x67, 0xce, 0x43, + 0x93, 0x4a, 0xec, 0xb6, 0x72, 0xe1, 0x9a, 0x9d, 0xc1, 0xe6, 0x05, 0x7d, 0x5d, 0x62, 0x0e, 0x26, + 0x79, 0x6b, 0x00, 0x15, 0xc1, 0x89, 0xb7, 0x07, 0xc2, 0xc9, 0xbb, 0x82, 0x2b, 0x6c, 0x87, 0x35, + 0xb7, 0x37, 0x20, 0x38, 0xa6, 0xe1, 0xfa, 0x26, 0x25, 0xc9, 0x8b, 0x20, 0xa8, 0x7b, 0xa8, 0x65, + 0x8e, 0x21, 0xfd, 0x22, 0xb7, 0x1c, 0xdd, 0x2a, 0x9f, 0x6e, 0x12, 0xd2, 0x35, 0x7a, 0x94, 0x4c, + 0x7d, 0x83, 0xb2, 0x42, 0x17, 0x96, 0xae, 0xa7, 0x71, 0x38, 0x50, 0xdc, 0x15, 0xb8, 0x3f, 0x4c, + 0x2c, 0xac, 0x6a, 0x5a, 0x80, 0xd6, 0x0c, 0x7b, 0x0d, 0x7f, 0x6e, 0x73, 0x26, 0x84, 0x92, 0xb3, + 0x7d, 0x7a, 0x42, 0xf2, 0x92, 0x32, 0x46, 0xc8, 0xca, 0x98, 0xde, 0xd3, 0xf8, 0xb4, 0xc4, 0xa7, + 0xe2, 0xb4, 0x13, 0xea, 0x44, 0x4f, 0x4c, 0x92, 0xf9, 0x79, 0xa4, 0x2e, 0x97, 0x9a, 0x2b, 0x48, + 0xce, 0x6e, 0x46, 0x72, 0x9f, 0x1a, 0xf9, 0x4c, 0x59, 0x13, 0x5a, 0x72, 0x90, 0x9a, 0xbd, 0x2e, + 0x4f, 0xfa, 0xa6, 0xac, 0x21, 0x25, 0x10, 0x95, 0xf6, 0x3a, 0xaa, 0x43, 0x89, 0x2d, 0x11, 0xd3, + 0xd3, 0x69, 0xf9, 0x2a, 0xc0, 0x54, 0x99, 0x71, 0xba, 0xa8, 0x43, 0x89, 0x2d, 0x97, 0xb3, 0x24, + 0xda, 0xa4, 0x89, 0xe0, 0x8c, 0x14, 0x6f, 0x2a, 0x8f, 0x2b, 0xd3, 0x1f, 0xa4, 0x97, 0xb2, 0x1b, + 0x46, 0x3f, 0x82, 0x39, 0xe3, 0x8b, 0x74, 0x79, 0x8f, 0x9c, 0xf5, 0x5e, 0x7d, 0x10, 0xf1, 0x17, + 0x50, 0x4c, 0xcb, 0xfd, 0x11, 0xbd, 0x52, 0xc8, 0x4e, 0xaf, 0x22, 0x65, 0xea, 0xc0, 0x24, 0x22, + 0x1b, 0x30, 0x6b, 0xca, 0xa7, 0x21, 0x3f, 0x8e, 0x8c, 0x64, 0x1b, 0xc6, 0xa7, 0x10, 0x5b, 0x30, + 0x67, 0xcc, 0x69, 0x21, 0x39, 0x93, 0x95, 0xf1, 0xc2, 0x48, 0xf1, 0x4b, 0x98, 0x4f, 0x49, 0xe0, + 0x10, 0x5d, 0x76, 0x65, 0x26, 0x78, 0xc8, 0xb8, 0x74, 0x2f, 0xa5, 0xe7, 0x06, 0x90, 0xbe, 0x16, + 0x03, 0xd3, 0x07, 0x94, 0x8c, 0x09, 0x53, 0xd0, 0x36, 0x5d, 0x84, 0xa6, 0x64, 0x01, 0xea, 0x22, + 0xcc, 0x48, 0x26, 0x90, 0xf2, 0x84, 0x65, 0x3e, 0x25, 0x3f, 0x40, 0x06, 0xd5, 0x13, 0xf4, 0x76, + 0x43, 0xc8, 0x7f, 0x3d, 0x60, 0x7c, 0xcc, 0x1f, 0xd2, 0x18, 0x4d, 0xde, 0xd8, 0x4f, 0xe5, 0xd1, + 0x74, 0xa7, 0x93, 0xa1, 0x06, 0x21, 0xf5, 0xd5, 0x34, 0x81, 0x6c, 0x3c, 0x20, 0x87, 0x08, 0x15, + 0x37, 0x4b, 0xa2, 0x26, 0x90, 0xa9, 0xe2, 0xf9, 0x31, 0x4c, 0xd5, 0xd5, 0xc6, 0x0d, 0x8d, 0xa4, + 0x2e, 0x0a, 0xf9, 0x52, 0x60, 0x70, 0xdf, 0x07, 0xde, 0x44, 0x55, 0x3a, 0x9d, 0x13, 0x8d, 0x22, + 0xd5, 0x26, 0xab, 0xc5, 0xd4, 0x95, 0x92, 0xda, 0x14, 0x2a, 0x5a, 0xda, 0x64, 0xcd, 0x61, 0x78, + 0x57, 0x28, 0x4b, 0xa3, 0x88, 0x84, 0x19, 0x67, 0x70, 0xb9, 0x88, 0x0c, 0x81, 0x0f, 0x9f, 0xaa, + 0xcf, 0xd9, 0x59, 0x1c, 0xc3, 0x0c, 0x23, 0x62, 0xfc, 0x19, 0x7b, 0x2c, 0xf0, 0x61, 0x03, 0x8a, + 0x22, 0xa2, 0x18, 0x8b, 0xe9, 0x15, 0xc5, 0x30, 0x8a, 0xdc, 0x91, 0xd2, 0x43, 0x8e, 0x65, 0xf0, + 0xad, 0x10, 0x8f, 0xd6, 0x21, 0x2d, 0x47, 0x29, 0x61, 0x3c, 0x32, 0x56, 0x03, 0x44, 0x31, 0x39, + 0xa4, 0x7d, 0x26, 0x11, 0xa6, 0xa3, 0x74, 0xd9, 0x50, 0x23, 0x35, 0xab, 0x29, 0x35, 0x82, 0x87, + 0xf4, 0xd6, 0x30, 0x84, 0xf5, 0x28, 0x5d, 0x31, 0xd6, 0x71, 0x42, 0x21, 0x5c, 0xc9, 0x48, 0x84, + 0x27, 0xb5, 0xd5, 0xc1, 0x09, 0xfb, 0x4a, 0x77, 0x4e, 0x02, 0xca, 0x5b, 0xc5, 0x32, 0x42, 0x60, + 0x12, 0x0a, 0xbd, 0x6d, 0x70, 0x57, 0x36, 0xe5, 0x98, 0x2b, 0x0d, 0xca, 0xc1, 0x87, 0x76, 0x61, + 0x21, 0xe6, 0x4e, 0xad, 0xb7, 0x34, 0x88, 0x40, 0xea, 0x0c, 0xee, 0xc2, 0x02, 0x7f, 0xe1, 0x7d, + 0xc6, 0x84, 0xf7, 0x60, 0x21, 0x2b, 0xbb, 0x1e, 0xba, 0x63, 0x76, 0x99, 0x36, 0xb2, 0x27, 0x5d, + 0x75, 0xbd, 0x96, 0x74, 0x9d, 0x8e, 0xcd, 0xfb, 0x69, 0xc5, 0xca, 0x33, 0x98, 0xd1, 0x33, 0xeb, + 0x21, 0x55, 0x74, 0x24, 0xf2, 0xfc, 0x95, 0xae, 0xa6, 0xd4, 0xf2, 0xf5, 0xf1, 0x19, 0x15, 0xf4, + 0xb2, 0x42, 0x8d, 0xfa, 0x10, 0xcf, 0x5c, 0x57, 0x32, 0xa4, 0xe9, 0x43, 0xdf, 0x83, 0xf3, 0xd1, + 0x1b, 0x3d, 0x46, 0xc2, 0x00, 0x96, 0x61, 0x2f, 0x3a, 0x1f, 0xbd, 0xd6, 0x3b, 0x3d, 0xfa, 0xaa, + 0x90, 0xf6, 0x11, 0xfa, 0xd5, 0x84, 0x17, 0xb9, 0x36, 0x86, 0x93, 0x08, 0x7d, 0x85, 0xb7, 0xa7, + 0x9d, 0x9d, 0x16, 0xfd, 0xdc, 0xcc, 0x61, 0x75, 0xd4, 0xcf, 0x2d, 0x33, 0xf4, 0x8f, 0xd4, 0x30, + 0x53, 0xe8, 0x74, 0xe0, 0xfa, 0xc0, 0x40, 0x40, 0xe8, 0x9e, 0x16, 0x1f, 0x61, 0x70, 0xc8, 0xa0, + 0xb4, 0x21, 0x55, 0x97, 0x7f, 0xfe, 0xe7, 0x8b, 0xb9, 0x9f, 0xff, 0x62, 0x31, 0xf7, 0x1f, 0x7f, + 0xb1, 0x98, 0xfb, 0xef, 0xbf, 0x58, 0xcc, 0xfd, 0x70, 0xe9, 0x64, 0x91, 0xed, 0x5a, 0x1d, 0x17, + 0x77, 0xc3, 0x7b, 0x8c, 0xdc, 0x28, 0xfd, 0xef, 0xe1, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xdf, + 0x26, 0x01, 0x30, 0xb9, 0xcd, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -25735,6 +25799,15 @@ func (m *UserCertsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0xa2 } + if len(m.SSHLogin) > 0 { + i -= len(m.SSHLogin) + copy(dAtA[i:], m.SSHLogin) + i = encodeVarintAuthservice(dAtA, i, uint64(len(m.SSHLogin))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } if m.MFAResponse != nil { { size, err := m.MFAResponse.MarshalToSizedBuffer(dAtA[:i]) @@ -29552,6 +29625,11 @@ func (m *MFAAuthenticateChallenge) MarshalToSizedBuffer(dAtA []byte) (int, error i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.MFARequired != 0 { + i = encodeVarintAuthservice(dAtA, i, uint64(m.MFARequired)) + i-- + dAtA[i] = 0x20 + } if m.WebauthnChallenge != nil { { size, err := m.WebauthnChallenge.MarshalToSizedBuffer(dAtA[:i]) @@ -36183,6 +36261,10 @@ func (m *UserCertsRequest) Size() (n int) { l = m.MFAResponse.Size() n += 2 + l + sovAuthservice(uint64(l)) } + l = len(m.SSHLogin) + if l > 0 { + n += 2 + l + sovAuthservice(uint64(l)) + } if m.AttestationStatement != nil { l = m.AttestationStatement.Size() n += 2 + l + sovAuthservice(uint64(l)) @@ -37883,6 +37965,9 @@ func (m *MFAAuthenticateChallenge) Size() (n int) { l = m.WebauthnChallenge.Size() n += 1 + l + sovAuthservice(uint64(l)) } + if m.MFARequired != 0 { + n += 1 + sovAuthservice(uint64(m.MFARequired)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -43585,6 +43670,38 @@ func (m *UserCertsRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SSHLogin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthservice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAuthservice + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAuthservice + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SSHLogin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 20: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AttestationStatement", wireType) @@ -52960,6 +53077,25 @@ func (m *MFAAuthenticateChallenge) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MFARequired", wireType) + } + m.MFARequired = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthservice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MFARequired |= MFARequired(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipAuthservice(dAtA[iNdEx:]) diff --git a/api/proto/teleport/legacy/client/proto/authservice.proto b/api/proto/teleport/legacy/client/proto/authservice.proto index a319235f56dd3..69c19705aa0a7 100644 --- a/api/proto/teleport/legacy/client/proto/authservice.proto +++ b/api/proto/teleport/legacy/client/proto/authservice.proto @@ -319,6 +319,11 @@ message UserCertsRequest { // and the ID of the validated MFA device will be stored in the certificate. MFAAuthenticateResponse MFAResponse = 18 [(gogoproto.jsontag) = "mfa_response,omitempty"]; + // SSHLogin is the OS Login for the SSH session that the certificate will be used for. + // This login is used when performing RBAC checks to determine if MFA is required + // to access the resource. + string SSHLogin = 19; + // AttestationStatement is an attestation statement for the given public key. teleport.attestation.v1.AttestationStatement attestation_statement = 20; } @@ -1090,6 +1095,20 @@ enum DeviceUsage { DEVICE_USAGE_PASSWORDLESS = 2; } +// MFARequired indicates if MFA is required to access a +// resource. +enum MFARequired { + // Indicates the client/server are either old and don't support + // checking if MFA is required during the ceremony or that there + // was a catastrophic error checking RBAC to determine if completing + // an MFA ceremony will grant access to a resource. + MFA_REQUIRED_UNSPECIFIED = 0; + // Completing an MFA ceremony will grant access to a resource. + MFA_REQUIRED_YES = 1; + // Completing an MFA ceremony will not grant access to a resource. + MFA_REQUIRED_NO = 2; +} + // MFAAuthenticateChallenge is a challenge for all MFA devices registered for a // user. message MFAAuthenticateChallenge { @@ -1104,6 +1123,11 @@ message MFAAuthenticateChallenge { // credentials for the ceremony (one for each U2F or Webauthn device // registered by the user). webauthn.CredentialAssertion WebauthnChallenge = 3; + // MFARequired indicates whether proceeding with the MFA ceremony will + // grant access to the resource. If `MFA_REQUIRED_NO` is returned by the + // server then the stream will be terminated to prevent a fruitless MFA ceremony from + // proceeding. + MFARequired MFARequired = 4; } // MFAAuthenticateResponse is a response to MFAAuthenticateChallenge using one diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 8872d339d4999..603ad3d0afe35 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -4316,23 +4316,17 @@ func (a *Server) isMFARequired(ctx context.Context, checker services.AccessCheck if t.Node.Login == "" { return nil, trace.BadParameter("empty Login field") } + // Find the target node and check whether MFA is required. - nodes, err := a.GetNodes(ctx, apidefaults.Namespace) + matches, err := client.GetResourcesWithFilters(ctx, a, proto.ListResourcesRequest{ + ResourceType: types.KindNode, + Namespace: apidefaults.Namespace, + SearchKeywords: []string{t.Node.Node}, + }) if err != nil { return nil, trace.Wrap(err) } - var matches []types.Server - for _, n := range nodes { - // Get the server address without port number. - addr, _, err := net.SplitHostPort(n.GetAddr()) - if err != nil { - addr = n.GetAddr() - } - // Match NodeName to UUID, hostname or self-reported server address. - if n.GetName() == t.Node.Node || n.GetHostname() == t.Node.Node || addr == t.Node.Node { - matches = append(matches, n) - } - } + if len(matches) == 0 { // If t.Node.Node is not a known registered node, it may be an // unregistered host running OpenSSH with a certificate created via @@ -4348,7 +4342,21 @@ func (a *Server) isMFARequired(ctx context.Context, checker services.AccessCheck // Check RBAC against all matching nodes and return the first error. // If at least one node requires MFA, we'll catch it. for _, n := range matches { - err := checker.CheckAccess( + srv, ok := n.(types.Server) + if !ok { + continue + } + // Get the server address without port number. + addr, _, err := net.SplitHostPort(srv.GetAddr()) + if err != nil { + addr = srv.GetAddr() + } + // Filter out any matches on labels before checking access + if n.GetName() != t.Node.Node && srv.GetHostname() != t.Node.Node && addr != t.Node.Node { + continue + } + + err = checker.CheckAccess( n, services.AccessState{}, services.NewLoginMatcher(t.Node.Login), diff --git a/lib/auth/grpcserver.go b/lib/auth/grpcserver.go index 4d1f8ae8ebd20..877d2bb2f9d01 100644 --- a/lib/auth/grpcserver.go +++ b/lib/auth/grpcserver.go @@ -2586,9 +2586,26 @@ func (g *GRPCServer) GenerateUserSingleUseCerts(stream proto.AuthService_Generat return trace.Wrap(err) } + mfaRequired := proto.MFARequired_MFA_REQUIRED_UNSPECIFIED + if required, err := isMFARequiredForSingleUseCertRequest(ctx, actx, initReq); err == nil { + // If MFA is not required to gain access to the resource then let the client + // know and abort the ceremony. + if !required { + return trace.Wrap(stream.Send(&proto.UserSingleUseCertsResponse{ + Response: &proto.UserSingleUseCertsResponse_MFAChallenge{ + MFAChallenge: &proto.MFAAuthenticateChallenge{ + MFARequired: proto.MFARequired_MFA_REQUIRED_NO, + }, + }, + })) + } + + mfaRequired = proto.MFARequired_MFA_REQUIRED_YES + } + // 2. send MFAChallenge // 3. receive and validate MFAResponse - mfaDev, err := userSingleUseCertsAuthChallenge(actx, stream) + mfaDev, err := userSingleUseCertsAuthChallenge(actx, stream, mfaRequired) if err != nil { g.Entry.Debugf("Failed to perform single-use cert challenge: %v", err) return trace.Wrap(err) @@ -2657,6 +2674,38 @@ func validateUserSingleUseCertRequest(ctx context.Context, actx *grpcContext, re return nil } +// isMFARequiredForSingleUseCertRequest validates that mfa is actually required for +// the target of the single-use user cert. +func isMFARequiredForSingleUseCertRequest(ctx context.Context, actx *grpcContext, req *proto.UserCertsRequest) (bool, error) { + mfaReq := &proto.IsMFARequiredRequest{} + + switch req.Usage { + case proto.UserCertsRequest_SSH: + // An old or non-conforming client did not provide a login which means rbac + // won't be able to accurately determine if mfa is required. + if req.SSHLogin == "" { + return false, trace.BadParameter("no ssh login provided") + } + + mfaReq.Target = &proto.IsMFARequiredRequest_Node{Node: &proto.NodeLogin{Node: req.NodeName, Login: req.SSHLogin}} + case proto.UserCertsRequest_Kubernetes: + mfaReq.Target = &proto.IsMFARequiredRequest_KubernetesCluster{KubernetesCluster: req.KubernetesCluster} + case proto.UserCertsRequest_Database: + mfaReq.Target = &proto.IsMFARequiredRequest_Database{Database: &req.RouteToDatabase} + case proto.UserCertsRequest_WindowsDesktop: + mfaReq.Target = &proto.IsMFARequiredRequest_WindowsDesktop{WindowsDesktop: &req.RouteToWindowsDesktop} + default: + return false, trace.BadParameter("unknown certificate Usage %q", req.Usage) + } + + resp, err := actx.IsMFARequired(ctx, mfaReq) + if err != nil { + return false, trace.Wrap(err) + } + + return resp.Required, nil +} + // isDBLocalProxyTunnelCertReq returns whether a cert request is for // a database cert and the requester is a local proxy tunnel. func isDBLocalProxyTunnelCertReq(req *proto.UserCertsRequest) bool { @@ -2664,7 +2713,7 @@ func isDBLocalProxyTunnelCertReq(req *proto.UserCertsRequest) bool { req.RequesterName == proto.UserCertsRequest_TSH_DB_LOCAL_PROXY_TUNNEL } -func userSingleUseCertsAuthChallenge(gctx *grpcContext, stream proto.AuthService_GenerateUserSingleUseCertsServer) (*types.MFADevice, error) { +func userSingleUseCertsAuthChallenge(gctx *grpcContext, stream proto.AuthService_GenerateUserSingleUseCertsServer, mfaRequired proto.MFARequired) (*types.MFADevice, error) { ctx := stream.Context() auth := gctx.authServer user := gctx.User.GetName() @@ -2677,6 +2726,9 @@ func userSingleUseCertsAuthChallenge(gctx *grpcContext, stream proto.AuthService if challenge.TOTP == nil && challenge.WebauthnChallenge == nil { return nil, trace.AccessDenied("MFA is required to access this resource but user has no MFA devices; use 'tsh mfa add' to register MFA devices") } + + challenge.MFARequired = mfaRequired + if err := stream.Send(&proto.UserSingleUseCertsResponse{ Response: &proto.UserSingleUseCertsResponse_MFAChallenge{MFAChallenge: challenge}, }); err != nil { diff --git a/lib/auth/grpcserver_test.go b/lib/auth/grpcserver_test.go index 0272560805e73..007be70e88c10 100644 --- a/lib/auth/grpcserver_test.go +++ b/lib/auth/grpcserver_test.go @@ -23,6 +23,7 @@ import ( "encoding/base32" "encoding/pem" "fmt" + "io" "net" "net/http" "net/http/httptest" @@ -921,10 +922,32 @@ func TestGenerateUserCerts_deviceAuthz(t *testing.T) { authServer := testServer.Auth() // Create a user for testing. - user, _, err := CreateUserAndRole(testServer.Auth(), "llama", []string{"llama"}) + user, role, err := CreateUserAndRole(testServer.Auth(), "llama", []string{"llama"}) require.NoError(t, err, "CreateUserAndRole failed") username := user.GetName() + // Make sure MFA is required for this user. + roleOpt := role.GetOptions() + roleOpt.RequireMFAType = types.RequireMFAType_SESSION + role.SetOptions(roleOpt) + + err = authServer.UpsertRole(ctx, role) + require.NoError(t, err) + + // Register an SSH node. + node := &types.ServerV2{ + Kind: types.KindNode, + Version: types.V2, + Metadata: types.Metadata{ + Name: "mynode", + }, + Spec: types.ServerSpecV2{ + Hostname: "node-a", + }, + } + _, err = authServer.UpsertNode(ctx, node) + require.NoError(t, err) + // Create clients with and without device extensions. clientWithoutDevice, err := testServer.NewClient(TestUser(username)) require.NoError(t, err, "NewClient failed") @@ -973,6 +996,7 @@ func TestGenerateUserCerts_deviceAuthz(t *testing.T) { RouteToCluster: clusterName, NodeName: "mynode", Usage: proto.UserCertsRequest_SSH, + SSHLogin: "llama", } appReq := proto.UserCertsRequest{ PublicKey: pub, @@ -1163,7 +1187,7 @@ func TestGenerateUserSingleUseCert(t *testing.T) { // Register an SSH node. node := &types.ServerV2{ - Kind: types.KindKubeService, + Kind: types.KindNode, Version: types.V2, Metadata: types.Metadata{ Name: "node-a", @@ -1174,18 +1198,15 @@ func TestGenerateUserSingleUseCert(t *testing.T) { } _, err = srv.Auth().UpsertNode(ctx, node) require.NoError(t, err) - // Register a k8s cluster. - k8sSrv := &types.ServerV2{ - Kind: types.KindKubeService, - Version: types.V2, - Metadata: types.Metadata{ - Name: "kube-a", - }, - Spec: types.ServerSpecV2{ - KubernetesClusters: []*types.KubernetesCluster{{Name: "kube-a"}}, - }, - } - _, err = srv.Auth().UpsertKubeServiceV2(ctx, k8sSrv) + + kube, err := types.NewKubernetesClusterV3(types.Metadata{ + Name: "kube-a", + }, types.KubernetesClusterSpecV3{}) + + require.NoError(t, err) + kubeServer, err := types.NewKubernetesServerV3FromCluster(kube, "kube-a", "kube-a") + require.NoError(t, err) + _, err = srv.Auth().UpsertKubernetesServer(ctx, kubeServer) require.NoError(t, err) // Register a database. db, err := types.NewDatabaseServerV3(types.Metadata{ @@ -1207,6 +1228,9 @@ func TestGenerateUserSingleUseCert(t *testing.T) { // Make sure MFA is required for this user. roleOpt := role.GetOptions() roleOpt.RequireMFAType = types.RequireMFAType_SESSION + role.SetDatabaseUsers(types.Allow, []string{types.Wildcard}) + role.SetDatabaseLabels(types.Allow, types.Labels{types.Wildcard: {types.Wildcard}}) + role.SetDatabaseNames(types.Allow, []string{types.Wildcard}) role.SetOptions(roleOpt) err = srv.Auth().UpsertRole(ctx, role) require.NoError(t, err) @@ -1255,8 +1279,12 @@ func TestGenerateUserSingleUseCert(t *testing.T) { Expires: clock.Now().Add(2 * teleport.UserSingleUseCertTTL), Usage: proto.UserCertsRequest_SSH, NodeName: "node-a", + SSHLogin: "role", }, checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, authHandler: registered.webAuthHandler, checkAuthErr: require.NoError, validateCert: func(t *testing.T, c *proto.SingleUseUserCert) { @@ -1284,8 +1312,12 @@ func TestGenerateUserSingleUseCert(t *testing.T) { Expires: clock.Now().Add(2 * teleport.UserSingleUseCertTTL), Usage: proto.UserCertsRequest_SSH, NodeName: "node-a", + SSHLogin: "role", }, checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, authHandler: registered.webAuthHandler, checkAuthErr: require.NoError, validateCert: func(t *testing.T, c *proto.SingleUseUserCert) { @@ -1315,6 +1347,9 @@ func TestGenerateUserSingleUseCert(t *testing.T) { KubernetesCluster: "kube-a", }, checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, authHandler: registered.webAuthHandler, checkAuthErr: require.NoError, validateCert: func(t *testing.T, c *proto.SingleUseUserCert) { @@ -1347,9 +1382,13 @@ func TestGenerateUserSingleUseCert(t *testing.T) { Usage: proto.UserCertsRequest_Database, RouteToDatabase: proto.RouteToDatabase{ ServiceName: "db-a", + Database: "db-a", }, }, checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, authHandler: registered.webAuthHandler, checkAuthErr: require.NoError, validateCert: func(t *testing.T, c *proto.SingleUseUserCert) { @@ -1387,6 +1426,9 @@ func TestGenerateUserSingleUseCert(t *testing.T) { RequesterName: proto.UserCertsRequest_TSH_DB_LOCAL_PROXY_TUNNEL, }, checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, authHandler: registered.webAuthHandler, checkAuthErr: require.NoError, validateCert: func(t *testing.T, c *proto.SingleUseUserCert) { @@ -1429,8 +1471,12 @@ func TestGenerateUserSingleUseCert(t *testing.T) { Expires: clock.Now().Add(teleport.UserSingleUseCertTTL), Usage: proto.UserCertsRequest_SSH, NodeName: "node-a", + SSHLogin: "role", }, checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, authHandler: func(t *testing.T, req *proto.MFAAuthenticateChallenge) *proto.MFAAuthenticateResponse { // Return no challenge response. return &proto.MFAAuthenticateResponse{} @@ -1459,8 +1505,12 @@ func TestGenerateUserSingleUseCert(t *testing.T) { Expires: clock.Now().Add(teleport.UserSingleUseCertTTL), Usage: proto.UserCertsRequest_SSH, NodeName: "node-a", + SSHLogin: "role", }, checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, authHandler: registered.webAuthHandler, checkAuthErr: require.NoError, validateCert: func(t *testing.T, c *proto.SingleUseUserCert) { @@ -1507,6 +1557,9 @@ func TestGenerateUserSingleUseCert(t *testing.T) { }, checkInitErr: require.NoError, authHandler: registered.webAuthHandler, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_YES, required) + }, checkAuthErr: require.NoError, validateCert: func(t *testing.T, c *proto.SingleUseUserCert) { // TLS certificate. @@ -1527,6 +1580,51 @@ func TestGenerateUserSingleUseCert(t *testing.T) { }, }, }, + { + desc: "fail - mfa not required when RBAC prevents access", + opts: generateUserSingleUseCertTestOpts{ + initReq: &proto.UserCertsRequest{ + PublicKey: pub, + Username: user.GetName(), + Expires: clock.Now().Add(teleport.UserSingleUseCertTTL), + Usage: proto.UserCertsRequest_SSH, + NodeName: "node-a", + SSHLogin: "llama", // not an allowed login which prevents access + }, + checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_NO, required) + }, + authHandler: func(t *testing.T, req *proto.MFAAuthenticateChallenge) *proto.MFAAuthenticateResponse { + // Return no challenge response. + return &proto.MFAAuthenticateResponse{} + }, + checkAuthErr: func(t require.TestingT, err error, i ...interface{}) { + require.ErrorIs(t, err, io.EOF, i...) + }, + }, + }, + { + desc: "mfa unspecified when no SSHLogin provided", + opts: generateUserSingleUseCertTestOpts{ + initReq: &proto.UserCertsRequest{ + PublicKey: pub, + Username: user.GetName(), + Expires: clock.Now().Add(teleport.UserSingleUseCertTTL), + Usage: proto.UserCertsRequest_SSH, + NodeName: "node-a", + }, + checkInitErr: require.NoError, + mfaRequiredHandler: func(t *testing.T, required proto.MFARequired) { + require.Equal(t, proto.MFARequired_MFA_REQUIRED_UNSPECIFIED, required) + }, + authHandler: func(t *testing.T, req *proto.MFAAuthenticateChallenge) *proto.MFAAuthenticateResponse { + // Return no challenge response. + return &proto.MFAAuthenticateResponse{} + }, + checkAuthErr: require.Error, + }, + }, } for _, tt := range tests { t.Run(tt.desc, func(t *testing.T) { @@ -1543,11 +1641,12 @@ func TestGenerateUserSingleUseCert(t *testing.T) { } type generateUserSingleUseCertTestOpts struct { - initReq *proto.UserCertsRequest - checkInitErr require.ErrorAssertionFunc - authHandler func(*testing.T, *proto.MFAAuthenticateChallenge) *proto.MFAAuthenticateResponse - checkAuthErr require.ErrorAssertionFunc - validateCert func(*testing.T, *proto.SingleUseUserCert) + initReq *proto.UserCertsRequest + checkInitErr require.ErrorAssertionFunc + authHandler func(*testing.T, *proto.MFAAuthenticateChallenge) *proto.MFAAuthenticateResponse + mfaRequiredHandler func(*testing.T, proto.MFARequired) + checkAuthErr require.ErrorAssertionFunc + validateCert func(*testing.T, *proto.SingleUseUserCert) } func testGenerateUserSingleUseCert(ctx context.Context, t *testing.T, cl *Client, opts generateUserSingleUseCertTestOpts) { @@ -1561,9 +1660,18 @@ func testGenerateUserSingleUseCert(ctx context.Context, t *testing.T, cl *Client if err != nil { return } - authResp := opts.authHandler(t, authChallenge.GetMFAChallenge()) + + challenge := authChallenge.GetMFAChallenge() + opts.mfaRequiredHandler(t, challenge.MFARequired) + + authResp := opts.authHandler(t, challenge) err = stream.Send(&proto.UserSingleUseCertsRequest{Request: &proto.UserSingleUseCertsRequest_MFAResponse{MFAResponse: authResp}}) - require.NoError(t, err) + if challenge.MFARequired == proto.MFARequired_MFA_REQUIRED_NO && err != nil { + require.ErrorIs(t, err, io.EOF, "Want the server to close the stream when MFA is not required") + return + } else { + require.NoError(t, err) + } certs, err := stream.Recv() opts.checkAuthErr(t, err) diff --git a/lib/client/api.go b/lib/client/api.go index 883f63c6e3e88..e3e745a8a6e2a 100644 --- a/lib/client/api.go +++ b/lib/client/api.go @@ -1542,7 +1542,7 @@ func (tc *TeleportClient) ConnectToNode(ctx context.Context, proxyClient *ProxyC // Only return the error from connecting with mfa if the error // originates from the mfa ceremony. If mfa is not required then // the error from the direct connection to the node must be returned. - if mfaErr != nil && !errors.Is(mfaErr, MFARequiredUnknownErr{}) && !errors.Is(mfaErr, mfaNotRequiredError) { + if mfaErr != nil && !errors.Is(mfaErr, MFARequiredUnknownErr{}) && !errors.Is(mfaErr, services.ErrSessionMFANotRequired) { return nil, trace.Wrap(mfaErr) } @@ -1588,8 +1588,6 @@ func (m MFARequiredUnknownErr) Is(err error) bool { } } -var mfaNotRequiredError = trace.AccessDenied("mfa is not required to access resource") - // connectToNodeWithMFA checks if per session mfa is required to connect to the target host, and // if it is required, then the mfa ceremony is attempted. The target host is dialed once the ceremony // completes and new certificates are retrieved. @@ -1607,7 +1605,7 @@ func (tc *TeleportClient) connectToNodeWithMFA(ctx context.Context, proxyClient defer span.End() if nodeDetails.MFACheck != nil && !nodeDetails.MFACheck.Required { - return nil, trace.Wrap(MFARequiredUnknown(trace.AccessDenied("no access to %s", nodeDetails.Addr))) + return nil, trace.Wrap(services.ErrSessionMFANotRequired) } // per-session mfa may be required, check and perform the mfa ceremony if needed diff --git a/lib/client/client.go b/lib/client/client.go index b808fb735e3ba..c9becf019ddb8 100644 --- a/lib/client/client.go +++ b/lib/client/client.go @@ -52,6 +52,7 @@ import ( "github.com/gravitational/teleport/lib/auth" "github.com/gravitational/teleport/lib/defaults" "github.com/gravitational/teleport/lib/events" + "github.com/gravitational/teleport/lib/services" "github.com/gravitational/teleport/lib/sshutils" "github.com/gravitational/teleport/lib/sshutils/sftp" "github.com/gravitational/teleport/lib/utils" @@ -206,6 +207,7 @@ func (proxy *ProxyClient) GetLeafClusters(ctx context.Context) ([]types.RemoteCl type ReissueParams struct { RouteToCluster string NodeName string + SSHLogin string KubernetesCluster string AccessRequests []string DropAccessRequests []string @@ -347,11 +349,15 @@ func (proxy *ProxyClient) reissueUserCerts(ctx context.Context, cachePolicy Cert return nil, trace.Wrap(MFARequiredUnknown(err)) } - clt, err := proxy.ConnectToRootCluster(ctx) - if err != nil { - return nil, trace.Wrap(MFARequiredUnknown(err)) + clt := params.AuthClient + if params.AuthClient == nil { + clt, err = proxy.ConnectToRootCluster(ctx) + if err != nil { + return nil, trace.Wrap(MFARequiredUnknown(err)) + } + defer clt.Close() } - defer clt.Close() + certs, err := clt.GenerateUserCerts(ctx, *req) if err != nil { return nil, trace.Wrap(err) @@ -436,51 +442,18 @@ func (proxy *ProxyClient) IssueUserCertsWithMFA(ctx context.Context, params Reis } var clt auth.ClientI - // requiredCheck passed from param can be nil. - requiredCheck := params.MFACheck - if requiredCheck == nil || requiredCheck.Required { - // Connect to the target cluster (root or leaf) to check whether MFA is - // required or if we know from param that it's required, connect because - // it will be needed to do MFA check. - if params.AuthClient != nil { - clt = params.AuthClient - } else { - authClt, err := proxy.ConnectToCluster(ctx, params.RouteToCluster) - if err != nil { - return nil, trace.Wrap(MFARequiredUnknown(err)) - } - clt = authClt - defer clt.Close() - } - } - - if requiredCheck == nil { - check, err := clt.IsMFARequired(ctx, params.isMFARequiredRequest(proxy.hostLogin)) + // Connect to the target cluster (root or leaf) to check whether MFA is + // required or if we know from param that it's required, connect because + // it will be needed to do MFA check. + if params.AuthClient != nil { + clt = params.AuthClient + } else { + authClt, err := proxy.ConnectToCluster(ctx, params.RouteToCluster) if err != nil { - if trace.IsNotImplemented(err) { - // Probably talking to an older server, use the old non-MFA endpoint. - log.WithError(err).Debug("Auth server does not implement IsMFARequired.") - // SSH certs can be used without reissuing. - if params.usage() == proto.UserCertsRequest_SSH && key.Cert != nil { - return key, nil - } - return proxy.reissueUserCerts(ctx, CertCacheKeep, params) - } return nil, trace.Wrap(MFARequiredUnknown(err)) } - requiredCheck = check - } - - if !requiredCheck.Required { - log.Debug("MFA not required for access.") - // MFA is not required. - // SSH certs can be used without embedding the node name. - if params.usage() == proto.UserCertsRequest_SSH && key.Cert != nil { - return key, nil - } - // All other targets need their name embedded in the cert for routing, - // fall back to non-MFA reissue. - return proxy.reissueUserCerts(ctx, CertCacheKeep, params) + clt = authClt + defer clt.Close() } // Always connect to root for getting new credentials, but attempt to reuse @@ -495,9 +468,10 @@ func (proxy *ProxyClient) IssueUserCertsWithMFA(ctx context.Context, params Reis if jumpHost := proxy.teleportClient.JumpHosts; jumpHost != nil { // In case of MFA connect to root teleport proxy instead of JumpHost to request // MFA certificates. - proxy.teleportClient.JumpHosts = nil - rootClusterProxy, err = proxy.teleportClient.ConnectToProxy(ctx) - proxy.teleportClient.JumpHosts = jumpHost + proxy.teleportClient.WithoutJumpHosts(func(tcNoJump *TeleportClient) error { + rootClusterProxy, err = tcNoJump.ConnectToProxy(ctx) + return trace.Wrap(err) + }) if err != nil { return nil, trace.Wrap(err) } @@ -510,6 +484,8 @@ func (proxy *ProxyClient) IssueUserCertsWithMFA(ctx context.Context, params Reis defer clt.Close() } + params.AuthClient = clt + log.Debug("Attempting to issue a single-use user certificate with an MFA check.") stream, err := clt.GenerateUserSingleUseCerts(ctx) if err != nil { @@ -551,6 +527,28 @@ func (proxy *ProxyClient) IssueUserCertsWithMFA(ctx context.Context, params Reis if mfaChal == nil { return nil, trace.BadParameter("server sent a %T on GenerateUserSingleUseCerts, expected MFAChallenge", resp.Response) } + + switch mfaChal.MFARequired { + case proto.MFARequired_MFA_REQUIRED_NO: + // SSH sessions will be established with the current key. + if params.usage() == proto.UserCertsRequest_SSH { + return nil, trace.Wrap(services.ErrSessionMFANotRequired) + } + // All other targets need their name embedded in the cert for routing, + // fall back to non-MFA reissue. + return proxy.reissueUserCerts(ctx, CertCacheKeep, params) + case proto.MFARequired_MFA_REQUIRED_UNSPECIFIED: + check, err := clt.IsMFARequired(ctx, params.isMFARequiredRequest(params.SSHLogin)) + if err != nil { + return nil, trace.Wrap(MFARequiredUnknown(err)) + } + if !check.Required { + return nil, trace.Wrap(services.ErrSessionMFANotRequired) + } + case proto.MFARequired_MFA_REQUIRED_YES: + // Proceed with the prompt for MFA below. + } + mfaResp, err := promptMFAChallenge(ctx, proxy.teleportClient.WebProxyAddr, mfaChal) if err != nil { return nil, trace.Wrap(err) @@ -632,6 +630,7 @@ func (proxy *ProxyClient) prepareUserCertsRequest(params ReissueParams, key *Key Usage: params.usage(), Format: proxy.teleportClient.CertificateFormat, RequesterName: params.RequesterName, + SSHLogin: params.SSHLogin, AttestationStatement: attestationStatement.ToProto(), }, nil } @@ -1971,28 +1970,12 @@ func (proxy *ProxyClient) sessionSSHCertificate(ctx context.Context, nodeAddr No } defer authClt.Close() - check, err := authClt.IsMFARequired(ctx, &proto.IsMFARequiredRequest{ - Target: &proto.IsMFARequiredRequest_Node{ - Node: &proto.NodeLogin{ - Node: nodeName(nodeAddr.Addr), - Login: user, - }, - }, - }) - if err != nil { - return nil, trace.Wrap(MFARequiredUnknown(err)) - } - - if !check.Required { - return nil, trace.Wrap(mfaNotRequiredError) - } - key, err := proxy.IssueUserCertsWithMFA( ctx, ReissueParams{ NodeName: nodeName(nodeAddr.Addr), + SSHLogin: user, RouteToCluster: proxy.ClusterName(), - MFACheck: check, AuthClient: authClt, }, func(ctx context.Context, proxyAddr string, c *proto.MFAAuthenticateChallenge) (*proto.MFAAuthenticateResponse, error) { diff --git a/lib/services/role.go b/lib/services/role.go index 3520a48e5a408..0f49568f75118 100644 --- a/lib/services/role.go +++ b/lib/services/role.go @@ -89,6 +89,10 @@ var ErrTrustedDeviceRequired = trace.AccessDenied("access to resource requires a // requires an MFA check. var ErrSessionMFARequired = trace.AccessDenied("access to resource requires MFA") +// ErrSessionMFANotRequired indicates that per session mfa will not grant +// access to a resource. +var ErrSessionMFANotRequired = trace.AccessDenied("MFA is not required to access resource") + // RoleNameForUser returns role name associated with a user. func RoleNameForUser(name string) string { return "user:" + name diff --git a/lib/web/terminal.go b/lib/web/terminal.go index ba7ab62749888..2fedfb329ac09 100644 --- a/lib/web/terminal.go +++ b/lib/web/terminal.go @@ -548,6 +548,28 @@ func (t *TerminalHandler) issueSessionMFACerts(ctx context.Context, tc *client.T return nil, trace.BadParameter("server sent a %T on GenerateUserSingleUseCerts, expected MFAChallenge", resp.Response) } + switch challenge.MFARequired { + case authproto.MFARequired_MFA_REQUIRED_NO: + return nil, trace.Wrap(services.ErrSessionMFANotRequired) + case authproto.MFARequired_MFA_REQUIRED_UNSPECIFIED: + mfaRequiredResp, err := t.authProvider.IsMFARequired(ctx, &authproto.IsMFARequiredRequest{ + Target: &authproto.IsMFARequiredRequest_Node{ + Node: &authproto.NodeLogin{ + Node: t.sessionData.ServerID, + Login: tc.HostLogin, + }, + }, + }) + if err != nil { + return nil, trace.Wrap(client.MFARequiredUnknown(err)) + } + + if !mfaRequiredResp.Required { + return nil, trace.Wrap(services.ErrSessionMFANotRequired) + } + case authproto.MFARequired_MFA_REQUIRED_YES: + } + span.AddEvent("prompting user with mfa challenge") assertion, err := promptMFAChallenge(t.stream, protobufMFACodec{})(ctx, tc.WebProxyAddr, challenge) if err != nil { @@ -689,7 +711,7 @@ func (t *TerminalHandler) connectToHost(ctx context.Context, ws *websocket.Conn, // Only return the error from connecting with mfa if the error // originates from the mfa ceremony. If mfa is not required then // the error from the direct connection to the node must be returned. - if mfaErr != nil && !errors.Is(mfaErr, client.MFARequiredUnknownErr{}) { + if mfaErr != nil && !errors.Is(mfaErr, client.MFARequiredUnknownErr{}) && !errors.Is(mfaErr, services.ErrSessionMFANotRequired) { return nil, trace.Wrap(mfaErr) } @@ -764,22 +786,6 @@ func (t *TerminalHandler) connectToNode(ctx context.Context, ws *websocket.Conn, // connectToNodeWithMFA attempts to perform the mfa ceremony and then dial the // host with the retrieved single use certs. func (t *TerminalHandler) connectToNodeWithMFA(ctx context.Context, ws *websocket.Conn, tc *client.TeleportClient, accessChecker services.AccessChecker, getAgent teleagent.Getter) (*client.NodeClient, error) { - mfaRequiredResp, err := t.authProvider.IsMFARequired(ctx, &authproto.IsMFARequiredRequest{ - Target: &authproto.IsMFARequiredRequest_Node{ - Node: &authproto.NodeLogin{ - Node: t.sessionData.ServerID, - Login: tc.HostLogin, - }, - }, - }) - if err != nil { - return nil, trace.Wrap(client.MFARequiredUnknown(err)) - } - - if !mfaRequiredResp.Required { - return nil, trace.Wrap(client.MFARequiredUnknown(trace.AccessDenied("no access to %s", t.sessionData.ServerHostname))) - } - // perform mfa ceremony and retrieve new certs authMethods, err := t.issueSessionMFACerts(ctx, tc) if err != nil { diff --git a/tool/tsh/tsh_test.go b/tool/tsh/tsh_test.go index 62eebac7b27cf..364a7b49705d2 100644 --- a/tool/tsh/tsh_test.go +++ b/tool/tsh/tsh_test.go @@ -931,22 +931,33 @@ func approveAllAccessRequests(ctx context.Context, approver accessApprover) erro } } -// TestSSHOnMultipleNodes tests running ssh commands on multiple nodes -// with and without mfa_per_session. +// TestSSHOnMultipleNodes validates that mfa is enforced when creating SSH +// sessions when set either via role or cluster auth preference. +// Sessions created via hostname and by matched labels are +// verified. +// +// NOTE: This test must NOT be run in parallel because it modifies the global +// [client.PromptWebauthn]. func TestSSHOnMultipleNodes(t *testing.T) { - // Setup cluster with 3 ssh nodes and user with access to them. - // Running ssh 'echo test' command should work when referencing - // multiple nodes by labels, without and with mfa_per_session. - t.Parallel() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - const origin = "https://127.0.0.1" + const origin = "https://localhost" connector := mockConnector(t) user, err := user.Current() require.NoError(t, err) + noAccessRole, err := types.NewRole("no-access", types.RoleSpecV6{ + Allow: types.RoleConditions{ + Logins: []string{user.Username}, + }, + Deny: types.RoleConditions{ + NodeLabels: types.Labels{types.Wildcard: []string{types.Wildcard}}, + }, + }) + require.NoError(t, err) + sshLoginRole, err := types.NewRole("ssh-login", types.RoleSpecV6{ Allow: types.RoleConditions{ Logins: []string{user.Username}, @@ -960,7 +971,7 @@ func TestSSHOnMultipleNodes(t *testing.T) { Logins: []string{user.Username}, NodeLabels: types.Labels{types.Wildcard: []string{types.Wildcard}}, }, - Options: types.RoleOptions{RequireSessionMFA: true}, + Options: types.RoleOptions{RequireMFAType: types.RequireMFAType_SESSION}, }) require.NoError(t, err) @@ -973,7 +984,7 @@ func TestSSHOnMultipleNodes(t *testing.T) { require.NoError(t, err) device.SetPasswordless() - rootAuth, rootProxy := makeTestServers(t, withBootstrap(connector, alice, sshLoginRole, perSessionMFARole)) + rootAuth, rootProxy := makeTestServers(t, withBootstrap(connector, alice, noAccessRole, sshLoginRole, perSessionMFARole)) authAddr, err := rootAuth.AuthAddr() require.NoError(t, err) @@ -996,7 +1007,10 @@ func TestSSHOnMultipleNodes(t *testing.T) { hasNodes := func(hostIDs ...string) func() bool { return func() bool { nodes, err := rootAuth.GetAuthServer().GetNodes(ctx, apidefaults.Namespace) - require.NoError(t, err) + if err != nil { + return false + } + foundCount := 0 for _, node := range nodes { if slices.Contains(hostIDs, node.GetName()) { @@ -1009,223 +1023,259 @@ func TestSSHOnMultipleNodes(t *testing.T) { // wait for auth to see nodes require.Eventually(t, hasNodes(sshHostID, sshHostID2, sshHostID3), - 10*time.Second, 100*time.Millisecond, "nodes never showed up") + 5*time.Second, 100*time.Millisecond, "nodes never joined cluster") defaultPreference, err := rootAuth.GetAuthServer().GetAuthPreference(ctx) require.NoError(t, err) - registerPasswordlessDeviceWithWebauthnSolver := func(t *testing.T) { - token, err := rootAuth.GetAuthServer().CreateResetPasswordToken(ctx, auth.CreateUserTokenRequest{ - Name: "alice", - }) - require.NoError(t, err) - tokenID := token.GetName() - res, err := rootAuth.GetAuthServer().CreateRegisterChallenge(ctx, &proto.CreateRegisterChallengeRequest{ - TokenID: tokenID, - DeviceType: proto.DeviceType_DEVICE_TYPE_WEBAUTHN, - DeviceUsage: proto.DeviceUsage_DEVICE_USAGE_PASSWORDLESS, - }) - require.NoError(t, err) - cc := wanlib.CredentialCreationFromProto(res.GetWebauthn()) + // set the default auth preference + webauthnPreference := &types.AuthPreferenceV2{ + Spec: types.AuthPreferenceSpecV2{ + Type: constants.Local, + SecondFactor: constants.SecondFactorOptional, + Webauthn: &types.Webauthn{ + RPID: "localhost", + }, + }, + } + err = rootAuth.GetAuthServer().SetAuthPreference(ctx, webauthnPreference) + require.NoError(t, err) - ccr, err := device.SignCredentialCreation(origin, cc) - require.NoError(t, err) - _, err = rootAuth.GetAuthServer().ChangeUserAuthentication(ctx, &proto.ChangeUserAuthenticationRequest{ - TokenID: tokenID, - NewPassword: []byte(password), - NewMFARegisterResponse: &proto.MFARegisterResponse{ - Response: &proto.MFARegisterResponse_Webauthn{ - Webauthn: wanlib.CredentialCreationResponseToProto(ccr), - }, + token, err := rootAuth.GetAuthServer().CreateResetPasswordToken(ctx, auth.CreateUserTokenRequest{ + Name: "alice", + }) + require.NoError(t, err) + tokenID := token.GetName() + res, err := rootAuth.GetAuthServer().CreateRegisterChallenge(ctx, &proto.CreateRegisterChallengeRequest{ + TokenID: tokenID, + DeviceType: proto.DeviceType_DEVICE_TYPE_WEBAUTHN, + DeviceUsage: proto.DeviceUsage_DEVICE_USAGE_PASSWORDLESS, + }) + require.NoError(t, err) + cc := wanlib.CredentialCreationFromProto(res.GetWebauthn()) + + ccr, err := device.SignCredentialCreation(origin, cc) + require.NoError(t, err) + _, err = rootAuth.GetAuthServer().ChangeUserAuthentication(ctx, &proto.ChangeUserAuthenticationRequest{ + TokenID: tokenID, + NewPassword: []byte(password), + NewMFARegisterResponse: &proto.MFARegisterResponse{ + Response: &proto.MFARegisterResponse_Webauthn{ + Webauthn: wanlib.CredentialCreationResponseToProto(ccr), }, - }) - require.NoError(t, err) + }, + }) + require.NoError(t, err) - inputReader := prompt.NewFakeReader(). - AddString(password). - AddReply(func(ctx context.Context) (string, error) { - panic("this should not be called") - }) + successfulChallenge := func(ctx context.Context, realOrigin string, assertion *wanlib.CredentialAssertion, prompt wancli.LoginPrompt, _ *wancli.LoginOpts) (*proto.MFAAuthenticateResponse, string, error) { + car, err := device.SignAssertion(origin, assertion) // use the fake origin to prevent a mismatch + if err != nil { + return nil, "", err + } + return &proto.MFAAuthenticateResponse{ + Response: &proto.MFAAuthenticateResponse_Webauthn{ + Webauthn: wanlib.CredentialAssertionResponseToProto(car), + }, + }, "", nil + } - solveWebauthn := func(ctx context.Context, origin string, assertion *wanlib.CredentialAssertion, prompt wancli.LoginPrompt) (*proto.MFAAuthenticateResponse, error) { - car, err := device.SignAssertion(origin, assertion) - if err != nil { - return nil, err - } - return &proto.MFAAuthenticateResponse{ - Response: &proto.MFAAuthenticateResponse_Webauthn{ - Webauthn: wanlib.CredentialAssertionResponseToProto(car), - }, - }, nil + failedChallenge := func(ctx context.Context, realOrigin string, assertion *wanlib.CredentialAssertion, prompt wancli.LoginPrompt, _ *wancli.LoginOpts) (*proto.MFAAuthenticateResponse, string, error) { + car, err := device.SignAssertion(origin, assertion) // use the fake origin to prevent a mismatch + if err != nil { + return nil, "", err } + carProto := wanlib.CredentialAssertionResponseToProto(car) + carProto.Type = "NOT A VALID TYPE" // set to an invalid type so the ceremony fails - oldStdin, oldWebauthn := prompt.Stdin(), *client.PromptWebauthn - t.Cleanup(func() { - prompt.SetStdin(oldStdin) - *client.PromptWebauthn = oldWebauthn - }) + return &proto.MFAAuthenticateResponse{ + Response: &proto.MFAAuthenticateResponse_Webauthn{ + Webauthn: carProto, + }, + }, "", nil + } - prompt.SetStdin(inputReader) - *client.PromptWebauthn = func( - ctx context.Context, - origin string, assertion *wanlib.CredentialAssertion, prompt wancli.LoginPrompt, _ *wancli.LoginOpts, - ) (*proto.MFAAuthenticateResponse, string, error) { - resp, err := solveWebauthn(ctx, origin, assertion, prompt) - return resp, "", err + type mfaPrompt = func(ctx context.Context, origin string, assertion *wanlib.CredentialAssertion, prompt wancli.LoginPrompt, _ *wancli.LoginOpts) (*proto.MFAAuthenticateResponse, string, error) + setupChallengeSolver := func(mfaPrompt mfaPrompt) func(t *testing.T) { + return func(t *testing.T) { + inputReader := prompt.NewFakeReader(). + AddString(password). + AddReply(func(ctx context.Context) (string, error) { + panic("this should not be called") + }) + + oldStdin, oldWebauthn := prompt.Stdin(), *client.PromptWebauthn + t.Cleanup(func() { + prompt.SetStdin(oldStdin) + *client.PromptWebauthn = oldWebauthn + }) + + prompt.SetStdin(inputReader) + *client.PromptWebauthn = mfaPrompt } } cases := []struct { name string - hostLabels string + target string authPreference types.AuthPreference roles []string setup func(t *testing.T) errAssertion require.ErrorAssertionFunc stdoutAssertion require.ValueAssertionFunc - // deviceSignCount is used to check how many times - // webatuhn device sign was called. - deviceSignCount int + mfaPromptCount int }{ { - name: "default auth preference - just check stage nodes", + name: "default auth preference runs commands on multiple nodes without mfa", authPreference: defaultPreference, - hostLabels: "env=stage", + target: "env=stage", stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { require.Equal(t, "test\ntest\n", i, i2...) }, - deviceSignCount: 0, - errAssertion: require.NoError, + errAssertion: require.NoError, + }, + { + name: "webauthn auth preference runs commands on multiple matches without mfa", + target: "env=stage", + stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { + require.Equal(t, "test\ntest\n", i, i2...) + }, + errAssertion: require.NoError, + }, + { + name: "webauthn auth preference runs commands on a single match without mfa", + target: "env=prod", + stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { + require.Equal(t, "test\n", i, i2...) + }, + errAssertion: require.NoError, }, { - name: "without per session mfa - 2 stage nodes", + name: "no matching hosts", + target: "env=dev", + errAssertion: require.Error, + stdoutAssertion: require.Empty, + }, + { + name: "command runs on multiple matches with mfa set via auth preference", authPreference: &types.AuthPreferenceV2{ Spec: types.AuthPreferenceSpecV2{ Type: constants.Local, SecondFactor: constants.SecondFactorOptional, Webauthn: &types.Webauthn{ - RPID: "127.0.0.1", + RPID: "localhost", }, + RequireMFAType: types.RequireMFAType_SESSION, }, }, - hostLabels: "env=stage", + setup: setupChallengeSolver(successfulChallenge), + target: "env=stage", stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { require.Equal(t, "test\ntest\n", i, i2...) }, - deviceSignCount: 0, - errAssertion: require.NoError, + mfaPromptCount: 2, + errAssertion: require.NoError, }, { - name: "without per session mfa - 1 prod node", + name: "command runs on a single match with mfa set via auth preference", authPreference: &types.AuthPreferenceV2{ Spec: types.AuthPreferenceSpecV2{ Type: constants.Local, SecondFactor: constants.SecondFactorOptional, Webauthn: &types.Webauthn{ - RPID: "127.0.0.1", + RPID: "localhost", }, + RequireMFAType: types.RequireMFAType_SESSION, }, }, - hostLabels: "env=prod", + setup: setupChallengeSolver(successfulChallenge), + target: "env=prod", stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { require.Equal(t, "test\n", i, i2...) }, - deviceSignCount: 0, - errAssertion: require.NoError, + mfaPromptCount: 1, + errAssertion: require.NoError, }, { - name: "without per session mfa - 0 dev nodes", + name: "no matching hosts with mfa", authPreference: &types.AuthPreferenceV2{ Spec: types.AuthPreferenceSpecV2{ Type: constants.Local, SecondFactor: constants.SecondFactorOptional, Webauthn: &types.Webauthn{ - RPID: "127.0.0.1", + RPID: "localhost", }, + RequireMFAType: types.RequireMFAType_SESSION, }, }, - hostLabels: "env=dev", + setup: setupChallengeSolver(successfulChallenge), + target: "env=dev", errAssertion: require.Error, stdoutAssertion: require.Empty, - deviceSignCount: 0, }, { - name: "with per session mfa - 2 stage nodes", + name: "command runs on a multiple matches with mfa set via role", authPreference: &types.AuthPreferenceV2{ Spec: types.AuthPreferenceSpecV2{ Type: constants.Local, SecondFactor: constants.SecondFactorOptional, Webauthn: &types.Webauthn{ - RPID: "127.0.0.1", + RPID: "localhost", }, - RequireSessionMFA: true, }, }, - setup: registerPasswordlessDeviceWithWebauthnSolver, - hostLabels: "env=stage", + roles: []string{"access", sshLoginRole.GetName(), perSessionMFARole.GetName()}, + setup: setupChallengeSolver(successfulChallenge), + target: "env=stage", stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { require.Equal(t, "test\ntest\n", i, i2...) }, - deviceSignCount: 2, - errAssertion: require.NoError, + mfaPromptCount: 2, + errAssertion: require.NoError, }, { - name: "with per session mfa - 1 prod node", - authPreference: &types.AuthPreferenceV2{ - Spec: types.AuthPreferenceSpecV2{ - Type: constants.Local, - SecondFactor: constants.SecondFactorOptional, - Webauthn: &types.Webauthn{ - RPID: "127.0.0.1", - }, - RequireSessionMFA: true, - }, - }, - setup: registerPasswordlessDeviceWithWebauthnSolver, - hostLabels: "env=prod", + name: "role permits access without mfa", + target: sshHostID, + roles: []string{sshLoginRole.GetName()}, stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { require.Equal(t, "test\n", i, i2...) }, - deviceSignCount: 1, - errAssertion: require.NoError, + errAssertion: require.NoError, }, { - name: "with per session mfa - 0 dev nodes", - authPreference: &types.AuthPreferenceV2{ - Spec: types.AuthPreferenceSpecV2{ - Type: constants.Local, - SecondFactor: constants.SecondFactorOptional, - Webauthn: &types.Webauthn{ - RPID: "127.0.0.1", - }, - RequireSessionMFA: true, - }, - }, - setup: registerPasswordlessDeviceWithWebauthnSolver, - hostLabels: "env=dev", - errAssertion: require.Error, - deviceSignCount: 0, + name: "role prevents access", + target: sshHostID, + roles: []string{noAccessRole.GetName()}, stdoutAssertion: require.Empty, + errAssertion: require.Error, }, { - name: "role requires per session mfa - 2 stage nodes", + name: "command runs on a hostname with mfa set via role", + target: sshHostID, + roles: []string{perSessionMFARole.GetName()}, + setup: setupChallengeSolver(successfulChallenge), + stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { + require.Equal(t, "test\n", i, i2...) + }, + mfaPromptCount: 1, + errAssertion: require.NoError, + }, + { + name: "failed ceremony when role requires per session mfa", authPreference: &types.AuthPreferenceV2{ Spec: types.AuthPreferenceSpecV2{ Type: constants.Local, SecondFactor: constants.SecondFactorOptional, Webauthn: &types.Webauthn{ - RPID: "127.0.0.1", + RPID: "localhost", }, }, }, - roles: []string{"access", sshLoginRole.GetName(), perSessionMFARole.GetName()}, - setup: registerPasswordlessDeviceWithWebauthnSolver, - hostLabels: "env=stage", - stdoutAssertion: func(t require.TestingT, i interface{}, i2 ...interface{}) { - require.Equal(t, "test\ntest\n", i, i2...) - }, - deviceSignCount: 2, - errAssertion: require.NoError, + target: sshHostID, + roles: []string{perSessionMFARole.GetName()}, + setup: setupChallengeSolver(failedChallenge), + stdoutAssertion: require.Empty, + mfaPromptCount: 1, + errAssertion: require.Error, }, } @@ -1233,10 +1283,12 @@ func TestSSHOnMultipleNodes(t *testing.T) { t.Run(tt.name, func(t *testing.T) { tmpHomePath := t.TempDir() - require.NoError(t, rootAuth.GetAuthServer().SetAuthPreference(ctx, tt.authPreference)) - t.Cleanup(func() { - require.NoError(t, rootAuth.GetAuthServer().SetAuthPreference(ctx, defaultPreference)) - }) + if tt.authPreference != nil { + require.NoError(t, rootAuth.GetAuthServer().SetAuthPreference(ctx, tt.authPreference)) + t.Cleanup(func() { + require.NoError(t, rootAuth.GetAuthServer().SetAuthPreference(ctx, webauthnPreference)) + }) + } if tt.setup != nil { tt.setup(t) @@ -1273,7 +1325,7 @@ func TestSSHOnMultipleNodes(t *testing.T) { err = Run(ctx, []string{ "ssh", "--insecure", - tt.hostLabels, + tt.target, "echo", "test", }, setHomePath(tmpHomePath), @@ -1286,7 +1338,7 @@ func TestSSHOnMultipleNodes(t *testing.T) { tt.errAssertion(t, err) tt.stdoutAssertion(t, stdout.String()) - require.Equal(t, tt.deviceSignCount, int(device.Counter()), "device sign count mismatch") + require.Equal(t, tt.mfaPromptCount, int(device.Counter()), "device sign count mismatch") }) } } @@ -2480,6 +2532,7 @@ func makeTestServers(t *testing.T, opts ...testServerOptFunc) (auth *service.Tel opt(&options) } + authAddr := utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} var err error // Set up a test auth server. // @@ -2490,7 +2543,7 @@ func makeTestServers(t *testing.T, opts ...testServerOptFunc) (auth *service.Tel cfg.Hostname = "localhost" cfg.DataDir = t.TempDir() - cfg.SetAuthServerAddress(utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())}) + cfg.SetAuthServerAddress(authAddr) cfg.Auth.BootstrapResources = options.bootstrap cfg.Auth.StorageConfig.Params = backend.Params{defaults.BackendPath: filepath.Join(cfg.DataDir, defaults.BackendDir)} cfg.Auth.StaticTokens, err = types.NewStaticTokens(types.StaticTokensSpecV2{ @@ -2501,10 +2554,15 @@ func makeTestServers(t *testing.T, opts ...testServerOptFunc) (auth *service.Tel }}, }) require.NoError(t, err) + cfg.SetToken(staticToken) cfg.SSH.Enabled = false cfg.Auth.Enabled = true - cfg.Auth.ListenAddr = utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} - cfg.Proxy.Enabled = false + cfg.Auth.ListenAddr = authAddr + cfg.Proxy.Enabled = true + cfg.Proxy.WebAddr = utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} + cfg.Proxy.SSHAddr = utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} + cfg.Proxy.ReverseTunnelListenAddr = utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} + cfg.Proxy.DisableWebInterface = true cfg.Log = utils.NewLoggerForTests() for _, fn := range options.configFuncs { @@ -2513,34 +2571,12 @@ func makeTestServers(t *testing.T, opts ...testServerOptFunc) (auth *service.Tel auth = runTeleport(t, cfg) - // Wait for proxy to become ready. + // Wait for auth to become ready. _, err = auth.WaitForEventTimeout(30*time.Second, service.AuthTLSReady) // in reality, the auth server should start *much* sooner than this. we use a very large // timeout here because this isn't the kind of problem that this test is meant to catch. require.NoError(t, err, "auth server didn't start after 30s") - - authAddr, err := auth.AuthAddr() - require.NoError(t, err) - - // Set up a test proxy service. - cfg = service.MakeDefaultConfig() - cfg.CircuitBreakerConfig = breaker.NoopBreakerConfig() - cfg.Hostname = "localhost" - cfg.DataDir = t.TempDir() - - cfg.SetAuthServerAddress(*authAddr) - cfg.SetToken(staticToken) - cfg.SSH.Enabled = false - cfg.Auth.Enabled = false - cfg.Proxy.Enabled = true - cfg.Proxy.WebAddr = utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} - cfg.Proxy.SSHAddr = utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} - cfg.Proxy.ReverseTunnelListenAddr = utils.NetAddr{AddrNetwork: "tcp", Addr: net.JoinHostPort("127.0.0.1", ports.Pop())} - cfg.Proxy.DisableWebInterface = true - cfg.Log = utils.NewLoggerForTests() - - proxy = runTeleport(t, cfg) - return auth, proxy + return auth, auth } func mockConnector(t *testing.T) types.OIDCConnector {