From 9d683d7610fe6eca49e7bbaf0cb0869ec2ac4440 Mon Sep 17 00:00:00 2001 From: Roman Tkachenko Date: Mon, 26 Jul 2021 18:17:16 +0300 Subject: [PATCH] AWS console access (#7590) --- api/client/client.go | 1 + api/client/proto/authservice.pb.go | 809 ++++++++++---------- api/client/proto/authservice.proto | 2 + api/constants/constants.go | 5 + api/types/events/events.pb.go | 611 ++++++++------- api/types/events/events.proto | 3 + api/types/role.go | 27 + api/types/server.go | 12 + api/types/session.go | 2 + api/types/types.pb.go | 1129 +++++++++++++++------------- api/types/types.proto | 3 + lib/auth/auth.go | 13 + lib/auth/grpcserver.go | 1 + lib/auth/sessions.go | 1 + lib/services/role.go | 88 ++- lib/services/role_test.go | 127 ++++ lib/srv/app/cloud.go | 227 ++++++ lib/srv/app/server.go | 39 +- lib/srv/app/server_test.go | 154 +++- lib/srv/app/session.go | 1 + lib/srv/app/transport.go | 1 + lib/tlsca/ca.go | 37 + lib/utils/aws.go | 54 ++ lib/utils/aws_test.go | 69 ++ lib/web/app/fragment.go | 1 + lib/web/app/middleware.go | 12 +- lib/web/apps.go | 21 +- lib/web/sessions.go | 13 + lib/web/ui/app.go | 53 +- 29 files changed, 2268 insertions(+), 1248 deletions(-) create mode 100644 lib/srv/app/cloud.go create mode 100644 lib/utils/aws.go create mode 100644 lib/utils/aws_test.go diff --git a/api/client/client.go b/api/client/client.go index fab5f1f21996c..c1c5dc458b38f 100644 --- a/api/client/client.go +++ b/api/client/client.go @@ -834,6 +834,7 @@ func (c *Client) CreateAppSession(ctx context.Context, req types.CreateAppSessio Username: req.Username, PublicAddr: req.PublicAddr, ClusterName: req.ClusterName, + AWSRoleARN: req.AWSRoleARN, }, c.callOpts...) if err != nil { return nil, trail.FromGRPC(err) diff --git a/api/client/proto/authservice.pb.go b/api/client/proto/authservice.pb.go index 0e4e2b8453304..5c479ccb16a76 100644 --- a/api/client/proto/authservice.pb.go +++ b/api/client/proto/authservice.pb.go @@ -2796,7 +2796,9 @@ type CreateAppSessionRequest struct { // PublicAddr is the public address the application. PublicAddr string `protobuf:"bytes,3,opt,name=PublicAddr,proto3" json:"public_addr"` // ClusterName is cluster within which the application is running. - ClusterName string `protobuf:"bytes,4,opt,name=ClusterName,proto3" json:"cluster_name"` + ClusterName string `protobuf:"bytes,4,opt,name=ClusterName,proto3" json:"cluster_name"` + // AWSRoleARN is AWS role the user wants to assume. + AWSRoleARN string `protobuf:"bytes,5,opt,name=AWSRoleARN,proto3" json:"aws_role_arn"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2856,6 +2858,13 @@ func (m *CreateAppSessionRequest) GetClusterName() string { return "" } +func (m *CreateAppSessionRequest) GetAWSRoleARN() string { + if m != nil { + return m.AWSRoleARN + } + return "" +} + // CreateAppSessionResponse contains the requested application web session. type CreateAppSessionResponse struct { // Session is the application web session. @@ -6736,383 +6745,384 @@ func init() { func init() { proto.RegisterFile("authservice.proto", fileDescriptor_ce8bd90b12161215) } var fileDescriptor_ce8bd90b12161215 = []byte{ - // 6002 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x3c, 0x4b, 0x70, 0x23, 0x59, - 0x52, 0x2e, 0xf9, 0xab, 0xf4, 0x4f, 0x7e, 0xfe, 0xc9, 0xb2, 0xdb, 0xea, 0xad, 0xde, 0xed, 0xed, - 0x99, 0x9d, 0xb5, 0x67, 0xe5, 0x19, 0x66, 0x76, 0x66, 0x67, 0x1a, 0x49, 0xfe, 0x69, 0xda, 0xed, - 0xf6, 0x94, 0x6c, 0xf5, 0xee, 0x32, 0x11, 0xa6, 0x2c, 0xbd, 0xb6, 0x2b, 0x2c, 0xab, 0x34, 0x55, - 0x25, 0xf7, 0x34, 0x27, 0x20, 0x96, 0x85, 0x80, 0x20, 0x82, 0x03, 0x1c, 0x38, 0x41, 0x04, 0x37, - 0x0e, 0x7b, 0xe2, 0xba, 0xf7, 0x09, 0x22, 0x08, 0x38, 0x41, 0x04, 0x07, 0xb1, 0xcc, 0x51, 0x57, - 0x6e, 0x9c, 0x88, 0xf7, 0xad, 0xf7, 0x4a, 0x55, 0xb2, 0xdd, 0xd3, 0xc0, 0xa5, 0xdb, 0xca, 0x97, - 0x99, 0x2f, 0x33, 0x5f, 0xbe, 0x7c, 0xf9, 0xf2, 0xa5, 0x04, 0x73, 0x76, 0x27, 0xb8, 0xf0, 0xb1, - 0x77, 0xed, 0xd4, 0xf1, 0x46, 0xdb, 0x73, 0x03, 0x17, 0x8d, 0xd2, 0xff, 0x72, 0x0b, 0xe7, 0xee, - 0xb9, 0x4b, 0xff, 0xdc, 0x24, 0x7f, 0xb1, 0xc1, 0xdc, 0xea, 0xb9, 0xeb, 0x9e, 0x37, 0xf1, 0x26, - 0xfd, 0x74, 0xd6, 0x79, 0xb1, 0x89, 0xaf, 0xda, 0xc1, 0x2b, 0x3e, 0x98, 0x8f, 0x0e, 0x06, 0xce, - 0x15, 0xf6, 0x03, 0xfb, 0xaa, 0xcd, 0x11, 0x3e, 0x38, 0x77, 0x82, 0x8b, 0xce, 0xd9, 0x46, 0xdd, - 0xbd, 0xda, 0x3c, 0xf7, 0xec, 0x6b, 0x27, 0xb0, 0x03, 0xc7, 0x6d, 0xd9, 0xcd, 0xcd, 0x00, 0x37, - 0x71, 0xdb, 0xf5, 0x82, 0x4d, 0xbb, 0xed, 0x6c, 0x06, 0xaf, 0xda, 0xd8, 0x67, 0xff, 0x72, 0xc2, - 0xf2, 0x5d, 0x08, 0x5f, 0x7a, 0x76, 0xbb, 0x8d, 0xbd, 0xf0, 0x0f, 0xce, 0xe4, 0xf1, 0x5d, 0x98, - 0xe0, 0x6b, 0xdc, 0x0a, 0xc4, 0x7f, 0x8c, 0x81, 0xf9, 0xaf, 0x73, 0x30, 0xba, 0x43, 0x00, 0xe8, - 0x43, 0x18, 0x39, 0x7e, 0xd5, 0xc6, 0x59, 0xe3, 0xbe, 0xf1, 0x68, 0xa6, 0x90, 0x61, 0xe3, 0x1b, - 0xcf, 0xda, 0xd8, 0xa3, 0x2c, 0x4b, 0xa8, 0xd7, 0xcd, 0xcf, 0x10, 0x46, 0xef, 0xb8, 0x57, 0x4e, - 0x40, 0x6d, 0x64, 0x51, 0x0a, 0xf4, 0x1c, 0x66, 0x2c, 0xec, 0xbb, 0x1d, 0xaf, 0x8e, 0xf7, 0xb1, - 0xdd, 0xc0, 0x5e, 0x36, 0x75, 0xdf, 0x78, 0x34, 0x59, 0x58, 0xdc, 0x60, 0xfa, 0xea, 0x83, 0xa5, - 0xa5, 0x5e, 0x37, 0x8f, 0x3c, 0x0e, 0x0b, 0x99, 0xed, 0x0f, 0x59, 0x11, 0x36, 0xe8, 0x0b, 0x98, - 0x2e, 0x63, 0x2f, 0x28, 0x76, 0x82, 0x0b, 0xd7, 0x73, 0x82, 0x57, 0xd9, 0x61, 0xca, 0x77, 0x89, - 0xf3, 0xd5, 0xc6, 0x6a, 0x85, 0xd2, 0x5a, 0xaf, 0x9b, 0xcf, 0xd6, 0xb1, 0x17, 0x9c, 0xda, 0x02, - 0xaa, 0xb1, 0xd7, 0x99, 0xa1, 0x9f, 0xc2, 0x54, 0x95, 0x98, 0xab, 0x7e, 0xec, 0x5e, 0xe2, 0x96, - 0x9f, 0x1d, 0xd1, 0x84, 0x56, 0x87, 0x6a, 0x85, 0xd2, 0x6a, 0xaf, 0x9b, 0x5f, 0xf6, 0x29, 0xec, - 0x34, 0xa0, 0x40, 0x8d, 0xb5, 0xc6, 0x09, 0xfd, 0x2e, 0xcc, 0x1c, 0x79, 0xee, 0xb5, 0xe3, 0x3b, - 0x6e, 0x8b, 0x82, 0xb2, 0xa3, 0x94, 0xf7, 0x32, 0xe7, 0xad, 0x0f, 0xd6, 0x0a, 0xa5, 0x7b, 0xbd, - 0x6e, 0x7e, 0xa5, 0x2d, 0xa0, 0x6c, 0x02, 0xdd, 0x32, 0x3a, 0x09, 0x3a, 0x86, 0xc9, 0x72, 0xb3, - 0xe3, 0x07, 0xd8, 0x3b, 0xb4, 0xaf, 0x70, 0x76, 0x8c, 0xb2, 0x5f, 0x10, 0x76, 0x09, 0x47, 0x6a, - 0x85, 0x52, 0xae, 0xd7, 0xcd, 0x2f, 0xd5, 0x19, 0xe8, 0xb4, 0x65, 0x5f, 0xe9, 0x26, 0x57, 0xd9, - 0x50, 0x7b, 0xb3, 0x8f, 0x65, 0xb7, 0xf5, 0xc2, 0x39, 0xcf, 0x8e, 0xeb, 0xf6, 0x56, 0xc7, 0x6a, - 0x5b, 0xdc, 0xde, 0x9c, 0x73, 0x9d, 0x42, 0x23, 0xf6, 0x56, 0x09, 0xd0, 0x07, 0x30, 0x72, 0xe2, - 0x63, 0x2f, 0x3b, 0x41, 0x99, 0x4e, 0x73, 0xa6, 0x04, 0x54, 0x2b, 0x30, 0xef, 0xea, 0xf8, 0xd8, - 0xd3, 0x38, 0x50, 0x02, 0x42, 0x68, 0xb9, 0x4d, 0x9c, 0x4d, 0x6b, 0x84, 0x04, 0x54, 0x7b, 0x8f, - 0x11, 0x7a, 0x6e, 0x53, 0x57, 0x8b, 0x12, 0xa0, 0x0a, 0xa4, 0x89, 0x5e, 0x7e, 0xdb, 0xae, 0xe3, - 0x2c, 0x50, 0xea, 0x0c, 0xa7, 0x96, 0xf0, 0xd2, 0x72, 0xaf, 0x9b, 0x9f, 0x6f, 0x89, 0x8f, 0x1a, - 0x97, 0x90, 0x1a, 0x3d, 0x86, 0xb1, 0x2a, 0xf6, 0xae, 0xb1, 0x97, 0x9d, 0xa4, 0x7c, 0x66, 0x85, - 0x9b, 0x50, 0x60, 0xad, 0x50, 0x5a, 0xe8, 0x75, 0xf3, 0x19, 0x9f, 0x7e, 0xd2, 0x78, 0x70, 0x32, - 0x62, 0x5b, 0x0b, 0x5f, 0x63, 0xcf, 0xc7, 0xc7, 0x9d, 0x56, 0x0b, 0x37, 0xb3, 0x53, 0x9a, 0x6d, - 0xb5, 0x31, 0xe1, 0xcb, 0x1e, 0x03, 0x9e, 0x06, 0x14, 0xaa, 0xdb, 0x56, 0x23, 0x40, 0x17, 0x90, - 0x61, 0x7f, 0x95, 0xdd, 0x56, 0x0b, 0xd7, 0xc9, 0x86, 0xcd, 0x4e, 0xd3, 0x09, 0x56, 0xf8, 0x04, - 0xd1, 0xe1, 0x5a, 0xa1, 0x94, 0xef, 0x75, 0xf3, 0xab, 0x8c, 0x37, 0x59, 0x3e, 0x3e, 0xa0, 0x4d, - 0xd3, 0xc7, 0x95, 0xe8, 0x51, 0xac, 0xd7, 0xb1, 0xef, 0x5b, 0xf8, 0xcb, 0x0e, 0xf6, 0x83, 0xec, - 0x8c, 0xa6, 0x87, 0x36, 0x26, 0x7c, 0xc4, 0xa6, 0xc0, 0x53, 0x8f, 0x41, 0x75, 0x3d, 0x34, 0x02, - 0x74, 0x04, 0x50, 0x6c, 0xb7, 0xab, 0xd8, 0x27, 0xae, 0x9e, 0x9d, 0xa5, 0xac, 0xe7, 0x39, 0xeb, - 0xe7, 0xf8, 0x8c, 0x0f, 0xd4, 0x0a, 0xa5, 0x95, 0x5e, 0x37, 0xbf, 0x68, 0xb7, 0xdb, 0xa7, 0x3e, - 0x03, 0x69, 0x4c, 0x15, 0x1e, 0xcc, 0xee, 0x57, 0x6e, 0x80, 0xb9, 0x33, 0x66, 0x33, 0x11, 0xbb, - 0x2b, 0x63, 0x42, 0x5e, 0x8f, 0x02, 0x4f, 0xb9, 0x6b, 0x47, 0xed, 0xae, 0x10, 0x90, 0x9d, 0xbe, - 0x6d, 0x07, 0xf6, 0x99, 0xed, 0x63, 0xee, 0x1e, 0x73, 0xda, 0x4e, 0xd7, 0x07, 0x6b, 0x5b, 0x6c, - 0xa7, 0x37, 0x38, 0xf4, 0x34, 0xc6, 0x5f, 0x22, 0xfc, 0x88, 0x45, 0x42, 0xc5, 0xb3, 0xe8, 0x06, - 0x8b, 0xbc, 0xc4, 0x67, 0xf1, 0x16, 0x09, 0x51, 0xd1, 0x3e, 0x4c, 0x3c, 0xc7, 0x67, 0x2c, 0x2e, - 0xcd, 0x53, 0x7e, 0x73, 0x21, 0x3f, 0x16, 0x91, 0xb6, 0xd8, 0xae, 0x20, 0xdc, 0xfa, 0x63, 0x91, - 0xa4, 0x46, 0x7f, 0x64, 0xc0, 0xb2, 0x88, 0x1f, 0x38, 0x78, 0xe9, 0x7a, 0x97, 0x4e, 0xeb, 0x9c, - 0x87, 0x8e, 0x05, 0xca, 0xf9, 0x7e, 0x24, 0x24, 0x45, 0xb0, 0x6a, 0x85, 0xd2, 0xf7, 0x7b, 0xdd, - 0xfc, 0x03, 0x19, 0x9e, 0xe4, 0x78, 0x5c, 0x3c, 0x49, 0x9a, 0x0b, 0xfd, 0x81, 0x01, 0x4b, 0x5c, - 0x3b, 0x0b, 0xd7, 0x5d, 0xaf, 0x11, 0x8a, 0xb1, 0x48, 0xc5, 0xc8, 0xcb, 0xdd, 0x1a, 0x87, 0x54, - 0x2b, 0x94, 0x1e, 0xf6, 0xba, 0x79, 0x93, 0x1b, 0xee, 0xd4, 0x13, 0xc3, 0x71, 0x42, 0x24, 0x4c, - 0x44, 0x3c, 0x81, 0x1c, 0x2d, 0x47, 0x1e, 0x7e, 0x81, 0x3d, 0xdc, 0xaa, 0xe3, 0xec, 0x92, 0xe6, - 0x09, 0xfa, 0xa0, 0x88, 0xf9, 0xe4, 0xa0, 0x3a, 0x6d, 0x4b, 0xb0, 0xee, 0x09, 0x3a, 0x09, 0xfa, - 0x12, 0x10, 0x37, 0x40, 0xb1, 0xd3, 0x70, 0x02, 0xae, 0xe0, 0x32, 0x9d, 0x65, 0x55, 0xb7, 0xb3, - 0x82, 0x50, 0x2b, 0x94, 0xcc, 0x5e, 0x37, 0xbf, 0x2e, 0x4c, 0x6c, 0x93, 0xa1, 0x38, 0xc5, 0x62, - 0x98, 0x93, 0xc8, 0x7b, 0xe0, 0xd6, 0x2f, 0xb3, 0x59, 0x2d, 0xf2, 0x12, 0x90, 0x08, 0xd9, 0x4d, - 0xb7, 0x7e, 0xa9, 0x47, 0x5e, 0x32, 0x8a, 0x02, 0x98, 0xe7, 0xab, 0x64, 0x61, 0x3f, 0xf0, 0x1c, - 0x1a, 0x3b, 0xfc, 0xec, 0x0a, 0xe5, 0xb3, 0x26, 0x62, 0x70, 0x3f, 0x46, 0xed, 0x3d, 0x26, 0x2d, - 0x77, 0x84, 0x53, 0x4f, 0x19, 0xd3, 0xa6, 0x89, 0x63, 0x5f, 0x02, 0x98, 0x10, 0x19, 0x84, 0xb9, - 0x0f, 0xa3, 0xcf, 0xed, 0xa0, 0x7e, 0x81, 0x1e, 0xc3, 0xe8, 0x13, 0xa7, 0xd5, 0xf0, 0xb3, 0xc6, - 0xfd, 0x61, 0x7a, 0x00, 0xb0, 0xc4, 0x86, 0x0e, 0x92, 0x81, 0xd2, 0xf2, 0xd7, 0xdd, 0xfc, 0x50, - 0xaf, 0x9b, 0x9f, 0xbd, 0x24, 0x68, 0x4a, 0x76, 0xc3, 0xe8, 0xcc, 0x7f, 0x48, 0x41, 0x5a, 0x62, - 0xa3, 0x35, 0x18, 0x21, 0xff, 0xd3, 0x34, 0x29, 0x5d, 0x9a, 0xe8, 0x75, 0xf3, 0x23, 0x84, 0xce, - 0xa2, 0x50, 0x54, 0x80, 0xc9, 0x03, 0xd7, 0x6e, 0x54, 0x71, 0xdd, 0xc3, 0x81, 0x4f, 0xf3, 0xa0, - 0x89, 0x52, 0xa6, 0xd7, 0xcd, 0x4f, 0x35, 0x5d, 0xbb, 0x71, 0xea, 0x33, 0xb8, 0xa5, 0x22, 0x11, - 0x8e, 0xf4, 0x10, 0x1f, 0x0e, 0x39, 0x92, 0xe3, 0xc8, 0xa2, 0x50, 0xf4, 0x19, 0x8c, 0xed, 0x3a, - 0x4d, 0x12, 0xb8, 0x46, 0xa8, 0xfc, 0x6b, 0x51, 0xf9, 0x37, 0xd8, 0xf0, 0x4e, 0x2b, 0xf0, 0x5e, - 0xb1, 0x53, 0xe8, 0x05, 0x05, 0x28, 0x8a, 0x70, 0x0e, 0xe8, 0x5d, 0x18, 0xaf, 0x76, 0xce, 0xa8, - 0xf8, 0xa3, 0x74, 0x32, 0x9a, 0x8a, 0xf9, 0x9d, 0xb3, 0x53, 0xa2, 0x82, 0x42, 0x20, 0xd0, 0x72, - 0x3f, 0x86, 0x49, 0x85, 0x3d, 0xca, 0xc0, 0xf0, 0x25, 0x7e, 0xc5, 0x74, 0xb7, 0xc8, 0x9f, 0x68, - 0x01, 0x46, 0xaf, 0xed, 0x66, 0x07, 0x53, 0x55, 0xd3, 0x16, 0xfb, 0xf0, 0x51, 0xea, 0x43, 0xc3, - 0xfc, 0x1c, 0x46, 0x49, 0xbe, 0xe5, 0xa3, 0x07, 0x30, 0x5c, 0xad, 0xee, 0x53, 0xa2, 0xa9, 0xd2, - 0x5c, 0xaf, 0x9b, 0x9f, 0xf6, 0xfd, 0x0b, 0x65, 0x32, 0x32, 0x4a, 0x90, 0x8e, 0x0f, 0xaa, 0x94, - 0x0b, 0x47, 0x0a, 0x9a, 0xea, 0x5a, 0x90, 0x51, 0xf3, 0x9f, 0xc7, 0x20, 0x43, 0x32, 0x02, 0xca, - 0x57, 0x1c, 0x19, 0xef, 0x40, 0xfa, 0xa8, 0x73, 0xd6, 0x74, 0xea, 0x4f, 0xb8, 0x64, 0x53, 0xa5, - 0x99, 0x5e, 0x37, 0x0f, 0x6d, 0x0a, 0x3c, 0xbd, 0xc4, 0xaf, 0xac, 0x10, 0x01, 0x3d, 0x82, 0x09, - 0xc2, 0x81, 0x18, 0x98, 0x89, 0x5c, 0x9a, 0xea, 0x75, 0xf3, 0x13, 0x1d, 0x0e, 0xb3, 0xe4, 0x28, - 0xaa, 0xc2, 0xf8, 0xce, 0x57, 0x6d, 0xc7, 0xc3, 0x3e, 0x4f, 0x3b, 0x73, 0x1b, 0xec, 0x2e, 0xb0, - 0x21, 0xee, 0x02, 0x1b, 0xc7, 0xe2, 0x2e, 0x50, 0xba, 0xc7, 0x7d, 0x68, 0x0e, 0x33, 0x92, 0x50, - 0xf2, 0xbf, 0xf8, 0x8f, 0xbc, 0x61, 0x09, 0x4e, 0xe8, 0x1d, 0x18, 0xdb, 0x75, 0xbd, 0x2b, 0x3b, - 0xa0, 0xd9, 0x66, 0x9a, 0xaf, 0x17, 0x85, 0x68, 0xeb, 0x45, 0x21, 0x68, 0x17, 0x66, 0x2c, 0xb7, - 0x13, 0xe0, 0x63, 0x57, 0x1c, 0x5e, 0x6c, 0xd9, 0xd6, 0x7b, 0xdd, 0x7c, 0xce, 0x23, 0x23, 0xa7, - 0x81, 0xdb, 0x7f, 0x4c, 0x59, 0x11, 0x2a, 0xb4, 0x03, 0x33, 0xda, 0x31, 0xeb, 0x67, 0xc7, 0xee, - 0x0f, 0x3f, 0x4a, 0xf3, 0x10, 0xa4, 0x1d, 0xce, 0xaa, 0xcd, 0x23, 0x44, 0xe8, 0x10, 0xe6, 0x9e, - 0x74, 0xce, 0xb0, 0xd7, 0xc2, 0x01, 0xf6, 0x85, 0x44, 0xe3, 0x54, 0xa2, 0xfb, 0xbd, 0x6e, 0x7e, - 0xed, 0x52, 0x0e, 0xc6, 0xc8, 0xd4, 0x4f, 0x8a, 0x30, 0xcc, 0x72, 0x41, 0xc5, 0x99, 0xc7, 0x73, - 0xc3, 0x25, 0xee, 0xe3, 0x91, 0xd1, 0xd2, 0x03, 0x6e, 0xe5, 0x55, 0xa9, 0xbb, 0x38, 0x49, 0x95, - 0x89, 0xa2, 0x3c, 0xd1, 0x16, 0x4c, 0x1c, 0xba, 0x0d, 0x4c, 0xf7, 0x58, 0x9a, 0x4a, 0xcb, 0x52, - 0x3e, 0xb7, 0x81, 0x23, 0xf9, 0xb0, 0x25, 0x11, 0xd1, 0x01, 0x8c, 0x9e, 0xf8, 0xf6, 0x39, 0x4b, - 0x1b, 0x67, 0x0a, 0xdf, 0xe1, 0x12, 0x45, 0xbd, 0x8f, 0xde, 0x41, 0x28, 0x62, 0x69, 0x9e, 0x84, - 0x90, 0x0e, 0xf9, 0x53, 0x0d, 0x21, 0x74, 0x0c, 0x7d, 0x0e, 0xc0, 0xa5, 0x2a, 0xb6, 0xdb, 0x3c, - 0x83, 0x9c, 0xd3, 0x95, 0x2c, 0xb6, 0xdb, 0xa5, 0x75, 0xae, 0xdf, 0x92, 0xd4, 0xcf, 0x6e, 0xb7, - 0x15, 0x6e, 0x0a, 0x13, 0x73, 0x1b, 0xd2, 0x72, 0x6e, 0x34, 0x0e, 0xc3, 0xc5, 0x66, 0x33, 0x33, - 0x44, 0xfe, 0xa8, 0x56, 0xf7, 0x33, 0x06, 0x9a, 0x01, 0x08, 0x0d, 0x9e, 0x49, 0xa1, 0x29, 0x98, - 0x10, 0x06, 0xc9, 0x0c, 0x53, 0xfc, 0x76, 0x3b, 0x33, 0x62, 0xfe, 0x9b, 0xd1, 0xb7, 0x06, 0x24, - 0x86, 0x55, 0xd9, 0xed, 0x99, 0x9a, 0x8c, 0x05, 0x3a, 0x1a, 0xc3, 0xf8, 0xa5, 0x9a, 0x5a, 0xcd, - 0x52, 0x91, 0xc8, 0xb6, 0x3a, 0x22, 0xda, 0xd4, 0xdd, 0xa6, 0xba, 0xad, 0xda, 0x1c, 0x66, 0xc9, - 0x51, 0x54, 0x50, 0x36, 0xe0, 0x70, 0x18, 0x84, 0xc4, 0x06, 0x54, 0x17, 0x43, 0x6e, 0xc5, 0x42, - 0x28, 0x3c, 0xdf, 0x37, 0x94, 0x26, 0x66, 0xf1, 0x25, 0x9e, 0xf9, 0x6b, 0x43, 0xb5, 0xb9, 0x0c, - 0xb2, 0x46, 0x6c, 0x90, 0x7d, 0x07, 0xd2, 0xfc, 0x58, 0xaf, 0x6c, 0x73, 0xf9, 0x69, 0x0c, 0x11, - 0x19, 0x81, 0xd3, 0xb0, 0x42, 0x04, 0xb4, 0x09, 0xc0, 0x02, 0x4a, 0xb1, 0xd1, 0xf0, 0xb8, 0x12, - 0xb3, 0xbd, 0x6e, 0x7e, 0x92, 0x87, 0x1c, 0xbb, 0xd1, 0xf0, 0x2c, 0x05, 0x85, 0x58, 0x54, 0xbd, - 0xad, 0x8d, 0x84, 0x16, 0x55, 0xef, 0x65, 0xda, 0x5d, 0xcc, 0x6c, 0xc2, 0xcc, 0x1e, 0x0e, 0x88, - 0x09, 0x44, 0xa0, 0x1b, 0xac, 0xc2, 0x4f, 0x60, 0xf2, 0xb9, 0x13, 0x5c, 0xe8, 0x27, 0x0f, 0xbd, - 0xfb, 0xbd, 0x74, 0x82, 0x0b, 0x71, 0xf2, 0x28, 0xa6, 0x52, 0xd1, 0xcd, 0x1d, 0x98, 0xe5, 0xb3, - 0xc9, 0xb8, 0x5a, 0xd0, 0x19, 0x1a, 0xe1, 0x51, 0xa6, 0x32, 0xd4, 0xd9, 0xe0, 0x68, 0xa0, 0x41, - 0xd5, 0xbe, 0xd0, 0xc3, 0x8e, 0xe1, 0xa4, 0xfb, 0x02, 0xdd, 0x45, 0x91, 0x90, 0x14, 0x0d, 0x44, - 0xe6, 0x09, 0x4c, 0x1f, 0x35, 0x3b, 0xe7, 0x4e, 0x8b, 0xac, 0x76, 0x15, 0x7f, 0x89, 0xb6, 0x01, - 0x42, 0x00, 0x9f, 0x41, 0x24, 0xc9, 0xe1, 0x40, 0x6d, 0x8b, 0x2f, 0x13, 0x85, 0xd0, 0xd8, 0x61, - 0x29, 0x74, 0xe6, 0x9f, 0x0e, 0x03, 0xe2, 0x73, 0x90, 0xeb, 0x3c, 0xae, 0xe2, 0x80, 0x84, 0xa9, - 0x25, 0x48, 0x55, 0xb6, 0xb9, 0xd5, 0xc7, 0x7a, 0xdd, 0x7c, 0xca, 0x69, 0x58, 0xa9, 0xca, 0x36, - 0x7a, 0x0f, 0x46, 0x29, 0x1a, 0xb5, 0xf5, 0x8c, 0x9c, 0x4f, 0xe5, 0x50, 0x4a, 0xf7, 0xba, 0xf9, - 0x51, 0x9f, 0xfc, 0x69, 0x31, 0x64, 0xf4, 0x3e, 0xa4, 0xb7, 0x71, 0x13, 0x9f, 0xdb, 0x81, 0x2b, - 0x7c, 0x87, 0x86, 0xa3, 0x86, 0x00, 0x2a, 0x4b, 0x14, 0x62, 0x92, 0x83, 0xc3, 0xc2, 0xb6, 0xef, - 0xb6, 0xd4, 0x83, 0xc3, 0xa3, 0x10, 0xf5, 0xe0, 0x60, 0x38, 0xe8, 0xaf, 0x0c, 0x98, 0x2c, 0xb6, - 0x5a, 0x2e, 0xab, 0x06, 0xf9, 0xbc, 0xfc, 0xb0, 0xb8, 0x21, 0xab, 0x47, 0x07, 0xf6, 0x19, 0x6e, - 0xd6, 0xc8, 0x59, 0xed, 0x97, 0xbe, 0x20, 0x51, 0xe7, 0xdf, 0xbb, 0xf9, 0x8f, 0x5f, 0xa7, 0x20, - 0xb5, 0x71, 0xec, 0xd9, 0x4e, 0xe0, 0xd3, 0xdb, 0x58, 0x38, 0xa1, 0xea, 0x66, 0x8a, 0x1c, 0xe8, - 0x2d, 0x18, 0x25, 0x17, 0x73, 0x71, 0xfe, 0xd0, 0xc5, 0x26, 0x77, 0x77, 0x2d, 0xeb, 0xa2, 0x18, - 0xe6, 0x03, 0x48, 0x73, 0x4b, 0x56, 0xb6, 0x93, 0x96, 0xc0, 0x7c, 0x0a, 0x0f, 0x2d, 0x97, 0x5a, - 0x17, 0xfb, 0x38, 0x38, 0xb2, 0x7d, 0xff, 0xa5, 0xeb, 0x35, 0xe8, 0xe5, 0x84, 0xbb, 0xa4, 0xf0, - 0xe6, 0x07, 0x30, 0x4e, 0xc1, 0x92, 0x0d, 0x5d, 0x19, 0x7a, 0xb9, 0xb1, 0xc4, 0x88, 0x59, 0x86, - 0xb5, 0x3d, 0x1c, 0xf4, 0xf3, 0xba, 0x13, 0x93, 0x5f, 0x18, 0x90, 0x2f, 0x7b, 0x38, 0x56, 0xa8, - 0xdb, 0x6d, 0xe5, 0x35, 0x5e, 0x89, 0x4b, 0x85, 0xa3, 0xc4, 0xe8, 0xbc, 0xda, 0xf6, 0x3d, 0x18, - 0x3e, 0x3e, 0x3e, 0xa0, 0xae, 0x33, 0x4c, 0x2d, 0x38, 0x1c, 0x04, 0xcd, 0xff, 0xee, 0xe6, 0x27, - 0xb6, 0x3b, 0xac, 0x52, 0x67, 0x91, 0x71, 0x73, 0x1a, 0x26, 0x8f, 0x9c, 0xd6, 0x39, 0x9f, 0xd1, - 0xfc, 0xb3, 0x14, 0x4c, 0xb1, 0xcf, 0x7e, 0xdb, 0x6d, 0xb1, 0x28, 0xaf, 0xc6, 0x24, 0xe3, 0x16, - 0x31, 0x09, 0x7d, 0x08, 0xd3, 0xfc, 0x22, 0x8b, 0x3d, 0x7a, 0x1d, 0x65, 0x12, 0xd2, 0x8b, 0x00, - 0xbb, 0xca, 0x9e, 0x5e, 0xb3, 0x11, 0x4b, 0x47, 0x44, 0x07, 0x30, 0xc3, 0x00, 0xbb, 0xd8, 0x0e, - 0x3a, 0x61, 0x4e, 0x35, 0xcb, 0x0f, 0x41, 0x01, 0x66, 0x2e, 0xc1, 0x79, 0xbd, 0xe0, 0x40, 0x2b, - 0x42, 0x8b, 0x1e, 0xc3, 0xec, 0x91, 0xe7, 0x7e, 0xf5, 0x4a, 0x89, 0xc2, 0x6c, 0x57, 0x2c, 0x92, - 0x14, 0xac, 0x4d, 0x86, 0x4e, 0xd5, 0x58, 0x1c, 0xc5, 0x36, 0x7f, 0x93, 0x82, 0x09, 0xc9, 0x6d, - 0x43, 0x3d, 0x2a, 0x79, 0x9c, 0xa3, 0xd1, 0x3f, 0xcc, 0x67, 0x2c, 0x05, 0x03, 0xad, 0xd0, 0xc3, - 0x93, 0x47, 0xd8, 0x71, 0xb2, 0x00, 0x76, 0xbb, 0x6d, 0x11, 0x18, 0xf1, 0xd3, 0xed, 0x12, 0x55, - 0x6d, 0x82, 0xf9, 0x69, 0xe3, 0xcc, 0x4a, 0x6d, 0x97, 0xc8, 0x8a, 0x3e, 0xab, 0x6c, 0x97, 0xa9, - 0x94, 0x13, 0x6c, 0x45, 0x5d, 0xa7, 0x51, 0xb7, 0x28, 0x94, 0x8c, 0x56, 0x8b, 0x4f, 0x0f, 0xe8, - 0x2e, 0xe5, 0xa3, 0xbe, 0x7d, 0xd5, 0xb4, 0x28, 0x14, 0x7d, 0x2c, 0x22, 0x68, 0xd9, 0x6d, 0x05, - 0x9e, 0xdb, 0xf4, 0x69, 0xb5, 0x6f, 0x42, 0x8b, 0x94, 0x75, 0x3e, 0x64, 0x45, 0x50, 0xd1, 0x73, - 0x58, 0x2e, 0x36, 0xae, 0xed, 0x56, 0x1d, 0x37, 0xd8, 0xc8, 0x73, 0xd7, 0xbb, 0x7c, 0xd1, 0x74, - 0x5f, 0xfa, 0x34, 0x71, 0x9b, 0xe0, 0x29, 0x20, 0x47, 0x39, 0xe5, 0xec, 0x5e, 0x0a, 0x24, 0x2b, - 0x89, 0x1a, 0xe5, 0x61, 0xb4, 0xdc, 0x74, 0x3b, 0x0d, 0x9a, 0xb1, 0x4d, 0xb0, 0x8d, 0x50, 0x27, - 0x00, 0x8b, 0xc1, 0xcd, 0x1f, 0xc1, 0x1c, 0x89, 0x5e, 0x01, 0xbe, 0xf5, 0x11, 0x66, 0x1e, 0x01, - 0x54, 0xf1, 0x95, 0xdd, 0xbe, 0x70, 0xc9, 0xb2, 0x94, 0xd4, 0x4f, 0x3c, 0xa6, 0x23, 0x79, 0x8f, - 0xe7, 0x03, 0xb5, 0x2d, 0x71, 0x50, 0x0b, 0x4c, 0x4b, 0xa1, 0x32, 0xff, 0x29, 0x05, 0x88, 0xde, - 0x67, 0xab, 0x81, 0x87, 0xed, 0x2b, 0x21, 0xc6, 0x8f, 0x61, 0x8a, 0xed, 0x50, 0x06, 0xa6, 0xe2, - 0x90, 0x03, 0x83, 0xf9, 0xa2, 0x3a, 0xb4, 0x3f, 0x64, 0x69, 0xa8, 0x84, 0xd4, 0xc2, 0x7e, 0xe7, - 0x4a, 0x90, 0xa6, 0x34, 0x52, 0x75, 0x88, 0x90, 0xaa, 0x9f, 0xd1, 0x63, 0x98, 0x29, 0xbb, 0x57, - 0x6d, 0x62, 0x13, 0x4e, 0x3c, 0xcc, 0xc3, 0x32, 0x9f, 0x57, 0x1b, 0xdc, 0x1f, 0xb2, 0x22, 0xe8, - 0xe8, 0x10, 0xe6, 0x77, 0x9b, 0x1d, 0xff, 0xa2, 0xd8, 0x6a, 0x94, 0x9b, 0xae, 0x2f, 0xb8, 0x8c, - 0xf0, 0xdb, 0x09, 0xdf, 0x49, 0xfd, 0x18, 0xe4, 0xba, 0x1c, 0x03, 0x46, 0xdf, 0xe3, 0xa5, 0x7f, - 0x7e, 0x3c, 0x4c, 0x6f, 0xf0, 0x97, 0x81, 0x67, 0x2d, 0xfc, 0xec, 0xc5, 0xfe, 0x90, 0xc5, 0x46, - 0x4b, 0x69, 0x18, 0x17, 0x51, 0x64, 0x13, 0xe6, 0x14, 0x73, 0x92, 0x03, 0xad, 0xe3, 0xa3, 0x1c, - 0x4c, 0x9c, 0xb4, 0xc9, 0xf5, 0x56, 0x84, 0x45, 0x4b, 0x7e, 0x36, 0xdf, 0xd1, 0x2d, 0x8d, 0xd6, - 0xd4, 0x44, 0x8b, 0x21, 0x87, 0x00, 0x73, 0x5f, 0x37, 0xee, 0x60, 0x6c, 0x6d, 0xde, 0x54, 0x64, - 0xde, 0x4c, 0xd4, 0xd6, 0xe6, 0x62, 0xac, 0xf1, 0xcc, 0x3f, 0x34, 0x60, 0x61, 0x0f, 0x07, 0xb4, - 0x60, 0x48, 0x62, 0x8c, 0x3c, 0x30, 0x7e, 0xa0, 0xd6, 0x8e, 0x99, 0xbf, 0x4e, 0xf7, 0xba, 0xf9, - 0xb4, 0xac, 0x14, 0xab, 0xd5, 0xe1, 0x4f, 0x60, 0xa6, 0x7a, 0xe9, 0xb4, 0x6b, 0x76, 0xd3, 0x69, - 0xd0, 0x18, 0xcc, 0xa3, 0xc3, 0x22, 0x8d, 0x66, 0x97, 0x4e, 0xfb, 0xf4, 0x3a, 0x1c, 0x32, 0xac, - 0x08, 0xb2, 0xf9, 0x0c, 0x16, 0x23, 0x32, 0xf0, 0x20, 0xfd, 0x5b, 0x30, 0xce, 0x41, 0x7c, 0x03, - 0xf4, 0x95, 0x9d, 0x27, 0x7b, 0xdd, 0xfc, 0xb8, 0xcf, 0xc9, 0x04, 0xb2, 0xf9, 0x14, 0x96, 0x4e, - 0xda, 0x3e, 0xf6, 0x42, 0x9e, 0x42, 0xad, 0x2d, 0x59, 0xc7, 0x36, 0xe2, 0xeb, 0xd8, 0xd0, 0xeb, - 0xe6, 0xc7, 0x18, 0x43, 0x51, 0xbb, 0x36, 0xeb, 0xb0, 0xc4, 0xf6, 0x72, 0x1f, 0xbb, 0x3b, 0x59, - 0x49, 0xec, 0xfe, 0x54, 0xec, 0xee, 0xaf, 0x40, 0x8e, 0x4f, 0xd2, 0x6c, 0x7e, 0xbb, 0xe5, 0x30, - 0xff, 0xd1, 0x80, 0xe5, 0x3d, 0xdc, 0xc2, 0x9e, 0x4d, 0x45, 0xd6, 0x8e, 0x5e, 0xb5, 0x00, 0x60, - 0x0c, 0x2c, 0x00, 0xe4, 0x45, 0xb2, 0x92, 0xa2, 0xc9, 0x0a, 0x0d, 0x71, 0x34, 0x59, 0xe1, 0x29, - 0x0a, 0x39, 0x08, 0x4e, 0xac, 0x0a, 0x4f, 0xe2, 0xe8, 0x41, 0xd0, 0xf1, 0x1c, 0x8b, 0xc0, 0x50, - 0x25, 0x2c, 0x1e, 0x8c, 0xdc, 0x58, 0x3c, 0x98, 0xe7, 0xd7, 0xbe, 0x71, 0x5e, 0x3c, 0xd0, 0x4a, - 0x06, 0xe6, 0xc7, 0x90, 0xed, 0xd7, 0x85, 0xfb, 0x47, 0x1e, 0x46, 0x59, 0x1d, 0xb7, 0x2f, 0x1d, - 0x61, 0x70, 0x73, 0x3b, 0xf4, 0x6e, 0x5e, 0xb5, 0x94, 0x45, 0x93, 0xc8, 0xce, 0x1a, 0x70, 0xe1, - 0x31, 0xab, 0xa1, 0x7f, 0x72, 0x2e, 0x7c, 0xfe, 0x8f, 0x88, 0x7f, 0xb2, 0xca, 0xb4, 0x91, 0x5c, - 0x99, 0xe6, 0x3e, 0xca, 0x48, 0x05, 0x81, 0xf9, 0x1c, 0x96, 0x34, 0xa6, 0xa1, 0xd7, 0x7f, 0x02, - 0x13, 0x02, 0x16, 0xc9, 0xe5, 0x35, 0xb6, 0x74, 0xdd, 0x7c, 0x41, 0x2c, 0x49, 0xcc, 0x5f, 0x19, - 0xb0, 0xcc, 0x82, 0x4e, 0xbf, 0xde, 0xb7, 0x5f, 0xfd, 0xff, 0x8b, 0x4b, 0xde, 0x67, 0x23, 0x13, - 0xa9, 0xcc, 0xb0, 0x59, 0x83, 0x6c, 0xbf, 0xbc, 0x6f, 0xc0, 0xc2, 0x7b, 0xb0, 0xac, 0x6c, 0xdb, - 0x6f, 0xbd, 0xfe, 0xe1, 0x8c, 0x6f, 0x70, 0xfd, 0x43, 0xc4, 0x37, 0xb6, 0xfe, 0x15, 0x98, 0x67, - 0x8c, 0xf5, 0xbd, 0x52, 0x50, 0xf7, 0x4a, 0xec, 0x9b, 0x47, 0xff, 0xf6, 0x79, 0x4a, 0xb7, 0x8f, - 0x40, 0x09, 0x25, 0x7c, 0x1f, 0xc6, 0xf8, 0xa3, 0x31, 0x93, 0x2f, 0x86, 0x19, 0x8d, 0xa3, 0xec, - 0xa5, 0xd8, 0xe2, 0xc8, 0x66, 0x96, 0xaa, 0x4c, 0x52, 0x49, 0x5e, 0x3b, 0x11, 0xe1, 0xcd, 0xfc, - 0x9c, 0x04, 0xac, 0xc8, 0xc8, 0xb7, 0x3c, 0x03, 0x9e, 0x41, 0x96, 0x9d, 0x01, 0x0a, 0xd7, 0x6f, - 0x75, 0x0a, 0x7c, 0x08, 0x59, 0xe6, 0x4e, 0x31, 0x0c, 0x07, 0x87, 0xf6, 0x75, 0x58, 0x93, 0xa1, - 0x3d, 0x4e, 0xfb, 0x3f, 0x36, 0x60, 0x65, 0x0f, 0x07, 0xfa, 0xcb, 0xd7, 0xff, 0xcb, 0x49, 0xfc, - 0x05, 0xe4, 0xe2, 0x04, 0xe1, 0x4b, 0xf1, 0x69, 0x74, 0x29, 0x12, 0x9f, 0xf9, 0xe2, 0x97, 0xe4, - 0xe7, 0xb0, 0xca, 0x96, 0x44, 0xc7, 0x17, 0x8a, 0x7e, 0x1c, 0x59, 0x95, 0x44, 0xee, 0x71, 0xab, - 0xf3, 0xe7, 0x06, 0xac, 0x32, 0x23, 0xc7, 0x33, 0xbf, 0x93, 0x15, 0x1f, 0xc0, 0xd8, 0xbe, 0x4b, - 0x6e, 0xde, 0x7c, 0x41, 0xa9, 0x3a, 0x17, 0xae, 0x1f, 0x90, 0xc0, 0xc0, 0x87, 0x06, 0xbf, 0x5b, - 0x98, 0x87, 0x90, 0x97, 0x6b, 0xfe, 0x06, 0x16, 0xd6, 0xac, 0x03, 0x12, 0x6c, 0xca, 0x55, 0x4b, - 0xb0, 0x58, 0x81, 0xe1, 0x72, 0xd5, 0xe2, 0x65, 0x7f, 0x7a, 0x04, 0xd7, 0x7d, 0xcf, 0x22, 0xb0, - 0x68, 0x3c, 0x4e, 0xdd, 0xa6, 0xe8, 0xf6, 0x3b, 0x30, 0xaf, 0x4d, 0xc2, 0xd7, 0x7d, 0x0d, 0x46, - 0xca, 0xd8, 0x0b, 0xf8, 0x34, 0x54, 0xd3, 0x3a, 0xf6, 0x02, 0x8b, 0x42, 0xd1, 0x43, 0x18, 0x2f, - 0x17, 0x69, 0x51, 0x98, 0x66, 0x0a, 0x53, 0x2c, 0x30, 0xd5, 0xed, 0xd3, 0x3a, 0x2d, 0x14, 0x8b, - 0x41, 0xf3, 0x4f, 0x0c, 0x85, 0x3b, 0x21, 0xbf, 0x59, 0x87, 0x4d, 0x72, 0x07, 0x22, 0x36, 0x53, - 0x54, 0xa0, 0x87, 0x10, 0xbf, 0x21, 0x53, 0x0d, 0x14, 0x94, 0xdb, 0x16, 0x07, 0xbe, 0x80, 0x05, - 0x5d, 0x92, 0x37, 0xaa, 0xe8, 0x77, 0x69, 0xe9, 0x92, 0xe4, 0x48, 0x42, 0x45, 0xa4, 0xde, 0xfb, - 0xb8, 0x83, 0x7c, 0x00, 0x19, 0x8e, 0x15, 0x6e, 0xb0, 0x07, 0x22, 0xe5, 0x62, 0xdb, 0x4b, 0x6f, - 0xf5, 0x10, 0x95, 0xa1, 0xef, 0x8b, 0x9b, 0xe5, 0x4d, 0x33, 0x5c, 0x42, 0xf6, 0xe9, 0x6e, 0xb1, - 0xd8, 0x09, 0x2e, 0x70, 0x2b, 0x70, 0xea, 0x76, 0x80, 0xcb, 0x17, 0x76, 0xb3, 0x89, 0x5b, 0xe7, - 0xd4, 0x50, 0x27, 0x85, 0x5d, 0x79, 0xbc, 0xf0, 0xea, 0x7e, 0x61, 0x57, 0x62, 0x58, 0x64, 0x1c, - 0x3d, 0x82, 0x91, 0xe3, 0x67, 0xc7, 0x47, 0xfc, 0x9a, 0xb7, 0xc0, 0xf1, 0x08, 0x28, 0x44, 0xa4, - 0x18, 0xe6, 0x57, 0xb0, 0x1c, 0x99, 0x4c, 0x6a, 0xf5, 0x50, 0xcc, 0x65, 0xd0, 0x2b, 0xac, 0x9c, - 0x4b, 0x20, 0xec, 0x0f, 0xb1, 0xc9, 0xde, 0xd2, 0x26, 0x9b, 0x57, 0x26, 0x53, 0x30, 0x29, 0x0a, - 0x7f, 0xe9, 0xa4, 0x30, 0xf3, 0xf7, 0x60, 0x4a, 0x15, 0x9c, 0xdc, 0x9a, 0x9e, 0xe0, 0x57, 0xfb, - 0x76, 0xab, 0xd1, 0x14, 0xf6, 0x08, 0x01, 0x64, 0x54, 0xa2, 0xf2, 0x6b, 0x53, 0x08, 0x40, 0x0b, - 0x30, 0x5a, 0x6c, 0xb7, 0x2b, 0xdb, 0x6c, 0x53, 0x5b, 0xec, 0x03, 0xca, 0xc2, 0xb8, 0xa8, 0xf8, - 0xd0, 0xb4, 0xc6, 0x12, 0x1f, 0x4d, 0x07, 0x26, 0x15, 0x45, 0x6e, 0x98, 0x7a, 0x1d, 0xa0, 0xdc, - 0x74, 0x70, 0x8b, 0x86, 0x3f, 0x3e, 0xb7, 0x02, 0xa1, 0xd7, 0x3d, 0xe7, 0xbc, 0x45, 0xcb, 0x32, - 0x5c, 0x80, 0x10, 0x60, 0xce, 0xc2, 0xb4, 0x66, 0x77, 0xd3, 0x84, 0x29, 0xd5, 0x36, 0xc4, 0x05, - 0xca, 0x6e, 0x43, 0xba, 0x00, 0xf9, 0xdb, 0xfc, 0xa5, 0x01, 0x0b, 0x4f, 0x77, 0x8b, 0x16, 0x3e, - 0x77, 0x68, 0x27, 0x92, 0x54, 0x74, 0x53, 0x5d, 0x93, 0x55, 0x75, 0x4d, 0x22, 0x98, 0x62, 0x71, - 0x0a, 0xda, 0xe2, 0xac, 0x69, 0x8b, 0xd3, 0x4f, 0xc2, 0x56, 0x49, 0xb9, 0x39, 0xff, 0xc2, 0x80, - 0x79, 0x45, 0x10, 0x29, 0xf4, 0x86, 0x2a, 0x47, 0xae, 0x5f, 0x8e, 0xa8, 0x8f, 0xfc, 0x48, 0x13, - 0x63, 0x35, 0x46, 0x8c, 0x81, 0xbe, 0xd2, 0x80, 0x85, 0x38, 0x25, 0x75, 0xaf, 0x30, 0x12, 0xbd, - 0x22, 0x95, 0xe0, 0x15, 0xc3, 0xba, 0x57, 0xd8, 0x30, 0x1f, 0xa3, 0x02, 0x7a, 0x1b, 0x32, 0x0c, - 0xc6, 0x42, 0x11, 0xaf, 0xd5, 0x13, 0xca, 0x3e, 0xf8, 0x4d, 0xbe, 0x62, 0xfe, 0xda, 0x80, 0xc5, - 0x58, 0xe3, 0xa3, 0x25, 0x72, 0x8a, 0xd6, 0x3d, 0x1c, 0x70, 0xde, 0xfc, 0x13, 0x81, 0x57, 0x7c, - 0xbf, 0xc3, 0xbb, 0x13, 0xd3, 0x16, 0xff, 0x84, 0xbe, 0x0b, 0xd3, 0x47, 0xd8, 0x73, 0xdc, 0x46, - 0x15, 0xd7, 0xdd, 0x56, 0x83, 0x55, 0x26, 0xa7, 0x2d, 0x1d, 0x48, 0x0c, 0x54, 0x6c, 0x9e, 0xbb, - 0x9e, 0x13, 0x5c, 0x5c, 0xf1, 0x4d, 0x10, 0x02, 0x08, 0xef, 0x6d, 0xe7, 0xdc, 0x09, 0x58, 0xa5, - 0x7d, 0xda, 0xe2, 0x9f, 0x88, 0x89, 0x8a, 0xf5, 0xba, 0xdb, 0x69, 0x05, 0xb4, 0x68, 0x97, 0xb6, - 0xc4, 0x47, 0xf3, 0x6d, 0x58, 0x88, 0x5b, 0xb4, 0x58, 0x27, 0xfe, 0xfd, 0x14, 0xcc, 0x17, 0x1b, - 0x8d, 0xa7, 0xbb, 0xc5, 0x6d, 0xac, 0x26, 0x5d, 0xef, 0xc1, 0x48, 0xa5, 0xe5, 0x04, 0xdc, 0x79, - 0xd6, 0xb9, 0x2f, 0xc4, 0x60, 0x12, 0x2c, 0xe2, 0x0e, 0xe4, 0x7f, 0x64, 0xc1, 0xfc, 0xce, 0x57, - 0x8e, 0x1f, 0x38, 0xad, 0x73, 0xea, 0x90, 0x6c, 0x62, 0xee, 0x50, 0x82, 0x49, 0x42, 0x28, 0xdb, - 0x1f, 0xb2, 0xe2, 0x88, 0xd1, 0x31, 0x2c, 0x1d, 0xe2, 0x97, 0x31, 0xfe, 0x2d, 0x9f, 0xce, 0x25, - 0xdb, 0x18, 0x37, 0x4d, 0xa0, 0x55, 0xb7, 0xcf, 0x2f, 0x53, 0xb0, 0xa0, 0x2b, 0xc6, 0x67, 0x3e, - 0x81, 0x05, 0x45, 0x20, 0xdd, 0x87, 0x27, 0x0b, 0xf9, 0x78, 0x75, 0xd4, 0x9d, 0x1a, 0x4b, 0x8e, - 0x9e, 0xc3, 0xb2, 0x2e, 0x94, 0x1e, 0x33, 0xc3, 0x9d, 0x17, 0x87, 0xb2, 0x3f, 0x64, 0x25, 0x51, - 0xa3, 0x02, 0x0c, 0x17, 0xeb, 0x97, 0xdc, 0x2c, 0xf1, 0x4b, 0xc6, 0x34, 0x2b, 0xd6, 0x2f, 0xc9, - 0x9e, 0x2f, 0xd6, 0x2f, 0xb5, 0x0d, 0xfc, 0xd7, 0x06, 0x2c, 0x27, 0xac, 0x30, 0xd9, 0x33, 0x0c, - 0xa8, 0x9c, 0x84, 0x0a, 0x04, 0x7d, 0xa2, 0xbc, 0x2b, 0xcc, 0x14, 0xde, 0x1a, 0xec, 0x2f, 0x1b, - 0x0c, 0x72, 0x2c, 0x1f, 0x1e, 0xcc, 0xbc, 0x60, 0x4f, 0x9f, 0x21, 0x26, 0x58, 0x20, 0x62, 0x6f, - 0xce, 0x27, 0x85, 0xdd, 0x8c, 0x61, 0x96, 0xa3, 0xa2, 0x49, 0x4d, 0xd0, 0x23, 0x18, 0x63, 0x40, - 0xbe, 0x30, 0xa2, 0x0d, 0x33, 0x44, 0xe6, 0xe3, 0xe6, 0xdf, 0x1a, 0xa2, 0xd8, 0xd4, 0xe7, 0xef, - 0x1f, 0x68, 0xfe, 0x2e, 0x9e, 0xe4, 0xe3, 0x91, 0x35, 0x97, 0x2f, 0xc1, 0xe4, 0xeb, 0xb8, 0xba, - 0x4a, 0xa4, 0x3a, 0xe3, 0xdf, 0x19, 0xe2, 0x62, 0xdd, 0xef, 0x8f, 0x3b, 0x30, 0xf5, 0x7a, 0x7e, - 0xa8, 0x91, 0xa1, 0xf7, 0x99, 0x9b, 0xa4, 0x06, 0x6b, 0x3a, 0xd0, 0x53, 0x7e, 0x22, 0xea, 0x69, - 0xaf, 0xe3, 0x2b, 0xe6, 0x5a, 0x0c, 0xb5, 0x9c, 0xce, 0x5c, 0xa2, 0xf7, 0x62, 0x39, 0x24, 0x2f, - 0x72, 0x65, 0x5a, 0x28, 0x50, 0xe1, 0x32, 0xf4, 0x8f, 0x73, 0x90, 0x6c, 0xc3, 0x8a, 0x3a, 0x80, - 0x40, 0x20, 0x2e, 0xbe, 0x72, 0xe2, 0x63, 0xaf, 0xea, 0xb4, 0xce, 0x9b, 0xf8, 0x84, 0xa5, 0xa8, - 0xf2, 0xd2, 0xf0, 0x43, 0xcd, 0x09, 0x96, 0x13, 0xfa, 0x32, 0xfe, 0xb7, 0x96, 0xfe, 0x6f, 0x0c, - 0xc8, 0xc5, 0xc9, 0xf6, 0x66, 0x57, 0x7f, 0x83, 0xa7, 0xe1, 0x4c, 0xda, 0x2c, 0x27, 0x97, 0x73, - 0x0a, 0x65, 0x89, 0x92, 0xe4, 0x7f, 0x6d, 0xd9, 0x7f, 0x65, 0xc0, 0x42, 0xc5, 0xa7, 0xe2, 0x7f, - 0xd9, 0x71, 0x3c, 0xdc, 0x10, 0x86, 0xdb, 0x88, 0xeb, 0xde, 0xa1, 0x0b, 0xbf, 0x3f, 0x14, 0xd7, - 0x9d, 0xf3, 0x9e, 0xd2, 0x74, 0x91, 0x1a, 0xd4, 0x96, 0xb3, 0x3f, 0x14, 0xb6, 0x5d, 0xa0, 0x87, - 0x30, 0x72, 0x48, 0xce, 0xaf, 0x61, 0xbe, 0xcd, 0x19, 0x05, 0x01, 0x1d, 0xb8, 0xe7, 0x4e, 0x8b, - 0x88, 0x4c, 0x3e, 0x94, 0x26, 0x60, 0xec, 0xd8, 0xf6, 0xce, 0x71, 0x60, 0xfe, 0x1c, 0x72, 0xfc, - 0x39, 0x81, 0x15, 0x70, 0xe8, 0xa3, 0x83, 0x1f, 0x16, 0x16, 0x06, 0x3d, 0x01, 0xac, 0x03, 0x54, - 0x03, 0xdb, 0x0b, 0x2a, 0xad, 0x06, 0xfe, 0x8a, 0x4a, 0x39, 0x6a, 0x29, 0x10, 0xf3, 0x7d, 0x48, - 0xcb, 0xa9, 0xe9, 0x15, 0x41, 0x39, 0x5a, 0xc9, 0xdf, 0x24, 0xb3, 0xa1, 0x83, 0x22, 0xb3, 0xa1, - 0x1f, 0xcc, 0x2d, 0x58, 0x8c, 0x98, 0x90, 0xaf, 0x6f, 0x8e, 0x18, 0x9a, 0xc1, 0xd8, 0x43, 0xa1, - 0x25, 0x3f, 0x9b, 0x65, 0x98, 0xeb, 0x5b, 0x21, 0x84, 0x94, 0xde, 0x37, 0xb2, 0x49, 0xab, 0xd5, - 0x7d, 0x02, 0x93, 0xad, 0x6e, 0x04, 0x76, 0x7c, 0x50, 0x2d, 0x8d, 0xb1, 0x15, 0x37, 0xff, 0x3e, - 0x45, 0x6f, 0x45, 0x7d, 0x36, 0x88, 0xdc, 0x93, 0xd5, 0xbb, 0x7a, 0x09, 0xd2, 0x54, 0xe3, 0x6d, - 0xd1, 0x8a, 0x30, 0xb8, 0xd8, 0x3c, 0xf1, 0x75, 0x37, 0x3f, 0x44, 0x2b, 0xcc, 0x21, 0x19, 0xfa, - 0x14, 0xc6, 0x77, 0x5a, 0x0d, 0xca, 0x61, 0xf8, 0x0e, 0x1c, 0x04, 0x11, 0x59, 0x07, 0x2a, 0x32, - 0x39, 0x19, 0x7c, 0xda, 0xa8, 0x98, 0xb6, 0x14, 0x08, 0x35, 0xb3, 0x73, 0xe5, 0xb0, 0x97, 0xa6, - 0x51, 0x8b, 0x7d, 0x20, 0xd6, 0xa4, 0x22, 0x3c, 0xc1, 0xaf, 0x78, 0x7a, 0x24, 0x3f, 0x23, 0x13, - 0x46, 0x9f, 0x79, 0x0d, 0xde, 0x5f, 0x36, 0x53, 0x98, 0x12, 0x5f, 0x47, 0x21, 0x30, 0x8b, 0x0d, - 0x99, 0xff, 0x45, 0xcb, 0xfc, 0x41, 0xac, 0xdf, 0x68, 0x56, 0x31, 0xbe, 0xb5, 0x55, 0x52, 0xaf, - 0x63, 0x15, 0xa9, 0xf5, 0x70, 0x92, 0xd6, 0x23, 0x49, 0x5a, 0x8f, 0x26, 0x6b, 0xbd, 0x07, 0x63, - 0x4c, 0x55, 0x72, 0x5b, 0xae, 0x04, 0xf8, 0x2a, 0xbc, 0x2d, 0xab, 0xef, 0x77, 0x16, 0x1b, 0x23, - 0x29, 0xe8, 0x81, 0xed, 0xd3, 0xd9, 0x98, 0x8f, 0x8b, 0x8f, 0xe6, 0x19, 0x64, 0x0e, 0x1c, 0x3f, - 0x20, 0xfb, 0xe0, 0x96, 0xae, 0x26, 0x15, 0x4a, 0x25, 0x29, 0x34, 0xac, 0x2b, 0x64, 0xfe, 0x14, - 0xe6, 0x94, 0x39, 0xf8, 0x2e, 0x7a, 0xeb, 0xa6, 0x8a, 0xa6, 0xac, 0x98, 0x11, 0xe9, 0x0f, 0xf1, - 0x57, 0xaa, 0xf4, 0xfc, 0xa3, 0xf9, 0x29, 0xed, 0x58, 0x3a, 0x70, 0xeb, 0x97, 0x4a, 0x3d, 0x69, - 0x9c, 0xc5, 0x94, 0x68, 0x59, 0x96, 0x60, 0xb1, 0x11, 0x4b, 0x60, 0xf0, 0xf2, 0x03, 0xa7, 0x0f, - 0xcb, 0x0f, 0x14, 0x10, 0x29, 0x3f, 0xb0, 0x7e, 0x67, 0x8b, 0x8d, 0xf1, 0xea, 0x06, 0xf9, 0x7b, - 0x50, 0xed, 0x41, 0x16, 0x29, 0x6e, 0x40, 0x7c, 0xfb, 0x6d, 0x48, 0xcb, 0xef, 0x58, 0x91, 0xa4, - 0xaa, 0x72, 0x58, 0x39, 0x66, 0x49, 0xd5, 0xd1, 0xc9, 0x71, 0xc6, 0x40, 0x00, 0x63, 0xdb, 0x3b, - 0x07, 0x3b, 0xc7, 0x3b, 0x99, 0xd4, 0xdb, 0x0f, 0xb9, 0x7b, 0xa0, 0x19, 0x80, 0xed, 0x9d, 0x6a, - 0x79, 0xe7, 0x70, 0xbb, 0x72, 0xb8, 0x97, 0x19, 0x42, 0xd3, 0x90, 0x2e, 0xca, 0x8f, 0x46, 0xe1, - 0x2f, 0x1f, 0xc3, 0x24, 0x39, 0x69, 0x78, 0x9d, 0x15, 0xfd, 0x04, 0x66, 0xaa, 0xb8, 0xd5, 0x78, - 0x82, 0x71, 0xbb, 0xd8, 0x74, 0xae, 0xb1, 0x8f, 0xc4, 0xf1, 0x2b, 0x41, 0xb9, 0xa5, 0x3e, 0xdf, - 0xde, 0xb9, 0x6a, 0x07, 0xaf, 0x1e, 0x19, 0xe8, 0x07, 0x30, 0x49, 0x9b, 0x8d, 0xb9, 0xd7, 0x4d, - 0xa9, 0x0d, 0xc8, 0x39, 0xf1, 0x89, 0x0e, 0xbe, 0x6b, 0xa0, 0x4f, 0x60, 0x7c, 0x0f, 0xd3, 0xf5, - 0x46, 0xdf, 0x89, 0x7c, 0xfd, 0xab, 0xd2, 0x92, 0x9e, 0xc4, 0x0d, 0x92, 0x8b, 0x2e, 0x3c, 0x2a, - 0xc3, 0x04, 0x27, 0xf7, 0x91, 0x19, 0xa1, 0xf7, 0x63, 0x18, 0xcc, 0x47, 0x18, 0x10, 0x67, 0x43, - 0x9f, 0x42, 0x5a, 0x3a, 0x1d, 0x12, 0x19, 0x42, 0xd4, 0xd5, 0x73, 0xd9, 0xfe, 0x01, 0xee, 0x06, - 0x9b, 0x00, 0xac, 0x4c, 0x4b, 0xd5, 0x88, 0xca, 0x98, 0xeb, 0xb3, 0x1d, 0xda, 0x23, 0xc9, 0x14, - 0x59, 0xec, 0xdb, 0xea, 0x9d, 0x60, 0x6c, 0x74, 0x00, 0x33, 0xb2, 0x68, 0x7a, 0x7b, 0x23, 0x24, - 0x71, 0xfb, 0x08, 0xe6, 0xc4, 0xcb, 0xa1, 0xcc, 0x8f, 0x50, 0x52, 0xc6, 0x24, 0x57, 0x92, 0xa1, - 0x61, 0xc8, 0xa9, 0xb4, 0x7a, 0xbe, 0x83, 0xee, 0x2b, 0x4c, 0x62, 0xd3, 0xb4, 0xdc, 0x77, 0x06, - 0x60, 0x30, 0x33, 0x3f, 0x32, 0xde, 0x35, 0xd0, 0x67, 0x30, 0xad, 0x9d, 0xb4, 0x48, 0xdc, 0xab, - 0xe2, 0x52, 0x98, 0xdc, 0x5a, 0xfc, 0x20, 0x5f, 0xb6, 0x5d, 0xa2, 0x6e, 0x10, 0xe9, 0x3f, 0xcc, - 0xc5, 0xf5, 0x19, 0xb2, 0x96, 0xf6, 0x9c, 0x68, 0xbc, 0x88, 0x90, 0xec, 0xc0, 0x3c, 0x7f, 0x8e, - 0xd3, 0xbe, 0x9a, 0x94, 0xd0, 0xb1, 0x98, 0x68, 0xfd, 0xc7, 0x30, 0xcf, 0xd7, 0x52, 0x63, 0x93, - 0x91, 0xad, 0x22, 0xbc, 0xb9, 0x2d, 0x91, 0xc1, 0x67, 0xb0, 0x58, 0x8d, 0xe8, 0xc3, 0x5a, 0x08, - 0x57, 0x74, 0x16, 0x4a, 0xaf, 0x62, 0x22, 0xaf, 0x27, 0x80, 0xaa, 0x9d, 0xb3, 0x2b, 0x47, 0xb2, - 0xbb, 0x76, 0xf0, 0x4b, 0x74, 0x2f, 0xa2, 0x12, 0x01, 0x52, 0x34, 0x7a, 0xa0, 0xe6, 0x12, 0x34, - 0x46, 0xc7, 0xec, 0x39, 0x98, 0x75, 0x1a, 0xd9, 0x6d, 0xfb, 0xcc, 0x69, 0x3a, 0x81, 0x83, 0x89, - 0x5b, 0xa8, 0x04, 0xea, 0x90, 0x58, 0xc1, 0x95, 0x44, 0x0c, 0xf4, 0x29, 0x4c, 0xef, 0xe1, 0x20, - 0x6c, 0xc7, 0x44, 0xcb, 0x7d, 0x0d, 0x9c, 0x7c, 0xdd, 0x44, 0x19, 0x56, 0xef, 0x01, 0xad, 0x40, - 0xe6, 0xa4, 0xdd, 0xb0, 0x03, 0xac, 0xb0, 0xb8, 0xd7, 0xc7, 0x82, 0xa3, 0xd8, 0x9e, 0x7d, 0xe5, - 0x27, 0x5a, 0x6b, 0x13, 0x46, 0x8e, 0x9c, 0xd6, 0x39, 0x12, 0xb5, 0x5a, 0xa5, 0x91, 0x2e, 0x37, - 0xaf, 0xc1, 0xb8, 0xeb, 0x05, 0x90, 0xbf, 0xa1, 0x0f, 0x11, 0xfd, 0x50, 0x26, 0xcf, 0xb7, 0xe9, - 0x57, 0xcc, 0x29, 0xfb, 0x3e, 0x1e, 0xb1, 0xb6, 0x85, 0x7e, 0x46, 0xd7, 0xa1, 0x1f, 0x03, 0x3d, - 0xe0, 0x73, 0x0d, 0x6a, 0x66, 0xcc, 0xad, 0x26, 0xce, 0x50, 0xdb, 0x42, 0xa7, 0xe2, 0x49, 0x3a, - 0x86, 0xfb, 0x43, 0xad, 0x4f, 0xea, 0x35, 0x27, 0xd8, 0xa4, 0xe7, 0x04, 0xfd, 0x7a, 0xe7, 0x62, - 0x28, 0xad, 0xd2, 0x2b, 0x96, 0xd3, 0xbf, 0x20, 0x8a, 0xb6, 0xe8, 0xc9, 0x40, 0x3b, 0x94, 0xd1, - 0x92, 0x4e, 0xe1, 0xc7, 0x93, 0xbc, 0x6b, 0xa0, 0x2d, 0x00, 0x26, 0x25, 0x9d, 0x48, 0x1f, 0x4e, - 0x5c, 0xfd, 0x2d, 0x12, 0xfe, 0x1b, 0x77, 0x24, 0xfa, 0x54, 0x1c, 0x01, 0x94, 0x28, 0xab, 0xdd, - 0xd8, 0x55, 0xad, 0x92, 0xe8, 0x2b, 0x90, 0x29, 0xd6, 0x69, 0x40, 0x93, 0xed, 0x6b, 0x68, 0x5d, - 0x6e, 0x16, 0x7d, 0x40, 0xf0, 0x5a, 0x8c, 0x76, 0xc3, 0x1d, 0x60, 0x72, 0x05, 0xdb, 0x87, 0x65, - 0x79, 0x34, 0x45, 0x86, 0xe2, 0x29, 0x12, 0x85, 0xda, 0x81, 0x85, 0xb2, 0xdd, 0xaa, 0xe3, 0xe6, - 0xb7, 0x63, 0xf3, 0x11, 0xdd, 0xd9, 0x4a, 0x6b, 0xdf, 0x52, 0x94, 0x9e, 0x6f, 0x6c, 0xf1, 0x95, - 0x08, 0x05, 0xb5, 0x08, 0xb3, 0xcc, 0x88, 0xa1, 0x59, 0x92, 0xa8, 0x93, 0xa6, 0xff, 0x00, 0x66, - 0x76, 0x48, 0xe4, 0xeb, 0x34, 0x1c, 0x76, 0xb1, 0x42, 0x7a, 0xa6, 0x9c, 0x48, 0xb8, 0x0f, 0x73, - 0xfc, 0x20, 0x08, 0x7b, 0xde, 0x64, 0xf0, 0xed, 0x6f, 0x2b, 0xcc, 0x2d, 0x08, 0xb6, 0x6a, 0x7b, - 0x9c, 0x38, 0xe6, 0xb4, 0x06, 0x2f, 0x79, 0xcc, 0xc5, 0xb5, 0x9e, 0xc9, 0x63, 0x2e, 0xbe, 0x27, - 0xac, 0x04, 0xb3, 0x91, 0xde, 0x2e, 0x74, 0x4f, 0x1c, 0xb6, 0xb1, 0x3d, 0x5f, 0x31, 0x09, 0xcb, - 0xbe, 0xb0, 0x6a, 0x3f, 0x8f, 0xf8, 0x46, 0xaf, 0x44, 0x1b, 0x1d, 0xc9, 0x53, 0x4e, 0xed, 0xda, - 0x42, 0x7a, 0xc9, 0x2a, 0xae, 0xa3, 0x2b, 0x91, 0x63, 0x95, 0x24, 0xe6, 0x7a, 0xbf, 0x13, 0x5a, - 0x97, 0x16, 0x89, 0x6d, 0xea, 0xca, 0xe5, 0x13, 0xc7, 0xb9, 0xd1, 0x94, 0x05, 0x60, 0x5f, 0x82, - 0x8d, 0x2e, 0x80, 0xda, 0x1d, 0xd3, 0xb7, 0x00, 0x7a, 0xd3, 0xcb, 0x1e, 0xbd, 0x00, 0x28, 0x8d, - 0x4b, 0x28, 0x41, 0x95, 0xdc, 0xbd, 0x38, 0x3e, 0xe1, 0x4a, 0x56, 0x21, 0x13, 0xed, 0xfb, 0x91, - 0x9a, 0x26, 0x34, 0x30, 0x49, 0x4d, 0x13, 0x1b, 0x86, 0x3e, 0x83, 0x4c, 0xb4, 0xe9, 0x47, 0x32, - 0x4d, 0xe8, 0x06, 0x4a, 0x5c, 0x8a, 0x5d, 0x58, 0xd0, 0x17, 0xf0, 0x06, 0x7d, 0x93, 0x33, 0x99, - 0x69, 0xad, 0xd5, 0x07, 0x89, 0xa3, 0x21, 0xd2, 0x55, 0xd4, 0x67, 0xfd, 0x98, 0x96, 0x23, 0x66, - 0x7d, 0xa5, 0x6d, 0xe8, 0x36, 0xd6, 0x8f, 0xeb, 0x32, 0x92, 0x86, 0x52, 0xe4, 0x12, 0x11, 0x37, - 0x3a, 0x70, 0x17, 0x43, 0xdd, 0x46, 0xb4, 0x24, 0x3e, 0xdb, 0x30, 0xa9, 0xf4, 0x1b, 0xa1, 0x15, - 0xcd, 0x4c, 0x9a, 0xc7, 0xe7, 0x34, 0xe5, 0x74, 0x67, 0x2f, 0xc3, 0x94, 0xda, 0xb5, 0x94, 0x28, - 0xc5, 0x6a, 0x3f, 0x0f, 0x5f, 0xc9, 0xa6, 0x67, 0xa4, 0x15, 0x98, 0x34, 0x6b, 0x51, 0xe3, 0x68, - 0x02, 0x25, 0xab, 0x84, 0x54, 0xd3, 0xdc, 0x20, 0x52, 0xf2, 0x49, 0x34, 0xcf, 0xce, 0x64, 0xfd, - 0xeb, 0xf7, 0x09, 0xdf, 0xe2, 0x1f, 0x10, 0xad, 0x66, 0x23, 0x6d, 0x56, 0x48, 0xf1, 0x92, 0x98, - 0xd6, 0xa4, 0xdc, 0x7a, 0xd2, 0x30, 0x37, 0xd3, 0x01, 0xcc, 0xf5, 0x75, 0x59, 0xa1, 0xbc, 0x16, - 0x8f, 0xfb, 0xdb, 0xa5, 0x06, 0xdc, 0xff, 0xe6, 0xfa, 0x5a, 0xac, 0x24, 0xb7, 0xa4, 0xe6, 0xab, - 0x44, 0x6e, 0xc7, 0xb0, 0x18, 0xdb, 0x76, 0x25, 0xf3, 0xc3, 0x41, 0x4d, 0x59, 0x89, 0x5c, 0x7f, - 0x06, 0xa8, 0xbf, 0x45, 0x4a, 0xde, 0x08, 0x13, 0xdb, 0xb8, 0xe4, 0x8d, 0x70, 0x40, 0x7f, 0xd5, - 0x01, 0x2c, 0xc4, 0xf5, 0x47, 0x21, 0x53, 0xb3, 0x67, 0x6c, 0x7f, 0x53, 0xcc, 0x21, 0x67, 0x89, - 0x4d, 0x99, 0xc0, 0x6d, 0x40, 0xb7, 0x54, 0xa2, 0xf2, 0x3f, 0x17, 0x3d, 0x70, 0xfd, 0x5d, 0x4d, - 0x32, 0x2f, 0xbe, 0xa1, 0xed, 0x69, 0x40, 0xba, 0x31, 0x5b, 0x75, 0xce, 0x5b, 0x4a, 0x03, 0x92, - 0x4c, 0x36, 0xfa, 0x3b, 0x9f, 0x64, 0x00, 0x88, 0xeb, 0x57, 0x7a, 0x06, 0x0b, 0xe2, 0x24, 0x54, - 0xdb, 0x7c, 0x50, 0x1f, 0x4d, 0xd8, 0x85, 0x24, 0x83, 0x41, 0x6c, 0x5f, 0x10, 0xcb, 0xd6, 0xe9, - 0x6f, 0xaa, 0x28, 0xd9, 0xba, 0xd2, 0x7f, 0x93, 0xd3, 0x5b, 0x75, 0xd0, 0xc7, 0x34, 0x5b, 0x67, - 0x6d, 0xd2, 0x49, 0x7b, 0x7d, 0x59, 0xe7, 0x14, 0xba, 0xc1, 0x96, 0xa8, 0xbf, 0xd0, 0x09, 0x75, - 0xce, 0x37, 0x27, 0xe0, 0x94, 0x48, 0x4f, 0xc0, 0x55, 0x41, 0x93, 0x6f, 0xc8, 0x53, 0xea, 0xe3, - 0xa5, 0xb4, 0x55, 0xcc, 0xf3, 0xa8, 0xb4, 0x55, 0xdc, 0x6b, 0x27, 0xcd, 0xf7, 0x8e, 0x45, 0x7e, - 0x15, 0xf2, 0xbb, 0x37, 0xf0, 0xb9, 0x32, 0xb7, 0x3e, 0xf8, 0x8d, 0x4f, 0xc9, 0x22, 0xc3, 0xd7, - 0x35, 0x35, 0x89, 0xe9, 0x7b, 0x8b, 0x53, 0x8f, 0xd1, 0x98, 0x07, 0xb9, 0xa7, 0xb4, 0xfc, 0xf9, - 0xac, 0xb2, 0x5d, 0xe6, 0xbf, 0xed, 0xe2, 0x7a, 0x7d, 0x85, 0x2b, 0xe5, 0x9b, 0x9d, 0xa1, 0xf5, - 0x18, 0x8a, 0x46, 0x58, 0x2b, 0xa0, 0x2a, 0xad, 0xbd, 0x68, 0xd0, 0x98, 0xda, 0x55, 0x0c, 0xc3, - 0x5c, 0x3c, 0x43, 0x5a, 0xc7, 0xa3, 0x41, 0x9f, 0xf8, 0x81, 0x2e, 0x66, 0x82, 0x0c, 0x83, 0xce, - 0x0e, 0x66, 0xd5, 0x78, 0x36, 0x42, 0xba, 0x9b, 0x1c, 0x84, 0x59, 0xac, 0x5a, 0x7c, 0x7a, 0xf0, - 0x5a, 0x16, 0xd3, 0x08, 0xa5, 0xc5, 0x34, 0xe8, 0xdd, 0x2c, 0x16, 0x61, 0xa8, 0x5b, 0x4c, 0x17, - 0x33, 0x41, 0x86, 0x9b, 0x2d, 0x16, 0xcf, 0xe6, 0xb6, 0x16, 0xfb, 0x9c, 0x9e, 0x14, 0x7b, 0xf4, - 0x5b, 0xa5, 0x77, 0xb2, 0x59, 0x56, 0xe4, 0x3d, 0x3a, 0x69, 0x6d, 0x0b, 0x3d, 0xa7, 0xbd, 0xdd, - 0x11, 0xf8, 0xed, 0xec, 0xb6, 0x96, 0xc4, 0x94, 0x5a, 0xae, 0x02, 0x8b, 0xcc, 0x72, 0x51, 0x71, - 0x13, 0x65, 0x49, 0x54, 0x7b, 0x4f, 0x1c, 0xbb, 0x51, 0x56, 0x77, 0xb5, 0xdf, 0x36, 0x75, 0x91, - 0x63, 0x8f, 0x64, 0x35, 0x8d, 0xfe, 0x94, 0x47, 0x67, 0x22, 0xaa, 0x65, 0x3a, 0x7a, 0xad, 0x80, - 0x2a, 0x74, 0x15, 0x74, 0xf0, 0xa0, 0x9c, 0x30, 0x9e, 0x0d, 0x35, 0xd2, 0xbe, 0x38, 0x9f, 0x23, - 0x32, 0x25, 0xcd, 0x9d, 0x2c, 0x94, 0x4c, 0x98, 0x6f, 0xa9, 0x5d, 0x92, 0x89, 0xd8, 0x39, 0xc3, - 0xf2, 0xd3, 0x9b, 0x2c, 0x13, 0xfd, 0xd5, 0x35, 0xf4, 0xdb, 0x90, 0x16, 0xc4, 0x37, 0x1b, 0x24, - 0x4a, 0xcd, 0x5f, 0x1a, 0x26, 0xb9, 0x41, 0xa8, 0x04, 0x49, 0x33, 0x25, 0x8a, 0xff, 0x09, 0x4c, - 0x72, 0x33, 0x0c, 0xd4, 0x20, 0x39, 0x5d, 0x5c, 0xdc, 0xc3, 0x41, 0xcc, 0xef, 0xf6, 0xdc, 0xa4, - 0x4c, 0xdc, 0xcf, 0x04, 0xa1, 0x1a, 0xed, 0x7d, 0x4f, 0xfa, 0x8d, 0xa5, 0x24, 0x96, 0x37, 0xfe, - 0xc2, 0x13, 0xe1, 0x5b, 0x4d, 0xe6, 0x7b, 0x23, 0x7d, 0xa2, 0xf6, 0x87, 0xb0, 0x46, 0x4b, 0x8b, - 0x77, 0x95, 0x38, 0x39, 0x5d, 0x5e, 0x09, 0x5f, 0x93, 0xa3, 0x3f, 0xef, 0x94, 0xc4, 0xec, 0xa6, - 0x5f, 0x96, 0x22, 0x5c, 0xab, 0x89, 0x5c, 0x6f, 0xa2, 0x1e, 0x70, 0x18, 0xad, 0x52, 0xdd, 0xef, - 0x28, 0xed, 0xe0, 0x48, 0x13, 0xf9, 0xbd, 0xa9, 0xe4, 0xbc, 0x2d, 0xfe, 0x17, 0xad, 0x08, 0x97, - 0x6a, 0x1f, 0x97, 0x24, 0xec, 0x41, 0x87, 0x0f, 0x55, 0xed, 0x96, 0xd2, 0x24, 0x57, 0x71, 0xd3, - 0xb2, 0x91, 0x02, 0x29, 0xa9, 0xa6, 0xd6, 0x26, 0x90, 0x9b, 0x56, 0x9f, 0x2f, 0x7d, 0x54, 0x64, - 0x67, 0xbc, 0xda, 0x50, 0xa0, 0xd4, 0x9e, 0x62, 0x3b, 0x0d, 0xa2, 0x2c, 0x58, 0xaa, 0x4c, 0x7f, - 0x04, 0x4b, 0x49, 0x95, 0x95, 0x57, 0xe0, 0x9c, 0xfe, 0xac, 0xcc, 0x43, 0x18, 0x7d, 0x5b, 0x56, - 0x0b, 0xdb, 0xea, 0xcb, 0xb6, 0x9a, 0x2a, 0xeb, 0x2f, 0xd6, 0x32, 0x55, 0xa6, 0x13, 0xea, 0x9c, - 0x6f, 0x4e, 0x95, 0x29, 0x91, 0x9e, 0x2a, 0xab, 0x82, 0x26, 0xd7, 0xaa, 0xe7, 0x63, 0x3a, 0x76, - 0x64, 0xcd, 0x2f, 0xb9, 0x9b, 0x27, 0xa7, 0x17, 0x5e, 0xdf, 0x35, 0xd0, 0x21, 0xfd, 0x46, 0x54, - 0xcc, 0x6f, 0x79, 0x25, 0xae, 0xf7, 0xc0, 0x1f, 0x0f, 0x23, 0xfc, 0xaa, 0xf1, 0xfc, 0x06, 0xd2, - 0x0d, 0xb8, 0x15, 0xac, 0xf0, 0x97, 0xdd, 0x3b, 0x88, 0x98, 0x00, 0x2f, 0x65, 0xbe, 0xfe, 0xcf, - 0x75, 0xe3, 0xeb, 0x6f, 0xd6, 0x8d, 0x7f, 0xf9, 0x66, 0xdd, 0xf8, 0xcd, 0x37, 0xeb, 0xc6, 0xd9, - 0x18, 0xc5, 0xd8, 0xfa, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa6, 0x68, 0x76, 0x6c, 0xb3, 0x56, - 0x00, 0x00, + // 6032 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7c, 0x4d, 0x70, 0x5b, 0x47, + 0x72, 0xb0, 0x00, 0xfe, 0xa2, 0xf9, 0x07, 0x0e, 0xff, 0x40, 0x88, 0x22, 0xb4, 0x4f, 0xbb, 0x5a, + 0xd9, 0xeb, 0x25, 0xbd, 0xa0, 0xfd, 0xd9, 0x6b, 0xaf, 0xad, 0x0f, 0x00, 0xff, 0x60, 0x51, 0x14, + 0xfd, 0x40, 0x42, 0xbb, 0x1b, 0x57, 0x31, 0x8f, 0xc0, 0x88, 0x7c, 0x45, 0x10, 0x0f, 0x7e, 0xef, + 0x41, 0xb2, 0x72, 0x4a, 0x52, 0x9b, 0x4d, 0x2a, 0xa9, 0x54, 0xe5, 0x90, 0x1c, 0x72, 0x4a, 0xaa, + 0x72, 0xcb, 0x21, 0xa7, 0x5c, 0xf7, 0xee, 0x4a, 0x55, 0x2a, 0x39, 0x25, 0x55, 0x39, 0x20, 0x9b, + 0x3d, 0xe2, 0x9a, 0x5b, 0x4e, 0xa9, 0xe9, 0x99, 0x79, 0x6f, 0xe6, 0xe1, 0x3d, 0x90, 0x94, 0x9d, + 0xe4, 0x22, 0x11, 0x3d, 0xd3, 0x3d, 0xdd, 0x3d, 0x3d, 0xdd, 0x3d, 0x3d, 0x0d, 0xc0, 0xbc, 0xd5, + 0xf5, 0x2f, 0x3c, 0xea, 0xbe, 0xb4, 0x1b, 0x74, 0xa3, 0xe3, 0x3a, 0xbe, 0x43, 0xc6, 0xf0, 0xbf, + 0xfc, 0xe2, 0xb9, 0x73, 0xee, 0xe0, 0x9f, 0x9b, 0xec, 0x2f, 0x3e, 0x98, 0xbf, 0x7b, 0xee, 0x38, + 0xe7, 0x2d, 0xba, 0x89, 0x9f, 0xce, 0xba, 0x2f, 0x36, 0xe9, 0x55, 0xc7, 0x7f, 0x2d, 0x06, 0x0b, + 0xd1, 0x41, 0xdf, 0xbe, 0xa2, 0x9e, 0x6f, 0x5d, 0x75, 0xc4, 0x84, 0x0f, 0xce, 0x6d, 0xff, 0xa2, + 0x7b, 0xb6, 0xd1, 0x70, 0xae, 0x36, 0xcf, 0x5d, 0xeb, 0xa5, 0xed, 0x5b, 0xbe, 0xed, 0xb4, 0xad, + 0xd6, 0xa6, 0x4f, 0x5b, 0xb4, 0xe3, 0xb8, 0xfe, 0xa6, 0xd5, 0xb1, 0x37, 0xfd, 0xd7, 0x1d, 0xea, + 0xf1, 0x7f, 0x05, 0x62, 0xe5, 0x36, 0x88, 0xaf, 0x5c, 0xab, 0xd3, 0xa1, 0x6e, 0xf8, 0x87, 0x20, + 0xf2, 0xf8, 0x36, 0x44, 0xe8, 0x4b, 0xda, 0xf6, 0xe5, 0x7f, 0x9c, 0x80, 0xf1, 0x2f, 0xf3, 0x30, + 0xb6, 0xc3, 0x00, 0xe4, 0x43, 0x18, 0x3d, 0x7e, 0xdd, 0xa1, 0xb9, 0xd4, 0xfd, 0xd4, 0xa3, 0xd9, + 0x62, 0x96, 0x8f, 0x6f, 0x3c, 0xeb, 0x50, 0x17, 0x49, 0x96, 0x49, 0xbf, 0x57, 0x98, 0x65, 0x84, + 0xde, 0x71, 0xae, 0x6c, 0x1f, 0x75, 0x64, 0x22, 0x06, 0x79, 0x0e, 0xb3, 0x26, 0xf5, 0x9c, 0xae, + 0xdb, 0xa0, 0xfb, 0xd4, 0x6a, 0x52, 0x37, 0x97, 0xbe, 0x9f, 0x7a, 0x34, 0x55, 0x5c, 0xda, 0xe0, + 0xf2, 0xea, 0x83, 0xe5, 0xe5, 0x7e, 0xaf, 0x40, 0x5c, 0x01, 0x0b, 0x89, 0xed, 0xdf, 0x31, 0x23, + 0x64, 0xc8, 0x17, 0x30, 0x53, 0xa1, 0xae, 0x5f, 0xea, 0xfa, 0x17, 0x8e, 0x6b, 0xfb, 0xaf, 0x73, + 0x23, 0x48, 0x77, 0x59, 0xd0, 0xd5, 0xc6, 0xea, 0xc5, 0xf2, 0x5a, 0xbf, 0x57, 0xc8, 0x35, 0xa8, + 0xeb, 0x9f, 0x5a, 0x12, 0xaa, 0x91, 0xd7, 0x89, 0x91, 0x9f, 0xc2, 0x74, 0x8d, 0xa9, 0xab, 0x71, + 0xec, 0x5c, 0xd2, 0xb6, 0x97, 0x1b, 0xd5, 0x98, 0x56, 0x87, 0xea, 0xc5, 0xf2, 0xdd, 0x7e, 0xaf, + 0xb0, 0xe2, 0x21, 0xec, 0xd4, 0x47, 0xa0, 0x46, 0x5a, 0xa3, 0x44, 0x7e, 0x1b, 0x66, 0x8f, 0x5c, + 0xe7, 0xa5, 0xed, 0xd9, 0x4e, 0x1b, 0x41, 0xb9, 0x31, 0xa4, 0xbd, 0x22, 0x68, 0xeb, 0x83, 0xf5, + 0x62, 0xf9, 0x5e, 0xbf, 0x57, 0x58, 0xed, 0x48, 0x28, 0x5f, 0x40, 0xd7, 0x8c, 0x8e, 0x42, 0x8e, + 0x61, 0xaa, 0xd2, 0xea, 0x7a, 0x3e, 0x75, 0x0f, 0xad, 0x2b, 0x9a, 0x1b, 0x47, 0xf2, 0x8b, 0x52, + 0x2f, 0xe1, 0x48, 0xbd, 0x58, 0xce, 0xf7, 0x7b, 0x85, 0xe5, 0x06, 0x07, 0x9d, 0xb6, 0xad, 0x2b, + 0x5d, 0xe5, 0x2a, 0x19, 0xd4, 0x37, 0xff, 0x58, 0x71, 0xda, 0x2f, 0xec, 0xf3, 0xdc, 0x84, 0xae, + 0x6f, 0x75, 0xac, 0xbe, 0x25, 0xf4, 0x2d, 0x28, 0x37, 0x10, 0x1a, 0xd1, 0xb7, 0x8a, 0x40, 0x3e, + 0x80, 0xd1, 0x13, 0x8f, 0xba, 0xb9, 0x49, 0x24, 0x3a, 0x23, 0x88, 0x32, 0x50, 0xbd, 0xc8, 0xad, + 0xab, 0xeb, 0x51, 0x57, 0xa3, 0x80, 0x08, 0x0c, 0xd1, 0x74, 0x5a, 0x34, 0x97, 0xd1, 0x10, 0x19, + 0xa8, 0xfe, 0x1e, 0x47, 0x74, 0x9d, 0x96, 0x2e, 0x16, 0x22, 0x90, 0x2a, 0x64, 0x98, 0x5c, 0x5e, + 0xc7, 0x6a, 0xd0, 0x1c, 0x20, 0x76, 0x56, 0x60, 0x07, 0xf0, 0xf2, 0x4a, 0xbf, 0x57, 0x58, 0x68, + 0xcb, 0x8f, 0x1a, 0x95, 0x10, 0x9b, 0x3c, 0x86, 0xf1, 0x1a, 0x75, 0x5f, 0x52, 0x37, 0x37, 0x85, + 0x74, 0xe6, 0xa4, 0x99, 0x20, 0xb0, 0x5e, 0x2c, 0x2f, 0xf6, 0x7b, 0x85, 0xac, 0x87, 0x9f, 0x34, + 0x1a, 0x02, 0x8d, 0xe9, 0xd6, 0xa4, 0x2f, 0xa9, 0xeb, 0xd1, 0xe3, 0x6e, 0xbb, 0x4d, 0x5b, 0xb9, + 0x69, 0x4d, 0xb7, 0xda, 0x98, 0xb4, 0x65, 0x97, 0x03, 0x4f, 0x7d, 0x84, 0xea, 0xba, 0xd5, 0x10, + 0xc8, 0x05, 0x64, 0xf9, 0x5f, 0x15, 0xa7, 0xdd, 0xa6, 0x0d, 0x76, 0x60, 0x73, 0x33, 0xb8, 0xc0, + 0xaa, 0x58, 0x20, 0x3a, 0x5c, 0x2f, 0x96, 0x0b, 0xfd, 0x5e, 0xe1, 0x2e, 0xa7, 0xcd, 0xb6, 0x4f, + 0x0c, 0x68, 0xcb, 0x0c, 0x50, 0x65, 0x72, 0x94, 0x1a, 0x0d, 0xea, 0x79, 0x26, 0xfd, 0xb2, 0x4b, + 0x3d, 0x3f, 0x37, 0xab, 0xc9, 0xa1, 0x8d, 0x49, 0x1b, 0xb1, 0x10, 0x78, 0xea, 0x72, 0xa8, 0x2e, + 0x87, 0x86, 0x40, 0x8e, 0x00, 0x4a, 0x9d, 0x4e, 0x8d, 0x7a, 0xcc, 0xd4, 0x73, 0x73, 0x48, 0x7a, + 0x41, 0x90, 0x7e, 0x4e, 0xcf, 0xc4, 0x40, 0xbd, 0x58, 0x5e, 0xed, 0xf7, 0x0a, 0x4b, 0x56, 0xa7, + 0x73, 0xea, 0x71, 0x90, 0x46, 0x54, 0xa1, 0xc1, 0xf5, 0x7e, 0xe5, 0xf8, 0x54, 0x18, 0x63, 0x2e, + 0x1b, 0xd1, 0xbb, 0x32, 0x26, 0xf9, 0x75, 0x11, 0x78, 0x2a, 0x4c, 0x3b, 0xaa, 0x77, 0x05, 0x81, + 0x9d, 0xf4, 0x6d, 0xcb, 0xb7, 0xce, 0x2c, 0x8f, 0x0a, 0xf3, 0x98, 0xd7, 0x4e, 0xba, 0x3e, 0x58, + 0xdf, 0xe2, 0x27, 0xbd, 0x29, 0xa0, 0xa7, 0x31, 0xf6, 0x12, 0xa1, 0xc7, 0x34, 0x12, 0x0a, 0x9e, + 0x23, 0xd7, 0x68, 0xe4, 0x15, 0x3d, 0x8b, 0xd7, 0x48, 0x38, 0x95, 0xec, 0xc3, 0xe4, 0x73, 0x7a, + 0xc6, 0xfd, 0xd2, 0x02, 0xd2, 0x9b, 0x0f, 0xe9, 0x71, 0x8f, 0xb4, 0xc5, 0x4f, 0x05, 0xa3, 0x36, + 0xe8, 0x8b, 0x02, 0x6c, 0xf2, 0x07, 0x29, 0x58, 0x91, 0xfe, 0x83, 0xfa, 0xaf, 0x1c, 0xf7, 0xd2, + 0x6e, 0x9f, 0x0b, 0xd7, 0xb1, 0x88, 0x94, 0xef, 0x47, 0x5c, 0x52, 0x64, 0x56, 0xbd, 0x58, 0xfe, + 0x7e, 0xbf, 0x57, 0x78, 0x10, 0xb8, 0xa7, 0x60, 0x3c, 0xce, 0x9f, 0x24, 0xad, 0x45, 0x7e, 0x2f, + 0x05, 0xcb, 0x42, 0x3a, 0x93, 0x36, 0x1c, 0xb7, 0x19, 0xb2, 0xb1, 0x84, 0x6c, 0x14, 0x82, 0xd3, + 0x1a, 0x37, 0xa9, 0x5e, 0x2c, 0x3f, 0xec, 0xf7, 0x0a, 0x86, 0x50, 0xdc, 0xa9, 0x2b, 0x87, 0xe3, + 0x98, 0x48, 0x58, 0x88, 0x59, 0x02, 0x0b, 0x2d, 0x47, 0x2e, 0x7d, 0x41, 0x5d, 0xda, 0x6e, 0xd0, + 0xdc, 0xb2, 0x66, 0x09, 0xfa, 0xa0, 0xf4, 0xf9, 0x2c, 0x50, 0x9d, 0x76, 0x02, 0xb0, 0x6e, 0x09, + 0x3a, 0x0a, 0xf9, 0x12, 0x88, 0x50, 0x40, 0xa9, 0xdb, 0xb4, 0x7d, 0x21, 0xe0, 0x0a, 0xae, 0x72, + 0x57, 0xd7, 0xb3, 0x32, 0xa1, 0x5e, 0x2c, 0x1b, 0xfd, 0x5e, 0x61, 0x5d, 0xaa, 0xd8, 0x62, 0x43, + 0x71, 0x82, 0xc5, 0x10, 0x67, 0x9e, 0xf7, 0xc0, 0x69, 0x5c, 0xe6, 0x72, 0x9a, 0xe7, 0x65, 0x20, + 0xe9, 0xb2, 0x5b, 0x4e, 0xe3, 0x52, 0xf7, 0xbc, 0x6c, 0x94, 0xf8, 0xb0, 0x20, 0x76, 0xc9, 0xa4, + 0x9e, 0xef, 0xda, 0xe8, 0x3b, 0xbc, 0xdc, 0x2a, 0xd2, 0x59, 0x93, 0x3e, 0x78, 0x70, 0x46, 0xfd, + 0x3d, 0xce, 0xad, 0x30, 0x84, 0x53, 0x57, 0x19, 0xd3, 0x96, 0x89, 0x23, 0x5f, 0x06, 0x98, 0x94, + 0x19, 0x84, 0xb1, 0x0f, 0x63, 0xcf, 0x2d, 0xbf, 0x71, 0x41, 0x1e, 0xc3, 0xd8, 0x13, 0xbb, 0xdd, + 0xf4, 0x72, 0xa9, 0xfb, 0x23, 0x18, 0x00, 0x78, 0x62, 0x83, 0x83, 0x6c, 0xa0, 0xbc, 0xf2, 0x75, + 0xaf, 0x70, 0xa7, 0xdf, 0x2b, 0xcc, 0x5d, 0xb2, 0x69, 0x4a, 0x76, 0xc3, 0xf1, 0x8c, 0xbf, 0x4f, + 0x43, 0x26, 0x98, 0x4d, 0xd6, 0x60, 0x94, 0xfd, 0x8f, 0x69, 0x52, 0xa6, 0x3c, 0xd9, 0xef, 0x15, + 0x46, 0x19, 0x9e, 0x89, 0x50, 0x52, 0x84, 0xa9, 0x03, 0xc7, 0x6a, 0xd6, 0x68, 0xc3, 0xa5, 0xbe, + 0x87, 0x79, 0xd0, 0x64, 0x39, 0xdb, 0xef, 0x15, 0xa6, 0x5b, 0x8e, 0xd5, 0x3c, 0xf5, 0x38, 0xdc, + 0x54, 0x27, 0x31, 0x8a, 0x18, 0xc4, 0x47, 0x42, 0x8a, 0x2c, 0x1c, 0x99, 0x08, 0x25, 0x9f, 0xc1, + 0xf8, 0xae, 0xdd, 0x62, 0x8e, 0x6b, 0x14, 0xf9, 0x5f, 0x8b, 0xf2, 0xbf, 0xc1, 0x87, 0x77, 0xda, + 0xbe, 0xfb, 0x9a, 0x47, 0xa1, 0x17, 0x08, 0x50, 0x04, 0x11, 0x14, 0xc8, 0xbb, 0x30, 0x51, 0xeb, + 0x9e, 0x21, 0xfb, 0x63, 0xb8, 0x18, 0xa6, 0x62, 0x5e, 0xf7, 0xec, 0x94, 0x89, 0xa0, 0x20, 0xc8, + 0x69, 0xf9, 0x1f, 0xc3, 0x94, 0x42, 0x9e, 0x64, 0x61, 0xe4, 0x92, 0xbe, 0xe6, 0xb2, 0x9b, 0xec, + 0x4f, 0xb2, 0x08, 0x63, 0x2f, 0xad, 0x56, 0x97, 0xa2, 0xa8, 0x19, 0x93, 0x7f, 0xf8, 0x28, 0xfd, + 0x61, 0xca, 0xf8, 0x1c, 0xc6, 0x58, 0xbe, 0xe5, 0x91, 0x07, 0x30, 0x52, 0xab, 0xed, 0x23, 0xd2, + 0x74, 0x79, 0xbe, 0xdf, 0x2b, 0xcc, 0x78, 0xde, 0x85, 0xb2, 0x18, 0x1b, 0x65, 0x93, 0x8e, 0x0f, + 0x6a, 0x48, 0x45, 0x4c, 0xf2, 0x5b, 0xea, 0x5e, 0xb0, 0x51, 0xe3, 0x9f, 0xc6, 0x21, 0xcb, 0x32, + 0x02, 0xa4, 0x2b, 0x43, 0xc6, 0x3b, 0x90, 0x39, 0xea, 0x9e, 0xb5, 0xec, 0xc6, 0x13, 0xc1, 0xd9, + 0x74, 0x79, 0xb6, 0xdf, 0x2b, 0x40, 0x07, 0x81, 0xa7, 0x97, 0xf4, 0xb5, 0x19, 0x4e, 0x20, 0x8f, + 0x60, 0x92, 0x51, 0x60, 0x0a, 0xe6, 0x2c, 0x97, 0xa7, 0xfb, 0xbd, 0xc2, 0x64, 0x57, 0xc0, 0xcc, + 0x60, 0x94, 0xd4, 0x60, 0x62, 0xe7, 0xab, 0x8e, 0xed, 0x52, 0x4f, 0xa4, 0x9d, 0xf9, 0x0d, 0x7e, + 0x17, 0xd8, 0x90, 0x77, 0x81, 0x8d, 0x63, 0x79, 0x17, 0x28, 0xdf, 0x13, 0x36, 0x34, 0x4f, 0x39, + 0x4a, 0xc8, 0xf9, 0x9f, 0xfd, 0x7b, 0x21, 0x65, 0x4a, 0x4a, 0xe4, 0x1d, 0x18, 0xdf, 0x75, 0xdc, + 0x2b, 0xcb, 0xc7, 0x6c, 0x33, 0x23, 0xf6, 0x0b, 0x21, 0xda, 0x7e, 0x21, 0x84, 0xec, 0xc2, 0xac, + 0xe9, 0x74, 0x7d, 0x7a, 0xec, 0xc8, 0xe0, 0xc5, 0xb7, 0x6d, 0xbd, 0xdf, 0x2b, 0xe4, 0x5d, 0x36, + 0x72, 0xea, 0x3b, 0x83, 0x61, 0xca, 0x8c, 0x60, 0x91, 0x1d, 0x98, 0xd5, 0xc2, 0xac, 0x97, 0x1b, + 0xbf, 0x3f, 0xf2, 0x28, 0x23, 0x5c, 0x90, 0x16, 0x9c, 0x55, 0x9d, 0x47, 0x90, 0xc8, 0x21, 0xcc, + 0x3f, 0xe9, 0x9e, 0x51, 0xb7, 0x4d, 0x7d, 0xea, 0x49, 0x8e, 0x26, 0x90, 0xa3, 0xfb, 0xfd, 0x5e, + 0x61, 0xed, 0x32, 0x18, 0x8c, 0xe1, 0x69, 0x10, 0x95, 0x50, 0x98, 0x13, 0x8c, 0xca, 0x98, 0x27, + 0x72, 0xc3, 0x65, 0x61, 0xe3, 0x91, 0xd1, 0xf2, 0x03, 0xa1, 0xe5, 0xbb, 0x81, 0xec, 0x32, 0x92, + 0x2a, 0x0b, 0x45, 0x69, 0x92, 0x2d, 0x98, 0x3c, 0x74, 0x9a, 0x14, 0xcf, 0x58, 0x06, 0xb9, 0xe5, + 0x29, 0x9f, 0xd3, 0xa4, 0x91, 0x7c, 0xd8, 0x0c, 0x26, 0x92, 0x03, 0x18, 0x3b, 0xf1, 0xac, 0x73, + 0x9e, 0x36, 0xce, 0x16, 0xbf, 0x23, 0x38, 0x8a, 0x5a, 0x1f, 0xde, 0x41, 0x70, 0x62, 0x79, 0x81, + 0xb9, 0x90, 0x2e, 0xfb, 0x53, 0x75, 0x21, 0x38, 0x46, 0x3e, 0x07, 0x10, 0x5c, 0x95, 0x3a, 0x1d, + 0x91, 0x41, 0xce, 0xeb, 0x42, 0x96, 0x3a, 0x9d, 0xf2, 0xba, 0x90, 0x6f, 0x39, 0x90, 0xcf, 0xea, + 0x74, 0x14, 0x6a, 0x0a, 0x11, 0x63, 0x1b, 0x32, 0xc1, 0xda, 0x64, 0x02, 0x46, 0x4a, 0xad, 0x56, + 0xf6, 0x0e, 0xfb, 0xa3, 0x56, 0xdb, 0xcf, 0xa6, 0xc8, 0x2c, 0x40, 0xa8, 0xf0, 0x6c, 0x9a, 0x4c, + 0xc3, 0xa4, 0x54, 0x48, 0x76, 0x04, 0xe7, 0x77, 0x3a, 0xd9, 0x51, 0xe3, 0x5f, 0x53, 0x03, 0x7b, + 0xc0, 0x7c, 0x58, 0x8d, 0xdf, 0x9e, 0x51, 0x65, 0xdc, 0xd1, 0xa1, 0x0f, 0x13, 0x97, 0x6a, 0xd4, + 0x9a, 0xa9, 0x4e, 0x62, 0xc7, 0xea, 0x88, 0x49, 0xd3, 0x70, 0x5a, 0xea, 0xb1, 0xea, 0x08, 0x98, + 0x19, 0x8c, 0x92, 0xa2, 0x72, 0x00, 0x47, 0x42, 0x27, 0x24, 0x0f, 0xa0, 0xba, 0x19, 0xc1, 0x51, + 0x2c, 0x86, 0xcc, 0x8b, 0x73, 0x83, 0x38, 0x31, 0x9b, 0x1f, 0xcc, 0x33, 0x7e, 0x95, 0x52, 0x75, + 0x1e, 0x38, 0xd9, 0x54, 0xac, 0x93, 0x7d, 0x07, 0x32, 0x22, 0xac, 0x57, 0xb7, 0x05, 0xff, 0xe8, + 0x43, 0x64, 0x46, 0x60, 0x37, 0xcd, 0x70, 0x02, 0xd9, 0x04, 0xe0, 0x0e, 0xa5, 0xd4, 0x6c, 0xba, + 0x42, 0x88, 0xb9, 0x7e, 0xaf, 0x30, 0x25, 0x5c, 0x8e, 0xd5, 0x6c, 0xba, 0xa6, 0x32, 0x85, 0x69, + 0x54, 0xbd, 0xad, 0x8d, 0x86, 0x1a, 0x55, 0xef, 0x65, 0xda, 0x5d, 0xcc, 0x68, 0xc1, 0xec, 0x1e, + 0xf5, 0x99, 0x0a, 0xa4, 0xa3, 0x1b, 0x2e, 0xc2, 0x4f, 0x60, 0xea, 0xb9, 0xed, 0x5f, 0xe8, 0x91, + 0x07, 0xef, 0x7e, 0xaf, 0x6c, 0xff, 0x42, 0x46, 0x1e, 0x45, 0x55, 0xea, 0x74, 0x63, 0x07, 0xe6, + 0xc4, 0x6a, 0x81, 0x5f, 0x2d, 0xea, 0x04, 0x53, 0x61, 0x28, 0x53, 0x09, 0xea, 0x64, 0x68, 0xd4, + 0xd1, 0x90, 0xda, 0x80, 0xeb, 0xe1, 0x61, 0x38, 0xe9, 0xbe, 0x80, 0xa7, 0x28, 0xe2, 0x92, 0xa2, + 0x8e, 0xc8, 0x38, 0x81, 0x99, 0xa3, 0x56, 0xf7, 0xdc, 0x6e, 0xb3, 0xdd, 0xae, 0xd1, 0x2f, 0xc9, + 0x36, 0x40, 0x08, 0x10, 0x2b, 0xc8, 0x24, 0x39, 0x1c, 0xa8, 0x6f, 0x89, 0x6d, 0x42, 0x08, 0xfa, + 0x0e, 0x53, 0xc1, 0x33, 0xfe, 0x78, 0x04, 0x88, 0x58, 0x83, 0x5d, 0xe7, 0x69, 0x8d, 0xfa, 0xcc, + 0x4d, 0x2d, 0x43, 0xba, 0xba, 0x2d, 0xb4, 0x3e, 0xde, 0xef, 0x15, 0xd2, 0x76, 0xd3, 0x4c, 0x57, + 0xb7, 0xc9, 0x7b, 0x30, 0x86, 0xd3, 0x50, 0xd7, 0xb3, 0xc1, 0x7a, 0x2a, 0x85, 0x72, 0xa6, 0xdf, + 0x2b, 0x8c, 0x79, 0xec, 0x4f, 0x93, 0x4f, 0x26, 0xef, 0x43, 0x66, 0x9b, 0xb6, 0xe8, 0xb9, 0xe5, + 0x3b, 0xd2, 0x76, 0xd0, 0x1d, 0x35, 0x25, 0x50, 0xd9, 0xa2, 0x70, 0x26, 0x0b, 0x1c, 0x26, 0xb5, + 0x3c, 0xa7, 0xad, 0x06, 0x0e, 0x17, 0x21, 0x6a, 0xe0, 0xe0, 0x73, 0xc8, 0x5f, 0xa4, 0x60, 0xaa, + 0xd4, 0x6e, 0x3b, 0xbc, 0x1a, 0xe4, 0x89, 0xf2, 0xc3, 0xd2, 0x46, 0x50, 0x3d, 0x3a, 0xb0, 0xce, + 0x68, 0xab, 0xce, 0x62, 0xb5, 0x57, 0xfe, 0x82, 0x79, 0x9d, 0x7f, 0xeb, 0x15, 0x3e, 0x7e, 0x93, + 0x82, 0xd4, 0xc6, 0xb1, 0x6b, 0xd9, 0xbe, 0x87, 0xb7, 0xb1, 0x70, 0x41, 0xd5, 0xcc, 0x14, 0x3e, + 0xc8, 0x5b, 0x30, 0xc6, 0x2e, 0xe6, 0x32, 0xfe, 0xe0, 0x66, 0xb3, 0xbb, 0xbb, 0x96, 0x75, 0xe1, + 0x0c, 0xe3, 0x01, 0x64, 0x84, 0x26, 0xab, 0xdb, 0x49, 0x5b, 0x60, 0x3c, 0x85, 0x87, 0xa6, 0x83, + 0xda, 0xa5, 0x1e, 0xf5, 0x8f, 0x2c, 0xcf, 0x7b, 0xe5, 0xb8, 0x4d, 0xbc, 0x9c, 0x08, 0x93, 0x94, + 0xd6, 0xfc, 0x00, 0x26, 0x10, 0x1c, 0x90, 0xc1, 0x9d, 0xc1, 0xcb, 0x8d, 0x29, 0x47, 0x8c, 0x0a, + 0xac, 0xed, 0x51, 0x7f, 0x90, 0xd6, 0xad, 0x88, 0xfc, 0x22, 0x05, 0x85, 0x8a, 0x4b, 0x63, 0x99, + 0xba, 0xd9, 0x51, 0x5e, 0x13, 0x95, 0xb8, 0x74, 0x38, 0xca, 0x94, 0x2e, 0xaa, 0x6d, 0xdf, 0x83, + 0x91, 0xe3, 0xe3, 0x03, 0x34, 0x9d, 0x11, 0xd4, 0xe0, 0x88, 0xef, 0xb7, 0xfe, 0xab, 0x57, 0x98, + 0xdc, 0xee, 0xf2, 0x4a, 0x9d, 0xc9, 0xc6, 0x8d, 0x19, 0x98, 0x3a, 0xb2, 0xdb, 0xe7, 0x62, 0x45, + 0xe3, 0x4f, 0xd2, 0x30, 0xcd, 0x3f, 0x7b, 0x1d, 0xa7, 0xcd, 0xbd, 0xbc, 0xea, 0x93, 0x52, 0x37, + 0xf0, 0x49, 0xe4, 0x43, 0x98, 0x11, 0x17, 0x59, 0xea, 0xe2, 0x75, 0x94, 0x73, 0x88, 0x17, 0x01, + 0x7e, 0x95, 0x3d, 0x7d, 0xc9, 0x47, 0x4c, 0x7d, 0x22, 0x39, 0x80, 0x59, 0x0e, 0xd8, 0xa5, 0x96, + 0xdf, 0x0d, 0x73, 0xaa, 0x39, 0x11, 0x04, 0x25, 0x98, 0x9b, 0x84, 0xa0, 0xf5, 0x42, 0x00, 0xcd, + 0x08, 0x2e, 0x79, 0x0c, 0x73, 0x47, 0xae, 0xf3, 0xd5, 0x6b, 0xc5, 0x0b, 0xf3, 0x53, 0xb1, 0xc4, + 0x52, 0xb0, 0x0e, 0x1b, 0x3a, 0x55, 0x7d, 0x71, 0x74, 0xb6, 0xf1, 0xeb, 0x34, 0x4c, 0x06, 0xd4, + 0x36, 0xd4, 0x50, 0x29, 0xfc, 0x1c, 0x7a, 0xff, 0x30, 0x9f, 0x31, 0x95, 0x19, 0x64, 0x15, 0x83, + 0xa7, 0xf0, 0xb0, 0x13, 0x6c, 0x03, 0xac, 0x4e, 0xc7, 0x64, 0x30, 0x66, 0xa7, 0xdb, 0x65, 0x14, + 0x6d, 0x92, 0xdb, 0x69, 0xf3, 0xcc, 0x4c, 0x6f, 0x97, 0xd9, 0x8e, 0x3e, 0xab, 0x6e, 0x57, 0x90, + 0xcb, 0x49, 0xbe, 0xa3, 0x8e, 0xdd, 0x6c, 0x98, 0x08, 0x65, 0xa3, 0xb5, 0xd2, 0xd3, 0x03, 0x3c, + 0xa5, 0x62, 0xd4, 0xb3, 0xae, 0x5a, 0x26, 0x42, 0xc9, 0xc7, 0xd2, 0x83, 0x56, 0x9c, 0xb6, 0xef, + 0x3a, 0x2d, 0x0f, 0xab, 0x7d, 0x93, 0x9a, 0xa7, 0x6c, 0x88, 0x21, 0x33, 0x32, 0x95, 0x3c, 0x87, + 0x95, 0x52, 0xf3, 0xa5, 0xd5, 0x6e, 0xd0, 0x26, 0x1f, 0x79, 0xee, 0xb8, 0x97, 0x2f, 0x5a, 0xce, + 0x2b, 0x0f, 0x13, 0xb7, 0x49, 0x91, 0x02, 0x8a, 0x29, 0xa7, 0x82, 0xdc, 0x2b, 0x39, 0xc9, 0x4c, + 0xc2, 0x26, 0x05, 0x18, 0xab, 0xb4, 0x9c, 0x6e, 0x13, 0x33, 0xb6, 0x49, 0x7e, 0x10, 0x1a, 0x0c, + 0x60, 0x72, 0xb8, 0xf1, 0x23, 0x98, 0x67, 0xde, 0xcb, 0xa7, 0x37, 0x0e, 0x61, 0xc6, 0x11, 0x40, + 0x8d, 0x5e, 0x59, 0x9d, 0x0b, 0x87, 0x6d, 0x4b, 0x59, 0xfd, 0x24, 0x7c, 0x3a, 0x09, 0xee, 0xf1, + 0x62, 0xa0, 0xbe, 0x25, 0x03, 0xb5, 0x9c, 0x69, 0x2a, 0x58, 0xc6, 0x3f, 0xa6, 0x81, 0xe0, 0x7d, + 0xb6, 0xe6, 0xbb, 0xd4, 0xba, 0x92, 0x6c, 0xfc, 0x18, 0xa6, 0xf9, 0x09, 0xe5, 0x60, 0x64, 0x87, + 0x05, 0x0c, 0x6e, 0x8b, 0xea, 0xd0, 0xfe, 0x1d, 0x53, 0x9b, 0xca, 0x50, 0x4d, 0xea, 0x75, 0xaf, + 0x24, 0x6a, 0x5a, 0x43, 0x55, 0x87, 0x18, 0xaa, 0xfa, 0x99, 0x3c, 0x86, 0xd9, 0x8a, 0x73, 0xd5, + 0x61, 0x3a, 0x11, 0xc8, 0x23, 0xc2, 0x2d, 0x8b, 0x75, 0xb5, 0xc1, 0xfd, 0x3b, 0x66, 0x64, 0x3a, + 0x39, 0x84, 0x85, 0xdd, 0x56, 0xd7, 0xbb, 0x28, 0xb5, 0x9b, 0x95, 0x96, 0xe3, 0x49, 0x2a, 0xa3, + 0xe2, 0x76, 0x22, 0x4e, 0xd2, 0xe0, 0x0c, 0x76, 0x5d, 0x8e, 0x01, 0x93, 0xef, 0x89, 0xd2, 0xbf, + 0x08, 0x0f, 0x33, 0x1b, 0xe2, 0x65, 0xe0, 0x59, 0x9b, 0x3e, 0x7b, 0xb1, 0x7f, 0xc7, 0xe4, 0xa3, + 0xe5, 0x0c, 0x4c, 0x48, 0x2f, 0xb2, 0x09, 0xf3, 0x8a, 0x3a, 0x59, 0x40, 0xeb, 0x7a, 0x24, 0x0f, + 0x93, 0x27, 0x1d, 0x76, 0xbd, 0x95, 0x6e, 0xd1, 0x0c, 0x3e, 0x1b, 0xef, 0xe8, 0x9a, 0x26, 0x6b, + 0x6a, 0xa2, 0xc5, 0x27, 0x87, 0x00, 0x63, 0x5f, 0x57, 0xee, 0xf0, 0xd9, 0xda, 0xba, 0xe9, 0xc8, + 0xba, 0xd9, 0xa8, 0xae, 0x8d, 0xa5, 0x58, 0xe5, 0x19, 0xbf, 0x9f, 0x82, 0xc5, 0x3d, 0xea, 0x63, + 0xc1, 0x90, 0xf9, 0x98, 0x20, 0x60, 0xfc, 0x40, 0xad, 0x1d, 0x73, 0x7b, 0x9d, 0xe9, 0xf7, 0x0a, + 0x99, 0xa0, 0x52, 0xac, 0x56, 0x87, 0x3f, 0x81, 0xd9, 0xda, 0xa5, 0xdd, 0xa9, 0x5b, 0x2d, 0xbb, + 0x89, 0x3e, 0x58, 0x78, 0x87, 0x25, 0xf4, 0x66, 0x97, 0x76, 0xe7, 0xf4, 0x65, 0x38, 0x94, 0x32, + 0x23, 0x93, 0x8d, 0x67, 0xb0, 0x14, 0xe1, 0x41, 0x38, 0xe9, 0xff, 0x07, 0x13, 0x02, 0x24, 0x0e, + 0xc0, 0x40, 0xd9, 0x79, 0xaa, 0xdf, 0x2b, 0x4c, 0x78, 0x02, 0x4d, 0x4e, 0x36, 0x9e, 0xc2, 0xf2, + 0x49, 0xc7, 0xa3, 0x6e, 0x48, 0x53, 0x8a, 0xb5, 0x15, 0xd4, 0xb1, 0x53, 0xf1, 0x75, 0x6c, 0xe8, + 0xf7, 0x0a, 0xe3, 0x9c, 0xa0, 0xac, 0x5d, 0x1b, 0x0d, 0x58, 0xe6, 0x67, 0x79, 0x80, 0xdc, 0xad, + 0xb4, 0x24, 0x4f, 0x7f, 0x3a, 0xf6, 0xf4, 0x57, 0x21, 0x2f, 0x16, 0x69, 0xb5, 0xbe, 0xd9, 0x76, + 0x18, 0xff, 0x90, 0x82, 0x95, 0x3d, 0xda, 0xa6, 0xae, 0x85, 0x2c, 0x6b, 0xa1, 0x57, 0x2d, 0x00, + 0xa4, 0x86, 0x16, 0x00, 0x0a, 0x32, 0x59, 0x49, 0x63, 0xb2, 0x82, 0x2e, 0x0e, 0x93, 0x15, 0x91, + 0xa2, 0xb0, 0x40, 0x70, 0x62, 0x56, 0x45, 0x12, 0x87, 0x81, 0xa0, 0xeb, 0xda, 0x26, 0x83, 0x91, + 0x6a, 0x58, 0x3c, 0x18, 0xbd, 0xb6, 0x78, 0xb0, 0x20, 0xae, 0x7d, 0x13, 0xa2, 0x78, 0xa0, 0x95, + 0x0c, 0x8c, 0x8f, 0x21, 0x37, 0x28, 0x8b, 0xb0, 0x8f, 0x02, 0x8c, 0xf1, 0x3a, 0xee, 0x40, 0x3a, + 0xc2, 0xe1, 0xc6, 0x76, 0x68, 0xdd, 0xa2, 0x6a, 0x19, 0x14, 0x4d, 0x22, 0x27, 0x6b, 0xc8, 0x85, + 0xc7, 0xa8, 0x85, 0xf6, 0x29, 0xa8, 0x88, 0xf5, 0x3f, 0x62, 0xf6, 0xc9, 0x2b, 0xd3, 0xa9, 0xe4, + 0xca, 0xb4, 0xb0, 0x51, 0x8e, 0x2a, 0x11, 0x8c, 0xe7, 0xb0, 0xac, 0x11, 0x0d, 0xad, 0xfe, 0x13, + 0x98, 0x94, 0xb0, 0x48, 0x2e, 0xaf, 0x91, 0xc5, 0x7d, 0xf3, 0x24, 0x72, 0x80, 0x62, 0xfc, 0x3a, + 0x05, 0x2b, 0xdc, 0xe9, 0x0c, 0xca, 0x7d, 0xf3, 0xdd, 0xff, 0xdf, 0xb8, 0xe4, 0x91, 0x77, 0x01, + 0x4a, 0xcf, 0x6b, 0xcc, 0x9a, 0x4a, 0xe6, 0xa1, 0x28, 0xee, 0x20, 0x8a, 0xf5, 0xca, 0x3b, 0x65, + 0xb6, 0x76, 0x6a, 0xb9, 0x6d, 0x53, 0x99, 0xf3, 0xd9, 0xe8, 0x64, 0x3a, 0x3b, 0x62, 0xd4, 0x21, + 0x37, 0x28, 0xe1, 0xb7, 0xb0, 0x27, 0x7b, 0xb0, 0xa2, 0x1c, 0xf4, 0x6f, 0x6c, 0x31, 0xe1, 0x8a, + 0xdf, 0xa2, 0xc5, 0x84, 0x13, 0xbf, 0x35, 0x8b, 0xa9, 0xc2, 0x02, 0x27, 0xac, 0x9f, 0xae, 0xa2, + 0x7a, 0xba, 0x62, 0x5f, 0x49, 0x06, 0x0f, 0xdc, 0x53, 0x3c, 0x70, 0x72, 0x4a, 0xc8, 0xe1, 0xfb, + 0x30, 0x2e, 0x9e, 0x99, 0x39, 0x7f, 0x31, 0xc4, 0xd0, 0xf3, 0xf2, 0xb7, 0x65, 0x53, 0x4c, 0x36, + 0x72, 0x28, 0x32, 0x4b, 0x3e, 0x45, 0xb5, 0x45, 0x3a, 0x44, 0xe3, 0x73, 0xe6, 0xe2, 0x22, 0x23, + 0xdf, 0x30, 0x6a, 0x3c, 0x83, 0x1c, 0x8f, 0x1a, 0x0a, 0xd5, 0x6f, 0x14, 0x37, 0x3e, 0x84, 0x1c, + 0x37, 0xa7, 0x18, 0x82, 0xc3, 0x83, 0xc1, 0x3a, 0xac, 0x05, 0xc1, 0x20, 0x4e, 0xfa, 0x3f, 0x4c, + 0xc1, 0xea, 0x1e, 0xf5, 0xf5, 0xb7, 0xb2, 0xff, 0x93, 0xd8, 0xfd, 0x05, 0xe4, 0xe3, 0x18, 0x11, + 0x5b, 0xf1, 0x69, 0x74, 0x2b, 0x12, 0x1f, 0x06, 0xe3, 0xb7, 0xe4, 0xe7, 0x70, 0x97, 0x6f, 0x89, + 0x3e, 0x5f, 0x0a, 0xfa, 0x71, 0x64, 0x57, 0x12, 0xa9, 0xc7, 0xed, 0xce, 0x9f, 0xa6, 0xe0, 0x2e, + 0x57, 0x72, 0x3c, 0xf1, 0x5b, 0x69, 0xf1, 0x01, 0x8c, 0xef, 0x3b, 0xec, 0xae, 0x2e, 0x36, 0x14, + 0xc5, 0xb9, 0x70, 0x3c, 0x9f, 0x39, 0x06, 0x31, 0x34, 0xfc, 0xa5, 0xc3, 0x38, 0x84, 0x42, 0xb0, + 0xe7, 0xdf, 0xc2, 0xc6, 0x1a, 0x0d, 0x20, 0x92, 0x4c, 0xa5, 0x66, 0x4a, 0x12, 0xab, 0x30, 0x52, + 0xa9, 0x99, 0xe2, 0xa1, 0x00, 0x83, 0x76, 0xc3, 0x73, 0x4d, 0x06, 0x8b, 0x7a, 0xf0, 0xf4, 0x4d, + 0xca, 0x74, 0xbf, 0x05, 0x0b, 0xda, 0x22, 0x62, 0xdf, 0xd7, 0x60, 0xb4, 0x42, 0x5d, 0x5f, 0x2c, + 0x83, 0x92, 0x36, 0xa8, 0xeb, 0x9b, 0x08, 0x25, 0x0f, 0x61, 0xa2, 0x52, 0xc2, 0x32, 0x32, 0xe6, + 0x16, 0xd3, 0xdc, 0x31, 0x35, 0xac, 0xd3, 0x06, 0x96, 0x96, 0xe5, 0xa0, 0xf1, 0x47, 0x29, 0x85, + 0x3a, 0x43, 0xbf, 0x5e, 0x86, 0x4d, 0x76, 0x6b, 0x62, 0x3a, 0x53, 0x44, 0xc0, 0xb0, 0x25, 0xee, + 0xd4, 0x28, 0x81, 0x32, 0xe5, 0xa6, 0xe5, 0x84, 0x2f, 0x60, 0x51, 0xe7, 0xe4, 0x5b, 0x15, 0xf4, + 0xbb, 0x58, 0xec, 0x64, 0x31, 0x4e, 0x8a, 0x48, 0xd4, 0x9b, 0xa2, 0x30, 0x90, 0x0f, 0x20, 0x2b, + 0x66, 0x85, 0x07, 0xec, 0x81, 0x4c, 0xd2, 0xf8, 0xf1, 0xd2, 0x9b, 0x43, 0x64, 0x2d, 0xe9, 0xfb, + 0xf2, 0x2e, 0x7a, 0xdd, 0x0a, 0x97, 0x90, 0x7b, 0xba, 0x5b, 0x2a, 0x75, 0xfd, 0x0b, 0xda, 0xf6, + 0xed, 0x86, 0xe5, 0xd3, 0xca, 0x85, 0xd5, 0x6a, 0xd1, 0xf6, 0x39, 0x2a, 0xea, 0xa4, 0xb8, 0x1b, + 0x84, 0x17, 0xf1, 0x1e, 0x50, 0xdc, 0x0d, 0x66, 0x98, 0x6c, 0x9c, 0x3c, 0x82, 0xd1, 0xe3, 0x67, + 0xc7, 0x47, 0xe2, 0x62, 0xb8, 0x28, 0xe6, 0x31, 0x50, 0x38, 0x11, 0x67, 0x18, 0x5f, 0xc1, 0x4a, + 0x64, 0xb1, 0x40, 0xaa, 0x87, 0x72, 0xad, 0x14, 0x5e, 0x7a, 0x83, 0xb5, 0xe4, 0x84, 0xfd, 0x3b, + 0x7c, 0xb1, 0xb7, 0xb4, 0xc5, 0x16, 0x94, 0xc5, 0x94, 0x99, 0x38, 0x45, 0xbc, 0x8d, 0x22, 0xcc, + 0xf8, 0x1d, 0x98, 0x56, 0x19, 0x67, 0xf7, 0xac, 0x27, 0xf4, 0xf5, 0xbe, 0xd5, 0x6e, 0xb6, 0xa4, + 0x3e, 0x42, 0x00, 0x1b, 0x0d, 0xa6, 0x8a, 0x8b, 0x56, 0x08, 0x20, 0x8b, 0x30, 0x56, 0xea, 0x74, + 0xaa, 0xdb, 0xfc, 0x50, 0x9b, 0xfc, 0x03, 0xc9, 0xc1, 0x84, 0xac, 0x11, 0x61, 0x22, 0x64, 0xca, + 0x8f, 0x86, 0x0d, 0x53, 0x8a, 0x20, 0xd7, 0x2c, 0xbd, 0x0e, 0x50, 0x69, 0xd9, 0xb4, 0x8d, 0xee, + 0x4f, 0xac, 0xad, 0x40, 0xf0, 0x82, 0x68, 0x9f, 0xb7, 0xb1, 0x90, 0x23, 0x18, 0x08, 0x01, 0xc6, + 0x1c, 0xcc, 0x68, 0x7a, 0x37, 0x0c, 0x98, 0x56, 0x75, 0xc3, 0x4c, 0xa0, 0xe2, 0x34, 0x03, 0x13, + 0x60, 0x7f, 0x1b, 0xbf, 0x4c, 0xc1, 0xe2, 0xd3, 0xdd, 0x92, 0x49, 0xcf, 0x6d, 0xec, 0x5d, 0x0a, + 0x04, 0xdd, 0x54, 0xf7, 0xe4, 0xae, 0xba, 0x27, 0x91, 0x99, 0x72, 0x73, 0x8a, 0xda, 0xe6, 0xac, + 0x69, 0x9b, 0x33, 0x88, 0xc2, 0x77, 0x49, 0xb9, 0x6b, 0xff, 0x22, 0x05, 0x0b, 0x0a, 0x23, 0x01, + 0xd3, 0x1b, 0x2a, 0x1f, 0xf9, 0x41, 0x3e, 0xa2, 0x36, 0xf2, 0x23, 0x8d, 0x8d, 0xbb, 0x31, 0x6c, + 0x0c, 0xb5, 0x95, 0x26, 0x2c, 0xc6, 0x09, 0xa9, 0x5b, 0x45, 0x2a, 0xd1, 0x2a, 0xd2, 0x09, 0x56, + 0x31, 0xa2, 0x5b, 0x85, 0x05, 0x0b, 0x31, 0x22, 0x90, 0xb7, 0x21, 0xcb, 0x61, 0xdc, 0x15, 0x89, + 0xea, 0x3e, 0xc3, 0x1c, 0x80, 0x5f, 0x67, 0x2b, 0xc6, 0xaf, 0x52, 0xb0, 0x14, 0xab, 0x7c, 0xb2, + 0xcc, 0xa2, 0x68, 0xc3, 0xa5, 0xbe, 0xa0, 0x2d, 0x3e, 0x31, 0x78, 0xd5, 0xf3, 0xba, 0xa2, 0x9f, + 0x31, 0x63, 0x8a, 0x4f, 0xe4, 0xbb, 0x30, 0x73, 0x44, 0x5d, 0xdb, 0x69, 0xd6, 0x68, 0xc3, 0x69, + 0x37, 0x79, 0x2d, 0x73, 0xc6, 0xd4, 0x81, 0x4c, 0x41, 0xa5, 0xd6, 0xb9, 0xe3, 0xda, 0xfe, 0xc5, + 0x95, 0x38, 0x04, 0x21, 0x80, 0xd1, 0xde, 0xb6, 0xcf, 0x6d, 0x9f, 0xd7, 0xe6, 0x67, 0x4c, 0xf1, + 0x89, 0xa9, 0xa8, 0xd4, 0x68, 0x38, 0xdd, 0xb6, 0x8f, 0x65, 0xbe, 0x8c, 0x29, 0x3f, 0x1a, 0x6f, + 0xc3, 0x62, 0xdc, 0xa6, 0xc5, 0x1a, 0xf1, 0xef, 0xa6, 0x61, 0xa1, 0xd4, 0x6c, 0x3e, 0xdd, 0x2d, + 0x6d, 0x53, 0x35, 0xe9, 0x7a, 0x0f, 0x46, 0xab, 0x6d, 0xdb, 0x17, 0xc6, 0xb3, 0x2e, 0x6c, 0x21, + 0x66, 0x26, 0x9b, 0xc5, 0xcc, 0x81, 0xfd, 0x4f, 0x4c, 0x58, 0xd8, 0xf9, 0xca, 0xf6, 0x7c, 0xbb, + 0x7d, 0x8e, 0x06, 0xc9, 0x17, 0x16, 0x06, 0x25, 0x89, 0x24, 0xb8, 0xb2, 0xfd, 0x3b, 0x66, 0x1c, + 0x32, 0x39, 0x86, 0xe5, 0x43, 0xfa, 0x2a, 0xc6, 0xbe, 0x83, 0xc7, 0xf6, 0x80, 0x6c, 0x8c, 0x99, + 0x26, 0xe0, 0xaa, 0xc7, 0xe7, 0x97, 0x69, 0x58, 0xd4, 0x05, 0x13, 0x2b, 0x9f, 0xc0, 0xa2, 0xc2, + 0x90, 0x6e, 0xc3, 0x53, 0xc5, 0x42, 0xbc, 0x38, 0xea, 0x49, 0x8d, 0x45, 0x27, 0xcf, 0x61, 0x45, + 0x67, 0x4a, 0xf7, 0x99, 0xe1, 0xc9, 0x8b, 0x9b, 0xb2, 0x7f, 0xc7, 0x4c, 0xc2, 0x26, 0x45, 0x18, + 0x29, 0x35, 0x2e, 0x85, 0x5a, 0xe2, 0xb7, 0x8c, 0x4b, 0x56, 0x6a, 0x5c, 0xb2, 0x33, 0x5f, 0x6a, + 0x5c, 0x6a, 0x07, 0xf8, 0x2f, 0x53, 0xb0, 0x92, 0xb0, 0xc3, 0xec, 0xcc, 0x70, 0xa0, 0x12, 0x09, + 0x15, 0x08, 0xf9, 0x44, 0x79, 0x89, 0x98, 0x2d, 0xbe, 0x35, 0xdc, 0x5e, 0x36, 0x38, 0xe4, 0x38, + 0x78, 0xaa, 0x30, 0x0a, 0x92, 0x3c, 0x3e, 0x5c, 0x4c, 0x72, 0x47, 0xc4, 0x5f, 0xa9, 0x4f, 0x8a, + 0xbb, 0xd9, 0x94, 0x51, 0x89, 0xb2, 0x16, 0x48, 0x42, 0x1e, 0xc1, 0x38, 0x07, 0x8a, 0x8d, 0x91, + 0x8d, 0x9b, 0xe1, 0x64, 0x31, 0x6e, 0xfc, 0x75, 0x4a, 0x96, 0xa7, 0x06, 0xec, 0xfd, 0x03, 0xcd, + 0xde, 0xe5, 0x23, 0x7e, 0xfc, 0x64, 0xcd, 0xe4, 0xcb, 0x30, 0xf5, 0x26, 0xa6, 0xae, 0x22, 0xa9, + 0xc6, 0xf8, 0x37, 0x29, 0x79, 0xb1, 0x1e, 0xb4, 0xc7, 0x1d, 0x98, 0x7e, 0x33, 0x3b, 0xd4, 0xd0, + 0xc8, 0xfb, 0xdc, 0x4c, 0xd2, 0xc3, 0x25, 0x1d, 0x6a, 0x29, 0x3f, 0x91, 0x15, 0xb8, 0x37, 0xb1, + 0x15, 0x63, 0x2d, 0x06, 0x3b, 0x58, 0xce, 0x58, 0xc6, 0x7b, 0x71, 0x30, 0x14, 0x5c, 0xe4, 0x2a, + 0x58, 0x28, 0x50, 0xe1, 0x81, 0xeb, 0x9f, 0x10, 0xa0, 0xa0, 0x71, 0x2b, 0x6a, 0x00, 0x72, 0x02, + 0x33, 0xf1, 0xd5, 0x13, 0x8f, 0xba, 0x35, 0xbb, 0x7d, 0xde, 0xa2, 0x27, 0x3c, 0x45, 0x0d, 0x2e, + 0x0d, 0x3f, 0xd4, 0x8c, 0x60, 0x25, 0xa1, 0x93, 0xe3, 0x7f, 0x6a, 0xeb, 0xff, 0x2a, 0x05, 0xf9, + 0x38, 0xde, 0xbe, 0xdd, 0xdd, 0xdf, 0x10, 0x69, 0x38, 0xe7, 0x36, 0x27, 0xd0, 0x83, 0x35, 0xa5, + 0xb0, 0x4c, 0x48, 0xf6, 0xbf, 0xb6, 0xed, 0x7f, 0x97, 0x82, 0xc5, 0xaa, 0x87, 0xec, 0x7f, 0xd9, + 0xb5, 0x5d, 0xda, 0x94, 0x8a, 0xdb, 0x88, 0xeb, 0xf7, 0xc1, 0x8d, 0xdf, 0xbf, 0x13, 0xd7, 0xcf, + 0xf3, 0x9e, 0xd2, 0xa6, 0x91, 0x1e, 0xd6, 0xc8, 0xb3, 0x7f, 0x27, 0x6c, 0xd4, 0x20, 0x0f, 0x61, + 0xf4, 0x90, 0xc5, 0xaf, 0x11, 0x71, 0xcc, 0x39, 0x06, 0x03, 0x1d, 0x38, 0xe7, 0x76, 0x9b, 0xb1, + 0xcc, 0x3e, 0x94, 0x27, 0x61, 0xfc, 0xd8, 0x72, 0xcf, 0xa9, 0x6f, 0xfc, 0x1c, 0xf2, 0xe2, 0x01, + 0x82, 0x17, 0x70, 0xf0, 0x99, 0xc2, 0x0b, 0x0b, 0x0b, 0xc3, 0x1e, 0x0d, 0xd6, 0x01, 0x6a, 0xbe, + 0xe5, 0xfa, 0xd5, 0x76, 0x93, 0x7e, 0x85, 0x5c, 0x8e, 0x99, 0x0a, 0xc4, 0x78, 0x1f, 0x32, 0xc1, + 0xd2, 0x78, 0x45, 0x50, 0x42, 0x2b, 0xfb, 0x9b, 0x65, 0x36, 0x38, 0x28, 0x33, 0x1b, 0xfc, 0x60, + 0x6c, 0xc1, 0x52, 0x44, 0x85, 0x62, 0x7f, 0xf3, 0x4c, 0xd1, 0x1c, 0xc6, 0x9f, 0x16, 0xcd, 0xe0, + 0xb3, 0x51, 0x81, 0xf9, 0x81, 0x1d, 0x22, 0x44, 0xe9, 0x96, 0x63, 0x87, 0xb4, 0x56, 0xdb, 0x67, + 0xb0, 0xa0, 0x39, 0x8e, 0xc1, 0x8e, 0x0f, 0x6a, 0xe5, 0x71, 0xbe, 0xe3, 0xc6, 0xdf, 0xa6, 0xf1, + 0x56, 0x34, 0xa0, 0x83, 0xc8, 0x3d, 0x59, 0xbd, 0xab, 0x97, 0x21, 0x83, 0x12, 0x6f, 0xcb, 0xe6, + 0x85, 0xe1, 0xe5, 0xe9, 0xc9, 0xaf, 0x7b, 0x85, 0x3b, 0x58, 0x93, 0x0e, 0xd1, 0xc8, 0xa7, 0x30, + 0xb1, 0xd3, 0x6e, 0x22, 0x85, 0x91, 0x5b, 0x50, 0x90, 0x48, 0x6c, 0x1f, 0x90, 0x65, 0x16, 0x19, + 0x3c, 0x6c, 0x6d, 0xcc, 0x98, 0x0a, 0x04, 0xd5, 0x6c, 0x5f, 0xd9, 0xfc, 0x6d, 0x6a, 0xcc, 0xe4, + 0x1f, 0x98, 0x36, 0x91, 0x85, 0x27, 0xf4, 0xb5, 0x48, 0x8f, 0x82, 0xcf, 0xc4, 0x80, 0xb1, 0x67, + 0x6e, 0x53, 0x74, 0xa4, 0xcd, 0x16, 0xa7, 0xe5, 0x17, 0x58, 0x18, 0xcc, 0xe4, 0x43, 0xc6, 0x7f, + 0xe2, 0xc3, 0x80, 0x1f, 0x6b, 0x37, 0x9a, 0x56, 0x52, 0xdf, 0x58, 0x2b, 0xe9, 0x37, 0xd1, 0x4a, + 0x20, 0xf5, 0x48, 0x92, 0xd4, 0xa3, 0x49, 0x52, 0x8f, 0x25, 0x4b, 0xbd, 0x07, 0xe3, 0x5c, 0x54, + 0x76, 0x5b, 0xae, 0xfa, 0xf4, 0x2a, 0xbc, 0x2d, 0xab, 0x2f, 0x7e, 0x26, 0x1f, 0x63, 0x29, 0xe8, + 0x81, 0xe5, 0xe1, 0x6a, 0xdc, 0xc6, 0xe5, 0x47, 0xe3, 0x0c, 0xb2, 0x07, 0xb6, 0xe7, 0xb3, 0x73, + 0x70, 0x43, 0x53, 0x0b, 0x04, 0x4a, 0x27, 0x09, 0x34, 0xa2, 0x0b, 0x64, 0xfc, 0x14, 0xe6, 0x95, + 0x35, 0xc4, 0x29, 0x7a, 0xeb, 0xba, 0x8a, 0x66, 0x50, 0x31, 0x63, 0xdc, 0x1f, 0xd2, 0xaf, 0x54, + 0xee, 0xc5, 0x47, 0xe3, 0x53, 0xec, 0x71, 0x3a, 0x70, 0x1a, 0x97, 0x4a, 0x3d, 0x69, 0x82, 0xfb, + 0x94, 0x68, 0x59, 0x96, 0xcd, 0xe2, 0x23, 0xa6, 0x9c, 0x21, 0xca, 0x0f, 0x02, 0x3f, 0x2c, 0x3f, + 0x20, 0x20, 0x52, 0x7e, 0xe0, 0x1d, 0xd2, 0x26, 0x1f, 0x13, 0xd5, 0x0d, 0xf6, 0xf7, 0xb0, 0xda, + 0x43, 0x50, 0xa4, 0xb8, 0x66, 0xe2, 0xdb, 0x6f, 0x43, 0x26, 0xf8, 0x56, 0x16, 0x4b, 0xaa, 0xaa, + 0x87, 0xd5, 0x63, 0x9e, 0x54, 0x1d, 0x9d, 0x1c, 0x67, 0x53, 0x04, 0x60, 0x7c, 0x7b, 0xe7, 0x60, + 0xe7, 0x78, 0x27, 0x9b, 0x7e, 0xfb, 0xa1, 0x30, 0x0f, 0x32, 0x0b, 0xb0, 0xbd, 0x53, 0xab, 0xec, + 0x1c, 0x6e, 0x57, 0x0f, 0xf7, 0xb2, 0x77, 0xc8, 0x0c, 0x64, 0x4a, 0xc1, 0xc7, 0x54, 0xf1, 0xcf, + 0x1f, 0xc3, 0x14, 0x8b, 0x34, 0xa2, 0xce, 0x4a, 0x7e, 0x02, 0xb3, 0x35, 0xda, 0x6e, 0x3e, 0xa1, + 0xb4, 0x53, 0x6a, 0xd9, 0x2f, 0xa9, 0x47, 0x64, 0xf8, 0x0d, 0x40, 0xf9, 0xe5, 0x01, 0xdb, 0xde, + 0xb9, 0xea, 0xf8, 0xaf, 0x1f, 0xa5, 0xc8, 0x0f, 0x60, 0x0a, 0xdb, 0x93, 0x85, 0xd5, 0x4d, 0xab, + 0x2d, 0xcb, 0x79, 0xf9, 0x09, 0x07, 0xdf, 0x4d, 0x91, 0x4f, 0x60, 0x62, 0x8f, 0xe2, 0x7e, 0x93, + 0xef, 0x44, 0xbe, 0x30, 0x56, 0x6d, 0x07, 0x96, 0x24, 0x14, 0x92, 0x8f, 0x6e, 0x3c, 0xa9, 0xc0, + 0xa4, 0x40, 0xf7, 0x88, 0x11, 0xc1, 0xf7, 0x62, 0x08, 0x2c, 0x44, 0x08, 0x30, 0x63, 0x23, 0x9f, + 0x42, 0x26, 0x30, 0x3a, 0x22, 0x33, 0x84, 0xa8, 0xa9, 0xe7, 0x73, 0x83, 0x03, 0xc2, 0x0c, 0x36, + 0x01, 0x78, 0x99, 0x16, 0xc5, 0x88, 0xf2, 0x98, 0x1f, 0xd0, 0x1d, 0xd9, 0x63, 0xc9, 0x14, 0xdb, + 0xec, 0x9b, 0xca, 0x9d, 0xa0, 0x6c, 0x72, 0x00, 0xb3, 0x41, 0xd1, 0xf4, 0xe6, 0x4a, 0x48, 0xa2, + 0xf6, 0x11, 0xcc, 0xcb, 0xb7, 0xc6, 0x20, 0x3f, 0x22, 0x49, 0x19, 0x53, 0xb0, 0x93, 0x7c, 0x1a, + 0x85, 0xbc, 0x8a, 0xab, 0xe7, 0x3b, 0xe4, 0xbe, 0x42, 0x24, 0x36, 0x4d, 0xcb, 0x7f, 0x67, 0xc8, + 0x0c, 0xae, 0xe6, 0x47, 0xa9, 0x77, 0x53, 0xe4, 0x33, 0x98, 0xd1, 0x22, 0x2d, 0x91, 0xf7, 0xaa, + 0xb8, 0x14, 0x26, 0xbf, 0x16, 0x3f, 0x28, 0xb6, 0x6d, 0x97, 0x89, 0xeb, 0x47, 0x3a, 0x16, 0xf3, + 0x71, 0x9d, 0x89, 0xbc, 0x09, 0x3e, 0x2f, 0x5b, 0x35, 0x22, 0x28, 0x3b, 0xb0, 0x20, 0x9e, 0xe3, + 0xb4, 0x2f, 0x33, 0x25, 0xf4, 0x38, 0x26, 0x6a, 0xff, 0x31, 0x2c, 0x88, 0xbd, 0xd4, 0xc8, 0x64, + 0x83, 0xe6, 0x12, 0xd1, 0x0e, 0x97, 0x48, 0xe0, 0x33, 0x58, 0xaa, 0x45, 0xe4, 0xe1, 0x4d, 0x87, + 0xab, 0x3a, 0x09, 0xa5, 0xbb, 0x31, 0x91, 0xd6, 0x13, 0x20, 0xb5, 0xee, 0xd9, 0x95, 0x1d, 0x90, + 0x7b, 0x69, 0xd3, 0x57, 0xe4, 0x5e, 0x44, 0x24, 0x06, 0xc4, 0x69, 0x18, 0x50, 0xf3, 0x09, 0x12, + 0x93, 0x63, 0xfe, 0x80, 0xcc, 0x7b, 0x93, 0xac, 0x8e, 0x75, 0x66, 0xb7, 0x6c, 0xdf, 0xa6, 0xcc, + 0x2c, 0x54, 0x04, 0x75, 0x48, 0xee, 0xe0, 0x6a, 0xe2, 0x0c, 0xf2, 0x29, 0xcc, 0xec, 0x51, 0x3f, + 0x6c, 0xe0, 0x24, 0x2b, 0x03, 0x2d, 0x9f, 0x62, 0xdf, 0x64, 0x19, 0x56, 0xef, 0x1a, 0xad, 0x42, + 0xf6, 0xa4, 0xd3, 0xb4, 0x7c, 0xaa, 0x90, 0xb8, 0x37, 0x40, 0x42, 0x4c, 0xb1, 0x5c, 0xeb, 0xca, + 0x4b, 0xd4, 0xd6, 0x26, 0x8c, 0x1e, 0xd9, 0xed, 0x73, 0x22, 0x6b, 0xb5, 0x4a, 0xeb, 0x5d, 0x7e, + 0x41, 0x83, 0x09, 0xd3, 0xf3, 0xa1, 0x70, 0x4d, 0xe7, 0x22, 0xf9, 0x61, 0x90, 0x3c, 0xdf, 0xa4, + 0xc3, 0x31, 0xaf, 0x9c, 0xfb, 0xf8, 0x89, 0xf5, 0x2d, 0xf2, 0x33, 0xdc, 0x87, 0xc1, 0x19, 0xe4, + 0x81, 0x58, 0x6b, 0x58, 0xfb, 0x63, 0xfe, 0x6e, 0xe2, 0x0a, 0xf5, 0x2d, 0x72, 0x2a, 0x9f, 0xa4, + 0x63, 0xa8, 0x3f, 0xd4, 0x3a, 0xab, 0xde, 0x70, 0x81, 0x4d, 0x8c, 0x13, 0xf8, 0x85, 0xd0, 0xa5, + 0x90, 0x5b, 0xa5, 0xbb, 0x2c, 0xaf, 0x7f, 0xa5, 0x94, 0x6c, 0x61, 0x64, 0xc0, 0x9e, 0x66, 0xb2, + 0xac, 0x63, 0x78, 0xf1, 0x28, 0xef, 0xa6, 0xc8, 0x16, 0x00, 0xe7, 0x12, 0x17, 0xd2, 0x87, 0x13, + 0x77, 0x7f, 0x8b, 0xb9, 0xff, 0xe6, 0x2d, 0x91, 0x3e, 0x95, 0x21, 0x00, 0x91, 0x72, 0xda, 0x8d, + 0x5d, 0x95, 0x2a, 0x09, 0xbf, 0x0a, 0xd9, 0x52, 0x03, 0x1d, 0x5a, 0xd0, 0xf0, 0x46, 0xd6, 0x83, + 0xc3, 0xa2, 0x0f, 0x48, 0x5a, 0x4b, 0xd1, 0xfe, 0xb9, 0x03, 0xca, 0xae, 0x60, 0xfb, 0xb0, 0x12, + 0x84, 0xa6, 0xc8, 0x50, 0x3c, 0x46, 0x22, 0x53, 0x3b, 0xb0, 0x58, 0xb1, 0xda, 0x0d, 0xda, 0xfa, + 0x66, 0x64, 0x3e, 0xc2, 0x93, 0xad, 0x34, 0x03, 0x2e, 0x47, 0xf1, 0xc5, 0xc1, 0x96, 0x5f, 0xa2, + 0x50, 0xa6, 0x96, 0x60, 0x8e, 0x2b, 0x31, 0x54, 0x4b, 0x12, 0x76, 0xd2, 0xf2, 0x1f, 0xc0, 0xec, + 0x0e, 0xf3, 0x7c, 0xdd, 0xa6, 0xcd, 0x2f, 0x56, 0x44, 0xcf, 0x94, 0x13, 0x11, 0xf7, 0x61, 0x5e, + 0x04, 0x82, 0xb0, 0x4b, 0x2e, 0x70, 0xbe, 0x83, 0x8d, 0x88, 0xf9, 0x45, 0x49, 0x56, 0x6d, 0xa8, + 0x93, 0x61, 0x4e, 0x6b, 0x09, 0x0b, 0xc2, 0x5c, 0x5c, 0xb3, 0x5a, 0x10, 0xe6, 0xe2, 0xbb, 0xc8, + 0xca, 0x30, 0x17, 0xe9, 0x06, 0x23, 0xf7, 0x64, 0xb0, 0x8d, 0xed, 0x12, 0x8b, 0x49, 0x58, 0xf6, + 0xa5, 0x56, 0x07, 0x69, 0xc4, 0xb7, 0x86, 0x25, 0xea, 0xe8, 0x28, 0x88, 0x72, 0x6a, 0x9f, 0x17, + 0xd1, 0x4b, 0x56, 0x71, 0x3d, 0x60, 0x89, 0x14, 0x6b, 0x2c, 0x31, 0xd7, 0x3b, 0xa4, 0xc8, 0x7a, + 0xa0, 0x91, 0xd8, 0x36, 0xb0, 0x7c, 0x21, 0x71, 0x5c, 0x28, 0x4d, 0xd9, 0x00, 0xfe, 0xb5, 0xd9, + 0xe8, 0x06, 0xa8, 0xdd, 0x31, 0x03, 0x1b, 0xa0, 0x37, 0xbd, 0xec, 0xe1, 0x05, 0x40, 0x69, 0x75, + 0x22, 0x09, 0xa2, 0xe4, 0xef, 0xc5, 0xd1, 0x09, 0x77, 0xb2, 0x06, 0xd9, 0x68, 0xdf, 0x4f, 0x20, + 0x69, 0x42, 0xcb, 0x53, 0x20, 0x69, 0x62, 0xc3, 0xd0, 0x67, 0x90, 0x8d, 0x36, 0xfd, 0x04, 0x44, + 0x13, 0xba, 0x81, 0x12, 0xb7, 0x62, 0x17, 0x16, 0xf5, 0x0d, 0xbc, 0x46, 0xde, 0xe4, 0x4c, 0x66, + 0x46, 0x6b, 0xf5, 0x21, 0x32, 0x34, 0x44, 0xba, 0x8a, 0x06, 0xb4, 0x1f, 0xd3, 0x72, 0xc4, 0xb5, + 0xaf, 0xb4, 0x0d, 0xdd, 0x44, 0xfb, 0x71, 0x5d, 0x46, 0x81, 0xa2, 0x14, 0xbe, 0xa4, 0xc7, 0x8d, + 0x0e, 0xdc, 0x46, 0x51, 0x37, 0x61, 0x2d, 0x89, 0xce, 0x36, 0x4c, 0x29, 0xfd, 0x46, 0x64, 0x55, + 0x53, 0x93, 0x66, 0xf1, 0x79, 0x4d, 0x38, 0xdd, 0xd8, 0x2b, 0x30, 0xad, 0x76, 0x2d, 0x25, 0x72, + 0x71, 0x77, 0x90, 0x86, 0xa7, 0x64, 0xd3, 0xb3, 0x81, 0x16, 0x38, 0x37, 0x6b, 0x51, 0xe5, 0x68, + 0x0c, 0x25, 0x8b, 0x44, 0x54, 0xd5, 0x5c, 0xc3, 0x52, 0x72, 0x24, 0x5a, 0xe0, 0x31, 0x59, 0xff, + 0xc2, 0x7e, 0xc2, 0xf7, 0xfe, 0x87, 0x78, 0xab, 0xb9, 0x48, 0x9b, 0x15, 0x51, 0xac, 0x24, 0xa6, + 0x35, 0x29, 0xbf, 0x9e, 0x34, 0x2c, 0xd4, 0x74, 0x00, 0xf3, 0x03, 0x5d, 0x56, 0xa4, 0xa0, 0xf9, + 0xe3, 0xc1, 0x76, 0xa9, 0x21, 0xf7, 0xbf, 0xf9, 0x81, 0x16, 0xab, 0x80, 0x5a, 0x52, 0xf3, 0x55, + 0x22, 0xb5, 0x63, 0x58, 0x8a, 0x6d, 0xbb, 0x0a, 0xf2, 0xc3, 0x61, 0x4d, 0x59, 0x89, 0x54, 0x7f, + 0x06, 0x64, 0xb0, 0x45, 0x2a, 0xb8, 0x11, 0x26, 0xb6, 0x71, 0x05, 0x37, 0xc2, 0x21, 0xfd, 0x55, + 0x07, 0xb0, 0x18, 0xd7, 0x1f, 0x45, 0x0c, 0x4d, 0x9f, 0xb1, 0xfd, 0x4d, 0x31, 0x41, 0xce, 0x94, + 0x87, 0x32, 0x81, 0xda, 0x90, 0x6e, 0xa9, 0x44, 0xe1, 0x7f, 0x2e, 0x7b, 0xe0, 0x06, 0xbb, 0x9a, + 0x82, 0xbc, 0xf8, 0x9a, 0xb6, 0xa7, 0x21, 0xe9, 0xc6, 0x5c, 0xcd, 0x3e, 0x6f, 0x2b, 0x0d, 0x48, + 0x41, 0xb2, 0x31, 0xd8, 0xf9, 0x14, 0x38, 0x80, 0xb8, 0x7e, 0xa5, 0x67, 0xb0, 0x28, 0x23, 0xa1, + 0xda, 0xe6, 0x43, 0x06, 0x70, 0xc2, 0x2e, 0xa4, 0xc0, 0x19, 0xc4, 0xf6, 0x05, 0xf1, 0x6c, 0x1d, + 0x7f, 0x85, 0x45, 0xc9, 0xd6, 0x95, 0xfe, 0x9b, 0xbc, 0xde, 0xaa, 0x43, 0x3e, 0xc6, 0x6c, 0x9d, + 0x37, 0x56, 0x27, 0x9d, 0xf5, 0x15, 0x9d, 0x52, 0x68, 0x06, 0x5b, 0xb2, 0xfe, 0x82, 0x0b, 0xea, + 0x94, 0xaf, 0x4f, 0xc0, 0x11, 0x49, 0x4f, 0xc0, 0x55, 0x46, 0x93, 0x6f, 0xc8, 0xd3, 0xea, 0xe3, + 0x65, 0xa0, 0xab, 0x98, 0xe7, 0xd1, 0x40, 0x57, 0x71, 0xaf, 0x9d, 0x98, 0xef, 0x1d, 0xcb, 0xfc, + 0x2a, 0xa4, 0x77, 0x6f, 0xe8, 0x73, 0x65, 0x7e, 0x7d, 0xf8, 0x1b, 0x9f, 0x92, 0x45, 0x86, 0xaf, + 0x6b, 0x6a, 0x12, 0x33, 0xf0, 0x16, 0xa7, 0x86, 0xd1, 0x98, 0x07, 0xb9, 0xa7, 0x58, 0xfe, 0x7c, + 0x56, 0xdd, 0xae, 0x88, 0x5f, 0x83, 0x71, 0xdc, 0x81, 0xc2, 0x95, 0xf2, 0x5d, 0xd0, 0x50, 0x7b, + 0x7c, 0x8a, 0x86, 0x58, 0x2f, 0x92, 0x1a, 0xd6, 0x5e, 0x34, 0x68, 0x4c, 0xed, 0x2a, 0x86, 0x60, + 0x3e, 0x9e, 0x20, 0xd6, 0xf1, 0xd0, 0xe9, 0x33, 0x3b, 0xd0, 0xd9, 0x4c, 0xe0, 0x61, 0x58, 0xec, + 0xe0, 0x5a, 0x8d, 0x27, 0x23, 0xb9, 0xbb, 0xce, 0x40, 0xb8, 0xc6, 0x6a, 0xa5, 0xa7, 0x07, 0x6f, + 0xa4, 0x31, 0x0d, 0x31, 0xd0, 0x98, 0x06, 0xbd, 0x9d, 0xc6, 0x22, 0x04, 0x75, 0x8d, 0xe9, 0x6c, + 0x26, 0xf0, 0x70, 0xbd, 0xc6, 0xe2, 0xc9, 0xdc, 0x54, 0x63, 0x9f, 0x63, 0xa4, 0xd8, 0xc3, 0xef, + 0xa1, 0xde, 0x4a, 0x67, 0x39, 0x99, 0xf7, 0xe8, 0xa8, 0xf5, 0x2d, 0xf2, 0x1c, 0x7b, 0xbb, 0x23, + 0xf0, 0x9b, 0xe9, 0x6d, 0x2d, 0x89, 0x28, 0x6a, 0xae, 0x0a, 0x4b, 0x5c, 0x73, 0x51, 0x76, 0x13, + 0x79, 0x49, 0x14, 0x7b, 0x4f, 0x86, 0xdd, 0x28, 0xa9, 0xdb, 0xea, 0x6f, 0x1b, 0x4d, 0xe4, 0xd8, + 0x65, 0x59, 0x4d, 0x73, 0x30, 0xe5, 0xd1, 0x89, 0xc8, 0x6a, 0x99, 0x3e, 0xbd, 0x5e, 0x24, 0x55, + 0xdc, 0x05, 0x1d, 0x3c, 0x2c, 0x27, 0x8c, 0x27, 0x83, 0x4a, 0xda, 0x97, 0xf1, 0x39, 0xc2, 0x53, + 0xd2, 0xda, 0xc9, 0x4c, 0x05, 0x09, 0xf3, 0x0d, 0xa5, 0x4b, 0x52, 0x11, 0x8f, 0x33, 0x3c, 0x3f, + 0xbd, 0x4e, 0x33, 0xd1, 0xdf, 0x69, 0x23, 0xff, 0x1f, 0x32, 0x12, 0xf9, 0x7a, 0x85, 0x44, 0xb1, + 0xc5, 0x4b, 0xc3, 0x94, 0x50, 0x08, 0x72, 0x90, 0xb4, 0x52, 0x22, 0xfb, 0x9f, 0xc0, 0x94, 0x50, + 0xc3, 0x50, 0x09, 0x92, 0xd3, 0xc5, 0xa5, 0x3d, 0xea, 0xc7, 0xfc, 0xd2, 0xcf, 0x75, 0xc2, 0xc4, + 0xfd, 0xb0, 0x10, 0xa9, 0x63, 0xef, 0x7b, 0xd2, 0xaf, 0x32, 0x25, 0x91, 0xbc, 0xf6, 0x37, 0xa1, + 0x18, 0xdd, 0x5a, 0x32, 0xdd, 0x6b, 0xf1, 0x13, 0xa5, 0x3f, 0x84, 0x35, 0x2c, 0x2d, 0xde, 0x96, + 0xe3, 0xe4, 0x74, 0x79, 0x35, 0x7c, 0x4d, 0x8e, 0xfe, 0x20, 0x54, 0x12, 0xb1, 0xeb, 0x7e, 0x8b, + 0x8a, 0x51, 0xad, 0x25, 0x52, 0xbd, 0x0e, 0x7b, 0x48, 0x30, 0xba, 0x8b, 0xb2, 0xdf, 0x92, 0xdb, + 0xe1, 0x9e, 0x26, 0xf2, 0x0b, 0x55, 0xc9, 0x79, 0x5b, 0xfc, 0x6f, 0x60, 0x31, 0x2a, 0xb5, 0x01, + 0x2a, 0x49, 0xb3, 0x87, 0x05, 0x1f, 0x14, 0xed, 0x86, 0xdc, 0x24, 0x57, 0x71, 0x33, 0x41, 0x23, + 0x05, 0x51, 0x52, 0x4d, 0xad, 0x4d, 0x20, 0x3f, 0xa3, 0x3e, 0x5f, 0x7a, 0xa4, 0xc4, 0x63, 0xbc, + 0xda, 0x50, 0xa0, 0xd4, 0x9e, 0x62, 0x3b, 0x0d, 0xa2, 0x24, 0x78, 0xaa, 0x8c, 0x3f, 0x9b, 0xa5, + 0xa4, 0xca, 0xca, 0x2b, 0x70, 0x5e, 0x7f, 0x56, 0x16, 0x2e, 0x0c, 0xdf, 0x96, 0xd5, 0xc2, 0xb6, + 0xfa, 0xb2, 0xad, 0xa6, 0xca, 0xfa, 0x8b, 0x75, 0x90, 0x2a, 0xe3, 0x82, 0x3a, 0xe5, 0xeb, 0x53, + 0x65, 0x44, 0xd2, 0x53, 0x65, 0x95, 0xd1, 0xe4, 0x5a, 0xf5, 0x42, 0x4c, 0xc7, 0x4e, 0x50, 0xf3, + 0x4b, 0xee, 0xe6, 0xc9, 0xeb, 0x85, 0xd7, 0x77, 0x53, 0xe4, 0x10, 0xbf, 0x11, 0x15, 0xf3, 0xeb, + 0x5f, 0x89, 0xfb, 0x3d, 0xf4, 0xe7, 0xc6, 0x18, 0xbd, 0x5a, 0x3c, 0xbd, 0xa1, 0x78, 0x43, 0x6e, + 0x05, 0xab, 0xe2, 0x65, 0xf7, 0x16, 0x2c, 0x26, 0xc0, 0xcb, 0xd9, 0xaf, 0xff, 0x63, 0x3d, 0xf5, + 0xf5, 0x6f, 0xd6, 0x53, 0xff, 0xfc, 0x9b, 0xf5, 0xd4, 0xaf, 0x7f, 0xb3, 0x9e, 0x3a, 0x1b, 0xc7, + 0x19, 0x5b, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x21, 0x00, 0xbe, 0x11, 0xe5, 0x56, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -14001,6 +14011,13 @@ func (m *CreateAppSessionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.AWSRoleARN) > 0 { + i -= len(m.AWSRoleARN) + copy(dAtA[i:], m.AWSRoleARN) + i = encodeVarintAuthservice(dAtA, i, uint64(len(m.AWSRoleARN))) + i-- + dAtA[i] = 0x2a + } if len(m.ClusterName) > 0 { i -= len(m.ClusterName) copy(dAtA[i:], m.ClusterName) @@ -18110,6 +18127,10 @@ func (m *CreateAppSessionRequest) Size() (n int) { if l > 0 { n += 1 + l + sovAuthservice(uint64(l)) } + l = len(m.AWSRoleARN) + if l > 0 { + n += 1 + l + sovAuthservice(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -24986,6 +25007,38 @@ func (m *CreateAppSessionRequest) Unmarshal(dAtA []byte) error { } m.ClusterName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AWSRoleARN", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthservice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAuthservice + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAuthservice + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AWSRoleARN = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAuthservice(dAtA[iNdEx:]) diff --git a/api/client/proto/authservice.proto b/api/client/proto/authservice.proto index c85f91b55f380..1570d3949a537 100644 --- a/api/client/proto/authservice.proto +++ b/api/client/proto/authservice.proto @@ -460,6 +460,8 @@ message CreateAppSessionRequest { string PublicAddr = 3 [ (gogoproto.jsontag) = "public_addr" ]; // ClusterName is cluster within which the application is running. string ClusterName = 4 [ (gogoproto.jsontag) = "cluster_name" ]; + // AWSRoleARN is AWS role the user wants to assume. + string AWSRoleARN = 5 [ (gogoproto.jsontag) = "aws_role_arn" ]; } // CreateAppSessionResponse contains the requested application web session. diff --git a/api/constants/constants.go b/api/constants/constants.go index a4e00a2feff1f..5afd687f3c0fc 100644 --- a/api/constants/constants.go +++ b/api/constants/constants.go @@ -97,6 +97,11 @@ const ( // // TODO(r0mant): See if we can use net.ErrClosed and errors.Is() instead. UseOfClosedNetworkConnection = "use of closed network connection" + + // AWSConsoleURL is the URL of AWS management console. + AWSConsoleURL = "https://console.aws.amazon.com" + // AWSAccountIDLabel is the key of the label containing AWS account ID. + AWSAccountIDLabel = "aws_account_id" ) // SecondFactorType is the type of 2FA authentication. diff --git a/api/types/events/events.pb.go b/api/types/events/events.pb.go index 02d18a656e67e..83c0cf1879dfa 100644 --- a/api/types/events/events.pb.go +++ b/api/types/events/events.pb.go @@ -185,7 +185,9 @@ type UserMetadata struct { // Login is OS login Login string `protobuf:"bytes,2,opt,name=Login,proto3" json:"login,omitempty"` // Impersonator is a user acting on behalf of another user - Impersonator string `protobuf:"bytes,3,opt,name=Impersonator,proto3" json:"impersonator,omitempty"` + Impersonator string `protobuf:"bytes,3,opt,name=Impersonator,proto3" json:"impersonator,omitempty"` + // AWSRoleARN is AWS IAM role user assumes when accessing AWS console. + AWSRoleARN string `protobuf:"bytes,4,opt,name=AWSRoleARN,proto3" json:"aws_role_arn,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3966,287 +3968,289 @@ func init() { func init() { proto.RegisterFile("events.proto", fileDescriptor_8f22242cb04491f9) } var fileDescriptor_8f22242cb04491f9 = []byte{ - // 4469 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x5d, 0x6c, 0x1c, 0x49, - 0x5a, 0xf3, 0xef, 0x99, 0x6f, 0xec, 0xc4, 0xae, 0x38, 0x49, 0x27, 0x9b, 0xa4, 0x93, 0xce, 0x6e, - 0x7e, 0x6e, 0xb3, 0xf1, 0xc5, 0x9b, 0xdb, 0x1c, 0xc7, 0xc1, 0xae, 0xc7, 0xe3, 0xdc, 0x0c, 0xeb, - 0xc4, 0xde, 0xb2, 0xb3, 0x9c, 0x84, 0x6e, 0xad, 0xf6, 0x74, 0xc5, 0xee, 0xcb, 0x4c, 0xf7, 0x5c, - 0x77, 0x8f, 0x13, 0xef, 0x13, 0x3f, 0x0f, 0x20, 0xb4, 0xa0, 0xd3, 0xf1, 0x80, 0x10, 0x0f, 0x80, - 0x10, 0x0f, 0x48, 0x08, 0x10, 0x0f, 0x08, 0x89, 0xc7, 0x03, 0xb4, 0x12, 0x3a, 0x38, 0x1d, 0x12, - 0x8f, 0x03, 0xac, 0xc4, 0xcb, 0x08, 0x9e, 0x91, 0x78, 0x01, 0xd5, 0x57, 0xd5, 0xdd, 0xd5, 0x3d, - 0xed, 0x64, 0x13, 0xe7, 0x64, 0x39, 0xf1, 0x93, 0x3d, 0xdf, 0x5f, 0x55, 0x7d, 0x5f, 0xd5, 0x57, - 0xf5, 0x7d, 0xf5, 0x55, 0xc3, 0x24, 0xdb, 0x61, 0x4e, 0xe0, 0xdf, 0xec, 0x7b, 0x6e, 0xe0, 0x92, - 0x8a, 0xf8, 0x75, 0x76, 0x76, 0xcb, 0xdd, 0x72, 0x11, 0x34, 0xc7, 0xff, 0x13, 0xd8, 0xb3, 0xfa, - 0x96, 0xeb, 0x6e, 0x75, 0xd9, 0x1c, 0xfe, 0xda, 0x1c, 0x3c, 0x9c, 0x0b, 0xec, 0x1e, 0xf3, 0x03, - 0xb3, 0xd7, 0x97, 0x04, 0xe7, 0xd2, 0x04, 0x7e, 0xe0, 0x0d, 0x3a, 0x81, 0xc0, 0x1a, 0x3f, 0x28, - 0x40, 0xf5, 0x1e, 0x0b, 0x4c, 0xcb, 0x0c, 0x4c, 0x72, 0x0e, 0xca, 0x6d, 0xc7, 0x62, 0x4f, 0xb4, - 0xfc, 0xc5, 0xfc, 0xb5, 0x62, 0xa3, 0x32, 0x1a, 0xea, 0x05, 0x66, 0x53, 0x01, 0x24, 0xe7, 0xa1, - 0xb4, 0xbe, 0xdb, 0x67, 0x5a, 0xe1, 0x62, 0xfe, 0x5a, 0xad, 0x51, 0x1b, 0x0d, 0xf5, 0x32, 0xf6, - 0x8c, 0x22, 0x98, 0x5c, 0x82, 0x42, 0xbb, 0xa9, 0x15, 0x11, 0x39, 0x33, 0x1a, 0xea, 0x53, 0x03, - 0xdb, 0xba, 0xe1, 0xf6, 0xec, 0x80, 0xf5, 0xfa, 0xc1, 0x2e, 0x2d, 0xb4, 0x9b, 0xe4, 0x0a, 0x94, - 0x16, 0x5d, 0x8b, 0x69, 0x25, 0x24, 0x22, 0xa3, 0xa1, 0x7e, 0xac, 0xe3, 0x5a, 0x4c, 0xa1, 0x42, - 0x3c, 0xf9, 0x00, 0x4a, 0xeb, 0x76, 0x8f, 0x69, 0xe5, 0x8b, 0xf9, 0x6b, 0xf5, 0xf9, 0xb3, 0x37, - 0xc5, 0x08, 0x6e, 0x86, 0x23, 0xb8, 0xb9, 0x1e, 0x0e, 0xb1, 0x31, 0xfd, 0xf9, 0x50, 0xcf, 0x8d, - 0x86, 0x7a, 0x89, 0x8f, 0xfa, 0xfb, 0xff, 0xa6, 0xe7, 0x29, 0x72, 0x92, 0x6f, 0x42, 0x7d, 0xb1, - 0x3b, 0xf0, 0x03, 0xe6, 0xdd, 0x37, 0x7b, 0x4c, 0xab, 0x60, 0x83, 0x67, 0x47, 0x43, 0xfd, 0x54, - 0x47, 0x80, 0x37, 0x1c, 0xb3, 0xa7, 0x36, 0xac, 0x92, 0x1b, 0xdf, 0x85, 0xe3, 0x6b, 0xcc, 0xf7, - 0x6d, 0xd7, 0x89, 0x54, 0xf3, 0x16, 0xd4, 0x24, 0xa8, 0xdd, 0x44, 0xf5, 0xd4, 0x1a, 0x13, 0xa3, - 0xa1, 0x5e, 0xf4, 0x6d, 0x8b, 0xc6, 0x18, 0xf2, 0x55, 0x98, 0xf8, 0x45, 0x3b, 0xd8, 0xbe, 0x77, - 0x77, 0x41, 0xaa, 0xe9, 0xd4, 0x68, 0xa8, 0x93, 0xc7, 0x76, 0xb0, 0xbd, 0xd1, 0x7b, 0x68, 0x2a, - 0xed, 0x85, 0x64, 0xc6, 0x1f, 0xe5, 0x61, 0xf2, 0x81, 0xcf, 0xbc, 0xa8, 0xa5, 0x2b, 0x50, 0xe2, - 0xbf, 0x65, 0x23, 0xa8, 0xa4, 0x81, 0xcf, 0x3c, 0x55, 0x49, 0x1c, 0x4f, 0xae, 0x43, 0x79, 0xd9, - 0xdd, 0xb2, 0x1d, 0xd9, 0xd0, 0x89, 0xd1, 0x50, 0x3f, 0xde, 0xe5, 0x00, 0x85, 0x52, 0x50, 0x90, - 0x9f, 0x87, 0xc9, 0x76, 0xaf, 0xcf, 0x3c, 0xdf, 0x75, 0xcc, 0xc0, 0xf5, 0xa4, 0x91, 0x50, 0x1d, - 0xb6, 0x02, 0x57, 0x18, 0x13, 0xf4, 0xc6, 0x5f, 0x16, 0xe1, 0xd8, 0x1a, 0xf3, 0x76, 0x94, 0x5e, - 0x2e, 0x70, 0x15, 0x71, 0x08, 0x57, 0x98, 0xdf, 0x37, 0x3b, 0x4c, 0x76, 0xf8, 0xf4, 0x68, 0xa8, - 0x9f, 0x70, 0x42, 0xa0, 0x22, 0x32, 0x4d, 0x4f, 0xae, 0x43, 0x55, 0x80, 0xda, 0x4d, 0x39, 0x86, - 0xa9, 0xd1, 0x50, 0xaf, 0xf9, 0x08, 0xdb, 0xb0, 0x2d, 0x1a, 0xa1, 0xc9, 0x52, 0xd8, 0x7e, 0xcb, - 0xf5, 0x03, 0x2e, 0x5c, 0x0e, 0xe1, 0xfc, 0x68, 0xa8, 0x9f, 0x91, 0x0c, 0xdb, 0x12, 0xa5, 0x34, - 0x99, 0x62, 0x22, 0x3f, 0x03, 0x20, 0x20, 0x0b, 0x96, 0xe5, 0xc9, 0x59, 0x78, 0x66, 0x34, 0xd4, - 0x4f, 0x4a, 0x11, 0xa6, 0x65, 0xa9, 0x4a, 0x50, 0x88, 0x49, 0x0f, 0x26, 0xc5, 0xaf, 0x65, 0x73, - 0x93, 0x75, 0x7d, 0xad, 0x7c, 0xb1, 0x78, 0xad, 0x3e, 0x7f, 0xed, 0xa6, 0x5c, 0xa9, 0x49, 0xed, - 0xdc, 0x54, 0x49, 0x97, 0x9c, 0xc0, 0xdb, 0x6d, 0xe8, 0x72, 0xa2, 0x9e, 0x96, 0x4d, 0x75, 0x11, - 0xa7, 0x6a, 0x5c, 0xe5, 0x39, 0xfb, 0x3e, 0xcc, 0x8c, 0xc9, 0x20, 0xd3, 0x50, 0x7c, 0xc4, 0x76, - 0x85, 0x9e, 0x29, 0xff, 0x97, 0xcc, 0x42, 0x79, 0xc7, 0xec, 0x0e, 0xe4, 0x9a, 0xa4, 0xe2, 0xc7, - 0x37, 0x0a, 0x5f, 0xcf, 0x1b, 0x7f, 0x93, 0x07, 0xb2, 0xe8, 0x3a, 0x0e, 0xeb, 0x04, 0xea, 0x34, - 0x7e, 0x0f, 0x6a, 0xcb, 0x6e, 0xc7, 0xec, 0xa2, 0x02, 0x84, 0xc1, 0xb4, 0xd1, 0x50, 0x9f, 0xe5, - 0x23, 0xbf, 0xd9, 0xe5, 0x18, 0xa5, 0x4b, 0x31, 0x29, 0xd7, 0x1c, 0x65, 0x3d, 0x37, 0x60, 0xc8, - 0x58, 0x88, 0x35, 0x87, 0x8c, 0x1e, 0xa2, 0x54, 0xcd, 0xc5, 0xc4, 0x64, 0x0e, 0xaa, 0xab, 0x7c, - 0xe1, 0x76, 0xdc, 0xae, 0xb4, 0x1a, 0x4e, 0x55, 0x5c, 0xcc, 0x0a, 0x4b, 0x44, 0x64, 0xfc, 0x6a, - 0x01, 0xce, 0x7c, 0x38, 0xd8, 0x64, 0x9e, 0xc3, 0x02, 0xe6, 0xcb, 0x75, 0x19, 0x8d, 0xe0, 0x3e, - 0xcc, 0x8c, 0x21, 0xe5, 0x48, 0x2e, 0x8e, 0x86, 0xfa, 0xb9, 0x47, 0x11, 0x72, 0x43, 0x2e, 0x75, - 0xa5, 0x91, 0x71, 0x56, 0xd2, 0x82, 0xe3, 0x31, 0x90, 0x2f, 0x2c, 0x5f, 0x2b, 0x5c, 0x2c, 0x5e, - 0xab, 0x35, 0x2e, 0x8c, 0x86, 0xfa, 0x59, 0x45, 0x1a, 0x5f, 0x84, 0xaa, 0xc1, 0xd2, 0x6c, 0xe4, - 0x43, 0x98, 0x8e, 0x41, 0xdf, 0xf2, 0xdc, 0x41, 0xdf, 0xd7, 0x8a, 0x28, 0x4a, 0x1f, 0x0d, 0xf5, - 0x37, 0x14, 0x51, 0x5b, 0x88, 0x54, 0x64, 0x8d, 0x31, 0x1a, 0xff, 0x59, 0x84, 0x93, 0x31, 0x70, - 0xd5, 0xb5, 0x22, 0x05, 0xac, 0xa8, 0x0a, 0x58, 0x75, 0x2d, 0x74, 0x70, 0x42, 0x01, 0x97, 0x46, - 0x43, 0xfd, 0xbc, 0xd2, 0x4e, 0xdf, 0xb5, 0xd2, 0x7e, 0x6e, 0x9c, 0x97, 0x7c, 0x02, 0xa7, 0xc6, - 0x80, 0x62, 0x45, 0x0b, 0x3b, 0x5f, 0x19, 0x0d, 0x75, 0x23, 0x43, 0x6a, 0x7a, 0x81, 0xef, 0x21, - 0x85, 0x98, 0x70, 0x5a, 0x51, 0xbb, 0xeb, 0x04, 0xa6, 0xed, 0x48, 0xbf, 0x2c, 0xe6, 0xc3, 0xd5, - 0xd1, 0x50, 0xbf, 0xac, 0xda, 0x2d, 0xa4, 0x49, 0x77, 0x7e, 0x2f, 0x39, 0xc4, 0x02, 0x2d, 0x03, - 0xd5, 0xee, 0x99, 0x5b, 0xe1, 0x66, 0x73, 0x6d, 0x34, 0xd4, 0xdf, 0xcc, 0x6c, 0xc3, 0xe6, 0x54, - 0x4a, 0x23, 0x7b, 0x4a, 0x22, 0x14, 0x48, 0x8c, 0xbb, 0xef, 0x5a, 0x0c, 0xc7, 0x50, 0x46, 0xf9, - 0xc6, 0x68, 0xa8, 0x5f, 0x50, 0xe4, 0x3b, 0xae, 0xc5, 0xd2, 0xdd, 0xcf, 0xe0, 0x36, 0xbe, 0x5f, - 0xe1, 0x8e, 0x05, 0xb7, 0x8f, 0xb5, 0xc0, 0xf4, 0x02, 0xf2, 0x8d, 0x78, 0x3f, 0x46, 0xab, 0xd6, - 0xe7, 0xa7, 0x43, 0x27, 0x13, 0xc2, 0x1b, 0x93, 0xdc, 0x99, 0xfc, 0x78, 0xa8, 0xe7, 0x47, 0x43, - 0x3d, 0x47, 0xab, 0xca, 0xea, 0x16, 0x5b, 0x47, 0x01, 0xf9, 0x66, 0x43, 0x3e, 0x75, 0x7b, 0x49, - 0xf1, 0x8a, 0xad, 0xe4, 0x7d, 0x98, 0x90, 0x7d, 0x40, 0x8b, 0xd4, 0xe7, 0x4f, 0xc7, 0x7e, 0x2d, - 0xb1, 0x0d, 0xa6, 0xb8, 0x43, 0x2e, 0xf2, 0x4d, 0xa8, 0x08, 0x77, 0x85, 0xda, 0xae, 0xcf, 0x9f, - 0xca, 0xf6, 0x8b, 0x29, 0x76, 0xc9, 0x43, 0x5a, 0x00, 0xb1, 0xab, 0x8a, 0x36, 0x7d, 0x29, 0x61, - 0xdc, 0x89, 0xa5, 0xa4, 0x28, 0xbc, 0xe4, 0x3d, 0x98, 0x5c, 0x67, 0x5e, 0xcf, 0x76, 0xcc, 0xee, - 0x9a, 0xfd, 0x69, 0xb8, 0xef, 0xe3, 0x1e, 0xea, 0xdb, 0x9f, 0xaa, 0xb6, 0x48, 0xd0, 0x91, 0xef, - 0x64, 0x39, 0x95, 0x09, 0xec, 0xc8, 0xa5, 0xb0, 0x23, 0x7b, 0xba, 0xa4, 0x54, 0x7f, 0x32, 0x7c, - 0xcc, 0x47, 0x30, 0x95, 0x58, 0x1b, 0x5a, 0x15, 0x45, 0x9f, 0x1f, 0x17, 0xad, 0x2c, 0xf4, 0x94, - 0xd8, 0xa4, 0x04, 0xbe, 0x23, 0xb6, 0x1d, 0x3b, 0xb0, 0xcd, 0xee, 0xa2, 0xdb, 0xeb, 0x99, 0x8e, - 0xa5, 0xd5, 0xd0, 0xd5, 0xe0, 0x8e, 0x68, 0x0b, 0xcc, 0x46, 0x47, 0xa0, 0xd4, 0x1d, 0x31, 0xc9, - 0xc4, 0x7d, 0x96, 0xb4, 0x21, 0x65, 0x1d, 0xd7, 0xb3, 0x6c, 0x67, 0x4b, 0x03, 0x54, 0x1a, 0xfa, - 0x2c, 0x5f, 0xe0, 0x36, 0xbc, 0x10, 0xa9, 0xfa, 0xac, 0x34, 0x23, 0xef, 0xd3, 0x42, 0xa7, 0xc3, - 0x7c, 0x9f, 0xb2, 0xef, 0x0d, 0x98, 0x1f, 0xf8, 0x5a, 0x3d, 0xee, 0x93, 0x89, 0x98, 0x0d, 0x4f, - 0xa2, 0xd4, 0x3e, 0x25, 0x99, 0x8c, 0x3f, 0x2d, 0x42, 0x5d, 0xca, 0xfe, 0x05, 0xd7, 0x76, 0x8e, - 0x56, 0xc4, 0x7e, 0x56, 0x44, 0xe6, 0xcc, 0xae, 0xbc, 0xac, 0x99, 0x6d, 0x7c, 0x56, 0x88, 0xdc, - 0xd7, 0xaa, 0x67, 0x3b, 0xfb, 0x73, 0x5f, 0x57, 0x00, 0x16, 0xb7, 0x07, 0xce, 0x23, 0x11, 0x83, - 0x14, 0xe2, 0x18, 0xa4, 0x63, 0x53, 0x05, 0xc3, 0x03, 0x91, 0x26, 0x97, 0xcf, 0x2d, 0x33, 0xd9, - 0xa8, 0x7d, 0x2e, 0x24, 0xe5, 0xdf, 0xa1, 0x08, 0x26, 0x3a, 0x94, 0x1b, 0xbb, 0x01, 0xf3, 0x51, - 0xf3, 0x45, 0x11, 0xa8, 0x6c, 0x72, 0x00, 0x15, 0x70, 0x72, 0x1b, 0x66, 0x9a, 0xac, 0x6b, 0xee, - 0xde, 0xb3, 0xbb, 0x5d, 0xdb, 0x67, 0x1d, 0xd7, 0xb1, 0x7c, 0x54, 0xb2, 0x6c, 0xae, 0xe7, 0xd3, - 0x71, 0x02, 0x62, 0x40, 0x65, 0xe5, 0xe1, 0x43, 0x9f, 0x05, 0xa8, 0xbe, 0x62, 0x03, 0x46, 0x43, - 0xbd, 0xe2, 0x22, 0x84, 0x4a, 0x8c, 0xf1, 0x93, 0x02, 0x4c, 0x45, 0xcb, 0xe2, 0xbb, 0xac, 0x73, - 0x30, 0xee, 0x3c, 0x9e, 0x7b, 0xc5, 0x7d, 0xcf, 0xbd, 0xd2, 0x3e, 0xe6, 0x9e, 0x01, 0x15, 0xca, - 0x4c, 0x5f, 0xce, 0xe0, 0x9a, 0xd0, 0x98, 0x87, 0x10, 0x2a, 0x31, 0xe4, 0x12, 0x4c, 0xdc, 0x33, - 0x9f, 0xd8, 0xbd, 0x41, 0x4f, 0xaa, 0x15, 0xa3, 0xaa, 0x9e, 0xf9, 0x84, 0x86, 0x70, 0xe3, 0x2f, - 0x4a, 0x5c, 0x0e, 0xf7, 0xdf, 0x87, 0xd3, 0x15, 0xbc, 0x3c, 0x85, 0xc6, 0x86, 0x2d, 0xbf, 0x80, - 0x61, 0x5f, 0x9b, 0xcd, 0xd1, 0xf8, 0x9f, 0x09, 0x1e, 0xe8, 0xa1, 0xf6, 0x97, 0x1c, 0xeb, 0x68, - 0xd6, 0xec, 0x67, 0xd6, 0x34, 0x61, 0x66, 0xc9, 0xd9, 0x36, 0x9d, 0x0e, 0xb3, 0xe2, 0x23, 0x02, - 0x9f, 0x3a, 0x55, 0x91, 0xdb, 0x60, 0x12, 0x19, 0x9f, 0x11, 0xe8, 0x38, 0x03, 0xb9, 0x05, 0xf5, - 0xb6, 0x13, 0x30, 0xcf, 0xec, 0x04, 0xf6, 0x0e, 0xc3, 0xd9, 0x53, 0x6d, 0x1c, 0x1f, 0x0d, 0xf5, - 0xba, 0x1d, 0x83, 0xa9, 0x4a, 0x43, 0x6e, 0xc3, 0xe4, 0xaa, 0xe9, 0x05, 0x76, 0xc7, 0xee, 0x9b, - 0x4e, 0xe0, 0x6b, 0x55, 0x3c, 0x4b, 0x4c, 0x8f, 0x86, 0xfa, 0x64, 0x5f, 0x81, 0xd3, 0x04, 0x15, - 0xf9, 0x0e, 0xd4, 0xf0, 0x1c, 0x8d, 0xf9, 0xa3, 0xda, 0x33, 0xf3, 0x47, 0x97, 0xe3, 0xb0, 0x5c, - 0x9c, 0x74, 0x7c, 0xce, 0x1c, 0x2f, 0x05, 0x4c, 0x29, 0xc5, 0x12, 0xc9, 0xb7, 0x61, 0x62, 0xc9, - 0xb1, 0x50, 0x38, 0x3c, 0x53, 0xb8, 0x21, 0x85, 0x9f, 0x8a, 0x85, 0xbb, 0xfd, 0x94, 0xec, 0x50, - 0x5c, 0xf6, 0x2a, 0xab, 0xff, 0xf4, 0x56, 0xd9, 0xe4, 0x4f, 0xe1, 0x08, 0x3a, 0xf5, 0xb2, 0x8e, - 0xa0, 0xc7, 0x5e, 0xf0, 0x08, 0x6a, 0x7c, 0x0a, 0xf5, 0xc6, 0xea, 0xdd, 0x68, 0xf5, 0x9e, 0x81, - 0xe2, 0xaa, 0xcc, 0xd7, 0x95, 0xc4, 0xce, 0xd2, 0xb7, 0x2d, 0xca, 0x61, 0xe4, 0x3a, 0x54, 0x17, - 0x31, 0x0e, 0x97, 0xd9, 0xa7, 0x92, 0xc8, 0x3e, 0x75, 0x10, 0x86, 0xd9, 0xa7, 0x10, 0x4d, 0xde, - 0x82, 0x89, 0x55, 0xcf, 0xdd, 0xf2, 0xcc, 0x9e, 0x0c, 0x58, 0xeb, 0xa3, 0xa1, 0x3e, 0xd1, 0x17, - 0x20, 0x1a, 0xe2, 0x8c, 0xdf, 0xc9, 0x43, 0x65, 0x2d, 0x30, 0x83, 0x81, 0xcf, 0x39, 0xd6, 0x06, - 0x78, 0xaa, 0xc5, 0xb6, 0xab, 0x82, 0xc3, 0x17, 0x20, 0x1a, 0xe2, 0xc8, 0x75, 0x28, 0x2f, 0x79, - 0x9e, 0xeb, 0xa9, 0x29, 0x3c, 0xc6, 0x01, 0x6a, 0x0a, 0x0f, 0x29, 0xc8, 0x1d, 0xa8, 0x0b, 0x9f, - 0xe3, 0xfb, 0x3c, 0xa8, 0x15, 0xfd, 0x38, 0x39, 0x1a, 0xea, 0x33, 0x3d, 0x01, 0x52, 0x73, 0x99, - 0x0a, 0xa5, 0xf1, 0x43, 0xcc, 0xdd, 0xa1, 0x9a, 0x42, 0x8d, 0xbf, 0x86, 0x07, 0xea, 0x77, 0xa1, - 0xd8, 0x58, 0xbd, 0x2b, 0x1d, 0xe0, 0x89, 0x90, 0x55, 0x99, 0x2a, 0x29, 0x3e, 0x4e, 0x4d, 0xce, - 0x41, 0x69, 0x95, 0x4f, 0x9f, 0x0a, 0x4e, 0x8f, 0xea, 0x68, 0xa8, 0x97, 0xfa, 0x7c, 0xfe, 0x20, - 0x14, 0xb1, 0x66, 0xb0, 0x8d, 0xbe, 0xac, 0x26, 0xb1, 0x66, 0xb0, 0x4d, 0x11, 0xca, 0xb1, 0x0b, - 0xde, 0xd6, 0x8e, 0xf4, 0x5a, 0x88, 0x35, 0xbd, 0xad, 0x1d, 0x8a, 0x50, 0x32, 0x07, 0x40, 0x59, - 0x30, 0xf0, 0x1c, 0x4c, 0x87, 0x73, 0x37, 0x55, 0x16, 0xde, 0xd0, 0x43, 0xe8, 0x46, 0xc7, 0xb5, - 0x18, 0x55, 0x48, 0x8c, 0x3f, 0x89, 0x63, 0xa2, 0xa6, 0xed, 0x3f, 0x3a, 0x32, 0xe1, 0x73, 0x98, - 0x90, 0x1b, 0xa9, 0x92, 0x69, 0x24, 0x1d, 0xca, 0x77, 0xbb, 0xe6, 0x96, 0x8f, 0x36, 0x2c, 0x8b, - 0x48, 0xe1, 0x21, 0x07, 0x50, 0x01, 0x4f, 0xd9, 0xa9, 0xfa, 0x6c, 0x3b, 0xfd, 0x6e, 0x39, 0x5a, - 0x6d, 0xf7, 0x59, 0xf0, 0xd8, 0xf5, 0x8e, 0x4c, 0xf5, 0x65, 0x4d, 0x75, 0x05, 0x26, 0xd6, 0xbc, - 0x0e, 0xe6, 0x97, 0x85, 0xb5, 0x26, 0x47, 0x43, 0xbd, 0xea, 0x7b, 0x1d, 0x4c, 0xcb, 0xd3, 0x10, - 0xc9, 0xe9, 0x9a, 0x7e, 0x80, 0x74, 0x13, 0x31, 0x9d, 0xe5, 0x07, 0x92, 0x4e, 0x22, 0x25, 0xdd, - 0xaa, 0xeb, 0x05, 0xd2, 0x70, 0x11, 0x5d, 0xdf, 0xf5, 0x02, 0x1a, 0x22, 0xc9, 0xdb, 0x00, 0xeb, - 0x8b, 0xab, 0x1f, 0x33, 0x0f, 0xd5, 0x25, 0xd6, 0x22, 0xba, 0xeb, 0x1d, 0x01, 0xa2, 0x0a, 0x9a, - 0xac, 0x43, 0x6d, 0xa5, 0xcf, 0x3c, 0x13, 0x0f, 0x65, 0xfc, 0x04, 0x70, 0x6c, 0xfe, 0x6a, 0x4a, - 0xb5, 0xd2, 0xee, 0x37, 0xe5, 0xdf, 0x88, 0x5c, 0xec, 0x2f, 0x6e, 0xf8, 0x93, 0xc6, 0x82, 0xc8, - 0x1d, 0xa8, 0x2c, 0x88, 0x73, 0x5e, 0x1d, 0x45, 0x46, 0x2a, 0x5b, 0xe2, 0x7f, 0x04, 0x4a, 0x44, - 0x4f, 0x26, 0xfe, 0x4f, 0x25, 0xb9, 0x71, 0x1d, 0xa6, 0xd3, 0xcd, 0x90, 0x3a, 0x4c, 0x2c, 0xae, - 0xdc, 0xbf, 0xbf, 0xb4, 0xb8, 0x3e, 0x9d, 0x23, 0x55, 0x28, 0xad, 0x2d, 0xdd, 0x6f, 0x4e, 0xe7, - 0x8d, 0x3f, 0x53, 0x3c, 0x08, 0x9f, 0x5a, 0x47, 0x59, 0x95, 0x7d, 0x1c, 0xa9, 0xe7, 0x61, 0x1a, - 0x53, 0x09, 0xeb, 0x9e, 0xe9, 0xf8, 0x3d, 0x3b, 0x08, 0x98, 0x25, 0x77, 0x09, 0x4c, 0x20, 0x04, - 0x4f, 0xe8, 0x18, 0x9e, 0xdc, 0x80, 0x29, 0x84, 0x51, 0xd6, 0x61, 0xf6, 0x0e, 0xb3, 0x70, 0xf6, - 0x4a, 0x06, 0xef, 0x09, 0x4d, 0x22, 0x8d, 0x7f, 0x8c, 0x13, 0x2b, 0xcb, 0xcc, 0xdc, 0x61, 0x47, - 0xf6, 0xda, 0x87, 0xbd, 0x8c, 0x3f, 0x2e, 0x42, 0x8d, 0x8f, 0x48, 0x5c, 0x87, 0x1e, 0x84, 0x2a, - 0x6f, 0x87, 0x67, 0x43, 0xa9, 0xc9, 0x63, 0x91, 0x26, 0x10, 0x3a, 0xa6, 0x01, 0x71, 0x8e, 0xbc, - 0x01, 0x95, 0x7b, 0x2c, 0xd8, 0x76, 0x2d, 0x79, 0x8b, 0x31, 0x3b, 0x1a, 0xea, 0xd3, 0x3d, 0x84, - 0x28, 0xe7, 0x3d, 0x49, 0x43, 0x1e, 0x01, 0x69, 0x5b, 0xcc, 0x09, 0xec, 0x60, 0x77, 0x21, 0x08, - 0x3c, 0x7b, 0x73, 0x10, 0x30, 0x5f, 0xea, 0xed, 0xf4, 0x58, 0x9c, 0xb2, 0x86, 0x65, 0x00, 0x78, - 0x71, 0x31, 0x6b, 0x46, 0xe4, 0xb1, 0xd8, 0xff, 0x1d, 0xea, 0x15, 0x41, 0x43, 0x33, 0xc4, 0x92, - 0x8f, 0xa0, 0x76, 0xef, 0xee, 0x42, 0x93, 0xed, 0xd8, 0x1d, 0x26, 0x13, 0x8a, 0x67, 0x22, 0x2d, - 0x86, 0x88, 0x48, 0x25, 0x78, 0xc9, 0xd8, 0x7b, 0x68, 0x6e, 0x58, 0x08, 0x57, 0x2f, 0x19, 0x23, - 0x62, 0xe3, 0xbf, 0xf2, 0x30, 0x4d, 0x99, 0xef, 0x0e, 0xbc, 0x98, 0x93, 0x5c, 0x81, 0x92, 0x72, - 0xc3, 0x85, 0xd9, 0x8a, 0xd4, 0xb5, 0x0a, 0xe2, 0xc9, 0x1a, 0x4c, 0x2c, 0x3d, 0xe9, 0xdb, 0x1e, - 0xf3, 0xa5, 0x6d, 0x9e, 0x16, 0x99, 0x9d, 0x97, 0x91, 0xd9, 0x0c, 0x13, 0x2c, 0x63, 0x41, 0x99, - 0x00, 0x93, 0xf7, 0xa0, 0xf6, 0xa0, 0x6f, 0x99, 0x01, 0xb3, 0x1a, 0xbb, 0xf2, 0xcc, 0x8d, 0x23, - 0x19, 0x08, 0xe0, 0xc6, 0xe6, 0xae, 0x3a, 0x92, 0x88, 0x94, 0x5c, 0x86, 0xe2, 0xfa, 0xfa, 0xb2, - 0x34, 0x1a, 0x16, 0x43, 0x04, 0x81, 0x7a, 0xb3, 0xca, 0xb1, 0xc6, 0x0f, 0x0a, 0x00, 0x7c, 0x6e, - 0x2c, 0x7a, 0xcc, 0x0c, 0x0e, 0x66, 0x81, 0x37, 0xa0, 0x1a, 0x2a, 0x5c, 0xce, 0x4b, 0x2d, 0xe4, - 0x4d, 0x1b, 0x22, 0xdd, 0x76, 0x88, 0xe7, 0x87, 0x28, 0xea, 0x76, 0x31, 0xdd, 0x5a, 0x0c, 0xeb, - 0x42, 0x3c, 0x0e, 0xa0, 0x02, 0x4e, 0xde, 0x86, 0x9a, 0x5c, 0x8a, 0xae, 0x27, 0x33, 0x81, 0x22, - 0xd4, 0x0a, 0x81, 0x34, 0xc6, 0x1b, 0x7f, 0x97, 0x17, 0x4a, 0x69, 0xb2, 0x2e, 0x3b, 0xbc, 0x4a, - 0x31, 0x7e, 0x23, 0x0f, 0x84, 0x0b, 0x5b, 0x35, 0x7d, 0xff, 0xb1, 0xeb, 0x59, 0x8b, 0xdb, 0xa6, - 0xb3, 0x75, 0x20, 0xc3, 0x31, 0x7e, 0xb3, 0x0c, 0x27, 0x12, 0x37, 0x2c, 0x87, 0x7c, 0xbe, 0x5d, - 0x4f, 0xce, 0x37, 0x0c, 0x9a, 0x71, 0xbe, 0xa9, 0x41, 0xb3, 0x98, 0x79, 0x6f, 0x42, 0x4d, 0x8e, - 0xb9, 0xdd, 0x94, 0x33, 0x0f, 0xb7, 0x5b, 0xdb, 0xa2, 0x31, 0x82, 0xbc, 0x03, 0x93, 0xf2, 0x07, - 0xf7, 0xba, 0x61, 0x5e, 0x14, 0xe7, 0xb1, 0xcf, 0x01, 0x34, 0x81, 0x26, 0x5f, 0x83, 0x1a, 0x9f, - 0x9c, 0x5b, 0x58, 0x49, 0x33, 0x11, 0xd7, 0xbc, 0x58, 0x21, 0x50, 0x75, 0x09, 0x11, 0x25, 0x77, - 0xe5, 0x32, 0x19, 0x5e, 0x8d, 0x5d, 0xb9, 0x48, 0x86, 0xab, 0xae, 0x5c, 0xa6, 0xc5, 0x3f, 0x81, - 0xfa, 0x82, 0xe3, 0xb8, 0x01, 0x1e, 0xe9, 0x7c, 0x99, 0xc8, 0xda, 0xd3, 0x87, 0x5f, 0xc6, 0x4a, - 0x8c, 0x98, 0x3e, 0xd3, 0x89, 0xab, 0x02, 0xc9, 0x3c, 0x37, 0xc4, 0x8e, 0xcd, 0x1e, 0x33, 0x4f, - 0xde, 0xf7, 0x61, 0x32, 0xcf, 0x93, 0x30, 0xb5, 0x2e, 0x23, 0xa4, 0x23, 0x0d, 0x98, 0x5a, 0xf5, - 0xdc, 0xbe, 0xeb, 0x33, 0x4b, 0x28, 0xaa, 0x8e, 0x8c, 0xe7, 0x46, 0x43, 0x5d, 0xeb, 0x4b, 0xc4, - 0x06, 0x6a, 0x4c, 0x61, 0x4f, 0xb2, 0x18, 0x7f, 0x50, 0x80, 0x3a, 0x3f, 0x75, 0xdf, 0x75, 0xbd, - 0xc7, 0xa6, 0x77, 0x30, 0xa9, 0x88, 0xe4, 0xb1, 0xa2, 0xb8, 0x8f, 0x63, 0x60, 0xbc, 0xa9, 0x97, - 0x9e, 0x63, 0x53, 0x3f, 0x07, 0x25, 0x8c, 0x5e, 0xca, 0x71, 0x4c, 0x8a, 0x91, 0x0b, 0x42, 0x8d, - 0x5f, 0x2e, 0x00, 0x7c, 0xfb, 0xd6, 0xad, 0xd7, 0x58, 0x41, 0xc6, 0xef, 0xe7, 0xe1, 0xb8, 0xcc, - 0x55, 0x29, 0xf5, 0x77, 0x13, 0x61, 0x96, 0x31, 0x1f, 0xe7, 0xe0, 0x64, 0x76, 0x91, 0x86, 0x38, - 0x3e, 0xaf, 0x97, 0x9e, 0xd8, 0x01, 0x86, 0xeb, 0x4a, 0x01, 0x1e, 0x93, 0x30, 0x75, 0x5e, 0x87, - 0x74, 0xe4, 0x9d, 0x30, 0x0b, 0x57, 0x8c, 0x17, 0x33, 0x67, 0x58, 0xca, 0xcc, 0xc4, 0x19, 0x7f, - 0x5d, 0x82, 0xd2, 0xd2, 0x13, 0xd6, 0x39, 0xe4, 0xa6, 0x51, 0xce, 0xf6, 0xa5, 0x7d, 0x9e, 0xed, - 0x5f, 0xe4, 0x5a, 0xe1, 0xfd, 0xd8, 0x9e, 0x95, 0x64, 0xf3, 0x29, 0xcb, 0xa7, 0x9b, 0x0f, 0x2d, - 0x7d, 0xf8, 0x6e, 0xa5, 0xfe, 0xbe, 0x08, 0xc5, 0xb5, 0xc5, 0xd5, 0xa3, 0x79, 0x73, 0xa0, 0xf3, - 0xe6, 0xe9, 0x69, 0x5b, 0x23, 0xca, 0xc4, 0x54, 0xe3, 0x2b, 0xeb, 0x54, 0xd2, 0xe5, 0xb3, 0x02, - 0xd4, 0xd6, 0x06, 0x9b, 0xfe, 0xae, 0x1f, 0xb0, 0xde, 0x21, 0xb7, 0xe6, 0x39, 0x19, 0x5d, 0x95, - 0x62, 0x6d, 0xf0, 0xe8, 0x4a, 0xc6, 0x54, 0x97, 0x43, 0xcf, 0xa8, 0x9c, 0xda, 0x23, 0xcf, 0x18, - 0xfa, 0xc3, 0xbf, 0x2a, 0xc0, 0xf4, 0x62, 0xd7, 0x66, 0x4e, 0xd0, 0xb4, 0x7d, 0x79, 0xa6, 0x3f, - 0xe4, 0x5a, 0xd9, 0x5f, 0xda, 0xe2, 0x4b, 0x94, 0x3d, 0x18, 0xbf, 0x52, 0x80, 0xfa, 0xc2, 0x20, - 0xd8, 0x5e, 0x08, 0x70, 0x73, 0x79, 0x2d, 0xb7, 0xf9, 0x9f, 0xe4, 0x41, 0xa3, 0xcc, 0x67, 0x41, - 0x18, 0x24, 0xad, 0xbb, 0x8f, 0x98, 0xf3, 0x12, 0xa2, 0x13, 0x35, 0xca, 0x28, 0xbc, 0x60, 0x94, - 0x11, 0x2a, 0xb5, 0xf8, 0x9c, 0xd1, 0x16, 0x8f, 0x5f, 0x79, 0xf0, 0xf1, 0x8a, 0x0c, 0xe3, 0x25, - 0x84, 0xe1, 0x07, 0x39, 0x8c, 0x7f, 0xca, 0xc3, 0xec, 0xba, 0xc7, 0x77, 0x74, 0x4b, 0x6e, 0xec, - 0x87, 0xdc, 0x2e, 0xe3, 0x03, 0x3a, 0xe4, 0x16, 0xfa, 0x97, 0x3c, 0x9c, 0x49, 0x0e, 0xe8, 0x55, - 0xf0, 0x02, 0xff, 0x9c, 0x87, 0x93, 0xdf, 0xb2, 0x83, 0xed, 0xc1, 0x66, 0x94, 0xd9, 0x7a, 0xf5, - 0x46, 0x74, 0xc8, 0x67, 0xde, 0x8f, 0xf2, 0x70, 0x62, 0xa5, 0xdd, 0x5c, 0x7c, 0x55, 0x2c, 0x34, - 0x36, 0x9e, 0x57, 0xc0, 0x3e, 0x6b, 0x0b, 0xf7, 0x96, 0x5f, 0x25, 0xfb, 0x24, 0xc6, 0x73, 0xc8, - 0xed, 0xf3, 0x6b, 0x15, 0xa8, 0xf3, 0x00, 0x57, 0x26, 0x47, 0x5f, 0xeb, 0x23, 0xff, 0x3c, 0xd4, - 0xa5, 0x1a, 0x30, 0xb6, 0x14, 0xe7, 0x7e, 0x2c, 0x55, 0x94, 0xef, 0x1d, 0x36, 0x30, 0xc6, 0x54, - 0x89, 0x78, 0xe8, 0xf5, 0x31, 0xf3, 0x36, 0xd5, 0xd2, 0x94, 0x1d, 0xe6, 0x6d, 0x52, 0x84, 0x92, - 0xe5, 0xf8, 0x2a, 0x6c, 0x61, 0xb5, 0x8d, 0x8f, 0xc2, 0x64, 0xc8, 0x8a, 0xaf, 0xdc, 0x3c, 0x89, - 0xdb, 0x30, 0xfb, 0xb6, 0x78, 0x4e, 0xa6, 0x96, 0xc5, 0xa5, 0x39, 0xc9, 0x7d, 0x98, 0x09, 0x61, - 0xf1, 0xeb, 0xae, 0x6a, 0x86, 0xb8, 0xac, 0x77, 0x5d, 0xe3, 0xac, 0xe4, 0x7d, 0x98, 0x0c, 0x81, - 0x1f, 0xda, 0xf8, 0xf6, 0x84, 0x8b, 0x7a, 0x63, 0x34, 0xd4, 0x4f, 0x47, 0xa2, 0x1e, 0xd9, 0x89, - 0xb2, 0xbf, 0x04, 0x83, 0x2a, 0x00, 0xe3, 0x4f, 0xc8, 0x10, 0x90, 0xba, 0xe6, 0x4b, 0x30, 0x90, - 0xaf, 0xa1, 0x80, 0xbe, 0xeb, 0xf8, 0x0c, 0x93, 0x7d, 0x75, 0xac, 0xdb, 0xc0, 0xab, 0x36, 0x4f, - 0xc2, 0x45, 0x75, 0x4e, 0x82, 0x8c, 0xac, 0x00, 0xc4, 0x49, 0x19, 0x59, 0x03, 0xf9, 0xdc, 0xe9, - 0x22, 0x45, 0x84, 0xf1, 0x7f, 0x05, 0x38, 0xbe, 0xd0, 0xef, 0x1f, 0x3d, 0xe1, 0x7a, 0x59, 0xa5, - 0x15, 0x73, 0x00, 0xab, 0x83, 0xcd, 0xae, 0xdd, 0x51, 0x2a, 0x7c, 0xb0, 0xe4, 0xaa, 0x8f, 0x50, - 0x51, 0xe4, 0xa3, 0x90, 0x18, 0x9f, 0x15, 0x55, 0x0b, 0xe0, 0x33, 0x91, 0x23, 0x0b, 0x94, 0xf7, - 0xe5, 0x0a, 0x8f, 0xa9, 0xca, 0x94, 0x05, 0x90, 0xf2, 0xc6, 0x2a, 0x2c, 0xc7, 0xed, 0x70, 0xd4, - 0x86, 0x6d, 0xd1, 0x14, 0xad, 0xf1, 0xdf, 0x79, 0x98, 0x89, 0xcd, 0xf1, 0x32, 0x36, 0x87, 0x39, - 0x00, 0x91, 0x31, 0x88, 0xb2, 0xfa, 0x53, 0x62, 0x46, 0xf8, 0x08, 0x95, 0x45, 0x78, 0x31, 0x49, - 0x94, 0xe2, 0x2b, 0x66, 0xa6, 0xf8, 0xae, 0x43, 0x95, 0x9a, 0x8f, 0x3f, 0x1a, 0x30, 0x6f, 0x57, - 0xa6, 0xbd, 0x30, 0xaf, 0xe5, 0x99, 0x8f, 0x37, 0xbe, 0xc7, 0x81, 0x34, 0x42, 0x13, 0x23, 0x2a, - 0xbf, 0x50, 0x32, 0x39, 0xa2, 0xfc, 0x22, 0x2c, 0xba, 0x30, 0x7e, 0xaf, 0x00, 0xd3, 0x4d, 0x33, - 0x30, 0x37, 0x4d, 0x3f, 0x2e, 0x5a, 0xf8, 0x3a, 0x1c, 0x0f, 0x61, 0xdc, 0x3c, 0x76, 0xf4, 0x3a, - 0xfe, 0xd8, 0x68, 0xa8, 0x83, 0xb5, 0xb9, 0xe1, 0x0b, 0x28, 0x4d, 0x93, 0x91, 0x9f, 0x8d, 0xa5, - 0x45, 0xaf, 0xa6, 0x0b, 0xf1, 0x22, 0xb0, 0x36, 0x37, 0xfa, 0x12, 0x4c, 0xc7, 0x08, 0xc9, 0x0d, - 0xa8, 0x87, 0xb0, 0x07, 0xb4, 0x2d, 0xc7, 0x8f, 0x9d, 0xb6, 0x36, 0x37, 0x06, 0x9e, 0x4d, 0x55, - 0x34, 0x99, 0x83, 0xc9, 0xf0, 0xa7, 0x92, 0x03, 0xc4, 0x7b, 0x15, 0x6b, 0x13, 0xbd, 0x2f, 0x4d, - 0x10, 0xa8, 0x0c, 0xb8, 0x42, 0xca, 0x09, 0x86, 0x81, 0xcf, 0x3c, 0x9a, 0x20, 0x30, 0x7e, 0x54, - 0x84, 0xd9, 0x78, 0x80, 0x47, 0x1e, 0xf2, 0xe5, 0xac, 0xcf, 0x38, 0xdb, 0x56, 0x79, 0x8e, 0x5b, - 0xc7, 0x06, 0x54, 0x43, 0x53, 0xc8, 0x6b, 0x92, 0xe8, 0xa8, 0x98, 0x9e, 0xbe, 0x69, 0xd5, 0x87, - 0x78, 0xe3, 0x5f, 0xc7, 0xed, 0x29, 0x16, 0xca, 0xa1, 0xb4, 0xa7, 0xaa, 0x91, 0xd2, 0x8b, 0x69, - 0x84, 0xcc, 0xc3, 0x54, 0xf8, 0xbf, 0xf0, 0x28, 0x65, 0xa5, 0x24, 0x75, 0x53, 0x3a, 0x94, 0x24, - 0x09, 0xf9, 0x25, 0x38, 0x9d, 0x00, 0xac, 0x9a, 0x9e, 0xd9, 0x63, 0x01, 0xf3, 0xb8, 0x41, 0x8b, - 0xe1, 0x33, 0xfe, 0x90, 0x7b, 0xa3, 0x1f, 0xa1, 0xd5, 0x97, 0xf0, 0x7b, 0x48, 0x50, 0x26, 0xc7, - 0xc4, 0x73, 0xa4, 0x62, 0x7f, 0xab, 0x00, 0x24, 0x65, 0xd8, 0x43, 0xfb, 0x70, 0xea, 0x25, 0x98, - 0xd5, 0xf8, 0xf3, 0x3c, 0xcc, 0x8c, 0x15, 0xb1, 0x91, 0x77, 0x01, 0x04, 0x44, 0x29, 0x48, 0xc3, - 0xf2, 0x93, 0xb8, 0xb0, 0x4d, 0xb8, 0x4d, 0x85, 0x8c, 0xcc, 0x41, 0x55, 0xfc, 0x8a, 0xbe, 0x72, - 0x92, 0x66, 0x19, 0x0c, 0x6c, 0x8b, 0x46, 0x44, 0x71, 0x2b, 0xf8, 0xb1, 0x9d, 0x62, 0x26, 0x4b, - 0xb0, 0xdb, 0x8f, 0x5a, 0xe1, 0x64, 0xc6, 0x0f, 0xf3, 0x30, 0x19, 0x75, 0x78, 0xc1, 0x3a, 0x28, - 0xd3, 0x55, 0x64, 0x3d, 0x60, 0xf1, 0x59, 0xf5, 0x80, 0xa9, 0x69, 0x28, 0x0b, 0x00, 0xff, 0x21, - 0x0f, 0xc7, 0x23, 0xda, 0x03, 0xac, 0x00, 0xdb, 0xf7, 0x40, 0x7e, 0x3b, 0x0f, 0x5a, 0xc3, 0xee, - 0x76, 0x6d, 0x67, 0xab, 0xed, 0x3c, 0x74, 0xbd, 0x1e, 0x96, 0xdd, 0x88, 0xfa, 0xc0, 0x03, 0x29, - 0x02, 0xfb, 0xf5, 0x3c, 0xcc, 0xc8, 0x0e, 0x2d, 0x9a, 0x9e, 0x75, 0x70, 0x25, 0x60, 0xe9, 0x9e, - 0x1c, 0x9c, 0x95, 0x8d, 0xbf, 0x3d, 0x03, 0xe5, 0x15, 0x87, 0xad, 0x3c, 0x24, 0xb7, 0x94, 0xea, - 0x60, 0xd9, 0xfc, 0x8c, 0x2a, 0x06, 0x11, 0xad, 0x1c, 0x55, 0x6a, 0x88, 0x6f, 0xab, 0xb5, 0x9b, - 0xb2, 0x69, 0xa2, 0xf2, 0x08, 0x4c, 0x2b, 0x47, 0xd5, 0x1a, 0xcf, 0xdb, 0x6a, 0x71, 0xa3, 0x9c, - 0x5c, 0x09, 0x2e, 0x81, 0x09, 0xb9, 0xa4, 0x72, 0x96, 0xb3, 0x6a, 0x09, 0xd3, 0x4f, 0x42, 0xc7, - 0x29, 0x5a, 0x39, 0x9a, 0x5d, 0x83, 0x98, 0xf8, 0xe0, 0x88, 0x3c, 0x8a, 0xcc, 0xa6, 0xbc, 0x2c, - 0xe2, 0x5a, 0x39, 0x9a, 0xfc, 0x38, 0xc9, 0x9d, 0xc4, 0x97, 0x19, 0xe4, 0xf9, 0xe3, 0x44, 0x8a, - 0x95, 0xa3, 0x5a, 0x39, 0x9a, 0xfa, 0x86, 0x43, 0xe2, 0x33, 0x01, 0x72, 0x73, 0x4a, 0x37, 0x8a, - 0x38, 0xa5, 0x51, 0xf1, 0x49, 0x81, 0x9f, 0x4b, 0xbd, 0xa9, 0x97, 0xa5, 0x18, 0x27, 0x53, 0xcc, - 0x02, 0xd9, 0xca, 0xd1, 0xd4, 0x0b, 0xfc, 0x6b, 0xe1, 0xeb, 0x71, 0x59, 0x45, 0x77, 0x4c, 0xc9, - 0x90, 0xd9, 0x9f, 0x72, 0x2d, 0x85, 0xaf, 0xcb, 0x6f, 0xab, 0xaf, 0x86, 0xe5, 0xfb, 0x4e, 0x92, - 0x6a, 0x65, 0xc9, 0xb1, 0xb8, 0x75, 0x94, 0x4d, 0xf2, 0x83, 0xf4, 0xfb, 0x3a, 0xf9, 0x6a, 0xf3, - 0x54, 0x8a, 0x53, 0x62, 0x5b, 0x39, 0x9a, 0x7e, 0x8f, 0x77, 0x27, 0xf1, 0xb6, 0x4b, 0x66, 0x25, - 0xd2, 0x5a, 0xe5, 0x28, 0x45, 0xab, 0xf8, 0x0a, 0xec, 0x83, 0xf4, 0x63, 0x23, 0x6d, 0x2a, 0xb3, - 0x69, 0x89, 0x55, 0x9a, 0x0e, 0x1f, 0x27, 0xdd, 0x49, 0x3c, 0x0a, 0xc1, 0x77, 0x97, 0x19, 0x4d, - 0x9b, 0x81, 0xa9, 0x36, 0x2d, 0x9e, 0x8f, 0x24, 0x9e, 0x27, 0x68, 0xc7, 0x33, 0x0d, 0x8a, 0x38, - 0xc5, 0xa0, 0xe2, 0x29, 0xc3, 0x9d, 0x44, 0x0d, 0xa0, 0x36, 0x9d, 0x6c, 0x54, 0x41, 0xf1, 0x46, - 0xd5, 0x6a, 0xc1, 0xdb, 0x6a, 0x69, 0x9c, 0x36, 0x93, 0x34, 0x50, 0x8c, 0xe1, 0x06, 0x52, 0x4a, - 0xe8, 0x74, 0x2c, 0xbb, 0xd1, 0x08, 0x92, 0xd7, 0xa3, 0x1e, 0x2e, 0xae, 0xb6, 0x72, 0x14, 0x0b, - 0x72, 0x0c, 0x51, 0xd0, 0xa5, 0x9d, 0x40, 0x8a, 0xc9, 0xe8, 0xf1, 0xcd, 0x13, 0xd6, 0x69, 0xe5, - 0xa8, 0x28, 0xf6, 0xba, 0xa5, 0xd4, 0x7c, 0x68, 0xb3, 0x49, 0x17, 0x11, 0x21, 0xb8, 0x8b, 0x88, - 0x2b, 0x43, 0xee, 0x8e, 0xd7, 0x45, 0x68, 0x27, 0x93, 0x07, 0x92, 0x34, 0xbe, 0x95, 0xa3, 0xe3, - 0xb5, 0x14, 0x77, 0x12, 0xa5, 0x02, 0xda, 0xa9, 0xa4, 0xba, 0x14, 0x14, 0x57, 0x97, 0x5a, 0x54, - 0xb0, 0x92, 0x59, 0xf8, 0xab, 0x9d, 0x46, 0x01, 0x6f, 0x44, 0x02, 0xc6, 0x49, 0x5a, 0x39, 0x9a, - 0x59, 0x32, 0xfc, 0xc9, 0xde, 0x17, 0xf6, 0x9a, 0x86, 0x52, 0x2f, 0x2a, 0x8b, 0x2b, 0x93, 0xae, - 0x95, 0xa3, 0x7b, 0x5f, 0xfa, 0xdf, 0x56, 0xef, 0xce, 0xb5, 0x33, 0x49, 0xfb, 0xc6, 0x18, 0x6e, - 0x5f, 0xe5, 0x8e, 0xfd, 0xb6, 0x7a, 0x55, 0xad, 0x9d, 0x1d, 0xe7, 0x8a, 0x9d, 0xaa, 0x72, 0xa5, - 0x4d, 0xb3, 0x6f, 0x86, 0xb5, 0x37, 0x90, 0xff, 0x5c, 0xc8, 0x9f, 0x45, 0xd3, 0xca, 0xd1, 0xec, - 0x5b, 0x65, 0x9a, 0x7d, 0x39, 0xab, 0x9d, 0x7b, 0x9a, 0xcc, 0xa8, 0x77, 0xd9, 0x17, 0xbb, 0xe6, - 0x53, 0xee, 0x47, 0xb5, 0xf3, 0xc9, 0x04, 0xe6, 0x9e, 0x84, 0xad, 0x1c, 0x7d, 0xca, 0x2d, 0xeb, - 0x83, 0x3d, 0x2e, 0x2b, 0xb5, 0x0b, 0xc9, 0x9a, 0xb7, 0x4c, 0xa2, 0x56, 0x8e, 0xee, 0x71, 0xd5, - 0xf9, 0x60, 0x8f, 0x1b, 0x43, 0x4d, 0x7f, 0xaa, 0xd8, 0x48, 0x1f, 0x7b, 0xdc, 0x37, 0xae, 0x64, - 0x5e, 0xdb, 0x69, 0x17, 0x93, 0xb3, 0x3a, 0x83, 0x84, 0xcf, 0xea, 0xac, 0x0b, 0xbf, 0x95, 0xcc, - 0x7b, 0x33, 0xed, 0xd2, 0x53, 0x04, 0x46, 0x7d, 0xcc, 0xbc, 0x71, 0x5b, 0xc9, 0xbc, 0xb8, 0xd2, - 0x8c, 0xa4, 0xc0, 0x0c, 0x12, 0x2e, 0x30, 0xeb, 0xca, 0x6b, 0x25, 0xf3, 0xe6, 0x48, 0xbb, 0xfc, - 0x14, 0x81, 0x71, 0x0f, 0xb3, 0xee, 0x9c, 0xee, 0x24, 0xae, 0x6e, 0xb4, 0x37, 0x93, 0x2e, 0x45, - 0x41, 0x71, 0x97, 0xa2, 0x5e, 0xf2, 0x2c, 0x8e, 0x65, 0xbb, 0xb5, 0xb7, 0x92, 0x51, 0x5a, 0x0a, - 0xdd, 0xca, 0xd1, 0xb1, 0xfc, 0xf8, 0xe2, 0x58, 0xc2, 0x56, 0xbb, 0xb2, 0x97, 0x10, 0x44, 0x27, - 0x85, 0x88, 0x14, 0x6f, 0x3b, 0x23, 0xcd, 0xa8, 0x5d, 0x4d, 0x1e, 0xd7, 0xc7, 0x08, 0x5a, 0x39, - 0x9a, 0x91, 0x9c, 0xa4, 0xd9, 0x59, 0x2a, 0xed, 0x5a, 0x72, 0xd9, 0x66, 0xd1, 0xf0, 0x65, 0x9b, - 0x99, 0xe1, 0x5a, 0xce, 0x0a, 0xa8, 0xb5, 0xeb, 0xc9, 0x33, 0xdb, 0x38, 0x05, 0x3f, 0xb3, 0x65, - 0x04, 0xe2, 0x34, 0x3b, 0xef, 0xa2, 0x7d, 0xe5, 0xa9, 0x3d, 0x44, 0x9a, 0x8c, 0x1e, 0x8a, 0x34, - 0x44, 0x7c, 0xac, 0x7a, 0xd0, 0xef, 0xba, 0xa6, 0xa5, 0xbd, 0x9d, 0x79, 0xac, 0x12, 0x48, 0xe5, - 0x58, 0x25, 0x00, 0xfc, 0x00, 0xa0, 0x06, 0x9c, 0xda, 0x8d, 0xe4, 0x01, 0x40, 0xc5, 0xf1, 0x03, - 0x40, 0x22, 0x38, 0x5d, 0x1c, 0x0b, 0xf3, 0xb4, 0x77, 0x92, 0x13, 0x20, 0x85, 0xe6, 0x13, 0x20, - 0x1d, 0x18, 0x7e, 0xb2, 0x77, 0x88, 0xa5, 0xdd, 0x4c, 0x6e, 0x46, 0x7b, 0xd1, 0xf1, 0xcd, 0x68, - 0xcf, 0x30, 0xad, 0x9d, 0x11, 0x31, 0x69, 0x73, 0xc9, 0x09, 0x36, 0x46, 0xc0, 0x27, 0xd8, 0x78, - 0x9c, 0xd5, 0xce, 0x08, 0x79, 0xb4, 0xaf, 0xee, 0x29, 0x2a, 0x1a, 0xf3, 0x38, 0x57, 0x63, 0x02, - 0xca, 0xf8, 0x28, 0xd8, 0xf8, 0xc3, 0x3c, 0x4c, 0xae, 0x05, 0x1e, 0x33, 0x7b, 0x32, 0xc1, 0x77, - 0x16, 0xaa, 0xc2, 0x34, 0xe1, 0x07, 0x6a, 0x69, 0xf4, 0x9b, 0x5c, 0x81, 0x63, 0xcb, 0xa6, 0x1f, - 0x20, 0xa7, 0xf2, 0x75, 0x2d, 0x9a, 0x82, 0x92, 0x65, 0x41, 0x27, 0xf8, 0xf0, 0x2b, 0x27, 0xc5, - 0x67, 0xbe, 0xa5, 0xab, 0xf2, 0xd0, 0x0a, 0x9f, 0xcd, 0xa5, 0x78, 0x8d, 0x51, 0x1e, 0xc6, 0x26, - 0xcd, 0x8b, 0x87, 0x79, 0x2b, 0x63, 0x1f, 0xe5, 0x95, 0x61, 0xd7, 0x97, 0x4c, 0x10, 0x8d, 0x7d, - 0xd2, 0xf7, 0x32, 0x14, 0x1f, 0xb4, 0x9b, 0xea, 0x23, 0xbd, 0xe4, 0x17, 0x8b, 0x39, 0x96, 0x5c, - 0x8d, 0x62, 0x82, 0x07, 0x74, 0x59, 0x66, 0xf7, 0xf0, 0x43, 0x22, 0x03, 0xaf, 0x4b, 0x15, 0xd4, - 0x57, 0xae, 0x42, 0x5d, 0x79, 0xad, 0x4d, 0x26, 0xa1, 0xba, 0xd2, 0x58, 0x5b, 0xa2, 0x1f, 0x2f, - 0x35, 0xa7, 0x73, 0x04, 0xa0, 0xd2, 0x5c, 0xba, 0xdf, 0x5e, 0x6a, 0x4e, 0xe7, 0x1b, 0xd3, 0x9f, - 0xff, 0xc7, 0x85, 0xdc, 0xe7, 0x5f, 0x5c, 0xc8, 0xff, 0xf8, 0x8b, 0x0b, 0xf9, 0x7f, 0xff, 0xe2, - 0x42, 0x7e, 0xb3, 0x82, 0x5a, 0x7d, 0xf7, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xf5, 0xa0, 0x33, - 0x40, 0xf7, 0x59, 0x00, 0x00, + // 4499 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0x47, + 0x76, 0xf3, 0xe7, 0xcc, 0x1b, 0x4a, 0x22, 0x4b, 0x94, 0xd4, 0x92, 0x25, 0xb5, 0xdc, 0xb2, 0x65, + 0x69, 0x6d, 0x8b, 0x6b, 0x5a, 0x6b, 0x6d, 0x9c, 0x4d, 0x6c, 0x0e, 0x87, 0xda, 0x99, 0x98, 0x22, + 0xe9, 0x22, 0xe5, 0x5d, 0x20, 0x58, 0x0f, 0x9a, 0xd3, 0x25, 0xb2, 0x57, 0x33, 0xdd, 0xb3, 0xdd, + 0x3d, 0x94, 0xe8, 0x53, 0x3e, 0x87, 0x04, 0x81, 0x13, 0x2c, 0x36, 0x87, 0x20, 0xc8, 0x21, 0x01, + 0x82, 0x1c, 0x02, 0x04, 0x49, 0x90, 0x43, 0x10, 0x20, 0xc7, 0x4d, 0x02, 0x03, 0xc1, 0x26, 0x8b, + 0x0d, 0x90, 0x5b, 0x26, 0x89, 0x81, 0x5c, 0x06, 0xc9, 0x39, 0x40, 0x2e, 0x59, 0xd4, 0xab, 0xea, + 0xee, 0xea, 0x9e, 0xa6, 0x6c, 0x89, 0x5a, 0x10, 0x94, 0x78, 0x22, 0xe7, 0xfd, 0xaa, 0xea, 0xbd, + 0xaa, 0x57, 0xf5, 0x5e, 0xbd, 0x6a, 0x98, 0x66, 0xbb, 0xcc, 0x09, 0xfc, 0x9b, 0x03, 0xcf, 0x0d, + 0x5c, 0x52, 0x11, 0xbf, 0x2e, 0xcc, 0x6d, 0xbb, 0xdb, 0x2e, 0x82, 0xe6, 0xf9, 0x7f, 0x02, 0x7b, + 0x41, 0xdf, 0x76, 0xdd, 0xed, 0x1e, 0x9b, 0xc7, 0x5f, 0x5b, 0xc3, 0xfb, 0xf3, 0x81, 0xdd, 0x67, + 0x7e, 0x60, 0xf6, 0x07, 0x92, 0xe0, 0x62, 0x9a, 0xc0, 0x0f, 0xbc, 0x61, 0x37, 0x10, 0x58, 0xe3, + 0x07, 0x05, 0xa8, 0xde, 0x65, 0x81, 0x69, 0x99, 0x81, 0x49, 0x2e, 0x42, 0xb9, 0xed, 0x58, 0xec, + 0x91, 0x96, 0xbf, 0x92, 0xbf, 0x5e, 0x6c, 0x54, 0xc6, 0x23, 0xbd, 0xc0, 0x6c, 0x2a, 0x80, 0xe4, + 0x12, 0x94, 0x36, 0xf7, 0x06, 0x4c, 0x2b, 0x5c, 0xc9, 0x5f, 0xaf, 0x35, 0x6a, 0xe3, 0x91, 0x5e, + 0xc6, 0x9e, 0x51, 0x04, 0x93, 0x97, 0xa1, 0xd0, 0x6e, 0x6a, 0x45, 0x44, 0xce, 0x8e, 0x47, 0xfa, + 0x89, 0xa1, 0x6d, 0xbd, 0xe1, 0xf6, 0xed, 0x80, 0xf5, 0x07, 0xc1, 0x1e, 0x2d, 0xb4, 0x9b, 0xe4, + 0x1a, 0x94, 0x96, 0x5c, 0x8b, 0x69, 0x25, 0x24, 0x22, 0xe3, 0x91, 0x7e, 0xb2, 0xeb, 0x5a, 0x4c, + 0xa1, 0x42, 0x3c, 0x79, 0x1f, 0x4a, 0x9b, 0x76, 0x9f, 0x69, 0xe5, 0x2b, 0xf9, 0xeb, 0xf5, 0x85, + 0x0b, 0x37, 0xc5, 0x08, 0x6e, 0x86, 0x23, 0xb8, 0xb9, 0x19, 0x0e, 0xb1, 0x31, 0xf3, 0xd9, 0x48, + 0xcf, 0x8d, 0x47, 0x7a, 0x89, 0x8f, 0xfa, 0xfb, 0xff, 0xae, 0xe7, 0x29, 0x72, 0x92, 0x6f, 0x40, + 0x7d, 0xa9, 0x37, 0xf4, 0x03, 0xe6, 0xad, 0x9a, 0x7d, 0xa6, 0x55, 0xb0, 0xc1, 0x0b, 0xe3, 0x91, + 0x7e, 0xb6, 0x2b, 0xc0, 0x1d, 0xc7, 0xec, 0xab, 0x0d, 0xab, 0xe4, 0xc6, 0x77, 0xe1, 0xd4, 0x06, + 0xf3, 0x7d, 0xdb, 0x75, 0x22, 0xd5, 0xbc, 0x0a, 0x35, 0x09, 0x6a, 0x37, 0x51, 0x3d, 0xb5, 0xc6, + 0xd4, 0x78, 0xa4, 0x17, 0x7d, 0xdb, 0xa2, 0x31, 0x86, 0x7c, 0x15, 0xa6, 0xbe, 0x65, 0x07, 0x3b, + 0x77, 0xef, 0x2c, 0x4a, 0x35, 0x9d, 0x1d, 0x8f, 0x74, 0xf2, 0xd0, 0x0e, 0x76, 0x3a, 0xfd, 0xfb, + 0xa6, 0xd2, 0x5e, 0x48, 0x66, 0xfc, 0x5b, 0x1e, 0xa6, 0xef, 0xf9, 0xcc, 0x8b, 0x5a, 0xba, 0x06, + 0x25, 0xfe, 0x5b, 0x36, 0x82, 0x4a, 0x1a, 0xfa, 0xcc, 0x53, 0x95, 0xc4, 0xf1, 0xe4, 0x06, 0x94, + 0x57, 0xdc, 0x6d, 0xdb, 0x91, 0x0d, 0x9d, 0x1e, 0x8f, 0xf4, 0x53, 0x3d, 0x0e, 0x50, 0x28, 0x05, + 0x05, 0xf9, 0x45, 0x98, 0x6e, 0xf7, 0x07, 0xcc, 0xf3, 0x5d, 0xc7, 0x0c, 0x5c, 0x4f, 0x1a, 0x09, + 0xd5, 0x61, 0x2b, 0x70, 0x85, 0x31, 0x41, 0x4f, 0xde, 0x05, 0x58, 0xfc, 0xd6, 0x06, 0x75, 0x7b, + 0x6c, 0x91, 0xae, 0x4a, 0xeb, 0x21, 0xb7, 0xf9, 0xd0, 0xef, 0x78, 0x6e, 0x8f, 0x75, 0x4c, 0x4f, + 0x6d, 0x56, 0xa1, 0x36, 0xfe, 0xb2, 0x08, 0x27, 0x37, 0x98, 0xb7, 0xab, 0x8c, 0x70, 0x91, 0xab, + 0x97, 0x43, 0xb8, 0xb2, 0xfd, 0x81, 0xd9, 0x65, 0x72, 0xb0, 0xe7, 0xc6, 0x23, 0xfd, 0xb4, 0x13, + 0x02, 0x15, 0x81, 0x69, 0x7a, 0x72, 0x03, 0xaa, 0x02, 0xd4, 0x6e, 0xca, 0xf1, 0x9f, 0x18, 0x8f, + 0xf4, 0x9a, 0x8f, 0xb0, 0x8e, 0x6d, 0xd1, 0x08, 0x4d, 0x96, 0xc3, 0xf6, 0x5b, 0xae, 0x1f, 0x70, + 0xe1, 0x72, 0xf8, 0x97, 0xc6, 0x23, 0xfd, 0xbc, 0x64, 0xd8, 0x91, 0x28, 0xa5, 0xc9, 0x14, 0x13, + 0xf9, 0x39, 0x00, 0x01, 0x59, 0xb4, 0x2c, 0x4f, 0xea, 0xe0, 0xfc, 0x78, 0xa4, 0x9f, 0x91, 0x22, + 0x4c, 0xcb, 0x52, 0x15, 0xa8, 0x10, 0x93, 0x3e, 0x4c, 0x8b, 0x5f, 0x2b, 0xe6, 0x16, 0xeb, 0xf9, + 0x5a, 0xf9, 0x4a, 0xf1, 0x7a, 0x7d, 0xe1, 0xfa, 0x4d, 0xb9, 0xca, 0x93, 0xda, 0xb9, 0xa9, 0x92, + 0x2e, 0x3b, 0x81, 0xb7, 0xd7, 0xd0, 0xe5, 0x24, 0x3f, 0x27, 0x9b, 0xea, 0x21, 0x4e, 0xb5, 0x96, + 0xca, 0x73, 0xe1, 0x3d, 0x98, 0x9d, 0x90, 0x41, 0x66, 0xa0, 0xf8, 0x80, 0xed, 0x09, 0x3d, 0x53, + 0xfe, 0x2f, 0x99, 0x83, 0xf2, 0xae, 0xd9, 0x1b, 0xca, 0xf5, 0x4c, 0xc5, 0x8f, 0x77, 0x0b, 0x5f, + 0xcf, 0x1b, 0x7f, 0x93, 0x07, 0xb2, 0xe4, 0x3a, 0x0e, 0xeb, 0x06, 0xea, 0x12, 0x78, 0x07, 0x6a, + 0x2b, 0x6e, 0xd7, 0xec, 0xa1, 0x02, 0x84, 0xc1, 0xb4, 0xf1, 0x48, 0x9f, 0xe3, 0x23, 0xbf, 0xd9, + 0xe3, 0x18, 0xa5, 0x4b, 0x31, 0x29, 0xd7, 0x1c, 0x65, 0x7d, 0x37, 0x60, 0xc8, 0x58, 0x88, 0x35, + 0x87, 0x8c, 0x1e, 0xa2, 0x54, 0xcd, 0xc5, 0xc4, 0x64, 0x1e, 0xaa, 0xeb, 0x7c, 0xd1, 0x77, 0xdd, + 0x9e, 0xb4, 0x1a, 0x4e, 0x73, 0x74, 0x04, 0x0a, 0x4b, 0x44, 0x64, 0xfc, 0x5a, 0x01, 0xce, 0x7f, + 0x30, 0xdc, 0x62, 0x9e, 0xc3, 0x02, 0xe6, 0xcb, 0x35, 0x1d, 0x8d, 0x60, 0x15, 0x66, 0x27, 0x90, + 0x72, 0x24, 0x57, 0xc6, 0x23, 0xfd, 0xe2, 0x83, 0x08, 0xd9, 0x91, 0x6e, 0x42, 0x69, 0x64, 0x92, + 0x95, 0xb4, 0xe0, 0x54, 0x0c, 0xe4, 0x8b, 0xd2, 0xd7, 0x0a, 0x57, 0x8a, 0xd7, 0x6b, 0x8d, 0xcb, + 0xe3, 0x91, 0x7e, 0x41, 0x91, 0xc6, 0x17, 0xb0, 0x6a, 0xb0, 0x34, 0x1b, 0xf9, 0x00, 0x66, 0x62, + 0xd0, 0x37, 0x3d, 0x77, 0x38, 0xf0, 0xb5, 0x22, 0x8a, 0xd2, 0xc7, 0x23, 0xfd, 0x25, 0x45, 0xd4, + 0x36, 0x22, 0x15, 0x59, 0x13, 0x8c, 0xc6, 0x7f, 0x15, 0xe1, 0x4c, 0x0c, 0x5c, 0x77, 0xad, 0x48, + 0x01, 0x6b, 0xaa, 0x02, 0xd6, 0x5d, 0x0b, 0x9d, 0xa3, 0x50, 0xc0, 0xcb, 0xe3, 0x91, 0x7e, 0x49, + 0x69, 0x67, 0xe0, 0x5a, 0x69, 0x1f, 0x39, 0xc9, 0x4b, 0x3e, 0x86, 0xb3, 0x13, 0x40, 0xb1, 0xa2, + 0x85, 0x9d, 0xaf, 0x8d, 0x47, 0xba, 0x91, 0x21, 0x35, 0xbd, 0xc0, 0xf7, 0x91, 0x42, 0x4c, 0x38, + 0xa7, 0xa8, 0xdd, 0x75, 0x02, 0xd3, 0x76, 0xa4, 0x4f, 0x17, 0xf3, 0xe1, 0xb5, 0xf1, 0x48, 0xbf, + 0xaa, 0xda, 0x2d, 0xa4, 0x49, 0x77, 0x7e, 0x3f, 0x39, 0xc4, 0x02, 0x2d, 0x03, 0xd5, 0xee, 0x9b, + 0xdb, 0xe1, 0x46, 0x75, 0x7d, 0x3c, 0xd2, 0x5f, 0xc9, 0x6c, 0xc3, 0xe6, 0x54, 0x4a, 0x23, 0xfb, + 0x4a, 0x22, 0x14, 0x48, 0x8c, 0x5b, 0x75, 0x2d, 0x86, 0x63, 0x28, 0xa3, 0x7c, 0x63, 0x3c, 0xd2, + 0x2f, 0x2b, 0xf2, 0x1d, 0xd7, 0x62, 0xe9, 0xee, 0x67, 0x70, 0x1b, 0xdf, 0xaf, 0x70, 0xc7, 0x82, + 0x5b, 0xcf, 0x46, 0x60, 0x7a, 0x01, 0x79, 0x37, 0xde, 0xcb, 0xd1, 0xaa, 0xf5, 0x85, 0x99, 0xd0, + 0xc9, 0x84, 0xf0, 0xc6, 0x34, 0x77, 0x26, 0x3f, 0x1e, 0xe9, 0xf9, 0xf1, 0x48, 0xcf, 0xd1, 0xaa, + 0xb2, 0xba, 0xc5, 0xb6, 0x53, 0x40, 0xbe, 0xb9, 0x90, 0x4f, 0xdd, 0x9a, 0x52, 0xbc, 0x62, 0x1b, + 0x7a, 0x0f, 0xa6, 0x64, 0x1f, 0xd0, 0x22, 0xf5, 0x85, 0x73, 0xb1, 0x5f, 0x4b, 0x6c, 0xa1, 0x29, + 0xee, 0x90, 0x8b, 0x7c, 0x03, 0x2a, 0xc2, 0x5d, 0xa1, 0xb6, 0xeb, 0x0b, 0x67, 0xb3, 0xfd, 0x62, + 0x8a, 0x5d, 0xf2, 0x90, 0x16, 0x40, 0xec, 0xaa, 0xa2, 0x03, 0x83, 0x94, 0x30, 0xe9, 0xc4, 0x52, + 0x52, 0x14, 0x5e, 0xf2, 0x0e, 0x4c, 0x6f, 0x32, 0xaf, 0x6f, 0x3b, 0x66, 0x6f, 0xc3, 0xfe, 0x24, + 0x3c, 0x33, 0xe0, 0xfe, 0xeb, 0xdb, 0x9f, 0xa8, 0xb6, 0x48, 0xd0, 0x91, 0xef, 0x64, 0x39, 0x95, + 0x29, 0xec, 0xc8, 0xcb, 0x61, 0x47, 0xf6, 0x75, 0x49, 0xa9, 0xfe, 0x64, 0xf8, 0x98, 0x0f, 0xe1, + 0x44, 0x62, 0x6d, 0x68, 0x55, 0x14, 0x7d, 0x69, 0x52, 0xb4, 0xb2, 0xd0, 0x53, 0x62, 0x93, 0x12, + 0xf8, 0x8e, 0xd8, 0x76, 0xec, 0xc0, 0x36, 0x7b, 0x4b, 0x6e, 0xbf, 0x6f, 0x3a, 0x96, 0x56, 0x43, + 0x57, 0x83, 0x3b, 0xa2, 0x2d, 0x30, 0x9d, 0xae, 0x40, 0xa9, 0x3b, 0x62, 0x92, 0x89, 0xfb, 0x2c, + 0x69, 0x43, 0xca, 0xba, 0xae, 0x67, 0xd9, 0xce, 0xb6, 0x06, 0xa8, 0x34, 0xf4, 0x59, 0xbe, 0xc0, + 0x75, 0xbc, 0x10, 0xa9, 0xfa, 0xac, 0x34, 0x23, 0xef, 0xd3, 0x62, 0xb7, 0xcb, 0x7c, 0x9f, 0xb2, + 0xef, 0x0d, 0x99, 0x1f, 0xf8, 0x5a, 0x3d, 0xee, 0x93, 0x89, 0x98, 0x8e, 0x27, 0x51, 0x6a, 0x9f, + 0x92, 0x4c, 0xc6, 0x9f, 0x16, 0xa1, 0x2e, 0x65, 0xff, 0x92, 0x6b, 0x3b, 0xc7, 0x2b, 0xe2, 0x20, + 0x2b, 0x22, 0x73, 0x66, 0x57, 0x9e, 0xd5, 0xcc, 0x36, 0x3e, 0x2d, 0x44, 0xee, 0x6b, 0xdd, 0xb3, + 0x9d, 0x83, 0xb9, 0xaf, 0x6b, 0x00, 0x4b, 0x3b, 0x43, 0xe7, 0x81, 0x88, 0x5f, 0x0a, 0x71, 0xfc, + 0xd2, 0xb5, 0xa9, 0x82, 0xe1, 0x41, 0x4c, 0x93, 0xcb, 0xe7, 0x96, 0x99, 0x6e, 0xd4, 0x3e, 0x13, + 0x92, 0xf2, 0x6f, 0x52, 0x04, 0x13, 0x1d, 0xca, 0x8d, 0xbd, 0x80, 0xf9, 0xa8, 0xf9, 0xa2, 0x08, + 0x72, 0xb6, 0x38, 0x80, 0x0a, 0x38, 0xb9, 0x05, 0xb3, 0x4d, 0xd6, 0x33, 0xf7, 0xee, 0xda, 0xbd, + 0x9e, 0xed, 0xb3, 0xae, 0xeb, 0x58, 0x3e, 0x2a, 0x59, 0x36, 0xd7, 0xf7, 0xe9, 0x24, 0x01, 0x31, + 0xa0, 0xb2, 0x76, 0xff, 0xbe, 0xcf, 0x02, 0x54, 0x5f, 0xb1, 0x01, 0xe3, 0x91, 0x5e, 0x71, 0x11, + 0x42, 0x25, 0xc6, 0xf8, 0x49, 0x01, 0x4e, 0x44, 0xcb, 0xe2, 0xbb, 0xac, 0x7b, 0x38, 0xee, 0x3c, + 0x9e, 0x7b, 0xc5, 0x03, 0xcf, 0xbd, 0xd2, 0x01, 0xe6, 0x9e, 0x01, 0x15, 0xca, 0x4c, 0x5f, 0xce, + 0xe0, 0x9a, 0xd0, 0x98, 0x87, 0x10, 0x2a, 0x31, 0xe4, 0x65, 0x98, 0xba, 0x6b, 0x3e, 0xb2, 0xfb, + 0xc3, 0xbe, 0x54, 0x2b, 0x46, 0x64, 0x7d, 0xf3, 0x11, 0x0d, 0xe1, 0xc6, 0x5f, 0x94, 0xb8, 0x1c, + 0xee, 0xbf, 0x8f, 0xa6, 0x2b, 0x78, 0x76, 0x0a, 0x8d, 0x0d, 0x5b, 0x7e, 0x0a, 0xc3, 0xbe, 0x30, + 0x9b, 0xa3, 0xf1, 0xbf, 0x53, 0x3c, 0xd0, 0x43, 0xed, 0x2f, 0x3b, 0xd6, 0xf1, 0xac, 0x39, 0xc8, + 0xac, 0x69, 0xc2, 0xec, 0xb2, 0xb3, 0x63, 0x3a, 0x5d, 0x66, 0xc5, 0x47, 0x04, 0x3e, 0x75, 0xaa, + 0x22, 0x2f, 0xc2, 0x24, 0x32, 0x3e, 0x23, 0xd0, 0x49, 0x06, 0xf2, 0x16, 0xd4, 0xdb, 0x4e, 0xc0, + 0x3c, 0xb3, 0x1b, 0xd8, 0xbb, 0x0c, 0x67, 0x4f, 0xb5, 0x71, 0x6a, 0x3c, 0xd2, 0xeb, 0x76, 0x0c, + 0xa6, 0x2a, 0x0d, 0xb9, 0x05, 0xd3, 0xeb, 0xa6, 0x17, 0xd8, 0x5d, 0x7b, 0x60, 0x3a, 0x81, 0xaf, + 0x55, 0xf1, 0x2c, 0x31, 0x33, 0x1e, 0xe9, 0xd3, 0x03, 0x05, 0x4e, 0x13, 0x54, 0xe4, 0x3b, 0x50, + 0xc3, 0x73, 0x34, 0xe6, 0x9e, 0x6a, 0x5f, 0x98, 0x7b, 0xba, 0x1a, 0x87, 0xe5, 0xe2, 0xa4, 0xe3, + 0x73, 0xe6, 0x78, 0x29, 0x60, 0x3a, 0x2a, 0x96, 0x48, 0xbe, 0x0d, 0x53, 0xcb, 0x8e, 0x85, 0xc2, + 0xe1, 0x0b, 0x85, 0x1b, 0x52, 0xf8, 0xd9, 0x58, 0xb8, 0x3b, 0x48, 0xc9, 0x0e, 0xc5, 0x65, 0xaf, + 0xb2, 0xfa, 0xcf, 0x6e, 0x95, 0x4d, 0xff, 0x0c, 0x8e, 0xa0, 0x27, 0x9e, 0xd5, 0x11, 0xf4, 0xe4, + 0x53, 0x1e, 0x41, 0x8d, 0x4f, 0xa0, 0xde, 0x58, 0xbf, 0x13, 0xad, 0xde, 0xf3, 0x50, 0x5c, 0x97, + 0xb9, 0xbe, 0x92, 0xd8, 0x59, 0x06, 0xb6, 0x45, 0x39, 0x8c, 0xdc, 0x80, 0xea, 0x12, 0xc6, 0xe1, + 0x32, 0xfb, 0x54, 0x12, 0xd9, 0xa7, 0x2e, 0xc2, 0x30, 0xfb, 0x14, 0xa2, 0xc9, 0xab, 0x30, 0xb5, + 0xee, 0xb9, 0xdb, 0x9e, 0xd9, 0x97, 0x01, 0x6b, 0x7d, 0x3c, 0xd2, 0xa7, 0x06, 0x02, 0x44, 0x43, + 0x9c, 0xf1, 0xbb, 0x79, 0xa8, 0x6c, 0x04, 0x66, 0x30, 0xf4, 0x39, 0xc7, 0xc6, 0x10, 0x4f, 0xb5, + 0xd8, 0x76, 0x55, 0x70, 0xf8, 0x02, 0x44, 0x43, 0x1c, 0xb9, 0x01, 0xe5, 0x65, 0xcf, 0x73, 0x3d, + 0x35, 0xfd, 0xc7, 0x38, 0x40, 0x4d, 0xff, 0x21, 0x05, 0xb9, 0x0d, 0x75, 0xe1, 0x73, 0x7c, 0x9f, + 0x07, 0xb5, 0xa2, 0x1f, 0x67, 0xc6, 0x23, 0x7d, 0xb6, 0x2f, 0x40, 0x6a, 0x1e, 0x54, 0xa1, 0x34, + 0x7e, 0x88, 0xb9, 0x3b, 0x54, 0x53, 0xa8, 0xf1, 0x17, 0xf0, 0x40, 0xfd, 0x36, 0x14, 0x1b, 0xeb, + 0x77, 0xa4, 0x03, 0x3c, 0x1d, 0xb2, 0x2a, 0x53, 0x25, 0xc5, 0xc7, 0xa9, 0xc9, 0x45, 0x28, 0xad, + 0xf3, 0xe9, 0x53, 0xc1, 0xe9, 0x51, 0x1d, 0x8f, 0xf4, 0xd2, 0x80, 0xcf, 0x1f, 0x84, 0x22, 0xd6, + 0x0c, 0x76, 0xd0, 0x97, 0xd5, 0x24, 0xd6, 0x0c, 0x76, 0x28, 0x42, 0x39, 0x76, 0xd1, 0xdb, 0xde, + 0x95, 0x5e, 0x0b, 0xb1, 0xa6, 0xb7, 0xbd, 0x4b, 0x11, 0x4a, 0xe6, 0x01, 0x28, 0x0b, 0x86, 0x9e, + 0x83, 0xa9, 0x74, 0xee, 0xa6, 0xca, 0xc2, 0x1b, 0x7a, 0x08, 0xed, 0x74, 0x5d, 0x8b, 0x51, 0x85, + 0xc4, 0xf8, 0x93, 0x38, 0x26, 0x6a, 0xda, 0xfe, 0x83, 0x63, 0x13, 0x3e, 0x81, 0x09, 0xb9, 0x91, + 0x2a, 0x99, 0x46, 0xd2, 0xa1, 0x7c, 0xa7, 0x67, 0x6e, 0xfb, 0x68, 0xc3, 0xb2, 0x88, 0x14, 0xee, + 0x73, 0x00, 0x15, 0xf0, 0x94, 0x9d, 0xaa, 0x5f, 0x6c, 0xa7, 0xdf, 0x2b, 0x47, 0xab, 0x6d, 0x95, + 0x05, 0x0f, 0x5d, 0xef, 0xd8, 0x54, 0x5f, 0xd6, 0x54, 0xd7, 0x60, 0x6a, 0xc3, 0xeb, 0x62, 0x7e, + 0x59, 0x58, 0x6b, 0x7a, 0x3c, 0xd2, 0xab, 0xbe, 0xd7, 0xc5, 0xb4, 0x3c, 0x0d, 0x91, 0x9c, 0xae, + 0xe9, 0x07, 0x48, 0x37, 0x15, 0xd3, 0x59, 0x7e, 0x20, 0xe9, 0x24, 0x52, 0xd2, 0xad, 0xbb, 0x5e, + 0x20, 0x0d, 0x17, 0xd1, 0x0d, 0x5c, 0x2f, 0xa0, 0x21, 0x92, 0xbc, 0x0e, 0xb0, 0xb9, 0xb4, 0xfe, + 0x11, 0xf3, 0x50, 0x5d, 0x62, 0x2d, 0xa2, 0xbb, 0xde, 0x15, 0x20, 0xaa, 0xa0, 0xc9, 0x26, 0xd4, + 0xd6, 0x06, 0xcc, 0x33, 0xf1, 0x50, 0xc6, 0x4f, 0x00, 0x27, 0x17, 0x5e, 0x4b, 0xa9, 0x56, 0xda, + 0xfd, 0xa6, 0xfc, 0x1b, 0x91, 0x8b, 0xfd, 0xc5, 0x0d, 0x7f, 0xd2, 0x58, 0x10, 0xb9, 0x0d, 0x95, + 0x45, 0x71, 0xce, 0xab, 0xa3, 0xc8, 0x48, 0x65, 0xcb, 0xfc, 0x8f, 0x40, 0x89, 0xe8, 0xc9, 0xc4, + 0xff, 0xa9, 0x24, 0x37, 0x6e, 0xc0, 0x4c, 0xba, 0x19, 0x52, 0x87, 0xa9, 0xa5, 0xb5, 0xd5, 0xd5, + 0xe5, 0xa5, 0xcd, 0x99, 0x1c, 0xa9, 0x42, 0x69, 0x63, 0x79, 0xb5, 0x39, 0x93, 0x37, 0xfe, 0x4c, + 0xf1, 0x20, 0x7c, 0x6a, 0x1d, 0x67, 0x55, 0x0e, 0x70, 0xa4, 0x5e, 0x80, 0x19, 0x4c, 0x25, 0x6c, + 0x7a, 0xa6, 0xe3, 0xf7, 0xed, 0x20, 0x60, 0x96, 0xdc, 0x25, 0x30, 0x81, 0x10, 0x3c, 0xa2, 0x13, + 0x78, 0xf2, 0x06, 0x9c, 0x40, 0x18, 0x65, 0x5d, 0x66, 0xef, 0x32, 0x0b, 0x67, 0xaf, 0x64, 0xf0, + 0x1e, 0xd1, 0x24, 0xd2, 0xf8, 0xc7, 0x38, 0xb1, 0xb2, 0xc2, 0xcc, 0x5d, 0x76, 0x6c, 0xaf, 0x03, + 0xd8, 0xcb, 0xf8, 0xe3, 0x22, 0xd4, 0xf8, 0x88, 0xc4, 0x55, 0xea, 0x61, 0xa8, 0xf2, 0x56, 0x78, + 0x36, 0x94, 0x9a, 0x3c, 0x19, 0x69, 0x02, 0xa1, 0x13, 0x1a, 0x10, 0xe7, 0xc8, 0x37, 0xa0, 0x72, + 0x97, 0x05, 0x3b, 0xae, 0x25, 0x6f, 0x31, 0xe6, 0xc6, 0x23, 0x7d, 0xa6, 0x8f, 0x10, 0xe5, 0xbc, + 0x27, 0x69, 0xc8, 0x03, 0x20, 0x6d, 0x8b, 0x39, 0x81, 0x1d, 0xec, 0x2d, 0x06, 0x81, 0x67, 0x6f, + 0x0d, 0x03, 0xe6, 0x4b, 0xbd, 0x9d, 0x9b, 0x88, 0x53, 0x36, 0xb0, 0x84, 0x00, 0x2f, 0x2e, 0xe6, + 0xcc, 0x88, 0x3c, 0x16, 0xfb, 0x7f, 0x23, 0xbd, 0x22, 0x68, 0x68, 0x86, 0x58, 0xf2, 0x21, 0xd4, + 0xee, 0xde, 0x59, 0x6c, 0xb2, 0x5d, 0xbb, 0xcb, 0x64, 0x42, 0xf1, 0x7c, 0xa4, 0xc5, 0x10, 0x11, + 0xa9, 0x04, 0x2f, 0x19, 0xfb, 0xf7, 0xcd, 0x8e, 0x85, 0x70, 0xf5, 0x92, 0x31, 0x22, 0x36, 0xfe, + 0x3b, 0x0f, 0x33, 0x94, 0xf9, 0xee, 0xd0, 0x8b, 0x39, 0xc9, 0x35, 0x28, 0x29, 0x37, 0x5c, 0x98, + 0xad, 0x48, 0x5d, 0xab, 0x20, 0x9e, 0x6c, 0xc0, 0xd4, 0xf2, 0xa3, 0x81, 0xed, 0x31, 0x5f, 0xda, + 0xe6, 0x71, 0x91, 0xd9, 0x25, 0x19, 0x99, 0xcd, 0x32, 0xc1, 0x32, 0x11, 0x94, 0x09, 0x30, 0x79, + 0x07, 0x6a, 0xf7, 0x06, 0x96, 0x19, 0x30, 0xab, 0xb1, 0x27, 0xcf, 0xdc, 0x38, 0x92, 0xa1, 0x00, + 0x76, 0xb6, 0xf6, 0xd4, 0x91, 0x44, 0xa4, 0xe4, 0x2a, 0x14, 0x37, 0x37, 0x57, 0xa4, 0xd1, 0xb0, + 0x90, 0x22, 0x08, 0xd4, 0x9b, 0x55, 0x8e, 0x35, 0x7e, 0x50, 0x00, 0xe0, 0x73, 0x63, 0xc9, 0x63, + 0x66, 0x70, 0x38, 0x0b, 0xbc, 0x01, 0xd5, 0x50, 0xe1, 0x72, 0x5e, 0x6a, 0x21, 0x6f, 0xda, 0x10, + 0xe9, 0xb6, 0x43, 0x3c, 0x3f, 0x44, 0x51, 0xb7, 0x87, 0xe9, 0xd6, 0x62, 0x58, 0x53, 0xe2, 0x71, + 0x00, 0x15, 0x70, 0xf2, 0x3a, 0xd4, 0xe4, 0x52, 0x74, 0x3d, 0x99, 0x09, 0x14, 0xa1, 0x56, 0x08, + 0xa4, 0x31, 0xde, 0xf8, 0xbb, 0xbc, 0x50, 0x4a, 0x93, 0xf5, 0xd8, 0xd1, 0x55, 0x8a, 0xf1, 0x9b, + 0x79, 0x20, 0x5c, 0xd8, 0xba, 0xe9, 0xfb, 0x0f, 0x5d, 0xcf, 0x5a, 0xda, 0x31, 0x9d, 0xed, 0x43, + 0x19, 0x8e, 0xf1, 0x5b, 0x65, 0x38, 0x9d, 0xb8, 0x61, 0x39, 0xe2, 0xf3, 0xed, 0x46, 0x72, 0xbe, + 0x61, 0xd0, 0x8c, 0xf3, 0x4d, 0x0d, 0x9a, 0xc5, 0xcc, 0x7b, 0x05, 0x6a, 0x72, 0xcc, 0xed, 0xa6, + 0x9c, 0x79, 0xb8, 0xdd, 0xda, 0x16, 0x8d, 0x11, 0xe4, 0x4d, 0x98, 0x96, 0x3f, 0xb8, 0xd7, 0x0d, + 0xf3, 0xa2, 0x38, 0x8f, 0x7d, 0x0e, 0xa0, 0x09, 0x34, 0xf9, 0x1a, 0xd4, 0xf8, 0xe4, 0xdc, 0xc6, + 0x2a, 0x9c, 0xa9, 0xb8, 0xe6, 0xc5, 0x0a, 0x81, 0xaa, 0x4b, 0x88, 0x28, 0xb9, 0x2b, 0x97, 0xc9, + 0xf0, 0x6a, 0xec, 0xca, 0x45, 0x32, 0x5c, 0x75, 0xe5, 0x32, 0x2d, 0xfe, 0x31, 0xd4, 0x17, 0x1d, + 0xc7, 0x0d, 0xf0, 0x48, 0xe7, 0xcb, 0x44, 0xd6, 0xbe, 0x3e, 0xfc, 0x2a, 0x56, 0x62, 0xc4, 0xf4, + 0x99, 0x4e, 0x5c, 0x15, 0x48, 0x16, 0xb8, 0x21, 0x76, 0x6d, 0xf6, 0x90, 0x79, 0xf2, 0xbe, 0x0f, + 0x93, 0x79, 0x9e, 0x84, 0xa9, 0x75, 0x19, 0x21, 0x1d, 0x69, 0xc0, 0x89, 0x75, 0xcf, 0x1d, 0xb8, + 0x3e, 0xb3, 0x84, 0xa2, 0xea, 0xc8, 0x78, 0x71, 0x3c, 0xd2, 0xb5, 0x81, 0x44, 0x74, 0x50, 0x63, + 0x0a, 0x7b, 0x92, 0xc5, 0xf8, 0xc3, 0x02, 0xd4, 0xf9, 0xa9, 0xfb, 0x8e, 0xeb, 0x3d, 0x34, 0xbd, + 0xc3, 0x49, 0x45, 0x24, 0x8f, 0x15, 0xc5, 0x03, 0x1c, 0x03, 0xe3, 0x4d, 0xbd, 0xf4, 0x04, 0x9b, + 0xfa, 0x45, 0x28, 0x61, 0xf4, 0x52, 0x8e, 0x63, 0x52, 0x8c, 0x5c, 0x10, 0x6a, 0xfc, 0x4a, 0x01, + 0xe0, 0xdb, 0x6f, 0xbd, 0xf5, 0x02, 0x2b, 0xc8, 0xf8, 0x83, 0x3c, 0x9c, 0x92, 0xb9, 0x2a, 0xa5, + 0x76, 0x6f, 0x2a, 0xcc, 0x32, 0xe6, 0xe3, 0x1c, 0x9c, 0xcc, 0x2e, 0xd2, 0x10, 0xc7, 0xe7, 0xf5, + 0xf2, 0x23, 0x3b, 0xc0, 0x70, 0x5d, 0x29, 0xde, 0x63, 0x12, 0xa6, 0xce, 0xeb, 0x90, 0x8e, 0xbc, + 0x19, 0x66, 0xe1, 0x8a, 0xf1, 0x62, 0xe6, 0x0c, 0xcb, 0x99, 0x99, 0x38, 0xe3, 0xaf, 0x4b, 0x50, + 0x5a, 0x7e, 0xc4, 0xba, 0x47, 0xdc, 0x34, 0xca, 0xd9, 0xbe, 0x74, 0xc0, 0xb3, 0xfd, 0xd3, 0x5c, + 0x2b, 0xbc, 0x17, 0xdb, 0xb3, 0x92, 0x6c, 0x3e, 0x65, 0xf9, 0x74, 0xf3, 0xa1, 0xa5, 0x8f, 0xde, + 0xad, 0xd4, 0xdf, 0x17, 0xa1, 0xb8, 0xb1, 0xb4, 0x7e, 0x3c, 0x6f, 0x0e, 0x75, 0xde, 0x3c, 0x3e, + 0x6d, 0x6b, 0x44, 0x99, 0x98, 0x6a, 0x7c, 0x65, 0x9d, 0x4a, 0xba, 0x7c, 0x5a, 0x80, 0xda, 0xc6, + 0x70, 0xcb, 0xdf, 0xf3, 0x03, 0xd6, 0x3f, 0xe2, 0xd6, 0xbc, 0x28, 0xa3, 0xab, 0x52, 0xac, 0x0d, + 0x1e, 0x5d, 0xc9, 0x98, 0xea, 0x6a, 0xe8, 0x19, 0x95, 0x53, 0x7b, 0xe4, 0x19, 0x43, 0x7f, 0xf8, + 0x57, 0x05, 0x98, 0x59, 0xea, 0xd9, 0xcc, 0x09, 0x9a, 0xb6, 0x2f, 0xcf, 0xf4, 0x47, 0x5c, 0x2b, + 0x07, 0x4b, 0x5b, 0x7c, 0x89, 0xb2, 0x07, 0xe3, 0x57, 0x0b, 0x50, 0x5f, 0x1c, 0x06, 0x3b, 0x8b, + 0x01, 0x6e, 0x2e, 0x2f, 0xe4, 0x36, 0xff, 0x93, 0x3c, 0x68, 0x94, 0xf9, 0x2c, 0x08, 0x83, 0xa4, + 0x4d, 0xf7, 0x01, 0x73, 0x9e, 0x41, 0x74, 0xa2, 0x46, 0x19, 0x85, 0xa7, 0x8c, 0x32, 0x42, 0xa5, + 0x16, 0x9f, 0x30, 0xda, 0xe2, 0xf1, 0x2b, 0x0f, 0x3e, 0x9e, 0x93, 0x61, 0x3c, 0x83, 0x30, 0xfc, + 0x30, 0x87, 0xf1, 0x4f, 0x79, 0x98, 0xdb, 0xf4, 0xf8, 0x8e, 0x6e, 0xc9, 0x8d, 0xfd, 0x88, 0xdb, + 0x65, 0x72, 0x40, 0x47, 0xdc, 0x42, 0xff, 0x92, 0x87, 0xf3, 0xc9, 0x01, 0x3d, 0x0f, 0x5e, 0xe0, + 0x9f, 0xf3, 0x70, 0xe6, 0x9b, 0x76, 0xb0, 0x33, 0xdc, 0x8a, 0x32, 0x5b, 0xcf, 0xdf, 0x88, 0x8e, + 0xf8, 0xcc, 0xfb, 0x51, 0x1e, 0x4e, 0xaf, 0xb5, 0x9b, 0x4b, 0xcf, 0x8b, 0x85, 0x26, 0xc6, 0xf3, + 0x1c, 0xd8, 0x67, 0x63, 0xf1, 0xee, 0xca, 0xf3, 0x64, 0x9f, 0xc4, 0x78, 0x8e, 0xb8, 0x7d, 0x7e, + 0xbd, 0x02, 0x75, 0x1e, 0xe0, 0xca, 0xe4, 0xe8, 0x0b, 0x7d, 0xe4, 0x5f, 0x80, 0xba, 0x54, 0x03, + 0xc6, 0x96, 0xe2, 0xdc, 0x8f, 0xa5, 0x8a, 0xf2, 0xbd, 0x43, 0x07, 0x63, 0x4c, 0x95, 0x88, 0x87, + 0x5e, 0x1f, 0x31, 0x6f, 0x4b, 0x2d, 0x4d, 0xd9, 0x65, 0xde, 0x16, 0x45, 0x28, 0x59, 0x89, 0xaf, + 0xc2, 0x16, 0xd7, 0xdb, 0xf8, 0x28, 0x4c, 0x86, 0xac, 0xf8, 0xca, 0xcd, 0x93, 0xb8, 0x8e, 0x39, + 0xb0, 0xc5, 0x73, 0x32, 0xb5, 0x2c, 0x2e, 0xcd, 0x49, 0x56, 0x61, 0x36, 0x84, 0xc5, 0xaf, 0xbb, + 0xaa, 0x19, 0xe2, 0xb2, 0xde, 0x75, 0x4d, 0xb2, 0x92, 0xf7, 0x60, 0x3a, 0x04, 0x7e, 0x60, 0xe3, + 0xdb, 0x13, 0x2e, 0xea, 0xa5, 0xf1, 0x48, 0x3f, 0x17, 0x89, 0x7a, 0x60, 0x27, 0xca, 0xfe, 0x12, + 0x0c, 0xaa, 0x00, 0x8c, 0x3f, 0x21, 0x43, 0x40, 0xea, 0x9a, 0x2f, 0xc1, 0x40, 0xbe, 0x86, 0x02, + 0x06, 0xae, 0xe3, 0x33, 0x4c, 0xf6, 0xd5, 0xb1, 0x6e, 0x03, 0xaf, 0xda, 0x3c, 0x09, 0x17, 0xd5, + 0x39, 0x09, 0x32, 0xb2, 0x06, 0x10, 0x27, 0x65, 0x64, 0x0d, 0xe4, 0x13, 0xa7, 0x8b, 0x14, 0x11, + 0xc6, 0xff, 0x17, 0xe0, 0xd4, 0xe2, 0x60, 0x70, 0xfc, 0x84, 0xeb, 0x59, 0x95, 0x56, 0xcc, 0x03, + 0xac, 0x0f, 0xb7, 0x7a, 0x76, 0x57, 0xa9, 0xf0, 0xc1, 0x92, 0xab, 0x01, 0x42, 0x45, 0x91, 0x8f, + 0x42, 0x62, 0x7c, 0x5a, 0x54, 0x2d, 0x80, 0xcf, 0x44, 0x8e, 0x2d, 0x50, 0x3e, 0x90, 0x2b, 0x3c, + 0xa9, 0x2a, 0x53, 0x16, 0x40, 0xca, 0x1b, 0xab, 0xb0, 0x1c, 0xb7, 0xcb, 0x51, 0x1d, 0xdb, 0xa2, + 0x29, 0x5a, 0xe3, 0x7f, 0xf2, 0x30, 0x1b, 0x9b, 0xe3, 0x59, 0x6c, 0x0e, 0xf3, 0x00, 0x22, 0x63, + 0x10, 0x65, 0xf5, 0x4f, 0x88, 0x19, 0xe1, 0x23, 0x54, 0x16, 0xe1, 0xc5, 0x24, 0x51, 0x8a, 0xaf, + 0x98, 0x99, 0xe2, 0xbb, 0x01, 0x55, 0x6a, 0x3e, 0xfc, 0x70, 0xc8, 0xbc, 0x3d, 0x99, 0xf6, 0xc2, + 0xbc, 0x96, 0x67, 0x3e, 0xec, 0x7c, 0x8f, 0x03, 0x69, 0x84, 0x26, 0x46, 0x54, 0x7e, 0xa1, 0x64, + 0x72, 0x44, 0xf9, 0x45, 0x58, 0x74, 0x61, 0xfc, 0x7e, 0x01, 0x66, 0x9a, 0x66, 0x60, 0x6e, 0x99, + 0x7e, 0x5c, 0xb4, 0xf0, 0x75, 0x38, 0x15, 0xc2, 0xb8, 0x79, 0xec, 0xe8, 0x75, 0xfc, 0xc9, 0xf1, + 0x48, 0x07, 0x6b, 0xab, 0xe3, 0x0b, 0x28, 0x4d, 0x93, 0x91, 0x9f, 0x8f, 0xa5, 0x45, 0xaf, 0xa6, + 0x0b, 0xf1, 0x22, 0xb0, 0xb6, 0x3a, 0x03, 0x09, 0xa6, 0x13, 0x84, 0xe4, 0x0d, 0xa8, 0x87, 0xb0, + 0x7b, 0xb4, 0x2d, 0xc7, 0x8f, 0x9d, 0xb6, 0xb6, 0x3a, 0x43, 0xcf, 0xa6, 0x2a, 0x9a, 0xcc, 0xc3, + 0x74, 0xf8, 0x53, 0xc9, 0x01, 0xe2, 0xbd, 0x8a, 0xb5, 0x85, 0xde, 0x97, 0x26, 0x08, 0x54, 0x06, + 0x5c, 0x21, 0xe5, 0x04, 0xc3, 0xd0, 0x67, 0x1e, 0x4d, 0x10, 0x18, 0x3f, 0x2a, 0xc2, 0x5c, 0x3c, + 0xc0, 0x63, 0x0f, 0xf9, 0x6c, 0xd6, 0x67, 0x9c, 0x6d, 0xab, 0x3c, 0xc1, 0xad, 0x63, 0x03, 0xaa, + 0xa1, 0x29, 0xe4, 0x35, 0x49, 0x74, 0x54, 0x4c, 0x4f, 0xdf, 0xb4, 0xea, 0x43, 0xbc, 0xf1, 0xaf, + 0x93, 0xf6, 0x14, 0x0b, 0xe5, 0x48, 0xda, 0x53, 0xd5, 0x48, 0xe9, 0xe9, 0x34, 0x42, 0x16, 0xe0, + 0x44, 0xf8, 0xbf, 0xf0, 0x28, 0x65, 0xa5, 0x24, 0x75, 0x4b, 0x3a, 0x94, 0x24, 0x09, 0xf9, 0x65, + 0x38, 0x97, 0x00, 0xac, 0x9b, 0x9e, 0xd9, 0x67, 0x01, 0xf3, 0xb8, 0x41, 0x8b, 0xe1, 0x33, 0xfe, + 0x90, 0xbb, 0x33, 0x88, 0xd0, 0xea, 0x4b, 0xf8, 0x7d, 0x24, 0x28, 0x93, 0x63, 0xea, 0x09, 0x52, + 0xb1, 0xbf, 0x5d, 0x00, 0x92, 0x32, 0xec, 0x91, 0x7d, 0x38, 0xf5, 0x0c, 0xcc, 0x6a, 0xfc, 0x79, + 0x1e, 0x66, 0x27, 0x8a, 0xd8, 0xc8, 0xdb, 0x00, 0x02, 0xa2, 0x14, 0xa4, 0x61, 0xf9, 0x49, 0x5c, + 0xd8, 0x26, 0xdc, 0xa6, 0x42, 0x46, 0xe6, 0xa1, 0x2a, 0x7e, 0x45, 0x5f, 0x39, 0x49, 0xb3, 0x0c, + 0x87, 0xb6, 0x45, 0x23, 0xa2, 0xb8, 0x15, 0xfc, 0x50, 0x4f, 0x31, 0x93, 0x25, 0xd8, 0x1b, 0x44, + 0xad, 0x70, 0x32, 0xe3, 0x87, 0x79, 0x98, 0x8e, 0x3a, 0xbc, 0x68, 0x1d, 0x96, 0xe9, 0x2a, 0xb2, + 0x1e, 0xb0, 0xf8, 0x45, 0xf5, 0x80, 0xa9, 0x69, 0x28, 0x0b, 0x00, 0xff, 0x21, 0x0f, 0xa7, 0x22, + 0xda, 0x43, 0xac, 0x00, 0x3b, 0xf0, 0x40, 0x7e, 0x27, 0x0f, 0x5a, 0xc3, 0xee, 0xf5, 0x6c, 0x67, + 0xbb, 0xed, 0xdc, 0x77, 0xbd, 0x3e, 0x96, 0xdd, 0x88, 0xfa, 0xc0, 0x43, 0x29, 0x02, 0xfb, 0x8d, + 0x3c, 0xcc, 0xca, 0x0e, 0x2d, 0x99, 0x9e, 0x75, 0x78, 0x25, 0x60, 0xe9, 0x9e, 0x1c, 0x9e, 0x95, + 0x8d, 0xbf, 0x3d, 0x0f, 0xe5, 0x35, 0x87, 0xad, 0xdd, 0x27, 0x6f, 0x29, 0xd5, 0xc1, 0xb2, 0xf9, + 0x59, 0x55, 0x0c, 0x22, 0x5a, 0x39, 0xaa, 0xd4, 0x10, 0xdf, 0x52, 0x6b, 0x37, 0x65, 0xd3, 0x44, + 0xe5, 0x11, 0x98, 0x56, 0x8e, 0xaa, 0x35, 0x9e, 0xb7, 0xd4, 0xe2, 0x46, 0x39, 0xb9, 0x12, 0x5c, + 0x02, 0x13, 0x72, 0x49, 0xe5, 0xac, 0x64, 0xd5, 0x12, 0xa6, 0x9f, 0x84, 0x4e, 0x52, 0xb4, 0x72, + 0x34, 0xbb, 0x06, 0x31, 0xf1, 0xc1, 0x11, 0x79, 0x14, 0x99, 0x4b, 0x79, 0x59, 0xc4, 0xb5, 0x72, + 0x34, 0xf9, 0x71, 0x92, 0xdb, 0x89, 0x2f, 0x33, 0xc8, 0xf3, 0xc7, 0xe9, 0x14, 0x2b, 0x47, 0xb5, + 0x72, 0x34, 0xf5, 0x0d, 0x87, 0xc4, 0x67, 0x02, 0xe4, 0xe6, 0x94, 0x6e, 0x14, 0x71, 0x4a, 0xa3, + 0xe2, 0x93, 0x02, 0xbf, 0x90, 0x7a, 0x53, 0x2f, 0x4b, 0x31, 0xce, 0xa4, 0x98, 0x05, 0xb2, 0x95, + 0xa3, 0xa9, 0x17, 0xf8, 0xd7, 0xc3, 0xd7, 0xe3, 0xb2, 0x8a, 0xee, 0xa4, 0x92, 0x21, 0xb3, 0x3f, + 0xe1, 0x5a, 0x0a, 0x5f, 0x97, 0xdf, 0x52, 0x5f, 0x0d, 0xcb, 0xf7, 0x9d, 0x24, 0xd5, 0xca, 0xb2, + 0x63, 0x71, 0xeb, 0x28, 0x9b, 0xe4, 0xfb, 0xe9, 0xf7, 0x75, 0xf2, 0xd5, 0xe6, 0xd9, 0x14, 0xa7, + 0xc4, 0xb6, 0x72, 0x34, 0xfd, 0x1e, 0xef, 0x76, 0xe2, 0x6d, 0x97, 0xcc, 0x4a, 0xa4, 0xb5, 0xca, + 0x51, 0x8a, 0x56, 0xf1, 0x15, 0xd8, 0xfb, 0xe9, 0xc7, 0x46, 0xda, 0x89, 0xcc, 0xa6, 0x25, 0x56, + 0x69, 0x3a, 0x7c, 0x9c, 0x74, 0x3b, 0xf1, 0x28, 0x04, 0xdf, 0x5d, 0x66, 0x34, 0x6d, 0x06, 0xa6, + 0xda, 0xb4, 0x78, 0x3e, 0x92, 0x78, 0x9e, 0xa0, 0x9d, 0xca, 0x34, 0x28, 0xe2, 0x14, 0x83, 0x8a, + 0xa7, 0x0c, 0xb7, 0x13, 0x35, 0x80, 0xda, 0x4c, 0xb2, 0x51, 0x05, 0xc5, 0x1b, 0x55, 0xab, 0x05, + 0x6f, 0xa9, 0xa5, 0x71, 0xda, 0x6c, 0xd2, 0x40, 0x31, 0x86, 0x1b, 0x48, 0x29, 0xa1, 0xd3, 0xb1, + 0xec, 0x46, 0x23, 0x48, 0x5e, 0x8f, 0x7a, 0xb8, 0xb4, 0xde, 0xca, 0x51, 0x2c, 0xc8, 0x31, 0x44, + 0x41, 0x97, 0x76, 0x1a, 0x29, 0xa6, 0xa3, 0xc7, 0x37, 0x8f, 0x58, 0xb7, 0x95, 0xa3, 0xa2, 0xd8, + 0xeb, 0x2d, 0xa5, 0xe6, 0x43, 0x9b, 0x4b, 0xba, 0x88, 0x08, 0xc1, 0x5d, 0x44, 0x5c, 0x19, 0x72, + 0x67, 0xb2, 0x2e, 0x42, 0x3b, 0x93, 0x3c, 0x90, 0xa4, 0xf1, 0xad, 0x1c, 0x9d, 0xac, 0xa5, 0xb8, + 0x9d, 0x28, 0x15, 0xd0, 0xce, 0x26, 0xd5, 0xa5, 0xa0, 0xb8, 0xba, 0xd4, 0xa2, 0x82, 0xb5, 0xcc, + 0xc2, 0x5f, 0xed, 0x1c, 0x0a, 0x78, 0x29, 0x12, 0x30, 0x49, 0xd2, 0xca, 0xd1, 0xcc, 0x92, 0xe1, + 0x8f, 0xf7, 0xbf, 0xb0, 0xd7, 0x34, 0x94, 0x7a, 0x45, 0x59, 0x5c, 0x99, 0x74, 0xad, 0x1c, 0xdd, + 0xff, 0xd2, 0xff, 0x96, 0x7a, 0x77, 0xae, 0x9d, 0x4f, 0xda, 0x37, 0xc6, 0x70, 0xfb, 0x2a, 0x77, + 0xec, 0xb7, 0xd4, 0xab, 0x6a, 0xed, 0xc2, 0x24, 0x57, 0xec, 0x54, 0x95, 0x2b, 0x6d, 0x9a, 0x7d, + 0x33, 0xac, 0xbd, 0x84, 0xfc, 0x17, 0x43, 0xfe, 0x2c, 0x9a, 0x56, 0x8e, 0x66, 0xdf, 0x2a, 0xd3, + 0xec, 0xcb, 0x59, 0xed, 0xe2, 0xe3, 0x64, 0x46, 0xbd, 0xcb, 0xbe, 0xd8, 0x35, 0x1f, 0x73, 0x3f, + 0xaa, 0x5d, 0x4a, 0x26, 0x30, 0xf7, 0x25, 0x6c, 0xe5, 0xe8, 0x63, 0x6e, 0x59, 0xef, 0xed, 0x73, + 0x59, 0xa9, 0x5d, 0x4e, 0xd6, 0xbc, 0x65, 0x12, 0xb5, 0x72, 0x74, 0x9f, 0xab, 0xce, 0x7b, 0xfb, + 0xdc, 0x18, 0x6a, 0xfa, 0x63, 0xc5, 0x46, 0xfa, 0xd8, 0xe7, 0xbe, 0x71, 0x2d, 0xf3, 0xda, 0x4e, + 0xbb, 0x92, 0x9c, 0xd5, 0x19, 0x24, 0x7c, 0x56, 0x67, 0x5d, 0xf8, 0xad, 0x65, 0xde, 0x9b, 0x69, + 0x2f, 0x3f, 0x46, 0x60, 0xd4, 0xc7, 0xcc, 0x1b, 0xb7, 0xb5, 0xcc, 0x8b, 0x2b, 0xcd, 0x48, 0x0a, + 0xcc, 0x20, 0xe1, 0x02, 0xb3, 0xae, 0xbc, 0xd6, 0x32, 0x6f, 0x8e, 0xb4, 0xab, 0x8f, 0x11, 0x18, + 0xf7, 0x30, 0xeb, 0xce, 0xe9, 0x76, 0xe2, 0xea, 0x46, 0x7b, 0x25, 0xe9, 0x52, 0x14, 0x14, 0x77, + 0x29, 0xea, 0x25, 0xcf, 0xd2, 0x44, 0xb6, 0x5b, 0x7b, 0x35, 0x19, 0xa5, 0xa5, 0xd0, 0xad, 0x1c, + 0x9d, 0xc8, 0x8f, 0x2f, 0x4d, 0x24, 0x6c, 0xb5, 0x6b, 0xfb, 0x09, 0x41, 0x74, 0x52, 0x88, 0x48, + 0xf1, 0xb6, 0x33, 0xd2, 0x8c, 0xda, 0x6b, 0xc9, 0xe3, 0xfa, 0x04, 0x41, 0x2b, 0x47, 0x33, 0x92, + 0x93, 0x34, 0x3b, 0x4b, 0xa5, 0x5d, 0x4f, 0x2e, 0xdb, 0x2c, 0x1a, 0xbe, 0x6c, 0x33, 0x33, 0x5c, + 0x2b, 0x59, 0x01, 0xb5, 0x76, 0x23, 0x79, 0x66, 0x9b, 0xa4, 0xe0, 0x67, 0xb6, 0x8c, 0x40, 0x9c, + 0x66, 0xe7, 0x5d, 0xb4, 0xaf, 0x3c, 0xb6, 0x87, 0x48, 0x93, 0xd1, 0x43, 0x91, 0x86, 0x88, 0x8f, + 0x55, 0xf7, 0x06, 0x3d, 0xd7, 0xb4, 0xb4, 0xd7, 0x33, 0x8f, 0x55, 0x02, 0xa9, 0x1c, 0xab, 0x04, + 0x80, 0x1f, 0x00, 0xd4, 0x80, 0x53, 0x7b, 0x23, 0x79, 0x00, 0x50, 0x71, 0xfc, 0x00, 0x90, 0x08, + 0x4e, 0x97, 0x26, 0xc2, 0x3c, 0xed, 0xcd, 0xe4, 0x04, 0x48, 0xa1, 0xf9, 0x04, 0x48, 0x07, 0x86, + 0x1f, 0xef, 0x1f, 0x62, 0x69, 0x37, 0x93, 0x9b, 0xd1, 0x7e, 0x74, 0x7c, 0x33, 0xda, 0x37, 0x4c, + 0x6b, 0x67, 0x44, 0x4c, 0xda, 0x7c, 0x72, 0x82, 0x4d, 0x10, 0xf0, 0x09, 0x36, 0x19, 0x67, 0xb5, + 0x33, 0x42, 0x1e, 0xed, 0xab, 0xfb, 0x8a, 0x8a, 0xc6, 0x3c, 0xc9, 0xd5, 0x98, 0x82, 0x32, 0x3e, + 0x0a, 0x36, 0xfe, 0x28, 0x0f, 0xd3, 0x1b, 0x81, 0xc7, 0xcc, 0xbe, 0x4c, 0xf0, 0x5d, 0x80, 0xaa, + 0x30, 0x4d, 0xf8, 0x71, 0x5b, 0x1a, 0xfd, 0x26, 0xd7, 0xe0, 0xe4, 0x8a, 0xe9, 0x07, 0xc8, 0xa9, + 0x7c, 0x5d, 0x8b, 0xa6, 0xa0, 0x64, 0x45, 0xd0, 0x09, 0x3e, 0xfc, 0xca, 0x49, 0xf1, 0x0b, 0xdf, + 0xd2, 0x55, 0x79, 0x68, 0x85, 0xcf, 0xe6, 0x52, 0xbc, 0xc6, 0x38, 0x0f, 0x13, 0x93, 0xe6, 0xe9, + 0xc3, 0xbc, 0xb5, 0x89, 0x0f, 0xfa, 0xca, 0xb0, 0xeb, 0x4b, 0x26, 0x88, 0x26, 0x3e, 0x07, 0x7c, + 0x15, 0x8a, 0xf7, 0xda, 0x4d, 0xf5, 0x91, 0x5e, 0xf2, 0x6b, 0xc7, 0x1c, 0x4b, 0x5e, 0x8b, 0x62, + 0x82, 0x7b, 0x74, 0x45, 0x66, 0xf7, 0xf0, 0x43, 0x22, 0x43, 0xaf, 0x47, 0x15, 0xd4, 0x57, 0x5e, + 0x83, 0xba, 0xf2, 0x5a, 0x9b, 0x4c, 0x43, 0x75, 0xad, 0xb1, 0xb1, 0x4c, 0x3f, 0x5a, 0x6e, 0xce, + 0xe4, 0x08, 0x40, 0xa5, 0xb9, 0xbc, 0xda, 0x5e, 0x6e, 0xce, 0xe4, 0x1b, 0x33, 0x9f, 0xfd, 0xe7, + 0xe5, 0xdc, 0x67, 0x9f, 0x5f, 0xce, 0xff, 0xf8, 0xf3, 0xcb, 0xf9, 0xff, 0xf8, 0xfc, 0x72, 0x7e, + 0xab, 0x82, 0x5a, 0x7d, 0xfb, 0xa7, 0x01, 0x00, 0x00, 0xff, 0xff, 0x79, 0xa8, 0xd5, 0xdd, 0x33, + 0x5a, 0x00, 0x00, } func (m *Metadata) Marshal() (dAtA []byte, err error) { @@ -4382,6 +4386,13 @@ func (m *UserMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.AWSRoleARN) > 0 { + i -= len(m.AWSRoleARN) + copy(dAtA[i:], m.AWSRoleARN) + i = encodeVarintEvents(dAtA, i, uint64(len(m.AWSRoleARN))) + i-- + dAtA[i] = 0x22 + } if len(m.Impersonator) > 0 { i -= len(m.Impersonator) copy(dAtA[i:], m.Impersonator) @@ -9841,6 +9852,10 @@ func (m *UserMetadata) Size() (n int) { if l > 0 { n += 1 + l + sovEvents(uint64(l)) } + l = len(m.AWSRoleARN) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -12428,6 +12443,38 @@ func (m *UserMetadata) Unmarshal(dAtA []byte) error { } m.Impersonator = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AWSRoleARN", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + 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 ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AWSRoleARN = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) diff --git a/api/types/events/events.proto b/api/types/events/events.proto index cc2a4d7447c3e..1dea28924c696 100644 --- a/api/types/events/events.proto +++ b/api/types/events/events.proto @@ -49,6 +49,9 @@ message UserMetadata { // Impersonator is a user acting on behalf of another user string Impersonator = 3 [ (gogoproto.jsontag) = "impersonator,omitempty" ]; + + // AWSRoleARN is AWS IAM role user assumes when accessing AWS console. + string AWSRoleARN = 4 [ (gogoproto.jsontag) = "aws_role_arn,omitempty" ]; } // Server is a server metadata diff --git a/api/types/role.go b/api/types/role.go index 951a3bab67815..e3c517ae3212f 100644 --- a/api/types/role.go +++ b/api/types/role.go @@ -116,6 +116,11 @@ type Role interface { GetImpersonateConditions(rct RoleConditionType) ImpersonateConditions // SetImpersonateConditions returns conditions this role is allowed or denied to impersonate. SetImpersonateConditions(rct RoleConditionType, cond ImpersonateConditions) + + // GetAWSRoleARNs returns a list of AWS role ARNs this role is allowed to assume. + GetAWSRoleARNs(RoleConditionType) []string + // SetAWSRoleARNs returns a list of AWS role ARNs this role is allowed to assume. + SetAWSRoleARNs(RoleConditionType, []string) } // NewRole constructs new standard role @@ -465,6 +470,23 @@ func (r *RoleV4) SetImpersonateConditions(rct RoleConditionType, cond Impersonat } } +// GetAWSRoleARNs returns a list of AWS role ARNs this role is allowed to impersonate. +func (r *RoleV4) GetAWSRoleARNs(rct RoleConditionType) []string { + if rct == Allow { + return r.Spec.Allow.AWSRoleARNs + } + return r.Spec.Deny.AWSRoleARNs +} + +// SetAWSRoleARNs sets a list of AWS role ARNs this role is allowed to impersonate. +func (r *RoleV4) SetAWSRoleARNs(rct RoleConditionType, arns []string) { + if rct == Allow { + r.Spec.Allow.AWSRoleARNs = arns + } else { + r.Spec.Deny.AWSRoleARNs = arns + } +} + // GetRules gets all allow or deny rules. func (r *RoleV4) GetRules(rct RoleConditionType) []Rule { if rct == Allow { @@ -572,6 +594,11 @@ func (r *RoleV4) CheckAndSetDefaults() error { return trace.BadParameter("wildcard matcher is not allowed in logins") } } + for _, arn := range r.Spec.Allow.AWSRoleARNs { + if arn == Wildcard { + return trace.BadParameter("wildcard matcher is not allowed in aws_role_arns") + } + } for key, val := range r.Spec.Allow.NodeLabels { if key == Wildcard && !(len(val) == 1 && val[0] == Wildcard) { return trace.BadParameter("selector *: is not supported") diff --git a/api/types/server.go b/api/types/server.go index fa29c891fc026..9d108f6bd8f31 100644 --- a/api/types/server.go +++ b/api/types/server.go @@ -23,6 +23,8 @@ import ( "strings" "time" + "github.com/gravitational/teleport/api/constants" + "github.com/gogo/protobuf/proto" "github.com/gravitational/trace" ) @@ -354,6 +356,16 @@ func (s *ServerV2) DeepCopy() Server { return proto.Clone(s).(*ServerV2) } +// IsAWSConsole returns true if this app is AWS management console. +func (a *App) IsAWSConsole() bool { + return strings.HasPrefix(a.URI, constants.AWSConsoleURL) +} + +// GetAWSAccountID returns value of label containing AWS account ID on this app. +func (a *App) GetAWSAccountID() string { + return a.StaticLabels[constants.AWSAccountIDLabel] +} + // CommandLabel is a label that has a value as a result of the // output generated by running command, e.g. hostname type CommandLabel interface { diff --git a/api/types/session.go b/api/types/session.go index f88a3a20c209c..2463e0bb5c622 100644 --- a/api/types/session.go +++ b/api/types/session.go @@ -283,6 +283,8 @@ type CreateAppSessionRequest struct { PublicAddr string `json:"public_addr"` // ClusterName is the name of the cluster within which the application is running. ClusterName string `json:"cluster_name"` + // AWSRoleARN is AWS role this the user wants to assume. + AWSRoleARN string `json:"aws_role_arn"` } // Check validates the request. diff --git a/api/types/types.pb.go b/api/types/types.pb.go index ec760f93c6b9d..edaebc554cfe6 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -3641,10 +3641,12 @@ type RoleConditions struct { // by issuing certificates or other possible means. Impersonate *ImpersonateConditions `protobuf:"bytes,14,opt,name=Impersonate,proto3" json:"impersonate,omitempty"` // ReviewRequests defines conditions for submitting access reviews. - ReviewRequests *AccessReviewConditions `protobuf:"bytes,15,opt,name=ReviewRequests,proto3" json:"review_requests,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ReviewRequests *AccessReviewConditions `protobuf:"bytes,15,opt,name=ReviewRequests,proto3" json:"review_requests,omitempty"` + // AWSRoleARNs is a list of AWS role ARNs this role is allowed to assume. + AWSRoleARNs []string `protobuf:"bytes,16,rep,name=AWSRoleARNs,proto3" json:"aws_role_arns,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *RoleConditions) Reset() { *m = RoleConditions{} } @@ -7048,16 +7050,16 @@ func init() { func init() { proto.RegisterFile("types.proto", fileDescriptor_d938547f84707355) } var fileDescriptor_d938547f84707355 = []byte{ - // 8971 bytes of a gzipped FileDescriptorProto + // 9001 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7d, 0x6d, 0x6c, 0x1c, 0xc9, 0x95, 0x98, 0x7a, 0x66, 0x48, 0xce, 0x3c, 0x7e, 0x68, 0x54, 0x12, 0x25, 0x8a, 0xab, 0xdd, 0x91, 0x7b, 0x77, 0x65, 0x69, 0x6f, 0x97, 0x5a, 0x71, 0xbd, 0xeb, 0x5b, 0xef, 0x97, 0x67, 0x48, 0x4a, 0xe4, 0x8a, 0x12, 0xb9, 0x3d, 0x94, 0x64, 0x9f, 0xbd, 0xee, 0xf4, 0x4c, 0x17, 0xc9, 0x36, 0x67, 0xa6, 0xc7, 0xdd, 0x3d, 0x94, 0x98, 0x5c, 0x70, 0x97, 0x04, 0xce, 0xe1, 0x70, 0x39, 0x3b, 0x0e, - 0x6c, 0x9c, 0x0f, 0x49, 0x90, 0x83, 0x81, 0xe0, 0x0e, 0x49, 0x9c, 0x1f, 0x49, 0x80, 0x20, 0x01, + 0x6c, 0x9c, 0x0f, 0x49, 0x90, 0x83, 0x81, 0xe0, 0x0e, 0x09, 0x9c, 0x1f, 0x49, 0x80, 0x20, 0x01, 0x82, 0x20, 0x40, 0x10, 0x2c, 0x82, 0x04, 0xf0, 0xbf, 0x20, 0x87, 0x64, 0x92, 0xf3, 0x1d, 0x10, - 0x84, 0xc8, 0xbf, 0xe4, 0x4f, 0x8c, 0x1c, 0x10, 0xd4, 0xab, 0xaa, 0xee, 0xaa, 0x9e, 0x1e, 0x72, - 0xb8, 0xab, 0x05, 0x4c, 0xfd, 0x22, 0xe7, 0xd5, 0x7b, 0xaf, 0xaa, 0x5e, 0xbd, 0x7a, 0xf5, 0xea, + 0x84, 0xc9, 0xbf, 0xe4, 0x4f, 0x8c, 0x1c, 0x10, 0xd4, 0xab, 0xaa, 0xee, 0xaa, 0x9e, 0x1e, 0x72, + 0xb8, 0xab, 0x05, 0x4c, 0xfd, 0x22, 0xe7, 0xd5, 0x7b, 0xaf, 0xaa, 0x5e, 0x55, 0xbd, 0x7a, 0xef, 0xd5, 0xab, 0x6a, 0x98, 0x8c, 0x0e, 0xba, 0x34, 0x5c, 0xe8, 0x06, 0x7e, 0xe4, 0x93, 0x31, 0xfc, 0x31, 0x7f, 0x61, 0xc7, 0xdf, 0xf1, 0x11, 0x72, 0x93, 0xfd, 0xc7, 0x0b, 0xe7, 0x2b, 0x3b, 0xbe, 0xbf, 0xd3, 0xa2, 0x37, 0xf1, 0x57, 0xa3, 0xb7, 0x7d, 0x33, 0xf2, 0xda, 0x34, 0x8c, 0x9c, 0x76, @@ -7072,7 +7074,7 @@ var fileDescriptor_d938547f84707355 = []byte{ 0xfd, 0x4a, 0xb1, 0xc5, 0x40, 0xb6, 0xe7, 0x5a, 0xb2, 0x90, 0xac, 0xc1, 0xc4, 0xca, 0x93, 0xae, 0x17, 0xd0, 0x70, 0xae, 0x70, 0xd5, 0xb8, 0x3e, 0xb9, 0x38, 0xbf, 0xc0, 0xfb, 0xbf, 0x20, 0xfb, 0xbf, 0xb0, 0x25, 0xfb, 0x5f, 0x3b, 0xff, 0x49, 0xbf, 0x72, 0xe6, 0xb0, 0x5f, 0x99, 0xa0, 0x9c, - 0xe4, 0x6f, 0xfe, 0xb7, 0x8a, 0x61, 0x49, 0x7a, 0xf2, 0x2e, 0x14, 0xb6, 0x0e, 0xba, 0x74, 0xae, + 0xe4, 0x6f, 0xfe, 0xd7, 0x8a, 0x61, 0x49, 0x7a, 0xf2, 0x2e, 0x14, 0xb6, 0x0e, 0xba, 0x74, 0xae, 0x74, 0xd5, 0xb8, 0x3e, 0xb3, 0xf8, 0xc2, 0x02, 0x97, 0x78, 0xdc, 0xc9, 0xe4, 0x3f, 0x86, 0x55, 0x2b, 0x1e, 0xf6, 0x2b, 0x05, 0x86, 0x62, 0x21, 0x15, 0x79, 0x0d, 0xc6, 0x57, 0xfd, 0x30, 0x5a, 0x5b, 0x9e, 0x03, 0xec, 0xda, 0xec, 0x61, 0xbf, 0x72, 0x6e, 0xd7, 0x0f, 0x23, 0xdb, 0x73, 0x5f, @@ -7081,535 +7083,537 @@ var fileDescriptor_d938547f84707355 = []byte{ 0x6f, 0x2c, 0xaf, 0x94, 0x0d, 0x32, 0x01, 0xf9, 0xea, 0xe6, 0x66, 0x39, 0x47, 0xa6, 0xa0, 0xb8, 0x5c, 0xdd, 0xaa, 0xd6, 0xaa, 0xf5, 0x95, 0x72, 0xde, 0xfc, 0xad, 0x3c, 0x14, 0xef, 0xd1, 0xc8, 0x71, 0x9d, 0xc8, 0x21, 0x57, 0x34, 0xe9, 0x63, 0xc3, 0x14, 0xb1, 0xbf, 0x38, 0x28, 0xf6, 0xb1, - 0xc3, 0x7e, 0xc5, 0x78, 0x4d, 0x15, 0xf7, 0x3b, 0x30, 0xb9, 0x4c, 0xc3, 0x66, 0xe0, 0x75, 0x99, - 0x2a, 0xa0, 0xc8, 0x4b, 0xb5, 0xcb, 0x87, 0xfd, 0xca, 0xac, 0x9b, 0x80, 0x95, 0x6e, 0xa8, 0xd8, - 0x64, 0x0d, 0xc6, 0xd7, 0x9d, 0x06, 0x6d, 0x85, 0x73, 0x63, 0x57, 0xf3, 0xd7, 0x27, 0x17, 0x9f, - 0x13, 0xa2, 0x93, 0x0d, 0x5c, 0xe0, 0xa5, 0x2b, 0x9d, 0x28, 0x38, 0xa8, 0x5d, 0x38, 0xec, 0x57, - 0xca, 0x2d, 0x04, 0xa8, 0x62, 0xe1, 0x28, 0xa4, 0x9e, 0x0c, 0xe7, 0xf8, 0xb1, 0xc3, 0xf9, 0xfc, - 0x27, 0xfd, 0x8a, 0xc1, 0xc4, 0x2c, 0x86, 0x33, 0xe1, 0xa7, 0x0f, 0xec, 0x55, 0xc8, 0xad, 0x2d, - 0xcf, 0x4d, 0xa0, 0x1a, 0x95, 0x0f, 0xfb, 0x95, 0x29, 0x6d, 0x44, 0x72, 0x6b, 0xcb, 0xf3, 0x6f, - 0xc3, 0xa4, 0xd2, 0x46, 0x52, 0x86, 0xfc, 0x1e, 0x3d, 0xe0, 0xf2, 0xb4, 0xd8, 0xbf, 0xe4, 0x02, - 0x8c, 0xed, 0x3b, 0xad, 0x9e, 0x10, 0xa0, 0xc5, 0x7f, 0x7c, 0x25, 0xf7, 0xab, 0x86, 0xf9, 0xb7, - 0x0a, 0x50, 0xb4, 0x7c, 0x3e, 0x85, 0xc8, 0x0d, 0x18, 0xab, 0x47, 0x4e, 0x24, 0x87, 0xe2, 0xfc, - 0x61, 0xbf, 0x72, 0x36, 0x64, 0x00, 0xa5, 0x3e, 0x8e, 0xc1, 0x50, 0x37, 0x77, 0x9d, 0x50, 0x0e, - 0x09, 0xa2, 0x76, 0x19, 0x40, 0x45, 0x45, 0x0c, 0x72, 0x0d, 0x0a, 0xf7, 0x7c, 0x97, 0x8a, 0x51, - 0x21, 0x87, 0xfd, 0xca, 0x4c, 0xdb, 0x77, 0x55, 0x44, 0x2c, 0x27, 0xaf, 0x42, 0x69, 0xa9, 0x17, - 0x04, 0xb4, 0xc3, 0xb4, 0xb0, 0x80, 0xc8, 0x33, 0x87, 0xfd, 0x0a, 0x34, 0x39, 0x90, 0xcd, 0x9b, - 0x04, 0x81, 0x89, 0xba, 0x1e, 0x39, 0x41, 0x44, 0xdd, 0xb9, 0xb1, 0x91, 0x44, 0xcd, 0x66, 0xce, - 0xb9, 0x90, 0x93, 0xa4, 0x45, 0x2d, 0x38, 0x91, 0x55, 0x98, 0xbc, 0x13, 0x38, 0x4d, 0xba, 0x49, - 0x03, 0xcf, 0x77, 0x71, 0x0c, 0xf3, 0xb5, 0x6b, 0x87, 0xfd, 0xca, 0xc5, 0x1d, 0x06, 0xb6, 0xbb, - 0x08, 0x4f, 0xa8, 0x7f, 0xd1, 0xaf, 0x14, 0x97, 0x7b, 0x01, 0x4a, 0xcf, 0x52, 0x49, 0xc9, 0x5f, - 0x60, 0x43, 0x12, 0x46, 0x28, 0x5a, 0xea, 0xe2, 0xe8, 0x1d, 0xdd, 0x44, 0x53, 0x34, 0xf1, 0x62, - 0xcb, 0x09, 0x23, 0x3b, 0xe0, 0x74, 0xa9, 0x76, 0xaa, 0x2c, 0xc9, 0x06, 0x14, 0xeb, 0xcd, 0x5d, - 0xea, 0xf6, 0x5a, 0x74, 0xae, 0x88, 0xec, 0x2f, 0x09, 0xc5, 0x95, 0xe3, 0x29, 0x8b, 0x6b, 0xf3, - 0x82, 0x37, 0x09, 0x05, 0x44, 0x91, 0x7d, 0xcc, 0xe4, 0x2b, 0xc5, 0x1f, 0xff, 0x41, 0xe5, 0xcc, - 0x6f, 0xfe, 0x97, 0xab, 0x67, 0xcc, 0x7f, 0x9e, 0x83, 0x72, 0x9a, 0x09, 0xd9, 0x86, 0xe9, 0x07, - 0x5d, 0xd7, 0x89, 0xe8, 0x52, 0xcb, 0xa3, 0x9d, 0x28, 0x44, 0x25, 0x39, 0xba, 0x4f, 0x2f, 0x89, - 0x7a, 0xe7, 0x7a, 0x48, 0x68, 0x37, 0x39, 0x65, 0xaa, 0x57, 0x3a, 0xdb, 0xa4, 0x9e, 0x3a, 0x9a, - 0xe0, 0x10, 0x35, 0xec, 0x64, 0xf5, 0x70, 0xe3, 0x3d, 0xa4, 0x1e, 0xc1, 0x56, 0x28, 0x50, 0xc7, - 0x6d, 0x1c, 0xa0, 0x66, 0x8e, 0xae, 0x40, 0x8c, 0x24, 0x43, 0x81, 0x18, 0xd8, 0xfc, 0x33, 0x03, - 0x66, 0x2c, 0x1a, 0xfa, 0xbd, 0xa0, 0x49, 0x57, 0xa9, 0xe3, 0xd2, 0x80, 0xa9, 0xff, 0x5d, 0xaf, - 0xe3, 0x8a, 0x39, 0x85, 0xea, 0xbf, 0xe7, 0x75, 0xd4, 0x29, 0x8c, 0xe5, 0xe4, 0x75, 0x98, 0xa8, - 0xf7, 0x1a, 0x88, 0xca, 0xe7, 0xd4, 0x45, 0x1c, 0xb1, 0x5e, 0xc3, 0x4e, 0xa1, 0x4b, 0x34, 0x72, - 0x13, 0x26, 0x1e, 0xd2, 0x20, 0x4c, 0x2c, 0x1e, 0x1a, 0xed, 0x7d, 0x0e, 0x52, 0x09, 0x04, 0x16, - 0xb9, 0x93, 0x58, 0x5d, 0xb1, 0xdc, 0x9c, 0x4d, 0xd9, 0xba, 0x44, 0x55, 0xda, 0x02, 0xa2, 0xaa, - 0x8a, 0xc4, 0x32, 0x7f, 0x90, 0x83, 0xf2, 0xb2, 0x13, 0x39, 0x0d, 0x27, 0x14, 0xf2, 0x7c, 0xf8, - 0x06, 0xb3, 0xe3, 0x4a, 0x47, 0xd1, 0x8e, 0xb3, 0x96, 0x7f, 0xea, 0xee, 0xbd, 0x9c, 0xee, 0xde, - 0x24, 0x5b, 0xfb, 0x44, 0xf7, 0x92, 0x4e, 0xbd, 0x77, 0x7c, 0xa7, 0xca, 0xa2, 0x53, 0x45, 0xd9, - 0xa9, 0xa4, 0x2b, 0xe4, 0x3d, 0x28, 0xd4, 0xbb, 0xb4, 0x29, 0x8c, 0x88, 0xb4, 0xfd, 0x7a, 0xe7, - 0x18, 0xc2, 0xc3, 0x37, 0x6a, 0x53, 0x82, 0x4d, 0x21, 0xec, 0xd2, 0xa6, 0x85, 0x64, 0xca, 0xa4, - 0xf9, 0xd7, 0x63, 0x70, 0x21, 0x8b, 0x2c, 0xbd, 0x38, 0x19, 0x27, 0x5a, 0x9c, 0xae, 0x43, 0x71, - 0x93, 0xa9, 0x63, 0xd3, 0x6f, 0x09, 0xb9, 0xa1, 0x27, 0xd1, 0x15, 0x30, 0x2b, 0x2e, 0x25, 0x97, - 0x21, 0xff, 0xc0, 0x5a, 0x13, 0xa2, 0x9a, 0x38, 0xec, 0x57, 0xf2, 0xbd, 0xc0, 0xb3, 0x18, 0x8c, - 0x2d, 0xee, 0x4b, 0xd5, 0x25, 0x1a, 0x44, 0x28, 0xa0, 0x29, 0xae, 0x27, 0x4d, 0xc7, 0x6e, 0xd2, - 0x20, 0x52, 0x57, 0x31, 0x8e, 0x44, 0x6e, 0x40, 0xbe, 0xfa, 0xa8, 0x2e, 0x24, 0x02, 0x42, 0x22, - 0xd5, 0x47, 0xf5, 0xda, 0xa4, 0x10, 0x40, 0xde, 0x79, 0x1c, 0x5a, 0x0c, 0x47, 0x1d, 0xa3, 0xf1, - 0x23, 0xc6, 0xe8, 0x3a, 0x14, 0x99, 0xe3, 0xc0, 0x96, 0x75, 0x34, 0x85, 0xa2, 0x17, 0xbb, 0x02, - 0x66, 0xc5, 0xa5, 0xe4, 0xc5, 0xd8, 0x0f, 0x29, 0x26, 0xfc, 0x84, 0x1f, 0x22, 0xbd, 0x0f, 0xb2, - 0x0f, 0xd3, 0xcb, 0x07, 0x1d, 0xa7, 0xed, 0x35, 0xc5, 0xc2, 0x5d, 0xc2, 0x85, 0x7b, 0xe1, 0x88, - 0xc1, 0x5b, 0xd0, 0x08, 0xf8, 0x5a, 0x7e, 0x55, 0x9a, 0x0d, 0x97, 0x97, 0xd9, 0x03, 0xeb, 0xba, - 0x5e, 0x0d, 0x9b, 0x3f, 0xd2, 0x2c, 0xa2, 0x9b, 0x94, 0xa8, 0x9a, 0x04, 0x27, 0xf3, 0x27, 0x10, - 0x10, 0x75, 0xfe, 0xc4, 0x0b, 0xed, 0x3b, 0x90, 0xbf, 0xb3, 0xb4, 0x39, 0x37, 0x89, 0x3c, 0x88, - 0xe0, 0x71, 0x67, 0x69, 0x73, 0xa9, 0xe5, 0xf7, 0xdc, 0xfa, 0x47, 0xeb, 0xb5, 0x59, 0xc1, 0x66, - 0x7a, 0xa7, 0xd9, 0x55, 0x38, 0x30, 0xaa, 0xf9, 0x47, 0x40, 0x06, 0x3b, 0x93, 0xb1, 0xe8, 0xff, - 0x8a, 0xba, 0xe8, 0x4f, 0x2e, 0xce, 0x8a, 0x6a, 0x96, 0xfc, 0x76, 0xdb, 0xe9, 0xb8, 0x48, 0xfb, - 0x70, 0x51, 0xf5, 0x05, 0x7e, 0x1d, 0xc7, 0x9d, 0xbc, 0x0a, 0xe3, 0x16, 0xdd, 0x49, 0x54, 0x15, - 0x5d, 0x9e, 0x00, 0x21, 0xaa, 0xb2, 0x70, 0x1c, 0x94, 0x09, 0x75, 0xc3, 0x5d, 0x6f, 0x3b, 0x12, - 0x15, 0xc5, 0x32, 0x11, 0x60, 0x45, 0x26, 0x02, 0xa2, 0xc9, 0x44, 0xc0, 0xcc, 0x5a, 0xc2, 0x88, - 0xbc, 0x05, 0xa5, 0xa5, 0x56, 0x2f, 0x8c, 0x68, 0xb0, 0xb6, 0x2c, 0x5a, 0x31, 0x77, 0xd8, 0xaf, - 0x5c, 0x68, 0x72, 0xa0, 0xee, 0x93, 0x26, 0xa8, 0xe6, 0x6f, 0x1a, 0x30, 0xa9, 0x88, 0x91, 0xf1, - 0xd9, 0x0c, 0xfc, 0x6f, 0xd3, 0x66, 0xa4, 0xf3, 0xe9, 0x72, 0x60, 0x8a, 0x4f, 0x8c, 0x4a, 0xde, - 0x06, 0x58, 0xeb, 0x30, 0x53, 0xdf, 0x64, 0x1e, 0x7c, 0x2e, 0x99, 0xb1, 0x9e, 0x80, 0xea, 0x94, - 0x0a, 0xb2, 0xf9, 0x57, 0x72, 0x50, 0x14, 0x26, 0x71, 0xf1, 0x94, 0x9a, 0xc4, 0x37, 0x35, 0x93, - 0x78, 0x5e, 0x90, 0x2a, 0xb3, 0x69, 0xf1, 0x18, 0x53, 0xf8, 0x36, 0x4c, 0x49, 0x11, 0xac, 0x7b, - 0x21, 0x33, 0x28, 0x13, 0x72, 0x31, 0x37, 0x70, 0xa6, 0x9e, 0xd5, 0x78, 0x3e, 0x5c, 0xb4, 0x64, - 0xb9, 0xf9, 0xfd, 0x31, 0x49, 0xcb, 0x6b, 0x62, 0x22, 0xac, 0xba, 0x6e, 0xa0, 0x8a, 0xd0, 0x71, - 0xdd, 0xc0, 0x42, 0x28, 0x1b, 0xa8, 0xcd, 0x5e, 0xa3, 0xe5, 0x35, 0x11, 0x47, 0x19, 0xa8, 0x2e, - 0x42, 0x6d, 0x86, 0xaa, 0x0e, 0x54, 0x82, 0xac, 0xd9, 0xa4, 0xfc, 0x91, 0x36, 0xe9, 0x5b, 0x50, - 0x5a, 0x6a, 0xbb, 0xc2, 0xd4, 0x14, 0xb0, 0x03, 0x66, 0x86, 0x50, 0x16, 0x62, 0x24, 0x6e, 0x5e, - 0xae, 0x08, 0x19, 0x5d, 0x68, 0xb6, 0xdd, 0x41, 0xd3, 0x92, 0xb0, 0xd4, 0xcc, 0xca, 0xd8, 0x67, - 0x31, 0x2b, 0x6f, 0x41, 0xe9, 0x41, 0x48, 0xb7, 0x7a, 0x9d, 0x0e, 0x6d, 0xa1, 0x3d, 0x2e, 0x72, - 0x75, 0xef, 0x85, 0xd4, 0x8e, 0x10, 0xaa, 0x36, 0x20, 0x46, 0x55, 0xd5, 0x6a, 0xe2, 0x08, 0xb5, - 0x5a, 0x84, 0x42, 0xb5, 0xdb, 0x95, 0xd6, 0x36, 0x5e, 0x18, 0xba, 0x5d, 0xee, 0xd5, 0x38, 0xdd, - 0xae, 0xda, 0x41, 0xc4, 0x25, 0x14, 0xc8, 0xdd, 0x5e, 0x83, 0x06, 0x1d, 0x1a, 0xd1, 0x50, 0x4c, - 0xd4, 0x70, 0x0e, 0x90, 0xc3, 0x9c, 0xdc, 0xa3, 0xa6, 0x11, 0x6a, 0xcf, 0x1d, 0xf6, 0x2b, 0x97, - 0xf6, 0x7a, 0x0d, 0xe6, 0x32, 0x72, 0x12, 0x85, 0x71, 0x06, 0xc3, 0xf9, 0x3a, 0xcc, 0xe8, 0xd2, - 0x7f, 0x0a, 0xf6, 0xf0, 0xc3, 0x42, 0xb1, 0x58, 0x2e, 0x99, 0x3f, 0x1c, 0x83, 0x7c, 0xb5, 0xdb, - 0x3d, 0x66, 0x9b, 0x2a, 0x56, 0xdf, 0x5c, 0xc6, 0xea, 0xab, 0xeb, 0x68, 0xfe, 0x24, 0x3a, 0xfa, - 0x10, 0xa6, 0xd8, 0x76, 0x2b, 0x5e, 0xe7, 0xb8, 0xf2, 0x5d, 0x49, 0x24, 0xbf, 0xa0, 0x16, 0x1f, - 0xb5, 0x43, 0xd5, 0xf8, 0x10, 0x3b, 0xbd, 0x80, 0xf2, 0x9d, 0xef, 0xf3, 0x0a, 0xe3, 0x8c, 0xf5, - 0x32, 0x56, 0xc2, 0x26, 0x17, 0xd9, 0x11, 0x2b, 0xe5, 0x2a, 0x90, 0xb5, 0x4e, 0x48, 0x9b, 0xbd, - 0x80, 0xd6, 0xf7, 0xbc, 0xee, 0x43, 0x1a, 0x78, 0xdb, 0x07, 0xaa, 0x4a, 0x7a, 0xa2, 0xd4, 0x0e, - 0xf7, 0xbc, 0xae, 0xbd, 0x8f, 0xe5, 0x56, 0x06, 0x0d, 0xf9, 0x00, 0x26, 0x2c, 0xfa, 0x38, 0xf0, - 0x22, 0x2a, 0x36, 0x51, 0x33, 0xf1, 0xf2, 0x82, 0x50, 0xee, 0xcc, 0x04, 0xfc, 0x87, 0x6a, 0x33, - 0x45, 0x79, 0xda, 0xfd, 0x2a, 0x9e, 0xc4, 0xfd, 0x9a, 0xff, 0x00, 0xce, 0x0d, 0x48, 0xf8, 0x24, - 0xfb, 0xeb, 0xcf, 0x6f, 0xb1, 0xfe, 0xcb, 0xb1, 0x5c, 0xc8, 0x22, 0xae, 0x9c, 0x5e, 0x40, 0x9b, - 0x11, 0xda, 0x57, 0xb1, 0x90, 0x04, 0x02, 0x96, 0x5a, 0x6d, 0x11, 0x46, 0xde, 0x87, 0x09, 0xbe, - 0x3f, 0x61, 0xfb, 0x2b, 0x36, 0xf6, 0xd3, 0xa2, 0x46, 0x0e, 0x15, 0xf1, 0x1f, 0x8e, 0xa1, 0x4a, - 0x55, 0x10, 0x99, 0x77, 0x60, 0x5c, 0xec, 0x6f, 0x8e, 0x9e, 0x17, 0x15, 0x18, 0x7b, 0x98, 0x48, - 0xa6, 0x56, 0x3a, 0xec, 0x57, 0x78, 0x27, 0x2c, 0x0e, 0x37, 0x7f, 0xc7, 0x80, 0x19, 0xbd, 0x97, - 0x64, 0x01, 0xc6, 0xc5, 0x06, 0xdc, 0xc0, 0x0d, 0x38, 0xeb, 0xcd, 0x38, 0xdf, 0x7a, 0x6b, 0x1b, - 0x6e, 0x81, 0xc5, 0xcc, 0x97, 0xe0, 0x80, 0x7d, 0x11, 0xe6, 0x4b, 0x28, 0xa9, 0x25, 0xcb, 0x88, - 0xc9, 0xfc, 0x9a, 0xb0, 0xd7, 0x8a, 0xc4, 0x1c, 0x04, 0xc6, 0x36, 0x40, 0x88, 0x25, 0x4a, 0xcc, - 0xbe, 0x01, 0x50, 0xaf, 0xaf, 0xde, 0xa5, 0x07, 0x9b, 0x8e, 0x17, 0xa0, 0xff, 0x80, 0xb3, 0xf1, - 0xae, 0x18, 0xad, 0x29, 0xe1, 0x3f, 0xf0, 0x99, 0xbb, 0x47, 0x0f, 0x34, 0xff, 0x41, 0xa2, 0xe2, - 0x94, 0x0f, 0xbc, 0x7d, 0x27, 0xa2, 0x8c, 0x30, 0x87, 0x84, 0x7c, 0xca, 0x73, 0x68, 0x8a, 0x52, - 0x41, 0x26, 0x1f, 0xc3, 0x4c, 0xf2, 0x0b, 0x03, 0x7a, 0x79, 0x0c, 0xe8, 0x49, 0x8d, 0xd0, 0x0b, - 0x6b, 0x2f, 0x1c, 0xf6, 0x2b, 0xf3, 0x0a, 0x57, 0x9b, 0x61, 0x29, 0xac, 0x53, 0xcc, 0xcc, 0x9f, - 0x18, 0x00, 0x5b, 0xeb, 0x75, 0xd9, 0xc1, 0x6b, 0x50, 0xc0, 0x7d, 0x01, 0xef, 0x1b, 0x9a, 0xf1, - 0xd4, 0xa6, 0x00, 0xcb, 0xc9, 0x8b, 0x90, 0x4f, 0x7a, 0x72, 0x8e, 0x39, 0xa6, 0x7a, 0x0f, 0x58, - 0x29, 0xb9, 0x03, 0x13, 0x23, 0xb5, 0x19, 0xb5, 0x33, 0xa3, 0xad, 0x92, 0x1a, 0x47, 0xe1, 0xc3, - 0x47, 0x5b, 0xcf, 0xee, 0x28, 0x7c, 0x3f, 0x07, 0x67, 0x99, 0x5c, 0xab, 0xbd, 0x68, 0xd7, 0x0f, - 0xbc, 0xe8, 0xe0, 0xd4, 0xfa, 0x8a, 0xef, 0x6a, 0xbe, 0xe2, 0xbc, 0x34, 0x5b, 0x6a, 0xdf, 0x46, - 0x72, 0x19, 0xff, 0x64, 0x02, 0xce, 0x67, 0x50, 0x91, 0x57, 0x45, 0x54, 0x3b, 0x71, 0xde, 0x31, - 0x6a, 0xfd, 0x8b, 0x7e, 0x65, 0x4a, 0xa2, 0x6f, 0x25, 0x51, 0xec, 0x45, 0x98, 0x14, 0x2e, 0x01, - 0x9a, 0x24, 0x2e, 0x29, 0x8c, 0x99, 0xca, 0x9d, 0x03, 0x9a, 0x26, 0x15, 0x89, 0x54, 0x61, 0x6a, - 0x69, 0x97, 0x36, 0xf7, 0xbc, 0xce, 0xce, 0x5d, 0x7a, 0x10, 0xce, 0xe5, 0xaf, 0xe6, 0xaf, 0x4f, - 0xd5, 0x9e, 0x67, 0x1e, 0x48, 0x53, 0xc0, 0xd9, 0x90, 0x2a, 0x56, 0x70, 0xce, 0xb0, 0x34, 0x12, - 0xf2, 0x3e, 0x4c, 0xd6, 0xbd, 0x9d, 0x8e, 0xe4, 0x50, 0x40, 0x0e, 0x57, 0x0e, 0xfb, 0x95, 0x8b, - 0x21, 0x07, 0x0f, 0x32, 0x50, 0x09, 0xc8, 0x0d, 0x18, 0xb3, 0xfc, 0x16, 0xe5, 0xcb, 0xb0, 0x08, - 0xa6, 0x06, 0x0c, 0xa0, 0x06, 0x53, 0x11, 0x83, 0xac, 0xc2, 0x04, 0xfb, 0xe7, 0x9e, 0xd3, 0x9d, - 0x1b, 0x47, 0xbb, 0x4d, 0x62, 0x57, 0x11, 0xa1, 0x5d, 0xaf, 0xb3, 0xa3, 0x7a, 0x8b, 0x2d, 0x6a, - 0xb7, 0x9d, 0xae, 0xb6, 0x2e, 0x72, 0x44, 0xf2, 0x10, 0x26, 0x13, 0x43, 0x10, 0xce, 0x4d, 0x20, - 0xb7, 0x73, 0x82, 0x5b, 0x52, 0x52, 0xfb, 0x82, 0x60, 0x76, 0x29, 0x6a, 0x85, 0xa8, 0xdb, 0x5d, - 0x86, 0xaf, 0x77, 0x46, 0x61, 0xa4, 0x79, 0xb3, 0xc5, 0xe1, 0xde, 0xac, 0x71, 0xac, 0x37, 0xeb, - 0x02, 0x08, 0x21, 0x55, 0x5b, 0x3b, 0xe2, 0x58, 0xe3, 0xc6, 0x70, 0x05, 0x5b, 0x48, 0x90, 0x71, - 0x4e, 0xe2, 0x4c, 0x97, 0xf2, 0x77, 0x5a, 0x3b, 0xea, 0x4c, 0x4f, 0x50, 0x99, 0x18, 0x12, 0x53, - 0x23, 0x3d, 0x53, 0x29, 0x86, 0xa4, 0x24, 0x11, 0xc3, 0xb7, 0x1f, 0x47, 0xc3, 0xc4, 0xa0, 0x30, - 0x22, 0xf7, 0x01, 0xaa, 0xcd, 0xc8, 0xdb, 0xa7, 0xa8, 0x12, 0x93, 0x9a, 0x20, 0x96, 0xaa, 0x77, - 0xe9, 0x41, 0x9d, 0x46, 0x71, 0x58, 0x71, 0xd6, 0x41, 0xd4, 0x94, 0x9a, 0x58, 0x0a, 0x07, 0xd2, - 0x85, 0xd9, 0xaa, 0xeb, 0x7a, 0xfc, 0xa8, 0x6b, 0x2b, 0x60, 0xfa, 0xeb, 0x22, 0xeb, 0xa9, 0x6c, - 0xd6, 0x37, 0x04, 0xeb, 0x2f, 0x38, 0x31, 0x95, 0x1d, 0x71, 0xb2, 0x74, 0x35, 0xd9, 0x8c, 0xcd, - 0x0d, 0x98, 0xd1, 0x45, 0xaa, 0x1f, 0xf2, 0x4c, 0x41, 0xd1, 0xaa, 0x57, 0xed, 0xfa, 0x6a, 0xf5, - 0x56, 0xd9, 0x20, 0x65, 0x98, 0x12, 0xbf, 0x16, 0xed, 0xc5, 0x37, 0xdf, 0x2a, 0xe7, 0x34, 0xc8, - 0x9b, 0xb7, 0x16, 0xcb, 0x79, 0xf3, 0x9f, 0x18, 0x50, 0x94, 0xed, 0x23, 0x6f, 0x41, 0xbe, 0x5e, - 0x5f, 0x15, 0xfb, 0x41, 0x29, 0xef, 0x64, 0xe9, 0xe5, 0x8b, 0x4c, 0x18, 0xee, 0xaa, 0x8b, 0x4c, - 0xbd, 0xbe, 0xca, 0xe8, 0xb6, 0xd6, 0xeb, 0xc2, 0x69, 0xc9, 0x50, 0x57, 0xa4, 0x8b, 0x34, 0xdf, - 0x97, 0x11, 0x30, 0xba, 0x0f, 0x1f, 0x6d, 0xe1, 0xec, 0xce, 0x1c, 0x5f, 0xa4, 0xfb, 0xf6, 0x63, - 0x75, 0xe9, 0x63, 0x04, 0xa6, 0x05, 0x93, 0xca, 0xd4, 0xe2, 0x4e, 0x44, 0xdb, 0x8f, 0xcf, 0x48, - 0x84, 0x13, 0xc1, 0x20, 0x96, 0x28, 0x61, 0x3e, 0xcf, 0xba, 0xdf, 0x74, 0x5a, 0xc2, 0x1b, 0x41, - 0x9f, 0xa7, 0xc5, 0x00, 0x16, 0x87, 0x9b, 0xff, 0xc6, 0x80, 0xf2, 0x66, 0xe0, 0xef, 0x7b, 0xcc, - 0x02, 0x6f, 0xf9, 0x7b, 0xb4, 0xf3, 0xf0, 0x16, 0x79, 0x4d, 0x1a, 0x01, 0xee, 0xc2, 0x5d, 0x62, - 0x54, 0x68, 0x04, 0x7e, 0xd1, 0xaf, 0x40, 0xfd, 0x20, 0x8c, 0x68, 0x9b, 0x95, 0x4b, 0x43, 0xa0, - 0x1c, 0x35, 0xe5, 0x46, 0x0f, 0x5f, 0x1f, 0x73, 0xd4, 0x54, 0x81, 0x31, 0x6c, 0x8e, 0x58, 0x31, - 0xb0, 0xe5, 0x11, 0x03, 0x58, 0x1c, 0xae, 0x18, 0xec, 0x1f, 0xe4, 0x06, 0xfa, 0xb0, 0xf8, 0x4c, - 0x85, 0x80, 0xf5, 0xce, 0x8d, 0xb4, 0x88, 0x7d, 0x1d, 0x2e, 0xa4, 0x45, 0x82, 0xf1, 0x8f, 0x2a, - 0x9c, 0xd5, 0xe1, 0x32, 0x0e, 0x72, 0x29, 0xb3, 0xae, 0x87, 0x8b, 0x56, 0x1a, 0xdf, 0x5c, 0x49, - 0xb3, 0x16, 0xeb, 0xe3, 0xc9, 0xb4, 0xc6, 0xfc, 0xdd, 0x1c, 0xcc, 0xf0, 0x0d, 0x0d, 0xe7, 0x7b, - 0x6a, 0xc7, 0xec, 0x1d, 0x6d, 0xcc, 0x2e, 0x4b, 0xfb, 0xa1, 0x74, 0x6d, 0xa4, 0x11, 0xdb, 0x05, - 0x32, 0x48, 0x43, 0x2c, 0xb9, 0xed, 0x1e, 0x65, 0xb0, 0x6e, 0x25, 0xc1, 0xda, 0x10, 0x89, 0x6c, - 0x9c, 0x31, 0xa1, 0xa5, 0xf1, 0x30, 0x7f, 0x27, 0x07, 0xd3, 0x8a, 0xdb, 0x71, 0x6a, 0x05, 0xff, - 0x15, 0x4d, 0xf0, 0x32, 0x84, 0xa3, 0xf4, 0x6c, 0x24, 0xb9, 0xf7, 0xe0, 0xdc, 0x00, 0x49, 0xda, - 0x7b, 0x33, 0x46, 0xf1, 0xde, 0x5e, 0x55, 0x23, 0xc5, 0x39, 0xe5, 0xd0, 0x38, 0x8e, 0x14, 0xab, - 0xf1, 0x61, 0xf4, 0xbb, 0xf9, 0xaf, 0x25, 0xbf, 0xb3, 0xed, 0xed, 0x9c, 0xda, 0x63, 0xab, 0x21, - 0x7e, 0xb7, 0xda, 0xb7, 0x91, 0x4e, 0xad, 0x3e, 0xc9, 0xc3, 0xf9, 0x0c, 0xaa, 0x93, 0xc9, 0x95, - 0xdc, 0x87, 0xb1, 0x6a, 0xcf, 0xf5, 0x22, 0xd1, 0x93, 0x8a, 0xde, 0x1c, 0x2c, 0x52, 0xb8, 0x2f, - 0xd6, 0x2e, 0x09, 0x07, 0xf0, 0xac, 0xc3, 0x8a, 0x54, 0x2f, 0x17, 0x71, 0xc9, 0xb7, 0xa0, 0x7c, - 0x9f, 0x46, 0x8f, 0xfd, 0x80, 0xb9, 0xd8, 0x9c, 0x52, 0xb8, 0x50, 0x2f, 0xa5, 0x14, 0x2e, 0x85, - 0xa5, 0x28, 0x9f, 0xf1, 0x33, 0x5e, 0xc7, 0x19, 0x6b, 0x80, 0x17, 0x69, 0xc3, 0xc5, 0x3a, 0x0d, - 0x71, 0x40, 0x68, 0xd3, 0x0f, 0xdc, 0xa4, 0x16, 0xee, 0x4d, 0x7d, 0x51, 0xd4, 0xb2, 0x4e, 0x77, - 0x9c, 0xe6, 0x41, 0x36, 0x2a, 0xab, 0x2a, 0x55, 0xd1, 0x10, 0xa6, 0xc4, 0x02, 0x60, 0xce, 0xea, - 0x6d, 0x8f, 0xb6, 0xdc, 0x70, 0x6e, 0x5a, 0xeb, 0x08, 0xaf, 0x42, 0x1b, 0x82, 0x04, 0x37, 0xc5, - 0x5f, 0xe1, 0xf2, 0x61, 0xa1, 0x68, 0x94, 0x73, 0x1f, 0x16, 0x8a, 0xf9, 0x72, 0xe1, 0xc3, 0x42, - 0x71, 0xac, 0x3c, 0xc9, 0x94, 0xfb, 0xc2, 0xa0, 0xc4, 0x4f, 0xad, 0xa1, 0xa9, 0x6a, 0x1a, 0x7e, - 0xac, 0x4a, 0x65, 0xa8, 0xb9, 0xf9, 0xbf, 0x26, 0x60, 0x6e, 0x18, 0x01, 0xb9, 0xa6, 0xed, 0x2c, - 0x31, 0xf4, 0x91, 0xda, 0xb5, 0xf3, 0x3d, 0x65, 0x72, 0x1c, 0x96, 0x1b, 0xe1, 0x38, 0x6c, 0x1d, - 0xca, 0x58, 0x95, 0xd0, 0x84, 0x30, 0x39, 0x92, 0xbd, 0x7a, 0xd8, 0xaf, 0x5c, 0x41, 0x7d, 0xb7, - 0x43, 0x51, 0x68, 0xf7, 0x02, 0x4f, 0xe1, 0x31, 0x40, 0x49, 0x7e, 0x62, 0xc0, 0x0c, 0x02, 0x57, - 0xf6, 0x69, 0x27, 0x42, 0x66, 0x5c, 0x92, 0x17, 0x17, 0xe2, 0x84, 0xb6, 0x7a, 0x14, 0x78, 0x9d, - 0x1d, 0x0c, 0xa6, 0x85, 0xb5, 0x06, 0x93, 0xc2, 0x1f, 0xf7, 0x2b, 0xef, 0x7e, 0x9a, 0x24, 0x39, - 0xc1, 0x2a, 0x3c, 0xec, 0x57, 0xe6, 0x79, 0x43, 0x29, 0x56, 0x9b, 0x6a, 0x66, 0xaa, 0x45, 0xe4, - 0xd7, 0xe0, 0xd2, 0x4a, 0xc7, 0x69, 0xb4, 0xe8, 0x92, 0xdf, 0x89, 0xbc, 0x4e, 0xcf, 0xef, 0x85, - 0x35, 0xa7, 0xb9, 0xd7, 0xeb, 0x86, 0x22, 0xe0, 0x8b, 0x3d, 0x6f, 0xc6, 0x85, 0x76, 0x83, 0x97, - 0x2a, 0x2c, 0x87, 0x31, 0x20, 0xab, 0x70, 0x8e, 0x17, 0x55, 0x7b, 0x91, 0x5f, 0x6f, 0x3a, 0x2d, - 0xaf, 0xb3, 0x83, 0x71, 0xe0, 0x62, 0x6d, 0x9e, 0xed, 0xaf, 0x9d, 0x5e, 0xe4, 0xdb, 0x21, 0x87, - 0x2b, 0xfc, 0x06, 0x89, 0xc8, 0x1a, 0x9c, 0xb5, 0xa8, 0xe3, 0xde, 0x73, 0x9e, 0x2c, 0x39, 0x5d, - 0xa7, 0xe9, 0x45, 0x07, 0xb8, 0x3b, 0xcd, 0xd7, 0x2a, 0x87, 0xfd, 0xca, 0x73, 0x01, 0x75, 0x5c, - 0xbb, 0xed, 0x3c, 0xb1, 0x9b, 0xa2, 0x50, 0x61, 0x96, 0xa6, 0x8b, 0x59, 0x79, 0x9d, 0x98, 0x55, - 0x29, 0xcd, 0xca, 0xeb, 0x0c, 0x67, 0x95, 0xd0, 0x49, 0x56, 0x5b, 0x4e, 0xb0, 0x43, 0x23, 0x1e, - 0x28, 0x85, 0xab, 0xc6, 0x75, 0x43, 0x61, 0x15, 0x61, 0x99, 0x8d, 0x41, 0xd3, 0x34, 0x2b, 0x85, - 0x8e, 0x69, 0xde, 0xa3, 0xc0, 0x8b, 0xa8, 0xda, 0xc3, 0x49, 0x6c, 0x16, 0xca, 0x1f, 0x43, 0xc5, - 0xc3, 0xba, 0x38, 0x40, 0x99, 0x70, 0x53, 0x3a, 0x39, 0x35, 0xc0, 0x2d, 0xbb, 0x97, 0x03, 0x94, - 0x31, 0x37, 0xb5, 0x9f, 0xd3, 0xd8, 0x4f, 0x85, 0xdb, 0x90, 0x8e, 0x0e, 0x50, 0xa2, 0xb9, 0x1b, - 0xb7, 0xca, 0x5c, 0x45, 0x23, 0x36, 0xd0, 0xe8, 0x18, 0x98, 0xbf, 0x9f, 0x83, 0xcb, 0x43, 0xd6, - 0x85, 0x53, 0x6b, 0x05, 0x6f, 0x6b, 0x56, 0x70, 0xf4, 0xd5, 0x2f, 0x6d, 0x0a, 0xff, 0x46, 0x01, - 0x9e, 0x3f, 0x92, 0x8a, 0x7c, 0xc4, 0x5c, 0x32, 0x8f, 0x76, 0xa2, 0x35, 0xb7, 0x45, 0xd9, 0xd6, - 0xd1, 0xef, 0x45, 0x22, 0x00, 0xff, 0xe2, 0x61, 0xbf, 0x72, 0x9e, 0x27, 0x6f, 0xd9, 0x9e, 0xdb, - 0xa2, 0x76, 0xc4, 0x8b, 0xb5, 0x68, 0xfc, 0x20, 0x35, 0x63, 0x19, 0x67, 0x89, 0xae, 0x75, 0x22, - 0x1a, 0xec, 0x3b, 0x3c, 0x8b, 0x45, 0xb0, 0xdc, 0xa3, 0xb4, 0x6b, 0x3b, 0xac, 0xd4, 0xf6, 0x44, - 0xb1, 0xce, 0x72, 0x80, 0x9a, 0xdc, 0x56, 0x58, 0x2e, 0xf9, 0xbd, 0x4e, 0x74, 0xcf, 0x79, 0x22, - 0x52, 0x6c, 0x31, 0x26, 0xac, 0xb0, 0x6c, 0xb2, 0x62, 0xa6, 0xf1, 0xd6, 0x20, 0x09, 0xf9, 0x18, - 0x66, 0x85, 0xa1, 0x65, 0x46, 0x27, 0xf0, 0x5b, 0xb2, 0xc7, 0x05, 0xe4, 0xf5, 0xc5, 0xc3, 0x7e, - 0xe5, 0x92, 0x30, 0xd3, 0x76, 0x93, 0x63, 0x64, 0xf6, 0x3a, 0x9b, 0x0b, 0xd9, 0x62, 0x0b, 0x4f, - 0x4a, 0x1c, 0xf7, 0x68, 0x18, 0x3a, 0x3b, 0x14, 0x87, 0x52, 0xe4, 0x21, 0xa8, 0xc2, 0xb4, 0xdb, - 0xbc, 0xdc, 0x1a, 0x4a, 0x49, 0x56, 0x61, 0xe6, 0x11, 0x6d, 0xa8, 0xe3, 0x33, 0x1e, 0x4f, 0xc9, - 0xf2, 0x63, 0xda, 0x18, 0x3e, 0x38, 0x29, 0x3a, 0xf3, 0xf7, 0x72, 0x30, 0x97, 0xed, 0xac, 0x9c, - 0xda, 0x99, 0xb2, 0xa2, 0xcd, 0x94, 0x17, 0xe3, 0x03, 0xfa, 0x61, 0xbe, 0xdb, 0x90, 0x89, 0xf2, - 0x8f, 0x0d, 0xb8, 0x72, 0x14, 0x11, 0x93, 0x0e, 0xa6, 0xb3, 0x2a, 0xd2, 0x69, 0xfb, 0x2e, 0x15, - 0x49, 0xac, 0x5d, 0x38, 0xbf, 0x19, 0xf8, 0x4f, 0x0e, 0x30, 0x3e, 0x1c, 0xae, 0xfa, 0x61, 0x84, - 0x41, 0x3a, 0x1e, 0xa2, 0x29, 0x8b, 0x46, 0xd5, 0x7c, 0xbf, 0x85, 0xa6, 0xac, 0xf6, 0x2a, 0xf3, - 0xef, 0xfe, 0xb8, 0x5f, 0x01, 0x06, 0xda, 0xc0, 0x33, 0x47, 0xb6, 0xac, 0x75, 0x19, 0x0b, 0x1b, - 0xc3, 0xcf, 0xa1, 0x8d, 0xd9, 0x4f, 0x7b, 0xf4, 0x20, 0xb4, 0xb2, 0x58, 0x9b, 0x7f, 0xdb, 0x80, - 0xab, 0xc7, 0xf9, 0xa9, 0xe4, 0x86, 0xd6, 0x68, 0x3c, 0xdc, 0x93, 0xda, 0x1d, 0x48, 0x74, 0xd1, - 0x83, 0xf5, 0xe1, 0x3d, 0x28, 0xf1, 0x45, 0xf7, 0x24, 0xad, 0xfb, 0x41, 0x8e, 0x39, 0x44, 0xd1, - 0xee, 0x66, 0x40, 0xb7, 0x69, 0x40, 0x3b, 0x4d, 0xfa, 0x8c, 0x85, 0x89, 0xf4, 0xce, 0x8d, 0xb4, - 0xf9, 0xfd, 0x57, 0x63, 0x70, 0x21, 0x8b, 0x8c, 0xc9, 0x45, 0x71, 0x49, 0xd3, 0x29, 0xfa, 0x7f, - 0xcd, 0x80, 0xa9, 0x3a, 0x6d, 0xfa, 0x1d, 0xf7, 0xb6, 0xd3, 0x8c, 0x7c, 0x99, 0xee, 0x62, 0x73, - 0x53, 0xc5, 0xe0, 0xf6, 0x36, 0x16, 0x68, 0xf9, 0xc9, 0x5f, 0x1d, 0xcd, 0x13, 0x6c, 0xfa, 0x98, - 0xc2, 0x14, 0xb1, 0x19, 0x93, 0x54, 0x81, 0x47, 0x2b, 0x5a, 0xa5, 0xa4, 0x06, 0xd3, 0x4b, 0x7e, - 0xa7, 0x43, 0xd9, 0x8f, 0xfb, 0x49, 0xee, 0xcc, 0x95, 0xc3, 0x7e, 0x65, 0xae, 0x29, 0x0b, 0x70, - 0x3d, 0x56, 0xb3, 0x03, 0x34, 0x12, 0xf2, 0x06, 0xe4, 0x1f, 0x2c, 0xde, 0x16, 0x63, 0x20, 0xf3, - 0x48, 0x1e, 0x2c, 0xde, 0xc6, 0x48, 0x0a, 0xdb, 0xea, 0x4c, 0xf7, 0x16, 0xb7, 0xd5, 0x40, 0xec, - 0x83, 0xc5, 0xdb, 0x64, 0x03, 0xce, 0x59, 0xf4, 0x3b, 0x3d, 0x2f, 0xa0, 0x42, 0xcf, 0xef, 0xdd, - 0xae, 0xe2, 0x58, 0x14, 0x6b, 0x5f, 0x38, 0xec, 0x57, 0x9e, 0x0f, 0x78, 0xa1, 0x74, 0xae, 0xed, - 0xf6, 0xb6, 0x9a, 0xbb, 0x3a, 0x48, 0x4b, 0x7e, 0x03, 0x66, 0x97, 0xbd, 0x50, 0xb4, 0x99, 0x47, - 0x40, 0x5d, 0x3c, 0x0c, 0x1d, 0x1f, 0x32, 0x59, 0xbf, 0x9c, 0x39, 0x59, 0xbf, 0xe0, 0xc6, 0x4c, - 0x6c, 0x1e, 0x5e, 0x75, 0xd3, 0x89, 0x95, 0xd9, 0xf5, 0x90, 0x6f, 0xc3, 0x4c, 0xb5, 0xd5, 0xf2, - 0x1f, 0x63, 0x50, 0x98, 0x29, 0x84, 0xc8, 0x70, 0x18, 0xac, 0xf9, 0xf5, 0xcc, 0x9a, 0xe7, 0x1d, - 0x46, 0x6d, 0x63, 0x68, 0xd9, 0x76, 0x7a, 0xd1, 0xae, 0xe6, 0xa4, 0x6b, 0x9c, 0xc9, 0x87, 0x70, - 0x56, 0xac, 0x22, 0x1b, 0xdb, 0x5b, 0xbb, 0x74, 0xd9, 0x39, 0x10, 0x99, 0x10, 0xe8, 0x80, 0x89, - 0xa5, 0xc7, 0xf6, 0xb7, 0xed, 0x68, 0x97, 0xda, 0xae, 0xa3, 0x39, 0xad, 0x29, 0x42, 0xf3, 0x5f, - 0x1a, 0xf0, 0xfc, 0x91, 0xdb, 0x56, 0xf2, 0xf5, 0x61, 0xa2, 0x35, 0x70, 0xbc, 0xd8, 0xe2, 0x7f, - 0x69, 0x88, 0xd8, 0x7e, 0xd1, 0xaf, 0x14, 0x58, 0x2f, 0x87, 0x09, 0xed, 0xfd, 0x01, 0xa1, 0xe5, - 0x90, 0x27, 0x33, 0x12, 0x90, 0x88, 0x22, 0x66, 0x93, 0xc2, 0x36, 0xff, 0x85, 0x81, 0xca, 0x47, - 0x5e, 0x81, 0xb1, 0x6a, 0xb7, 0x1b, 0xa7, 0x05, 0xe2, 0xae, 0xce, 0xe9, 0x76, 0xf5, 0xc4, 0x3e, - 0x8e, 0xc2, 0xb6, 0x80, 0xb7, 0x9d, 0x26, 0x8d, 0x42, 0x11, 0xd1, 0x47, 0xe4, 0x6d, 0x84, 0xa8, - 0x5b, 0x40, 0x8e, 0x43, 0xbe, 0x06, 0x17, 0x96, 0xe9, 0xbe, 0xd7, 0xa4, 0xd5, 0x28, 0xa2, 0x21, - 0x9f, 0x6e, 0x4b, 0x55, 0x7e, 0xb0, 0x58, 0xaa, 0xbd, 0x74, 0xd8, 0xaf, 0x5c, 0x75, 0xb1, 0xdc, - 0x76, 0x12, 0x04, 0xbb, 0xe9, 0xa8, 0xbc, 0x32, 0x39, 0x98, 0xff, 0xd7, 0x50, 0x2e, 0xc3, 0x9c, - 0x52, 0x2b, 0xfa, 0x96, 0x66, 0x45, 0x2f, 0x08, 0xd2, 0xb8, 0x57, 0x71, 0x54, 0x25, 0xbd, 0x2e, - 0x9f, 0x85, 0x69, 0x0d, 0x89, 0x79, 0xfb, 0x17, 0x2c, 0x1a, 0xd2, 0x68, 0xd3, 0x09, 0xc3, 0xc7, - 0x7e, 0xe0, 0xf2, 0x70, 0xec, 0x1b, 0xcf, 0x54, 0xb8, 0x63, 0xb0, 0x83, 0x23, 0x45, 0xf5, 0xfe, - 0xc8, 0x80, 0xb9, 0x61, 0xa4, 0x4c, 0x3e, 0x0f, 0x42, 0xaa, 0x65, 0x54, 0xf6, 0x42, 0x1a, 0x58, - 0x08, 0xe5, 0x89, 0x6c, 0xeb, 0x7a, 0x22, 0x5b, 0xcb, 0x62, 0x30, 0x52, 0x87, 0x89, 0xa5, 0x80, - 0xe2, 0x7d, 0x96, 0xc2, 0xe8, 0x47, 0x4e, 0x4d, 0x4e, 0x92, 0x3e, 0x72, 0x12, 0x9c, 0xcc, 0x3f, - 0xcc, 0xc1, 0x73, 0x19, 0x4d, 0xa5, 0xcd, 0x80, 0x46, 0xe1, 0xa9, 0x1d, 0xcd, 0x55, 0x6d, 0x34, - 0xaf, 0x0d, 0x1f, 0x4d, 0xde, 0xcf, 0x91, 0x06, 0xf5, 0xdf, 0x1b, 0x50, 0x39, 0x86, 0x03, 0x79, - 0x11, 0xc6, 0x37, 0xb6, 0x36, 0x65, 0x9e, 0x8c, 0xe8, 0x9c, 0xdf, 0x45, 0x0f, 0xcd, 0x12, 0x45, - 0xe4, 0x35, 0x18, 0xff, 0xc8, 0x5a, 0x62, 0xee, 0x60, 0x2e, 0x71, 0x07, 0xbf, 0x13, 0xd8, 0x4d, - 0xfd, 0x56, 0x96, 0x40, 0x52, 0x87, 0x3d, 0xff, 0xd4, 0x86, 0xfd, 0xfb, 0x39, 0x38, 0x5b, 0x6d, - 0x36, 0x69, 0x18, 0xb2, 0x85, 0x99, 0x86, 0xd1, 0x33, 0x16, 0x89, 0xd7, 0xfa, 0x36, 0xd2, 0xf0, - 0xfe, 0x3b, 0x03, 0x66, 0x25, 0xd5, 0xbe, 0x47, 0x1f, 0x6f, 0xed, 0x06, 0x34, 0xdc, 0xf5, 0x5b, - 0x2e, 0xb9, 0xa6, 0x65, 0xd8, 0x61, 0xa4, 0x32, 0xe5, 0x5f, 0x15, 0xc4, 0x59, 0xc8, 0xf8, 0x6d, - 0xaf, 0x15, 0xd1, 0x40, 0x8d, 0x54, 0x6e, 0x23, 0x44, 0x5b, 0xa6, 0x10, 0x42, 0x6e, 0xc2, 0x44, - 0xb5, 0xdb, 0x0d, 0xfc, 0x7d, 0xee, 0xc2, 0x4d, 0x73, 0x35, 0x70, 0x38, 0x48, 0x15, 0xa7, 0xc0, - 0x62, 0xcd, 0x58, 0xa6, 0x9d, 0x03, 0x94, 0xd1, 0x34, 0x6f, 0x86, 0x4b, 0x3b, 0xaa, 0xa7, 0x80, - 0xe5, 0xe6, 0xf7, 0x0a, 0x30, 0xa5, 0x76, 0x84, 0x98, 0x30, 0xce, 0x73, 0x35, 0xd4, 0x33, 0x73, - 0x07, 0x21, 0x96, 0x28, 0x49, 0x52, 0x60, 0x72, 0xc7, 0xa6, 0xc0, 0x3c, 0x82, 0xe9, 0xcd, 0xc0, - 0xef, 0xfa, 0x21, 0x75, 0xf9, 0x6d, 0x45, 0x9e, 0x9a, 0x75, 0x3e, 0x9e, 0x64, 0x5c, 0xe6, 0xac, - 0x88, 0xbb, 0xa5, 0x5d, 0x81, 0x6d, 0xa7, 0xef, 0x32, 0xea, 0x7c, 0x78, 0xa4, 0xd7, 0x09, 0xfd, - 0x8e, 0xb8, 0x7d, 0x28, 0x22, 0xbd, 0x0c, 0xa2, 0x47, 0x7a, 0x19, 0x44, 0x9d, 0x16, 0x63, 0x4f, - 0x6b, 0x5a, 0x90, 0x1f, 0x19, 0x30, 0x59, 0xed, 0x74, 0x44, 0x0a, 0x8c, 0xbc, 0x45, 0x3a, 0x9b, - 0x44, 0x7b, 0x79, 0x8e, 0x24, 0x0f, 0xf6, 0x7e, 0x53, 0x04, 0x7b, 0xdf, 0xf9, 0x54, 0xc1, 0xde, - 0xad, 0xc0, 0xf1, 0xa2, 0x10, 0x93, 0x4f, 0x92, 0x0a, 0xd5, 0x3c, 0x58, 0xa5, 0x1d, 0xe4, 0x1d, - 0x28, 0xc7, 0xfa, 0xb8, 0xd6, 0x71, 0xe9, 0x13, 0xca, 0x33, 0x86, 0xa6, 0xf9, 0x6d, 0x69, 0x2d, - 0x8a, 0x9d, 0x46, 0x34, 0xbf, 0x6f, 0xc0, 0x45, 0x55, 0x21, 0xea, 0xbd, 0x46, 0xdb, 0x43, 0x37, - 0x9c, 0x2c, 0x40, 0x49, 0x8c, 0x57, 0xec, 0x89, 0x0d, 0x5e, 0x71, 0x4d, 0x50, 0xc8, 0x0a, 0x1b, - 0x22, 0xc6, 0x43, 0xec, 0xa8, 0xcf, 0xa7, 0xa6, 0x1b, 0x2b, 0xaa, 0xcd, 0x09, 0x61, 0x97, 0x03, - 0xfc, 0xad, 0x8f, 0x1d, 0x83, 0x98, 0xef, 0xc3, 0x39, 0xbd, 0x95, 0x75, 0x8a, 0xb7, 0x14, 0x64, - 0xd7, 0x8c, 0xec, 0xae, 0xc9, 0x72, 0xf3, 0x11, 0x90, 0x01, 0xfa, 0x10, 0x97, 0x70, 0x1a, 0xc9, - 0xe3, 0x62, 0x79, 0x34, 0x3a, 0x80, 0x18, 0xdf, 0xe3, 0x9e, 0xd4, 0xd2, 0xe5, 0x19, 0xa9, 0xf9, - 0xe7, 0x25, 0x38, 0x9f, 0x61, 0x3a, 0x8e, 0x59, 0xb3, 0x2b, 0xfa, 0xe4, 0x29, 0xc5, 0x49, 0x00, - 0x72, 0xca, 0xbc, 0x2f, 0x2f, 0xf6, 0x1e, 0x31, 0x55, 0x8e, 0xba, 0xed, 0xfb, 0x79, 0xac, 0xfc, - 0x6a, 0x06, 0xcb, 0xd8, 0x53, 0xcb, 0x60, 0xa9, 0xc1, 0xb4, 0xe8, 0x95, 0x98, 0xca, 0xe3, 0xc9, - 0xf6, 0x34, 0xe0, 0x05, 0xf6, 0xc0, 0x94, 0xd6, 0x49, 0x38, 0x8f, 0xd0, 0x6f, 0xed, 0x53, 0xc1, - 0x63, 0x42, 0xe5, 0x81, 0x05, 0x99, 0x3c, 0x14, 0x12, 0xf2, 0x0f, 0x0d, 0x20, 0x02, 0xa2, 0xce, - 0xe7, 0xe2, 0x51, 0xf3, 0xd9, 0x7d, 0x3a, 0xf3, 0xf9, 0x79, 0xd9, 0xc6, 0xec, 0x79, 0x9d, 0xd1, - 0x2c, 0xf2, 0x47, 0x06, 0x9c, 0xe3, 0xc9, 0x22, 0x6a, 0x63, 0x4b, 0x47, 0x35, 0xb6, 0xf9, 0x74, - 0x1a, 0x7b, 0x25, 0xc4, 0x6a, 0x87, 0xb4, 0x75, 0xb0, 0x51, 0xe4, 0xd7, 0x00, 0xe2, 0x19, 0x25, - 0xd3, 0xf5, 0xae, 0x64, 0x58, 0x81, 0x18, 0x29, 0xb9, 0x87, 0x13, 0xc5, 0x74, 0x6a, 0x8e, 0x5d, - 0xc2, 0x8d, 0xfc, 0x06, 0x5c, 0x60, 0xf3, 0x25, 0x86, 0x88, 0xa4, 0xaf, 0xb9, 0x49, 0xac, 0xe5, - 0x4b, 0xc3, 0x97, 0xf6, 0x85, 0x2c, 0x32, 0x7e, 0x69, 0x22, 0x4e, 0x0e, 0x09, 0xa2, 0xb6, 0xba, - 0xc1, 0xcb, 0xa2, 0xc0, 0xec, 0x4e, 0x6c, 0x7d, 0x38, 0x37, 0x85, 0x75, 0x66, 0xda, 0xb7, 0xcb, - 0x72, 0x2e, 0x70, 0xfb, 0x16, 0xea, 0xb7, 0x1e, 0x10, 0x44, 0x3e, 0x02, 0x52, 0xef, 0xed, 0xec, - 0xd0, 0x30, 0xa2, 0x2e, 0x87, 0xd1, 0x20, 0x9c, 0x9b, 0x46, 0xfb, 0x80, 0xe1, 0x92, 0x50, 0x96, - 0xda, 0x81, 0x2c, 0x56, 0x95, 0x64, 0x90, 0x78, 0xbe, 0x01, 0x97, 0x87, 0x76, 0x33, 0xe3, 0x46, - 0xc3, 0x4d, 0xfd, 0x46, 0xc3, 0xe5, 0x61, 0xe6, 0x30, 0x54, 0x6f, 0x35, 0xfc, 0x3d, 0x23, 0x65, - 0xff, 0x84, 0xb3, 0xc2, 0xdf, 0x40, 0x18, 0xb6, 0x40, 0xe4, 0xd6, 0x96, 0x99, 0x77, 0x82, 0x16, - 0x32, 0x97, 0x38, 0x49, 0xcc, 0x42, 0xaa, 0x16, 0x16, 0x6d, 0xe5, 0x67, 0x34, 0x85, 0xe6, 0x3f, - 0x33, 0x80, 0xf0, 0x16, 0x2e, 0x39, 0x5d, 0xa7, 0xe1, 0xb5, 0xbc, 0xc8, 0xa3, 0x21, 0xb9, 0x0b, - 0x65, 0xc1, 0xc2, 0x69, 0xb4, 0xa8, 0x9a, 0x92, 0x25, 0x4e, 0xf2, 0xe2, 0x32, 0x3b, 0xed, 0xd6, - 0x0c, 0x10, 0x0e, 0x19, 0xbc, 0xdc, 0x67, 0x18, 0x3c, 0xf3, 0x4f, 0x0d, 0xb8, 0x3c, 0xd8, 0x6c, - 0x51, 0x73, 0x2c, 0x3c, 0xe3, 0x18, 0xe1, 0x65, 0xf5, 0x92, 0x87, 0x5f, 0x9e, 0x5a, 0x2f, 0xf3, - 0x49, 0x44, 0xef, 0xe4, 0xbd, 0xfc, 0xed, 0x1c, 0x4c, 0x6d, 0xb6, 0x7a, 0x3b, 0x5e, 0x67, 0xd9, - 0x89, 0x9c, 0x53, 0xbb, 0xa5, 0x78, 0x5b, 0xdb, 0x52, 0xc4, 0x79, 0x67, 0x71, 0xc7, 0x46, 0xda, - 0x4f, 0xfc, 0xd0, 0x80, 0xb3, 0x09, 0x09, 0x9f, 0xa5, 0xab, 0x50, 0x60, 0x3f, 0x84, 0x87, 0x72, - 0x75, 0x80, 0x31, 0x62, 0x2d, 0xc4, 0xff, 0x09, 0x27, 0x5f, 0x7f, 0x05, 0x00, 0x39, 0xcc, 0x7f, - 0x19, 0x4a, 0x09, 0xdb, 0x93, 0x3c, 0x38, 0xf2, 0x4f, 0x0d, 0x28, 0xa7, 0x7b, 0x42, 0xee, 0xc2, - 0x04, 0xe3, 0xe4, 0x51, 0xe9, 0x3c, 0xbd, 0x34, 0xa4, 0xcf, 0x0b, 0x02, 0x8d, 0x37, 0x0f, 0x85, - 0x4f, 0x39, 0xc4, 0x92, 0x1c, 0xe6, 0x2d, 0x98, 0x52, 0xb1, 0x32, 0x5a, 0xf7, 0xaa, 0x6e, 0x9a, - 0x2e, 0x66, 0xcb, 0x41, 0x6d, 0xf5, 0xdf, 0xd1, 0x5a, 0x2d, 0x8c, 0xd2, 0xa8, 0x2f, 0x3b, 0xe0, - 0xfd, 0x2c, 0xfe, 0x26, 0x84, 0xaa, 0x67, 0x81, 0x80, 0xe9, 0xf7, 0xb3, 0x38, 0x8c, 0xed, 0x45, - 0x78, 0x7d, 0x42, 0xcf, 0x70, 0x2f, 0xd2, 0x45, 0x88, 0xea, 0xcf, 0x72, 0x1c, 0xf3, 0xef, 0xe6, - 0xe1, 0x62, 0xd2, 0x3c, 0xfe, 0xce, 0xc5, 0xa6, 0x13, 0x38, 0xed, 0xf0, 0x98, 0x19, 0x70, 0x7d, - 0xa0, 0x69, 0x78, 0x09, 0x56, 0x36, 0x4d, 0x69, 0x90, 0x99, 0x6a, 0x10, 0x6e, 0xe2, 0x78, 0x83, - 0x64, 0x33, 0xc8, 0x5d, 0xc8, 0xd7, 0x69, 0x24, 0x6e, 0x29, 0x5e, 0x1b, 0x90, 0xaa, 0xda, 0xae, - 0x85, 0x3a, 0x8d, 0xf8, 0x20, 0xf2, 0x44, 0x6f, 0xaa, 0x25, 0x5e, 0x33, 0x77, 0xfc, 0x11, 0x8c, - 0xaf, 0x3c, 0xe9, 0xd2, 0x66, 0x24, 0x2e, 0x27, 0xde, 0x38, 0x9a, 0x1f, 0xc7, 0x55, 0xae, 0x40, - 0x52, 0x04, 0xa8, 0xc2, 0xe2, 0x28, 0xf3, 0x6f, 0x41, 0x51, 0x56, 0x7e, 0xa2, 0xab, 0x7c, 0x6f, - 0xc3, 0xa4, 0x52, 0xc9, 0x89, 0x94, 0xfe, 0xcf, 0x0d, 0x18, 0x67, 0x46, 0xef, 0xe1, 0x97, 0x4e, - 0xa9, 0x45, 0x7a, 0x43, 0xb3, 0x48, 0xe7, 0x94, 0x3b, 0x27, 0x38, 0x2f, 0xbf, 0x74, 0x8c, 0x2d, - 0xea, 0x1b, 0x00, 0x09, 0x32, 0xb9, 0x03, 0x13, 0xfc, 0x10, 0x43, 0x3e, 0x22, 0xa3, 0x5e, 0x62, - 0x11, 0x25, 0x89, 0x97, 0xe3, 0x77, 0xd3, 0x6e, 0xa1, 0xa4, 0x26, 0xcb, 0x30, 0x86, 0xe1, 0xfd, - 0xd4, 0xad, 0x49, 0xc6, 0x66, 0xc9, 0xef, 0xf0, 0x4b, 0x0d, 0x21, 0x66, 0x1b, 0x9e, 0xc1, 0x6c, - 0x43, 0x86, 0xab, 0x85, 0xf7, 0x19, 0x80, 0xed, 0xdb, 0x30, 0xb0, 0x91, 0x3f, 0x8a, 0xc9, 0x45, - 0xc1, 0x24, 0x3b, 0xe6, 0xf1, 0xa3, 0x22, 0xbf, 0x26, 0x20, 0x1b, 0xf6, 0x1e, 0x4c, 0xdd, 0xf6, - 0x83, 0xc7, 0x4e, 0xe0, 0x56, 0x77, 0x68, 0x47, 0x9e, 0x7b, 0x5c, 0x66, 0xaa, 0xbe, 0xcd, 0xe1, - 0xb6, 0xc3, 0x0a, 0xe2, 0x63, 0x0a, 0x0d, 0x9d, 0x6c, 0xc0, 0xf4, 0x3d, 0xe7, 0x89, 0x38, 0xab, - 0xda, 0xda, 0x5a, 0x17, 0x49, 0x13, 0x37, 0x0e, 0xfb, 0x95, 0xcb, 0x6d, 0xe7, 0x49, 0x7c, 0xc6, - 0x15, 0x45, 0xad, 0x21, 0x8f, 0x11, 0xe9, 0xf4, 0xc4, 0x83, 0x99, 0x4d, 0x3f, 0x88, 0x44, 0x25, - 0xcc, 0xa7, 0xcd, 0x0f, 0x39, 0x6a, 0xba, 0x99, 0x79, 0xd4, 0x74, 0x99, 0x39, 0xf2, 0xf6, 0x76, - 0x4c, 0xae, 0xdd, 0x6d, 0xd3, 0x18, 0x93, 0xf7, 0xe0, 0xdc, 0x12, 0x0d, 0x22, 0x6f, 0xdb, 0x6b, - 0x3a, 0x11, 0xbd, 0xed, 0x07, 0x6d, 0x27, 0x12, 0x01, 0x15, 0xdc, 0x50, 0x37, 0x29, 0xe7, 0xd4, - 0x76, 0x22, 0x6b, 0x10, 0x93, 0x7c, 0x23, 0x2b, 0x0d, 0x65, 0x0c, 0xbb, 0xff, 0x1a, 0x73, 0x0a, - 0x32, 0xd2, 0x50, 0x86, 0x88, 0x20, 0x23, 0x21, 0x65, 0xe7, 0xa8, 0x23, 0xbf, 0x62, 0xed, 0x96, - 0x38, 0x7e, 0x3c, 0xfe, 0x48, 0xef, 0xb8, 0x53, 0xaa, 0x45, 0xc8, 0xd7, 0x36, 0x6f, 0x63, 0x88, - 0x44, 0x1c, 0xb1, 0xd1, 0xce, 0xae, 0xd3, 0x69, 0xa2, 0x2f, 0x23, 0xce, 0xdb, 0x55, 0x83, 0x57, - 0xdb, 0xbc, 0x4d, 0x1c, 0x38, 0xbf, 0x49, 0x83, 0xb6, 0x17, 0x7d, 0xed, 0xd6, 0x2d, 0x65, 0xa0, - 0x8a, 0xd8, 0xb4, 0x9b, 0xa2, 0x69, 0x95, 0x2e, 0xa2, 0xd8, 0x4f, 0x6e, 0xdd, 0xca, 0x1c, 0x8e, - 0xb8, 0x61, 0x59, 0xbc, 0xc8, 0x0a, 0xcc, 0xdc, 0x73, 0x9e, 0x88, 0xc3, 0xd8, 0x78, 0x8f, 0x97, - 0xc7, 0xdb, 0x6e, 0xa8, 0x58, 0xcd, 0xa4, 0x48, 0x1d, 0x62, 0x9d, 0x88, 0xbc, 0x0b, 0x93, 0x89, - 0x7a, 0x85, 0x98, 0xb1, 0x96, 0xe7, 0xa9, 0x01, 0x8a, 0x72, 0x6a, 0xb1, 0x24, 0x05, 0x9d, 0x3c, - 0x88, 0xb7, 0xe8, 0xdc, 0x21, 0xc5, 0x2c, 0xb5, 0x52, 0xed, 0xa6, 0xba, 0x45, 0x77, 0xb0, 0x44, - 0xeb, 0xd6, 0xd9, 0xd8, 0x45, 0x0f, 0x9c, 0x88, 0xee, 0x24, 0xbb, 0x76, 0xce, 0x45, 0xd9, 0xf9, - 0x6f, 0x06, 0x7e, 0xbb, 0x1b, 0x61, 0xba, 0x5a, 0x6a, 0xe7, 0xdf, 0xc5, 0x92, 0x8c, 0x9d, 0x3f, - 0x27, 0xc9, 0x3e, 0x63, 0x9e, 0xfe, 0xf4, 0x67, 0xcc, 0xe6, 0x3f, 0x2a, 0xc1, 0x8c, 0x6e, 0x48, - 0xd8, 0xca, 0xbe, 0xee, 0xef, 0x78, 0x1d, 0xb9, 0x3f, 0xe0, 0xf7, 0xf5, 0x11, 0xa2, 0xbd, 0x28, - 0x87, 0x10, 0xf2, 0x32, 0x40, 0x7c, 0xec, 0x25, 0xb7, 0x00, 0xe2, 0xfd, 0x3b, 0xa5, 0x80, 0x7c, - 0x0b, 0xe0, 0xbe, 0xef, 0x52, 0x71, 0x9b, 0x3f, 0x7f, 0xd4, 0xc6, 0xfd, 0x8b, 0x62, 0xe3, 0x2e, - 0xde, 0xac, 0x3b, 0xec, 0x57, 0x66, 0x3b, 0xbe, 0x4b, 0x07, 0x5f, 0xa8, 0x50, 0x38, 0x92, 0xaf, - 0xc0, 0x98, 0xd5, 0x6b, 0x51, 0xf9, 0x02, 0xc1, 0xa4, 0xb4, 0x91, 0xbd, 0x16, 0x4d, 0xcc, 0x6b, - 0xd0, 0x4b, 0xc7, 0x6b, 0x19, 0x80, 0x7c, 0x00, 0x70, 0xb7, 0xd7, 0xa0, 0x77, 0x02, 0xbf, 0xd7, - 0x95, 0x57, 0x1c, 0x71, 0xbb, 0xb0, 0x17, 0xbf, 0xe3, 0x60, 0xef, 0x60, 0xa1, 0x5a, 0x79, 0x42, - 0x42, 0x36, 0xd8, 0xae, 0x18, 0x87, 0x49, 0xc4, 0x43, 0x5f, 0xc8, 0xda, 0x89, 0x2b, 0xb6, 0x5a, - 0x3c, 0x09, 0x80, 0x60, 0x7d, 0x73, 0xcc, 0xb7, 0x3b, 0xef, 0x42, 0x89, 0xb1, 0x67, 0x5b, 0x9a, - 0x50, 0xcc, 0x51, 0xbc, 0xc1, 0xab, 0x34, 0x88, 0x6d, 0x7f, 0xb4, 0xe7, 0x3a, 0x62, 0x02, 0xf2, - 0x0d, 0x28, 0x55, 0xbb, 0x5d, 0x21, 0xea, 0x23, 0x03, 0x3a, 0xd7, 0x06, 0x44, 0x7d, 0xc1, 0xe9, - 0x76, 0x33, 0xde, 0x02, 0x89, 0xf9, 0x91, 0x9d, 0xf8, 0x96, 0x48, 0xfc, 0xb4, 0xd1, 0x11, 0x15, - 0xbc, 0x32, 0x50, 0xc1, 0x9c, 0x4c, 0xd0, 0x1f, 0x7c, 0xcb, 0x48, 0xe3, 0x4b, 0xba, 0x50, 0x4e, - 0xde, 0xd1, 0x10, 0x75, 0xc1, 0x51, 0x75, 0xbd, 0x36, 0x50, 0x97, 0x3a, 0x80, 0x03, 0xd5, 0x0d, - 0x70, 0x27, 0x2e, 0xcc, 0xc8, 0x97, 0x99, 0x44, 0x7d, 0x93, 0x47, 0xd5, 0xf7, 0xf2, 0x40, 0x7d, - 0xe7, 0xdd, 0xc6, 0x60, 0x3d, 0x29, 0x9e, 0xe4, 0x5d, 0x98, 0x96, 0x10, 0x9c, 0x1f, 0x18, 0x48, - 0x11, 0x7e, 0x94, 0xdb, 0xc0, 0xc4, 0x14, 0xfd, 0xdd, 0x0a, 0x15, 0x59, 0xa5, 0xe6, 0xda, 0x31, - 0xad, 0x51, 0xa7, 0xb5, 0x42, 0x47, 0x26, 0x5f, 0x87, 0xc9, 0xb5, 0x36, 0xeb, 0x88, 0xdf, 0x71, - 0x22, 0x3a, 0x37, 0x83, 0xdd, 0x93, 0xc1, 0x29, 0xa5, 0x44, 0x51, 0x55, 0xfe, 0xaa, 0x50, 0x52, - 0xa4, 0x1a, 0x4d, 0x85, 0x82, 0x09, 0x8f, 0x6f, 0x73, 0x85, 0x0e, 0x87, 0x73, 0x67, 0x91, 0xfb, - 0xf3, 0x19, 0x01, 0x22, 0x85, 0x3d, 0x1a, 0x76, 0xbe, 0x7b, 0xb6, 0xc5, 0x84, 0xd0, 0x84, 0xa7, - 0xf3, 0x34, 0xff, 0x67, 0x1e, 0x2e, 0x0d, 0x99, 0x54, 0xc9, 0x09, 0x8d, 0x71, 0xec, 0x09, 0xcd, - 0x37, 0x99, 0x12, 0x3b, 0x5e, 0x3b, 0xdc, 0xf2, 0x93, 0xb8, 0x74, 0x12, 0xcc, 0xc2, 0x32, 0x79, - 0x57, 0x59, 0xde, 0xab, 0xbd, 0xdc, 0x44, 0x0a, 0x3b, 0xf2, 0x07, 0x42, 0x07, 0x3a, 0xb3, 0x81, - 0x33, 0x92, 0xfc, 0x2f, 0xc9, 0x19, 0x89, 0x1e, 0x99, 0x2c, 0x3c, 0xd5, 0xc8, 0x64, 0x76, 0xac, - 0x64, 0xec, 0xb3, 0x44, 0x84, 0xfe, 0x43, 0xea, 0x54, 0xe6, 0x97, 0x71, 0xa8, 0x6f, 0xc0, 0xd8, - 0xa3, 0x5d, 0x1a, 0xc8, 0x24, 0x33, 0x6c, 0xc8, 0x63, 0x06, 0x50, 0x1b, 0x82, 0x18, 0xe6, 0x5f, - 0x82, 0x29, 0xb5, 0x32, 0x52, 0x81, 0x31, 0xfc, 0x2d, 0x36, 0x5a, 0x78, 0x26, 0x82, 0xf5, 0x5a, - 0x1c, 0x7e, 0xec, 0xcb, 0x24, 0x89, 0x14, 0xf2, 0xc7, 0x49, 0xc1, 0xfc, 0xb7, 0x06, 0x14, 0xd8, - 0x62, 0x47, 0xde, 0x84, 0x92, 0xdc, 0x31, 0xab, 0x57, 0x32, 0xcf, 0xcb, 0x0d, 0x75, 0xa8, 0x1f, - 0x6b, 0x09, 0x20, 0xab, 0xea, 0x21, 0x0d, 0x1a, 0xda, 0xe9, 0xe7, 0x3e, 0x03, 0xa8, 0x55, 0x21, - 0xc6, 0x09, 0x44, 0x82, 0x27, 0xbc, 0xc2, 0xcd, 0x2b, 0x20, 0x5f, 0x7e, 0xc2, 0x3b, 0xe0, 0xde, - 0x49, 0x2c, 0xf3, 0xc7, 0x06, 0xcc, 0x66, 0x9a, 0x29, 0x56, 0x2b, 0xb7, 0x87, 0x8a, 0x46, 0xa4, - 0x8d, 0x21, 0xc7, 0x38, 0xc9, 0x49, 0xee, 0x09, 0x86, 0xf7, 0x0b, 0x50, 0x8a, 0xf7, 0x28, 0x6c, - 0xa3, 0xcd, 0x87, 0x0e, 0xb7, 0x55, 0xf2, 0x25, 0x19, 0xb6, 0xc9, 0x66, 0x4d, 0x38, 0xb5, 0x09, - 0xa6, 0xd9, 0x9b, 0x6c, 0xd6, 0xa5, 0x91, 0xd2, 0x4a, 0x7f, 0x32, 0x0e, 0x90, 0x20, 0x93, 0x06, - 0xcc, 0x6c, 0xac, 0x2d, 0x2f, 0xad, 0xb9, 0xb4, 0x13, 0x61, 0xb0, 0x37, 0x75, 0x8d, 0x75, 0xe5, - 0x49, 0x44, 0x83, 0x8e, 0xd3, 0x12, 0x08, 0x07, 0xc9, 0xf4, 0xf4, 0x3d, 0xb7, 0x69, 0x7b, 0x31, - 0x9d, 0xba, 0x5e, 0xe8, 0x1c, 0x59, 0x1d, 0xf5, 0xea, 0xbd, 0x75, 0xa5, 0x8e, 0xdc, 0x88, 0x75, - 0x84, 0x4e, 0xbb, 0x35, 0xa4, 0x0e, 0x9d, 0x23, 0xd9, 0x85, 0xf2, 0x1d, 0xb4, 0xdd, 0x4a, 0x2d, - 0xf9, 0xa3, 0x6b, 0x79, 0x51, 0xd4, 0xf2, 0x1c, 0x37, 0xfa, 0xd9, 0xf5, 0x0c, 0x70, 0x4d, 0x34, - 0xb7, 0x70, 0xac, 0xe6, 0xfe, 0x75, 0x03, 0xc6, 0xf9, 0xe2, 0x20, 0x46, 0x6b, 0xc8, 0xf2, 0xf3, - 0xe8, 0xe9, 0x2c, 0x3f, 0xe5, 0x08, 0xff, 0x53, 0xf7, 0x07, 0xbc, 0x8c, 0x2c, 0xc3, 0x78, 0x3d, - 0x72, 0xa2, 0x9e, 0x4c, 0x15, 0x90, 0x91, 0x14, 0xdc, 0x3e, 0xf0, 0x92, 0xe4, 0x3c, 0x3c, 0xc4, - 0xdf, 0x2a, 0x17, 0x8e, 0xa1, 0x3e, 0x43, 0x3e, 0xf1, 0x19, 0x9f, 0x21, 0x5f, 0x87, 0x92, 0x38, - 0xe0, 0xad, 0x1d, 0x08, 0xef, 0x58, 0x06, 0x19, 0x62, 0xb8, 0xf2, 0x34, 0x1e, 0x07, 0xd9, 0x0d, - 0xed, 0x09, 0x9f, 0x18, 0x91, 0x6c, 0x40, 0x29, 0x49, 0xf4, 0x2c, 0x69, 0xe1, 0xf0, 0x18, 0x2e, - 0x32, 0xa0, 0xf8, 0x8d, 0x8a, 0xcc, 0x64, 0xd8, 0x84, 0x87, 0xf9, 0x3d, 0x03, 0xca, 0x69, 0x7d, - 0x61, 0xfb, 0xd9, 0x38, 0x41, 0x39, 0x3e, 0x66, 0xc2, 0xfd, 0x6c, 0x92, 0xd1, 0xac, 0x1d, 0x38, - 0xa9, 0xe8, 0x64, 0x11, 0x8a, 0x6c, 0xda, 0x75, 0x92, 0x17, 0x67, 0xd0, 0x9e, 0xf4, 0x04, 0x4c, - 0x0d, 0xef, 0x4a, 0x3c, 0x35, 0x19, 0x3c, 0x07, 0x93, 0xca, 0x60, 0x91, 0x1b, 0x50, 0x5c, 0x0b, - 0xd7, 0xfd, 0xe6, 0x1e, 0x75, 0x45, 0xd4, 0x08, 0x5f, 0x99, 0xf7, 0x42, 0xbb, 0x85, 0x40, 0x2b, - 0x2e, 0x66, 0x3b, 0x5e, 0xfe, 0x9f, 0xbc, 0x59, 0x92, 0x4b, 0x76, 0xbc, 0x1c, 0x59, 0xde, 0x29, - 0x51, 0x57, 0x58, 0x8d, 0x84, 0x7c, 0x0c, 0xc0, 0x01, 0x6c, 0x7c, 0x47, 0xc8, 0xef, 0x92, 0x13, - 0x78, 0x56, 0x54, 0x10, 0x79, 0x6a, 0x0f, 0x51, 0x15, 0x14, 0x86, 0xf8, 0x0c, 0xb6, 0xdf, 0xdc, - 0x1b, 0xfd, 0x8d, 0xfb, 0xe4, 0x19, 0x6c, 0xbf, 0xb9, 0x67, 0x67, 0x1f, 0xf6, 0xab, 0x2c, 0xcd, - 0xff, 0x6c, 0x28, 0x0a, 0x47, 0xee, 0x43, 0x29, 0x1e, 0x1a, 0x11, 0x5b, 0x8c, 0x5d, 0x11, 0x09, - 0xb7, 0xe8, 0x76, 0xed, 0x39, 0x11, 0x4e, 0x39, 0x1f, 0x0f, 0xb0, 0xa6, 0x7f, 0x12, 0x48, 0xbe, - 0x0a, 0x05, 0x14, 0xcc, 0xf1, 0x4f, 0x6c, 0x48, 0xc3, 0x5e, 0x60, 0x12, 0xc1, 0x66, 0x22, 0x25, - 0x79, 0x5d, 0x1c, 0xad, 0xe5, 0xb5, 0xc7, 0xeb, 0x18, 0x88, 0xb5, 0x23, 0xb6, 0xe8, 0x49, 0x36, - 0x87, 0xa2, 0x1b, 0x7f, 0xd5, 0x80, 0xf3, 0x0f, 0x16, 0x6f, 0x5b, 0x74, 0xc7, 0x0b, 0x23, 0x1e, - 0xd5, 0x62, 0x1b, 0x0e, 0x72, 0x19, 0xf2, 0x96, 0xf3, 0x58, 0x3c, 0x85, 0x85, 0x39, 0x9a, 0x81, - 0xf3, 0xd8, 0x62, 0x30, 0xf2, 0x2a, 0x94, 0xee, 0xd2, 0x83, 0x55, 0xa7, 0xe3, 0xb6, 0xa8, 0x78, - 0xf2, 0x0a, 0xef, 0x6d, 0xef, 0xd1, 0x03, 0x7b, 0x17, 0xa1, 0x56, 0x82, 0x80, 0x41, 0xfd, 0x5e, - 0xe3, 0x2e, 0xe5, 0xb1, 0xcf, 0x29, 0x11, 0xd4, 0xef, 0x35, 0x30, 0x5b, 0x90, 0x97, 0x98, 0xff, - 0x35, 0x07, 0xe5, 0xf4, 0x5c, 0x23, 0x1f, 0xc0, 0x94, 0xcc, 0x42, 0x5c, 0x75, 0xc2, 0x5d, 0xd1, - 0x14, 0x7c, 0xb6, 0xb1, 0x2b, 0xe0, 0xf6, 0xae, 0xa3, 0xbd, 0xde, 0xa2, 0x11, 0xb0, 0x35, 0x78, - 0x4b, 0x64, 0x2a, 0x2a, 0x73, 0x26, 0xf2, 0xa3, 0x6e, 0xea, 0x55, 0x2e, 0x89, 0x46, 0x5c, 0x38, - 0x9b, 0x92, 0x45, 0xac, 0xae, 0xf1, 0x05, 0x82, 0xb4, 0xa4, 0xf8, 0xb6, 0xbe, 0xb7, 0xb8, 0x6d, - 0x07, 0x4a, 0x89, 0x9a, 0xdb, 0x9e, 0x22, 0x22, 0x6f, 0x03, 0x3c, 0x58, 0xbc, 0x8d, 0xd7, 0xc4, - 0x68, 0x20, 0x52, 0xdd, 0x70, 0x8f, 0xc6, 0x98, 0x34, 0x39, 0x58, 0xf5, 0xd1, 0x13, 0x64, 0xf2, - 0x26, 0xe4, 0xf9, 0x95, 0x84, 0xbc, 0x62, 0xf3, 0xee, 0xdd, 0xae, 0xf2, 0x54, 0x6e, 0x7e, 0xce, - 0xa1, 0x07, 0x8c, 0x18, 0xbe, 0xf9, 0x7f, 0x72, 0x50, 0x8a, 0xb1, 0x08, 0x01, 0xf4, 0x54, 0xc4, - 0xb1, 0x02, 0xfe, 0x4f, 0x2e, 0x43, 0x51, 0x3a, 0x27, 0xe2, 0x68, 0x61, 0x22, 0x14, 0x8e, 0xc9, - 0x1c, 0x48, 0x2f, 0x84, 0x3b, 0x26, 0x96, 0xfc, 0x49, 0x6e, 0x41, 0xec, 0x62, 0x0c, 0xf3, 0x45, - 0x0a, 0x4c, 0xf9, 0xac, 0x18, 0x8d, 0xcc, 0x40, 0xce, 0xe3, 0xc9, 0x6c, 0x25, 0x2b, 0xe7, 0xb9, - 0xe4, 0x03, 0x28, 0x3a, 0xae, 0x4b, 0x5d, 0xdb, 0x89, 0x46, 0xf8, 0x9c, 0x41, 0x91, 0x71, 0xe3, - 0x6b, 0x01, 0x52, 0x55, 0x23, 0x52, 0x85, 0x12, 0xbe, 0x66, 0xdf, 0x0b, 0x47, 0x7a, 0x02, 0x3f, - 0xe1, 0x50, 0x64, 0x64, 0x0f, 0x42, 0xea, 0x92, 0x2f, 0x42, 0x81, 0x29, 0x85, 0x58, 0x49, 0xe2, - 0xf7, 0x7e, 0x36, 0xb6, 0x36, 0xb9, 0xc0, 0x56, 0xcf, 0x58, 0x88, 0x40, 0x5e, 0x82, 0x7c, 0x6f, - 0x71, 0x5b, 0xac, 0x11, 0xe5, 0x44, 0x25, 0x62, 0x34, 0x56, 0x5c, 0x2b, 0xc2, 0x38, 0xcf, 0xbd, - 0x37, 0x5f, 0x00, 0x48, 0xb8, 0x0c, 0x1e, 0xe6, 0x98, 0x1f, 0x43, 0x29, 0xa6, 0x26, 0xcf, 0x83, - 0x32, 0x81, 0xb8, 0xb2, 0x5b, 0xa5, 0xbd, 0x78, 0x1a, 0x5d, 0x82, 0x89, 0x2e, 0x1b, 0x20, 0xf9, - 0xca, 0x9c, 0xc5, 0xe6, 0x10, 0xd3, 0xd9, 0x39, 0x98, 0x10, 0x3a, 0xc3, 0x73, 0x2c, 0x2d, 0xf9, - 0xd3, 0xec, 0xc0, 0x94, 0x6a, 0x90, 0x8e, 0xb9, 0xfa, 0x73, 0x11, 0xd3, 0x1f, 0xf8, 0x44, 0x19, - 0x3f, 0xec, 0x57, 0x72, 0x9e, 0x8b, 0x49, 0x0f, 0xd7, 0xa1, 0x28, 0x17, 0x31, 0xf5, 0x0d, 0x5b, - 0xe1, 0xef, 0x1c, 0x58, 0x71, 0xa9, 0xf9, 0x45, 0x98, 0x10, 0x36, 0xe7, 0xe8, 0x07, 0x1b, 0xcd, - 0xef, 0xe6, 0xe0, 0xac, 0x45, 0x99, 0x16, 0x89, 0xd7, 0x61, 0x9f, 0xb1, 0xa7, 0xe9, 0xb4, 0xbe, - 0x1d, 0x71, 0x0f, 0xf0, 0xa7, 0x06, 0x9c, 0xcf, 0xc0, 0xfd, 0x54, 0x8f, 0x94, 0xbc, 0x05, 0xa5, - 0x65, 0xcf, 0x69, 0x55, 0x5d, 0x37, 0x4e, 0xe3, 0x40, 0x67, 0xc5, 0xf5, 0x98, 0xaf, 0xc2, 0xa0, - 0xea, 0xea, 0x13, 0xa3, 0x92, 0x57, 0x84, 0x52, 0xe4, 0x63, 0xb1, 0xca, 0xc7, 0xef, 0x80, 0xb7, - 0x29, 0x79, 0xfa, 0xce, 0xfc, 0x51, 0x0e, 0x08, 0x07, 0x26, 0x91, 0xfa, 0x53, 0x3b, 0x74, 0x1f, - 0x68, 0x43, 0x27, 0x63, 0x5c, 0xe9, 0xee, 0x8d, 0xb4, 0x2b, 0xfa, 0x5e, 0x0e, 0x2e, 0x66, 0x13, - 0x7e, 0xda, 0xf7, 0x66, 0xf0, 0x9a, 0xa3, 0xf2, 0xbe, 0x20, 0xae, 0xaf, 0xfc, 0x4e, 0x24, 0xe2, - 0x27, 0x08, 0x64, 0x1b, 0xa6, 0xd7, 0x9d, 0x30, 0x5a, 0xa5, 0x4e, 0x10, 0x35, 0xa8, 0x13, 0x8d, - 0xe0, 0x60, 0xc5, 0xdf, 0xb2, 0x40, 0xcb, 0xb9, 0x2b, 0x29, 0xd3, 0xdf, 0xb2, 0xd0, 0xd8, 0xc6, - 0x8a, 0x52, 0x18, 0x41, 0x51, 0xbe, 0x03, 0x67, 0xeb, 0xb4, 0xed, 0x74, 0x77, 0xfd, 0x80, 0x8a, - 0x44, 0x86, 0x05, 0x98, 0x8e, 0x41, 0x99, 0xda, 0xa2, 0x17, 0x6b, 0xf8, 0x8a, 0x20, 0x12, 0x53, - 0xa2, 0x17, 0x9b, 0xbf, 0x9f, 0x83, 0x4b, 0xd5, 0xa6, 0x38, 0x1b, 0x11, 0x05, 0x32, 0x16, 0xff, - 0x39, 0xd7, 0x4d, 0x6e, 0x42, 0xe9, 0x9e, 0xf3, 0x04, 0xbf, 0xb7, 0x14, 0x8a, 0x8b, 0xe2, 0x7c, - 0x25, 0x76, 0x9e, 0xd8, 0x71, 0x54, 0xc6, 0x4a, 0x70, 0x9e, 0xe6, 0x27, 0x99, 0x4c, 0x18, 0x5f, - 0xf5, 0x5b, 0x2e, 0x0d, 0xc4, 0x9d, 0x6f, 0x74, 0xaf, 0x76, 0x11, 0x62, 0x89, 0x12, 0xf3, 0x4f, - 0x0d, 0x98, 0x89, 0x5b, 0x8c, 0x4d, 0xf8, 0xdc, 0x45, 0x92, 0xfa, 0x38, 0x55, 0x69, 0x84, 0x8f, - 0x53, 0x8d, 0x7d, 0x36, 0x49, 0x98, 0xff, 0xc0, 0x80, 0x73, 0x7a, 0x2f, 0xd9, 0x4a, 0xa4, 0x34, - 0xc4, 0x18, 0xb1, 0x21, 0xb9, 0xa7, 0x36, 0x24, 0xf9, 0xa1, 0x43, 0xf2, 0x5b, 0x39, 0x98, 0x8c, - 0x1b, 0x7b, 0x6a, 0x93, 0xc8, 0x7e, 0x55, 0xb3, 0xa1, 0x17, 0xe3, 0xfb, 0xf0, 0xa2, 0x5f, 0x23, - 0xe5, 0x90, 0xd5, 0x15, 0x5b, 0x21, 0x52, 0xb5, 0xbe, 0x0a, 0xe3, 0x62, 0x32, 0xe9, 0x69, 0xee, - 0x03, 0xa3, 0x5b, 0x9b, 0x11, 0xac, 0xc7, 0x71, 0x40, 0x43, 0x4b, 0xd0, 0x61, 0x92, 0xde, 0x23, - 0xda, 0x10, 0xa7, 0xa4, 0xa7, 0x76, 0x8d, 0xca, 0x4e, 0xd2, 0x4b, 0x3a, 0x36, 0xd2, 0xea, 0xf4, - 0x67, 0x79, 0x28, 0xa7, 0x49, 0x8e, 0xbf, 0xa0, 0xb7, 0xd9, 0x6b, 0x88, 0xbd, 0x1d, 0x6e, 0xfe, - 0xba, 0xbd, 0x86, 0xc5, 0x60, 0xe4, 0x1a, 0x14, 0x36, 0x03, 0x6f, 0x5f, 0x6c, 0xe6, 0x30, 0x21, - 0xad, 0x1b, 0x78, 0xfb, 0x6a, 0xb6, 0x0a, 0x2b, 0xc7, 0xcd, 0xd7, 0x7a, 0x5d, 0xf9, 0x20, 0x0c, - 0xdf, 0x7c, 0xb5, 0xc2, 0xf4, 0xc5, 0x65, 0x89, 0xc6, 0x96, 0xca, 0x1a, 0x75, 0x02, 0x1a, 0xf0, - 0xe7, 0x21, 0xc7, 0x92, 0xa5, 0xb2, 0x81, 0x60, 0xfe, 0xe6, 0x9d, 0xa5, 0x22, 0x91, 0x16, 0x10, - 0xe5, 0xe7, 0xe8, 0xdf, 0x45, 0x93, 0x9f, 0x65, 0xb9, 0xa0, 0xb2, 0xb6, 0xd5, 0xd9, 0x9c, 0xc1, - 0xf7, 0x69, 0x86, 0xb0, 0x36, 0xa1, 0x84, 0x11, 0x19, 0xdc, 0xf9, 0x17, 0x8f, 0x65, 0x26, 0x33, - 0x83, 0x00, 0x0f, 0xf1, 0xed, 0x78, 0xff, 0x9f, 0x30, 0x31, 0x5f, 0x57, 0x47, 0x59, 0x2c, 0xba, - 0x47, 0x8e, 0xb2, 0xf9, 0x7b, 0xe8, 0x86, 0xb7, 0xfd, 0x88, 0x0a, 0xef, 0xe3, 0xd4, 0xda, 0xa1, - 0x24, 0x42, 0x39, 0xa6, 0x9d, 0x87, 0x6a, 0xbd, 0xe3, 0x18, 0x0f, 0xdf, 0x48, 0x8c, 0x06, 0x8f, - 0x55, 0xca, 0x08, 0xa5, 0x32, 0x65, 0xfe, 0xbe, 0x01, 0xb3, 0x99, 0xb4, 0x64, 0x01, 0x20, 0xf1, - 0xf1, 0x84, 0x94, 0xf8, 0xa3, 0x75, 0x31, 0xd4, 0x52, 0x30, 0xc8, 0x37, 0xd3, 0xde, 0xd9, 0xf1, - 0x8b, 0x8b, 0x7c, 0x59, 0x79, 0x46, 0xf7, 0xce, 0x32, 0x7c, 0x32, 0xf3, 0xa7, 0x79, 0x38, 0x37, - 0xf0, 0xa5, 0x8a, 0x63, 0x5e, 0xcb, 0xdf, 0x4b, 0x7d, 0xef, 0x81, 0x47, 0xd3, 0x5f, 0x19, 0xf6, - 0x9d, 0x8c, 0x8c, 0xaf, 0x3f, 0x60, 0x08, 0x46, 0xbc, 0x43, 0x79, 0xcc, 0x47, 0x20, 0xc2, 0xf4, - 0x47, 0x20, 0x78, 0x54, 0xfd, 0x57, 0x86, 0xd6, 0xf6, 0x14, 0x3e, 0xa1, 0xf4, 0x4b, 0xfc, 0x41, - 0x85, 0xef, 0xe6, 0x00, 0x1e, 0xd1, 0xc6, 0xe9, 0xbe, 0x45, 0xfe, 0x65, 0x6d, 0x51, 0x9a, 0x4d, - 0x16, 0xa5, 0xd1, 0xef, 0x8e, 0x6f, 0xe0, 0x23, 0x43, 0xa3, 0x5f, 0x18, 0x8f, 0xdf, 0x0c, 0xce, - 0x65, 0xbf, 0x19, 0x6c, 0x36, 0xe0, 0xc2, 0x1d, 0x1a, 0x25, 0xf6, 0x4f, 0x7a, 0xfe, 0x47, 0xb3, - 0x7d, 0x15, 0x4a, 0x02, 0x5f, 0x7f, 0x80, 0x52, 0xa6, 0x5e, 0x79, 0xae, 0x95, 0x20, 0x98, 0x14, - 0x2e, 0x2d, 0xd3, 0x16, 0x8d, 0xe8, 0xe7, 0x5b, 0x4d, 0x1d, 0x08, 0xef, 0x0a, 0xf6, 0x6c, 0xb4, - 0x1a, 0x8e, 0x95, 0xcf, 0x43, 0x98, 0x8d, 0xdb, 0xfe, 0x34, 0xf9, 0xde, 0x64, 0x2b, 0x88, 0xc8, - 0xe3, 0x4e, 0x38, 0x1e, 0x11, 0xfa, 0x79, 0x02, 0xf3, 0x92, 0xe0, 0x91, 0x17, 0xc7, 0x7a, 0x47, - 0xa2, 0x25, 0xef, 0xc2, 0xa4, 0x42, 0x23, 0x2e, 0x85, 0xe0, 0x11, 0xca, 0x63, 0x2f, 0xda, 0xb5, - 0x43, 0x0e, 0x57, 0x8f, 0x50, 0x14, 0x74, 0xf3, 0x1b, 0xf8, 0x06, 0x00, 0xdf, 0x8b, 0x65, 0x54, - 0x9d, 0x62, 0x6e, 0x9c, 0x8c, 0xf9, 0xfd, 0xa4, 0x5b, 0x6b, 0x9d, 0x38, 0x67, 0x4e, 0xf2, 0x26, - 0x6a, 0xb7, 0x44, 0x67, 0xae, 0x0c, 0x7c, 0x73, 0x56, 0xf9, 0xd8, 0xac, 0xf9, 0x8e, 0xd2, 0xd8, - 0x0c, 0x86, 0x1a, 0xb1, 0x91, 0x26, 0xfe, 0x6e, 0x0e, 0xce, 0x6e, 0xac, 0x2d, 0x2f, 0xc5, 0xc1, - 0xbf, 0x67, 0x2c, 0xbc, 0xa6, 0xf5, 0xed, 0x88, 0xf0, 0xda, 0x03, 0x38, 0x9f, 0x12, 0x03, 0xbe, - 0x94, 0xfd, 0x3e, 0x3f, 0xb4, 0x8e, 0xc1, 0x72, 0x97, 0x71, 0x31, 0x8b, 0xfd, 0xc3, 0x45, 0x2b, - 0x85, 0x6d, 0xfe, 0x74, 0x3c, 0xc5, 0x37, 0xfe, 0x8c, 0x44, 0x69, 0x2d, 0x0c, 0x7b, 0x34, 0x78, - 0x60, 0xad, 0xab, 0x9e, 0x81, 0x87, 0x40, 0xbb, 0x17, 0xb4, 0xac, 0x04, 0x81, 0xdc, 0x80, 0xa2, - 0xc8, 0x1d, 0x5e, 0x56, 0xbf, 0xf4, 0x1c, 0xa7, 0x1e, 0x5b, 0x71, 0x31, 0x79, 0x13, 0xa6, 0xf8, - 0xff, 0x5c, 0xdb, 0x84, 0xc0, 0x31, 0xc2, 0x20, 0xd0, 0xb9, 0x76, 0x5a, 0x1a, 0x1a, 0xf3, 0xa7, - 0xe5, 0xa7, 0x78, 0x58, 0x8b, 0x0a, 0x89, 0x3f, 0x2d, 0xbf, 0xda, 0x83, 0x6d, 0x52, 0x91, 0xc8, - 0x2b, 0x90, 0xaf, 0x2e, 0x59, 0xea, 0xf3, 0x71, 0x4e, 0x33, 0xe0, 0xcf, 0x25, 0x6a, 0xaf, 0xdd, - 0x57, 0x97, 0x2c, 0xb2, 0x88, 0x9f, 0x8d, 0xdc, 0xf7, 0xd8, 0x46, 0x77, 0x3c, 0xd1, 0x9a, 0xae, - 0x80, 0xa9, 0x67, 0x92, 0x12, 0x8f, 0xdc, 0x84, 0x89, 0x65, 0x2f, 0xec, 0xb6, 0x9c, 0x03, 0x71, - 0xe1, 0x15, 0xd3, 0x45, 0x5c, 0x0e, 0x52, 0xf5, 0x4c, 0x60, 0xe1, 0xe7, 0x82, 0x9b, 0x7e, 0x97, - 0xf9, 0xc8, 0xf1, 0x79, 0x79, 0xc8, 0x00, 0xda, 0xad, 0x39, 0x06, 0xc0, 0xeb, 0x2c, 0x3c, 0x2b, - 0xb7, 0xa4, 0x5c, 0x67, 0x49, 0x67, 0xe3, 0x0a, 0x9c, 0xc1, 0xa4, 0x22, 0x78, 0x9a, 0x49, 0x45, - 0x0d, 0xb8, 0x74, 0x07, 0x1d, 0xbc, 0x3a, 0x0d, 0xf0, 0x91, 0x9d, 0x26, 0x06, 0xe5, 0x1f, 0x58, - 0x6b, 0x22, 0x13, 0xf9, 0xfa, 0x61, 0xbf, 0xf2, 0x12, 0xf7, 0x01, 0xf1, 0x53, 0xb2, 0xf8, 0x54, - 0x0f, 0x47, 0x4a, 0x3d, 0x85, 0x3a, 0x8c, 0x11, 0xf9, 0x1a, 0x5c, 0xc8, 0x2a, 0x12, 0x39, 0xc9, - 0xf8, 0x06, 0x50, 0x76, 0x05, 0xea, 0x15, 0xd1, 0x2c, 0x0e, 0x64, 0x1d, 0xca, 0x1c, 0x5e, 0x75, - 0xdb, 0x5e, 0x67, 0xa5, 0xed, 0x78, 0x2d, 0xcc, 0x50, 0x16, 0x69, 0xe6, 0x82, 0xab, 0xc3, 0x0a, - 0x6d, 0xca, 0x4a, 0xb5, 0x94, 0x87, 0x14, 0x25, 0x9a, 0xa3, 0x7a, 0xf5, 0xde, 0xfa, 0xb3, 0x6a, - 0x8e, 0xb4, 0xbe, 0x1d, 0x6d, 0x8e, 0x52, 0x62, 0x90, 0xe6, 0x48, 0x03, 0xa7, 0xcd, 0x51, 0x8a, - 0xc6, 0x4a, 0x61, 0x9b, 0xff, 0x69, 0x3c, 0xc5, 0x57, 0x98, 0x23, 0x13, 0xc6, 0xb9, 0xb5, 0x51, - 0x5f, 0xc4, 0xe0, 0xb6, 0xc8, 0x12, 0x25, 0x6c, 0x9f, 0x5f, 0xaf, 0x6f, 0xa8, 0x0f, 0xf1, 0x84, - 0xa1, 0x6f, 0x31, 0x18, 0x1b, 0x21, 0xdc, 0xbc, 0xe7, 0x93, 0x11, 0x62, 0x1b, 0x77, 0xf1, 0xad, - 0xa6, 0x97, 0x93, 0x79, 0x5c, 0x48, 0xe4, 0x2d, 0xe6, 0x71, 0x32, 0x7b, 0x97, 0x60, 0xae, 0x1a, - 0x86, 0x34, 0x88, 0xf8, 0xeb, 0x95, 0x61, 0xaf, 0x4d, 0x03, 0xa1, 0x6b, 0xc2, 0xc6, 0x60, 0xa5, - 0x4e, 0x33, 0xb4, 0x86, 0x22, 0x92, 0xeb, 0x50, 0xac, 0xf6, 0x5c, 0x8f, 0x76, 0x9a, 0x54, 0xd8, - 0x19, 0x0c, 0xe1, 0x39, 0x02, 0x66, 0xc5, 0xa5, 0xe4, 0x23, 0x98, 0x15, 0x44, 0xd2, 0xe0, 0x08, - 0x09, 0x70, 0x5b, 0xc3, 0xf7, 0x2d, 0x62, 0x2e, 0x48, 0x33, 0x65, 0x0b, 0x91, 0x64, 0x53, 0x92, - 0x2a, 0x94, 0x57, 0xf0, 0x74, 0x4b, 0x7e, 0xb1, 0xcd, 0x0f, 0xc4, 0xa3, 0x66, 0x68, 0xb9, 0xf8, - 0xc9, 0x97, 0xed, 0xc6, 0x85, 0xd6, 0x00, 0x3a, 0xb9, 0x0b, 0xe7, 0xd3, 0x30, 0x66, 0x8f, 0x4b, - 0xc9, 0x47, 0xe2, 0x06, 0xb8, 0xa0, 0x61, 0xce, 0xa2, 0x22, 0x0d, 0x38, 0x57, 0x8d, 0xa2, 0xc0, - 0x6b, 0xf4, 0x22, 0x9a, 0x32, 0x5d, 0x32, 0x3c, 0x14, 0x97, 0x4b, 0xf3, 0xf5, 0x9c, 0x50, 0xc6, - 0xf3, 0x4e, 0x4c, 0x19, 0x9b, 0x30, 0x6b, 0x90, 0x1d, 0x71, 0xe3, 0x8f, 0xb2, 0x88, 0x0f, 0x97, - 0x88, 0x24, 0x6a, 0x19, 0x86, 0xab, 0x86, 0x07, 0xed, 0x36, 0x8d, 0x02, 0xfc, 0x02, 0x16, 0x7e, - 0xd8, 0xc4, 0x14, 0xa9, 0x0e, 0xf3, 0xca, 0xb7, 0x88, 0xf0, 0xe3, 0x35, 0x5a, 0xce, 0x95, 0xc6, - 0x53, 0x5b, 0x3e, 0xa6, 0x46, 0x5c, 0x3e, 0x5a, 0x70, 0x6e, 0xa5, 0xd3, 0x0c, 0x0e, 0xf0, 0xca, - 0x90, 0x6c, 0xdc, 0xf4, 0x31, 0x8d, 0x7b, 0x49, 0x34, 0xee, 0x8a, 0x23, 0x35, 0x2c, 0xab, 0x79, - 0x83, 0x8c, 0xcd, 0x5f, 0x87, 0x72, 0x5a, 0x96, 0x9f, 0xf1, 0x4b, 0x74, 0x27, 0xc9, 0xf7, 0x64, - 0x23, 0x9d, 0xee, 0x0b, 0xb9, 0xa9, 0x7d, 0x6e, 0xcc, 0x48, 0x6e, 0x3c, 0x29, 0x1f, 0x06, 0xd3, - 0x3e, 0x32, 0x26, 0xa7, 0x71, 0x2e, 0x6b, 0x1a, 0x9b, 0xbf, 0x9d, 0x83, 0x73, 0x3c, 0x45, 0x2d, - 0xb1, 0x30, 0xa7, 0x75, 0x5b, 0xfa, 0xbe, 0x66, 0x9c, 0x65, 0x04, 0x28, 0xd5, 0xbb, 0xe1, 0xbb, - 0x53, 0xf3, 0x63, 0x98, 0x1d, 0x10, 0x05, 0x1a, 0xe8, 0x65, 0x99, 0x1c, 0x38, 0x60, 0xa2, 0xe7, - 0xb2, 0x2b, 0x79, 0xf8, 0x86, 0x35, 0x40, 0x61, 0xfe, 0x61, 0x6e, 0x80, 0xbf, 0xd8, 0xfa, 0xaa, - 0x9e, 0xa0, 0x71, 0x32, 0x4f, 0x30, 0xf7, 0xa9, 0x3c, 0xc1, 0xfc, 0x28, 0x9e, 0xe0, 0x47, 0x30, - 0xbd, 0x45, 0x1d, 0xe6, 0xd1, 0x88, 0x9b, 0x44, 0x05, 0xed, 0x53, 0x60, 0xac, 0x4c, 0xda, 0x97, - 0xf8, 0x72, 0x4e, 0xc4, 0x08, 0x98, 0x69, 0xe1, 0x57, 0x8d, 0x2c, 0x9d, 0x83, 0xba, 0x68, 0x8c, - 0x0d, 0x5f, 0x34, 0xcc, 0xef, 0xe5, 0x60, 0x52, 0x61, 0x4f, 0xbe, 0x04, 0x53, 0x1b, 0xc1, 0x8e, - 0xd3, 0xf1, 0xfe, 0xa2, 0xa3, 0x04, 0xdd, 0xb0, 0xf9, 0xbe, 0x02, 0xb7, 0x34, 0x2c, 0x4c, 0x76, - 0xa0, 0x4e, 0x5b, 0x55, 0x7c, 0xd6, 0x3c, 0x0b, 0xa1, 0xca, 0x05, 0xa9, 0xfc, 0x08, 0x17, 0xa4, - 0xf4, 0xdb, 0x45, 0x85, 0x93, 0xdf, 0x2e, 0xd2, 0x2e, 0x03, 0x8d, 0x9d, 0xf0, 0x32, 0x90, 0xf9, - 0xbb, 0x39, 0x28, 0x8b, 0x8f, 0x66, 0xc9, 0x40, 0xed, 0xb3, 0xf5, 0xbe, 0xad, 0xde, 0xb9, 0x23, - 0x0e, 0x35, 0x0a, 0x3f, 0xfe, 0x83, 0x0a, 0x7e, 0x02, 0x29, 0x2d, 0x0e, 0xf9, 0x09, 0x24, 0x1d, - 0x9e, 0x4e, 0x47, 0x4e, 0x53, 0x59, 0x69, 0x7c, 0xf3, 0x67, 0xb9, 0x34, 0x6f, 0xe1, 0x4d, 0xbd, - 0x0c, 0x13, 0xfc, 0xbd, 0x7f, 0x99, 0x31, 0x29, 0xde, 0x05, 0x40, 0x90, 0x25, 0xcb, 0x4e, 0x92, - 0x98, 0x7e, 0xdc, 0x77, 0xb0, 0xc8, 0x5b, 0x30, 0x85, 0xa7, 0xfc, 0x55, 0xd7, 0x0d, 0x68, 0x18, - 0x0a, 0x47, 0x0b, 0x4f, 0x5c, 0x1e, 0xd3, 0x86, 0xcd, 0xb3, 0x01, 0xf0, 0x3b, 0xd5, 0x1a, 0x1e, - 0x59, 0x82, 0x0b, 0x5a, 0x52, 0x89, 0xa4, 0x1f, 0x4b, 0x56, 0x0b, 0xfe, 0xa1, 0x66, 0x4e, 0x9c, - 0x89, 0xfc, 0xf4, 0xbe, 0x01, 0x68, 0xfe, 0x6f, 0x83, 0xcd, 0xb5, 0xe6, 0xde, 0x33, 0x96, 0x32, - 0xcf, 0xba, 0x74, 0x84, 0xb3, 0xff, 0x1f, 0x0d, 0x9e, 0xf4, 0x2a, 0xd4, 0xe7, 0x6d, 0x18, 0xe7, - 0x5f, 0x17, 0x10, 0x09, 0xa3, 0x2a, 0x17, 0x5e, 0x90, 0x9c, 0x4a, 0xf0, 0x6f, 0x14, 0x58, 0x82, - 0x80, 0x6d, 0x99, 0xf5, 0xdc, 0x5b, 0x74, 0x3c, 0x07, 0x93, 0x6e, 0x25, 0x96, 0xfa, 0xe6, 0xd5, - 0x68, 0x6f, 0x29, 0x1a, 0xc7, 0xbf, 0x79, 0x65, 0xfe, 0x0f, 0xd1, 0x1f, 0xd1, 0xa8, 0x51, 0x1f, - 0x73, 0xb9, 0x06, 0x05, 0xa6, 0x07, 0xea, 0x8b, 0x39, 0x4c, 0x57, 0x54, 0x3c, 0x56, 0xce, 0xe6, - 0x0d, 0xda, 0x5a, 0xf5, 0x96, 0x06, 0x9a, 0x63, 0x75, 0xde, 0x20, 0x06, 0xbe, 0x54, 0xe8, 0xbb, - 0x54, 0x9d, 0x0e, 0x1d, 0xfd, 0x51, 0x49, 0x2c, 0x27, 0x6f, 0x29, 0x29, 0x8f, 0x6a, 0x40, 0xa3, - 0xbd, 0xed, 0xd8, 0x3c, 0x3f, 0x4f, 0xb5, 0xb6, 0x31, 0xaa, 0xf9, 0x3a, 0x94, 0xc5, 0x24, 0x88, - 0xef, 0xa6, 0xa0, 0x17, 0xb5, 0xb6, 0x6c, 0xa9, 0x8a, 0xdb, 0xf4, 0xdc, 0xc0, 0x42, 0xa8, 0xf9, - 0x43, 0x03, 0x2e, 0x8b, 0x0f, 0x1e, 0x58, 0x34, 0x64, 0xee, 0x1a, 0x5e, 0x68, 0x11, 0x0f, 0x11, - 0xbc, 0x2b, 0xdf, 0x0f, 0xd0, 0x6d, 0x51, 0xba, 0x8e, 0xda, 0xb4, 0x18, 0xff, 0x31, 0x7c, 0x41, - 0x40, 0xbe, 0x1b, 0xf0, 0xb6, 0x78, 0x37, 0x20, 0x77, 0x34, 0x71, 0xac, 0x82, 0x2e, 0xed, 0xc8, - 0xf7, 0x02, 0x7e, 0x90, 0x83, 0xd9, 0x8c, 0x66, 0x9d, 0xda, 0xf7, 0x21, 0x6a, 0xda, 0x3c, 0x94, - 0x0f, 0xcb, 0x0c, 0x15, 0x7c, 0xd6, 0xb4, 0x7c, 0xe5, 0xe5, 0xf4, 0x37, 0x77, 0xc9, 0x04, 0xe4, - 0xad, 0xea, 0xa3, 0xf2, 0x19, 0x02, 0x30, 0xbe, 0x79, 0x77, 0xa9, 0x7e, 0xeb, 0x56, 0xd9, 0x78, - 0xe5, 0x03, 0x98, 0x52, 0x1f, 0x6b, 0x22, 0x45, 0x28, 0xdc, 0xdf, 0xb8, 0xbf, 0x52, 0x3e, 0x43, - 0x26, 0x61, 0x62, 0x73, 0xe5, 0xfe, 0xf2, 0xda, 0xfd, 0x3b, 0x65, 0x83, 0x4c, 0x41, 0xb1, 0xba, - 0xb9, 0x69, 0x6d, 0x3c, 0x5c, 0x59, 0x2e, 0xe7, 0x18, 0x83, 0xe5, 0x95, 0xfb, 0x6b, 0x2b, 0xcb, - 0xe5, 0x7c, 0xad, 0xfc, 0xc9, 0x9f, 0xbc, 0x70, 0xe6, 0x93, 0x9f, 0xbf, 0x60, 0xfc, 0xec, 0xe7, - 0x2f, 0x18, 0xff, 0xfd, 0xe7, 0x2f, 0x18, 0x8d, 0x71, 0x9c, 0x7c, 0x6f, 0xfc, 0xff, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xb3, 0x75, 0xd3, 0xfd, 0xa6, 0x8e, 0x00, 0x00, + 0xc3, 0x7e, 0xc5, 0x78, 0x4d, 0x15, 0xf7, 0x3b, 0x30, 0xb9, 0x4c, 0xc3, 0x66, 0xe0, 0x75, 0xd9, + 0x54, 0x40, 0x91, 0x97, 0x6a, 0x97, 0x0f, 0xfb, 0x95, 0x59, 0x37, 0x01, 0x2b, 0xdd, 0x50, 0xb1, + 0xc9, 0x1a, 0x8c, 0xaf, 0x3b, 0x0d, 0xda, 0x0a, 0xe7, 0xc6, 0xae, 0xe6, 0xaf, 0x4f, 0x2e, 0x3e, + 0x27, 0x44, 0x27, 0x1b, 0xb8, 0xc0, 0x4b, 0x57, 0x3a, 0x51, 0x70, 0x50, 0xbb, 0x70, 0xd8, 0xaf, + 0x94, 0x5b, 0x08, 0x50, 0xc5, 0xc2, 0x51, 0x48, 0x3d, 0x19, 0xce, 0xf1, 0x63, 0x87, 0xf3, 0xf9, + 0x4f, 0xfa, 0x15, 0x83, 0x89, 0x59, 0x0c, 0x67, 0xc2, 0x4f, 0x1f, 0xd8, 0xab, 0x90, 0x5b, 0x5b, + 0x9e, 0x9b, 0xc0, 0x69, 0x54, 0x3e, 0xec, 0x57, 0xa6, 0xb4, 0x11, 0xc9, 0xad, 0x2d, 0xcf, 0xbf, + 0x0d, 0x93, 0x4a, 0x1b, 0x49, 0x19, 0xf2, 0x7b, 0xf4, 0x80, 0xcb, 0xd3, 0x62, 0xff, 0x92, 0x0b, + 0x30, 0xb6, 0xef, 0xb4, 0x7a, 0x42, 0x80, 0x16, 0xff, 0xf1, 0x95, 0xdc, 0xaf, 0x1a, 0xe6, 0xdf, + 0x2a, 0x40, 0xd1, 0xf2, 0xf9, 0x12, 0x22, 0x37, 0x60, 0xac, 0x1e, 0x39, 0x91, 0x1c, 0x8a, 0xf3, + 0x87, 0xfd, 0xca, 0xd9, 0x90, 0x01, 0x94, 0xfa, 0x38, 0x06, 0x43, 0xdd, 0xdc, 0x75, 0x42, 0x39, + 0x24, 0x88, 0xda, 0x65, 0x00, 0x15, 0x15, 0x31, 0xc8, 0x35, 0x28, 0xdc, 0xf3, 0x5d, 0x2a, 0x46, + 0x85, 0x1c, 0xf6, 0x2b, 0x33, 0x6d, 0xdf, 0x55, 0x11, 0xb1, 0x9c, 0xbc, 0x0a, 0xa5, 0xa5, 0x5e, + 0x10, 0xd0, 0x0e, 0x9b, 0x85, 0x05, 0x44, 0x9e, 0x39, 0xec, 0x57, 0xa0, 0xc9, 0x81, 0x6c, 0xdd, + 0x24, 0x08, 0x4c, 0xd4, 0xf5, 0xc8, 0x09, 0x22, 0xea, 0xce, 0x8d, 0x8d, 0x24, 0x6a, 0xb6, 0x72, + 0xce, 0x85, 0x9c, 0x24, 0x2d, 0x6a, 0xc1, 0x89, 0xac, 0xc2, 0xe4, 0x9d, 0xc0, 0x69, 0xd2, 0x4d, + 0x1a, 0x78, 0xbe, 0x8b, 0x63, 0x98, 0xaf, 0x5d, 0x3b, 0xec, 0x57, 0x2e, 0xee, 0x30, 0xb0, 0xdd, + 0x45, 0x78, 0x42, 0xfd, 0x8b, 0x7e, 0xa5, 0xb8, 0xdc, 0x0b, 0x50, 0x7a, 0x96, 0x4a, 0x4a, 0xfe, + 0x02, 0x1b, 0x92, 0x30, 0x42, 0xd1, 0x52, 0x17, 0x47, 0xef, 0xe8, 0x26, 0x9a, 0xa2, 0x89, 0x17, + 0x5b, 0x4e, 0x18, 0xd9, 0x01, 0xa7, 0x4b, 0xb5, 0x53, 0x65, 0x49, 0x36, 0xa0, 0x58, 0x6f, 0xee, + 0x52, 0xb7, 0xd7, 0xa2, 0x73, 0x45, 0x64, 0x7f, 0x49, 0x4c, 0x5c, 0x39, 0x9e, 0xb2, 0xb8, 0x36, + 0x2f, 0x78, 0x93, 0x50, 0x40, 0x14, 0xd9, 0xc7, 0x4c, 0xbe, 0x52, 0xfc, 0xf1, 0x1f, 0x54, 0xce, + 0xfc, 0xe6, 0x7f, 0xbe, 0x7a, 0xc6, 0xfc, 0x67, 0x39, 0x28, 0xa7, 0x99, 0x90, 0x6d, 0x98, 0x7e, + 0xd0, 0x75, 0x9d, 0x88, 0x2e, 0xb5, 0x3c, 0xda, 0x89, 0x42, 0x9c, 0x24, 0x47, 0xf7, 0xe9, 0x25, + 0x51, 0xef, 0x5c, 0x0f, 0x09, 0xed, 0x26, 0xa7, 0x4c, 0xf5, 0x4a, 0x67, 0x9b, 0xd4, 0x53, 0x47, + 0x15, 0x1c, 0xe2, 0x0c, 0x3b, 0x59, 0x3d, 0x5c, 0x79, 0x0f, 0xa9, 0x47, 0xb0, 0x15, 0x13, 0xa8, + 0xe3, 0x36, 0x0e, 0x70, 0x66, 0x8e, 0x3e, 0x81, 0x18, 0x49, 0xc6, 0x04, 0x62, 0x60, 0xf3, 0xcf, + 0x0c, 0x98, 0xb1, 0x68, 0xe8, 0xf7, 0x82, 0x26, 0x5d, 0xa5, 0x8e, 0x4b, 0x03, 0x36, 0xfd, 0xef, + 0x7a, 0x1d, 0x57, 0xac, 0x29, 0x9c, 0xfe, 0x7b, 0x5e, 0x47, 0x5d, 0xc2, 0x58, 0x4e, 0x5e, 0x87, + 0x89, 0x7a, 0xaf, 0x81, 0xa8, 0x7c, 0x4d, 0x5d, 0xc4, 0x11, 0xeb, 0x35, 0xec, 0x14, 0xba, 0x44, + 0x23, 0x37, 0x61, 0xe2, 0x21, 0x0d, 0xc2, 0x44, 0xe3, 0xa1, 0xd2, 0xde, 0xe7, 0x20, 0x95, 0x40, + 0x60, 0x91, 0x3b, 0x89, 0xd6, 0x15, 0xdb, 0xcd, 0xd9, 0x94, 0xae, 0x4b, 0xa6, 0x4a, 0x5b, 0x40, + 0xd4, 0xa9, 0x22, 0xb1, 0xcc, 0x1f, 0xe4, 0xa0, 0xbc, 0xec, 0x44, 0x4e, 0xc3, 0x09, 0x85, 0x3c, + 0x1f, 0xbe, 0xc1, 0xf4, 0xb8, 0xd2, 0x51, 0xd4, 0xe3, 0xac, 0xe5, 0x9f, 0xba, 0x7b, 0x2f, 0xa7, + 0xbb, 0x37, 0xc9, 0xf6, 0x3e, 0xd1, 0xbd, 0xa4, 0x53, 0xef, 0x1d, 0xdf, 0xa9, 0xb2, 0xe8, 0x54, + 0x51, 0x76, 0x2a, 0xe9, 0x0a, 0x79, 0x0f, 0x0a, 0xf5, 0x2e, 0x6d, 0x0a, 0x25, 0x22, 0x75, 0xbf, + 0xde, 0x39, 0x86, 0xf0, 0xf0, 0x8d, 0xda, 0x94, 0x60, 0x53, 0x08, 0xbb, 0xb4, 0x69, 0x21, 0x99, + 0xb2, 0x68, 0xfe, 0xd5, 0x18, 0x5c, 0xc8, 0x22, 0x4b, 0x6f, 0x4e, 0xc6, 0x89, 0x36, 0xa7, 0xeb, + 0x50, 0xdc, 0x64, 0xd3, 0xb1, 0xe9, 0xb7, 0x84, 0xdc, 0xd0, 0x92, 0xe8, 0x0a, 0x98, 0x15, 0x97, + 0x92, 0xcb, 0x90, 0x7f, 0x60, 0xad, 0x09, 0x51, 0x4d, 0x1c, 0xf6, 0x2b, 0xf9, 0x5e, 0xe0, 0x59, + 0x0c, 0xc6, 0x36, 0xf7, 0xa5, 0xea, 0x12, 0x0d, 0x22, 0x14, 0xd0, 0x14, 0x9f, 0x27, 0x4d, 0xc7, + 0x6e, 0xd2, 0x20, 0x52, 0x77, 0x31, 0x8e, 0x44, 0x6e, 0x40, 0xbe, 0xfa, 0xa8, 0x2e, 0x24, 0x02, + 0x42, 0x22, 0xd5, 0x47, 0xf5, 0xda, 0xa4, 0x10, 0x40, 0xde, 0x79, 0x1c, 0x5a, 0x0c, 0x47, 0x1d, + 0xa3, 0xf1, 0x23, 0xc6, 0xe8, 0x3a, 0x14, 0x99, 0xe1, 0xc0, 0xb6, 0x75, 0x54, 0x85, 0xa2, 0x17, + 0xbb, 0x02, 0x66, 0xc5, 0xa5, 0xe4, 0xc5, 0xd8, 0x0e, 0x29, 0x26, 0xfc, 0x84, 0x1d, 0x22, 0xad, + 0x0f, 0xb2, 0x0f, 0xd3, 0xcb, 0x07, 0x1d, 0xa7, 0xed, 0x35, 0xc5, 0xc6, 0x5d, 0xc2, 0x8d, 0x7b, + 0xe1, 0x88, 0xc1, 0x5b, 0xd0, 0x08, 0xf8, 0x5e, 0x7e, 0x55, 0xaa, 0x0d, 0x97, 0x97, 0xd9, 0x03, + 0xfb, 0xba, 0x5e, 0x0d, 0x5b, 0x3f, 0x52, 0x2d, 0xa2, 0x99, 0x94, 0x4c, 0x35, 0x09, 0x4e, 0xd6, + 0x4f, 0x20, 0x20, 0xea, 0xfa, 0x89, 0x37, 0xda, 0x77, 0x20, 0x7f, 0x67, 0x69, 0x73, 0x6e, 0x12, + 0x79, 0x10, 0xc1, 0xe3, 0xce, 0xd2, 0xe6, 0x52, 0xcb, 0xef, 0xb9, 0xf5, 0x8f, 0xd6, 0x6b, 0xb3, + 0x82, 0xcd, 0xf4, 0x4e, 0xb3, 0xab, 0x70, 0x60, 0x54, 0xf3, 0x8f, 0x80, 0x0c, 0x76, 0x26, 0x63, + 0xd3, 0xff, 0x15, 0x75, 0xd3, 0x9f, 0x5c, 0x9c, 0x15, 0xd5, 0x2c, 0xf9, 0xed, 0xb6, 0xd3, 0x71, + 0x91, 0xf6, 0xe1, 0xa2, 0x6a, 0x0b, 0xfc, 0x3a, 0x8e, 0x3b, 0x79, 0x15, 0xc6, 0x2d, 0xba, 0x93, + 0x4c, 0x55, 0x34, 0x79, 0x02, 0x84, 0xa8, 0x93, 0x85, 0xe3, 0xa0, 0x4c, 0xa8, 0x1b, 0xee, 0x7a, + 0xdb, 0x91, 0xa8, 0x28, 0x96, 0x89, 0x00, 0x2b, 0x32, 0x11, 0x10, 0x4d, 0x26, 0x02, 0x66, 0xd6, + 0x12, 0x46, 0xe4, 0x2d, 0x28, 0x2d, 0xb5, 0x7a, 0x61, 0x44, 0x83, 0xb5, 0x65, 0xd1, 0x8a, 0xb9, + 0xc3, 0x7e, 0xe5, 0x42, 0x93, 0x03, 0x75, 0x9b, 0x34, 0x41, 0x35, 0x7f, 0xd3, 0x80, 0x49, 0x45, + 0x8c, 0x8c, 0xcf, 0x66, 0xe0, 0x7f, 0x9b, 0x36, 0x23, 0x9d, 0x4f, 0x97, 0x03, 0x53, 0x7c, 0x62, + 0x54, 0xf2, 0x36, 0xc0, 0x5a, 0x87, 0xa9, 0xfa, 0x26, 0xb3, 0xe0, 0x73, 0xc9, 0x8a, 0xf5, 0x04, + 0x54, 0xa7, 0x54, 0x90, 0xcd, 0xbf, 0x92, 0x83, 0xa2, 0x50, 0x89, 0x8b, 0xa7, 0x54, 0x25, 0xbe, + 0xa9, 0xa9, 0xc4, 0xf3, 0x82, 0x54, 0x59, 0x4d, 0x8b, 0xc7, 0xa8, 0xc2, 0xb7, 0x61, 0x4a, 0x8a, + 0x60, 0xdd, 0x0b, 0x99, 0x42, 0x99, 0x90, 0x9b, 0xb9, 0x81, 0x2b, 0xf5, 0xac, 0xc6, 0xf3, 0xe1, + 0xa2, 0x25, 0xcb, 0xcd, 0xef, 0x8f, 0x49, 0x5a, 0x5e, 0x13, 0x13, 0x61, 0xd5, 0x75, 0x03, 0x55, + 0x84, 0x8e, 0xeb, 0x06, 0x16, 0x42, 0xd9, 0x40, 0x6d, 0xf6, 0x1a, 0x2d, 0xaf, 0x89, 0x38, 0xca, + 0x40, 0x75, 0x11, 0x6a, 0x33, 0x54, 0x75, 0xa0, 0x12, 0x64, 0x4d, 0x27, 0xe5, 0x8f, 0xd4, 0x49, + 0xdf, 0x82, 0xd2, 0x52, 0xdb, 0x15, 0xaa, 0xa6, 0x80, 0x1d, 0x30, 0x33, 0x84, 0xb2, 0x10, 0x23, + 0x71, 0xf5, 0x72, 0x45, 0xc8, 0xe8, 0x42, 0xb3, 0xed, 0x0e, 0xaa, 0x96, 0x84, 0xa5, 0xa6, 0x56, + 0xc6, 0x3e, 0x8b, 0x5a, 0x79, 0x0b, 0x4a, 0x0f, 0x42, 0xba, 0xd5, 0xeb, 0x74, 0x68, 0x0b, 0xf5, + 0x71, 0x91, 0x4f, 0xf7, 0x5e, 0x48, 0xed, 0x08, 0xa1, 0x6a, 0x03, 0x62, 0x54, 0x75, 0x5a, 0x4d, + 0x1c, 0x31, 0xad, 0x16, 0xa1, 0x50, 0xed, 0x76, 0xa5, 0xb6, 0x8d, 0x37, 0x86, 0x6e, 0x97, 0x5b, + 0x35, 0x4e, 0xb7, 0xab, 0x76, 0x10, 0x71, 0x09, 0x05, 0x72, 0xb7, 0xd7, 0xa0, 0x41, 0x87, 0x46, + 0x34, 0x14, 0x0b, 0x35, 0x9c, 0x03, 0xe4, 0x30, 0x27, 0x7d, 0xd4, 0x34, 0x42, 0xed, 0xb9, 0xc3, + 0x7e, 0xe5, 0xd2, 0x5e, 0xaf, 0xc1, 0x4c, 0x46, 0x4e, 0xa2, 0x30, 0xce, 0x60, 0x38, 0x5f, 0x87, + 0x19, 0x5d, 0xfa, 0x4f, 0x41, 0x1f, 0x7e, 0x58, 0x28, 0x16, 0xcb, 0x25, 0xf3, 0x87, 0x63, 0x90, + 0xaf, 0x76, 0xbb, 0xc7, 0xb8, 0xa9, 0x62, 0xf7, 0xcd, 0x65, 0xec, 0xbe, 0xfa, 0x1c, 0xcd, 0x9f, + 0x64, 0x8e, 0x3e, 0x84, 0x29, 0xe6, 0x6e, 0xc5, 0xfb, 0x1c, 0x9f, 0x7c, 0x57, 0x12, 0xc9, 0x2f, + 0xa8, 0xc5, 0x47, 0x79, 0xa8, 0x1a, 0x1f, 0x62, 0xa7, 0x37, 0x50, 0xee, 0xf9, 0x3e, 0xaf, 0x30, + 0xce, 0xd8, 0x2f, 0xe3, 0x49, 0xd8, 0xe4, 0x22, 0x3b, 0x62, 0xa7, 0x5c, 0x05, 0xb2, 0xd6, 0x09, + 0x69, 0xb3, 0x17, 0xd0, 0xfa, 0x9e, 0xd7, 0x7d, 0x48, 0x03, 0x6f, 0xfb, 0x40, 0x9d, 0x92, 0x9e, + 0x28, 0xb5, 0xc3, 0x3d, 0xaf, 0x6b, 0xef, 0x63, 0xb9, 0x95, 0x41, 0x43, 0x3e, 0x80, 0x09, 0x8b, + 0x3e, 0x0e, 0xbc, 0x88, 0x0a, 0x27, 0x6a, 0x26, 0xde, 0x5e, 0x10, 0xca, 0x8d, 0x99, 0x80, 0xff, + 0x50, 0x75, 0xa6, 0x28, 0x4f, 0x9b, 0x5f, 0xc5, 0x93, 0x98, 0x5f, 0xf3, 0x1f, 0xc0, 0xb9, 0x01, + 0x09, 0x9f, 0xc4, 0xbf, 0xfe, 0xfc, 0x36, 0xeb, 0xbf, 0x1c, 0xcb, 0x85, 0x2c, 0xe2, 0xce, 0xe9, + 0x05, 0xb4, 0x19, 0xa1, 0x7e, 0x15, 0x1b, 0x49, 0x20, 0x60, 0xa9, 0xdd, 0x16, 0x61, 0xe4, 0x7d, + 0x98, 0xe0, 0xfe, 0x09, 0xf3, 0xaf, 0xd8, 0xd8, 0x4f, 0x8b, 0x1a, 0x39, 0x54, 0xc4, 0x7f, 0x38, + 0x86, 0x2a, 0x55, 0x41, 0x64, 0xde, 0x81, 0x71, 0xe1, 0xdf, 0x1c, 0xbd, 0x2e, 0x2a, 0x30, 0xf6, + 0x30, 0x91, 0x4c, 0xad, 0x74, 0xd8, 0xaf, 0xf0, 0x4e, 0x58, 0x1c, 0x6e, 0xfe, 0x8e, 0x01, 0x33, + 0x7a, 0x2f, 0xc9, 0x02, 0x8c, 0x0b, 0x07, 0xdc, 0x40, 0x07, 0x9c, 0xf5, 0x66, 0x9c, 0xbb, 0xde, + 0x9a, 0xc3, 0x2d, 0xb0, 0x98, 0xfa, 0x12, 0x1c, 0xb0, 0x2f, 0x42, 0x7d, 0x89, 0x49, 0x6a, 0xc9, + 0x32, 0x62, 0x32, 0xbb, 0x26, 0xec, 0xb5, 0x22, 0xb1, 0x06, 0x81, 0xb1, 0x0d, 0x10, 0x62, 0x89, + 0x12, 0xb3, 0x6f, 0x00, 0xd4, 0xeb, 0xab, 0x77, 0xe9, 0xc1, 0xa6, 0xe3, 0x05, 0x68, 0x3f, 0xe0, + 0x6a, 0xbc, 0x2b, 0x46, 0x6b, 0x4a, 0xd8, 0x0f, 0x7c, 0xe5, 0xee, 0xd1, 0x03, 0xcd, 0x7e, 0x90, + 0xa8, 0xb8, 0xe4, 0x03, 0x6f, 0xdf, 0x89, 0x28, 0x23, 0xcc, 0x21, 0x21, 0x5f, 0xf2, 0x1c, 0x9a, + 0xa2, 0x54, 0x90, 0xc9, 0xc7, 0x30, 0x93, 0xfc, 0xc2, 0x80, 0x5e, 0x1e, 0x03, 0x7a, 0x72, 0x46, + 0xe8, 0x85, 0xb5, 0x17, 0x0e, 0xfb, 0x95, 0x79, 0x85, 0xab, 0xcd, 0xb0, 0x14, 0xd6, 0x29, 0x66, + 0xe6, 0x4f, 0x0c, 0x80, 0xad, 0xf5, 0xba, 0xec, 0xe0, 0x35, 0x28, 0xa0, 0x5f, 0xc0, 0xfb, 0x86, + 0x6a, 0x3c, 0xe5, 0x14, 0x60, 0x39, 0x79, 0x11, 0xf2, 0x49, 0x4f, 0xce, 0x31, 0xc3, 0x54, 0xef, + 0x01, 0x2b, 0x25, 0x77, 0x60, 0x62, 0xa4, 0x36, 0xe3, 0xec, 0xcc, 0x68, 0xab, 0xa4, 0xc6, 0x51, + 0xf8, 0xf0, 0xd1, 0xd6, 0xb3, 0x3b, 0x0a, 0xdf, 0xcf, 0xc1, 0x59, 0x26, 0xd7, 0x6a, 0x2f, 0xda, + 0xf5, 0x03, 0x2f, 0x3a, 0x38, 0xb5, 0xb6, 0xe2, 0xbb, 0x9a, 0xad, 0x38, 0x2f, 0xd5, 0x96, 0xda, + 0xb7, 0x91, 0x4c, 0xc6, 0x3f, 0x99, 0x80, 0xf3, 0x19, 0x54, 0xe4, 0x55, 0x11, 0xd5, 0x4e, 0x8c, + 0x77, 0x8c, 0x5a, 0xff, 0xa2, 0x5f, 0x99, 0x92, 0xe8, 0x5b, 0x49, 0x14, 0x7b, 0x11, 0x26, 0x85, + 0x49, 0x80, 0x2a, 0x89, 0x4b, 0x0a, 0x63, 0xa6, 0xd2, 0x73, 0x40, 0xd5, 0xa4, 0x22, 0x91, 0x2a, + 0x4c, 0x2d, 0xed, 0xd2, 0xe6, 0x9e, 0xd7, 0xd9, 0xb9, 0x4b, 0x0f, 0xc2, 0xb9, 0xfc, 0xd5, 0xfc, + 0xf5, 0xa9, 0xda, 0xf3, 0xcc, 0x02, 0x69, 0x0a, 0x38, 0x1b, 0x52, 0x45, 0x0b, 0xce, 0x19, 0x96, + 0x46, 0x42, 0xde, 0x87, 0xc9, 0xba, 0xb7, 0xd3, 0x91, 0x1c, 0x0a, 0xc8, 0xe1, 0xca, 0x61, 0xbf, + 0x72, 0x31, 0xe4, 0xe0, 0x41, 0x06, 0x2a, 0x01, 0xb9, 0x01, 0x63, 0x96, 0xdf, 0xa2, 0x7c, 0x1b, + 0x16, 0xc1, 0xd4, 0x80, 0x01, 0xd4, 0x60, 0x2a, 0x62, 0x90, 0x55, 0x98, 0x60, 0xff, 0xdc, 0x73, + 0xba, 0x73, 0xe3, 0xa8, 0xb7, 0x49, 0x6c, 0x2a, 0x22, 0xb4, 0xeb, 0x75, 0x76, 0x54, 0x6b, 0xb1, + 0x45, 0xed, 0xb6, 0xd3, 0xd5, 0xf6, 0x45, 0x8e, 0x48, 0x1e, 0xc2, 0x64, 0xa2, 0x08, 0xc2, 0xb9, + 0x09, 0xe4, 0x76, 0x4e, 0x70, 0x4b, 0x4a, 0x6a, 0x5f, 0x10, 0xcc, 0x2e, 0x45, 0xad, 0x10, 0xe7, + 0x76, 0x97, 0xe1, 0xeb, 0x9d, 0x51, 0x18, 0x69, 0xd6, 0x6c, 0x71, 0xb8, 0x35, 0x6b, 0x1c, 0x6b, + 0xcd, 0xba, 0x00, 0x42, 0x48, 0xd5, 0xd6, 0x8e, 0x38, 0xd6, 0xb8, 0x31, 0x7c, 0x82, 0x2d, 0x24, + 0xc8, 0xb8, 0x26, 0x71, 0xa5, 0x4b, 0xf9, 0x3b, 0xad, 0x1d, 0x75, 0xa5, 0x27, 0xa8, 0x4c, 0x0c, + 0x89, 0xaa, 0x91, 0x96, 0xa9, 0x14, 0x43, 0x52, 0x92, 0x88, 0xe1, 0xdb, 0x8f, 0xa3, 0x61, 0x62, + 0x50, 0x18, 0x91, 0xfb, 0x00, 0xd5, 0x66, 0xe4, 0xed, 0x53, 0x9c, 0x12, 0x93, 0x9a, 0x20, 0x96, + 0xaa, 0x77, 0xe9, 0x41, 0x9d, 0x46, 0x71, 0x58, 0x71, 0xd6, 0x41, 0xd4, 0xd4, 0x34, 0xb1, 0x14, + 0x0e, 0xa4, 0x0b, 0xb3, 0x55, 0xd7, 0xf5, 0xf8, 0x51, 0xd7, 0x56, 0xc0, 0xe6, 0xaf, 0x8b, 0xac, + 0xa7, 0xb2, 0x59, 0xdf, 0x10, 0xac, 0xbf, 0xe0, 0xc4, 0x54, 0x76, 0xc4, 0xc9, 0xd2, 0xd5, 0x64, + 0x33, 0x36, 0x37, 0x60, 0x46, 0x17, 0xa9, 0x7e, 0xc8, 0x33, 0x05, 0x45, 0xab, 0x5e, 0xb5, 0xeb, + 0xab, 0xd5, 0x5b, 0x65, 0x83, 0x94, 0x61, 0x4a, 0xfc, 0x5a, 0xb4, 0x17, 0xdf, 0x7c, 0xab, 0x9c, + 0xd3, 0x20, 0x6f, 0xde, 0x5a, 0x2c, 0xe7, 0xcd, 0x7f, 0x6c, 0x40, 0x51, 0xb6, 0x8f, 0xbc, 0x05, + 0xf9, 0x7a, 0x7d, 0x55, 0xf8, 0x83, 0x52, 0xde, 0xc9, 0xd6, 0xcb, 0x37, 0x99, 0x30, 0xdc, 0x55, + 0x37, 0x99, 0x7a, 0x7d, 0x95, 0xd1, 0x6d, 0xad, 0xd7, 0x85, 0xd1, 0x92, 0x31, 0x5d, 0x91, 0x2e, + 0xd2, 0x6c, 0x5f, 0x46, 0xc0, 0xe8, 0x3e, 0x7c, 0xb4, 0x85, 0xab, 0x3b, 0x73, 0x7c, 0x91, 0xee, + 0xdb, 0x8f, 0xd5, 0xad, 0x8f, 0x11, 0x98, 0x16, 0x4c, 0x2a, 0x4b, 0x8b, 0x1b, 0x11, 0x6d, 0x3f, + 0x3e, 0x23, 0x11, 0x46, 0x04, 0x83, 0x58, 0xa2, 0x84, 0xd9, 0x3c, 0xeb, 0x7e, 0xd3, 0x69, 0x09, + 0x6b, 0x04, 0x6d, 0x9e, 0x16, 0x03, 0x58, 0x1c, 0x6e, 0xfe, 0x6b, 0x03, 0xca, 0x9b, 0x81, 0xbf, + 0xef, 0x31, 0x0d, 0xbc, 0xe5, 0xef, 0xd1, 0xce, 0xc3, 0x5b, 0xe4, 0x35, 0xa9, 0x04, 0xb8, 0x09, + 0x77, 0x89, 0x51, 0xa1, 0x12, 0xf8, 0x45, 0xbf, 0x02, 0xf5, 0x83, 0x30, 0xa2, 0x6d, 0x56, 0x2e, + 0x15, 0x81, 0x72, 0xd4, 0x94, 0x1b, 0x3d, 0x7c, 0x7d, 0xcc, 0x51, 0x53, 0x05, 0xc6, 0xb0, 0x39, + 0x62, 0xc7, 0xc0, 0x96, 0x47, 0x0c, 0x60, 0x71, 0xb8, 0xa2, 0xb0, 0x7f, 0x90, 0x1b, 0xe8, 0xc3, + 0xe2, 0x33, 0x15, 0x02, 0xd6, 0x3b, 0x37, 0xd2, 0x26, 0xf6, 0x75, 0xb8, 0x90, 0x16, 0x09, 0xc6, + 0x3f, 0xaa, 0x70, 0x56, 0x87, 0xcb, 0x38, 0xc8, 0xa5, 0xcc, 0xba, 0x1e, 0x2e, 0x5a, 0x69, 0x7c, + 0x73, 0x25, 0xcd, 0x5a, 0xec, 0x8f, 0x27, 0x9b, 0x35, 0xe6, 0xef, 0xe6, 0x60, 0x86, 0x3b, 0x34, + 0x9c, 0xef, 0xa9, 0x1d, 0xb3, 0x77, 0xb4, 0x31, 0xbb, 0x2c, 0xf5, 0x87, 0xd2, 0xb5, 0x91, 0x46, + 0x6c, 0x17, 0xc8, 0x20, 0x0d, 0xb1, 0xa4, 0xdb, 0x3d, 0xca, 0x60, 0xdd, 0x4a, 0x82, 0xb5, 0x21, + 0x12, 0xd9, 0xb8, 0x62, 0x42, 0x4b, 0xe3, 0x61, 0xfe, 0x4e, 0x0e, 0xa6, 0x15, 0xb3, 0xe3, 0xd4, + 0x0a, 0xfe, 0x2b, 0x9a, 0xe0, 0x65, 0x08, 0x47, 0xe9, 0xd9, 0x48, 0x72, 0xef, 0xc1, 0xb9, 0x01, + 0x92, 0xb4, 0xf5, 0x66, 0x8c, 0x62, 0xbd, 0xbd, 0xaa, 0x46, 0x8a, 0x73, 0xca, 0xa1, 0x71, 0x1c, + 0x29, 0x56, 0xe3, 0xc3, 0x68, 0x77, 0xf3, 0x5f, 0x4b, 0x7e, 0x67, 0xdb, 0xdb, 0x39, 0xb5, 0xc7, + 0x56, 0x43, 0xec, 0x6e, 0xb5, 0x6f, 0x23, 0x9d, 0x5a, 0x7d, 0x92, 0x87, 0xf3, 0x19, 0x54, 0x27, + 0x93, 0x2b, 0xb9, 0x0f, 0x63, 0xd5, 0x9e, 0xeb, 0x45, 0xa2, 0x27, 0x15, 0xbd, 0x39, 0x58, 0xa4, + 0x70, 0x5f, 0xac, 0x5d, 0x12, 0x06, 0xe0, 0x59, 0x87, 0x15, 0xa9, 0x56, 0x2e, 0xe2, 0x92, 0x6f, + 0x41, 0xf9, 0x3e, 0x8d, 0x1e, 0xfb, 0x01, 0x33, 0xb1, 0x39, 0xa5, 0x30, 0xa1, 0x5e, 0x4a, 0x4d, + 0xb8, 0x14, 0x96, 0x32, 0xf9, 0x8c, 0x9f, 0xf1, 0x3a, 0xce, 0x58, 0x03, 0xbc, 0x48, 0x1b, 0x2e, + 0xd6, 0x69, 0x88, 0x03, 0x42, 0x9b, 0x7e, 0xe0, 0x26, 0xb5, 0x70, 0x6b, 0xea, 0x8b, 0xa2, 0x96, + 0x75, 0xba, 0xe3, 0x34, 0x0f, 0xb2, 0x51, 0x59, 0x55, 0xa9, 0x8a, 0x86, 0x30, 0x25, 0x16, 0x00, + 0x33, 0x56, 0x6f, 0x7b, 0xb4, 0xe5, 0x86, 0x73, 0xd3, 0x5a, 0x47, 0x78, 0x15, 0xda, 0x10, 0x24, + 0xb8, 0x29, 0xfe, 0x0a, 0x97, 0x0f, 0x0b, 0x45, 0xa3, 0x9c, 0xfb, 0xb0, 0x50, 0xcc, 0x97, 0x0b, + 0x1f, 0x16, 0x8a, 0x63, 0xe5, 0x49, 0x36, 0xb9, 0x2f, 0x0c, 0x4a, 0xfc, 0xd4, 0x2a, 0x9a, 0xaa, + 0x36, 0xc3, 0x8f, 0x9d, 0x52, 0x19, 0xd3, 0xdc, 0xfc, 0x5f, 0x13, 0x30, 0x37, 0x8c, 0x80, 0x5c, + 0xd3, 0x3c, 0x4b, 0x0c, 0x7d, 0xa4, 0xbc, 0x76, 0xee, 0x53, 0x26, 0xc7, 0x61, 0xb9, 0x11, 0x8e, + 0xc3, 0xd6, 0xa1, 0x8c, 0x55, 0x89, 0x99, 0x10, 0x26, 0x47, 0xb2, 0x57, 0x0f, 0xfb, 0x95, 0x2b, + 0x38, 0xdf, 0xed, 0x50, 0x14, 0xda, 0xbd, 0xc0, 0x53, 0x78, 0x0c, 0x50, 0x92, 0x9f, 0x18, 0x30, + 0x83, 0xc0, 0x95, 0x7d, 0xda, 0x89, 0x90, 0x19, 0x97, 0xe4, 0xc5, 0x85, 0x38, 0xa1, 0xad, 0x1e, + 0x05, 0x5e, 0x67, 0x07, 0x83, 0x69, 0x61, 0xad, 0xc1, 0xa4, 0xf0, 0xc7, 0xfd, 0xca, 0xbb, 0x9f, + 0x26, 0x49, 0x4e, 0xb0, 0x0a, 0x0f, 0xfb, 0x95, 0x79, 0xde, 0x50, 0x8a, 0xd5, 0xa6, 0x9a, 0x99, + 0x6a, 0x11, 0xf9, 0x35, 0xb8, 0xb4, 0xd2, 0x71, 0x1a, 0x2d, 0xba, 0xe4, 0x77, 0x22, 0xaf, 0xd3, + 0xf3, 0x7b, 0x61, 0xcd, 0x69, 0xee, 0xf5, 0xba, 0xa1, 0x08, 0xf8, 0x62, 0xcf, 0x9b, 0x71, 0xa1, + 0xdd, 0xe0, 0xa5, 0x0a, 0xcb, 0x61, 0x0c, 0xc8, 0x2a, 0x9c, 0xe3, 0x45, 0xd5, 0x5e, 0xe4, 0xd7, + 0x9b, 0x4e, 0xcb, 0xeb, 0xec, 0x60, 0x1c, 0xb8, 0x58, 0x9b, 0x67, 0xfe, 0xb5, 0xd3, 0x8b, 0x7c, + 0x3b, 0xe4, 0x70, 0x85, 0xdf, 0x20, 0x11, 0x59, 0x83, 0xb3, 0x16, 0x75, 0xdc, 0x7b, 0xce, 0x93, + 0x25, 0xa7, 0xeb, 0x34, 0xbd, 0xe8, 0x00, 0xbd, 0xd3, 0x7c, 0xad, 0x72, 0xd8, 0xaf, 0x3c, 0x17, + 0x50, 0xc7, 0xb5, 0xdb, 0xce, 0x13, 0xbb, 0x29, 0x0a, 0x15, 0x66, 0x69, 0xba, 0x98, 0x95, 0xd7, + 0x89, 0x59, 0x95, 0xd2, 0xac, 0xbc, 0xce, 0x70, 0x56, 0x09, 0x9d, 0x64, 0xb5, 0xe5, 0x04, 0x3b, + 0x34, 0xe2, 0x81, 0x52, 0xb8, 0x6a, 0x5c, 0x37, 0x14, 0x56, 0x11, 0x96, 0xd9, 0x18, 0x34, 0x4d, + 0xb3, 0x52, 0xe8, 0xd8, 0xcc, 0x7b, 0x14, 0x78, 0x11, 0x55, 0x7b, 0x38, 0x89, 0xcd, 0x42, 0xf9, + 0x63, 0xa8, 0x78, 0x58, 0x17, 0x07, 0x28, 0x13, 0x6e, 0x4a, 0x27, 0xa7, 0x06, 0xb8, 0x65, 0xf7, + 0x72, 0x80, 0x32, 0xe6, 0xa6, 0xf6, 0x73, 0x1a, 0xfb, 0xa9, 0x70, 0x1b, 0xd2, 0xd1, 0x01, 0x4a, + 0x54, 0x77, 0xe3, 0x56, 0x99, 0x4f, 0xd1, 0x88, 0x0d, 0x34, 0x1a, 0x06, 0xe6, 0xef, 0xe7, 0xe0, + 0xf2, 0x90, 0x7d, 0xe1, 0xd4, 0x6a, 0xc1, 0xdb, 0x9a, 0x16, 0x1c, 0x7d, 0xf7, 0x4b, 0xab, 0xc2, + 0xbf, 0x51, 0x80, 0xe7, 0x8f, 0xa4, 0x22, 0x1f, 0x31, 0x93, 0xcc, 0xa3, 0x9d, 0x68, 0xcd, 0x6d, + 0x51, 0xe6, 0x3a, 0xfa, 0xbd, 0x48, 0x04, 0xe0, 0x5f, 0x3c, 0xec, 0x57, 0xce, 0xf3, 0xe4, 0x2d, + 0xdb, 0x73, 0x5b, 0xd4, 0x8e, 0x78, 0xb1, 0x16, 0x8d, 0x1f, 0xa4, 0x66, 0x2c, 0xe3, 0x2c, 0xd1, + 0xb5, 0x4e, 0x44, 0x83, 0x7d, 0x87, 0x67, 0xb1, 0x08, 0x96, 0x7b, 0x94, 0x76, 0x6d, 0x87, 0x95, + 0xda, 0x9e, 0x28, 0xd6, 0x59, 0x0e, 0x50, 0x93, 0xdb, 0x0a, 0xcb, 0x25, 0xbf, 0xd7, 0x89, 0xee, + 0x39, 0x4f, 0x44, 0x8a, 0x2d, 0xc6, 0x84, 0x15, 0x96, 0x4d, 0x56, 0xcc, 0x66, 0xbc, 0x35, 0x48, + 0x42, 0x3e, 0x86, 0x59, 0xa1, 0x68, 0x99, 0xd2, 0x09, 0xfc, 0x96, 0xec, 0x71, 0x01, 0x79, 0x7d, + 0xf1, 0xb0, 0x5f, 0xb9, 0x24, 0xd4, 0xb4, 0xdd, 0xe4, 0x18, 0x99, 0xbd, 0xce, 0xe6, 0x42, 0xb6, + 0xd8, 0xc6, 0x93, 0x12, 0xc7, 0x3d, 0x1a, 0x86, 0xce, 0x0e, 0xc5, 0xa1, 0x14, 0x79, 0x08, 0xaa, + 0x30, 0xed, 0x36, 0x2f, 0xb7, 0x86, 0x52, 0x92, 0x55, 0x98, 0x79, 0x44, 0x1b, 0xea, 0xf8, 0x8c, + 0xc7, 0x4b, 0xb2, 0xfc, 0x98, 0x36, 0x86, 0x0f, 0x4e, 0x8a, 0xce, 0xfc, 0xbd, 0x1c, 0xcc, 0x65, + 0x1b, 0x2b, 0xa7, 0x76, 0xa5, 0xac, 0x68, 0x2b, 0xe5, 0xc5, 0xf8, 0x80, 0x7e, 0x98, 0xed, 0x36, + 0x64, 0xa1, 0xfc, 0x23, 0x03, 0xae, 0x1c, 0x45, 0xc4, 0xa4, 0x83, 0xe9, 0xac, 0x8a, 0x74, 0xda, + 0xbe, 0x4b, 0x45, 0x12, 0x6b, 0x17, 0xce, 0x6f, 0x06, 0xfe, 0x93, 0x03, 0x8c, 0x0f, 0x87, 0xab, + 0x7e, 0x18, 0x61, 0x90, 0x8e, 0x87, 0x68, 0xca, 0xa2, 0x51, 0x35, 0xdf, 0x6f, 0xa1, 0x2a, 0xab, + 0xbd, 0xca, 0xec, 0xbb, 0x3f, 0xee, 0x57, 0x80, 0x81, 0x36, 0xf0, 0xcc, 0x91, 0x6d, 0x6b, 0x5d, + 0xc6, 0xc2, 0xc6, 0xf0, 0x73, 0x68, 0x63, 0xf6, 0xd3, 0x1e, 0x3d, 0x08, 0xad, 0x2c, 0xd6, 0xe6, + 0xdf, 0x36, 0xe0, 0xea, 0x71, 0x76, 0x2a, 0xb9, 0xa1, 0x35, 0x1a, 0x0f, 0xf7, 0xe4, 0xec, 0x0e, + 0x24, 0xba, 0xe8, 0xc1, 0xfa, 0xf0, 0x1e, 0x94, 0xf8, 0xa6, 0x7b, 0x92, 0xd6, 0xfd, 0x20, 0xc7, + 0x0c, 0xa2, 0x68, 0x77, 0x33, 0xa0, 0xdb, 0x34, 0xa0, 0x9d, 0x26, 0x7d, 0xc6, 0xc2, 0x44, 0x7a, + 0xe7, 0x46, 0x72, 0x7e, 0xff, 0xe5, 0x18, 0x5c, 0xc8, 0x22, 0x63, 0x72, 0x51, 0x4c, 0xd2, 0x74, + 0x8a, 0xfe, 0x5f, 0x33, 0x60, 0xaa, 0x4e, 0x9b, 0x7e, 0xc7, 0xbd, 0xed, 0x34, 0x23, 0x5f, 0xa6, + 0xbb, 0xd8, 0x5c, 0x55, 0x31, 0xb8, 0xbd, 0x8d, 0x05, 0x5a, 0x7e, 0xf2, 0x57, 0x47, 0xb3, 0x04, + 0x9b, 0x3e, 0xa6, 0x30, 0x45, 0x6c, 0xc5, 0x24, 0x55, 0xe0, 0xd1, 0x8a, 0x56, 0x29, 0xa9, 0xc1, + 0xf4, 0x92, 0xdf, 0xe9, 0x50, 0xf6, 0xe3, 0x7e, 0x92, 0x3b, 0x73, 0xe5, 0xb0, 0x5f, 0x99, 0x6b, + 0xca, 0x02, 0xdc, 0x8f, 0xd5, 0xec, 0x00, 0x8d, 0x84, 0xbc, 0x01, 0xf9, 0x07, 0x8b, 0xb7, 0xc5, + 0x18, 0xc8, 0x3c, 0x92, 0x07, 0x8b, 0xb7, 0x31, 0x92, 0xc2, 0x5c, 0x9d, 0xe9, 0xde, 0xe2, 0xb6, + 0x1a, 0x88, 0x7d, 0xb0, 0x78, 0x9b, 0x6c, 0xc0, 0x39, 0x8b, 0x7e, 0xa7, 0xe7, 0x05, 0x54, 0xcc, + 0xf3, 0x7b, 0xb7, 0xab, 0x38, 0x16, 0xc5, 0xda, 0x17, 0x0e, 0xfb, 0x95, 0xe7, 0x03, 0x5e, 0x28, + 0x8d, 0x6b, 0xbb, 0xbd, 0xad, 0xe6, 0xae, 0x0e, 0xd2, 0x92, 0xdf, 0x80, 0xd9, 0x65, 0x2f, 0x14, + 0x6d, 0xe6, 0x11, 0x50, 0x17, 0x0f, 0x43, 0xc7, 0x87, 0x2c, 0xd6, 0x2f, 0x67, 0x2e, 0xd6, 0x2f, + 0xb8, 0x31, 0x13, 0x9b, 0x87, 0x57, 0xdd, 0x74, 0x62, 0x65, 0x76, 0x3d, 0xe4, 0xdb, 0x30, 0x53, + 0x6d, 0xb5, 0xfc, 0xc7, 0x18, 0x14, 0x66, 0x13, 0x42, 0x64, 0x38, 0x0c, 0xd6, 0xfc, 0x7a, 0x66, + 0xcd, 0xf3, 0x0e, 0xa3, 0xb6, 0x31, 0xb4, 0x6c, 0x3b, 0xbd, 0x68, 0x57, 0x33, 0xd2, 0x35, 0xce, + 0xe4, 0x43, 0x38, 0x2b, 0x76, 0x91, 0x8d, 0xed, 0xad, 0x5d, 0xba, 0xec, 0x1c, 0x88, 0x4c, 0x08, + 0x34, 0xc0, 0xc4, 0xd6, 0x63, 0xfb, 0xdb, 0x76, 0xb4, 0x4b, 0x6d, 0xd7, 0xd1, 0x8c, 0xd6, 0x14, + 0xa1, 0xf9, 0x2f, 0x0c, 0x78, 0xfe, 0x48, 0xb7, 0x95, 0x7c, 0x7d, 0x98, 0x68, 0x0d, 0x1c, 0x2f, + 0xb6, 0xf9, 0x5f, 0x1a, 0x22, 0xb6, 0x5f, 0xf4, 0x2b, 0x05, 0xd6, 0xcb, 0x61, 0x42, 0x7b, 0x7f, + 0x40, 0x68, 0x39, 0xe4, 0xc9, 0x94, 0x04, 0x24, 0xa2, 0x88, 0xd9, 0xa4, 0xb0, 0xcd, 0x7f, 0x6e, + 0xe0, 0xe4, 0x23, 0xaf, 0xc0, 0x58, 0xb5, 0xdb, 0x8d, 0xd3, 0x02, 0xd1, 0xab, 0x73, 0xba, 0x5d, + 0x3d, 0xb1, 0x8f, 0xa3, 0x30, 0x17, 0xf0, 0xb6, 0xd3, 0xa4, 0x51, 0x28, 0x22, 0xfa, 0x88, 0xbc, + 0x8d, 0x10, 0xd5, 0x05, 0xe4, 0x38, 0xe4, 0x6b, 0x70, 0x61, 0x99, 0xee, 0x7b, 0x4d, 0x5a, 0x8d, + 0x22, 0x1a, 0xf2, 0xe5, 0xb6, 0x54, 0xe5, 0x07, 0x8b, 0xa5, 0xda, 0x4b, 0x87, 0xfd, 0xca, 0x55, + 0x17, 0xcb, 0x6d, 0x27, 0x41, 0xb0, 0x9b, 0x8e, 0xca, 0x2b, 0x93, 0x83, 0xf9, 0x7f, 0x0d, 0xe5, + 0x32, 0xcc, 0x29, 0xd5, 0xa2, 0x6f, 0x69, 0x5a, 0xf4, 0x82, 0x20, 0x8d, 0x7b, 0x15, 0x47, 0x55, + 0xd2, 0xfb, 0xf2, 0x59, 0x98, 0xd6, 0x90, 0x98, 0xb5, 0x7f, 0xc1, 0xa2, 0x21, 0x8d, 0x36, 0x9d, + 0x30, 0x7c, 0xec, 0x07, 0x2e, 0x0f, 0xc7, 0xbe, 0xf1, 0x4c, 0x85, 0x3b, 0x06, 0x3b, 0x38, 0x52, + 0x54, 0xef, 0x8f, 0x0c, 0x98, 0x1b, 0x46, 0xca, 0xe4, 0xf3, 0x20, 0xa4, 0x5a, 0x46, 0x65, 0x2f, + 0xa4, 0x81, 0x85, 0x50, 0x9e, 0xc8, 0xb6, 0xae, 0x27, 0xb2, 0xb5, 0x2c, 0x06, 0x23, 0x75, 0x98, + 0x58, 0x0a, 0x28, 0xde, 0x67, 0x29, 0x8c, 0x7e, 0xe4, 0xd4, 0xe4, 0x24, 0xe9, 0x23, 0x27, 0xc1, + 0xc9, 0xfc, 0xc3, 0x1c, 0x3c, 0x97, 0xd1, 0x54, 0xda, 0x0c, 0x68, 0x14, 0x9e, 0xda, 0xd1, 0x5c, + 0xd5, 0x46, 0xf3, 0xda, 0xf0, 0xd1, 0xe4, 0xfd, 0x1c, 0x69, 0x50, 0xff, 0x9d, 0x01, 0x95, 0x63, + 0x38, 0x90, 0x17, 0x61, 0x7c, 0x63, 0x6b, 0x53, 0xe6, 0xc9, 0x88, 0xce, 0xf9, 0x5d, 0xb4, 0xd0, + 0x2c, 0x51, 0x44, 0x5e, 0x83, 0xf1, 0x8f, 0xac, 0x25, 0x66, 0x0e, 0xe6, 0x12, 0x73, 0xf0, 0x3b, + 0x81, 0xdd, 0xd4, 0x6f, 0x65, 0x09, 0x24, 0x75, 0xd8, 0xf3, 0x4f, 0x6d, 0xd8, 0xbf, 0x9f, 0x83, + 0xb3, 0xd5, 0x66, 0x93, 0x86, 0x21, 0xdb, 0x98, 0x69, 0x18, 0x3d, 0x63, 0x91, 0x78, 0xad, 0x6f, + 0x23, 0x0d, 0xef, 0xbf, 0x35, 0x60, 0x56, 0x52, 0xed, 0x7b, 0xf4, 0xf1, 0xd6, 0x6e, 0x40, 0xc3, + 0x5d, 0xbf, 0xe5, 0x92, 0x6b, 0x5a, 0x86, 0x1d, 0x46, 0x2a, 0x53, 0xf6, 0x55, 0x41, 0x9c, 0x85, + 0x8c, 0xdf, 0xf6, 0x5a, 0x11, 0x0d, 0xd4, 0x48, 0xe5, 0x36, 0x42, 0xb4, 0x6d, 0x0a, 0x21, 0xe4, + 0x26, 0x4c, 0x54, 0xbb, 0xdd, 0xc0, 0xdf, 0xe7, 0x26, 0xdc, 0x34, 0x9f, 0x06, 0x0e, 0x07, 0xa9, + 0xe2, 0x14, 0x58, 0xac, 0x19, 0xcb, 0xb4, 0x73, 0x80, 0x32, 0x9a, 0xe6, 0xcd, 0x70, 0x69, 0x47, + 0xb5, 0x14, 0xb0, 0xdc, 0xfc, 0x5e, 0x01, 0xa6, 0xd4, 0x8e, 0x10, 0x13, 0xc6, 0x79, 0xae, 0x86, + 0x7a, 0x66, 0xee, 0x20, 0xc4, 0x12, 0x25, 0x49, 0x0a, 0x4c, 0xee, 0xd8, 0x14, 0x98, 0x47, 0x30, + 0xbd, 0x19, 0xf8, 0x5d, 0x3f, 0xa4, 0x2e, 0xbf, 0xad, 0xc8, 0x53, 0xb3, 0xce, 0xc7, 0x8b, 0x8c, + 0xcb, 0x9c, 0x15, 0x71, 0xb3, 0xb4, 0x2b, 0xb0, 0xed, 0xf4, 0x5d, 0x46, 0x9d, 0x0f, 0x8f, 0xf4, + 0x3a, 0xa1, 0xdf, 0x11, 0xb7, 0x0f, 0x45, 0xa4, 0x97, 0x41, 0xf4, 0x48, 0x2f, 0x83, 0xa8, 0xcb, + 0x62, 0xec, 0x69, 0x2d, 0x0b, 0xf2, 0x23, 0x03, 0x26, 0xab, 0x9d, 0x8e, 0x48, 0x81, 0x91, 0xb7, + 0x48, 0x67, 0x93, 0x68, 0x2f, 0xcf, 0x91, 0xe4, 0xc1, 0xde, 0x6f, 0x8a, 0x60, 0xef, 0x3b, 0x9f, + 0x2a, 0xd8, 0xbb, 0x15, 0x38, 0x5e, 0x14, 0x62, 0xf2, 0x49, 0x52, 0xa1, 0x9a, 0x07, 0xab, 0xb4, + 0x83, 0xbc, 0x03, 0xe5, 0x78, 0x3e, 0xae, 0x75, 0x5c, 0xfa, 0x84, 0xf2, 0x8c, 0xa1, 0x69, 0x7e, + 0x5b, 0x5a, 0x8b, 0x62, 0xa7, 0x11, 0xcd, 0xef, 0x1b, 0x70, 0x51, 0x9d, 0x10, 0xf5, 0x5e, 0xa3, + 0xed, 0xa1, 0x19, 0x4e, 0x16, 0xa0, 0x24, 0xc6, 0x2b, 0xb6, 0xc4, 0x06, 0xaf, 0xb8, 0x26, 0x28, + 0x64, 0x85, 0x0d, 0x11, 0xe3, 0x21, 0x3c, 0xea, 0xf3, 0xa9, 0xe5, 0xc6, 0x8a, 0x6a, 0x73, 0x42, + 0xd8, 0xe5, 0x00, 0x7f, 0xeb, 0x63, 0xc7, 0x20, 0xe6, 0xfb, 0x70, 0x4e, 0x6f, 0x65, 0x9d, 0xe2, + 0x2d, 0x05, 0xd9, 0x35, 0x23, 0xbb, 0x6b, 0xb2, 0xdc, 0x7c, 0x04, 0x64, 0x80, 0x3e, 0xc4, 0x2d, + 0x9c, 0x46, 0xf2, 0xb8, 0x58, 0x1e, 0x8d, 0x0e, 0x20, 0xc6, 0xf7, 0xb8, 0x27, 0xb5, 0x74, 0x79, + 0x46, 0x6a, 0xfe, 0x79, 0x09, 0xce, 0x67, 0xa8, 0x8e, 0x63, 0xf6, 0xec, 0x8a, 0xbe, 0x78, 0x4a, + 0x71, 0x12, 0x80, 0x5c, 0x32, 0xef, 0xcb, 0x8b, 0xbd, 0x47, 0x2c, 0x95, 0xa3, 0x6e, 0xfb, 0x7e, + 0x1e, 0x3b, 0xbf, 0x9a, 0xc1, 0x32, 0xf6, 0xd4, 0x32, 0x58, 0x6a, 0x30, 0x2d, 0x7a, 0x25, 0x96, + 0xf2, 0x78, 0xe2, 0x9e, 0x06, 0xbc, 0xc0, 0x1e, 0x58, 0xd2, 0x3a, 0x09, 0xe7, 0x11, 0xfa, 0xad, + 0x7d, 0x2a, 0x78, 0x4c, 0xa8, 0x3c, 0xb0, 0x20, 0x93, 0x87, 0x42, 0x42, 0xfe, 0xa1, 0x01, 0x44, + 0x40, 0xd4, 0xf5, 0x5c, 0x3c, 0x6a, 0x3d, 0xbb, 0x4f, 0x67, 0x3d, 0x3f, 0x2f, 0xdb, 0x98, 0xbd, + 0xae, 0x33, 0x9a, 0x45, 0xfe, 0xc8, 0x80, 0x73, 0x3c, 0x59, 0x44, 0x6d, 0x6c, 0xe9, 0xa8, 0xc6, + 0x36, 0x9f, 0x4e, 0x63, 0xaf, 0x84, 0x58, 0xed, 0x90, 0xb6, 0x0e, 0x36, 0x8a, 0xfc, 0x1a, 0x40, + 0xbc, 0xa2, 0x64, 0xba, 0xde, 0x95, 0x0c, 0x2d, 0x10, 0x23, 0x25, 0xf7, 0x70, 0xa2, 0x98, 0x4e, + 0xcd, 0xb1, 0x4b, 0xb8, 0x91, 0xdf, 0x80, 0x0b, 0x6c, 0xbd, 0xc4, 0x10, 0x91, 0xf4, 0x35, 0x37, + 0x89, 0xb5, 0x7c, 0x69, 0xf8, 0xd6, 0xbe, 0x90, 0x45, 0xc6, 0x2f, 0x4d, 0xc4, 0xc9, 0x21, 0x41, + 0xd4, 0x56, 0x1d, 0xbc, 0x2c, 0x0a, 0xcc, 0xee, 0xc4, 0xd6, 0x87, 0x73, 0x53, 0x58, 0x67, 0xa6, + 0x7e, 0xbb, 0x2c, 0xd7, 0x02, 0xd7, 0x6f, 0xa1, 0x7e, 0xeb, 0x01, 0x41, 0xe4, 0x23, 0x20, 0xf5, + 0xde, 0xce, 0x0e, 0x0d, 0x23, 0xea, 0x72, 0x18, 0x0d, 0xc2, 0xb9, 0x69, 0xd4, 0x0f, 0x18, 0x2e, + 0x09, 0x65, 0xa9, 0x1d, 0xc8, 0x62, 0x75, 0x92, 0x0c, 0x12, 0xcf, 0x37, 0xe0, 0xf2, 0xd0, 0x6e, + 0x66, 0xdc, 0x68, 0xb8, 0xa9, 0xdf, 0x68, 0xb8, 0x3c, 0x4c, 0x1d, 0x86, 0xea, 0xad, 0x86, 0xbf, + 0x67, 0xa4, 0xf4, 0x9f, 0x30, 0x56, 0xf8, 0x1b, 0x08, 0xc3, 0x36, 0x88, 0xdc, 0xda, 0x32, 0xb3, + 0x4e, 0x50, 0x43, 0xe6, 0x12, 0x23, 0x89, 0x69, 0x48, 0x55, 0xc3, 0xa2, 0xae, 0xfc, 0x8c, 0xaa, + 0xd0, 0xfc, 0xa7, 0x06, 0x10, 0xde, 0xc2, 0x25, 0xa7, 0xeb, 0x34, 0xbc, 0x96, 0x17, 0x79, 0x34, + 0x24, 0x77, 0xa1, 0x2c, 0x58, 0x38, 0x8d, 0x16, 0x55, 0x53, 0xb2, 0xc4, 0x49, 0x5e, 0x5c, 0x66, + 0xa7, 0xcd, 0x9a, 0x01, 0xc2, 0x21, 0x83, 0x97, 0xfb, 0x0c, 0x83, 0x67, 0xfe, 0xa9, 0x01, 0x97, + 0x07, 0x9b, 0x2d, 0x6a, 0x8e, 0x85, 0x67, 0x1c, 0x23, 0xbc, 0xac, 0x5e, 0xf2, 0xf0, 0xcb, 0x53, + 0xeb, 0x65, 0x3e, 0x89, 0xe8, 0x9d, 0xbc, 0x97, 0xbf, 0x9d, 0x83, 0xa9, 0xcd, 0x56, 0x6f, 0xc7, + 0xeb, 0x2c, 0x3b, 0x91, 0x73, 0x6a, 0x5d, 0x8a, 0xb7, 0x35, 0x97, 0x22, 0xce, 0x3b, 0x8b, 0x3b, + 0x36, 0x92, 0x3f, 0xf1, 0x43, 0x03, 0xce, 0x26, 0x24, 0x7c, 0x95, 0xae, 0x42, 0x81, 0xfd, 0x10, + 0x16, 0xca, 0xd5, 0x01, 0xc6, 0x88, 0xb5, 0x10, 0xff, 0x27, 0x8c, 0x7c, 0xfd, 0x15, 0x00, 0xe4, + 0x30, 0xff, 0x65, 0x28, 0x25, 0x6c, 0x4f, 0xf2, 0xe0, 0xc8, 0x3f, 0x31, 0xa0, 0x9c, 0xee, 0x09, + 0xb9, 0x0b, 0x13, 0x8c, 0x93, 0x47, 0xa5, 0xf1, 0xf4, 0xd2, 0x90, 0x3e, 0x2f, 0x08, 0x34, 0xde, + 0x3c, 0x14, 0x3e, 0xe5, 0x10, 0x4b, 0x72, 0x98, 0xb7, 0x60, 0x4a, 0xc5, 0xca, 0x68, 0xdd, 0xab, + 0xba, 0x6a, 0xba, 0x98, 0x2d, 0x07, 0xb5, 0xd5, 0x7f, 0x47, 0x6b, 0xb5, 0x50, 0x4a, 0xa3, 0xbe, + 0xec, 0x80, 0xf7, 0xb3, 0xf8, 0x9b, 0x10, 0xea, 0x3c, 0x0b, 0x04, 0x4c, 0xbf, 0x9f, 0xc5, 0x61, + 0xcc, 0x17, 0xe1, 0xf5, 0x89, 0x79, 0x86, 0xbe, 0x48, 0x17, 0x21, 0xaa, 0x3d, 0xcb, 0x71, 0xcc, + 0xbf, 0x9b, 0x87, 0x8b, 0x49, 0xf3, 0xf8, 0x3b, 0x17, 0x9b, 0x4e, 0xe0, 0xb4, 0xc3, 0x63, 0x56, + 0xc0, 0xf5, 0x81, 0xa6, 0xe1, 0x25, 0x58, 0xd9, 0x34, 0xa5, 0x41, 0x66, 0xaa, 0x41, 0xe8, 0xc4, + 0xf1, 0x06, 0xc9, 0x66, 0x90, 0xbb, 0x90, 0xaf, 0xd3, 0x48, 0xdc, 0x52, 0xbc, 0x36, 0x20, 0x55, + 0xb5, 0x5d, 0x0b, 0x75, 0x1a, 0xf1, 0x41, 0xe4, 0x89, 0xde, 0x54, 0x4b, 0xbc, 0x66, 0xe6, 0xf8, + 0x23, 0x18, 0x5f, 0x79, 0xd2, 0xa5, 0xcd, 0x48, 0x5c, 0x4e, 0xbc, 0x71, 0x34, 0x3f, 0x8e, 0xab, + 0x5c, 0x81, 0xa4, 0x08, 0x50, 0x85, 0xc5, 0x51, 0xe6, 0xdf, 0x82, 0xa2, 0xac, 0xfc, 0x44, 0x57, + 0xf9, 0xde, 0x86, 0x49, 0xa5, 0x92, 0x13, 0x4d, 0xfa, 0x3f, 0x37, 0x60, 0x9c, 0x29, 0xbd, 0x87, + 0x5f, 0x3a, 0xa5, 0x1a, 0xe9, 0x0d, 0x4d, 0x23, 0x9d, 0x53, 0xee, 0x9c, 0xe0, 0xba, 0xfc, 0xd2, + 0x31, 0xba, 0xa8, 0x6f, 0x00, 0x24, 0xc8, 0xe4, 0x0e, 0x4c, 0xf0, 0x43, 0x0c, 0xf9, 0x88, 0x8c, + 0x7a, 0x89, 0x45, 0x94, 0x24, 0x56, 0x8e, 0xdf, 0x4d, 0x9b, 0x85, 0x92, 0x9a, 0x2c, 0xc3, 0x18, + 0x86, 0xf7, 0x53, 0xb7, 0x26, 0x19, 0x9b, 0x25, 0xbf, 0xc3, 0x2f, 0x35, 0x84, 0x98, 0x6d, 0x78, + 0x06, 0xb3, 0x0d, 0x19, 0xae, 0x16, 0xde, 0x67, 0x00, 0xe6, 0xb7, 0x61, 0x60, 0x23, 0x7f, 0x14, + 0x93, 0x8b, 0x82, 0x49, 0x76, 0xcc, 0xe3, 0x47, 0x45, 0x7e, 0x4d, 0x40, 0x36, 0xec, 0x3d, 0x98, + 0xba, 0xed, 0x07, 0x8f, 0x9d, 0xc0, 0xad, 0xee, 0xd0, 0x8e, 0x3c, 0xf7, 0xb8, 0xcc, 0xa6, 0xfa, + 0x36, 0x87, 0xdb, 0x0e, 0x2b, 0x88, 0x8f, 0x29, 0x34, 0x74, 0xb2, 0x01, 0xd3, 0xf7, 0x9c, 0x27, + 0xe2, 0xac, 0x6a, 0x6b, 0x6b, 0x5d, 0x24, 0x4d, 0xdc, 0x38, 0xec, 0x57, 0x2e, 0xb7, 0x9d, 0x27, + 0xf1, 0x19, 0x57, 0x14, 0xb5, 0x86, 0x3c, 0x46, 0xa4, 0xd3, 0x13, 0x0f, 0x66, 0x36, 0xfd, 0x20, + 0x12, 0x95, 0x30, 0x9b, 0x36, 0x3f, 0xe4, 0xa8, 0xe9, 0x66, 0xe6, 0x51, 0xd3, 0x65, 0x66, 0xc8, + 0xdb, 0xdb, 0x31, 0xb9, 0x76, 0xb7, 0x4d, 0x63, 0x4c, 0xde, 0x83, 0x73, 0x4b, 0x34, 0x88, 0xbc, + 0x6d, 0xaf, 0xe9, 0x44, 0xf4, 0xb6, 0x1f, 0xb4, 0x9d, 0x48, 0x04, 0x54, 0xd0, 0xa1, 0x6e, 0x52, + 0xce, 0xa9, 0xed, 0x44, 0xd6, 0x20, 0x26, 0xf9, 0x46, 0x56, 0x1a, 0xca, 0x18, 0x76, 0xff, 0x35, + 0x66, 0x14, 0x64, 0xa4, 0xa1, 0x0c, 0x11, 0x41, 0x46, 0x42, 0xca, 0xce, 0x51, 0x47, 0x7e, 0xc5, + 0xda, 0x2d, 0x71, 0xfc, 0x78, 0xfc, 0x91, 0xde, 0x71, 0xa7, 0x54, 0x8b, 0x90, 0xaf, 0x6d, 0xde, + 0xc6, 0x10, 0x89, 0x38, 0x62, 0xa3, 0x9d, 0x5d, 0xa7, 0xd3, 0x44, 0x5b, 0x46, 0x9c, 0xb7, 0xab, + 0x0a, 0xaf, 0xb6, 0x79, 0x9b, 0x38, 0x70, 0x7e, 0x93, 0x06, 0x6d, 0x2f, 0xfa, 0xda, 0xad, 0x5b, + 0xca, 0x40, 0x15, 0xb1, 0x69, 0x37, 0x45, 0xd3, 0x2a, 0x5d, 0x44, 0xb1, 0x9f, 0xdc, 0xba, 0x95, + 0x39, 0x1c, 0x71, 0xc3, 0xb2, 0x78, 0x91, 0x15, 0x98, 0xb9, 0xe7, 0x3c, 0x11, 0x87, 0xb1, 0xb1, + 0x8f, 0x97, 0xc7, 0xdb, 0x6e, 0x38, 0xb1, 0x9a, 0x49, 0x91, 0x3a, 0xc4, 0x3a, 0x11, 0x79, 0x17, + 0x26, 0x93, 0xe9, 0x15, 0x62, 0xc6, 0x5a, 0x9e, 0xa7, 0x06, 0x28, 0x93, 0x53, 0x8b, 0x25, 0x29, + 0xe8, 0xe4, 0x41, 0xec, 0xa2, 0x73, 0x83, 0x14, 0xb3, 0xd4, 0x4a, 0xb5, 0x9b, 0xaa, 0x8b, 0xee, + 0x60, 0x89, 0xd6, 0xad, 0xb3, 0xb1, 0x89, 0x1e, 0x38, 0x11, 0xdd, 0x49, 0xbc, 0x76, 0xce, 0x45, + 0xf1, 0xfc, 0x37, 0x03, 0xbf, 0xdd, 0x8d, 0x30, 0x5d, 0x2d, 0xe5, 0xf9, 0x77, 0xb1, 0x24, 0xc3, + 0xf3, 0xe7, 0x24, 0xd9, 0x67, 0xcc, 0xd3, 0x9f, 0xfe, 0x8c, 0xd9, 0xfc, 0x9f, 0x25, 0x98, 0xd1, + 0x15, 0x09, 0xdb, 0xd9, 0xd7, 0xfd, 0x1d, 0xaf, 0x23, 0xfd, 0x03, 0x7e, 0x5f, 0x1f, 0x21, 0xda, + 0x8b, 0x72, 0x08, 0x21, 0x2f, 0x03, 0xc4, 0xc7, 0x5e, 0xd2, 0x05, 0x10, 0xef, 0xdf, 0x29, 0x05, + 0xe4, 0x5b, 0x00, 0xf7, 0x7d, 0x97, 0x8a, 0xdb, 0xfc, 0xf9, 0xa3, 0x1c, 0xf7, 0x2f, 0x0a, 0xc7, + 0x5d, 0xbc, 0x59, 0x77, 0xd8, 0xaf, 0xcc, 0x76, 0x7c, 0x97, 0x0e, 0xbe, 0x50, 0xa1, 0x70, 0x24, + 0x5f, 0x81, 0x31, 0xab, 0xd7, 0xa2, 0xf2, 0x05, 0x82, 0x49, 0xa9, 0x23, 0x7b, 0x2d, 0x9a, 0xa8, + 0xd7, 0xa0, 0x97, 0x8e, 0xd7, 0x32, 0x00, 0xf9, 0x00, 0xe0, 0x6e, 0xaf, 0x41, 0xef, 0x04, 0x7e, + 0xaf, 0x2b, 0xaf, 0x38, 0xa2, 0xbb, 0xb0, 0x17, 0xbf, 0xe3, 0x60, 0xef, 0x60, 0xa1, 0x5a, 0x79, + 0x42, 0x42, 0x36, 0x98, 0x57, 0x8c, 0xc3, 0x24, 0xe2, 0xa1, 0x2f, 0x64, 0x79, 0xe2, 0x8a, 0xae, + 0x16, 0x4f, 0x02, 0x20, 0x58, 0x77, 0x8e, 0xb9, 0xbb, 0xf3, 0x2e, 0x94, 0x18, 0x7b, 0xe6, 0xd2, + 0x84, 0x62, 0x8d, 0xe2, 0x0d, 0x5e, 0xa5, 0x41, 0xcc, 0xfd, 0xd1, 0x9e, 0xeb, 0x88, 0x09, 0xc8, + 0x37, 0xa0, 0x54, 0xed, 0x76, 0x85, 0xa8, 0x8f, 0x0c, 0xe8, 0x5c, 0x1b, 0x10, 0xf5, 0x05, 0xa7, + 0xdb, 0xcd, 0x78, 0x0b, 0x24, 0xe6, 0x47, 0x76, 0xe2, 0x5b, 0x22, 0xf1, 0xd3, 0x46, 0x47, 0x54, + 0xf0, 0xca, 0x40, 0x05, 0x73, 0x32, 0x41, 0x7f, 0xf0, 0x2d, 0x23, 0x8d, 0x2f, 0xe9, 0x42, 0x39, + 0x79, 0x47, 0x43, 0xd4, 0x05, 0x47, 0xd5, 0xf5, 0xda, 0x40, 0x5d, 0xea, 0x00, 0x0e, 0x54, 0x37, + 0xc0, 0x9d, 0xb8, 0x30, 0x23, 0x5f, 0x66, 0x12, 0xf5, 0x4d, 0x1e, 0x55, 0xdf, 0xcb, 0x03, 0xf5, + 0x9d, 0x77, 0x1b, 0x83, 0xf5, 0xa4, 0x78, 0x92, 0x77, 0x61, 0x5a, 0x42, 0x70, 0x7d, 0x60, 0x20, + 0x45, 0xd8, 0x51, 0x6e, 0x03, 0x13, 0x53, 0xf4, 0x77, 0x2b, 0x54, 0x64, 0x95, 0x9a, 0xcf, 0x8e, + 0x69, 0x8d, 0x3a, 0x3d, 0x2b, 0x74, 0x64, 0xf2, 0x75, 0x98, 0x5c, 0x6b, 0xb3, 0x8e, 0xf8, 0x1d, + 0x27, 0xa2, 0x73, 0x33, 0xd8, 0x3d, 0x19, 0x9c, 0x52, 0x4a, 0x94, 0xa9, 0xca, 0x5f, 0x15, 0x4a, + 0x8a, 0x54, 0xa5, 0xa9, 0x50, 0x30, 0xe1, 0x71, 0x37, 0x57, 0xcc, 0xe1, 0x70, 0xee, 0x2c, 0x72, + 0x7f, 0x3e, 0x23, 0x40, 0xa4, 0xb0, 0x47, 0xc5, 0xce, 0xbd, 0x67, 0x5b, 0x2c, 0x08, 0x4d, 0x78, + 0x3a, 0x4f, 0xf2, 0x1e, 0x4c, 0x56, 0x1f, 0xd5, 0x99, 0xc2, 0xaa, 0x5a, 0xf7, 0xc3, 0xb9, 0x32, + 0x76, 0x1e, 0x1f, 0x63, 0x71, 0x1e, 0x87, 0xe8, 0xd2, 0xdb, 0x4e, 0x90, 0x3a, 0x25, 0x48, 0xf0, + 0xcd, 0xff, 0x91, 0x87, 0x4b, 0x43, 0xd6, 0x64, 0x72, 0xc0, 0x63, 0x1c, 0x7b, 0xc0, 0xf3, 0x4d, + 0xb6, 0x06, 0x1c, 0xaf, 0x1d, 0x6e, 0xf9, 0x49, 0x58, 0x3b, 0x89, 0x85, 0x61, 0x99, 0xbc, 0xea, + 0x2c, 0xaf, 0xe5, 0x5e, 0x6e, 0x22, 0x85, 0x1d, 0xf9, 0x03, 0x91, 0x07, 0x9d, 0xd9, 0xc0, 0x11, + 0x4b, 0xfe, 0x97, 0xe4, 0x88, 0x45, 0x0f, 0x6c, 0x16, 0x9e, 0x6a, 0x60, 0x33, 0x3b, 0xd4, 0x32, + 0xf6, 0x59, 0x02, 0x4a, 0xff, 0x3e, 0x75, 0xa8, 0xf3, 0xcb, 0x38, 0xd4, 0x37, 0x60, 0xec, 0xd1, + 0x2e, 0x0d, 0x64, 0x8e, 0x1a, 0x36, 0xe4, 0x31, 0x03, 0xa8, 0x0d, 0x41, 0x0c, 0xf3, 0x2f, 0xc1, + 0x94, 0x5a, 0x19, 0xa9, 0xc0, 0x18, 0xfe, 0x16, 0x7e, 0x1a, 0x1e, 0xa9, 0x60, 0xbd, 0x16, 0x87, + 0x1f, 0xfb, 0xb0, 0x49, 0x22, 0x85, 0xfc, 0x71, 0x52, 0x30, 0xff, 0x8d, 0x01, 0x05, 0xb6, 0x57, + 0x92, 0x37, 0xa1, 0x24, 0x1d, 0x6e, 0xf5, 0x46, 0xe7, 0x79, 0xe9, 0x8f, 0x87, 0xfa, 0xa9, 0x98, + 0x00, 0xb2, 0xaa, 0x1e, 0xd2, 0xa0, 0xa1, 0x1d, 0x9e, 0xee, 0x33, 0x80, 0x5a, 0x15, 0x62, 0x9c, + 0x40, 0x24, 0x78, 0x40, 0x2c, 0xac, 0xc4, 0x02, 0xf2, 0xe5, 0x07, 0xc4, 0x03, 0xd6, 0xa1, 0xc4, + 0x32, 0x7f, 0x6c, 0xc0, 0x6c, 0xa6, 0x96, 0x63, 0xb5, 0x72, 0x75, 0xaa, 0xcc, 0x88, 0xb4, 0x2e, + 0xe5, 0x18, 0x27, 0x39, 0x08, 0x3e, 0xc1, 0xf0, 0x7e, 0x01, 0x4a, 0xb1, 0x8b, 0xc3, 0xfc, 0x74, + 0x3e, 0x74, 0xe8, 0x95, 0xc9, 0x87, 0x68, 0x98, 0x8f, 0xce, 0x9a, 0x70, 0x6a, 0xf3, 0x53, 0xb3, + 0x7d, 0x74, 0xd6, 0xa5, 0x91, 0xb2, 0x52, 0x7f, 0x32, 0x0e, 0x90, 0x20, 0x93, 0x06, 0xcc, 0x6c, + 0xac, 0x2d, 0x2f, 0xad, 0xb9, 0xb4, 0x13, 0x61, 0xac, 0x38, 0x75, 0x0b, 0x76, 0xe5, 0x49, 0x44, + 0x83, 0x8e, 0xd3, 0x12, 0x08, 0x07, 0xc9, 0xf2, 0xf4, 0x3d, 0xb7, 0x69, 0x7b, 0x31, 0x9d, 0xba, + 0xdd, 0xe8, 0x1c, 0x59, 0x1d, 0xf5, 0xea, 0xbd, 0x75, 0xa5, 0x8e, 0xdc, 0x88, 0x75, 0x84, 0x4e, + 0xbb, 0x35, 0xa4, 0x0e, 0x9d, 0x23, 0xd9, 0x85, 0xf2, 0x1d, 0xd4, 0xdd, 0x4a, 0x2d, 0xf9, 0xa3, + 0x6b, 0x79, 0x51, 0xd4, 0xf2, 0x1c, 0x57, 0xfa, 0xd9, 0xf5, 0x0c, 0x70, 0x4d, 0x66, 0x6e, 0xe1, + 0xd8, 0x99, 0xfb, 0xd7, 0x0d, 0x18, 0xe7, 0x9b, 0x83, 0x18, 0xad, 0x21, 0xdb, 0xcf, 0xa3, 0xa7, + 0xb3, 0xfd, 0x94, 0x23, 0xfc, 0x4f, 0x75, 0x2f, 0x78, 0x19, 0x59, 0x86, 0xf1, 0x7a, 0xe4, 0x44, + 0x3d, 0x99, 0x69, 0x20, 0x03, 0x31, 0xe8, 0x7d, 0xf0, 0x92, 0xe4, 0x38, 0x3d, 0xc4, 0xdf, 0x2a, + 0x17, 0x8e, 0xa1, 0xbe, 0x62, 0x3e, 0xf1, 0x19, 0x5f, 0x31, 0x5f, 0x87, 0x92, 0x38, 0x1f, 0xae, + 0x1d, 0x08, 0xe3, 0x5a, 0xc6, 0x28, 0x62, 0xb8, 0xf2, 0xb2, 0x1e, 0x07, 0xd9, 0x0d, 0xed, 0x05, + 0xa0, 0x18, 0x91, 0x6c, 0x40, 0x29, 0xc9, 0x13, 0x2d, 0x69, 0xd1, 0xf4, 0x18, 0x2e, 0x12, 0xa8, + 0xf8, 0x85, 0x8c, 0xcc, 0x5c, 0xda, 0x84, 0x87, 0xf9, 0x3d, 0x03, 0xca, 0xe9, 0xf9, 0xc2, 0xdc, + 0xe1, 0x38, 0xbf, 0x39, 0x3e, 0xa5, 0x42, 0x77, 0x38, 0x49, 0x88, 0xd6, 0xce, 0xab, 0x54, 0x74, + 0xb2, 0x08, 0x45, 0xb6, 0xec, 0x3a, 0xc9, 0x83, 0x35, 0xa8, 0x4f, 0x7a, 0x02, 0xa6, 0x46, 0x87, + 0x25, 0x9e, 0x9a, 0x4b, 0x9e, 0x83, 0x49, 0x65, 0xb0, 0xc8, 0x0d, 0x28, 0xae, 0x85, 0xeb, 0x7e, + 0x73, 0x8f, 0xba, 0x22, 0xe8, 0x84, 0x8f, 0xd4, 0x7b, 0xa1, 0xdd, 0x42, 0xa0, 0x15, 0x17, 0x33, + 0x87, 0x99, 0xff, 0x27, 0x2f, 0xa6, 0xe4, 0x12, 0x87, 0x99, 0x23, 0xcb, 0x2b, 0x29, 0xea, 0x0e, + 0xab, 0x91, 0x90, 0x8f, 0x01, 0x38, 0x80, 0x8d, 0xef, 0x08, 0xe9, 0x61, 0x72, 0x01, 0xcf, 0x8a, + 0x0a, 0x22, 0x4f, 0xed, 0x21, 0x4e, 0x05, 0x85, 0x21, 0xbe, 0xa2, 0xed, 0x37, 0xf7, 0x46, 0x7f, + 0x22, 0x3f, 0x79, 0x45, 0xdb, 0x6f, 0xee, 0xd9, 0xd9, 0xb9, 0x02, 0x2a, 0x4b, 0xf3, 0x3f, 0x19, + 0xca, 0x84, 0x23, 0xf7, 0xa1, 0x14, 0x0f, 0x8d, 0x08, 0x4d, 0xc6, 0xa6, 0x88, 0x84, 0x5b, 0x74, + 0xbb, 0xf6, 0x9c, 0x88, 0xc6, 0x9c, 0x8f, 0x07, 0x58, 0x9b, 0x7f, 0x12, 0x48, 0xbe, 0x0a, 0x05, + 0x14, 0xcc, 0xf1, 0x2f, 0x74, 0x48, 0xc5, 0x5e, 0x60, 0x12, 0xc1, 0x66, 0x22, 0x25, 0x79, 0x5d, + 0x9c, 0xcc, 0xe5, 0xb5, 0xb7, 0xef, 0x18, 0x88, 0xb5, 0x23, 0xd6, 0xe8, 0x49, 0x32, 0x88, 0x32, + 0x37, 0xfe, 0xaa, 0x01, 0xe7, 0x1f, 0x2c, 0xde, 0xb6, 0xe8, 0x8e, 0x17, 0x46, 0x3c, 0x28, 0xc6, + 0xfc, 0x15, 0x72, 0x19, 0xf2, 0x96, 0xf3, 0x58, 0xbc, 0xa4, 0x85, 0x29, 0x9e, 0x81, 0xf3, 0xd8, + 0x62, 0x30, 0xf2, 0x2a, 0x94, 0xee, 0xd2, 0x83, 0x55, 0xa7, 0xe3, 0xb6, 0xa8, 0x78, 0x31, 0x0b, + 0xaf, 0x7d, 0xef, 0xd1, 0x03, 0x7b, 0x17, 0xa1, 0x56, 0x82, 0x80, 0x67, 0x02, 0xbd, 0xc6, 0x5d, + 0xca, 0x43, 0xa7, 0x53, 0xe2, 0x4c, 0xa0, 0xd7, 0xc0, 0x64, 0x43, 0x5e, 0x62, 0xfe, 0x97, 0x1c, + 0x94, 0xd3, 0x6b, 0x8d, 0x7c, 0x00, 0x53, 0x32, 0x89, 0x71, 0xd5, 0x09, 0x77, 0x45, 0x53, 0xd0, + 0xd1, 0xe8, 0x0a, 0xb8, 0xbd, 0xeb, 0x68, 0x8f, 0xbf, 0x68, 0x04, 0x6c, 0x0f, 0xde, 0x12, 0x89, + 0x8e, 0xca, 0x9a, 0x89, 0xfc, 0xa8, 0x9b, 0x7a, 0xd4, 0x4b, 0xa2, 0x11, 0x17, 0xce, 0xa6, 0x64, + 0x11, 0x4f, 0xd7, 0xf8, 0xfe, 0x41, 0x5a, 0x52, 0x3c, 0x2a, 0xd0, 0x5b, 0xdc, 0xb6, 0x03, 0xa5, + 0x44, 0x4d, 0x8d, 0x4f, 0x11, 0x91, 0xb7, 0x01, 0x1e, 0x2c, 0xde, 0xc6, 0x5b, 0x66, 0x34, 0x10, + 0x99, 0x72, 0xe8, 0xe2, 0x31, 0x26, 0x4d, 0x0e, 0x56, 0x6d, 0xf4, 0x04, 0x99, 0xbc, 0x09, 0x79, + 0x7e, 0xa3, 0x21, 0xaf, 0xe8, 0xbc, 0x7b, 0xb7, 0xab, 0x3c, 0x13, 0x9c, 0x1f, 0x93, 0xe8, 0xf1, + 0x26, 0x86, 0x6f, 0xfe, 0x9f, 0x1c, 0x94, 0x62, 0x2c, 0x42, 0x00, 0x2d, 0x15, 0x71, 0x2a, 0x81, + 0xff, 0x93, 0xcb, 0x50, 0x94, 0xc6, 0x89, 0x38, 0x99, 0x98, 0x08, 0x85, 0x61, 0x32, 0x07, 0xd2, + 0x0a, 0xe1, 0x86, 0x89, 0x25, 0x7f, 0x92, 0x5b, 0x10, 0x9b, 0x18, 0xc3, 0x6c, 0x91, 0x02, 0x9b, + 0x7c, 0x56, 0x8c, 0x46, 0x66, 0x20, 0xe7, 0xf1, 0x5c, 0xb8, 0x92, 0x95, 0xf3, 0x5c, 0xf2, 0x01, + 0x14, 0x1d, 0xd7, 0xa5, 0xae, 0xed, 0x44, 0x23, 0x7c, 0x0d, 0xa1, 0xc8, 0xb8, 0xf1, 0xbd, 0x00, + 0xa9, 0xaa, 0x11, 0xa9, 0x42, 0x09, 0x1f, 0xc3, 0xef, 0x85, 0x23, 0xbd, 0xa0, 0x9f, 0x70, 0x28, + 0x32, 0xb2, 0x07, 0x21, 0x75, 0xc9, 0x17, 0xa1, 0xc0, 0x26, 0x85, 0xd8, 0x49, 0xe2, 0xe7, 0x82, + 0x36, 0xb6, 0x36, 0xb9, 0xc0, 0x56, 0xcf, 0x58, 0x88, 0x40, 0x5e, 0x82, 0x7c, 0x6f, 0x71, 0x5b, + 0xec, 0x11, 0xe5, 0x64, 0x4a, 0xc4, 0x68, 0xac, 0xb8, 0x56, 0x84, 0x71, 0x9e, 0xba, 0x6f, 0xbe, + 0x00, 0x90, 0x70, 0x19, 0x3c, 0x0b, 0x32, 0x3f, 0x86, 0x52, 0x4c, 0x4d, 0x9e, 0x07, 0x65, 0x01, + 0xf1, 0xc9, 0x6e, 0x95, 0xf6, 0xe2, 0x65, 0x74, 0x09, 0x26, 0xba, 0x6c, 0x80, 0xe4, 0x23, 0x75, + 0x16, 0x5b, 0x43, 0x6c, 0xce, 0xce, 0xc1, 0x84, 0x98, 0x33, 0x3c, 0x45, 0xd3, 0x92, 0x3f, 0xcd, + 0x0e, 0x4c, 0xa9, 0x0a, 0xe9, 0x98, 0x9b, 0x43, 0x17, 0x31, 0x7b, 0x82, 0x2f, 0x94, 0xf1, 0xc3, + 0x7e, 0x25, 0xe7, 0xb9, 0x98, 0x33, 0x71, 0x1d, 0x8a, 0x72, 0x13, 0x53, 0x9f, 0xc0, 0x15, 0xf6, + 0xce, 0x81, 0x15, 0x97, 0x9a, 0x5f, 0x84, 0x09, 0xa1, 0x73, 0x8e, 0x7e, 0xef, 0xd1, 0xfc, 0x6e, + 0x0e, 0xce, 0x5a, 0x94, 0xcd, 0x22, 0xf1, 0xb8, 0xec, 0x33, 0xf6, 0xb2, 0x9d, 0xd6, 0xb7, 0x23, + 0xae, 0x11, 0xfe, 0xd4, 0x80, 0xf3, 0x19, 0xb8, 0x9f, 0xea, 0x8d, 0x93, 0xb7, 0xa0, 0xb4, 0xec, + 0x39, 0xad, 0xaa, 0xeb, 0xc6, 0x59, 0x20, 0x68, 0xac, 0xb8, 0x1e, 0xb3, 0x55, 0x18, 0x54, 0xdd, + 0x7d, 0x62, 0x54, 0xf2, 0x8a, 0x98, 0x14, 0xf9, 0x58, 0xac, 0xf2, 0xed, 0x3c, 0xe0, 0x6d, 0x4a, + 0x5e, 0xce, 0x33, 0x7f, 0x94, 0x03, 0xc2, 0x81, 0x49, 0xa0, 0xff, 0xd4, 0x0e, 0xdd, 0x07, 0xda, + 0xd0, 0xc9, 0x10, 0x59, 0xba, 0x7b, 0x23, 0x79, 0x45, 0xdf, 0xcb, 0xc1, 0xc5, 0x6c, 0xc2, 0x4f, + 0xfb, 0x5c, 0x0d, 0xde, 0x92, 0x54, 0x9e, 0x27, 0xc4, 0xfd, 0x95, 0x5f, 0xa9, 0x44, 0xfc, 0x04, + 0x81, 0x6c, 0xc3, 0xf4, 0xba, 0x13, 0x46, 0xab, 0xd4, 0x09, 0xa2, 0x06, 0x75, 0xa2, 0x11, 0x0c, + 0xac, 0xf8, 0x53, 0x18, 0xa8, 0x39, 0x77, 0x25, 0x65, 0xfa, 0x53, 0x18, 0x1a, 0xdb, 0x78, 0xa2, + 0x14, 0x46, 0x98, 0x28, 0xdf, 0x81, 0xb3, 0x75, 0xda, 0x76, 0xba, 0xbb, 0x7e, 0x40, 0x45, 0x1e, + 0xc4, 0x02, 0x4c, 0xc7, 0xa0, 0xcc, 0xd9, 0xa2, 0x17, 0x6b, 0xf8, 0x8a, 0x20, 0x12, 0x55, 0xa2, + 0x17, 0x9b, 0xbf, 0x9f, 0x83, 0x4b, 0xd5, 0xa6, 0x38, 0x5a, 0x11, 0x05, 0x32, 0x94, 0xff, 0x39, + 0xd7, 0x4d, 0x6e, 0x42, 0xe9, 0x9e, 0xf3, 0x04, 0x3f, 0xd7, 0x14, 0x8a, 0x7b, 0xe6, 0x7c, 0x27, + 0x76, 0x9e, 0xd8, 0x71, 0x54, 0xc6, 0x4a, 0x70, 0x9e, 0xe6, 0x17, 0x9d, 0x4c, 0x18, 0x5f, 0xf5, + 0x5b, 0x2e, 0x0d, 0xc4, 0x95, 0x71, 0x34, 0xaf, 0x76, 0x11, 0x62, 0x89, 0x12, 0xf3, 0x4f, 0x0d, + 0x98, 0x89, 0x5b, 0x8c, 0x4d, 0xf8, 0xdc, 0x45, 0x92, 0xfa, 0xb6, 0x55, 0x69, 0x84, 0x6f, 0x5b, + 0x8d, 0x7d, 0x36, 0x49, 0x98, 0xff, 0xc0, 0x80, 0x73, 0x7a, 0x2f, 0xd9, 0x4e, 0xa4, 0x34, 0xc4, + 0x18, 0xb1, 0x21, 0xb9, 0xa7, 0x36, 0x24, 0xf9, 0xa1, 0x43, 0xf2, 0x5b, 0x39, 0x98, 0x8c, 0x1b, + 0x7b, 0x6a, 0x73, 0xd0, 0x7e, 0x55, 0xd3, 0xa1, 0x17, 0xe3, 0xeb, 0xf4, 0xa2, 0x5f, 0x23, 0xa5, + 0xa0, 0xd5, 0x15, 0x5d, 0x21, 0x32, 0xbd, 0xbe, 0x0a, 0xe3, 0x62, 0x31, 0xe9, 0x59, 0xf2, 0x03, + 0xa3, 0x5b, 0x9b, 0x11, 0xac, 0xc7, 0x71, 0x40, 0x43, 0x4b, 0xd0, 0x61, 0x8e, 0xdf, 0x23, 0xda, + 0x10, 0x87, 0xac, 0xa7, 0x76, 0x8f, 0xca, 0xce, 0xf1, 0x4b, 0x3a, 0x36, 0xd2, 0xee, 0xf4, 0x67, + 0x79, 0x28, 0xa7, 0x49, 0x8e, 0xbf, 0xdf, 0xb7, 0xd9, 0x6b, 0x08, 0xdf, 0x0e, 0x9d, 0xbf, 0x6e, + 0xaf, 0x61, 0x31, 0x18, 0xb9, 0x06, 0x85, 0xcd, 0xc0, 0xdb, 0x17, 0xce, 0x1c, 0xe6, 0xb3, 0x75, + 0x03, 0x6f, 0x5f, 0x4d, 0x76, 0x61, 0xe5, 0xe8, 0x7c, 0xad, 0xd7, 0x95, 0xef, 0xc9, 0x70, 0xe7, + 0xab, 0x15, 0xa6, 0xef, 0x3d, 0x4b, 0x34, 0xb6, 0x55, 0xd6, 0xa8, 0x13, 0xd0, 0x80, 0xbf, 0x2e, + 0x39, 0x96, 0x6c, 0x95, 0x0d, 0x04, 0xf3, 0x27, 0xf3, 0x2c, 0x15, 0x89, 0xb4, 0x80, 0x28, 0x3f, + 0x47, 0xff, 0xac, 0x9a, 0xfc, 0xaa, 0xcb, 0x05, 0x95, 0xb5, 0xad, 0xae, 0xe6, 0x0c, 0xbe, 0x4f, + 0x33, 0x84, 0xb5, 0x09, 0x25, 0x8c, 0xc8, 0xa0, 0xe7, 0x5f, 0x3c, 0x96, 0x99, 0x4c, 0x2c, 0x02, + 0xcc, 0x01, 0xb0, 0x63, 0xff, 0x3f, 0x61, 0x62, 0xbe, 0xae, 0x8e, 0xb2, 0xd8, 0x74, 0x8f, 0x1c, + 0x65, 0xf3, 0xf7, 0xd0, 0x0c, 0x6f, 0xfb, 0x11, 0x15, 0xd6, 0xc7, 0xa9, 0xd5, 0x43, 0x49, 0x84, + 0x72, 0x4c, 0x3b, 0x4e, 0xd5, 0x7a, 0xc7, 0x31, 0x1e, 0xbe, 0x91, 0x28, 0x0d, 0x1e, 0xab, 0x94, + 0x11, 0x4a, 0x65, 0xc9, 0xfc, 0x7d, 0x03, 0x66, 0x33, 0x69, 0xc9, 0x02, 0x40, 0x62, 0xe3, 0x09, + 0x29, 0xf1, 0x37, 0xef, 0x62, 0xa8, 0xa5, 0x60, 0x90, 0x6f, 0xa6, 0xad, 0xb3, 0xe3, 0x37, 0x17, + 0xf9, 0x30, 0xf3, 0x8c, 0x6e, 0x9d, 0x65, 0xd8, 0x64, 0xe6, 0x4f, 0xf3, 0x70, 0x6e, 0xe0, 0x43, + 0x17, 0xc7, 0x3c, 0xb6, 0xbf, 0x97, 0xfa, 0x5c, 0x04, 0x8f, 0xa6, 0xbf, 0x32, 0xec, 0x33, 0x1b, + 0x19, 0x1f, 0x8f, 0xc0, 0x10, 0x8c, 0x78, 0xc6, 0xf2, 0x98, 0x6f, 0x48, 0x84, 0xe9, 0x6f, 0x48, + 0xf0, 0xa8, 0xfa, 0xaf, 0x0c, 0xad, 0xed, 0x29, 0x7c, 0x81, 0xe9, 0x97, 0xf8, 0x7b, 0x0c, 0xdf, + 0xcd, 0x01, 0x3c, 0xa2, 0x8d, 0xd3, 0x7d, 0x09, 0xfd, 0xcb, 0xda, 0xa6, 0x34, 0x9b, 0x6c, 0x4a, + 0xa3, 0x5f, 0x3d, 0xdf, 0xc0, 0x37, 0x8a, 0x46, 0xbf, 0x6f, 0x1e, 0x3f, 0x39, 0x9c, 0xcb, 0x7e, + 0x72, 0xd8, 0x6c, 0xc0, 0x85, 0x3b, 0x34, 0x4a, 0xf4, 0x9f, 0xb4, 0xfc, 0x8f, 0x66, 0xfb, 0x2a, + 0x94, 0x04, 0xbe, 0xfe, 0x7e, 0xa5, 0xcc, 0xdc, 0xf2, 0x5c, 0x2b, 0x41, 0x30, 0x29, 0x5c, 0x5a, + 0xa6, 0x2d, 0x1a, 0xd1, 0xcf, 0xb7, 0x9a, 0x3a, 0x10, 0xde, 0x15, 0xec, 0xd9, 0x68, 0x35, 0x1c, + 0x2b, 0x9f, 0x87, 0x30, 0x1b, 0xb7, 0xfd, 0x69, 0xf2, 0xbd, 0xc9, 0x76, 0x10, 0x91, 0x06, 0x9e, + 0x70, 0x3c, 0x22, 0xf4, 0xf3, 0x04, 0xe6, 0x25, 0xc1, 0x23, 0x2f, 0x8e, 0xf5, 0x8e, 0x44, 0x4b, + 0xde, 0x85, 0x49, 0x85, 0x46, 0xdc, 0x29, 0xc1, 0x23, 0x94, 0xc7, 0x5e, 0xb4, 0x6b, 0x87, 0x1c, + 0xae, 0x1e, 0xa1, 0x28, 0xe8, 0xe6, 0x37, 0xf0, 0x09, 0x01, 0xee, 0x8b, 0x65, 0x54, 0x9d, 0x62, + 0x6e, 0x9c, 0x8c, 0xf9, 0xfd, 0xa4, 0x5b, 0x6b, 0x9d, 0x38, 0xe5, 0x4e, 0xf2, 0x26, 0x6a, 0xb7, + 0x44, 0x67, 0xae, 0x0c, 0x7c, 0xb2, 0x56, 0xf9, 0x56, 0xad, 0xf9, 0x8e, 0xd2, 0xd8, 0x0c, 0x86, + 0x1a, 0xb1, 0x91, 0x26, 0xfe, 0x6e, 0x0e, 0xce, 0x6e, 0xac, 0x2d, 0x2f, 0xc5, 0xc1, 0xbf, 0x67, + 0x2c, 0xbc, 0xa6, 0xf5, 0xed, 0x88, 0xf0, 0xda, 0x03, 0x38, 0x9f, 0x12, 0x03, 0x3e, 0xb4, 0xfd, + 0x3e, 0x3f, 0xb4, 0x8e, 0xc1, 0xd2, 0xcb, 0xb8, 0x98, 0xc5, 0xfe, 0xe1, 0xa2, 0x95, 0xc2, 0x36, + 0x7f, 0x3a, 0x9e, 0xe2, 0x1b, 0x7f, 0x85, 0xa2, 0xb4, 0x16, 0x86, 0x3d, 0x1a, 0x3c, 0xb0, 0xd6, + 0x55, 0xcb, 0xc0, 0x43, 0xa0, 0xdd, 0x0b, 0x5a, 0x56, 0x82, 0x40, 0x6e, 0x40, 0x51, 0xa4, 0x1e, + 0x2f, 0xab, 0x1f, 0x8a, 0x8e, 0x33, 0x97, 0xad, 0xb8, 0x98, 0xbc, 0x09, 0x53, 0xfc, 0x7f, 0x3e, + 0xdb, 0x84, 0xc0, 0x31, 0xc2, 0x20, 0xd0, 0xf9, 0xec, 0xb4, 0x34, 0x34, 0x66, 0x4f, 0xcb, 0x2f, + 0xf9, 0xb0, 0x16, 0x15, 0x12, 0x7b, 0x5a, 0x7e, 0xf4, 0x07, 0xdb, 0xa4, 0x22, 0x91, 0x57, 0x20, + 0x5f, 0x5d, 0xb2, 0xd4, 0xd7, 0xe7, 0x9c, 0x66, 0xc0, 0x5f, 0x5b, 0xd4, 0x1e, 0xcb, 0xaf, 0x2e, + 0x59, 0x64, 0x11, 0xbf, 0x3a, 0xb9, 0xef, 0x31, 0x47, 0x77, 0x3c, 0x99, 0x35, 0x5d, 0x01, 0x53, + 0xcf, 0x24, 0x25, 0x1e, 0xb9, 0x09, 0x13, 0xcb, 0x5e, 0xd8, 0x6d, 0x39, 0x07, 0xe2, 0xbe, 0x2c, + 0xa6, 0x8b, 0xb8, 0x1c, 0xa4, 0xce, 0x33, 0x81, 0x85, 0x5f, 0x1b, 0x6e, 0xfa, 0x5d, 0x66, 0x23, + 0xc7, 0xe7, 0xe5, 0x21, 0x03, 0x68, 0x97, 0xee, 0x18, 0x00, 0x6f, 0xc3, 0xf0, 0xa4, 0xde, 0x92, + 0x72, 0x1b, 0x26, 0x9d, 0xcc, 0x2b, 0x70, 0x06, 0x93, 0x8a, 0xe0, 0x69, 0x26, 0x15, 0x35, 0xe0, + 0xd2, 0x1d, 0x34, 0xf0, 0xea, 0x34, 0xc0, 0x37, 0x7a, 0x9a, 0x18, 0x94, 0x7f, 0x60, 0xad, 0x89, + 0x44, 0xe6, 0xeb, 0x87, 0xfd, 0xca, 0x4b, 0xdc, 0x06, 0xc4, 0x2f, 0xd1, 0xe2, 0x4b, 0x3f, 0x1c, + 0x29, 0xf5, 0x92, 0xea, 0x30, 0x46, 0xe4, 0x6b, 0x70, 0x21, 0xab, 0x48, 0xa4, 0x34, 0xe3, 0x13, + 0x42, 0xd9, 0x15, 0xa8, 0x37, 0x4c, 0xb3, 0x38, 0x90, 0x75, 0x28, 0x73, 0x78, 0xd5, 0x6d, 0x7b, + 0x9d, 0x95, 0xb6, 0xe3, 0xb5, 0x30, 0xc1, 0x59, 0x64, 0xa9, 0x0b, 0xae, 0x0e, 0x2b, 0xb4, 0x29, + 0x2b, 0xd5, 0x52, 0x1e, 0x52, 0x94, 0xa8, 0x8e, 0xea, 0xd5, 0x7b, 0xeb, 0xcf, 0xaa, 0x3a, 0xd2, + 0xfa, 0x76, 0xb4, 0x3a, 0x4a, 0x89, 0x41, 0xaa, 0x23, 0x0d, 0x9c, 0x56, 0x47, 0x29, 0x1a, 0x2b, + 0x85, 0x6d, 0xfe, 0xc7, 0xf1, 0x14, 0x5f, 0xa1, 0x8e, 0x4c, 0x18, 0xe7, 0xda, 0x46, 0x7d, 0x50, + 0x83, 0xeb, 0x22, 0x4b, 0x94, 0x30, 0x3f, 0xbf, 0x5e, 0xdf, 0x50, 0xdf, 0xf1, 0x09, 0x43, 0xdf, + 0x62, 0x30, 0x36, 0x42, 0xe8, 0xbc, 0xe7, 0x93, 0x11, 0x62, 0x8e, 0xbb, 0xf8, 0xd4, 0xd3, 0xcb, + 0xc9, 0x3a, 0x2e, 0x24, 0xf2, 0x16, 0xeb, 0x38, 0x59, 0xbd, 0x4b, 0x30, 0x57, 0x0d, 0x43, 0x1a, + 0x44, 0xfc, 0xf1, 0xcb, 0xb0, 0xd7, 0xa6, 0x81, 0x98, 0x6b, 0x42, 0xc7, 0x60, 0xa5, 0x4e, 0x33, + 0xb4, 0x86, 0x22, 0x92, 0xeb, 0x50, 0xac, 0xf6, 0x5c, 0x8f, 0x76, 0x9a, 0x54, 0xe8, 0x19, 0x0c, + 0xe1, 0x39, 0x02, 0x66, 0xc5, 0xa5, 0xe4, 0x23, 0x98, 0x15, 0x44, 0x52, 0xe1, 0x08, 0x09, 0x70, + 0x5d, 0xc3, 0xfd, 0x16, 0xb1, 0x16, 0xa4, 0x9a, 0xb2, 0x85, 0x48, 0xb2, 0x29, 0x49, 0x15, 0xca, + 0x2b, 0x78, 0xba, 0x25, 0x3f, 0xf8, 0xe6, 0x07, 0xe2, 0x4d, 0x34, 0xd4, 0x5c, 0xfc, 0xe4, 0xcb, + 0x76, 0xe3, 0x42, 0x6b, 0x00, 0x9d, 0xdc, 0x85, 0xf3, 0x69, 0x18, 0xd3, 0xc7, 0xa5, 0xe4, 0x1b, + 0x73, 0x03, 0x5c, 0x50, 0x31, 0x67, 0x51, 0x91, 0x06, 0x9c, 0xab, 0x46, 0x51, 0xe0, 0x35, 0x7a, + 0x11, 0x4d, 0xa9, 0x2e, 0x19, 0x1e, 0x8a, 0xcb, 0xa5, 0xfa, 0x7a, 0x4e, 0x4c, 0xc6, 0xf3, 0x4e, + 0x4c, 0x19, 0xab, 0x30, 0x6b, 0x90, 0x1d, 0x71, 0xe3, 0x6f, 0xba, 0x88, 0xef, 0x9e, 0x88, 0x1c, + 0x6c, 0x19, 0x86, 0xab, 0x86, 0x07, 0xed, 0x36, 0x8d, 0x02, 0xfc, 0x80, 0x16, 0x7e, 0x17, 0xc5, + 0x14, 0xa9, 0x0e, 0xf3, 0xca, 0xa7, 0x8c, 0xf0, 0xdb, 0x37, 0x5a, 0xce, 0x95, 0xc6, 0x53, 0xdb, + 0x3e, 0xa6, 0x46, 0xdc, 0x3e, 0x5a, 0x70, 0x6e, 0xa5, 0xd3, 0x0c, 0x0e, 0xf0, 0xc6, 0x91, 0x6c, + 0xdc, 0xf4, 0x31, 0x8d, 0x7b, 0x49, 0x34, 0xee, 0x8a, 0x23, 0x67, 0x58, 0x56, 0xf3, 0x06, 0x19, + 0x9b, 0xbf, 0x0e, 0xe5, 0xb4, 0x2c, 0x3f, 0xe3, 0x87, 0xec, 0x4e, 0x92, 0xef, 0xc9, 0x46, 0x3a, + 0xdd, 0x17, 0x72, 0x53, 0xfb, 0x5a, 0x99, 0x91, 0x5c, 0x98, 0x52, 0xbe, 0x2b, 0xa6, 0x7d, 0xa3, + 0x4c, 0x2e, 0xe3, 0x5c, 0xd6, 0x32, 0x36, 0x7f, 0x3b, 0x07, 0xe7, 0x78, 0x8a, 0x5a, 0xa2, 0x61, + 0x4e, 0xab, 0x5b, 0xfa, 0xbe, 0xa6, 0x9c, 0x65, 0x04, 0x28, 0xd5, 0xbb, 0xe1, 0xde, 0xa9, 0xf9, + 0x31, 0xcc, 0x0e, 0x88, 0x02, 0x15, 0xf4, 0xb2, 0x4c, 0x0e, 0x1c, 0x50, 0xd1, 0x73, 0xd9, 0x95, + 0x3c, 0x7c, 0xc3, 0x1a, 0xa0, 0x30, 0xff, 0x30, 0x37, 0xc0, 0x5f, 0xb8, 0xbe, 0xaa, 0x25, 0x68, + 0x9c, 0xcc, 0x12, 0xcc, 0x7d, 0x2a, 0x4b, 0x30, 0x3f, 0x8a, 0x25, 0xf8, 0x11, 0x4c, 0x6f, 0x51, + 0x87, 0x59, 0x34, 0xe2, 0x22, 0x52, 0x41, 0xfb, 0x92, 0x18, 0x2b, 0x93, 0xfa, 0x25, 0xbe, 0xdb, + 0x13, 0x31, 0x02, 0xa6, 0x5a, 0xf8, 0x4d, 0x25, 0x4b, 0xe7, 0xa0, 0x6e, 0x1a, 0x63, 0xc3, 0x37, + 0x0d, 0xf3, 0x7b, 0x39, 0x98, 0x54, 0xd8, 0x93, 0x2f, 0xc1, 0xd4, 0x46, 0xb0, 0xe3, 0x74, 0xbc, + 0xbf, 0xe8, 0x28, 0x41, 0x37, 0x6c, 0xbe, 0xaf, 0xc0, 0x2d, 0x0d, 0x0b, 0x93, 0x1d, 0xa8, 0xd3, + 0x56, 0x27, 0x3e, 0x6b, 0x9e, 0x85, 0x50, 0xe5, 0x7e, 0x55, 0x7e, 0x84, 0xfb, 0x55, 0xfa, 0xe5, + 0xa4, 0xc2, 0xc9, 0x2f, 0x27, 0x69, 0x77, 0x89, 0xc6, 0x4e, 0x78, 0x97, 0xc8, 0xfc, 0xdd, 0x1c, + 0x94, 0xc5, 0x37, 0xb7, 0x64, 0xa0, 0xf6, 0xd9, 0x7a, 0x1e, 0x57, 0xef, 0xdc, 0x11, 0x87, 0x1a, + 0x85, 0x1f, 0xff, 0x41, 0x05, 0xbf, 0xa0, 0x94, 0x16, 0x87, 0xfc, 0x82, 0x92, 0x0e, 0x4f, 0xa7, + 0x23, 0xa7, 0xa9, 0xac, 0x34, 0xbe, 0xf9, 0xb3, 0x5c, 0x9a, 0xb7, 0xb0, 0xa6, 0x5e, 0x86, 0x09, + 0xfe, 0xb9, 0x00, 0x99, 0x31, 0x29, 0x9e, 0x15, 0x40, 0x90, 0x25, 0xcb, 0x4e, 0x92, 0x98, 0x7e, + 0xdc, 0x67, 0xb4, 0xc8, 0x5b, 0x30, 0x85, 0xa7, 0xfc, 0x55, 0xd7, 0x0d, 0x68, 0x18, 0x0a, 0x43, + 0x0b, 0x4f, 0x5c, 0x1e, 0xd3, 0x86, 0xcd, 0xb3, 0x01, 0xf0, 0x33, 0xd7, 0x1a, 0x1e, 0x59, 0x82, + 0x0b, 0x5a, 0x52, 0x89, 0xa4, 0x1f, 0x4b, 0x76, 0x0b, 0xfe, 0x9d, 0x67, 0x4e, 0x9c, 0x89, 0xfc, + 0xf4, 0x3e, 0x21, 0x68, 0xfe, 0x6f, 0x83, 0xad, 0xb5, 0xe6, 0xde, 0x33, 0x96, 0x32, 0xcf, 0xba, + 0x74, 0x84, 0xb1, 0xff, 0x1f, 0x0c, 0x9e, 0xf4, 0x2a, 0xa6, 0xcf, 0xdb, 0x30, 0xce, 0x3f, 0x4e, + 0x20, 0x12, 0x46, 0x55, 0x2e, 0xbc, 0x20, 0x39, 0x95, 0xe0, 0x9f, 0x38, 0xb0, 0x04, 0x01, 0x73, + 0x99, 0xf5, 0xdc, 0x5b, 0x34, 0x3c, 0x07, 0x93, 0x6e, 0x25, 0x96, 0xfa, 0x64, 0xd6, 0x68, 0x4f, + 0x31, 0x1a, 0xc7, 0x3f, 0x99, 0x65, 0xfe, 0x77, 0xd1, 0x1f, 0xd1, 0xa8, 0x51, 0xdf, 0x82, 0xb9, + 0x06, 0x05, 0x36, 0x0f, 0xd4, 0x07, 0x77, 0xd8, 0x5c, 0x51, 0xf1, 0x58, 0x39, 0x5b, 0x37, 0xa8, + 0x6b, 0xd5, 0x5b, 0x1a, 0xa8, 0x8e, 0xd5, 0x75, 0x83, 0x18, 0xf8, 0xd0, 0xa1, 0xef, 0x52, 0x75, + 0x39, 0x74, 0xf4, 0x37, 0x29, 0xb1, 0x9c, 0xbc, 0xa5, 0xa4, 0x3c, 0xaa, 0x01, 0x8d, 0xf6, 0xb6, + 0x63, 0xf3, 0xfc, 0x3c, 0x55, 0xdb, 0xc6, 0xa8, 0xe6, 0xeb, 0x50, 0x16, 0x8b, 0x20, 0xbe, 0x9b, + 0x82, 0x56, 0xd4, 0xda, 0xb2, 0xa5, 0x4e, 0xdc, 0xa6, 0xe7, 0x06, 0x16, 0x42, 0xcd, 0x1f, 0x1a, + 0x70, 0x59, 0x7c, 0x2f, 0xc1, 0xa2, 0x21, 0x33, 0xd7, 0xf0, 0x42, 0x8b, 0x78, 0xc7, 0xe0, 0x5d, + 0xf9, 0xfc, 0x80, 0xae, 0x8b, 0xd2, 0x75, 0xd4, 0xa6, 0xc5, 0xf8, 0x8f, 0xe1, 0x03, 0x04, 0xf2, + 0xd9, 0x81, 0xb7, 0xc5, 0xb3, 0x03, 0xb9, 0xa3, 0x89, 0xe3, 0x29, 0xe8, 0xd2, 0x8e, 0x7c, 0x6e, + 0xe0, 0x07, 0x39, 0x98, 0xcd, 0x68, 0xd6, 0xa9, 0x7d, 0x5e, 0xa2, 0xa6, 0xad, 0x43, 0xf9, 0x2e, + 0xcd, 0x50, 0xc1, 0x67, 0x2d, 0xcb, 0x57, 0x5e, 0x4e, 0x7f, 0xb2, 0x97, 0x4c, 0x40, 0xde, 0xaa, + 0x3e, 0x2a, 0x9f, 0x21, 0x00, 0xe3, 0x9b, 0x77, 0x97, 0xea, 0xb7, 0x6e, 0x95, 0x8d, 0x57, 0x3e, + 0x80, 0x29, 0xf5, 0xad, 0x27, 0x52, 0x84, 0xc2, 0xfd, 0x8d, 0xfb, 0x2b, 0xe5, 0x33, 0x64, 0x12, + 0x26, 0x36, 0x57, 0xee, 0x2f, 0xaf, 0xdd, 0xbf, 0x53, 0x36, 0xc8, 0x14, 0x14, 0xab, 0x9b, 0x9b, + 0xd6, 0xc6, 0xc3, 0x95, 0xe5, 0x72, 0x8e, 0x31, 0x58, 0x5e, 0xb9, 0xbf, 0xb6, 0xb2, 0x5c, 0xce, + 0xd7, 0xca, 0x9f, 0xfc, 0xc9, 0x0b, 0x67, 0x3e, 0xf9, 0xf9, 0x0b, 0xc6, 0xcf, 0x7e, 0xfe, 0x82, + 0xf1, 0xdf, 0x7e, 0xfe, 0x82, 0xd1, 0x18, 0xc7, 0xc5, 0xf7, 0xc6, 0xff, 0x0f, 0x00, 0x00, 0xff, + 0xff, 0x06, 0xa9, 0x1c, 0x0b, 0xe5, 0x8e, 0x00, 0x00, } func (m *KeepAlive) Marshal() (dAtA []byte, err error) { @@ -12076,6 +12080,17 @@ func (m *RoleConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.AWSRoleARNs) > 0 { + for iNdEx := len(m.AWSRoleARNs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AWSRoleARNs[iNdEx]) + copy(dAtA[i:], m.AWSRoleARNs[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AWSRoleARNs[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } if m.ReviewRequests != nil { { size, err := m.ReviewRequests.MarshalToSizedBuffer(dAtA[:i]) @@ -18123,6 +18138,12 @@ func (m *RoleConditions) Size() (n int) { l = m.ReviewRequests.Size() n += 1 + l + sovTypes(uint64(l)) } + if len(m.AWSRoleARNs) > 0 { + for _, s := range m.AWSRoleARNs { + l = len(s) + n += 2 + l + sovTypes(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -34032,6 +34053,38 @@ func (m *RoleConditions) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AWSRoleARNs", 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.AWSRoleARNs = append(m.AWSRoleARNs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) diff --git a/api/types/types.proto b/api/types/types.proto index cb305927445ae..d73deaa81d786 100644 --- a/api/types/types.proto +++ b/api/types/types.proto @@ -1345,6 +1345,9 @@ message RoleConditions { // ReviewRequests defines conditions for submitting access reviews. AccessReviewConditions ReviewRequests = 15 [ (gogoproto.jsontag) = "review_requests,omitempty" ]; + + // AWSRoleARNs is a list of AWS role ARNs this role is allowed to assume. + repeated string AWSRoleARNs = 16 [ (gogoproto.jsontag) = "aws_role_arns,omitempty" ]; } // AccessRequestConditions is a matcher for allow/deny restrictions on diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 06b928515fca2..3ba0560fa85c2 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -568,6 +568,8 @@ type certRequest struct { appClusterName string // appName is the name of the application to generate cert for. appName string + // awsRoleARN is the role ARN to generate certificate for. + awsRoleARN string // dbService identifies the name of the database service requests will // be routed to. dbService string @@ -649,6 +651,8 @@ type AppTestCertRequest struct { ClusterName string // SessionID is the optional session ID to encode. Used for routing. SessionID string + // AWSRoleARN is optional AWS role ARN a user wants to assume to encode. + AWSRoleARN string } // GenerateUserAppTestCert generates an application specific certificate, used @@ -683,6 +687,7 @@ func (a *Server) GenerateUserAppTestCert(req AppTestCertRequest) ([]byte, error) appSessionID: sessionID, appPublicAddr: req.PublicAddr, appClusterName: req.ClusterName, + awsRoleARN: req.AWSRoleARN, }) if err != nil { return nil, trace.Wrap(err) @@ -868,6 +873,12 @@ func (a *Server) generateUserCert(req certRequest) (*certs, error) { return nil, trace.Wrap(err) } + // See which AWS role ARNs this user is allowed to assume. + roleARNs, err := req.checker.CheckAWSRoleARNs(sessionTTL, req.overrideRoleTTL) + if err != nil && !trace.IsNotFound(err) { + return nil, trace.Wrap(err) + } + // generate TLS certificate tlsAuthority, err := tlsca.FromAuthority(ca) if err != nil { @@ -889,6 +900,7 @@ func (a *Server) generateUserCert(req certRequest) (*certs, error) { PublicAddr: req.appPublicAddr, ClusterName: req.appClusterName, Name: req.appName, + AWSRoleARN: req.awsRoleARN, }, TeleportCluster: clusterName, RouteToDatabase: tlsca.RouteToDatabase{ @@ -901,6 +913,7 @@ func (a *Server) generateUserCert(req certRequest) (*certs, error) { DatabaseUsers: dbUsers, MFAVerified: req.mfaVerified, ClientIP: req.clientIP, + AWSRoleARNs: roleARNs, } subject, err := identity.Subject() if err != nil { diff --git a/lib/auth/grpcserver.go b/lib/auth/grpcserver.go index b06cf110ca8b8..44fd0ba736719 100644 --- a/lib/auth/grpcserver.go +++ b/lib/auth/grpcserver.go @@ -1074,6 +1074,7 @@ func (g *GRPCServer) CreateAppSession(ctx context.Context, req *proto.CreateAppS Username: req.GetUsername(), PublicAddr: req.GetPublicAddr(), ClusterName: req.GetClusterName(), + AWSRoleARN: req.GetAWSRoleARN(), }) if err != nil { return nil, trace.Wrap(err) diff --git a/lib/auth/sessions.go b/lib/auth/sessions.go index 2f27389e67920..988fadb2729da 100644 --- a/lib/auth/sessions.go +++ b/lib/auth/sessions.go @@ -77,6 +77,7 @@ func (s *Server) CreateAppSession(ctx context.Context, req types.CreateAppSessio appSessionID: uuid.New(), appPublicAddr: req.PublicAddr, appClusterName: req.ClusterName, + awsRoleARN: req.AWSRoleARN, }) if err != nil { return nil, trace.Wrap(err) diff --git a/lib/services/role.go b/lib/services/role.go index ab311d9951254..0fa0e70a2b1f4 100644 --- a/lib/services/role.go +++ b/lib/services/role.go @@ -375,6 +375,20 @@ func ApplyTraits(r types.Role, traits map[string][]string) types.Role { r.SetLogins(condition, apiutils.Deduplicate(outLogins)) + inRoleARNs := r.GetAWSRoleARNs(condition) + var outRoleARNs []string + for _, arn := range inRoleARNs { + variableValues, err := ApplyValueTraits(arn, traits) + if err != nil { + if !trace.IsNotFound(err) { + log.Debugf("Skipping AWS role ARN %v: %v.", arn, err) + } + continue + } + outRoleARNs = append(outRoleARNs, variableValues...) + } + r.SetAWSRoleARNs(condition, apiutils.Deduplicate(outRoleARNs)) + // apply templates to kubernetes groups inKubeGroups := r.GetKubeGroups(condition) var outKubeGroups []string @@ -750,6 +764,9 @@ type AccessChecker interface { // and returns two lists of combined allowed groups and users CheckKubeGroupsAndUsers(ttl time.Duration, overrideTTL bool) (groups []string, users []string, err error) + // CheckAWSRoleARNs returns a list of AWS role ARNs role is allowed to assume. + CheckAWSRoleARNs(ttl time.Duration, overrideTTL bool) ([]string, error) + // AdjustSessionTTL will reduce the requested ttl to lowest max allowed TTL // for this role set, otherwise it returns ttl unchanged AdjustSessionTTL(ttl time.Duration) time.Duration @@ -791,10 +808,10 @@ type AccessChecker interface { EnhancedRecordingSet() map[string]bool // CheckAccessToApp checks access to an application. - CheckAccessToApp(login string, app *types.App, mfa AccessMFAParams) error + CheckAccessToApp(namespace string, app *types.App, mfa AccessMFAParams, matchers ...RoleMatcher) error // CheckAccessToKubernetes checks access to a kubernetes cluster. - CheckAccessToKubernetes(login string, app *types.KubernetesCluster, mfa AccessMFAParams) error + CheckAccessToKubernetes(namespace string, app *types.KubernetesCluster, mfa AccessMFAParams) error // CheckDatabaseNamesAndUsers returns database names and users this role // is allowed to use. @@ -1001,6 +1018,16 @@ func MatchLogin(selectors []string, login string) (bool, string) { return false, fmt.Sprintf("no match, role selectors %v, login: %v", selectors, login) } +// MatchAWSRoleARN returns true if provided role ARN matches selectors. +func MatchAWSRoleARN(selectors []string, roleARN string) (bool, string) { + for _, l := range selectors { + if l == roleARN { + return true, "matched" + } + } + return false, fmt.Sprintf("no match, role selectors %v, role ARN: %v", selectors, roleARN) +} + // MatchDatabaseName returns true if provided database name matches selectors. func MatchDatabaseName(selectors []string, name string) (bool, string) { for _, n := range selectors { @@ -1235,6 +1262,33 @@ func (set RoleSet) CheckDatabaseNamesAndUsers(ttl time.Duration, overrideTTL boo return utils.StringsSliceFromSet(names), utils.StringsSliceFromSet(users), nil } +// CheckAWSRoleARNs returns a list of AWS role ARNs this role set is allowed to assume. +func (set RoleSet) CheckAWSRoleARNs(ttl time.Duration, overrideTTL bool) ([]string, error) { + arns := make(map[string]struct{}) + var matchedTTL bool + for _, role := range set { + maxSessionTTL := role.GetOptions().MaxSessionTTL.Value() + if overrideTTL || (ttl <= maxSessionTTL && maxSessionTTL != 0) { + matchedTTL = true + for _, arn := range role.GetAWSRoleARNs(Allow) { + arns[arn] = struct{}{} + } + } + } + for _, role := range set { + for _, arn := range role.GetAWSRoleARNs(Deny) { + delete(arns, arn) + } + } + if !matchedTTL { + return nil, trace.AccessDenied("this user cannot request AWS management console access for %v", ttl) + } + if len(arns) == 0 { + return nil, trace.NotFound("this user cannot request AWS management console, has no assigned role ARNs") + } + return utils.StringsSliceFromSet(arns), nil +} + // CheckLoginDuration checks if role set can login up to given duration and // returns a combined list of allowed logins. func (set RoleSet) CheckLoginDuration(ttl time.Duration) ([]string, error) { @@ -1449,10 +1503,26 @@ func (set RoleSet) CheckAccessToServer(login string, s types.Server, mfa AccessM return trace.AccessDenied("access to server denied") } +// AWSRoleARNMatcher matches a role against AWS role ARN. +type AWSRoleARNMatcher struct { + RoleARN string +} + +// Match matches database account name against provided role and condition. +func (m *AWSRoleARNMatcher) Match(role types.Role, condition types.RoleConditionType) (bool, error) { + match, _ := MatchAWSRoleARN(role.GetAWSRoleARNs(condition), m.RoleARN) + return match, nil +} + +// String returns the matcher's string representation. +func (m *AWSRoleARNMatcher) String() string { + return fmt.Sprintf("AWSRoleARNMatcher(RoleARN=%v)", m.RoleARN) +} + // CheckAccessToApp checks if a role has access to an application. Deny rules // are checked first, then allow rules. Access to an application is determined by // namespaces and labels. -func (set RoleSet) CheckAccessToApp(namespace string, app *types.App, mfa AccessMFAParams) error { +func (set RoleSet) CheckAccessToApp(namespace string, app *types.App, mfa AccessMFAParams, matchers ...RoleMatcher) error { if mfa.AlwaysRequired && !mfa.Verified { log.WithFields(log.Fields{ trace.Component: teleport.ComponentRBAC, @@ -1469,7 +1539,11 @@ func (set RoleSet) CheckAccessToApp(namespace string, app *types.App, mfa Access if err != nil { return trace.Wrap(err) } - if matchNamespace && matchLabels { + matchMatchers, _, err := RoleMatchers(matchers).MatchAny(role, Deny) + if err != nil { + return trace.Wrap(err) + } + if matchNamespace && (matchLabels || matchMatchers) { if log.GetLevel() == log.DebugLevel { log.WithFields(log.Fields{ trace.Component: teleport.ComponentRBAC, @@ -1488,7 +1562,11 @@ func (set RoleSet) CheckAccessToApp(namespace string, app *types.App, mfa Access if err != nil { return trace.Wrap(err) } - if matchNamespace && matchLabels { + matchMatchers, err := RoleMatchers(matchers).MatchAll(role, Allow) + if err != nil { + return trace.Wrap(err) + } + if matchNamespace && matchLabels && matchMatchers { if mfa.Verified { return nil } diff --git a/lib/services/role_test.go b/lib/services/role_test.go index 7914ac58430ac..ffc8b4191edbf 100644 --- a/lib/services/role_test.go +++ b/lib/services/role_test.go @@ -1545,6 +1545,8 @@ func TestApplyTraits(t *testing.T) { type rule struct { inLogins []string outLogins []string + inRoleARNs []string + outRoleARNs []string inLabels types.Labels outLabels types.Labels inKubeLabels types.Labels @@ -1611,6 +1613,26 @@ func TestApplyTraits(t *testing.T) { outLogins: []string{"bar"}, }, }, + { + comment: "AWS role ARN substitute in allow rule", + inTraits: map[string][]string{ + "foo": {"bar"}, + }, + allow: rule{ + inRoleARNs: []string{"{{external.foo}}"}, + outRoleARNs: []string{"bar"}, + }, + }, + { + comment: "AWS role ARN substitute in deny rule", + inTraits: map[string][]string{ + "foo": {"bar"}, + }, + deny: rule{ + inRoleARNs: []string{"{{external.foo}}"}, + outRoleARNs: []string{"bar"}, + }, + }, { comment: "kube group substitute in allow rule", inTraits: map[string][]string{ @@ -2662,6 +2684,111 @@ func TestCheckAccessToDatabaseService(t *testing.T) { } } +// TestCheckAccessToAWSConsole verifies AWS role ARNs access checker. +func TestCheckAccessToAWSConsole(t *testing.T) { + app := &types.App{ + Name: "awsconsole", + URI: constants.AWSConsoleURL, + } + readOnlyARN := "readonly" + fullAccessARN := "fullaccess" + roleNoAccess := &types.RoleV4{ + Metadata: types.Metadata{ + Name: "noaccess", + Namespace: defaults.Namespace, + }, + Spec: types.RoleSpecV4{ + Allow: types.RoleConditions{ + Namespaces: []string{defaults.Namespace}, + AppLabels: types.Labels{types.Wildcard: []string{types.Wildcard}}, + AWSRoleARNs: []string{}, + }, + }, + } + roleReadOnly := &types.RoleV4{ + Metadata: types.Metadata{ + Name: "readonly", + Namespace: defaults.Namespace, + }, + Spec: types.RoleSpecV4{ + Allow: types.RoleConditions{ + Namespaces: []string{defaults.Namespace}, + AppLabels: types.Labels{types.Wildcard: []string{types.Wildcard}}, + AWSRoleARNs: []string{readOnlyARN}, + }, + }, + } + roleFullAccess := &types.RoleV4{ + Metadata: types.Metadata{ + Name: "fullaccess", + Namespace: defaults.Namespace, + }, + Spec: types.RoleSpecV4{ + Allow: types.RoleConditions{ + Namespaces: []string{defaults.Namespace}, + AppLabels: types.Labels{types.Wildcard: []string{types.Wildcard}}, + AWSRoleARNs: []string{readOnlyARN, fullAccessARN}, + }, + }, + } + type access struct { + roleARN string + hasAccess bool + } + tests := []struct { + name string + roles RoleSet + access []access + }{ + { + name: "empty role set", + roles: nil, + access: []access{ + {roleARN: readOnlyARN, hasAccess: false}, + {roleARN: fullAccessARN, hasAccess: false}, + }, + }, + { + name: "no access role", + roles: RoleSet{roleNoAccess}, + access: []access{ + {roleARN: readOnlyARN, hasAccess: false}, + {roleARN: fullAccessARN, hasAccess: false}, + }, + }, + { + name: "readonly role", + roles: RoleSet{roleReadOnly}, + access: []access{ + {roleARN: readOnlyARN, hasAccess: true}, + {roleARN: fullAccessARN, hasAccess: false}, + }, + }, + { + name: "full access role", + roles: RoleSet{roleFullAccess}, + access: []access{ + {roleARN: readOnlyARN, hasAccess: true}, + {roleARN: fullAccessARN, hasAccess: true}, + }, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + for _, access := range test.access { + err := test.roles.CheckAccessToApp(defaults.Namespace, app, AccessMFAParams{}, + &AWSRoleARNMatcher{RoleARN: access.roleARN}) + if access.hasAccess { + require.NoError(t, err) + } else { + require.Error(t, err) + require.True(t, trace.IsAccessDenied(err)) + } + } + }) + } +} + func TestCheckAccessToKubernetes(t *testing.T) { clusterNoLabels := &types.KubernetesCluster{ Name: "no-labels", diff --git a/lib/srv/app/cloud.go b/lib/srv/app/cloud.go new file mode 100644 index 0000000000000..4d3102a91b7ea --- /dev/null +++ b/lib/srv/app/cloud.go @@ -0,0 +1,227 @@ +/* +Copyright 2021 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package app + +import ( + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "time" + + "github.com/gravitational/teleport/lib/tlsca" + + "github.com/aws/aws-sdk-go/aws/arn" + "github.com/aws/aws-sdk-go/aws/credentials/stscreds" + awssession "github.com/aws/aws-sdk-go/aws/session" + + "github.com/gravitational/trace" + "github.com/jonboulle/clockwork" + "github.com/sirupsen/logrus" +) + +// Cloud provides cloud provider access related methods such as generating +// sign in URLs for management consoles. +type Cloud interface { + // GetAWSSigninURL generates AWS management console federation sign-in URL. + GetAWSSigninURL(AWSSigninRequest) (*AWSSigninResponse, error) +} + +// AWSSigninRequest is a request to generate AWS console signin URL. +type AWSSigninRequest struct { + // Identity is the identity of the user requesting signin URL. + Identity *tlsca.Identity + // TargetURL is the target URL within the console. + TargetURL string + // Issuer is the application public URL. + Issuer string +} + +// CheckAndSetDefaults validates the request. +func (r *AWSSigninRequest) CheckAndSetDefaults() error { + if r.Identity == nil { + return trace.BadParameter("missing Identity") + } + _, err := arn.Parse(r.Identity.RouteToApp.AWSRoleARN) + if err != nil { + return trace.Wrap(err) + } + if r.TargetURL == "" { + r.TargetURL = consoleURL + } + if r.Issuer == "" { + return trace.BadParameter("missing Issuer") + } + return nil +} + +// AWSSigninResponse contains AWS console signin URL. +type AWSSigninResponse struct { + // SigninURL is the console signin URL. + SigninURL string +} + +// CloudConfig is the configuration for cloud service. +type CloudConfig struct { + // Session is AWS session. + Session *awssession.Session + // Clock is used to override time in tests. + Clock clockwork.Clock +} + +// CheckAndSetDefaults validates the config. +func (c *CloudConfig) CheckAndSetDefaults() error { + if c.Session == nil { + session, err := awssession.NewSessionWithOptions(awssession.Options{ + SharedConfigState: awssession.SharedConfigEnable, + }) + if err != nil { + return trace.Wrap(err) + } + c.Session = session + } + if c.Clock == nil { + c.Clock = clockwork.NewRealClock() + } + return nil +} + +type cloud struct { + cfg CloudConfig + log logrus.FieldLogger +} + +// NewCloud creates a new cloud service. +func NewCloud(cfg CloudConfig) (Cloud, error) { + if err := cfg.CheckAndSetDefaults(); err != nil { + return nil, trace.Wrap(err) + } + return &cloud{ + cfg: cfg, + log: logrus.WithField(trace.Component, "cloud"), + }, nil +} + +// GetAWSSigninURL generates AWS management console federation sign-in URL. +// +// https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html +func (c *cloud) GetAWSSigninURL(req AWSSigninRequest) (*AWSSigninResponse, error) { + err := req.CheckAndSetDefaults() + if err != nil { + return nil, trace.Wrap(err) + } + + stsCredentials, err := stscreds.NewCredentials(c.cfg.Session, req.Identity.RouteToApp.AWSRoleARN, + func(creds *stscreds.AssumeRoleProvider) { + // Setting role session name to Teleport username will allow to + // associate CloudTrail events with the Teleport user. + creds.RoleSessionName = req.Identity.Username + }).Get() + if err != nil { + return nil, trace.Wrap(err) + } + + tokenURL, err := url.Parse(federationURL) + if err != nil { + return nil, trace.Wrap(err) + } + + sessionBytes, err := json.Marshal(stsSession{ + SessionID: stsCredentials.AccessKeyID, + SessionKey: stsCredentials.SecretAccessKey, + SessionToken: stsCredentials.SessionToken, + }) + if err != nil { + return nil, trace.Wrap(err) + } + + // Max AWS federation session duration is 12 hours. The federation endpoint + // will error out if we request more. + duration := req.Identity.Expires.Sub(c.cfg.Clock.Now()) + if duration > maxSessionDuration { + duration = maxSessionDuration + } + + tokenURL.RawQuery = url.Values{ + "Action": []string{"getSigninToken"}, + "SessionDuration": []string{fmt.Sprintf("%d", int(duration.Seconds()))}, + "Session": []string{string(sessionBytes)}, + }.Encode() + + resp, err := http.Get(tokenURL.String()) + if err != nil { + return nil, trace.Wrap(err) + } + + respBytes, err := io.ReadAll(resp.Body) + if err != nil { + return nil, trace.Wrap(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, trace.BadParameter("non-200 response from AWS federation endpoint: %q %v %q", + resp.Status, resp.Header, string(respBytes)) + } + + var fedResp federationResponse + if err := json.Unmarshal(respBytes, &fedResp); err != nil { + return nil, trace.Wrap(err) + } + + signinURL, err := url.Parse(federationURL) + if err != nil { + return nil, trace.Wrap(err) + } + + signinURL.RawQuery = url.Values{ + "Action": []string{"login"}, + "SigninToken": []string{fedResp.SigninToken}, + "Destination": []string{req.TargetURL}, + "Issuer": []string{req.Issuer}, + }.Encode() + + return &AWSSigninResponse{ + SigninURL: signinURL.String(), + }, nil +} + +// stsSession combines parameters describing session built from temporary credentials. +type stsSession struct { + // SessionID is the assumed credentials access key ID. + SessionID string `json:"sessionId"` + // SessionKey is the assumed credentials secret access key. + SessionKey string `json:"sessionKey"` + // SessionToken is the assumed credentials session token. + SessionToken string `json:"sessionToken"` +} + +// federationResponse describes response returned by the federation endpoint. +type federationResponse struct { + // SigninToken is the AWS console federation signin token. + SigninToken string `json:"SigninToken"` +} + +const ( + // federationURL is the AWS federation endpoint. + federationURL = "https://signin.aws.amazon.com/federation" + // consoleURL is the default AWS console destination. + consoleURL = "https://console.aws.amazon.com/ec2/v2/home" + // maxSessionDuration is the max federation session duration. + maxSessionDuration = 12 * time.Hour +) diff --git a/lib/srv/app/server.go b/lib/srv/app/server.go index bb0465019b372..c85591ee94dbe 100644 --- a/lib/srv/app/server.go +++ b/lib/srv/app/server.go @@ -79,6 +79,9 @@ type Config struct { // OnHeartbeat is called after every heartbeat. Used to update process state. OnHeartbeat func(error) + + // Cloud provides cloud provider access related functionality. + Cloud Cloud } // CheckAndSetDefaults makes sure the configuration has the minimum required @@ -115,6 +118,13 @@ func (c *Config) CheckAndSetDefaults() error { if c.OnHeartbeat == nil { return trace.BadParameter("heartbeat missing") } + if c.Cloud == nil { + cloud, err := NewCloud(CloudConfig{}) + if err != nil { + return trace.Wrap(err) + } + c.Cloud = cloud + } return nil } @@ -341,6 +351,23 @@ func (s *Server) serveHTTP(w http.ResponseWriter, r *http.Request) error { return trace.Wrap(err) } + // If this application is AWS management console, generate a sign-in URL + // and redirect the user to it. + if app.IsAWSConsole() { + s.log.Debugf("Redirecting %v to AWS mananement console with role %v.", + identity.Username, identity.RouteToApp.AWSRoleARN) + url, err := s.c.Cloud.GetAWSSigninURL(AWSSigninRequest{ + Identity: identity, + TargetURL: app.URI, + Issuer: app.PublicAddr, + }) + if err != nil { + return trace.Wrap(err) + } + http.Redirect(w, r, url.SigninURL, http.StatusFound) + return nil + } + // Fetch a cached request forwarder (or create one) that lives about 5 // minutes. Used to stream session chunks to the Audit Log. session, err := s.getSession(r.Context(), identity, app) @@ -384,7 +411,17 @@ func (s *Server) authorize(ctx context.Context, r *http.Request) (*tlsca.Identit Verified: identity.MFAVerified != "", AlwaysRequired: ap.GetRequireSessionMFA(), } - err = authContext.Checker.CheckAccessToApp(apidefaults.Namespace, app, mfaParams) + + // When accessing AWS management console, check permissions to assume + // requested IAM role as well. + var matchers []services.RoleMatcher + if app.IsAWSConsole() { + matchers = append(matchers, &services.AWSRoleARNMatcher{ + RoleARN: identity.RouteToApp.AWSRoleARN, + }) + } + + err = authContext.Checker.CheckAccessToApp(apidefaults.Namespace, app, mfaParams, matchers...) if err != nil { return nil, nil, utils.OpaqueAccessDenied(err) } diff --git a/lib/srv/app/server_test.go b/lib/srv/app/server_test.go index b296941c14729..efc0171839a5b 100644 --- a/lib/srv/app/server_test.go +++ b/lib/srv/app/server_test.go @@ -64,13 +64,14 @@ type Suite struct { server types.Server hostCertPool *x509.CertPool - hostUUID string - closeContext context.Context - closeFunc context.CancelFunc - message string - hostport string - testhttp *httptest.Server - clientCertificate tls.Certificate + hostUUID string + closeContext context.Context + closeFunc context.CancelFunc + message string + hostport string + testhttp *httptest.Server + clientCertificate tls.Certificate + awsConsoleCertificate tls.Certificate user types.User role types.Role @@ -101,6 +102,7 @@ func (s *Suite) SetUpSuite(c *check.C) { // Grant the user's role access to the application label "bar: baz". s.role.SetAppLabels(services.Allow, types.Labels{"bar": []string{"baz"}}) + s.role.SetAWSRoleARNs(services.Allow, []string{"readonly"}) err = s.tlsServer.Auth().UpsertRole(context.Background(), s.role) c.Assert(err, check.IsNil) @@ -118,6 +120,21 @@ func (s *Suite) TearDownSuite(c *check.C) { c.Assert(err, check.IsNil) } +var ( + staticLabels = map[string]string{ + "bar": "baz", + } + dynamicLabelName = "qux" + dynamicLabelPeriod = types.NewDuration(time.Second) + dynamicLabelCommand = []string{"expr", "1", "+", "3"} + dynamicLabels = map[string]types.CommandLabel{ + dynamicLabelName: &types.CommandLabelV2{ + Period: dynamicLabelPeriod, + Command: dynamicLabelCommand, + }, + } +) + func (s *Suite) SetUpTest(c *check.C) { s.closeContext, s.closeFunc = context.WithCancel(context.Background()) @@ -138,15 +155,6 @@ func (s *Suite) SetUpTest(c *check.C) { s.hostport = u.Host // Create a services.App that will be used for each test. - staticLabels := map[string]string{ - "bar": "baz", - } - dynamicLabels := map[string]types.CommandLabel{ - "qux": &types.CommandLabelV2{ - Period: types.NewDuration(time.Second), - Command: []string{"expr", "1", "+", "3"}, - }, - } s.hostUUID = uuid.New() s.server = &types.ServerV2{ Kind: types.KindAppServer, @@ -165,6 +173,12 @@ func (s *Suite) SetUpTest(c *check.C) { StaticLabels: staticLabels, DynamicLabels: types.LabelsToV2(dynamicLabels), }, + { + Name: "awsconsole", + URI: constants.AWSConsoleURL, + PublicAddr: "aws.example.com", + StaticLabels: staticLabels, + }, }, }, } @@ -193,6 +207,21 @@ func (s *Suite) SetUpTest(c *check.C) { s.clientCertificate, err = tls.X509KeyPair(certificate, privateKey) c.Assert(err, check.IsNil) + // Generate certificate for AWS console application. + privateKey, publicKey, err = s.tlsServer.Auth().GenerateKeyPair("") + c.Assert(err, check.IsNil) + certificate, err = s.tlsServer.Auth().GenerateUserAppTestCert(auth.AppTestCertRequest{ + PublicKey: publicKey, + Username: s.user.GetName(), + TTL: 1 * time.Hour, + PublicAddr: "aws.example.com", + ClusterName: "root.example.com", + AWSRoleARN: "readonly", + }) + c.Assert(err, check.IsNil) + s.awsConsoleCertificate, err = tls.X509KeyPair(certificate, privateKey) + c.Assert(err, check.IsNil) + // Make sure the upload directory is created. err = os.MkdirAll(filepath.Join( s.dataDir, teleport.LogsDir, teleport.ComponentUpload, @@ -214,6 +243,7 @@ func (s *Suite) SetUpTest(c *check.C) { GetRotation: testRotationGetter, Server: s.server, OnHeartbeat: func(err error) {}, + Cloud: &testCloud{}, }) c.Assert(err, check.IsNil) @@ -246,18 +276,28 @@ func (s *Suite) TestStart(c *check.C) { // Check that the services.Server sent via heartbeat is correct. For example, // check that the dynamic labels have been evaluated. - c.Assert(server.GetApps(), check.HasLen, 1) - app := server.GetApps()[0] - c.Assert(app.Name, check.Equals, "foo") - c.Assert(app.URI, check.Equals, s.testhttp.URL) - c.Assert(app.PublicAddr, check.Equals, "foo.example.com") - c.Assert(app.StaticLabels, check.DeepEquals, map[string]string{ - "bar": "baz", + c.Assert(server.GetApps(), check.DeepEquals, []*types.App{ + { + Name: "foo", + URI: s.testhttp.URL, + PublicAddr: "foo.example.com", + StaticLabels: staticLabels, + DynamicLabels: map[string]types.CommandLabelV2{ + dynamicLabelName: { + Period: dynamicLabelPeriod, + Command: dynamicLabelCommand, + Result: "4", + }, + }, + }, + { + Name: "awsconsole", + URI: constants.AWSConsoleURL, + PublicAddr: "aws.example.com", + StaticLabels: staticLabels, + }, }) - dynamicLabel, ok := app.DynamicLabels["qux"] - c.Assert(ok, check.Equals, true) - c.Assert(dynamicLabel.GetResult(), check.Equals, "4") // Check the expiry time is correct. c.Assert(s.clock.Now().Before(server.Expiry()), check.Equals, true) @@ -340,6 +380,60 @@ func (s *Suite) TestHandleConnection(c *check.C) { wg.Wait() } +// TestAWSConsoleRedirect verifies AWS management console access. +func (s *Suite) TestAWSConsoleRedirect(c *check.C) { + pr, pw := net.Pipe() + defer pw.Close() + defer pr.Close() + + // Create an HTTP client authenticated with the user's credentials. This acts + // like the proxy does. + httpClient := &http.Client{ + Transport: &http.Transport{ + DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) { + return pr, nil + }, + TLSClientConfig: &tls.Config{ + RootCAs: s.hostCertPool, + Certificates: []tls.Certificate{s.awsConsoleCertificate}, + Time: s.clock.Now, + }, + }, + // Prevent client from following redirect to be able to test redirect + // to generated AWS management console signin URL. + CheckRedirect: func(req *http.Request, via []*http.Request) error { + return http.ErrUseLastResponse + }, + } + + var wg sync.WaitGroup + wg.Add(1) + + // Handle the connection in another goroutine. + go func() { + s.appServer.HandleConnection(pw) + wg.Done() + }() + + // Issue request and make sure we got redirected to AWS signin URL. + resp, err := httpClient.Get("https://" + constants.APIDomain) + c.Assert(err, check.IsNil) + c.Assert(resp.StatusCode, check.Equals, http.StatusFound) + location, err := resp.Location() + c.Assert(err, check.IsNil) + c.Assert(location.String(), check.Equals, "https://signin.aws.amazon.com") + c.Assert(resp.Body.Close(), check.IsNil) + + // Context will close because of the net.Pipe, expect a context canceled + // error here. + err = s.appServer.Close() + c.Assert(err, check.NotNil) + + // Wait for the application server to actually stop serving before + // closing the test. This will make sure the server removes the listeners + wg.Wait() +} + // TestAuthorize verifies that only authorized requests are handled. func (s *Suite) TestAuthorize(c *check.C) { } @@ -363,3 +457,11 @@ func (s *Suite) TestSessionClose(c *check.C) { func testRotationGetter(role types.SystemRole) (*types.Rotation, error) { return &types.Rotation{}, nil } + +type testCloud struct{} + +func (c *testCloud) GetAWSSigninURL(_ AWSSigninRequest) (*AWSSigninResponse, error) { + return &AWSSigninResponse{ + SigninURL: "https://signin.aws.amazon.com", + }, nil +} diff --git a/lib/srv/app/session.go b/lib/srv/app/session.go index 06c06cd9cc450..0703cf5dde2c9 100644 --- a/lib/srv/app/session.go +++ b/lib/srv/app/session.go @@ -81,6 +81,7 @@ func (s *Server) newSession(ctx context.Context, identity *tlsca.Identity, app * rewrite: app.Rewrite, traits: identity.Traits, log: s.log, + user: identity.Username, }) if err != nil { return nil, trace.Wrap(err) diff --git a/lib/srv/app/transport.go b/lib/srv/app/transport.go index bae99271fd38d..ee4198de64c58 100644 --- a/lib/srv/app/transport.go +++ b/lib/srv/app/transport.go @@ -52,6 +52,7 @@ type transportConfig struct { w events.StreamWriter traits wrappers.Traits log logrus.FieldLogger + user string } // Check validates configuration. diff --git a/lib/tlsca/ca.go b/lib/tlsca/ca.go index 58e694e6367a9..0916473b33b2d 100644 --- a/lib/tlsca/ca.go +++ b/lib/tlsca/ca.go @@ -121,6 +121,8 @@ type Identity struct { MFAVerified string // ClientIP is an observed IP of the client that this Identity represents. ClientIP string + // AWSRoleARNs is a list of allowed AWS role ARNs user can assume. + AWSRoleARNs []string } // RouteToApp holds routing information for applications. @@ -142,6 +144,9 @@ type RouteToApp struct { // Name is the app name. Name string + + // AWSRoleARN is the AWS role to assume when accessing AWS console. + AWSRoleARN string } // RouteToDatabase contains routing information for databases. @@ -238,6 +243,14 @@ var ( // application name into a certificate. AppNameASN1ExtensionOID = asn1.ObjectIdentifier{1, 3, 9999, 1, 10} + // AppAWSRoleARNASN1ExtensionOID is an extension ID used when encoding/decoding + // AWS role ARN into a certificate. + AppAWSRoleARNASN1ExtensionOID = asn1.ObjectIdentifier{1, 3, 9999, 1, 11} + + // AWSRoleARNsASN1ExtensionOID is an extension ID used when encoding/decoding + // allowed AWS role ARNs into a certificate. + AWSRoleARNsASN1ExtensionOID = asn1.ObjectIdentifier{1, 3, 9999, 1, 12} + // DatabaseServiceNameASN1ExtensionOID is an extension ID used when encoding/decoding // database service name into certificates. DatabaseServiceNameASN1ExtensionOID = asn1.ObjectIdentifier{1, 3, 9999, 2, 1} @@ -345,6 +358,20 @@ func (id *Identity) Subject() (pkix.Name, error) { Value: id.RouteToApp.Name, }) } + if id.RouteToApp.AWSRoleARN != "" { + subject.ExtraNames = append(subject.ExtraNames, + pkix.AttributeTypeAndValue{ + Type: AppAWSRoleARNASN1ExtensionOID, + Value: id.RouteToApp.AWSRoleARN, + }) + } + for i := range id.AWSRoleARNs { + subject.ExtraNames = append(subject.ExtraNames, + pkix.AttributeTypeAndValue{ + Type: AWSRoleARNsASN1ExtensionOID, + Value: id.AWSRoleARNs[i], + }) + } if id.TeleportCluster != "" { subject.ExtraNames = append(subject.ExtraNames, pkix.AttributeTypeAndValue{ @@ -481,6 +508,16 @@ func FromSubject(subject pkix.Name, expires time.Time) (*Identity, error) { if ok { id.RouteToApp.Name = val } + case attr.Type.Equal(AppAWSRoleARNASN1ExtensionOID): + val, ok := attr.Value.(string) + if ok { + id.RouteToApp.AWSRoleARN = val + } + case attr.Type.Equal(AWSRoleARNsASN1ExtensionOID): + val, ok := attr.Value.(string) + if ok { + id.AWSRoleARNs = append(id.AWSRoleARNs, val) + } case attr.Type.Equal(TeleportClusterASN1ExtensionOID): val, ok := attr.Value.(string) if ok { diff --git a/lib/utils/aws.go b/lib/utils/aws.go new file mode 100644 index 0000000000000..d9ddb89545caf --- /dev/null +++ b/lib/utils/aws.go @@ -0,0 +1,54 @@ +/* +Copyright 2021 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package utils + +import ( + "strings" + + "github.com/aws/aws-sdk-go/aws/arn" +) + +// FilterAWSRoles returns role ARNs from the provided list that belong to the +// specified AWS account ID. +// +// If AWS account ID is empty, all roles are returned. +func FilterAWSRoles(arns []string, accountID string) (result []AWSRole) { + for _, roleARN := range arns { + parsed, err := arn.Parse(roleARN) + if err != nil || (accountID != "" && parsed.AccountID != accountID) { + continue + } + // Example ARN: arn:aws:iam::1234567890:role/EC2FullAccess. + parts := strings.Split(parsed.Resource, "/") + if len(parts) != 2 || parts[0] != "role" { + continue + } + result = append(result, AWSRole{ + Display: parts[1], + ARN: roleARN, + }) + } + return result +} + +// AWSRole describes an AWS IAM role for AWS console access. +type AWSRole struct { + // Display is the role display name. + Display string `json:"display"` + // ARN is the full role ARN. + ARN string `json:"arn"` +} diff --git a/lib/utils/aws_test.go b/lib/utils/aws_test.go new file mode 100644 index 0000000000000..a7095fbe96383 --- /dev/null +++ b/lib/utils/aws_test.go @@ -0,0 +1,69 @@ +/* +Copyright 2021 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package utils + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +// TestFilterAWSRoles verifies filtering AWS role ARNs by AWS account ID. +func TestFilterAWSRoles(t *testing.T) { + acc1ARN1 := AWSRole{ + ARN: "arn:aws:iam::1234567890:role/EC2FullAccess", + Display: "EC2FullAccess", + } + acc1ARN2 := AWSRole{ + ARN: "arn:aws:iam::1234567890:role/EC2ReadOnly", + Display: "EC2ReadOnly", + } + acc2ARN1 := AWSRole{ + ARN: "arn:aws:iam::0987654321:role/test-role", + Display: "test-role", + } + invalidARN := AWSRole{ + ARN: "invalid-arn", + } + allARNS := []string{ + acc1ARN1.ARN, acc1ARN2.ARN, acc2ARN1.ARN, invalidARN.ARN, + } + tests := []struct { + name string + accountID string + outARNs []AWSRole + }{ + { + name: "first account roles", + accountID: "1234567890", + outARNs: []AWSRole{acc1ARN1, acc1ARN2}, + }, + { + name: "second account roles", + accountID: "0987654321", + outARNs: []AWSRole{acc2ARN1}, + }, + { + name: "all roles", + accountID: "", + outARNs: []AWSRole{acc1ARN1, acc1ARN2, acc2ARN1}, + }, + } + for _, test := range tests { + require.Equal(t, test.outARNs, FilterAWSRoles(allARNS, test.accountID)) + } +} diff --git a/lib/web/app/fragment.go b/lib/web/app/fragment.go index 59c67cf41bdc2..bd0b7dbda5e97 100644 --- a/lib/web/app/fragment.go +++ b/lib/web/app/fragment.go @@ -56,6 +56,7 @@ func (h *Handler) handleFragment(w http.ResponseWriter, r *http.Request, p httpr urlParams := launcherURLParams{ clusterName: q.Get("cluster"), publicAddr: q.Get("addr"), + awsRole: q.Get("awsrole"), stateToken: stateToken, } return h.redirectToLauncher(w, r, urlParams) diff --git a/lib/web/app/middleware.go b/lib/web/app/middleware.go index d226c4c77a5d7..71b98fdde9a2d 100644 --- a/lib/web/app/middleware.go +++ b/lib/web/app/middleware.go @@ -17,7 +17,6 @@ limitations under the License. package app import ( - "fmt" "net/http" "net/url" "path" @@ -77,16 +76,20 @@ func (h *Handler) redirectToLauncher(w http.ResponseWriter, r *http.Request, p l if p.clusterName != "" && p.publicAddr != "" { urlPath = append(urlPath, p.clusterName, p.publicAddr) } - urlQuery := "" + + urlQuery := url.Values{} if p.stateToken != "" { - urlQuery = fmt.Sprintf("state=%v", p.stateToken) + urlQuery.Add("state", p.stateToken) + } + if p.awsRole != "" { + urlQuery.Add("awsrole", p.awsRole) } u := url.URL{ Scheme: "https", Host: h.c.WebPublicAddr, Path: path.Join(urlPath...), - RawQuery: urlQuery, + RawQuery: urlQuery.Encode(), } http.Redirect(w, r, u.String(), http.StatusFound) return nil @@ -96,6 +99,7 @@ type launcherURLParams struct { clusterName string publicAddr string stateToken string + awsRole string } // makeRouterHandler creates a httprouter.Handle. diff --git a/lib/web/apps.go b/lib/web/apps.go index ba950ad61b9bc..5c0d7e0b70d53 100644 --- a/lib/web/apps.go +++ b/lib/web/apps.go @@ -35,7 +35,6 @@ import ( "github.com/gravitational/teleport/lib/web/ui" "github.com/gravitational/trace" - "github.com/julienschmidt/httprouter" ) @@ -43,6 +42,11 @@ import ( func (h *Handler) clusterAppsGet(w http.ResponseWriter, r *http.Request, p httprouter.Params, ctx *SessionContext, site reversetunnel.RemoteSite) (interface{}, error) { appClusterName := p.ByName("site") + identity, err := ctx.GetIdentity() + if err != nil { + return nil, trace.Wrap(err) + } + // Get a list of application servers. clt, err := ctx.GetUserClient(site) if err != nil { @@ -53,7 +57,13 @@ func (h *Handler) clusterAppsGet(w http.ResponseWriter, r *http.Request, p httpr return nil, trace.Wrap(err) } - return makeResponse(ui.MakeApps(h.auth.clusterName, h.proxyDNSName(), appClusterName, appServers)) + return makeResponse(ui.MakeApps(ui.MakeAppsConfig{ + LocalClusterName: h.auth.clusterName, + LocalProxyDNSName: h.proxyDNSName(), + AppClusterName: appClusterName, + Identity: identity, + Apps: appServers, + })) } type GetAppFQDNRequest resolveAppParams @@ -149,6 +159,7 @@ func (h *Handler) createAppSession(w http.ResponseWriter, r *http.Request, p htt Username: ctx.GetUser(), PublicAddr: result.PublicAddr, ClusterName: result.ClusterName, + AWSRoleARN: req.AWSRole, }) if err != nil { return nil, trace.Wrap(err) @@ -189,7 +200,8 @@ func (h *Handler) createAppSession(w http.ResponseWriter, r *http.Request, p htt WithMFA: identity.MFAVerified, }, UserMetadata: apievents.UserMetadata{ - User: ws.GetUser(), + User: ws.GetUser(), + AWSRoleARN: req.AWSRole, }, ConnectionMetadata: apievents.ConnectionMetadata{ RemoteAddr: r.RemoteAddr, @@ -221,6 +233,9 @@ type resolveAppParams struct { // ClusterName is the cluster within which this application is running. ClusterName string `json:"cluster_name"` + + // AWSRole is the AWS role ARN when accessing AWS management console. + AWSRole string `json:"arn,omitempty"` } type resolveAppResult struct { diff --git a/lib/web/sessions.go b/lib/web/sessions.go index a46c6d7fa4bdb..a5c7359fcf0ef 100644 --- a/lib/web/sessions.go +++ b/lib/web/sessions.go @@ -336,6 +336,19 @@ func (c *SessionContext) GetRootClusterRoles() (services.RoleSet, error) { return roleset, nil } +// GetIdentity returns identity parsed from the session's TLS certificate. +func (c *SessionContext) GetIdentity() (*tlsca.Identity, error) { + cert, err := c.GetX509Certificate() + if err != nil { + return nil, trace.Wrap(err) + } + identity, err := tlsca.FromSubject(cert.Subject, cert.NotAfter) + if err != nil { + return nil, trace.Wrap(err) + } + return identity, nil +} + // GetSessionID returns the ID of the underlying user web session. func (c *SessionContext) GetSessionID() string { return c.session.GetName() diff --git a/lib/web/ui/app.go b/lib/web/ui/app.go index 7fe9bf309a40a..fb14132d9d3f8 100644 --- a/lib/web/ui/app.go +++ b/lib/web/ui/app.go @@ -21,12 +21,16 @@ import ( "sort" "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/lib/tlsca" + "github.com/gravitational/teleport/lib/utils" ) // App describes an application type App struct { // Name is the name of the application. Name string `json:"name"` + // Description is the app description. + Description string `json:"description"` // URI is the internal address the application is available at. URI string `json:"uri"` // PublicAddr is the public address the application is accessible at. @@ -37,15 +41,33 @@ type App struct { ClusterID string `json:"clusterId"` // Labels is a map of static labels associated with an application. Labels []Label `json:"labels"` + // AWSConsole if true, indicates that the app represents AWS management console. + AWSConsole bool `json:"awsConsole"` + // AWSRoles is a list of AWS IAM roles for the application representing AWS console. + AWSRoles []utils.AWSRole `json:"awsRoles,omitempty"` +} + +// MakeAppsConfig contains parameters for converting apps to UI representation. +type MakeAppsConfig struct { + // LocalClusterName is the name of the local cluster. + LocalClusterName string + // LocalProxyDNSName is the public hostname of the local cluster. + LocalProxyDNSName string + // AppClusterName is the name of the cluster apps reside in. + AppClusterName string + // Apps is a list of registered apps. + Apps []types.Server + // Identity is identity of the logged in user. + Identity *tlsca.Identity } // MakeApps creates server application objects -func MakeApps(localClusterName string, localProxyDNSName string, appClusterName string, appServers []types.Server) []App { +func MakeApps(c MakeAppsConfig) []App { result := []App{} - for _, server := range appServers { + for _, server := range c.Apps { teleApps := server.GetApps() for _, teleApp := range teleApps { - fqdn := AssembleAppFQDN(localClusterName, localProxyDNSName, appClusterName, teleApp) + fqdn := AssembleAppFQDN(c.LocalClusterName, c.LocalProxyDNSName, c.AppClusterName, teleApp) labels := []Label{} for name, value := range teleApp.StaticLabels { labels = append(labels, Label{ @@ -56,14 +78,23 @@ func MakeApps(localClusterName string, localProxyDNSName string, appClusterName sort.Sort(sortedLabels(labels)) - result = append(result, App{ - Name: teleApp.Name, - URI: teleApp.URI, - PublicAddr: teleApp.PublicAddr, - Labels: labels, - ClusterID: appClusterName, - FQDN: fqdn, - }) + app := App{ + Name: teleApp.Name, + Description: teleApp.Description, + URI: teleApp.URI, + PublicAddr: teleApp.PublicAddr, + Labels: labels, + ClusterID: c.AppClusterName, + FQDN: fqdn, + AWSConsole: teleApp.IsAWSConsole(), + } + + if teleApp.IsAWSConsole() { + app.AWSRoles = utils.FilterAWSRoles(c.Identity.AWSRoleARNs, + teleApp.GetAWSAccountID()) + } + + result = append(result, app) } }