From 6a46b8c3628b1a5e234863b47d774a0bec187446 Mon Sep 17 00:00:00 2001 From: Noah Date: Wed, 9 Aug 2023 16:58:45 +0100 Subject: [PATCH 01/22] Add JWKS baseed kubernetes toekn validator --- lib/auth/auth.go | 2 +- lib/kubernetestoken/token_validator.go | 92 ++++++++++++++++++++- lib/kubernetestoken/token_validator_test.go | 2 +- 3 files changed, 91 insertions(+), 5 deletions(-) diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 458eecf1d6858..155eac47cdea6 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -378,7 +378,7 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) { } } if as.kubernetesTokenValidator == nil { - as.kubernetesTokenValidator = &kubernetestoken.Validator{} + as.kubernetesTokenValidator = &kubernetestoken.TokenReviewValidator{} } if as.gcpIDTokenValidator == nil { diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index fa33589926c2c..1a43be993a2c7 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -18,8 +18,13 @@ package kubernetestoken import ( "context" + "encoding/json" + "github.com/mitchellh/mapstructure" + "gopkg.in/square/go-jose.v2" + josejwt "gopkg.in/square/go-jose.v2/jwt" "strings" "sync" + "time" "github.com/gravitational/trace" "golang.org/x/exp/slices" @@ -39,7 +44,9 @@ const ( kubernetesBoundTokenSupportVersion = "1.22.0" ) -type Validator struct { +// TokenReviewValidator validates a Kubernetes Service Account JWT using the +// Kubernetes TokenRequest API endpoint. +type TokenReviewValidator struct { mu sync.Mutex // client is protected by mu and should only be accessed via the getClient // method. @@ -47,7 +54,7 @@ type Validator struct { } // getClient allows the lazy initialisation of the Kubernetes client -func (v *Validator) getClient() (kubernetes.Interface, error) { +func (v *TokenReviewValidator) getClient() (kubernetes.Interface, error) { v.mu.Lock() defer v.mu.Unlock() if v.client != nil { @@ -68,7 +75,7 @@ func (v *Validator) getClient() (kubernetes.Interface, error) { } // Validate uses the Kubernetes TokenReview API to validate a token and return its UserInfo -func (v *Validator) Validate(ctx context.Context, token string) (*v1.UserInfo, error) { +func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*v1.UserInfo, error) { client, err := v.getClient() if err != nil { return nil, trace.Wrap(err) @@ -138,3 +145,82 @@ func kubernetesSupportsBoundTokens(gitVersion string) (bool, error) { return kubeVersion.AtLeast(minKubeVersion), nil } + +// ValidateTokenWithJWKS validates a Kubernetes Service Account JWT using a +// configured JWKS. +func ValidateTokenWithJWKS( + now time.Time, + jwksData []byte, + expectAudience string, + token string, +) (*ServiceAccountTokenClaims, error) { + jwt, err := josejwt.ParseSigned(token) + if err != nil { + return nil, trace.Wrap(err, "parsing jwt") + } + + jwks := jose.JSONWebKeySet{} + if err := json.Unmarshal(jwksData, &jwks); err != nil { + return nil, trace.Wrap(err, "parsing provided jwks") + } + + claims := ServiceAccountTokenClaims{} + if err := jwt.Claims(jwks, &claims); err != nil { + return nil, trace.Wrap(err, "validating jwt signature") + } + + err = claims.ValidateWithLeeway(josejwt.Expected{ + // We don't need to check the subject or other claims here. + // Anything related to matching the token against ProvisionToken + // allow rules is left to the discretion of `lib/auth`. + Audience: []string{ + expectAudience, + }, + Time: now, + }, time.Minute) + if err != nil { + return nil, trace.Wrap(err, "validating jwt claims") + } + + return &claims, nil +} + +type PodSubClaim struct { + Name string `json:"name"` + UID string `json:"uid"` +} + +type ServiceAccountSubClaim struct { + Name string `json:"name"` + UID string `json:"uid"` +} + +type KubernetesSubClaim struct { + Namespace string `json:"namespace"` + ServiceAccount *ServiceAccountSubClaim `json:"serviceaccount"` + Pod *PodSubClaim `json:"pod"` +} + +type ServiceAccountTokenClaims struct { + josejwt.Claims + Sub string `json:"sub"` + Issuer string `json:"issuer"` + Kubernetes *KubernetesSubClaim `json:"kubernetes.io"` +} + +// JoinAuditAttributes returns a series of attributes that can be inserted into +// audit events related to a specific join. +func (c *ServiceAccountTokenClaims) JoinAuditAttributes() (map[string]interface{}, error) { + res := map[string]interface{}{} + d, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{ + TagName: "json", + Result: &res, + }) + if err != nil { + return nil, trace.Wrap(err) + } + if err := d.Decode(c); err != nil { + return nil, trace.Wrap(err) + } + return res, nil +} diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index e4d712dfa8747..4aeb0ed1cbc7a 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -210,7 +210,7 @@ func TestIDTokenValidator_Validate(t *testing.T) { t.Run(tt.token, func(t *testing.T) { client := newFakeClientset(tt.kubeVersion) client.AddReactor("create", "tokenreviews", tokenReviewMock(t, tt.review)) - v := Validator{ + v := TokenReviewValidator{ client: client, } userInfo, err := v.Validate(context.Background(), tt.token) From 1139bb33e1a2f172cc04e09a9cb4bdd7c0691463 Mon Sep 17 00:00:00 2001 From: Noah Date: Wed, 9 Aug 2023 17:05:41 +0100 Subject: [PATCH 02/22] Add types for static_jwks kubernetes join type --- api/proto/teleport/legacy/types/types.proto | 13 + api/types/types.pb.go | 3541 ++++++++++--------- 2 files changed, 1926 insertions(+), 1628 deletions(-) diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index 4bc32e7e3a650..0f06f2ae7120b 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -1316,6 +1316,9 @@ message ProvisionTokenSpecV2CircleCI { // ProvisionTokenSpecV2Kubernetes contains the Kubernetes-specific part of the // ProvisionTokenSpecV2 message ProvisionTokenSpecV2Kubernetes { + message StaticJWKSConfig { + string JWKS = 1 [(gogoproto.jsontag) = "jwks,omitempty"]; + } // Rule is a set of properties the Kubernetes-issued token might have to be // allowed to use this ProvisionToken message Rule { @@ -1326,6 +1329,16 @@ message ProvisionTokenSpecV2Kubernetes { // Allow is a list of Rules, nodes using this token must match one // allow rule to use this token. repeated Rule Allow = 1 [(gogoproto.jsontag) = "allow,omitempty"]; + // Type controls which behavior should be used for validating the Kubernetes + // Service Account token. Support values: + // - `incluster` + // - `static_jwks` + // If unset, this defaults to `incluster`. + string Type = 2 [ + (gogoproto.jsontag) = "type,omitempty", + (gogoproto.casttype) = "KubernetesJoinType" + ]; + StaticJWKSConfig StaticJWKS = 3 [(gogoproto.jsontag) = "static_jwks,omitempty"]; } // ProvisionTokenSpecV2Azure contains the Azure-specific part of the diff --git a/api/types/types.pb.go b/api/types/types.pb.go index a3a0a749f5ce2..08fca61959a33 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -4097,10 +4097,17 @@ var xxx_messageInfo_ProvisionTokenSpecV2CircleCI_Rule proto.InternalMessageInfo type ProvisionTokenSpecV2Kubernetes struct { // Allow is a list of Rules, nodes using this token must match one // allow rule to use this token. - Allow []*ProvisionTokenSpecV2Kubernetes_Rule `protobuf:"bytes,1,rep,name=Allow,proto3" json:"allow,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Allow []*ProvisionTokenSpecV2Kubernetes_Rule `protobuf:"bytes,1,rep,name=Allow,proto3" json:"allow,omitempty"` + // Type controls which behavior should be used for validating the Kubernetes + // Service Account token. Support values: + // - `incluster` + // - `static_jwks` + // If unset, this defaults to `incluster`. + Type KubernetesJoinType `protobuf:"bytes,2,opt,name=Type,proto3,casttype=KubernetesJoinType" json:"type,omitempty"` + StaticJWKS *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig `protobuf:"bytes,3,opt,name=StaticJWKS,proto3" json:"static_jwks,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProvisionTokenSpecV2Kubernetes) Reset() { *m = ProvisionTokenSpecV2Kubernetes{} } @@ -4136,6 +4143,50 @@ func (m *ProvisionTokenSpecV2Kubernetes) XXX_DiscardUnknown() { var xxx_messageInfo_ProvisionTokenSpecV2Kubernetes proto.InternalMessageInfo +type ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig struct { + JWKS string `protobuf:"bytes,1,opt,name=JWKS,proto3" json:"jwks,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) Reset() { + *m = ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig{} +} +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) String() string { + return proto.CompactTextString(m) +} +func (*ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) ProtoMessage() {} +func (*ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_9198ee693835762e, []int{61, 0} +} +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig.Merge(m, src) +} +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) XXX_Size() int { + return m.Size() +} +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig proto.InternalMessageInfo + // Rule is a set of properties the Kubernetes-issued token might have to be // allowed to use this ProvisionToken type ProvisionTokenSpecV2Kubernetes_Rule struct { @@ -4151,7 +4202,7 @@ func (m *ProvisionTokenSpecV2Kubernetes_Rule) Reset() { *m = ProvisionTo func (m *ProvisionTokenSpecV2Kubernetes_Rule) String() string { return proto.CompactTextString(m) } func (*ProvisionTokenSpecV2Kubernetes_Rule) ProtoMessage() {} func (*ProvisionTokenSpecV2Kubernetes_Rule) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{61, 0} + return fileDescriptor_9198ee693835762e, []int{61, 1} } func (m *ProvisionTokenSpecV2Kubernetes_Rule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16587,6 +16638,7 @@ func init() { proto.RegisterType((*ProvisionTokenSpecV2CircleCI)(nil), "types.ProvisionTokenSpecV2CircleCI") proto.RegisterType((*ProvisionTokenSpecV2CircleCI_Rule)(nil), "types.ProvisionTokenSpecV2CircleCI.Rule") proto.RegisterType((*ProvisionTokenSpecV2Kubernetes)(nil), "types.ProvisionTokenSpecV2Kubernetes") + proto.RegisterType((*ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig)(nil), "types.ProvisionTokenSpecV2Kubernetes.StaticJWKSConfig") proto.RegisterType((*ProvisionTokenSpecV2Kubernetes_Rule)(nil), "types.ProvisionTokenSpecV2Kubernetes.Rule") proto.RegisterType((*ProvisionTokenSpecV2Azure)(nil), "types.ProvisionTokenSpecV2Azure") proto.RegisterType((*ProvisionTokenSpecV2Azure_Rule)(nil), "types.ProvisionTokenSpecV2Azure.Rule") @@ -16844,1430 +16896,1435 @@ func init() { func init() { proto.RegisterFile("teleport/legacy/types/types.proto", fileDescriptor_9198ee693835762e) } var fileDescriptor_9198ee693835762e = []byte{ - // 22766 bytes of a gzipped FileDescriptorProto + // 22838 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x90, 0x1c, 0x49, - 0x76, 0x18, 0x86, 0x6f, 0x7f, 0xcc, 0x4c, 0xcf, 0x9b, 0xaf, 0x9e, 0xc4, 0x00, 0x18, 0x60, 0xb1, - 0x18, 0x6c, 0x61, 0x17, 0x0b, 0x60, 0x77, 0x81, 0xc3, 0xe0, 0x16, 0x77, 0x7b, 0xfb, 0x75, 0x3d, - 0xdd, 0x0d, 0x4c, 0x03, 0xf3, 0xd1, 0x5b, 0x3d, 0x1f, 0xb7, 0xb7, 0x77, 0x57, 0x57, 0xd3, 0x9d, - 0x33, 0x53, 0x8b, 0xee, 0xae, 0xbe, 0xaa, 0x6a, 0x00, 0x73, 0x94, 0x7e, 0xfc, 0x90, 0xa8, 0xfb, - 0xd1, 0x3c, 0xde, 0x91, 0xf2, 0x51, 0x3c, 0xd9, 0x52, 0x90, 0xc1, 0x90, 0x64, 0xd2, 0x22, 0x19, - 0xb2, 0x24, 0x87, 0xe4, 0xa0, 0x4d, 0x9b, 0x0e, 0x05, 0x83, 0x96, 0x42, 0x16, 0xff, 0xf0, 0x47, - 0xe8, 0xac, 0x18, 0x8b, 0xa4, 0xa5, 0x70, 0x20, 0x1c, 0x0a, 0x39, 0x18, 0x56, 0xd8, 0xe7, 0xa0, - 0xec, 0xc8, 0x97, 0x99, 0x55, 0x99, 0xd5, 0xd5, 0x3d, 0x3d, 0x0b, 0xac, 0x49, 0xac, 0xfd, 0x0f, - 0x30, 0xfd, 0xf2, 0xbd, 0x97, 0x59, 0x99, 0x2f, 0x33, 0x5f, 0xbe, 0x7c, 0xef, 0x25, 0xbc, 0x18, - 0xd0, 0x26, 0xed, 0xb8, 0x5e, 0x70, 0xbd, 0x49, 0xf7, 0xec, 0xfa, 0xc1, 0xf5, 0xe0, 0xa0, 0x43, - 0x7d, 0xfe, 0xef, 0xb5, 0x8e, 0xe7, 0x06, 0x2e, 0x19, 0xc1, 0x1f, 0x67, 0xe7, 0xf6, 0xdc, 0x3d, - 0x17, 0x21, 0xd7, 0xd9, 0x5f, 0xbc, 0xf0, 0xec, 0xc2, 0x9e, 0xeb, 0xee, 0x35, 0xe9, 0x75, 0xfc, - 0xb5, 0xd3, 0xdd, 0xbd, 0x1e, 0x38, 0x2d, 0xea, 0x07, 0x76, 0xab, 0x23, 0x10, 0xae, 0x84, 0x15, - 0xd8, 0x41, 0xc0, 0x4a, 0x02, 0xc7, 0x6d, 0x5f, 0x7f, 0x70, 0x43, 0xfd, 0x29, 0x50, 0x5f, 0x4f, - 0x6e, 0xcb, 0x43, 0xcf, 0xee, 0x74, 0xa8, 0x17, 0xfd, 0xc1, 0xd1, 0x8d, 0xbf, 0x97, 0x81, 0xf1, - 0x7b, 0x94, 0x76, 0x0a, 0x4d, 0xe7, 0x01, 0x25, 0x17, 0x21, 0xbb, 0x66, 0xb7, 0xe8, 0x7c, 0xea, - 0x42, 0xea, 0xf2, 0xf8, 0xd2, 0xcc, 0xe3, 0xc3, 0x85, 0x09, 0x9f, 0x7a, 0x0f, 0xa8, 0x67, 0xb5, - 0xed, 0x16, 0x35, 0xb1, 0x90, 0xbc, 0x0a, 0xe3, 0xec, 0x7f, 0xbf, 0x63, 0xd7, 0xe9, 0x7c, 0x1a, - 0x31, 0xa7, 0x1e, 0x1f, 0x2e, 0x8c, 0xb7, 0x25, 0xd0, 0x8c, 0xca, 0xc9, 0x25, 0x18, 0x5b, 0xa1, - 0xb6, 0x4f, 0x2b, 0xa5, 0xf9, 0xcc, 0x85, 0xd4, 0xe5, 0xcc, 0xd2, 0xe4, 0xe3, 0xc3, 0x85, 0x5c, - 0x93, 0x81, 0x2c, 0xa7, 0x61, 0xca, 0x42, 0x52, 0x81, 0xb1, 0xf2, 0xa3, 0x8e, 0xe3, 0x51, 0x7f, - 0x3e, 0x7b, 0x21, 0x75, 0x79, 0x62, 0xf1, 0xec, 0x35, 0xde, 0x29, 0xd7, 0x64, 0xa7, 0x5c, 0xdb, - 0x90, 0x9d, 0xb2, 0x74, 0xe2, 0x77, 0x0f, 0x17, 0x9e, 0x7b, 0x7c, 0xb8, 0x30, 0x46, 0x39, 0xc9, - 0xcf, 0xfe, 0x8f, 0x0b, 0x29, 0x53, 0xd2, 0x93, 0xb7, 0x21, 0xbb, 0x71, 0xd0, 0xa1, 0xf3, 0xe3, - 0x17, 0x52, 0x97, 0xa7, 0x17, 0xcf, 0x5f, 0xe3, 0xc3, 0x10, 0x7e, 0x64, 0xf4, 0x17, 0xc3, 0x5a, - 0xca, 0x3d, 0x3e, 0x5c, 0xc8, 0x32, 0x14, 0x13, 0xa9, 0xc8, 0xeb, 0x30, 0xba, 0xec, 0xfa, 0x41, - 0xa5, 0x34, 0x0f, 0xf8, 0x69, 0x27, 0x1f, 0x1f, 0x2e, 0xcc, 0xee, 0xbb, 0x7e, 0x60, 0x39, 0x8d, - 0xd7, 0xdc, 0x96, 0x13, 0xd0, 0x56, 0x27, 0x38, 0x30, 0x05, 0x92, 0xf1, 0x08, 0xa6, 0x34, 0x7e, - 0x64, 0x02, 0xc6, 0x36, 0xd7, 0xee, 0xad, 0xad, 0x6f, 0xaf, 0xe5, 0x9f, 0x23, 0x39, 0xc8, 0xae, - 0xad, 0x97, 0xca, 0xf9, 0x14, 0x19, 0x83, 0x4c, 0xa1, 0x5a, 0xcd, 0xa7, 0xc9, 0x24, 0xe4, 0x4a, - 0x85, 0x8d, 0xc2, 0x52, 0xa1, 0x56, 0xce, 0x67, 0xc8, 0x09, 0x98, 0xd9, 0xae, 0xac, 0x95, 0xd6, - 0xb7, 0x6b, 0x56, 0xa9, 0x5c, 0xbb, 0xb7, 0xb1, 0x5e, 0xcd, 0x67, 0xc9, 0x34, 0xc0, 0xbd, 0xcd, - 0xa5, 0xb2, 0xb9, 0x56, 0xde, 0x28, 0xd7, 0xf2, 0x23, 0x64, 0x0e, 0xf2, 0x92, 0xc4, 0xaa, 0x95, - 0xcd, 0xad, 0x4a, 0xb1, 0x9c, 0x1f, 0x35, 0xbe, 0x95, 0x81, 0xdc, 0x2a, 0x0d, 0xec, 0x86, 0x1d, - 0xd8, 0xe4, 0x9c, 0x36, 0x70, 0xf8, 0x4d, 0xca, 0x88, 0x5d, 0xec, 0x1d, 0xb1, 0x91, 0xc7, 0x87, - 0x0b, 0xa9, 0xd7, 0xd5, 0x91, 0x7a, 0x0b, 0x26, 0x4a, 0xd4, 0xaf, 0x7b, 0x4e, 0x87, 0x49, 0x13, - 0x8e, 0xd6, 0xf8, 0xd2, 0x99, 0xc7, 0x87, 0x0b, 0x27, 0x1b, 0x11, 0x58, 0xe9, 0x01, 0x15, 0x9b, - 0x54, 0x60, 0x74, 0xc5, 0xde, 0xa1, 0x4d, 0x7f, 0x7e, 0xe4, 0x42, 0xe6, 0xf2, 0xc4, 0xe2, 0xf3, - 0xa2, 0xd7, 0x65, 0x03, 0xaf, 0xf1, 0xd2, 0x72, 0x3b, 0xf0, 0x0e, 0x96, 0xe6, 0x1e, 0x1f, 0x2e, - 0xe4, 0x9b, 0x08, 0x50, 0x7b, 0x94, 0xa3, 0x90, 0x5a, 0x24, 0x09, 0xa3, 0x47, 0x4a, 0xc2, 0x0b, - 0xbf, 0x7b, 0xb8, 0x90, 0x62, 0x23, 0x24, 0x24, 0x21, 0xe2, 0xa7, 0xcb, 0xc4, 0x05, 0x48, 0x57, - 0x4a, 0xf3, 0x63, 0x28, 0x81, 0xf9, 0xc7, 0x87, 0x0b, 0x93, 0xda, 0x60, 0xa6, 0x2b, 0xa5, 0xb3, - 0x6f, 0xc2, 0x84, 0xd2, 0x46, 0x92, 0x87, 0xcc, 0x7d, 0x7a, 0xc0, 0xfb, 0xd3, 0x64, 0x7f, 0x92, - 0x39, 0x18, 0x79, 0x60, 0x37, 0xbb, 0xa2, 0x03, 0x4d, 0xfe, 0xe3, 0x0b, 0xe9, 0xcf, 0xa7, 0x8c, - 0xbf, 0x98, 0x85, 0x9c, 0xe9, 0xf2, 0x59, 0x48, 0xae, 0xc0, 0x48, 0x2d, 0xb0, 0x03, 0x39, 0x14, - 0x27, 0x1e, 0x1f, 0x2e, 0xcc, 0xb0, 0x19, 0x4a, 0x95, 0xfa, 0x38, 0x06, 0x43, 0xad, 0xee, 0xdb, - 0xbe, 0x1c, 0x12, 0x44, 0xed, 0x30, 0x80, 0x8a, 0x8a, 0x18, 0xe4, 0x12, 0x64, 0x57, 0xdd, 0x06, - 0x15, 0xa3, 0x42, 0x1e, 0x1f, 0x2e, 0x4c, 0xb7, 0xdc, 0x86, 0x8a, 0x88, 0xe5, 0xe4, 0x35, 0x18, - 0x2f, 0x76, 0x3d, 0x8f, 0xb6, 0x99, 0x00, 0x67, 0x11, 0x79, 0xfa, 0xf1, 0xe1, 0x02, 0xd4, 0x39, - 0x90, 0x4d, 0xb9, 0x08, 0x81, 0x75, 0x75, 0x2d, 0xb0, 0xbd, 0x80, 0x36, 0xe6, 0x47, 0x86, 0xea, - 0x6a, 0x36, 0xe9, 0x66, 0x7d, 0x4e, 0x12, 0xef, 0x6a, 0xc1, 0x89, 0x2c, 0xc3, 0xc4, 0x1d, 0xcf, - 0xae, 0xd3, 0x2a, 0xf5, 0x1c, 0xb7, 0x81, 0x63, 0x98, 0x59, 0xba, 0xf4, 0xf8, 0x70, 0xe1, 0xd4, - 0x1e, 0x03, 0x5b, 0x1d, 0x84, 0x47, 0xd4, 0x3f, 0x3c, 0x5c, 0xc8, 0x95, 0xba, 0x1e, 0xf6, 0x9e, - 0xa9, 0x92, 0x92, 0xaf, 0xb3, 0x21, 0xf1, 0x03, 0xec, 0x5a, 0xda, 0xc0, 0xd1, 0x1b, 0xdc, 0x44, - 0x43, 0x34, 0xf1, 0x54, 0xd3, 0xf6, 0x03, 0xcb, 0xe3, 0x74, 0xb1, 0x76, 0xaa, 0x2c, 0xc9, 0x3a, - 0xe4, 0x6a, 0xf5, 0x7d, 0xda, 0xe8, 0x36, 0xe9, 0x7c, 0x0e, 0xd9, 0x9f, 0x16, 0x82, 0x2b, 0xc7, - 0x53, 0x16, 0x2f, 0x9d, 0x15, 0xbc, 0x89, 0x2f, 0x20, 0x4a, 0xdf, 0x87, 0x4c, 0xbe, 0x90, 0xfb, - 0xfe, 0x2f, 0x2d, 0x3c, 0xf7, 0x63, 0xff, 0xec, 0xc2, 0x73, 0xc6, 0xdf, 0x4b, 0x43, 0x3e, 0xce, - 0x84, 0xec, 0xc2, 0xd4, 0x66, 0xa7, 0x61, 0x07, 0xb4, 0xd8, 0x74, 0x68, 0x3b, 0xf0, 0x51, 0x48, - 0x06, 0x7f, 0xd3, 0x4b, 0xa2, 0xde, 0xf9, 0x2e, 0x12, 0x5a, 0x75, 0x4e, 0x19, 0xfb, 0x2a, 0x9d, - 0x6d, 0x54, 0x4f, 0x0d, 0x57, 0x6f, 0x1f, 0x25, 0xec, 0x78, 0xf5, 0xf0, 0x75, 0xbf, 0x4f, 0x3d, - 0x82, 0xad, 0x10, 0xa0, 0x76, 0x63, 0xe7, 0x00, 0x25, 0x73, 0x78, 0x01, 0x62, 0x24, 0x09, 0x02, - 0xc4, 0xc0, 0xc6, 0xff, 0x94, 0x82, 0x69, 0x93, 0xfa, 0x6e, 0xd7, 0xab, 0xd3, 0x65, 0x6a, 0x37, - 0xa8, 0xc7, 0xc4, 0xff, 0x9e, 0xd3, 0x6e, 0x88, 0x39, 0x85, 0xe2, 0x7f, 0xdf, 0x69, 0xab, 0x53, - 0x18, 0xcb, 0xc9, 0x67, 0x60, 0xac, 0xd6, 0xdd, 0x41, 0x54, 0x3e, 0xa7, 0x4e, 0xe1, 0x88, 0x75, - 0x77, 0xac, 0x18, 0xba, 0x44, 0x23, 0xd7, 0x61, 0x6c, 0x8b, 0x7a, 0x7e, 0xb4, 0xe2, 0xe1, 0x7a, - 0xff, 0x80, 0x83, 0x54, 0x02, 0x81, 0x45, 0xee, 0x44, 0xab, 0xae, 0xd8, 0xa9, 0x66, 0x62, 0x6b, - 0x5d, 0x24, 0x2a, 0x2d, 0x01, 0x51, 0x45, 0x45, 0x62, 0x19, 0x3f, 0x97, 0x86, 0x7c, 0xc9, 0x0e, - 0xec, 0x1d, 0xdb, 0x17, 0xfd, 0xb9, 0x75, 0x93, 0xad, 0xe3, 0xca, 0x87, 0xe2, 0x3a, 0xce, 0x5a, - 0xfe, 0xb1, 0x3f, 0xef, 0xe5, 0xf8, 0xe7, 0x4d, 0xb0, 0x6d, 0x53, 0x7c, 0x5e, 0xf4, 0x51, 0xef, - 0x1c, 0xfd, 0x51, 0x79, 0xf1, 0x51, 0x39, 0xf9, 0x51, 0xd1, 0xa7, 0x90, 0x77, 0x20, 0x5b, 0xeb, - 0xd0, 0xba, 0x58, 0x44, 0xe4, 0xda, 0xaf, 0x7f, 0x1c, 0x43, 0xd8, 0xba, 0xb9, 0x34, 0x29, 0xd8, - 0x64, 0xfd, 0x0e, 0xad, 0x9b, 0x48, 0xa6, 0x4c, 0x9a, 0xbf, 0x9f, 0x81, 0xb9, 0x24, 0x32, 0xf5, - 0x3b, 0x46, 0x07, 0x7c, 0xc7, 0x65, 0xc8, 0xb1, 0x7d, 0x99, 0x6d, 0x7d, 0xb8, 0x5c, 0x8c, 0x73, - 0x75, 0x63, 0x5f, 0xc0, 0xcc, 0xb0, 0x94, 0x5c, 0x0c, 0xb7, 0xf9, 0x5c, 0xc4, 0x4f, 0x6c, 0xf3, - 0x72, 0x73, 0x67, 0x63, 0x2d, 0xa7, 0x30, 0x6a, 0x03, 0x51, 0xb7, 0x48, 0x70, 0x34, 0xd6, 0x9e, - 0x80, 0xa8, 0x63, 0x1d, 0x6e, 0x0a, 0x65, 0xc8, 0xc9, 0xcf, 0x9a, 0x9f, 0x44, 0x46, 0xb3, 0xb1, - 0x4e, 0xda, 0xba, 0xc9, 0x07, 0xb3, 0x21, 0x7e, 0xab, 0x6c, 0x24, 0x0e, 0xb9, 0x09, 0xb9, 0xaa, - 0xe7, 0x3e, 0x3a, 0xa8, 0x94, 0xfc, 0xf9, 0xa9, 0x0b, 0x99, 0xcb, 0xe3, 0x4b, 0xa7, 0x1f, 0x1f, - 0x2e, 0x9c, 0xe8, 0x30, 0x98, 0xe5, 0x34, 0xd4, 0xdd, 0x34, 0x44, 0xbc, 0x9b, 0xcd, 0xa5, 0xf2, - 0xe9, 0xbb, 0xd9, 0x5c, 0x3a, 0x9f, 0xb9, 0x9b, 0xcd, 0x65, 0xf2, 0xd9, 0xbb, 0xd9, 0x5c, 0x36, - 0x3f, 0x72, 0x37, 0x9b, 0x1b, 0xc9, 0x8f, 0xde, 0xcd, 0xe6, 0xc6, 0xf3, 0x70, 0x37, 0x9b, 0x9b, - 0xc8, 0x4f, 0x6a, 0x3b, 0x3a, 0x32, 0x08, 0xdc, 0xba, 0xdb, 0x34, 0x33, 0x9b, 0x66, 0xc5, 0x1c, - 0x2d, 0x16, 0x8a, 0xd4, 0x0b, 0xcc, 0x4c, 0x61, 0xbb, 0x66, 0x4e, 0x95, 0x0e, 0xda, 0x76, 0xcb, - 0xa9, 0xf3, 0x0d, 0xd3, 0xcc, 0xdc, 0x29, 0x56, 0x8d, 0x02, 0x4c, 0x47, 0xdf, 0xb2, 0xe2, 0xf8, - 0x01, 0xb9, 0x0e, 0xe3, 0x12, 0xc2, 0x16, 0xba, 0x4c, 0xe2, 0x57, 0x9b, 0x11, 0x8e, 0xf1, 0x3b, - 0x69, 0x80, 0xa8, 0xe4, 0x19, 0x9d, 0x0b, 0x9f, 0xd3, 0xe6, 0xc2, 0xc9, 0xf8, 0x5c, 0xe8, 0x3b, - 0x0b, 0xc8, 0x7b, 0x30, 0xca, 0xd4, 0x82, 0xae, 0x54, 0x7b, 0x4e, 0xc7, 0x49, 0xb1, 0x70, 0xeb, - 0xe6, 0xd2, 0xb4, 0x20, 0x1e, 0xf5, 0x11, 0x62, 0x0a, 0x32, 0x65, 0x1a, 0xfd, 0x77, 0xa3, 0xd1, - 0x60, 0x88, 0x09, 0x74, 0x19, 0xc2, 0x01, 0x15, 0x1d, 0x8a, 0x33, 0xa3, 0x23, 0x07, 0x39, 0x2c, - 0x25, 0x67, 0x80, 0x0d, 0xb8, 0xe8, 0xd4, 0xb1, 0xc7, 0x87, 0x0b, 0x99, 0xae, 0xe7, 0xa0, 0x10, - 0x90, 0xeb, 0x20, 0xc4, 0x40, 0x74, 0x20, 0x93, 0xbe, 0xd9, 0xba, 0x6d, 0xd5, 0xa9, 0x17, 0x44, - 0x3d, 0x3e, 0x9f, 0x92, 0xd2, 0x42, 0x3a, 0xa0, 0x8b, 0xca, 0x7c, 0x16, 0xc5, 0xe0, 0x72, 0x62, - 0xaf, 0x5c, 0xd3, 0x50, 0xb9, 0xaa, 0x78, 0x41, 0xee, 0x4a, 0x0d, 0x5e, 0x66, 0xf5, 0xa8, 0x8d, - 0x7a, 0x05, 0xe4, 0x26, 0x30, 0x09, 0x15, 0xbd, 0x0f, 0xa2, 0x9e, 0xc2, 0x76, 0x6d, 0xe9, 0xa4, - 0xe0, 0x34, 0x65, 0x3f, 0x54, 0xc9, 0x19, 0x36, 0x79, 0x0b, 0x98, 0x08, 0x8b, 0x7e, 0x27, 0x82, - 0xe8, 0x4e, 0xb1, 0x5a, 0x6c, 0xba, 0xdd, 0x46, 0xed, 0xfd, 0x95, 0x88, 0x78, 0xaf, 0xde, 0x51, - 0x89, 0xef, 0x14, 0xab, 0xe4, 0x2d, 0x18, 0x29, 0x7c, 0xb3, 0xeb, 0x51, 0xa1, 0x9f, 0x4c, 0xca, - 0x3a, 0x19, 0x6c, 0xe9, 0xb4, 0x20, 0x9c, 0xb1, 0xd9, 0x4f, 0x55, 0xaf, 0xc3, 0x72, 0x56, 0xf3, - 0xc6, 0x4a, 0x4d, 0xe8, 0x1e, 0x24, 0xd6, 0x2d, 0x1b, 0x2b, 0x4a, 0xb3, 0x03, 0xed, 0xab, 0x19, - 0x15, 0xb9, 0x0e, 0xe9, 0x42, 0x09, 0x8f, 0x39, 0x13, 0x8b, 0xe3, 0xb2, 0xda, 0xd2, 0xd2, 0x9c, - 0x20, 0x99, 0xb4, 0x35, 0x1d, 0xb7, 0x50, 0x22, 0x4b, 0x30, 0xb2, 0x7a, 0x50, 0x7b, 0x7f, 0x45, - 0x2c, 0x66, 0x27, 0xa4, 0x5c, 0x33, 0xd8, 0x3a, 0x4e, 0x7b, 0x3f, 0x6a, 0x71, 0xeb, 0xc0, 0xff, - 0x46, 0x53, 0x6d, 0x31, 0xa2, 0x91, 0x2a, 0x8c, 0x17, 0x1a, 0x2d, 0xa7, 0xbd, 0xe9, 0x53, 0x6f, - 0x7e, 0x02, 0xf9, 0xcc, 0xc7, 0xda, 0x1d, 0x96, 0x2f, 0xcd, 0x3f, 0x3e, 0x5c, 0x98, 0xb3, 0xd9, - 0x4f, 0xab, 0xeb, 0x53, 0x4f, 0xe1, 0x16, 0x31, 0x21, 0x55, 0x80, 0x55, 0xb7, 0xbd, 0xe7, 0x16, - 0x82, 0xa6, 0xed, 0xc7, 0x96, 0xc7, 0xa8, 0x20, 0x54, 0x1f, 0x4e, 0xb6, 0x18, 0xcc, 0xb2, 0x19, - 0x50, 0x61, 0xa8, 0xf0, 0x38, 0xbb, 0x0d, 0xa4, 0x57, 0x96, 0x12, 0x54, 0xfa, 0x57, 0x55, 0x95, - 0x3e, 0x9a, 0xac, 0x45, 0xb7, 0xd5, 0xb2, 0xdb, 0x0d, 0xa4, 0xdd, 0x5a, 0x54, 0x35, 0xfd, 0x1b, - 0x30, 0xdb, 0xf3, 0x91, 0x83, 0xcf, 0x5e, 0xc6, 0x5f, 0x53, 0xb7, 0x79, 0x31, 0x85, 0xd9, 0x21, - 0x53, 0x4c, 0xa4, 0x54, 0xa4, 0x74, 0xf4, 0x4c, 0xa4, 0x70, 0x1a, 0x5d, 0xe1, 0x42, 0x9d, 0xee, - 0x11, 0xea, 0x09, 0xd1, 0x27, 0x19, 0xfb, 0xa1, 0xcf, 0x45, 0x39, 0x1c, 0xe2, 0xcc, 0xc7, 0x1f, - 0xe2, 0xf7, 0x60, 0x72, 0xd5, 0x6e, 0xdb, 0x7b, 0xb4, 0xc1, 0xbe, 0x8f, 0x4f, 0xda, 0xf1, 0xa5, - 0xe7, 0x1f, 0x1f, 0x2e, 0x9c, 0x6e, 0x71, 0x38, 0x8e, 0xa6, 0xda, 0xfb, 0x1a, 0x01, 0xb9, 0x21, - 0xa7, 0xc4, 0x48, 0xc2, 0x94, 0x98, 0x12, 0xb5, 0x8f, 0xe0, 0x94, 0x10, 0x13, 0xc1, 0xf8, 0xa7, - 0x63, 0xf8, 0x8d, 0xe4, 0x35, 0x18, 0x35, 0xe9, 0x1e, 0x5b, 0xa3, 0x79, 0xcf, 0xe0, 0x59, 0xd1, - 0x43, 0x88, 0xda, 0x31, 0x1c, 0x07, 0x37, 0x68, 0xda, 0xf0, 0xf7, 0x9d, 0xdd, 0x40, 0xf4, 0x4e, - 0xb8, 0x41, 0x0b, 0xb0, 0xb2, 0x41, 0x0b, 0x88, 0xb6, 0x41, 0x0b, 0x18, 0x5b, 0x36, 0xcc, 0x52, - 0x4d, 0x74, 0x9a, 0xec, 0x61, 0xb3, 0xa4, 0xcc, 0x3f, 0x4f, 0xdb, 0x5e, 0x19, 0x36, 0xb9, 0x05, - 0xe3, 0x85, 0x7a, 0xdd, 0xed, 0x2a, 0x87, 0x2d, 0x2e, 0xf0, 0x1c, 0xa8, 0x1b, 0x0c, 0x22, 0x54, - 0x52, 0x83, 0x89, 0x32, 0x3b, 0xa1, 0x38, 0x45, 0xbb, 0xbe, 0x2f, 0x3b, 0x49, 0x4e, 0x7e, 0xa5, - 0x24, 0x12, 0x79, 0x8a, 0xc0, 0x3a, 0x03, 0xaa, 0x27, 0x70, 0x05, 0x97, 0x6c, 0xc0, 0x44, 0x8d, - 0xd6, 0x3d, 0x1a, 0xd4, 0x02, 0xd7, 0xa3, 0xb1, 0xb5, 0x4c, 0x29, 0x59, 0x3a, 0x2f, 0x0f, 0x49, - 0x3e, 0x02, 0x2d, 0x9f, 0x41, 0x55, 0xae, 0x0a, 0x32, 0xd7, 0x76, 0x5b, 0xae, 0x77, 0x50, 0x5a, - 0x12, 0xeb, 0x5b, 0xb4, 0x19, 0x72, 0xb0, 0xaa, 0xed, 0x32, 0x48, 0x63, 0x47, 0xd7, 0x76, 0x39, - 0x16, 0x8e, 0x54, 0xa9, 0x86, 0x4a, 0x89, 0x58, 0xed, 0x66, 0xa2, 0x5e, 0x46, 0xb0, 0x32, 0x52, - 0x0d, 0x1f, 0x55, 0x1a, 0x6d, 0xa4, 0x04, 0x16, 0xe9, 0x00, 0x91, 0xa3, 0xc6, 0x35, 0xc4, 0x26, - 0xf5, 0x7d, 0xb1, 0x08, 0x9e, 0x89, 0x0d, 0x7e, 0x84, 0xb0, 0xf4, 0xb2, 0x60, 0xfe, 0x82, 0x14, - 0x03, 0x71, 0xc0, 0x61, 0x85, 0x4a, 0x3d, 0x09, 0xbc, 0xc9, 0x9b, 0x00, 0xe5, 0x47, 0x01, 0xf5, - 0xda, 0x76, 0x33, 0xb4, 0x0a, 0xa1, 0x5d, 0x84, 0x0a, 0xa8, 0x3e, 0xd0, 0x0a, 0x32, 0x29, 0xc2, - 0x54, 0xc1, 0xf7, 0xbb, 0x2d, 0x6a, 0xba, 0x4d, 0x5a, 0x30, 0xd7, 0x70, 0xc1, 0x1c, 0x5f, 0x7a, - 0xe1, 0xf1, 0xe1, 0xc2, 0x19, 0x1b, 0x0b, 0x2c, 0xcf, 0x6d, 0x52, 0xcb, 0xf6, 0x54, 0xe9, 0xd6, - 0x69, 0xc8, 0x3a, 0xc0, 0x7a, 0x87, 0xb6, 0x6b, 0xd4, 0xf6, 0xea, 0xfb, 0xb1, 0xf5, 0x31, 0x2a, - 0x58, 0x3a, 0x27, 0xbe, 0x70, 0xce, 0xed, 0xd0, 0xb6, 0x8f, 0x30, 0xb5, 0x55, 0x11, 0x26, 0xd9, - 0x86, 0x99, 0x4a, 0x61, 0xb5, 0xea, 0x36, 0x9d, 0xfa, 0x81, 0x50, 0x39, 0xa6, 0xd1, 0x56, 0x76, - 0x4a, 0x70, 0x8d, 0x95, 0xf2, 0xe5, 0xc9, 0xb1, 0x5b, 0x56, 0x07, 0xa1, 0x96, 0x50, 0x3c, 0xe2, - 0x5c, 0xee, 0x66, 0x73, 0x53, 0xf9, 0x69, 0x05, 0x5c, 0x7e, 0xe4, 0xf8, 0x81, 0x6f, 0xfc, 0x88, - 0x26, 0x9a, 0x6c, 0xda, 0xdc, 0xa3, 0x07, 0x55, 0x8f, 0xee, 0x3a, 0x8f, 0xc4, 0x2c, 0xc7, 0x69, - 0x73, 0x9f, 0x1e, 0x58, 0x1d, 0x84, 0xaa, 0xd3, 0x26, 0x44, 0x25, 0x9f, 0x85, 0xdc, 0xbd, 0xd5, - 0xda, 0x3d, 0x7a, 0x50, 0x29, 0x09, 0xed, 0x84, 0x93, 0xb5, 0x7c, 0x8b, 0x91, 0x6a, 0x83, 0x10, - 0x62, 0x1a, 0x4b, 0xd1, 0x12, 0xc1, 0x6a, 0x2e, 0x36, 0xbb, 0x7e, 0x40, 0xbd, 0x4a, 0x49, 0xad, - 0xb9, 0xce, 0x81, 0xb1, 0x09, 0x1b, 0xa2, 0x1a, 0xdf, 0x4e, 0xe3, 0xf2, 0xc0, 0x24, 0xa1, 0xd2, - 0x66, 0xa7, 0xd7, 0x3a, 0x0d, 0x19, 0xa0, 0x24, 0x38, 0x02, 0x1a, 0x93, 0x84, 0x08, 0x59, 0xaf, - 0x3a, 0x3d, 0x74, 0xd5, 0xac, 0x4a, 0x79, 0x16, 0x16, 0x26, 0x54, 0x51, 0xa5, 0x27, 0xa0, 0xb1, - 0x2a, 0x23, 0x64, 0x72, 0x09, 0xc6, 0x2a, 0x85, 0xd5, 0x42, 0x37, 0xd8, 0xc7, 0xc5, 0x29, 0xc7, - 0x35, 0x3e, 0x36, 0x8c, 0x76, 0x37, 0xd8, 0x37, 0x65, 0x21, 0x3b, 0x02, 0xd7, 0xba, 0x3b, 0x6d, - 0x1a, 0x70, 0xe3, 0x9d, 0xd8, 0x8d, 0x7c, 0x0e, 0x8a, 0x29, 0xd2, 0x0c, 0x64, 0xfc, 0x76, 0x2a, - 0x9a, 0xcc, 0xec, 0x68, 0xae, 0xec, 0x7e, 0x78, 0x34, 0x67, 0xbb, 0x9f, 0x7a, 0x34, 0x47, 0x1b, - 0xa4, 0x09, 0xa4, 0xd8, 0xf5, 0x03, 0xb7, 0x55, 0x6e, 0x37, 0x3a, 0xae, 0xd3, 0x0e, 0x90, 0x8a, - 0xf7, 0x84, 0xf1, 0xf8, 0x70, 0xe1, 0x7c, 0x1d, 0x4b, 0x2d, 0x2a, 0x8a, 0xad, 0x18, 0x97, 0x04, - 0xea, 0x27, 0xe8, 0x1c, 0xe3, 0x1f, 0xa6, 0xb5, 0x45, 0x98, 0x35, 0xcf, 0xa4, 0x9d, 0xa6, 0x53, - 0xc7, 0x03, 0xdb, 0x1d, 0xcf, 0xed, 0x76, 0xc2, 0x21, 0xc6, 0xe6, 0x79, 0x51, 0xa9, 0xb5, 0xc7, - 0x8a, 0x75, 0xde, 0x09, 0xd4, 0xe4, 0x8b, 0x30, 0xc9, 0xf6, 0x43, 0xf1, 0xd3, 0x9f, 0x4f, 0x63, - 0xef, 0x9e, 0x43, 0x23, 0x8b, 0x4f, 0xbd, 0x90, 0x8d, 0xb6, 0x91, 0xaa, 0x14, 0xa4, 0x01, 0xf3, - 0x1b, 0x9e, 0xdd, 0xf6, 0x9d, 0xa0, 0xdc, 0xae, 0x7b, 0x07, 0xb8, 0x7f, 0x97, 0xdb, 0xf6, 0x4e, - 0x93, 0x36, 0xf0, 0x73, 0x73, 0x4b, 0x97, 0x1f, 0x1f, 0x2e, 0xbc, 0x14, 0x70, 0x1c, 0x8b, 0x86, - 0x48, 0x16, 0xe5, 0x58, 0x0a, 0xe7, 0xbe, 0x9c, 0xd8, 0x7e, 0x2f, 0xbb, 0x15, 0x0d, 0xe7, 0x7c, - 0x2b, 0xc3, 0xfd, 0x3e, 0x1c, 0x0d, 0xb6, 0x30, 0xa8, 0xcd, 0x54, 0x09, 0x8c, 0x7f, 0x93, 0x8a, - 0xb6, 0x09, 0xf2, 0x36, 0x4c, 0x08, 0xf1, 0x55, 0xe4, 0xe2, 0x2c, 0xdb, 0x70, 0xa4, 0xac, 0xc7, - 0x46, 0x56, 0x45, 0x67, 0xc7, 0xba, 0x42, 0x71, 0x45, 0x91, 0x0d, 0x3c, 0xd6, 0xd9, 0xf5, 0x66, - 0x9c, 0x4a, 0xa2, 0x31, 0x21, 0xd8, 0x58, 0xa9, 0xe9, 0xbd, 0x82, 0x42, 0x10, 0x34, 0xfd, 0x84, - 0x6e, 0x50, 0x90, 0x9f, 0xfc, 0xc3, 0xff, 0xfb, 0x54, 0xd2, 0x6e, 0x44, 0x96, 0x60, 0x6a, 0xdb, - 0xf5, 0xee, 0xe3, 0xf8, 0x2a, 0x9d, 0x80, 0x23, 0xff, 0x50, 0x16, 0xc4, 0x3f, 0x48, 0x27, 0x51, - 0xdb, 0xa6, 0xf4, 0x86, 0xde, 0xb6, 0x18, 0x07, 0x8d, 0x80, 0x8d, 0x43, 0xc8, 0x31, 0x9c, 0x1d, - 0x38, 0x0e, 0x51, 0x13, 0x34, 0x11, 0x56, 0xd1, 0x8d, 0xff, 0x2c, 0xa5, 0xee, 0x3a, 0xac, 0x93, - 0x4b, 0x6e, 0xcb, 0x76, 0xda, 0xca, 0xe7, 0xf0, 0xbb, 0x01, 0x84, 0xc6, 0x5b, 0xa2, 0x20, 0x93, - 0x9b, 0x90, 0xe3, 0xbf, 0xc2, 0x85, 0x0f, 0x8d, 0x16, 0x82, 0x50, 0x5f, 0xb5, 0x25, 0x62, 0xcf, - 0xc8, 0x64, 0x8e, 0x3b, 0x32, 0x3f, 0x96, 0x82, 0x09, 0xe5, 0x04, 0xc7, 0xd6, 0xdf, 0xaa, 0xe7, - 0x7e, 0x44, 0xeb, 0x81, 0xbe, 0xf4, 0x77, 0x38, 0x30, 0xb6, 0xfe, 0x86, 0xa8, 0xb1, 0x25, 0x3f, - 0x7d, 0x8c, 0x25, 0xdf, 0xf8, 0x5f, 0x53, 0x42, 0x0d, 0x1e, 0x7a, 0x8d, 0xd4, 0xd7, 0xb3, 0xf4, - 0x71, 0x16, 0xfb, 0x2f, 0xc2, 0x88, 0x49, 0x1b, 0x8e, 0x2f, 0x54, 0xd8, 0x59, 0x55, 0xe5, 0xc6, - 0x82, 0x48, 0xeb, 0xf7, 0xd8, 0x4f, 0x55, 0xeb, 0xc7, 0x72, 0xa6, 0xab, 0x54, 0xfc, 0xdb, 0x4d, - 0xfa, 0xc8, 0xe1, 0x92, 0x2c, 0x36, 0x0d, 0xd4, 0x55, 0x1c, 0xdf, 0xda, 0x65, 0x25, 0x42, 0x69, - 0x52, 0xa5, 0x56, 0xa3, 0x31, 0x3e, 0x00, 0x88, 0xaa, 0x24, 0xf7, 0x20, 0x2f, 0xe6, 0xb6, 0xd3, - 0xde, 0xe3, 0x2a, 0x81, 0xe8, 0x83, 0x85, 0xc7, 0x87, 0x0b, 0xcf, 0xd7, 0xc3, 0x32, 0xa1, 0x58, - 0x28, 0x7c, 0x7b, 0x08, 0x8d, 0xff, 0x20, 0xcd, 0x8e, 0xbb, 0xac, 0x8f, 0xee, 0xd1, 0x83, 0xc0, - 0xde, 0xb9, 0xed, 0x34, 0x35, 0x49, 0xbc, 0x8f, 0x50, 0x6b, 0xd7, 0xd1, 0x4c, 0xf3, 0x0a, 0x32, - 0x93, 0xc4, 0x7b, 0xde, 0xce, 0x1b, 0x48, 0xa8, 0x48, 0xe2, 0x7d, 0x6f, 0xe7, 0x8d, 0x38, 0x59, - 0x88, 0x48, 0x0c, 0x18, 0xe5, 0x52, 0x29, 0x64, 0x10, 0x1e, 0x1f, 0x2e, 0x8c, 0x72, 0xe1, 0x35, - 0x45, 0x09, 0x39, 0x03, 0x99, 0x5a, 0x75, 0x4d, 0x2c, 0x1f, 0x68, 0x32, 0xf1, 0x3b, 0x6d, 0x93, - 0xc1, 0x58, 0x9d, 0x2b, 0xa5, 0x42, 0x15, 0xcf, 0x7a, 0x23, 0x51, 0x9d, 0xcd, 0x86, 0xdd, 0x89, - 0x9f, 0xf6, 0x42, 0x44, 0xf2, 0x0e, 0x4c, 0xdc, 0x2b, 0x15, 0x97, 0x5d, 0x9f, 0x4f, 0xfd, 0xd1, - 0x48, 0xf8, 0xef, 0x37, 0xea, 0x16, 0x5a, 0x29, 0xe3, 0x6b, 0xa8, 0x82, 0x6f, 0xfc, 0x7a, 0x0a, - 0x26, 0x14, 0x1b, 0x02, 0xf9, 0xac, 0xb8, 0x3c, 0x4a, 0x69, 0x4a, 0x9e, 0x82, 0xc1, 0x4a, 0xf9, - 0xc1, 0xb5, 0xe5, 0x36, 0xa8, 0xb8, 0x4a, 0x8a, 0xce, 0xa8, 0xe9, 0x61, 0xce, 0xa8, 0x6f, 0x02, - 0x70, 0x19, 0xc0, 0x26, 0x2b, 0x7b, 0xb1, 0x72, 0x81, 0xac, 0x8e, 0x4b, 0x84, 0x6c, 0x98, 0x30, - 0xa9, 0x9e, 0x4f, 0xd9, 0xf2, 0x29, 0x0c, 0xe2, 0xc2, 0x5c, 0xa7, 0x2c, 0x9f, 0x82, 0x5b, 0xaf, - 0x81, 0x5e, 0x27, 0x31, 0x3e, 0xab, 0x1a, 0x15, 0x86, 0x9d, 0x80, 0xc6, 0x4f, 0xa4, 0xa2, 0xe9, - 0xbe, 0x75, 0x83, 0xbc, 0x05, 0xa3, 0xfc, 0x02, 0x42, 0xdc, 0xd3, 0x9c, 0x0c, 0xcf, 0x17, 0xea, - 0xed, 0x04, 0xb7, 0xe6, 0xfd, 0x1e, 0xbf, 0x88, 0x7c, 0xce, 0x14, 0x24, 0xa1, 0x21, 0x50, 0xb7, - 0x2d, 0x48, 0xee, 0x68, 0xf2, 0xba, 0x91, 0x64, 0x08, 0x34, 0xfe, 0x65, 0x06, 0xa6, 0x75, 0x34, - 0xf5, 0x96, 0x22, 0x35, 0xd4, 0x2d, 0xc5, 0x17, 0x21, 0xc7, 0xfa, 0xc3, 0xa9, 0x53, 0xa9, 0x76, - 0xbc, 0x84, 0xe6, 0x51, 0x01, 0xd3, 0x6e, 0xdf, 0xa0, 0x76, 0xe0, 0x07, 0xb4, 0xc5, 0x8e, 0x1b, - 0x66, 0x48, 0x45, 0x16, 0x15, 0x53, 0x7a, 0x26, 0xda, 0x89, 0xa5, 0x29, 0x5d, 0x95, 0xdb, 0xd0, - 0xa8, 0xfe, 0x3a, 0x8c, 0x32, 0x8d, 0x32, 0x3c, 0x0d, 0x63, 0x2b, 0x99, 0xb2, 0x19, 0xbb, 0x3b, - 0xe7, 0x48, 0x64, 0x1b, 0x72, 0x2b, 0xb6, 0x1f, 0xd4, 0x28, 0x6d, 0x0f, 0x71, 0xff, 0xb8, 0x20, - 0xba, 0xea, 0x04, 0x5e, 0xee, 0xf9, 0x94, 0xb6, 0x63, 0x17, 0x48, 0x21, 0x33, 0xf2, 0x55, 0x80, - 0xa2, 0xdb, 0x0e, 0x3c, 0xb7, 0xb9, 0xe2, 0xee, 0xcd, 0x8f, 0xa2, 0xcd, 0xf1, 0x7c, 0x6c, 0x00, - 0x22, 0x04, 0x6e, 0x69, 0x0c, 0xcf, 0xda, 0x75, 0x5e, 0x60, 0x35, 0xdd, 0x3d, 0x55, 0x5e, 0x23, - 0x7c, 0x72, 0x1b, 0xf2, 0xf2, 0x8c, 0xb7, 0xd9, 0xd9, 0xf3, 0x50, 0x40, 0xc6, 0xa2, 0xed, 0x95, - 0x3e, 0x0a, 0xac, 0xae, 0x80, 0xab, 0x2b, 0x5a, 0x9c, 0xc6, 0xf8, 0x61, 0x1a, 0x4e, 0xf7, 0x69, - 0x0e, 0x93, 0x58, 0xdc, 0xf8, 0x14, 0x89, 0x8d, 0xed, 0x77, 0xdc, 0x5d, 0x81, 0x5f, 0x6c, 0x33, - 0x19, 0xcb, 0x26, 0x5f, 0x6c, 0x93, 0xbb, 0x90, 0x65, 0x9d, 0x38, 0xc4, 0x05, 0x9d, 0x3c, 0x80, - 0x4f, 0x07, 0x8e, 0x3a, 0xc0, 0xd8, 0xb9, 0xc8, 0x83, 0x7c, 0x16, 0x32, 0x1b, 0x1b, 0x2b, 0x38, - 0xba, 0x19, 0x54, 0x8b, 0xa7, 0x82, 0xa0, 0xa9, 0x09, 0xd3, 0x14, 0xa3, 0xbd, 0x16, 0xde, 0xe7, - 0x32, 0x74, 0xf2, 0xa5, 0x98, 0x73, 0xc0, 0xd5, 0xc1, 0x43, 0x31, 0xbc, 0xaf, 0xc0, 0x93, 0x5c, - 0xda, 0xff, 0x95, 0x74, 0x34, 0xcb, 0x6e, 0x3b, 0xcd, 0x80, 0x7a, 0xe4, 0x2c, 0x9f, 0x34, 0xd1, - 0xe9, 0xd0, 0x0c, 0x7f, 0x93, 0xf9, 0x68, 0x06, 0x72, 0x56, 0xe1, 0x54, 0xbb, 0xaa, 0x4c, 0xb5, - 0x0c, 0x4e, 0xb5, 0xe9, 0xbe, 0x93, 0xea, 0x6a, 0x82, 0xe4, 0xe0, 0x54, 0xe9, 0x95, 0x0e, 0xf2, - 0x12, 0x4c, 0xad, 0xb9, 0xe5, 0x47, 0x41, 0x88, 0xc8, 0xa6, 0x48, 0xce, 0xd4, 0x81, 0x8c, 0xe3, - 0x7a, 0xb3, 0x41, 0xbd, 0x8d, 0x7d, 0xbb, 0xad, 0xdd, 0x90, 0x99, 0x3d, 0x70, 0x86, 0xbb, 0x46, - 0x1f, 0xea, 0xb8, 0x63, 0x1c, 0x37, 0x0e, 0x37, 0x7e, 0x3c, 0x2d, 0x3b, 0x63, 0x6b, 0xf1, 0x19, - 0xbd, 0x89, 0x79, 0x43, 0xbb, 0x89, 0x39, 0x11, 0x9a, 0xc2, 0xc2, 0x6b, 0xc5, 0xc5, 0x23, 0x6e, - 0x23, 0x7f, 0x7c, 0x14, 0x26, 0x55, 0x74, 0xd6, 0x0f, 0x85, 0x46, 0xc3, 0x53, 0xfb, 0xc1, 0x6e, - 0x34, 0x3c, 0x13, 0xa1, 0x6c, 0x07, 0xac, 0x76, 0x77, 0x9a, 0x4e, 0x1d, 0x71, 0x14, 0xed, 0xad, - 0x83, 0x50, 0x8b, 0xa1, 0xaa, 0x2b, 0x4a, 0x84, 0xac, 0xdd, 0x5b, 0x66, 0x06, 0xde, 0x5b, 0x7e, - 0x0d, 0xc6, 0x8b, 0xad, 0x86, 0x76, 0x9b, 0x62, 0x24, 0x7c, 0xd9, 0xb5, 0x10, 0x89, 0x4f, 0xa3, - 0xd0, 0x38, 0x54, 0x6f, 0x35, 0x7a, 0xef, 0x50, 0x22, 0x96, 0xda, 0x95, 0xe7, 0xc8, 0x93, 0x5c, - 0x79, 0xde, 0x82, 0xf1, 0x4d, 0x9f, 0x6e, 0x74, 0xdb, 0x6d, 0xda, 0x44, 0x89, 0xcc, 0x71, 0x85, - 0xbb, 0xeb, 0x53, 0x2b, 0x40, 0xa8, 0xda, 0x80, 0x10, 0x55, 0x95, 0x8d, 0xb1, 0x01, 0xb2, 0x71, - 0x13, 0x72, 0x55, 0x4a, 0x3d, 0xec, 0xea, 0x89, 0x48, 0xaf, 0xea, 0x50, 0xea, 0xc5, 0x3b, 0x3a, - 0x44, 0xd4, 0xee, 0x4f, 0x27, 0x87, 0xbc, 0x3f, 0x25, 0x2f, 0xc2, 0xa4, 0x32, 0x80, 0xe2, 0xe2, - 0xd5, 0x9c, 0xe8, 0x84, 0xa3, 0xe7, 0x93, 0x2f, 0xc1, 0x14, 0x1e, 0x34, 0x42, 0x69, 0x9d, 0xc6, - 0x9e, 0x9b, 0x93, 0xf7, 0x09, 0x6a, 0x19, 0x57, 0x63, 0xea, 0x0c, 0x64, 0x25, 0xf8, 0x07, 0xe8, - 0x8c, 0xce, 0xd6, 0x60, 0x5a, 0x1f, 0xc9, 0xa7, 0x70, 0x8b, 0x71, 0x37, 0x9b, 0xcb, 0xe5, 0xc7, - 0xef, 0x66, 0x73, 0x90, 0x9f, 0xe0, 0xf7, 0xbf, 0x26, 0xb9, 0xd7, 0xdd, 0xa1, 0x5e, 0x9b, 0x06, - 0xd4, 0x17, 0x7a, 0xb7, 0x6f, 0x66, 0x0b, 0x9d, 0x8e, 0x6f, 0xfc, 0x5f, 0x29, 0x18, 0x2b, 0x6c, - 0xd7, 0x2a, 0xed, 0x5d, 0x97, 0xbc, 0xa6, 0xda, 0xbb, 0x53, 0x91, 0x73, 0x51, 0x64, 0xef, 0x56, - 0xad, 0xdc, 0xd7, 0x13, 0x4e, 0x4e, 0xe8, 0x51, 0xa8, 0x9c, 0x9c, 0x34, 0x13, 0x59, 0x64, 0xfa, - 0xcf, 0x0c, 0x61, 0xfa, 0xbf, 0x0a, 0x23, 0x5b, 0xd5, 0x62, 0xa8, 0x6a, 0x20, 0xf2, 0x83, 0x4e, - 0x5d, 0xd7, 0x34, 0x38, 0x0a, 0x79, 0x0b, 0x26, 0x2a, 0xed, 0x80, 0xee, 0x79, 0x91, 0x5c, 0x87, - 0xa7, 0xb8, 0x10, 0xac, 0x6a, 0xd3, 0x0a, 0xb6, 0x51, 0x8a, 0x0d, 0xae, 0xbc, 0x62, 0xe4, 0x2a, - 0xe1, 0x74, 0x74, 0x1b, 0xc3, 0xfa, 0x68, 0x69, 0x36, 0xf9, 0x8a, 0xd1, 0xf8, 0x56, 0x1a, 0x26, - 0x0a, 0x9d, 0xce, 0x33, 0xee, 0xe8, 0xf1, 0x79, 0x6d, 0x49, 0x95, 0x27, 0x89, 0xf0, 0xbb, 0x86, - 0xf2, 0xf1, 0xf8, 0x8d, 0x34, 0xcc, 0xc4, 0x28, 0xd4, 0xd6, 0xa7, 0x86, 0x74, 0xef, 0x48, 0x0f, - 0xe9, 0xde, 0x91, 0x19, 0xce, 0xbd, 0x23, 0xfb, 0x24, 0x6b, 0xdd, 0x2b, 0x90, 0x29, 0x74, 0x3a, - 0xf1, 0xdb, 0xae, 0x4e, 0x67, 0xeb, 0x26, 0x3f, 0x0d, 0xda, 0x9d, 0x8e, 0xc9, 0x30, 0xb4, 0x05, - 0x68, 0x74, 0xc8, 0x05, 0xc8, 0x78, 0x1d, 0xc6, 0x91, 0x17, 0x3a, 0x55, 0x5c, 0x00, 0x9c, 0x97, - 0xc2, 0x9f, 0x42, 0xab, 0x4b, 0xcc, 0xd8, 0xff, 0x33, 0x05, 0x23, 0xf8, 0xfb, 0x19, 0x95, 0xb1, - 0x45, 0x4d, 0xc6, 0xf2, 0x8a, 0x8c, 0x0d, 0x23, 0x5d, 0xff, 0x51, 0x16, 0x7b, 0x4b, 0xc8, 0x95, - 0xf0, 0x65, 0x48, 0x25, 0xf8, 0x32, 0x3c, 0xc1, 0x6e, 0x7d, 0x3f, 0xee, 0xd5, 0x90, 0xc1, 0xc1, - 0xb8, 0x18, 0x6f, 0xea, 0x53, 0x71, 0x68, 0x58, 0x06, 0x52, 0x69, 0xfb, 0xb4, 0xde, 0xf5, 0x68, - 0xed, 0xbe, 0xd3, 0xd9, 0xa2, 0x9e, 0xb3, 0x7b, 0x20, 0x6c, 0x33, 0xb8, 0xa1, 0x3a, 0xa2, 0xd4, - 0xf2, 0xef, 0x3b, 0x1d, 0x76, 0x30, 0x76, 0x76, 0x0f, 0xcc, 0x04, 0x1a, 0xf2, 0x1e, 0x8c, 0x99, - 0xf4, 0xa1, 0xe7, 0x04, 0xf2, 0xca, 0x71, 0x3a, 0x3c, 0xce, 0x22, 0x94, 0x1f, 0xd7, 0x3c, 0xfe, - 0x43, 0x1d, 0x7f, 0x51, 0x4e, 0x16, 0xf9, 0xc2, 0xc7, 0xaf, 0x16, 0xa7, 0xa2, 0xaf, 0x2d, 0x6c, - 0xd7, 0xfa, 0xad, 0x7b, 0xe4, 0x0a, 0x8c, 0xe0, 0xea, 0x29, 0x36, 0x73, 0xf4, 0x71, 0xc5, 0xcd, - 0x4f, 0x5d, 0xa5, 0x11, 0x83, 0x9c, 0x07, 0x08, 0x8d, 0xdf, 0xfe, 0x7c, 0x0e, 0xb7, 0x59, 0x05, - 0xf2, 0xc9, 0xdd, 0xea, 0xff, 0x5a, 0x1a, 0x2e, 0x86, 0x2b, 0xd2, 0xba, 0x57, 0x2b, 0xac, 0xae, - 0x54, 0x1a, 0x55, 0xa1, 0xb4, 0x57, 0x3d, 0xf7, 0x81, 0xd3, 0xa0, 0xde, 0xd6, 0x8d, 0x23, 0xe6, - 0xd3, 0x0a, 0x17, 0x3c, 0x6e, 0x3b, 0x4b, 0x6b, 0xd7, 0xaf, 0xca, 0xc2, 0x2f, 0x6e, 0x88, 0x3b, - 0x9d, 0x1e, 0x53, 0xda, 0xf2, 0x73, 0x66, 0xc4, 0x80, 0xfc, 0x44, 0x0a, 0x4e, 0x25, 0x37, 0x44, - 0x1c, 0xe4, 0x16, 0xa4, 0xd6, 0xd7, 0xa7, 0xb5, 0x4b, 0xaf, 0x3c, 0x3e, 0x5c, 0xb8, 0xe8, 0xdb, - 0xad, 0xa6, 0xe5, 0x34, 0x78, 0x6d, 0x4e, 0x9d, 0x5a, 0x1d, 0x81, 0xa0, 0xd5, 0xdb, 0xa7, 0xa6, - 0x68, 0x5a, 0x2d, 0x01, 0xe4, 0xa4, 0xd1, 0xc3, 0xf8, 0x8f, 0x53, 0xa0, 0x88, 0x44, 0xce, 0xa4, - 0x0d, 0xc7, 0xa3, 0xf5, 0x00, 0x97, 0x24, 0xb1, 0x8a, 0x78, 0x02, 0x16, 0xbb, 0x6b, 0x47, 0x18, - 0x79, 0x17, 0xc6, 0xb8, 0x89, 0x84, 0x9b, 0x26, 0x22, 0x51, 0x12, 0xe6, 0x14, 0xee, 0x71, 0xcf, - 0x31, 0x54, 0x31, 0x14, 0x44, 0x4c, 0xb3, 0xbc, 0xbb, 0xbd, 0x51, 0x6c, 0xda, 0x4e, 0xcb, 0x17, - 0x0b, 0x11, 0x76, 0xea, 0x47, 0x0f, 0x03, 0xab, 0x8e, 0x50, 0x55, 0xb3, 0x0c, 0x51, 0x8d, 0x3b, - 0xd2, 0x9a, 0x73, 0x84, 0xb7, 0xfc, 0x02, 0x8c, 0x6c, 0x45, 0x67, 0xc6, 0xa5, 0xf1, 0xc7, 0x87, - 0x0b, 0x5c, 0x58, 0x4c, 0x0e, 0x37, 0x7e, 0x3a, 0x05, 0xd3, 0xba, 0x34, 0x91, 0x6b, 0x30, 0x2a, - 0xfc, 0x9d, 0x53, 0x78, 0x36, 0x66, 0xbd, 0x30, 0xca, 0x3d, 0x9d, 0x35, 0xff, 0x66, 0x81, 0xc5, - 0x96, 0x52, 0xc1, 0x41, 0x98, 0x67, 0x70, 0x29, 0xad, 0x73, 0x90, 0x29, 0xcb, 0x88, 0xc1, 0x54, - 0x22, 0xbf, 0xdb, 0x0c, 0x54, 0xe3, 0xa3, 0x87, 0x10, 0x53, 0x94, 0x18, 0x45, 0x18, 0xe5, 0x73, - 0x30, 0x76, 0x51, 0x9d, 0x3a, 0xc6, 0x45, 0xb5, 0x71, 0x98, 0x02, 0xa8, 0xd5, 0x96, 0xef, 0xd1, - 0x83, 0xaa, 0xed, 0x78, 0x68, 0x2d, 0xc7, 0xf5, 0xee, 0x9e, 0x98, 0x5a, 0x93, 0xc2, 0x5a, 0xce, - 0xd7, 0xc6, 0xfb, 0xf4, 0x40, 0xb3, 0x96, 0x4b, 0x54, 0x5c, 0x54, 0x3d, 0xe7, 0x81, 0x1d, 0x50, - 0x46, 0x98, 0x46, 0x42, 0xbe, 0xa8, 0x72, 0x68, 0x8c, 0x52, 0x41, 0x26, 0x5f, 0x85, 0xe9, 0xe8, - 0x57, 0x68, 0xf3, 0x9f, 0x0e, 0xa7, 0xaf, 0x5e, 0xb8, 0x74, 0xfe, 0xf1, 0xe1, 0xc2, 0x59, 0x85, - 0x6b, 0xfc, 0x36, 0x20, 0xc6, 0xcc, 0xf8, 0xe5, 0x14, 0x5e, 0x13, 0xc9, 0x0f, 0xbc, 0x04, 0xd9, - 0xd0, 0xfd, 0x66, 0x92, 0x9b, 0x57, 0x62, 0x76, 0x4d, 0x2c, 0x27, 0x17, 0x21, 0x13, 0x7d, 0x09, - 0xae, 0x71, 0xfa, 0x17, 0xb0, 0x52, 0x72, 0x07, 0xc6, 0x86, 0x6a, 0x33, 0x4e, 0x8d, 0x84, 0xb6, - 0x4a, 0x6a, 0x1c, 0x85, 0xbb, 0xdb, 0x1b, 0x9f, 0xde, 0x51, 0xf8, 0x6e, 0x1a, 0x66, 0x58, 0xbf, - 0x16, 0xba, 0xc1, 0xbe, 0xeb, 0x39, 0xc1, 0xc1, 0x33, 0x6b, 0x5c, 0x78, 0x5b, 0xd3, 0x52, 0xce, - 0xca, 0x3d, 0x46, 0xfd, 0xb6, 0xa1, 0x6c, 0x0c, 0xbf, 0x33, 0x02, 0x27, 0x12, 0xa8, 0xc8, 0x6b, - 0x9a, 0xfd, 0x6f, 0x5e, 0x06, 0x29, 0xfd, 0xf0, 0x70, 0x61, 0x52, 0xa2, 0x6f, 0x44, 0x41, 0x4b, - 0x8b, 0xfa, 0x9d, 0x2b, 0xef, 0x29, 0x34, 0x07, 0xaa, 0x77, 0xae, 0xfa, 0x4d, 0xeb, 0x15, 0x18, - 0x31, 0xdd, 0x26, 0x95, 0x97, 0xfe, 0xb8, 0x33, 0x7b, 0x0c, 0xa0, 0x5d, 0x0d, 0x31, 0x00, 0x59, - 0x86, 0x31, 0xf6, 0xc7, 0xaa, 0xdd, 0x11, 0xc6, 0x54, 0x12, 0xea, 0xc9, 0x08, 0xed, 0x38, 0xed, - 0x3d, 0x55, 0x55, 0x6e, 0x52, 0xab, 0x65, 0x77, 0x34, 0x15, 0x82, 0x23, 0x6a, 0x2a, 0x77, 0xae, - 0xbf, 0xca, 0x9d, 0x3a, 0x52, 0xe5, 0x6e, 0x00, 0xd4, 0x9c, 0xbd, 0xb6, 0xd3, 0xde, 0x2b, 0x34, - 0xf7, 0x44, 0xa8, 0xd7, 0x95, 0xfe, 0xa3, 0x70, 0x2d, 0x42, 0x46, 0xc1, 0xe5, 0x37, 0x13, 0x1c, - 0x66, 0xd9, 0x4d, 0xcd, 0xd2, 0x1b, 0xa1, 0x92, 0x35, 0x80, 0x42, 0x3d, 0x70, 0x1e, 0x30, 0x01, - 0xf6, 0x85, 0xb7, 0xa3, 0x6c, 0x70, 0xb1, 0x70, 0x8f, 0x1e, 0xd4, 0x68, 0x10, 0x59, 0x8e, 0x6d, - 0x44, 0x65, 0xf3, 0x40, 0x73, 0x4c, 0x8c, 0x38, 0x90, 0x0e, 0x9c, 0x2c, 0x34, 0x1a, 0x0e, 0xfb, - 0x02, 0xbb, 0xb9, 0xe1, 0xb1, 0xc1, 0x68, 0x20, 0xeb, 0xc9, 0x64, 0xd6, 0x57, 0x04, 0xeb, 0x17, - 0xed, 0x90, 0xca, 0x0a, 0x38, 0x59, 0xbc, 0x9a, 0x64, 0xc6, 0xc6, 0x3a, 0x4c, 0xeb, 0x9f, 0xae, - 0x07, 0xa8, 0x4d, 0x42, 0xce, 0xac, 0x15, 0xac, 0xda, 0x72, 0xe1, 0x46, 0x3e, 0x45, 0xf2, 0x30, - 0x29, 0x7e, 0x2d, 0x5a, 0x8b, 0x6f, 0xdc, 0xca, 0xa7, 0x35, 0xc8, 0x1b, 0x37, 0x16, 0x7b, 0x5c, - 0xc8, 0xc7, 0xf2, 0x39, 0x6e, 0x48, 0x30, 0xfe, 0x76, 0x0a, 0x72, 0xb2, 0xdd, 0xe4, 0x16, 0x64, - 0x6a, 0xb5, 0xe5, 0x98, 0xd3, 0x77, 0xb4, 0xbf, 0xf0, 0x95, 0xd4, 0xf7, 0x55, 0x07, 0x25, 0x46, - 0xc0, 0xe8, 0x36, 0x56, 0x6a, 0x42, 0x2d, 0x90, 0x74, 0xd1, 0xb2, 0xcd, 0xe9, 0x12, 0x3c, 0x61, - 0x6f, 0x41, 0xe6, 0xee, 0xf6, 0x86, 0xd0, 0xc3, 0x25, 0x5d, 0xb4, 0x92, 0x72, 0xba, 0x8f, 0x1e, - 0xaa, 0xeb, 0x3b, 0x23, 0x30, 0x4c, 0x98, 0x50, 0x44, 0x98, 0x6f, 0xb7, 0x2d, 0x37, 0x0c, 0xde, - 0x12, 0xdb, 0x2d, 0x83, 0x98, 0xa2, 0x84, 0x69, 0x07, 0x2b, 0x6e, 0xdd, 0x6e, 0x8a, 0x7d, 0x1b, - 0xb5, 0x83, 0x26, 0x03, 0x98, 0x1c, 0x6e, 0xfc, 0x76, 0x0a, 0xf2, 0xa8, 0x41, 0xb1, 0x65, 0x66, - 0xc3, 0xbd, 0x4f, 0xdb, 0x5b, 0x37, 0xc8, 0xeb, 0x72, 0xb2, 0xa5, 0xc2, 0x53, 0xdf, 0x08, 0x4e, - 0xb6, 0x98, 0xa9, 0x58, 0x4c, 0x38, 0x25, 0x06, 0x2e, 0x3d, 0x7c, 0x5c, 0xcd, 0x11, 0x31, 0x70, - 0x0b, 0x30, 0x82, 0xcd, 0x11, 0xcb, 0x22, 0xb6, 0x3c, 0x60, 0x00, 0x93, 0xc3, 0x95, 0x55, 0xe9, - 0xe7, 0xd2, 0x3d, 0xdf, 0xb0, 0xf8, 0xa9, 0x8a, 0x4d, 0xd1, 0x3f, 0x6e, 0xa8, 0x95, 0xfa, 0x03, - 0x98, 0x8b, 0x77, 0x09, 0x9e, 0xc8, 0x0b, 0x30, 0xa3, 0xc3, 0xe5, 0xe1, 0xfc, 0x74, 0x62, 0x5d, - 0x5b, 0x8b, 0x66, 0x1c, 0xdf, 0xf8, 0x83, 0x14, 0x8c, 0xe3, 0x9f, 0x66, 0xb7, 0x89, 0x5e, 0x00, - 0x85, 0xed, 0x9a, 0x30, 0xa4, 0xa9, 0x6a, 0x9c, 0xfd, 0xd0, 0xb7, 0x84, 0xad, 0x4d, 0x5b, 0x5f, - 0x42, 0x64, 0x41, 0xca, 0x2d, 0x64, 0xf2, 0xe2, 0x2f, 0x24, 0xe5, 0xa6, 0x34, 0x3f, 0x46, 0x2a, - 0x90, 0xd1, 0xf1, 0x66, 0xbb, 0xc6, 0xc4, 0x4f, 0xbd, 0xee, 0x43, 0x3a, 0xb7, 0xa9, 0x3b, 0xde, - 0x70, 0x34, 0xbc, 0xed, 0xdb, 0xae, 0x15, 0xcc, 0x35, 0xed, 0xb6, 0x8f, 0xb5, 0x51, 0xf3, 0x66, - 0x14, 0x48, 0xc6, 0xdf, 0xcc, 0xc5, 0x3b, 0x50, 0x6c, 0x75, 0xc7, 0x9c, 0x1b, 0x6f, 0xc1, 0x48, - 0xa1, 0xd9, 0x74, 0x1f, 0x8a, 0x55, 0x42, 0x1a, 0x08, 0xc2, 0xfe, 0xe3, 0x3b, 0x99, 0xcd, 0x50, - 0x34, 0x7f, 0x7b, 0x06, 0x20, 0x45, 0x18, 0x2f, 0x6c, 0xd7, 0x2a, 0x95, 0xd2, 0xc6, 0xc6, 0x8a, - 0x08, 0x48, 0x7e, 0x59, 0xf6, 0x8f, 0xe3, 0x34, 0xac, 0xf8, 0x75, 0x56, 0xa4, 0xb9, 0x47, 0x74, - 0xe4, 0x1d, 0x80, 0xbb, 0xae, 0xd3, 0x5e, 0xa5, 0xc1, 0xbe, 0xdb, 0x10, 0x1f, 0xff, 0xc2, 0xe3, - 0xc3, 0x85, 0x89, 0x8f, 0x5c, 0xa7, 0x6d, 0xb5, 0x10, 0xcc, 0xda, 0x1e, 0x21, 0x99, 0xca, 0xdf, - 0xac, 0xa7, 0x97, 0x5c, 0x7e, 0xb3, 0x3f, 0x12, 0xf5, 0xf4, 0x8e, 0xdb, 0x73, 0xa9, 0x2f, 0xd1, - 0x48, 0x0b, 0x66, 0x6a, 0xdd, 0xbd, 0x3d, 0xca, 0x56, 0x75, 0x61, 0x72, 0x18, 0x15, 0x67, 0xdb, - 0x30, 0x9c, 0x9b, 0x9f, 0x44, 0xd8, 0xf9, 0xc4, 0x5f, 0x7a, 0x8d, 0x09, 0xf2, 0x0f, 0x0e, 0x17, - 0xc4, 0x35, 0x19, 0x53, 0xd2, 0x7c, 0x49, 0xdf, 0x6b, 0x70, 0x88, 0xf3, 0x26, 0xeb, 0x30, 0x7a, - 0xc7, 0x09, 0x96, 0xbb, 0x3b, 0xc2, 0xe5, 0xf7, 0xc5, 0x01, 0x93, 0x86, 0x23, 0x72, 0xf3, 0xeb, - 0x9e, 0x13, 0xec, 0x77, 0x55, 0xf7, 0x5f, 0xc1, 0x86, 0x6c, 0x43, 0xae, 0xe8, 0x78, 0xf5, 0x26, - 0x2d, 0x56, 0xc4, 0xae, 0x7f, 0x71, 0x00, 0x4b, 0x89, 0xca, 0xfb, 0xa5, 0x8e, 0xbf, 0xea, 0x8e, - 0xaa, 0x05, 0x48, 0x0c, 0xf2, 0xef, 0xa6, 0xe0, 0xf9, 0xb0, 0xf5, 0x85, 0x3d, 0xda, 0x0e, 0x56, - 0xed, 0xa0, 0xbe, 0x4f, 0x3d, 0xd1, 0x4b, 0xe3, 0x83, 0x7a, 0xe9, 0x0b, 0x3d, 0xbd, 0x74, 0x39, - 0xea, 0x25, 0x9b, 0x31, 0xb3, 0x5a, 0x9c, 0x5b, 0x6f, 0x9f, 0x0d, 0xaa, 0x95, 0x58, 0x00, 0x91, - 0x3d, 0x5d, 0xc4, 0x5a, 0xbc, 0x3c, 0xe0, 0x83, 0x23, 0x64, 0xe1, 0xd1, 0x1a, 0xfe, 0xd6, 0x1c, - 0x59, 0x42, 0x28, 0xb9, 0x27, 0xfd, 0xeb, 0xb9, 0x46, 0x72, 0x61, 0x00, 0x6f, 0xee, 0x73, 0x7f, - 0x62, 0x40, 0x08, 0x0a, 0x1f, 0xed, 0x15, 0x7b, 0x47, 0x28, 0x21, 0x47, 0x8c, 0xf6, 0x8a, 0x1d, - 0x8d, 0x76, 0xd3, 0x8e, 0x8f, 0xf6, 0x8a, 0xbd, 0x43, 0x8a, 0x3c, 0x9a, 0x66, 0x0a, 0xb9, 0x9d, - 0x1f, 0xc4, 0xad, 0x58, 0xe5, 0x3b, 0x73, 0x6f, 0x54, 0x8d, 0xf1, 0xaf, 0xb2, 0x70, 0xb6, 0xbf, - 0xbc, 0x91, 0xf7, 0xe5, 0x22, 0xc0, 0x97, 0xda, 0x4b, 0x47, 0x4a, 0xe8, 0xb5, 0x23, 0x97, 0x86, - 0x2f, 0xc1, 0x5c, 0xb9, 0x1d, 0x50, 0xaf, 0xe3, 0x39, 0x32, 0xf8, 0x70, 0xd9, 0xf5, 0xa5, 0xf7, - 0xcb, 0x4b, 0x8f, 0x0f, 0x17, 0x2e, 0xd0, 0xb0, 0x5c, 0x58, 0x6f, 0xd0, 0x17, 0x47, 0x61, 0x95, - 0xc8, 0xe1, 0xec, 0x2f, 0x67, 0x20, 0x8b, 0x2b, 0xfb, 0x45, 0xc8, 0xd4, 0xba, 0x3b, 0x62, 0x49, - 0xe7, 0x3a, 0x90, 0x36, 0x5f, 0x58, 0x29, 0xf9, 0x3c, 0x80, 0x49, 0x3b, 0xae, 0xef, 0x04, 0xae, - 0x77, 0xa0, 0xba, 0x0a, 0x7b, 0x21, 0x54, 0xf7, 0x01, 0x93, 0x50, 0xb2, 0x0c, 0x33, 0xd1, 0xaf, - 0xf5, 0x87, 0x6d, 0x61, 0x2b, 0x1a, 0xe7, 0xc7, 0xb4, 0x88, 0xdc, 0x72, 0x59, 0x99, 0xba, 0x02, - 0xc4, 0xc8, 0xc8, 0x22, 0xe4, 0xb6, 0x5d, 0xef, 0xfe, 0x2e, 0xeb, 0xe1, 0x6c, 0xb4, 0x46, 0x3d, - 0x14, 0x30, 0x75, 0x2e, 0x4a, 0x3c, 0xf2, 0x16, 0x4c, 0x94, 0xdb, 0x0f, 0x1c, 0xcf, 0x6d, 0xb7, - 0x68, 0x3b, 0x50, 0x2f, 0x59, 0x68, 0x04, 0xd6, 0xa2, 0x17, 0x22, 0x30, 0x3b, 0x8c, 0x14, 0xea, - 0x81, 0xeb, 0x09, 0x5f, 0x27, 0x3e, 0x4e, 0x0c, 0xa0, 0x8d, 0x13, 0x03, 0xb0, 0x4e, 0x34, 0xe9, - 0xae, 0xb0, 0x27, 0x62, 0x27, 0x7a, 0x74, 0x57, 0x0b, 0xcd, 0xa0, 0xbb, 0x6c, 0x8d, 0x35, 0xe9, - 0x2e, 0x9e, 0xa0, 0x72, 0x51, 0xfb, 0x3d, 0xba, 0xdb, 0x73, 0xf6, 0x16, 0x68, 0xc6, 0xaf, 0xf4, - 0x17, 0x38, 0x26, 0xd4, 0xc7, 0x13, 0xb8, 0x15, 0x7b, 0x08, 0x81, 0x7b, 0x2d, 0xf4, 0x2c, 0x4b, - 0x47, 0x57, 0x58, 0xdc, 0xb3, 0x4c, 0x9d, 0x55, 0x1c, 0xe7, 0xec, 0xff, 0xff, 0x58, 0x42, 0x24, - 0x3a, 0x29, 0x3d, 0x6c, 0x27, 0x65, 0x86, 0xea, 0x24, 0xb2, 0x04, 0x53, 0x61, 0xc2, 0x88, 0xaa, - 0x2d, 0x1c, 0xcb, 0x85, 0x67, 0x56, 0x98, 0xfe, 0xc3, 0xea, 0xd8, 0x81, 0xaa, 0xd9, 0xeb, 0x24, - 0xe4, 0x6d, 0x98, 0x10, 0xee, 0x95, 0xc8, 0x61, 0x24, 0x72, 0x9c, 0x91, 0xbe, 0x98, 0x31, 0x7a, - 0x15, 0x9d, 0x94, 0x61, 0xba, 0xea, 0x74, 0x68, 0xd3, 0x69, 0xd3, 0x1a, 0x9a, 0x23, 0x85, 0xc4, - 0xa0, 0x9b, 0x62, 0x47, 0x94, 0x58, 0xdc, 0x52, 0xa9, 0x19, 0x22, 0x34, 0xa2, 0xb8, 0xb0, 0x8e, - 0x1d, 0x47, 0x58, 0x8d, 0xbf, 0x9d, 0x86, 0x73, 0x83, 0x36, 0x2e, 0x52, 0xd3, 0x85, 0xe5, 0xf2, - 0x10, 0x9b, 0xdd, 0xd1, 0xe2, 0x52, 0x86, 0xe9, 0x75, 0x6f, 0xcf, 0x6e, 0x3b, 0xdf, 0x44, 0x85, - 0x24, 0xbc, 0x53, 0xc5, 0x2f, 0x77, 0x95, 0x12, 0xdd, 0xca, 0x17, 0x23, 0x3a, 0xfb, 0x40, 0x88, - 0xd1, 0xc7, 0x75, 0x88, 0xbd, 0x05, 0xe3, 0x45, 0xb7, 0x1d, 0xd0, 0x47, 0x41, 0x2c, 0x90, 0x81, - 0x03, 0xe3, 0x81, 0x0c, 0x12, 0xd5, 0xf8, 0x9d, 0x14, 0x9c, 0x1f, 0xbc, 0xf9, 0x91, 0x4d, 0xbd, - 0xdb, 0xae, 0x0e, 0xb5, 0x65, 0x1e, 0xd9, 0x71, 0x67, 0x57, 0xc5, 0x17, 0x97, 0x61, 0x5a, 0x18, - 0xb8, 0x75, 0xdd, 0x1a, 0x3b, 0x50, 0xda, 0xc7, 0x7b, 0xf5, 0xeb, 0x18, 0x91, 0xf1, 0xc7, 0x29, - 0x38, 0xd3, 0x77, 0xa7, 0x25, 0x55, 0xfd, 0x1b, 0x5e, 0x3e, 0x6a, 0x6b, 0x3e, 0xba, 0xf9, 0x3f, - 0x93, 0x12, 0xed, 0x7f, 0x17, 0x26, 0x6b, 0xdd, 0x9d, 0x28, 0x43, 0x8b, 0xe2, 0x59, 0xef, 0x2b, - 0x70, 0xd5, 0x25, 0x5a, 0xc5, 0x67, 0xdf, 0x2f, 0x6d, 0xf8, 0xe2, 0x8e, 0x85, 0x1f, 0x10, 0xf0, - 0xfb, 0x43, 0x0f, 0x63, 0x74, 0x00, 0x57, 0x15, 0x8f, 0x18, 0x91, 0xf1, 0x1b, 0x69, 0x38, 0xdd, - 0x67, 0x37, 0x27, 0x6b, 0xfa, 0xd7, 0x5f, 0x1c, 0xbc, 0xf9, 0x1f, 0xfd, 0xed, 0xff, 0xa5, 0xfc, - 0x76, 0x34, 0x69, 0x0a, 0x11, 0x94, 0x07, 0x05, 0x61, 0xd2, 0x94, 0xe2, 0xea, 0xeb, 0x26, 0x4d, - 0x89, 0x4c, 0xde, 0x80, 0x71, 0x76, 0x30, 0x0f, 0x94, 0x23, 0x11, 0x77, 0xc1, 0x95, 0x40, 0x55, - 0x5e, 0x43, 0x4c, 0xb6, 0x99, 0xea, 0x03, 0x2f, 0xbd, 0xbb, 0x70, 0x33, 0x8d, 0x89, 0x8b, 0xae, - 0x4e, 0xeb, 0x64, 0xc6, 0xcf, 0xa4, 0x61, 0xba, 0x16, 0xd8, 0x81, 0x53, 0xe7, 0xc7, 0xbd, 0x67, - 0xf6, 0x28, 0xfd, 0x96, 0x76, 0x94, 0x96, 0xc1, 0x76, 0xea, 0xa7, 0x0d, 0x75, 0x90, 0xde, 0x07, - 0xd2, 0x4b, 0x43, 0x4c, 0x98, 0x54, 0xa1, 0x83, 0xcf, 0xd0, 0x37, 0xa2, 0xb8, 0x4c, 0xcc, 0x7e, - 0x55, 0xb7, 0xd0, 0x90, 0xe1, 0x9b, 0x1a, 0x0f, 0xe3, 0xa7, 0xd3, 0x30, 0xa5, 0x98, 0x3c, 0x9f, - 0xd9, 0x8e, 0xff, 0x82, 0xd6, 0xf1, 0xf3, 0xa1, 0x5b, 0x51, 0xf8, 0x65, 0x43, 0xf5, 0x7b, 0x17, - 0x66, 0x7b, 0x48, 0xe2, 0x96, 0xe3, 0xd4, 0x30, 0x96, 0xe3, 0xd7, 0x7a, 0x63, 0xd9, 0x78, 0x92, - 0xa1, 0x30, 0x96, 0x4d, 0x0d, 0x9e, 0xfb, 0x6e, 0x1a, 0xe6, 0xc4, 0xaf, 0x42, 0xb7, 0xe1, 0x04, - 0x45, 0xb7, 0xbd, 0xeb, 0xec, 0x3d, 0xb3, 0x63, 0x51, 0xd0, 0xc6, 0x62, 0x41, 0x1f, 0x0b, 0xe5, - 0x03, 0xfb, 0x0f, 0x89, 0xf1, 0xe7, 0x01, 0xe6, 0xfb, 0x11, 0x0c, 0xed, 0xf8, 0x1b, 0x79, 0x4b, - 0xa5, 0x87, 0xf0, 0x96, 0x5a, 0x81, 0x3c, 0x56, 0x55, 0xa3, 0x3e, 0xeb, 0x04, 0x7f, 0xd3, 0xac, - 0x88, 0x4e, 0xba, 0xf0, 0xf8, 0x70, 0xe1, 0x9c, 0xcd, 0xca, 0x2c, 0x5f, 0x14, 0x5a, 0x5d, 0x4f, - 0x3d, 0x6e, 0xf7, 0x50, 0x92, 0x5f, 0x4e, 0xc1, 0x34, 0x02, 0xcb, 0x0f, 0x68, 0x3b, 0x40, 0x66, - 0x59, 0xe1, 0x11, 0x14, 0x9e, 0xb4, 0x6b, 0x81, 0xe7, 0xb4, 0xf7, 0xc4, 0x51, 0x7b, 0x47, 0x1c, - 0xb5, 0xdf, 0xe6, 0x26, 0x82, 0x6b, 0x75, 0xb7, 0x75, 0x7d, 0xcf, 0xb3, 0x1f, 0x38, 0xdc, 0x9a, - 0x6f, 0x37, 0xaf, 0x47, 0x09, 0xee, 0x3a, 0x4e, 0x2c, 0x65, 0x9d, 0x60, 0x85, 0x66, 0x0c, 0xde, - 0x50, 0x8a, 0xd5, 0xc6, 0x9a, 0x19, 0x6b, 0x11, 0xf9, 0x32, 0x9c, 0xe6, 0x71, 0x5e, 0x4c, 0x07, - 0x71, 0xda, 0x5d, 0xb7, 0xeb, 0x2f, 0xd9, 0xf5, 0xfb, 0x6c, 0xdf, 0xe3, 0xee, 0x88, 0xf8, 0xe5, - 0xf5, 0xb0, 0xd0, 0xda, 0xe1, 0xa5, 0x0a, 0xcb, 0x7e, 0x0c, 0xc8, 0x32, 0xcc, 0xf2, 0xa2, 0x42, - 0x37, 0x70, 0x6b, 0x75, 0xbb, 0xe9, 0xb4, 0xf7, 0x50, 0x89, 0xcc, 0xf1, 0xfd, 0xd8, 0xee, 0x06, - 0xae, 0xe5, 0x73, 0xb8, 0xc2, 0xaf, 0x97, 0x88, 0x54, 0xd8, 0x99, 0xcd, 0x6e, 0xac, 0xda, 0x8f, - 0x8a, 0x76, 0xc7, 0xae, 0x3b, 0x01, 0x0f, 0x8f, 0xce, 0xf0, 0x08, 0x19, 0x8f, 0xda, 0x0d, 0xab, - 0x65, 0x3f, 0xb2, 0xea, 0xa2, 0x50, 0x3f, 0xb4, 0x69, 0x74, 0x21, 0x2b, 0xa7, 0x1d, 0xb2, 0x1a, - 0x8f, 0xb3, 0x72, 0xda, 0xfd, 0x59, 0x45, 0x74, 0x92, 0xd5, 0x86, 0xed, 0xed, 0xd1, 0x80, 0x5f, - 0x86, 0xc3, 0x85, 0xd4, 0xe5, 0x94, 0xc2, 0x2a, 0xc0, 0x32, 0x0b, 0x2f, 0xc6, 0xe3, 0xac, 0x14, - 0x3a, 0x26, 0x79, 0xdb, 0x9e, 0x13, 0x50, 0xf5, 0x0b, 0x27, 0xb0, 0x59, 0xd8, 0xff, 0xe8, 0x46, - 0xd0, 0xef, 0x13, 0x7b, 0x28, 0x23, 0x6e, 0xca, 0x47, 0x4e, 0xf6, 0x70, 0x4b, 0xfe, 0xca, 0x1e, - 0xca, 0x90, 0x9b, 0xfa, 0x9d, 0x53, 0xf8, 0x9d, 0x0a, 0xb7, 0x3e, 0x1f, 0xda, 0x43, 0x49, 0xd6, - 0x58, 0xa7, 0x05, 0xb4, 0xcd, 0x24, 0x5a, 0x38, 0x03, 0x4c, 0x63, 0xd3, 0x5e, 0x12, 0x37, 0x5a, - 0x79, 0x4f, 0x16, 0x5b, 0x09, 0xae, 0x01, 0x71, 0x62, 0xf2, 0x67, 0x60, 0x66, 0xd3, 0xa7, 0xb7, - 0x2b, 0xd5, 0x9a, 0x8c, 0x6c, 0x9b, 0x9f, 0xc1, 0x7b, 0xae, 0x1b, 0x47, 0x2c, 0x3a, 0xd7, 0x54, - 0x1a, 0x4c, 0x35, 0xc7, 0xc7, 0xad, 0xeb, 0x53, 0x6b, 0xd7, 0xe9, 0xf8, 0x61, 0x8c, 0xad, 0x3a, - 0x6e, 0xb1, 0xaa, 0x8c, 0x65, 0x98, 0xed, 0x61, 0x43, 0xa6, 0x01, 0x18, 0xd0, 0xda, 0x5c, 0xab, - 0x95, 0x37, 0xf2, 0xcf, 0x91, 0x3c, 0x4c, 0xe2, 0xef, 0xf2, 0x5a, 0x61, 0x69, 0xa5, 0x5c, 0xca, - 0xa7, 0xc8, 0x2c, 0x4c, 0x21, 0xa4, 0x54, 0xa9, 0x71, 0x50, 0x9a, 0x27, 0x1a, 0x32, 0xf3, 0x7c, - 0xea, 0x06, 0x6c, 0x02, 0xe0, 0x9e, 0x62, 0xfc, 0xe5, 0x34, 0x9c, 0x91, 0xdb, 0x0a, 0x0d, 0x1e, - 0xba, 0xde, 0x7d, 0xa7, 0xbd, 0xf7, 0x8c, 0xef, 0x0e, 0xb7, 0xb5, 0xdd, 0xe1, 0xa5, 0xd8, 0x4e, - 0x1d, 0xfb, 0xca, 0x01, 0x5b, 0xc4, 0xb7, 0x73, 0xf0, 0xc2, 0x40, 0x2a, 0xf2, 0x3e, 0xdb, 0xcd, - 0x1d, 0xda, 0x0e, 0x2a, 0x8d, 0x26, 0xdd, 0x70, 0x5a, 0xd4, 0xed, 0x06, 0xc2, 0xf9, 0xe4, 0x22, - 0x53, 0x6f, 0x79, 0x9e, 0x38, 0xcb, 0x69, 0x34, 0xa9, 0x15, 0xf0, 0x62, 0x4d, 0xdc, 0x7a, 0xa9, - 0x19, 0xcb, 0x30, 0x97, 0x65, 0xa5, 0x1d, 0x50, 0xef, 0x01, 0x5e, 0x73, 0x85, 0x2c, 0xef, 0x53, - 0xda, 0xb1, 0x6c, 0x56, 0x6a, 0x39, 0xa2, 0x58, 0x67, 0xd9, 0x43, 0x4d, 0x6e, 0x2b, 0x2c, 0x8b, - 0x4c, 0x1d, 0x5e, 0xb5, 0x1f, 0x09, 0xbb, 0xbb, 0x88, 0xf9, 0x0f, 0x59, 0x72, 0x1f, 0xe2, 0x96, - 0xfd, 0xc8, 0xec, 0x25, 0x21, 0x5f, 0x85, 0x93, 0x62, 0x03, 0x12, 0xc1, 0x22, 0xf2, 0x8b, 0x79, - 0x28, 0xca, 0x2b, 0x8f, 0x0f, 0x17, 0x4e, 0x8b, 0xed, 0xcb, 0x92, 0x01, 0x3c, 0x49, 0x5f, 0x9d, - 0xcc, 0x85, 0x6c, 0xb0, 0x0d, 0x39, 0xd6, 0x1d, 0xab, 0xd4, 0xf7, 0xed, 0x3d, 0x69, 0xa3, 0xe7, - 0xae, 0x76, 0x4a, 0x67, 0x5a, 0x2d, 0x5e, 0x6e, 0xf6, 0xa5, 0x24, 0xcb, 0x30, 0xbd, 0x4d, 0x77, - 0xd4, 0xf1, 0x19, 0x0d, 0x97, 0xaa, 0xfc, 0x43, 0xba, 0xd3, 0x7f, 0x70, 0x62, 0x74, 0xc4, 0x81, - 0x59, 0x74, 0x07, 0x5d, 0x71, 0xfc, 0x80, 0xb6, 0xa9, 0x87, 0xe1, 0x7c, 0x63, 0xb8, 0x18, 0xcc, - 0x47, 0x1a, 0xb2, 0x5e, 0xbe, 0xf4, 0xe2, 0xe3, 0xc3, 0x85, 0x17, 0xb8, 0x6b, 0x69, 0x53, 0xc0, - 0xad, 0x58, 0xd2, 0xc8, 0x5e, 0xae, 0xe4, 0xeb, 0x30, 0x63, 0xba, 0xdd, 0xc0, 0x69, 0xef, 0xd5, - 0x02, 0xcf, 0x0e, 0xe8, 0x1e, 0xdf, 0x90, 0xa2, 0xb8, 0xc1, 0x58, 0xa9, 0x30, 0x2e, 0x72, 0xa0, - 0xe5, 0x0b, 0xa8, 0xb6, 0x23, 0xe8, 0x04, 0xe4, 0x6b, 0x30, 0xcd, 0x7d, 0xfd, 0xc3, 0x0a, 0xc6, - 0xb5, 0x84, 0x57, 0x7a, 0xe1, 0xd6, 0x0d, 0x7e, 0x40, 0xe5, 0x31, 0x03, 0x49, 0x15, 0xc4, 0xb8, - 0x91, 0x0f, 0x45, 0x67, 0x55, 0x9d, 0xf6, 0x5e, 0x28, 0xc6, 0x80, 0x3d, 0xff, 0x7a, 0xd4, 0x25, - 0x1d, 0xd6, 0x5c, 0x29, 0xc6, 0x7d, 0xee, 0x7c, 0x7a, 0xf9, 0x90, 0x00, 0x5e, 0x28, 0xf8, 0xbe, - 0xe3, 0x07, 0xc2, 0x45, 0xab, 0xfc, 0x88, 0xd6, 0xbb, 0x0c, 0x79, 0xdb, 0xf5, 0xee, 0x53, 0x8f, - 0x3b, 0x09, 0x8c, 0x2c, 0x5d, 0x7b, 0x7c, 0xb8, 0x70, 0xd5, 0x46, 0x44, 0x4b, 0x78, 0x75, 0x59, - 0x54, 0xa2, 0x5a, 0x0f, 0x39, 0xae, 0xf2, 0x0d, 0x83, 0x99, 0x1a, 0x87, 0x29, 0xc8, 0xc7, 0xbb, - 0x85, 0x7c, 0x09, 0xc6, 0xf9, 0xe5, 0x03, 0xf5, 0xf7, 0x85, 0x37, 0xba, 0xb4, 0xb6, 0x87, 0x70, - 0x9d, 0x48, 0x38, 0x1f, 0xf2, 0xab, 0x0d, 0xaa, 0x5e, 0xbf, 0xa3, 0xf3, 0xa1, 0x24, 0x22, 0x0d, - 0x98, 0xe4, 0x5f, 0x4e, 0x31, 0x00, 0x57, 0xdc, 0x41, 0xbf, 0xa8, 0x4a, 0x9a, 0x28, 0x8a, 0xf1, - 0xc7, 0x18, 0x55, 0xd1, 0xbf, 0x1c, 0x41, 0xab, 0x42, 0xe3, 0xba, 0x04, 0x90, 0x93, 0x84, 0xc6, - 0x19, 0x38, 0xdd, 0xa7, 0xcd, 0xc6, 0x03, 0xb4, 0xcb, 0xf6, 0xa9, 0x91, 0x7c, 0x09, 0xe6, 0x90, - 0xb0, 0xe8, 0xb6, 0xdb, 0xb4, 0x1e, 0xe0, 0xd4, 0x96, 0xa6, 0x9d, 0x0c, 0xb7, 0xda, 0xf3, 0xef, - 0xad, 0x87, 0x08, 0x56, 0xdc, 0xc2, 0x93, 0xc8, 0xc1, 0xf8, 0x85, 0x34, 0xcc, 0x8b, 0xd5, 0xc2, - 0xa4, 0x75, 0xd7, 0x6b, 0x3c, 0xfb, 0xbb, 0x53, 0x59, 0xdb, 0x9d, 0x2e, 0x86, 0x71, 0x43, 0x49, - 0x1f, 0x39, 0x60, 0x73, 0xfa, 0x8d, 0x14, 0x9c, 0x1b, 0x44, 0xc4, 0x7a, 0x27, 0x0c, 0x38, 0x1e, - 0xef, 0x09, 0x2c, 0xee, 0xc0, 0x09, 0x1c, 0xd0, 0xe2, 0x3e, 0xad, 0xdf, 0xf7, 0x97, 0x5d, 0x3f, - 0x40, 0x17, 0x98, 0xb4, 0xe6, 0xef, 0xbd, 0xe4, 0xba, 0xfc, 0x9e, 0x0e, 0x2f, 0x33, 0x53, 0x3f, - 0x38, 0x5c, 0x00, 0x06, 0xe2, 0x21, 0xc2, 0xc2, 0x58, 0xfc, 0xe8, 0xc0, 0xaa, 0x23, 0x0f, 0x1e, - 0x12, 0x7d, 0x9f, 0x1e, 0xf8, 0x66, 0x12, 0x6b, 0x74, 0x67, 0x28, 0x74, 0x83, 0xfd, 0xaa, 0x47, - 0x77, 0xa9, 0x47, 0xdb, 0x75, 0xfa, 0x29, 0x73, 0x67, 0xd0, 0x3f, 0x6e, 0x28, 0x6b, 0xc0, 0xff, - 0x02, 0x30, 0x97, 0x44, 0xc6, 0xfa, 0x45, 0x39, 0x80, 0xc6, 0xd3, 0x63, 0xff, 0xb9, 0x14, 0x4c, - 0xd6, 0x68, 0xdd, 0x6d, 0x37, 0x6e, 0xe3, 0xfd, 0x8c, 0xe8, 0x1d, 0x8b, 0x6f, 0xc0, 0x0c, 0x6e, - 0xed, 0xc6, 0x2e, 0x6e, 0x7e, 0x78, 0xb8, 0xf0, 0xc5, 0xe1, 0xce, 0x7d, 0x75, 0x17, 0xa3, 0x81, - 0x02, 0x4c, 0x58, 0x15, 0x56, 0x81, 0x7e, 0x6e, 0x5a, 0xa5, 0x64, 0x09, 0xa6, 0xc4, 0x74, 0x75, - 0xd5, 0x78, 0x73, 0x1e, 0x5a, 0x25, 0x0b, 0x7a, 0x12, 0x6c, 0x68, 0x24, 0xe4, 0x26, 0x64, 0x36, - 0x17, 0x6f, 0x8b, 0x31, 0x90, 0x29, 0xbf, 0x36, 0x17, 0x6f, 0xa3, 0x69, 0x89, 0xa9, 0xeb, 0x53, - 0xdd, 0x45, 0xed, 0xca, 0x64, 0x73, 0xf1, 0x36, 0xf9, 0x51, 0x38, 0x59, 0x72, 0x7c, 0x51, 0x05, - 0x77, 0xac, 0x69, 0xa0, 0x23, 0xe9, 0x68, 0x1f, 0xe9, 0xfd, 0x5c, 0xa2, 0xf4, 0xbe, 0xd8, 0x08, - 0x99, 0x58, 0xdc, 0x6b, 0xa7, 0x11, 0x8f, 0xab, 0x4f, 0xae, 0x87, 0x7c, 0x04, 0xd3, 0x68, 0x1a, - 0x45, 0x5f, 0x23, 0xcc, 0xed, 0x33, 0xd6, 0xa7, 0xe6, 0xcf, 0x24, 0xd6, 0x7c, 0x16, 0x2d, 0xad, - 0x16, 0x7a, 0x2c, 0x61, 0x1e, 0x20, 0xed, 0x04, 0xad, 0x71, 0x26, 0x77, 0x61, 0x46, 0xa8, 0x32, - 0xeb, 0xbb, 0x1b, 0xfb, 0xb4, 0x64, 0x1f, 0x88, 0xcb, 0x34, 0x3c, 0x1d, 0x09, 0xfd, 0xc7, 0x72, - 0x77, 0xad, 0x60, 0x9f, 0x5a, 0x0d, 0x5b, 0xdb, 0xf4, 0x63, 0x84, 0xe4, 0x47, 0x60, 0x62, 0xc5, - 0xad, 0x33, 0x2d, 0x16, 0x57, 0x86, 0x71, 0xe4, 0xf3, 0x01, 0xe6, 0x6a, 0xe6, 0xe0, 0x98, 0x6a, - 0xf2, 0xc3, 0xc3, 0x85, 0xb7, 0x8e, 0x2b, 0x34, 0x4a, 0x05, 0xa6, 0x5a, 0x1b, 0x29, 0x42, 0x6e, - 0x9b, 0xee, 0xb0, 0xaf, 0x8d, 0xe7, 0x71, 0x95, 0x60, 0x71, 0xbf, 0x29, 0x7e, 0x69, 0xf7, 0x9b, - 0x02, 0x46, 0x3c, 0x98, 0xc5, 0xfe, 0xa9, 0xda, 0xbe, 0xff, 0xd0, 0xf5, 0x1a, 0x98, 0x77, 0x6c, - 0xa2, 0x4f, 0xe7, 0x2f, 0x26, 0x76, 0xfe, 0x39, 0xde, 0xf9, 0x1d, 0x85, 0x83, 0xaa, 0x8c, 0xf5, - 0xb0, 0x27, 0x5f, 0x87, 0x69, 0x93, 0x7e, 0xa3, 0xeb, 0x78, 0x74, 0xf5, 0x76, 0x01, 0x67, 0xe5, - 0xa4, 0xe6, 0x8e, 0xab, 0x17, 0x72, 0x8d, 0xcf, 0xe3, 0x30, 0x69, 0xcd, 0xb1, 0x5a, 0xbb, 0xb6, - 0x6e, 0xcd, 0x57, 0x49, 0x48, 0x15, 0x26, 0x4a, 0xf4, 0x81, 0x53, 0xa7, 0xe8, 0x34, 0x28, 0x2e, - 0xed, 0xc3, 0x44, 0x94, 0x51, 0x09, 0xb7, 0x6b, 0x34, 0x10, 0xc0, 0x5d, 0x10, 0xf5, 0x54, 0xf0, - 0x21, 0x22, 0xb9, 0x05, 0x99, 0x4a, 0xa9, 0x2a, 0x42, 0x20, 0xa5, 0x2f, 0x5e, 0xa5, 0x51, 0x95, - 0xd9, 0x07, 0xf1, 0x36, 0xd2, 0x69, 0x68, 0x37, 0xfe, 0x95, 0x52, 0x95, 0xec, 0xc2, 0x14, 0x76, - 0xc0, 0x32, 0xb5, 0x79, 0xdf, 0xce, 0xf4, 0xe9, 0xdb, 0x6b, 0x89, 0x7d, 0x3b, 0xcf, 0xfb, 0x76, - 0x5f, 0x50, 0x6b, 0xe9, 0xd4, 0x54, 0xb6, 0x4c, 0x3d, 0x2c, 0xd1, 0x5d, 0xbb, 0xdb, 0x94, 0x26, - 0xad, 0x8d, 0x8d, 0x95, 0xf9, 0x7c, 0xa4, 0x1e, 0x36, 0x78, 0x61, 0xd8, 0x7f, 0xfd, 0x5d, 0x82, - 0x7a, 0xf9, 0x88, 0xb3, 0xee, 0xac, 0xe8, 0x64, 0x51, 0xb0, 0x7a, 0xbb, 0x60, 0xfc, 0x27, 0x29, - 0x5c, 0x6e, 0xc8, 0x55, 0x0c, 0xce, 0x0a, 0xaf, 0xdc, 0xd0, 0x6a, 0x67, 0x77, 0x62, 0x99, 0x78, - 0x38, 0x0a, 0x79, 0x0d, 0x46, 0x6f, 0xdb, 0x75, 0x1a, 0xc8, 0x6b, 0x0b, 0x44, 0xde, 0x45, 0x88, - 0x6a, 0xe2, 0xe3, 0x38, 0x4c, 0x13, 0xe2, 0xc3, 0x50, 0x88, 0xde, 0x84, 0x28, 0x16, 0xe4, 0xad, - 0x05, 0x6a, 0x42, 0x62, 0xf8, 0x94, 0x47, 0x23, 0xac, 0xba, 0x96, 0x44, 0x33, 0x91, 0x83, 0xf1, - 0xaf, 0x53, 0xd1, 0xfc, 0x21, 0xaf, 0x40, 0xd6, 0xac, 0x86, 0xed, 0xe7, 0x5e, 0xc3, 0xb1, 0xe6, - 0x23, 0x02, 0xf9, 0x10, 0x4e, 0x2a, 0x7c, 0x70, 0x0c, 0x68, 0x83, 0x35, 0x88, 0x7f, 0xcc, 0xcb, - 0xe8, 0xd6, 0xaa, 0xb4, 0xc4, 0xe6, 0x18, 0xb1, 0x16, 0x25, 0xf3, 0x40, 0xb5, 0x2f, 0x2a, 0x28, - 0xd1, 0xb6, 0xc3, 0x79, 0x2b, 0x1f, 0xab, 0xf2, 0x6e, 0x20, 0x42, 0xfc, 0x63, 0x93, 0x38, 0x70, - 0xcf, 0x56, 0xe3, 0xb7, 0x52, 0xda, 0xbc, 0x08, 0xf3, 0xef, 0xa7, 0x8e, 0xc8, 0xbf, 0xff, 0x26, - 0x40, 0xa1, 0x1b, 0xb8, 0xe5, 0xb6, 0xe7, 0x36, 0xf9, 0xd9, 0x59, 0x24, 0xa3, 0x42, 0x8b, 0x20, - 0x45, 0xb0, 0xe6, 0x80, 0x17, 0x22, 0x93, 0x15, 0xc8, 0x97, 0xef, 0xa1, 0xeb, 0x72, 0xd4, 0x55, - 0xfc, 0x73, 0x70, 0xb9, 0xa5, 0xf7, 0xd9, 0x06, 0xd1, 0xa7, 0x97, 0x7a, 0x28, 0x8d, 0xff, 0x23, - 0xa5, 0xbc, 0xf9, 0xf0, 0x8c, 0xea, 0x3a, 0xb7, 0x34, 0x5d, 0x47, 0x46, 0x53, 0x87, 0x5f, 0xc5, - 0xca, 0x12, 0xf5, 0xd3, 0x19, 0xc5, 0x4b, 0x01, 0x01, 0xdf, 0x4a, 0xc3, 0xc4, 0xa6, 0x4f, 0x3d, - 0x7e, 0x79, 0xf4, 0xe9, 0x0a, 0xbe, 0x0d, 0xbf, 0x6b, 0xa8, 0xf0, 0xc8, 0xdf, 0x4f, 0xa1, 0x51, - 0x51, 0xa5, 0x60, 0xbd, 0x81, 0xc9, 0x7c, 0x95, 0xde, 0xe8, 0xfa, 0xd4, 0x33, 0x11, 0xca, 0x43, - 0x28, 0x57, 0xf4, 0x74, 0xd0, 0x98, 0x13, 0x7c, 0x85, 0x7c, 0x11, 0x46, 0x36, 0xd1, 0x44, 0xa2, - 0xc7, 0x88, 0x84, 0xfc, 0xb1, 0x90, 0x2f, 0x11, 0x5d, 0xf6, 0xa7, 0xba, 0xc2, 0x61, 0x19, 0xa9, - 0xc1, 0x58, 0xd1, 0xa3, 0xf8, 0xba, 0x43, 0x76, 0x78, 0x3f, 0xe7, 0x3a, 0x27, 0x89, 0xfb, 0x39, - 0x0b, 0x4e, 0xc6, 0xcf, 0xa7, 0x81, 0x44, 0xdf, 0x88, 0x89, 0x27, 0xfd, 0x67, 0x76, 0xd0, 0xdf, - 0xd3, 0x06, 0xfd, 0x85, 0x9e, 0x41, 0xe7, 0x9f, 0x37, 0xd4, 0xd8, 0xff, 0x76, 0x0a, 0x4e, 0x25, - 0x13, 0x92, 0x8b, 0x30, 0xba, 0xbe, 0x51, 0x95, 0x61, 0x46, 0xe2, 0x53, 0xdc, 0x0e, 0x9e, 0xa9, - 0x4c, 0x51, 0x44, 0x5e, 0x87, 0xd1, 0xf7, 0xcd, 0x22, 0x5b, 0x05, 0x95, 0x84, 0x50, 0xdf, 0xf0, - 0xac, 0xba, 0xbe, 0x10, 0x0a, 0x24, 0x75, 0x6c, 0x33, 0x4f, 0x6d, 0x6c, 0xbf, 0x9b, 0x86, 0x99, - 0x42, 0xbd, 0x4e, 0x7d, 0x9f, 0x6d, 0xb1, 0xd4, 0x0f, 0x9e, 0xd9, 0x81, 0x4d, 0x0e, 0x20, 0xd2, - 0xbe, 0x6d, 0xa8, 0x51, 0xfd, 0x9d, 0x14, 0x9c, 0x94, 0x54, 0x0f, 0x1c, 0xfa, 0x70, 0x63, 0xdf, - 0xa3, 0xfe, 0xbe, 0xdb, 0x6c, 0x0c, 0x9d, 0x75, 0x8e, 0xa9, 0x19, 0x98, 0x00, 0x47, 0xbd, 0x49, - 0xdc, 0x45, 0x88, 0xa6, 0x66, 0xf0, 0x24, 0x39, 0xd7, 0x61, 0xac, 0xd0, 0xe9, 0x78, 0xee, 0x03, - 0x3e, 0xed, 0xa7, 0x84, 0xdb, 0x37, 0x07, 0x69, 0x6e, 0xe2, 0x1c, 0xc4, 0x9a, 0x51, 0xa2, 0x6d, - 0x1e, 0xb2, 0x3c, 0xc5, 0x9b, 0xd1, 0xa0, 0x6d, 0xf5, 0xb0, 0x80, 0xe5, 0xc6, 0x77, 0xb2, 0x30, - 0xa9, 0x7e, 0x08, 0x31, 0x78, 0x36, 0x29, 0xd7, 0x53, 0xa3, 0x31, 0x6c, 0x84, 0x98, 0xa2, 0x24, - 0x0a, 0x62, 0x4a, 0x1f, 0x19, 0xc4, 0xb4, 0x0d, 0x53, 0x55, 0xcf, 0xed, 0xb8, 0x3e, 0x6d, 0xf0, - 0x07, 0x7a, 0xf8, 0xaa, 0x75, 0x42, 0x51, 0xa5, 0x59, 0x9f, 0xe3, 0x75, 0x09, 0x1e, 0x24, 0x3b, - 0x02, 0xdb, 0x8a, 0x3f, 0xdf, 0xa3, 0xf3, 0xe1, 0x37, 0xb1, 0xb6, 0x2f, 0x92, 0x08, 0x84, 0x37, - 0xb1, 0x0c, 0xa2, 0xdf, 0xc4, 0x32, 0x88, 0x3a, 0x2d, 0x46, 0x9e, 0xd6, 0xb4, 0x20, 0x3f, 0x9f, - 0x82, 0x89, 0x42, 0xbb, 0x2d, 0x82, 0xa3, 0x8e, 0xf0, 0x0e, 0xff, 0x8a, 0xb8, 0x8c, 0x7d, 0xeb, - 0x63, 0x5d, 0xc6, 0x6e, 0x78, 0xb6, 0x13, 0xf8, 0xa8, 0xd2, 0x44, 0x15, 0xaa, 0x67, 0x01, 0xa5, - 0x1d, 0xe4, 0x2d, 0xc8, 0x87, 0xf2, 0x58, 0x69, 0x37, 0xe8, 0x23, 0xea, 0xcf, 0x8f, 0x5d, 0xc8, - 0x5c, 0x9e, 0x12, 0x99, 0x40, 0x54, 0x15, 0x26, 0x8e, 0x68, 0x7c, 0x37, 0x05, 0xa7, 0x54, 0x81, - 0xa8, 0x75, 0x77, 0x5a, 0x0e, 0x2a, 0xd4, 0xe4, 0x1a, 0x8c, 0x8b, 0xf1, 0x0a, 0x35, 0xd1, 0xde, - 0xe4, 0x57, 0x11, 0x0a, 0x29, 0xb3, 0x21, 0x62, 0x3c, 0x84, 0x95, 0xe9, 0x44, 0x6c, 0xba, 0xb1, - 0xa2, 0xa5, 0x79, 0xd1, 0xd9, 0x79, 0x0f, 0x7f, 0xeb, 0x63, 0xc7, 0x20, 0xc6, 0xbb, 0x30, 0xab, - 0xb7, 0xb2, 0x46, 0x03, 0x72, 0x05, 0xc6, 0xe4, 0xa7, 0xa5, 0x92, 0x3f, 0x4d, 0x96, 0x1b, 0xdb, - 0x40, 0x7a, 0xe8, 0x7d, 0xf4, 0x28, 0xa0, 0x81, 0xf4, 0x78, 0x91, 0xf6, 0xfc, 0x1e, 0xc4, 0xf0, - 0xd5, 0xb3, 0x09, 0xb5, 0xbb, 0x91, 0xd4, 0xf8, 0xf6, 0x14, 0x9c, 0x48, 0x58, 0x3a, 0x8e, 0xd8, - 0xda, 0x17, 0xf4, 0xc9, 0x33, 0x1e, 0x06, 0x5e, 0xc8, 0x29, 0xf3, 0xae, 0x7c, 0xcb, 0x6a, 0xc0, - 0x54, 0x19, 0xf4, 0xc0, 0xd5, 0x27, 0xb1, 0xbd, 0xab, 0xb1, 0x51, 0x23, 0x4f, 0x2d, 0x36, 0x6a, - 0x09, 0xa6, 0xc4, 0x57, 0x89, 0xa9, 0x3c, 0x1a, 0x19, 0x94, 0x3c, 0x5e, 0x60, 0xf5, 0x4c, 0x69, - 0x9d, 0x84, 0xf3, 0xf0, 0xdd, 0xe6, 0x03, 0x2a, 0x78, 0x8c, 0xa9, 0x3c, 0xb0, 0x20, 0x91, 0x87, - 0x42, 0x42, 0xfe, 0x26, 0x26, 0x94, 0x45, 0x88, 0x3a, 0x9f, 0x73, 0x83, 0xe6, 0x73, 0xe3, 0xe9, - 0xcc, 0xe7, 0x17, 0x64, 0x1b, 0x93, 0xe7, 0x75, 0x42, 0xb3, 0xc8, 0xaf, 0xa4, 0x60, 0x96, 0x07, - 0xe8, 0xa8, 0x8d, 0x1d, 0x18, 0x74, 0x51, 0x7f, 0x3a, 0x8d, 0x3d, 0xe7, 0x63, 0xb5, 0x7d, 0xda, - 0xda, 0xdb, 0x28, 0xf2, 0x65, 0x80, 0x70, 0x46, 0xf9, 0xf3, 0x80, 0x53, 0xed, 0x5c, 0xc2, 0x2a, - 0x10, 0x22, 0x45, 0x29, 0xb3, 0x82, 0x90, 0x4e, 0x4b, 0x23, 0x1c, 0x42, 0xc9, 0x8f, 0xc2, 0x1c, - 0x9b, 0x2f, 0x21, 0x44, 0x84, 0x13, 0xce, 0x4f, 0x60, 0x2d, 0x9f, 0xed, 0xbf, 0xb5, 0x5f, 0x4b, - 0x22, 0xe3, 0x79, 0x42, 0xa2, 0x77, 0x07, 0x82, 0x96, 0x7a, 0x66, 0x4d, 0xa2, 0xc0, 0xf8, 0x5c, - 0x6c, 0x3d, 0x4f, 0x6b, 0xd5, 0x67, 0x7d, 0x3b, 0x23, 0xe7, 0x02, 0x5f, 0xdf, 0x7c, 0xdd, 0xc1, - 0x1b, 0x41, 0xe4, 0x7d, 0x20, 0x61, 0x64, 0x0b, 0x87, 0x51, 0x99, 0xf2, 0x8a, 0x5b, 0x97, 0xa2, - 0x08, 0x19, 0x4f, 0x16, 0xab, 0x42, 0xd2, 0x4b, 0x4c, 0x28, 0xcc, 0x89, 0x8f, 0x66, 0x50, 0x99, - 0xb0, 0xd6, 0x9f, 0x9f, 0xd6, 0x82, 0x35, 0xa3, 0x92, 0xe8, 0x81, 0x02, 0x25, 0xeb, 0xad, 0x76, - 0x6e, 0x4f, 0x62, 0x47, 0x6e, 0xc1, 0xf8, 0x8a, 0xbb, 0xe7, 0xb4, 0x97, 0xa5, 0x9f, 0x84, 0xb8, - 0xb3, 0x6d, 0x32, 0xa0, 0xb5, 0xaf, 0x7b, 0x3b, 0x44, 0xa8, 0x4c, 0xab, 0x2d, 0x79, 0x07, 0x66, - 0xb7, 0x8d, 0x36, 0xa0, 0x1c, 0x57, 0x67, 0x1a, 0xde, 0x81, 0xe5, 0x75, 0x75, 0x37, 0x7c, 0x44, - 0x22, 0x5f, 0x87, 0x89, 0x55, 0xfb, 0x91, 0x34, 0x01, 0xcd, 0xcf, 0x0e, 0xff, 0x26, 0x5d, 0xcb, - 0x7e, 0x64, 0x35, 0xba, 0xf1, 0x5c, 0x53, 0xfc, 0x4d, 0x3a, 0x85, 0x25, 0xf9, 0x2a, 0x80, 0x62, - 0x98, 0x22, 0x47, 0x56, 0xf0, 0xa2, 0x0c, 0x3f, 0x4e, 0x34, 0x58, 0x21, 0x7f, 0x85, 0xe1, 0xd9, - 0x1d, 0x38, 0xd3, 0x57, 0xea, 0x12, 0x92, 0xa9, 0x5c, 0xd7, 0x93, 0xa9, 0x9c, 0xe9, 0xb7, 0x3b, - 0xf9, 0x6a, 0x42, 0x95, 0x5f, 0x4c, 0xc5, 0xb6, 0x23, 0xa1, 0x3b, 0xf2, 0x64, 0x95, 0xfd, 0xf6, - 0xeb, 0x34, 0xe6, 0xac, 0xe7, 0x1b, 0x56, 0x3a, 0xd2, 0x59, 0x63, 0x0f, 0xc7, 0xf0, 0xad, 0xeb, - 0x09, 0x77, 0x26, 0xe3, 0x9f, 0x65, 0x80, 0xf0, 0x16, 0x16, 0xed, 0x8e, 0xbd, 0xe3, 0x34, 0x9d, - 0xc0, 0xc1, 0xc0, 0xaa, 0xbc, 0x60, 0x61, 0xef, 0x34, 0xa9, 0x1a, 0x95, 0x28, 0x1c, 0x9f, 0xc2, - 0x32, 0x2b, 0xae, 0x65, 0xf6, 0x10, 0xf6, 0x99, 0x4b, 0xe9, 0x27, 0x99, 0x4b, 0x5f, 0x87, 0xe7, - 0x0b, 0x1d, 0xcc, 0x33, 0x2f, 0x6b, 0xb9, 0xed, 0x7a, 0x72, 0x16, 0x68, 0x0e, 0xca, 0x76, 0x88, - 0xd6, 0xd3, 0xd2, 0x41, 0x2c, 0x94, 0x8d, 0xb0, 0xea, 0xb9, 0xad, 0x4e, 0xa0, 0x46, 0x78, 0xc8, - 0x8d, 0xb0, 0x83, 0x25, 0x09, 0x1b, 0x21, 0x27, 0x91, 0x3c, 0x1c, 0x4f, 0x6e, 0x84, 0x98, 0xb9, - 0x32, 0xe2, 0xe1, 0x78, 0xb4, 0xcf, 0x66, 0x1a, 0x92, 0x90, 0xb7, 0x61, 0xa2, 0xd0, 0x0d, 0x5c, - 0xc1, 0x58, 0x78, 0xec, 0x45, 0xbe, 0x75, 0xa2, 0x29, 0x9a, 0xde, 0x19, 0xa1, 0x1b, 0x7f, 0x3f, - 0x0d, 0x67, 0x7a, 0x87, 0x57, 0x94, 0x86, 0x42, 0x96, 0x3a, 0x42, 0xc8, 0x92, 0xa4, 0x81, 0x9b, - 0xf4, 0x9e, 0x9a, 0x34, 0xf0, 0x74, 0xf5, 0x1f, 0x53, 0x1a, 0x6a, 0x30, 0xa1, 0x2e, 0xa8, 0xd9, - 0x8f, 0xbb, 0xa0, 0xaa, 0x5c, 0x30, 0xf1, 0xbb, 0x92, 0x57, 0xfc, 0xf5, 0x24, 0xff, 0x60, 0x9e, - 0xac, 0x86, 0x83, 0x75, 0xd7, 0x60, 0x79, 0x16, 0x4f, 0x27, 0x9e, 0xc5, 0x65, 0xde, 0x9d, 0x4c, - 0x62, 0xde, 0x9d, 0x12, 0xcc, 0xd4, 0xba, 0x3b, 0xb2, 0x6e, 0x44, 0xcc, 0x6a, 0x21, 0x0e, 0x96, - 0x6c, 0xbf, 0x1e, 0xbc, 0xaa, 0x91, 0x18, 0x3f, 0x95, 0x86, 0xc9, 0x6a, 0xb3, 0xbb, 0xe7, 0xb4, - 0x4b, 0x76, 0x60, 0x3f, 0xb3, 0xe6, 0x81, 0x37, 0x35, 0xf3, 0x40, 0xe8, 0x06, 0x1f, 0x7e, 0xd8, - 0x50, 0xb6, 0x81, 0xef, 0xa5, 0x60, 0x26, 0x22, 0xe1, 0x4b, 0xfc, 0x32, 0x64, 0xd9, 0x0f, 0x71, - 0xda, 0xb8, 0xd0, 0xc3, 0x98, 0xa7, 0xe0, 0x0d, 0xff, 0x12, 0x07, 0x76, 0x3d, 0x49, 0x25, 0x72, - 0x38, 0xfb, 0x39, 0xfe, 0xbe, 0xdf, 0xf1, 0x53, 0xef, 0xfe, 0x9d, 0x14, 0xe4, 0xe3, 0x5f, 0x42, - 0xee, 0xc1, 0x18, 0xe3, 0xe4, 0x84, 0x6f, 0x05, 0xbe, 0xd4, 0xe7, 0x9b, 0xaf, 0x09, 0x34, 0xde, - 0x3c, 0xec, 0x7c, 0xca, 0x21, 0xa6, 0xe4, 0x70, 0xd6, 0x84, 0x49, 0x15, 0x2b, 0xa1, 0x75, 0xaf, - 0xe9, 0xfb, 0xda, 0xa9, 0xe4, 0x7e, 0xd0, 0x12, 0x06, 0x6b, 0xad, 0x16, 0x3b, 0xda, 0xb0, 0x0f, - 0x93, 0x2e, 0x46, 0xf9, 0xb3, 0x54, 0x39, 0x4b, 0x10, 0xe8, 0x10, 0x8f, 0xbc, 0x06, 0xa3, 0xbc, - 0x3e, 0x35, 0x1f, 0x66, 0x07, 0x21, 0xaa, 0x62, 0xc2, 0x71, 0x8c, 0xbf, 0x9a, 0x81, 0x53, 0x51, - 0xf3, 0xf8, 0x33, 0xad, 0x55, 0xdb, 0xb3, 0x5b, 0xfe, 0x11, 0x33, 0xe0, 0x72, 0x4f, 0xd3, 0x30, - 0xa9, 0xa2, 0x6c, 0x9a, 0xd2, 0x20, 0x23, 0xd6, 0x20, 0x34, 0xc8, 0xf0, 0x06, 0xc9, 0x66, 0x90, - 0x7b, 0x90, 0xa9, 0xd1, 0x40, 0xac, 0x45, 0x97, 0x7a, 0x7a, 0x55, 0x6d, 0xd7, 0xb5, 0x1a, 0x0d, - 0xf8, 0x20, 0xf2, 0x28, 0x46, 0xaa, 0xa5, 0xe7, 0x60, 0x47, 0xeb, 0x6d, 0x18, 0x2d, 0x3f, 0xea, - 0xd0, 0x7a, 0x20, 0x12, 0x47, 0x5f, 0x19, 0xcc, 0x8f, 0xe3, 0x2a, 0x79, 0xa3, 0x29, 0x02, 0xd4, - 0xce, 0xe2, 0x28, 0x67, 0x6f, 0x41, 0x4e, 0x56, 0x7e, 0x1c, 0xc9, 0x3d, 0xfb, 0x26, 0x4c, 0x28, - 0x95, 0x1c, 0x4b, 0xe8, 0xff, 0x38, 0x05, 0xa3, 0x6c, 0x27, 0xd8, 0xba, 0xf5, 0x8c, 0xae, 0x48, - 0x37, 0xb5, 0x15, 0x69, 0x56, 0xc9, 0x00, 0x84, 0xf3, 0xf2, 0xd6, 0x11, 0x6b, 0xd1, 0x21, 0xdb, - 0x57, 0x42, 0x64, 0x72, 0x07, 0xc6, 0xc4, 0x85, 0xb0, 0x70, 0x5d, 0x53, 0x53, 0x0a, 0xc9, 0xab, - 0xe2, 0xf0, 0xc4, 0xe2, 0x76, 0xe2, 0x47, 0x3c, 0x49, 0x4d, 0x4a, 0x51, 0x3a, 0x08, 0x2d, 0x45, - 0xbf, 0x8b, 0x7e, 0xfb, 0x3c, 0x25, 0x8e, 0xf2, 0xf8, 0x45, 0x9f, 0xe0, 0xca, 0x82, 0x30, 0x52, - 0x66, 0x06, 0x31, 0x39, 0x25, 0xf3, 0xa3, 0x27, 0xda, 0x2f, 0xff, 0x05, 0xe1, 0xc9, 0x64, 0x64, - 0xc3, 0xde, 0x81, 0xc9, 0xdb, 0xae, 0xf7, 0xd0, 0xf6, 0x78, 0x8a, 0x00, 0xfc, 0x4c, 0x7e, 0x19, - 0x38, 0xb5, 0xcb, 0xe1, 0x3c, 0xc9, 0xc0, 0x0f, 0x0f, 0x17, 0xb2, 0x4b, 0xae, 0xdb, 0x34, 0x35, - 0x74, 0xb2, 0x0e, 0x53, 0xab, 0xf6, 0x23, 0xe5, 0x24, 0xc0, 0x1d, 0x71, 0xaf, 0x3c, 0x3e, 0x5c, - 0x38, 0xc3, 0x8e, 0x12, 0x47, 0x5f, 0x4f, 0xeb, 0xf4, 0xc4, 0x81, 0xe9, 0xaa, 0xeb, 0x05, 0xa2, - 0x12, 0x76, 0x3e, 0xcd, 0xf4, 0xb9, 0x60, 0xbf, 0x9e, 0x78, 0xc1, 0x7e, 0x86, 0x1d, 0xca, 0xad, - 0xdd, 0x90, 0x5c, 0x8b, 0xae, 0xd5, 0x18, 0x93, 0x77, 0x60, 0xb6, 0x48, 0xbd, 0xc0, 0xd9, 0x75, - 0xea, 0x76, 0x40, 0x6f, 0xbb, 0x5e, 0xcb, 0x96, 0x8a, 0x24, 0x1a, 0xc7, 0xf0, 0x26, 0x73, 0x17, - 0xc1, 0x66, 0x2f, 0x26, 0xf9, 0x30, 0xc9, 0xb5, 0x79, 0x24, 0xba, 0xa1, 0x4f, 0x70, 0x6d, 0xee, - 0x77, 0x43, 0xdf, 0xeb, 0xe4, 0xbc, 0x37, 0xc8, 0x83, 0x27, 0xb7, 0x74, 0x43, 0x38, 0xff, 0x1c, - 0xed, 0xa1, 0x13, 0x8e, 0x5b, 0x1f, 0x4f, 0x9d, 0x45, 0xc8, 0x2c, 0x55, 0x6f, 0xa3, 0xb9, 0x53, - 0x5e, 0xe1, 0xb6, 0xf7, 0xed, 0x76, 0x1d, 0x15, 0x3c, 0xe1, 0x35, 0xa7, 0x2e, 0x78, 0x4b, 0xd5, - 0xdb, 0xc4, 0x86, 0x13, 0x55, 0xea, 0xb5, 0x9c, 0xe0, 0x4b, 0x37, 0x6e, 0x28, 0x03, 0x95, 0xc3, - 0xa6, 0x5d, 0x17, 0x4d, 0x5b, 0xe8, 0x20, 0x8a, 0xf5, 0xe8, 0xc6, 0x8d, 0xc4, 0xe1, 0x08, 0x1b, - 0x96, 0xc4, 0x8b, 0x94, 0x61, 0x7a, 0xd5, 0x7e, 0x14, 0x39, 0x3b, 0xfa, 0x22, 0x48, 0xe4, 0x05, - 0x29, 0x58, 0x91, 0xa3, 0xa4, 0x16, 0x05, 0xaa, 0x13, 0x31, 0xfd, 0x3c, 0x12, 0x2f, 0x5f, 0xb8, - 0xd7, 0x9e, 0x95, 0xe7, 0x5c, 0x19, 0x49, 0xa4, 0x2a, 0x99, 0x0a, 0x3a, 0xd9, 0x0c, 0x4f, 0x19, - 0x5c, 0x4b, 0x17, 0x29, 0xbc, 0xaf, 0xab, 0xa7, 0x0c, 0x1b, 0x4b, 0xb4, 0xcf, 0x9a, 0x09, 0xcf, - 0x77, 0xdc, 0xfb, 0xd3, 0xd4, 0xb9, 0xf4, 0x1e, 0x5e, 0x26, 0x8f, 0x7f, 0x78, 0xa1, 0x90, 0x5d, - 0x71, 0xeb, 0xf7, 0xd1, 0x7f, 0x65, 0x7c, 0xe9, 0x7d, 0x36, 0xdd, 0x9b, 0x6e, 0xfd, 0xfe, 0xd3, - 0xf3, 0x4c, 0x42, 0xf6, 0x64, 0x8d, 0x35, 0x95, 0x49, 0x81, 0xe8, 0x13, 0xe1, 0xed, 0x32, 0x17, - 0x6a, 0xef, 0x4a, 0x19, 0xd7, 0x2b, 0xb8, 0xd0, 0xc8, 0xae, 0x35, 0x75, 0x72, 0x42, 0x21, 0x5f, - 0xa2, 0xfe, 0xfd, 0xc0, 0xed, 0x14, 0x9b, 0x4e, 0x67, 0xc7, 0xb5, 0xbd, 0x06, 0x1a, 0x34, 0x92, - 0xe6, 0xf7, 0x2b, 0x89, 0xf3, 0x7b, 0xb6, 0xc1, 0xe9, 0xad, 0xba, 0x64, 0x60, 0xf6, 0xb0, 0x24, - 0x1f, 0xc2, 0x34, 0x13, 0xee, 0xf2, 0xa3, 0x80, 0xb6, 0xf9, 0xc8, 0xcf, 0xe2, 0xce, 0x3c, 0xa7, - 0xa4, 0x5e, 0x0b, 0x0b, 0xb9, 0x4c, 0xe1, 0x64, 0xa7, 0x21, 0x81, 0x2a, 0x53, 0x3a, 0x2b, 0xd2, - 0x80, 0xf9, 0x55, 0xfb, 0x91, 0x92, 0x8a, 0x5c, 0x11, 0x52, 0x82, 0x02, 0x86, 0xaf, 0x9d, 0x31, - 0x01, 0x8b, 0x52, 0xa4, 0xf4, 0x91, 0xd7, 0xbe, 0x9c, 0xc8, 0x8f, 0xc0, 0x69, 0xf1, 0x59, 0x25, - 0xcc, 0x47, 0xea, 0x7a, 0x07, 0xb5, 0x7d, 0x1b, 0xfd, 0x9c, 0x4f, 0x1c, 0x6f, 0x41, 0x94, 0x1d, - 0xd6, 0x90, 0x7c, 0x2c, 0x9f, 0x33, 0x32, 0xfb, 0xd5, 0x40, 0x3e, 0x82, 0x69, 0x6e, 0xc7, 0x5e, - 0x76, 0xfd, 0x00, 0x0f, 0xa1, 0x73, 0xc7, 0x73, 0xdf, 0xe3, 0xc6, 0x71, 0xee, 0xf0, 0x1a, 0x3b, - 0xb4, 0xc6, 0x38, 0x93, 0xb7, 0x60, 0xa2, 0xea, 0xb4, 0x79, 0xc2, 0x83, 0x4a, 0x75, 0xfe, 0x64, - 0xb4, 0xff, 0x74, 0x9c, 0xb6, 0x25, 0x4f, 0x82, 0x9d, 0x70, 0xb9, 0x50, 0xb1, 0xc9, 0x36, 0x4c, - 0xd4, 0x6a, 0xcb, 0xb7, 0x1d, 0xb6, 0x01, 0x76, 0x0e, 0xe6, 0x4f, 0xf5, 0x69, 0xe5, 0xc5, 0xc4, - 0x56, 0x4e, 0xf9, 0xfe, 0x3e, 0xbe, 0xa8, 0x64, 0xd5, 0xdd, 0xce, 0x81, 0xa9, 0x72, 0x4a, 0x70, - 0x69, 0x3b, 0xfd, 0x94, 0x5d, 0xda, 0x2a, 0x30, 0xa3, 0xb8, 0xee, 0xa0, 0xdb, 0xce, 0x7c, 0xf4, - 0xe8, 0x94, 0xea, 0xc2, 0x16, 0x0f, 0x87, 0x88, 0xd3, 0x49, 0x5f, 0xb6, 0x33, 0xc7, 0xf5, 0x65, - 0x73, 0x60, 0x96, 0x0f, 0x86, 0x90, 0x03, 0x1c, 0xe9, 0xb3, 0x7d, 0xfa, 0xf0, 0x4a, 0x62, 0x1f, - 0x9e, 0x10, 0x23, 0x2d, 0x85, 0x0c, 0xef, 0x6d, 0x7a, 0xb9, 0x92, 0x5d, 0x20, 0x02, 0x28, 0xde, - 0x73, 0xc2, 0xba, 0x9e, 0xef, 0x53, 0xd7, 0x4b, 0x89, 0x75, 0x4d, 0xcb, 0xba, 0x76, 0x78, 0x35, - 0x09, 0x1c, 0x49, 0x5b, 0xd6, 0x23, 0xe5, 0x0b, 0x3b, 0xf6, 0x1c, 0x8e, 0x9d, 0xb4, 0x0a, 0xf6, - 0x22, 0x60, 0xe0, 0xd0, 0x42, 0x5c, 0x68, 0xe3, 0xfd, 0x9e, 0xc0, 0x59, 0xbc, 0x25, 0x9a, 0xe0, - 0x49, 0xf7, 0x5f, 0xa4, 0x63, 0x4b, 0x27, 0xa9, 0xc0, 0x98, 0xe8, 0x11, 0xa1, 0x4b, 0xf6, 0x7e, - 0xf7, 0x0b, 0x89, 0xdf, 0x3d, 0x26, 0x3a, 0xd7, 0x94, 0xf4, 0xe4, 0x21, 0x63, 0x85, 0x4e, 0x7d, - 0x42, 0xf9, 0xfe, 0x2a, 0x5f, 0x19, 0x11, 0xa4, 0xed, 0x01, 0xa5, 0xe3, 0xbb, 0x34, 0xeb, 0x1e, - 0xf3, 0xb8, 0x19, 0xc8, 0xda, 0xc8, 0x7d, 0x9e, 0x31, 0x31, 0x13, 0xfa, 0xc5, 0xea, 0xe9, 0x11, - 0x9f, 0x5a, 0x85, 0xac, 0x16, 0xe3, 0xb7, 0x52, 0x30, 0xa5, 0xad, 0xbd, 0xe4, 0x96, 0xe2, 0xf4, - 0x1d, 0xc5, 0x14, 0x69, 0x38, 0x38, 0x1d, 0xe3, 0xee, 0xe0, 0xb7, 0x84, 0x5f, 0x5c, 0xba, 0x3f, - 0x5d, 0xe2, 0xe3, 0x62, 0x83, 0x2d, 0x41, 0x61, 0x06, 0xe6, 0x6c, 0x9f, 0x0c, 0xcc, 0xbf, 0x7a, - 0x06, 0xa6, 0x75, 0xe5, 0x9c, 0x9d, 0x96, 0xd1, 0xa8, 0x2f, 0x0d, 0xb6, 0xfc, 0xe1, 0x20, 0x84, - 0x68, 0x0f, 0x07, 0x21, 0x84, 0xbc, 0x0c, 0x10, 0xba, 0x88, 0x49, 0x9b, 0xec, 0xc8, 0xe3, 0xc3, - 0x85, 0xd4, 0xeb, 0xa6, 0x52, 0x40, 0xbe, 0x06, 0xb0, 0xe6, 0x36, 0x68, 0x98, 0xe6, 0x7d, 0xc0, - 0xc5, 0xd6, 0x2b, 0x3d, 0xd9, 0xc4, 0x4e, 0xb6, 0xdd, 0x06, 0xed, 0x4d, 0x1d, 0xa6, 0x70, 0x24, - 0x5f, 0x80, 0x11, 0xb3, 0xdb, 0xa4, 0xd2, 0x76, 0x37, 0x21, 0xd7, 0xc0, 0x6e, 0x53, 0x79, 0x3a, - 0xde, 0xeb, 0xc6, 0xfd, 0x19, 0x18, 0x80, 0xbc, 0xc7, 0xb3, 0x8c, 0x89, 0x54, 0x1e, 0x23, 0x91, - 0x95, 0x5a, 0xd9, 0x1b, 0x7b, 0x92, 0x79, 0x28, 0x24, 0x64, 0x1d, 0xc6, 0x54, 0xf3, 0xaa, 0x12, - 0x3d, 0xa4, 0x9a, 0xee, 0x95, 0xf3, 0x8f, 0xc8, 0x0f, 0x1f, 0xb7, 0xbc, 0x4a, 0x2e, 0xe4, 0x6d, - 0x18, 0x67, 0xec, 0xf9, 0xa3, 0xe1, 0x63, 0x91, 0x2d, 0x5a, 0x69, 0x50, 0xfc, 0xdd, 0xf0, 0x88, - 0x80, 0x7c, 0x88, 0xf9, 0xd3, 0x45, 0x57, 0x0f, 0xbc, 0xf0, 0xbc, 0xd4, 0xd3, 0xd5, 0x98, 0x50, - 0xbd, 0xf7, 0x59, 0x9b, 0x90, 0x1f, 0xd9, 0x0b, 0x13, 0x41, 0x0c, 0x93, 0x19, 0xee, 0x6a, 0x4f, - 0x05, 0xf3, 0x32, 0xb7, 0x41, 0x6f, 0xba, 0x7e, 0x8d, 0x2f, 0xe9, 0x40, 0x3e, 0x52, 0x3b, 0x44, - 0x5d, 0x30, 0xa8, 0xae, 0xd7, 0x7b, 0xea, 0x52, 0x07, 0xb0, 0xa7, 0xba, 0x1e, 0xee, 0xa4, 0x01, - 0xd3, 0x72, 0xa1, 0x16, 0xf5, 0x4d, 0x0c, 0xaa, 0xef, 0xe5, 0x9e, 0xfa, 0x4e, 0x34, 0x76, 0x7a, - 0xeb, 0x89, 0xf1, 0x24, 0x6f, 0xc3, 0x94, 0x84, 0xe0, 0xfc, 0x10, 0xef, 0xe7, 0xa0, 0x6d, 0xa2, - 0xb1, 0x83, 0xa1, 0x16, 0xfa, 0x23, 0x06, 0x2a, 0xb2, 0x4a, 0xcd, 0xa5, 0x63, 0x4a, 0xa3, 0x8e, - 0x4b, 0x85, 0x8e, 0x4c, 0x3e, 0x80, 0x89, 0x4a, 0x8b, 0x7d, 0x88, 0xdb, 0xb6, 0x03, 0x2a, 0x3c, - 0xcb, 0xe5, 0xe5, 0xad, 0x52, 0xa2, 0x88, 0x2a, 0x7f, 0xdc, 0x25, 0x2a, 0xd2, 0x1e, 0x77, 0x89, - 0xc0, 0xac, 0xf3, 0xb8, 0x3d, 0x5d, 0xc8, 0xb0, 0xf4, 0x3a, 0x7f, 0x21, 0xe1, 0x02, 0x55, 0x61, - 0x2f, 0x52, 0xe6, 0x30, 0xa8, 0xbc, 0x8a, 0x88, 0xa5, 0xcc, 0x51, 0x79, 0x92, 0x77, 0x60, 0x42, - 0x24, 0xcd, 0x2c, 0x98, 0x6b, 0xfe, 0x7c, 0x3e, 0x7a, 0x4f, 0x5f, 0xe6, 0xd7, 0xb4, 0x6c, 0x2f, - 0xe6, 0x45, 0x13, 0xe1, 0x93, 0x2f, 0xc1, 0xdc, 0xb6, 0xd3, 0x6e, 0xb8, 0x0f, 0x7d, 0xb1, 0x4d, - 0x89, 0x85, 0x6e, 0x36, 0x72, 0x76, 0x7e, 0xc8, 0xcb, 0x43, 0x6d, 0xa1, 0x67, 0xe1, 0x4b, 0xe4, - 0x40, 0xfe, 0x6c, 0x0f, 0x67, 0x2e, 0x41, 0x64, 0x90, 0x04, 0x2d, 0xf6, 0x48, 0x50, 0x6f, 0xf5, - 0x71, 0x71, 0x4a, 0xac, 0x86, 0xb8, 0x40, 0xf4, 0xfd, 0xfd, 0xae, 0xeb, 0xb4, 0xe7, 0x4f, 0xe0, - 0x5a, 0xf8, 0x7c, 0x3c, 0x3a, 0x0d, 0xf1, 0xf8, 0x5b, 0xa0, 0xf2, 0x45, 0x66, 0x5d, 0x2b, 0xfc, - 0xc8, 0xd5, 0x0c, 0xa3, 0x09, 0xac, 0xc9, 0x07, 0x30, 0xc9, 0xfe, 0x0f, 0x8f, 0xad, 0x73, 0x9a, - 0xcb, 0x8d, 0x82, 0x29, 0xea, 0xc1, 0x31, 0xc2, 0xac, 0x9e, 0x09, 0x27, 0x5a, 0x8d, 0x15, 0x79, - 0x13, 0x80, 0xe9, 0x2f, 0x62, 0x39, 0x3e, 0x19, 0x65, 0x28, 0x42, 0xad, 0xa7, 0x77, 0x21, 0x8e, - 0x90, 0xd9, 0x59, 0x9a, 0xfd, 0xaa, 0x75, 0x1b, 0x2e, 0x9b, 0x1b, 0xa7, 0x90, 0x16, 0xcf, 0xd2, - 0x48, 0xeb, 0x73, 0xb8, 0x2a, 0x1d, 0x0a, 0x3a, 0x59, 0x86, 0x19, 0xcc, 0x24, 0x55, 0x69, 0xd0, - 0x76, 0x80, 0xf7, 0x5c, 0xf3, 0xa7, 0x95, 0x7b, 0x40, 0x56, 0x64, 0x39, 0x61, 0x99, 0xaa, 0xed, - 0xc6, 0xc8, 0x88, 0x0f, 0x27, 0xa2, 0xd5, 0x25, 0xba, 0x55, 0x9c, 0xc7, 0x4e, 0x92, 0x3a, 0x5e, - 0x2f, 0x06, 0x5f, 0x8f, 0xd9, 0x88, 0x28, 0x0b, 0x97, 0x34, 0x1f, 0xab, 0x15, 0x26, 0x71, 0x27, - 0x26, 0x90, 0x3b, 0xc5, 0x6a, 0x3c, 0xd5, 0xd2, 0x19, 0xfc, 0x02, 0x1c, 0xe6, 0xbd, 0x7a, 0xf4, - 0x7a, 0x45, 0x42, 0xba, 0xa5, 0x04, 0x6a, 0xf2, 0x4d, 0x38, 0x29, 0x57, 0x10, 0x51, 0x24, 0xe4, - 0xfa, 0xec, 0x31, 0x57, 0xe2, 0xc6, 0x4e, 0x58, 0x75, 0x8f, 0x48, 0x27, 0x57, 0x41, 0x6c, 0x98, - 0xc0, 0x61, 0x15, 0x35, 0x3e, 0x3f, 0xa8, 0xc6, 0xcb, 0x3d, 0x35, 0x9e, 0xe2, 0xef, 0x32, 0xf7, - 0x54, 0xa6, 0xf2, 0x24, 0x4b, 0x30, 0x25, 0xe6, 0x91, 0x90, 0xb6, 0x73, 0xd1, 0xc3, 0xe2, 0x72, - 0x06, 0xf6, 0x08, 0x9c, 0x4e, 0xa2, 0xae, 0xc8, 0xfc, 0x62, 0xf3, 0x05, 0x6d, 0x45, 0x8e, 0xdf, - 0x67, 0xea, 0xc8, 0x6c, 0x45, 0x8a, 0xb4, 0x98, 0xf2, 0xa3, 0x8e, 0x27, 0x8c, 0x18, 0xe7, 0xa3, - 0x5c, 0x99, 0x8a, 0xf2, 0x63, 0xd1, 0x10, 0x43, 0x5d, 0x12, 0x92, 0x38, 0x90, 0x4d, 0x38, 0x11, - 0xee, 0xda, 0x0a, 0xe3, 0x05, 0x64, 0x8c, 0x87, 0x89, 0x68, 0xab, 0x4f, 0xe6, 0x9b, 0x44, 0x4f, - 0x6c, 0x38, 0xad, 0xed, 0xd3, 0x0a, 0xeb, 0x0b, 0xc8, 0x1a, 0x5f, 0x4b, 0xd1, 0x37, 0xf9, 0x64, - 0xf6, 0xfd, 0xf8, 0x90, 0x8f, 0xe0, 0x6c, 0x7c, 0x6f, 0x56, 0x6a, 0x79, 0x11, 0x6b, 0xb9, 0xfa, - 0xf8, 0x70, 0xe1, 0x52, 0xcf, 0xf6, 0x9e, 0x5c, 0xd1, 0x00, 0x6e, 0xe4, 0x6b, 0x30, 0xaf, 0xef, - 0xcf, 0x4a, 0x4d, 0x46, 0xf4, 0x66, 0x7d, 0xb8, 0xb1, 0x27, 0xd7, 0xd0, 0x97, 0x07, 0x09, 0x60, - 0x21, 0x51, 0xba, 0x95, 0x6a, 0x2e, 0x46, 0x1f, 0xd4, 0x33, 0x4b, 0x92, 0xab, 0x3b, 0x8a, 0x25, - 0x79, 0x08, 0xe7, 0x93, 0xb6, 0x09, 0xa5, 0xd2, 0x97, 0x42, 0x33, 0xe1, 0xab, 0xc9, 0x5b, 0x4e, - 0x72, 0xcd, 0x47, 0xb0, 0x25, 0x1f, 0xc2, 0x49, 0x65, 0x7e, 0x29, 0xf5, 0xbd, 0x8c, 0xf5, 0x61, - 0xa8, 0x92, 0x3a, 0x31, 0x93, 0x6b, 0x49, 0xe6, 0x61, 0xfc, 0x4e, 0x0a, 0x48, 0xef, 0xc2, 0x37, - 0xf4, 0xcd, 0xe1, 0x1b, 0x4a, 0x1c, 0x8f, 0xfa, 0x6a, 0x75, 0x98, 0x6e, 0x53, 0x55, 0x78, 0xa3, - 0x88, 0x9f, 0x4b, 0xda, 0x01, 0xab, 0xbf, 0xf3, 0xf7, 0x15, 0x18, 0xd9, 0xa2, 0xde, 0x0e, 0x3f, - 0x81, 0x08, 0x07, 0xea, 0x07, 0x0c, 0xa0, 0xbd, 0xa2, 0xc7, 0x00, 0xc6, 0x1f, 0xa6, 0x60, 0x2e, - 0x69, 0x37, 0x3e, 0xe2, 0x39, 0x1d, 0x23, 0xe6, 0x5e, 0x8e, 0xb7, 0x86, 0xdc, 0xbd, 0x3c, 0x74, - 0x2a, 0x5f, 0x80, 0x11, 0xf6, 0xb1, 0xd2, 0x83, 0x05, 0x0f, 0x7c, 0xac, 0x37, 0x7c, 0x93, 0xc3, - 0x19, 0x02, 0x8f, 0xeb, 0xcf, 0x62, 0x7a, 0x05, 0x44, 0xc0, 0xc5, 0xde, 0xe4, 0x70, 0x86, 0xc0, - 0x0e, 0x96, 0xf2, 0x20, 0x84, 0x08, 0xec, 0xbc, 0xe9, 0x9b, 0x1c, 0x4e, 0x2e, 0xc1, 0xd8, 0x7a, - 0x7b, 0x85, 0xda, 0x0f, 0x64, 0xc6, 0x50, 0xbc, 0xe5, 0x74, 0xdb, 0x56, 0x93, 0xc1, 0x4c, 0x59, - 0x68, 0x7c, 0x2f, 0x05, 0xb3, 0x3d, 0x8a, 0xc0, 0xd1, 0x2f, 0x06, 0x0d, 0x76, 0xa4, 0x1d, 0xe6, - 0xfb, 0x78, 0xf3, 0xb3, 0xc9, 0xcd, 0x37, 0xfe, 0xf7, 0x2c, 0x9c, 0xee, 0x73, 0x2e, 0x8b, 0x9c, - 0xe0, 0x53, 0x47, 0x3a, 0xc1, 0x7f, 0x85, 0x9d, 0x83, 0x6c, 0xa7, 0xe5, 0x6f, 0xb8, 0x51, 0x8b, - 0x23, 0x7f, 0x41, 0x2c, 0x93, 0x0f, 0x7a, 0x48, 0xc7, 0xb2, 0x33, 0xfc, 0x51, 0x25, 0x2b, 0x70, - 0x7b, 0xb7, 0x05, 0x8d, 0x59, 0x8f, 0x1b, 0x7a, 0xe6, 0x4f, 0x89, 0x1b, 0xba, 0xee, 0xfc, 0x99, - 0x7d, 0xaa, 0xce, 0x9f, 0xc9, 0x7e, 0x3d, 0x23, 0x4f, 0xe2, 0xe5, 0x55, 0x84, 0xa9, 0x1a, 0xb5, - 0xbd, 0xfa, 0x7e, 0xc1, 0xe7, 0x83, 0x34, 0x1a, 0xe5, 0xe9, 0xf4, 0xb1, 0xc0, 0xb2, 0xfd, 0xde, - 0xb1, 0xd0, 0x68, 0xc8, 0xb2, 0xee, 0xa8, 0x38, 0x86, 0xf6, 0xf3, 0x4b, 0xfd, 0x1d, 0x11, 0xb5, - 0x7b, 0x33, 0x95, 0xd4, 0xf8, 0x5e, 0x5a, 0xf7, 0xc3, 0xff, 0xd3, 0x28, 0x79, 0x57, 0x60, 0x64, - 0x7b, 0x9f, 0x7a, 0x72, 0xbd, 0xc3, 0x86, 0x3c, 0x64, 0x00, 0xb5, 0x21, 0x88, 0x41, 0x6e, 0xc3, - 0x74, 0x95, 0x8f, 0x84, 0xec, 0xde, 0x6c, 0xa4, 0x2e, 0x77, 0xc4, 0xa1, 0x2e, 0xa1, 0x7f, 0x63, - 0x54, 0xc6, 0x8f, 0xc0, 0xa4, 0xda, 0x68, 0x5c, 0xa2, 0xd8, 0x6f, 0xb1, 0x46, 0xf0, 0x25, 0x8a, - 0x01, 0x4c, 0x0e, 0x3f, 0xf2, 0x5d, 0xb1, 0xa8, 0x37, 0x33, 0x47, 0xf5, 0x26, 0xab, 0x1c, 0x67, - 0x80, 0x52, 0x39, 0xfe, 0x56, 0x2b, 0x0f, 0x18, 0xc0, 0xe4, 0xf0, 0xa7, 0x5a, 0xf9, 0x3f, 0x90, - 0x59, 0x59, 0xdf, 0x80, 0xf1, 0xe8, 0x98, 0x10, 0xbd, 0xde, 0x70, 0x22, 0x49, 0xf9, 0x8f, 0x30, - 0xa3, 0x3d, 0x27, 0x7d, 0xd4, 0x9e, 0x73, 0x9c, 0x71, 0xbd, 0x0e, 0x63, 0x05, 0x71, 0x59, 0xc4, - 0x07, 0x94, 0x07, 0x26, 0xf5, 0xdc, 0x0c, 0x49, 0x2c, 0xe3, 0xfb, 0x29, 0x38, 0x99, 0x68, 0x3d, - 0x60, 0xb5, 0x72, 0x33, 0x85, 0x22, 0xd6, 0x71, 0x1b, 0x05, 0xc7, 0x38, 0x4e, 0x00, 0xd2, 0xf0, - 0xdf, 0x62, 0xbc, 0x08, 0xe3, 0xa1, 0xed, 0x9a, 0xcc, 0xc9, 0xa1, 0x43, 0x0f, 0x02, 0x69, 0x02, - 0xfd, 0xe3, 0x14, 0x8c, 0xb2, 0x26, 0x3c, 0xb3, 0x99, 0x4c, 0x92, 0xfd, 0x49, 0xd8, 0x27, 0x0d, - 0x95, 0xbf, 0xe4, 0x5f, 0x8f, 0xf2, 0xe7, 0x22, 0x45, 0xd6, 0x92, 0x1d, 0x98, 0x5e, 0xaf, 0x94, - 0x8a, 0xca, 0x21, 0x58, 0x4f, 0x20, 0x1b, 0xbe, 0x75, 0xc7, 0x11, 0x0e, 0xa2, 0x35, 0xc6, 0x75, - 0x1a, 0xf5, 0xe4, 0x03, 0x72, 0x8c, 0x23, 0xab, 0x83, 0x3f, 0x94, 0x18, 0xd6, 0x91, 0x1e, 0xb2, - 0x0e, 0xf1, 0x0c, 0x63, 0x52, 0x1d, 0x3a, 0x47, 0xb2, 0x0f, 0xf9, 0x3b, 0xb8, 0x1f, 0x2a, 0xb5, - 0x64, 0x06, 0xd7, 0x72, 0x51, 0xd4, 0xf2, 0x3c, 0xdf, 0x48, 0x93, 0xeb, 0xe9, 0xe1, 0x1a, 0x49, - 0x6e, 0xf6, 0x48, 0xc9, 0xfd, 0x0b, 0x29, 0x18, 0xe5, 0x1b, 0xae, 0x18, 0xad, 0x3e, 0x5b, 0xfa, - 0xf6, 0xd3, 0xd9, 0xd2, 0xf3, 0xb8, 0x72, 0x69, 0x66, 0x7b, 0x5e, 0x46, 0x4a, 0x30, 0x5a, 0x0b, - 0xec, 0xa0, 0x2b, 0x23, 0xdc, 0xa4, 0xd3, 0x10, 0x9a, 0xb3, 0x78, 0x49, 0x14, 0xc6, 0xe5, 0xe3, - 0x6f, 0x95, 0x0b, 0xc7, 0x20, 0x95, 0x28, 0x82, 0x68, 0xec, 0x48, 0xf7, 0x7a, 0x19, 0x75, 0x35, - 0x26, 0x22, 0x88, 0xf4, 0xb8, 0xa1, 0x15, 0x18, 0x17, 0x71, 0x49, 0x4b, 0x07, 0xc2, 0x68, 0x9d, - 0xd7, 0x2e, 0xc3, 0x1a, 0x4b, 0xea, 0xe3, 0xeb, 0x1c, 0x64, 0xed, 0x68, 0x0f, 0xf7, 0x85, 0x88, - 0x64, 0x9d, 0xa7, 0xaa, 0xe6, 0x79, 0x5d, 0xf4, 0xa4, 0x68, 0x21, 0x5c, 0x04, 0xee, 0xca, 0xe0, - 0x86, 0x84, 0x34, 0x2e, 0x11, 0x0f, 0xb2, 0x02, 0x79, 0xf1, 0x18, 0x18, 0xbf, 0xd9, 0xac, 0x94, - 0x78, 0xec, 0x8b, 0x70, 0x48, 0x91, 0x4f, 0x89, 0x89, 0x3b, 0x51, 0xdd, 0x2b, 0xb8, 0x87, 0xd2, - 0xf8, 0x4e, 0x0a, 0xf2, 0x71, 0xe9, 0x23, 0x6f, 0xc3, 0x44, 0x98, 0x57, 0x27, 0x74, 0xee, 0x47, - 0xe3, 0x55, 0x94, 0x88, 0x47, 0x73, 0xf3, 0x57, 0xd1, 0xc9, 0x22, 0xe4, 0xd8, 0x24, 0x56, 0x5e, - 0x74, 0xc6, 0xd5, 0xa9, 0x2b, 0x60, 0xaa, 0x5f, 0xa4, 0xc4, 0x53, 0xd6, 0x80, 0x7f, 0x92, 0x81, - 0x09, 0x65, 0xe8, 0xc9, 0x15, 0xc8, 0x55, 0xfc, 0x15, 0xb7, 0x7e, 0x9f, 0x36, 0x84, 0xbb, 0xd5, - 0xd4, 0xe3, 0xc3, 0x85, 0x71, 0xc7, 0xb7, 0x9a, 0x08, 0x34, 0xc3, 0x62, 0xb2, 0x04, 0x53, 0xfc, - 0x2f, 0x99, 0xe6, 0x2f, 0x1d, 0xb9, 0x8a, 0x70, 0x64, 0x99, 0xe0, 0x4f, 0x55, 0x3a, 0x34, 0x12, - 0xf2, 0x55, 0x00, 0x0e, 0x60, 0xd2, 0x32, 0x44, 0x90, 0x73, 0x18, 0xa9, 0x21, 0x2a, 0x08, 0x1c, - 0xf5, 0x0b, 0x79, 0xa4, 0x46, 0xc4, 0x90, 0x7c, 0x9d, 0xa7, 0xcc, 0x91, 0xa2, 0x9a, 0x1d, 0x3e, - 0xd4, 0x84, 0xf1, 0xb7, 0x92, 0x23, 0xde, 0x54, 0x96, 0xe4, 0xbb, 0x29, 0x38, 0x6b, 0xd2, 0xba, - 0xfb, 0x80, 0x7a, 0x07, 0x85, 0x00, 0xb1, 0xd4, 0x1a, 0x8f, 0x0e, 0xaf, 0xbb, 0x29, 0x6a, 0x7c, - 0xc5, 0x13, 0x5c, 0x30, 0xb7, 0x48, 0xab, 0x13, 0x58, 0x03, 0x9a, 0x30, 0xa0, 0x4a, 0xe3, 0x9f, - 0xa6, 0x94, 0x09, 0x45, 0xd6, 0xf0, 0xad, 0x01, 0x2e, 0x2c, 0xe2, 0x6a, 0x37, 0xd4, 0x17, 0x25, - 0xdc, 0xa4, 0xbb, 0x4b, 0xcf, 0x0b, 0xcf, 0xa8, 0x13, 0xa1, 0xc8, 0xc5, 0xde, 0x20, 0xe0, 0x40, - 0xf2, 0x45, 0xc8, 0xe2, 0x50, 0x1d, 0xfd, 0xa6, 0x9a, 0xdc, 0xb8, 0xb2, 0x6c, 0x8c, 0xb0, 0xd5, - 0x48, 0x49, 0x3e, 0x23, 0x42, 0x07, 0x32, 0xda, 0x03, 0xca, 0x0c, 0xc4, 0xda, 0x11, 0xee, 0x58, - 0x51, 0x90, 0xa5, 0x22, 0xad, 0x7f, 0x29, 0x0d, 0xf9, 0xf8, 0x34, 0x26, 0xef, 0xc1, 0xa4, 0xcc, - 0xf8, 0xb3, 0x6c, 0x8b, 0x3c, 0x7e, 0x93, 0x22, 0x8f, 0x9e, 0x80, 0x5b, 0xfb, 0xb6, 0xf6, 0x52, - 0x9e, 0x46, 0xc0, 0xb6, 0xf7, 0x0d, 0x11, 0xbb, 0xaf, 0x4c, 0xa0, 0xc0, 0x0d, 0x3a, 0xb1, 0x67, - 0x3e, 0x25, 0x1a, 0x79, 0x03, 0x32, 0xab, 0xb7, 0x0b, 0xc2, 0xa5, 0x56, 0xae, 0x56, 0xab, 0xb7, - 0x0b, 0x7c, 0xa2, 0x73, 0x9f, 0x06, 0xdd, 0xc3, 0x82, 0xe1, 0x93, 0x15, 0x25, 0x89, 0xd2, 0xa8, - 0x96, 0x88, 0x5c, 0x82, 0xc3, 0x8f, 0x3b, 0x3a, 0x9b, 0x92, 0xfa, 0x8c, 0xa0, 0xf1, 0xab, 0x19, - 0x18, 0x0f, 0xeb, 0x27, 0x04, 0x50, 0x7b, 0x11, 0x5e, 0xb5, 0xf8, 0x37, 0x39, 0x03, 0x39, 0xa9, - 0xb0, 0x08, 0xcf, 0xda, 0x31, 0x5f, 0x28, 0x2b, 0xf3, 0x20, 0x35, 0x13, 0xae, 0xac, 0x98, 0xf2, - 0x27, 0xb9, 0x01, 0xa1, 0xda, 0xd1, 0x4f, 0x3f, 0xc9, 0xb2, 0x01, 0x33, 0x43, 0x34, 0x32, 0x0d, - 0x69, 0x87, 0xc7, 0x65, 0x8f, 0x9b, 0x69, 0xa7, 0x41, 0xde, 0x83, 0x9c, 0xdd, 0x68, 0xd0, 0x86, - 0x65, 0xcb, 0x3b, 0xd2, 0x41, 0x42, 0x93, 0x63, 0xdc, 0xf8, 0xfe, 0x80, 0x54, 0x85, 0x80, 0x14, - 0x60, 0xbc, 0x69, 0x73, 0xaf, 0x87, 0xc6, 0x10, 0x9b, 0x4d, 0xc4, 0x21, 0xc7, 0xc8, 0x36, 0x7d, - 0xda, 0x20, 0xaf, 0x40, 0x96, 0x8d, 0xa6, 0xd8, 0x5d, 0xc2, 0x47, 0x11, 0xd7, 0x37, 0xaa, 0xbc, - 0xc3, 0x96, 0x9f, 0x33, 0x11, 0x81, 0xbc, 0x04, 0x99, 0xee, 0xe2, 0xae, 0xd8, 0x37, 0xf2, 0x51, - 0x42, 0xb3, 0x10, 0x8d, 0x15, 0x93, 0x9b, 0x90, 0x7b, 0xa8, 0xe7, 0xc2, 0x3a, 0x19, 0x1b, 0xc6, - 0x10, 0x3f, 0x44, 0x5c, 0xca, 0xc1, 0x28, 0xdf, 0x23, 0x8c, 0xf3, 0x00, 0x51, 0xd5, 0xbd, 0x0e, - 0xd0, 0xc6, 0x57, 0x61, 0x3c, 0xac, 0x92, 0xbc, 0x00, 0x70, 0x9f, 0x1e, 0x58, 0xfb, 0x76, 0xbb, - 0xd1, 0xe4, 0xea, 0xeb, 0xa4, 0x39, 0x7e, 0x9f, 0x1e, 0x2c, 0x23, 0x80, 0x9c, 0x86, 0xb1, 0x0e, - 0x1b, 0x55, 0xf9, 0x48, 0xad, 0x39, 0xda, 0xe9, 0xee, 0x30, 0x09, 0x9d, 0x87, 0x31, 0x34, 0xee, - 0x88, 0x89, 0x36, 0x65, 0xca, 0x9f, 0xc6, 0x7f, 0x95, 0xc6, 0x9c, 0xaa, 0x4a, 0x3b, 0xc9, 0x45, - 0x98, 0xaa, 0x7b, 0x14, 0xb7, 0x23, 0x7c, 0xe1, 0x58, 0xd4, 0x33, 0x19, 0x01, 0x2b, 0x0d, 0x72, - 0x09, 0x66, 0xa2, 0x57, 0x73, 0xad, 0xfa, 0x8e, 0x48, 0x5c, 0x37, 0x69, 0x4e, 0x75, 0xe4, 0xb3, - 0xb9, 0xc5, 0x1d, 0xcc, 0x27, 0x90, 0x57, 0xf3, 0x06, 0x05, 0xe1, 0xdb, 0x38, 0xe6, 0x8c, 0x02, - 0x47, 0xd7, 0x87, 0x53, 0x30, 0x6a, 0xdb, 0x7b, 0x5d, 0x87, 0xc7, 0x36, 0x4f, 0x9a, 0xe2, 0x17, - 0x79, 0x15, 0x66, 0x7d, 0x67, 0xaf, 0x6d, 0x07, 0x5d, 0x4f, 0x24, 0xb5, 0xa5, 0x1e, 0x8a, 0xd4, - 0x94, 0x99, 0x0f, 0x0b, 0x8a, 0x1c, 0x4e, 0x5e, 0x07, 0xa2, 0xd6, 0xe7, 0xee, 0x7c, 0x44, 0xeb, - 0x5c, 0xd4, 0x26, 0xcd, 0x59, 0xa5, 0x64, 0x1d, 0x0b, 0xc8, 0x8b, 0x30, 0xe9, 0x51, 0x1f, 0x15, - 0x3c, 0xec, 0x36, 0x4c, 0x39, 0x6e, 0x4e, 0x48, 0x18, 0xeb, 0xbb, 0xcb, 0x90, 0x57, 0xba, 0x03, - 0x53, 0x33, 0xf1, 0xac, 0x6d, 0xe6, 0x74, 0x04, 0x37, 0x3b, 0x95, 0x86, 0xb1, 0x04, 0xb3, 0x3d, - 0x33, 0x97, 0xbc, 0xce, 0x4f, 0x15, 0x62, 0x27, 0x9f, 0xe4, 0x87, 0x28, 0xf4, 0xd9, 0xd1, 0x36, - 0x71, 0x81, 0x64, 0xb4, 0x61, 0x52, 0x5d, 0x89, 0x8f, 0x48, 0x1e, 0x78, 0x0a, 0xe3, 0xff, 0xf8, - 0x32, 0x35, 0xfa, 0xf8, 0x70, 0x21, 0xed, 0x34, 0x30, 0xea, 0xef, 0x32, 0xe4, 0xa4, 0x3e, 0x21, - 0x4e, 0x1c, 0x68, 0x9c, 0x13, 0x8a, 0xec, 0x81, 0x19, 0x96, 0x1a, 0xaf, 0xc0, 0x98, 0x58, 0x6c, - 0x07, 0x9b, 0xe4, 0x8c, 0x9f, 0x4c, 0xc3, 0x8c, 0x49, 0xd9, 0x52, 0x40, 0x79, 0xc6, 0xd0, 0x4f, - 0xd9, 0x4b, 0xc3, 0xda, 0xb7, 0x0d, 0xc8, 0xd5, 0xf9, 0xeb, 0x29, 0x38, 0x91, 0x80, 0xfb, 0xb1, - 0xde, 0x7d, 0xb8, 0x05, 0xe3, 0x25, 0xc7, 0x6e, 0x16, 0x1a, 0x8d, 0x30, 0x8e, 0x11, 0xb5, 0xd0, - 0x06, 0x93, 0x34, 0x9b, 0x41, 0xd5, 0x6d, 0x37, 0x44, 0x25, 0x57, 0x85, 0x50, 0x44, 0x8f, 0x4c, - 0xc9, 0xb7, 0x8c, 0x81, 0xb7, 0x29, 0x7a, 0xc9, 0x18, 0x93, 0xf7, 0x70, 0x60, 0xe4, 0xb3, 0xf9, - 0xcc, 0x0e, 0x5d, 0x72, 0xf2, 0x9e, 0xf8, 0xe7, 0x0d, 0x75, 0xdc, 0xfd, 0x4e, 0x1a, 0x4e, 0x25, - 0x13, 0x7e, 0xdc, 0x27, 0x3c, 0x30, 0x51, 0xaa, 0xf2, 0x5c, 0x34, 0x3e, 0xe1, 0xc1, 0xb3, 0xaa, - 0x22, 0x7e, 0x84, 0x40, 0x76, 0x61, 0x6a, 0xc5, 0xf6, 0x83, 0x65, 0x6a, 0x7b, 0xc1, 0x0e, 0xb5, - 0x83, 0x21, 0x74, 0xdd, 0x97, 0xc4, 0xd7, 0xcc, 0xe3, 0xf6, 0xb7, 0x2f, 0x29, 0x63, 0xaa, 0xa0, - 0xce, 0x36, 0x14, 0x94, 0xec, 0x10, 0x82, 0xf2, 0x0d, 0x98, 0xa9, 0xd1, 0x96, 0xdd, 0xd9, 0x77, - 0x3d, 0x2a, 0x6e, 0x11, 0xae, 0xc1, 0x54, 0x08, 0x4a, 0x94, 0x16, 0xbd, 0x58, 0xc3, 0x57, 0x3a, - 0x22, 0x5a, 0x4a, 0xf4, 0x62, 0xe3, 0x2f, 0xa7, 0xe1, 0x74, 0xa1, 0x2e, 0x9c, 0x0a, 0x44, 0x81, - 0xf4, 0x7d, 0xfa, 0x84, 0xeb, 0x26, 0xd7, 0x61, 0x7c, 0xd5, 0x7e, 0xb4, 0x42, 0x6d, 0x9f, 0xfa, - 0x22, 0x81, 0x3a, 0x57, 0xd4, 0xec, 0x47, 0xd1, 0x5d, 0xbb, 0x19, 0xe1, 0xa8, 0x87, 0xdc, 0xec, - 0x13, 0x1e, 0x72, 0x0d, 0x18, 0x5d, 0x76, 0x9b, 0x0d, 0xb1, 0x8d, 0x89, 0x1b, 0x9c, 0x7d, 0x84, - 0x98, 0xa2, 0xc4, 0xf8, 0xc3, 0x14, 0x4c, 0x87, 0x2d, 0xc6, 0x26, 0x7c, 0xe2, 0x5d, 0x72, 0x09, - 0xc6, 0xb0, 0xa2, 0x4a, 0x49, 0xdd, 0x34, 0x9a, 0x0c, 0x64, 0x39, 0x0d, 0x53, 0x16, 0xaa, 0x3d, - 0x31, 0xf2, 0x64, 0x3d, 0x61, 0xfc, 0x87, 0x78, 0x39, 0xa4, 0x7e, 0x25, 0xdb, 0x89, 0x94, 0x86, - 0xa4, 0x86, 0x6c, 0x48, 0xfa, 0xa9, 0x0d, 0x49, 0xa6, 0xef, 0x90, 0x7c, 0x2b, 0x0d, 0x13, 0x61, - 0x63, 0x3f, 0x65, 0x59, 0xef, 0xc2, 0xef, 0x1a, 0x2a, 0x0e, 0xb6, 0xa6, 0xac, 0x15, 0x22, 0xdc, - 0xf4, 0x8b, 0x30, 0x2a, 0x26, 0x53, 0x2a, 0xe6, 0x03, 0x14, 0x1b, 0xdd, 0xa5, 0x69, 0xc1, 0x7a, - 0x14, 0x07, 0xd4, 0x37, 0x05, 0x1d, 0x06, 0x1a, 0x6f, 0xd3, 0x1d, 0x71, 0x57, 0xf8, 0xcc, 0xee, - 0x51, 0xc9, 0x81, 0xc6, 0xd1, 0x87, 0x0d, 0xb5, 0x3b, 0x1d, 0x8e, 0x40, 0x3e, 0x4e, 0x72, 0x74, - 0x5e, 0xc1, 0x6a, 0x77, 0x87, 0x6b, 0xe1, 0x3c, 0xaf, 0x60, 0xa7, 0xbb, 0x63, 0x32, 0x18, 0xb9, - 0x04, 0xd9, 0xaa, 0xe7, 0x3c, 0xc0, 0xaf, 0x9e, 0xe4, 0x77, 0xd7, 0x1d, 0xcf, 0x79, 0xa0, 0xde, - 0x5d, 0xb3, 0x72, 0x3c, 0xfa, 0xae, 0xd4, 0x30, 0x78, 0x0b, 0x55, 0x70, 0x71, 0xf4, 0x6d, 0xfa, - 0xf1, 0x5c, 0xca, 0x12, 0x8d, 0x6d, 0x95, 0x4b, 0xd4, 0xf6, 0x44, 0x0e, 0x3c, 0xb1, 0x9c, 0xe1, - 0x56, 0xb9, 0x83, 0x60, 0xfe, 0x8c, 0x98, 0xa9, 0x22, 0x91, 0x26, 0x10, 0xe5, 0xa7, 0x9c, 0xc0, - 0x47, 0x9f, 0x06, 0x2f, 0x48, 0xab, 0x9f, 0xca, 0xda, 0x52, 0x67, 0x73, 0x02, 0xdf, 0xa7, 0x69, - 0x9b, 0xac, 0x8a, 0x8c, 0x28, 0x68, 0xf2, 0xc8, 0x1d, 0xc9, 0x4c, 0x46, 0x37, 0x02, 0xcf, 0x98, - 0x12, 0x1a, 0x3e, 0x22, 0x26, 0xe4, 0x5d, 0x98, 0x50, 0x43, 0xf2, 0x78, 0xe0, 0xd8, 0x39, 0x9e, - 0xc8, 0xa3, 0xcf, 0x4b, 0x16, 0x2a, 0x01, 0xd9, 0x81, 0xd3, 0x45, 0xb7, 0xed, 0x77, 0x5b, 0xb4, - 0xa1, 0xdd, 0x65, 0x57, 0x4a, 0x78, 0x14, 0x1d, 0xe7, 0xf1, 0x3d, 0x75, 0x81, 0x22, 0x22, 0xc0, - 0xa4, 0x83, 0xa5, 0x7e, 0x00, 0xe9, 0xc7, 0x88, 0x6c, 0xc0, 0x44, 0xad, 0xb0, 0xba, 0x22, 0xc3, - 0xaa, 0x26, 0xf4, 0x65, 0x23, 0x2a, 0x29, 0xb1, 0x89, 0xc1, 0x33, 0x0b, 0xd8, 0xad, 0xa6, 0xf4, - 0xef, 0x53, 0xed, 0x94, 0x0a, 0xb2, 0xf1, 0x19, 0x55, 0xbe, 0x85, 0xba, 0x31, 0x50, 0xbe, 0x8d, - 0xff, 0x76, 0x14, 0x66, 0x62, 0xd5, 0x89, 0xf3, 0x4f, 0xaa, 0xe7, 0xfc, 0x53, 0x03, 0xe0, 0x46, - 0xaf, 0x21, 0xad, 0x53, 0xd2, 0x35, 0x7c, 0x42, 0x04, 0x56, 0x84, 0x63, 0xa5, 0xb0, 0x61, 0x4c, - 0xb9, 0x24, 0x0c, 0x69, 0x9d, 0x0c, 0x99, 0x72, 0x61, 0x52, 0x98, 0x46, 0x6c, 0xc8, 0x02, 0x8c, - 0x60, 0xc6, 0x17, 0xd5, 0x33, 0xdf, 0x61, 0x00, 0x93, 0xc3, 0xc9, 0x45, 0x18, 0x65, 0x9b, 0x73, - 0xa5, 0x24, 0x26, 0x17, 0xae, 0x59, 0x6c, 0xf7, 0x66, 0x3b, 0xa1, 0x28, 0x22, 0xb7, 0x60, 0x92, - 0xff, 0x25, 0x42, 0x43, 0x47, 0x75, 0x27, 0x15, 0xcb, 0x69, 0xc8, 0xe8, 0x50, 0x0d, 0x8f, 0x69, - 0xad, 0xb5, 0xee, 0x8e, 0x78, 0xb3, 0x74, 0x2c, 0xd2, 0x5a, 0x7d, 0x0e, 0xc4, 0x87, 0xe7, 0x42, - 0x04, 0xb6, 0x47, 0x0a, 0xff, 0xb8, 0x1c, 0x9e, 0x55, 0x70, 0x8f, 0xe4, 0x7e, 0x71, 0xa6, 0x28, - 0x21, 0x57, 0xb8, 0xfd, 0x19, 0xd5, 0x0d, 0x9e, 0x93, 0x1c, 0x2d, 0xc6, 0x78, 0xe0, 0x45, 0x9d, - 0x23, 0x2c, 0x66, 0x95, 0xb3, 0xbf, 0xcb, 0x2d, 0xdb, 0x69, 0x0a, 0x71, 0xc5, 0xca, 0x11, 0x97, - 0x32, 0xa8, 0x19, 0x21, 0x90, 0xb7, 0x61, 0x9a, 0xfd, 0x28, 0xba, 0xad, 0x96, 0xdb, 0x46, 0xf6, - 0x13, 0x51, 0x10, 0x3f, 0x92, 0xd4, 0xb1, 0x88, 0xd7, 0x12, 0xc3, 0x65, 0xeb, 0x14, 0xde, 0x6d, - 0x75, 0xb9, 0x65, 0x7c, 0x32, 0x5a, 0xa7, 0x90, 0xd4, 0xe7, 0x70, 0x53, 0x45, 0x22, 0x6f, 0xc2, - 0x14, 0xfb, 0x79, 0xc7, 0x79, 0x40, 0x79, 0x85, 0x53, 0xd1, 0x35, 0x23, 0x52, 0xed, 0xb1, 0x12, - 0x5e, 0x9f, 0x8e, 0x49, 0xde, 0x87, 0x93, 0xc8, 0xa9, 0xee, 0x76, 0x68, 0xa3, 0xb0, 0xbb, 0xeb, - 0x34, 0x1d, 0xee, 0x35, 0xc0, 0x83, 0x20, 0xd1, 0x1a, 0xc9, 0x2b, 0x46, 0x0c, 0xcb, 0x8e, 0x50, - 0xcc, 0x64, 0x4a, 0xb2, 0x0d, 0xf9, 0x62, 0xd7, 0x0f, 0xdc, 0x56, 0x21, 0x08, 0x3c, 0x67, 0xa7, - 0x1b, 0x50, 0x7f, 0x7e, 0x46, 0x0b, 0x15, 0x64, 0x93, 0x23, 0x2c, 0xe4, 0x76, 0x86, 0x3a, 0x52, - 0x58, 0x76, 0x48, 0x62, 0xf6, 0x30, 0x31, 0xfe, 0x9b, 0x14, 0x4c, 0x69, 0xa4, 0xe4, 0x0d, 0x98, - 0xbc, 0xed, 0x39, 0xb4, 0xdd, 0x68, 0x1e, 0x28, 0x07, 0x20, 0xd4, 0x8e, 0x77, 0x05, 0x9c, 0x7f, - 0xb5, 0x86, 0x16, 0xda, 0x0f, 0xd2, 0x89, 0x2e, 0x3d, 0xd7, 0x79, 0x80, 0x88, 0x10, 0xd0, 0x4c, - 0x14, 0xbb, 0x8c, 0x02, 0x2a, 0xa4, 0x53, 0x41, 0x21, 0xef, 0xc0, 0x28, 0xbf, 0x05, 0x13, 0xfe, - 0x25, 0x67, 0x92, 0x3e, 0x93, 0x07, 0x23, 0xa1, 0x20, 0xe2, 0xe5, 0xbb, 0x6f, 0x0a, 0x22, 0xe3, - 0xe7, 0x53, 0x40, 0x7a, 0x51, 0x8f, 0xb0, 0xa7, 0x1c, 0x79, 0xa9, 0xff, 0xc5, 0x70, 0x36, 0x66, - 0x34, 0xeb, 0x21, 0xab, 0x89, 0x17, 0xf0, 0x8e, 0x17, 0xb3, 0x4e, 0x35, 0xf0, 0xf0, 0x62, 0xe3, - 0xcf, 0xa7, 0x01, 0x22, 0x6c, 0xf2, 0x79, 0x9e, 0x5a, 0xf9, 0xfd, 0xae, 0xdd, 0x74, 0x76, 0x1d, - 0x3d, 0x87, 0x0e, 0x32, 0xf9, 0x86, 0x2c, 0x31, 0x75, 0x44, 0xf2, 0x1e, 0xcc, 0xd4, 0xaa, 0x3a, - 0xad, 0x92, 0x46, 0xd6, 0xef, 0x58, 0x31, 0xf2, 0x38, 0x36, 0xfa, 0x91, 0xa9, 0xa3, 0xc1, 0xfd, - 0xc8, 0xf8, 0x40, 0x88, 0x12, 0xb6, 0xb0, 0xd4, 0xaa, 0xf8, 0x56, 0x68, 0x83, 0x36, 0x2a, 0x25, - 0xb1, 0x4a, 0x61, 0xeb, 0xfc, 0x8e, 0xd5, 0xe1, 0x05, 0xf8, 0x40, 0xa5, 0x86, 0x17, 0x75, 0xe4, - 0x48, 0x9f, 0x80, 0xa3, 0x5f, 0x40, 0x73, 0x52, 0xcb, 0x0d, 0xa8, 0x38, 0x45, 0x3f, 0xb3, 0xfa, - 0x74, 0x74, 0x85, 0x3a, 0xa2, 0xc5, 0x51, 0x68, 0x5f, 0xc7, 0x31, 0xb6, 0x6e, 0x46, 0xca, 0x2f, - 0xbf, 0x4c, 0x95, 0x57, 0xa8, 0x8a, 0xea, 0xf7, 0xd7, 0x53, 0x70, 0x32, 0x91, 0x96, 0x5c, 0x03, - 0x88, 0x6c, 0x15, 0xa2, 0x97, 0xf8, 0x3b, 0xa1, 0x21, 0xd4, 0x54, 0x30, 0xc8, 0x57, 0xe2, 0x56, - 0x86, 0xa3, 0x37, 0xc2, 0xb3, 0x32, 0x23, 0x83, 0x6e, 0x65, 0x48, 0xb0, 0x2d, 0x18, 0xbf, 0x9e, - 0x81, 0x59, 0x25, 0x20, 0x98, 0xb7, 0xf5, 0x08, 0xbf, 0xbe, 0xfb, 0xf2, 0x4d, 0x5a, 0xe1, 0xcc, - 0x9d, 0xd6, 0xde, 0xa5, 0xee, 0xe1, 0x76, 0x4d, 0x45, 0xe6, 0x69, 0x48, 0x70, 0xe9, 0x14, 0x4f, - 0xd4, 0xf6, 0x38, 0x75, 0x6b, 0xcc, 0x89, 0x0f, 0x53, 0xa5, 0x83, 0xb6, 0xdd, 0x0a, 0x6b, 0xe3, - 0xd7, 0xfe, 0xaf, 0xf6, 0xad, 0x4d, 0xc3, 0xe6, 0xd5, 0x49, 0x9d, 0x73, 0xbe, 0xc1, 0xcb, 0x12, - 0xc2, 0x95, 0x34, 0xaa, 0xb3, 0xef, 0xc1, 0x6c, 0x4f, 0xa3, 0x8f, 0x95, 0x11, 0x65, 0x1b, 0x48, - 0x6f, 0x3b, 0x12, 0x38, 0xbc, 0xaa, 0xe7, 0xdb, 0x39, 0x19, 0x5e, 0xe3, 0xe1, 0x83, 0x57, 0xdc, - 0x89, 0x60, 0x51, 0xcd, 0x97, 0xf2, 0x0b, 0x69, 0x35, 0x1a, 0xe1, 0x59, 0x9f, 0x75, 0x5f, 0xd4, - 0x4e, 0x59, 0xe7, 0xfb, 0x8d, 0xe9, 0x50, 0xa7, 0xd9, 0x1f, 0x64, 0xe0, 0x74, 0x1f, 0x4a, 0x72, - 0x10, 0x17, 0x22, 0x7e, 0xba, 0xbd, 0x31, 0xb8, 0xc2, 0xa7, 0x21, 0x4a, 0xe4, 0xf3, 0x3c, 0x1e, - 0xb1, 0x8e, 0x0f, 0x41, 0x89, 0x73, 0x1d, 0x7f, 0xe3, 0x2f, 0x84, 0xc6, 0x03, 0x11, 0x39, 0x94, - 0xbc, 0x07, 0x23, 0x18, 0x8a, 0x12, 0x4b, 0x48, 0xc2, 0x30, 0x10, 0xae, 0x64, 0x6f, 0x61, 0x3f, - 0xb5, 0xec, 0x2d, 0xf8, 0xe8, 0xfa, 0xe7, 0x20, 0x53, 0xd8, 0xae, 0x89, 0x71, 0x99, 0x56, 0xc9, - 0xb7, 0x6b, 0x51, 0x26, 0x4d, 0x5b, 0x4b, 0x79, 0xc9, 0x28, 0x18, 0xe1, 0x9d, 0x62, 0x55, 0x8c, - 0x8a, 0x4a, 0x78, 0xa7, 0x58, 0x8d, 0x08, 0xf7, 0xea, 0x5a, 0x80, 0xf7, 0x9d, 0x62, 0xf5, 0x93, - 0x13, 0xfb, 0x6f, 0xa7, 0x79, 0x10, 0x25, 0xff, 0xb0, 0xf7, 0x60, 0x52, 0xcb, 0x87, 0x96, 0x8a, - 0xf4, 0xb1, 0x30, 0x97, 0x5b, 0xcc, 0x4f, 0x42, 0x23, 0x90, 0x39, 0x69, 0xc3, 0xe7, 0xdb, 0x55, - 0x37, 0x07, 0xfd, 0xc9, 0xf7, 0x78, 0x4e, 0xda, 0x90, 0x84, 0xdc, 0x84, 0xdc, 0x06, 0x6d, 0xdb, - 0xed, 0x20, 0x34, 0xb4, 0xa1, 0x93, 0x5f, 0x80, 0x30, 0x5d, 0x6b, 0x08, 0x11, 0xf1, 0xb1, 0x7d, - 0xe5, 0xf1, 0xf9, 0x70, 0x2f, 0xe6, 0x4e, 0xac, 0x4a, 0x89, 0xce, 0x20, 0x46, 0x64, 0xfc, 0x42, - 0x0a, 0xc6, 0xc4, 0x40, 0x2a, 0x2f, 0x1e, 0xa7, 0x86, 0x78, 0xf1, 0xf8, 0x16, 0x8c, 0x8b, 0x78, - 0xa0, 0xf0, 0xca, 0x89, 0xbf, 0x7e, 0xc7, 0x81, 0x7a, 0xb5, 0x11, 0xea, 0xb0, 0x8e, 0xf3, 0xc6, - 0x5f, 0x15, 0x2d, 0xbb, 0x53, 0xac, 0x92, 0x45, 0xc8, 0xc9, 0x87, 0xe3, 0x45, 0xdb, 0x70, 0xd9, - 0x91, 0x2f, 0xcc, 0xab, 0x1d, 0x24, 0xf1, 0x58, 0xfb, 0xc2, 0x47, 0xea, 0xd5, 0xf6, 0x45, 0x0f, - 0xda, 0xab, 0xed, 0x0b, 0x51, 0x87, 0x6e, 0x1f, 0x4d, 0x58, 0x24, 0xb6, 0x6e, 0xae, 0x38, 0x7e, - 0x40, 0xee, 0xaa, 0x01, 0x09, 0xa2, 0x48, 0xae, 0x14, 0x67, 0xfb, 0xad, 0x14, 0x5b, 0x37, 0xcd, - 0x04, 0x2a, 0xbc, 0xaf, 0x89, 0xc0, 0x35, 0xea, 0x3d, 0x78, 0x86, 0x57, 0xe9, 0xe4, 0xfb, 0x9a, - 0xf8, 0xe7, 0x0d, 0xb5, 0x48, 0xff, 0x93, 0x34, 0x9c, 0x4a, 0x26, 0x54, 0xbf, 0x25, 0x35, 0xe0, - 0x5b, 0x2e, 0x43, 0x6e, 0xd9, 0xf5, 0x03, 0xc5, 0x35, 0x0a, 0xcd, 0xca, 0xfb, 0x02, 0x66, 0x86, - 0xa5, 0xec, 0xcc, 0xcd, 0xfe, 0x0e, 0xa7, 0x27, 0xf2, 0xc3, 0xd0, 0x41, 0x76, 0xe6, 0xe6, 0x45, - 0xe4, 0x0e, 0xe4, 0x4c, 0xe1, 0x10, 0x1f, 0xeb, 0x1a, 0x09, 0x0e, 0xb5, 0x29, 0xe2, 0x09, 0x88, - 0x96, 0x96, 0x4e, 0xc0, 0x48, 0x01, 0xc6, 0xc4, 0xe8, 0xc7, 0xae, 0x24, 0x13, 0x44, 0x46, 0xcf, - 0x14, 0x29, 0xe9, 0xd8, 0x8a, 0x82, 0x97, 0x4b, 0x95, 0x92, 0xf4, 0x6d, 0xc7, 0x15, 0x85, 0x5f, - 0x3e, 0xe9, 0x5e, 0x68, 0x21, 0xa2, 0xf1, 0x93, 0x69, 0x80, 0x6d, 0xba, 0xf3, 0x6c, 0xbf, 0xe1, - 0xf2, 0x39, 0x4d, 0xc2, 0x14, 0xcf, 0x8b, 0xe1, 0x9f, 0x70, 0x59, 0x47, 0x0f, 0x88, 0xe1, 0x1f, - 0x70, 0x59, 0x80, 0x11, 0x6e, 0xed, 0x54, 0x0e, 0x89, 0xdc, 0xcc, 0xc9, 0xe1, 0xc6, 0x0e, 0xcc, - 0xdd, 0xa1, 0x41, 0x64, 0xde, 0x92, 0x57, 0x5a, 0x83, 0xd9, 0xbe, 0x06, 0xe3, 0x02, 0x3f, 0x5c, - 0xbf, 0xb8, 0x2d, 0x46, 0x44, 0xe3, 0xa2, 0x2d, 0x46, 0x22, 0xb0, 0xd5, 0xa8, 0x44, 0x9b, 0x34, - 0xa0, 0x9f, 0x6c, 0x35, 0x35, 0x20, 0xfc, 0x53, 0xf0, 0xcb, 0x86, 0xab, 0xe1, 0xc8, 0xfe, 0xd9, - 0x82, 0x93, 0x61, 0xdb, 0x9f, 0x26, 0xdf, 0xeb, 0xec, 0x48, 0x29, 0x92, 0x2c, 0x46, 0x1c, 0x07, - 0xf8, 0x34, 0x3c, 0x82, 0xb3, 0x92, 0x60, 0xdb, 0x09, 0x5d, 0xc8, 0x86, 0xa2, 0x25, 0x6f, 0xc3, - 0x84, 0x42, 0x23, 0xd2, 0xd8, 0xa2, 0xf9, 0xf3, 0xa1, 0x13, 0xec, 0x5b, 0x3e, 0x87, 0xab, 0xe6, - 0x4f, 0x05, 0xdd, 0xf8, 0x10, 0x9e, 0x0f, 0xdd, 0xf7, 0x13, 0xaa, 0x8e, 0x31, 0x4f, 0x1d, 0x8f, - 0xf9, 0x5a, 0xf4, 0x59, 0x95, 0x76, 0x18, 0xc1, 0x26, 0x79, 0x13, 0xf5, 0xb3, 0xc4, 0xc7, 0x9c, - 0xeb, 0x89, 0x89, 0x53, 0x42, 0xdf, 0x8c, 0xb7, 0x94, 0xc6, 0x26, 0x30, 0xd4, 0x88, 0x53, 0x71, - 0xe2, 0x9f, 0x4c, 0xc3, 0xcc, 0x7a, 0xa5, 0x54, 0x0c, 0xbd, 0x5a, 0x3e, 0x65, 0x0f, 0xcc, 0x68, - 0xdf, 0xd6, 0x7f, 0xbd, 0x31, 0x36, 0xe1, 0x44, 0xac, 0x1b, 0x50, 0x75, 0x78, 0x97, 0xbb, 0xd9, - 0x87, 0x60, 0xa9, 0x36, 0x9c, 0x4a, 0x62, 0xbf, 0x75, 0xd3, 0x8c, 0x61, 0x1b, 0x7f, 0x2b, 0x17, - 0xe3, 0x2b, 0x96, 0xb0, 0xd7, 0x60, 0xbc, 0xe2, 0xfb, 0x5d, 0xea, 0x6d, 0x9a, 0x2b, 0xaa, 0xa9, - 0xc0, 0x41, 0xa0, 0xd5, 0xf5, 0x9a, 0x66, 0x84, 0x40, 0xae, 0x40, 0x4e, 0x24, 0xf6, 0x93, 0x6b, - 0x02, 0x5a, 0x6d, 0xc3, 0xbc, 0x80, 0x66, 0x58, 0x4c, 0xde, 0x80, 0x49, 0xfe, 0x37, 0x97, 0x36, - 0xd1, 0xe1, 0x68, 0x1c, 0x14, 0xe8, 0x5c, 0x3a, 0x4d, 0x0d, 0x8d, 0x5c, 0x85, 0x4c, 0xa1, 0x68, - 0xaa, 0x6f, 0x7f, 0xdb, 0x75, 0xcf, 0xe2, 0x36, 0x3b, 0xed, 0x10, 0x51, 0x34, 0x99, 0xf6, 0x27, - 0x4c, 0x49, 0x9e, 0xb0, 0x64, 0xa3, 0x04, 0x48, 0x6b, 0x53, 0x6c, 0x33, 0x43, 0x18, 0xb9, 0x0e, - 0x63, 0x25, 0xc7, 0xef, 0x34, 0xed, 0x03, 0x61, 0xc7, 0xe6, 0x69, 0xe7, 0x39, 0x48, 0x95, 0x19, - 0x81, 0x45, 0xae, 0xc0, 0x08, 0x1a, 0x59, 0x85, 0x2d, 0x9b, 0xe7, 0x36, 0x67, 0x00, 0x2d, 0xb7, - 0x39, 0x03, 0x60, 0xde, 0x58, 0x9e, 0xfe, 0x6e, 0x5c, 0xc9, 0x1b, 0x1b, 0x4f, 0x7b, 0x27, 0x70, - 0x7a, 0xe3, 0xb2, 0xe0, 0x69, 0xc6, 0x65, 0xed, 0xc0, 0xe9, 0x3b, 0x68, 0xbd, 0xd1, 0x43, 0xf4, - 0x37, 0xcd, 0x8a, 0xb0, 0x87, 0xe3, 0x8d, 0x0f, 0x37, 0xf0, 0xc4, 0xa3, 0xfc, 0xad, 0xae, 0xa7, - 0xbe, 0xa2, 0xd2, 0x8f, 0x11, 0xf9, 0x12, 0xcc, 0x25, 0x15, 0x09, 0xab, 0x39, 0x06, 0xa3, 0x27, - 0x57, 0xa0, 0x06, 0xa3, 0x27, 0x71, 0x20, 0x2b, 0x90, 0xe7, 0xf0, 0x42, 0xa3, 0xe5, 0xb4, 0xb9, - 0xe5, 0x7f, 0x2a, 0x7a, 0x01, 0x55, 0x70, 0xb5, 0x59, 0x21, 0xbf, 0x01, 0xd0, 0x02, 0x2e, 0x62, - 0x94, 0xe4, 0x67, 0x53, 0xec, 0x34, 0xc7, 0x93, 0xc5, 0x6d, 0x9a, 0x2b, 0xbe, 0x48, 0x64, 0x72, - 0x2a, 0x8a, 0xa5, 0xa8, 0x05, 0x9e, 0xd3, 0xde, 0x13, 0xc1, 0x14, 0x1b, 0x22, 0x98, 0xe2, 0xed, - 0x8f, 0x15, 0x4c, 0xc1, 0x59, 0xf9, 0x8f, 0x0f, 0x17, 0x26, 0x3d, 0x51, 0x27, 0xce, 0x22, 0xad, - 0x05, 0xf8, 0x8c, 0x62, 0xb3, 0xe9, 0x3e, 0xdc, 0x6c, 0x3f, 0xa0, 0x9e, 0xb3, 0xeb, 0xd0, 0x06, - 0xff, 0xc8, 0x19, 0x5c, 0xc1, 0xf9, 0x33, 0x8a, 0xf8, 0xac, 0x66, 0x37, 0x44, 0xe8, 0xf9, 0xd0, - 0x44, 0x0e, 0xec, 0xe0, 0x29, 0x1d, 0xf6, 0x79, 0x54, 0x5c, 0x3e, 0x3a, 0x78, 0x4a, 0xef, 0x7e, - 0x0b, 0xc5, 0x48, 0x15, 0x1e, 0x8d, 0x44, 0x78, 0x07, 0xff, 0xa5, 0x71, 0xbe, 0x22, 0x17, 0xba, - 0xc1, 0xbe, 0x5c, 0xc3, 0x17, 0x93, 0x82, 0x0e, 0xb8, 0xcb, 0x93, 0x12, 0x74, 0xa0, 0x87, 0x1a, - 0x48, 0x53, 0x7a, 0x3a, 0xd1, 0x94, 0xfe, 0x1a, 0x8c, 0xe3, 0xa3, 0xd1, 0xa1, 0x77, 0x77, 0x4e, - 0xd8, 0x2a, 0x19, 0x90, 0x67, 0x45, 0x8b, 0x10, 0xc8, 0x75, 0x00, 0x7c, 0x47, 0x80, 0x6f, 0xf0, - 0x4a, 0x66, 0x53, 0x7c, 0x6e, 0x40, 0xdc, 0x22, 0x2b, 0x28, 0xc8, 0xbe, 0x66, 0xde, 0x56, 0xaf, - 0x9d, 0x39, 0x7b, 0xdf, 0xdb, 0x15, 0xe8, 0x11, 0x02, 0xfb, 0x3c, 0x65, 0x98, 0xc4, 0xa2, 0x92, - 0xef, 0x19, 0x4b, 0x15, 0x09, 0x3d, 0xba, 0xa4, 0x2b, 0x2b, 0xae, 0x29, 0x93, 0xc2, 0xa3, 0x2b, - 0x74, 0x7b, 0x35, 0x23, 0x04, 0xf2, 0x39, 0x18, 0x2b, 0x52, 0x2f, 0xd8, 0xd8, 0x58, 0xc1, 0x9b, - 0x61, 0x9e, 0xfe, 0x33, 0x87, 0xa9, 0x1a, 0x83, 0xa0, 0xf9, 0xc3, 0xc3, 0x85, 0xa9, 0xc0, 0x69, - 0xd1, 0x6b, 0xe1, 0x35, 0xae, 0xc4, 0x26, 0x4b, 0x90, 0xe7, 0x77, 0x8c, 0x91, 0x22, 0x87, 0xcb, - 0x4c, 0x8e, 0x2f, 0x7a, 0xe2, 0x42, 0xf2, 0x21, 0xdd, 0x09, 0x13, 0x55, 0xf6, 0xe0, 0x93, 0xb2, - 0xcc, 0xef, 0xaa, 0x7e, 0x24, 0x44, 0x96, 0x05, 0xb1, 0x30, 0x6b, 0xdf, 0xda, 0x4b, 0x41, 0x0a, - 0x30, 0x55, 0x74, 0x5b, 0x1d, 0x3b, 0x70, 0x30, 0xc1, 0xff, 0x81, 0x58, 0x51, 0xd0, 0x3a, 0x52, - 0x57, 0x0b, 0xf4, 0x37, 0xa0, 0x95, 0x02, 0x72, 0x1b, 0xa6, 0x4d, 0xb7, 0xcb, 0x06, 0x49, 0x1e, - 0x69, 0xf8, 0xa2, 0x81, 0xb1, 0xa0, 0x1e, 0x2b, 0x61, 0x6b, 0x9c, 0x38, 0xbf, 0x68, 0x09, 0x7e, - 0x34, 0x2a, 0xb2, 0x96, 0x60, 0x5b, 0x56, 0x57, 0x0a, 0x35, 0x5d, 0x65, 0x0f, 0xb3, 0x04, 0xb3, - 0xf4, 0x4d, 0x98, 0xa8, 0xd5, 0xd6, 0x37, 0xa8, 0x1f, 0xdc, 0x6e, 0xba, 0x0f, 0x71, 0xa1, 0xc8, - 0x89, 0x2c, 0xd9, 0xbe, 0x6b, 0x05, 0xd4, 0x0f, 0xac, 0xdd, 0xa6, 0xfb, 0xd0, 0x54, 0xb1, 0xc8, - 0xd7, 0x94, 0x47, 0xb1, 0x71, 0xe7, 0x9f, 0x39, 0x72, 0xe7, 0x8f, 0x3d, 0x98, 0xcd, 0xf6, 0xff, - 0xc4, 0x07, 0xb3, 0x19, 0x3a, 0x86, 0x2a, 0xb0, 0xc3, 0x58, 0xa1, 0xd1, 0xf0, 0xa8, 0xef, 0x8b, - 0x19, 0xad, 0x3c, 0xf9, 0x6f, 0xf3, 0x02, 0x2d, 0x54, 0x41, 0x21, 0x20, 0xdf, 0x4a, 0xc1, 0x49, - 0xd5, 0xdb, 0x19, 0x27, 0x4b, 0x8b, 0xb6, 0x03, 0xf1, 0x8c, 0xca, 0xeb, 0xd7, 0xe4, 0x8a, 0x76, - 0x4d, 0x41, 0xbb, 0xf6, 0xe0, 0xc6, 0x35, 0xe5, 0xa5, 0xd6, 0x9a, 0x24, 0x12, 0xd9, 0x40, 0x92, - 0xf8, 0xa9, 0xab, 0x93, 0x9d, 0x40, 0x4a, 0x8a, 0x6c, 0xd3, 0x63, 0xf2, 0x84, 0xbe, 0x0d, 0x95, - 0x2a, 0x26, 0x3c, 0x12, 0xc6, 0x29, 0x21, 0x7d, 0xdc, 0x0b, 0xc2, 0xe9, 0xe8, 0x7b, 0x9b, 0x42, - 0x83, 0xaa, 0x62, 0xad, 0xb0, 0xba, 0x12, 0xe9, 0x3b, 0x9f, 0x2e, 0x17, 0x63, 0xed, 0xdb, 0x06, - 0xb8, 0x18, 0x6f, 0xc2, 0x89, 0x58, 0x37, 0x48, 0x55, 0x51, 0x03, 0xc7, 0x55, 0xc5, 0x18, 0x8d, - 0x19, 0xc3, 0x36, 0x7e, 0x6d, 0x2c, 0xc6, 0x57, 0xb8, 0x15, 0x19, 0x30, 0xca, 0x35, 0x41, 0xf5, - 0x59, 0x40, 0xae, 0x27, 0x9a, 0xa2, 0x84, 0x9c, 0x81, 0x4c, 0xad, 0xb6, 0xae, 0x3e, 0x5a, 0xea, - 0xfb, 0xae, 0xc9, 0x60, 0x6c, 0x84, 0xd0, 0x63, 0x48, 0xc9, 0x3c, 0xc8, 0x96, 0x3d, 0x13, 0xa1, - 0xac, 0xbf, 0xa5, 0x5e, 0x96, 0x8d, 0xfa, 0x5b, 0xe8, 0x65, 0x91, 0x36, 0x56, 0x84, 0xf9, 0x82, - 0xef, 0x53, 0x0f, 0x5f, 0x48, 0xe6, 0x8e, 0x28, 0x9e, 0xd0, 0x1d, 0xc4, 0xea, 0x8e, 0x95, 0xda, - 0x75, 0xdf, 0xec, 0x8b, 0x48, 0x2e, 0x43, 0xae, 0xd0, 0x6d, 0x38, 0xb4, 0x5d, 0xd7, 0x52, 0x52, - 0xd8, 0x02, 0x66, 0x86, 0xa5, 0xe4, 0x7d, 0x38, 0x29, 0x88, 0xa4, 0x02, 0x29, 0x7a, 0x60, 0x2c, - 0x9a, 0x82, 0x52, 0xb7, 0x89, 0x2e, 0x39, 0x79, 0x97, 0x24, 0x53, 0x92, 0x02, 0xe4, 0xcb, 0xe8, - 0x52, 0x5f, 0xa2, 0xdc, 0xde, 0xea, 0x7a, 0xe2, 0x71, 0x77, 0xd4, 0x44, 0xb9, 0xbb, 0xbd, 0xd5, - 0x08, 0x0b, 0xcd, 0x1e, 0x74, 0x72, 0x0f, 0x4e, 0xc4, 0x61, 0x6c, 0x21, 0xe7, 0x4a, 0x27, 0xa6, - 0xbe, 0xea, 0xe1, 0x82, 0x4b, 0x79, 0x12, 0x15, 0xd9, 0x81, 0xd9, 0xe8, 0x92, 0x5f, 0x57, 0x45, - 0xa5, 0x4f, 0x5a, 0x58, 0x2e, 0xd5, 0xd1, 0xe7, 0x85, 0x30, 0x9e, 0x88, 0x1c, 0x06, 0x42, 0x95, - 0xd4, 0xec, 0x65, 0x47, 0x1a, 0x30, 0x5d, 0x73, 0xf6, 0xda, 0x4e, 0x7b, 0xef, 0x1e, 0x3d, 0xa8, - 0xda, 0x8e, 0x27, 0xbc, 0x83, 0xa4, 0xef, 0x5f, 0xc1, 0x3f, 0x68, 0xb5, 0x68, 0xe0, 0xe1, 0x16, - 0xc9, 0xca, 0x31, 0xa2, 0x2e, 0xc5, 0xf6, 0x02, 0x9f, 0xd3, 0x61, 0xf4, 0x48, 0xc7, 0x76, 0xb4, - 0xbd, 0x40, 0xe7, 0xa9, 0x1d, 0x07, 0x26, 0x87, 0x3c, 0x0e, 0x34, 0x61, 0xb6, 0xdc, 0xae, 0x7b, - 0x07, 0x68, 0xf6, 0x96, 0x8d, 0x9b, 0x3a, 0xa2, 0x71, 0x2f, 0x89, 0xc6, 0x9d, 0xb3, 0xa5, 0x84, - 0x25, 0x35, 0xaf, 0x97, 0x31, 0xa9, 0x89, 0x97, 0xec, 0x2b, 0xa5, 0x6a, 0xa5, 0xed, 0x04, 0x0e, - 0x3e, 0xd0, 0xc7, 0xf7, 0x98, 0x97, 0x05, 0xcf, 0x17, 0xb8, 0xda, 0xe7, 0x34, 0x3a, 0x96, 0x23, - 0x51, 0x7a, 0x9e, 0xaa, 0x57, 0xe9, 0x8d, 0xff, 0x34, 0xc7, 0x57, 0x43, 0x55, 0x4d, 0xeb, 0xe7, - 0xef, 0x14, 0x53, 0xdf, 0xd2, 0xc7, 0x51, 0xdf, 0x32, 0x47, 0xab, 0x6f, 0xd9, 0xa3, 0xd4, 0xb7, - 0x98, 0x7e, 0x35, 0x72, 0x6c, 0xfd, 0x6a, 0xf4, 0x18, 0xfa, 0xd5, 0xd8, 0xb1, 0xf4, 0x2b, 0x4d, - 0x51, 0xcc, 0x1d, 0xa5, 0x28, 0xfe, 0x7f, 0xda, 0xd8, 0xb3, 0xaa, 0x8d, 0x25, 0x6d, 0xae, 0xc7, - 0xd2, 0xc6, 0xfa, 0x2b, 0x53, 0xf9, 0x3f, 0x69, 0x65, 0x6a, 0xf6, 0x63, 0x28, 0x53, 0x7f, 0x06, - 0xf2, 0xf1, 0xf5, 0xfd, 0xe8, 0xa4, 0x4b, 0x4f, 0x2d, 0xa3, 0x09, 0xdb, 0x7d, 0xe2, 0xeb, 0x2b, - 0x3b, 0xe4, 0x55, 0x3d, 0xe7, 0x81, 0x1d, 0xd0, 0xe8, 0x61, 0x6c, 0x3c, 0xe4, 0x75, 0x38, 0x14, - 0xe7, 0xbc, 0x82, 0x12, 0xaa, 0x16, 0xe9, 0x24, 0xd5, 0xc2, 0xf8, 0xa9, 0x34, 0xcc, 0xf2, 0x24, - 0x0c, 0xcf, 0xbe, 0x6d, 0xf1, 0x5d, 0x4d, 0x61, 0x94, 0x2e, 0x44, 0xb1, 0xaf, 0x1b, 0x60, 0x5d, - 0xfc, 0x2a, 0x9c, 0xec, 0xe9, 0x0a, 0x54, 0x1a, 0x4b, 0x32, 0xfd, 0x45, 0x8f, 0xda, 0x38, 0x9f, - 0x5c, 0xc9, 0xd6, 0x4d, 0xb3, 0x87, 0xc2, 0xf8, 0x57, 0x99, 0x1e, 0xfe, 0xc2, 0xce, 0xa8, 0x5a, - 0x0e, 0x53, 0xc7, 0xb3, 0x1c, 0xa6, 0x87, 0xb3, 0x1c, 0xc6, 0xf6, 0x96, 0xcc, 0x30, 0x7b, 0xcb, - 0xfb, 0x30, 0xb5, 0x41, 0xed, 0x96, 0xbf, 0xe1, 0x8a, 0xcc, 0xae, 0xdc, 0x85, 0x50, 0x66, 0xb7, - 0x60, 0x65, 0x52, 0xe7, 0x09, 0x5d, 0x21, 0x02, 0x46, 0xc0, 0xd6, 0x43, 0x9e, 0xea, 0xd5, 0xd4, - 0x39, 0xa8, 0x8a, 0xec, 0xc8, 0x00, 0x45, 0xb6, 0x06, 0x93, 0x82, 0x2e, 0xca, 0x34, 0x15, 0x69, - 0x5c, 0xac, 0x08, 0xe1, 0xb2, 0xf6, 0xf0, 0x05, 0x9c, 0xb0, 0x76, 0xae, 0x6c, 0x69, 0x4c, 0x58, - 0x17, 0x94, 0xdb, 0x8d, 0x8e, 0xeb, 0xb4, 0xb1, 0x0b, 0xc6, 0xa2, 0x2e, 0xa0, 0x02, 0xcc, 0xbb, - 0x40, 0x41, 0x22, 0x6f, 0xc3, 0x74, 0xa1, 0x5a, 0x51, 0xc9, 0x72, 0x91, 0xf1, 0xd2, 0xee, 0x38, - 0x96, 0x46, 0x1a, 0xc3, 0x35, 0x7e, 0x6c, 0x5c, 0xce, 0xad, 0x4f, 0xd6, 0x4a, 0xa4, 0xdb, 0x7d, - 0x32, 0xc7, 0xb4, 0xfb, 0x64, 0x8f, 0xda, 0xce, 0x35, 0x1d, 0x63, 0xe4, 0x18, 0x3a, 0xc6, 0xe8, - 0x13, 0xdb, 0x70, 0xc6, 0x8e, 0xa9, 0x35, 0xc4, 0xc4, 0x3c, 0x37, 0x8c, 0x98, 0x27, 0x6a, 0x1a, - 0xe3, 0x4f, 0xae, 0x69, 0xc0, 0xb1, 0x35, 0x0d, 0xe5, 0x0d, 0xe9, 0x89, 0xa1, 0xde, 0x90, 0x4e, - 0x0d, 0xf1, 0x86, 0xf4, 0xa7, 0x4a, 0x7d, 0xf9, 0x7a, 0xb2, 0xfa, 0x32, 0x78, 0xa9, 0xff, 0x7f, - 0xb3, 0x02, 0xe3, 0x61, 0x2f, 0x6f, 0xdb, 0x1e, 0x3b, 0x0b, 0xfa, 0xe4, 0x3a, 0x8c, 0xc9, 0xcc, - 0x32, 0xa9, 0xe8, 0x58, 0xdd, 0x9b, 0x52, 0x46, 0x62, 0xb1, 0x63, 0xa3, 0x24, 0x16, 0xb1, 0xd5, - 0x3c, 0x89, 0x86, 0x80, 0x69, 0x49, 0x34, 0x04, 0xcc, 0xf8, 0x1b, 0x59, 0x39, 0x93, 0xd9, 0xb1, - 0x46, 0xbc, 0xf6, 0xb7, 0xa4, 0x8c, 0x9c, 0xa2, 0x3e, 0xc5, 0xc6, 0x26, 0xe6, 0x33, 0xa4, 0x93, - 0x7c, 0x9c, 0xb4, 0x3c, 0xca, 0x03, 0x0c, 0x99, 0x21, 0x1e, 0x60, 0x78, 0x53, 0x7b, 0xbd, 0x20, - 0x1b, 0xa5, 0xcb, 0x66, 0xd2, 0x3d, 0xf8, 0xdd, 0x82, 0x5b, 0xea, 0x33, 0x03, 0x23, 0x51, 0x18, - 0x3a, 0x52, 0x0e, 0x78, 0x60, 0x20, 0xd4, 0x07, 0x47, 0x8f, 0x93, 0xf0, 0x6a, 0xec, 0x4f, 0x34, - 0xe1, 0x55, 0x59, 0x7b, 0x0c, 0x9a, 0x9b, 0xea, 0x5f, 0xee, 0xfb, 0xd8, 0xb3, 0x16, 0x79, 0xa5, - 0x10, 0x1a, 0xff, 0x90, 0xc0, 0x6c, 0xad, 0xb6, 0x5e, 0x72, 0xec, 0xbd, 0xb6, 0xeb, 0x07, 0x4e, - 0xbd, 0xd2, 0xde, 0x75, 0x99, 0x32, 0x14, 0xae, 0x0a, 0x4a, 0xba, 0xa4, 0x68, 0x45, 0x08, 0x8b, - 0x99, 0xb2, 0x5d, 0xf6, 0x3c, 0xd7, 0x53, 0x95, 0x6d, 0xca, 0x00, 0x26, 0x87, 0x33, 0x7d, 0xa3, - 0xd6, 0xe5, 0x6f, 0x79, 0xf1, 0xdb, 0x13, 0xd4, 0x37, 0x7c, 0x0e, 0x32, 0x65, 0x19, 0xa1, 0xbd, - 0x02, 0x2b, 0xf4, 0xcf, 0xd3, 0x5a, 0xda, 0xac, 0xa8, 0x98, 0xaf, 0x79, 0x62, 0x4f, 0xc2, 0x20, - 0x94, 0x0e, 0xc2, 0xd5, 0xab, 0xb6, 0x9e, 0x39, 0x70, 0x00, 0x27, 0xb5, 0x60, 0x8a, 0x61, 0x2d, - 0x4a, 0x57, 0x85, 0x7e, 0x63, 0x60, 0x4c, 0x58, 0x82, 0x59, 0x49, 0x4d, 0xf7, 0x9b, 0x58, 0x03, - 0xf9, 0xa9, 0x14, 0xbc, 0x90, 0x58, 0x12, 0xce, 0xee, 0x09, 0x2d, 0x75, 0x99, 0xb2, 0x68, 0xf0, - 0xc4, 0xc6, 0xfd, 0xaa, 0xb6, 0x12, 0x96, 0x82, 0xc1, 0x35, 0x91, 0xdf, 0x4c, 0xc1, 0x69, 0x0d, - 0x23, 0x5c, 0xf3, 0x7c, 0xdc, 0x9b, 0xfa, 0xca, 0xf5, 0x47, 0x4f, 0x47, 0xae, 0x2f, 0xea, 0xdf, - 0x12, 0x2d, 0xc9, 0xea, 0x37, 0xf4, 0x6b, 0x21, 0x79, 0x00, 0xb3, 0x58, 0x24, 0xad, 0x5b, 0x4c, - 0x66, 0x85, 0x51, 0x6c, 0x2e, 0x6a, 0x36, 0x0f, 0x10, 0xc2, 0xc7, 0x69, 0x16, 0x7f, 0x70, 0xb8, - 0x30, 0xa5, 0xa1, 0x63, 0xfe, 0x55, 0x6c, 0x43, 0x68, 0x22, 0x73, 0xda, 0xbb, 0xae, 0xba, 0x5f, - 0xf6, 0x54, 0x41, 0xfe, 0xf3, 0x14, 0xcc, 0x33, 0x28, 0xff, 0x8c, 0xdb, 0x9e, 0xdb, 0x0a, 0xcb, - 0xe5, 0x9d, 0x6d, 0x9f, 0x6e, 0x6b, 0x3e, 0x9d, 0x6e, 0x7b, 0x19, 0x9b, 0xcc, 0xd7, 0x04, 0x6b, - 0xd7, 0x73, 0x5b, 0x51, 0xf3, 0xb5, 0x27, 0xce, 0xfa, 0x35, 0x92, 0xfc, 0x78, 0x0a, 0xce, 0x68, - 0x06, 0x06, 0x35, 0x57, 0xa8, 0x08, 0xc3, 0x92, 0x17, 0xfc, 0x6a, 0xd1, 0xd2, 0x35, 0x21, 0xff, - 0x97, 0xb0, 0x05, 0xd1, 0x6e, 0x81, 0x6d, 0xb1, 0x5a, 0x1c, 0x4b, 0x69, 0x42, 0xff, 0x5a, 0x88, - 0x03, 0xb3, 0x78, 0xe3, 0xa4, 0xf9, 0x16, 0xcc, 0xf5, 0xf7, 0x2d, 0x08, 0x1f, 0x11, 0xc0, 0x7c, - 0x8c, 0xfd, 0x1d, 0x0c, 0x7a, 0xb9, 0x92, 0x3f, 0x0b, 0x67, 0x7a, 0x80, 0xe1, 0x6c, 0x3b, 0xd9, - 0x77, 0xb6, 0xbd, 0xfa, 0xf8, 0x70, 0xe1, 0x95, 0xa4, 0xda, 0x92, 0x66, 0x5a, 0xff, 0x1a, 0x88, - 0x0d, 0x10, 0x15, 0x8a, 0x97, 0xd2, 0x92, 0x05, 0xf4, 0x55, 0x21, 0x1f, 0x0a, 0x3e, 0x5b, 0xcb, - 0x95, 0x36, 0xa8, 0x5b, 0x5e, 0x84, 0x44, 0x28, 0x4c, 0x2a, 0xb9, 0x28, 0x0f, 0xf0, 0xc9, 0xb4, - 0xbe, 0x95, 0xfc, 0xe0, 0x70, 0x41, 0xc3, 0x66, 0x7a, 0xb1, 0x9a, 0xe4, 0x52, 0xd5, 0x8b, 0x35, - 0x44, 0xf2, 0x77, 0x52, 0x30, 0xc7, 0x00, 0x91, 0x50, 0x89, 0x8f, 0x9a, 0x1f, 0x24, 0xf5, 0xfb, - 0x4f, 0x47, 0xea, 0x5f, 0xc4, 0x36, 0xaa, 0x52, 0xdf, 0xd3, 0x25, 0x89, 0x8d, 0x43, 0x69, 0xd7, - 0x2e, 0x37, 0x35, 0x69, 0x3f, 0x33, 0x84, 0xb4, 0xf3, 0x01, 0x38, 0x5a, 0xda, 0xfb, 0xd6, 0x42, - 0x36, 0x60, 0x52, 0xa8, 0xc4, 0xbc, 0xc3, 0xce, 0x6b, 0xc9, 0xea, 0xd4, 0x22, 0x7e, 0x4e, 0x11, - 0xa9, 0x3a, 0x7b, 0xbe, 0x50, 0xe3, 0x42, 0xda, 0x70, 0x82, 0xff, 0xd6, 0xad, 0x03, 0x0b, 0x7d, - 0xad, 0x03, 0x97, 0xc5, 0x17, 0x5d, 0x10, 0xfc, 0x63, 0x46, 0x02, 0xf5, 0x95, 0x84, 0x04, 0xc6, - 0xa4, 0x03, 0x44, 0x03, 0xf3, 0x49, 0x7b, 0x61, 0xb0, 0x4d, 0xe0, 0x15, 0x51, 0xe7, 0x42, 0xbc, - 0xce, 0xf8, 0xcc, 0x4d, 0xe0, 0x4d, 0x6c, 0x98, 0x11, 0x50, 0x76, 0x00, 0xc6, 0x15, 0xfe, 0x45, - 0x2d, 0x62, 0x3b, 0x56, 0xca, 0x5f, 0xb8, 0x92, 0x35, 0x61, 0x44, 0x7d, 0x6c, 0x41, 0x8f, 0xf3, - 0x23, 0xeb, 0x30, 0x5b, 0xe8, 0x74, 0x9a, 0x0e, 0x6d, 0xe0, 0x57, 0xf2, 0xf7, 0xb6, 0x8c, 0x28, - 0x3f, 0xb7, 0xcd, 0x0b, 0x85, 0x8a, 0x1f, 0x7f, 0x6c, 0xab, 0x97, 0xd6, 0xf8, 0x56, 0xaa, 0xa7, - 0xd1, 0xec, 0xe4, 0x8e, 0x3f, 0x94, 0x60, 0x4d, 0x3c, 0xb9, 0xf3, 0x26, 0xa2, 0x05, 0x21, 0x42, - 0x60, 0xca, 0x92, 0x9a, 0x08, 0x24, 0x23, 0x5e, 0x31, 0xe7, 0xa0, 0xe8, 0x40, 0xb9, 0x20, 0x7d, - 0xbe, 0x32, 0x91, 0xd2, 0x85, 0x3e, 0x5f, 0xc2, 0xd3, 0xcb, 0xf8, 0xf1, 0xb4, 0x2e, 0x76, 0xe4, - 0xb2, 0xa2, 0xb7, 0x2b, 0xa9, 0x48, 0xa4, 0xde, 0xae, 0x68, 0xeb, 0x7f, 0x3d, 0x05, 0x27, 0xd6, - 0xbd, 0x3d, 0xbb, 0xed, 0x7c, 0x93, 0xa7, 0x34, 0x73, 0x71, 0x5c, 0xc2, 0x38, 0x95, 0x4f, 0x34, - 0x65, 0xbb, 0xab, 0x54, 0xcc, 0x24, 0x05, 0x45, 0xc6, 0x4c, 0x6a, 0x0f, 0x7a, 0xd1, 0x62, 0xc3, - 0x94, 0xcc, 0xf9, 0x1c, 0x9d, 0xc3, 0x8d, 0xef, 0xa4, 0x61, 0x42, 0x99, 0x02, 0xe4, 0xb3, 0x30, - 0xa9, 0xf2, 0x51, 0xad, 0x3e, 0x6a, 0xb5, 0xa6, 0x86, 0x85, 0x66, 0x1f, 0x6a, 0xb7, 0x34, 0xb3, - 0x0f, 0x13, 0x74, 0x84, 0x1e, 0xf3, 0x68, 0xf3, 0x5e, 0xc2, 0xd1, 0xe6, 0x58, 0x0f, 0xb3, 0xbd, - 0xdd, 0x7b, 0xc0, 0x19, 0xfe, 0x1d, 0x35, 0xe3, 0xe7, 0x52, 0x90, 0x8f, 0x4f, 0xd2, 0x4f, 0xa4, - 0x57, 0x8e, 0x61, 0x5f, 0xff, 0x99, 0x74, 0x98, 0x88, 0x56, 0xc6, 0x06, 0x3c, 0xab, 0xbe, 0x12, - 0xef, 0x68, 0xa6, 0xef, 0xe7, 0xc3, 0x7d, 0x45, 0xfd, 0xb8, 0x01, 0x39, 0x53, 0xb2, 0xdf, 0xff, - 0xa5, 0x85, 0xe7, 0x8c, 0x0f, 0x60, 0x2e, 0xde, 0x1d, 0x68, 0xfe, 0x2e, 0xc0, 0x8c, 0x0e, 0x8f, - 0xa7, 0xb1, 0x8e, 0x53, 0x99, 0x71, 0x7c, 0xe3, 0xf7, 0xd2, 0x71, 0xde, 0xc2, 0x6f, 0x82, 0x2d, - 0x3a, 0x6d, 0x7b, 0xa7, 0x19, 0xe6, 0xc6, 0xe5, 0x8b, 0x0e, 0x07, 0x99, 0xb2, 0xec, 0x38, 0x09, - 0xcd, 0x43, 0x0f, 0xf7, 0x4c, 0xb2, 0x87, 0x3b, 0xb9, 0x15, 0xf3, 0x18, 0x52, 0xc2, 0xb1, 0x1f, - 0xd2, 0x1d, 0x2b, 0xf2, 0x1a, 0x8a, 0x39, 0x0a, 0x15, 0x61, 0x4e, 0xcb, 0x59, 0x27, 0xe9, 0x47, - 0x22, 0x83, 0x6b, 0x80, 0x05, 0x9c, 0x38, 0x11, 0x99, 0x2c, 0xc3, 0x18, 0x6b, 0xe6, 0xaa, 0xdd, - 0x11, 0x56, 0x6d, 0xf5, 0x85, 0x79, 0xb9, 0x79, 0x29, 0x21, 0x2f, 0x4d, 0xca, 0xb6, 0x7c, 0xed, - 0x5d, 0x43, 0x8e, 0x68, 0xfc, 0x51, 0x8a, 0xcd, 0xff, 0xfa, 0xfd, 0x4f, 0x59, 0xaa, 0x75, 0xf6, - 0x49, 0x03, 0xdc, 0x7a, 0x7e, 0x3f, 0xcd, 0xd3, 0x1b, 0x0b, 0xf1, 0x79, 0x13, 0x46, 0x37, 0x6c, - 0x6f, 0x8f, 0x06, 0x22, 0x11, 0xaf, 0xca, 0x85, 0x17, 0x44, 0xc1, 0xe2, 0x01, 0xfe, 0x36, 0x05, - 0x81, 0x6a, 0x0b, 0x4b, 0x0f, 0x65, 0x0b, 0x53, 0xcc, 0xb3, 0x99, 0xa7, 0x66, 0x9e, 0xfd, 0x72, - 0x98, 0x59, 0xb8, 0x10, 0x0c, 0x91, 0x12, 0xed, 0x42, 0x3c, 0x69, 0x77, 0x4f, 0xf2, 0xba, 0x88, - 0x1d, 0xb9, 0xa5, 0xa6, 0x01, 0x57, 0x9c, 0xc6, 0x8f, 0x48, 0xf8, 0x6d, 0xfc, 0x7e, 0x86, 0xf7, - 0xb1, 0xe8, 0xa8, 0x4b, 0x5a, 0x40, 0x09, 0xce, 0x93, 0xd8, 0x1b, 0xcf, 0x3c, 0xb4, 0xe4, 0x12, - 0x64, 0x99, 0x6c, 0x8a, 0xde, 0xe4, 0xaf, 0x83, 0xbb, 0x4d, 0x2d, 0x06, 0x90, 0x95, 0xb3, 0xb9, - 0x8c, 0x7b, 0x92, 0xfa, 0xe2, 0x00, 0x6e, 0x5b, 0xea, 0x5c, 0x46, 0x0c, 0x72, 0x19, 0xb2, 0x6b, - 0x6e, 0x43, 0xa6, 0xde, 0x9b, 0xc3, 0xb0, 0x42, 0xed, 0x91, 0xde, 0xf9, 0x94, 0x89, 0x18, 0xec, - 0x5b, 0xc3, 0x64, 0xbd, 0xea, 0xb7, 0xb6, 0x76, 0x6d, 0x91, 0x48, 0x5c, 0xfd, 0xd6, 0x28, 0xaf, - 0x6f, 0x19, 0xa6, 0xf5, 0x67, 0x98, 0x84, 0xd3, 0x13, 0x9a, 0x59, 0x63, 0xaf, 0x39, 0xa9, 0xd6, - 0x71, 0x9d, 0x88, 0x2c, 0xc1, 0x94, 0x96, 0xf2, 0x47, 0x5c, 0x2f, 0xa1, 0x79, 0x53, 0x4f, 0x18, - 0xa4, 0x9a, 0x37, 0x35, 0x12, 0xb6, 0x9f, 0x8b, 0xf6, 0x2b, 0x97, 0x4c, 0x3d, 0x6d, 0x17, 0x38, - 0xe4, 0x26, 0xe4, 0x78, 0xfc, 0x5e, 0xa5, 0xa4, 0xde, 0x56, 0xf8, 0x08, 0x8b, 0xc5, 0xbf, 0x4a, - 0x44, 0x25, 0x5e, 0xeb, 0x33, 0x90, 0x17, 0x4b, 0x52, 0xf8, 0xc2, 0x04, 0xde, 0x14, 0x57, 0x4a, - 0xa6, 0xba, 0x8c, 0xd4, 0x9d, 0x86, 0x67, 0x22, 0xd4, 0xf8, 0x5e, 0x0a, 0xce, 0xac, 0xd1, 0xe0, - 0xa1, 0xeb, 0xdd, 0x37, 0xa9, 0x1f, 0x78, 0x0e, 0x7f, 0xb0, 0x02, 0x27, 0xe2, 0x67, 0xc9, 0xdb, - 0x30, 0x82, 0xde, 0x37, 0xb1, 0x9d, 0x21, 0x5e, 0xc7, 0xd2, 0x94, 0x10, 0xe0, 0x11, 0x74, 0xe5, - 0x31, 0x39, 0x11, 0x79, 0x13, 0xb2, 0x25, 0xda, 0x3e, 0x88, 0xbd, 0x5c, 0xd0, 0x43, 0x1c, 0x2e, - 0x08, 0x0d, 0xda, 0x3e, 0x30, 0x91, 0xc4, 0xf8, 0xb9, 0x34, 0x9c, 0x4c, 0x68, 0xd6, 0xd6, 0x67, - 0x9f, 0xd1, 0x55, 0x71, 0x49, 0x5b, 0x15, 0x2f, 0x08, 0xd2, 0xbe, 0x1d, 0x9f, 0xb8, 0x48, 0xfe, - 0x95, 0x14, 0x9c, 0xd6, 0x05, 0x54, 0xb8, 0xdb, 0x6d, 0xdd, 0x24, 0x6f, 0xc1, 0xe8, 0x32, 0xb5, - 0x1b, 0x54, 0xa6, 0x2e, 0x8f, 0x5e, 0x38, 0xe7, 0xc1, 0x49, 0xbc, 0x90, 0xb3, 0xfd, 0x3d, 0xbe, - 0x86, 0x3d, 0x67, 0x0a, 0x12, 0x52, 0x12, 0x8d, 0xe3, 0xfa, 0xb8, 0x21, 0x03, 0x05, 0x93, 0xaa, - 0x1a, 0x70, 0xcf, 0xfe, 0x83, 0x14, 0x3c, 0x3f, 0x80, 0x86, 0x0d, 0x1c, 0x1b, 0x7a, 0x75, 0xe0, - 0x70, 0x47, 0x45, 0x28, 0x79, 0x17, 0x66, 0x36, 0x84, 0x3e, 0x2f, 0x87, 0x23, 0x1d, 0xcd, 0x17, - 0xa9, 0xea, 0x5b, 0x72, 0x5c, 0xe2, 0xc8, 0x5a, 0x04, 0x6b, 0x66, 0x60, 0x04, 0xab, 0x1a, 0x10, - 0x9a, 0x1d, 0x36, 0x20, 0xf4, 0x83, 0xf8, 0xe3, 0xa5, 0x22, 0x2f, 0x57, 0x14, 0x0e, 0x9b, 0xea, - 0x1f, 0x0e, 0x3b, 0x30, 0xfb, 0x0f, 0xbe, 0x74, 0xa0, 0xf3, 0x7e, 0xd2, 0xf1, 0x7c, 0x47, 0x1b, - 0xcf, 0xe7, 0x93, 0xc7, 0xb3, 0xff, 0x40, 0xfe, 0x62, 0x2a, 0xfe, 0xb1, 0x43, 0x8d, 0xa0, 0x01, - 0xa3, 0x25, 0xb7, 0x65, 0x3b, 0x6d, 0xf5, 0xed, 0xb5, 0x06, 0x42, 0x4c, 0x51, 0x32, 0x5c, 0xf4, - 0xf0, 0x05, 0x18, 0x59, 0x73, 0xdb, 0x85, 0x92, 0xf0, 0xad, 0x43, 0x3e, 0x6d, 0xb7, 0x6d, 0xd9, - 0x0d, 0x93, 0x17, 0x18, 0x3f, 0x35, 0x02, 0x67, 0x4c, 0xba, 0xe7, 0x30, 0x8d, 0x73, 0xd3, 0x77, - 0xda, 0x7b, 0x5a, 0xa8, 0xa4, 0x11, 0x1b, 0x13, 0x91, 0xaf, 0x92, 0x41, 0xc2, 0x3a, 0xae, 0x40, - 0x8e, 0x6d, 0x30, 0xca, 0xb0, 0xe0, 0x75, 0x04, 0x3e, 0x24, 0xc9, 0xe5, 0x45, 0x16, 0x93, 0xab, - 0x62, 0x03, 0x54, 0x32, 0x0a, 0xb3, 0x0d, 0xf0, 0x87, 0x87, 0x0b, 0x50, 0x3b, 0xf0, 0x03, 0x8a, - 0x87, 0x1f, 0xb1, 0x09, 0x86, 0x5a, 0x6a, 0xb6, 0x8f, 0x96, 0xba, 0x0a, 0x73, 0x85, 0x06, 0x5f, - 0xf7, 0xec, 0x66, 0xd5, 0x73, 0xda, 0x75, 0xa7, 0x63, 0x37, 0xe5, 0xc9, 0x0b, 0x2f, 0xa5, 0xec, - 0xb0, 0xdc, 0xea, 0x84, 0x08, 0x66, 0x22, 0x19, 0xfb, 0x8c, 0xd2, 0x5a, 0x8d, 0x3f, 0x92, 0xcc, - 0x6f, 0x9a, 0xf0, 0x33, 0x1a, 0x6d, 0x9f, 0xbf, 0x92, 0x6c, 0x86, 0xc5, 0xa8, 0x1f, 0xe3, 0x75, - 0xfe, 0xc6, 0x4a, 0x2d, 0x0a, 0xdb, 0xe0, 0x09, 0x0f, 0xf9, 0x95, 0x7f, 0xd0, 0xf4, 0xf1, 0xda, - 0x5f, 0xc3, 0x8b, 0xe8, 0x6a, 0xb5, 0x65, 0x46, 0x97, 0xeb, 0xa1, 0xf3, 0xfd, 0x7d, 0x95, 0x8e, - 0xe3, 0x91, 0xeb, 0x00, 0x3c, 0x55, 0x0f, 0x8a, 0xcc, 0x78, 0xa4, 0x4d, 0x7b, 0x08, 0xe5, 0xda, - 0xb4, 0x82, 0x42, 0xde, 0x86, 0x13, 0xe5, 0xe2, 0xa2, 0xb4, 0x0f, 0x96, 0xdc, 0x7a, 0x17, 0x2f, - 0x68, 0x01, 0xeb, 0xc3, 0x31, 0xa4, 0xf5, 0x45, 0x26, 0x27, 0x49, 0x68, 0xe4, 0x12, 0x8c, 0x55, - 0x4a, 0xbc, 0xef, 0x27, 0xd4, 0xac, 0xde, 0xc2, 0xf1, 0x41, 0x16, 0x92, 0xf5, 0x48, 0xdd, 0x9b, - 0x3c, 0x52, 0x2f, 0x3b, 0x73, 0xb4, 0xaa, 0x27, 0x92, 0x7f, 0xf3, 0x47, 0x26, 0x8a, 0x6e, 0x83, - 0xfa, 0x5b, 0x37, 0x3e, 0x65, 0xc9, 0xbf, 0x95, 0x6f, 0xc3, 0x85, 0xe0, 0x46, 0xe2, 0xaa, 0xf1, - 0xef, 0x61, 0xf2, 0xef, 0x1e, 0x5c, 0xf2, 0x79, 0x18, 0xc1, 0x9f, 0x42, 0x85, 0x38, 0x91, 0xc0, - 0x36, 0x52, 0x1f, 0xea, 0xfc, 0x19, 0x42, 0x24, 0x20, 0x15, 0x18, 0x13, 0xda, 0xeb, 0x71, 0x52, - 0xd8, 0x0a, 0x35, 0x98, 0x0f, 0x92, 0xa0, 0x37, 0x1a, 0x30, 0xa9, 0x56, 0xc8, 0x84, 0x73, 0xd9, - 0xf6, 0xf7, 0x69, 0x83, 0xfd, 0x12, 0xd9, 0xe7, 0x51, 0x38, 0xf7, 0x11, 0x6a, 0xb1, 0x76, 0x98, - 0x0a, 0x0a, 0x5b, 0xb8, 0x2a, 0xfe, 0xa6, 0x2f, 0x9a, 0x22, 0xce, 0xb3, 0x0e, 0xda, 0x46, 0x1a, - 0xa6, 0x28, 0x32, 0xbe, 0x0c, 0x73, 0x6b, 0xdd, 0x66, 0x93, 0x9d, 0x6d, 0x65, 0x76, 0xd2, 0xc0, - 0x0e, 0x28, 0x59, 0x82, 0x11, 0xfc, 0x03, 0x2b, 0x9a, 0x0e, 0xbb, 0x40, 0xc5, 0x41, 0x5f, 0xab, - 0x14, 0x06, 0x5a, 0x06, 0xfa, 0x13, 0xe2, 0x9c, 0xd4, 0xf8, 0xdd, 0xe8, 0x41, 0xcc, 0x0d, 0xcf, - 0xae, 0xdf, 0xa7, 0x9e, 0xd8, 0x81, 0x86, 0x7d, 0xdb, 0xf3, 0xae, 0x6c, 0x84, 0xbe, 0x2b, 0x24, - 0x35, 0xf8, 0xa8, 0xc6, 0x90, 0xb7, 0x61, 0x42, 0xec, 0x0c, 0x4a, 0x7a, 0x10, 0x8c, 0xc1, 0x96, - 0x2f, 0xa4, 0xc6, 0x6e, 0xee, 0x55, 0x74, 0xdc, 0xf0, 0xf4, 0x4f, 0xd9, 0xba, 0xf1, 0x49, 0x6c, - 0x78, 0x7a, 0x1d, 0x03, 0x44, 0xf7, 0xef, 0x42, 0xbc, 0x6f, 0x85, 0xec, 0xde, 0x52, 0x13, 0x02, - 0xa4, 0xa2, 0xe3, 0x47, 0x94, 0x10, 0x40, 0x3d, 0x7e, 0x84, 0xa8, 0xe1, 0x98, 0xa4, 0x8f, 0x18, - 0x93, 0x77, 0xe5, 0x98, 0x64, 0xfa, 0x0b, 0xc6, 0x89, 0x01, 0xe3, 0x50, 0x8b, 0x66, 0x48, 0x76, - 0xa8, 0xb3, 0xeb, 0x73, 0x98, 0xf9, 0x90, 0x93, 0xc4, 0x17, 0x34, 0xc1, 0x49, 0x3d, 0x10, 0x8f, - 0x0c, 0xcf, 0xf4, 0x88, 0x03, 0xf1, 0x17, 0x60, 0xb2, 0x10, 0x04, 0x76, 0x7d, 0x9f, 0x36, 0x4a, - 0x6c, 0x79, 0x52, 0x62, 0x97, 0x6d, 0x01, 0x57, 0x6f, 0x26, 0x54, 0x5c, 0x9e, 0x8b, 0xc7, 0xf6, - 0x85, 0xe3, 0x58, 0x98, 0x8b, 0x87, 0x41, 0xf4, 0x5c, 0x3c, 0x0c, 0x42, 0xae, 0xc3, 0x58, 0xa5, - 0xfd, 0xc0, 0x61, 0x7d, 0x92, 0x8b, 0x9e, 0xe6, 0x73, 0x38, 0x48, 0x5d, 0x5c, 0x05, 0x16, 0x79, - 0x53, 0xd1, 0x1c, 0xc7, 0xa3, 0x53, 0x22, 0xb7, 0x2b, 0x58, 0x52, 0x81, 0x54, 0xb5, 0xc2, 0x50, - 0x95, 0xbc, 0x05, 0x63, 0xd2, 0x5c, 0x04, 0xd1, 0xc9, 0x50, 0x50, 0xf6, 0x46, 0xa8, 0x49, 0x64, - 0x7c, 0xc7, 0x4a, 0xc9, 0xa2, 0x3f, 0xa1, 0xbc, 0x63, 0xa5, 0x64, 0xd1, 0xd7, 0xde, 0xb1, 0x52, - 0xf2, 0xe9, 0x87, 0x27, 0xed, 0xc9, 0x23, 0x4f, 0xda, 0x5b, 0x30, 0x59, 0xb5, 0xbd, 0xc0, 0x61, - 0xea, 0x42, 0x3b, 0xf0, 0xe7, 0xa7, 0x34, 0xe3, 0x94, 0x52, 0xb4, 0x74, 0x5e, 0xbe, 0xe7, 0xd4, - 0x51, 0xf0, 0xf5, 0x87, 0x80, 0x22, 0x78, 0xb2, 0xdb, 0xd8, 0xf4, 0x93, 0xb8, 0x8d, 0x61, 0xa7, - 0xa2, 0x41, 0x62, 0x26, 0x3a, 0xf6, 0xa2, 0x66, 0x18, 0xb3, 0x4a, 0x84, 0x88, 0xe4, 0x2b, 0x30, - 0xc9, 0xfe, 0xc6, 0x57, 0x73, 0x1d, 0xea, 0xcf, 0xe7, 0xf1, 0xe3, 0xce, 0x27, 0xce, 0x7e, 0xfe, - 0xb4, 0x6e, 0x8d, 0x06, 0x7c, 0x02, 0x23, 0xe3, 0xb8, 0xa5, 0x51, 0xe3, 0x46, 0xde, 0x83, 0x49, - 0xf9, 0x86, 0x34, 0x0e, 0xd2, 0x6c, 0xe4, 0xf8, 0xd7, 0x10, 0xf0, 0x9e, 0x74, 0x58, 0x2a, 0x01, - 0xdb, 0xe6, 0x0b, 0x1d, 0xbe, 0x40, 0x12, 0x45, 0xda, 0x3b, 0x3d, 0x8b, 0xa3, 0x44, 0x23, 0x5f, - 0x84, 0xc9, 0x42, 0xa7, 0x13, 0xad, 0x38, 0x27, 0x14, 0x6b, 0x43, 0xa7, 0x63, 0x25, 0xae, 0x3a, - 0x1a, 0x45, 0x7c, 0x61, 0x9e, 0x3b, 0xd6, 0xc2, 0x4c, 0x5e, 0x0f, 0x15, 0xe7, 0x93, 0x91, 0xe9, - 0x4c, 0x68, 0xe7, 0xea, 0x4c, 0xe3, 0x48, 0xc6, 0x1f, 0xa6, 0xe0, 0x74, 0x9f, 0x5e, 0x0e, 0x33, - 0x47, 0xa5, 0x8e, 0x78, 0x12, 0xfa, 0x7a, 0xa4, 0xd9, 0x28, 0xe6, 0x3a, 0xa1, 0xd9, 0xa8, 0x7d, - 0x24, 0x75, 0x1c, 0x17, 0x88, 0x78, 0x10, 0x5a, 0x79, 0x38, 0x59, 0xa4, 0x2f, 0x8c, 0x2d, 0xfc, - 0xda, 0xc3, 0xd1, 0xfc, 0x91, 0x72, 0x8f, 0x83, 0xc2, 0xae, 0xfc, 0xc8, 0xd5, 0x66, 0x4d, 0x02, - 0x6b, 0xe3, 0x30, 0x05, 0x13, 0x8a, 0xec, 0x93, 0x0b, 0x4a, 0x9c, 0x51, 0x9e, 0xa7, 0xa3, 0x56, - 0x38, 0xa4, 0xf9, 0xea, 0x8f, 0x82, 0x9c, 0x3e, 0xda, 0xb2, 0xb6, 0xca, 0xd4, 0x0f, 0x25, 0xbb, - 0x56, 0x4b, 0x33, 0x83, 0x99, 0x58, 0x8e, 0x4f, 0xbf, 0xd9, 0x7e, 0x50, 0xa8, 0x07, 0xce, 0x03, - 0x3a, 0xc4, 0x42, 0x1f, 0x3d, 0xfd, 0x66, 0xfb, 0x81, 0x65, 0x23, 0x59, 0xcf, 0xd3, 0x6f, 0x21, - 0x43, 0xe3, 0x27, 0x52, 0x00, 0x9b, 0x95, 0x22, 0xa6, 0xc7, 0x7b, 0xd2, 0x8d, 0x38, 0x39, 0xe5, - 0x90, 0xe4, 0x3e, 0x60, 0x0b, 0xae, 0xc2, 0xb4, 0x8e, 0x45, 0xde, 0x85, 0x99, 0x5a, 0xdd, 0x73, - 0x9b, 0xcd, 0x1d, 0xbb, 0x7e, 0x7f, 0xc5, 0x69, 0x53, 0x9e, 0xeb, 0x65, 0x84, 0x2f, 0xff, 0x7e, - 0x58, 0x64, 0x35, 0x59, 0x99, 0x19, 0x47, 0x36, 0xfe, 0x38, 0x05, 0x13, 0x95, 0xb6, 0x1f, 0xd8, - 0xcd, 0x26, 0x2a, 0x18, 0x9f, 0xa6, 0x17, 0x09, 0xc2, 0xef, 0x1a, 0xd0, 0xa3, 0x6f, 0xc0, 0x4c, - 0x0c, 0x8d, 0x1d, 0x8c, 0x6b, 0x18, 0x06, 0xa9, 0x1e, 0x8c, 0x79, 0x60, 0xa4, 0x29, 0x4a, 0x8c, - 0xb2, 0x42, 0xb6, 0x75, 0x03, 0x2f, 0x8a, 0x16, 0x01, 0x1c, 0x09, 0x92, 0x6a, 0x3c, 0x89, 0xb7, - 0x64, 0xeb, 0x86, 0xa9, 0x60, 0x19, 0x6b, 0x30, 0x5a, 0x73, 0xbd, 0x60, 0xe9, 0x80, 0x6b, 0xce, - 0x25, 0xea, 0xd7, 0xd5, 0x9b, 0x20, 0x07, 0xad, 0xaf, 0x75, 0x53, 0x14, 0xb1, 0x73, 0xf3, 0x6d, - 0x87, 0x36, 0x1b, 0xaa, 0xcb, 0xdf, 0x2e, 0x03, 0x98, 0x1c, 0xce, 0x4e, 0x17, 0xa7, 0xa2, 0xf4, - 0xad, 0x91, 0x6f, 0xe1, 0x93, 0x0a, 0x6c, 0x51, 0xeb, 0xdf, 0x17, 0xf5, 0x07, 0xff, 0xb4, 0x9a, - 0x06, 0x74, 0xf5, 0xdf, 0x4a, 0xc1, 0xd9, 0xfe, 0x24, 0xaa, 0xbb, 0x62, 0x6a, 0x80, 0xbb, 0xe2, - 0xcb, 0xf1, 0x9b, 0x0b, 0x44, 0x13, 0x37, 0x17, 0xd1, 0x7d, 0x45, 0x09, 0xbd, 0x45, 0xeb, 0xe1, - 0x53, 0xad, 0x17, 0x06, 0xb4, 0x19, 0x11, 0xf9, 0x30, 0x07, 0x48, 0x63, 0x0a, 0x5a, 0xe3, 0xb7, - 0xb2, 0x70, 0xa6, 0x2f, 0x05, 0x59, 0x56, 0x32, 0x41, 0x4f, 0x87, 0x39, 0x68, 0xfb, 0xe2, 0x5f, - 0xc3, 0x7f, 0xd1, 0x21, 0x28, 0x1e, 0xc4, 0xb0, 0x1e, 0x66, 0x00, 0x4e, 0x23, 0xaf, 0x57, 0x8f, - 0xe4, 0xc5, 0xd1, 0x91, 0x19, 0xf4, 0x26, 0x03, 0xc6, 0x58, 0x13, 0x1a, 0xd8, 0x4e, 0xd3, 0x57, - 0xa7, 0x5d, 0x83, 0x83, 0x4c, 0x59, 0x16, 0xf9, 0x90, 0x66, 0x93, 0x7d, 0x48, 0x8d, 0x7f, 0x9b, - 0x82, 0xf1, 0xb0, 0xd9, 0xe4, 0x2c, 0x9c, 0xda, 0x30, 0x0b, 0xc5, 0xb2, 0xb5, 0xf1, 0x41, 0xb5, - 0x6c, 0x6d, 0xae, 0xd5, 0xaa, 0xe5, 0x62, 0xe5, 0x76, 0xa5, 0x5c, 0xca, 0x3f, 0x47, 0x66, 0x61, - 0x6a, 0x73, 0xed, 0xde, 0xda, 0xfa, 0xf6, 0x9a, 0x55, 0x36, 0xcd, 0x75, 0x33, 0x9f, 0x22, 0x53, - 0x30, 0x6e, 0x2e, 0x15, 0x8a, 0xd6, 0xda, 0x7a, 0xa9, 0x9c, 0x4f, 0x93, 0x3c, 0x4c, 0x16, 0xd7, - 0xd7, 0xd6, 0xca, 0xc5, 0x8d, 0xca, 0x56, 0x65, 0xe3, 0x83, 0x7c, 0x86, 0x10, 0x98, 0x46, 0x84, - 0xaa, 0x59, 0x59, 0x2b, 0x56, 0xaa, 0x85, 0x95, 0x7c, 0x96, 0xc1, 0x18, 0xbe, 0x02, 0x1b, 0x09, - 0x19, 0xdd, 0xdb, 0x5c, 0x2a, 0xe7, 0x47, 0x19, 0x0a, 0xfb, 0x4b, 0x41, 0x19, 0x63, 0xd5, 0x23, - 0x4a, 0xa9, 0xb0, 0x51, 0x58, 0x2a, 0xd4, 0xca, 0xf9, 0x1c, 0x39, 0x0d, 0x27, 0x34, 0x90, 0xb5, - 0xb2, 0x7e, 0xa7, 0xb2, 0x96, 0x1f, 0x27, 0x73, 0x90, 0x0f, 0x61, 0xa5, 0x25, 0x6b, 0xb3, 0x56, - 0x36, 0xf3, 0x10, 0x87, 0xae, 0x15, 0x56, 0xcb, 0xf9, 0x09, 0xe3, 0x1d, 0x1e, 0x5e, 0xc2, 0xbb, - 0x9a, 0x9c, 0x02, 0x52, 0xdb, 0x28, 0x6c, 0x6c, 0xd6, 0x62, 0x1f, 0x3f, 0x01, 0x63, 0xb5, 0xcd, - 0x62, 0xb1, 0x5c, 0xab, 0xe5, 0x53, 0x04, 0x60, 0xf4, 0x76, 0xa1, 0xb2, 0x52, 0x2e, 0xe5, 0xd3, - 0xc6, 0xcf, 0xa6, 0x60, 0x56, 0xaa, 0x3b, 0xd2, 0x0c, 0xfd, 0x84, 0x73, 0xf1, 0x5d, 0xed, 0x14, - 0x27, 0xbd, 0xff, 0x63, 0x95, 0x0c, 0x98, 0x86, 0x1e, 0x9c, 0x4c, 0x44, 0x26, 0x1f, 0x40, 0x5e, - 0x36, 0x60, 0xd5, 0x0e, 0xea, 0xfb, 0xd1, 0x32, 0x76, 0x3e, 0x56, 0x49, 0x0c, 0x8d, 0x5b, 0xd3, - 0xa2, 0x27, 0x8f, 0x7a, 0xd8, 0x18, 0xdf, 0x4f, 0xc1, 0xe9, 0x3e, 0xc4, 0xa4, 0x08, 0xa3, 0x61, - 0x62, 0xdc, 0x01, 0x8e, 0x2e, 0x73, 0x3f, 0x38, 0x5c, 0x10, 0x88, 0xf8, 0xf2, 0x0b, 0xfe, 0x65, - 0x8e, 0x86, 0x99, 0x6e, 0x31, 0xdd, 0x2c, 0xef, 0x93, 0x33, 0xb1, 0xee, 0x14, 0x35, 0x15, 0xb6, - 0x6b, 0x4b, 0x13, 0xa2, 0x43, 0x32, 0xf6, 0x43, 0x1f, 0xf3, 0xcd, 0x1a, 0xdf, 0x4b, 0x31, 0x55, - 0x29, 0x8e, 0x48, 0x8a, 0x30, 0x55, 0xf0, 0xfd, 0x6e, 0x8b, 0x9a, 0x6e, 0x93, 0x16, 0xcc, 0x35, - 0xb1, 0x17, 0xe0, 0x99, 0xc7, 0xc6, 0x02, 0x54, 0x8c, 0x2d, 0xdb, 0x6b, 0x6b, 0x97, 0x5a, 0x2a, - 0x0d, 0x79, 0x13, 0x20, 0x7c, 0x9c, 0x57, 0xc6, 0x54, 0xf3, 0x28, 0x7c, 0x01, 0xd5, 0x35, 0x46, - 0x05, 0xd9, 0xf8, 0x0b, 0x29, 0x98, 0x14, 0x6a, 0x7f, 0xa1, 0x49, 0xbd, 0xe0, 0xc9, 0x64, 0xe6, - 0x4d, 0x4d, 0x66, 0x42, 0xbf, 0x6e, 0x85, 0x3f, 0x2b, 0x4e, 0x14, 0x97, 0xff, 0x3a, 0x05, 0xf9, - 0x38, 0x22, 0x79, 0x17, 0x72, 0x35, 0xfa, 0x80, 0x7a, 0x4e, 0x70, 0x20, 0x56, 0x3f, 0xf9, 0x84, - 0x00, 0xc7, 0x11, 0x65, 0xdc, 0xba, 0xe8, 0x8b, 0x5f, 0x66, 0x48, 0x33, 0xec, 0x22, 0xae, 0x1c, - 0xdc, 0x33, 0x4f, 0xeb, 0xe0, 0x6e, 0xfc, 0xf3, 0x34, 0x9c, 0xbe, 0x43, 0x03, 0xf5, 0x9b, 0xc2, - 0x5b, 0xc8, 0xcf, 0x0c, 0xf7, 0x5d, 0xca, 0x97, 0xcc, 0xc3, 0x18, 0x16, 0xc9, 0xf1, 0x35, 0xe5, - 0x4f, 0xb2, 0x14, 0xca, 0x75, 0x46, 0xcb, 0x51, 0xde, 0xa7, 0xee, 0x6b, 0x4a, 0xd6, 0xe2, 0x50, - 0xac, 0x2f, 0xc1, 0x34, 0xa6, 0xe5, 0xeb, 0xb2, 0xe9, 0x40, 0x1b, 0xc2, 0x80, 0x91, 0x33, 0x63, - 0x50, 0x72, 0x15, 0xf2, 0x0c, 0x52, 0xa8, 0xdf, 0x6f, 0xbb, 0x0f, 0x9b, 0xb4, 0xb1, 0x47, 0xf9, - 0x93, 0xa9, 0x39, 0xb3, 0x07, 0x2e, 0x79, 0x6e, 0xb6, 0xf9, 0x01, 0x9c, 0x36, 0xd0, 0xca, 0x20, - 0x78, 0x46, 0xd0, 0xb3, 0x6f, 0xc2, 0xc4, 0xc7, 0xcc, 0x40, 0x6e, 0xfc, 0x0f, 0x29, 0x98, 0xc3, - 0x8f, 0x53, 0x2a, 0x46, 0xf3, 0xf3, 0x67, 0xa2, 0xde, 0x52, 0x92, 0xf2, 0xda, 0x0c, 0xa4, 0x4f, - 0x85, 0xb0, 0x17, 0x23, 0xab, 0x46, 0x7a, 0x08, 0xab, 0x46, 0xed, 0x38, 0x2f, 0xac, 0x0d, 0x69, - 0x94, 0xe1, 0xef, 0xe2, 0x46, 0x43, 0x6e, 0xfc, 0xb9, 0x34, 0x8c, 0x99, 0x14, 0x9f, 0x9e, 0x22, - 0x97, 0x60, 0x6c, 0xcd, 0x0d, 0xa8, 0xbf, 0xaa, 0xbd, 0x33, 0xd6, 0x66, 0x20, 0xab, 0xd5, 0x30, - 0x65, 0x21, 0x13, 0xf8, 0xaa, 0xe7, 0x36, 0xba, 0xf5, 0x40, 0x15, 0xf8, 0x0e, 0x07, 0x99, 0xb2, - 0x8c, 0xbc, 0x06, 0xe3, 0x82, 0x73, 0x78, 0xf7, 0x83, 0x3e, 0x8b, 0x1e, 0x0d, 0x9f, 0x2e, 0x8b, - 0x10, 0x50, 0x51, 0xe5, 0x5a, 0x43, 0x56, 0x51, 0x54, 0x7b, 0x14, 0x01, 0xa9, 0x7f, 0x8f, 0x0c, - 0xd0, 0xbf, 0x3f, 0x03, 0xa3, 0x05, 0xdf, 0xa7, 0x81, 0x0c, 0x37, 0x9d, 0x0c, 0x53, 0x5c, 0xf8, - 0x34, 0xe0, 0x8c, 0x6d, 0x2c, 0x37, 0x05, 0x9e, 0xf1, 0x47, 0x69, 0x18, 0xc1, 0x3f, 0xf1, 0xbe, - 0xcb, 0xab, 0xef, 0x6b, 0xf7, 0x5d, 0x5e, 0x7d, 0xdf, 0x44, 0x28, 0xb9, 0x81, 0x67, 0x6d, 0x99, - 0x3f, 0x5a, 0x7c, 0x3d, 0x1a, 0x91, 0x1b, 0x11, 0xd8, 0x54, 0x71, 0xc2, 0x8b, 0xc0, 0x4c, 0x62, - 0x90, 0xf9, 0x29, 0x48, 0xaf, 0xd7, 0xc4, 0x17, 0x63, 0x06, 0x0b, 0xd7, 0x37, 0xd3, 0xeb, 0x35, - 0xec, 0x8d, 0xe5, 0xc2, 0xe2, 0x1b, 0xb7, 0xd4, 0x27, 0xf1, 0xfc, 0x7d, 0x7b, 0xf1, 0x8d, 0x5b, - 0xa6, 0x28, 0x61, 0xfd, 0x8b, 0x6d, 0xae, 0x39, 0xdf, 0xa4, 0x22, 0x42, 0x13, 0xfb, 0x17, 0xbf, - 0xcd, 0xf2, 0x9d, 0x6f, 0x52, 0x33, 0x42, 0x20, 0x8b, 0x30, 0x21, 0x82, 0x72, 0x11, 0x5f, 0x09, - 0x9a, 0x15, 0x41, 0xbb, 0x9c, 0x42, 0x45, 0xe2, 0xf7, 0x39, 0x62, 0x80, 0xe4, 0x2b, 0x37, 0xe2, - 0x3e, 0x47, 0x0e, 0xa1, 0x6f, 0x2a, 0x28, 0x51, 0x80, 0x69, 0x14, 0x79, 0xa9, 0x06, 0x98, 0x62, - 0x9a, 0xc5, 0x10, 0xc1, 0xf8, 0x95, 0x34, 0xe4, 0xaa, 0xcd, 0xee, 0x9e, 0xd3, 0xde, 0xba, 0xf1, - 0x27, 0xfa, 0x2c, 0xf3, 0xeb, 0x80, 0x9b, 0x84, 0x38, 0x11, 0x48, 0x93, 0x2c, 0x6f, 0x9a, 0x50, - 0x3e, 0x38, 0x09, 0xa2, 0x91, 0x9b, 0x20, 0x04, 0x53, 0xbc, 0xd2, 0x75, 0x52, 0x27, 0xe0, 0xef, - 0x53, 0x48, 0x12, 0x81, 0x4a, 0xde, 0x86, 0x89, 0xe8, 0x7d, 0xdc, 0xe8, 0xf1, 0x2d, 0x95, 0xb2, - 0x18, 0x95, 0x6f, 0xdd, 0x30, 0x55, 0x74, 0xe3, 0x27, 0xb3, 0x30, 0xa9, 0xb6, 0x87, 0x98, 0x70, - 0xc2, 0x6f, 0xb2, 0xa3, 0xb0, 0xf0, 0x49, 0xe9, 0x60, 0xa1, 0xd8, 0x4e, 0x2f, 0xe8, 0x0d, 0x62, - 0x78, 0xdc, 0x41, 0xa5, 0x46, 0x83, 0xc0, 0x69, 0xef, 0xf9, 0xcb, 0xcf, 0x99, 0xb3, 0x7e, 0x04, - 0xe6, 0x78, 0xa4, 0x00, 0x39, 0xb7, 0xe3, 0xef, 0xd1, 0xb6, 0x23, 0x6f, 0x0c, 0x2e, 0x6a, 0x8c, - 0xd6, 0x45, 0x61, 0x0f, 0xaf, 0x90, 0x8c, 0xbc, 0x01, 0xa3, 0x6e, 0x87, 0xb6, 0x6d, 0x47, 0xec, - 0x71, 0xcf, 0xc7, 0x18, 0xd0, 0x76, 0xa1, 0xa2, 0x10, 0x0a, 0x64, 0x72, 0x1d, 0xb2, 0xee, 0xfd, - 0x70, 0xbc, 0xce, 0xe8, 0x44, 0xf7, 0x03, 0x5b, 0x21, 0x41, 0x44, 0x46, 0xf0, 0x91, 0xdd, 0xda, - 0x15, 0x23, 0xa6, 0x13, 0xdc, 0xb5, 0x5b, 0xbb, 0x2a, 0x01, 0x43, 0x24, 0xef, 0x01, 0x74, 0xec, - 0x3d, 0xea, 0x59, 0x8d, 0x6e, 0x70, 0x20, 0xc6, 0xed, 0xbc, 0x46, 0x56, 0x65, 0xc5, 0xa5, 0x6e, - 0x70, 0xa0, 0xd0, 0x8e, 0x77, 0x24, 0x90, 0x14, 0x00, 0x5a, 0x76, 0x10, 0x50, 0xaf, 0xe5, 0x0a, - 0xa7, 0xa0, 0x89, 0xc5, 0x05, 0x8d, 0xc1, 0x6a, 0x58, 0xac, 0x70, 0x50, 0x88, 0xb0, 0xd1, 0x8e, - 0x67, 0x8b, 0xb7, 0xd2, 0x62, 0x8d, 0x76, 0x3c, 0xed, 0x2b, 0x19, 0xe2, 0x17, 0xb2, 0xff, 0xf3, - 0x2f, 0x2d, 0xa4, 0x96, 0x00, 0x72, 0xbe, 0x28, 0x31, 0x56, 0xe0, 0x4c, 0xdf, 0x41, 0x25, 0x57, - 0x20, 0xbf, 0x6b, 0x0b, 0x0b, 0x49, 0x7d, 0xdf, 0x6e, 0xb7, 0x69, 0x53, 0x4c, 0xa7, 0x19, 0x09, - 0x2f, 0x72, 0x30, 0xe7, 0x6c, 0xfc, 0x66, 0x0a, 0xce, 0x0d, 0x1a, 0x5a, 0x72, 0x16, 0x72, 0x1d, - 0xcf, 0x71, 0x51, 0x85, 0xe0, 0x13, 0x30, 0xfc, 0x4d, 0x5e, 0x00, 0xe0, 0x7b, 0x5d, 0x60, 0xef, - 0x09, 0x1f, 0x5d, 0x73, 0x1c, 0x21, 0x1b, 0xf6, 0x9e, 0x4f, 0x5e, 0x85, 0xd9, 0x06, 0xdd, 0xb5, - 0xbb, 0xcd, 0xc0, 0xf2, 0xeb, 0xfb, 0xb4, 0x81, 0x6e, 0xf1, 0xe8, 0x7b, 0x61, 0xe6, 0x45, 0x41, - 0x4d, 0xc2, 0xc9, 0x8b, 0x30, 0xa9, 0xc6, 0xe0, 0x8b, 0x17, 0xd2, 0x27, 0xec, 0x8e, 0x23, 0xa3, - 0xf0, 0x79, 0x8b, 0xef, 0x66, 0x73, 0xa9, 0x7c, 0xda, 0x44, 0x17, 0x04, 0xc3, 0x86, 0xd3, 0x7d, - 0x46, 0x8e, 0xb5, 0x2d, 0x7a, 0x36, 0x4b, 0x26, 0xe1, 0xed, 0x86, 0x8f, 0x67, 0xc5, 0xab, 0x4b, - 0xf7, 0xa9, 0xce, 0x38, 0x00, 0xd2, 0x3b, 0x3c, 0x8c, 0xbb, 0x70, 0xce, 0xea, 0x7a, 0x21, 0x77, - 0x0e, 0xd9, 0xf4, 0x9a, 0x64, 0x01, 0x26, 0x64, 0x92, 0x7d, 0xf9, 0xf4, 0xf8, 0xb8, 0x09, 0x02, - 0x74, 0x8f, 0x62, 0xcf, 0x61, 0xf2, 0x2c, 0xf5, 0xf9, 0xef, 0x71, 0x84, 0xb0, 0x73, 0x99, 0xa8, - 0xfa, 0x1c, 0xcc, 0x25, 0x4d, 0x1a, 0x51, 0xfa, 0xf3, 0x29, 0x98, 0xef, 0x27, 0x75, 0x47, 0xb5, - 0x8f, 0x00, 0x7a, 0x59, 0x8b, 0x86, 0xe1, 0xdf, 0xf8, 0x22, 0xba, 0x90, 0x18, 0xb1, 0x9c, 0x8a, - 0x9f, 0xe4, 0x12, 0xcc, 0x78, 0xdc, 0x0f, 0x27, 0x70, 0x45, 0x7f, 0xe2, 0x76, 0x65, 0x4e, 0x71, - 0xf0, 0x86, 0x8b, 0x7d, 0x2a, 0xda, 0x75, 0x37, 0xec, 0x30, 0x65, 0x12, 0x92, 0x6b, 0x30, 0xce, - 0x26, 0x21, 0x06, 0x6c, 0xc7, 0xdc, 0x3b, 0x11, 0x0f, 0x97, 0x34, 0x33, 0xf7, 0x91, 0xf8, 0x5b, - 0xf0, 0xba, 0x29, 0x79, 0xa9, 0x2b, 0x00, 0x39, 0x0d, 0x63, 0xae, 0xb7, 0xa7, 0x7c, 0xd9, 0xa8, - 0xeb, 0xed, 0x6d, 0x7a, 0xb2, 0x01, 0x7f, 0x23, 0x2d, 0x45, 0x7a, 0xc9, 0x75, 0x03, 0x3f, 0xf0, - 0xec, 0x8e, 0xb6, 0xac, 0x92, 0x16, 0x9c, 0x71, 0xed, 0x6e, 0xb0, 0xbf, 0x68, 0xb1, 0x7f, 0x5d, - 0x4f, 0x86, 0x09, 0xd4, 0xe5, 0xad, 0xf0, 0xc4, 0xe2, 0x75, 0x7d, 0xfd, 0x29, 0x30, 0xec, 0x82, - 0x8a, 0x5c, 0x74, 0x1b, 0x54, 0xe1, 0xba, 0xfc, 0x9c, 0x79, 0x9a, 0xf3, 0xec, 0xc1, 0x22, 0xcb, - 0xa0, 0x3d, 0xfd, 0x98, 0xb8, 0xae, 0x2a, 0xcf, 0x34, 0xea, 0x5c, 0x27, 0x76, 0x94, 0x77, 0x22, - 0xdf, 0x85, 0x71, 0xa7, 0x21, 0x72, 0x82, 0x88, 0xd5, 0x55, 0x5f, 0x7f, 0x2a, 0x0d, 0x9e, 0x22, - 0x24, 0xe2, 0xc1, 0x96, 0x66, 0x47, 0x40, 0x97, 0xa6, 0xb4, 0x0d, 0xc8, 0x58, 0x92, 0x02, 0xd4, - 0x4b, 0x46, 0xa6, 0x21, 0xed, 0xc8, 0x9d, 0x38, 0xed, 0x34, 0xc8, 0x29, 0x18, 0xf5, 0x95, 0x24, - 0x25, 0xa6, 0xf8, 0x65, 0xfc, 0x19, 0xb8, 0x3c, 0x6c, 0x1f, 0xe1, 0x4b, 0xf4, 0xc9, 0x1d, 0x3e, - 0x6e, 0xce, 0xda, 0x3d, 0xfd, 0x86, 0x2f, 0xd1, 0x87, 0x79, 0x1a, 0x1c, 0x39, 0x45, 0x25, 0x6c, - 0xd3, 0x73, 0x8c, 0x77, 0x60, 0x5a, 0xdf, 0x71, 0xc9, 0xab, 0x90, 0x0d, 0xb9, 0x4e, 0x87, 0x27, - 0x43, 0x15, 0x89, 0xf1, 0x36, 0x11, 0xc9, 0xf8, 0x97, 0x69, 0x38, 0x91, 0xb0, 0xef, 0x92, 0x0f, - 0xe1, 0x84, 0x14, 0x10, 0xbe, 0xb5, 0xf2, 0x81, 0xe3, 0xa2, 0x71, 0x25, 0x49, 0x34, 0x10, 0x2d, - 0x61, 0xf8, 0x66, 0x85, 0x50, 0x44, 0xe5, 0x7f, 0x7a, 0xc4, 0x81, 0x7c, 0x00, 0xa7, 0xc4, 0xbb, - 0x51, 0x8a, 0x54, 0x58, 0x1e, 0xdd, 0x15, 0x9b, 0xf0, 0x8b, 0x3d, 0xbd, 0xe7, 0xd4, 0x95, 0xe6, - 0x98, 0x74, 0x77, 0xf9, 0x39, 0x73, 0xce, 0x4f, 0x80, 0xc7, 0x25, 0xed, 0xd7, 0x52, 0x60, 0x1c, - 0xdd, 0x5f, 0xb8, 0x28, 0xc7, 0x3b, 0x9c, 0x2d, 0xca, 0x4a, 0xef, 0x5d, 0x84, 0x29, 0x8f, 0xee, - 0x7a, 0xd4, 0xdf, 0x57, 0xba, 0x6f, 0xdc, 0x9c, 0x14, 0x40, 0xd9, 0x31, 0x32, 0xd2, 0x69, 0x88, - 0x73, 0x76, 0x8e, 0xe9, 0x68, 0xfc, 0x84, 0x24, 0x88, 0x8c, 0xdb, 0xe1, 0x02, 0x92, 0x38, 0x0e, - 0xec, 0xa4, 0xa8, 0x36, 0x90, 0xff, 0xb8, 0x9b, 0xcd, 0xa5, 0xf3, 0x19, 0x53, 0xc4, 0x63, 0xed, - 0x3a, 0x4d, 0x6a, 0xfc, 0xdd, 0x14, 0x9c, 0xed, 0xdf, 0x79, 0xe4, 0x43, 0xc5, 0x52, 0x94, 0xe1, - 0xe9, 0x28, 0x8e, 0xe8, 0x6f, 0xf5, 0x50, 0x2d, 0x42, 0x84, 0xe2, 0x4f, 0x26, 0x09, 0x96, 0x4f, - 0x72, 0xdc, 0x7d, 0x53, 0x2a, 0x9a, 0x2b, 0x8e, 0x1f, 0x6c, 0xdd, 0x20, 0x57, 0x60, 0x8c, 0xeb, - 0x96, 0xb2, 0xa1, 0x33, 0x5a, 0x43, 0xb7, 0x6e, 0x98, 0xb2, 0xdc, 0xf8, 0x7e, 0x2a, 0xd4, 0x4e, - 0xe2, 0xcd, 0xdf, 0xba, 0x41, 0x3e, 0x37, 0x9c, 0xcd, 0x27, 0x27, 0x6d, 0x3e, 0xa1, 0xbd, 0xe7, - 0xf3, 0x9a, 0xbd, 0xe7, 0xa5, 0xc1, 0xfd, 0x24, 0xf6, 0x92, 0xf8, 0xa3, 0x16, 0xff, 0x26, 0x05, - 0x2f, 0x0c, 0xa4, 0x20, 0xe7, 0x20, 0x57, 0xa8, 0x56, 0x36, 0xa2, 0x91, 0x65, 0xb3, 0x45, 0x42, - 0xc8, 0x1d, 0x18, 0x5f, 0xb2, 0x7d, 0xa7, 0xce, 0x04, 0x58, 0x34, 0xe4, 0x95, 0xc1, 0x0d, 0x09, - 0xd1, 0x99, 0x1a, 0x19, 0xfe, 0x20, 0x16, 0xcc, 0xe2, 0x2c, 0xe8, 0x49, 0x1a, 0x1f, 0xdf, 0x76, - 0x7a, 0x18, 0xf6, 0x90, 0xb1, 0x15, 0xa6, 0x07, 0x18, 0x9f, 0x7c, 0x0f, 0xe0, 0xc2, 0x51, 0x0d, - 0x3c, 0x46, 0x54, 0xdf, 0x65, 0xc8, 0x55, 0x6d, 0xdf, 0x7f, 0xe8, 0x7a, 0x0d, 0xf5, 0xcd, 0x98, - 0x8e, 0x80, 0x99, 0x61, 0xa9, 0xf1, 0xed, 0x94, 0xdc, 0x1b, 0x8e, 0xfe, 0x10, 0x25, 0x6b, 0x56, - 0x63, 0x70, 0xd6, 0xac, 0xc6, 0xc7, 0xcc, 0x9a, 0x65, 0xfc, 0x8a, 0x88, 0xb9, 0xaf, 0x34, 0xaa, - 0xb1, 0x7c, 0xa5, 0x4f, 0x6a, 0xc1, 0x2e, 0x6b, 0xd2, 0x79, 0x51, 0x49, 0xbf, 0xd7, 0x5b, 0x57, - 0x7f, 0x43, 0xb6, 0x22, 0xaa, 0xdf, 0x4e, 0xc1, 0xb9, 0x41, 0xe4, 0x89, 0xa9, 0x55, 0x53, 0xc7, - 0x4b, 0xad, 0x7a, 0x05, 0x72, 0x1c, 0xa6, 0x3f, 0x70, 0x20, 0x48, 0x59, 0x87, 0xcb, 0x62, 0xa3, - 0x00, 0x50, 0x69, 0x54, 0xd7, 0x3b, 0x3c, 0xf2, 0xff, 0x26, 0x64, 0x59, 0xdb, 0x62, 0x1d, 0xc5, - 0x9a, 0x5a, 0x58, 0x5d, 0x11, 0x48, 0xdc, 0xc8, 0xe1, 0xdb, 0xad, 0xa6, 0x89, 0xc8, 0xc6, 0x36, - 0x4c, 0xeb, 0x18, 0xa4, 0xac, 0xc7, 0x8a, 0x45, 0x6f, 0xb2, 0x2d, 0xb9, 0x2e, 0xb7, 0x91, 0x2f, - 0x9d, 0xf9, 0xc1, 0xe1, 0x02, 0xb0, 0x9f, 0x9c, 0x26, 0x29, 0x96, 0xcc, 0xf8, 0x6e, 0x1a, 0xe6, - 0x22, 0xc7, 0x12, 0x39, 0x5c, 0xcf, 0xec, 0xc5, 0x6f, 0x41, 0xbb, 0x98, 0x5c, 0xe8, 0x79, 0xf6, - 0x48, 0x7e, 0xe0, 0x80, 0xfb, 0x90, 0x3b, 0x30, 0xdf, 0x0f, 0x9f, 0xbc, 0xda, 0xf3, 0x30, 0x89, - 0x70, 0x80, 0x0e, 0x5f, 0x30, 0x51, 0xde, 0x29, 0xf9, 0xc7, 0x29, 0x38, 0x2b, 0x2c, 0xbb, 0xab, - 0xb6, 0xd3, 0xc6, 0xc7, 0xd8, 0xea, 0xf4, 0xe9, 0x78, 0x0c, 0xdc, 0xd1, 0xa6, 0xcc, 0xcb, 0xba, - 0x01, 0xbf, 0xa7, 0xb6, 0xfe, 0x5f, 0x4b, 0xae, 0xa0, 0xd7, 0x78, 0x9d, 0x9f, 0xa1, 0xb2, 0xdc, - 0x2b, 0xaa, 0xcd, 0x00, 0xaa, 0x57, 0x14, 0x62, 0x18, 0x3f, 0x0a, 0xe7, 0x07, 0x57, 0x40, 0xbe, - 0x0a, 0x53, 0x85, 0x3d, 0xda, 0x0e, 0x36, 0x3b, 0x7b, 0x9e, 0xdd, 0xa0, 0xf2, 0x06, 0x47, 0x1e, - 0xd3, 0xd5, 0x32, 0xee, 0x29, 0x2f, 0xbc, 0x74, 0x18, 0xdc, 0xea, 0x0a, 0x22, 0xed, 0xfa, 0x44, - 0xe5, 0x66, 0xfc, 0x58, 0x0a, 0x48, 0x2f, 0x0f, 0x72, 0x0b, 0x26, 0x37, 0x37, 0x8a, 0xb5, 0xc0, - 0xf6, 0x82, 0x65, 0xb7, 0xcb, 0xbb, 0x73, 0x4a, 0x38, 0x90, 0x04, 0x75, 0xcb, 0x67, 0x05, 0xd6, - 0xbe, 0xdb, 0xf5, 0x4c, 0x0d, 0x0f, 0xd3, 0x39, 0x51, 0x7a, 0xbf, 0x61, 0x1f, 0xe8, 0xe9, 0x9c, - 0x04, 0x4c, 0x4b, 0xe7, 0x24, 0x60, 0xc6, 0x5f, 0x4b, 0xc1, 0xf3, 0xf2, 0xcc, 0xdd, 0x48, 0x68, - 0x4b, 0x11, 0x5d, 0x13, 0x3d, 0x19, 0x81, 0x37, 0x48, 0x6f, 0x9a, 0x95, 0xde, 0xbb, 0xd8, 0x40, - 0x54, 0xa0, 0x38, 0x2d, 0xbe, 0x44, 0x19, 0xb8, 0x9d, 0x21, 0xdc, 0x77, 0xf3, 0xe1, 0x88, 0x06, - 0x6e, 0x07, 0x59, 0x20, 0xa5, 0x41, 0x61, 0x4e, 0x6d, 0x9c, 0x6c, 0x31, 0x59, 0x85, 0x31, 0x11, - 0xa2, 0x20, 0x34, 0x11, 0x19, 0xb5, 0x32, 0xe0, 0x9b, 0x96, 0x66, 0xa4, 0x8f, 0xb0, 0x88, 0x00, - 0x33, 0x25, 0x0f, 0xe3, 0x3b, 0x29, 0xfe, 0x08, 0x36, 0x06, 0x45, 0x3f, 0xa9, 0x48, 0xeb, 0x3a, - 0x8a, 0xf4, 0xd9, 0x08, 0xd9, 0x0f, 0xb5, 0xf0, 0xbf, 0x01, 0x33, 0x31, 0x02, 0x62, 0xa0, 0x77, - 0x58, 0xd3, 0xe1, 0x6f, 0xfa, 0xf1, 0xef, 0x1e, 0x37, 0x35, 0x98, 0xf1, 0xef, 0xa4, 0x60, 0x8e, - 0x9d, 0x90, 0x2b, 0x2d, 0x76, 0x1c, 0x37, 0xbb, 0x4d, 0x39, 0xdf, 0xd9, 0x66, 0x2d, 0x8d, 0x37, - 0xdc, 0x8d, 0x86, 0x6f, 0xd6, 0x02, 0x66, 0x86, 0xa5, 0x64, 0x19, 0x72, 0x22, 0x60, 0x55, 0xbe, - 0x41, 0x2b, 0x4d, 0x63, 0x3a, 0x63, 0x81, 0xc4, 0xbe, 0x04, 0x97, 0x30, 0x41, 0x63, 0x86, 0xd4, - 0xc6, 0x1f, 0xa5, 0xe0, 0x74, 0x1f, 0x1a, 0xf2, 0x0e, 0x8c, 0xe0, 0x9d, 0xa4, 0x18, 0xbd, 0x73, - 0x7d, 0xaa, 0x08, 0xea, 0xfb, 0x5b, 0x37, 0xf8, 0xed, 0x7d, 0x8b, 0xfd, 0x30, 0x39, 0x15, 0xf9, - 0x10, 0xc6, 0x0b, 0x8d, 0x86, 0xf6, 0x52, 0xee, 0xeb, 0x83, 0x5b, 0x79, 0x2d, 0xc4, 0xe7, 0x3a, - 0x33, 0xb7, 0x8e, 0x37, 0x1a, 0xe2, 0xa9, 0x51, 0x33, 0xe2, 0x77, 0xf6, 0x6d, 0x98, 0xd6, 0x91, - 0x8f, 0xa5, 0x33, 0x7f, 0x3f, 0x05, 0x79, 0xbd, 0x0d, 0x9f, 0x8c, 0x77, 0x73, 0xd2, 0x30, 0x1f, - 0x21, 0x54, 0x3f, 0x97, 0x86, 0x93, 0x89, 0x3d, 0x4c, 0x5e, 0x87, 0xd1, 0x42, 0xa7, 0x53, 0x29, - 0x09, 0xa9, 0xe2, 0xca, 0x83, 0xdd, 0xe9, 0xc4, 0xe2, 0xa1, 0x04, 0x12, 0xb9, 0x09, 0x39, 0x94, - 0x4c, 0x46, 0x90, 0x8e, 0x42, 0xa8, 0x30, 0xd1, 0x40, 0x3c, 0x84, 0x4a, 0x22, 0x92, 0xdb, 0x30, - 0x2d, 0x1c, 0x1d, 0x4d, 0xba, 0x47, 0x1f, 0x85, 0xb1, 0xfc, 0x98, 0x6e, 0x40, 0xba, 0x45, 0x5a, - 0x1e, 0x2f, 0x53, 0x83, 0x32, 0x75, 0x2a, 0x7c, 0x28, 0x87, 0xf1, 0x54, 0x39, 0xf1, 0x38, 0x2e, - 0xfe, 0x50, 0x0e, 0x36, 0xa2, 0x0f, 0xaf, 0x1e, 0xca, 0x70, 0xb8, 0x0a, 0xbe, 0xef, 0xec, 0xb5, - 0x5b, 0xb4, 0x1d, 0x7c, 0x72, 0xc3, 0x15, 0xd5, 0x31, 0xd4, 0x70, 0x7d, 0x2f, 0xcb, 0x27, 0x73, - 0x9c, 0xec, 0x88, 0xb7, 0xe0, 0x4a, 0x30, 0xc6, 0x43, 0x7c, 0xe5, 0xcc, 0x78, 0x21, 0xb1, 0x09, - 0x1c, 0x67, 0xeb, 0x06, 0x57, 0x5f, 0xf8, 0xe5, 0xa8, 0x6f, 0x4a, 0x52, 0xb2, 0x05, 0x13, 0xc5, - 0x26, 0xb5, 0xdb, 0xdd, 0x0e, 0x5b, 0xa4, 0x87, 0x38, 0x3d, 0xcf, 0x8b, 0x6f, 0x99, 0xac, 0x73, - 0x32, 0x2b, 0x70, 0x5a, 0x14, 0x57, 0x72, 0x95, 0x11, 0xd9, 0x08, 0xef, 0x4b, 0xb2, 0x68, 0x98, - 0xf9, 0xcc, 0x80, 0xfe, 0x89, 0x03, 0x91, 0x4e, 0xbf, 0x0c, 0x14, 0x17, 0x2a, 0x16, 0x4c, 0xaf, - 0xd8, 0x7e, 0xb0, 0xe1, 0xd9, 0x6d, 0x1f, 0xa3, 0xa4, 0x86, 0x70, 0x5d, 0x97, 0x19, 0xfd, 0x67, - 0xd0, 0x4d, 0x32, 0x08, 0x49, 0xb1, 0xcd, 0x31, 0x76, 0x4c, 0x5f, 0xba, 0xed, 0xb4, 0xed, 0xa6, - 0xf3, 0x4d, 0x79, 0xad, 0xcc, 0xf5, 0xa5, 0x5d, 0x09, 0x34, 0xa3, 0x72, 0xe3, 0x2b, 0x3d, 0xe3, - 0xc6, 0x5b, 0x39, 0x01, 0x63, 0xc2, 0x93, 0x88, 0x7b, 0xd6, 0x54, 0xcb, 0x6b, 0xa5, 0xca, 0xda, - 0x9d, 0x7c, 0x8a, 0x4c, 0x03, 0x54, 0xcd, 0xf5, 0x62, 0xb9, 0x56, 0x63, 0xbf, 0xd3, 0xec, 0xb7, - 0x70, 0xbb, 0xb9, 0xbd, 0xb9, 0x92, 0xcf, 0x28, 0x9e, 0x37, 0x59, 0xe3, 0x1f, 0xa5, 0xe0, 0x54, - 0xf2, 0x50, 0x92, 0x0d, 0x40, 0xdf, 0x2b, 0x61, 0xf3, 0xba, 0x35, 0x70, 0xdc, 0x13, 0xc1, 0x71, - 0x1f, 0xae, 0x80, 0xfb, 0x06, 0xa5, 0x1d, 0xa9, 0x1d, 0x87, 0x99, 0xf5, 0x9d, 0x86, 0x51, 0x84, - 0xf9, 0x7e, 0x3c, 0xf4, 0x4f, 0x9d, 0x81, 0x89, 0x42, 0xb5, 0xba, 0x52, 0x29, 0x16, 0x36, 0x2a, - 0xeb, 0x6b, 0xf9, 0x14, 0x19, 0x87, 0x91, 0x3b, 0xe6, 0xfa, 0x66, 0x35, 0x9f, 0x36, 0xfe, 0x62, - 0x0a, 0xa6, 0x2a, 0xed, 0x80, 0xee, 0xf1, 0x4c, 0x82, 0x4f, 0x3a, 0xf9, 0xbe, 0xa0, 0x4d, 0xbe, - 0xf9, 0xd0, 0x4b, 0x31, 0xac, 0x60, 0xa8, 0x99, 0xf7, 0x10, 0x66, 0x7b, 0x48, 0x48, 0x0d, 0xc6, - 0x0a, 0xdb, 0xb5, 0xf5, 0x4a, 0xa9, 0x28, 0x1a, 0x26, 0x95, 0x72, 0x01, 0xed, 0xad, 0x84, 0xfb, - 0x00, 0x3c, 0xf4, 0x2d, 0xd7, 0x69, 0x28, 0xc9, 0x49, 0x97, 0x9f, 0x33, 0x25, 0x27, 0x76, 0x42, - 0x17, 0xe7, 0x0a, 0x54, 0xd9, 0x57, 0x60, 0xbe, 0x1f, 0x37, 0x76, 0x52, 0xd1, 0x5d, 0x76, 0x4e, - 0x85, 0xb9, 0x24, 0x74, 0x5f, 0x1d, 0x89, 0x66, 0xfc, 0xfb, 0x69, 0x38, 0xc5, 0xfa, 0xa5, 0x49, - 0x7d, 0x9f, 0x9d, 0xb3, 0xd9, 0x91, 0x4e, 0xbc, 0x08, 0xfc, 0x39, 0x18, 0xdd, 0x3f, 0x9e, 0x01, - 0x86, 0xa3, 0x13, 0x02, 0xb8, 0xd6, 0xc8, 0x0b, 0x03, 0xf6, 0x37, 0x79, 0x01, 0x94, 0xac, 0xc1, - 0xb8, 0x54, 0x4c, 0x9a, 0xe3, 0x9d, 0x30, 0x77, 0xf0, 0xe7, 0x61, 0x04, 0xe3, 0x57, 0xc4, 0x8c, - 0x97, 0x9a, 0x5a, 0x72, 0xcb, 0x30, 0xb0, 0xc5, 0xe4, 0x04, 0xe4, 0x3a, 0x40, 0x14, 0xe9, 0x2f, - 0xa6, 0xb4, 0x3c, 0x1d, 0x86, 0xc1, 0xfe, 0xe6, 0x78, 0x6b, 0xd7, 0x16, 0xe1, 0xf3, 0x57, 0x61, - 0x56, 0x1a, 0x0a, 0x3a, 0x32, 0x00, 0x83, 0xc7, 0x9a, 0x98, 0x33, 0xbc, 0xa0, 0xd2, 0x11, 0x41, - 0x18, 0xc6, 0xbf, 0x48, 0xc3, 0xf8, 0x36, 0xdb, 0xff, 0xf0, 0x54, 0x37, 0xf8, 0x94, 0xb8, 0x08, - 0x13, 0x2b, 0xae, 0xdd, 0xd0, 0x5f, 0xb4, 0xc4, 0x0b, 0xf3, 0xa6, 0x6b, 0x4b, 0xcb, 0xab, 0x6f, - 0xaa, 0x48, 0x47, 0x5c, 0xf6, 0xdf, 0x85, 0x51, 0x1e, 0xc0, 0x25, 0xf2, 0x6f, 0x4b, 0x0d, 0x28, - 0x6c, 0xd1, 0x35, 0x5e, 0xac, 0x58, 0xf8, 0x76, 0x11, 0xa0, 0x6e, 0xc7, 0x22, 0x04, 0x4c, 0x39, - 0xc3, 0x8e, 0x0c, 0x77, 0x86, 0x55, 0xdc, 0xee, 0x47, 0x87, 0x71, 0xbb, 0x3f, 0xfb, 0x26, 0x4c, - 0x28, 0xed, 0x39, 0x96, 0x42, 0xf4, 0xe3, 0x69, 0x98, 0xc2, 0xaf, 0x0a, 0x4d, 0xf3, 0xcf, 0xe6, - 0x89, 0xfc, 0x0b, 0xda, 0x89, 0x7c, 0x5e, 0x1d, 0x2f, 0xfe, 0x65, 0x03, 0x8e, 0xe2, 0x77, 0x61, - 0xb6, 0x07, 0x91, 0xbc, 0x01, 0x23, 0xac, 0xf9, 0xf2, 0x04, 0x93, 0x8f, 0x4b, 0x40, 0x14, 0x16, - 0xc9, 0x3e, 0xdc, 0x37, 0x39, 0xb6, 0xf1, 0xbf, 0xa5, 0x60, 0x52, 0xa4, 0x7e, 0x68, 0xef, 0xba, - 0x47, 0x76, 0xe7, 0xa5, 0x78, 0x77, 0x72, 0xd7, 0x35, 0xd1, 0x9d, 0xff, 0x4f, 0x77, 0xe2, 0x9b, - 0x5a, 0x27, 0x9e, 0x0e, 0x03, 0x36, 0xe4, 0xe7, 0x0c, 0xe8, 0xc3, 0xdf, 0xc4, 0xb0, 0x41, 0x1d, - 0x91, 0x7c, 0x0d, 0xc6, 0xd7, 0xe8, 0x43, 0xed, 0x20, 0x70, 0xa9, 0x0f, 0xd3, 0x6b, 0x21, 0x22, - 0x9f, 0x53, 0x18, 0x08, 0xd4, 0xa6, 0x0f, 0xad, 0x1e, 0xcb, 0x79, 0xc4, 0x92, 0x9d, 0x05, 0x74, - 0xb2, 0xe3, 0x88, 0xbe, 0xb8, 0xa1, 0x46, 0x6f, 0xcc, 0x5f, 0xcd, 0x00, 0x44, 0xf7, 0x9b, 0x6c, - 0x02, 0x52, 0x2d, 0x41, 0x92, 0x30, 0xd7, 0x21, 0x48, 0x95, 0x71, 0x01, 0x22, 0x97, 0x20, 0xab, - 0x64, 0x48, 0x4e, 0x0c, 0xa8, 0x41, 0xab, 0x6c, 0x11, 0xc0, 0x3f, 0x68, 0xd7, 0xad, 0x06, 0x6d, - 0xda, 0x7c, 0x2d, 0xce, 0xe0, 0xdb, 0x8a, 0x73, 0x11, 0xb4, 0x4f, 0x0e, 0xdf, 0x71, 0x86, 0x51, - 0x62, 0x08, 0xe4, 0x9d, 0xd8, 0x9d, 0x78, 0x36, 0x8a, 0x23, 0x52, 0xe1, 0x6a, 0x1c, 0x91, 0x72, - 0x5f, 0x4e, 0x16, 0x21, 0xb4, 0x17, 0xab, 0x0b, 0x52, 0x52, 0x46, 0x67, 0x09, 0x63, 0x34, 0xd2, - 0x72, 0xac, 0x3d, 0x6c, 0x2a, 0x60, 0x2a, 0x8d, 0x84, 0x91, 0x2a, 0x8c, 0x3b, 0xed, 0x07, 0xb4, - 0x1d, 0xb8, 0xde, 0xc1, 0xfc, 0x18, 0x0e, 0xfe, 0x19, 0xe5, 0x2a, 0xb9, 0x22, 0xcb, 0xf8, 0x78, - 0xe3, 0x11, 0x25, 0xc4, 0x57, 0x87, 0x3b, 0x04, 0x8a, 0x7b, 0xe3, 0x7f, 0x90, 0x06, 0xd2, 0xcb, - 0x80, 0x7c, 0x01, 0x26, 0xf8, 0x12, 0x6c, 0x79, 0xfe, 0x37, 0xc4, 0x8d, 0x33, 0xf7, 0x7a, 0x55, - 0xc0, 0xaa, 0xd7, 0x2b, 0x07, 0x9b, 0xfe, 0x37, 0x9a, 0xe4, 0xab, 0x70, 0x02, 0x07, 0xa0, 0x43, - 0x3d, 0xc7, 0x6d, 0x58, 0x18, 0x64, 0x67, 0x37, 0x45, 0x46, 0xbe, 0xd7, 0x31, 0x75, 0x6c, 0x6f, - 0x71, 0x9f, 0x81, 0x9a, 0x65, 0xa8, 0x55, 0xc4, 0xac, 0x72, 0x44, 0xb2, 0x01, 0x79, 0x95, 0x7e, - 0xb7, 0xdb, 0x6c, 0x8a, 0xb1, 0xbf, 0x8a, 0x2f, 0x4a, 0xc5, 0xca, 0xfa, 0x30, 0x9e, 0x8e, 0x18, - 0xdf, 0xee, 0x36, 0x9b, 0xe4, 0x73, 0x00, 0x6e, 0xdb, 0x6a, 0x39, 0xbe, 0xef, 0xb4, 0xf7, 0x84, - 0x10, 0xe0, 0xac, 0x89, 0xa0, 0x6a, 0x37, 0xba, 0xed, 0x55, 0x0e, 0x14, 0xdd, 0xf8, 0x65, 0x98, - 0x15, 0xfe, 0xae, 0xdb, 0x4e, 0xb0, 0x2f, 0x14, 0xb4, 0x27, 0xd1, 0xee, 0x14, 0x0d, 0xed, 0xdf, - 0xa6, 0x01, 0x0a, 0xdb, 0x35, 0xe9, 0x6a, 0x7d, 0x05, 0x46, 0x98, 0xda, 0x29, 0x8f, 0xaf, 0x68, - 0xfc, 0x43, 0xbe, 0xaa, 0xf1, 0x0f, 0x31, 0xd8, 0xcc, 0x33, 0xe9, 0x1e, 0x5a, 0x50, 0xd2, 0xd1, - 0x59, 0xd7, 0xe3, 0x20, 0x4d, 0x8b, 0xe2, 0x20, 0xb2, 0x02, 0x10, 0x39, 0x3f, 0x8b, 0x83, 0xd0, - 0x6c, 0xe4, 0x45, 0x28, 0x0a, 0x44, 0xee, 0x86, 0xc8, 0x81, 0x5a, 0x15, 0x84, 0x08, 0x8d, 0xdc, - 0x83, 0xec, 0x86, 0xbd, 0x27, 0xbd, 0x38, 0xfb, 0xb8, 0x84, 0x5f, 0x10, 0xb9, 0x0f, 0x23, 0xb7, - 0xf0, 0xe9, 0xc0, 0xd6, 0x52, 0xc4, 0x22, 0x13, 0x52, 0x86, 0x51, 0x91, 0xd7, 0xba, 0x4f, 0x7c, - 0x90, 0x48, 0x6b, 0x2d, 0x42, 0x60, 0x11, 0xa8, 0x3d, 0xcb, 0xcb, 0x33, 0x58, 0x2f, 0x42, 0xa6, - 0x56, 0x5b, 0x15, 0x8e, 0x50, 0x53, 0x91, 0x56, 0x5b, 0xab, 0xad, 0xca, 0xdc, 0xfd, 0xea, 0xcb, - 0xa9, 0x0c, 0xd9, 0xa0, 0x6a, 0xaf, 0xb0, 0x4d, 0x46, 0xd7, 0x4d, 0x71, 0x93, 0x91, 0xba, 0x69, - 0xa8, 0x91, 0x32, 0x85, 0xae, 0xc7, 0x6f, 0x1c, 0x9d, 0x08, 0x15, 0xbf, 0x71, 0xcd, 0x5b, 0xfc, - 0x27, 0x32, 0x4a, 0x3c, 0x92, 0x68, 0xee, 0x3b, 0x00, 0x77, 0x5d, 0xa7, 0xbd, 0x4a, 0x83, 0x7d, - 0xb7, 0xa1, 0xb8, 0xaf, 0x4f, 0x7c, 0xe4, 0x3a, 0x6d, 0xab, 0x85, 0xe0, 0x1f, 0x1e, 0x2e, 0x28, - 0x48, 0xa6, 0xf2, 0x37, 0x79, 0x0d, 0xc6, 0xd9, 0x2f, 0xf5, 0xbd, 0x74, 0x34, 0x06, 0x21, 0xb5, - 0x78, 0x26, 0x23, 0x44, 0x20, 0x6f, 0x02, 0xf0, 0xc8, 0x28, 0x45, 0x97, 0xc3, 0xa1, 0xe6, 0xf7, - 0x27, 0xf1, 0x78, 0x4a, 0x05, 0x99, 0x2c, 0x87, 0x4d, 0x97, 0xc9, 0x6a, 0x44, 0x46, 0x13, 0xb4, - 0x78, 0x88, 0xe1, 0xb0, 0x64, 0x6a, 0x1b, 0x35, 0xad, 0x68, 0x8c, 0x0c, 0x1b, 0x51, 0x5b, 0x2e, - 0x71, 0x13, 0xb5, 0x58, 0x52, 0x79, 0x23, 0xfc, 0xfd, 0x86, 0x55, 0x47, 0xb0, 0xd6, 0x88, 0x10, - 0x99, 0x2c, 0xc1, 0x0c, 0x77, 0xb2, 0x0c, 0x93, 0xde, 0x89, 0xe5, 0x15, 0x27, 0x72, 0x94, 0x15, - 0x4f, 0xad, 0x3e, 0x46, 0x60, 0x54, 0x60, 0x94, 0x4b, 0x03, 0x06, 0xc5, 0x8a, 0x8c, 0x1b, 0x4a, - 0x78, 0x27, 0x0f, 0x8a, 0x15, 0xf0, 0xde, 0xa0, 0x58, 0x85, 0xc0, 0xf8, 0xc5, 0x0c, 0x4c, 0x16, - 0xbe, 0xd9, 0xf5, 0xc2, 0x20, 0x89, 0x02, 0x4c, 0xd5, 0xba, 0x3b, 0xa1, 0x8b, 0xac, 0x9c, 0xc1, - 0xfc, 0x99, 0x41, 0xb5, 0x40, 0xb5, 0xa6, 0x6b, 0x14, 0xa4, 0x0c, 0xd3, 0x72, 0xf5, 0x10, 0x79, - 0x30, 0xf9, 0xc4, 0xc6, 0x90, 0x06, 0x19, 0xbc, 0xd1, 0x9b, 0x05, 0x33, 0x46, 0x14, 0xad, 0x21, - 0x99, 0xe3, 0xac, 0x21, 0xd9, 0xa1, 0xd6, 0x90, 0x0f, 0x61, 0x52, 0xd6, 0x86, 0xb3, 0x7f, 0xe4, - 0xc9, 0x66, 0xbf, 0xc6, 0x8c, 0xac, 0x84, 0xab, 0xc0, 0xe8, 0xc0, 0x55, 0x00, 0xaf, 0x28, 0xa4, - 0xd8, 0xf5, 0x24, 0xb6, 0x17, 0x3c, 0x8c, 0xef, 0x64, 0x00, 0xee, 0x14, 0xab, 0x1f, 0x63, 0x65, - 0x7d, 0x03, 0xc6, 0x57, 0x5c, 0x69, 0x9d, 0x56, 0xcc, 0x82, 0x4d, 0x09, 0x54, 0x37, 0x8b, 0x10, - 0x33, 0x5c, 0x11, 0x33, 0x4f, 0x63, 0x45, 0x7c, 0x13, 0xa0, 0xca, 0x9d, 0xeb, 0xa2, 0xf4, 0x4e, - 0x38, 0x53, 0xa4, 0x17, 0x9e, 0x6e, 0x9d, 0x54, 0x90, 0xd9, 0x74, 0xd5, 0x9f, 0xe4, 0xd6, 0xf2, - 0xa1, 0xc6, 0x9e, 0xf3, 0x56, 0x99, 0xc4, 0xc9, 0x9e, 0xf2, 0x80, 0xfc, 0xa3, 0x94, 0x1a, 0x6c, - 0xff, 0x31, 0xc6, 0xe5, 0xf3, 0x00, 0xe1, 0x5d, 0x9e, 0x1c, 0x18, 0xae, 0xfc, 0x86, 0x50, 0xb5, - 0x4b, 0x22, 0x5c, 0xf2, 0xbe, 0x12, 0xe9, 0x31, 0x60, 0x70, 0x8c, 0x9e, 0xc1, 0xe9, 0xeb, 0x8d, - 0x72, 0xf5, 0x67, 0x53, 0x30, 0x53, 0x29, 0xac, 0x8a, 0x48, 0x71, 0x6e, 0x17, 0x7b, 0x11, 0x5e, - 0xa8, 0x14, 0x56, 0xad, 0xea, 0xfa, 0x4a, 0xa5, 0xf8, 0x81, 0x95, 0x18, 0x87, 0xf6, 0x02, 0x9c, - 0xe9, 0x45, 0x89, 0xec, 0x67, 0xe7, 0x60, 0xbe, 0xb7, 0x58, 0xc6, 0xaa, 0x25, 0x13, 0xcb, 0xb0, - 0xb6, 0xcc, 0xd5, 0xf7, 0x60, 0x46, 0x86, 0x70, 0x6d, 0xac, 0xd4, 0x30, 0xe4, 0x7a, 0x06, 0x26, - 0xb6, 0xca, 0x66, 0xe5, 0xf6, 0x07, 0xd6, 0xed, 0xcd, 0x95, 0x95, 0xfc, 0x73, 0x64, 0x0a, 0xc6, - 0x05, 0xa0, 0x58, 0xc8, 0xa7, 0xc8, 0x24, 0xe4, 0x2a, 0x6b, 0xb5, 0x72, 0x71, 0xd3, 0x2c, 0xe7, - 0xd3, 0x57, 0x17, 0x61, 0x3a, 0x7a, 0x99, 0x0d, 0xcd, 0x5f, 0x63, 0x90, 0x31, 0x0b, 0xdb, 0xf9, - 0xe7, 0x08, 0xc0, 0x68, 0xf5, 0x5e, 0xb1, 0x76, 0xe3, 0x46, 0x3e, 0x45, 0x26, 0x60, 0xec, 0x4e, - 0xb1, 0x6a, 0xdd, 0x5b, 0xad, 0xe5, 0xd3, 0x57, 0x3f, 0x03, 0xb3, 0xb8, 0xc0, 0xae, 0x38, 0x7e, - 0x40, 0xdb, 0xd4, 0xc3, 0x6a, 0x27, 0x21, 0x57, 0xa3, 0x4c, 0x10, 0x02, 0xca, 0xeb, 0x5c, 0xed, - 0x36, 0x03, 0xa7, 0xd3, 0xa4, 0x8f, 0xf2, 0xa9, 0xab, 0x6f, 0xc2, 0x8c, 0xe9, 0x76, 0x03, 0xa7, - 0xbd, 0x57, 0x0b, 0x18, 0xc6, 0xde, 0x01, 0x39, 0x09, 0xb3, 0x9b, 0x6b, 0x85, 0xd5, 0xa5, 0xca, - 0x9d, 0xcd, 0xf5, 0xcd, 0x9a, 0xb5, 0x5a, 0xd8, 0x28, 0x2e, 0x73, 0x7b, 0xdb, 0xea, 0x7a, 0x6d, - 0xc3, 0x32, 0xcb, 0xc5, 0xf2, 0xda, 0x46, 0x3e, 0x75, 0xf5, 0xa7, 0x53, 0x30, 0xbd, 0xe9, 0x0b, - 0xff, 0xa5, 0x4d, 0x8c, 0x40, 0xba, 0x00, 0xe7, 0x36, 0x6b, 0x65, 0xd3, 0xda, 0x58, 0xbf, 0x57, - 0x5e, 0xb3, 0x36, 0x6b, 0x85, 0x3b, 0xf1, 0xb8, 0xc7, 0x05, 0x78, 0x5e, 0xc1, 0x30, 0xcb, 0xc5, - 0xf5, 0xad, 0xb2, 0x69, 0x55, 0x0b, 0xb5, 0xda, 0xf6, 0xba, 0x59, 0xca, 0xa7, 0xc8, 0x59, 0x38, - 0x95, 0x80, 0xb0, 0x7a, 0xbb, 0x90, 0x4f, 0xf7, 0x94, 0xad, 0x95, 0xb7, 0x0b, 0x2b, 0xd6, 0xd2, - 0xfa, 0x06, 0xf6, 0xf7, 0xa4, 0x08, 0x0d, 0xe2, 0x59, 0x4c, 0x72, 0x90, 0x5d, 0x5b, 0x5f, 0x2b, - 0xc7, 0x6d, 0xa2, 0x93, 0x90, 0x2b, 0x54, 0xab, 0xe6, 0xfa, 0x16, 0x8e, 0x21, 0xc0, 0x68, 0xa9, - 0xbc, 0xc6, 0x5a, 0x96, 0xb9, 0xfa, 0xff, 0x03, 0xc2, 0x63, 0x9e, 0x64, 0x2a, 0x08, 0xec, 0xbc, - 0xf3, 0x70, 0x76, 0x99, 0x7d, 0x35, 0xd6, 0xbb, 0xba, 0x5e, 0x8a, 0x7f, 0xcf, 0x29, 0x20, 0xb1, - 0xf2, 0xf5, 0xdb, 0xb7, 0xf3, 0x29, 0x72, 0x1a, 0x4e, 0xc4, 0xe0, 0x25, 0x73, 0xbd, 0x9a, 0x4f, - 0x27, 0x14, 0xdc, 0x2b, 0x97, 0xab, 0xf9, 0xcc, 0x55, 0x03, 0x66, 0x8b, 0xd4, 0x0b, 0x98, 0x9a, - 0xd2, 0x66, 0x87, 0x62, 0xac, 0x7e, 0x0a, 0xc6, 0xcb, 0x5f, 0xda, 0x28, 0xaf, 0xd5, 0x2a, 0xeb, - 0x6b, 0xf9, 0xe7, 0xae, 0x9e, 0x8b, 0xe1, 0x48, 0xb1, 0xa8, 0xd5, 0x96, 0xf3, 0xcf, 0x5d, 0xfd, - 0x0a, 0x3b, 0xc2, 0x2b, 0x19, 0x82, 0x4e, 0xc3, 0x09, 0xf5, 0x77, 0x95, 0xb6, 0x1b, 0x4e, 0x7b, - 0x2f, 0xff, 0x5c, 0xbc, 0xc0, 0xec, 0xb6, 0xdb, 0xac, 0x00, 0x3b, 0x5f, 0x2d, 0xd8, 0xa0, 0x5e, - 0xcb, 0x69, 0xdb, 0x01, 0x6d, 0xe4, 0xd3, 0x57, 0xaf, 0xc1, 0x94, 0x16, 0xd5, 0xc5, 0xea, 0x5d, - 0x59, 0x17, 0xe2, 0xb8, 0x5a, 0x2e, 0x55, 0x36, 0x57, 0xf3, 0x23, 0xac, 0xdb, 0x97, 0x2b, 0x77, - 0x96, 0xf3, 0x70, 0xf5, 0x2b, 0x6c, 0x03, 0xc5, 0xc4, 0x07, 0xab, 0xb7, 0x0b, 0xb2, 0xa1, 0xac, - 0x73, 0x78, 0xfc, 0x67, 0xb9, 0x56, 0xe3, 0x66, 0xdb, 0x73, 0x30, 0x2f, 0x7e, 0x58, 0x85, 0xb5, - 0x92, 0xb5, 0x5c, 0x30, 0x4b, 0xdb, 0x05, 0x93, 0x75, 0xcb, 0x07, 0xf9, 0x34, 0xf6, 0xaf, 0x02, - 0xb1, 0x36, 0xd6, 0x37, 0x8b, 0xcb, 0xf9, 0xcc, 0x55, 0x07, 0xf2, 0x71, 0xaf, 0xcb, 0x1e, 0x4b, - 0xb8, 0xb9, 0xb9, 0xb6, 0xc6, 0x47, 0x7d, 0x06, 0x26, 0xd6, 0x37, 0x96, 0xcb, 0xa6, 0x88, 0xb5, - 0xc5, 0xe0, 0xda, 0xcd, 0xb5, 0xc2, 0xe6, 0xc6, 0xf2, 0xba, 0x59, 0xf9, 0x32, 0x1b, 0x7e, 0x32, - 0x0f, 0x73, 0xb5, 0x95, 0x42, 0xf1, 0x9e, 0xb5, 0xb6, 0xbe, 0x61, 0x55, 0xd6, 0xac, 0xe2, 0x72, - 0x61, 0x6d, 0xad, 0xbc, 0x92, 0x87, 0xab, 0xff, 0x38, 0x05, 0xcf, 0x0f, 0x30, 0x2b, 0x92, 0xd7, - 0xe1, 0xca, 0x72, 0xb9, 0x50, 0x5a, 0x29, 0xd7, 0x6a, 0x16, 0x63, 0x59, 0x5e, 0xdb, 0x10, 0x46, - 0x69, 0x5c, 0x15, 0xe2, 0x12, 0x73, 0x05, 0x5e, 0x1e, 0x8c, 0x1e, 0x09, 0xeb, 0x65, 0x78, 0x69, - 0x30, 0xaa, 0x10, 0xde, 0x34, 0xb9, 0x0a, 0x97, 0x06, 0x63, 0x86, 0x42, 0x9f, 0x59, 0x7a, 0xe7, - 0x77, 0x7f, 0xff, 0xfc, 0x73, 0xbf, 0xfb, 0x07, 0xe7, 0x53, 0xbf, 0xf7, 0x07, 0xe7, 0x53, 0xff, - 0xfc, 0x0f, 0xce, 0xa7, 0xbe, 0xfc, 0xea, 0x31, 0xb2, 0xa1, 0xef, 0x8c, 0xe2, 0xad, 0xc7, 0xcd, - 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x65, 0x16, 0x4f, 0x4c, 0x33, 0x56, 0x01, 0x00, + 0x76, 0x18, 0x86, 0x6f, 0x7f, 0xcc, 0x4c, 0xcf, 0x9b, 0xaf, 0x9e, 0xc4, 0xd7, 0x00, 0x8b, 0xc5, + 0x60, 0x0b, 0xbb, 0x58, 0x00, 0xbb, 0x0b, 0x1c, 0x80, 0x5b, 0xdc, 0xed, 0xed, 0xd7, 0xf5, 0x74, + 0x0f, 0x30, 0x0d, 0xcc, 0x47, 0x6f, 0xf5, 0x7c, 0xdc, 0xde, 0xde, 0x5d, 0x5d, 0x4d, 0x77, 0xce, + 0x4c, 0x2d, 0xba, 0xbb, 0xfa, 0xaa, 0xaa, 0x01, 0xcc, 0x51, 0xfa, 0x89, 0xa4, 0x44, 0xdd, 0x8f, + 0xe6, 0xf1, 0x8e, 0x94, 0x8f, 0xe2, 0xc9, 0x96, 0x82, 0x0c, 0x86, 0x24, 0x93, 0x16, 0xc9, 0x90, + 0x45, 0x39, 0x24, 0x07, 0x6d, 0xda, 0x74, 0x28, 0x18, 0xb4, 0x14, 0xb2, 0xf8, 0x87, 0x3f, 0x42, + 0x67, 0xc5, 0x58, 0x24, 0x2d, 0x85, 0x03, 0xe1, 0x50, 0xc8, 0xc1, 0xb0, 0xc2, 0x3e, 0x07, 0x65, + 0x47, 0xbe, 0xcc, 0xac, 0xca, 0xac, 0xaa, 0xee, 0xe9, 0x59, 0x60, 0x4d, 0x62, 0xed, 0x7f, 0x80, + 0xe9, 0x97, 0xef, 0xbd, 0xcc, 0xca, 0x7c, 0x99, 0xf9, 0xf2, 0xe5, 0x7b, 0x2f, 0xe1, 0xc5, 0x80, + 0xb6, 0x68, 0xd7, 0xf5, 0x82, 0x6b, 0x2d, 0xba, 0x6b, 0x37, 0xf6, 0xaf, 0x05, 0xfb, 0x5d, 0xea, + 0xf3, 0x7f, 0xaf, 0x76, 0x3d, 0x37, 0x70, 0xc9, 0x08, 0xfe, 0x38, 0x73, 0x7c, 0xd7, 0xdd, 0x75, + 0x11, 0x72, 0x8d, 0xfd, 0xc5, 0x0b, 0xcf, 0xcc, 0xef, 0xba, 0xee, 0x6e, 0x8b, 0x5e, 0xc3, 0x5f, + 0xdb, 0xbd, 0x9d, 0x6b, 0x81, 0xd3, 0xa6, 0x7e, 0x60, 0xb7, 0xbb, 0x02, 0xe1, 0x72, 0x58, 0x81, + 0x1d, 0x04, 0xac, 0x24, 0x70, 0xdc, 0xce, 0xb5, 0x07, 0xd7, 0xd5, 0x9f, 0x02, 0xf5, 0xf5, 0xf4, + 0xb6, 0x3c, 0xf4, 0xec, 0x6e, 0x97, 0x7a, 0xd1, 0x1f, 0x1c, 0xdd, 0xf8, 0x7b, 0x39, 0x18, 0xbf, + 0x47, 0x69, 0xb7, 0xd4, 0x72, 0x1e, 0x50, 0x72, 0x01, 0xf2, 0xab, 0x76, 0x9b, 0xce, 0x65, 0xce, + 0x67, 0x2e, 0x8d, 0x2f, 0xcc, 0x3c, 0x3e, 0x98, 0x9f, 0xf0, 0xa9, 0xf7, 0x80, 0x7a, 0x56, 0xc7, + 0x6e, 0x53, 0x13, 0x0b, 0xc9, 0xab, 0x30, 0xce, 0xfe, 0xf7, 0xbb, 0x76, 0x83, 0xce, 0x65, 0x11, + 0x73, 0xea, 0xf1, 0xc1, 0xfc, 0x78, 0x47, 0x02, 0xcd, 0xa8, 0x9c, 0x5c, 0x84, 0xb1, 0x65, 0x6a, + 0xfb, 0xb4, 0x5a, 0x99, 0xcb, 0x9d, 0xcf, 0x5c, 0xca, 0x2d, 0x4c, 0x3e, 0x3e, 0x98, 0x2f, 0xb4, + 0x18, 0xc8, 0x72, 0x9a, 0xa6, 0x2c, 0x24, 0x55, 0x18, 0x5b, 0x7c, 0xd4, 0x75, 0x3c, 0xea, 0xcf, + 0xe5, 0xcf, 0x67, 0x2e, 0x4d, 0xdc, 0x38, 0x73, 0x95, 0x77, 0xca, 0x55, 0xd9, 0x29, 0x57, 0xd7, + 0x65, 0xa7, 0x2c, 0x1c, 0xfb, 0xdd, 0x83, 0xf9, 0xe7, 0x1e, 0x1f, 0xcc, 0x8f, 0x51, 0x4e, 0xf2, + 0x33, 0xff, 0xe3, 0x7c, 0xc6, 0x94, 0xf4, 0xe4, 0x6d, 0xc8, 0xaf, 0xef, 0x77, 0xe9, 0xdc, 0xf8, + 0xf9, 0xcc, 0xa5, 0xe9, 0x1b, 0xe7, 0xae, 0xf2, 0x61, 0x08, 0x3f, 0x32, 0xfa, 0x8b, 0x61, 0x2d, + 0x14, 0x1e, 0x1f, 0xcc, 0xe7, 0x19, 0x8a, 0x89, 0x54, 0xe4, 0x75, 0x18, 0x5d, 0x72, 0xfd, 0xa0, + 0x5a, 0x99, 0x03, 0xfc, 0xb4, 0x13, 0x8f, 0x0f, 0xe6, 0x67, 0xf7, 0x5c, 0x3f, 0xb0, 0x9c, 0xe6, + 0x6b, 0x6e, 0xdb, 0x09, 0x68, 0xbb, 0x1b, 0xec, 0x9b, 0x02, 0xc9, 0x78, 0x04, 0x53, 0x1a, 0x3f, + 0x32, 0x01, 0x63, 0x1b, 0xab, 0xf7, 0x56, 0xd7, 0xb6, 0x56, 0x8b, 0xcf, 0x91, 0x02, 0xe4, 0x57, + 0xd7, 0x2a, 0x8b, 0xc5, 0x0c, 0x19, 0x83, 0x5c, 0xa9, 0x56, 0x2b, 0x66, 0xc9, 0x24, 0x14, 0x2a, + 0xa5, 0xf5, 0xd2, 0x42, 0xa9, 0xbe, 0x58, 0xcc, 0x91, 0x63, 0x30, 0xb3, 0x55, 0x5d, 0xad, 0xac, + 0x6d, 0xd5, 0xad, 0xca, 0x62, 0xfd, 0xde, 0xfa, 0x5a, 0xad, 0x98, 0x27, 0xd3, 0x00, 0xf7, 0x36, + 0x16, 0x16, 0xcd, 0xd5, 0xc5, 0xf5, 0xc5, 0x7a, 0x71, 0x84, 0x1c, 0x87, 0xa2, 0x24, 0xb1, 0xea, + 0x8b, 0xe6, 0x66, 0xb5, 0xbc, 0x58, 0x1c, 0x35, 0xbe, 0x95, 0x83, 0xc2, 0x0a, 0x0d, 0xec, 0xa6, + 0x1d, 0xd8, 0xe4, 0xac, 0x36, 0x70, 0xf8, 0x4d, 0xca, 0x88, 0x5d, 0x48, 0x8e, 0xd8, 0xc8, 0xe3, + 0x83, 0xf9, 0xcc, 0xeb, 0xea, 0x48, 0xbd, 0x05, 0x13, 0x15, 0xea, 0x37, 0x3c, 0xa7, 0xcb, 0xa4, + 0x09, 0x47, 0x6b, 0x7c, 0xe1, 0xf4, 0xe3, 0x83, 0xf9, 0x13, 0xcd, 0x08, 0xac, 0xf4, 0x80, 0x8a, + 0x4d, 0xaa, 0x30, 0xba, 0x6c, 0x6f, 0xd3, 0x96, 0x3f, 0x37, 0x72, 0x3e, 0x77, 0x69, 0xe2, 0xc6, + 0xf3, 0xa2, 0xd7, 0x65, 0x03, 0xaf, 0xf2, 0xd2, 0xc5, 0x4e, 0xe0, 0xed, 0x2f, 0x1c, 0x7f, 0x7c, + 0x30, 0x5f, 0x6c, 0x21, 0x40, 0xed, 0x51, 0x8e, 0x42, 0xea, 0x91, 0x24, 0x8c, 0x1e, 0x2a, 0x09, + 0x2f, 0xfc, 0xee, 0xc1, 0x7c, 0x86, 0x8d, 0x90, 0x90, 0x84, 0x88, 0x9f, 0x2e, 0x13, 0xe7, 0x21, + 0x5b, 0xad, 0xcc, 0x8d, 0xa1, 0x04, 0x16, 0x1f, 0x1f, 0xcc, 0x4f, 0x6a, 0x83, 0x99, 0xad, 0x56, + 0xce, 0xbc, 0x09, 0x13, 0x4a, 0x1b, 0x49, 0x11, 0x72, 0xf7, 0xe9, 0x3e, 0xef, 0x4f, 0x93, 0xfd, + 0x49, 0x8e, 0xc3, 0xc8, 0x03, 0xbb, 0xd5, 0x13, 0x1d, 0x68, 0xf2, 0x1f, 0x5f, 0xc8, 0x7e, 0x3e, + 0x63, 0xfc, 0xa5, 0x3c, 0x14, 0x4c, 0x97, 0xcf, 0x42, 0x72, 0x19, 0x46, 0xea, 0x81, 0x1d, 0xc8, + 0xa1, 0x38, 0xf6, 0xf8, 0x60, 0x7e, 0x86, 0xcd, 0x50, 0xaa, 0xd4, 0xc7, 0x31, 0x18, 0x6a, 0x6d, + 0xcf, 0xf6, 0xe5, 0x90, 0x20, 0x6a, 0x97, 0x01, 0x54, 0x54, 0xc4, 0x20, 0x17, 0x21, 0xbf, 0xe2, + 0x36, 0xa9, 0x18, 0x15, 0xf2, 0xf8, 0x60, 0x7e, 0xba, 0xed, 0x36, 0x55, 0x44, 0x2c, 0x27, 0xaf, + 0xc1, 0x78, 0xb9, 0xe7, 0x79, 0xb4, 0xc3, 0x04, 0x38, 0x8f, 0xc8, 0xd3, 0x8f, 0x0f, 0xe6, 0xa1, + 0xc1, 0x81, 0x6c, 0xca, 0x45, 0x08, 0xac, 0xab, 0xeb, 0x81, 0xed, 0x05, 0xb4, 0x39, 0x37, 0x32, + 0x54, 0x57, 0xb3, 0x49, 0x37, 0xeb, 0x73, 0x92, 0x78, 0x57, 0x0b, 0x4e, 0x64, 0x09, 0x26, 0xee, + 0x78, 0x76, 0x83, 0xd6, 0xa8, 0xe7, 0xb8, 0x4d, 0x1c, 0xc3, 0xdc, 0xc2, 0xc5, 0xc7, 0x07, 0xf3, + 0x27, 0x77, 0x19, 0xd8, 0xea, 0x22, 0x3c, 0xa2, 0xfe, 0xe1, 0xc1, 0x7c, 0xa1, 0xd2, 0xf3, 0xb0, + 0xf7, 0x4c, 0x95, 0x94, 0x7c, 0x9d, 0x0d, 0x89, 0x1f, 0x60, 0xd7, 0xd2, 0x26, 0x8e, 0xde, 0xe0, + 0x26, 0x1a, 0xa2, 0x89, 0x27, 0x5b, 0xb6, 0x1f, 0x58, 0x1e, 0xa7, 0x8b, 0xb5, 0x53, 0x65, 0x49, + 0xd6, 0xa0, 0x50, 0x6f, 0xec, 0xd1, 0x66, 0xaf, 0x45, 0xe7, 0x0a, 0xc8, 0xfe, 0x94, 0x10, 0x5c, + 0x39, 0x9e, 0xb2, 0x78, 0xe1, 0x8c, 0xe0, 0x4d, 0x7c, 0x01, 0x51, 0xfa, 0x3e, 0x64, 0xf2, 0x85, + 0xc2, 0xf7, 0x7f, 0x71, 0xfe, 0xb9, 0x1f, 0xfd, 0x67, 0xe7, 0x9f, 0x33, 0xfe, 0x5e, 0x16, 0x8a, + 0x71, 0x26, 0x64, 0x07, 0xa6, 0x36, 0xba, 0x4d, 0x3b, 0xa0, 0xe5, 0x96, 0x43, 0x3b, 0x81, 0x8f, + 0x42, 0x32, 0xf8, 0x9b, 0x5e, 0x12, 0xf5, 0xce, 0xf5, 0x90, 0xd0, 0x6a, 0x70, 0xca, 0xd8, 0x57, + 0xe9, 0x6c, 0xa3, 0x7a, 0xea, 0xb8, 0x7a, 0xfb, 0x28, 0x61, 0x47, 0xab, 0x87, 0xaf, 0xfb, 0x7d, + 0xea, 0x11, 0x6c, 0x85, 0x00, 0x75, 0x9a, 0xdb, 0xfb, 0x28, 0x99, 0xc3, 0x0b, 0x10, 0x23, 0x49, + 0x11, 0x20, 0x06, 0x36, 0xfe, 0xa7, 0x0c, 0x4c, 0x9b, 0xd4, 0x77, 0x7b, 0x5e, 0x83, 0x2e, 0x51, + 0xbb, 0x49, 0x3d, 0x26, 0xfe, 0xf7, 0x9c, 0x4e, 0x53, 0xcc, 0x29, 0x14, 0xff, 0xfb, 0x4e, 0x47, + 0x9d, 0xc2, 0x58, 0x4e, 0x3e, 0x03, 0x63, 0xf5, 0xde, 0x36, 0xa2, 0xf2, 0x39, 0x75, 0x12, 0x47, + 0xac, 0xb7, 0x6d, 0xc5, 0xd0, 0x25, 0x1a, 0xb9, 0x06, 0x63, 0x9b, 0xd4, 0xf3, 0xa3, 0x15, 0x0f, + 0xd7, 0xfb, 0x07, 0x1c, 0xa4, 0x12, 0x08, 0x2c, 0x72, 0x27, 0x5a, 0x75, 0xc5, 0x4e, 0x35, 0x13, + 0x5b, 0xeb, 0x22, 0x51, 0x69, 0x0b, 0x88, 0x2a, 0x2a, 0x12, 0xcb, 0xf8, 0xd9, 0x2c, 0x14, 0x2b, + 0x76, 0x60, 0x6f, 0xdb, 0xbe, 0xe8, 0xcf, 0xcd, 0x9b, 0x6c, 0x1d, 0x57, 0x3e, 0x14, 0xd7, 0x71, + 0xd6, 0xf2, 0x8f, 0xfd, 0x79, 0x2f, 0xc7, 0x3f, 0x6f, 0x82, 0x6d, 0x9b, 0xe2, 0xf3, 0xa2, 0x8f, + 0x7a, 0xe7, 0xf0, 0x8f, 0x2a, 0x8a, 0x8f, 0x2a, 0xc8, 0x8f, 0x8a, 0x3e, 0x85, 0xbc, 0x03, 0xf9, + 0x7a, 0x97, 0x36, 0xc4, 0x22, 0x22, 0xd7, 0x7e, 0xfd, 0xe3, 0x18, 0xc2, 0xe6, 0xcd, 0x85, 0x49, + 0xc1, 0x26, 0xef, 0x77, 0x69, 0xc3, 0x44, 0x32, 0x65, 0xd2, 0xfc, 0xfd, 0x1c, 0x1c, 0x4f, 0x23, + 0x53, 0xbf, 0x63, 0x74, 0xc0, 0x77, 0x5c, 0x82, 0x02, 0xdb, 0x97, 0xd9, 0xd6, 0x87, 0xcb, 0xc5, + 0x38, 0x57, 0x37, 0xf6, 0x04, 0xcc, 0x0c, 0x4b, 0xc9, 0x85, 0x70, 0x9b, 0x2f, 0x44, 0xfc, 0xc4, + 0x36, 0x2f, 0x37, 0x77, 0x36, 0xd6, 0x72, 0x0a, 0xa3, 0x36, 0x10, 0x75, 0x8b, 0x04, 0x47, 0x63, + 0xed, 0x09, 0x88, 0x3a, 0xd6, 0xe1, 0xa6, 0xb0, 0x08, 0x05, 0xf9, 0x59, 0x73, 0x93, 0xc8, 0x68, + 0x36, 0xd6, 0x49, 0x9b, 0x37, 0xf9, 0x60, 0x36, 0xc5, 0x6f, 0x95, 0x8d, 0xc4, 0x21, 0x37, 0xa1, + 0x50, 0xf3, 0xdc, 0x47, 0xfb, 0xd5, 0x8a, 0x3f, 0x37, 0x75, 0x3e, 0x77, 0x69, 0x7c, 0xe1, 0xd4, + 0xe3, 0x83, 0xf9, 0x63, 0x5d, 0x06, 0xb3, 0x9c, 0xa6, 0xba, 0x9b, 0x86, 0x88, 0x77, 0xf3, 0x85, + 0x4c, 0x31, 0x7b, 0x37, 0x5f, 0xc8, 0x16, 0x73, 0x77, 0xf3, 0x85, 0x5c, 0x31, 0x7f, 0x37, 0x5f, + 0xc8, 0x17, 0x47, 0xee, 0xe6, 0x0b, 0x23, 0xc5, 0xd1, 0xbb, 0xf9, 0xc2, 0x78, 0x11, 0xee, 0xe6, + 0x0b, 0x13, 0xc5, 0x49, 0x6d, 0x47, 0x47, 0x06, 0x81, 0xdb, 0x70, 0x5b, 0x66, 0x6e, 0xc3, 0xac, + 0x9a, 0xa3, 0xe5, 0x52, 0x99, 0x7a, 0x81, 0x99, 0x2b, 0x6d, 0xd5, 0xcd, 0xa9, 0xca, 0x7e, 0xc7, + 0x6e, 0x3b, 0x0d, 0xbe, 0x61, 0x9a, 0xb9, 0x3b, 0xe5, 0x9a, 0x51, 0x82, 0xe9, 0xe8, 0x5b, 0x96, + 0x1d, 0x3f, 0x20, 0xd7, 0x60, 0x5c, 0x42, 0xd8, 0x42, 0x97, 0x4b, 0xfd, 0x6a, 0x33, 0xc2, 0x31, + 0x7e, 0x27, 0x0b, 0x10, 0x95, 0x3c, 0xa3, 0x73, 0xe1, 0x73, 0xda, 0x5c, 0x38, 0x11, 0x9f, 0x0b, + 0x7d, 0x67, 0x01, 0x79, 0x0f, 0x46, 0x99, 0x5a, 0xd0, 0x93, 0x6a, 0xcf, 0xa9, 0x38, 0x29, 0x16, + 0x6e, 0xde, 0x5c, 0x98, 0x16, 0xc4, 0xa3, 0x3e, 0x42, 0x4c, 0x41, 0xa6, 0x4c, 0xa3, 0xff, 0x6e, + 0x34, 0x1a, 0x0c, 0x31, 0x81, 0x2e, 0x41, 0x38, 0xa0, 0xa2, 0x43, 0x71, 0x66, 0x74, 0xe5, 0x20, + 0x87, 0xa5, 0xe4, 0x34, 0xb0, 0x01, 0x17, 0x9d, 0x3a, 0xf6, 0xf8, 0x60, 0x3e, 0xd7, 0xf3, 0x1c, + 0x14, 0x02, 0x72, 0x0d, 0x84, 0x18, 0x88, 0x0e, 0x64, 0xd2, 0x37, 0xdb, 0xb0, 0xad, 0x06, 0xf5, + 0x82, 0xa8, 0xc7, 0xe7, 0x32, 0x52, 0x5a, 0x48, 0x17, 0x74, 0x51, 0x99, 0xcb, 0xa3, 0x18, 0x5c, + 0x4a, 0xed, 0x95, 0xab, 0x1a, 0x2a, 0x57, 0x15, 0xcf, 0xcb, 0x5d, 0xa9, 0xc9, 0xcb, 0xac, 0x84, + 0xda, 0xa8, 0x57, 0x40, 0x6e, 0x02, 0x93, 0x50, 0xd1, 0xfb, 0x20, 0xea, 0x29, 0x6d, 0xd5, 0x17, + 0x4e, 0x08, 0x4e, 0x53, 0xf6, 0x43, 0x95, 0x9c, 0x61, 0x93, 0xb7, 0x80, 0x89, 0xb0, 0xe8, 0x77, + 0x22, 0x88, 0xee, 0x94, 0x6b, 0xe5, 0x96, 0xdb, 0x6b, 0xd6, 0xdf, 0x5f, 0x8e, 0x88, 0x77, 0x1b, + 0x5d, 0x95, 0xf8, 0x4e, 0xb9, 0x46, 0xde, 0x82, 0x91, 0xd2, 0x37, 0x7b, 0x1e, 0x15, 0xfa, 0xc9, + 0xa4, 0xac, 0x93, 0xc1, 0x16, 0x4e, 0x09, 0xc2, 0x19, 0x9b, 0xfd, 0x54, 0xf5, 0x3a, 0x2c, 0x67, + 0x35, 0xaf, 0x2f, 0xd7, 0x85, 0xee, 0x41, 0x62, 0xdd, 0xb2, 0xbe, 0xac, 0x34, 0x3b, 0xd0, 0xbe, + 0x9a, 0x51, 0x91, 0x6b, 0x90, 0x2d, 0x55, 0xf0, 0x98, 0x33, 0x71, 0x63, 0x5c, 0x56, 0x5b, 0x59, + 0x38, 0x2e, 0x48, 0x26, 0x6d, 0x4d, 0xc7, 0x2d, 0x55, 0xc8, 0x02, 0x8c, 0xac, 0xec, 0xd7, 0xdf, + 0x5f, 0x16, 0x8b, 0xd9, 0x31, 0x29, 0xd7, 0x0c, 0xb6, 0x86, 0xd3, 0xde, 0x8f, 0x5a, 0xdc, 0xde, + 0xf7, 0xbf, 0xd1, 0x52, 0x5b, 0x8c, 0x68, 0xa4, 0x06, 0xe3, 0xa5, 0x66, 0xdb, 0xe9, 0x6c, 0xf8, + 0xd4, 0x9b, 0x9b, 0x40, 0x3e, 0x73, 0xb1, 0x76, 0x87, 0xe5, 0x0b, 0x73, 0x8f, 0x0f, 0xe6, 0x8f, + 0xdb, 0xec, 0xa7, 0xd5, 0xf3, 0xa9, 0xa7, 0x70, 0x8b, 0x98, 0x90, 0x1a, 0xc0, 0x8a, 0xdb, 0xd9, + 0x75, 0x4b, 0x41, 0xcb, 0xf6, 0x63, 0xcb, 0x63, 0x54, 0x10, 0xaa, 0x0f, 0x27, 0xda, 0x0c, 0x66, + 0xd9, 0x0c, 0xa8, 0x30, 0x54, 0x78, 0x9c, 0xd9, 0x02, 0x92, 0x94, 0xa5, 0x14, 0x95, 0xfe, 0x55, + 0x55, 0xa5, 0x8f, 0x26, 0x6b, 0xd9, 0x6d, 0xb7, 0xed, 0x4e, 0x13, 0x69, 0x37, 0x6f, 0xa8, 0x9a, + 0xfe, 0x75, 0x98, 0x4d, 0x7c, 0xe4, 0xe0, 0xb3, 0x97, 0xf1, 0xd7, 0xd5, 0x6d, 0x5e, 0x4c, 0x61, + 0x76, 0xc8, 0x14, 0x13, 0x29, 0x13, 0x29, 0x1d, 0x89, 0x89, 0x14, 0x4e, 0xa3, 0xcb, 0x5c, 0xa8, + 0xb3, 0x09, 0xa1, 0x9e, 0x10, 0x7d, 0x92, 0xb3, 0x1f, 0xfa, 0x5c, 0x94, 0xc3, 0x21, 0xce, 0x7d, + 0xfc, 0x21, 0x7e, 0x0f, 0x26, 0x57, 0xec, 0x8e, 0xbd, 0x4b, 0x9b, 0xec, 0xfb, 0xf8, 0xa4, 0x1d, + 0x5f, 0x78, 0xfe, 0xf1, 0xc1, 0xfc, 0xa9, 0x36, 0x87, 0xe3, 0x68, 0xaa, 0xbd, 0xaf, 0x11, 0x90, + 0xeb, 0x72, 0x4a, 0x8c, 0xa4, 0x4c, 0x89, 0x29, 0x51, 0xfb, 0x08, 0x4e, 0x09, 0x31, 0x11, 0x8c, + 0x7f, 0x3a, 0x86, 0xdf, 0x48, 0x5e, 0x83, 0x51, 0x93, 0xee, 0xb2, 0x35, 0x9a, 0xf7, 0x0c, 0x9e, + 0x15, 0x3d, 0x84, 0xa8, 0x1d, 0xc3, 0x71, 0x70, 0x83, 0xa6, 0x4d, 0x7f, 0xcf, 0xd9, 0x09, 0x44, + 0xef, 0x84, 0x1b, 0xb4, 0x00, 0x2b, 0x1b, 0xb4, 0x80, 0x68, 0x1b, 0xb4, 0x80, 0xb1, 0x65, 0xc3, + 0xac, 0xd4, 0x45, 0xa7, 0xc9, 0x1e, 0x36, 0x2b, 0xca, 0xfc, 0xf3, 0xb4, 0xed, 0x95, 0x61, 0x93, + 0x5b, 0x30, 0x5e, 0x6a, 0x34, 0xdc, 0x9e, 0x72, 0xd8, 0xe2, 0x02, 0xcf, 0x81, 0xba, 0xc1, 0x20, + 0x42, 0x25, 0x75, 0x98, 0x58, 0x64, 0x27, 0x14, 0xa7, 0x6c, 0x37, 0xf6, 0x64, 0x27, 0xc9, 0xc9, + 0xaf, 0x94, 0x44, 0x22, 0x4f, 0x11, 0xd8, 0x60, 0x40, 0xf5, 0x04, 0xae, 0xe0, 0x92, 0x75, 0x98, + 0xa8, 0xd3, 0x86, 0x47, 0x83, 0x7a, 0xe0, 0x7a, 0x34, 0xb6, 0x96, 0x29, 0x25, 0x0b, 0xe7, 0xe4, + 0x21, 0xc9, 0x47, 0xa0, 0xe5, 0x33, 0xa8, 0xca, 0x55, 0x41, 0xe6, 0xda, 0x6e, 0xdb, 0xf5, 0xf6, + 0x2b, 0x0b, 0x62, 0x7d, 0x8b, 0x36, 0x43, 0x0e, 0x56, 0xb5, 0x5d, 0x06, 0x69, 0x6e, 0xeb, 0xda, + 0x2e, 0xc7, 0xc2, 0x91, 0xaa, 0xd4, 0x51, 0x29, 0x11, 0xab, 0xdd, 0x4c, 0xd4, 0xcb, 0x08, 0x56, + 0x46, 0xaa, 0xe9, 0xa3, 0x4a, 0xa3, 0x8d, 0x94, 0xc0, 0x22, 0x5d, 0x20, 0x72, 0xd4, 0xb8, 0x86, + 0xd8, 0xa2, 0xbe, 0x2f, 0x16, 0xc1, 0xd3, 0xb1, 0xc1, 0x8f, 0x10, 0x16, 0x5e, 0x16, 0xcc, 0x5f, + 0x90, 0x62, 0x20, 0x0e, 0x38, 0xac, 0x50, 0xa9, 0x27, 0x85, 0x37, 0x79, 0x13, 0x60, 0xf1, 0x51, + 0x40, 0xbd, 0x8e, 0xdd, 0x0a, 0xad, 0x42, 0x68, 0x17, 0xa1, 0x02, 0xaa, 0x0f, 0xb4, 0x82, 0x4c, + 0xca, 0x30, 0x55, 0xf2, 0xfd, 0x5e, 0x9b, 0x9a, 0x6e, 0x8b, 0x96, 0xcc, 0x55, 0x5c, 0x30, 0xc7, + 0x17, 0x5e, 0x78, 0x7c, 0x30, 0x7f, 0xda, 0xc6, 0x02, 0xcb, 0x73, 0x5b, 0xd4, 0xb2, 0x3d, 0x55, + 0xba, 0x75, 0x1a, 0xb2, 0x06, 0xb0, 0xd6, 0xa5, 0x9d, 0x3a, 0xb5, 0xbd, 0xc6, 0x5e, 0x6c, 0x7d, + 0x8c, 0x0a, 0x16, 0xce, 0x8a, 0x2f, 0x3c, 0xee, 0x76, 0x69, 0xc7, 0x47, 0x98, 0xda, 0xaa, 0x08, + 0x93, 0x6c, 0xc1, 0x4c, 0xb5, 0xb4, 0x52, 0x73, 0x5b, 0x4e, 0x63, 0x5f, 0xa8, 0x1c, 0xd3, 0x68, + 0x2b, 0x3b, 0x29, 0xb8, 0xc6, 0x4a, 0xf9, 0xf2, 0xe4, 0xd8, 0x6d, 0xab, 0x8b, 0x50, 0x4b, 0x28, + 0x1e, 0x71, 0x2e, 0x77, 0xf3, 0x85, 0xa9, 0xe2, 0xb4, 0x02, 0x5e, 0x7c, 0xe4, 0xf8, 0x81, 0x6f, + 0xfc, 0x88, 0x26, 0x9a, 0x6c, 0xda, 0xdc, 0xa3, 0xfb, 0x35, 0x8f, 0xee, 0x38, 0x8f, 0xc4, 0x2c, + 0xc7, 0x69, 0x73, 0x9f, 0xee, 0x5b, 0x5d, 0x84, 0xaa, 0xd3, 0x26, 0x44, 0x25, 0x9f, 0x85, 0xc2, + 0xbd, 0x95, 0xfa, 0x3d, 0xba, 0x5f, 0xad, 0x08, 0xed, 0x84, 0x93, 0xb5, 0x7d, 0x8b, 0x91, 0x6a, + 0x83, 0x10, 0x62, 0x1a, 0x0b, 0xd1, 0x12, 0xc1, 0x6a, 0x2e, 0xb7, 0x7a, 0x7e, 0x40, 0xbd, 0x6a, + 0x45, 0xad, 0xb9, 0xc1, 0x81, 0xb1, 0x09, 0x1b, 0xa2, 0x1a, 0xdf, 0xce, 0xe2, 0xf2, 0xc0, 0x24, + 0xa1, 0xda, 0x61, 0xa7, 0xd7, 0x06, 0x0d, 0x19, 0xa0, 0x24, 0x38, 0x02, 0x1a, 0x93, 0x84, 0x08, + 0x59, 0xaf, 0x3a, 0x3b, 0x74, 0xd5, 0xac, 0x4a, 0x79, 0x16, 0x16, 0x26, 0x54, 0x51, 0xa5, 0x27, + 0xa0, 0xb1, 0x2a, 0x23, 0x64, 0x72, 0x11, 0xc6, 0xaa, 0xa5, 0x95, 0x52, 0x2f, 0xd8, 0xc3, 0xc5, + 0xa9, 0xc0, 0x35, 0x3e, 0x36, 0x8c, 0x76, 0x2f, 0xd8, 0x33, 0x65, 0x21, 0x3b, 0x02, 0xd7, 0x7b, + 0xdb, 0x1d, 0x1a, 0x70, 0xe3, 0x9d, 0xd8, 0x8d, 0x7c, 0x0e, 0x8a, 0x29, 0xd2, 0x0c, 0x64, 0xfc, + 0x76, 0x26, 0x9a, 0xcc, 0xec, 0x68, 0xae, 0xec, 0x7e, 0x78, 0x34, 0x67, 0xbb, 0x9f, 0x7a, 0x34, + 0x47, 0x1b, 0xa4, 0x09, 0xa4, 0xdc, 0xf3, 0x03, 0xb7, 0xbd, 0xd8, 0x69, 0x76, 0x5d, 0xa7, 0x13, + 0x20, 0x15, 0xef, 0x09, 0xe3, 0xf1, 0xc1, 0xfc, 0xb9, 0x06, 0x96, 0x5a, 0x54, 0x14, 0x5b, 0x31, + 0x2e, 0x29, 0xd4, 0x4f, 0xd0, 0x39, 0xc6, 0x3f, 0xcc, 0x6a, 0x8b, 0x30, 0x6b, 0x9e, 0x49, 0xbb, + 0x2d, 0xa7, 0x81, 0x07, 0xb6, 0x3b, 0x9e, 0xdb, 0xeb, 0x86, 0x43, 0x8c, 0xcd, 0xf3, 0xa2, 0x52, + 0x6b, 0x97, 0x15, 0xeb, 0xbc, 0x53, 0xa8, 0xc9, 0x17, 0x61, 0x92, 0xed, 0x87, 0xe2, 0xa7, 0x3f, + 0x97, 0xc5, 0xde, 0x3d, 0x8b, 0x46, 0x16, 0x9f, 0x7a, 0x21, 0x1b, 0x6d, 0x23, 0x55, 0x29, 0x48, + 0x13, 0xe6, 0xd6, 0x3d, 0xbb, 0xe3, 0x3b, 0xc1, 0x62, 0xa7, 0xe1, 0xed, 0xe3, 0xfe, 0xbd, 0xd8, + 0xb1, 0xb7, 0x5b, 0xb4, 0x89, 0x9f, 0x5b, 0x58, 0xb8, 0xf4, 0xf8, 0x60, 0xfe, 0xa5, 0x80, 0xe3, + 0x58, 0x34, 0x44, 0xb2, 0x28, 0xc7, 0x52, 0x38, 0xf7, 0xe5, 0xc4, 0xf6, 0x7b, 0xd9, 0xad, 0x68, + 0x38, 0xe7, 0x5b, 0x19, 0xee, 0xf7, 0xe1, 0x68, 0xb0, 0x85, 0x41, 0x6d, 0xa6, 0x4a, 0x60, 0xfc, + 0x9b, 0x4c, 0xb4, 0x4d, 0x90, 0xb7, 0x61, 0x42, 0x88, 0xaf, 0x22, 0x17, 0x67, 0xd8, 0x86, 0x23, + 0x65, 0x3d, 0x36, 0xb2, 0x2a, 0x3a, 0x3b, 0xd6, 0x95, 0xca, 0xcb, 0x8a, 0x6c, 0xe0, 0xb1, 0xce, + 0x6e, 0xb4, 0xe2, 0x54, 0x12, 0x8d, 0x09, 0xc1, 0xfa, 0x72, 0x5d, 0xef, 0x15, 0x14, 0x82, 0xa0, + 0xe5, 0xa7, 0x74, 0x83, 0x82, 0xfc, 0xe4, 0x1f, 0xfe, 0xdf, 0x67, 0xd2, 0x76, 0x23, 0xb2, 0x00, + 0x53, 0x5b, 0xae, 0x77, 0x1f, 0xc7, 0x57, 0xe9, 0x04, 0x1c, 0xf9, 0x87, 0xb2, 0x20, 0xfe, 0x41, + 0x3a, 0x89, 0xda, 0x36, 0xa5, 0x37, 0xf4, 0xb6, 0xc5, 0x38, 0x68, 0x04, 0x6c, 0x1c, 0x42, 0x8e, + 0xe1, 0xec, 0xc0, 0x71, 0x88, 0x9a, 0xa0, 0x89, 0xb0, 0x8a, 0x6e, 0xfc, 0x67, 0x19, 0x75, 0xd7, + 0x61, 0x9d, 0x5c, 0x71, 0xdb, 0xb6, 0xd3, 0x51, 0x3e, 0x87, 0xdf, 0x0d, 0x20, 0x34, 0xde, 0x12, + 0x05, 0x99, 0xdc, 0x84, 0x02, 0xff, 0x15, 0x2e, 0x7c, 0x68, 0xb4, 0x10, 0x84, 0xfa, 0xaa, 0x2d, + 0x11, 0x13, 0x23, 0x93, 0x3b, 0xea, 0xc8, 0xfc, 0x68, 0x06, 0x26, 0x94, 0x13, 0x1c, 0x5b, 0x7f, + 0x6b, 0x9e, 0xfb, 0x11, 0x6d, 0x04, 0xfa, 0xd2, 0xdf, 0xe5, 0xc0, 0xd8, 0xfa, 0x1b, 0xa2, 0xc6, + 0x96, 0xfc, 0xec, 0x11, 0x96, 0x7c, 0xe3, 0x7f, 0xcd, 0x08, 0x35, 0x78, 0xe8, 0x35, 0x52, 0x5f, + 0xcf, 0xb2, 0x47, 0x59, 0xec, 0xbf, 0x08, 0x23, 0x26, 0x6d, 0x3a, 0xbe, 0x50, 0x61, 0x67, 0x55, + 0x95, 0x1b, 0x0b, 0x22, 0xad, 0xdf, 0x63, 0x3f, 0x55, 0xad, 0x1f, 0xcb, 0x99, 0xae, 0x52, 0xf5, + 0x6f, 0xb7, 0xe8, 0x23, 0x87, 0x4b, 0xb2, 0xd8, 0x34, 0x50, 0x57, 0x71, 0x7c, 0x6b, 0x87, 0x95, + 0x08, 0xa5, 0x49, 0x95, 0x5a, 0x8d, 0xc6, 0xf8, 0x00, 0x20, 0xaa, 0x92, 0xdc, 0x83, 0xa2, 0x98, + 0xdb, 0x4e, 0x67, 0x97, 0xab, 0x04, 0xa2, 0x0f, 0xe6, 0x1f, 0x1f, 0xcc, 0x3f, 0xdf, 0x08, 0xcb, + 0x84, 0x62, 0xa1, 0xf0, 0x4d, 0x10, 0x1a, 0xff, 0x41, 0x96, 0x1d, 0x77, 0x59, 0x1f, 0xdd, 0xa3, + 0xfb, 0x81, 0xbd, 0x7d, 0xdb, 0x69, 0x69, 0x92, 0x78, 0x1f, 0xa1, 0xd6, 0x8e, 0xa3, 0x99, 0xe6, + 0x15, 0x64, 0x26, 0x89, 0xf7, 0xbc, 0xed, 0x37, 0x90, 0x50, 0x91, 0xc4, 0xfb, 0xde, 0xf6, 0x1b, + 0x71, 0xb2, 0x10, 0x91, 0x18, 0x30, 0xca, 0xa5, 0x52, 0xc8, 0x20, 0x3c, 0x3e, 0x98, 0x1f, 0xe5, + 0xc2, 0x6b, 0x8a, 0x12, 0x72, 0x1a, 0x72, 0xf5, 0xda, 0xaa, 0x58, 0x3e, 0xd0, 0x64, 0xe2, 0x77, + 0x3b, 0x26, 0x83, 0xb1, 0x3a, 0x97, 0x2b, 0xa5, 0x1a, 0x9e, 0xf5, 0x46, 0xa2, 0x3a, 0x5b, 0x4d, + 0xbb, 0x1b, 0x3f, 0xed, 0x85, 0x88, 0xe4, 0x1d, 0x98, 0xb8, 0x57, 0x29, 0x2f, 0xb9, 0x3e, 0x9f, + 0xfa, 0xa3, 0x91, 0xf0, 0xdf, 0x6f, 0x36, 0x2c, 0xb4, 0x52, 0xc6, 0xd7, 0x50, 0x05, 0xdf, 0xf8, + 0xb5, 0x0c, 0x4c, 0x28, 0x36, 0x04, 0xf2, 0x59, 0x71, 0x79, 0x94, 0xd1, 0x94, 0x3c, 0x05, 0x83, + 0x95, 0xf2, 0x83, 0x6b, 0xdb, 0x6d, 0x52, 0x71, 0x95, 0x14, 0x9d, 0x51, 0xb3, 0xc3, 0x9c, 0x51, + 0xdf, 0x04, 0xe0, 0x32, 0x80, 0x4d, 0x56, 0xf6, 0x62, 0xe5, 0x02, 0x59, 0x1d, 0x97, 0x08, 0xd9, + 0x30, 0x61, 0x52, 0x3d, 0x9f, 0xb2, 0xe5, 0x53, 0x18, 0xc4, 0x85, 0xb9, 0x4e, 0x59, 0x3e, 0x05, + 0xb7, 0xa4, 0x81, 0x5e, 0x27, 0x31, 0x3e, 0xab, 0x1a, 0x15, 0x86, 0x9d, 0x80, 0xc6, 0x8f, 0x67, + 0xa2, 0xe9, 0xbe, 0x79, 0x9d, 0xbc, 0x05, 0xa3, 0xfc, 0x02, 0x42, 0xdc, 0xd3, 0x9c, 0x08, 0xcf, + 0x17, 0xea, 0xed, 0x04, 0xb7, 0xe6, 0xfd, 0x1e, 0xbf, 0x88, 0x7c, 0xce, 0x14, 0x24, 0xa1, 0x21, + 0x50, 0xb7, 0x2d, 0x48, 0xee, 0x68, 0xf2, 0xba, 0x9e, 0x66, 0x08, 0x34, 0xfe, 0x65, 0x0e, 0xa6, + 0x75, 0x34, 0xf5, 0x96, 0x22, 0x33, 0xd4, 0x2d, 0xc5, 0x17, 0xa1, 0xc0, 0xfa, 0xc3, 0x69, 0x50, + 0xa9, 0x76, 0xbc, 0x84, 0xe6, 0x51, 0x01, 0xd3, 0x6e, 0xdf, 0xa0, 0xbe, 0xef, 0x07, 0xb4, 0xcd, + 0x8e, 0x1b, 0x66, 0x48, 0x45, 0x6e, 0x28, 0xa6, 0xf4, 0x5c, 0xb4, 0x13, 0x4b, 0x53, 0xba, 0x2a, + 0xb7, 0xa1, 0x51, 0xfd, 0x75, 0x18, 0x65, 0x1a, 0x65, 0x78, 0x1a, 0xc6, 0x56, 0x32, 0x65, 0x33, + 0x76, 0x77, 0xce, 0x91, 0xc8, 0x16, 0x14, 0x96, 0x6d, 0x3f, 0xa8, 0x53, 0xda, 0x19, 0xe2, 0xfe, + 0x71, 0x5e, 0x74, 0xd5, 0x31, 0xbc, 0xdc, 0xf3, 0x29, 0xed, 0xc4, 0x2e, 0x90, 0x42, 0x66, 0xe4, + 0xab, 0x00, 0x65, 0xb7, 0x13, 0x78, 0x6e, 0x6b, 0xd9, 0xdd, 0x9d, 0x1b, 0x45, 0x9b, 0xe3, 0xb9, + 0xd8, 0x00, 0x44, 0x08, 0xdc, 0xd2, 0x18, 0x9e, 0xb5, 0x1b, 0xbc, 0xc0, 0x6a, 0xb9, 0xbb, 0xaa, + 0xbc, 0x46, 0xf8, 0xe4, 0x36, 0x14, 0xe5, 0x19, 0x6f, 0xa3, 0xbb, 0xeb, 0xa1, 0x80, 0x8c, 0x45, + 0xdb, 0x2b, 0x7d, 0x14, 0x58, 0x3d, 0x01, 0x57, 0x57, 0xb4, 0x38, 0x8d, 0xf1, 0xc3, 0x2c, 0x9c, + 0xea, 0xd3, 0x1c, 0x26, 0xb1, 0xb8, 0xf1, 0x29, 0x12, 0x1b, 0xdb, 0xef, 0xb8, 0xbb, 0x02, 0xbf, + 0xd8, 0x66, 0x32, 0x96, 0x4f, 0xbf, 0xd8, 0x26, 0x77, 0x21, 0xcf, 0x3a, 0x71, 0x88, 0x0b, 0x3a, + 0x79, 0x00, 0x9f, 0x0e, 0x1c, 0x75, 0x80, 0xb1, 0x73, 0x91, 0x07, 0xf9, 0x2c, 0xe4, 0xd6, 0xd7, + 0x97, 0x71, 0x74, 0x73, 0xa8, 0x16, 0x4f, 0x05, 0x41, 0x4b, 0x13, 0xa6, 0x29, 0x46, 0x7b, 0x35, + 0xbc, 0xcf, 0x65, 0xe8, 0xe4, 0x4b, 0x31, 0xe7, 0x80, 0x2b, 0x83, 0x87, 0x62, 0x78, 0x5f, 0x81, + 0x27, 0xb9, 0xb4, 0xff, 0xab, 0xd9, 0x68, 0x96, 0xdd, 0x76, 0x5a, 0x01, 0xf5, 0xc8, 0x19, 0x3e, + 0x69, 0xa2, 0xd3, 0xa1, 0x19, 0xfe, 0x26, 0x73, 0xd1, 0x0c, 0xe4, 0xac, 0xc2, 0xa9, 0x76, 0x45, + 0x99, 0x6a, 0x39, 0x9c, 0x6a, 0xd3, 0x7d, 0x27, 0xd5, 0x95, 0x14, 0xc9, 0xc1, 0xa9, 0x92, 0x94, + 0x0e, 0xf2, 0x12, 0x4c, 0xad, 0xba, 0x8b, 0x8f, 0x82, 0x10, 0x91, 0x4d, 0x91, 0x82, 0xa9, 0x03, + 0x19, 0xc7, 0xb5, 0x56, 0x93, 0x7a, 0xeb, 0x7b, 0x76, 0x47, 0xbb, 0x21, 0x33, 0x13, 0x70, 0x86, + 0xbb, 0x4a, 0x1f, 0xea, 0xb8, 0x63, 0x1c, 0x37, 0x0e, 0x37, 0x7e, 0x2c, 0x2b, 0x3b, 0x63, 0xf3, + 0xc6, 0x33, 0x7a, 0x13, 0xf3, 0x86, 0x76, 0x13, 0x73, 0x2c, 0x34, 0x85, 0x85, 0xd7, 0x8a, 0x37, + 0x0e, 0xb9, 0x8d, 0xfc, 0xb1, 0x51, 0x98, 0x54, 0xd1, 0x59, 0x3f, 0x94, 0x9a, 0x4d, 0x4f, 0xed, + 0x07, 0xbb, 0xd9, 0xf4, 0x4c, 0x84, 0xb2, 0x1d, 0xb0, 0xd6, 0xdb, 0x6e, 0x39, 0x0d, 0xc4, 0x51, + 0xb4, 0xb7, 0x2e, 0x42, 0x2d, 0x86, 0xaa, 0xae, 0x28, 0x11, 0xb2, 0x76, 0x6f, 0x99, 0x1b, 0x78, + 0x6f, 0xf9, 0x35, 0x18, 0x2f, 0xb7, 0x9b, 0xda, 0x6d, 0x8a, 0x91, 0xf2, 0x65, 0x57, 0x43, 0x24, + 0x3e, 0x8d, 0x42, 0xe3, 0x50, 0xa3, 0xdd, 0x4c, 0xde, 0xa1, 0x44, 0x2c, 0xb5, 0x2b, 0xcf, 0x91, + 0x27, 0xb9, 0xf2, 0xbc, 0x05, 0xe3, 0x1b, 0x3e, 0x5d, 0xef, 0x75, 0x3a, 0xb4, 0x85, 0x12, 0x59, + 0xe0, 0x0a, 0x77, 0xcf, 0xa7, 0x56, 0x80, 0x50, 0xb5, 0x01, 0x21, 0xaa, 0x2a, 0x1b, 0x63, 0x03, + 0x64, 0xe3, 0x26, 0x14, 0x6a, 0x94, 0x7a, 0xd8, 0xd5, 0x13, 0x91, 0x5e, 0xd5, 0xa5, 0xd4, 0x8b, + 0x77, 0x74, 0x88, 0xa8, 0xdd, 0x9f, 0x4e, 0x0e, 0x79, 0x7f, 0x4a, 0x5e, 0x84, 0x49, 0x65, 0x00, + 0xc5, 0xc5, 0xab, 0x39, 0xd1, 0x0d, 0x47, 0xcf, 0x27, 0x5f, 0x82, 0x29, 0x3c, 0x68, 0x84, 0xd2, + 0x3a, 0x8d, 0x3d, 0x77, 0x5c, 0xde, 0x27, 0xa8, 0x65, 0x5c, 0x8d, 0x69, 0x30, 0x90, 0x95, 0xe2, + 0x1f, 0xa0, 0x33, 0x3a, 0x53, 0x87, 0x69, 0x7d, 0x24, 0x9f, 0xc2, 0x2d, 0xc6, 0xdd, 0x7c, 0xa1, + 0x50, 0x1c, 0xbf, 0x9b, 0x2f, 0x40, 0x71, 0x82, 0xdf, 0xff, 0x9a, 0xe4, 0x5e, 0x6f, 0x9b, 0x7a, + 0x1d, 0x1a, 0x50, 0x5f, 0xe8, 0xdd, 0xbe, 0x99, 0x2f, 0x75, 0xbb, 0xbe, 0xf1, 0x7f, 0x65, 0x60, + 0xac, 0xb4, 0x55, 0xaf, 0x76, 0x76, 0x5c, 0xf2, 0x9a, 0x6a, 0xef, 0xce, 0x44, 0xce, 0x45, 0x91, + 0xbd, 0x5b, 0xb5, 0x72, 0x5f, 0x4b, 0x39, 0x39, 0xa1, 0x47, 0xa1, 0x72, 0x72, 0xd2, 0x4c, 0x64, + 0x91, 0xe9, 0x3f, 0x37, 0x84, 0xe9, 0xff, 0x0a, 0x8c, 0x6c, 0xd6, 0xca, 0xa1, 0xaa, 0x81, 0xc8, + 0x0f, 0xba, 0x0d, 0x5d, 0xd3, 0xe0, 0x28, 0xe4, 0x2d, 0x98, 0xa8, 0x76, 0x02, 0xba, 0xeb, 0x45, + 0x72, 0x1d, 0x9e, 0xe2, 0x42, 0xb0, 0xaa, 0x4d, 0x2b, 0xd8, 0x46, 0x25, 0x36, 0xb8, 0xf2, 0x8a, + 0x91, 0xab, 0x84, 0xd3, 0xd1, 0x6d, 0x0c, 0xeb, 0xa3, 0x85, 0xd9, 0xf4, 0x2b, 0x46, 0xe3, 0x5b, + 0x59, 0x98, 0x28, 0x75, 0xbb, 0xcf, 0xb8, 0xa3, 0xc7, 0xe7, 0xb5, 0x25, 0x55, 0x9e, 0x24, 0xc2, + 0xef, 0x1a, 0xca, 0xc7, 0xe3, 0xd7, 0xb3, 0x30, 0x13, 0xa3, 0x50, 0x5b, 0x9f, 0x19, 0xd2, 0xbd, + 0x23, 0x3b, 0xa4, 0x7b, 0x47, 0x6e, 0x38, 0xf7, 0x8e, 0xfc, 0x93, 0xac, 0x75, 0xaf, 0x40, 0xae, + 0xd4, 0xed, 0xc6, 0x6f, 0xbb, 0xba, 0xdd, 0xcd, 0x9b, 0xfc, 0x34, 0x68, 0x77, 0xbb, 0x26, 0xc3, + 0xd0, 0x16, 0xa0, 0xd1, 0x21, 0x17, 0x20, 0xe3, 0x75, 0x18, 0x47, 0x5e, 0xe8, 0x54, 0x71, 0x1e, + 0x70, 0x5e, 0x0a, 0x7f, 0x0a, 0xad, 0x2e, 0x31, 0x63, 0xff, 0xcf, 0x0c, 0x8c, 0xe0, 0xef, 0x67, + 0x54, 0xc6, 0x6e, 0x68, 0x32, 0x56, 0x54, 0x64, 0x6c, 0x18, 0xe9, 0xfa, 0x8f, 0xf2, 0xd8, 0x5b, + 0x42, 0xae, 0x84, 0x2f, 0x43, 0x26, 0xc5, 0x97, 0xe1, 0x09, 0x76, 0xeb, 0xfb, 0x71, 0xaf, 0x86, + 0x1c, 0x0e, 0xc6, 0x85, 0x78, 0x53, 0x9f, 0x8a, 0x43, 0xc3, 0x12, 0x90, 0x6a, 0xc7, 0xa7, 0x8d, + 0x9e, 0x47, 0xeb, 0xf7, 0x9d, 0xee, 0x26, 0xf5, 0x9c, 0x9d, 0x7d, 0x61, 0x9b, 0xc1, 0x0d, 0xd5, + 0x11, 0xa5, 0x96, 0x7f, 0xdf, 0xe9, 0xb2, 0x83, 0xb1, 0xb3, 0xb3, 0x6f, 0xa6, 0xd0, 0x90, 0xf7, + 0x60, 0xcc, 0xa4, 0x0f, 0x3d, 0x27, 0x90, 0x57, 0x8e, 0xd3, 0xe1, 0x71, 0x16, 0xa1, 0xfc, 0xb8, + 0xe6, 0xf1, 0x1f, 0xea, 0xf8, 0x8b, 0x72, 0x72, 0x83, 0x2f, 0x7c, 0xfc, 0x6a, 0x71, 0x2a, 0xfa, + 0xda, 0xd2, 0x56, 0xbd, 0xdf, 0xba, 0x47, 0x2e, 0xc3, 0x08, 0xae, 0x9e, 0x62, 0x33, 0x47, 0x1f, + 0x57, 0xdc, 0xfc, 0xd4, 0x55, 0x1a, 0x31, 0xc8, 0x39, 0x80, 0xd0, 0xf8, 0xed, 0xcf, 0x15, 0x70, + 0x9b, 0x55, 0x20, 0x9f, 0xdc, 0xad, 0xfe, 0xaf, 0x66, 0xe1, 0x42, 0xb8, 0x22, 0xad, 0x79, 0xf5, + 0xd2, 0xca, 0x72, 0xb5, 0x59, 0x13, 0x4a, 0x7b, 0xcd, 0x73, 0x1f, 0x38, 0x4d, 0xea, 0x6d, 0x5e, + 0x3f, 0x64, 0x3e, 0x2d, 0x73, 0xc1, 0xe3, 0xb6, 0xb3, 0xac, 0x76, 0xfd, 0xaa, 0x2c, 0xfc, 0xe2, + 0x86, 0xb8, 0xdb, 0x4d, 0x98, 0xd2, 0x96, 0x9e, 0x33, 0x23, 0x06, 0xe4, 0xc7, 0x33, 0x70, 0x32, + 0xbd, 0x21, 0xe2, 0x20, 0x37, 0x2f, 0xb5, 0xbe, 0x3e, 0xad, 0x5d, 0x78, 0xe5, 0xf1, 0xc1, 0xfc, + 0x05, 0xdf, 0x6e, 0xb7, 0x2c, 0xa7, 0xc9, 0x6b, 0x73, 0x1a, 0xd4, 0xea, 0x0a, 0x04, 0xad, 0xde, + 0x3e, 0x35, 0x45, 0xd3, 0x6a, 0x01, 0xa0, 0x20, 0x8d, 0x1e, 0xc6, 0x7f, 0x9c, 0x01, 0x45, 0x24, + 0x0a, 0x26, 0x6d, 0x3a, 0x1e, 0x6d, 0x04, 0xb8, 0x24, 0x89, 0x55, 0xc4, 0x13, 0xb0, 0xd8, 0x5d, + 0x3b, 0xc2, 0xc8, 0xbb, 0x30, 0xc6, 0x4d, 0x24, 0xdc, 0x34, 0x11, 0x89, 0x92, 0x30, 0xa7, 0x70, + 0x8f, 0x7b, 0x8e, 0xa1, 0x8a, 0xa1, 0x20, 0x62, 0x9a, 0xe5, 0xdd, 0xad, 0xf5, 0x72, 0xcb, 0x76, + 0xda, 0xbe, 0x58, 0x88, 0xb0, 0x53, 0x3f, 0x7a, 0x18, 0x58, 0x0d, 0x84, 0xaa, 0x9a, 0x65, 0x88, + 0x6a, 0xdc, 0x91, 0xd6, 0x9c, 0x43, 0xbc, 0xe5, 0xe7, 0x61, 0x64, 0x33, 0x3a, 0x33, 0x2e, 0x8c, + 0x3f, 0x3e, 0x98, 0xe7, 0xc2, 0x62, 0x72, 0xb8, 0xf1, 0x53, 0x19, 0x98, 0xd6, 0xa5, 0x89, 0x5c, + 0x85, 0x51, 0xe1, 0xef, 0x9c, 0xc1, 0xb3, 0x31, 0xeb, 0x85, 0x51, 0xee, 0xe9, 0xac, 0xf9, 0x37, + 0x0b, 0x2c, 0xb6, 0x94, 0x0a, 0x0e, 0xc2, 0x3c, 0x83, 0x4b, 0x69, 0x83, 0x83, 0x4c, 0x59, 0x46, + 0x0c, 0xa6, 0x12, 0xf9, 0xbd, 0x56, 0xa0, 0x1a, 0x1f, 0x3d, 0x84, 0x98, 0xa2, 0xc4, 0x28, 0xc3, + 0x28, 0x9f, 0x83, 0xb1, 0x8b, 0xea, 0xcc, 0x11, 0x2e, 0xaa, 0x8d, 0x83, 0x0c, 0x40, 0xbd, 0xbe, + 0x74, 0x8f, 0xee, 0xd7, 0x6c, 0xc7, 0x43, 0x6b, 0x39, 0xae, 0x77, 0xf7, 0xc4, 0xd4, 0x9a, 0x14, + 0xd6, 0x72, 0xbe, 0x36, 0xde, 0xa7, 0xfb, 0x9a, 0xb5, 0x5c, 0xa2, 0xe2, 0xa2, 0xea, 0x39, 0x0f, + 0xec, 0x80, 0x32, 0xc2, 0x2c, 0x12, 0xf2, 0x45, 0x95, 0x43, 0x63, 0x94, 0x0a, 0x32, 0xf9, 0x2a, + 0x4c, 0x47, 0xbf, 0x42, 0x9b, 0xff, 0x74, 0x38, 0x7d, 0xf5, 0xc2, 0x85, 0x73, 0x8f, 0x0f, 0xe6, + 0xcf, 0x28, 0x5c, 0xe3, 0xb7, 0x01, 0x31, 0x66, 0xc6, 0x2f, 0x65, 0xf0, 0x9a, 0x48, 0x7e, 0xe0, + 0x45, 0xc8, 0x87, 0xee, 0x37, 0x93, 0xdc, 0xbc, 0x12, 0xb3, 0x6b, 0x62, 0x39, 0xb9, 0x00, 0xb9, + 0xe8, 0x4b, 0x70, 0x8d, 0xd3, 0xbf, 0x80, 0x95, 0x92, 0x3b, 0x30, 0x36, 0x54, 0x9b, 0x71, 0x6a, + 0xa4, 0xb4, 0x55, 0x52, 0xe3, 0x28, 0xdc, 0xdd, 0x5a, 0xff, 0xf4, 0x8e, 0xc2, 0x77, 0xb3, 0x30, + 0xc3, 0xfa, 0xb5, 0xd4, 0x0b, 0xf6, 0x5c, 0xcf, 0x09, 0xf6, 0x9f, 0x59, 0xe3, 0xc2, 0xdb, 0x9a, + 0x96, 0x72, 0x46, 0xee, 0x31, 0xea, 0xb7, 0x0d, 0x65, 0x63, 0xf8, 0x9d, 0x11, 0x38, 0x96, 0x42, + 0x45, 0x5e, 0xd3, 0xec, 0x7f, 0x73, 0x32, 0x48, 0xe9, 0x87, 0x07, 0xf3, 0x93, 0x12, 0x7d, 0x3d, + 0x0a, 0x5a, 0xba, 0xa1, 0xdf, 0xb9, 0xf2, 0x9e, 0x42, 0x73, 0xa0, 0x7a, 0xe7, 0xaa, 0xdf, 0xb4, + 0x5e, 0x86, 0x11, 0xd3, 0x6d, 0x51, 0x79, 0xe9, 0x8f, 0x3b, 0xb3, 0xc7, 0x00, 0xda, 0xd5, 0x10, + 0x03, 0x90, 0x25, 0x18, 0x63, 0x7f, 0xac, 0xd8, 0x5d, 0x61, 0x4c, 0x25, 0xa1, 0x9e, 0x8c, 0xd0, + 0xae, 0xd3, 0xd9, 0x55, 0x55, 0xe5, 0x16, 0xb5, 0xda, 0x76, 0x57, 0x53, 0x21, 0x38, 0xa2, 0xa6, + 0x72, 0x17, 0xfa, 0xab, 0xdc, 0x99, 0x43, 0x55, 0xee, 0x26, 0x40, 0xdd, 0xd9, 0xed, 0x38, 0x9d, + 0xdd, 0x52, 0x6b, 0x57, 0x84, 0x7a, 0x5d, 0xee, 0x3f, 0x0a, 0x57, 0x23, 0x64, 0x14, 0x5c, 0x7e, + 0x33, 0xc1, 0x61, 0x96, 0xdd, 0xd2, 0x2c, 0xbd, 0x11, 0x2a, 0x59, 0x05, 0x28, 0x35, 0x02, 0xe7, + 0x01, 0x13, 0x60, 0x5f, 0x78, 0x3b, 0xca, 0x06, 0x97, 0x4b, 0xf7, 0xe8, 0x7e, 0x9d, 0x06, 0x91, + 0xe5, 0xd8, 0x46, 0x54, 0x36, 0x0f, 0x34, 0xc7, 0xc4, 0x88, 0x03, 0xe9, 0xc2, 0x89, 0x52, 0xb3, + 0xe9, 0xb0, 0x2f, 0xb0, 0x5b, 0xeb, 0x1e, 0x1b, 0x8c, 0x26, 0xb2, 0x9e, 0x4c, 0x67, 0x7d, 0x59, + 0xb0, 0x7e, 0xd1, 0x0e, 0xa9, 0xac, 0x80, 0x93, 0xc5, 0xab, 0x49, 0x67, 0x6c, 0xac, 0xc1, 0xb4, + 0xfe, 0xe9, 0x7a, 0x80, 0xda, 0x24, 0x14, 0xcc, 0x7a, 0xc9, 0xaa, 0x2f, 0x95, 0xae, 0x17, 0x33, + 0xa4, 0x08, 0x93, 0xe2, 0xd7, 0x0d, 0xeb, 0xc6, 0x1b, 0xb7, 0x8a, 0x59, 0x0d, 0xf2, 0xc6, 0xf5, + 0x1b, 0x09, 0x17, 0xf2, 0xb1, 0x62, 0x81, 0x1b, 0x12, 0x8c, 0xbf, 0x93, 0x81, 0x82, 0x6c, 0x37, + 0xb9, 0x05, 0xb9, 0x7a, 0x7d, 0x29, 0xe6, 0xf4, 0x1d, 0xed, 0x2f, 0x7c, 0x25, 0xf5, 0x7d, 0xd5, + 0x41, 0x89, 0x11, 0x30, 0xba, 0xf5, 0xe5, 0xba, 0x50, 0x0b, 0x24, 0x5d, 0xb4, 0x6c, 0x73, 0xba, + 0x14, 0x4f, 0xd8, 0x5b, 0x90, 0xbb, 0xbb, 0xb5, 0x2e, 0xf4, 0x70, 0x49, 0x17, 0xad, 0xa4, 0x9c, + 0xee, 0xa3, 0x87, 0xea, 0xfa, 0xce, 0x08, 0x0c, 0x13, 0x26, 0x14, 0x11, 0xe6, 0xdb, 0x6d, 0xdb, + 0x0d, 0x83, 0xb7, 0xc4, 0x76, 0xcb, 0x20, 0xa6, 0x28, 0x61, 0xda, 0xc1, 0xb2, 0xdb, 0xb0, 0x5b, + 0x62, 0xdf, 0x46, 0xed, 0xa0, 0xc5, 0x00, 0x26, 0x87, 0x1b, 0xbf, 0x9d, 0x81, 0x22, 0x6a, 0x50, + 0x6c, 0x99, 0x59, 0x77, 0xef, 0xd3, 0xce, 0xe6, 0x75, 0xf2, 0xba, 0x9c, 0x6c, 0x99, 0xf0, 0xd4, + 0x37, 0x82, 0x93, 0x2d, 0x66, 0x2a, 0x16, 0x13, 0x4e, 0x89, 0x81, 0xcb, 0x0e, 0x1f, 0x57, 0x73, + 0x48, 0x0c, 0xdc, 0x3c, 0x8c, 0x60, 0x73, 0xc4, 0xb2, 0x88, 0x2d, 0x0f, 0x18, 0xc0, 0xe4, 0x70, + 0x65, 0x55, 0xfa, 0xd9, 0x6c, 0xe2, 0x1b, 0x6e, 0x7c, 0xaa, 0x62, 0x53, 0xf4, 0x8f, 0x1b, 0x6a, + 0xa5, 0xfe, 0x00, 0x8e, 0xc7, 0xbb, 0x04, 0x4f, 0xe4, 0x25, 0x98, 0xd1, 0xe1, 0xf2, 0x70, 0x7e, + 0x2a, 0xb5, 0xae, 0xcd, 0x1b, 0x66, 0x1c, 0xdf, 0xf8, 0x83, 0x0c, 0x8c, 0xe3, 0x9f, 0x66, 0xaf, + 0x85, 0x5e, 0x00, 0xa5, 0xad, 0xba, 0x30, 0xa4, 0xa9, 0x6a, 0x9c, 0xfd, 0xd0, 0xb7, 0x84, 0xad, + 0x4d, 0x5b, 0x5f, 0x42, 0x64, 0x41, 0xca, 0x2d, 0x64, 0xf2, 0xe2, 0x2f, 0x24, 0xe5, 0xa6, 0x34, + 0x3f, 0x46, 0x2a, 0x90, 0xd1, 0xf1, 0x66, 0xab, 0xce, 0xc4, 0x4f, 0xbd, 0xee, 0x43, 0x3a, 0xb7, + 0xa5, 0x3b, 0xde, 0x70, 0x34, 0xbc, 0xed, 0xdb, 0xaa, 0x97, 0xcc, 0x55, 0xed, 0xb6, 0x8f, 0xb5, + 0x51, 0xf3, 0x66, 0x14, 0x48, 0xc6, 0xdf, 0x2a, 0xc4, 0x3b, 0x50, 0x6c, 0x75, 0x47, 0x9c, 0x1b, + 0x6f, 0xc1, 0x48, 0xa9, 0xd5, 0x72, 0x1f, 0x8a, 0x55, 0x42, 0x1a, 0x08, 0xc2, 0xfe, 0xe3, 0x3b, + 0x99, 0xcd, 0x50, 0x34, 0x7f, 0x7b, 0x06, 0x20, 0x65, 0x18, 0x2f, 0x6d, 0xd5, 0xab, 0xd5, 0xca, + 0xfa, 0xfa, 0xb2, 0x08, 0x48, 0x7e, 0x59, 0xf6, 0x8f, 0xe3, 0x34, 0xad, 0xf8, 0x75, 0x56, 0xa4, + 0xb9, 0x47, 0x74, 0xe4, 0x1d, 0x80, 0xbb, 0xae, 0xd3, 0x59, 0xa1, 0xc1, 0x9e, 0xdb, 0x14, 0x1f, + 0xff, 0xc2, 0xe3, 0x83, 0xf9, 0x89, 0x8f, 0x5c, 0xa7, 0x63, 0xb5, 0x11, 0xcc, 0xda, 0x1e, 0x21, + 0x99, 0xca, 0xdf, 0xac, 0xa7, 0x17, 0x5c, 0x7e, 0xb3, 0x3f, 0x12, 0xf5, 0xf4, 0xb6, 0x9b, 0xb8, + 0xd4, 0x97, 0x68, 0xa4, 0x0d, 0x33, 0xf5, 0xde, 0xee, 0x2e, 0x65, 0xab, 0xba, 0x30, 0x39, 0x8c, + 0x8a, 0xb3, 0x6d, 0x18, 0xce, 0xcd, 0x4f, 0x22, 0xec, 0x7c, 0xe2, 0x2f, 0xbc, 0xc6, 0x04, 0xf9, + 0x07, 0x07, 0xf3, 0xe2, 0x9a, 0x8c, 0x29, 0x69, 0xbe, 0xa4, 0x4f, 0x1a, 0x1c, 0xe2, 0xbc, 0xc9, + 0x1a, 0x8c, 0xde, 0x71, 0x82, 0xa5, 0xde, 0xb6, 0x70, 0xf9, 0x7d, 0x71, 0xc0, 0xa4, 0xe1, 0x88, + 0xdc, 0xfc, 0xba, 0xeb, 0x04, 0x7b, 0x3d, 0xd5, 0xfd, 0x57, 0xb0, 0x21, 0x5b, 0x50, 0x28, 0x3b, + 0x5e, 0xa3, 0x45, 0xcb, 0x55, 0xb1, 0xeb, 0x5f, 0x18, 0xc0, 0x52, 0xa2, 0xf2, 0x7e, 0x69, 0xe0, + 0xaf, 0x86, 0xa3, 0x6a, 0x01, 0x12, 0x83, 0xfc, 0xbb, 0x19, 0x78, 0x3e, 0x6c, 0x7d, 0x69, 0x97, + 0x76, 0x82, 0x15, 0x3b, 0x68, 0xec, 0x51, 0x4f, 0xf4, 0xd2, 0xf8, 0xa0, 0x5e, 0xfa, 0x42, 0xa2, + 0x97, 0x2e, 0x45, 0xbd, 0x64, 0x33, 0x66, 0x56, 0x9b, 0x73, 0x4b, 0xf6, 0xd9, 0xa0, 0x5a, 0x89, + 0x05, 0x10, 0xd9, 0xd3, 0x45, 0xac, 0xc5, 0xcb, 0x03, 0x3e, 0x38, 0x42, 0x16, 0x1e, 0xad, 0xe1, + 0x6f, 0xcd, 0x91, 0x25, 0x84, 0x92, 0x7b, 0xd2, 0xbf, 0x9e, 0x6b, 0x24, 0xe7, 0x07, 0xf0, 0xe6, + 0x3e, 0xf7, 0xc7, 0x06, 0x84, 0xa0, 0xf0, 0xd1, 0x5e, 0xb6, 0xb7, 0x85, 0x12, 0x72, 0xc8, 0x68, + 0x2f, 0xdb, 0xd1, 0x68, 0xb7, 0xec, 0xf8, 0x68, 0x2f, 0xdb, 0xdb, 0xa4, 0xcc, 0xa3, 0x69, 0xa6, + 0x90, 0xdb, 0xb9, 0x41, 0xdc, 0xca, 0x35, 0xbe, 0x33, 0x27, 0xa3, 0x6a, 0x8c, 0x7f, 0x95, 0x87, + 0x33, 0xfd, 0xe5, 0x8d, 0xbc, 0x2f, 0x17, 0x01, 0xbe, 0xd4, 0x5e, 0x3c, 0x54, 0x42, 0xaf, 0x1e, + 0xba, 0x34, 0x7c, 0x09, 0x8e, 0x2f, 0x76, 0x02, 0xea, 0x75, 0x3d, 0x47, 0x06, 0x1f, 0x2e, 0xb9, + 0xbe, 0xf4, 0x7e, 0x79, 0xe9, 0xf1, 0xc1, 0xfc, 0x79, 0x1a, 0x96, 0x0b, 0xeb, 0x0d, 0xfa, 0xe2, + 0x28, 0xac, 0x52, 0x39, 0x9c, 0xf9, 0xa5, 0x1c, 0xe4, 0x71, 0x65, 0xbf, 0x00, 0xb9, 0x7a, 0x6f, + 0x5b, 0x2c, 0xe9, 0x5c, 0x07, 0xd2, 0xe6, 0x0b, 0x2b, 0x25, 0x9f, 0x07, 0x30, 0x69, 0xd7, 0xf5, + 0x9d, 0xc0, 0xf5, 0xf6, 0x55, 0x57, 0x61, 0x2f, 0x84, 0xea, 0x3e, 0x60, 0x12, 0x4a, 0x96, 0x60, + 0x26, 0xfa, 0xb5, 0xf6, 0xb0, 0x23, 0x6c, 0x45, 0xe3, 0xfc, 0x98, 0x16, 0x91, 0x5b, 0x2e, 0x2b, + 0x53, 0x57, 0x80, 0x18, 0x19, 0xb9, 0x01, 0x85, 0x2d, 0xd7, 0xbb, 0xbf, 0xc3, 0x7a, 0x38, 0x1f, + 0xad, 0x51, 0x0f, 0x05, 0x4c, 0x9d, 0x8b, 0x12, 0x8f, 0xbc, 0x05, 0x13, 0x8b, 0x9d, 0x07, 0x8e, + 0xe7, 0x76, 0xda, 0xb4, 0x13, 0xa8, 0x97, 0x2c, 0x34, 0x02, 0x6b, 0xd1, 0x0b, 0x11, 0x98, 0x1d, + 0x46, 0x4a, 0x8d, 0xc0, 0xf5, 0x84, 0xaf, 0x13, 0x1f, 0x27, 0x06, 0xd0, 0xc6, 0x89, 0x01, 0x58, + 0x27, 0x9a, 0x74, 0x47, 0xd8, 0x13, 0xb1, 0x13, 0x3d, 0xba, 0xa3, 0x85, 0x66, 0xd0, 0x1d, 0xb6, + 0xc6, 0x9a, 0x74, 0x07, 0x4f, 0x50, 0x85, 0xa8, 0xfd, 0x1e, 0xdd, 0x49, 0x9c, 0xbd, 0x05, 0x9a, + 0xf1, 0xcb, 0xfd, 0x05, 0x8e, 0x09, 0xf5, 0xd1, 0x04, 0x6e, 0xd9, 0x1e, 0x42, 0xe0, 0x5e, 0x0b, + 0x3d, 0xcb, 0xb2, 0xd1, 0x15, 0x16, 0xf7, 0x2c, 0x53, 0x67, 0x15, 0xc7, 0x39, 0xf3, 0xff, 0x3f, + 0x92, 0x10, 0x89, 0x4e, 0xca, 0x0e, 0xdb, 0x49, 0xb9, 0xa1, 0x3a, 0x89, 0x2c, 0xc0, 0x54, 0x98, + 0x30, 0xa2, 0x66, 0x0b, 0xc7, 0x72, 0xe1, 0x99, 0x15, 0xa6, 0xff, 0xb0, 0xba, 0x76, 0xa0, 0x6a, + 0xf6, 0x3a, 0x09, 0x79, 0x1b, 0x26, 0x84, 0x7b, 0x25, 0x72, 0x18, 0x89, 0x1c, 0x67, 0xa4, 0x2f, + 0x66, 0x8c, 0x5e, 0x45, 0x27, 0x8b, 0x30, 0x5d, 0x73, 0xba, 0xb4, 0xe5, 0x74, 0x68, 0x1d, 0xcd, + 0x91, 0x42, 0x62, 0xd0, 0x4d, 0xb1, 0x2b, 0x4a, 0x2c, 0x6e, 0xa9, 0xd4, 0x0c, 0x11, 0x1a, 0x51, + 0x5c, 0x58, 0xc7, 0x8e, 0x22, 0xac, 0xc6, 0xdf, 0xc9, 0xc2, 0xd9, 0x41, 0x1b, 0x17, 0xa9, 0xeb, + 0xc2, 0x72, 0x69, 0x88, 0xcd, 0xee, 0x70, 0x71, 0x59, 0x84, 0xe9, 0x35, 0x6f, 0xd7, 0xee, 0x38, + 0xdf, 0x44, 0x85, 0x24, 0xbc, 0x53, 0xc5, 0x2f, 0x77, 0x95, 0x12, 0xdd, 0xca, 0x17, 0x23, 0x3a, + 0xf3, 0x40, 0x88, 0xd1, 0xc7, 0x75, 0x88, 0xbd, 0x05, 0xe3, 0x65, 0xb7, 0x13, 0xd0, 0x47, 0x41, + 0x2c, 0x90, 0x81, 0x03, 0xe3, 0x81, 0x0c, 0x12, 0xd5, 0xf8, 0x8d, 0x1c, 0x9c, 0x1b, 0xbc, 0xf9, + 0x91, 0x0d, 0xbd, 0xdb, 0xae, 0x0c, 0xb5, 0x65, 0x1e, 0xde, 0x71, 0x32, 0x1f, 0x0c, 0x6f, 0xec, + 0xa5, 0xa4, 0x2b, 0xd5, 0x0f, 0x0f, 0xe6, 0x95, 0x0b, 0x70, 0xa6, 0xa9, 0x29, 0xa6, 0x95, 0x6f, + 0x00, 0xd4, 0x03, 0x3b, 0x70, 0x1a, 0x77, 0xb7, 0xee, 0xc9, 0x00, 0xb1, 0x5b, 0xc3, 0xb5, 0x2c, + 0xa2, 0x2b, 0xbb, 0x9d, 0x1d, 0x67, 0x57, 0x58, 0x1d, 0x10, 0x6a, 0x7d, 0xf4, 0xf0, 0xbe, 0xb6, + 0xbd, 0x47, 0xc8, 0x67, 0xbe, 0x00, 0xc5, 0x38, 0x29, 0xb9, 0x08, 0x79, 0x6c, 0x80, 0xe2, 0x0f, + 0x16, 0xe3, 0x80, 0xe5, 0x67, 0x56, 0xc4, 0xf0, 0x2e, 0xc2, 0xb4, 0xb0, 0xe6, 0xeb, 0x07, 0x09, + 0x94, 0x16, 0x79, 0x19, 0x90, 0x3c, 0x4c, 0xc4, 0x88, 0x8c, 0x3f, 0xce, 0xc0, 0xe9, 0xbe, 0x6a, + 0x05, 0xa9, 0xe9, 0x03, 0xf6, 0xf2, 0x61, 0x7a, 0xc8, 0xa1, 0x63, 0x75, 0xe6, 0xa7, 0x33, 0xa2, + 0xfd, 0xef, 0xc2, 0x64, 0xbd, 0xb7, 0x1d, 0xa5, 0xa3, 0x51, 0xc2, 0x08, 0x7c, 0x05, 0xae, 0xfa, + 0x7f, 0xab, 0xf8, 0xec, 0xfb, 0xe5, 0x85, 0x85, 0xb8, 0x50, 0xe2, 0xa7, 0x21, 0xfc, 0xfe, 0xd0, + 0x9d, 0x1a, 0xbd, 0xdd, 0xd5, 0x4e, 0x8c, 0x11, 0x19, 0xbf, 0x9e, 0x85, 0x53, 0x7d, 0x54, 0x17, + 0xb2, 0xaa, 0x7f, 0xfd, 0x85, 0xc1, 0x9a, 0xce, 0xe1, 0xdf, 0xfe, 0x5f, 0xca, 0x6f, 0x47, 0xfb, + 0xad, 0x98, 0x6f, 0xf2, 0x54, 0x24, 0xec, 0xb7, 0x72, 0x6e, 0xfa, 0xba, 0xfd, 0x56, 0x22, 0x93, + 0x37, 0x60, 0x7c, 0xd9, 0xe5, 0x51, 0x28, 0xf2, 0x8b, 0xb9, 0xbf, 0xb1, 0x04, 0xaa, 0x93, 0x33, + 0xc4, 0x64, 0x9a, 0x83, 0x3e, 0xf0, 0xd2, 0x95, 0x0d, 0x35, 0x87, 0x98, 0xb8, 0xe8, 0x67, 0x07, + 0x9d, 0xcc, 0xf8, 0xe9, 0x2c, 0x4c, 0x73, 0xe1, 0xe5, 0x67, 0xdb, 0x67, 0xd6, 0x6e, 0xf0, 0x96, + 0x66, 0x37, 0x90, 0x91, 0x85, 0xea, 0xa7, 0x0d, 0x65, 0x35, 0xd8, 0x03, 0x92, 0xa4, 0x21, 0x26, + 0x4c, 0xaa, 0xd0, 0xc1, 0x06, 0x83, 0xeb, 0x51, 0x10, 0xaa, 0x58, 0x3b, 0xd0, 0x6a, 0xe3, 0x9b, + 0x1a, 0x0f, 0xe3, 0xa7, 0xb2, 0x30, 0xa5, 0xd8, 0x77, 0x9f, 0xd9, 0x8e, 0xff, 0x82, 0xd6, 0xf1, + 0x73, 0xa1, 0x0f, 0x55, 0xf8, 0x65, 0x43, 0xf5, 0x7b, 0x0f, 0x66, 0x13, 0x24, 0x71, 0x33, 0x79, + 0x66, 0x18, 0x33, 0xf9, 0x6b, 0xc9, 0xc0, 0x3d, 0x9e, 0x51, 0x29, 0x0c, 0xdc, 0x53, 0x23, 0x05, + 0xbf, 0x9b, 0x85, 0xe3, 0xe2, 0x57, 0xa9, 0xd7, 0x74, 0x02, 0xbe, 0x7a, 0x3f, 0xb3, 0x63, 0x51, + 0xd2, 0xc6, 0x62, 0x5e, 0x1f, 0x0b, 0xe5, 0x03, 0xfb, 0x0f, 0x89, 0xf1, 0x17, 0x00, 0xe6, 0xfa, + 0x11, 0x0c, 0xed, 0xe5, 0x1c, 0xb9, 0x86, 0x65, 0x87, 0x70, 0x0d, 0x5b, 0x86, 0x22, 0x56, 0x55, + 0xa7, 0x3e, 0xeb, 0x04, 0x7f, 0xc3, 0xac, 0x8a, 0x4e, 0x3a, 0xff, 0xf8, 0x60, 0xfe, 0xac, 0xcd, + 0xca, 0x2c, 0x5f, 0x14, 0x5a, 0x3d, 0x4f, 0xb5, 0x2d, 0x24, 0x28, 0xc9, 0x2f, 0x65, 0x60, 0x1a, + 0x81, 0x8b, 0x0f, 0x68, 0x27, 0x40, 0x66, 0x79, 0xe1, 0xfe, 0x14, 0x9a, 0x15, 0xea, 0x81, 0xe7, + 0x74, 0x76, 0x85, 0x5d, 0x61, 0x5b, 0xd8, 0x15, 0xde, 0xe6, 0xf6, 0x90, 0xab, 0x0d, 0xb7, 0x7d, + 0x6d, 0xd7, 0xb3, 0x1f, 0x38, 0xfc, 0xea, 0xc2, 0x6e, 0x5d, 0x8b, 0xb2, 0xf9, 0x75, 0x9d, 0x58, + 0x7e, 0x3e, 0xc1, 0x0a, 0x6d, 0x36, 0xbc, 0xa1, 0x14, 0xab, 0x8d, 0x35, 0x33, 0xd6, 0x22, 0xf2, + 0x65, 0x38, 0xc5, 0x83, 0xda, 0x98, 0xc2, 0xe5, 0x74, 0x7a, 0x6e, 0xcf, 0x5f, 0xb0, 0x1b, 0xf7, + 0xd9, 0xbe, 0xc7, 0x7d, 0x2f, 0xf1, 0xcb, 0x1b, 0x61, 0xa1, 0xb5, 0xcd, 0x4b, 0x15, 0x96, 0xfd, + 0x18, 0x90, 0x25, 0x98, 0xe5, 0x45, 0xa5, 0x5e, 0xe0, 0xd6, 0x1b, 0x76, 0xcb, 0xe9, 0xec, 0xa2, + 0xc6, 0x5c, 0xe0, 0xfb, 0xb1, 0xdd, 0x0b, 0x5c, 0xcb, 0xe7, 0x70, 0x85, 0x5f, 0x92, 0x88, 0x54, + 0xd9, 0x01, 0xd5, 0x6e, 0xae, 0xd8, 0x8f, 0xca, 0x76, 0xd7, 0x6e, 0x38, 0x01, 0x8f, 0x05, 0xcf, + 0xf1, 0x70, 0x20, 0x8f, 0xda, 0x4d, 0xab, 0x6d, 0x3f, 0xb2, 0x1a, 0xa2, 0x50, 0x3f, 0xa1, 0x6a, + 0x74, 0x21, 0x2b, 0xa7, 0x13, 0xb2, 0x1a, 0x8f, 0xb3, 0x72, 0x3a, 0xfd, 0x59, 0x45, 0x74, 0x92, + 0xd5, 0xba, 0xed, 0xed, 0xd2, 0x80, 0xdf, 0xfc, 0xc3, 0xf9, 0xcc, 0xa5, 0x8c, 0xc2, 0x2a, 0xc0, + 0x32, 0x0b, 0xbd, 0x00, 0xe2, 0xac, 0x14, 0x3a, 0x26, 0x79, 0x5b, 0x9e, 0x13, 0x50, 0xf5, 0x0b, + 0x27, 0xb0, 0x59, 0xd8, 0xff, 0xe8, 0x33, 0xd1, 0xef, 0x13, 0x13, 0x94, 0x11, 0x37, 0xe5, 0x23, + 0x27, 0x13, 0xdc, 0xd2, 0xbf, 0x32, 0x41, 0x19, 0x72, 0x53, 0xbf, 0x73, 0x0a, 0xbf, 0x53, 0xe1, + 0xd6, 0xe7, 0x43, 0x13, 0x94, 0x64, 0x95, 0x75, 0x5a, 0x40, 0x3b, 0x4c, 0xa2, 0x85, 0xe7, 0xc3, + 0x34, 0x36, 0xed, 0x25, 0x71, 0x7d, 0x57, 0xf4, 0x64, 0xb1, 0x95, 0xe2, 0x07, 0x11, 0x27, 0x26, + 0x7f, 0x06, 0x66, 0x36, 0x7c, 0x7a, 0xbb, 0x5a, 0xab, 0xcb, 0x30, 0xbe, 0xb9, 0x19, 0xbc, 0xd4, + 0xbb, 0x7e, 0xc8, 0xa2, 0x73, 0x55, 0xa5, 0xc1, 0xbc, 0x7a, 0x7c, 0xdc, 0x7a, 0x3e, 0xb5, 0x76, + 0x9c, 0xae, 0x1f, 0x06, 0x14, 0xab, 0xe3, 0x16, 0xab, 0xca, 0x58, 0x82, 0xd9, 0x04, 0x1b, 0x32, + 0x0d, 0xc0, 0x80, 0xd6, 0xc6, 0x6a, 0x7d, 0x71, 0xbd, 0xf8, 0x1c, 0x29, 0xc2, 0x24, 0xfe, 0x5e, + 0x5c, 0x2d, 0x2d, 0x2c, 0x2f, 0x56, 0x8a, 0x19, 0x32, 0x0b, 0x53, 0x08, 0xa9, 0x54, 0xeb, 0x1c, + 0x94, 0xe5, 0x59, 0x95, 0xcc, 0x22, 0x9f, 0xba, 0x01, 0x9b, 0x00, 0xb8, 0xa7, 0x18, 0x7f, 0x25, + 0x0b, 0xa7, 0xe5, 0xb6, 0x42, 0x83, 0x87, 0xae, 0x77, 0xdf, 0xe9, 0xec, 0x3e, 0xe3, 0xbb, 0xc3, + 0x6d, 0x6d, 0x77, 0x78, 0x29, 0xb6, 0x53, 0xc7, 0xbe, 0x72, 0xc0, 0x16, 0xf1, 0xed, 0x02, 0xbc, + 0x30, 0x90, 0x8a, 0xbc, 0xcf, 0x76, 0x73, 0x87, 0x76, 0x82, 0x6a, 0xb3, 0x45, 0xd7, 0x9d, 0x36, + 0x75, 0x7b, 0x81, 0xf0, 0xb4, 0xb9, 0xc0, 0xd4, 0x5b, 0x9e, 0x14, 0xcf, 0x72, 0x9a, 0x2d, 0x6a, + 0x05, 0xbc, 0x58, 0x13, 0xb7, 0x24, 0x35, 0x63, 0x19, 0x26, 0xee, 0xac, 0x76, 0x02, 0xea, 0x3d, + 0xc0, 0x3b, 0xbd, 0x90, 0xe5, 0x7d, 0x4a, 0xbb, 0x96, 0xcd, 0x4a, 0x2d, 0x47, 0x14, 0xeb, 0x2c, + 0x13, 0xd4, 0xe4, 0xb6, 0xc2, 0xb2, 0xcc, 0xd4, 0xe1, 0x15, 0xfb, 0x91, 0xb8, 0x64, 0x10, 0x09, + 0x0e, 0x42, 0x96, 0xdc, 0x61, 0xba, 0x6d, 0x3f, 0x32, 0x93, 0x24, 0xe4, 0xab, 0x70, 0x42, 0x6c, + 0x40, 0x22, 0x32, 0x46, 0x7e, 0x31, 0x8f, 0xbb, 0x79, 0xe5, 0xf1, 0xc1, 0xfc, 0x29, 0xb1, 0x7d, + 0x59, 0x32, 0x5a, 0x29, 0xed, 0xab, 0xd3, 0xb9, 0x90, 0x75, 0xb6, 0x21, 0xc7, 0xba, 0x63, 0x85, + 0xfa, 0xbe, 0xbd, 0x2b, 0x2f, 0x24, 0xb8, 0x5f, 0xa1, 0xd2, 0x99, 0x56, 0x9b, 0x97, 0x9b, 0x7d, + 0x29, 0xc9, 0x12, 0x4c, 0x6f, 0xd1, 0x6d, 0x75, 0x7c, 0x46, 0xc3, 0xa5, 0xaa, 0xf8, 0x90, 0x6e, + 0xf7, 0x1f, 0x9c, 0x18, 0x1d, 0x71, 0x60, 0x16, 0x7d, 0x5f, 0x97, 0x1d, 0x3f, 0xa0, 0x1d, 0xea, + 0x61, 0xec, 0xe2, 0x18, 0x2e, 0x06, 0x73, 0x91, 0x86, 0xac, 0x97, 0x2f, 0xbc, 0xf8, 0xf8, 0x60, + 0xfe, 0x05, 0xee, 0x47, 0xdb, 0x12, 0x70, 0x2b, 0x96, 0x21, 0x33, 0xc9, 0x95, 0x7c, 0x1d, 0x66, + 0x4c, 0xb7, 0x17, 0x38, 0x9d, 0xdd, 0x7a, 0xe0, 0xd9, 0x01, 0xdd, 0xe5, 0x1b, 0x52, 0x14, 0x24, + 0x19, 0x2b, 0x15, 0x96, 0x54, 0x0e, 0xb4, 0x7c, 0x01, 0xd5, 0x76, 0x04, 0x9d, 0x80, 0x7c, 0x0d, + 0xa6, 0x79, 0x60, 0x43, 0x58, 0xc1, 0xb8, 0x96, 0xdd, 0x4b, 0x2f, 0xdc, 0xbc, 0xce, 0x0f, 0xa8, + 0x3c, 0x40, 0x22, 0xad, 0x82, 0x18, 0x37, 0xf2, 0xa1, 0xe8, 0xac, 0x9a, 0xd3, 0xd9, 0x0d, 0xc5, + 0x18, 0xb0, 0xe7, 0x5f, 0x8f, 0xba, 0xa4, 0xcb, 0x9a, 0x2b, 0xc5, 0xb8, 0xcf, 0x05, 0x57, 0x92, + 0x0f, 0x09, 0xe0, 0x85, 0x92, 0xef, 0x3b, 0x7e, 0x20, 0xfc, 0xd1, 0x16, 0x1f, 0xd1, 0x46, 0x8f, + 0x21, 0x6f, 0xb9, 0xde, 0x7d, 0xea, 0x71, 0x8f, 0x88, 0x91, 0x85, 0xab, 0x8f, 0x0f, 0xe6, 0xaf, + 0xd8, 0x88, 0x68, 0x09, 0x17, 0x36, 0x8b, 0x4a, 0x54, 0xeb, 0x21, 0xc7, 0x55, 0xbe, 0x61, 0x30, + 0x53, 0xe3, 0x20, 0x03, 0xc5, 0x78, 0xb7, 0x90, 0x2f, 0xc1, 0x38, 0xbf, 0x69, 0xa1, 0xfe, 0x9e, + 0x70, 0xbd, 0x97, 0x57, 0x0b, 0x21, 0x5c, 0x27, 0x12, 0x9e, 0x96, 0xfc, 0x1e, 0x87, 0xaa, 0xbe, + 0x06, 0xe8, 0x69, 0x29, 0x89, 0x48, 0x13, 0x26, 0xf9, 0x97, 0x53, 0x8c, 0x36, 0x16, 0x17, 0xee, + 0x2f, 0xaa, 0x92, 0x26, 0x8a, 0x62, 0xfc, 0x31, 0x20, 0x57, 0xf4, 0x2f, 0x47, 0xd0, 0xaa, 0xd0, + 0xb8, 0x2e, 0x00, 0x14, 0x24, 0xa1, 0x71, 0x1a, 0x4e, 0xf5, 0x69, 0xb3, 0xf1, 0x00, 0x8d, 0xd0, + 0x7d, 0x6a, 0x24, 0x5f, 0x82, 0xe3, 0x48, 0x58, 0x76, 0x3b, 0x1d, 0xda, 0x08, 0x70, 0x6a, 0x4b, + 0xd3, 0x4e, 0x8e, 0x5f, 0x51, 0xf0, 0xef, 0x6d, 0x84, 0x08, 0x56, 0xdc, 0xc2, 0x93, 0xca, 0xc1, + 0xf8, 0xf9, 0x2c, 0xcc, 0x89, 0xd5, 0xc2, 0xa4, 0x0d, 0xd7, 0x6b, 0x3e, 0xfb, 0xbb, 0xd3, 0xa2, + 0xb6, 0x3b, 0x5d, 0x08, 0x83, 0xa4, 0xd2, 0x3e, 0x72, 0xc0, 0xe6, 0xf4, 0xeb, 0x19, 0x38, 0x3b, + 0x88, 0x88, 0xf5, 0x4e, 0x18, 0x5d, 0x3d, 0x9e, 0x88, 0xa2, 0xee, 0xc2, 0x31, 0x1c, 0xd0, 0xf2, + 0x1e, 0x6d, 0xdc, 0xf7, 0x97, 0x5c, 0x3f, 0x40, 0x7f, 0x9f, 0xac, 0xe6, 0xdc, 0xbe, 0xe0, 0xba, + 0xfc, 0x52, 0x12, 0x6f, 0x6e, 0x33, 0x3f, 0x38, 0x98, 0x07, 0x06, 0xe2, 0xf1, 0xd0, 0xc2, 0x32, + 0xfe, 0x68, 0xdf, 0x6a, 0x20, 0x0f, 0x1e, 0xff, 0x7d, 0x9f, 0xee, 0xfb, 0x66, 0x1a, 0x6b, 0xf4, + 0xdd, 0x28, 0xf5, 0x82, 0xbd, 0x9a, 0x47, 0x77, 0xa8, 0x47, 0x3b, 0x0d, 0xfa, 0x29, 0xf3, 0xdd, + 0xd0, 0x3f, 0x6e, 0x28, 0x6b, 0xc0, 0xff, 0x02, 0x70, 0x3c, 0x8d, 0x8c, 0xf5, 0x8b, 0x72, 0x00, + 0x8d, 0xe7, 0x02, 0xff, 0xf3, 0x19, 0x98, 0xac, 0xd3, 0x86, 0xdb, 0x69, 0xde, 0xc6, 0xcb, 0x28, + 0xd1, 0x3b, 0x16, 0xdf, 0x80, 0x19, 0xdc, 0xda, 0x89, 0xdd, 0x52, 0xfd, 0xf0, 0x60, 0xfe, 0x8b, + 0xc3, 0x9d, 0xfb, 0x1a, 0x2e, 0x86, 0x3e, 0x05, 0x98, 0x9d, 0x2b, 0xac, 0x02, 0x2d, 0xcf, 0x5a, + 0xa5, 0x64, 0x01, 0xa6, 0xc4, 0x74, 0x75, 0xd5, 0xe0, 0x7a, 0x1e, 0x47, 0x26, 0x0b, 0x12, 0xd9, + 0x44, 0x34, 0x12, 0x72, 0x13, 0x72, 0x1b, 0x37, 0x6e, 0x8b, 0x31, 0x90, 0xf9, 0xcd, 0x36, 0x6e, + 0xdc, 0x46, 0xd3, 0x12, 0x53, 0xd7, 0xa7, 0x7a, 0x37, 0xb4, 0xfb, 0xa1, 0x8d, 0x1b, 0xb7, 0xc9, + 0x9f, 0x83, 0x13, 0x15, 0xc7, 0x17, 0x55, 0x70, 0x2f, 0xa2, 0x26, 0x7a, 0xcd, 0x8e, 0xf6, 0x91, + 0xde, 0xcf, 0xa5, 0x4a, 0xef, 0x8b, 0xcd, 0x90, 0x89, 0xc5, 0x5d, 0x94, 0x9a, 0xf1, 0x24, 0x02, + 0xe9, 0xf5, 0x90, 0x8f, 0x60, 0x1a, 0x4d, 0xa3, 0xe8, 0x58, 0x85, 0x89, 0x8c, 0xc6, 0xfa, 0xd4, + 0xfc, 0x99, 0xd4, 0x9a, 0xcf, 0xa0, 0xa5, 0xd5, 0x42, 0xf7, 0x2c, 0x4c, 0x7a, 0xa4, 0x9d, 0xa0, + 0x35, 0xce, 0xe4, 0x2e, 0xcc, 0x08, 0x55, 0x66, 0x6d, 0x67, 0x7d, 0x8f, 0x56, 0xec, 0x7d, 0x71, + 0x73, 0x88, 0xa7, 0x23, 0xa1, 0xff, 0x58, 0xee, 0x8e, 0x15, 0xec, 0x51, 0xab, 0x69, 0x6b, 0x9b, + 0x7e, 0x8c, 0x90, 0xfc, 0x08, 0x4c, 0x2c, 0xbb, 0x0d, 0xa6, 0xc5, 0xe2, 0xca, 0x30, 0x8e, 0x7c, + 0x3e, 0xc0, 0xc4, 0xd4, 0x1c, 0x1c, 0x53, 0x4d, 0x7e, 0x78, 0x30, 0xff, 0xd6, 0x51, 0x85, 0x46, + 0xa9, 0xc0, 0x54, 0x6b, 0x23, 0x65, 0x28, 0x6c, 0xd1, 0x6d, 0xf6, 0xb5, 0xf1, 0xa4, 0xb5, 0x12, + 0x2c, 0x2e, 0x73, 0xc5, 0x2f, 0xed, 0x32, 0x57, 0xc0, 0x88, 0x07, 0xb3, 0xd8, 0x3f, 0x35, 0xdb, + 0xf7, 0x1f, 0xba, 0x5e, 0x13, 0x93, 0xac, 0x4d, 0xf4, 0xe9, 0xfc, 0x1b, 0xa9, 0x9d, 0x7f, 0x96, + 0x77, 0x7e, 0x57, 0xe1, 0xa0, 0x2a, 0x63, 0x09, 0xf6, 0xe4, 0xeb, 0x30, 0x6d, 0xd2, 0x6f, 0xf4, + 0x1c, 0x8f, 0xae, 0xdc, 0x2e, 0xe1, 0xac, 0x9c, 0xd4, 0x7c, 0x8f, 0xf5, 0x42, 0xae, 0xf1, 0x79, + 0x1c, 0x26, 0xad, 0x39, 0x56, 0x7b, 0xc7, 0xd6, 0xad, 0xf9, 0x2a, 0x09, 0xa9, 0xc1, 0x44, 0x85, + 0x3e, 0x70, 0x1a, 0x14, 0x3d, 0x24, 0x85, 0x87, 0x42, 0x98, 0x75, 0x33, 0x2a, 0xe1, 0x76, 0x8d, + 0x26, 0x02, 0xb8, 0xbf, 0xa5, 0x9e, 0xf7, 0x3e, 0x44, 0x24, 0xb7, 0x20, 0x57, 0xad, 0xd4, 0x44, + 0xbc, 0xa7, 0x74, 0x3c, 0xac, 0x36, 0x6b, 0x32, 0xd5, 0x22, 0x5e, 0xbd, 0x3a, 0x4d, 0xcd, 0xbd, + 0xa1, 0x5a, 0xa9, 0x91, 0x1d, 0x98, 0xc2, 0x0e, 0x58, 0xa2, 0x36, 0xef, 0xdb, 0x99, 0x3e, 0x7d, + 0x7b, 0x35, 0xb5, 0x6f, 0xe7, 0x78, 0xdf, 0xee, 0x09, 0x6a, 0x2d, 0x77, 0x9c, 0xca, 0x96, 0xa9, + 0x87, 0x15, 0xba, 0x63, 0xf7, 0x5a, 0xd2, 0xa4, 0xb5, 0xbe, 0xbe, 0x3c, 0x57, 0x8c, 0xd4, 0xc3, + 0x26, 0x2f, 0x0c, 0xfb, 0xaf, 0xbf, 0xff, 0x53, 0x92, 0x8f, 0x38, 0xeb, 0xce, 0x8a, 0x4e, 0x16, + 0x05, 0x2b, 0xb7, 0x4b, 0xc6, 0x7f, 0x92, 0xc1, 0xe5, 0x86, 0x5c, 0xc1, 0x48, 0xb4, 0xf0, 0x7e, + 0x11, 0xad, 0x76, 0x76, 0x37, 0x96, 0x76, 0x88, 0xa3, 0x90, 0xd7, 0x60, 0xf4, 0xb6, 0xdd, 0xa0, + 0x81, 0xbc, 0xb6, 0x40, 0xe4, 0x1d, 0x84, 0xa8, 0x26, 0x3e, 0x8e, 0xc3, 0x34, 0x21, 0x3e, 0x0c, + 0xa5, 0xe8, 0x01, 0x8c, 0x72, 0x49, 0xde, 0x5a, 0xa0, 0x26, 0x24, 0x86, 0x4f, 0x79, 0x21, 0xc3, + 0x6a, 0x68, 0x19, 0x43, 0x53, 0x39, 0x18, 0xff, 0x3a, 0x13, 0xcd, 0x1f, 0xf2, 0x0a, 0xe4, 0xcd, + 0x5a, 0xd8, 0x7e, 0xee, 0x22, 0x1d, 0x6b, 0x3e, 0x22, 0x90, 0x0f, 0xe1, 0x84, 0xc2, 0x07, 0xc7, + 0x80, 0x36, 0x59, 0x83, 0xf8, 0xc7, 0xbc, 0x8c, 0x3e, 0xbc, 0x4a, 0x4b, 0x6c, 0x8e, 0x11, 0x6b, + 0x51, 0x3a, 0x0f, 0x54, 0xfb, 0xa2, 0x82, 0x0a, 0xed, 0x38, 0x9c, 0xb7, 0xf2, 0xb1, 0x2a, 0xef, + 0x26, 0x22, 0xc4, 0x3f, 0x36, 0x8d, 0x03, 0x77, 0xe3, 0x35, 0x7e, 0x2b, 0xa3, 0xcd, 0x8b, 0xf0, + 0xb1, 0x81, 0xcc, 0x21, 0x8f, 0x0d, 0xbc, 0x09, 0x50, 0xea, 0x05, 0xee, 0x62, 0xc7, 0x73, 0x5b, + 0xfc, 0xec, 0x2c, 0x32, 0x6f, 0xa1, 0x45, 0x90, 0x22, 0x58, 0xf3, 0x36, 0x0c, 0x91, 0xc9, 0x32, + 0x14, 0x17, 0xef, 0xa1, 0x9f, 0x76, 0xd4, 0x55, 0xfc, 0x73, 0x70, 0xb9, 0xa5, 0xf7, 0xd9, 0x06, + 0xd1, 0xa7, 0x97, 0x12, 0x94, 0xc6, 0xff, 0x91, 0x51, 0x1e, 0xb8, 0x78, 0x46, 0x75, 0x9d, 0x5b, + 0x9a, 0xae, 0x23, 0x43, 0xc7, 0xc3, 0xaf, 0x62, 0x65, 0xa9, 0xfa, 0xe9, 0x8c, 0xe2, 0x92, 0x81, + 0x80, 0x6f, 0x65, 0x61, 0x62, 0xc3, 0xa7, 0x1e, 0xbf, 0x3c, 0xfa, 0x74, 0x45, 0x1a, 0x87, 0xdf, + 0x35, 0x54, 0x2c, 0xe8, 0xef, 0x67, 0xd0, 0xa8, 0xa8, 0x52, 0xb0, 0xde, 0xc0, 0xcc, 0xc5, 0x4a, + 0x6f, 0xf4, 0x7c, 0xea, 0x99, 0x08, 0xe5, 0xf1, 0xa2, 0xcb, 0x7a, 0xee, 0x6b, 0x4c, 0x80, 0xbe, + 0x4c, 0xbe, 0x08, 0x23, 0x1b, 0x68, 0x22, 0xd1, 0x03, 0x62, 0x42, 0xfe, 0x58, 0xc8, 0x97, 0x88, + 0x1e, 0xfb, 0x53, 0x5d, 0xe1, 0xb0, 0x8c, 0xd4, 0x61, 0xac, 0xec, 0x51, 0x7c, 0xca, 0x22, 0x3f, + 0xbc, 0x53, 0x77, 0x83, 0x93, 0xc4, 0x9d, 0xba, 0x05, 0x27, 0xe3, 0xe7, 0xb2, 0x40, 0xa2, 0x6f, + 0xc4, 0x2c, 0x9b, 0xfe, 0x33, 0x3b, 0xe8, 0xef, 0x69, 0x83, 0xfe, 0x42, 0x62, 0xd0, 0xf9, 0xe7, + 0x0d, 0x35, 0xf6, 0xbf, 0x9d, 0x81, 0x93, 0xe9, 0x84, 0xe4, 0x02, 0x8c, 0xae, 0xad, 0xd7, 0x64, + 0x4c, 0x95, 0xf8, 0x14, 0xb7, 0x8b, 0x67, 0x2a, 0x53, 0x14, 0x91, 0xd7, 0x61, 0xf4, 0x7d, 0xb3, + 0xcc, 0x56, 0x41, 0x25, 0xfb, 0xd5, 0x37, 0x3c, 0xab, 0xa1, 0x2f, 0x84, 0x02, 0x49, 0x1d, 0xdb, + 0xdc, 0x53, 0x1b, 0xdb, 0xef, 0x66, 0x61, 0xa6, 0xd4, 0x68, 0x50, 0xdf, 0x67, 0x5b, 0x2c, 0xf5, + 0x83, 0x67, 0x76, 0x60, 0xd3, 0xa3, 0xa5, 0xb4, 0x6f, 0x1b, 0x6a, 0x54, 0x7f, 0x27, 0x03, 0x27, + 0x24, 0xd5, 0x03, 0x87, 0x3e, 0x5c, 0xdf, 0xf3, 0xa8, 0xbf, 0xe7, 0xb6, 0x9a, 0x43, 0xa7, 0xd8, + 0x63, 0x6a, 0x06, 0x66, 0xfb, 0x51, 0x6f, 0x12, 0x77, 0x10, 0xa2, 0xa9, 0x19, 0x3c, 0x23, 0xd0, + 0x35, 0x18, 0x2b, 0x75, 0xbb, 0x9e, 0xfb, 0x80, 0x4f, 0xfb, 0x29, 0xe1, 0xe3, 0xce, 0x41, 0x9a, + 0x4f, 0x3c, 0x07, 0xb1, 0x66, 0x54, 0x68, 0x87, 0xc7, 0x67, 0x4f, 0xf1, 0x66, 0x34, 0x69, 0x47, + 0x3d, 0x2c, 0x60, 0xb9, 0xf1, 0x9d, 0x3c, 0x4c, 0xaa, 0x1f, 0x42, 0x0c, 0x9e, 0x3a, 0xcb, 0xf5, + 0xd4, 0xd0, 0x13, 0x1b, 0x21, 0xa6, 0x28, 0x89, 0x22, 0xb6, 0xb2, 0x87, 0x46, 0x6c, 0x6d, 0xc1, + 0x54, 0xcd, 0x73, 0xbb, 0xae, 0x4f, 0x9b, 0xfc, 0x35, 0x22, 0xbe, 0x6a, 0x1d, 0x53, 0x54, 0x69, + 0xd6, 0xe7, 0x78, 0x5d, 0x82, 0x07, 0xc9, 0xae, 0xc0, 0xb6, 0xe2, 0x6f, 0x15, 0xe9, 0x7c, 0xf8, + 0x4d, 0xac, 0xed, 0x8b, 0x8c, 0x09, 0xe1, 0x4d, 0x2c, 0x83, 0xe8, 0x37, 0xb1, 0x0c, 0xa2, 0x4e, + 0x8b, 0x91, 0xa7, 0x35, 0x2d, 0xc8, 0xcf, 0x65, 0x60, 0xa2, 0xd4, 0xe9, 0x88, 0x48, 0xb0, 0x43, + 0x5c, 0xe1, 0xbf, 0x22, 0x2e, 0x63, 0xdf, 0xfa, 0x58, 0x97, 0xb1, 0xeb, 0x9e, 0xed, 0x04, 0x3e, + 0xaa, 0x34, 0x51, 0x85, 0xea, 0x59, 0x40, 0x69, 0x07, 0x79, 0x0b, 0x8a, 0xa1, 0x3c, 0x56, 0x3b, + 0x4d, 0xfa, 0x88, 0xfa, 0x73, 0x63, 0xe7, 0x73, 0x97, 0xa6, 0x44, 0xda, 0x13, 0x55, 0x85, 0x89, + 0x23, 0x1a, 0xdf, 0xcd, 0xc0, 0x49, 0x55, 0x20, 0xea, 0xbd, 0xed, 0xb6, 0x83, 0x0a, 0x35, 0xb9, + 0x0a, 0xe3, 0x62, 0xbc, 0x42, 0x4d, 0x34, 0x99, 0xe9, 0x2b, 0x42, 0x21, 0x8b, 0x6c, 0x88, 0x18, + 0x0f, 0x61, 0x65, 0x3a, 0x16, 0x9b, 0x6e, 0xac, 0x68, 0x61, 0x4e, 0x74, 0x76, 0xd1, 0xc3, 0xdf, + 0xfa, 0xd8, 0x31, 0x88, 0xf1, 0x2e, 0xcc, 0xea, 0xad, 0xac, 0xd3, 0x80, 0x5c, 0x86, 0x31, 0xf9, + 0x69, 0x99, 0xf4, 0x4f, 0x93, 0xe5, 0xc6, 0x16, 0x90, 0x04, 0xbd, 0x8f, 0x1e, 0x05, 0x34, 0x90, + 0x1e, 0x2f, 0xd2, 0x9e, 0x9f, 0x40, 0x0c, 0x9f, 0x78, 0x9b, 0xd0, 0x5c, 0xdc, 0x18, 0xa9, 0xf1, + 0xed, 0x29, 0x38, 0x96, 0xb2, 0x74, 0x1c, 0xb2, 0xb5, 0xcf, 0xeb, 0x93, 0x67, 0x3c, 0x8c, 0x32, + 0x91, 0x53, 0xe6, 0x5d, 0xf9, 0x70, 0xd7, 0x80, 0xa9, 0x32, 0xe8, 0x35, 0xaf, 0x4f, 0x62, 0x7b, + 0x57, 0x03, 0xc1, 0x46, 0x9e, 0x5a, 0x20, 0xd8, 0x02, 0x4c, 0x89, 0xaf, 0x12, 0x53, 0x79, 0x34, + 0x32, 0x28, 0x79, 0xbc, 0xc0, 0x4a, 0x4c, 0x69, 0x9d, 0x84, 0xf3, 0xf0, 0xdd, 0xd6, 0x03, 0x2a, + 0x78, 0x8c, 0xa9, 0x3c, 0xb0, 0x20, 0x95, 0x87, 0x42, 0x42, 0xfe, 0x16, 0x66, 0xcf, 0x45, 0x88, + 0x3a, 0x9f, 0x0b, 0x83, 0xe6, 0x73, 0xf3, 0xe9, 0xcc, 0xe7, 0x17, 0x64, 0x1b, 0xd3, 0xe7, 0x75, + 0x4a, 0xb3, 0xc8, 0x2f, 0x67, 0x60, 0x96, 0x47, 0x23, 0xa9, 0x8d, 0x1d, 0x18, 0x61, 0xd2, 0x78, + 0x3a, 0x8d, 0x3d, 0xeb, 0x63, 0xb5, 0x7d, 0xda, 0x9a, 0x6c, 0x14, 0xf9, 0x32, 0x40, 0x38, 0xa3, + 0xfc, 0x39, 0xc0, 0xa9, 0x76, 0x36, 0x65, 0x15, 0x08, 0x91, 0xa2, 0xfc, 0x60, 0x41, 0x48, 0xa7, + 0xe5, 0x4c, 0x0e, 0xa1, 0xe4, 0xcf, 0xc1, 0x71, 0x36, 0x5f, 0x42, 0x88, 0x88, 0x9d, 0x9c, 0x9b, + 0xc0, 0x5a, 0x3e, 0xdb, 0x7f, 0x6b, 0xbf, 0x9a, 0x46, 0xc6, 0x93, 0xa2, 0x44, 0x8f, 0x2c, 0x04, + 0x6d, 0xf5, 0xcc, 0x9a, 0x46, 0x81, 0xc1, 0xc8, 0xd8, 0x7a, 0x9e, 0xc3, 0xab, 0xcf, 0xfa, 0x76, + 0x5a, 0xce, 0x05, 0xbe, 0xbe, 0xf9, 0xba, 0x37, 0x3b, 0x82, 0xc8, 0xfb, 0x40, 0xc2, 0x30, 0x1e, + 0x0e, 0xa3, 0x32, 0xbf, 0x17, 0xb7, 0x2e, 0x45, 0xe1, 0x40, 0x9e, 0x2c, 0x56, 0x85, 0x24, 0x49, + 0x4c, 0x28, 0x1c, 0x17, 0x1f, 0xcd, 0xa0, 0x32, 0x3b, 0xaf, 0x3f, 0x37, 0xad, 0x45, 0xa6, 0x46, + 0x25, 0xd1, 0x6b, 0x0c, 0x4a, 0x8a, 0x5f, 0xed, 0xdc, 0x9e, 0xc6, 0x8e, 0xdc, 0x82, 0xf1, 0x65, + 0x77, 0xd7, 0xe9, 0x2c, 0x49, 0x3f, 0x09, 0x71, 0x67, 0xdb, 0x62, 0x40, 0x6b, 0x4f, 0xf7, 0x76, + 0x88, 0x50, 0x99, 0x56, 0x5b, 0xf1, 0xf6, 0xcd, 0x5e, 0x07, 0x6d, 0x40, 0x05, 0xae, 0xce, 0x34, + 0xbd, 0x7d, 0xcb, 0xeb, 0xe9, 0x31, 0x07, 0x88, 0x44, 0xbe, 0x0e, 0x13, 0x2b, 0xf6, 0x23, 0x69, + 0x02, 0x9a, 0x9b, 0x1d, 0xfe, 0x01, 0xbe, 0xb6, 0xfd, 0xc8, 0x6a, 0xf6, 0xe2, 0x89, 0xb5, 0xf8, + 0x03, 0x7c, 0x0a, 0x4b, 0xf2, 0x55, 0x00, 0xc5, 0x30, 0x45, 0x0e, 0xad, 0xe0, 0x45, 0x19, 0x6b, + 0x9d, 0x6a, 0xb0, 0x42, 0xfe, 0x0a, 0xc3, 0x33, 0xdb, 0x70, 0xba, 0xaf, 0xd4, 0xa5, 0x64, 0x8e, + 0xb9, 0xa6, 0x67, 0x8e, 0x39, 0xdd, 0x6f, 0x77, 0xf2, 0xd5, 0xec, 0x31, 0xbf, 0x90, 0x89, 0x6d, + 0x47, 0x42, 0x77, 0xe4, 0x99, 0x39, 0xfb, 0xed, 0xd7, 0x59, 0x4c, 0xd0, 0xcf, 0x37, 0xac, 0x6c, + 0xa4, 0xb3, 0xc6, 0x5e, 0xc9, 0xe1, 0x5b, 0xd7, 0x13, 0xee, 0x4c, 0xc6, 0x3f, 0xcb, 0x01, 0xe1, + 0x2d, 0x2c, 0xdb, 0x5d, 0x7b, 0xdb, 0x69, 0x39, 0x81, 0x83, 0x51, 0x64, 0x45, 0xc1, 0xc2, 0xde, + 0x6e, 0x51, 0x35, 0x04, 0x53, 0x38, 0x3e, 0x85, 0x65, 0x56, 0x5c, 0xcb, 0x4c, 0x10, 0xf6, 0x99, + 0x4b, 0xd9, 0x27, 0x99, 0x4b, 0x5f, 0x87, 0xe7, 0x4b, 0x5d, 0x4c, 0xaa, 0x2f, 0x6b, 0xb9, 0xed, + 0x7a, 0x72, 0x16, 0x68, 0x0e, 0xca, 0x76, 0x88, 0x96, 0x68, 0xe9, 0x20, 0x16, 0xca, 0x46, 0x58, + 0xf3, 0xdc, 0x76, 0x37, 0x50, 0xc3, 0x59, 0xe4, 0x46, 0xd8, 0xc5, 0x92, 0x94, 0x8d, 0x90, 0x93, + 0x48, 0x1e, 0x8e, 0x27, 0x37, 0x42, 0x4c, 0xd3, 0x19, 0xf1, 0x70, 0x3c, 0xda, 0x67, 0x33, 0x0d, + 0x49, 0xc8, 0xdb, 0x30, 0x51, 0xea, 0x05, 0xae, 0x60, 0x2c, 0x3c, 0xf6, 0x22, 0xdf, 0x3a, 0xd1, + 0x14, 0x4d, 0xef, 0x8c, 0xd0, 0x8d, 0xbf, 0x9f, 0x85, 0xd3, 0xc9, 0xe1, 0x15, 0xa5, 0xa1, 0x90, + 0x65, 0x0e, 0x11, 0xb2, 0x34, 0x69, 0xe0, 0x26, 0xbd, 0xa7, 0x26, 0x0d, 0x3c, 0x37, 0xff, 0xc7, + 0x94, 0x86, 0x3a, 0x4c, 0xa8, 0x0b, 0x6a, 0xfe, 0xe3, 0x2e, 0xa8, 0x2a, 0x17, 0xcc, 0x72, 0xaf, + 0x24, 0x51, 0x7f, 0x3d, 0xcd, 0x3f, 0x98, 0x67, 0xe6, 0xe1, 0x60, 0xdd, 0x35, 0x58, 0x9e, 0xc5, + 0xb3, 0xa9, 0x67, 0x71, 0x99, 0x64, 0x28, 0x97, 0x9a, 0x64, 0xa8, 0x02, 0x33, 0xf5, 0xde, 0xb6, + 0xac, 0x1b, 0x11, 0xf3, 0x5a, 0x88, 0x83, 0x25, 0xdb, 0xaf, 0x47, 0xea, 0x6a, 0x24, 0xc6, 0x4f, + 0x66, 0x61, 0xb2, 0xd6, 0xea, 0xed, 0x3a, 0x9d, 0x8a, 0x1d, 0xd8, 0xcf, 0xac, 0x79, 0xe0, 0x4d, + 0xcd, 0x3c, 0x10, 0xba, 0xc1, 0x87, 0x1f, 0x36, 0x94, 0x6d, 0xe0, 0x7b, 0x19, 0x98, 0x89, 0x48, + 0xf8, 0x12, 0xbf, 0x04, 0x79, 0xf6, 0x43, 0x9c, 0x36, 0xce, 0x27, 0x18, 0xf3, 0x7c, 0xc3, 0xe1, + 0x5f, 0xe2, 0xc0, 0xae, 0x67, 0xe4, 0x44, 0x0e, 0x67, 0x3e, 0xc7, 0x1f, 0x33, 0x3c, 0x7a, 0x9e, + 0xe1, 0xdf, 0xc8, 0x40, 0x31, 0xfe, 0x25, 0xe4, 0x1e, 0x8c, 0x31, 0x4e, 0x4e, 0xf8, 0x30, 0xe2, + 0x4b, 0x7d, 0xbe, 0xf9, 0xaa, 0x40, 0xe3, 0xcd, 0xc3, 0xce, 0xa7, 0x1c, 0x62, 0x4a, 0x0e, 0x67, + 0x4c, 0x98, 0x54, 0xb1, 0x52, 0x5a, 0xf7, 0x9a, 0xbe, 0xaf, 0x9d, 0x4c, 0xef, 0x07, 0x2d, 0x3b, + 0xb2, 0xd6, 0x6a, 0xb1, 0xa3, 0x0d, 0xfb, 0x0a, 0xeb, 0x8d, 0x28, 0x59, 0x98, 0x2a, 0x67, 0x29, + 0x02, 0x1d, 0xe2, 0x91, 0xd7, 0x60, 0x94, 0xd7, 0xa7, 0x26, 0xff, 0xec, 0x22, 0x44, 0x55, 0x4c, + 0x38, 0x8e, 0xf1, 0xd7, 0x72, 0x70, 0x32, 0x6a, 0x1e, 0x7f, 0x93, 0xb6, 0x66, 0x7b, 0x76, 0xdb, + 0x3f, 0x64, 0x06, 0x5c, 0x4a, 0x34, 0x0d, 0x33, 0x48, 0xca, 0xa6, 0x29, 0x0d, 0x32, 0x62, 0x0d, + 0x42, 0x83, 0x0c, 0x6f, 0x90, 0x6c, 0x06, 0xb9, 0x07, 0xb9, 0x3a, 0x0d, 0xc4, 0x5a, 0x74, 0x31, + 0xd1, 0xab, 0x6a, 0xbb, 0xae, 0xd6, 0x69, 0xc0, 0x07, 0x91, 0x87, 0x6c, 0x52, 0x2d, 0x17, 0x09, + 0x3b, 0x5a, 0x6f, 0xc1, 0xe8, 0xe2, 0xa3, 0x2e, 0x6d, 0x04, 0x22, 0x4b, 0xf6, 0xe5, 0xc1, 0xfc, + 0x38, 0xae, 0x92, 0x24, 0x9b, 0x22, 0x40, 0xed, 0x2c, 0x8e, 0x72, 0xe6, 0x16, 0x14, 0x64, 0xe5, + 0x47, 0x91, 0xdc, 0x33, 0x6f, 0xc2, 0x84, 0x52, 0xc9, 0x91, 0x84, 0xfe, 0x8f, 0x33, 0x30, 0xca, + 0x76, 0x82, 0xcd, 0x5b, 0xcf, 0xe8, 0x8a, 0x74, 0x53, 0x5b, 0x91, 0x66, 0x95, 0x74, 0x47, 0x38, + 0x2f, 0x6f, 0x1d, 0xb2, 0x16, 0x1d, 0xb0, 0x7d, 0x25, 0x44, 0x26, 0x77, 0x60, 0x4c, 0x5c, 0x08, + 0x0b, 0xd7, 0x35, 0x35, 0x7f, 0x92, 0xbc, 0x2a, 0x0e, 0x4f, 0x2c, 0x6e, 0x37, 0x7e, 0xc4, 0x93, + 0xd4, 0xa4, 0x12, 0xe5, 0xbe, 0xd0, 0xde, 0x23, 0x70, 0xd1, 0x6f, 0x9f, 0xe7, 0xff, 0x51, 0x5e, + 0xfa, 0xe8, 0x13, 0x10, 0x59, 0x12, 0x46, 0xca, 0xdc, 0x20, 0x26, 0x27, 0x65, 0x32, 0xf8, 0x54, + 0xfb, 0xe5, 0xbf, 0x20, 0x3c, 0x73, 0x8e, 0x6c, 0xd8, 0x3b, 0x30, 0x79, 0xdb, 0xf5, 0x1e, 0xda, + 0x1e, 0xcf, 0x87, 0x80, 0x9f, 0xc9, 0x2f, 0x03, 0xa7, 0x76, 0x38, 0x9c, 0x67, 0x54, 0xf8, 0xe1, + 0xc1, 0x7c, 0x7e, 0xc1, 0x75, 0x5b, 0xa6, 0x86, 0x4e, 0xd6, 0x60, 0x6a, 0xc5, 0x7e, 0xa4, 0x9c, + 0x04, 0xb8, 0x23, 0xee, 0xe5, 0xc7, 0x07, 0xf3, 0xa7, 0xd9, 0x51, 0xe2, 0xf0, 0xeb, 0x69, 0x9d, + 0x9e, 0x38, 0x30, 0x5d, 0x73, 0xbd, 0x40, 0x54, 0xc2, 0xce, 0xa7, 0xb9, 0x3e, 0x17, 0xec, 0xd7, + 0x52, 0x2f, 0xd8, 0x4f, 0xb3, 0x43, 0xb9, 0xb5, 0x13, 0x92, 0x6b, 0xa1, 0xc4, 0x1a, 0x63, 0xf2, + 0x0e, 0xcc, 0x96, 0xa9, 0x17, 0x38, 0x3b, 0x4e, 0xc3, 0x0e, 0xe8, 0x6d, 0xd7, 0x6b, 0xdb, 0x52, + 0x91, 0x44, 0xe3, 0x18, 0xde, 0x64, 0xee, 0x20, 0xd8, 0x4c, 0x62, 0x92, 0x0f, 0xd3, 0x5c, 0x9b, + 0x47, 0xa2, 0x1b, 0xfa, 0x14, 0xd7, 0xe6, 0x7e, 0x37, 0xf4, 0x49, 0x27, 0xe7, 0xdd, 0x41, 0x1e, + 0x3c, 0x85, 0x85, 0xeb, 0xc2, 0xf9, 0xe7, 0x70, 0x0f, 0x9d, 0x70, 0xdc, 0xfa, 0x78, 0xea, 0xdc, + 0x80, 0xdc, 0x42, 0xed, 0x36, 0x9a, 0x3b, 0xe5, 0x15, 0x6e, 0x67, 0xcf, 0xee, 0x34, 0x50, 0xc1, + 0x13, 0x5e, 0x73, 0xea, 0x82, 0xb7, 0x50, 0xbb, 0x4d, 0x6c, 0x38, 0x56, 0xa3, 0x5e, 0xdb, 0x09, + 0xbe, 0x74, 0xfd, 0xba, 0x32, 0x50, 0x05, 0x6c, 0xda, 0x35, 0xd1, 0xb4, 0xf9, 0x2e, 0xa2, 0x58, + 0x8f, 0xae, 0x5f, 0x4f, 0x1d, 0x8e, 0xb0, 0x61, 0x69, 0xbc, 0xc8, 0x22, 0x4c, 0xaf, 0xd8, 0x8f, + 0x22, 0x67, 0x47, 0x5f, 0x04, 0x89, 0xbc, 0x20, 0x05, 0x2b, 0x72, 0x94, 0xd4, 0xa2, 0x40, 0x75, + 0x22, 0xa6, 0x9f, 0x47, 0xe2, 0xe5, 0x0b, 0xf7, 0xda, 0x33, 0xf2, 0x9c, 0x2b, 0x23, 0x89, 0x54, + 0x25, 0x53, 0x41, 0x27, 0x1b, 0xe1, 0x29, 0x83, 0x6b, 0xe9, 0x22, 0x5f, 0xf9, 0x35, 0xf5, 0x94, + 0x61, 0x63, 0x89, 0xf6, 0x59, 0x33, 0xe1, 0xf9, 0x8e, 0x7b, 0x7f, 0x9a, 0x3a, 0x97, 0xe4, 0xe1, + 0x65, 0xf2, 0xe8, 0x87, 0x17, 0x0a, 0xf9, 0x65, 0xb7, 0x71, 0x1f, 0xfd, 0x57, 0xc6, 0x17, 0xde, + 0x67, 0xd3, 0xbd, 0xe5, 0x36, 0xee, 0x3f, 0x3d, 0xcf, 0x24, 0x64, 0x4f, 0x56, 0x59, 0x53, 0x99, + 0x14, 0x88, 0x3e, 0x11, 0xde, 0x2e, 0xc7, 0x43, 0xed, 0x5d, 0x29, 0xe3, 0x7a, 0x05, 0x17, 0x1a, + 0xd9, 0xb5, 0xa6, 0x4e, 0x4e, 0x28, 0x14, 0x2b, 0xd4, 0xbf, 0x1f, 0xb8, 0xdd, 0x72, 0xcb, 0xe9, + 0x6e, 0xbb, 0xb6, 0xd7, 0x44, 0x83, 0x46, 0xda, 0xfc, 0x7e, 0x25, 0x75, 0x7e, 0xcf, 0x36, 0x39, + 0xbd, 0xd5, 0x90, 0x0c, 0xcc, 0x04, 0x4b, 0xf2, 0x21, 0x4c, 0x33, 0xe1, 0x5e, 0x7c, 0x14, 0xd0, + 0x0e, 0x1f, 0xf9, 0x59, 0xdc, 0x99, 0x8f, 0x2b, 0x79, 0xe6, 0xc2, 0x42, 0x2e, 0x53, 0x38, 0xd9, + 0x69, 0x48, 0xa0, 0xca, 0x94, 0xce, 0x8a, 0x34, 0x61, 0x6e, 0xc5, 0x7e, 0xa4, 0xe4, 0x5d, 0x57, + 0x84, 0x94, 0xa0, 0x80, 0xe1, 0xd3, 0x6e, 0x4c, 0xc0, 0xa2, 0x7c, 0x30, 0x7d, 0xe4, 0xb5, 0x2f, + 0x27, 0xf2, 0x23, 0x70, 0x4a, 0x7c, 0x56, 0x05, 0x93, 0xaf, 0xba, 0xde, 0x7e, 0x7d, 0xcf, 0x46, + 0x3f, 0xe7, 0x63, 0x47, 0x5b, 0x10, 0x65, 0x87, 0x35, 0x25, 0x1f, 0xcb, 0xe7, 0x8c, 0xcc, 0x7e, + 0x35, 0x90, 0x8f, 0x60, 0x9a, 0xdb, 0xb1, 0x97, 0x5c, 0x3f, 0xc0, 0x43, 0xe8, 0xf1, 0xa3, 0xb9, + 0xef, 0x71, 0xe3, 0x38, 0x77, 0x78, 0x8d, 0x1d, 0x5a, 0x63, 0x9c, 0xc9, 0x5b, 0x30, 0x51, 0x73, + 0x3a, 0x3c, 0xbb, 0x43, 0xb5, 0x36, 0x77, 0x22, 0xda, 0x7f, 0xba, 0x4e, 0xc7, 0x92, 0x27, 0xc1, + 0x6e, 0xb8, 0x5c, 0xa8, 0xd8, 0x64, 0x0b, 0x26, 0xea, 0xf5, 0xa5, 0xdb, 0x0e, 0xdb, 0x00, 0xbb, + 0xfb, 0x73, 0x27, 0xfb, 0xb4, 0xf2, 0x42, 0x6a, 0x2b, 0xa7, 0x7c, 0x7f, 0x0f, 0x9f, 0x8f, 0xb2, + 0x1a, 0x6e, 0x77, 0xdf, 0x54, 0x39, 0xa5, 0xb8, 0xb4, 0x9d, 0x7a, 0xca, 0x2e, 0x6d, 0x55, 0x98, + 0x51, 0x5c, 0x77, 0xd0, 0x6d, 0x67, 0x2e, 0x7a, 0x61, 0x4b, 0x75, 0x61, 0x8b, 0x87, 0x43, 0xc4, + 0xe9, 0xa4, 0x2f, 0xdb, 0xe9, 0xa3, 0xfa, 0xb2, 0x39, 0x30, 0xcb, 0x07, 0x43, 0xc8, 0x01, 0x8e, + 0xf4, 0x99, 0x3e, 0x7d, 0x78, 0x39, 0xb5, 0x0f, 0x8f, 0x89, 0x91, 0x96, 0x42, 0x86, 0xf7, 0x36, + 0x49, 0xae, 0x64, 0x07, 0x88, 0x00, 0x8a, 0xc7, 0xab, 0xb0, 0xae, 0xe7, 0xfb, 0xd4, 0xf5, 0x52, + 0x6a, 0x5d, 0xd3, 0xb2, 0xae, 0x6d, 0x5e, 0x4d, 0x0a, 0x47, 0xd2, 0x91, 0xf5, 0x48, 0xf9, 0xc2, + 0x8e, 0x3d, 0x8b, 0x63, 0x27, 0xad, 0x82, 0x49, 0x04, 0x0c, 0x1c, 0x9a, 0x8f, 0x0b, 0x6d, 0xbc, + 0xdf, 0x53, 0x38, 0x8b, 0x87, 0x53, 0x53, 0x3c, 0xe9, 0xfe, 0x8b, 0x6c, 0x6c, 0xe9, 0x24, 0x55, + 0x18, 0x13, 0x3d, 0x22, 0x74, 0xc9, 0xe4, 0x77, 0xbf, 0x90, 0xfa, 0xdd, 0x63, 0xa2, 0x73, 0x4d, + 0x49, 0x4f, 0x1e, 0x32, 0x56, 0xe8, 0xd4, 0x27, 0x94, 0xef, 0xaf, 0xf2, 0x95, 0x11, 0x41, 0xda, + 0x1e, 0x50, 0x39, 0xba, 0x4b, 0xb3, 0xee, 0x31, 0x8f, 0x9b, 0x81, 0xac, 0x8d, 0xdc, 0xe7, 0xe9, + 0x21, 0x73, 0xa1, 0x5f, 0xac, 0x9e, 0x0b, 0xf2, 0xa9, 0x55, 0xc8, 0x6a, 0x31, 0x7e, 0x2b, 0x03, + 0x53, 0xda, 0xda, 0x4b, 0x6e, 0x29, 0x4e, 0xdf, 0x51, 0x4c, 0x91, 0x86, 0x83, 0xd3, 0x31, 0xee, + 0x0e, 0x7e, 0x4b, 0xf8, 0xc5, 0x65, 0xfb, 0xd3, 0xa5, 0xbe, 0xa4, 0x36, 0xd8, 0x12, 0x14, 0xa6, + 0x9b, 0xce, 0xf7, 0x49, 0x37, 0xfd, 0x2b, 0xa7, 0x61, 0x5a, 0x57, 0xce, 0xd9, 0x69, 0x19, 0x8d, + 0xfa, 0xd2, 0x60, 0xcb, 0x5f, 0x49, 0x42, 0x88, 0xf6, 0x4a, 0x12, 0x42, 0xc8, 0xcb, 0x00, 0xa1, + 0x8b, 0x98, 0xb4, 0xc9, 0x8e, 0x3c, 0x3e, 0x98, 0xcf, 0xbc, 0x6e, 0x2a, 0x05, 0xe4, 0x6b, 0x00, + 0xab, 0x6e, 0x93, 0x86, 0x39, 0xed, 0x07, 0x5c, 0x6c, 0xbd, 0x92, 0x48, 0x9d, 0x76, 0xa2, 0xe3, + 0x36, 0x69, 0x32, 0x4f, 0x9a, 0xc2, 0x91, 0x7c, 0x01, 0x46, 0xcc, 0x5e, 0x8b, 0x4a, 0xdb, 0xdd, + 0x84, 0x5c, 0x03, 0x7b, 0x2d, 0xe5, 0x9d, 0x7c, 0xaf, 0x17, 0xf7, 0x67, 0x60, 0x00, 0xf2, 0x1e, + 0x4f, 0xa9, 0x26, 0x52, 0x79, 0x8c, 0x44, 0x56, 0x6a, 0x65, 0x6f, 0x4c, 0x24, 0xf3, 0x50, 0x48, + 0xc8, 0x1a, 0x8c, 0xa9, 0xe6, 0x55, 0x25, 0x7a, 0x48, 0x35, 0xdd, 0x2b, 0xe7, 0x1f, 0x91, 0x0c, + 0x3f, 0x6e, 0x79, 0x95, 0x5c, 0xc8, 0xdb, 0x30, 0xce, 0xd8, 0xf3, 0x17, 0xd2, 0xc7, 0x22, 0x5b, + 0xb4, 0xd2, 0xa0, 0xf8, 0x23, 0xe9, 0x11, 0x01, 0xf9, 0x10, 0x93, 0xc5, 0x8b, 0xae, 0x1e, 0x78, + 0xe1, 0x79, 0x31, 0xd1, 0xd5, 0x98, 0x3d, 0x3e, 0xf9, 0x86, 0x4f, 0xc8, 0x8f, 0xec, 0x86, 0x89, + 0x20, 0x86, 0x49, 0x83, 0x77, 0x25, 0x51, 0xc1, 0x9c, 0xcc, 0x6d, 0x90, 0x7c, 0x9b, 0x40, 0xe3, + 0x4b, 0xba, 0x50, 0x8c, 0xd4, 0x0e, 0x51, 0x17, 0x0c, 0xaa, 0xeb, 0xf5, 0x44, 0x5d, 0xea, 0x00, + 0x26, 0xaa, 0x4b, 0x70, 0x27, 0x4d, 0x98, 0x96, 0x0b, 0xb5, 0xa8, 0x6f, 0x62, 0x50, 0x7d, 0x2f, + 0x27, 0xea, 0x3b, 0xd6, 0xdc, 0x4e, 0xd6, 0x13, 0xe3, 0x49, 0xde, 0x86, 0x29, 0x09, 0xc1, 0xf9, + 0x21, 0x1e, 0x0b, 0x42, 0xdb, 0x44, 0x73, 0x1b, 0x43, 0x2d, 0xf4, 0x17, 0x1b, 0x54, 0x64, 0x95, + 0x9a, 0x4b, 0xc7, 0x94, 0x46, 0x1d, 0x97, 0x0a, 0x1d, 0x99, 0x7c, 0x00, 0x13, 0xd5, 0x36, 0xfb, + 0x10, 0xb7, 0x63, 0x07, 0x54, 0x78, 0x96, 0xcb, 0xcb, 0x5b, 0xa5, 0x44, 0x11, 0x55, 0xfe, 0x92, + 0x4d, 0x54, 0xa4, 0xbd, 0x64, 0x13, 0x81, 0x59, 0xe7, 0x71, 0x7b, 0xba, 0x90, 0x61, 0xe9, 0x75, + 0xfe, 0x42, 0xca, 0x05, 0xaa, 0xc2, 0x5e, 0xa4, 0xcc, 0x61, 0x50, 0x79, 0x15, 0x11, 0x4b, 0x99, + 0xa3, 0xf2, 0x24, 0xef, 0xc0, 0x84, 0xc8, 0x10, 0x5a, 0x32, 0x57, 0xfd, 0xb9, 0x22, 0x7e, 0x3c, + 0xc6, 0xca, 0xc9, 0x64, 0xa2, 0x96, 0xed, 0xc5, 0xbc, 0x68, 0x22, 0x7c, 0xf2, 0x25, 0x38, 0xbe, + 0xe5, 0x74, 0x9a, 0xee, 0x43, 0x5f, 0x6c, 0x53, 0x62, 0xa1, 0x9b, 0x8d, 0x9c, 0x9d, 0x1f, 0xf2, + 0xf2, 0x50, 0x5b, 0x48, 0x2c, 0x7c, 0xa9, 0x1c, 0xc8, 0x9f, 0x4d, 0x70, 0xe6, 0x12, 0x44, 0x06, + 0x49, 0xd0, 0x8d, 0x84, 0x04, 0x25, 0xab, 0x8f, 0x8b, 0x53, 0x6a, 0x35, 0xc4, 0x05, 0xa2, 0xef, + 0xef, 0x77, 0x5d, 0xa7, 0x33, 0x77, 0x0c, 0xd7, 0xc2, 0xe7, 0xe3, 0xd1, 0x69, 0x88, 0xc7, 0x1f, + 0x3e, 0x95, 0xcf, 0x4f, 0xeb, 0x5a, 0xe1, 0x47, 0xae, 0x66, 0x18, 0x4d, 0x61, 0x4d, 0x3e, 0x80, + 0x49, 0xf6, 0x7f, 0x78, 0x6c, 0x3d, 0xae, 0xb9, 0xdc, 0x28, 0x98, 0xa2, 0x1e, 0x1c, 0x23, 0x4c, + 0x61, 0x9a, 0x72, 0xa2, 0xd5, 0x58, 0x91, 0x37, 0x01, 0x98, 0xfe, 0x22, 0x96, 0xe3, 0x13, 0x51, + 0x86, 0x22, 0xd4, 0x7a, 0x92, 0x0b, 0x71, 0x84, 0xcc, 0xce, 0xd2, 0xec, 0x57, 0xbd, 0xd7, 0x74, + 0xd9, 0xdc, 0x38, 0x89, 0xb4, 0x78, 0x96, 0x46, 0x5a, 0x9f, 0xc3, 0x55, 0xe9, 0x50, 0xd0, 0xc9, + 0x12, 0xcc, 0x60, 0x26, 0xa9, 0x6a, 0x93, 0x76, 0x02, 0xbc, 0xe7, 0x9a, 0x3b, 0xa5, 0xdc, 0x03, + 0xb2, 0x22, 0xcb, 0x09, 0xcb, 0x54, 0x6d, 0x37, 0x46, 0x46, 0x7c, 0x38, 0x16, 0xad, 0x2e, 0xd1, + 0xad, 0xe2, 0x1c, 0x76, 0x92, 0xd4, 0xf1, 0x92, 0x18, 0x7c, 0x3d, 0x66, 0x23, 0xa2, 0x2c, 0x5c, + 0xd2, 0x7c, 0xac, 0x56, 0x98, 0xc6, 0x9d, 0x98, 0x40, 0xee, 0x94, 0x6b, 0xf1, 0x54, 0x4b, 0xa7, + 0xf1, 0x0b, 0x70, 0x98, 0x77, 0x1b, 0xd1, 0x53, 0x1d, 0x29, 0xe9, 0x96, 0x52, 0xa8, 0xc9, 0x37, + 0xe1, 0x84, 0x5c, 0x41, 0x44, 0x91, 0x90, 0xeb, 0x33, 0x47, 0x5c, 0x89, 0x9b, 0xdb, 0x61, 0xd5, + 0x09, 0x91, 0x4e, 0xaf, 0x82, 0xd8, 0x30, 0x81, 0xc3, 0x2a, 0x6a, 0x7c, 0x7e, 0x50, 0x8d, 0x97, + 0x12, 0x35, 0x9e, 0xe4, 0x8f, 0x50, 0x27, 0x2a, 0x53, 0x79, 0x92, 0x05, 0x98, 0x12, 0xf3, 0x48, + 0x48, 0xdb, 0xd9, 0xe8, 0x15, 0x75, 0x39, 0x03, 0x13, 0x02, 0xa7, 0x93, 0xa8, 0x2b, 0x32, 0xbf, + 0xd8, 0x7c, 0x41, 0x5b, 0x91, 0xe3, 0xf7, 0x99, 0x3a, 0x32, 0x5b, 0x91, 0x22, 0x2d, 0x66, 0xf1, + 0x51, 0xd7, 0x13, 0x46, 0x8c, 0x73, 0x51, 0x62, 0x50, 0x45, 0xf9, 0xb1, 0x68, 0x88, 0xa1, 0x2e, + 0x09, 0x69, 0x1c, 0xc8, 0x06, 0x1c, 0x0b, 0x77, 0x6d, 0x85, 0xf1, 0x3c, 0x32, 0xc6, 0xc3, 0x44, + 0xb4, 0xd5, 0xa7, 0xf3, 0x4d, 0xa3, 0x27, 0x36, 0x9c, 0xd2, 0xf6, 0x69, 0x85, 0xf5, 0x79, 0x64, + 0x8d, 0x4f, 0xc3, 0xe8, 0x9b, 0x7c, 0x3a, 0xfb, 0x7e, 0x7c, 0xc8, 0x47, 0x70, 0x26, 0xbe, 0x37, + 0x2b, 0xb5, 0xbc, 0x88, 0xb5, 0x5c, 0x79, 0x7c, 0x30, 0x7f, 0x31, 0xb1, 0xbd, 0xa7, 0x57, 0x34, + 0x80, 0x1b, 0xf9, 0x1a, 0xcc, 0xe9, 0xfb, 0xb3, 0x52, 0x93, 0x11, 0x3d, 0xd0, 0x1f, 0x6e, 0xec, + 0xe9, 0x35, 0xf4, 0xe5, 0x41, 0x02, 0x98, 0x4f, 0x95, 0x6e, 0xa5, 0x9a, 0x0b, 0xd1, 0x07, 0x25, + 0x66, 0x49, 0x7a, 0x75, 0x87, 0xb1, 0x24, 0x0f, 0xe1, 0x5c, 0xda, 0x36, 0xa1, 0x54, 0xfa, 0x52, + 0x68, 0x26, 0x7c, 0x35, 0x7d, 0xcb, 0x49, 0xaf, 0xf9, 0x10, 0xb6, 0xe4, 0x43, 0x38, 0xa1, 0xcc, + 0x2f, 0xa5, 0xbe, 0x97, 0xb1, 0x3e, 0x0c, 0x55, 0x52, 0x27, 0x66, 0x7a, 0x2d, 0xe9, 0x3c, 0x8c, + 0xdf, 0xc9, 0x00, 0x49, 0x2e, 0x7c, 0x43, 0xdf, 0x1c, 0xbe, 0xa1, 0xc4, 0xf1, 0xa8, 0x4f, 0x74, + 0x87, 0xb9, 0x45, 0x55, 0x85, 0x37, 0x8a, 0xf8, 0xb9, 0xa8, 0x1d, 0xb0, 0xfa, 0x3b, 0x7f, 0x5f, + 0x86, 0x91, 0x4d, 0xea, 0x6d, 0xf3, 0x13, 0x88, 0x70, 0xa0, 0x7e, 0xc0, 0x00, 0xda, 0x93, 0x81, + 0x0c, 0x60, 0xfc, 0x61, 0x06, 0x8e, 0xa7, 0xed, 0xc6, 0x87, 0xbc, 0x1d, 0x64, 0xc4, 0xdc, 0xcb, + 0xf1, 0xd6, 0x90, 0xbb, 0x97, 0x87, 0x4e, 0xe5, 0xf3, 0x30, 0xc2, 0x3e, 0x56, 0x7a, 0xb0, 0xe0, + 0x81, 0x8f, 0xf5, 0x86, 0x6f, 0x72, 0x38, 0x43, 0xe0, 0x71, 0xfd, 0x79, 0x4c, 0xaf, 0x80, 0x08, + 0xb8, 0xd8, 0x9b, 0x1c, 0xce, 0x10, 0xd8, 0xc1, 0x52, 0x1e, 0x84, 0x10, 0x81, 0x9d, 0x37, 0x7d, + 0x93, 0xc3, 0xc9, 0x45, 0x18, 0x5b, 0xeb, 0x2c, 0x53, 0xfb, 0x81, 0x4c, 0x8f, 0x8a, 0xb7, 0x9c, + 0x6e, 0xc7, 0x6a, 0x31, 0x98, 0x29, 0x0b, 0x8d, 0xef, 0x65, 0x60, 0x36, 0xa1, 0x08, 0x1c, 0xfe, + 0x3c, 0xd2, 0x60, 0x47, 0xda, 0x61, 0xbe, 0x8f, 0x37, 0x3f, 0x9f, 0xde, 0x7c, 0xe3, 0x7f, 0xcf, + 0xc3, 0xa9, 0x3e, 0xe7, 0xb2, 0xc8, 0x09, 0x3e, 0x73, 0xa8, 0x13, 0xfc, 0x57, 0xd8, 0x39, 0xc8, + 0x76, 0xda, 0xfe, 0xba, 0x1b, 0xb5, 0x38, 0xf2, 0x17, 0xc4, 0x32, 0xf9, 0x7a, 0x89, 0x74, 0x2c, + 0x3b, 0xcd, 0x5f, 0x90, 0xb2, 0x02, 0x37, 0xb9, 0x2d, 0x68, 0xcc, 0x12, 0x6e, 0xe8, 0xb9, 0x3f, + 0x25, 0x6e, 0xe8, 0xba, 0xf3, 0x67, 0xfe, 0xa9, 0x3a, 0x7f, 0xa6, 0xfb, 0xf5, 0x8c, 0x3c, 0x89, + 0x97, 0x57, 0x19, 0xa6, 0xea, 0xd4, 0xf6, 0x1a, 0x7b, 0x25, 0x9f, 0x0f, 0xd2, 0x68, 0x94, 0xa7, + 0xd3, 0xc7, 0x02, 0xcb, 0xf6, 0x93, 0x63, 0xa1, 0xd1, 0x90, 0x25, 0xdd, 0x51, 0x71, 0x0c, 0xed, + 0xe7, 0x17, 0xfb, 0x3b, 0x22, 0x6a, 0xf7, 0x66, 0x2a, 0xa9, 0xf1, 0xbd, 0xac, 0xee, 0x87, 0xff, + 0xa7, 0x51, 0xf2, 0x2e, 0xc3, 0xc8, 0xd6, 0x1e, 0xf5, 0xe4, 0x7a, 0x87, 0x0d, 0x79, 0xc8, 0x00, + 0x6a, 0x43, 0x10, 0x83, 0xdc, 0x86, 0xe9, 0x1a, 0x1f, 0x09, 0xd9, 0xbd, 0xf9, 0x48, 0x5d, 0xee, + 0x8a, 0x43, 0x5d, 0x4a, 0xff, 0xc6, 0xa8, 0x8c, 0x1f, 0x81, 0x49, 0xb5, 0xd1, 0xb8, 0x44, 0xb1, + 0xdf, 0x62, 0x8d, 0xe0, 0x4b, 0x14, 0x03, 0x98, 0x1c, 0x7e, 0xe8, 0x23, 0x6a, 0x51, 0x6f, 0xe6, + 0x0e, 0xeb, 0x4d, 0x56, 0x39, 0xce, 0x00, 0xa5, 0x72, 0xfc, 0xad, 0x56, 0x1e, 0x30, 0x80, 0xc9, + 0xe1, 0x4f, 0xb5, 0xf2, 0x7f, 0x20, 0xb3, 0xb2, 0xbe, 0x01, 0xe3, 0xd1, 0x31, 0x21, 0x7a, 0xaa, + 0xe2, 0x58, 0x9a, 0xf2, 0x1f, 0x61, 0x46, 0x7b, 0x4e, 0xf6, 0xb0, 0x3d, 0xe7, 0x28, 0xe3, 0x7a, + 0x0d, 0xc6, 0x4a, 0xe2, 0xb2, 0x88, 0x0f, 0x28, 0x0f, 0x4c, 0x4a, 0xdc, 0x0c, 0x49, 0x2c, 0xe3, + 0xfb, 0x19, 0x38, 0x91, 0x6a, 0x3d, 0x60, 0xb5, 0x72, 0x33, 0x85, 0x22, 0xd6, 0x71, 0x1b, 0x05, + 0xc7, 0x38, 0x4a, 0x00, 0xd2, 0xf0, 0xdf, 0x62, 0xbc, 0x08, 0xe3, 0xa1, 0xed, 0x9a, 0x1c, 0x97, + 0x43, 0x87, 0x1e, 0x04, 0xd2, 0x04, 0xfa, 0xc7, 0x19, 0x18, 0x65, 0x4d, 0x78, 0x66, 0x33, 0x99, + 0xa4, 0xfb, 0x93, 0xb0, 0x4f, 0x1a, 0x2a, 0x7f, 0xc9, 0xbf, 0x1e, 0xe5, 0x6f, 0x63, 0x8a, 0xac, + 0x25, 0xdb, 0x30, 0xbd, 0x56, 0xad, 0x94, 0x95, 0x43, 0xb0, 0x9e, 0x40, 0x36, 0x7c, 0xd8, 0x8f, + 0x23, 0xec, 0x47, 0x6b, 0x8c, 0xeb, 0x34, 0x1b, 0xe9, 0x07, 0xe4, 0x18, 0x47, 0x56, 0x07, 0x7f, + 0x15, 0x32, 0xac, 0x23, 0x3b, 0x64, 0x1d, 0xe2, 0xcd, 0xc9, 0xb4, 0x3a, 0x74, 0x8e, 0x64, 0x0f, + 0x8a, 0x77, 0x70, 0x3f, 0x54, 0x6a, 0xc9, 0x0d, 0xae, 0xe5, 0x82, 0xa8, 0xe5, 0x79, 0xbe, 0x91, + 0xa6, 0xd7, 0x93, 0xe0, 0x1a, 0x49, 0x6e, 0xfe, 0x50, 0xc9, 0xfd, 0x8b, 0x19, 0x18, 0xe5, 0x1b, + 0xae, 0x18, 0xad, 0x3e, 0x5b, 0xfa, 0xd6, 0xd3, 0xd9, 0xd2, 0x8b, 0xb8, 0x72, 0x69, 0x66, 0x7b, + 0x5e, 0x46, 0x2a, 0x30, 0x5a, 0x0f, 0xec, 0xa0, 0x27, 0x23, 0xdc, 0xa4, 0xd3, 0x10, 0x9a, 0xb3, + 0x78, 0x49, 0x14, 0xc6, 0xe5, 0xe3, 0x6f, 0x95, 0x0b, 0xc7, 0x20, 0xd5, 0x28, 0x82, 0x68, 0xec, + 0x50, 0xf7, 0x7a, 0x19, 0x75, 0x35, 0x26, 0x22, 0x88, 0xf4, 0xb8, 0xa1, 0x65, 0x18, 0x17, 0x71, + 0x49, 0x0b, 0xfb, 0xc2, 0x68, 0x5d, 0xd4, 0x2e, 0xc3, 0x9a, 0x0b, 0xea, 0x4b, 0xf3, 0x1c, 0x64, + 0x6d, 0x6b, 0xaf, 0x14, 0x86, 0x88, 0x64, 0x8d, 0xa7, 0xaa, 0xe6, 0x79, 0x5d, 0xf4, 0xa4, 0x68, + 0x21, 0x5c, 0x04, 0xee, 0xca, 0xe0, 0x86, 0x94, 0x34, 0x2e, 0x11, 0x0f, 0xb2, 0x0c, 0x45, 0xf1, + 0xf2, 0x19, 0xbf, 0xd9, 0xac, 0x56, 0x78, 0xec, 0x8b, 0x70, 0x48, 0x91, 0xef, 0xa6, 0x89, 0x3b, + 0x51, 0xdd, 0x2b, 0x38, 0x41, 0x69, 0x7c, 0x27, 0x03, 0xc5, 0xb8, 0xf4, 0x91, 0xb7, 0x61, 0x22, + 0xcc, 0xab, 0x13, 0x3a, 0xf7, 0xa3, 0xf1, 0x2a, 0x4a, 0xc4, 0xa3, 0xb9, 0xf9, 0xab, 0xe8, 0xe4, + 0x06, 0x14, 0xd8, 0x24, 0x56, 0x9e, 0xaf, 0xc6, 0xd5, 0xa9, 0x27, 0x60, 0xaa, 0x5f, 0xa4, 0xc4, + 0x53, 0xd6, 0x80, 0x7f, 0x92, 0x83, 0x09, 0x65, 0xe8, 0xc9, 0x65, 0x28, 0x54, 0xfd, 0x65, 0xb7, + 0x71, 0x9f, 0x36, 0x85, 0xbb, 0xd5, 0xd4, 0xe3, 0x83, 0xf9, 0x71, 0xc7, 0xb7, 0x5a, 0x08, 0x34, + 0xc3, 0x62, 0xb2, 0x00, 0x53, 0xfc, 0x2f, 0x99, 0xe6, 0x2f, 0x1b, 0xb9, 0x8a, 0x70, 0x64, 0x99, + 0xe0, 0x4f, 0x55, 0x3a, 0x34, 0x12, 0xf2, 0x55, 0x00, 0x0e, 0x60, 0xd2, 0x32, 0x44, 0x90, 0x73, + 0x18, 0xa9, 0x21, 0x2a, 0x08, 0x1c, 0xf5, 0x0b, 0x79, 0xa4, 0x46, 0xc4, 0x90, 0x7c, 0x9d, 0xa7, + 0xcc, 0x91, 0xa2, 0x9a, 0x1f, 0x3e, 0xd4, 0x84, 0xf1, 0xb7, 0xd2, 0x23, 0xde, 0x54, 0x96, 0xe4, + 0xbb, 0x19, 0x38, 0x63, 0xd2, 0x86, 0xfb, 0x80, 0x7a, 0xfb, 0xa5, 0x00, 0xb1, 0xd4, 0x1a, 0x0f, + 0x0f, 0xaf, 0xbb, 0x29, 0x6a, 0x7c, 0xc5, 0x13, 0x5c, 0x30, 0xb7, 0x48, 0xbb, 0x1b, 0x58, 0x03, + 0x9a, 0x30, 0xa0, 0x4a, 0xe3, 0x9f, 0x66, 0x94, 0x09, 0x45, 0x56, 0xf1, 0x61, 0x05, 0x2e, 0x2c, + 0xe2, 0x6a, 0x37, 0xd4, 0x17, 0x25, 0xdc, 0xa4, 0x3b, 0x0b, 0xcf, 0x0b, 0xcf, 0xa8, 0x63, 0xa1, + 0xc8, 0xc5, 0x1e, 0x5c, 0xe0, 0x40, 0xf2, 0x45, 0xc8, 0xe3, 0x50, 0x1d, 0xfe, 0x80, 0x9c, 0xdc, + 0xb8, 0xf2, 0x6c, 0x8c, 0xb0, 0xd5, 0x48, 0x49, 0x3e, 0x23, 0x42, 0x07, 0x72, 0xda, 0x6b, 0xd1, + 0x0c, 0xc4, 0xda, 0x11, 0xee, 0x58, 0x51, 0x90, 0xa5, 0x22, 0xad, 0x7f, 0x39, 0x0b, 0xc5, 0xf8, + 0x34, 0x26, 0xef, 0xc1, 0xa4, 0xcc, 0xf8, 0xb3, 0x64, 0x8b, 0x3c, 0x7e, 0x93, 0x22, 0x8f, 0x9e, + 0x80, 0x5b, 0x7b, 0xb6, 0xf6, 0x2c, 0xa0, 0x46, 0xc0, 0xb6, 0xf7, 0x75, 0x11, 0xbb, 0xaf, 0x4c, + 0xa0, 0xc0, 0x0d, 0xba, 0xb1, 0x37, 0x4d, 0x25, 0x1a, 0x79, 0x03, 0x72, 0x2b, 0xb7, 0x4b, 0xc2, + 0xa5, 0x56, 0xae, 0x56, 0x2b, 0xb7, 0x4b, 0x7c, 0xa2, 0x73, 0x9f, 0x06, 0xdd, 0xc3, 0x82, 0xe1, + 0x93, 0x65, 0x25, 0x89, 0xd2, 0xa8, 0x96, 0x88, 0x5c, 0x82, 0xc3, 0x8f, 0x3b, 0x3c, 0x9b, 0x92, + 0xfa, 0x66, 0xa2, 0xf1, 0x2b, 0x39, 0x18, 0x0f, 0xeb, 0x27, 0x04, 0x50, 0x7b, 0x11, 0x5e, 0xb5, + 0xf8, 0x37, 0x39, 0x0d, 0x05, 0xa9, 0xb0, 0x08, 0xcf, 0xda, 0x31, 0x5f, 0x28, 0x2b, 0x73, 0x20, + 0x35, 0x13, 0xae, 0xac, 0x98, 0xf2, 0x27, 0xb9, 0x0e, 0xa1, 0xda, 0xd1, 0x4f, 0x3f, 0xc9, 0xb3, + 0x01, 0x33, 0x43, 0x34, 0x32, 0x0d, 0x59, 0x87, 0xc7, 0x65, 0x8f, 0x9b, 0x59, 0xa7, 0x49, 0xde, + 0x83, 0x82, 0xdd, 0x6c, 0xd2, 0xa6, 0x65, 0xcb, 0x3b, 0xd2, 0x41, 0x42, 0x53, 0x60, 0xdc, 0xf8, + 0xfe, 0x80, 0x54, 0xa5, 0x80, 0x94, 0x60, 0xbc, 0x65, 0x73, 0xaf, 0x87, 0xe6, 0x10, 0x9b, 0x4d, + 0xc4, 0xa1, 0xc0, 0xc8, 0x36, 0x7c, 0xda, 0x24, 0xaf, 0x40, 0x9e, 0x8d, 0xa6, 0xd8, 0x5d, 0xc2, + 0x17, 0x20, 0xd7, 0xd6, 0x6b, 0xbc, 0xc3, 0x96, 0x9e, 0x33, 0x11, 0x81, 0xbc, 0x04, 0xb9, 0xde, + 0x8d, 0x1d, 0xb1, 0x6f, 0x14, 0xa3, 0x84, 0x66, 0x21, 0x1a, 0x2b, 0x26, 0x37, 0xa1, 0xf0, 0x50, + 0xcf, 0x85, 0x75, 0x22, 0x36, 0x8c, 0x21, 0x7e, 0x88, 0xb8, 0x50, 0x80, 0x51, 0xbe, 0x47, 0x18, + 0xe7, 0x00, 0xa2, 0xaa, 0x93, 0x0e, 0xd0, 0xc6, 0x57, 0x61, 0x3c, 0xac, 0x92, 0xbc, 0x00, 0x70, + 0x9f, 0xee, 0x5b, 0x7b, 0x76, 0xa7, 0xd9, 0xe2, 0xea, 0xeb, 0xa4, 0x39, 0x7e, 0x9f, 0xee, 0x2f, + 0x21, 0x80, 0x9c, 0x82, 0xb1, 0x2e, 0x1b, 0x55, 0xf9, 0x22, 0xaf, 0x39, 0xda, 0xed, 0x6d, 0x33, + 0x09, 0x9d, 0x83, 0x31, 0x34, 0xee, 0x88, 0x89, 0x36, 0x65, 0xca, 0x9f, 0xc6, 0x7f, 0x95, 0xc5, + 0x9c, 0xaa, 0x4a, 0x3b, 0xc9, 0x05, 0x98, 0x6a, 0x78, 0x14, 0xb7, 0x23, 0x7c, 0xce, 0x59, 0xd4, + 0x33, 0x19, 0x01, 0xab, 0x4d, 0x72, 0x11, 0x66, 0xa2, 0x27, 0x82, 0xad, 0xc6, 0xb6, 0x48, 0x5c, + 0x37, 0x69, 0x4e, 0x75, 0xe5, 0x1b, 0xc1, 0xe5, 0x6d, 0xcc, 0x27, 0x50, 0x54, 0xf3, 0x06, 0x05, + 0xe1, 0x43, 0x40, 0xe6, 0x8c, 0x02, 0x47, 0xd7, 0x87, 0x93, 0x30, 0x6a, 0xdb, 0xbb, 0x3d, 0x87, + 0xc7, 0x36, 0x4f, 0x9a, 0xe2, 0x17, 0x79, 0x15, 0x66, 0x7d, 0x67, 0xb7, 0x63, 0x07, 0x3d, 0x4f, + 0x24, 0xb5, 0xa5, 0x1e, 0x8a, 0xd4, 0x94, 0x59, 0x0c, 0x0b, 0xca, 0x1c, 0x4e, 0x5e, 0x07, 0xa2, + 0xd6, 0xe7, 0x6e, 0x7f, 0x44, 0x1b, 0x5c, 0xd4, 0x26, 0xcd, 0x59, 0xa5, 0x64, 0x0d, 0x0b, 0xc8, + 0x8b, 0x30, 0xe9, 0x51, 0x1f, 0x15, 0x3c, 0xec, 0x36, 0x4c, 0x39, 0x6e, 0x4e, 0x48, 0x18, 0xeb, + 0xbb, 0x4b, 0x50, 0x54, 0xba, 0x03, 0x53, 0x33, 0xf1, 0xac, 0x6d, 0xe6, 0x74, 0x04, 0x37, 0xbb, + 0xd5, 0xa6, 0xb1, 0x00, 0xb3, 0x89, 0x99, 0x4b, 0x5e, 0xe7, 0xa7, 0x0a, 0xb1, 0x93, 0x4f, 0xf2, + 0x43, 0x14, 0xfa, 0xec, 0x68, 0x9b, 0xb8, 0x40, 0x32, 0x3a, 0x30, 0xa9, 0xae, 0xc4, 0x87, 0x24, + 0x0f, 0x3c, 0x89, 0xf1, 0x7f, 0x7c, 0x99, 0x1a, 0x7d, 0x7c, 0x30, 0x9f, 0x75, 0x9a, 0x18, 0xf5, + 0x77, 0x09, 0x0a, 0x52, 0x9f, 0x10, 0x27, 0x0e, 0x34, 0xce, 0x09, 0x45, 0x76, 0xdf, 0x0c, 0x4b, + 0x8d, 0x57, 0x60, 0x4c, 0x2c, 0xb6, 0x83, 0x4d, 0x72, 0xc6, 0x4f, 0x64, 0x61, 0xc6, 0xa4, 0x6c, + 0x29, 0xa0, 0x3c, 0x63, 0xe8, 0xa7, 0xec, 0x59, 0x65, 0xed, 0xdb, 0x06, 0xe4, 0xea, 0xfc, 0xb5, + 0x0c, 0x1c, 0x4b, 0xc1, 0xfd, 0x58, 0xef, 0x3e, 0xdc, 0x82, 0xf1, 0x8a, 0x63, 0xb7, 0x4a, 0xcd, + 0x66, 0x18, 0xc7, 0x88, 0x5a, 0x68, 0x93, 0x49, 0x9a, 0xcd, 0xa0, 0xea, 0xb6, 0x1b, 0xa2, 0x92, + 0x2b, 0x42, 0x28, 0xa2, 0x17, 0xb5, 0xe4, 0xc3, 0xcd, 0xc0, 0xdb, 0x14, 0xbd, 0x2d, 0x84, 0xc9, + 0x7b, 0x38, 0x30, 0xf2, 0xd9, 0x7c, 0x66, 0x87, 0x2e, 0x3d, 0x79, 0x4f, 0xfc, 0xf3, 0x86, 0x3a, + 0xee, 0x7e, 0x27, 0x0b, 0x27, 0xd3, 0x09, 0x3f, 0xee, 0x13, 0x1e, 0x98, 0x28, 0x55, 0x79, 0x1b, + 0x1b, 0x9f, 0xf0, 0xe0, 0x59, 0x55, 0x11, 0x3f, 0x42, 0x20, 0x3b, 0x30, 0xb5, 0x6c, 0xfb, 0xc1, + 0x12, 0xb5, 0xbd, 0x60, 0x9b, 0xda, 0xc1, 0x10, 0xba, 0xee, 0x4b, 0xe2, 0x6b, 0xe6, 0x70, 0xfb, + 0xdb, 0x93, 0x94, 0x31, 0x55, 0x50, 0x67, 0x1b, 0x0a, 0x4a, 0x7e, 0x08, 0x41, 0xf9, 0x06, 0xcc, + 0xd4, 0x69, 0xdb, 0xee, 0xee, 0xb9, 0x1e, 0x15, 0xb7, 0x08, 0x57, 0x61, 0x2a, 0x04, 0xa5, 0x4a, + 0x8b, 0x5e, 0xac, 0xe1, 0x2b, 0x1d, 0x11, 0x2d, 0x25, 0x7a, 0xb1, 0xf1, 0x57, 0xb2, 0x70, 0xaa, + 0xd4, 0x10, 0x4e, 0x05, 0xa2, 0x40, 0xfa, 0x3e, 0x7d, 0xc2, 0x75, 0x93, 0x6b, 0x30, 0xbe, 0x62, + 0x3f, 0x5a, 0xa6, 0xb6, 0x4f, 0x7d, 0x91, 0x40, 0x9d, 0x2b, 0x6a, 0xf6, 0xa3, 0xe8, 0xae, 0xdd, + 0x8c, 0x70, 0xd4, 0x43, 0x6e, 0xfe, 0x09, 0x0f, 0xb9, 0x06, 0x8c, 0x2e, 0xb9, 0xad, 0xa6, 0xd8, + 0xc6, 0xc4, 0x0d, 0xce, 0x1e, 0x42, 0x4c, 0x51, 0x62, 0xfc, 0x61, 0x06, 0xa6, 0xc3, 0x16, 0x63, + 0x13, 0x3e, 0xf1, 0x2e, 0xb9, 0x08, 0x63, 0x58, 0x51, 0xb5, 0xa2, 0x6e, 0x1a, 0x2d, 0x06, 0xb2, + 0x9c, 0xa6, 0x29, 0x0b, 0xd5, 0x9e, 0x18, 0x79, 0xb2, 0x9e, 0x30, 0xfe, 0x43, 0xbc, 0x1c, 0x52, + 0xbf, 0x92, 0xed, 0x44, 0x4a, 0x43, 0x32, 0x43, 0x36, 0x24, 0xfb, 0xd4, 0x86, 0x24, 0xd7, 0x77, + 0x48, 0xbe, 0x95, 0x85, 0x89, 0xb0, 0xb1, 0x9f, 0xb2, 0xac, 0x77, 0xe1, 0x77, 0x0d, 0x15, 0x07, + 0x5b, 0x57, 0xd6, 0x0a, 0x11, 0x6e, 0xfa, 0x45, 0x18, 0x15, 0x93, 0x29, 0x13, 0xf3, 0x01, 0x8a, + 0x8d, 0xee, 0xc2, 0xb4, 0x60, 0x3d, 0x8a, 0x03, 0xea, 0x9b, 0x82, 0x0e, 0x03, 0x8d, 0xb7, 0xe8, + 0xb6, 0xb8, 0x2b, 0x7c, 0x66, 0xf7, 0xa8, 0xf4, 0x40, 0xe3, 0xe8, 0xc3, 0x86, 0xda, 0x9d, 0x0e, + 0x46, 0xa0, 0x18, 0x27, 0x39, 0x3c, 0xaf, 0x60, 0xad, 0xb7, 0xcd, 0xb5, 0x70, 0x9e, 0x57, 0xb0, + 0xdb, 0xdb, 0x36, 0x19, 0x8c, 0x5c, 0x84, 0x7c, 0xcd, 0x73, 0x1e, 0xe0, 0x57, 0x4f, 0xf2, 0xbb, + 0xeb, 0xae, 0xe7, 0x3c, 0x50, 0xef, 0xae, 0x59, 0x39, 0x1e, 0x7d, 0x97, 0xeb, 0x18, 0xbc, 0x85, + 0x2a, 0xb8, 0x38, 0xfa, 0xb6, 0xfc, 0x78, 0x2e, 0x65, 0x89, 0xc6, 0xb6, 0xca, 0x05, 0x6a, 0x7b, + 0x22, 0x07, 0x9e, 0x58, 0xce, 0x70, 0xab, 0xdc, 0x46, 0x30, 0x7f, 0x46, 0xcc, 0x54, 0x91, 0x48, + 0x0b, 0x88, 0xf2, 0x53, 0x4e, 0xe0, 0xc3, 0x4f, 0x83, 0xe7, 0xa5, 0xd5, 0x4f, 0x65, 0x6d, 0xa9, + 0xb3, 0x39, 0x85, 0xef, 0xd3, 0xb4, 0x4d, 0xd6, 0x44, 0x46, 0x14, 0x34, 0x79, 0x14, 0x0e, 0x65, + 0x26, 0xa3, 0x1b, 0x81, 0x67, 0x4c, 0x09, 0x0d, 0x1f, 0x11, 0x13, 0xf2, 0x2e, 0x4c, 0xa8, 0x21, + 0x79, 0x3c, 0x70, 0xec, 0x2c, 0x4f, 0xe4, 0xd1, 0xe7, 0x25, 0x0b, 0x95, 0x80, 0x6c, 0xc3, 0xa9, + 0xb2, 0xdb, 0xf1, 0x7b, 0x6d, 0xda, 0xd4, 0xee, 0xb2, 0xab, 0x15, 0x3c, 0x8a, 0xf2, 0x97, 0x28, + 0x5f, 0x6a, 0x08, 0x14, 0x11, 0x01, 0x26, 0x1d, 0x2c, 0xf5, 0x03, 0x48, 0x3f, 0x46, 0x64, 0x1d, + 0x26, 0xea, 0xa5, 0x95, 0x65, 0x19, 0x56, 0x35, 0xa1, 0x2f, 0x1b, 0x51, 0x49, 0x85, 0x4d, 0x0c, + 0x9e, 0x59, 0xc0, 0x6e, 0xb7, 0xa4, 0x7f, 0x9f, 0x6a, 0xa7, 0x54, 0x90, 0x8d, 0xcf, 0xa8, 0xf2, + 0x2d, 0xd4, 0x8d, 0x81, 0xf2, 0x6d, 0xfc, 0xb7, 0xa3, 0x30, 0x13, 0xab, 0x4e, 0x9c, 0x7f, 0x32, + 0x89, 0xf3, 0x4f, 0x1d, 0x80, 0x1b, 0xbd, 0x86, 0xb4, 0x4e, 0x49, 0xd7, 0xf0, 0x09, 0x11, 0x58, + 0x11, 0x8e, 0x95, 0xc2, 0x86, 0x31, 0xe5, 0x92, 0x30, 0xa4, 0x75, 0x32, 0x64, 0xca, 0x85, 0x49, + 0x61, 0x1a, 0xb1, 0x21, 0xf3, 0x30, 0x82, 0x19, 0x5f, 0x54, 0xcf, 0x7c, 0x87, 0x01, 0x4c, 0x0e, + 0x27, 0x17, 0x60, 0x94, 0x6d, 0xce, 0xd5, 0x8a, 0x98, 0x5c, 0xb8, 0x66, 0xb1, 0xdd, 0x9b, 0xed, + 0x84, 0xa2, 0x88, 0xdc, 0x82, 0x49, 0xfe, 0x97, 0x08, 0x0d, 0x1d, 0xd5, 0x9d, 0x54, 0x2c, 0xa7, + 0x29, 0xa3, 0x43, 0x35, 0x3c, 0xa6, 0xb5, 0xd6, 0x7b, 0xdb, 0xe2, 0x81, 0xd6, 0xb1, 0x48, 0x6b, + 0xf5, 0x39, 0x10, 0x1f, 0x9e, 0x0b, 0x11, 0xd8, 0x1e, 0x29, 0xfc, 0xe3, 0x0a, 0x78, 0x56, 0xc1, + 0x3d, 0x92, 0xfb, 0xc5, 0x99, 0xa2, 0x84, 0x5c, 0xe6, 0xf6, 0x67, 0x54, 0x37, 0x78, 0x4e, 0x72, + 0xb4, 0x18, 0xe3, 0x81, 0x17, 0x75, 0x8e, 0xb0, 0x98, 0x55, 0xce, 0xfe, 0x5e, 0x6c, 0xdb, 0x4e, + 0x4b, 0x88, 0x2b, 0x56, 0x8e, 0xb8, 0x94, 0x41, 0xcd, 0x08, 0x81, 0xbc, 0x0d, 0xd3, 0xec, 0x47, + 0xd9, 0x6d, 0xb7, 0xdd, 0x0e, 0xb2, 0x9f, 0x88, 0x82, 0xf8, 0x91, 0xa4, 0x81, 0x45, 0xbc, 0x96, + 0x18, 0x2e, 0x5b, 0xa7, 0xf0, 0x6e, 0xab, 0xc7, 0x2d, 0xe3, 0x93, 0xd1, 0x3a, 0x85, 0xa4, 0x3e, + 0x87, 0x9b, 0x2a, 0x12, 0x79, 0x13, 0xa6, 0xd8, 0xcf, 0x3b, 0xce, 0x03, 0xca, 0x2b, 0x9c, 0x8a, + 0xae, 0x19, 0x91, 0x6a, 0x97, 0x95, 0xf0, 0xfa, 0x74, 0x4c, 0xf2, 0x3e, 0x9c, 0x40, 0x4e, 0x0d, + 0xb7, 0x4b, 0x9b, 0xa5, 0x9d, 0x1d, 0xa7, 0xe5, 0x70, 0xaf, 0x01, 0x1e, 0x04, 0x89, 0xd6, 0x48, + 0x5e, 0x31, 0x62, 0x58, 0x76, 0x84, 0x62, 0xa6, 0x53, 0x92, 0x2d, 0x28, 0x96, 0x7b, 0x7e, 0xe0, + 0xb6, 0x4b, 0x41, 0xe0, 0x39, 0xdb, 0xbd, 0x80, 0xfa, 0x73, 0x33, 0x5a, 0xa8, 0x20, 0x9b, 0x1c, + 0x61, 0x21, 0xb7, 0x33, 0x34, 0x90, 0xc2, 0xb2, 0x43, 0x12, 0x33, 0xc1, 0xc4, 0xf8, 0x6f, 0x32, + 0x30, 0xa5, 0x91, 0x92, 0x37, 0x60, 0xf2, 0xb6, 0xe7, 0xd0, 0x4e, 0xb3, 0xb5, 0xaf, 0x1c, 0x80, + 0x50, 0x3b, 0xde, 0x11, 0x70, 0xfe, 0xd5, 0x1a, 0x5a, 0x68, 0x3f, 0xc8, 0xa6, 0xba, 0xf4, 0x5c, + 0xe3, 0x01, 0x22, 0x42, 0x40, 0x73, 0x51, 0xec, 0x32, 0x0a, 0xa8, 0x90, 0x4e, 0x05, 0x85, 0xbc, + 0x03, 0xa3, 0xfc, 0x16, 0x4c, 0xf8, 0x97, 0x9c, 0x4e, 0xfb, 0x4c, 0x1e, 0x8c, 0x84, 0x82, 0x88, + 0x97, 0xef, 0xbe, 0x29, 0x88, 0x8c, 0x9f, 0xcb, 0x00, 0x49, 0xa2, 0x1e, 0x62, 0x4f, 0x39, 0xf4, + 0x52, 0xff, 0x8b, 0xe1, 0x6c, 0xcc, 0x69, 0xd6, 0x43, 0x56, 0x13, 0x2f, 0xe0, 0x1d, 0x2f, 0x66, + 0x9d, 0x6a, 0xe0, 0xe1, 0xc5, 0xc6, 0x5f, 0xc8, 0x02, 0x44, 0xd8, 0xe4, 0xf3, 0x3c, 0xb5, 0xf2, + 0xfb, 0x3d, 0xbb, 0xe5, 0xec, 0x38, 0x7a, 0x0e, 0x1d, 0x64, 0xf2, 0x0d, 0x59, 0x62, 0xea, 0x88, + 0xe4, 0x3d, 0x98, 0xa9, 0xd7, 0x74, 0x5a, 0x25, 0x8d, 0xac, 0xdf, 0xb5, 0x62, 0xe4, 0x71, 0x6c, + 0xf4, 0x23, 0x53, 0x47, 0x83, 0xfb, 0x91, 0xf1, 0x81, 0x10, 0x25, 0x6c, 0x61, 0xa9, 0xd7, 0xf0, + 0xad, 0xd0, 0x26, 0x6d, 0x56, 0x2b, 0x62, 0x95, 0xc2, 0xd6, 0xf9, 0x5d, 0xab, 0xcb, 0x0b, 0xf0, + 0x81, 0x4a, 0x0d, 0x2f, 0xea, 0xc8, 0x91, 0x3e, 0x01, 0x47, 0x3f, 0x8f, 0xe6, 0xa4, 0xb6, 0x1b, + 0x50, 0x71, 0x8a, 0x7e, 0x66, 0xf5, 0xe9, 0xe8, 0x0a, 0x75, 0x44, 0x8b, 0xa3, 0xd0, 0xbe, 0x8e, + 0x63, 0x6c, 0xde, 0x8c, 0x94, 0x5f, 0x7e, 0x99, 0x2a, 0xaf, 0x50, 0x15, 0xd5, 0xef, 0x6f, 0x64, + 0xe0, 0x44, 0x2a, 0x2d, 0xb9, 0x0a, 0x10, 0xd9, 0x2a, 0x44, 0x2f, 0xf1, 0x77, 0x42, 0x43, 0xa8, + 0xa9, 0x60, 0x90, 0xaf, 0xc4, 0xad, 0x0c, 0x87, 0x6f, 0x84, 0x67, 0x64, 0x46, 0x06, 0xdd, 0xca, + 0x90, 0x62, 0x5b, 0x30, 0x7e, 0x2d, 0x07, 0xb3, 0x4a, 0x40, 0x30, 0x6f, 0xeb, 0x21, 0x7e, 0x7d, + 0xf7, 0xe5, 0x9b, 0xb4, 0xc2, 0x99, 0x3b, 0xab, 0x3d, 0xc2, 0x9d, 0xe0, 0x76, 0x55, 0x45, 0xe6, + 0x69, 0x48, 0x70, 0xe9, 0x14, 0x4f, 0xd4, 0x26, 0x9c, 0xba, 0x35, 0xe6, 0xc4, 0x87, 0xa9, 0xca, + 0x7e, 0xc7, 0x6e, 0x87, 0xb5, 0xf1, 0x6b, 0xff, 0x57, 0xfb, 0xd6, 0xa6, 0x61, 0xf3, 0xea, 0xa4, + 0xce, 0x39, 0xd7, 0xe4, 0x65, 0x29, 0xe1, 0x4a, 0x1a, 0xd5, 0x99, 0xf7, 0x60, 0x36, 0xd1, 0xe8, + 0x23, 0x65, 0x44, 0xd9, 0x02, 0x92, 0x6c, 0x47, 0x0a, 0x87, 0x57, 0xf5, 0x7c, 0x3b, 0x27, 0xc2, + 0x6b, 0x3c, 0x7c, 0xf0, 0x8a, 0x3b, 0x11, 0xdc, 0x50, 0xf3, 0xa5, 0xfc, 0x7c, 0x56, 0x8d, 0x46, + 0x78, 0xd6, 0x67, 0xdd, 0x17, 0xb5, 0x53, 0xd6, 0xb9, 0x7e, 0x63, 0x3a, 0xd4, 0x69, 0xf6, 0x07, + 0x39, 0x38, 0xd5, 0x87, 0x92, 0xec, 0xc7, 0x85, 0x88, 0x9f, 0x6e, 0xaf, 0x0f, 0xae, 0xf0, 0x69, + 0x88, 0x12, 0xf9, 0x3c, 0x8f, 0x47, 0x6c, 0xe0, 0x43, 0x50, 0xe2, 0x5c, 0xc7, 0xdf, 0xf8, 0x0b, + 0xa1, 0xf1, 0x40, 0x44, 0x0e, 0x25, 0xef, 0xc1, 0x08, 0x86, 0xa2, 0xc4, 0x12, 0x92, 0x30, 0x0c, + 0x84, 0x2b, 0xd9, 0x5b, 0xd8, 0x4f, 0x2d, 0x7b, 0x0b, 0x3e, 0xba, 0xfe, 0x39, 0xc8, 0x95, 0xb6, + 0xea, 0x62, 0x5c, 0xa6, 0x55, 0xf2, 0xad, 0x7a, 0x94, 0x49, 0xd3, 0xd6, 0x52, 0x5e, 0x32, 0x0a, + 0x46, 0x78, 0xa7, 0x5c, 0x13, 0xa3, 0xa2, 0x12, 0xde, 0x29, 0xd7, 0x22, 0xc2, 0xdd, 0x86, 0x16, + 0xe0, 0x7d, 0xa7, 0x5c, 0xfb, 0xe4, 0xc4, 0xfe, 0xdb, 0x59, 0x1e, 0x44, 0xc9, 0x3f, 0xec, 0x3d, + 0x98, 0xd4, 0xf2, 0xa1, 0x65, 0x22, 0x7d, 0x2c, 0xcc, 0xe5, 0x16, 0xf3, 0x93, 0xd0, 0x08, 0x64, + 0x4e, 0xda, 0xf0, 0xf9, 0x76, 0xd5, 0xcd, 0x41, 0x7f, 0xf2, 0x3d, 0x9e, 0x93, 0x36, 0x24, 0x21, + 0x37, 0xa1, 0xb0, 0x4e, 0x3b, 0x76, 0x27, 0x08, 0x0d, 0x6d, 0xe8, 0xe4, 0x17, 0x20, 0x4c, 0xd7, + 0x1a, 0x42, 0x44, 0x7c, 0x6c, 0x5f, 0x79, 0x7c, 0x3e, 0xdc, 0x8b, 0xb9, 0x13, 0xab, 0x52, 0xa2, + 0x33, 0x88, 0x11, 0x19, 0x3f, 0x9f, 0x81, 0x31, 0x31, 0x90, 0xca, 0x8b, 0xc7, 0x99, 0x21, 0x5e, + 0x3c, 0xbe, 0x05, 0xe3, 0x22, 0x1e, 0x28, 0xbc, 0x72, 0xe2, 0xaf, 0xdf, 0x71, 0xa0, 0x5e, 0x6d, + 0x84, 0x3a, 0xac, 0xe3, 0xbc, 0xf1, 0xd7, 0x44, 0xcb, 0xee, 0x94, 0x6b, 0xe4, 0x06, 0x14, 0xe4, + 0xc3, 0xf1, 0xa2, 0x6d, 0xb8, 0xec, 0xc8, 0x17, 0xe6, 0xd5, 0x0e, 0x92, 0x78, 0xac, 0x7d, 0xe1, + 0x23, 0xf5, 0x6a, 0xfb, 0xa2, 0x07, 0xed, 0xd5, 0xf6, 0x85, 0xa8, 0x43, 0xb7, 0x8f, 0xa6, 0x2c, + 0x12, 0x9b, 0x37, 0x97, 0x1d, 0x3f, 0x20, 0x77, 0xd5, 0x80, 0x04, 0x51, 0x24, 0x57, 0x8a, 0x33, + 0xfd, 0x56, 0x8a, 0xcd, 0x9b, 0x66, 0x0a, 0x15, 0xde, 0xd7, 0x44, 0xe0, 0x3a, 0xf5, 0x1e, 0x3c, + 0xc3, 0xab, 0x74, 0xfa, 0x7d, 0x4d, 0xfc, 0xf3, 0x86, 0x5a, 0xa4, 0xff, 0x49, 0x16, 0x4e, 0xa6, + 0x13, 0xaa, 0xdf, 0x92, 0x19, 0xf0, 0x2d, 0x97, 0xa0, 0xb0, 0xe4, 0xfa, 0x81, 0xe2, 0x1a, 0x85, + 0x66, 0xe5, 0x3d, 0x01, 0x33, 0xc3, 0x52, 0x76, 0xe6, 0x66, 0x7f, 0x87, 0xd3, 0x13, 0xf9, 0x61, + 0xe8, 0x20, 0x3b, 0x73, 0xf3, 0x22, 0x72, 0x07, 0x0a, 0xa6, 0x70, 0x88, 0x8f, 0x75, 0x8d, 0x04, + 0x87, 0xda, 0x14, 0xf1, 0x04, 0x44, 0x4b, 0x4b, 0x27, 0x60, 0xa4, 0x04, 0x63, 0x62, 0xf4, 0x63, + 0x57, 0x92, 0x29, 0x22, 0xa3, 0x67, 0x8a, 0x94, 0x74, 0x6c, 0x45, 0xc1, 0xcb, 0xa5, 0x6a, 0x45, + 0xfa, 0xb6, 0xe3, 0x8a, 0xc2, 0x2f, 0x9f, 0x74, 0x2f, 0xb4, 0x10, 0xd1, 0xf8, 0x89, 0x2c, 0xc0, + 0x16, 0xdd, 0x7e, 0xb6, 0xdf, 0x70, 0xf9, 0x9c, 0x26, 0x61, 0x8a, 0xe7, 0xc5, 0xf0, 0x4f, 0xb8, + 0xac, 0xa1, 0x07, 0xc4, 0xf0, 0x0f, 0xb8, 0xcc, 0xc3, 0x08, 0xb7, 0x76, 0x2a, 0x87, 0x44, 0x6e, + 0xe6, 0xe4, 0x70, 0x63, 0x1b, 0x8e, 0xdf, 0xa1, 0x41, 0x64, 0xde, 0x92, 0x57, 0x5a, 0x83, 0xd9, + 0xbe, 0x06, 0xe3, 0x02, 0x3f, 0x5c, 0xbf, 0xb8, 0x2d, 0x46, 0x44, 0xe3, 0xa2, 0x2d, 0x46, 0x22, + 0xb0, 0xd5, 0xa8, 0x42, 0x5b, 0x34, 0xa0, 0x9f, 0x6c, 0x35, 0x75, 0x20, 0xfc, 0x53, 0xf0, 0xcb, + 0x86, 0xab, 0xe1, 0xd0, 0xfe, 0xd9, 0x84, 0x13, 0x61, 0xdb, 0x9f, 0x26, 0xdf, 0x6b, 0xec, 0x48, + 0x29, 0x92, 0x2c, 0x46, 0x1c, 0x07, 0xf8, 0x34, 0x3c, 0x82, 0x33, 0x92, 0x60, 0xcb, 0x09, 0x5d, + 0xc8, 0x86, 0xa2, 0x25, 0x6f, 0xc3, 0x84, 0x42, 0x23, 0xd2, 0xd8, 0xa2, 0xf9, 0xf3, 0xa1, 0x13, + 0xec, 0x59, 0x3e, 0x87, 0xab, 0xe6, 0x4f, 0x05, 0xdd, 0xf8, 0x10, 0x9e, 0x0f, 0xdd, 0xf7, 0x53, + 0xaa, 0x8e, 0x31, 0xcf, 0x1c, 0x8d, 0xf9, 0x6a, 0xf4, 0x59, 0xd5, 0x4e, 0x18, 0xc1, 0x26, 0x79, + 0x13, 0xf5, 0xb3, 0xc4, 0xc7, 0x9c, 0x4d, 0xc4, 0xc4, 0x29, 0xa1, 0x6f, 0xc6, 0x5b, 0x4a, 0x63, + 0x53, 0x18, 0x6a, 0xc4, 0x99, 0x38, 0xf1, 0x4f, 0x64, 0x61, 0x66, 0xad, 0x5a, 0x29, 0x87, 0x5e, + 0x2d, 0x9f, 0xb2, 0x07, 0x66, 0xb4, 0x6f, 0xeb, 0xbf, 0xde, 0x18, 0x1b, 0x70, 0x2c, 0xd6, 0x0d, + 0xa8, 0x3a, 0xbc, 0xcb, 0xdd, 0xec, 0x43, 0xb0, 0x54, 0x1b, 0x4e, 0xa6, 0xb1, 0xdf, 0xbc, 0x69, + 0xc6, 0xb0, 0x8d, 0xbf, 0x5d, 0x88, 0xf1, 0x15, 0x4b, 0xd8, 0x6b, 0x30, 0x5e, 0xf5, 0xfd, 0x1e, + 0xf5, 0x36, 0xcc, 0x65, 0xd5, 0x54, 0xe0, 0x20, 0xd0, 0xea, 0x79, 0x2d, 0x33, 0x42, 0x20, 0x97, + 0xa1, 0x20, 0x12, 0xfb, 0xc9, 0x35, 0x01, 0xad, 0xb6, 0x61, 0x5e, 0x40, 0x33, 0x2c, 0x26, 0x6f, + 0xc0, 0x24, 0xff, 0x9b, 0x4b, 0x9b, 0xe8, 0x70, 0x34, 0x0e, 0x0a, 0x74, 0x2e, 0x9d, 0xa6, 0x86, + 0x46, 0xae, 0x40, 0xae, 0x54, 0x36, 0xd5, 0xb7, 0xbf, 0xed, 0x86, 0x67, 0x71, 0x9b, 0x9d, 0x76, + 0x88, 0x28, 0x9b, 0x4c, 0xfb, 0x13, 0xa6, 0x24, 0x4f, 0x58, 0xb2, 0x51, 0x02, 0xa4, 0xb5, 0x29, + 0xb6, 0x99, 0x21, 0x8c, 0x5c, 0x83, 0xb1, 0x8a, 0xe3, 0x77, 0x5b, 0xf6, 0xbe, 0xb0, 0x63, 0xf3, + 0xb4, 0xf3, 0x1c, 0xa4, 0xca, 0x8c, 0xc0, 0x22, 0x97, 0x61, 0x04, 0x8d, 0xac, 0xc2, 0x96, 0xcd, + 0x73, 0x9b, 0x33, 0x80, 0x96, 0xdb, 0x9c, 0x01, 0x30, 0x6f, 0x2c, 0x4f, 0x7f, 0x37, 0xae, 0xe4, + 0x8d, 0x8d, 0xa7, 0xbd, 0x13, 0x38, 0xc9, 0xb8, 0x2c, 0x78, 0x9a, 0x71, 0x59, 0xdb, 0x70, 0xea, + 0x0e, 0x5a, 0x6f, 0xf4, 0x10, 0xfd, 0x0d, 0xb3, 0x2a, 0xec, 0xe1, 0x78, 0xe3, 0xc3, 0x0d, 0x3c, + 0xf1, 0x28, 0x7f, 0xab, 0xe7, 0xa9, 0xaf, 0xa8, 0xf4, 0x63, 0x44, 0xbe, 0x04, 0xc7, 0xd3, 0x8a, + 0x84, 0xd5, 0x1c, 0x83, 0xd1, 0xd3, 0x2b, 0x50, 0x83, 0xd1, 0xd3, 0x38, 0x90, 0x65, 0x28, 0x72, + 0x78, 0xa9, 0xd9, 0x76, 0x3a, 0xdc, 0xf2, 0x3f, 0x15, 0xbd, 0x80, 0x2a, 0xb8, 0xda, 0xac, 0x90, + 0xdf, 0x00, 0x68, 0x01, 0x17, 0x31, 0x4a, 0xf2, 0x33, 0x19, 0x76, 0x9a, 0xe3, 0xc9, 0xe2, 0x36, + 0xcc, 0x65, 0x5f, 0x24, 0x32, 0x39, 0x19, 0xc5, 0x52, 0xd4, 0x03, 0xcf, 0xe9, 0xec, 0x8a, 0x60, + 0x8a, 0x75, 0x11, 0x4c, 0xf1, 0xf6, 0xc7, 0x0a, 0xa6, 0xe0, 0xac, 0xfc, 0xc7, 0x07, 0xf3, 0x93, + 0x9e, 0xa8, 0x13, 0x67, 0x91, 0xd6, 0x02, 0x7c, 0x46, 0xb1, 0xd5, 0x72, 0x1f, 0x6e, 0x74, 0x1e, + 0x50, 0xcf, 0xd9, 0x71, 0x68, 0x93, 0x7f, 0xe4, 0x0c, 0xae, 0xe0, 0xfc, 0x19, 0x45, 0x7c, 0x56, + 0xb3, 0x17, 0x22, 0x24, 0x3e, 0x34, 0x95, 0x03, 0x3b, 0x78, 0x4a, 0x87, 0x7d, 0x1e, 0x15, 0x57, + 0x8c, 0x0e, 0x9e, 0xd2, 0xbb, 0xdf, 0x42, 0x31, 0x52, 0x85, 0x47, 0x23, 0x11, 0xde, 0xc1, 0x7f, + 0x79, 0x9c, 0xaf, 0xc8, 0xa5, 0x5e, 0xb0, 0x27, 0xd7, 0xf0, 0x1b, 0x69, 0x41, 0x07, 0xdc, 0xe5, + 0x49, 0x09, 0x3a, 0xd0, 0x43, 0x0d, 0xa4, 0x29, 0x3d, 0x9b, 0x6a, 0x4a, 0x7f, 0x0d, 0xc6, 0xf1, + 0xd1, 0xe8, 0xd0, 0xbb, 0xbb, 0x20, 0x6c, 0x95, 0x0c, 0xc8, 0xb3, 0xa2, 0x45, 0x08, 0xe4, 0x1a, + 0x00, 0xbe, 0x23, 0xc0, 0x37, 0x78, 0x25, 0xb3, 0x29, 0x3e, 0x37, 0x20, 0x6e, 0x91, 0x15, 0x14, + 0x64, 0x5f, 0x37, 0x6f, 0xab, 0xd7, 0xce, 0x9c, 0xbd, 0xef, 0xed, 0x08, 0xf4, 0x08, 0x81, 0x7d, + 0x9e, 0x32, 0x4c, 0x62, 0x51, 0x29, 0x26, 0xc6, 0x52, 0x45, 0x42, 0x8f, 0x2e, 0xe9, 0xca, 0x8a, + 0x6b, 0xca, 0xa4, 0xf0, 0xe8, 0x0a, 0xdd, 0x5e, 0xcd, 0x08, 0x81, 0x7c, 0x0e, 0xc6, 0xca, 0xd4, + 0x0b, 0xd6, 0xd7, 0x97, 0xf1, 0x66, 0x98, 0xa7, 0xff, 0x2c, 0x60, 0xaa, 0xc6, 0x20, 0x68, 0xfd, + 0xf0, 0x60, 0x7e, 0x2a, 0x70, 0xda, 0xf4, 0x6a, 0x78, 0x8d, 0x2b, 0xb1, 0xc9, 0x02, 0x14, 0xf9, + 0x1d, 0x63, 0xa4, 0xc8, 0xe1, 0x32, 0x53, 0xe0, 0x8b, 0x9e, 0xb8, 0x90, 0x7c, 0x48, 0xb7, 0xc3, + 0x44, 0x95, 0x09, 0x7c, 0xb2, 0x28, 0xf3, 0xbb, 0xaa, 0x1f, 0x09, 0x91, 0x65, 0x41, 0x2c, 0xcc, + 0xda, 0xb7, 0x26, 0x29, 0x48, 0x09, 0xa6, 0xca, 0x6e, 0xbb, 0x6b, 0x07, 0x0e, 0x26, 0xf8, 0xdf, + 0x17, 0x2b, 0x0a, 0x5a, 0x47, 0x1a, 0x6a, 0x81, 0xfe, 0x06, 0xb4, 0x52, 0x40, 0x6e, 0xc3, 0xb4, + 0xe9, 0xf6, 0xd8, 0x20, 0xc9, 0x23, 0x0d, 0x5f, 0x34, 0x30, 0x16, 0xd4, 0x63, 0x25, 0x6c, 0x8d, + 0x13, 0xe7, 0x17, 0x2d, 0xc1, 0x8f, 0x46, 0x45, 0x56, 0x53, 0x6c, 0xcb, 0xea, 0x4a, 0xa1, 0xa6, + 0xab, 0x4c, 0x30, 0x4b, 0x31, 0x4b, 0xdf, 0x84, 0x89, 0x7a, 0x7d, 0x6d, 0x9d, 0xfa, 0xc1, 0xed, + 0x96, 0xfb, 0x10, 0x17, 0x8a, 0x82, 0xc8, 0x92, 0xed, 0xbb, 0x56, 0x40, 0xfd, 0xc0, 0xda, 0x69, + 0xb9, 0x0f, 0x4d, 0x15, 0x8b, 0x7c, 0x4d, 0x79, 0x14, 0x1b, 0x77, 0xfe, 0x99, 0x43, 0x77, 0xfe, + 0xd8, 0x83, 0xd9, 0x6c, 0xff, 0x4f, 0x7d, 0x30, 0x9b, 0xa1, 0x63, 0xa8, 0x02, 0x3b, 0x8c, 0x95, + 0x9a, 0x4d, 0x8f, 0xfa, 0xbe, 0x98, 0xd1, 0xca, 0x93, 0xff, 0x36, 0x2f, 0xd0, 0x42, 0x15, 0x14, + 0x02, 0xf2, 0xad, 0x0c, 0x9c, 0x50, 0xbd, 0x9d, 0x71, 0xb2, 0xb4, 0x69, 0x27, 0x10, 0xcf, 0xa8, + 0xbc, 0x7e, 0x55, 0xae, 0x68, 0x57, 0x15, 0xb4, 0xab, 0x0f, 0xae, 0x5f, 0x55, 0x5e, 0x6a, 0xad, + 0x4b, 0x22, 0x91, 0x0d, 0x24, 0x8d, 0x9f, 0xba, 0x3a, 0xd9, 0x29, 0xa4, 0xa4, 0xcc, 0x36, 0x3d, + 0x26, 0x4f, 0xe8, 0xdb, 0x50, 0xad, 0x61, 0xc2, 0x23, 0x61, 0x9c, 0x12, 0xd2, 0xc7, 0xbd, 0x20, + 0x9c, 0xae, 0xbe, 0xb7, 0x29, 0x34, 0xa8, 0x2a, 0xd6, 0x4b, 0x2b, 0xcb, 0x91, 0xbe, 0xf3, 0xe9, + 0x72, 0x31, 0xd6, 0xbe, 0x6d, 0x80, 0x8b, 0xf1, 0x06, 0x1c, 0x8b, 0x75, 0x83, 0x54, 0x15, 0x35, + 0x70, 0x5c, 0x55, 0x8c, 0xd1, 0x98, 0x31, 0x6c, 0xe3, 0x57, 0xc7, 0x62, 0x7c, 0x85, 0x5b, 0x91, + 0x01, 0xa3, 0x5c, 0x13, 0x54, 0x9f, 0x05, 0xe4, 0x7a, 0xa2, 0x29, 0x4a, 0xc8, 0x69, 0xc8, 0xd5, + 0xeb, 0x6b, 0xea, 0xa3, 0xa5, 0xbe, 0xef, 0x9a, 0x0c, 0xc6, 0x46, 0x08, 0x3d, 0x86, 0x94, 0xcc, + 0x83, 0x6c, 0xd9, 0x33, 0x11, 0xca, 0xfa, 0x5b, 0xea, 0x65, 0xf9, 0xa8, 0xbf, 0x85, 0x5e, 0x16, + 0x69, 0x63, 0x65, 0x98, 0x2b, 0xf9, 0x3e, 0xf5, 0xf0, 0x85, 0x64, 0xee, 0x88, 0xe2, 0x09, 0xdd, + 0x41, 0xac, 0xee, 0x58, 0xa9, 0xdd, 0xf0, 0xcd, 0xbe, 0x88, 0xe4, 0x12, 0x14, 0x4a, 0xbd, 0xa6, + 0x43, 0x3b, 0x0d, 0x2d, 0x25, 0x85, 0x2d, 0x60, 0x66, 0x58, 0x4a, 0xde, 0x87, 0x13, 0x82, 0x48, + 0x2a, 0x90, 0xa2, 0x07, 0xc6, 0xa2, 0x29, 0x28, 0x75, 0x9b, 0xe8, 0x92, 0x93, 0x77, 0x49, 0x3a, + 0x25, 0x29, 0x41, 0x71, 0x11, 0x5d, 0xea, 0x2b, 0x94, 0xdb, 0x5b, 0x5d, 0x4f, 0x3c, 0xee, 0x8e, + 0x9a, 0x28, 0x77, 0xb7, 0xb7, 0x9a, 0x61, 0xa1, 0x99, 0x40, 0x27, 0xf7, 0xe0, 0x58, 0x1c, 0xc6, + 0x16, 0x72, 0xae, 0x74, 0x62, 0xea, 0xab, 0x04, 0x17, 0x5c, 0xca, 0xd3, 0xa8, 0xc8, 0x36, 0xcc, + 0x46, 0x97, 0xfc, 0xba, 0x2a, 0x2a, 0x7d, 0xd2, 0xc2, 0x72, 0xa9, 0x8e, 0x3e, 0x2f, 0x84, 0xf1, + 0x58, 0xe4, 0x30, 0x10, 0xaa, 0xa4, 0x66, 0x92, 0x1d, 0x69, 0xc2, 0x74, 0xdd, 0xd9, 0xed, 0x38, + 0x9d, 0xdd, 0x7b, 0x74, 0xbf, 0x66, 0x3b, 0x9e, 0xf0, 0x0e, 0x92, 0xbe, 0x7f, 0x25, 0x7f, 0xbf, + 0xdd, 0xa6, 0x81, 0x87, 0x5b, 0x24, 0x2b, 0xc7, 0x88, 0xba, 0x0c, 0xdb, 0x0b, 0x7c, 0x4e, 0x87, + 0xd1, 0x23, 0x5d, 0xdb, 0xd1, 0xf6, 0x02, 0x9d, 0xa7, 0x76, 0x1c, 0x98, 0x1c, 0xf2, 0x38, 0xd0, + 0x82, 0xd9, 0xc5, 0x4e, 0xc3, 0xdb, 0x47, 0xb3, 0xb7, 0x6c, 0xdc, 0xd4, 0x21, 0x8d, 0x7b, 0x49, + 0x34, 0xee, 0xac, 0x2d, 0x25, 0x2c, 0xad, 0x79, 0x49, 0xc6, 0xa4, 0x2e, 0x5e, 0xb2, 0xaf, 0x56, + 0x6a, 0xd5, 0x8e, 0x13, 0x38, 0xf8, 0x40, 0x1f, 0xdf, 0x63, 0x5e, 0x16, 0x3c, 0x5f, 0xe0, 0x6a, + 0x9f, 0xd3, 0xec, 0x5a, 0x8e, 0x44, 0x49, 0x3c, 0x55, 0xaf, 0xd2, 0x1b, 0xff, 0x69, 0x81, 0xaf, + 0x86, 0xaa, 0x9a, 0xd6, 0xcf, 0xdf, 0x29, 0xa6, 0xbe, 0x65, 0x8f, 0xa2, 0xbe, 0xe5, 0x0e, 0x57, + 0xdf, 0xf2, 0x87, 0xa9, 0x6f, 0x31, 0xfd, 0x6a, 0xe4, 0xc8, 0xfa, 0xd5, 0xe8, 0x11, 0xf4, 0xab, + 0xb1, 0x23, 0xe9, 0x57, 0x9a, 0xa2, 0x58, 0x38, 0x4c, 0x51, 0xfc, 0xff, 0xb4, 0xb1, 0x67, 0x55, + 0x1b, 0x4b, 0xdb, 0x5c, 0x8f, 0xa4, 0x8d, 0xf5, 0x57, 0xa6, 0x8a, 0x7f, 0xd2, 0xca, 0xd4, 0xec, + 0xc7, 0x50, 0xa6, 0xfe, 0x0c, 0x14, 0xe3, 0xeb, 0xfb, 0xe1, 0x49, 0x97, 0x9e, 0x5a, 0x46, 0x13, + 0xb6, 0xfb, 0xc4, 0xd7, 0x57, 0x76, 0xc8, 0xab, 0x79, 0xce, 0x03, 0x3b, 0xa0, 0xd1, 0xc3, 0xd8, + 0x78, 0xc8, 0xeb, 0x72, 0x28, 0xce, 0x79, 0x05, 0x25, 0x54, 0x2d, 0xb2, 0x69, 0xaa, 0x85, 0xf1, + 0x93, 0x59, 0x98, 0xe5, 0x49, 0x18, 0x9e, 0x7d, 0xdb, 0xe2, 0xbb, 0x9a, 0xc2, 0x28, 0x5d, 0x88, + 0x62, 0x5f, 0x37, 0xc0, 0xba, 0xf8, 0x55, 0x38, 0x91, 0xe8, 0x0a, 0x54, 0x1a, 0x2b, 0x32, 0xfd, + 0x45, 0x42, 0x6d, 0x9c, 0x4b, 0xaf, 0x64, 0xf3, 0xa6, 0x99, 0xa0, 0x30, 0xfe, 0x55, 0x2e, 0xc1, + 0x5f, 0xd8, 0x19, 0x55, 0xcb, 0x61, 0xe6, 0x68, 0x96, 0xc3, 0xec, 0x70, 0x96, 0xc3, 0xd8, 0xde, + 0x92, 0x1b, 0x66, 0x6f, 0x79, 0x1f, 0xa6, 0xd6, 0xa9, 0xdd, 0xf6, 0xd7, 0x5d, 0x91, 0xd9, 0x95, + 0xbb, 0x10, 0xca, 0xec, 0x16, 0xac, 0x4c, 0xea, 0x3c, 0xa1, 0x2b, 0x44, 0xc0, 0x08, 0xd8, 0x7a, + 0xc8, 0x53, 0xbd, 0x9a, 0x3a, 0x07, 0x55, 0x91, 0x1d, 0x19, 0xa0, 0xc8, 0xd6, 0x61, 0x52, 0xd0, + 0x45, 0x99, 0xa6, 0x22, 0x8d, 0x8b, 0x15, 0x21, 0x5c, 0xd6, 0x1e, 0xbe, 0x80, 0x13, 0xd6, 0xce, + 0x95, 0x2d, 0x8d, 0x09, 0xeb, 0x82, 0xc5, 0x4e, 0xb3, 0xeb, 0x3a, 0x1d, 0xec, 0x82, 0xb1, 0xa8, + 0x0b, 0xa8, 0x00, 0xf3, 0x2e, 0x50, 0x90, 0xc8, 0xdb, 0x30, 0x5d, 0xaa, 0x55, 0x55, 0xb2, 0x42, + 0x64, 0xbc, 0xb4, 0xbb, 0x8e, 0xa5, 0x91, 0xc6, 0x70, 0x8d, 0x1f, 0x1d, 0x97, 0x73, 0xeb, 0x93, + 0xb5, 0x12, 0xe9, 0x76, 0x9f, 0xdc, 0x11, 0xed, 0x3e, 0xf9, 0xc3, 0xb6, 0x73, 0x4d, 0xc7, 0x18, + 0x39, 0x82, 0x8e, 0x31, 0xfa, 0xc4, 0x36, 0x9c, 0xb1, 0x23, 0x6a, 0x0d, 0x31, 0x31, 0x2f, 0x0c, + 0x23, 0xe6, 0xa9, 0x9a, 0xc6, 0xf8, 0x93, 0x6b, 0x1a, 0x70, 0x64, 0x4d, 0x43, 0x79, 0x43, 0x7a, + 0x62, 0xa8, 0x37, 0xa4, 0x33, 0x43, 0xbc, 0x21, 0xfd, 0xa9, 0x52, 0x5f, 0xbe, 0x9e, 0xae, 0xbe, + 0x0c, 0x5e, 0xea, 0xff, 0xdf, 0xac, 0xc0, 0x78, 0xd8, 0xcb, 0x5b, 0xb6, 0xc7, 0xce, 0x82, 0x3e, + 0xb9, 0x06, 0x63, 0x32, 0xb3, 0x4c, 0x26, 0x3a, 0x56, 0x27, 0x53, 0xca, 0x48, 0x2c, 0x76, 0x6c, + 0x94, 0xc4, 0x22, 0xb6, 0x9a, 0x27, 0xd1, 0x10, 0x30, 0x2d, 0x89, 0x86, 0x80, 0x19, 0x7f, 0x33, + 0x2f, 0x67, 0x32, 0x3b, 0xd6, 0x88, 0xd7, 0xfe, 0x16, 0x94, 0x91, 0x53, 0xd4, 0xa7, 0xd8, 0xd8, + 0xc4, 0x7c, 0x86, 0x74, 0x92, 0x8f, 0x93, 0x96, 0x47, 0x79, 0x80, 0x21, 0x37, 0xc4, 0x03, 0x0c, + 0x6f, 0x6a, 0xaf, 0x17, 0xe4, 0xa3, 0x74, 0xd9, 0x4c, 0xba, 0x07, 0xbf, 0x5b, 0x70, 0x4b, 0x7d, + 0x66, 0x60, 0x24, 0x0a, 0x43, 0x47, 0xca, 0x01, 0x0f, 0x0c, 0x84, 0xfa, 0xe0, 0xe8, 0x51, 0x12, + 0x5e, 0x8d, 0xfd, 0x89, 0x26, 0xbc, 0x5a, 0xd4, 0x1e, 0x83, 0xe6, 0xa6, 0xfa, 0x97, 0xfb, 0x3e, + 0xf6, 0xac, 0x45, 0x5e, 0x29, 0x84, 0xc6, 0x3f, 0x24, 0x30, 0x5b, 0xaf, 0xaf, 0x55, 0x1c, 0x7b, + 0xb7, 0xe3, 0xfa, 0x81, 0xd3, 0xa8, 0x76, 0x76, 0x5c, 0xa6, 0x0c, 0x85, 0xab, 0x82, 0x92, 0x2e, + 0x29, 0x5a, 0x11, 0xc2, 0x62, 0xa6, 0x6c, 0x2f, 0x7a, 0x9e, 0xeb, 0xa9, 0xca, 0x36, 0x65, 0x00, + 0x93, 0xc3, 0x99, 0xbe, 0x51, 0xef, 0xf1, 0xb7, 0xbc, 0xf8, 0xed, 0x09, 0xea, 0x1b, 0x3e, 0x07, + 0x99, 0xb2, 0x8c, 0xd0, 0xa4, 0xc0, 0x0a, 0xfd, 0xf3, 0x94, 0x96, 0x36, 0x2b, 0x2a, 0xe6, 0x6b, + 0x9e, 0xd8, 0x93, 0x30, 0x08, 0xa5, 0x8b, 0x70, 0xf5, 0xaa, 0x2d, 0x31, 0x07, 0xf6, 0xe1, 0x84, + 0x16, 0x4c, 0x31, 0xac, 0x45, 0xe9, 0x8a, 0xd0, 0x6f, 0x0c, 0x8c, 0x09, 0x4b, 0x31, 0x2b, 0xa9, + 0xe9, 0x7e, 0x53, 0x6b, 0x20, 0x3f, 0x99, 0x81, 0x17, 0x52, 0x4b, 0xc2, 0xd9, 0x3d, 0xa1, 0xa5, + 0x2e, 0x53, 0x16, 0x0d, 0x9e, 0xd8, 0xb8, 0x5f, 0xd5, 0x56, 0xca, 0x52, 0x30, 0xb8, 0x26, 0xf2, + 0x9b, 0x19, 0x38, 0xa5, 0x61, 0x84, 0x6b, 0x9e, 0x8f, 0x7b, 0x53, 0x5f, 0xb9, 0xfe, 0xe8, 0xe9, + 0xc8, 0xf5, 0x05, 0xfd, 0x5b, 0xa2, 0x25, 0x59, 0xfd, 0x86, 0x7e, 0x2d, 0x24, 0x0f, 0x60, 0x16, + 0x8b, 0xa4, 0x75, 0x8b, 0xc9, 0xac, 0x30, 0x8a, 0x1d, 0x8f, 0x9a, 0xcd, 0x03, 0x84, 0xf0, 0x71, + 0x9a, 0x1b, 0x3f, 0x38, 0x98, 0x9f, 0xd2, 0xd0, 0x31, 0xff, 0x2a, 0xb6, 0x21, 0x34, 0x91, 0x39, + 0x9d, 0x1d, 0x57, 0xdd, 0x2f, 0x13, 0x55, 0x90, 0xff, 0x3c, 0x03, 0x73, 0x0c, 0xca, 0x3f, 0xe3, + 0xb6, 0xe7, 0xb6, 0xc3, 0x72, 0x79, 0x67, 0xdb, 0xa7, 0xdb, 0x5a, 0x4f, 0xa7, 0xdb, 0x5e, 0xc6, + 0x26, 0xf3, 0x35, 0xc1, 0xda, 0xf1, 0xdc, 0x76, 0xd4, 0x7c, 0xed, 0x89, 0xb3, 0x7e, 0x8d, 0x24, + 0x3f, 0x96, 0x81, 0xd3, 0x9a, 0x81, 0x41, 0xcd, 0x15, 0x2a, 0xc2, 0xb0, 0xe4, 0x05, 0xbf, 0x5a, + 0xb4, 0x70, 0x55, 0xc8, 0xff, 0x45, 0x6c, 0x41, 0xb4, 0x5b, 0x60, 0x5b, 0xac, 0x36, 0xc7, 0x52, + 0x9a, 0xd0, 0xbf, 0x16, 0xe2, 0xc0, 0x2c, 0xde, 0x38, 0x69, 0xbe, 0x05, 0xc7, 0xfb, 0xfb, 0x16, + 0x84, 0x8f, 0x08, 0x60, 0x3e, 0xc6, 0xfe, 0x0e, 0x06, 0x49, 0xae, 0xe4, 0xcf, 0xc2, 0xe9, 0x04, + 0x30, 0x9c, 0x6d, 0x27, 0xfa, 0xce, 0xb6, 0x57, 0x1f, 0x1f, 0xcc, 0xbf, 0x92, 0x56, 0x5b, 0xda, + 0x4c, 0xeb, 0x5f, 0x03, 0xb1, 0x01, 0xa2, 0x42, 0xf1, 0x52, 0x5a, 0xba, 0x80, 0xbe, 0x2a, 0xe4, + 0x43, 0xc1, 0x67, 0x6b, 0xb9, 0xd2, 0x06, 0x75, 0xcb, 0x8b, 0x90, 0x08, 0x85, 0x49, 0x25, 0x17, + 0xe5, 0x3e, 0x3e, 0x99, 0xd6, 0xb7, 0x92, 0x1f, 0x1c, 0xcc, 0x6b, 0xd8, 0x4c, 0x2f, 0x56, 0x93, + 0x5c, 0xaa, 0x7a, 0xb1, 0x86, 0x48, 0x7e, 0x23, 0x03, 0xc7, 0x19, 0x20, 0x12, 0x2a, 0xf1, 0x51, + 0x73, 0x83, 0xa4, 0x7e, 0xef, 0xe9, 0x48, 0xfd, 0x8b, 0xd8, 0x46, 0x55, 0xea, 0x13, 0x5d, 0x92, + 0xda, 0x38, 0x94, 0x76, 0xed, 0x72, 0x53, 0x93, 0xf6, 0xd3, 0x43, 0x48, 0x3b, 0x1f, 0x80, 0xc3, + 0xa5, 0xbd, 0x6f, 0x2d, 0x64, 0x1d, 0x26, 0x85, 0x4a, 0xcc, 0x3b, 0xec, 0x9c, 0x96, 0xac, 0x4e, + 0x2d, 0xe2, 0xe7, 0x14, 0x91, 0xaa, 0x33, 0xf1, 0x85, 0x1a, 0x17, 0xd2, 0x81, 0x63, 0xfc, 0xb7, + 0x6e, 0x1d, 0x98, 0xef, 0x6b, 0x1d, 0xb8, 0x24, 0xbe, 0xe8, 0xbc, 0xe0, 0x1f, 0x33, 0x12, 0xa8, + 0xaf, 0x24, 0xa4, 0x30, 0x26, 0x5d, 0x20, 0x1a, 0x98, 0x4f, 0xda, 0xf3, 0x83, 0x6d, 0x02, 0xaf, + 0x88, 0x3a, 0xe7, 0xe3, 0x75, 0xc6, 0x67, 0x6e, 0x0a, 0x6f, 0x62, 0xc3, 0x8c, 0x80, 0xb2, 0x03, + 0x30, 0xae, 0xf0, 0x2f, 0x6a, 0x11, 0xdb, 0xb1, 0x52, 0xfe, 0xc2, 0x95, 0xac, 0x09, 0x23, 0xea, + 0x63, 0x0b, 0x7a, 0x9c, 0x1f, 0x59, 0x83, 0xd9, 0x52, 0xb7, 0xdb, 0x72, 0x68, 0x13, 0xbf, 0x92, + 0xbf, 0xb7, 0x65, 0x44, 0xf9, 0xb9, 0x6d, 0x5e, 0x28, 0x54, 0xfc, 0xf8, 0x63, 0x5b, 0x49, 0x5a, + 0xe3, 0x5b, 0x99, 0x44, 0xa3, 0xd9, 0xc9, 0x1d, 0x7f, 0x28, 0xc1, 0x9a, 0x78, 0x72, 0xe7, 0x4d, + 0x44, 0x0b, 0x42, 0x84, 0xc0, 0x94, 0x25, 0x35, 0x11, 0x48, 0x4e, 0xbc, 0x62, 0xce, 0x41, 0xd1, + 0x81, 0x72, 0x5e, 0xfa, 0x7c, 0xe5, 0x22, 0xa5, 0x0b, 0x7d, 0xbe, 0x84, 0xa7, 0x97, 0xf1, 0x63, + 0x59, 0x5d, 0xec, 0xc8, 0x25, 0x45, 0x6f, 0x57, 0x52, 0x91, 0x48, 0xbd, 0x5d, 0xd1, 0xd6, 0xff, + 0x46, 0x06, 0x8e, 0xad, 0x79, 0xbb, 0x76, 0xc7, 0xf9, 0x26, 0x4f, 0x69, 0xe6, 0xe2, 0xb8, 0x84, + 0x71, 0x2a, 0x9f, 0x68, 0xca, 0x76, 0x57, 0xa9, 0x98, 0x49, 0x0a, 0x8a, 0x8c, 0x99, 0xd6, 0x1e, + 0xf4, 0xa2, 0xc5, 0x86, 0x29, 0x99, 0xf3, 0x39, 0x3a, 0x87, 0x1b, 0xdf, 0xc9, 0xc2, 0x84, 0x32, + 0x05, 0xc8, 0x67, 0x61, 0x52, 0xe5, 0xa3, 0x5a, 0x7d, 0xd4, 0x6a, 0x4d, 0x0d, 0x0b, 0xcd, 0x3e, + 0xd4, 0x6e, 0x6b, 0x66, 0x1f, 0x26, 0xe8, 0x08, 0x3d, 0xe2, 0xd1, 0xe6, 0xbd, 0x94, 0xa3, 0xcd, + 0x91, 0x1e, 0x66, 0x7b, 0x3b, 0x79, 0xc0, 0x19, 0xfe, 0x1d, 0x35, 0xe3, 0x67, 0x33, 0x50, 0x8c, + 0x4f, 0xd2, 0x4f, 0xa4, 0x57, 0x8e, 0x60, 0x5f, 0xff, 0xe9, 0x6c, 0x98, 0x88, 0x56, 0xc6, 0x06, + 0x3c, 0xab, 0xbe, 0x12, 0xef, 0x68, 0xa6, 0xef, 0xe7, 0xc3, 0x7d, 0x45, 0xfd, 0xb8, 0x01, 0x39, + 0x53, 0xf2, 0xdf, 0xff, 0xc5, 0xf9, 0xe7, 0x8c, 0x0f, 0xe0, 0x78, 0xbc, 0x3b, 0xd0, 0xfc, 0x5d, + 0x82, 0x19, 0x1d, 0x1e, 0x4f, 0x63, 0x1d, 0xa7, 0x32, 0xe3, 0xf8, 0xc6, 0xef, 0x65, 0xe3, 0xbc, + 0x85, 0xdf, 0x04, 0x5b, 0x74, 0x3a, 0xf6, 0x76, 0x2b, 0xcc, 0x8d, 0xcb, 0x17, 0x1d, 0x0e, 0x32, + 0x65, 0xd9, 0x51, 0x12, 0x9a, 0x87, 0x1e, 0xee, 0xb9, 0x74, 0x0f, 0x77, 0x72, 0x2b, 0xe6, 0x31, + 0xa4, 0x84, 0x63, 0x3f, 0xa4, 0xdb, 0x56, 0xe4, 0x35, 0x14, 0x73, 0x14, 0x2a, 0xc3, 0x71, 0x2d, + 0x67, 0x9d, 0xa4, 0x1f, 0x89, 0x0c, 0xae, 0x01, 0x16, 0x70, 0xe2, 0x54, 0x64, 0xb2, 0x04, 0x63, + 0xac, 0x99, 0x2b, 0x76, 0x57, 0x58, 0xb5, 0xd5, 0x17, 0xe6, 0xe5, 0xe6, 0xa5, 0x84, 0xbc, 0xb4, + 0x28, 0xdb, 0xf2, 0xb5, 0x77, 0x0d, 0x39, 0xa2, 0xf1, 0x47, 0x19, 0x36, 0xff, 0x1b, 0xf7, 0x3f, + 0x65, 0xa9, 0xd6, 0xd9, 0x27, 0x0d, 0x70, 0xeb, 0xf9, 0xfd, 0x2c, 0x4f, 0x6f, 0x2c, 0xc4, 0xe7, + 0x4d, 0x18, 0x5d, 0xb7, 0xbd, 0x5d, 0x1a, 0x88, 0x44, 0xbc, 0x2a, 0x17, 0x5e, 0x10, 0x05, 0x8b, + 0x07, 0xf8, 0xdb, 0x14, 0x04, 0xaa, 0x2d, 0x2c, 0x3b, 0x94, 0x2d, 0x4c, 0x31, 0xcf, 0xe6, 0x9e, + 0x9a, 0x79, 0xf6, 0xcb, 0x61, 0x66, 0xe1, 0x52, 0x30, 0x44, 0x4a, 0xb4, 0xf3, 0xf1, 0xa4, 0xdd, + 0x89, 0xe4, 0x75, 0x11, 0x3b, 0x72, 0x4b, 0x4d, 0x03, 0xae, 0x38, 0x8d, 0x1f, 0x92, 0xf0, 0xdb, + 0xf8, 0xfd, 0x1c, 0xef, 0x63, 0xd1, 0x51, 0x17, 0xb5, 0x80, 0x12, 0x9c, 0x27, 0xb1, 0x37, 0x9e, + 0x79, 0x68, 0xc9, 0x45, 0xc8, 0x33, 0xd9, 0x14, 0xbd, 0xc9, 0x5f, 0x07, 0x77, 0x5b, 0x5a, 0x0c, + 0x20, 0x2b, 0x67, 0x73, 0x19, 0xf7, 0x24, 0xf5, 0xc5, 0x01, 0xdc, 0xb6, 0xd4, 0xb9, 0x8c, 0x18, + 0xe4, 0x12, 0xe4, 0x57, 0xdd, 0xa6, 0x4c, 0xbd, 0x77, 0x1c, 0xc3, 0x0a, 0xb5, 0x47, 0x7a, 0xe7, + 0x32, 0x26, 0x62, 0xb0, 0x6f, 0x0d, 0x93, 0xf5, 0xaa, 0xdf, 0xda, 0xde, 0xb1, 0x45, 0x22, 0x71, + 0xf5, 0x5b, 0xa3, 0xbc, 0xbe, 0x8b, 0x30, 0xad, 0x3f, 0xc3, 0x24, 0x9c, 0x9e, 0xd0, 0xcc, 0x1a, + 0x7b, 0xcd, 0x49, 0xb5, 0x8e, 0xeb, 0x44, 0x64, 0x01, 0xa6, 0xb4, 0x94, 0x3f, 0xe2, 0x7a, 0x09, + 0xcd, 0x9b, 0x7a, 0xc2, 0x20, 0xd5, 0xbc, 0xa9, 0x91, 0xb0, 0xfd, 0x5c, 0xb4, 0x5f, 0xb9, 0x64, + 0x4a, 0xb4, 0x5d, 0xe0, 0x90, 0x9b, 0x50, 0xe0, 0xf1, 0x7b, 0xd5, 0x8a, 0x7a, 0x5b, 0xe1, 0x23, + 0x2c, 0x16, 0xff, 0x2a, 0x11, 0x95, 0x78, 0xad, 0xcf, 0x40, 0x51, 0x2c, 0x49, 0xe1, 0x0b, 0x13, + 0x78, 0x53, 0x5c, 0xad, 0x98, 0xea, 0x32, 0xd2, 0x70, 0x9a, 0x9e, 0x89, 0x50, 0xe3, 0x7b, 0x19, + 0x38, 0xbd, 0x4a, 0x83, 0x87, 0xae, 0x77, 0xdf, 0xa4, 0x7e, 0xe0, 0x39, 0xfc, 0xc1, 0x0a, 0x9c, + 0x88, 0x9f, 0x25, 0x6f, 0xc3, 0x08, 0x7a, 0xdf, 0xc4, 0x76, 0x86, 0x78, 0x1d, 0x0b, 0x53, 0x42, + 0x80, 0x47, 0xd0, 0x95, 0xc7, 0xe4, 0x44, 0xe4, 0x4d, 0xc8, 0x57, 0x68, 0x67, 0x3f, 0xf6, 0x72, + 0x41, 0x82, 0x38, 0x5c, 0x10, 0x9a, 0xb4, 0xb3, 0x6f, 0x22, 0x89, 0xf1, 0xb3, 0x59, 0x38, 0x91, + 0xd2, 0xac, 0xcd, 0xcf, 0x3e, 0xa3, 0xab, 0xe2, 0x82, 0xb6, 0x2a, 0x9e, 0x17, 0xa4, 0x7d, 0x3b, + 0x3e, 0x75, 0x91, 0xfc, 0xab, 0x19, 0x38, 0xa5, 0x0b, 0xa8, 0x70, 0xb7, 0xdb, 0xbc, 0x49, 0xde, + 0x82, 0xd1, 0x25, 0x6a, 0x37, 0xa9, 0x4c, 0x5d, 0x1e, 0xbd, 0x70, 0xce, 0x83, 0x93, 0x78, 0x21, + 0x67, 0xfb, 0x7b, 0x7c, 0x0d, 0x7b, 0xce, 0x14, 0x24, 0xa4, 0x22, 0x1a, 0xc7, 0xf5, 0x71, 0x43, + 0x06, 0x0a, 0xa6, 0x55, 0x35, 0xe0, 0x9e, 0xfd, 0x07, 0x19, 0x78, 0x7e, 0x00, 0x0d, 0x1b, 0x38, + 0x36, 0xf4, 0xea, 0xc0, 0xe1, 0x8e, 0x8a, 0x50, 0xf2, 0x2e, 0xcc, 0xac, 0x0b, 0x7d, 0x5e, 0x0e, + 0x47, 0x36, 0x9a, 0x2f, 0x52, 0xd5, 0xb7, 0xe4, 0xb8, 0xc4, 0x91, 0xb5, 0x08, 0xd6, 0xdc, 0xc0, + 0x08, 0x56, 0x35, 0x20, 0x34, 0x3f, 0x6c, 0x40, 0xe8, 0x07, 0xf1, 0xc7, 0x4b, 0x45, 0x5e, 0xae, + 0x28, 0x1c, 0x36, 0xd3, 0x3f, 0x1c, 0x76, 0x60, 0xf6, 0x1f, 0x7c, 0xe9, 0x40, 0xe7, 0xfd, 0xa4, + 0xe3, 0xf9, 0x8e, 0x36, 0x9e, 0xcf, 0xa7, 0x8f, 0x67, 0xff, 0x81, 0xfc, 0x85, 0x4c, 0xfc, 0x63, + 0x87, 0x1a, 0x41, 0x03, 0x46, 0x2b, 0x6e, 0xdb, 0x76, 0x3a, 0xea, 0xdb, 0x6b, 0x4d, 0x84, 0x98, + 0xa2, 0x64, 0xb8, 0xe8, 0xe1, 0xf3, 0x30, 0xb2, 0xea, 0x76, 0x4a, 0x15, 0xe1, 0x5b, 0x87, 0x7c, + 0x3a, 0x6e, 0xc7, 0xb2, 0x9b, 0x26, 0x2f, 0x30, 0x7e, 0x72, 0x04, 0x4e, 0x9b, 0x74, 0xd7, 0x61, + 0x1a, 0xe7, 0x86, 0xef, 0x74, 0x76, 0xb5, 0x50, 0x49, 0x23, 0x36, 0x26, 0x22, 0x5f, 0x25, 0x83, + 0x84, 0x75, 0x5c, 0x86, 0x02, 0xdb, 0x60, 0x94, 0x61, 0xc1, 0xeb, 0x08, 0x7c, 0x48, 0x92, 0xcb, + 0x8b, 0x2c, 0x26, 0x57, 0xc4, 0x06, 0xa8, 0x64, 0x14, 0x66, 0x1b, 0xe0, 0x0f, 0x0f, 0xe6, 0xa1, + 0xbe, 0xef, 0x07, 0x14, 0x0f, 0x3f, 0x62, 0x13, 0x0c, 0xb5, 0xd4, 0x7c, 0x1f, 0x2d, 0x75, 0x05, + 0x8e, 0x97, 0x9a, 0x7c, 0xdd, 0xb3, 0x5b, 0x35, 0xcf, 0xe9, 0x34, 0x9c, 0xae, 0xdd, 0x92, 0x27, + 0x2f, 0xbc, 0x94, 0xb2, 0xc3, 0x72, 0xab, 0x1b, 0x22, 0x98, 0xa9, 0x64, 0xec, 0x33, 0x2a, 0xab, + 0x75, 0xfe, 0x48, 0x32, 0xbf, 0x69, 0xc2, 0xcf, 0x68, 0x76, 0x7c, 0xfe, 0x4a, 0xb2, 0x19, 0x16, + 0xa3, 0x7e, 0x8c, 0xd7, 0xf9, 0xeb, 0xcb, 0xf5, 0x28, 0x6c, 0x83, 0x27, 0x3c, 0xe4, 0x57, 0xfe, + 0x41, 0xcb, 0xc7, 0x6b, 0x7f, 0x0d, 0x2f, 0xa2, 0xab, 0xd7, 0x97, 0x18, 0x5d, 0x21, 0x41, 0xe7, + 0xfb, 0x7b, 0x2a, 0x1d, 0xc7, 0x23, 0xd7, 0x00, 0x78, 0xaa, 0x1e, 0x14, 0x99, 0xf1, 0x48, 0x9b, + 0xf6, 0x10, 0xca, 0xb5, 0x69, 0x05, 0x85, 0xbc, 0x0d, 0xc7, 0x16, 0xcb, 0x37, 0xa4, 0x7d, 0xb0, + 0xe2, 0x36, 0x7a, 0x78, 0x41, 0x0b, 0x58, 0x1f, 0x8e, 0x21, 0x6d, 0xdc, 0x60, 0x72, 0x92, 0x86, + 0x46, 0x2e, 0xc2, 0x58, 0xb5, 0xc2, 0xfb, 0x7e, 0x42, 0xcd, 0xea, 0x2d, 0x1c, 0x1f, 0x64, 0x21, + 0x59, 0x8b, 0xd4, 0xbd, 0xc9, 0x43, 0xf5, 0xb2, 0xd3, 0x87, 0xab, 0x7a, 0x22, 0xf9, 0x37, 0x7f, + 0x64, 0xa2, 0xec, 0x36, 0xa9, 0xbf, 0x79, 0xfd, 0x53, 0x96, 0xfc, 0x5b, 0xf9, 0x36, 0x5c, 0x08, + 0xae, 0xa7, 0xae, 0x1a, 0xff, 0x1e, 0x26, 0xff, 0x4e, 0xe0, 0x92, 0xcf, 0xc3, 0x08, 0xfe, 0x14, + 0x2a, 0xc4, 0xb1, 0x14, 0xb6, 0x91, 0xfa, 0xd0, 0xe0, 0xcf, 0x10, 0x22, 0x01, 0xa9, 0xc2, 0x98, + 0xd0, 0x5e, 0x8f, 0x92, 0xc2, 0x56, 0xa8, 0xc1, 0x7c, 0x90, 0x04, 0xbd, 0xd1, 0x84, 0x49, 0xb5, + 0x42, 0x26, 0x9c, 0x4b, 0xb6, 0xbf, 0x47, 0x9b, 0xec, 0x97, 0xc8, 0x3e, 0x8f, 0xc2, 0xb9, 0x87, + 0x50, 0x8b, 0xb5, 0xc3, 0x54, 0x50, 0xd8, 0xc2, 0x55, 0xf5, 0x37, 0x7c, 0xd1, 0x14, 0x71, 0x9e, + 0x75, 0xd0, 0x36, 0xd2, 0x34, 0x45, 0x91, 0xf1, 0x65, 0x38, 0xbe, 0xda, 0x6b, 0xb5, 0xd8, 0xd9, + 0x56, 0x66, 0x27, 0x0d, 0xec, 0x80, 0x92, 0x05, 0x18, 0xc1, 0x3f, 0xb0, 0xa2, 0xe9, 0xb0, 0x0b, + 0x54, 0x1c, 0xf4, 0xb5, 0xca, 0x60, 0xa0, 0x65, 0xa0, 0x3f, 0x21, 0xce, 0x49, 0x8d, 0xdf, 0x8d, + 0x1e, 0xc4, 0x5c, 0xf7, 0xec, 0xc6, 0x7d, 0xea, 0x89, 0x1d, 0x68, 0xd8, 0xb7, 0x3d, 0xef, 0xca, + 0x46, 0xe8, 0xbb, 0x42, 0x5a, 0x83, 0x0f, 0x6b, 0x0c, 0x79, 0x1b, 0x26, 0xc4, 0xce, 0xa0, 0xa4, + 0x07, 0xc1, 0x18, 0x6c, 0xf9, 0x42, 0x6a, 0xec, 0xe6, 0x5e, 0x45, 0xc7, 0x0d, 0x4f, 0xff, 0x94, + 0xcd, 0xeb, 0x9f, 0xc4, 0x86, 0xa7, 0xd7, 0x31, 0x40, 0x74, 0xff, 0x2e, 0xc4, 0xfb, 0x56, 0xc8, + 0xee, 0x2d, 0x35, 0x21, 0x40, 0x26, 0x3a, 0x7e, 0x44, 0x09, 0x01, 0xd4, 0xe3, 0x47, 0x88, 0x1a, + 0x8e, 0x49, 0xf6, 0x90, 0x31, 0x79, 0x57, 0x8e, 0x49, 0xae, 0xbf, 0x60, 0x1c, 0x1b, 0x30, 0x0e, + 0xf5, 0x68, 0x86, 0xe4, 0x87, 0x3a, 0xbb, 0x3e, 0x87, 0x99, 0x0f, 0x39, 0x49, 0x7c, 0x41, 0x13, + 0x9c, 0xd4, 0x03, 0xf1, 0xc8, 0xf0, 0x4c, 0x0f, 0x39, 0x10, 0x7f, 0x01, 0x26, 0x4b, 0x41, 0x60, + 0x37, 0xf6, 0x68, 0xb3, 0xc2, 0x96, 0x27, 0x25, 0x76, 0xd9, 0x16, 0x70, 0xf5, 0x66, 0x42, 0xc5, + 0xe5, 0xb9, 0x78, 0x6c, 0x5f, 0x38, 0x8e, 0x85, 0xb9, 0x78, 0x18, 0x44, 0xcf, 0xc5, 0xc3, 0x20, + 0xe4, 0x1a, 0x8c, 0x55, 0x3b, 0x0f, 0x1c, 0xd6, 0x27, 0x85, 0xe8, 0x69, 0x3e, 0x87, 0x83, 0xd4, + 0xc5, 0x55, 0x60, 0x91, 0x37, 0x15, 0xcd, 0x71, 0x3c, 0x3a, 0x25, 0x72, 0xbb, 0x82, 0x25, 0x15, + 0x48, 0x55, 0x2b, 0x0c, 0x55, 0xc9, 0x5b, 0x30, 0x26, 0xcd, 0x45, 0x10, 0x9d, 0x0c, 0x05, 0x65, + 0x32, 0x42, 0x4d, 0x22, 0xe3, 0x3b, 0x56, 0x4a, 0x16, 0xfd, 0x09, 0xe5, 0x1d, 0x2b, 0x25, 0x8b, + 0xbe, 0xf6, 0x8e, 0x95, 0x92, 0x4f, 0x3f, 0x3c, 0x69, 0x4f, 0x1e, 0x7a, 0xd2, 0xde, 0x84, 0xc9, + 0x9a, 0xed, 0x05, 0x0e, 0x53, 0x17, 0x3a, 0x81, 0x3f, 0x37, 0xa5, 0x19, 0xa7, 0x94, 0xa2, 0x85, + 0x73, 0xf2, 0x3d, 0xa7, 0xae, 0x82, 0xaf, 0x3f, 0x04, 0x14, 0xc1, 0xd3, 0xdd, 0xc6, 0xa6, 0x9f, + 0xc4, 0x6d, 0x0c, 0x3b, 0x15, 0x0d, 0x12, 0x33, 0xd1, 0xb1, 0x17, 0x35, 0xc3, 0x98, 0x55, 0x22, + 0x44, 0x24, 0x5f, 0x81, 0x49, 0xf6, 0x37, 0xbe, 0x9a, 0xeb, 0x50, 0x7f, 0xae, 0x88, 0x1f, 0x77, + 0x2e, 0x75, 0xf6, 0xf3, 0xa7, 0x75, 0xeb, 0x34, 0xe0, 0x13, 0x18, 0x19, 0xc7, 0x2d, 0x8d, 0x1a, + 0x37, 0xf2, 0x1e, 0x4c, 0xca, 0x37, 0xa4, 0x71, 0x90, 0x66, 0x23, 0xc7, 0xbf, 0xa6, 0x80, 0x27, + 0xd2, 0x61, 0xa9, 0x04, 0x6c, 0x9b, 0x2f, 0x75, 0xf9, 0x02, 0x49, 0x14, 0x69, 0xef, 0x26, 0x16, + 0x47, 0x89, 0x46, 0xbe, 0x08, 0x93, 0xa5, 0x6e, 0x37, 0x5a, 0x71, 0x8e, 0x29, 0xd6, 0x86, 0x6e, + 0xd7, 0x4a, 0x5d, 0x75, 0x34, 0x8a, 0xf8, 0xc2, 0x7c, 0xfc, 0x48, 0x0b, 0x33, 0x79, 0x3d, 0x54, + 0x9c, 0x4f, 0x44, 0xa6, 0x33, 0xa1, 0x9d, 0xab, 0x33, 0x8d, 0x23, 0x19, 0x7f, 0x98, 0x81, 0x53, + 0x7d, 0x7a, 0x39, 0xcc, 0x1c, 0x95, 0x39, 0xe4, 0x49, 0xe8, 0x6b, 0x91, 0x66, 0xa3, 0x98, 0xeb, + 0x84, 0x66, 0xa3, 0xf6, 0x91, 0xd4, 0x71, 0x5c, 0x20, 0xe2, 0x41, 0x68, 0xe5, 0xe1, 0x64, 0x91, + 0xbe, 0x30, 0xb6, 0xf0, 0x6b, 0x0f, 0x47, 0xf3, 0x47, 0xca, 0x3d, 0x0e, 0x0a, 0xbb, 0xf2, 0x23, + 0x57, 0x9b, 0x35, 0x29, 0xac, 0x8d, 0x83, 0x0c, 0x4c, 0x28, 0xb2, 0x4f, 0xce, 0x2b, 0x71, 0x46, + 0x45, 0x9e, 0x8e, 0x5a, 0xe1, 0x90, 0xe5, 0xab, 0x3f, 0x0a, 0x72, 0xf6, 0x70, 0xcb, 0xda, 0x0a, + 0x53, 0x3f, 0x94, 0xec, 0x5a, 0x6d, 0xcd, 0x0c, 0x66, 0x62, 0x39, 0x3e, 0xfd, 0x66, 0xfb, 0x41, + 0xa9, 0x11, 0x38, 0x0f, 0xe8, 0x10, 0x0b, 0x7d, 0xf4, 0xf4, 0x9b, 0xed, 0x07, 0x96, 0x8d, 0x64, + 0x89, 0xa7, 0xdf, 0x42, 0x86, 0xc6, 0x8f, 0x67, 0x00, 0x36, 0xaa, 0x65, 0x4c, 0x8f, 0xf7, 0xa4, + 0x1b, 0x71, 0x7a, 0xca, 0x21, 0xc9, 0x7d, 0xc0, 0x16, 0x5c, 0x83, 0x69, 0x1d, 0x8b, 0xbc, 0x0b, + 0x33, 0xf5, 0x86, 0xe7, 0xb6, 0x5a, 0xdb, 0x76, 0xe3, 0xfe, 0xb2, 0xd3, 0xa1, 0x3c, 0xd7, 0xcb, + 0x08, 0x5f, 0xfe, 0xfd, 0xb0, 0xc8, 0x6a, 0xb1, 0x32, 0x33, 0x8e, 0x6c, 0xfc, 0x71, 0x06, 0x26, + 0xaa, 0x1d, 0x3f, 0xb0, 0x5b, 0x2d, 0x54, 0x30, 0x3e, 0x4d, 0x2f, 0x12, 0x84, 0xdf, 0x35, 0xa0, + 0x47, 0xdf, 0x80, 0x99, 0x18, 0x1a, 0x3b, 0x18, 0xd7, 0x31, 0x0c, 0x52, 0x3d, 0x18, 0xf3, 0xc0, + 0x48, 0x53, 0x94, 0x18, 0x8b, 0x0a, 0xd9, 0xe6, 0x75, 0xbc, 0x28, 0xba, 0x01, 0xe0, 0x48, 0x90, + 0x54, 0xe3, 0x49, 0xbc, 0x25, 0x9b, 0xd7, 0x4d, 0x05, 0xcb, 0x58, 0x85, 0xd1, 0xba, 0xeb, 0x05, + 0x0b, 0xfb, 0x5c, 0x73, 0xae, 0x50, 0xbf, 0xa1, 0xde, 0x04, 0x39, 0x68, 0x7d, 0x6d, 0x98, 0xa2, + 0x88, 0x9d, 0x9b, 0x6f, 0x3b, 0xb4, 0xd5, 0x54, 0x5d, 0xfe, 0x76, 0x18, 0xc0, 0xe4, 0x70, 0x76, + 0xba, 0x38, 0x19, 0xa5, 0x6f, 0x8d, 0x7c, 0x0b, 0x9f, 0x54, 0x60, 0xcb, 0x5a, 0xff, 0xbe, 0xa8, + 0x3f, 0xf8, 0xa7, 0xd5, 0x34, 0xa0, 0xab, 0xff, 0x76, 0x06, 0xce, 0xf4, 0x27, 0x51, 0xdd, 0x15, + 0x33, 0x03, 0xdc, 0x15, 0x5f, 0x8e, 0xdf, 0x5c, 0x20, 0x9a, 0xb8, 0xb9, 0x88, 0xee, 0x2b, 0x2a, + 0xe8, 0x2d, 0xda, 0x08, 0x9f, 0x6a, 0x3d, 0x3f, 0xa0, 0xcd, 0x88, 0xc8, 0x87, 0x39, 0x40, 0x1a, + 0x53, 0xd0, 0x1a, 0xbf, 0x95, 0x87, 0xd3, 0x7d, 0x29, 0xc8, 0x92, 0x92, 0x09, 0x7a, 0x3a, 0xcc, + 0x41, 0xdb, 0x17, 0xff, 0x2a, 0xfe, 0x8b, 0x0e, 0x41, 0xf1, 0x20, 0x86, 0xb5, 0x30, 0x03, 0x70, + 0x16, 0x79, 0xbd, 0x7a, 0x28, 0x2f, 0x8e, 0x8e, 0xcc, 0x20, 0x99, 0x0c, 0x18, 0x63, 0x4d, 0x68, + 0x60, 0x3b, 0x2d, 0x5f, 0x9d, 0x76, 0x4d, 0x0e, 0x32, 0x65, 0x59, 0xe4, 0x43, 0x9a, 0x4f, 0xf7, + 0x21, 0x35, 0xfe, 0x6d, 0x06, 0xc6, 0xc3, 0x66, 0x93, 0x33, 0x70, 0x72, 0xdd, 0x2c, 0x95, 0x17, + 0xad, 0xf5, 0x0f, 0x6a, 0x8b, 0xd6, 0xc6, 0x6a, 0xbd, 0xb6, 0x58, 0xae, 0xde, 0xae, 0x2e, 0x56, + 0x8a, 0xcf, 0x91, 0x59, 0x98, 0xda, 0x58, 0xbd, 0xb7, 0xba, 0xb6, 0xb5, 0x6a, 0x2d, 0x9a, 0xe6, + 0x9a, 0x59, 0xcc, 0x90, 0x29, 0x18, 0x37, 0x17, 0x4a, 0x65, 0x6b, 0x75, 0xad, 0xb2, 0x58, 0xcc, + 0x92, 0x22, 0x4c, 0x96, 0xd7, 0x56, 0x57, 0x17, 0xcb, 0xeb, 0xd5, 0xcd, 0xea, 0xfa, 0x07, 0xc5, + 0x1c, 0x21, 0x30, 0x8d, 0x08, 0x35, 0xb3, 0xba, 0x5a, 0xae, 0xd6, 0x4a, 0xcb, 0xc5, 0x3c, 0x83, + 0x31, 0x7c, 0x05, 0x36, 0x12, 0x32, 0xba, 0xb7, 0xb1, 0xb0, 0x58, 0x1c, 0x65, 0x28, 0xec, 0x2f, + 0x05, 0x65, 0x8c, 0x55, 0x8f, 0x28, 0x95, 0xd2, 0x7a, 0x69, 0xa1, 0x54, 0x5f, 0x2c, 0x16, 0xc8, + 0x29, 0x38, 0xa6, 0x81, 0xac, 0xe5, 0xb5, 0x3b, 0xd5, 0xd5, 0xe2, 0x38, 0x39, 0x0e, 0xc5, 0x10, + 0x56, 0x59, 0xb0, 0x36, 0xea, 0x8b, 0x66, 0x11, 0xe2, 0xd0, 0xd5, 0xd2, 0xca, 0x62, 0x71, 0xc2, + 0x78, 0x87, 0x87, 0x97, 0xf0, 0xae, 0x26, 0x27, 0x81, 0xd4, 0xd7, 0x4b, 0xeb, 0x1b, 0xf5, 0xd8, + 0xc7, 0x4f, 0xc0, 0x58, 0x7d, 0xa3, 0x5c, 0x5e, 0xac, 0xd7, 0x8b, 0x19, 0x02, 0x30, 0x7a, 0xbb, + 0x54, 0x5d, 0x5e, 0xac, 0x14, 0xb3, 0xc6, 0xcf, 0x64, 0x60, 0x56, 0xaa, 0x3b, 0xd2, 0x0c, 0xfd, + 0x84, 0x73, 0xf1, 0x5d, 0xed, 0x14, 0x27, 0xbd, 0xff, 0x63, 0x95, 0x0c, 0x98, 0x86, 0x1e, 0x9c, + 0x48, 0x45, 0x26, 0x1f, 0x40, 0x51, 0x36, 0x60, 0xc5, 0x0e, 0x1a, 0x7b, 0xd1, 0x32, 0x76, 0x2e, + 0x56, 0x49, 0x0c, 0x8d, 0x5b, 0xd3, 0xa2, 0x27, 0x8f, 0x12, 0x6c, 0x8c, 0xef, 0x67, 0xe0, 0x54, + 0x1f, 0x62, 0x52, 0x86, 0xd1, 0x30, 0x31, 0xee, 0x00, 0x47, 0x97, 0xe3, 0x3f, 0x38, 0x98, 0x17, + 0x88, 0xf8, 0xf2, 0x0b, 0xfe, 0x65, 0x8e, 0x86, 0x99, 0x6e, 0x31, 0xdd, 0x2c, 0xef, 0x93, 0xd3, + 0xb1, 0xee, 0x14, 0x35, 0x95, 0xb6, 0xea, 0x0b, 0x13, 0xa2, 0x43, 0x72, 0xf6, 0x43, 0x1f, 0xf3, + 0xcd, 0x1a, 0xdf, 0xcb, 0x30, 0x55, 0x29, 0x8e, 0x48, 0xca, 0x30, 0x55, 0xf2, 0xfd, 0x5e, 0x9b, + 0x9a, 0x6e, 0x8b, 0x96, 0xcc, 0x55, 0xb1, 0x17, 0xe0, 0x99, 0xc7, 0xc6, 0x02, 0x54, 0x8c, 0x2d, + 0xdb, 0xeb, 0x68, 0x97, 0x5a, 0x2a, 0x0d, 0x79, 0x13, 0x20, 0x7c, 0x9c, 0x57, 0xc6, 0x54, 0xf3, + 0x28, 0x7c, 0x01, 0xd5, 0x35, 0x46, 0x05, 0xd9, 0xf8, 0x8b, 0x19, 0x98, 0x14, 0x6a, 0x7f, 0xa9, + 0x45, 0xbd, 0xe0, 0xc9, 0x64, 0xe6, 0x4d, 0x4d, 0x66, 0x42, 0xbf, 0x6e, 0x85, 0x3f, 0x2b, 0x4e, + 0x15, 0x97, 0xff, 0x3a, 0x03, 0xc5, 0x38, 0x22, 0x79, 0x17, 0x0a, 0x75, 0xfa, 0x80, 0x7a, 0x4e, + 0xb0, 0x2f, 0x56, 0x3f, 0xf9, 0x84, 0x00, 0xc7, 0x11, 0x65, 0xdc, 0xba, 0xe8, 0x8b, 0x5f, 0x66, + 0x48, 0x33, 0xec, 0x22, 0xae, 0x1c, 0xdc, 0x73, 0x4f, 0xeb, 0xe0, 0x6e, 0xfc, 0xf3, 0x2c, 0x9c, + 0xba, 0x43, 0x03, 0xf5, 0x9b, 0xc2, 0x5b, 0xc8, 0xcf, 0x0c, 0xf7, 0x5d, 0xca, 0x97, 0xcc, 0xc1, + 0x18, 0x16, 0xc9, 0xf1, 0x35, 0xe5, 0x4f, 0xb2, 0x10, 0xca, 0x75, 0x4e, 0xcb, 0x51, 0xde, 0xa7, + 0xee, 0xab, 0x4a, 0xd6, 0xe2, 0x50, 0xac, 0x2f, 0xc2, 0x34, 0xa6, 0xe5, 0xeb, 0xb1, 0xe9, 0x40, + 0x9b, 0xc2, 0x80, 0x51, 0x30, 0x63, 0x50, 0x72, 0x05, 0x8a, 0x0c, 0x52, 0x6a, 0xdc, 0xef, 0xb8, + 0x0f, 0x5b, 0xb4, 0xb9, 0x4b, 0xf9, 0x93, 0xa9, 0x05, 0x33, 0x01, 0x97, 0x3c, 0x37, 0x3a, 0xfc, + 0x00, 0x4e, 0x9b, 0x68, 0x65, 0x10, 0x3c, 0x23, 0xe8, 0x99, 0x37, 0x61, 0xe2, 0x63, 0x66, 0x20, + 0x37, 0xfe, 0x87, 0x0c, 0x1c, 0xc7, 0x8f, 0x53, 0x2a, 0x46, 0xf3, 0xf3, 0x67, 0xa2, 0xde, 0x52, + 0x92, 0xf2, 0xda, 0x0c, 0xa4, 0x4f, 0x85, 0xb0, 0x17, 0x23, 0xab, 0x46, 0x76, 0x08, 0xab, 0x46, + 0xfd, 0x28, 0x2f, 0xac, 0x0d, 0x69, 0x94, 0xe1, 0xef, 0xe2, 0x46, 0x43, 0x6e, 0xfc, 0xf9, 0x2c, + 0x8c, 0x99, 0x14, 0x9f, 0x9e, 0x22, 0x17, 0x61, 0x6c, 0xd5, 0x0d, 0xa8, 0xbf, 0xa2, 0xbd, 0x33, + 0xd6, 0x61, 0x20, 0xab, 0xdd, 0x34, 0x65, 0x21, 0x13, 0xf8, 0x9a, 0xe7, 0x36, 0x7b, 0x8d, 0x40, + 0x15, 0xf8, 0x2e, 0x07, 0x99, 0xb2, 0x8c, 0xbc, 0x06, 0xe3, 0x82, 0x73, 0x78, 0xf7, 0x83, 0x3e, + 0x8b, 0x1e, 0x0d, 0x9f, 0x2e, 0x8b, 0x10, 0x50, 0x51, 0xe5, 0x5a, 0x43, 0x5e, 0x51, 0x54, 0x13, + 0x8a, 0x80, 0xd4, 0xbf, 0x47, 0x06, 0xe8, 0xdf, 0x9f, 0x81, 0xd1, 0x92, 0xef, 0xd3, 0x40, 0x86, + 0x9b, 0x4e, 0x86, 0x29, 0x2e, 0x7c, 0x1a, 0x70, 0xc6, 0x36, 0x96, 0x9b, 0x02, 0xcf, 0xf8, 0xa3, + 0x2c, 0x8c, 0xe0, 0x9f, 0x78, 0xdf, 0xe5, 0x35, 0xf6, 0xb4, 0xfb, 0x2e, 0xaf, 0xb1, 0x67, 0x22, + 0x94, 0x5c, 0xc7, 0xb3, 0xb6, 0xcc, 0x1f, 0x2d, 0xbe, 0x1e, 0x8d, 0xc8, 0xcd, 0x08, 0x6c, 0xaa, + 0x38, 0xe1, 0x45, 0x60, 0x2e, 0x35, 0xc8, 0xfc, 0x24, 0x64, 0xd7, 0xea, 0xe2, 0x8b, 0x31, 0x83, + 0x85, 0xeb, 0x9b, 0xd9, 0xb5, 0x3a, 0xf6, 0xc6, 0x52, 0xe9, 0xc6, 0x1b, 0xb7, 0xd4, 0x27, 0xf1, + 0xfc, 0x3d, 0xfb, 0xc6, 0x1b, 0xb7, 0x4c, 0x51, 0xc2, 0xfa, 0x17, 0xdb, 0x5c, 0x77, 0xbe, 0x49, + 0x45, 0x84, 0x26, 0xf6, 0x2f, 0x7e, 0x9b, 0xe5, 0x3b, 0xdf, 0xa4, 0x66, 0x84, 0x40, 0x6e, 0xc0, + 0x84, 0x08, 0xca, 0x45, 0x7c, 0x25, 0x68, 0x56, 0x04, 0xed, 0x72, 0x0a, 0x15, 0x89, 0xdf, 0xe7, + 0x88, 0x01, 0x92, 0xaf, 0xdc, 0x88, 0xfb, 0x1c, 0x39, 0x84, 0xbe, 0xa9, 0xa0, 0x44, 0x01, 0xa6, + 0x51, 0xe4, 0xa5, 0x1a, 0x60, 0x8a, 0x69, 0x16, 0x43, 0x04, 0xe3, 0x97, 0xb3, 0x50, 0xa8, 0xb5, + 0x7a, 0xbb, 0x4e, 0x67, 0xf3, 0xfa, 0x9f, 0xe8, 0xb3, 0xcc, 0xaf, 0x03, 0x6e, 0x12, 0xe2, 0x44, + 0x20, 0x4d, 0xb2, 0xbc, 0x69, 0x42, 0xf9, 0xe0, 0x24, 0x88, 0x46, 0x6e, 0x82, 0x10, 0x4c, 0xf1, + 0x4a, 0xd7, 0x09, 0x9d, 0x80, 0xbf, 0x4f, 0x21, 0x49, 0x04, 0x2a, 0x79, 0x1b, 0x26, 0xa2, 0xf7, + 0x71, 0xa3, 0xc7, 0xb7, 0x54, 0xca, 0x72, 0x54, 0xbe, 0x79, 0xdd, 0x54, 0xd1, 0x8d, 0x9f, 0xc8, + 0xc3, 0xa4, 0xda, 0x1e, 0x62, 0xc2, 0x31, 0xbf, 0xc5, 0x8e, 0xc2, 0xc2, 0x27, 0xa5, 0x8b, 0x85, + 0x62, 0x3b, 0x3d, 0xaf, 0x37, 0x88, 0xe1, 0x71, 0x07, 0x95, 0x3a, 0x0d, 0x02, 0xa7, 0xb3, 0xeb, + 0x2f, 0x3d, 0x67, 0xce, 0xfa, 0x11, 0x98, 0xe3, 0x91, 0x12, 0x14, 0xdc, 0xae, 0xbf, 0x4b, 0x3b, + 0x8e, 0xbc, 0x31, 0xb8, 0xa0, 0x31, 0x5a, 0x13, 0x85, 0x09, 0x5e, 0x21, 0x19, 0x79, 0x03, 0x46, + 0xdd, 0x2e, 0xed, 0xd8, 0x8e, 0xd8, 0xe3, 0x9e, 0x8f, 0x31, 0xa0, 0x9d, 0x52, 0x55, 0x21, 0x14, + 0xc8, 0xe4, 0x1a, 0xe4, 0xdd, 0xfb, 0xe1, 0x78, 0x9d, 0xd6, 0x89, 0xee, 0x07, 0xb6, 0x42, 0x82, + 0x88, 0x8c, 0xe0, 0x23, 0xbb, 0xbd, 0x23, 0x46, 0x4c, 0x27, 0xb8, 0x6b, 0xb7, 0x77, 0x54, 0x02, + 0x86, 0x48, 0xde, 0x03, 0xe8, 0xda, 0xbb, 0xd4, 0xb3, 0x9a, 0xbd, 0x60, 0x5f, 0x8c, 0xdb, 0x39, + 0x8d, 0xac, 0xc6, 0x8a, 0x2b, 0xbd, 0x60, 0x5f, 0xa1, 0x1d, 0xef, 0x4a, 0x20, 0x29, 0x01, 0xb4, + 0xed, 0x20, 0xa0, 0x5e, 0xdb, 0x15, 0x4e, 0x41, 0x13, 0x37, 0xe6, 0x35, 0x06, 0x2b, 0x61, 0xb1, + 0xc2, 0x41, 0x21, 0xc2, 0x46, 0x3b, 0x9e, 0x2d, 0xde, 0x4a, 0x8b, 0x35, 0xda, 0xf1, 0xb4, 0xaf, + 0x64, 0x88, 0x5f, 0xc8, 0xff, 0xcf, 0xbf, 0x38, 0x9f, 0x59, 0x00, 0x28, 0xf8, 0xa2, 0xc4, 0x58, + 0x86, 0xd3, 0x7d, 0x07, 0x95, 0x5c, 0x86, 0xe2, 0x8e, 0x2d, 0x2c, 0x24, 0x8d, 0x3d, 0xbb, 0xd3, + 0xa1, 0x2d, 0x31, 0x9d, 0x66, 0x24, 0xbc, 0xcc, 0xc1, 0x9c, 0xb3, 0xf1, 0x9b, 0x19, 0x38, 0x3b, + 0x68, 0x68, 0xc9, 0x19, 0x28, 0x74, 0x3d, 0xc7, 0x45, 0x15, 0x82, 0x4f, 0xc0, 0xf0, 0x37, 0x79, + 0x01, 0x80, 0xef, 0x75, 0x81, 0xbd, 0x2b, 0x7c, 0x74, 0xcd, 0x71, 0x84, 0xac, 0xdb, 0xbb, 0x3e, + 0x79, 0x15, 0x66, 0x9b, 0x74, 0xc7, 0xee, 0xb5, 0x02, 0xcb, 0x6f, 0xec, 0xd1, 0x26, 0xba, 0xc5, + 0xa3, 0xef, 0x85, 0x59, 0x14, 0x05, 0x75, 0x09, 0x27, 0x2f, 0xc2, 0xa4, 0x1a, 0x83, 0x2f, 0x5e, + 0x48, 0x9f, 0xb0, 0xbb, 0x8e, 0x8c, 0xc2, 0xe7, 0x2d, 0xbe, 0x9b, 0x2f, 0x64, 0x8a, 0x59, 0x13, + 0x5d, 0x10, 0x0c, 0x1b, 0x4e, 0xf5, 0x19, 0x39, 0xd6, 0xb6, 0xe8, 0xd9, 0x2c, 0x99, 0x84, 0xb7, + 0x17, 0x3e, 0x9e, 0x15, 0xaf, 0x2e, 0xdb, 0xa7, 0x3a, 0x63, 0x1f, 0x48, 0x72, 0x78, 0x18, 0x77, + 0xe1, 0x9c, 0xd5, 0xf3, 0x42, 0xee, 0x1c, 0xb2, 0xe1, 0xb5, 0xc8, 0x3c, 0x4c, 0xc8, 0x24, 0xfb, + 0xf2, 0xe9, 0xf1, 0x71, 0x13, 0x04, 0xe8, 0x1e, 0xc5, 0x9e, 0xc3, 0xe4, 0x59, 0xea, 0xf3, 0xdf, + 0xe3, 0x08, 0x61, 0xe7, 0x32, 0x51, 0xf5, 0x59, 0x38, 0x9e, 0x36, 0x69, 0x44, 0xe9, 0xcf, 0x65, + 0x60, 0xae, 0x9f, 0xd4, 0x1d, 0xd6, 0x3e, 0x02, 0xe8, 0x65, 0x2d, 0x1a, 0x86, 0x7f, 0xe3, 0x8b, + 0xe8, 0x42, 0x62, 0xc4, 0x72, 0x2a, 0x7e, 0x92, 0x8b, 0x30, 0xe3, 0x71, 0x3f, 0x9c, 0xc0, 0x15, + 0xfd, 0x89, 0xdb, 0x95, 0x39, 0xc5, 0xc1, 0xeb, 0x2e, 0xf6, 0xa9, 0x68, 0xd7, 0xdd, 0xb0, 0xc3, + 0x94, 0x49, 0x48, 0xae, 0xc2, 0x38, 0x9b, 0x84, 0x18, 0xb0, 0x1d, 0x73, 0xef, 0x44, 0x3c, 0x5c, + 0xd2, 0xcc, 0xc2, 0x47, 0xe2, 0x6f, 0xc1, 0xeb, 0xa6, 0xe4, 0xa5, 0xae, 0x00, 0xe4, 0x14, 0x8c, + 0xb9, 0xde, 0xae, 0xf2, 0x65, 0xa3, 0xae, 0xb7, 0xbb, 0xe1, 0xc9, 0x06, 0xfc, 0xcd, 0xac, 0x14, + 0xe9, 0x05, 0xd7, 0x0d, 0xfc, 0xc0, 0xb3, 0xbb, 0xda, 0xb2, 0x4a, 0xda, 0x70, 0xda, 0xb5, 0x7b, + 0xc1, 0xde, 0x0d, 0x8b, 0xfd, 0xeb, 0x7a, 0x32, 0x4c, 0xa0, 0x21, 0x6f, 0x85, 0x27, 0x6e, 0x5c, + 0xd3, 0xd7, 0x9f, 0x12, 0xc3, 0x2e, 0xa9, 0xc8, 0x65, 0xb7, 0x49, 0x15, 0xae, 0x4b, 0xcf, 0x99, + 0xa7, 0x38, 0xcf, 0x04, 0x16, 0x59, 0x02, 0xed, 0xe9, 0xc7, 0xd4, 0x75, 0x55, 0x79, 0xa6, 0x51, + 0xe7, 0x3a, 0xb1, 0xad, 0xbc, 0x13, 0xf9, 0x2e, 0x8c, 0x3b, 0x4d, 0x91, 0x13, 0x44, 0xac, 0xae, + 0xfa, 0xfa, 0x53, 0x6d, 0xf2, 0x14, 0x21, 0x11, 0x0f, 0xb6, 0x34, 0x3b, 0x02, 0xba, 0x30, 0xa5, + 0x6d, 0x40, 0xc6, 0x82, 0x14, 0xa0, 0x24, 0x19, 0x99, 0x86, 0xac, 0x23, 0x77, 0xe2, 0xac, 0xd3, + 0x24, 0x27, 0x61, 0xd4, 0x57, 0x92, 0x94, 0x98, 0xe2, 0x97, 0xf1, 0x67, 0xe0, 0xd2, 0xb0, 0x7d, + 0x84, 0x2f, 0xd1, 0xa7, 0x77, 0xf8, 0xb8, 0x39, 0x6b, 0x27, 0xfa, 0x0d, 0x5f, 0xa2, 0x0f, 0xf3, + 0x34, 0x38, 0x72, 0x8a, 0x4a, 0xd8, 0x86, 0xe7, 0x18, 0xef, 0xc0, 0xb4, 0xbe, 0xe3, 0x92, 0x57, + 0x21, 0x1f, 0x72, 0x9d, 0x0e, 0x4f, 0x86, 0x2a, 0x12, 0xe3, 0x6d, 0x22, 0x92, 0xf1, 0x2f, 0xb3, + 0x70, 0x2c, 0x65, 0xdf, 0x25, 0x1f, 0xc2, 0x31, 0x29, 0x20, 0x7c, 0x6b, 0xe5, 0x03, 0xc7, 0x45, + 0xe3, 0x72, 0x9a, 0x68, 0x20, 0x5a, 0xca, 0xf0, 0xcd, 0x0a, 0xa1, 0x88, 0xca, 0xff, 0xf4, 0x88, + 0x03, 0xf9, 0x00, 0x4e, 0x8a, 0x77, 0xa3, 0x14, 0xa9, 0xb0, 0x3c, 0xba, 0x23, 0x36, 0xe1, 0x17, + 0x13, 0xbd, 0xe7, 0x34, 0x94, 0xe6, 0x98, 0x74, 0x67, 0xe9, 0x39, 0xf3, 0xb8, 0x9f, 0x02, 0x8f, + 0x4b, 0xda, 0xaf, 0x66, 0xc0, 0x38, 0xbc, 0xbf, 0x70, 0x51, 0x8e, 0x77, 0x38, 0x5b, 0x94, 0x95, + 0xde, 0xbb, 0x00, 0x53, 0x1e, 0xdd, 0xf1, 0xa8, 0xbf, 0xa7, 0x74, 0xdf, 0xb8, 0x39, 0x29, 0x80, + 0xb2, 0x63, 0x64, 0xa4, 0xd3, 0x10, 0xe7, 0xec, 0x02, 0xd3, 0xd1, 0xf8, 0x09, 0x49, 0x10, 0x19, + 0xb7, 0xc3, 0x05, 0x24, 0x75, 0x1c, 0xd8, 0x49, 0x51, 0x6d, 0x20, 0xff, 0x71, 0x37, 0x5f, 0xc8, + 0x16, 0x73, 0xa6, 0x88, 0xc7, 0xda, 0x71, 0x5a, 0xd4, 0xf8, 0xbb, 0x19, 0x38, 0xd3, 0xbf, 0xf3, + 0xc8, 0x87, 0x8a, 0xa5, 0x28, 0xc7, 0xd3, 0x51, 0x1c, 0xd2, 0xdf, 0xea, 0xa1, 0x5a, 0x84, 0x08, + 0xc5, 0x9f, 0x4c, 0x12, 0x2c, 0x9f, 0xe4, 0xb8, 0xfb, 0xa6, 0x54, 0x34, 0x97, 0x1d, 0x3f, 0xd8, + 0xbc, 0x4e, 0x2e, 0xc3, 0x18, 0xd7, 0x2d, 0x65, 0x43, 0x67, 0xb4, 0x86, 0x6e, 0x5e, 0x37, 0x65, + 0xb9, 0xf1, 0xfd, 0x4c, 0xa8, 0x9d, 0xc4, 0x9b, 0xbf, 0x79, 0x9d, 0x7c, 0x6e, 0x38, 0x9b, 0x4f, + 0x41, 0xda, 0x7c, 0x42, 0x7b, 0xcf, 0xe7, 0x35, 0x7b, 0xcf, 0x4b, 0x83, 0xfb, 0x49, 0xec, 0x25, + 0xf1, 0x47, 0x2d, 0xfe, 0x4d, 0x06, 0x5e, 0x18, 0x48, 0x41, 0xce, 0x42, 0xa1, 0x54, 0xab, 0xae, + 0x47, 0x23, 0xcb, 0x66, 0x8b, 0x84, 0x90, 0x3b, 0x30, 0xbe, 0x60, 0xfb, 0x4e, 0x83, 0x09, 0xb0, + 0x68, 0xc8, 0x2b, 0x83, 0x1b, 0x12, 0xa2, 0x33, 0x35, 0x32, 0xfc, 0x41, 0x2c, 0x98, 0xc5, 0x59, + 0x90, 0x48, 0x1a, 0x1f, 0xdf, 0x76, 0x12, 0x0c, 0x13, 0x64, 0x6c, 0x85, 0x49, 0x00, 0xe3, 0x93, + 0xef, 0x01, 0x9c, 0x3f, 0xac, 0x81, 0x47, 0x88, 0xea, 0xbb, 0x04, 0x85, 0x9a, 0xed, 0xfb, 0x0f, + 0x5d, 0xaf, 0xa9, 0xbe, 0x19, 0xd3, 0x15, 0x30, 0x33, 0x2c, 0x35, 0xbe, 0x9d, 0x91, 0x7b, 0xc3, + 0xe1, 0x1f, 0xa2, 0x64, 0xcd, 0x6a, 0x0e, 0xce, 0x9a, 0xd5, 0xfc, 0x98, 0x59, 0xb3, 0x8c, 0x5f, + 0x16, 0x31, 0xf7, 0xd5, 0x66, 0x2d, 0x96, 0xaf, 0xf4, 0x49, 0x2d, 0xd8, 0x8b, 0x9a, 0x74, 0x5e, + 0x50, 0xd2, 0xef, 0x25, 0xeb, 0xea, 0x6f, 0xc8, 0x56, 0x44, 0xf5, 0xdb, 0x19, 0x38, 0x3b, 0x88, + 0x3c, 0x35, 0xb5, 0x6a, 0xe6, 0x68, 0xa9, 0x55, 0x2f, 0x43, 0x81, 0xc3, 0xf4, 0x07, 0x0e, 0x04, + 0x29, 0xeb, 0x70, 0x59, 0x6c, 0x94, 0x00, 0xaa, 0xcd, 0xda, 0x5a, 0x97, 0x47, 0xfe, 0xdf, 0x84, + 0x3c, 0x6b, 0x5b, 0xac, 0xa3, 0x58, 0x53, 0x4b, 0x2b, 0xcb, 0x02, 0x89, 0x1b, 0x39, 0x7c, 0xbb, + 0xdd, 0x32, 0x11, 0xd9, 0xd8, 0x82, 0x69, 0x1d, 0x83, 0x2c, 0xea, 0xb1, 0x62, 0xd1, 0x9b, 0x6c, + 0x0b, 0xae, 0xcb, 0x6d, 0xe4, 0x0b, 0xa7, 0x7f, 0x70, 0x30, 0x0f, 0xec, 0x27, 0xa7, 0x49, 0x8b, + 0x25, 0x33, 0xbe, 0x9b, 0x85, 0xe3, 0x91, 0x63, 0x89, 0x1c, 0xae, 0x67, 0xf6, 0xe2, 0xb7, 0xa4, + 0x5d, 0x4c, 0xce, 0x27, 0x9e, 0x3d, 0x92, 0x1f, 0x38, 0xe0, 0x3e, 0xe4, 0x0e, 0xcc, 0xf5, 0xc3, + 0x27, 0xaf, 0x26, 0x1e, 0x26, 0x11, 0x0e, 0xd0, 0xe1, 0x0b, 0x26, 0xca, 0x3b, 0x25, 0xff, 0x38, + 0x03, 0x67, 0x84, 0x65, 0x77, 0xc5, 0x76, 0x3a, 0xf8, 0x18, 0x5b, 0x83, 0x3e, 0x1d, 0x8f, 0x81, + 0x3b, 0xda, 0x94, 0x79, 0x59, 0x37, 0xe0, 0x27, 0x6a, 0xeb, 0xff, 0xb5, 0xe4, 0x32, 0x7a, 0x8d, + 0x37, 0xf8, 0x19, 0x2a, 0xcf, 0xbd, 0xa2, 0x3a, 0x0c, 0xa0, 0x7a, 0x45, 0x21, 0x86, 0xf1, 0xe7, + 0xe0, 0xdc, 0xe0, 0x0a, 0xc8, 0x57, 0x61, 0xaa, 0xb4, 0x4b, 0x3b, 0xc1, 0x46, 0x77, 0xd7, 0xb3, + 0x9b, 0x54, 0xde, 0xe0, 0xc8, 0x63, 0xba, 0x5a, 0xc6, 0x3d, 0xe5, 0x85, 0x97, 0x0e, 0x83, 0x5b, + 0x3d, 0x41, 0xa4, 0x5d, 0x9f, 0xa8, 0xdc, 0x8c, 0x1f, 0xcd, 0x00, 0x49, 0xf2, 0x20, 0xb7, 0x60, + 0x72, 0x63, 0xbd, 0x5c, 0x0f, 0x6c, 0x2f, 0x58, 0x72, 0x7b, 0xbc, 0x3b, 0xa7, 0x84, 0x03, 0x49, + 0xd0, 0xb0, 0x7c, 0x56, 0x60, 0xed, 0xb9, 0x3d, 0xcf, 0xd4, 0xf0, 0x30, 0x9d, 0x13, 0xa5, 0xf7, + 0x9b, 0xf6, 0xbe, 0x9e, 0xce, 0x49, 0xc0, 0xb4, 0x74, 0x4e, 0x02, 0x66, 0xfc, 0xf5, 0x0c, 0x3c, + 0x2f, 0xcf, 0xdc, 0xcd, 0x94, 0xb6, 0x94, 0xd1, 0x35, 0xd1, 0x93, 0x11, 0x78, 0x83, 0xf4, 0xa6, + 0x59, 0xe9, 0xbd, 0x8b, 0x0d, 0x44, 0x05, 0x8a, 0xd3, 0xe2, 0x4b, 0x94, 0x81, 0xdb, 0x1d, 0xc2, + 0x7d, 0xb7, 0x18, 0x8e, 0x68, 0xe0, 0x76, 0x91, 0x05, 0x52, 0x1a, 0x14, 0x8e, 0xab, 0x8d, 0x93, + 0x2d, 0x26, 0x2b, 0x30, 0x26, 0x42, 0x14, 0x84, 0x26, 0x22, 0xa3, 0x56, 0x06, 0x7c, 0xd3, 0xc2, + 0x8c, 0xf4, 0x11, 0x16, 0x11, 0x60, 0xa6, 0xe4, 0x61, 0x7c, 0x27, 0xc3, 0x1f, 0xc1, 0xc6, 0xa0, + 0xe8, 0x27, 0x15, 0x69, 0x5d, 0x47, 0x91, 0x3e, 0x1b, 0x21, 0xfb, 0xa1, 0x16, 0xfe, 0x37, 0x60, + 0x26, 0x46, 0x40, 0x0c, 0xf4, 0x0e, 0x6b, 0x39, 0xfc, 0x4d, 0x3f, 0xfe, 0xdd, 0xe3, 0xa6, 0x06, + 0x33, 0xfe, 0x9d, 0x0c, 0x1c, 0x67, 0x27, 0xe4, 0x6a, 0x9b, 0x1d, 0xc7, 0xcd, 0x5e, 0x4b, 0xce, + 0x77, 0xb6, 0x59, 0x4b, 0xe3, 0x0d, 0x77, 0xa3, 0xe1, 0x9b, 0xb5, 0x80, 0x99, 0x61, 0x29, 0x59, + 0x82, 0x82, 0x08, 0x58, 0x95, 0x6f, 0xd0, 0x4a, 0xd3, 0x98, 0xce, 0x58, 0x20, 0xb1, 0x2f, 0xc1, + 0x25, 0x4c, 0xd0, 0x98, 0x21, 0xb5, 0xf1, 0x47, 0x19, 0x38, 0xd5, 0x87, 0x86, 0xbc, 0x03, 0x23, + 0x78, 0x27, 0x29, 0x46, 0xef, 0x6c, 0x9f, 0x2a, 0x82, 0xc6, 0xde, 0xe6, 0x75, 0x7e, 0x7b, 0xdf, + 0x66, 0x3f, 0x4c, 0x4e, 0x45, 0x3e, 0x84, 0xf1, 0x52, 0xb3, 0xa9, 0xbd, 0x94, 0xfb, 0xfa, 0xe0, + 0x56, 0x5e, 0x0d, 0xf1, 0xb9, 0xce, 0xcc, 0xad, 0xe3, 0xcd, 0xa6, 0x78, 0x6a, 0xd4, 0x8c, 0xf8, + 0x9d, 0x79, 0x1b, 0xa6, 0x75, 0xe4, 0x23, 0xe9, 0xcc, 0xdf, 0xcf, 0x40, 0x51, 0x6f, 0xc3, 0x27, + 0xe3, 0xdd, 0x9c, 0x36, 0xcc, 0x87, 0x08, 0xd5, 0xcf, 0x66, 0xe1, 0x44, 0x6a, 0x0f, 0x93, 0xd7, + 0x61, 0xb4, 0xd4, 0xed, 0x56, 0x2b, 0x42, 0xaa, 0xb8, 0xf2, 0x60, 0x77, 0xbb, 0xb1, 0x78, 0x28, + 0x81, 0x44, 0x6e, 0x42, 0x01, 0x25, 0x93, 0x11, 0x64, 0xa3, 0x10, 0x2a, 0x4c, 0x34, 0x10, 0x0f, + 0xa1, 0x92, 0x88, 0xe4, 0x36, 0x4c, 0x0b, 0x47, 0x47, 0x93, 0xee, 0xd2, 0x47, 0x61, 0x2c, 0x3f, + 0xa6, 0x1b, 0x90, 0x6e, 0x91, 0x96, 0xc7, 0xcb, 0xd4, 0xa0, 0x4c, 0x9d, 0x0a, 0x1f, 0xca, 0x61, + 0x3c, 0x55, 0x4e, 0x3c, 0x8e, 0x8b, 0x3f, 0x94, 0x83, 0x8d, 0xe8, 0xc3, 0x2b, 0x41, 0x19, 0x0e, + 0x57, 0xc9, 0xf7, 0x9d, 0xdd, 0x4e, 0x9b, 0x76, 0x82, 0x4f, 0x6e, 0xb8, 0xa2, 0x3a, 0x86, 0x1a, + 0xae, 0xef, 0xe5, 0xf9, 0x64, 0x8e, 0x93, 0x1d, 0xf2, 0x16, 0x5c, 0x05, 0xc6, 0x78, 0x88, 0xaf, + 0x9c, 0x19, 0x2f, 0xa4, 0x36, 0x81, 0xe3, 0x6c, 0x5e, 0xe7, 0xea, 0x0b, 0xbf, 0x1c, 0xf5, 0x4d, + 0x49, 0x4a, 0x36, 0x61, 0xa2, 0xdc, 0xa2, 0x76, 0xa7, 0xd7, 0x65, 0x8b, 0xf4, 0x10, 0xa7, 0xe7, + 0x39, 0xf1, 0x2d, 0x93, 0x0d, 0x4e, 0x66, 0x05, 0x4e, 0x9b, 0xe2, 0x4a, 0xae, 0x32, 0x22, 0xeb, + 0xe1, 0x7d, 0x49, 0x1e, 0x0d, 0x33, 0x9f, 0x19, 0xd0, 0x3f, 0x71, 0x20, 0xd2, 0xe9, 0x97, 0x81, + 0xe2, 0x42, 0xc5, 0x82, 0xe9, 0x65, 0xdb, 0x0f, 0xd6, 0x3d, 0xbb, 0xe3, 0x63, 0x94, 0xd4, 0x10, + 0xae, 0xeb, 0x32, 0xa3, 0xff, 0x0c, 0xba, 0x49, 0x06, 0x21, 0x29, 0xb6, 0x39, 0xc6, 0x8e, 0xe9, + 0x4b, 0xb7, 0x9d, 0x8e, 0xdd, 0x72, 0xbe, 0x29, 0xaf, 0x95, 0xb9, 0xbe, 0xb4, 0x23, 0x81, 0x66, + 0x54, 0x6e, 0x7c, 0x25, 0x31, 0x6e, 0xbc, 0x95, 0x13, 0x30, 0x26, 0x3c, 0x89, 0xb8, 0x67, 0x4d, + 0x6d, 0x71, 0xb5, 0x52, 0x5d, 0xbd, 0x53, 0xcc, 0x90, 0x69, 0x80, 0x9a, 0xb9, 0x56, 0x5e, 0xac, + 0xd7, 0xd9, 0xef, 0x2c, 0xfb, 0x2d, 0xdc, 0x6e, 0x6e, 0x6f, 0x2c, 0x17, 0x73, 0x8a, 0xe7, 0x4d, + 0xde, 0xf8, 0x47, 0x19, 0x38, 0x99, 0x3e, 0x94, 0x64, 0x1d, 0xd0, 0xf7, 0x4a, 0xd8, 0xbc, 0x6e, + 0x0d, 0x1c, 0xf7, 0x54, 0x70, 0xdc, 0x87, 0x2b, 0xe0, 0xbe, 0x41, 0x59, 0x47, 0x6a, 0xc7, 0x61, + 0x66, 0x7d, 0xa7, 0x69, 0x94, 0x61, 0xae, 0x1f, 0x0f, 0xfd, 0x53, 0x67, 0x60, 0xa2, 0x54, 0xab, + 0x2d, 0x57, 0xcb, 0xa5, 0xf5, 0xea, 0xda, 0x6a, 0x31, 0x43, 0xc6, 0x61, 0xe4, 0x8e, 0xb9, 0xb6, + 0x51, 0x2b, 0x66, 0x8d, 0xbf, 0x94, 0x81, 0xa9, 0x6a, 0x27, 0xa0, 0xbb, 0x3c, 0x93, 0xe0, 0x93, + 0x4e, 0xbe, 0x2f, 0x68, 0x93, 0x6f, 0x2e, 0xf4, 0x52, 0x0c, 0x2b, 0x18, 0x6a, 0xe6, 0x3d, 0x84, + 0xd9, 0x04, 0x09, 0xa9, 0xc3, 0x58, 0x69, 0xab, 0xbe, 0x56, 0xad, 0x94, 0x45, 0xc3, 0xa4, 0x52, + 0x2e, 0xa0, 0xc9, 0x4a, 0xb8, 0x0f, 0xc0, 0x43, 0xdf, 0x72, 0x9d, 0xa6, 0x92, 0x9c, 0x74, 0xe9, + 0x39, 0x53, 0x72, 0x62, 0x27, 0x74, 0x71, 0xae, 0x40, 0x95, 0x7d, 0x19, 0xe6, 0xfa, 0x71, 0x63, + 0x27, 0x15, 0xdd, 0x65, 0xe7, 0x64, 0x98, 0x4b, 0x42, 0xf7, 0xd5, 0x91, 0x68, 0xc6, 0xbf, 0x9f, + 0x85, 0x93, 0xac, 0x5f, 0x5a, 0xd4, 0xf7, 0xd9, 0x39, 0x9b, 0x1d, 0xe9, 0xc4, 0x8b, 0xc0, 0x9f, + 0x83, 0xd1, 0xbd, 0xa3, 0x19, 0x60, 0x38, 0x3a, 0x21, 0x80, 0x6b, 0x8d, 0xbc, 0x30, 0x60, 0x7f, + 0x93, 0x17, 0x40, 0xc9, 0x1a, 0x8c, 0x4b, 0xc5, 0xa4, 0x39, 0xde, 0x0d, 0x73, 0x07, 0x7f, 0x1e, + 0x46, 0x30, 0x7e, 0x45, 0xcc, 0x78, 0xa9, 0xa9, 0xa5, 0xb7, 0x0c, 0x03, 0x5b, 0x4c, 0x4e, 0x40, + 0xae, 0x01, 0x44, 0x91, 0xfe, 0x62, 0x4a, 0xcb, 0xd3, 0x61, 0x18, 0xec, 0x6f, 0x8e, 0xb7, 0x77, + 0x6c, 0x11, 0x3e, 0x7f, 0x05, 0x66, 0xa5, 0xa1, 0xa0, 0x2b, 0x03, 0x30, 0x78, 0xac, 0x89, 0x39, + 0xc3, 0x0b, 0xaa, 0x5d, 0x11, 0x84, 0x61, 0xfc, 0x8b, 0x2c, 0x8c, 0x6f, 0xb1, 0xfd, 0x0f, 0x4f, + 0x75, 0x83, 0x4f, 0x89, 0x37, 0x60, 0x62, 0xd9, 0xb5, 0x9b, 0xfa, 0x8b, 0x96, 0x78, 0x61, 0xde, + 0x72, 0x6d, 0x69, 0x79, 0xf5, 0x4d, 0x15, 0xe9, 0x90, 0xcb, 0xfe, 0xbb, 0x30, 0xca, 0x03, 0xb8, + 0x44, 0xfe, 0x6d, 0xa9, 0x01, 0x85, 0x2d, 0xba, 0xca, 0x8b, 0x15, 0x0b, 0xdf, 0x0e, 0x02, 0xd4, + 0xed, 0x58, 0x84, 0x80, 0x29, 0x67, 0xd8, 0x91, 0xe1, 0xce, 0xb0, 0x8a, 0xdb, 0xfd, 0xe8, 0x30, + 0x6e, 0xf7, 0x67, 0xde, 0x84, 0x09, 0xa5, 0x3d, 0x47, 0x52, 0x88, 0x7e, 0x2c, 0x0b, 0x53, 0xf8, + 0x55, 0xa1, 0x69, 0xfe, 0xd9, 0x3c, 0x91, 0x7f, 0x41, 0x3b, 0x91, 0xcf, 0xa9, 0xe3, 0xc5, 0xbf, + 0x6c, 0xc0, 0x51, 0xfc, 0x2e, 0xcc, 0x26, 0x10, 0xc9, 0x1b, 0x30, 0xc2, 0x9a, 0x2f, 0x4f, 0x30, + 0xc5, 0xb8, 0x04, 0x44, 0x61, 0x91, 0xec, 0xc3, 0x7d, 0x93, 0x63, 0x1b, 0xff, 0x5b, 0x06, 0x26, + 0x45, 0xea, 0x87, 0xce, 0x8e, 0x7b, 0x68, 0x77, 0x5e, 0x8c, 0x77, 0x27, 0x77, 0x5d, 0x13, 0xdd, + 0xf9, 0xff, 0x74, 0x27, 0xbe, 0xa9, 0x75, 0xe2, 0xa9, 0x30, 0x60, 0x43, 0x7e, 0xce, 0x80, 0x3e, + 0xfc, 0x4d, 0x0c, 0x1b, 0xd4, 0x11, 0xc9, 0xd7, 0x60, 0x7c, 0x95, 0x3e, 0xd4, 0x0e, 0x02, 0x17, + 0xfb, 0x30, 0xbd, 0x1a, 0x22, 0xf2, 0x39, 0x85, 0x81, 0x40, 0x1d, 0xfa, 0xd0, 0x4a, 0x58, 0xce, + 0x23, 0x96, 0xec, 0x2c, 0xa0, 0x93, 0x1d, 0x45, 0xf4, 0xc5, 0x0d, 0x35, 0x7a, 0x63, 0xfe, 0x4a, + 0x0e, 0x20, 0xba, 0xdf, 0x64, 0x13, 0x90, 0x6a, 0x09, 0x92, 0x84, 0xb9, 0x0e, 0x41, 0xaa, 0x8c, + 0x0b, 0x10, 0xb9, 0x08, 0x79, 0x25, 0x43, 0x72, 0x6a, 0x40, 0x0d, 0x5a, 0x65, 0xcb, 0x00, 0xfe, + 0x7e, 0xa7, 0x61, 0x35, 0x69, 0xcb, 0xe6, 0x6b, 0x71, 0x0e, 0xdf, 0x56, 0x3c, 0x1e, 0x41, 0xfb, + 0xe4, 0xf0, 0x1d, 0x67, 0x18, 0x15, 0x86, 0x40, 0xde, 0x89, 0xdd, 0x89, 0xe7, 0xa3, 0x38, 0x22, + 0x15, 0xae, 0xc6, 0x11, 0x29, 0xf7, 0xe5, 0xe4, 0x06, 0x84, 0xf6, 0x62, 0x75, 0x41, 0x4a, 0xcb, + 0xe8, 0x2c, 0x61, 0x8c, 0x46, 0x5a, 0x8e, 0xb5, 0x87, 0x4d, 0x05, 0x4c, 0xa5, 0x91, 0x30, 0x52, + 0x83, 0x71, 0xa7, 0xf3, 0x80, 0x76, 0x02, 0xd7, 0xdb, 0x9f, 0x1b, 0xc3, 0xc1, 0x3f, 0xad, 0x5c, + 0x25, 0x57, 0x65, 0x19, 0x1f, 0x6f, 0x3c, 0xa2, 0x84, 0xf8, 0xea, 0x70, 0x87, 0x40, 0x71, 0x6f, + 0xfc, 0x0f, 0xb2, 0x40, 0x92, 0x0c, 0xc8, 0x17, 0x60, 0x82, 0x2f, 0xc1, 0x96, 0xe7, 0x7f, 0x43, + 0xdc, 0x38, 0x73, 0xaf, 0x57, 0x05, 0xac, 0x7a, 0xbd, 0x72, 0xb0, 0xe9, 0x7f, 0xa3, 0x45, 0xbe, + 0x0a, 0xc7, 0x70, 0x00, 0xba, 0xd4, 0x73, 0xdc, 0xa6, 0x85, 0x41, 0x76, 0x76, 0x4b, 0x64, 0xe4, + 0x7b, 0x1d, 0x53, 0xc7, 0x26, 0x8b, 0xfb, 0x0c, 0xd4, 0x2c, 0x43, 0xad, 0x21, 0x66, 0x8d, 0x23, + 0x92, 0x75, 0x28, 0xaa, 0xf4, 0x3b, 0xbd, 0x56, 0x4b, 0x8c, 0xfd, 0x15, 0x7c, 0x51, 0x2a, 0x56, + 0xd6, 0x87, 0xf1, 0x74, 0xc4, 0xf8, 0x76, 0xaf, 0xd5, 0x22, 0x9f, 0x03, 0x70, 0x3b, 0x56, 0xdb, + 0xf1, 0x7d, 0xa7, 0xb3, 0x2b, 0x84, 0x00, 0x67, 0x4d, 0x04, 0x55, 0xbb, 0xd1, 0xed, 0xac, 0x70, + 0xa0, 0xe8, 0xc6, 0x2f, 0xc3, 0xac, 0xf0, 0x77, 0xdd, 0x72, 0x82, 0x3d, 0xa1, 0xa0, 0x3d, 0x89, + 0x76, 0xa7, 0x68, 0x68, 0xff, 0x36, 0x0b, 0x50, 0xda, 0xaa, 0x4b, 0x57, 0xeb, 0xcb, 0x30, 0xc2, + 0xd4, 0x4e, 0x79, 0x7c, 0x45, 0xe3, 0x1f, 0xf2, 0x55, 0x8d, 0x7f, 0x88, 0xc1, 0x66, 0x9e, 0x49, + 0x77, 0xd1, 0x82, 0x92, 0x8d, 0xce, 0xba, 0x1e, 0x07, 0x69, 0x5a, 0x14, 0x07, 0x91, 0x65, 0x80, + 0xc8, 0xf9, 0x59, 0x1c, 0x84, 0x66, 0x23, 0x2f, 0x42, 0x51, 0x20, 0x72, 0x37, 0x44, 0x0e, 0xd4, + 0xaa, 0x20, 0x44, 0x68, 0xe4, 0x1e, 0xe4, 0xd7, 0xed, 0x5d, 0xe9, 0xc5, 0xd9, 0xc7, 0x25, 0xfc, + 0xbc, 0xc8, 0x7d, 0x18, 0xb9, 0x85, 0x4f, 0x07, 0xb6, 0x96, 0x22, 0x16, 0x99, 0x90, 0x45, 0x18, + 0x15, 0x79, 0xad, 0xfb, 0xc4, 0x07, 0x89, 0xb4, 0xd6, 0x22, 0x04, 0x16, 0x81, 0xda, 0xb3, 0xbc, + 0x3c, 0x83, 0xf5, 0x0d, 0xc8, 0xd5, 0xeb, 0x2b, 0xc2, 0x11, 0x6a, 0x2a, 0xd2, 0x6a, 0xeb, 0xf5, + 0x15, 0x99, 0xbb, 0x5f, 0x7d, 0x39, 0x95, 0x21, 0x1b, 0x54, 0xed, 0x15, 0xb6, 0xc9, 0xe8, 0xba, + 0x29, 0x6e, 0x32, 0x52, 0x37, 0x0d, 0x35, 0x52, 0xa6, 0xd0, 0x25, 0xfc, 0xc6, 0xd1, 0x89, 0x50, + 0xf1, 0x1b, 0xd7, 0xbc, 0xc5, 0x7f, 0x3c, 0xa7, 0xc4, 0x23, 0x89, 0xe6, 0xbe, 0x03, 0x70, 0xd7, + 0x75, 0x3a, 0x2b, 0x34, 0xd8, 0x73, 0x9b, 0x8a, 0xfb, 0xfa, 0xc4, 0x47, 0xae, 0xd3, 0xb1, 0xda, + 0x08, 0xfe, 0xe1, 0xc1, 0xbc, 0x82, 0x64, 0x2a, 0x7f, 0x93, 0xd7, 0x60, 0x9c, 0xfd, 0x52, 0xdf, + 0x4b, 0x47, 0x63, 0x10, 0x52, 0x8b, 0x67, 0x32, 0x42, 0x04, 0xf2, 0x26, 0x00, 0x8f, 0x8c, 0x52, + 0x74, 0x39, 0x1c, 0x6a, 0x7e, 0x7f, 0x12, 0x8f, 0xa7, 0x54, 0x90, 0xc9, 0x52, 0xd8, 0x74, 0x99, + 0xac, 0x46, 0x64, 0x34, 0x41, 0x8b, 0x87, 0x18, 0x0e, 0x4b, 0xa6, 0xb6, 0x51, 0xd3, 0x8a, 0xc6, + 0xc8, 0xb0, 0x11, 0xf5, 0xa5, 0x0a, 0x37, 0x51, 0x8b, 0x25, 0x95, 0x37, 0xc2, 0xdf, 0x6b, 0x5a, + 0x0d, 0x04, 0x6b, 0x8d, 0x08, 0x91, 0xc9, 0x02, 0xcc, 0x70, 0x27, 0xcb, 0x30, 0xe9, 0x9d, 0x58, + 0x5e, 0x71, 0x22, 0x47, 0x59, 0xf1, 0xd4, 0xea, 0x63, 0x04, 0x46, 0x15, 0x46, 0xb9, 0x34, 0x60, + 0x50, 0xac, 0xc8, 0xb8, 0xa1, 0x84, 0x77, 0xf2, 0xa0, 0x58, 0x01, 0x4f, 0x06, 0xc5, 0x2a, 0x04, + 0xc6, 0x2f, 0xe4, 0x60, 0xb2, 0xf4, 0xcd, 0x9e, 0x17, 0x06, 0x49, 0x94, 0x60, 0xaa, 0xde, 0xdb, + 0x0e, 0x5d, 0x64, 0xe5, 0x0c, 0xe6, 0xcf, 0x0c, 0xaa, 0x05, 0xaa, 0x35, 0x5d, 0xa3, 0x20, 0x8b, + 0x30, 0x2d, 0x57, 0x0f, 0x91, 0x07, 0x93, 0x4f, 0x6c, 0x0c, 0x69, 0x90, 0xc1, 0x1b, 0xc9, 0x2c, + 0x98, 0x31, 0xa2, 0x68, 0x0d, 0xc9, 0x1d, 0x65, 0x0d, 0xc9, 0x0f, 0xb5, 0x86, 0x7c, 0x08, 0x93, + 0xb2, 0x36, 0x9c, 0xfd, 0x23, 0x4f, 0x36, 0xfb, 0x35, 0x66, 0x64, 0x39, 0x5c, 0x05, 0x46, 0x07, + 0xae, 0x02, 0x78, 0x45, 0x21, 0xc5, 0x2e, 0x91, 0xd8, 0x5e, 0xf0, 0x30, 0xbe, 0x93, 0x03, 0xb8, + 0x53, 0xae, 0x7d, 0x8c, 0x95, 0xf5, 0x0d, 0x18, 0x5f, 0x76, 0xa5, 0x75, 0x5a, 0x31, 0x0b, 0xb6, + 0x24, 0x50, 0xdd, 0x2c, 0x42, 0xcc, 0x70, 0x45, 0xcc, 0x3d, 0x8d, 0x15, 0xf1, 0x4d, 0x80, 0x1a, + 0x77, 0xae, 0x8b, 0xd2, 0x3b, 0xe1, 0x4c, 0x91, 0x5e, 0x78, 0xba, 0x75, 0x52, 0x41, 0x66, 0xd3, + 0x55, 0x7f, 0x92, 0x5b, 0xcb, 0x87, 0x1a, 0x7b, 0xce, 0x5b, 0x65, 0x12, 0x27, 0x7b, 0xca, 0x03, + 0xf2, 0x8f, 0x32, 0x6a, 0xb0, 0xfd, 0xc7, 0x18, 0x97, 0xcf, 0x03, 0x84, 0x77, 0x79, 0x72, 0x60, + 0xb8, 0xf2, 0x1b, 0x42, 0xd5, 0x2e, 0x89, 0x70, 0xc9, 0xfb, 0x4a, 0xa4, 0xc7, 0x80, 0xc1, 0x31, + 0x12, 0x83, 0xd3, 0xd7, 0x1b, 0xe5, 0xca, 0xcf, 0x64, 0x60, 0xa6, 0x5a, 0x5a, 0x11, 0x91, 0xe2, + 0xdc, 0x2e, 0xf6, 0x22, 0xbc, 0x50, 0x2d, 0xad, 0x58, 0xb5, 0xb5, 0xe5, 0x6a, 0xf9, 0x03, 0x2b, + 0x35, 0x0e, 0xed, 0x05, 0x38, 0x9d, 0x44, 0x89, 0xec, 0x67, 0x67, 0x61, 0x2e, 0x59, 0x2c, 0x63, + 0xd5, 0xd2, 0x89, 0x65, 0x58, 0x5b, 0xee, 0xca, 0x7b, 0x30, 0x23, 0x43, 0xb8, 0xd6, 0x97, 0xeb, + 0x18, 0x72, 0x3d, 0x03, 0x13, 0x9b, 0x8b, 0x66, 0xf5, 0xf6, 0x07, 0xd6, 0xed, 0x8d, 0xe5, 0xe5, + 0xe2, 0x73, 0x64, 0x0a, 0xc6, 0x05, 0xa0, 0x5c, 0x2a, 0x66, 0xc8, 0x24, 0x14, 0xaa, 0xab, 0xf5, + 0xc5, 0xf2, 0x86, 0xb9, 0x58, 0xcc, 0x5e, 0xb9, 0x01, 0xd3, 0xd1, 0xcb, 0x6c, 0x68, 0xfe, 0x1a, + 0x83, 0x9c, 0x59, 0xda, 0x2a, 0x3e, 0x47, 0x00, 0x46, 0x6b, 0xf7, 0xca, 0xf5, 0xeb, 0xd7, 0x8b, + 0x19, 0x32, 0x01, 0x63, 0x77, 0xca, 0x35, 0xeb, 0xde, 0x4a, 0xbd, 0x98, 0xbd, 0xf2, 0x19, 0x98, + 0xc5, 0x05, 0x76, 0xd9, 0xf1, 0x03, 0xda, 0xa1, 0x1e, 0x56, 0x3b, 0x09, 0x85, 0x3a, 0x65, 0x82, + 0x10, 0x50, 0x5e, 0xe7, 0x4a, 0xaf, 0x15, 0x38, 0xdd, 0x16, 0x7d, 0x54, 0xcc, 0x5c, 0x79, 0x13, + 0x66, 0x4c, 0xb7, 0x17, 0x38, 0x9d, 0xdd, 0x7a, 0xc0, 0x30, 0x76, 0xf7, 0xc9, 0x09, 0x98, 0xdd, + 0x58, 0x2d, 0xad, 0x2c, 0x54, 0xef, 0x6c, 0xac, 0x6d, 0xd4, 0xad, 0x95, 0xd2, 0x7a, 0x79, 0x89, + 0xdb, 0xdb, 0x56, 0xd6, 0xea, 0xeb, 0x96, 0xb9, 0x58, 0x5e, 0x5c, 0x5d, 0x2f, 0x66, 0xae, 0xfc, + 0x54, 0x06, 0xa6, 0x37, 0x7c, 0xe1, 0xbf, 0xb4, 0x81, 0x11, 0x48, 0xe7, 0xe1, 0xec, 0x46, 0x7d, + 0xd1, 0xb4, 0xd6, 0xd7, 0xee, 0x2d, 0xae, 0x5a, 0x1b, 0xf5, 0xd2, 0x9d, 0x78, 0xdc, 0xe3, 0x3c, + 0x3c, 0xaf, 0x60, 0x98, 0x8b, 0xe5, 0xb5, 0xcd, 0x45, 0xd3, 0xaa, 0x95, 0xea, 0xf5, 0xad, 0x35, + 0xb3, 0x52, 0xcc, 0x90, 0x33, 0x70, 0x32, 0x05, 0x61, 0xe5, 0x76, 0xa9, 0x98, 0x4d, 0x94, 0xad, + 0x2e, 0x6e, 0x95, 0x96, 0xad, 0x85, 0xb5, 0x75, 0xec, 0xef, 0x49, 0x11, 0x1a, 0xc4, 0xb3, 0x98, + 0x14, 0x20, 0xbf, 0xba, 0xb6, 0xba, 0x18, 0xb7, 0x89, 0x4e, 0x42, 0xa1, 0x54, 0xab, 0x99, 0x6b, + 0x9b, 0x38, 0x86, 0x00, 0xa3, 0x95, 0xc5, 0x55, 0xd6, 0xb2, 0xdc, 0x95, 0xff, 0x1f, 0x10, 0x1e, + 0xf3, 0x24, 0x53, 0x41, 0x60, 0xe7, 0x9d, 0x83, 0x33, 0x4b, 0xec, 0xab, 0xb1, 0xde, 0x95, 0xb5, + 0x4a, 0xfc, 0x7b, 0x4e, 0x02, 0x89, 0x95, 0xaf, 0xdd, 0xbe, 0x5d, 0xcc, 0x90, 0x53, 0x70, 0x2c, + 0x06, 0xaf, 0x98, 0x6b, 0xb5, 0x62, 0x36, 0xa5, 0xe0, 0xde, 0xe2, 0x62, 0xad, 0x98, 0xbb, 0x62, + 0xc0, 0x6c, 0x99, 0x7a, 0x01, 0x53, 0x53, 0x3a, 0xec, 0x50, 0x8c, 0xd5, 0x4f, 0xc1, 0xf8, 0xe2, + 0x97, 0xd6, 0x17, 0x57, 0xeb, 0xd5, 0xb5, 0xd5, 0xe2, 0x73, 0x57, 0xce, 0xc6, 0x70, 0xa4, 0x58, + 0xd4, 0xeb, 0x4b, 0xc5, 0xe7, 0xae, 0x7c, 0x85, 0x1d, 0xe1, 0x95, 0x0c, 0x41, 0xa7, 0xe0, 0x98, + 0xfa, 0xbb, 0x46, 0x3b, 0x4d, 0xa7, 0xb3, 0x5b, 0x7c, 0x2e, 0x5e, 0x60, 0xf6, 0x3a, 0x1d, 0x56, + 0x80, 0x9d, 0xaf, 0x16, 0xac, 0x53, 0xaf, 0xed, 0x74, 0xec, 0x80, 0x36, 0x8b, 0xd9, 0x2b, 0x57, + 0x61, 0x4a, 0x8b, 0xea, 0x62, 0xf5, 0x2e, 0xaf, 0x09, 0x71, 0x5c, 0x59, 0xac, 0x54, 0x37, 0x56, + 0x8a, 0x23, 0xac, 0xdb, 0x97, 0xaa, 0x77, 0x96, 0x8a, 0x70, 0xe5, 0x2b, 0x6c, 0x03, 0xc5, 0xc4, + 0x07, 0x2b, 0xb7, 0x4b, 0xb2, 0xa1, 0xac, 0x73, 0x78, 0xfc, 0xe7, 0x62, 0xbd, 0xce, 0xcd, 0xb6, + 0x67, 0x61, 0x4e, 0xfc, 0xb0, 0x4a, 0xab, 0x15, 0x6b, 0xa9, 0x64, 0x56, 0xb6, 0x4a, 0x26, 0xeb, + 0x96, 0x0f, 0x8a, 0x59, 0xec, 0x5f, 0x05, 0x62, 0xad, 0xaf, 0x6d, 0x94, 0x97, 0x8a, 0xb9, 0x2b, + 0x0e, 0x14, 0xe3, 0x5e, 0x97, 0x09, 0x4b, 0xb8, 0xb9, 0xb1, 0xba, 0xca, 0x47, 0x7d, 0x06, 0x26, + 0xd6, 0xd6, 0x97, 0x16, 0x4d, 0x11, 0x6b, 0x8b, 0xc1, 0xb5, 0x1b, 0xab, 0xa5, 0x8d, 0xf5, 0xa5, + 0x35, 0xb3, 0xfa, 0x65, 0x36, 0xfc, 0x64, 0x0e, 0x8e, 0xd7, 0x97, 0x4b, 0xe5, 0x7b, 0xd6, 0xea, + 0xda, 0xba, 0x55, 0x5d, 0xb5, 0xca, 0x4b, 0xa5, 0xd5, 0xd5, 0xc5, 0xe5, 0x22, 0x5c, 0xf9, 0xc7, + 0x19, 0x78, 0x7e, 0x80, 0x59, 0x91, 0xbc, 0x0e, 0x97, 0x97, 0x16, 0x4b, 0x95, 0xe5, 0xc5, 0x7a, + 0xdd, 0x62, 0x2c, 0x17, 0x57, 0xd7, 0x85, 0x51, 0x1a, 0x57, 0x85, 0xb8, 0xc4, 0x5c, 0x86, 0x97, + 0x07, 0xa3, 0x47, 0xc2, 0x7a, 0x09, 0x5e, 0x1a, 0x8c, 0x2a, 0x84, 0x37, 0x4b, 0xae, 0xc0, 0xc5, + 0xc1, 0x98, 0xa1, 0xd0, 0xe7, 0x16, 0xde, 0xf9, 0xdd, 0xdf, 0x3f, 0xf7, 0xdc, 0xef, 0xfe, 0xc1, + 0xb9, 0xcc, 0xef, 0xfd, 0xc1, 0xb9, 0xcc, 0x3f, 0xff, 0x83, 0x73, 0x99, 0x2f, 0xbf, 0x7a, 0x84, + 0x6c, 0xe8, 0xdb, 0xa3, 0x78, 0xeb, 0x71, 0xf3, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x36, 0xf9, + 0x41, 0xe3, 0x20, 0x57, 0x01, 0x00, } func (this *PluginSpecV1) Equal(that interface{}) bool { @@ -22955,6 +23012,25 @@ func (m *ProvisionTokenSpecV2Kubernetes) MarshalToSizedBuffer(dAtA []byte) (int, i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.StaticJWKS != nil { + { + size, err := m.StaticJWKS.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x12 + } if len(m.Allow) > 0 { for iNdEx := len(m.Allow) - 1; iNdEx >= 0; iNdEx-- { { @@ -22972,6 +23048,40 @@ func (m *ProvisionTokenSpecV2Kubernetes) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.JWKS) > 0 { + i -= len(m.JWKS) + copy(dAtA[i:], m.JWKS) + i = encodeVarintTypes(dAtA, i, uint64(len(m.JWKS))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *ProvisionTokenSpecV2Kubernetes_Rule) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -24583,12 +24693,12 @@ func (m *UserTokenSpecV3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n104, err104 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err104 != nil { - return 0, err104 + n105, err105 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err105 != nil { + return 0, err105 } - i -= n104 - i = encodeVarintTypes(dAtA, i, uint64(n104)) + i -= n105 + i = encodeVarintTypes(dAtA, i, uint64(n105)) i-- dAtA[i] = 0x22 if m.Usage != 0 { @@ -24705,12 +24815,12 @@ func (m *UserTokenSecretsSpecV3) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n107, err107 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err107 != nil { - return 0, err107 + n108, err108 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err108 != nil { + return 0, err108 } - i -= n107 - i = encodeVarintTypes(dAtA, i, uint64(n107)) + i -= n108 + i = encodeVarintTypes(dAtA, i, uint64(n108)) i-- dAtA[i] = 0x1a if len(m.QRCode) > 0 { @@ -24874,20 +24984,20 @@ func (m *AccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.ThresholdIndexes) > 0 { - dAtA111 := make([]byte, len(m.ThresholdIndexes)*10) - var j110 int + dAtA112 := make([]byte, len(m.ThresholdIndexes)*10) + var j111 int for _, num := range m.ThresholdIndexes { for num >= 1<<7 { - dAtA111[j110] = uint8(uint64(num)&0x7f | 0x80) + dAtA112[j111] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j110++ + j111++ } - dAtA111[j110] = uint8(num) - j110++ + dAtA112[j111] = uint8(num) + j111++ } - i -= j110 - copy(dAtA[i:], dAtA111[:j110]) - i = encodeVarintTypes(dAtA, i, uint64(j110)) + i -= j111 + copy(dAtA[i:], dAtA112[:j111]) + i = encodeVarintTypes(dAtA, i, uint64(j111)) i-- dAtA[i] = 0x3a } @@ -24901,12 +25011,12 @@ func (m *AccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x32 - n113, err113 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err113 != nil { - return 0, err113 + n114, err114 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err114 != nil { + return 0, err114 } - i -= n113 - i = encodeVarintTypes(dAtA, i, uint64(n113)) + i -= n114 + i = encodeVarintTypes(dAtA, i, uint64(n114)) i-- dAtA[i] = 0x2a if len(m.Reason) > 0 { @@ -25009,20 +25119,20 @@ func (m *ThresholdIndexSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.Indexes) > 0 { - dAtA116 := make([]byte, len(m.Indexes)*10) - var j115 int + dAtA117 := make([]byte, len(m.Indexes)*10) + var j116 int for _, num := range m.Indexes { for num >= 1<<7 { - dAtA116[j115] = uint8(uint64(num)&0x7f | 0x80) + dAtA117[j116] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j115++ + j116++ } - dAtA116[j115] = uint8(num) - j115++ + dAtA117[j116] = uint8(num) + j116++ } - i -= j115 - copy(dAtA[i:], dAtA116[:j115]) - i = encodeVarintTypes(dAtA, i, uint64(j115)) + i -= j116 + copy(dAtA[i:], dAtA117[:j116]) + i = encodeVarintTypes(dAtA, i, uint64(j116)) i-- dAtA[i] = 0xa } @@ -25094,22 +25204,22 @@ func (m *AccessRequestSpecV3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n117, err117 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.SessionTTL, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.SessionTTL):]) - if err117 != nil { - return 0, err117 + n118, err118 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.SessionTTL, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.SessionTTL):]) + if err118 != nil { + return 0, err118 } - i -= n117 - i = encodeVarintTypes(dAtA, i, uint64(n117)) + i -= n118 + i = encodeVarintTypes(dAtA, i, uint64(n118)) i-- dAtA[i] = 0x1 i-- dAtA[i] = 0x92 - n118, err118 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.MaxDuration, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.MaxDuration):]) - if err118 != nil { - return 0, err118 + n119, err119 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.MaxDuration, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.MaxDuration):]) + if err119 != nil { + return 0, err119 } - i -= n118 - i = encodeVarintTypes(dAtA, i, uint64(n118)) + i -= n119 + i = encodeVarintTypes(dAtA, i, uint64(n119)) i-- dAtA[i] = 0x1 i-- @@ -25242,21 +25352,21 @@ func (m *AccessRequestSpecV3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x32 } - n122, err122 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err122 != nil { - return 0, err122 - } - i -= n122 - i = encodeVarintTypes(dAtA, i, uint64(n122)) - i-- - dAtA[i] = 0x2a - n123, err123 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + n123, err123 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) if err123 != nil { return 0, err123 } i -= n123 i = encodeVarintTypes(dAtA, i, uint64(n123)) i-- + dAtA[i] = 0x2a + n124, err124 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err124 != nil { + return 0, err124 + } + i -= n124 + i = encodeVarintTypes(dAtA, i, uint64(n124)) + i-- dAtA[i] = 0x22 if m.State != 0 { i = encodeVarintTypes(dAtA, i, uint64(m.State)) @@ -27506,12 +27616,12 @@ func (m *UserSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x42 - n158, err158 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err158 != nil { - return 0, err158 + n159, err159 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err159 != nil { + return 0, err159 } - i -= n158 - i = encodeVarintTypes(dAtA, i, uint64(n158)) + i -= n159 + i = encodeVarintTypes(dAtA, i, uint64(n159)) i-- dAtA[i] = 0x3a { @@ -27653,29 +27763,29 @@ func (m *LoginStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n161, err161 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.RecoveryAttemptLockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.RecoveryAttemptLockExpires):]) - if err161 != nil { - return 0, err161 - } - i -= n161 - i = encodeVarintTypes(dAtA, i, uint64(n161)) - i-- - dAtA[i] = 0x2a - n162, err162 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockExpires):]) + n162, err162 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.RecoveryAttemptLockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.RecoveryAttemptLockExpires):]) if err162 != nil { return 0, err162 } i -= n162 i = encodeVarintTypes(dAtA, i, uint64(n162)) i-- - dAtA[i] = 0x22 - n163, err163 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockedTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockedTime):]) + dAtA[i] = 0x2a + n163, err163 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockExpires):]) if err163 != nil { return 0, err163 } i -= n163 i = encodeVarintTypes(dAtA, i, uint64(n163)) i-- + dAtA[i] = 0x22 + n164, err164 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockedTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockedTime):]) + if err164 != nil { + return 0, err164 + } + i -= n164 + i = encodeVarintTypes(dAtA, i, uint64(n164)) + i-- dAtA[i] = 0x1a if len(m.LockedMessage) > 0 { i -= len(m.LockedMessage) @@ -27731,12 +27841,12 @@ func (m *CreatedBy) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x1a - n165, err165 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) - if err165 != nil { - return 0, err165 + n166, err166 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err166 != nil { + return 0, err166 } - i -= n165 - i = encodeVarintTypes(dAtA, i, uint64(n165)) + i -= n166 + i = encodeVarintTypes(dAtA, i, uint64(n166)) i-- dAtA[i] = 0x12 if m.Connector != nil { @@ -27854,21 +27964,21 @@ func (m *MFADevice) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } } - n168, err168 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUsed, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastUsed):]) - if err168 != nil { - return 0, err168 - } - i -= n168 - i = encodeVarintTypes(dAtA, i, uint64(n168)) - i-- - dAtA[i] = 0x3a - n169, err169 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.AddedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.AddedAt):]) + n169, err169 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUsed, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastUsed):]) if err169 != nil { return 0, err169 } i -= n169 i = encodeVarintTypes(dAtA, i, uint64(n169)) i-- + dAtA[i] = 0x3a + n170, err170 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.AddedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.AddedAt):]) + if err170 != nil { + return 0, err170 + } + i -= n170 + i = encodeVarintTypes(dAtA, i, uint64(n170)) + i-- dAtA[i] = 0x32 if len(m.Id) > 0 { i -= len(m.Id) @@ -28471,12 +28581,12 @@ func (m *TunnelConnectionSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x22 } - n178, err178 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) - if err178 != nil { - return 0, err178 + n179, err179 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) + if err179 != nil { + return 0, err179 } - i -= n178 - i = encodeVarintTypes(dAtA, i, uint64(n178)) + i -= n179 + i = encodeVarintTypes(dAtA, i, uint64(n179)) i-- dAtA[i] = 0x1a if len(m.ProxyName) > 0 { @@ -28568,12 +28678,12 @@ func (m *AcquireSemaphoreRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x2a } - n179, err179 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err179 != nil { - return 0, err179 + n180, err180 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err180 != nil { + return 0, err180 } - i -= n179 - i = encodeVarintTypes(dAtA, i, uint64(n179)) + i -= n180 + i = encodeVarintTypes(dAtA, i, uint64(n180)) i-- dAtA[i] = 0x22 if m.MaxLeases != 0 { @@ -28622,12 +28732,12 @@ func (m *SemaphoreLease) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n180, err180 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err180 != nil { - return 0, err180 + n181, err181 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err181 != nil { + return 0, err181 } - i -= n180 - i = encodeVarintTypes(dAtA, i, uint64(n180)) + i -= n181 + i = encodeVarintTypes(dAtA, i, uint64(n181)) i-- dAtA[i] = 0x2a if len(m.LeaseID) > 0 { @@ -28685,12 +28795,12 @@ func (m *SemaphoreLeaseRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - n181, err181 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err181 != nil { - return 0, err181 + n182, err182 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err182 != nil { + return 0, err182 } - i -= n181 - i = encodeVarintTypes(dAtA, i, uint64(n181)) + i -= n182 + i = encodeVarintTypes(dAtA, i, uint64(n182)) i-- dAtA[i] = 0x12 if len(m.LeaseID) > 0 { @@ -28928,29 +29038,29 @@ func (m *WebSessionSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x48 } - n187, err187 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LoginTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LoginTime):]) - if err187 != nil { - return 0, err187 - } - i -= n187 - i = encodeVarintTypes(dAtA, i, uint64(n187)) - i-- - dAtA[i] = 0x42 - n188, err188 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + n188, err188 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LoginTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LoginTime):]) if err188 != nil { return 0, err188 } i -= n188 i = encodeVarintTypes(dAtA, i, uint64(n188)) i-- - dAtA[i] = 0x3a - n189, err189 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BearerTokenExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BearerTokenExpires):]) + dAtA[i] = 0x42 + n189, err189 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) if err189 != nil { return 0, err189 } i -= n189 i = encodeVarintTypes(dAtA, i, uint64(n189)) i-- + dAtA[i] = 0x3a + n190, err190 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BearerTokenExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BearerTokenExpires):]) + if err190 != nil { + return 0, err190 + } + i -= n190 + i = encodeVarintTypes(dAtA, i, uint64(n190)) + i-- dAtA[i] = 0x32 if len(m.BearerToken) > 0 { i -= len(m.BearerToken) @@ -29141,21 +29251,21 @@ func (m *SAMLSessionData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - n190, err190 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExpireTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.ExpireTime):]) - if err190 != nil { - return 0, err190 - } - i -= n190 - i = encodeVarintTypes(dAtA, i, uint64(n190)) - i-- - dAtA[i] = 0x1a - n191, err191 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CreateTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CreateTime):]) + n191, err191 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExpireTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.ExpireTime):]) if err191 != nil { return 0, err191 } i -= n191 i = encodeVarintTypes(dAtA, i, uint64(n191)) i-- + dAtA[i] = 0x1a + n192, err192 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CreateTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CreateTime):]) + if err192 != nil { + return 0, err192 + } + i -= n192 + i = encodeVarintTypes(dAtA, i, uint64(n192)) + i-- dAtA[i] = 0x12 if len(m.ID) > 0 { i -= len(m.ID) @@ -29436,12 +29546,12 @@ func (m *RemoteClusterStatusV3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n195, err195 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) - if err195 != nil { - return 0, err195 + n196, err196 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) + if err196 != nil { + return 0, err196 } - i -= n195 - i = encodeVarintTypes(dAtA, i, uint64(n195)) + i -= n196 + i = encodeVarintTypes(dAtA, i, uint64(n196)) i-- dAtA[i] = 0x12 if len(m.Connection) > 0 { @@ -31725,12 +31835,12 @@ func (m *GithubAuthRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x62 } if m.Expires != nil { - n224, err224 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) - if err224 != nil { - return 0, err224 + n225, err225 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) + if err225 != nil { + return 0, err225 } - i -= n224 - i = encodeVarintTypes(dAtA, i, uint64(n224)) + i -= n225 + i = encodeVarintTypes(dAtA, i, uint64(n225)) i-- dAtA[i] = 0x5a } @@ -32742,21 +32852,21 @@ func (m *LockSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x2a } - n242, err242 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CreatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CreatedAt):]) - if err242 != nil { - return 0, err242 + n243, err243 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CreatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CreatedAt):]) + if err243 != nil { + return 0, err243 } - i -= n242 - i = encodeVarintTypes(dAtA, i, uint64(n242)) + i -= n243 + i = encodeVarintTypes(dAtA, i, uint64(n243)) i-- dAtA[i] = 0x22 if m.Expires != nil { - n243, err243 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) - if err243 != nil { - return 0, err243 + n244, err244 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) + if err244 != nil { + return 0, err244 } - i -= n243 - i = encodeVarintTypes(dAtA, i, uint64(n243)) + i -= n244 + i = encodeVarintTypes(dAtA, i, uint64(n244)) i-- dAtA[i] = 0x1a } @@ -33302,12 +33412,12 @@ func (m *RegisterUsingTokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro copy(dAtA[i:], m.XXX_unrecognized) } if m.Expires != nil { - n251, err251 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) - if err251 != nil { - return 0, err251 + n252, err252 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) + if err252 != nil { + return 0, err252 } - i -= n251 - i = encodeVarintTypes(dAtA, i, uint64(n251)) + i -= n252 + i = encodeVarintTypes(dAtA, i, uint64(n252)) i-- dAtA[i] = 0x62 } @@ -33487,12 +33597,12 @@ func (m *RecoveryCodesSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n254, err254 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err254 != nil { - return 0, err254 + n255, err255 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err255 != nil { + return 0, err255 } - i -= n254 - i = encodeVarintTypes(dAtA, i, uint64(n254)) + i -= n255 + i = encodeVarintTypes(dAtA, i, uint64(n255)) i-- dAtA[i] = 0x12 if len(m.Codes) > 0 { @@ -33852,21 +33962,21 @@ func (m *SessionTrackerSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x32 } - n258, err258 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err258 != nil { - return 0, err258 - } - i -= n258 - i = encodeVarintTypes(dAtA, i, uint64(n258)) - i-- - dAtA[i] = 0x2a - n259, err259 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + n259, err259 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) if err259 != nil { return 0, err259 } i -= n259 i = encodeVarintTypes(dAtA, i, uint64(n259)) i-- + dAtA[i] = 0x2a + n260, err260 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err260 != nil { + return 0, err260 + } + i -= n260 + i = encodeVarintTypes(dAtA, i, uint64(n260)) + i-- dAtA[i] = 0x22 if m.State != 0 { i = encodeVarintTypes(dAtA, i, uint64(m.State)) @@ -33969,12 +34079,12 @@ func (m *Participant) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n260, err260 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastActive, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastActive):]) - if err260 != nil { - return 0, err260 + n261, err261 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastActive, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastActive):]) + if err261 != nil { + return 0, err261 } - i -= n260 - i = encodeVarintTypes(dAtA, i, uint64(n260)) + i -= n261 + i = encodeVarintTypes(dAtA, i, uint64(n261)) i-- dAtA[i] = 0x22 if len(m.Mode) > 0 { @@ -34672,12 +34782,12 @@ func (m *ClusterAlertSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n273, err273 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err273 != nil { - return 0, err273 + n274, err274 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err274 != nil { + return 0, err274 } - i -= n273 - i = encodeVarintTypes(dAtA, i, uint64(n273)) + i -= n274 + i = encodeVarintTypes(dAtA, i, uint64(n274)) i-- dAtA[i] = 0x1a if len(m.Message) > 0 { @@ -34807,12 +34917,12 @@ func (m *AlertAcknowledgement) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n274, err274 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err274 != nil { - return 0, err274 + n275, err275 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err275 != nil { + return 0, err275 } - i -= n274 - i = encodeVarintTypes(dAtA, i, uint64(n274)) + i -= n275 + i = encodeVarintTypes(dAtA, i, uint64(n275)) i-- dAtA[i] = 0x22 if len(m.Reason) > 0 { @@ -35986,12 +36096,12 @@ func (m *PluginOAuth2AccessTokenCredentials) MarshalToSizedBuffer(dAtA []byte) ( i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n295, err295 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err295 != nil { - return 0, err295 + n296, err296 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err296 != nil { + return 0, err296 } - i -= n295 - i = encodeVarintTypes(dAtA, i, uint64(n295)) + i -= n296 + i = encodeVarintTypes(dAtA, i, uint64(n296)) i-- dAtA[i] = 0x1a if len(m.RefreshToken) > 0 { @@ -36779,21 +36889,21 @@ func (m *ScheduledAgentUpgradeWindow) MarshalToSizedBuffer(dAtA []byte) (int, er i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n309, err309 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Stop, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Stop):]) - if err309 != nil { - return 0, err309 - } - i -= n309 - i = encodeVarintTypes(dAtA, i, uint64(n309)) - i-- - dAtA[i] = 0x12 - n310, err310 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Start, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Start):]) + n310, err310 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Stop, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Stop):]) if err310 != nil { return 0, err310 } i -= n310 i = encodeVarintTypes(dAtA, i, uint64(n310)) i-- + dAtA[i] = 0x12 + n311, err311 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Start, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Start):]) + if err311 != nil { + return 0, err311 + } + i -= n311 + i = encodeVarintTypes(dAtA, i, uint64(n311)) + i-- dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -37219,12 +37329,12 @@ func (m *OktaAssignmentSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x30 } - n317, err317 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastTransition, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastTransition):]) - if err317 != nil { - return 0, err317 + n318, err318 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastTransition, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastTransition):]) + if err318 != nil { + return 0, err318 } - i -= n317 - i = encodeVarintTypes(dAtA, i, uint64(n317)) + i -= n318 + i = encodeVarintTypes(dAtA, i, uint64(n318)) i-- dAtA[i] = 0x2a if m.Status != 0 { @@ -37232,12 +37342,12 @@ func (m *OktaAssignmentSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x20 } - n318, err318 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CleanupTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CleanupTime):]) - if err318 != nil { - return 0, err318 + n319, err319 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CleanupTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CleanupTime):]) + if err319 != nil { + return 0, err319 } - i -= n318 - i = encodeVarintTypes(dAtA, i, uint64(n318)) + i -= n319 + i = encodeVarintTypes(dAtA, i, uint64(n319)) i-- dAtA[i] = 0x1a if len(m.Targets) > 0 { @@ -40322,6 +40432,30 @@ func (m *ProvisionTokenSpecV2Kubernetes) Size() (n int) { n += 1 + l + sovTypes(uint64(l)) } } + l = len(m.Type) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.StaticJWKS != nil { + l = m.StaticJWKS.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.JWKS) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -59828,6 +59962,157 @@ func (m *ProvisionTokenSpecV2Kubernetes) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + 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 ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = KubernetesJoinType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StaticJWKS", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StaticJWKS == nil { + m.StaticJWKS = &ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig{} + } + if err := m.StaticJWKS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StaticJWKSConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StaticJWKSConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JWKS", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + 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 ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.JWKS = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) From c2f4ecb20c2ff29918c74a96cdcdbf53895bbdbc Mon Sep 17 00:00:00 2001 From: Noah Date: Wed, 9 Aug 2023 17:49:53 +0100 Subject: [PATCH 03/22] Add validation for new fields on Provisiontoken --- api/types/provisioning.go | 52 ++++++++++++--- api/types/provisioning_test.go | 112 ++++++++++++++++++++++++++++++++- 2 files changed, 151 insertions(+), 13 deletions(-) diff --git a/api/types/provisioning.go b/api/types/provisioning.go index e3c35dabceebb..07ee2ec6d7dd2 100644 --- a/api/types/provisioning.go +++ b/api/types/provisioning.go @@ -85,6 +85,14 @@ func ValidateJoinMethod(method JoinMethod) error { return nil } +type KubernetesJoinType string + +var ( + KubernetesJoinTypeUnspecified KubernetesJoinType = "" + KubernetesJoinTypeInCluster KubernetesJoinType = "in_cluster" + KubernetesJoinTypeStaticJWKS KubernetesJoinType = "static_jwks" +) + // ProvisionToken is a provisioning token type ProvisionToken interface { ResourceWithOrigin @@ -265,7 +273,7 @@ func (p *ProvisionTokenV2) CheckAndSetDefaults() error { ) } if err := providerCfg.checkAndSetDefaults(); err != nil { - return trace.Wrap(err) + return trace.Wrap(err, "spec.kubernetes:") } case JoinMethodAzure: providerCfg := p.Spec.Azure @@ -575,26 +583,50 @@ func (a *ProvisionTokenSpecV2CircleCI) checkAndSetDefaults() error { func (a *ProvisionTokenSpecV2Kubernetes) checkAndSetDefaults() error { if len(a.Allow) == 0 { - return trace.BadParameter( - "the %q join method requires defined kubernetes allow rules", - JoinMethodKubernetes, - ) + return trace.BadParameter("allow: at least one rule must be set") } - for _, allowRule := range a.Allow { + for i, allowRule := range a.Allow { if allowRule.ServiceAccount == "" { return trace.BadParameter( - "the %q join method requires kubernetes allow rules with non-empty service account name", - JoinMethodKubernetes, + "allow[%d].service_account: name of service account must be set", + i, ) } if len(strings.Split(allowRule.ServiceAccount, ":")) != 2 { return trace.BadParameter( - `the %q join method service account rule format is "namespace:service_account", got %q instead`, - JoinMethodKubernetes, + `allow[%d].service_account: name of service account should be in format "namespace:service_account", got %q instead`, + i, allowRule.ServiceAccount, ) } } + + if a.Type == KubernetesJoinTypeUnspecified { + // For compatability with older resources which did not have a Type + // field we default to "in_cluster". + a.Type = KubernetesJoinTypeInCluster + } + switch a.Type { + case KubernetesJoinTypeInCluster: + if a.StaticJWKS != nil { + return trace.BadParameter("static_jwks: must not be set when type is %q", KubernetesJoinTypeInCluster) + } + case KubernetesJoinTypeStaticJWKS: + if a.StaticJWKS == nil { + return trace.BadParameter("static_jwks: must be set when type is %q", KubernetesJoinTypeStaticJWKS) + } + if a.StaticJWKS.JWKS == "" { + return trace.BadParameter("static_jwks.jwks: must be set when type is %q", KubernetesJoinTypeStaticJWKS) + } + // TODO(noah): Try and parse JWKS to fail early if malformatted? + default: + return trace.BadParameter( + "type: must be one of (%s), got %q", + apiutils.JoinStrings(JoinMethods, ", "), + a.Type, + ) + } + return nil } diff --git a/api/types/provisioning_test.go b/api/types/provisioning_test.go index e4466ebcacaf1..2f9925a71e27a 100644 --- a/api/types/provisioning_test.go +++ b/api/types/provisioning_test.go @@ -394,7 +394,7 @@ func TestProvisionTokenV2_CheckAndSetDefaults(t *testing.T) { expectedErr: &trace.BadParameterError{}, }, { - desc: "kubernetes valid", + desc: "kubernetes: in_cluster defaults", token: &ProvisionTokenV2{ Metadata: Metadata{ Name: "test", @@ -411,9 +411,115 @@ func TestProvisionTokenV2_CheckAndSetDefaults(t *testing.T) { }, }, }, + expected: &ProvisionTokenV2{ + Kind: "token", + Version: "v2", + Metadata: Metadata{ + Name: "test", + Namespace: "default", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Type: KubernetesJoinTypeInCluster, + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + { + ServiceAccount: "namespace:my-service-account", + }, + }, + }, + }, + }, + }, + { + desc: "kubernetes: valid in_cluster", + token: &ProvisionTokenV2{ + Metadata: Metadata{ + Name: "test", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Type: KubernetesJoinTypeInCluster, + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + { + ServiceAccount: "namespace:my-service-account", + }, + }, + }, + }, + }, + }, + { + desc: "kubernetes: valid static_jwks", + token: &ProvisionTokenV2{ + Metadata: Metadata{ + Name: "test", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Type: KubernetesJoinTypeStaticJWKS, + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + { + ServiceAccount: "namespace:my-service-account", + }, + }, + StaticJWKS: &ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig{ + JWKS: `{"keys":[{"use":"sig","kty":"RSA","kid":"-snip-","alg":"RS256","n":"-snip-","e":"-snip-"}]}`, + }, + }, + }, + }, + }, + { + desc: "kubernetes: missing static_jwks", + token: &ProvisionTokenV2{ + Metadata: Metadata{ + Name: "test", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Type: KubernetesJoinTypeStaticJWKS, + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + { + ServiceAccount: "namespace:my-service-account", + }, + }, + }, + }, + }, + expectedErr: &trace.BadParameterError{}, + }, + { + desc: "kubernetes: missing static_jwks.jwks", + token: &ProvisionTokenV2{ + Metadata: Metadata{ + Name: "test", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Type: KubernetesJoinTypeStaticJWKS, + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + { + ServiceAccount: "namespace:my-service-account", + }, + }, + StaticJWKS: &ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig{}, + }, + }, + }, + expectedErr: &trace.BadParameterError{}, }, { - desc: "kubernetes wrong service account name", + desc: "kubernetes: wrong service account name", token: &ProvisionTokenV2{ Metadata: Metadata{ Name: "test", @@ -433,7 +539,7 @@ func TestProvisionTokenV2_CheckAndSetDefaults(t *testing.T) { expectedErr: &trace.BadParameterError{}, }, { - desc: "kubernetes allow rule blank", + desc: "kubernetes: allow rule blank", token: &ProvisionTokenV2{ Metadata: Metadata{ Name: "test", From f7ceea0d81c8a369b8ea6285534f4354bbb4a422 Mon Sep 17 00:00:00 2001 From: Noah Date: Wed, 9 Aug 2023 17:58:19 +0100 Subject: [PATCH 04/22] SPAG --- api/types/provisioning.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/types/provisioning.go b/api/types/provisioning.go index 07ee2ec6d7dd2..58eb4b59b2c02 100644 --- a/api/types/provisioning.go +++ b/api/types/provisioning.go @@ -602,7 +602,7 @@ func (a *ProvisionTokenSpecV2Kubernetes) checkAndSetDefaults() error { } if a.Type == KubernetesJoinTypeUnspecified { - // For compatability with older resources which did not have a Type + // For compatibility with older resources which did not have a Type // field we default to "in_cluster". a.Type = KubernetesJoinTypeInCluster } From 2a4c5ecd7611528947415ffeb26932a4c973b517 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 10 Aug 2023 11:03:27 +0100 Subject: [PATCH 05/22] Add support into tbot for kubernetes join method --- lib/auth/bot.go | 3 ++- lib/tbot/config/config.go | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/auth/bot.go b/lib/auth/bot.go index 8418132a66c4d..459e8d502611d 100644 --- a/lib/auth/bot.go +++ b/lib/auth/bot.go @@ -266,13 +266,14 @@ func (s *Server) getBotUsers(ctx context.Context) ([]types.User, error) { // supportedBotJoinMethods should match SupportedJoinMethods declared in // lib/tbot/config var supportedBotJoinMethods = []types.JoinMethod{ - types.JoinMethodToken, types.JoinMethodAzure, types.JoinMethodCircleCI, types.JoinMethodGCP, types.JoinMethodGitHub, types.JoinMethodGitLab, types.JoinMethodIAM, + types.JoinMethodKubernetes, + types.JoinMethodToken, } // checkOrCreateBotToken checks the existing token if given, or creates a new diff --git a/lib/tbot/config/config.go b/lib/tbot/config/config.go index 62e5fa4c04b10..906cfe24b5d0c 100644 --- a/lib/tbot/config/config.go +++ b/lib/tbot/config/config.go @@ -44,20 +44,21 @@ const ( ) var SupportedJoinMethods = []string{ - string(types.JoinMethodToken), string(types.JoinMethodAzure), string(types.JoinMethodCircleCI), string(types.JoinMethodGCP), string(types.JoinMethodGitHub), string(types.JoinMethodGitLab), string(types.JoinMethodIAM), + string(types.JoinMethodKubernetes), + string(types.JoinMethodToken), } var log = logrus.WithFields(logrus.Fields{ trace.Component: teleport.ComponentTBot, }) -// RemainingArgs is a custom kingpin parser that consumes all remaining +// RemainingArgsList is a custom kingpin parser that consumes all remaining // arguments. type RemainingArgsList []string From d780f60b6da6ea4ba1b9c7bb97a0f2220a5fdb29 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 10 Aug 2023 12:07:00 +0100 Subject: [PATCH 06/22] Wire static_jwks implementation into auth.Server.checkKubernetesJoinRequest --- lib/auth/join.go | 4 +- lib/auth/join_kubernetes.go | 71 +++++++++++++++++--------- lib/kubernetestoken/token_validator.go | 31 +++++++---- 3 files changed, 72 insertions(+), 34 deletions(-) diff --git a/lib/auth/join.go b/lib/auth/join.go index 08b714860ad39..0f107b63dca9f 100644 --- a/lib/auth/join.go +++ b/lib/auth/join.go @@ -139,9 +139,11 @@ func (a *Server) RegisterUsingToken(ctx context.Context, req *types.RegisterUsin } joinAttributeSrc = claims case types.JoinMethodKubernetes: - if err := a.checkKubernetesJoinRequest(ctx, req); err != nil { + claims, err := a.checkKubernetesJoinRequest(ctx, req) + if err != nil { return nil, trace.Wrap(err) } + joinAttributeSrc = claims case types.JoinMethodGCP: claims, err := a.checkGCPJoinRequest(ctx, req) if err != nil { diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go index 028cc5c48c5c9..d373b71722258 100644 --- a/lib/auth/join_kubernetes.go +++ b/lib/auth/join_kubernetes.go @@ -20,49 +20,74 @@ import ( "context" "fmt" - "github.com/gravitational/trace" - "github.com/sirupsen/logrus" - v1 "k8s.io/api/authentication/v1" - "github.com/gravitational/teleport/api/types" "github.com/gravitational/teleport/lib/kubernetestoken" + "github.com/gravitational/trace" + "github.com/sirupsen/logrus" ) type kubernetesTokenValidator interface { - Validate(context.Context, string) (*v1.UserInfo, error) + Validate(context.Context, string) (*kubernetestoken.ServiceAccountClaims, error) } -func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.RegisterUsingTokenRequest) error { +func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.RegisterUsingTokenRequest) (*kubernetestoken.ServiceAccountClaims, error) { if req.IDToken == "" { - return trace.BadParameter("IDToken not provided for Kubernetes join request") + return nil, trace.BadParameter("IDToken not provided for Kubernetes join request") } - pt, err := a.GetToken(ctx, req.Token) + unversionedToken, err := a.GetToken(ctx, req.Token) if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) + } + token, ok := unversionedToken.(*types.ProvisionTokenV2) + if !ok { + return nil, trace.BadParameter( + "kubernetes join method only supports ProvisionTokenV2, '%T' was provided", + unversionedToken, + ) } - userInfo, err := a.kubernetesTokenValidator.Validate(ctx, req.IDToken) - if err != nil { - return trace.WrapWithMessage(err, "failed to validate the Kubernetes token") + // Switch to join method subtype token validation. + var claims *kubernetestoken.ServiceAccountClaims + switch token.Spec.Kubernetes.Type { + case types.KubernetesJoinTypeStaticJWKS: + clusterName, err := a.GetDomainName() + if err != nil { + return nil, trace.Wrap(err) + } + claims, err = kubernetestoken.ValidateTokenWithJWKS( + a.clock.Now(), + []byte(token.Spec.Kubernetes.StaticJWKS.JWKS), + clusterName, + req.IDToken, + ) + if err != nil { + return nil, trace.WrapWithMessage(err, "reviewing kubernetes token with static_jwks") + } + case types.KubernetesJoinTypeInCluster, types.KubernetesJoinTypeUnspecified: + claims, err = a.kubernetesTokenValidator.Validate(ctx, req.IDToken) + if err != nil { + return nil, trace.WrapWithMessage(err, "reviewing kubernetes token with in_cluster") + } + default: + return nil, trace.BadParameter( + "unsupported kubernetes join method type (%s)", + token.Spec.Kubernetes.Type, + ) } log.WithFields(logrus.Fields{ - "userInfo": userInfo, - "token": pt.GetName(), + "claims": claims, + "token": token.GetName(), }).Info("Kubernetes workload trying to join cluster") - return trace.Wrap(checkKubernetesAllowRules(pt, userInfo)) + return claims, trace.Wrap(checkKubernetesAllowRules(token, claims)) } -func checkKubernetesAllowRules(pt types.ProvisionToken, userInfo *v1.UserInfo) error { - token, ok := pt.(*types.ProvisionTokenV2) - if !ok { - return trace.BadParameter("kubernetes join method only supports ProvisionTokenV2, '%T' was provided", pt) - } - +func checkKubernetesAllowRules(pt *types.ProvisionTokenV2, got *kubernetestoken.ServiceAccountClaims) error { // If a single rule passes, accept the token - for _, rule := range token.Spec.Kubernetes.Allow { - if fmt.Sprintf("%s:%s", kubernetestoken.ServiceAccountNamePrefix, rule.ServiceAccount) != userInfo.Username { + for _, rule := range pt.Spec.Kubernetes.Allow { + wantSubject := fmt.Sprintf("%s:%s", kubernetestoken.ServiceAccountNamePrefix, rule.ServiceAccount) + if wantSubject != got.Subject { continue } return nil diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index 1a43be993a2c7..9efc40baab79b 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -75,7 +75,7 @@ func (v *TokenReviewValidator) getClient() (kubernetes.Interface, error) { } // Validate uses the Kubernetes TokenReview API to validate a token and return its UserInfo -func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*v1.UserInfo, error) { +func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*ServiceAccountClaims, error) { client, err := v.getClient() if err != nil { return nil, trace.Wrap(err) @@ -129,7 +129,19 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*v1. ) } - return &reviewResult.Status.User, nil + // Now we've validated the token with TokenReview, we can just unmarshal + // the jwt claims. This lets us return something that's consistent with what + // is returned by the JWKS based method. + jwt, err := josejwt.ParseSigned(token) + if err != nil { + return nil, trace.Wrap(err, "parsing jwt") + } + claims := ServiceAccountClaims{} + if err := jwt.UnsafeClaimsWithoutVerification(&claims); err != nil { + return nil, trace.Wrap(err, "unmarshaling jwt signature") + } + + return &claims, nil } func kubernetesSupportsBoundTokens(gitVersion string) (bool, error) { @@ -151,9 +163,9 @@ func kubernetesSupportsBoundTokens(gitVersion string) (bool, error) { func ValidateTokenWithJWKS( now time.Time, jwksData []byte, - expectAudience string, + clusterName string, token string, -) (*ServiceAccountTokenClaims, error) { +) (*ServiceAccountClaims, error) { jwt, err := josejwt.ParseSigned(token) if err != nil { return nil, trace.Wrap(err, "parsing jwt") @@ -164,7 +176,7 @@ func ValidateTokenWithJWKS( return nil, trace.Wrap(err, "parsing provided jwks") } - claims := ServiceAccountTokenClaims{} + claims := ServiceAccountClaims{} if err := jwt.Claims(jwks, &claims); err != nil { return nil, trace.Wrap(err, "validating jwt signature") } @@ -174,7 +186,7 @@ func ValidateTokenWithJWKS( // Anything related to matching the token against ProvisionToken // allow rules is left to the discretion of `lib/auth`. Audience: []string{ - expectAudience, + clusterName, }, Time: now, }, time.Minute) @@ -201,20 +213,19 @@ type KubernetesSubClaim struct { Pod *PodSubClaim `json:"pod"` } -type ServiceAccountTokenClaims struct { +type ServiceAccountClaims struct { josejwt.Claims - Sub string `json:"sub"` - Issuer string `json:"issuer"` Kubernetes *KubernetesSubClaim `json:"kubernetes.io"` } // JoinAuditAttributes returns a series of attributes that can be inserted into // audit events related to a specific join. -func (c *ServiceAccountTokenClaims) JoinAuditAttributes() (map[string]interface{}, error) { +func (c *ServiceAccountClaims) JoinAuditAttributes() (map[string]interface{}, error) { res := map[string]interface{}{} d, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{ TagName: "json", Result: &res, + Squash: true, }) if err != nil { return nil, trace.Wrap(err) From efd6268db1f288b0feb7031e861dfed5daaf6193 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 10 Aug 2023 12:34:14 +0100 Subject: [PATCH 07/22] fix-imports --- lib/auth/join_kubernetes.go | 5 +++-- lib/kubernetestoken/token_validator.go | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go index d373b71722258..54bb33d379db5 100644 --- a/lib/auth/join_kubernetes.go +++ b/lib/auth/join_kubernetes.go @@ -20,10 +20,11 @@ import ( "context" "fmt" - "github.com/gravitational/teleport/api/types" - "github.com/gravitational/teleport/lib/kubernetestoken" "github.com/gravitational/trace" "github.com/sirupsen/logrus" + + "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/lib/kubernetestoken" ) type kubernetesTokenValidator interface { diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index 9efc40baab79b..4e668fa8672bd 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -19,15 +19,15 @@ package kubernetestoken import ( "context" "encoding/json" - "github.com/mitchellh/mapstructure" - "gopkg.in/square/go-jose.v2" - josejwt "gopkg.in/square/go-jose.v2/jwt" "strings" "sync" "time" "github.com/gravitational/trace" + "github.com/mitchellh/mapstructure" "golang.org/x/exp/slices" + "gopkg.in/square/go-jose.v2" + josejwt "gopkg.in/square/go-jose.v2/jwt" v1 "k8s.io/api/authentication/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/version" From 5235279161a5377144ccfeeb184007ea4c84c6ed Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 10 Aug 2023 16:34:05 +0100 Subject: [PATCH 08/22] Add JWKS tests for `kubernetestoken` --- lib/auth/join_kubernetes_test.go | 24 ++-- lib/kubernetestoken/token_validator.go | 3 +- lib/kubernetestoken/token_validator_test.go | 138 +++++++++++++++++++- 3 files changed, 147 insertions(+), 18 deletions(-) diff --git a/lib/auth/join_kubernetes_test.go b/lib/auth/join_kubernetes_test.go index 0d27aacb366fb..66defc73ffede 100644 --- a/lib/auth/join_kubernetes_test.go +++ b/lib/auth/join_kubernetes_test.go @@ -18,38 +18,38 @@ package auth import ( "context" + "github.com/gravitational/teleport/lib/kubernetestoken" + josejwt "gopkg.in/square/go-jose.v2/jwt" "testing" "time" - "github.com/gravitational/trace" - "github.com/stretchr/testify/require" - v1 "k8s.io/api/authentication/v1" - "github.com/gravitational/teleport/api/types" "github.com/gravitational/teleport/lib/auth/testauthority" + "github.com/gravitational/trace" + "github.com/stretchr/testify/require" ) type mockKubernetesTokenValidator struct { - tokens map[string]v1.UserInfo + tokens map[string]*kubernetestoken.ServiceAccountClaims } -func (m *mockKubernetesTokenValidator) Validate(_ context.Context, token string) (*v1.UserInfo, error) { - userInfo, ok := m.tokens[token] +func (m *mockKubernetesTokenValidator) Validate(_ context.Context, token string) (*kubernetestoken.ServiceAccountClaims, error) { + claims, ok := m.tokens[token] if !ok { return nil, errMockInvalidToken } - return &userInfo, nil + return claims, nil } func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { // Test setup // Creating an auth server with mock Kubernetes token validator - tokens := map[string]v1.UserInfo{ - "matching-first-rule-token1": {Username: "system:serviceaccount:namespace1:service-account1"}, - "matching-second-rule-token2": {Username: "system:serviceaccount:namespace2:service-account2"}, - "user-token": {Username: "namespace1:service-account1"}, + tokens := map[string]*kubernetestoken.ServiceAccountClaims{ + "matching-first-rule-token1": {Claims: josejwt.Claims{Subject: "system:serviceaccount:namespace1:service-account1"}}, + "matching-second-rule-token2": {Claims: josejwt.Claims{Subject: "system:serviceaccount:namespace2:service-account2"}}, + "user-token": {Claims: josejwt.Claims{Subject: "namespace1:service-account1"}}, } var withTokenValidator ServerOption = func(server *Server) error { diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index 4e668fa8672bd..6220377f30afd 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -181,6 +181,7 @@ func ValidateTokenWithJWKS( return nil, trace.Wrap(err, "validating jwt signature") } + leeway := time.Second * 10 err = claims.ValidateWithLeeway(josejwt.Expected{ // We don't need to check the subject or other claims here. // Anything related to matching the token against ProvisionToken @@ -189,7 +190,7 @@ func ValidateTokenWithJWKS( clusterName, }, Time: now, - }, time.Minute) + }, leeway) if err != nil { return nil, trace.Wrap(err, "validating jwt claims") } diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 4aeb0ed1cbc7a..735e0e0588861 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -18,7 +18,13 @@ package kubernetestoken import ( "context" + "crypto/rand" + "crypto/rsa" + "encoding/json" + "gopkg.in/square/go-jose.v2" + "gopkg.in/square/go-jose.v2/jwt" "testing" + "time" "github.com/gravitational/trace" "github.com/stretchr/testify/assert" @@ -213,13 +219,13 @@ func TestIDTokenValidator_Validate(t *testing.T) { v := TokenReviewValidator{ client: client, } - userInfo, err := v.Validate(context.Background(), tt.token) - if tt.expectedError == nil { - require.NoError(t, err) - require.Equal(t, tt.review.Status.User, *userInfo) - } else { + claims, err := v.Validate(context.Background(), tt.token) + if tt.expectedError != nil { require.ErrorIs(t, err, tt.expectedError) + return } + require.NoError(t, err) + require.Equal(t, tt.review.Status.User, *claims) }) } } @@ -258,3 +264,125 @@ func Test_kubernetesSupportsBoundTokens(t *testing.T) { }) } } + +func testSigner(t *testing.T) ([]byte, jose.Signer) { + key, err := rsa.GenerateKey(rand.Reader, 2048) + require.NoError(t, err) + signer, err := jose.NewSigner( + jose.SigningKey{Algorithm: jose.RS256, Key: key}, + (&jose.SignerOptions{}). + WithType("JWT"). + WithHeader("kid", "foo"), + ) + require.NoError(t, err) + + jwks := jose.JSONWebKeySet{Keys: []jose.JSONWebKey{ + { + Key: key.Public(), + Use: "sig", + Algorithm: string(jose.RS256), + KeyID: "foo", + }, + }} + jwksData, err := json.Marshal(jwks) + require.NoError(t, err) + return jwksData, signer +} + +func TestValidateTokenWithJWKS(t *testing.T) { + jwks, signer := testSigner(t) + // match kid of right key + _, wrongSigner := testSigner(t) + + now := time.Now() + clusterName := "example.teleport.sh" + tests := []struct { + name string + signer jose.Signer + claims *ServiceAccountClaims + wantErr string + }{ + { + name: "valid", + signer: signer, + claims: &ServiceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{clusterName}, + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Second)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Second)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Second)), + }, + Kubernetes: &KubernetesSubClaim{ + ServiceAccount: &ServiceAccountSubClaim{ + Name: "my-service-account", + UID: "8b77ea6d-3144-4203-9a8b-36eb5ad65596", + }, + Pod: &PodSubClaim{ + Name: "my-pod-797959fdf-wptbj", + UID: "413b22ca-4833-48d9-b6db-76219d583173", + }, + Namespace: "default", + }, + }, + }, + { + name: "signed by unknown key", + signer: wrongSigner, + claims: &ServiceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{clusterName}, + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Second)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Second)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Second)), + }, + }, + wantErr: "error in cryptographic primitive", + }, + { + name: "expired", + signer: signer, + claims: &ServiceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{clusterName}, + IssuedAt: jwt.NewNumericDate(now.Add(-2 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-2 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + }, + }, + wantErr: "token is expired", + }, + { + name: "wrong audience", + signer: signer, + claims: &ServiceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{"wrong.audience"}, + IssuedAt: jwt.NewNumericDate(now.Add(-2 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-2 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + }, + }, + wantErr: "invalid audience claim", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + token, err := jwt.Signed(tt.signer).Claims(tt.claims).CompactSerialize() + require.NoError(t, err) + + claims, err := ValidateTokenWithJWKS( + now, jwks, clusterName, token, + ) + if tt.wantErr != "" { + require.ErrorContains(t, err, tt.wantErr) + return + } + require.NoError(t, err) + require.Equal(t, tt.claims, claims) + }) + } +} From 122fdac29d2d192ce5b2ec444f2f78df4ed77bb7 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 10 Aug 2023 16:58:49 +0100 Subject: [PATCH 09/22] Fix TestIDTokenValidator_Validate --- lib/kubernetestoken/token_source.go | 4 +- lib/kubernetestoken/token_source_test.go | 8 +-- lib/kubernetestoken/token_validator.go | 20 +++---- lib/kubernetestoken/token_validator_test.go | 64 ++++++++++++++------- 4 files changed, 58 insertions(+), 38 deletions(-) diff --git a/lib/kubernetestoken/token_source.go b/lib/kubernetestoken/token_source.go index 321e07c8e4022..923a5ee1fc68e 100644 --- a/lib/kubernetestoken/token_source.go +++ b/lib/kubernetestoken/token_source.go @@ -22,14 +22,14 @@ import ( "github.com/gravitational/trace" ) -const kubernetesDefaultTokenPath = "/var/run/secrets/kubernetes.io/serviceaccount/token" +const kubernetesDefaultTokenPath = "/var/run/secrets/kubernetes.io/serviceaccount/name" type getEnvFunc func(key string) string type readFileFunc func(name string) ([]byte, error) func GetIDToken(getEnv getEnvFunc, readFile readFileFunc) (string, error) { // We check if we should use a custom location instead of the default one. This env var is not standard. - // This is useful when the operator wants to use a custom projected token, or another service account. + // This is useful when the operator wants to use a custom projected name, or another service account. path := kubernetesDefaultTokenPath if customPath := getEnv("KUBERNETES_TOKEN_PATH"); customPath != "" { path = customPath diff --git a/lib/kubernetestoken/token_source_test.go b/lib/kubernetestoken/token_source_test.go index 0d0a67a613776..12f85b7724b84 100644 --- a/lib/kubernetestoken/token_source_test.go +++ b/lib/kubernetestoken/token_source_test.go @@ -60,21 +60,21 @@ func TestGetIDToken(t *testing.T) { assertError require.ErrorAssertionFunc }{ { - name: "default-token-no-var", + name: "default-name-no-var", getEnv: fakeGetEnv(""), readFile: fakeReadFile("foobarbizz", kubernetesDefaultTokenPath), wantString: "foobarbizz", assertError: require.NoError, }, { - name: "custom-token-with-var", + name: "custom-name-with-var", getEnv: fakeGetEnv("/custom"), readFile: fakeReadFile("foobarbizz", "/custom"), wantString: "foobarbizz", assertError: require.NoError, }, { - name: "no-token-no-var", + name: "no-name-no-var", getEnv: fakeGetEnv(""), readFile: fakeReadFile("foobarbizz", "/custom"), assertError: func(t require.TestingT, err error, i ...interface{}) { @@ -82,7 +82,7 @@ func TestGetIDToken(t *testing.T) { }, }, { - name: "no-token-with-var", + name: "no-name-with-var", getEnv: fakeGetEnv("/custom"), readFile: fakeReadFile("foobarbizz", kubernetesDefaultTokenPath), assertError: func(t require.TestingT, err error, i ...interface{}) { diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index 6220377f30afd..06c935d714a50 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -74,7 +74,7 @@ func (v *TokenReviewValidator) getClient() (kubernetes.Interface, error) { return client, nil } -// Validate uses the Kubernetes TokenReview API to validate a token and return its UserInfo +// Validate uses the Kubernetes TokenReview API to validate a name and return its UserInfo func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*ServiceAccountClaims, error) { client, err := v.getClient() if err != nil { @@ -94,21 +94,21 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser } if !reviewResult.Status.Authenticated { - return nil, trace.AccessDenied("kubernetes failed to validate token: %s", reviewResult.Status.Error) + return nil, trace.AccessDenied("kubernetes failed to validate name: %s", reviewResult.Status.Error) } // Check the Username is a service account. - // A user token would not match rules anyway, but we can produce a more relevant error message here. + // A user name would not match rules anyway, but we can produce a more relevant error message here. if !strings.HasPrefix(reviewResult.Status.User.Username, ServiceAccountNamePrefix) { - return nil, trace.BadParameter("token user is not a service account: %s", reviewResult.Status.User.Username) + return nil, trace.BadParameter("name user is not a service account: %s", reviewResult.Status.User.Username) } if !slices.Contains(reviewResult.Status.User.Groups, serviceAccountGroup) { - return nil, trace.BadParameter("token user '%s' does not belong to the '%s' group", reviewResult.Status.User.Username, serviceAccountGroup) + return nil, trace.BadParameter("name user '%s' does not belong to the '%s' group", reviewResult.Status.User.Username, serviceAccountGroup) } // Legacy tokens are long-lived and not bound to pods. We should not accept them if the cluster supports - // bound tokens. Bound token support is GA since 1.20 and volume projection is beta since 1.21. + // bound tokens. Bound name support is GA since 1.20 and volume projection is beta since 1.21. // We can expect any 1.21+ cluster to use bound tokens. kubeVersion, err := client.Discovery().ServerVersion() if err != nil { @@ -120,8 +120,8 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser return nil, trace.Wrap(err) } - // We know if the token is bound to a pod if its name is in the Extra userInfo. - // If the token is not bound while Kubernetes supports bound tokens we abort. + // We know if the name is bound to a pod if its name is in the Extra userInfo. + // If the name is not bound while Kubernetes supports bound tokens we abort. if _, ok := reviewResult.Status.User.Extra[extraDataPodNameField]; !ok && boundTokenSupport { return nil, trace.BadParameter( "legacy SA tokens are not accepted as kubernetes version %s supports bound tokens", @@ -129,7 +129,7 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser ) } - // Now we've validated the token with TokenReview, we can just unmarshal + // Now we've validated the name with TokenReview, we can just unmarshal // the jwt claims. This lets us return something that's consistent with what // is returned by the JWKS based method. jwt, err := josejwt.ParseSigned(token) @@ -184,7 +184,7 @@ func ValidateTokenWithJWKS( leeway := time.Second * 10 err = claims.ValidateWithLeeway(josejwt.Expected{ // We don't need to check the subject or other claims here. - // Anything related to matching the token against ProvisionToken + // Anything related to matching the name against ProvisionToken // allow rules is left to the discretion of `lib/auth`. Audience: []string{ clusterName, diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 735e0e0588861..7b6128e56a51b 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -88,17 +88,37 @@ func (c *fakeClientSet) Discovery() discovery.DiscoveryInterface { } func TestIDTokenValidator_Validate(t *testing.T) { + _, signer := testSigner(t) + claims := &ServiceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + }, + Kubernetes: &KubernetesSubClaim{ + ServiceAccount: &ServiceAccountSubClaim{ + Name: "my-service-account", + UID: "8b77ea6d-3144-4203-9a8b-36eb5ad65596", + }, + Pod: &PodSubClaim{ + Name: "my-pod-797959fdf-wptbj", + UID: "413b22ca-4833-48d9-b6db-76219d583173", + }, + Namespace: "default", + }, + } + token, err := jwt.Signed(signer).Claims(claims).CompactSerialize() + require.NoError(t, err) + tests := []struct { - token string + name string review *v1.TokenReview kubeVersion *version.Info expectedError error }{ { - token: "valid", + name: "valid", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: "valid", + Token: token, }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -117,10 +137,10 @@ func TestIDTokenValidator_Validate(t *testing.T) { expectedError: nil, }, { - token: "valid-not-bound", + name: "valid-not-bound", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: "valid-not-bound", + Token: token, }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -136,10 +156,10 @@ func TestIDTokenValidator_Validate(t *testing.T) { expectedError: nil, }, { - token: "valid-not-bound-on-modern-version", + name: "valid-not-bound-on-modern-version", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: "valid-not-bound-on-modern-version", + Token: token, }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -158,10 +178,10 @@ func TestIDTokenValidator_Validate(t *testing.T) { ), }, { - token: "valid-but-not-serviceaccount", + name: "valid-but-not-serviceaccount", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: "valid-but-not-serviceaccount", + Token: token, }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -174,13 +194,13 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, }, kubeVersion: &boundTokenKubernetesVersion, - expectedError: trace.BadParameter("token user is not a service account: eve@example.com"), + expectedError: trace.BadParameter("name user is not a service account: eve@example.com"), }, { - token: "valid-but-not-serviceaccount-group", + name: "valid-but-not-serviceaccount-group", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: "valid-but-not-serviceaccount-group", + Token: token, }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -193,39 +213,39 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, }, kubeVersion: &boundTokenKubernetesVersion, - expectedError: trace.BadParameter("token user 'system:serviceaccount:namespace:my-service-account' does not belong to the 'system:serviceaccounts' group"), + expectedError: trace.BadParameter("name user 'system:serviceaccount:namespace:my-service-account' does not belong to the 'system:serviceaccounts' group"), }, { - token: "invalid-expired", + name: "invalid-expired", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: "invalid-expired", + Token: token, }, Status: v1.TokenReviewStatus{ Authenticated: false, - Error: "[invalid bearer token, Token has been invalidated, unknown]", + Error: "[invalid bearer name, Token has been invalidated, unknown]", }, }, kubeVersion: &boundTokenKubernetesVersion, - expectedError: trace.AccessDenied("kubernetes failed to validate token: [invalid bearer token, Token has been invalidated, unknown]"), + expectedError: trace.AccessDenied("kubernetes failed to validate name: [invalid bearer name, Token has been invalidated, unknown]"), }, } for _, tt := range tests { tt := tt - t.Run(tt.token, func(t *testing.T) { + t.Run(tt.name, func(t *testing.T) { client := newFakeClientset(tt.kubeVersion) client.AddReactor("create", "tokenreviews", tokenReviewMock(t, tt.review)) v := TokenReviewValidator{ client: client, } - claims, err := v.Validate(context.Background(), tt.token) + gotClaims, err := v.Validate(context.Background(), tt.review.Spec.Token) if tt.expectedError != nil { require.ErrorIs(t, err, tt.expectedError) return } require.NoError(t, err) - require.Equal(t, tt.review.Status.User, *claims) + require.Equal(t, claims, gotClaims) }) } } @@ -238,7 +258,7 @@ func Test_kubernetesSupportsBoundTokens(t *testing.T) { expectErr assert.ErrorAssertionFunc }{ { - name: "No token support", + name: "No name support", gitVersion: legacyTokenKubernetesVersion.String(), supportBoundToken: false, expectErr: assert.NoError, @@ -352,7 +372,7 @@ func TestValidateTokenWithJWKS(t *testing.T) { Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), }, }, - wantErr: "token is expired", + wantErr: "name is expired", }, { name: "wrong audience", From 27380f8c1b3e83dd6e9b52486b2cdba4926c5105 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 10 Aug 2023 17:08:06 +0100 Subject: [PATCH 10/22] Ensure token is bound --- lib/kubernetestoken/token_source.go | 4 ++-- lib/kubernetestoken/token_source_test.go | 8 +++---- lib/kubernetestoken/token_validator.go | 24 ++++++++++++--------- lib/kubernetestoken/token_validator_test.go | 8 +++---- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/lib/kubernetestoken/token_source.go b/lib/kubernetestoken/token_source.go index 923a5ee1fc68e..321e07c8e4022 100644 --- a/lib/kubernetestoken/token_source.go +++ b/lib/kubernetestoken/token_source.go @@ -22,14 +22,14 @@ import ( "github.com/gravitational/trace" ) -const kubernetesDefaultTokenPath = "/var/run/secrets/kubernetes.io/serviceaccount/name" +const kubernetesDefaultTokenPath = "/var/run/secrets/kubernetes.io/serviceaccount/token" type getEnvFunc func(key string) string type readFileFunc func(name string) ([]byte, error) func GetIDToken(getEnv getEnvFunc, readFile readFileFunc) (string, error) { // We check if we should use a custom location instead of the default one. This env var is not standard. - // This is useful when the operator wants to use a custom projected name, or another service account. + // This is useful when the operator wants to use a custom projected token, or another service account. path := kubernetesDefaultTokenPath if customPath := getEnv("KUBERNETES_TOKEN_PATH"); customPath != "" { path = customPath diff --git a/lib/kubernetestoken/token_source_test.go b/lib/kubernetestoken/token_source_test.go index 12f85b7724b84..0d0a67a613776 100644 --- a/lib/kubernetestoken/token_source_test.go +++ b/lib/kubernetestoken/token_source_test.go @@ -60,21 +60,21 @@ func TestGetIDToken(t *testing.T) { assertError require.ErrorAssertionFunc }{ { - name: "default-name-no-var", + name: "default-token-no-var", getEnv: fakeGetEnv(""), readFile: fakeReadFile("foobarbizz", kubernetesDefaultTokenPath), wantString: "foobarbizz", assertError: require.NoError, }, { - name: "custom-name-with-var", + name: "custom-token-with-var", getEnv: fakeGetEnv("/custom"), readFile: fakeReadFile("foobarbizz", "/custom"), wantString: "foobarbizz", assertError: require.NoError, }, { - name: "no-name-no-var", + name: "no-token-no-var", getEnv: fakeGetEnv(""), readFile: fakeReadFile("foobarbizz", "/custom"), assertError: func(t require.TestingT, err error, i ...interface{}) { @@ -82,7 +82,7 @@ func TestGetIDToken(t *testing.T) { }, }, { - name: "no-name-with-var", + name: "no-token-with-var", getEnv: fakeGetEnv("/custom"), readFile: fakeReadFile("foobarbizz", kubernetesDefaultTokenPath), assertError: func(t require.TestingT, err error, i ...interface{}) { diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index 06c935d714a50..e17add848d6cb 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -74,7 +74,7 @@ func (v *TokenReviewValidator) getClient() (kubernetes.Interface, error) { return client, nil } -// Validate uses the Kubernetes TokenReview API to validate a name and return its UserInfo +// Validate uses the Kubernetes TokenReview API to validate a token and return its UserInfo func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*ServiceAccountClaims, error) { client, err := v.getClient() if err != nil { @@ -94,21 +94,21 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser } if !reviewResult.Status.Authenticated { - return nil, trace.AccessDenied("kubernetes failed to validate name: %s", reviewResult.Status.Error) + return nil, trace.AccessDenied("kubernetes failed to validate token: %s", reviewResult.Status.Error) } // Check the Username is a service account. - // A user name would not match rules anyway, but we can produce a more relevant error message here. + // A user token would not match rules anyway, but we can produce a more relevant error message here. if !strings.HasPrefix(reviewResult.Status.User.Username, ServiceAccountNamePrefix) { - return nil, trace.BadParameter("name user is not a service account: %s", reviewResult.Status.User.Username) + return nil, trace.BadParameter("token user is not a service account: %s", reviewResult.Status.User.Username) } if !slices.Contains(reviewResult.Status.User.Groups, serviceAccountGroup) { - return nil, trace.BadParameter("name user '%s' does not belong to the '%s' group", reviewResult.Status.User.Username, serviceAccountGroup) + return nil, trace.BadParameter("token user '%s' does not belong to the '%s' group", reviewResult.Status.User.Username, serviceAccountGroup) } // Legacy tokens are long-lived and not bound to pods. We should not accept them if the cluster supports - // bound tokens. Bound name support is GA since 1.20 and volume projection is beta since 1.21. + // bound tokens. Bound token support is GA since 1.20 and volume projection is beta since 1.21. // We can expect any 1.21+ cluster to use bound tokens. kubeVersion, err := client.Discovery().ServerVersion() if err != nil { @@ -120,8 +120,8 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser return nil, trace.Wrap(err) } - // We know if the name is bound to a pod if its name is in the Extra userInfo. - // If the name is not bound while Kubernetes supports bound tokens we abort. + // We know if the token is bound to a pod if its token is in the Extra userInfo. + // If the token is not bound while Kubernetes supports bound tokens we abort. if _, ok := reviewResult.Status.User.Extra[extraDataPodNameField]; !ok && boundTokenSupport { return nil, trace.BadParameter( "legacy SA tokens are not accepted as kubernetes version %s supports bound tokens", @@ -129,7 +129,7 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser ) } - // Now we've validated the name with TokenReview, we can just unmarshal + // Now we've validated the token with TokenReview, we can just unmarshal // the jwt claims. This lets us return something that's consistent with what // is returned by the JWKS based method. jwt, err := josejwt.ParseSigned(token) @@ -184,7 +184,7 @@ func ValidateTokenWithJWKS( leeway := time.Second * 10 err = claims.ValidateWithLeeway(josejwt.Expected{ // We don't need to check the subject or other claims here. - // Anything related to matching the name against ProvisionToken + // Anything related to matching the token against ProvisionToken // allow rules is left to the discretion of `lib/auth`. Audience: []string{ clusterName, @@ -195,6 +195,10 @@ func ValidateTokenWithJWKS( return nil, trace.Wrap(err, "validating jwt claims") } + if claims.Kubernetes == nil || claims.Kubernetes.Pod == nil || claims.Kubernetes.Pod.Name == "" { + return nil, trace.BadParameter("static_jwks joining requires the use of projected pod bound service account token") + } + return &claims, nil } diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 7b6128e56a51b..51ce4ec5e5ea4 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -194,7 +194,7 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, }, kubeVersion: &boundTokenKubernetesVersion, - expectedError: trace.BadParameter("name user is not a service account: eve@example.com"), + expectedError: trace.BadParameter("token user is not a service account: eve@example.com"), }, { name: "valid-but-not-serviceaccount-group", @@ -213,7 +213,7 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, }, kubeVersion: &boundTokenKubernetesVersion, - expectedError: trace.BadParameter("name user 'system:serviceaccount:namespace:my-service-account' does not belong to the 'system:serviceaccounts' group"), + expectedError: trace.BadParameter("token user 'system:serviceaccount:namespace:my-service-account' does not belong to the 'system:serviceaccounts' group"), }, { name: "invalid-expired", @@ -223,11 +223,11 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, Status: v1.TokenReviewStatus{ Authenticated: false, - Error: "[invalid bearer name, Token has been invalidated, unknown]", + Error: "[invalid bearer token, Token has been invalidated, unknown]", }, }, kubeVersion: &boundTokenKubernetesVersion, - expectedError: trace.AccessDenied("kubernetes failed to validate name: [invalid bearer name, Token has been invalidated, unknown]"), + expectedError: trace.AccessDenied("kubernetes failed to validate token: [invalid bearer token, Token has been invalidated, unknown]"), }, } From d79272a71e2b900d99618a0cf873e766c71591c4 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 10 Aug 2023 17:09:57 +0100 Subject: [PATCH 11/22] Fix mistakenely renamed comments --- lib/kubernetestoken/token_validator.go | 2 +- lib/kubernetestoken/token_validator_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index e17add848d6cb..bd159cc916b1c 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -120,7 +120,7 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser return nil, trace.Wrap(err) } - // We know if the token is bound to a pod if its token is in the Extra userInfo. + // We know if the token is bound to a pod if its name is in the Extra userInfo. // If the token is not bound while Kubernetes supports bound tokens we abort. if _, ok := reviewResult.Status.User.Extra[extraDataPodNameField]; !ok && boundTokenSupport { return nil, trace.BadParameter( diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 51ce4ec5e5ea4..30a48be7dd18e 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -258,7 +258,7 @@ func Test_kubernetesSupportsBoundTokens(t *testing.T) { expectErr assert.ErrorAssertionFunc }{ { - name: "No name support", + name: "No token support", gitVersion: legacyTokenKubernetesVersion.String(), supportBoundToken: false, expectErr: assert.NoError, From 74b658cfef4a15cda89c3cbadf953019f1dd05da Mon Sep 17 00:00:00 2001 From: Noah Date: Fri, 11 Aug 2023 10:54:00 +0100 Subject: [PATCH 12/22] Tidier return type --- lib/auth/auth.go | 8 +- lib/auth/join_kubernetes.go | 24 ++-- lib/auth/join_kubernetes_test.go | 15 ++- lib/kubernetestoken/token_validator.go | 122 ++++++++++--------- lib/kubernetestoken/token_validator_test.go | 124 ++++++++++++-------- 5 files changed, 162 insertions(+), 131 deletions(-) diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 155eac47cdea6..70d3118981c75 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -377,8 +377,8 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) { ) } } - if as.kubernetesTokenValidator == nil { - as.kubernetesTokenValidator = &kubernetestoken.TokenReviewValidator{} + if as.k8sTokenReviewValidator == nil { + as.k8sTokenReviewValidator = &kubernetestoken.TokenReviewValidator{} } if as.gcpIDTokenValidator == nil { @@ -661,9 +661,9 @@ type Server struct { // the auth server. It can be overridden for the purpose of tests. circleCITokenValidate func(ctx context.Context, organizationID, token string) (*circleci.IDTokenClaims, error) - // kubernetesTokenValidator allows tokens from Kubernetes to be validated + // k8sTokenReviewValidator allows tokens from Kubernetes to be validated // by the auth server. It can be overridden for the purpose of tests. - kubernetesTokenValidator kubernetesTokenValidator + k8sTokenReviewValidator k8sTokenReviewValidator // gcpIDTokenValidator allows ID tokens from GCP to be validated by the auth // server. It can be overridden for the purpose of tests. diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go index 54bb33d379db5..4af40d25b1598 100644 --- a/lib/auth/join_kubernetes.go +++ b/lib/auth/join_kubernetes.go @@ -27,11 +27,11 @@ import ( "github.com/gravitational/teleport/lib/kubernetestoken" ) -type kubernetesTokenValidator interface { - Validate(context.Context, string) (*kubernetestoken.ServiceAccountClaims, error) +type k8sTokenReviewValidator interface { + Validate(context.Context, string) (*kubernetestoken.ValidationResult, error) } -func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.RegisterUsingTokenRequest) (*kubernetestoken.ServiceAccountClaims, error) { +func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.RegisterUsingTokenRequest) (*kubernetestoken.ValidationResult, error) { if req.IDToken == "" { return nil, trace.BadParameter("IDToken not provided for Kubernetes join request") } @@ -48,14 +48,14 @@ func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.Regi } // Switch to join method subtype token validation. - var claims *kubernetestoken.ServiceAccountClaims + var result *kubernetestoken.ValidationResult switch token.Spec.Kubernetes.Type { case types.KubernetesJoinTypeStaticJWKS: clusterName, err := a.GetDomainName() if err != nil { return nil, trace.Wrap(err) } - claims, err = kubernetestoken.ValidateTokenWithJWKS( + result, err = kubernetestoken.ValidateTokenWithJWKS( a.clock.Now(), []byte(token.Spec.Kubernetes.StaticJWKS.JWKS), clusterName, @@ -65,7 +65,7 @@ func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.Regi return nil, trace.WrapWithMessage(err, "reviewing kubernetes token with static_jwks") } case types.KubernetesJoinTypeInCluster, types.KubernetesJoinTypeUnspecified: - claims, err = a.kubernetesTokenValidator.Validate(ctx, req.IDToken) + result, err = a.k8sTokenReviewValidator.Validate(ctx, req.IDToken) if err != nil { return nil, trace.WrapWithMessage(err, "reviewing kubernetes token with in_cluster") } @@ -77,18 +77,18 @@ func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.Regi } log.WithFields(logrus.Fields{ - "claims": claims, - "token": token.GetName(), + "validated_identity": result, + "token": token.GetName(), }).Info("Kubernetes workload trying to join cluster") - return claims, trace.Wrap(checkKubernetesAllowRules(token, claims)) + return result, trace.Wrap(checkKubernetesAllowRules(token, result)) } -func checkKubernetesAllowRules(pt *types.ProvisionTokenV2, got *kubernetestoken.ServiceAccountClaims) error { +func checkKubernetesAllowRules(pt *types.ProvisionTokenV2, got *kubernetestoken.ValidationResult) error { // If a single rule passes, accept the token for _, rule := range pt.Spec.Kubernetes.Allow { - wantSubject := fmt.Sprintf("%s:%s", kubernetestoken.ServiceAccountNamePrefix, rule.ServiceAccount) - if wantSubject != got.Subject { + wantUsername := fmt.Sprintf("%s:%s", kubernetestoken.ServiceAccountNamePrefix, rule.ServiceAccount) + if wantUsername != got.Username { continue } return nil diff --git a/lib/auth/join_kubernetes_test.go b/lib/auth/join_kubernetes_test.go index 66defc73ffede..0f85b9191dbbe 100644 --- a/lib/auth/join_kubernetes_test.go +++ b/lib/auth/join_kubernetes_test.go @@ -19,7 +19,6 @@ package auth import ( "context" "github.com/gravitational/teleport/lib/kubernetestoken" - josejwt "gopkg.in/square/go-jose.v2/jwt" "testing" "time" @@ -30,10 +29,10 @@ import ( ) type mockKubernetesTokenValidator struct { - tokens map[string]*kubernetestoken.ServiceAccountClaims + tokens map[string]*kubernetestoken.ValidationResult } -func (m *mockKubernetesTokenValidator) Validate(_ context.Context, token string) (*kubernetestoken.ServiceAccountClaims, error) { +func (m *mockKubernetesTokenValidator) Validate(_ context.Context, token string) (*kubernetestoken.ValidationResult, error) { claims, ok := m.tokens[token] if !ok { return nil, errMockInvalidToken @@ -46,14 +45,14 @@ func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { // Test setup // Creating an auth server with mock Kubernetes token validator - tokens := map[string]*kubernetestoken.ServiceAccountClaims{ - "matching-first-rule-token1": {Claims: josejwt.Claims{Subject: "system:serviceaccount:namespace1:service-account1"}}, - "matching-second-rule-token2": {Claims: josejwt.Claims{Subject: "system:serviceaccount:namespace2:service-account2"}}, - "user-token": {Claims: josejwt.Claims{Subject: "namespace1:service-account1"}}, + tokens := map[string]*kubernetestoken.ValidationResult{ + "matching-first-rule-token1": {Username: "system:serviceaccount:namespace1:service-account1"}, + "matching-second-rule-token2": {Username: "system:serviceaccount:namespace2:service-account2"}, + "user-token": {Username: "namespace1:service-account1"}, } var withTokenValidator ServerOption = func(server *Server) error { - server.kubernetesTokenValidator = &mockKubernetesTokenValidator{tokens: tokens} + server.k8sTokenReviewValidator = &mockKubernetesTokenValidator{tokens: tokens} return nil } diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index bd159cc916b1c..3ac125a0fbe04 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -19,6 +19,7 @@ package kubernetestoken import ( "context" "encoding/json" + "github.com/gravitational/teleport/api/types" "strings" "sync" "time" @@ -44,6 +45,37 @@ const ( kubernetesBoundTokenSupportVersion = "1.22.0" ) +type ValidationResult struct { + // Raw contains the underlying information retrieved during the validation + // process. This lets us ensure all pertinent information is presented in + // audit logs. + Raw any `json:"raw"` + // Type indicates which form of validation was performed on the token. + Type types.KubernetesJoinType `json:"type"` + // Username is the Kubernetes username extracted from the identity. + // This will be prepended with `system:serviceaccount:` for service + // accounts. + Username string `json:"username"` +} + +// JoinAuditAttributes returns a series of attributes that can be inserted into +// audit events related to a specific join. +func (c *ValidationResult) JoinAuditAttributes() (map[string]interface{}, error) { + res := map[string]interface{}{} + d, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{ + TagName: "json", + Result: &res, + Squash: true, + }) + if err != nil { + return nil, trace.Wrap(err) + } + if err := d.Decode(c); err != nil { + return nil, trace.Wrap(err) + } + return res, nil +} + // TokenReviewValidator validates a Kubernetes Service Account JWT using the // Kubernetes TokenRequest API endpoint. type TokenReviewValidator struct { @@ -75,7 +107,7 @@ func (v *TokenReviewValidator) getClient() (kubernetes.Interface, error) { } // Validate uses the Kubernetes TokenReview API to validate a token and return its UserInfo -func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*ServiceAccountClaims, error) { +func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*ValidationResult, error) { client, err := v.getClient() if err != nil { return nil, trace.Wrap(err) @@ -129,19 +161,11 @@ func (v *TokenReviewValidator) Validate(ctx context.Context, token string) (*Ser ) } - // Now we've validated the token with TokenReview, we can just unmarshal - // the jwt claims. This lets us return something that's consistent with what - // is returned by the JWKS based method. - jwt, err := josejwt.ParseSigned(token) - if err != nil { - return nil, trace.Wrap(err, "parsing jwt") - } - claims := ServiceAccountClaims{} - if err := jwt.UnsafeClaimsWithoutVerification(&claims); err != nil { - return nil, trace.Wrap(err, "unmarshaling jwt signature") - } - - return &claims, nil + return &ValidationResult{ + Raw: reviewResult.Status, + Type: types.KubernetesJoinTypeInCluster, + Username: reviewResult.Status.User.Username, + }, nil } func kubernetesSupportsBoundTokens(gitVersion string) (bool, error) { @@ -158,6 +182,27 @@ func kubernetesSupportsBoundTokens(gitVersion string) (bool, error) { return kubeVersion.AtLeast(minKubeVersion), nil } +type podSubClaim struct { + Name string `json:"name"` + UID string `json:"uid"` +} + +type serviceAccountSubClaim struct { + Name string `json:"name"` + UID string `json:"uid"` +} + +type kubernetesSubClaim struct { + Namespace string `json:"namespace"` + ServiceAccount *serviceAccountSubClaim `json:"serviceaccount"` + Pod *podSubClaim `json:"pod"` +} + +type serviceAccountClaims struct { + josejwt.Claims + Kubernetes *kubernetesSubClaim `json:"kubernetes.io"` +} + // ValidateTokenWithJWKS validates a Kubernetes Service Account JWT using a // configured JWKS. func ValidateTokenWithJWKS( @@ -165,7 +210,7 @@ func ValidateTokenWithJWKS( jwksData []byte, clusterName string, token string, -) (*ServiceAccountClaims, error) { +) (*ValidationResult, error) { jwt, err := josejwt.ParseSigned(token) if err != nil { return nil, trace.Wrap(err, "parsing jwt") @@ -176,7 +221,7 @@ func ValidateTokenWithJWKS( return nil, trace.Wrap(err, "parsing provided jwks") } - claims := ServiceAccountClaims{} + claims := serviceAccountClaims{} if err := jwt.Claims(jwks, &claims); err != nil { return nil, trace.Wrap(err, "validating jwt signature") } @@ -199,44 +244,9 @@ func ValidateTokenWithJWKS( return nil, trace.BadParameter("static_jwks joining requires the use of projected pod bound service account token") } - return &claims, nil -} - -type PodSubClaim struct { - Name string `json:"name"` - UID string `json:"uid"` -} - -type ServiceAccountSubClaim struct { - Name string `json:"name"` - UID string `json:"uid"` -} - -type KubernetesSubClaim struct { - Namespace string `json:"namespace"` - ServiceAccount *ServiceAccountSubClaim `json:"serviceaccount"` - Pod *PodSubClaim `json:"pod"` -} - -type ServiceAccountClaims struct { - josejwt.Claims - Kubernetes *KubernetesSubClaim `json:"kubernetes.io"` -} - -// JoinAuditAttributes returns a series of attributes that can be inserted into -// audit events related to a specific join. -func (c *ServiceAccountClaims) JoinAuditAttributes() (map[string]interface{}, error) { - res := map[string]interface{}{} - d, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{ - TagName: "json", - Result: &res, - Squash: true, - }) - if err != nil { - return nil, trace.Wrap(err) - } - if err := d.Decode(c); err != nil { - return nil, trace.Wrap(err) - } - return res, nil + return &ValidationResult{ + Raw: claims, + Type: types.KubernetesJoinTypeStaticJWKS, + Username: claims.Subject, + }, nil } diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 30a48be7dd18e..b820e9a34fe9c 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -21,6 +21,7 @@ import ( "crypto/rand" "crypto/rsa" "encoding/json" + "github.com/gravitational/teleport/api/types" "gopkg.in/square/go-jose.v2" "gopkg.in/square/go-jose.v2/jwt" "testing" @@ -88,37 +89,18 @@ func (c *fakeClientSet) Discovery() discovery.DiscoveryInterface { } func TestIDTokenValidator_Validate(t *testing.T) { - _, signer := testSigner(t) - claims := &ServiceAccountClaims{ - Claims: jwt.Claims{ - Subject: "system:serviceaccount:default:my-service-account", - }, - Kubernetes: &KubernetesSubClaim{ - ServiceAccount: &ServiceAccountSubClaim{ - Name: "my-service-account", - UID: "8b77ea6d-3144-4203-9a8b-36eb5ad65596", - }, - Pod: &PodSubClaim{ - Name: "my-pod-797959fdf-wptbj", - UID: "413b22ca-4833-48d9-b6db-76219d583173", - }, - Namespace: "default", - }, - } - token, err := jwt.Signed(signer).Claims(claims).CompactSerialize() - require.NoError(t, err) - tests := []struct { - name string + token string review *v1.TokenReview kubeVersion *version.Info + wantResult *ValidationResult expectedError error }{ { - name: "valid", + token: "valid", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: token, + Token: "valid", }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -133,14 +115,19 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, }, }, + wantResult: &ValidationResult{ + Type: types.KubernetesJoinTypeInCluster, + Username: "system:serviceaccount:namespace:my-service-account", + // Raw will be filled in during test run to value of review + }, kubeVersion: &boundTokenKubernetesVersion, expectedError: nil, }, { - name: "valid-not-bound", + token: "valid-not-bound", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: token, + Token: "valid-not-bound", }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -152,14 +139,19 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, }, }, + wantResult: &ValidationResult{ + Type: types.KubernetesJoinTypeInCluster, + Username: "system:serviceaccount:namespace:my-service-account", + // Raw will be filled in during test run to value of review + }, kubeVersion: &legacyTokenKubernetesVersion, expectedError: nil, }, { - name: "valid-not-bound-on-modern-version", + token: "valid-not-bound-on-modern-version", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: token, + Token: "valid-not-bound-on-modern-version", }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -178,10 +170,10 @@ func TestIDTokenValidator_Validate(t *testing.T) { ), }, { - name: "valid-but-not-serviceaccount", + token: "valid-but-not-serviceaccount", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: token, + Token: "valid-but-not-serviceaccount", }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -197,10 +189,10 @@ func TestIDTokenValidator_Validate(t *testing.T) { expectedError: trace.BadParameter("token user is not a service account: eve@example.com"), }, { - name: "valid-but-not-serviceaccount-group", + token: "valid-but-not-serviceaccount-group", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: token, + Token: "valid-but-not-serviceaccount-group", }, Status: v1.TokenReviewStatus{ Authenticated: true, @@ -216,10 +208,10 @@ func TestIDTokenValidator_Validate(t *testing.T) { expectedError: trace.BadParameter("token user 'system:serviceaccount:namespace:my-service-account' does not belong to the 'system:serviceaccounts' group"), }, { - name: "invalid-expired", + token: "invalid-expired", review: &v1.TokenReview{ Spec: v1.TokenReviewSpec{ - Token: token, + Token: "invalid-expired", }, Status: v1.TokenReviewStatus{ Authenticated: false, @@ -233,19 +225,24 @@ func TestIDTokenValidator_Validate(t *testing.T) { for _, tt := range tests { tt := tt - t.Run(tt.name, func(t *testing.T) { + t.Run(tt.token, func(t *testing.T) { + // Fill value of raw to avoid duplication in test table + if tt.wantResult != nil { + tt.wantResult.Raw = tt.review.Status + } + client := newFakeClientset(tt.kubeVersion) client.AddReactor("create", "tokenreviews", tokenReviewMock(t, tt.review)) v := TokenReviewValidator{ client: client, } - gotClaims, err := v.Validate(context.Background(), tt.review.Spec.Token) + result, err := v.Validate(context.Background(), tt.token) if tt.expectedError != nil { require.ErrorIs(t, err, tt.expectedError) return } require.NoError(t, err) - require.Equal(t, claims, gotClaims) + require.Equal(t, tt.wantResult, result) }) } } @@ -317,15 +314,17 @@ func TestValidateTokenWithJWKS(t *testing.T) { now := time.Now() clusterName := "example.teleport.sh" tests := []struct { - name string - signer jose.Signer - claims *ServiceAccountClaims - wantErr string + name string + signer jose.Signer + claims serviceAccountClaims + + wantResult *ValidationResult + wantErr string }{ { name: "valid", signer: signer, - claims: &ServiceAccountClaims{ + claims: serviceAccountClaims{ Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, @@ -333,23 +332,27 @@ func TestValidateTokenWithJWKS(t *testing.T) { NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Second)), Expiry: jwt.NewNumericDate(now.Add(10 * time.Second)), }, - Kubernetes: &KubernetesSubClaim{ - ServiceAccount: &ServiceAccountSubClaim{ + Kubernetes: &kubernetesSubClaim{ + ServiceAccount: &serviceAccountSubClaim{ Name: "my-service-account", UID: "8b77ea6d-3144-4203-9a8b-36eb5ad65596", }, - Pod: &PodSubClaim{ + Pod: &podSubClaim{ Name: "my-pod-797959fdf-wptbj", UID: "413b22ca-4833-48d9-b6db-76219d583173", }, Namespace: "default", }, }, + wantResult: &ValidationResult{ + Type: types.KubernetesJoinTypeStaticJWKS, + Username: "system:serviceaccount:default:my-service-account", + }, }, { name: "signed by unknown key", signer: wrongSigner, - claims: &ServiceAccountClaims{ + claims: serviceAccountClaims{ Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, @@ -363,7 +366,7 @@ func TestValidateTokenWithJWKS(t *testing.T) { { name: "expired", signer: signer, - claims: &ServiceAccountClaims{ + claims: serviceAccountClaims{ Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, @@ -372,12 +375,26 @@ func TestValidateTokenWithJWKS(t *testing.T) { Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), }, }, - wantErr: "name is expired", + wantErr: "token is expired", + }, + { + name: "not yet valid", + signer: signer, + claims: serviceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{clusterName}, + IssuedAt: jwt.NewNumericDate(now.Add(2 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(2 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(4 * time.Minute)), + }, + }, + wantErr: "token is expired", }, { name: "wrong audience", signer: signer, - claims: &ServiceAccountClaims{ + claims: serviceAccountClaims{ Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{"wrong.audience"}, @@ -386,15 +403,20 @@ func TestValidateTokenWithJWKS(t *testing.T) { Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), }, }, - wantErr: "invalid audience claim", + wantErr: "token not valid yet", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + // Fill value of raw to avoid duplication in test table + if tt.wantResult != nil { + tt.wantResult.Raw = tt.claims + } + token, err := jwt.Signed(tt.signer).Claims(tt.claims).CompactSerialize() require.NoError(t, err) - claims, err := ValidateTokenWithJWKS( + result, err := ValidateTokenWithJWKS( now, jwks, clusterName, token, ) if tt.wantErr != "" { @@ -402,7 +424,7 @@ func TestValidateTokenWithJWKS(t *testing.T) { return } require.NoError(t, err) - require.Equal(t, tt.claims, claims) + require.Equal(t, tt.wantResult, result) }) } } From 2303ea86d923fe751756a2351a7d9e815f4d8a89 Mon Sep 17 00:00:00 2001 From: Noah Date: Fri, 11 Aug 2023 11:19:20 +0100 Subject: [PATCH 13/22] Refactor tests for slicker UI --- lib/auth/join_kubernetes_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/auth/join_kubernetes_test.go b/lib/auth/join_kubernetes_test.go index 0f85b9191dbbe..8c6fd5ad7013e 100644 --- a/lib/auth/join_kubernetes_test.go +++ b/lib/auth/join_kubernetes_test.go @@ -28,11 +28,11 @@ import ( "github.com/stretchr/testify/require" ) -type mockKubernetesTokenValidator struct { +type mockK8STokenReviewValidator struct { tokens map[string]*kubernetestoken.ValidationResult } -func (m *mockKubernetesTokenValidator) Validate(_ context.Context, token string) (*kubernetestoken.ValidationResult, error) { +func (m *mockK8STokenReviewValidator) Validate(_ context.Context, token string) (*kubernetestoken.ValidationResult, error) { claims, ok := m.tokens[token] if !ok { return nil, errMockInvalidToken @@ -51,13 +51,13 @@ func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { "user-token": {Username: "namespace1:service-account1"}, } - var withTokenValidator ServerOption = func(server *Server) error { - server.k8sTokenReviewValidator = &mockKubernetesTokenValidator{tokens: tokens} + var withK8STokenReviewValidator ServerOption = func(server *Server) error { + server.k8sTokenReviewValidator = &mockK8STokenReviewValidator{tokens: tokens} return nil } ctx := context.Background() - p, err := newTestPack(ctx, t.TempDir(), withTokenValidator) + p, err := newTestPack(ctx, t.TempDir(), withK8STokenReviewValidator) require.NoError(t, err) auth := p.a From 246e9f57a511e103d00823a06cbf4e4f5385c858 Mon Sep 17 00:00:00 2001 From: Noah Date: Fri, 11 Aug 2023 16:27:59 +0100 Subject: [PATCH 14/22] Inject jwks token validator for test substitution --- lib/auth/auth.go | 10 +++++++++- lib/auth/join_kubernetes.go | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 70d3118981c75..ba6f4fce25dca 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -380,6 +380,9 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) { if as.k8sTokenReviewValidator == nil { as.k8sTokenReviewValidator = &kubernetestoken.TokenReviewValidator{} } + if as.k8sJWKSValidator == nil { + as.k8sJWKSValidator = kubernetestoken.ValidateTokenWithJWKS + } if as.gcpIDTokenValidator == nil { as.gcpIDTokenValidator = gcp.NewIDTokenValidator( @@ -662,8 +665,13 @@ type Server struct { circleCITokenValidate func(ctx context.Context, organizationID, token string) (*circleci.IDTokenClaims, error) // k8sTokenReviewValidator allows tokens from Kubernetes to be validated - // by the auth server. It can be overridden for the purpose of tests. + // by the auth server using k8s Token Review API. It can be overridden for + // the purpose of tests. k8sTokenReviewValidator k8sTokenReviewValidator + // k8sJWKSValidator allows tokens from Kubernetes to be validated + // by the auth server using a known JWKS. It can be overridden for the + // purpose of tests. + k8sJWKSValidator k8sJWKSValidator // gcpIDTokenValidator allows ID tokens from GCP to be validated by the auth // server. It can be overridden for the purpose of tests. diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go index 4af40d25b1598..8b5f89e0b2a10 100644 --- a/lib/auth/join_kubernetes.go +++ b/lib/auth/join_kubernetes.go @@ -19,6 +19,7 @@ package auth import ( "context" "fmt" + "time" "github.com/gravitational/trace" "github.com/sirupsen/logrus" @@ -31,6 +32,8 @@ type k8sTokenReviewValidator interface { Validate(context.Context, string) (*kubernetestoken.ValidationResult, error) } +type k8sJWKSValidator func(now time.Time, jwksData []byte, clusterName string, token string) (*kubernetestoken.ValidationResult, error) + func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.RegisterUsingTokenRequest) (*kubernetestoken.ValidationResult, error) { if req.IDToken == "" { return nil, trace.BadParameter("IDToken not provided for Kubernetes join request") @@ -55,7 +58,7 @@ func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.Regi if err != nil { return nil, trace.Wrap(err) } - result, err = kubernetestoken.ValidateTokenWithJWKS( + result, err = a.k8sJWKSValidator( a.clock.Now(), []byte(token.Spec.Kubernetes.StaticJWKS.JWKS), clusterName, From 453ca203035c3bc52bd8b408bc942b8bf10f3c01 Mon Sep 17 00:00:00 2001 From: Noah Date: Fri, 11 Aug 2023 17:52:52 +0100 Subject: [PATCH 15/22] Add test cases for static_jwks to lib/auth kube joining test --- lib/auth/join_kubernetes.go | 2 +- lib/auth/join_kubernetes_test.go | 114 ++++++++++++++------ lib/kubernetestoken/token_validator.go | 3 +- lib/kubernetestoken/token_validator_test.go | 7 +- 4 files changed, 87 insertions(+), 39 deletions(-) diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go index 8b5f89e0b2a10..afbd0e3cc759e 100644 --- a/lib/auth/join_kubernetes.go +++ b/lib/auth/join_kubernetes.go @@ -97,5 +97,5 @@ func checkKubernetesAllowRules(pt *types.ProvisionTokenV2, got *kubernetestoken. return nil } - return trace.AccessDenied("kubernetes token user info did not match any allow rules") + return trace.AccessDenied("kubernetes token did not match any allow rules") } diff --git a/lib/auth/join_kubernetes_test.go b/lib/auth/join_kubernetes_test.go index 8c6fd5ad7013e..ea9a02b4f45ca 100644 --- a/lib/auth/join_kubernetes_test.go +++ b/lib/auth/join_kubernetes_test.go @@ -18,14 +18,15 @@ package auth import ( "context" - "github.com/gravitational/teleport/lib/kubernetestoken" "testing" "time" - "github.com/gravitational/teleport/api/types" - "github.com/gravitational/teleport/lib/auth/testauthority" "github.com/gravitational/trace" "github.com/stretchr/testify/require" + + "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/lib/auth/testauthority" + "github.com/gravitational/teleport/lib/kubernetestoken" ) type mockK8STokenReviewValidator struct { @@ -33,36 +34,47 @@ type mockK8STokenReviewValidator struct { } func (m *mockK8STokenReviewValidator) Validate(_ context.Context, token string) (*kubernetestoken.ValidationResult, error) { - claims, ok := m.tokens[token] + result, ok := m.tokens[token] if !ok { return nil, errMockInvalidToken } - return claims, nil + return result, nil } func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { // Test setup // Creating an auth server with mock Kubernetes token validator - tokens := map[string]*kubernetestoken.ValidationResult{ - "matching-first-rule-token1": {Username: "system:serviceaccount:namespace1:service-account1"}, - "matching-second-rule-token2": {Username: "system:serviceaccount:namespace2:service-account2"}, - "user-token": {Username: "namespace1:service-account1"}, + tokenReviewTokens := map[string]*kubernetestoken.ValidationResult{ + "matching-implicit-in-cluster": {Username: "system:serviceaccount:namespace1:service-account1"}, + // "matching-explicit-in-cluster" intentionally matches the second allow + // rule of explicitInCluster to ensure all rules are processed. + "matching-explicit-in-cluster": {Username: "system:serviceaccount:namespace2:service-account2"}, + "user-token": {Username: "namespace1:service-account1"}, } - - var withK8STokenReviewValidator ServerOption = func(server *Server) error { - server.k8sTokenReviewValidator = &mockK8STokenReviewValidator{tokens: tokens} - return nil + jwksTokens := map[string]*kubernetestoken.ValidationResult{ + "jwks-matching-service-account": {Username: "system:serviceaccount:static-jwks:matching"}, + "jwks-mismatched-service-account": {Username: "system:serviceaccount:static-jwks:mismatched"}, } ctx := context.Background() - p, err := newTestPack(ctx, t.TempDir(), withK8STokenReviewValidator) + p, err := newTestPack(ctx, t.TempDir(), func(server *Server) error { + server.k8sTokenReviewValidator = &mockK8STokenReviewValidator{tokens: tokenReviewTokens} + server.k8sJWKSValidator = func(_ time.Time, _ []byte, _ string, token string) (*kubernetestoken.ValidationResult, error) { + result, ok := jwksTokens[token] + if !ok { + return nil, errMockInvalidToken + } + return result, nil + } + return nil + }) require.NoError(t, err) auth := p.a - // Creating and loading our two Kubernetes Provision tokens - pt1, err := types.NewProvisionTokenFromSpec("my-token-1", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{ + // Creating and loading our two Kubernetes ProvisionTokens + implicitInClusterPT, err := types.NewProvisionTokenFromSpec("implicit-in-cluster", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{ JoinMethod: types.JoinMethodKubernetes, Roles: []types.SystemRole{types.RoleNode}, Kubernetes: &types.ProvisionTokenSpecV2Kubernetes{ @@ -73,10 +85,11 @@ func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { }, }) require.NoError(t, err) - pt2, err := types.NewProvisionTokenFromSpec("my-token-2", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{ + explicitInClusterPT, err := types.NewProvisionTokenFromSpec("explicit-in-cluster", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{ JoinMethod: types.JoinMethodKubernetes, Roles: []types.SystemRole{types.RoleNode}, Kubernetes: &types.ProvisionTokenSpecV2Kubernetes{ + Type: types.KubernetesJoinTypeInCluster, Allow: []*types.ProvisionTokenSpecV2Kubernetes_Rule{ {ServiceAccount: "namespace2:service-account1"}, {ServiceAccount: "namespace2:service-account2"}, @@ -84,8 +97,23 @@ func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { }, }) require.NoError(t, err) - require.NoError(t, auth.CreateToken(ctx, pt1)) - require.NoError(t, auth.CreateToken(ctx, pt2)) + staticJWKSPT, err := types.NewProvisionTokenFromSpec("static-jwks", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{ + JoinMethod: types.JoinMethodKubernetes, + Roles: []types.SystemRole{types.RoleNode}, + Kubernetes: &types.ProvisionTokenSpecV2Kubernetes{ + Type: types.KubernetesJoinTypeStaticJWKS, + Allow: []*types.ProvisionTokenSpecV2Kubernetes_Rule{ + {ServiceAccount: "static-jwks:matching"}, + }, + StaticJWKS: &types.ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig{ + JWKS: "fake-jwks", + }, + }, + }) + require.NoError(t, err) + require.NoError(t, auth.CreateToken(ctx, implicitInClusterPT)) + require.NoError(t, auth.CreateToken(ctx, explicitInClusterPT)) + require.NoError(t, auth.CreateToken(ctx, staticJWKSPT)) // Building a joinRequest builder sshPrivateKey, sshPublicKey, err := testauthority.New().GenerateKeyPair() @@ -111,34 +139,52 @@ func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { expectedErr error }{ { - "successful token join (first rule)", - "matching-first-rule-token1", - pt1, + "in_cluster (implicit): success", + "matching-implicit-in-cluster", + implicitInClusterPT, nil, }, { - "successful token join (second rule)", - "matching-second-rule-token2", - pt2, + "in_cluster (explicit): success", + "matching-explicit-in-cluster", + explicitInClusterPT, nil, }, { - "failed token join (wrong provisionToken)", - "matching-second-rule-token2", - pt1, - trace.AccessDenied("kubernetes token user info did not match any allow rules"), + "in_cluster: service account rule mismatch", + "matching-explicit-in-cluster", + implicitInClusterPT, + trace.AccessDenied("kubernetes token did not match any allow rules"), }, { - "failed token join (unknown kubeToken)", + "in_cluster: failed token join (unknown kubeToken)", "unknown", - pt1, + implicitInClusterPT, errMockInvalidToken, }, { - "failed token join (user token)", + "in_cluster: failed token join (user token)", "user-token", - pt1, - trace.AccessDenied("kubernetes token user info did not match any allow rules"), + implicitInClusterPT, + trace.AccessDenied("kubernetes token did not match any allow rules"), + }, + { + "static_jwks: success", + "jwks-matching-service-account", + staticJWKSPT, + nil, + }, + { + "static_jwks: service account rule mismatch", + "jwks-mismatched-service-account", + staticJWKSPT, + trace.AccessDenied("kubernetes token did not match any allow rules"), + }, + { + "static_jwks: validation fails", + "unknown", + staticJWKSPT, + errMockInvalidToken, }, } diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index 3ac125a0fbe04..641fe0c2ab196 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -19,7 +19,6 @@ package kubernetestoken import ( "context" "encoding/json" - "github.com/gravitational/teleport/api/types" "strings" "sync" "time" @@ -34,6 +33,8 @@ import ( "k8s.io/apimachinery/pkg/util/version" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" + + "github.com/gravitational/teleport/api/types" ) const ( diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index b820e9a34fe9c..6647576818663 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -21,15 +21,14 @@ import ( "crypto/rand" "crypto/rsa" "encoding/json" - "github.com/gravitational/teleport/api/types" - "gopkg.in/square/go-jose.v2" - "gopkg.in/square/go-jose.v2/jwt" "testing" "time" "github.com/gravitational/trace" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "gopkg.in/square/go-jose.v2" + "gopkg.in/square/go-jose.v2/jwt" v1 "k8s.io/api/authentication/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/version" @@ -37,6 +36,8 @@ import ( fakediscovery "k8s.io/client-go/discovery/fake" "k8s.io/client-go/kubernetes/fake" ctest "k8s.io/client-go/testing" + + "github.com/gravitational/teleport/api/types" ) var userGroups = []string{"system:serviceaccounts", "system:serviceaccounts:namespace", "system:authenticated"} From 129f8b0fa5eef20d05d261e14c787038c571f010 Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 14 Aug 2023 11:01:22 +0100 Subject: [PATCH 16/22] Remove TODO --- api/types/provisioning.go | 1 - 1 file changed, 1 deletion(-) diff --git a/api/types/provisioning.go b/api/types/provisioning.go index 58eb4b59b2c02..3bf0092b7c5de 100644 --- a/api/types/provisioning.go +++ b/api/types/provisioning.go @@ -618,7 +618,6 @@ func (a *ProvisionTokenSpecV2Kubernetes) checkAndSetDefaults() error { if a.StaticJWKS.JWKS == "" { return trace.BadParameter("static_jwks.jwks: must be set when type is %q", KubernetesJoinTypeStaticJWKS) } - // TODO(noah): Try and parse JWKS to fail early if malformatted? default: return trace.BadParameter( "type: must be one of (%s), got %q", From eb797af3df8bdcd2b984e465bb0d3ada3b0b9c8d Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 14 Aug 2023 11:22:14 +0100 Subject: [PATCH 17/22] Add more test cases to token validation --- lib/kubernetestoken/token_validator_test.go | 25 +++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 6647576818663..07d925254c5c7 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -350,6 +350,27 @@ func TestValidateTokenWithJWKS(t *testing.T) { Username: "system:serviceaccount:default:my-service-account", }, }, + { + name: "missing bound pod claim", + signer: signer, + claims: serviceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{clusterName}, + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Second)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Second)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Second)), + }, + Kubernetes: &kubernetesSubClaim{ + ServiceAccount: &serviceAccountSubClaim{ + Name: "my-service-account", + UID: "8b77ea6d-3144-4203-9a8b-36eb5ad65596", + }, + Namespace: "default", + }, + }, + wantErr: "static_jwks joining requires the use of projected pod bound service account token", + }, { name: "signed by unknown key", signer: wrongSigner, @@ -390,7 +411,7 @@ func TestValidateTokenWithJWKS(t *testing.T) { Expiry: jwt.NewNumericDate(now.Add(4 * time.Minute)), }, }, - wantErr: "token is expired", + wantErr: "token not valid yet", }, { name: "wrong audience", @@ -404,7 +425,7 @@ func TestValidateTokenWithJWKS(t *testing.T) { Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), }, }, - wantErr: "token not valid yet", + wantErr: "invalid audience claim", }, } for _, tt := range tests { From 5748fb82f571c3cf484d95b9236a6a2e684c51ce Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 14 Aug 2023 11:46:26 +0100 Subject: [PATCH 18/22] Add enforcement of maximum TTL --- lib/kubernetestoken/token_validator.go | 17 +++ lib/kubernetestoken/token_validator_test.go | 119 ++++++++++++++------ 2 files changed, 103 insertions(+), 33 deletions(-) diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index 641fe0c2ab196..62349d22b95d9 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -241,10 +241,27 @@ func ValidateTokenWithJWKS( return nil, trace.Wrap(err, "validating jwt claims") } + // Ensure this is a pod-bound service account token if claims.Kubernetes == nil || claims.Kubernetes.Pod == nil || claims.Kubernetes.Pod.Name == "" { return nil, trace.BadParameter("static_jwks joining requires the use of projected pod bound service account token") } + // Ensure the token has a TTL, and that this TTL is low. This ensures that + // customers have correctly and securely configured the token and avoids + // bad practice becoming common. + // We recommend a configuration of 10 minutes (the kubernetes minimum), but + // allow up to a 30 minute TTL here. + if claims.Expiry == nil { + return nil, trace.BadParameter("static_jwks joining requires the use of a service account token with `exp`") + } + if claims.IssuedAt == nil { + return nil, trace.BadParameter("static_jwks joining requires the use of a service account token with `iat`") + } + maxAllowedTTL := time.Minute * 30 + if claims.Expiry.Time().Sub(claims.IssuedAt.Time()) > maxAllowedTTL { + return nil, trace.BadParameter("static_jwks joining requires the use of a service account token with a TTL of less than %s", maxAllowedTTL) + } + return &ValidationResult{ Raw: claims, Type: types.KubernetesJoinTypeStaticJWKS, diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 07d925254c5c7..086a21b78dd55 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -314,6 +314,18 @@ func TestValidateTokenWithJWKS(t *testing.T) { now := time.Now() clusterName := "example.teleport.sh" + validKubeSubclaim := &kubernetesSubClaim{ + ServiceAccount: &serviceAccountSubClaim{ + Name: "my-service-account", + UID: "8b77ea6d-3144-4203-9a8b-36eb5ad65596", + }, + Pod: &podSubClaim{ + Name: "my-pod-797959fdf-wptbj", + UID: "413b22ca-4833-48d9-b6db-76219d583173", + }, + Namespace: "default", + } + tests := []struct { name string signer jose.Signer @@ -329,21 +341,11 @@ func TestValidateTokenWithJWKS(t *testing.T) { Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, - IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Second)), - NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Second)), - Expiry: jwt.NewNumericDate(now.Add(10 * time.Second)), - }, - Kubernetes: &kubernetesSubClaim{ - ServiceAccount: &serviceAccountSubClaim{ - Name: "my-service-account", - UID: "8b77ea6d-3144-4203-9a8b-36eb5ad65596", - }, - Pod: &podSubClaim{ - Name: "my-pod-797959fdf-wptbj", - UID: "413b22ca-4833-48d9-b6db-76219d583173", - }, - Namespace: "default", + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Minute)), }, + Kubernetes: validKubeSubclaim, }, wantResult: &ValidationResult{ Type: types.KubernetesJoinTypeStaticJWKS, @@ -357,9 +359,9 @@ func TestValidateTokenWithJWKS(t *testing.T) { Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, - IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Second)), - NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Second)), - Expiry: jwt.NewNumericDate(now.Add(10 * time.Second)), + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Minute)), }, Kubernetes: &kubernetesSubClaim{ ServiceAccount: &serviceAccountSubClaim{ @@ -378,54 +380,105 @@ func TestValidateTokenWithJWKS(t *testing.T) { Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, - IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Second)), - NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Second)), - Expiry: jwt.NewNumericDate(now.Add(10 * time.Second)), + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Minute)), }, + Kubernetes: validKubeSubclaim, }, wantErr: "error in cryptographic primitive", }, { - name: "expired", + name: "wrong audience", + signer: signer, + claims: serviceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{"wrong.audience"}, + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Minute)), + }, + Kubernetes: validKubeSubclaim, + }, + wantErr: "invalid audience claim", + }, + { + name: "no expiry", signer: signer, claims: serviceAccountClaims{ Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, - IssuedAt: jwt.NewNumericDate(now.Add(-2 * time.Minute)), - NotBefore: jwt.NewNumericDate(now.Add(-2 * time.Minute)), - Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Minute)), }, + Kubernetes: validKubeSubclaim, }, - wantErr: "token is expired", + wantErr: "static_jwks joining requires the use of a service account token with `exp`", }, { - name: "not yet valid", + name: "no issued at", signer: signer, claims: serviceAccountClaims{ Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", Audience: jwt.Audience{clusterName}, - IssuedAt: jwt.NewNumericDate(now.Add(2 * time.Minute)), - NotBefore: jwt.NewNumericDate(now.Add(2 * time.Minute)), - Expiry: jwt.NewNumericDate(now.Add(4 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Minute)), }, + Kubernetes: validKubeSubclaim, }, - wantErr: "token not valid yet", + wantErr: "static_jwks joining requires the use of a service account token with `iat`", }, { - name: "wrong audience", + name: "too long ttl", signer: signer, claims: serviceAccountClaims{ Claims: jwt.Claims{ Subject: "system:serviceaccount:default:my-service-account", - Audience: jwt.Audience{"wrong.audience"}, + Audience: jwt.Audience{clusterName}, + IssuedAt: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(-1 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(10 * time.Hour)), + }, + Kubernetes: validKubeSubclaim, + }, + wantResult: &ValidationResult{ + Type: types.KubernetesJoinTypeStaticJWKS, + Username: "system:serviceaccount:default:my-service-account", + }, + wantErr: "static_jwks joining requires the use of a service account token with a TTL of less than 30m0s", + }, + { + name: "expired", + signer: signer, + claims: serviceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{clusterName}, IssuedAt: jwt.NewNumericDate(now.Add(-2 * time.Minute)), NotBefore: jwt.NewNumericDate(now.Add(-2 * time.Minute)), Expiry: jwt.NewNumericDate(now.Add(-1 * time.Minute)), }, + Kubernetes: validKubeSubclaim, }, - wantErr: "invalid audience claim", + wantErr: "token is expired", + }, + { + name: "not yet valid", + signer: signer, + claims: serviceAccountClaims{ + Claims: jwt.Claims{ + Subject: "system:serviceaccount:default:my-service-account", + Audience: jwt.Audience{clusterName}, + IssuedAt: jwt.NewNumericDate(now.Add(2 * time.Minute)), + NotBefore: jwt.NewNumericDate(now.Add(2 * time.Minute)), + Expiry: jwt.NewNumericDate(now.Add(4 * time.Minute)), + }, + Kubernetes: validKubeSubclaim, + }, + wantErr: "token not valid yet", }, } for _, tt := range tests { From d872ff10dde4cce29a9aa1b9fc1c65f47c385ac1 Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 14 Aug 2023 12:43:52 +0100 Subject: [PATCH 19/22] Regenerate operator crd --- .../bases/resources.teleport.dev_provisiontokens.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml b/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml index 81c7d928c3944..5af622775dff2 100644 --- a/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml +++ b/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml @@ -235,6 +235,17 @@ spec: type: object nullable: true type: array + static_jwks: + nullable: true + properties: + jwks: + type: string + type: object + type: + description: 'Type controls which behavior should be used for + validating the Kubernetes Service Account token. Support values: + - `incluster` - `static_jwks` If unset, this defaults to `incluster`.' + type: string type: object roles: description: Roles is a list of roles associated with the token, that From d03cc60813d17d674e4ccd9572359c605464459d Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 14 Aug 2023 13:36:07 +0100 Subject: [PATCH 20/22] Improve comments on proto --- api/proto/teleport/legacy/types/types.proto | 8 ++++++-- api/types/types.pb.go | 10 +++++++--- .../resources.teleport.dev_provisiontokens.yaml | 11 +++++++++++ .../bases/resources.teleport.dev_provisiontokens.yaml | 4 +++- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index a4011fdb69dce..764180376226c 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -1317,6 +1317,9 @@ message ProvisionTokenSpecV2CircleCI { // ProvisionTokenSpecV2 message ProvisionTokenSpecV2Kubernetes { message StaticJWKSConfig { + // JWKS should be the JSON Web Key Set formatted public keys of that the + // Kubernetes Cluster uses to sign service account tokens. + // This can be fetched from /openid/v1/jwks on the Kubernetes API Server. string JWKS = 1 [(gogoproto.jsontag) = "jwks,omitempty"]; } // Rule is a set of properties the Kubernetes-issued token might have to be @@ -1331,13 +1334,14 @@ message ProvisionTokenSpecV2Kubernetes { repeated Rule Allow = 1 [(gogoproto.jsontag) = "allow,omitempty"]; // Type controls which behavior should be used for validating the Kubernetes // Service Account token. Support values: - // - `incluster` + // - `in_cluster` // - `static_jwks` - // If unset, this defaults to `incluster`. + // If unset, this defaults to `in_cluster`. string Type = 2 [ (gogoproto.jsontag) = "type,omitempty", (gogoproto.casttype) = "KubernetesJoinType" ]; + // StaticJWKS is the configuration specific to the `static_jwks` type. StaticJWKSConfig StaticJWKS = 3 [(gogoproto.jsontag) = "static_jwks,omitempty"]; } diff --git a/api/types/types.pb.go b/api/types/types.pb.go index e64e4d6c96aed..cf01e5ec8f083 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -4100,10 +4100,11 @@ type ProvisionTokenSpecV2Kubernetes struct { Allow []*ProvisionTokenSpecV2Kubernetes_Rule `protobuf:"bytes,1,rep,name=Allow,proto3" json:"allow,omitempty"` // Type controls which behavior should be used for validating the Kubernetes // Service Account token. Support values: - // - `incluster` + // - `in_cluster` // - `static_jwks` - // If unset, this defaults to `incluster`. - Type KubernetesJoinType `protobuf:"bytes,2,opt,name=Type,proto3,casttype=KubernetesJoinType" json:"type,omitempty"` + // If unset, this defaults to `in_cluster`. + Type KubernetesJoinType `protobuf:"bytes,2,opt,name=Type,proto3,casttype=KubernetesJoinType" json:"type,omitempty"` + // StaticJWKS is the configuration specific to the `static_jwks` type. StaticJWKS *ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig `protobuf:"bytes,3,opt,name=StaticJWKS,proto3" json:"static_jwks,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -4144,6 +4145,9 @@ func (m *ProvisionTokenSpecV2Kubernetes) XXX_DiscardUnknown() { var xxx_messageInfo_ProvisionTokenSpecV2Kubernetes proto.InternalMessageInfo type ProvisionTokenSpecV2Kubernetes_StaticJWKSConfig struct { + // JWKS should be the JSON Web Key Set formatted public keys of that the + // Kubernetes Cluster uses to sign service account tokens. + // This can be fetched from /openid/v1/jwks on the Kubernetes API Server. JWKS string `protobuf:"bytes,1,opt,name=JWKS,proto3" json:"jwks,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` diff --git a/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml b/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml index 81c7d928c3944..5af622775dff2 100644 --- a/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml +++ b/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml @@ -235,6 +235,17 @@ spec: type: object nullable: true type: array + static_jwks: + nullable: true + properties: + jwks: + type: string + type: object + type: + description: 'Type controls which behavior should be used for + validating the Kubernetes Service Account token. Support values: + - `incluster` - `static_jwks` If unset, this defaults to `incluster`.' + type: string type: object roles: description: Roles is a list of roles associated with the token, that diff --git a/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml b/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml index 5af622775dff2..9d4a18d2d636c 100644 --- a/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml +++ b/integrations/operator/config/crd/bases/resources.teleport.dev_provisiontokens.yaml @@ -236,6 +236,8 @@ spec: nullable: true type: array static_jwks: + description: StaticJWKS is the configuration specific to the `static_jwks` + type. nullable: true properties: jwks: @@ -244,7 +246,7 @@ spec: type: description: 'Type controls which behavior should be used for validating the Kubernetes Service Account token. Support values: - - `incluster` - `static_jwks` If unset, this defaults to `incluster`.' + - `in_cluster` - `static_jwks` If unset, this defaults to `in_cluster`.' type: string type: object roles: From 673c157bd56ca5925b6a0f4cb8c2c7dce0fe0532 Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 14 Aug 2023 13:49:44 +0100 Subject: [PATCH 21/22] Rerun ?? generation ?? of ?? operator ?? protos ?? --- .../templates/resources.teleport.dev_provisiontokens.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml b/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml index 5af622775dff2..9d4a18d2d636c 100644 --- a/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml +++ b/examples/chart/teleport-cluster/charts/teleport-operator/templates/resources.teleport.dev_provisiontokens.yaml @@ -236,6 +236,8 @@ spec: nullable: true type: array static_jwks: + description: StaticJWKS is the configuration specific to the `static_jwks` + type. nullable: true properties: jwks: @@ -244,7 +246,7 @@ spec: type: description: 'Type controls which behavior should be used for validating the Kubernetes Service Account token. Support values: - - `incluster` - `static_jwks` If unset, this defaults to `incluster`.' + - `in_cluster` - `static_jwks` If unset, this defaults to `in_cluster`.' type: string type: object roles: From 29a66d8bbfb7d390829b8c43137e9a2158462f02 Mon Sep 17 00:00:00 2001 From: Noah Date: Mon, 14 Aug 2023 17:47:26 +0100 Subject: [PATCH 22/22] Remove outdated comment --- lib/kubernetestoken/token_validator_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 086a21b78dd55..f2bd9b0f76672 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -309,7 +309,6 @@ func testSigner(t *testing.T) ([]byte, jose.Signer) { func TestValidateTokenWithJWKS(t *testing.T) { jwks, signer := testSigner(t) - // match kid of right key _, wrongSigner := testSigner(t) now := time.Now()