From 670a34a997ab916ba366e5884431077393a086ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Cie=C5=9Blak?= Date: Mon, 9 Dec 2024 17:05:16 +0100 Subject: [PATCH 1/2] Surface target ports in tsh and Connect (#49688) * tsh: Print target ports when returning multi-port apps * Add TCP ports to App message in lib/teleterm * Connect: Add port selector for multi-port TCP apps * Add controls to ActionButtons story * Add control for rendering lots of menu items in ActionButtons story * Include target port in VNet modals and notifications in Connect * Empty commit to trigger CI --- .../go/teleport/lib/teleterm/v1/app.pb.go | 232 ++++++- .../lib/teleterm/v1/tshd_events_service.pb.go | 592 +++++++++--------- .../ts/teleport/lib/teleterm/v1/app_pb.ts | 219 ++++++- .../lib/teleterm/v1/tshd_events_service_pb.ts | 39 +- .../apiserver/handler/handler_apps.go | 6 + lib/teleterm/vnet/service.go | 12 +- proto/teleport/lib/teleterm/v1/app.proto | 37 ++ .../lib/teleterm/v1/tshd_events_service.proto | 14 +- tool/tsh/common/app_test.go | 70 ++- tool/tsh/common/tsh.go | 22 + .../teleterm/src/services/tshd/app.ts | 17 +- .../teleterm/src/services/tshd/testHelpers.ts | 1 + .../ClusterLogin/ClusterLogin.tsx | 3 +- .../ClusterLogin/ClusterLoginReason.story.tsx | 40 +- .../DocumentCluster/ActionButtons.story.tsx | 73 ++- .../src/ui/DocumentCluster/ActionButtons.tsx | 55 +- .../src/ui/services/relogin/reloginService.ts | 3 +- .../tshdNotificationService.ts | 5 +- .../documentsService/connectToApp.ts | 18 +- 19 files changed, 1070 insertions(+), 388 deletions(-) diff --git a/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go b/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go index ce3f381758389..1f0eef3891b2a 100644 --- a/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go +++ b/gen/proto/go/teleport/lib/teleterm/v1/app.pb.go @@ -96,6 +96,11 @@ type App struct { Fqdn string `protobuf:"bytes,10,opt,name=fqdn,proto3" json:"fqdn,omitempty"` // aws_roles is a list of AWS IAM roles for the application representing AWS console. AwsRoles []*AWSRole `protobuf:"bytes,11,rep,name=aws_roles,json=awsRoles,proto3" json:"aws_roles,omitempty"` + // TCPPorts is a list of ports and port ranges that an app agent can forward connections to. + // Only applicable to TCP App Access. + // If this field is not empty, URI is expected to contain no port number and start with the tcp + // protocol. + TcpPorts []*PortRange `protobuf:"bytes,12,rep,name=tcp_ports,json=tcpPorts,proto3" json:"tcp_ports,omitempty"` } func (x *App) Reset() { @@ -205,6 +210,13 @@ func (x *App) GetAwsRoles() []*AWSRole { return nil } +func (x *App) GetTcpPorts() []*PortRange { + if x != nil { + return x.TcpPorts + } + return nil +} + // AwsRole describes AWS IAM role. type AWSRole struct { state protoimpl.MessageState @@ -279,6 +291,155 @@ func (x *AWSRole) GetAccountId() string { return "" } +// PortRange describes a port range for TCP apps. The range starts with Port and ends with EndPort. +// PortRange can be used to describe a single port in which case the Port field is the port and the +// EndPort field is 0. +type PortRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Port describes the start of the range. It must be between 1 and 65535. + Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` + // EndPort describes the end of the range, inclusive. If set, it must be between 2 and 65535 and + // be greater than Port when describing a port range. When omitted or set to zero, it signifies + // that the port range defines a single port. + EndPort uint32 `protobuf:"varint,2,opt,name=end_port,json=endPort,proto3" json:"end_port,omitempty"` +} + +func (x *PortRange) Reset() { + *x = PortRange{} + mi := &file_teleport_lib_teleterm_v1_app_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PortRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortRange) ProtoMessage() {} + +func (x *PortRange) ProtoReflect() protoreflect.Message { + mi := &file_teleport_lib_teleterm_v1_app_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PortRange.ProtoReflect.Descriptor instead. +func (*PortRange) Descriptor() ([]byte, []int) { + return file_teleport_lib_teleterm_v1_app_proto_rawDescGZIP(), []int{2} +} + +func (x *PortRange) GetPort() uint32 { + if x != nil { + return x.Port + } + return 0 +} + +func (x *PortRange) GetEndPort() uint32 { + if x != nil { + return x.EndPort + } + return 0 +} + +// RouteToApp is used by the auth service and the app service during cert generation and routing. +// It's purpose is to point to a specific app within a root cluster. Kind of like an app URI in +// Connect, but with extra data attached. +type RouteToApp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is the name of the app within a cluster. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // public_addr is the address under which the app can be reached. It's just the hostname, it does + // not include the schema or the port number. See the docs for public_addr of + // the App message for a more thorough description. + PublicAddr string `protobuf:"bytes,2,opt,name=public_addr,json=publicAddr,proto3" json:"public_addr,omitempty"` + // cluster_name is the name of the cluster that the app belongs to. In the case of the root + // cluster, it's not guaranteed to be equal to the proxy hostname – the root cluster might have a + // distinct name set. + ClusterName string `protobuf:"bytes,3,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` + // uri is the URI which the app service is going to proxy requests to. + Uri string `protobuf:"bytes,4,opt,name=uri,proto3" json:"uri,omitempty"` + // target_port is the port of a multi-port TCP app that the connection is going to be proxied to. + TargetPort uint32 `protobuf:"varint,5,opt,name=target_port,json=targetPort,proto3" json:"target_port,omitempty"` +} + +func (x *RouteToApp) Reset() { + *x = RouteToApp{} + mi := &file_teleport_lib_teleterm_v1_app_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteToApp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteToApp) ProtoMessage() {} + +func (x *RouteToApp) ProtoReflect() protoreflect.Message { + mi := &file_teleport_lib_teleterm_v1_app_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteToApp.ProtoReflect.Descriptor instead. +func (*RouteToApp) Descriptor() ([]byte, []int) { + return file_teleport_lib_teleterm_v1_app_proto_rawDescGZIP(), []int{3} +} + +func (x *RouteToApp) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RouteToApp) GetPublicAddr() string { + if x != nil { + return x.PublicAddr + } + return "" +} + +func (x *RouteToApp) GetClusterName() string { + if x != nil { + return x.ClusterName + } + return "" +} + +func (x *RouteToApp) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *RouteToApp) GetTargetPort() uint32 { + if x != nil { + return x.TargetPort + } + return 0 +} + var File_teleport_lib_teleterm_v1_app_proto protoreflect.FileDescriptor var file_teleport_lib_teleterm_v1_app_proto_rawDesc = []byte{ @@ -288,7 +449,7 @@ var file_teleport_lib_teleterm_v1_app_proto_rawDesc = []byte{ 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x24, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf1, 0x02, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x10, 0x0a, 0x03, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb3, 0x03, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, @@ -311,19 +472,37 @@ var file_teleport_lib_teleterm_v1_app_proto_rawDesc = []byte{ 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x57, 0x53, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x08, - 0x61, 0x77, 0x73, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x68, 0x0a, 0x07, 0x41, 0x57, 0x53, 0x52, - 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x72, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x42, 0x54, 0x5a, 0x52, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x69, - 0x62, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x77, 0x73, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x63, 0x70, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x08, 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x68, 0x0a, 0x07, 0x41, 0x57, + 0x53, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x72, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x09, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, + 0x22, 0x97, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x41, 0x64, 0x64, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x54, 0x5a, 0x52, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x76, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -338,20 +517,23 @@ func file_teleport_lib_teleterm_v1_app_proto_rawDescGZIP() []byte { return file_teleport_lib_teleterm_v1_app_proto_rawDescData } -var file_teleport_lib_teleterm_v1_app_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_teleport_lib_teleterm_v1_app_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_teleport_lib_teleterm_v1_app_proto_goTypes = []any{ - (*App)(nil), // 0: teleport.lib.teleterm.v1.App - (*AWSRole)(nil), // 1: teleport.lib.teleterm.v1.AWSRole - (*Label)(nil), // 2: teleport.lib.teleterm.v1.Label + (*App)(nil), // 0: teleport.lib.teleterm.v1.App + (*AWSRole)(nil), // 1: teleport.lib.teleterm.v1.AWSRole + (*PortRange)(nil), // 2: teleport.lib.teleterm.v1.PortRange + (*RouteToApp)(nil), // 3: teleport.lib.teleterm.v1.RouteToApp + (*Label)(nil), // 4: teleport.lib.teleterm.v1.Label } var file_teleport_lib_teleterm_v1_app_proto_depIdxs = []int32{ - 2, // 0: teleport.lib.teleterm.v1.App.labels:type_name -> teleport.lib.teleterm.v1.Label + 4, // 0: teleport.lib.teleterm.v1.App.labels:type_name -> teleport.lib.teleterm.v1.Label 1, // 1: teleport.lib.teleterm.v1.App.aws_roles:type_name -> teleport.lib.teleterm.v1.AWSRole - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 2, // 2: teleport.lib.teleterm.v1.App.tcp_ports:type_name -> teleport.lib.teleterm.v1.PortRange + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_teleport_lib_teleterm_v1_app_proto_init() } @@ -366,7 +548,7 @@ func file_teleport_lib_teleterm_v1_app_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_teleport_lib_teleterm_v1_app_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go b/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go index cdc68fb467aa2..8a98f361de6b8 100644 --- a/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go +++ b/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go @@ -192,8 +192,8 @@ type VnetCertExpired struct { // target_uri for now points solely at apps, but it's not called app_uri to make it future-proof. TargetUri string `protobuf:"bytes,1,opt,name=target_uri,json=targetUri,proto3" json:"target_uri,omitempty"` - // public_addr is the public address of the app that the user tried to access. - PublicAddr string `protobuf:"bytes,2,opt,name=public_addr,json=publicAddr,proto3" json:"public_addr,omitempty"` + // route_to_app is the metadata associated with the app that the user was trying to reach. + RouteToApp *RouteToApp `protobuf:"bytes,3,opt,name=route_to_app,json=routeToApp,proto3" json:"route_to_app,omitempty"` } func (x *VnetCertExpired) Reset() { @@ -233,11 +233,11 @@ func (x *VnetCertExpired) GetTargetUri() string { return "" } -func (x *VnetCertExpired) GetPublicAddr() string { +func (x *VnetCertExpired) GetRouteToApp() *RouteToApp { if x != nil { - return x.PublicAddr + return x.RouteToApp } - return "" + return nil } // Response for Relogin. @@ -435,8 +435,8 @@ type CannotProxyVnetConnection struct { TargetUri string `protobuf:"bytes,1,opt,name=target_uri,json=targetUri,proto3" json:"target_uri,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` - // public_addr is the public address of the app that the user tried to access. - PublicAddr string `protobuf:"bytes,3,opt,name=public_addr,json=publicAddr,proto3" json:"public_addr,omitempty"` + // route_to_app is the metadata associated with the app that the user was trying to reach. + RouteToApp *RouteToApp `protobuf:"bytes,4,opt,name=route_to_app,json=routeToApp,proto3" json:"route_to_app,omitempty"` } func (x *CannotProxyVnetConnection) Reset() { @@ -483,11 +483,11 @@ func (x *CannotProxyVnetConnection) GetError() string { return "" } -func (x *CannotProxyVnetConnection) GetPublicAddr() string { +func (x *CannotProxyVnetConnection) GetRouteToApp() *RouteToApp { if x != nil { - return x.PublicAddr + return x.RouteToApp } - return "" + return nil } // Response for SendNotification. @@ -1441,268 +1441,278 @@ var file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDesc = []byte{ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x73, 0x68, 0x64, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x22, 0xff, - 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x60, 0x0a, 0x14, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x65, 0x72, 0x74, - 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x43, 0x65, 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x57, 0x0a, - 0x11, 0x76, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x6e, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x45, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x22, 0x54, 0x0a, 0x12, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x65, 0x72, 0x74, 0x45, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x55, 0x72, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x22, 0x51, 0x0a, 0x0f, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x65, - 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x64, 0x64, 0x72, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x6c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x02, 0x0a, - 0x17, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7f, 0x0a, 0x1f, 0x63, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, - 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1c, 0x63, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x1c, 0x63, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x76, 0x6e, 0x65, 0x74, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x74, 0x0a, 0x1c, - 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x55, 0x72, 0x69, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x22, 0x71, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, + 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x22, + 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x74, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xff, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, + 0x60, 0x0a, 0x14, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x43, 0x65, 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x65, 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x12, 0x57, 0x0a, 0x11, 0x76, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x76, 0x6e, 0x65, 0x74, 0x43, + 0x65, 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x54, 0x0a, 0x12, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, + 0x65, 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x55, 0x72, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x22, 0x8b, 0x01, 0x0a, 0x0f, 0x56, + 0x6e, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x46, 0x0a, + 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, + 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x6f, 0x41, 0x70, 0x70, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x0b, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x17, + 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7f, 0x0a, 0x1f, 0x63, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x36, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1c, 0x63, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x1c, 0x63, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x76, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x09, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x74, 0x0a, 0x1c, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x55, 0x72, 0x69, 0x12, 0x1d, 0x0a, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x41, 0x64, 0x64, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x28, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, - 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, - 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x68, 0x65, - 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x21, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, - 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x1e, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x70, 0x22, 0x2b, 0x0a, 0x29, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, - 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x6f, 0x74, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x6f, 0x74, 0x70, 0x12, - 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x38, 0x0a, 0x03, - 0x73, 0x73, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x53, 0x4f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x52, 0x03, 0x73, 0x73, 0x6f, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x10, 0x72, 0x6f, - 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x22, 0x9e, - 0x01, 0x0a, 0x0c, 0x53, 0x53, 0x4f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x22, - 0x30, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x22, 0x6a, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, - 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x30, 0x0a, - 0x1c, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, - 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, - 0x49, 0x0a, 0x1d, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x22, 0x20, 0x0a, 0x1e, 0x50, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, - 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x21, - 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, - 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, - 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x22, 0x69, 0x0a, 0x22, 0x50, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, - 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x70, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x75, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x70, 0x75, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x6b, 0x5f, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x75, 0x6b, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x6c, 0x0a, 0x26, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, - 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x27, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, - 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x22, 0x22, 0x0a, - 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x18, 0x75, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x16, 0x75, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x22, 0x32, 0x0a, 0x16, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x23, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, - 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x22, 0x26, 0x0a, 0x24, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, - 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, - 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x93, 0x0b, 0x0a, - 0x11, 0x54, 0x73, 0x68, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x28, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x79, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xac, 0x01, - 0x0a, 0x21, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x6f, + 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, + 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x4a, 0x04, 0x08, 0x03, + 0x10, 0x04, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, + 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x28, + 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, + 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, + 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, + 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, + 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x49, 0x0a, 0x21, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x22, 0x2b, 0x0a, 0x29, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, - 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, - 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x12, 0x35, 0x2e, 0x74, 0x65, - 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, - 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, - 0x49, 0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x16, 0x50, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, + 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x74, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x6f, 0x74, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x62, + 0x61, 0x75, 0x74, 0x68, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x65, 0x62, + 0x61, 0x75, 0x74, 0x68, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x38, 0x0a, 0x03, 0x73, 0x73, 0x6f, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, + 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x53, 0x4f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x73, 0x73, 0x6f, + 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x53, 0x53, 0x4f, + 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x30, 0x0a, 0x11, 0x50, 0x72, 0x6f, + 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x6a, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, - 0x54, 0x6f, 0x75, 0x63, 0x68, 0x12, 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, + 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x55, 0x72, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x30, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x49, 0x0a, 0x1d, 0x50, 0x72, 0x6f, + 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, + 0x75, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, + 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x55, 0x72, 0x69, 0x22, 0x20, 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x21, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, + 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x55, 0x72, 0x69, 0x22, 0x69, 0x0a, 0x22, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x10, 0x0a, + 0x03, 0x70, 0x75, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x75, 0x6b, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x75, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x22, 0x6c, 0x0a, 0x26, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, + 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x55, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, + 0x0a, 0x27, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6a, 0x0a, 0x18, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, + 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x16, 0x75, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x32, 0x0a, + 0x16, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x22, 0x3b, 0x0a, 0x23, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x26, + 0x0a, 0x24, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x93, 0x0b, 0x0a, 0x11, 0x54, 0x73, 0x68, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x07, + 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, + 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x10, + 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, + 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xac, 0x01, 0x0a, 0x21, 0x53, 0x65, 0x6e, 0x64, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x43, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, + 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, + 0x4d, 0x46, 0x41, 0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, + 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, + 0x14, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, + 0x65, 0x79, 0x50, 0x49, 0x4e, 0x12, 0x35, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, - 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, + 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x12, + 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x1a, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, + 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x1a, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, - 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, - 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, - 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x1f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, - 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x40, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x19, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x9d, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, - 0x6f, 0x77, 0x6e, 0x12, 0x3d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, - 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, - 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, - 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x54, 0x5a, 0x52, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x69, - 0x62, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa6, 0x01, 0x0a, + 0x1f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x12, 0x40, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, + 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, + 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, + 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, + 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9d, 0x01, 0x0a, + 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3d, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, + 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, + 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, + 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x54, 0x5a, 0x52, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1745,39 +1755,42 @@ var file_teleport_lib_teleterm_v1_tshd_events_service_proto_goTypes = []any{ (*UsageReportingSettings)(nil), // 23: teleport.lib.teleterm.v1.UsageReportingSettings (*ReportUnexpectedVnetShutdownRequest)(nil), // 24: teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownRequest (*ReportUnexpectedVnetShutdownResponse)(nil), // 25: teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownResponse + (*RouteToApp)(nil), // 26: teleport.lib.teleterm.v1.RouteToApp } var file_teleport_lib_teleterm_v1_tshd_events_service_proto_depIdxs = []int32{ 1, // 0: teleport.lib.teleterm.v1.ReloginRequest.gateway_cert_expired:type_name -> teleport.lib.teleterm.v1.GatewayCertExpired 2, // 1: teleport.lib.teleterm.v1.ReloginRequest.vnet_cert_expired:type_name -> teleport.lib.teleterm.v1.VnetCertExpired - 5, // 2: teleport.lib.teleterm.v1.SendNotificationRequest.cannot_proxy_gateway_connection:type_name -> teleport.lib.teleterm.v1.CannotProxyGatewayConnection - 6, // 3: teleport.lib.teleterm.v1.SendNotificationRequest.cannot_proxy_vnet_connection:type_name -> teleport.lib.teleterm.v1.CannotProxyVnetConnection - 11, // 4: teleport.lib.teleterm.v1.PromptMFARequest.sso:type_name -> teleport.lib.teleterm.v1.SSOChallenge - 23, // 5: teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse.usage_reporting_settings:type_name -> teleport.lib.teleterm.v1.UsageReportingSettings - 0, // 6: teleport.lib.teleterm.v1.TshdEventsService.Relogin:input_type -> teleport.lib.teleterm.v1.ReloginRequest - 4, // 7: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:input_type -> teleport.lib.teleterm.v1.SendNotificationRequest - 8, // 8: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:input_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationRequest - 10, // 9: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:input_type -> teleport.lib.teleterm.v1.PromptMFARequest - 13, // 10: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINRequest - 15, // 11: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchRequest - 17, // 12: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeRequest - 19, // 13: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:input_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteRequest - 21, // 14: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:input_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsRequest - 24, // 15: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:input_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownRequest - 3, // 16: teleport.lib.teleterm.v1.TshdEventsService.Relogin:output_type -> teleport.lib.teleterm.v1.ReloginResponse - 7, // 17: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:output_type -> teleport.lib.teleterm.v1.SendNotificationResponse - 9, // 18: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:output_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationResponse - 12, // 19: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:output_type -> teleport.lib.teleterm.v1.PromptMFAResponse - 14, // 20: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINResponse - 16, // 21: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchResponse - 18, // 22: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeResponse - 20, // 23: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:output_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteResponse - 22, // 24: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:output_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse - 25, // 25: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:output_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownResponse - 16, // [16:26] is the sub-list for method output_type - 6, // [6:16] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 26, // 2: teleport.lib.teleterm.v1.VnetCertExpired.route_to_app:type_name -> teleport.lib.teleterm.v1.RouteToApp + 5, // 3: teleport.lib.teleterm.v1.SendNotificationRequest.cannot_proxy_gateway_connection:type_name -> teleport.lib.teleterm.v1.CannotProxyGatewayConnection + 6, // 4: teleport.lib.teleterm.v1.SendNotificationRequest.cannot_proxy_vnet_connection:type_name -> teleport.lib.teleterm.v1.CannotProxyVnetConnection + 26, // 5: teleport.lib.teleterm.v1.CannotProxyVnetConnection.route_to_app:type_name -> teleport.lib.teleterm.v1.RouteToApp + 11, // 6: teleport.lib.teleterm.v1.PromptMFARequest.sso:type_name -> teleport.lib.teleterm.v1.SSOChallenge + 23, // 7: teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse.usage_reporting_settings:type_name -> teleport.lib.teleterm.v1.UsageReportingSettings + 0, // 8: teleport.lib.teleterm.v1.TshdEventsService.Relogin:input_type -> teleport.lib.teleterm.v1.ReloginRequest + 4, // 9: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:input_type -> teleport.lib.teleterm.v1.SendNotificationRequest + 8, // 10: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:input_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationRequest + 10, // 11: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:input_type -> teleport.lib.teleterm.v1.PromptMFARequest + 13, // 12: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINRequest + 15, // 13: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchRequest + 17, // 14: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeRequest + 19, // 15: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:input_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteRequest + 21, // 16: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:input_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsRequest + 24, // 17: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:input_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownRequest + 3, // 18: teleport.lib.teleterm.v1.TshdEventsService.Relogin:output_type -> teleport.lib.teleterm.v1.ReloginResponse + 7, // 19: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:output_type -> teleport.lib.teleterm.v1.SendNotificationResponse + 9, // 20: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:output_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationResponse + 12, // 21: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:output_type -> teleport.lib.teleterm.v1.PromptMFAResponse + 14, // 22: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINResponse + 16, // 23: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchResponse + 18, // 24: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeResponse + 20, // 25: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:output_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteResponse + 22, // 26: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:output_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse + 25, // 27: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:output_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownResponse + 18, // [18:28] is the sub-list for method output_type + 8, // [8:18] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_teleport_lib_teleterm_v1_tshd_events_service_proto_init() } @@ -1785,6 +1798,7 @@ func file_teleport_lib_teleterm_v1_tshd_events_service_proto_init() { if File_teleport_lib_teleterm_v1_tshd_events_service_proto != nil { return } + file_teleport_lib_teleterm_v1_app_proto_init() file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[0].OneofWrappers = []any{ (*ReloginRequest_GatewayCertExpired)(nil), (*ReloginRequest_VnetCertExpired)(nil), diff --git a/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts b/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts index 56fbe74bd0266..5764dffcd6ab8 100644 --- a/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts +++ b/gen/proto/ts/teleport/lib/teleterm/v1/app_pb.ts @@ -134,6 +134,15 @@ export interface App { * @generated from protobuf field: repeated teleport.lib.teleterm.v1.AWSRole aws_roles = 11; */ awsRoles: AWSRole[]; + /** + * TCPPorts is a list of ports and port ranges that an app agent can forward connections to. + * Only applicable to TCP App Access. + * If this field is not empty, URI is expected to contain no port number and start with the tcp + * protocol. + * + * @generated from protobuf field: repeated teleport.lib.teleterm.v1.PortRange tcp_ports = 12; + */ + tcpPorts: PortRange[]; } /** * AwsRole describes AWS IAM role. @@ -166,6 +175,72 @@ export interface AWSRole { */ accountId: string; } +/** + * PortRange describes a port range for TCP apps. The range starts with Port and ends with EndPort. + * PortRange can be used to describe a single port in which case the Port field is the port and the + * EndPort field is 0. + * + * @generated from protobuf message teleport.lib.teleterm.v1.PortRange + */ +export interface PortRange { + /** + * Port describes the start of the range. It must be between 1 and 65535. + * + * @generated from protobuf field: uint32 port = 1; + */ + port: number; + /** + * EndPort describes the end of the range, inclusive. If set, it must be between 2 and 65535 and + * be greater than Port when describing a port range. When omitted or set to zero, it signifies + * that the port range defines a single port. + * + * @generated from protobuf field: uint32 end_port = 2; + */ + endPort: number; +} +/** + * RouteToApp is used by the auth service and the app service during cert generation and routing. + * It's purpose is to point to a specific app within a root cluster. Kind of like an app URI in + * Connect, but with extra data attached. + * + * @generated from protobuf message teleport.lib.teleterm.v1.RouteToApp + */ +export interface RouteToApp { + /** + * name is the name of the app within a cluster. + * + * @generated from protobuf field: string name = 1; + */ + name: string; + /** + * public_addr is the address under which the app can be reached. It's just the hostname, it does + * not include the schema or the port number. See the docs for public_addr of + * the App message for a more thorough description. + * + * @generated from protobuf field: string public_addr = 2; + */ + publicAddr: string; + /** + * cluster_name is the name of the cluster that the app belongs to. In the case of the root + * cluster, it's not guaranteed to be equal to the proxy hostname – the root cluster might have a + * distinct name set. + * + * @generated from protobuf field: string cluster_name = 3; + */ + clusterName: string; + /** + * uri is the URI which the app service is going to proxy requests to. + * + * @generated from protobuf field: string uri = 4; + */ + uri: string; + /** + * target_port is the port of a multi-port TCP app that the connection is going to be proxied to. + * + * @generated from protobuf field: uint32 target_port = 5; + */ + targetPort: number; +} // @generated message type with reflection information, may provide speed optimized methods class App$Type extends MessageType { constructor() { @@ -180,7 +255,8 @@ class App$Type extends MessageType { { no: 8, name: "saml_app", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, { no: 9, name: "labels", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Label }, { no: 10, name: "fqdn", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 11, name: "aws_roles", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => AWSRole } + { no: 11, name: "aws_roles", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => AWSRole }, + { no: 12, name: "tcp_ports", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PortRange } ]); } create(value?: PartialMessage): App { @@ -196,6 +272,7 @@ class App$Type extends MessageType { message.labels = []; message.fqdn = ""; message.awsRoles = []; + message.tcpPorts = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -238,6 +315,9 @@ class App$Type extends MessageType { case /* repeated teleport.lib.teleterm.v1.AWSRole aws_roles */ 11: message.awsRoles.push(AWSRole.internalBinaryRead(reader, reader.uint32(), options)); break; + case /* repeated teleport.lib.teleterm.v1.PortRange tcp_ports */ 12: + message.tcpPorts.push(PortRange.internalBinaryRead(reader, reader.uint32(), options)); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -283,6 +363,9 @@ class App$Type extends MessageType { /* repeated teleport.lib.teleterm.v1.AWSRole aws_roles = 11; */ for (let i = 0; i < message.awsRoles.length; i++) AWSRole.internalBinaryWrite(message.awsRoles[i], writer.tag(11, WireType.LengthDelimited).fork(), options).join(); + /* repeated teleport.lib.teleterm.v1.PortRange tcp_ports = 12; */ + for (let i = 0; i < message.tcpPorts.length; i++) + PortRange.internalBinaryWrite(message.tcpPorts[i], writer.tag(12, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -364,3 +447,137 @@ class AWSRole$Type extends MessageType { * @generated MessageType for protobuf message teleport.lib.teleterm.v1.AWSRole */ export const AWSRole = new AWSRole$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class PortRange$Type extends MessageType { + constructor() { + super("teleport.lib.teleterm.v1.PortRange", [ + { no: 1, name: "port", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, + { no: 2, name: "end_port", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } + ]); + } + create(value?: PartialMessage): PortRange { + const message = globalThis.Object.create((this.messagePrototype!)); + message.port = 0; + message.endPort = 0; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PortRange): PortRange { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* uint32 port */ 1: + message.port = reader.uint32(); + break; + case /* uint32 end_port */ 2: + message.endPort = reader.uint32(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: PortRange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* uint32 port = 1; */ + if (message.port !== 0) + writer.tag(1, WireType.Varint).uint32(message.port); + /* uint32 end_port = 2; */ + if (message.endPort !== 0) + writer.tag(2, WireType.Varint).uint32(message.endPort); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message teleport.lib.teleterm.v1.PortRange + */ +export const PortRange = new PortRange$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class RouteToApp$Type extends MessageType { + constructor() { + super("teleport.lib.teleterm.v1.RouteToApp", [ + { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, + { no: 2, name: "public_addr", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, + { no: 3, name: "cluster_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, + { no: 4, name: "uri", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, + { no: 5, name: "target_port", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } + ]); + } + create(value?: PartialMessage): RouteToApp { + const message = globalThis.Object.create((this.messagePrototype!)); + message.name = ""; + message.publicAddr = ""; + message.clusterName = ""; + message.uri = ""; + message.targetPort = 0; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RouteToApp): RouteToApp { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* string name */ 1: + message.name = reader.string(); + break; + case /* string public_addr */ 2: + message.publicAddr = reader.string(); + break; + case /* string cluster_name */ 3: + message.clusterName = reader.string(); + break; + case /* string uri */ 4: + message.uri = reader.string(); + break; + case /* uint32 target_port */ 5: + message.targetPort = reader.uint32(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: RouteToApp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* string name = 1; */ + if (message.name !== "") + writer.tag(1, WireType.LengthDelimited).string(message.name); + /* string public_addr = 2; */ + if (message.publicAddr !== "") + writer.tag(2, WireType.LengthDelimited).string(message.publicAddr); + /* string cluster_name = 3; */ + if (message.clusterName !== "") + writer.tag(3, WireType.LengthDelimited).string(message.clusterName); + /* string uri = 4; */ + if (message.uri !== "") + writer.tag(4, WireType.LengthDelimited).string(message.uri); + /* uint32 target_port = 5; */ + if (message.targetPort !== 0) + writer.tag(5, WireType.Varint).uint32(message.targetPort); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message teleport.lib.teleterm.v1.RouteToApp + */ +export const RouteToApp = new RouteToApp$Type(); diff --git a/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts b/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts index 66b3f05bdb2d2..ac021c705e893 100644 --- a/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts +++ b/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts @@ -31,6 +31,7 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; +import { RouteToApp } from "./app_pb"; /** * Request for Relogin. * @@ -93,11 +94,11 @@ export interface VnetCertExpired { */ targetUri: string; /** - * public_addr is the public address of the app that the user tried to access. + * route_to_app is the metadata associated with the app that the user was trying to reach. * - * @generated from protobuf field: string public_addr = 2; + * @generated from protobuf field: teleport.lib.teleterm.v1.RouteToApp route_to_app = 3; */ - publicAddr: string; + routeToApp?: RouteToApp; } /** * Response for Relogin. @@ -173,11 +174,11 @@ export interface CannotProxyVnetConnection { */ error: string; /** - * public_addr is the public address of the app that the user tried to access. + * route_to_app is the metadata associated with the app that the user was trying to reach. * - * @generated from protobuf field: string public_addr = 3; + * @generated from protobuf field: teleport.lib.teleterm.v1.RouteToApp route_to_app = 4; */ - publicAddr: string; + routeToApp?: RouteToApp; } /** * Response for SendNotification. @@ -567,13 +568,12 @@ class VnetCertExpired$Type extends MessageType { constructor() { super("teleport.lib.teleterm.v1.VnetCertExpired", [ { no: 1, name: "target_uri", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, - { no: 2, name: "public_addr", kind: "scalar", T: 9 /*ScalarType.STRING*/ } + { no: 3, name: "route_to_app", kind: "message", T: () => RouteToApp } ]); } create(value?: PartialMessage): VnetCertExpired { const message = globalThis.Object.create((this.messagePrototype!)); message.targetUri = ""; - message.publicAddr = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -586,8 +586,8 @@ class VnetCertExpired$Type extends MessageType { case /* string target_uri */ 1: message.targetUri = reader.string(); break; - case /* string public_addr */ 2: - message.publicAddr = reader.string(); + case /* teleport.lib.teleterm.v1.RouteToApp route_to_app */ 3: + message.routeToApp = RouteToApp.internalBinaryRead(reader, reader.uint32(), options, message.routeToApp); break; default: let u = options.readUnknownField; @@ -604,9 +604,9 @@ class VnetCertExpired$Type extends MessageType { /* string target_uri = 1; */ if (message.targetUri !== "") writer.tag(1, WireType.LengthDelimited).string(message.targetUri); - /* string public_addr = 2; */ - if (message.publicAddr !== "") - writer.tag(2, WireType.LengthDelimited).string(message.publicAddr); + /* teleport.lib.teleterm.v1.RouteToApp route_to_app = 3; */ + if (message.routeToApp) + RouteToApp.internalBinaryWrite(message.routeToApp, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -771,14 +771,13 @@ class CannotProxyVnetConnection$Type extends MessageType RouteToApp } ]); } create(value?: PartialMessage): CannotProxyVnetConnection { const message = globalThis.Object.create((this.messagePrototype!)); message.targetUri = ""; message.error = ""; - message.publicAddr = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -794,8 +793,8 @@ class CannotProxyVnetConnection$Type extends MessageType 0 + }) + getName := func(app types.Application) string { isActive := slices.ContainsFunc(config.active, func(route tlsca.RouteToApp) bool { // TODO(ravicious): This should be based on name _and_ route.ClusterName, so that we don't @@ -2891,6 +2895,19 @@ func writeAppTable(w io.Writer, appListings []appListing, config appTableConfig) getLabels := func(app types.Application) string { return common.FormatLabels(app.GetAllLabels(), config.verbose) } + getTargetPorts := func(app types.Application) string { + ports := make([]string, 0, len(app.GetTCPPorts())) + for _, portRange := range app.GetTCPPorts() { + var port string + if portRange.EndPort == 0 { + port = strconv.Itoa(int(portRange.Port)) + } else { + port = fmt.Sprintf("%d-%d", portRange.Port, portRange.EndPort) + } + ports = append(ports, port) + } + return strings.Join(ports, ", ") + } const labelsColumn = "Labels" allColumns := []appTableColumn{ @@ -2920,6 +2937,11 @@ func writeAppTable(w io.Writer, appListings []appListing, config appTableConfig) name: "Public Address", get: types.Application.GetPublicAddr, }, + appTableColumn{ + name: "Target Ports", + get: getTargetPorts, + hide: !includesMultiPortApp, + }, appTableColumn{ name: "URI", get: types.Application.GetURI, diff --git a/web/packages/teleterm/src/services/tshd/app.ts b/web/packages/teleterm/src/services/tshd/app.ts index fa4440c54c1d8..1d7c4a5c90c7e 100644 --- a/web/packages/teleterm/src/services/tshd/app.ts +++ b/web/packages/teleterm/src/services/tshd/app.ts @@ -16,7 +16,12 @@ * along with this program. If not, see . */ -import { App, Cluster } from 'teleterm/services/tshd/types'; +import { + App, + PortRange, + RouteToApp, +} from 'gen-proto-ts/teleport/lib/teleterm/v1/app_pb'; +import { Cluster } from 'gen-proto-ts/teleport/lib/teleterm/v1/cluster_pb'; /** Returns a URL that opens the web app in the browser. */ export function getWebAppLaunchUrl({ @@ -108,3 +113,13 @@ export function getAppAddrWithProtocol(source: App): string { return addrWithProtocol; } + +export const formatPortRange = (portRange: PortRange): string => + portRange.endPort === 0 + ? portRange.port.toString() + : `${portRange.port}-${portRange.endPort}`; + +export const publicAddrWithTargetPort = (routeToApp: RouteToApp): string => + routeToApp.targetPort + ? `${routeToApp.publicAddr}:${routeToApp.targetPort}` + : routeToApp.publicAddr; diff --git a/web/packages/teleterm/src/services/tshd/testHelpers.ts b/web/packages/teleterm/src/services/tshd/testHelpers.ts index 4b985282216cd..0ad30524df7ed 100644 --- a/web/packages/teleterm/src/services/tshd/testHelpers.ts +++ b/web/packages/teleterm/src/services/tshd/testHelpers.ts @@ -76,6 +76,7 @@ export const makeApp = (props: Partial = {}): tsh.App => ({ samlApp: false, uri: appUri, awsRoles: [], + tcpPorts: [], ...props, }); diff --git a/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLogin.tsx b/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLogin.tsx index 72c173ccaf11c..5503a1e243036 100644 --- a/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLogin.tsx +++ b/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLogin.tsx @@ -34,6 +34,7 @@ import { PrimaryAuthType } from 'shared/services'; import { AuthSettings } from 'teleterm/ui/services/clusters/types'; import { ClusterConnectReason } from 'teleterm/ui/services/modals'; import { getTargetNameFromUri } from 'teleterm/services/tshd/gateway'; +import { publicAddrWithTargetPort } from 'teleterm/services/tshd/app'; import { outermostPadding } from '../spacing'; @@ -170,7 +171,7 @@ const getTargetDesc = (reason: ClusterConnectReason): React.ReactNode => { } } case 'reason.vnet-cert-expired': { - return {reason.publicAddr}; + return {publicAddrWithTargetPort(reason.routeToApp)}; } default: { reason satisfies never; diff --git a/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLoginReason.story.tsx b/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLoginReason.story.tsx index ab6517f4cce67..3c85c93504876 100644 --- a/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLoginReason.story.tsx +++ b/web/packages/teleterm/src/ui/ClusterConnect/ClusterLogin/ClusterLoginReason.story.tsx @@ -16,10 +16,11 @@ * along with this program. If not, see . */ import { - appUri, + makeApp, makeDatabaseGateway, makeKubeGateway, } from 'teleterm/services/tshd/testHelpers'; +import { routing } from 'teleterm/ui/uri'; import { TestContainer, makeProps } from './storyHelpers'; import { ClusterLoginPresentation } from './ClusterLogin'; @@ -77,12 +78,45 @@ export const GatewayCertExpiredWithoutGateway = () => { }; export const VnetCertExpired = () => { + const app = makeApp(); const props = makeProps(); props.initAttempt.data.allowPasswordless = false; props.reason = { kind: 'reason.vnet-cert-expired', - targetUri: appUri, - publicAddr: 'tcp-app.teleport.example.com', + targetUri: app.uri, + routeToApp: { + name: 'tcp-app', + publicAddr: 'tcp-app.teleport.example.com', + clusterName: routing.parseAppUri(app.uri).params.rootClusterId, + uri: app.endpointUri, + targetPort: 0, + }, + }; + + return ( + + + + ); +}; + +export const VnetCertExpiredMultiPort = () => { + const app = makeApp({ + endpointUri: 'tcp://localhost', + tcpPorts: [{ port: 1337, endPort: 0 }], + }); + const props = makeProps(); + props.initAttempt.data.allowPasswordless = false; + props.reason = { + kind: 'reason.vnet-cert-expired', + targetUri: app.uri, + routeToApp: { + name: 'tcp-app', + publicAddr: 'tcp-app.teleport.example.com', + clusterName: routing.parseAppUri(app.uri).params.rootClusterId, + uri: app.endpointUri, + targetPort: 1337, + }, }; return ( diff --git a/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx b/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx index 3b397d9b6093f..30d09f3abc99a 100644 --- a/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx +++ b/web/packages/teleterm/src/ui/DocumentCluster/ActionButtons.story.tsx @@ -18,6 +18,8 @@ import { Flex, Text, Box } from 'design'; +import { Meta } from '@storybook/react'; + import { makeApp, makeRootCluster, @@ -38,41 +40,48 @@ import { AccessRequestButton, } from './ActionButtons'; -export default { - title: 'Teleterm/DocumentCluster/ActionButtons', +type StoryProps = { + vnet: boolean; + lotsOfMenuItems: boolean; }; -export function ActionButtons() { - const appContext = new MockAppContext(); - prepareAppContext(appContext); +const meta: Meta = { + title: 'Teleterm/DocumentCluster/ActionButtons', + component: Buttons, + argTypes: { + vnet: { control: { type: 'boolean' } }, + lotsOfMenuItems: { + control: { type: 'boolean' }, + description: + // TODO(ravicious): Support this prop in more places than just TCP ports. + 'Renders long lists of options in menus. Currently works only with ports for multi-port TCP apps.', + }, + }, + args: { + vnet: true, + lotsOfMenuItems: false, + }, +}; - return ( - - - - - - - - ); -} +export default meta; -export function WithoutVnet() { - const appContext = new MockAppContext({ platform: 'win32' }); +export function Story(props: StoryProps) { + const platform = props.vnet ? 'darwin' : 'win32'; + const appContext = new MockAppContext({ platform }); prepareAppContext(appContext); return ( - + ); } -function Buttons() { +function Buttons(props: StoryProps) { return ( @@ -80,6 +89,10 @@ function Buttons() { TCP app + + multi-port TCP app + + Web app @@ -146,6 +159,28 @@ function TcpApp() { ); } +function TcpMultiPortApp(props: { lotsOfMenuItems: boolean }) { + let tcpPorts = [ + { port: 1337, endPort: 0 }, + { port: 4242, endPort: 0 }, + { port: 54221, endPort: 61879 }, + ]; + + if (props.lotsOfMenuItems) { + tcpPorts = new Array(50).fill(tcpPorts).flat(); + } + + return ( + + ); +} + function HttpApp() { return ( + + Available target ports + {props.app.tcpPorts.map((portRange, index) => ( + props.connectWithVnet(portRange.port)} + > + {formatPortRange(portRange)} + + ))} + + ); + } + return ( props.connectWithVnet()} > - Connect to local port + Connect without VNet + {$targetPorts} ); } diff --git a/web/packages/teleterm/src/ui/services/relogin/reloginService.ts b/web/packages/teleterm/src/ui/services/relogin/reloginService.ts index 8d5a2cdee63ce..7f9a4f5edc33c 100644 --- a/web/packages/teleterm/src/ui/services/relogin/reloginService.ts +++ b/web/packages/teleterm/src/ui/services/relogin/reloginService.ts @@ -86,8 +86,7 @@ export class ReloginService { return { kind: 'reason.vnet-cert-expired', - targetUri: request.reason.vnetCertExpired.targetUri, - publicAddr: request.reason.vnetCertExpired.publicAddr, + ...request.reason.vnetCertExpired, }; } default: { diff --git a/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts b/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts index 60300c025b9bc..a7007676e75b8 100644 --- a/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts +++ b/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts @@ -27,6 +27,7 @@ import { notificationRequestOneOfIsCannotProxyGatewayConnection, notificationRequestOneOfIsCannotProxyVnetConnection, } from 'teleterm/helpers'; +import { publicAddrWithTargetPort } from 'teleterm/services/tshd/app'; export class TshdNotificationsService { constructor( @@ -82,12 +83,12 @@ export class TshdNotificationsService { if (!notificationRequestOneOfIsCannotProxyVnetConnection(subject)) { return; } - const { publicAddr, targetUri, error } = + const { routeToApp, targetUri, error } = subject.cannotProxyVnetConnection; const clusterName = routing.parseClusterName(targetUri); return { - title: `Cannot connect to ${publicAddr}`, + title: `Cannot connect to ${publicAddrWithTargetPort(routeToApp)}`, description: `A connection attempt to the app in the cluster ${clusterName} failed due to an unexpected error: ${error}`, }; } diff --git a/web/packages/teleterm/src/ui/services/workspacesService/documentsService/connectToApp.ts b/web/packages/teleterm/src/ui/services/workspacesService/documentsService/connectToApp.ts index 92dac2447f71f..815912e923a6c 100644 --- a/web/packages/teleterm/src/ui/services/workspacesService/documentsService/connectToApp.ts +++ b/web/packages/teleterm/src/ui/services/workspacesService/documentsService/connectToApp.ts @@ -105,7 +105,14 @@ export async function connectToApp( // TCP app if (launchVnet) { - await connectToAppWithVnet(ctx, launchVnet, target); + await connectToAppWithVnet( + ctx, + launchVnet, + target, + // We don't let the user pick the target port through the search bar on purpose. If an app + // allows a port range, we'd need to allow the user to input any number from the range. + undefined /* targetPort */ + ); return; } @@ -144,14 +151,19 @@ export async function setUpAppGateway( export async function connectToAppWithVnet( ctx: IAppContext, launchVnet: () => Promise<[void, Error]>, - target: App + target: App, + targetPort: number | undefined ) { const [, err] = await launchVnet(); if (err) { return; } - const addrToCopy = target.publicAddr; + let addrToCopy = target.publicAddr; + if (targetPort) { + addrToCopy = `${addrToCopy}:${targetPort}`; + } + try { await navigator.clipboard.writeText(addrToCopy); } catch (error) { From 7fd6be8842b4e47791b68e475e55e77be54f5be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Cie=C5=9Blak?= Date: Wed, 11 Dec 2024 17:20:58 +0100 Subject: [PATCH 2/2] VNet: Refuse conn if local port doesn't match app spec --- api/proto/teleport/legacy/types/types.proto | 2 + api/types/app.go | 37 +- api/types/app_test.go | 26 + api/types/types.pb.go | 3153 ++++++++--------- .../lib/teleterm/v1/tshd_events_service.pb.go | 790 +++-- .../lib/teleterm/v1/tshd_events_service_pb.ts | 177 +- lib/srv/app/tcpserver.go | 8 +- lib/teleterm/vnet/service.go | 52 +- lib/vnet/app_resolver.go | 67 +- lib/vnet/vnet_test.go | 68 +- .../lib/teleterm/v1/tshd_events_service.proto | 23 +- tool/tsh/common/tsh.go | 12 +- tool/tsh/common/vnet_app_provider.go | 16 + .../components/Notification/Notification.tsx | 9 + .../shared/components/Notification/types.ts | 5 + web/packages/teleterm/src/helpers.ts | 20 +- .../tshdNotificationService.ts | 70 +- 17 files changed, 2554 insertions(+), 1981 deletions(-) diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index bcb4a53d9683b..a693f7a5e9d81 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -1071,6 +1071,8 @@ message Header { // PortRange can be used to describe a single port in which case the Port field is the port and the // EndPort field is 0. message PortRange { + option (gogoproto.goproto_stringer) = false; + option (gogoproto.stringer) = false; // Port describes the start of the range. It must be between 1 and 65535. uint32 Port = 1 [(gogoproto.jsontag) = "port"]; // EndPort describes the end of the range, inclusive. If set, it must be between 2 and 65535 and diff --git a/api/types/app.go b/api/types/app.go index 978342957939c..b3f62147e8cac 100644 --- a/api/types/app.go +++ b/api/types/app.go @@ -19,6 +19,8 @@ package types import ( "fmt" "net/url" + "slices" + "strconv" "strings" "time" @@ -88,7 +90,7 @@ type Application interface { // GetCORS returns the CORS configuration for the app. GetCORS() *CORSPolicy // GetTCPPorts returns port ranges supported by the app to which connections can be forwarded to. - GetTCPPorts() []*PortRange + GetTCPPorts() PortRanges // SetTCPPorts sets port ranges to which connections can be forwarded to. SetTCPPorts([]*PortRange) // GetIdentityCenter fetches identity center info for the app, if any. @@ -314,7 +316,7 @@ func (a *AppV3) SetUserGroups(userGroups []string) { } // GetTCPPorts returns port ranges supported by the app to which connections can be forwarded to. -func (a *AppV3) GetTCPPorts() []*PortRange { +func (a *AppV3) GetTCPPorts() PortRanges { return a.Spec.TCPPorts } @@ -537,3 +539,34 @@ func (a *AppIdentityCenter) GetPermissionSets() []*IdentityCenterPermissionSet { } return a.PermissionSets } + +// PortRanges is a list of port ranges. +type PortRanges []*PortRange + +// Contains checks if targetPort is within any of the port ranges. +func (p PortRanges) Contains(targetPort int) bool { + return slices.ContainsFunc(p, func(portRange *PortRange) bool { + return netutils.IsPortInRange(int(portRange.Port), int(portRange.EndPort), targetPort) + }) +} + +// String returns a string representation of port ranges. +func (p PortRanges) String() string { + var builder strings.Builder + for i, portRange := range p { + if i > 0 { + builder.WriteString(", ") + } + builder.WriteString(portRange.String()) + } + return builder.String() +} + +// String returns a string representation of a port range. +func (p *PortRange) String() string { + if p.EndPort == 0 { + return strconv.Itoa(int(p.Port)) + } else { + return fmt.Sprintf("%d-%d", p.Port, p.EndPort) + } +} diff --git a/api/types/app_test.go b/api/types/app_test.go index cf3a9518c1ba5..b1b0d9e1a0b25 100644 --- a/api/types/app_test.go +++ b/api/types/app_test.go @@ -18,6 +18,7 @@ package types import ( "fmt" + "strconv" "testing" "github.com/gravitational/trace" @@ -563,6 +564,31 @@ func TestNewAppV3(t *testing.T) { } } +func TestPortRangesContains(t *testing.T) { + portRanges := PortRanges([]*PortRange{ + &PortRange{Port: 10, EndPort: 20}, + &PortRange{Port: 42}, + }) + + tests := []struct { + port int + want require.BoolAssertionFunc + }{ + {port: 10, want: require.True}, + {port: 20, want: require.True}, + {port: 15, want: require.True}, + {port: 42, want: require.True}, + {port: 30, want: require.False}, + {port: 0, want: require.False}, + } + + for _, tt := range tests { + t.Run(strconv.Itoa(tt.port), func(t *testing.T) { + tt.want(t, portRanges.Contains(tt.port)) + }) + } +} + func hasNoErr(t require.TestingT, err error, msgAndArgs ...interface{}) { require.NoError(t, err, msgAndArgs...) } diff --git a/api/types/types.pb.go b/api/types/types.pb.go index 0138f00d8f3f3..d9b08968f773e 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -3801,9 +3801,8 @@ type PortRange struct { XXX_sizecache int32 `json:"-"` } -func (m *PortRange) Reset() { *m = PortRange{} } -func (m *PortRange) String() string { return proto.CompactTextString(m) } -func (*PortRange) ProtoMessage() {} +func (m *PortRange) Reset() { *m = PortRange{} } +func (*PortRange) ProtoMessage() {} func (*PortRange) Descriptor() ([]byte, []int) { return fileDescriptor_9198ee693835762e, []int{49} } @@ -21631,7 +21630,7 @@ func init() { func init() { proto.RegisterFile("teleport/legacy/types/types.proto", fileDescriptor_9198ee693835762e) } var fileDescriptor_9198ee693835762e = []byte{ - // 30001 bytes of a gzipped FileDescriptorProto + // 30002 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x70, 0x1c, 0x49, 0x76, 0x20, 0x86, 0x4f, 0x77, 0xe3, 0xa3, 0xf1, 0xf0, 0xd5, 0x48, 0x80, 0x24, 0x88, 0x99, 0x61, 0x73, 0x6a, 0x66, 0x38, 0xe4, 0xec, 0x0c, 0xb9, 0x04, 0x77, 0xb8, 0x3b, 0x3b, 0x5f, 0xdb, 0xe8, @@ -21935,1579 +21934,1579 @@ var fileDescriptor_9198ee693835762e = []byte{ 0x4b, 0x57, 0xa8, 0x8f, 0xb9, 0x23, 0x5f, 0xe2, 0x08, 0x93, 0x44, 0x6c, 0xd7, 0xbf, 0xb7, 0xbd, 0x59, 0x6e, 0xda, 0x4e, 0xcb, 0x17, 0x67, 0x09, 0x76, 0xeb, 0x47, 0x87, 0x81, 0x55, 0x47, 0xa8, 0xba, 0xeb, 0x87, 0xa8, 0xc6, 0x5d, 0xa9, 0xbd, 0x3e, 0xc5, 0x2a, 0xb3, 0x08, 0xc3, 0x0f, 0x23, - 0x2d, 0xd6, 0xd2, 0xd8, 0xc9, 0x71, 0x91, 0x4f, 0x17, 0x93, 0xc3, 0x8d, 0x2f, 0xc3, 0x58, 0x38, - 0x75, 0x19, 0x2f, 0xf6, 0x03, 0x79, 0x4d, 0x72, 0x5e, 0x6c, 0x12, 0x9b, 0x08, 0x65, 0xa2, 0xde, - 0x72, 0xbb, 0x81, 0x08, 0x59, 0x44, 0xc0, 0xee, 0xa1, 0xed, 0x06, 0xce, 0x74, 0xb5, 0x75, 0x02, - 0xcd, 0xf8, 0x91, 0x0c, 0x4c, 0xe9, 0x93, 0x95, 0x5c, 0x87, 0x11, 0xe1, 0x78, 0x95, 0x41, 0x55, - 0x20, 0xe3, 0x31, 0xc2, 0x5d, 0xae, 0x34, 0x47, 0x2b, 0x81, 0xc5, 0xa4, 0x45, 0xc1, 0x41, 0x88, - 0x4a, 0x28, 0x2d, 0xd6, 0x39, 0xc8, 0x94, 0x65, 0xc4, 0x60, 0x57, 0x45, 0xbf, 0xdb, 0x0c, 0xd4, - 0x17, 0x22, 0x0f, 0x21, 0xa6, 0x28, 0x31, 0xca, 0x30, 0xc2, 0x37, 0xd4, 0x98, 0xa9, 0x59, 0xe6, - 0x0c, 0xa6, 0x66, 0xc6, 0x71, 0x06, 0xa0, 0x56, 0x5b, 0xb9, 0x4f, 0x8f, 0x36, 0x6c, 0x07, 0x4f, - 0x6d, 0x7e, 0x78, 0xdd, 0x17, 0x2b, 0x77, 0x42, 0x3c, 0x69, 0xf2, 0x83, 0xee, 0x80, 0x1e, 0x69, - 0x4f, 0x9a, 0x12, 0x15, 0x4f, 0x48, 0xcf, 0x79, 0x64, 0x07, 0x94, 0x11, 0x66, 0x91, 0x90, 0x9f, - 0x90, 0x1c, 0x1a, 0xa3, 0x54, 0x90, 0xc9, 0x57, 0x61, 0x2a, 0xfa, 0x15, 0x3e, 0xcc, 0x4e, 0x85, - 0xbb, 0x83, 0x5e, 0xb8, 0x74, 0xe9, 0xe4, 0xb8, 0xb8, 0xa0, 0x70, 0x8d, 0x3f, 0xd9, 0xc6, 0x98, - 0x19, 0xbf, 0x98, 0x41, 0x73, 0x04, 0xd9, 0xc0, 0x2b, 0x30, 0x14, 0x1a, 0xd0, 0x4e, 0x88, 0xad, - 0x57, 0x7f, 0x7c, 0xc2, 0x72, 0x26, 0x64, 0x45, 0x2d, 0xc1, 0x03, 0x4b, 0x6f, 0x01, 0x2b, 0x25, - 0x77, 0x61, 0x74, 0xa0, 0x6f, 0xc6, 0x89, 0x95, 0xf2, 0xad, 0x92, 0x1a, 0x47, 0xe1, 0xde, 0xf6, - 0xe6, 0x77, 0xef, 0x28, 0xfc, 0x78, 0x16, 0xa6, 0x59, 0xbf, 0x96, 0xba, 0xc1, 0xbe, 0xeb, 0x39, - 0xc1, 0xd1, 0x33, 0xab, 0x4b, 0x7d, 0x57, 0xbb, 0x88, 0x2d, 0xc8, 0x23, 0x4c, 0x6d, 0xdb, 0x40, - 0x2a, 0xd5, 0xff, 0x76, 0x18, 0x66, 0x53, 0xa8, 0xc8, 0x1b, 0xda, 0x73, 0xc7, 0xbc, 0x74, 0xac, - 0xfe, 0xce, 0x71, 0x71, 0x42, 0xa2, 0x6f, 0x46, 0x8e, 0xd6, 0x8b, 0xba, 0x6d, 0x0f, 0xef, 0x29, - 0x7c, 0xfd, 0x50, 0x6d, 0x7b, 0x74, 0x8b, 0x9e, 0x6b, 0x30, 0x6c, 0xba, 0x4d, 0x2a, 0xed, 0xd9, - 0x50, 0xcc, 0xf2, 0x18, 0x40, 0x7b, 0xbf, 0x67, 0x00, 0xb2, 0x02, 0xa3, 0xec, 0x8f, 0x35, 0xbb, - 0x23, 0x5e, 0xa6, 0x48, 0xa8, 0x0a, 0x40, 0x68, 0xc7, 0x69, 0xef, 0xa9, 0xda, 0x80, 0x26, 0xb5, - 0x5a, 0x76, 0x47, 0x93, 0x07, 0x39, 0xa2, 0xa6, 0x55, 0xc8, 0xf7, 0xd6, 0x2a, 0x64, 0x4e, 0xd5, - 0x2a, 0xec, 0x02, 0xd4, 0x9c, 0xbd, 0xb6, 0xd3, 0xde, 0x2b, 0x35, 0xf7, 0x84, 0x7b, 0xfa, 0xb5, - 0xde, 0xa3, 0x70, 0x3d, 0x42, 0xc6, 0x89, 0xfb, 0x3c, 0x3e, 0x1f, 0x73, 0x98, 0x65, 0x37, 0xf7, - 0x34, 0x37, 0x1a, 0x85, 0x33, 0x59, 0x07, 0x28, 0xd5, 0x03, 0xe7, 0x11, 0x9b, 0xc2, 0xbe, 0x10, - 0xde, 0xe4, 0x27, 0x97, 0x4b, 0xf7, 0xe9, 0x11, 0x5e, 0x38, 0xe4, 0x43, 0x9c, 0x8d, 0xa8, 0x6c, - 0x25, 0x68, 0x3e, 0x12, 0x11, 0x07, 0xd2, 0x81, 0x73, 0xa5, 0x46, 0xc3, 0x61, 0x6d, 0xb0, 0x9b, - 0x9b, 0x3c, 0xb0, 0x00, 0xb2, 0x9e, 0x48, 0x67, 0x7d, 0x4d, 0xb0, 0x7e, 0xc9, 0x0e, 0xa9, 0x2c, - 0x19, 0x8f, 0x20, 0x56, 0x4d, 0x3a, 0x63, 0xa3, 0x06, 0x53, 0x7a, 0xe3, 0x75, 0xb7, 0xfa, 0x09, - 0xc8, 0x9b, 0xb5, 0x92, 0x55, 0x5b, 0x29, 0xdd, 0x2c, 0x64, 0x48, 0x01, 0x26, 0xc4, 0xaf, 0x45, - 0x6b, 0xf1, 0xad, 0xdb, 0x85, 0xac, 0x06, 0x79, 0xeb, 0xe6, 0x62, 0x21, 0xb7, 0x90, 0x9d, 0xcf, - 0xc4, 0x3c, 0xda, 0x46, 0x0b, 0x79, 0xae, 0x72, 0x35, 0x7e, 0x35, 0x03, 0x79, 0xf9, 0xed, 0xe4, - 0x36, 0xe4, 0x6a, 0xb5, 0x95, 0x98, 0x0f, 0x5a, 0x74, 0xca, 0xf0, 0xfd, 0xd4, 0xf7, 0x55, 0x43, - 0x63, 0x46, 0xc0, 0xe8, 0x36, 0x57, 0x6b, 0x42, 0xf2, 0x90, 0x74, 0xd1, 0xe6, 0xcd, 0xe9, 0x52, - 0x1c, 0x73, 0x6e, 0x43, 0xee, 0xde, 0xf6, 0xa6, 0xb8, 0x5a, 0x49, 0xba, 0x68, 0x3f, 0xe5, 0x74, - 0x1f, 0x1d, 0xaa, 0xbb, 0x3c, 0x23, 0x30, 0x4c, 0x18, 0x57, 0x26, 0x32, 0x3f, 0x74, 0x5b, 0x6e, - 0xe8, 0x4b, 0x2e, 0x0e, 0x5d, 0x06, 0x31, 0x45, 0x09, 0x13, 0x40, 0x56, 0xdd, 0xba, 0xdd, 0x14, - 0xa7, 0x37, 0x0a, 0x20, 0x4d, 0x06, 0x30, 0x39, 0xdc, 0xf8, 0x9d, 0x0c, 0x14, 0x50, 0x4c, 0x43, - 0x43, 0x61, 0xf7, 0x80, 0xb6, 0x1f, 0xde, 0x24, 0x6f, 0xca, 0x25, 0x97, 0x09, 0xd5, 0x5b, 0xc3, - 0xb8, 0xe4, 0x62, 0xef, 0x63, 0x62, 0xd9, 0x29, 0xee, 0xfa, 0xd9, 0xc1, 0xdd, 0x7c, 0x4f, 0x71, - 0xd7, 0x2f, 0xc2, 0x30, 0x7e, 0x8e, 0xd8, 0x1c, 0xf1, 0xcb, 0x03, 0x06, 0x30, 0x39, 0x5c, 0xd9, - 0x9b, 0x7e, 0x32, 0x9b, 0x68, 0xc3, 0xe2, 0x77, 0x95, 0xab, 0xac, 0xde, 0xb8, 0x81, 0xf6, 0xeb, - 0x0f, 0x61, 0x2e, 0xde, 0x25, 0xa8, 0x7a, 0x2c, 0xc1, 0xb4, 0x0e, 0x97, 0x5a, 0xc8, 0x0b, 0xa9, - 0x75, 0x3d, 0x5c, 0x34, 0xe3, 0xf8, 0xc6, 0xff, 0x9e, 0x81, 0x31, 0xfc, 0xd3, 0xec, 0x36, 0xd1, - 0x60, 0xab, 0xb4, 0x5d, 0x13, 0x0a, 0x11, 0x55, 0x98, 0xb3, 0x0f, 0x7d, 0x4b, 0x68, 0x4f, 0xb4, - 0x3d, 0x26, 0x44, 0x16, 0xa4, 0xfc, 0xfd, 0x40, 0xaa, 0xe2, 0x42, 0x52, 0xfe, 0xd0, 0xe0, 0xc7, - 0x48, 0x05, 0x32, 0x9a, 0x79, 0x6e, 0xd7, 0xd8, 0xf4, 0x53, 0x2d, 0x28, 0x90, 0xce, 0x6d, 0xea, - 0x66, 0x9e, 0x1c, 0x0d, 0x0d, 0x28, 0xb6, 0x6b, 0x25, 0x73, 0x5d, 0x33, 0xa0, 0x60, 0xdf, 0xa8, - 0x69, 0xa3, 0x04, 0x92, 0xf1, 0x73, 0xe3, 0xf1, 0x0e, 0x14, 0x07, 0xde, 0x19, 0xd7, 0xc6, 0x3b, - 0x30, 0x5c, 0x6a, 0x36, 0xdd, 0x43, 0xb1, 0x4b, 0xc8, 0xfb, 0x6a, 0xd8, 0x7f, 0xfc, 0x3c, 0x43, - 0x65, 0x9e, 0xe6, 0xfe, 0xc7, 0x00, 0xa4, 0x0c, 0x63, 0xa5, 0xed, 0x5a, 0xb5, 0x5a, 0xd9, 0xdc, - 0xe4, 0xae, 0x4e, 0xb9, 0xa5, 0x57, 0x65, 0xff, 0x38, 0x4e, 0xc3, 0x8a, 0xbf, 0xe1, 0x47, 0xf2, - 0x7b, 0x44, 0x47, 0xde, 0x03, 0xb8, 0xe7, 0x3a, 0x6d, 0xae, 0xbc, 0x14, 0x8d, 0x67, 0xf7, 0xee, - 0xf1, 0x8f, 0x5c, 0xa7, 0x2d, 0xb4, 0x9d, 0xec, 0xdb, 0x23, 0x24, 0x53, 0xf9, 0x9b, 0xf5, 0xf4, - 0x92, 0xcb, 0x8d, 0xb0, 0x86, 0xa3, 0x9e, 0xde, 0x71, 0x13, 0x5a, 0x36, 0x89, 0x46, 0x5a, 0x30, - 0x5d, 0xeb, 0xee, 0xed, 0x51, 0xb6, 0xb3, 0x0b, 0x2d, 0xd2, 0x88, 0xb8, 0x40, 0x87, 0x01, 0x66, - 0xf8, 0x7d, 0x84, 0x5d, 0x81, 0xfc, 0xa5, 0x37, 0xd8, 0x44, 0xfe, 0xf6, 0x71, 0x51, 0xd8, 0x06, - 0x30, 0x51, 0xcd, 0x97, 0xf4, 0x49, 0x1d, 0x52, 0x9c, 0x37, 0x79, 0x00, 0x23, 0x77, 0x9d, 0x60, - 0xa5, 0xbb, 0x23, 0x5c, 0x77, 0x5e, 0xea, 0xb3, 0x68, 0x38, 0x22, 0x7f, 0x9c, 0xda, 0x73, 0x82, - 0xfd, 0xae, 0xea, 0x3c, 0x21, 0xd8, 0x90, 0x6d, 0xc8, 0x97, 0x1d, 0xaf, 0xde, 0xa4, 0xe5, 0xaa, - 0x38, 0xfb, 0x5f, 0xee, 0xc3, 0x52, 0xa2, 0xf2, 0x7e, 0xa9, 0xe3, 0xaf, 0xba, 0xa3, 0xca, 0x02, - 0x12, 0x83, 0xfc, 0x9b, 0x19, 0x78, 0x3e, 0xfc, 0xfa, 0xd2, 0x1e, 0x6d, 0x07, 0x6b, 0x76, 0x50, - 0xdf, 0xa7, 0x9e, 0xe8, 0xa5, 0xb1, 0x7e, 0xbd, 0xf4, 0xf9, 0x44, 0x2f, 0x5d, 0x8d, 0x7a, 0xc9, - 0x66, 0xcc, 0xac, 0x16, 0xe7, 0x96, 0xec, 0xb3, 0x7e, 0xb5, 0x12, 0x0b, 0x20, 0x7a, 0x6d, 0x14, - 0xae, 0x9f, 0xaf, 0xf6, 0x69, 0x70, 0x84, 0x2c, 0x5c, 0x36, 0xc2, 0xdf, 0x9a, 0xcd, 0x61, 0x08, - 0x25, 0xf7, 0xa5, 0x9f, 0x1c, 0x97, 0x4a, 0x2e, 0xf7, 0xe1, 0xcd, 0x7d, 0xe7, 0x66, 0xfb, 0x78, - 0xc4, 0xf2, 0xd1, 0x5e, 0xb5, 0x77, 0x84, 0x20, 0x72, 0xca, 0x68, 0xaf, 0xda, 0xd1, 0x68, 0x37, - 0xed, 0xf8, 0x68, 0xaf, 0xda, 0x3b, 0xa4, 0xcc, 0x9d, 0x7b, 0xb9, 0x27, 0xe8, 0xa5, 0x7e, 0xdc, - 0xca, 0x1b, 0xfc, 0x64, 0x4e, 0x71, 0xf2, 0xfd, 0x32, 0x8c, 0xd5, 0x3a, 0x76, 0x9d, 0x36, 0x9d, - 0xdd, 0x40, 0x3c, 0x3f, 0xbf, 0xd2, 0x87, 0x55, 0x88, 0x2b, 0x9e, 0x2e, 0xe5, 0x4f, 0xf5, 0x9a, - 0x14, 0xe2, 0xb0, 0x2f, 0xdc, 0xdc, 0x58, 0x9b, 0x9f, 0x3e, 0xf5, 0x0b, 0x37, 0x37, 0xd6, 0x84, - 0xcc, 0xd1, 0x69, 0x69, 0x32, 0xc7, 0xc6, 0x1a, 0xe9, 0xc0, 0xd4, 0x26, 0xf5, 0x3c, 0x7b, 0xd7, - 0xf5, 0x5a, 0x5c, 0x6b, 0xc9, 0xbd, 0x8b, 0xae, 0xf5, 0xe3, 0xa7, 0x11, 0x70, 0x65, 0x5d, 0x20, - 0x61, 0x56, 0x5c, 0xd5, 0x19, 0xe3, 0xcf, 0xfa, 0x64, 0xc9, 0x09, 0x76, 0xba, 0xf5, 0x03, 0x1a, - 0xcc, 0xcf, 0x9c, 0xda, 0x27, 0x21, 0x2e, 0xef, 0x93, 0x1d, 0xf9, 0x53, 0xed, 0x93, 0x10, 0xc7, - 0xf8, 0xcd, 0x1c, 0x5c, 0xe8, 0xd1, 0x05, 0x64, 0x5d, 0x6e, 0xb9, 0x19, 0x4d, 0x77, 0xdd, 0x03, - 0xfd, 0xfa, 0xa9, 0xbb, 0xf0, 0x2a, 0x14, 0x96, 0xef, 0xa3, 0xac, 0xce, 0x9f, 0x6f, 0xca, 0x25, - 0x79, 0x58, 0xa1, 0x7e, 0x95, 0x1e, 0xa0, 0x35, 0xa6, 0x7c, 0xf6, 0xa9, 0x6b, 0x6e, 0xc7, 0x09, - 0xca, 0x85, 0xef, 0xcf, 0xc2, 0x10, 0x1e, 0x9c, 0xb1, 0x60, 0x4b, 0x99, 0x33, 0x05, 0x5b, 0xfa, - 0x02, 0x4c, 0x2c, 0xdf, 0xe7, 0x37, 0xe9, 0x15, 0xdb, 0xdf, 0x17, 0xdb, 0x3a, 0x1a, 0x37, 0xd0, - 0x03, 0x4b, 0x5c, 0xbc, 0xf7, 0x6d, 0x4d, 0x66, 0xd5, 0x28, 0xc8, 0x16, 0xcc, 0xf2, 0x6f, 0x73, - 0x76, 0x9d, 0x3a, 0x8f, 0xd9, 0xe2, 0xd8, 0x4d, 0xb1, 0xc7, 0xbf, 0x7c, 0x72, 0x5c, 0x2c, 0xd2, - 0x03, 0xb4, 0x33, 0x15, 0xe5, 0x96, 0x8f, 0x08, 0xaa, 0xc1, 0x69, 0x0a, 0xbd, 0x1a, 0x48, 0xc2, - 0x1c, 0xc3, 0x0a, 0x59, 0x6d, 0xac, 0x6e, 0x86, 0xcb, 0x91, 0x8c, 0x3f, 0x1b, 0x86, 0x85, 0xde, - 0xdb, 0x33, 0xf9, 0xa2, 0x3e, 0x80, 0x57, 0x4e, 0xdd, 0xd0, 0x4f, 0x1f, 0xc3, 0x2f, 0xc1, 0xdc, - 0x72, 0x3b, 0xa0, 0x5e, 0xc7, 0x73, 0x64, 0xe8, 0x90, 0x15, 0xd7, 0x97, 0x76, 0xbd, 0x68, 0x60, - 0x4b, 0xc3, 0x72, 0xa1, 0x51, 0x45, 0x2b, 0x63, 0x85, 0x55, 0x2a, 0x07, 0xb2, 0x0c, 0x53, 0x0a, - 0xbc, 0xd9, 0xdd, 0x53, 0xdf, 0xa4, 0x54, 0x9e, 0xcd, 0xae, 0x6a, 0xf4, 0x18, 0x23, 0x42, 0xdb, - 0x61, 0x76, 0x65, 0xac, 0xdf, 0xdb, 0xbe, 0x5f, 0x13, 0xc3, 0xc9, 0x6d, 0x87, 0x11, 0x6a, 0x7d, - 0x74, 0x78, 0xa0, 0xed, 0xaf, 0x11, 0xf2, 0xc2, 0x2f, 0xe6, 0xc4, 0x8c, 0x7a, 0x19, 0x72, 0xb5, - 0xee, 0x8e, 0xfa, 0xd2, 0xe6, 0x6b, 0x07, 0x1c, 0x2b, 0x25, 0x9f, 0x03, 0x30, 0x69, 0xc7, 0xf5, - 0x9d, 0xc0, 0xf5, 0x8e, 0x54, 0xe7, 0x35, 0x2f, 0x84, 0xea, 0xf6, 0xf5, 0x12, 0x4a, 0x56, 0x60, - 0x3a, 0xfa, 0xf5, 0xe0, 0xb0, 0x2d, 0x34, 0xc8, 0x63, 0x5c, 0xbb, 0x12, 0x91, 0x5b, 0x2e, 0x2b, - 0x53, 0x8f, 0xec, 0x18, 0x19, 0x59, 0x84, 0xfc, 0xb6, 0xeb, 0x1d, 0xec, 0xb2, 0x31, 0x1e, 0x8a, - 0x84, 0x8a, 0x43, 0x01, 0x53, 0x0f, 0x4f, 0x89, 0xc7, 0x96, 0xcb, 0x72, 0xfb, 0x91, 0xe3, 0xb9, - 0xf8, 0x8e, 0xa7, 0xda, 0x8c, 0xd0, 0x08, 0xac, 0xb9, 0x0d, 0x47, 0x60, 0x72, 0x0d, 0x86, 0x4b, - 0xf5, 0xc0, 0xf5, 0x84, 0xc1, 0x08, 0x9f, 0x29, 0x0c, 0xa0, 0xcd, 0x14, 0x06, 0x60, 0x9d, 0x68, - 0xd2, 0x5d, 0xf1, 0xa6, 0x83, 0x9d, 0xe8, 0xd1, 0x5d, 0xcd, 0x27, 0x9a, 0xee, 0x32, 0xa1, 0xc8, - 0xa4, 0xbb, 0xa8, 0xf8, 0xd0, 0x42, 0x89, 0xed, 0x26, 0x54, 0x66, 0x02, 0xcd, 0xf8, 0xfd, 0xb1, - 0x9e, 0x53, 0x9e, 0x9d, 0x42, 0x67, 0x9b, 0xf2, 0xab, 0xf6, 0x00, 0x53, 0xfe, 0x8d, 0xd0, 0x6a, - 0x5f, 0x0d, 0x04, 0x80, 0x10, 0xf5, 0x18, 0xe4, 0x38, 0x0b, 0xbf, 0x94, 0x3f, 0xcb, 0x24, 0x12, - 0x9d, 0x94, 0x1d, 0xb4, 0x93, 0x72, 0x03, 0x75, 0x12, 0x59, 0x82, 0xc9, 0x30, 0x18, 0xdd, 0x86, - 0x1d, 0x68, 0xdb, 0x5a, 0x18, 0x41, 0xd0, 0xea, 0xd8, 0x81, 0xba, 0xad, 0xe9, 0x24, 0xe4, 0x5d, - 0x18, 0x17, 0xae, 0x2b, 0xc8, 0x61, 0x38, 0x32, 0x1e, 0x96, 0x7e, 0x2e, 0x31, 0x7a, 0x15, 0x9d, - 0xad, 0xe6, 0x0d, 0xa7, 0x43, 0x9b, 0x4e, 0x9b, 0xd6, 0xf0, 0x89, 0x42, 0xcc, 0x18, 0xfe, 0x54, - 0x2b, 0x4a, 0x2c, 0xfe, 0x7a, 0xa1, 0xe9, 0x0f, 0x35, 0xa2, 0xf8, 0x64, 0x1d, 0x3d, 0xd3, 0x64, - 0xe5, 0xb6, 0x7b, 0xde, 0xaa, 0xbb, 0xe7, 0x48, 0x6b, 0x65, 0x69, 0xbb, 0xe7, 0x59, 0x4d, 0x06, - 0x8d, 0xd9, 0xee, 0x71, 0x54, 0x76, 0xc3, 0x61, 0x3f, 0xaa, 0x15, 0xf1, 0x7e, 0x88, 0x37, 0x1c, - 0x24, 0xd2, 0x4d, 0xc4, 0x39, 0x92, 0xac, 0x66, 0xb9, 0x65, 0x3b, 0x4d, 0xe1, 0xef, 0x1d, 0x55, - 0x43, 0x19, 0x34, 0x5e, 0x0d, 0xa2, 0x92, 0x3a, 0x4c, 0x98, 0x74, 0x77, 0xc3, 0x73, 0x03, 0x5a, - 0x0f, 0x68, 0x43, 0x48, 0x75, 0xf2, 0x62, 0xb3, 0xe4, 0xba, 0x5c, 0x62, 0x5d, 0x7a, 0xf3, 0xf7, - 0x8f, 0x8b, 0x99, 0x6f, 0x1f, 0x17, 0x81, 0x81, 0xb8, 0xff, 0xc1, 0xc9, 0x71, 0xf1, 0x02, 0x1b, - 0xff, 0x8e, 0x24, 0x56, 0x4f, 0x27, 0x95, 0x29, 0xf9, 0x16, 0xdb, 0xaf, 0xc3, 0x2e, 0x89, 0x2a, - 0x9b, 0xe8, 0x51, 0xd9, 0x5b, 0xa9, 0x95, 0x15, 0x95, 0xde, 0x4e, 0xad, 0x34, 0xb5, 0x12, 0xf2, - 0x1e, 0x8c, 0x97, 0xab, 0x65, 0xb7, 0xbd, 0xeb, 0xec, 0xd5, 0x56, 0x4a, 0x28, 0x1a, 0x0a, 0xdf, - 0x93, 0xba, 0x63, 0xd5, 0x11, 0x6e, 0xf9, 0xfb, 0xb6, 0xe6, 0x82, 0x18, 0xe1, 0x93, 0xbb, 0x30, - 0x25, 0x7f, 0x9a, 0x74, 0x77, 0xcb, 0xac, 0xa2, 0x44, 0x28, 0x1d, 0x7e, 0x42, 0x0e, 0xac, 0x23, - 0xba, 0x9e, 0x7a, 0x53, 0x88, 0x91, 0xb1, 0xc9, 0x58, 0xa1, 0x9d, 0xa6, 0x7b, 0xc4, 0x3e, 0x6f, - 0xd3, 0xa1, 0x1e, 0xca, 0x80, 0x62, 0x32, 0x36, 0xc2, 0x12, 0x2b, 0x70, 0xf4, 0x57, 0x53, 0x9d, - 0x88, 0xac, 0xc3, 0x8c, 0x98, 0xe2, 0x0f, 0x1d, 0xdf, 0xd9, 0x71, 0x9a, 0x4e, 0x70, 0x84, 0xd2, - 0x9f, 0x10, 0x60, 0xe4, 0xba, 0x78, 0x14, 0x96, 0x2a, 0xcc, 0x92, 0xa4, 0xc6, 0xaf, 0x66, 0xe1, - 0x85, 0x7e, 0x37, 0x21, 0x52, 0xd3, 0x37, 0xb3, 0xab, 0x03, 0xdc, 0x9e, 0x4e, 0xdf, 0xce, 0x96, - 0x61, 0xea, 0x81, 0xb7, 0x67, 0xb7, 0x9d, 0x6f, 0xe2, 0x0d, 0x37, 0x34, 0x61, 0xc4, 0xce, 0x70, - 0x95, 0x12, 0x7d, 0xb6, 0xc7, 0x88, 0x16, 0x1e, 0x89, 0x6d, 0xee, 0xe3, 0x3a, 0xc3, 0xdd, 0x86, - 0xb1, 0xb2, 0xdb, 0x0e, 0xe8, 0xe3, 0x20, 0xe6, 0xfa, 0xcd, 0x81, 0x71, 0x47, 0x40, 0x89, 0x6a, - 0xfc, 0xab, 0x2c, 0xbc, 0xd8, 0xf7, 0x2a, 0x40, 0x36, 0xf5, 0x5e, 0xbb, 0x36, 0xc8, 0xfd, 0xe1, - 0xf4, 0x6e, 0x5b, 0x4c, 0x58, 0xdb, 0x9d, 0xea, 0x6b, 0xb2, 0xf0, 0xdf, 0x67, 0x44, 0x27, 0x7d, - 0x1a, 0x46, 0xb1, 0xaa, 0xb0, 0x8b, 0xb8, 0x96, 0x0c, 0x77, 0x61, 0x47, 0xd7, 0x92, 0x71, 0x34, - 0x72, 0x0b, 0xf2, 0x65, 0xbb, 0xd9, 0x54, 0x1c, 0xe3, 0x51, 0x9a, 0xaf, 0x23, 0x2c, 0x66, 0x9c, - 0x29, 0x11, 0x99, 0xec, 0xc3, 0xff, 0x56, 0xce, 0x0a, 0xdc, 0x2c, 0x05, 0x59, 0xec, 0xb8, 0x50, - 0x90, 0x31, 0x9c, 0x66, 0xdd, 0x0d, 0x5d, 0x6f, 0x79, 0x38, 0x4d, 0x06, 0xd0, 0xc2, 0x69, 0x32, - 0x80, 0xf1, 0x6b, 0x39, 0xb8, 0xd4, 0xff, 0x3e, 0x4b, 0xb6, 0xf4, 0x21, 0x78, 0x7d, 0xa0, 0x5b, - 0xf0, 0xe9, 0x63, 0x20, 0x83, 0xd3, 0xf2, 0x0e, 0xb9, 0x9a, 0x74, 0x09, 0xf9, 0xce, 0x71, 0x51, - 0xb1, 0xf8, 0xbd, 0xe7, 0x3a, 0x6d, 0xe5, 0xcd, 0xe4, 0x1b, 0x9a, 0x64, 0xc8, 0xdf, 0xec, 0x6f, - 0x0f, 0xf6, 0x65, 0x11, 0x1d, 0xdf, 0x57, 0x06, 0x95, 0x28, 0x3f, 0x0f, 0x85, 0x38, 0x29, 0xb9, - 0x02, 0x43, 0xf8, 0x01, 0x8a, 0x5f, 0x4b, 0x8c, 0x03, 0x96, 0x2f, 0xac, 0x89, 0xb9, 0x83, 0xb1, - 0x02, 0xd0, 0x0a, 0x40, 0xd7, 0x0d, 0x8a, 0x58, 0x01, 0xdc, 0x88, 0x20, 0xa9, 0x1f, 0x8c, 0x11, - 0x19, 0x7f, 0x91, 0x81, 0x8b, 0x3d, 0x35, 0x05, 0x64, 0x43, 0x1f, 0xb0, 0x57, 0x4f, 0x53, 0x2d, - 0x9c, 0x3a, 0x56, 0x0b, 0x3f, 0x2a, 0xe7, 0xfe, 0xfb, 0x30, 0x51, 0xeb, 0xee, 0xc4, 0xef, 0x67, - 0x3c, 0x92, 0x87, 0x02, 0x57, 0x4f, 0x30, 0x15, 0x9f, 0xb5, 0x5f, 0x9a, 0x39, 0x08, 0xb3, 0x1f, - 0xc5, 0xd6, 0x30, 0x74, 0x66, 0x4d, 0xc6, 0x4a, 0xd0, 0x89, 0x8c, 0x5f, 0xc9, 0xa6, 0x5f, 0x74, - 0xef, 0x96, 0x37, 0xce, 0x72, 0xd1, 0xbd, 0x5b, 0xde, 0x38, 0xbd, 0xed, 0xff, 0x58, 0xb6, 0x1d, - 0x1f, 0x66, 0xc5, 0x8e, 0x27, 0x15, 0x9d, 0xe2, 0x61, 0x56, 0xee, 0x8e, 0xbe, 0xfe, 0x30, 0x2b, - 0x91, 0xc9, 0x5b, 0x30, 0xb6, 0xea, 0xf2, 0x30, 0x06, 0xb2, 0xc5, 0xdc, 0xdb, 0x53, 0x02, 0xd5, - 0xed, 0x31, 0xc4, 0x64, 0x77, 0x0b, 0x7d, 0xe0, 0xa5, 0x49, 0x25, 0xde, 0x2d, 0x62, 0xd3, 0x45, - 0x57, 0x07, 0xea, 0x64, 0xc6, 0x7f, 0x34, 0x0c, 0xc6, 0xe9, 0xca, 0x0c, 0xf2, 0xa1, 0xde, 0x77, - 0xd7, 0x07, 0x56, 0x83, 0x0c, 0xb4, 0xe5, 0x96, 0xba, 0x0d, 0x87, 0xb6, 0xeb, 0x7a, 0x0c, 0x02, - 0x01, 0x53, 0xb7, 0x40, 0x89, 0xf7, 0x71, 0x5c, 0x02, 0x17, 0xfe, 0xeb, 0x5c, 0xb4, 0xd4, 0x62, - 0x47, 0x63, 0xe6, 0x63, 0x1c, 0x8d, 0xe4, 0x3e, 0x14, 0x54, 0x88, 0xf2, 0x42, 0x8b, 0x92, 0x8b, - 0xc6, 0x28, 0xf6, 0x51, 0x09, 0x42, 0xfd, 0x7c, 0xcd, 0x0d, 0x7e, 0xbe, 0x46, 0xe2, 0x3b, 0xd6, - 0x3f, 0x94, 0x14, 0xdf, 0xe3, 0x6e, 0xbf, 0x0a, 0xba, 0x8c, 0x59, 0xe0, 0x8b, 0x43, 0x6b, 0x58, - 0x8f, 0x59, 0x90, 0x72, 0x70, 0xa9, 0xe8, 0x32, 0xec, 0x02, 0xfe, 0x54, 0xbc, 0x8e, 0xc3, 0xb0, - 0x0b, 0x9c, 0x3e, 0x2d, 0xec, 0x42, 0x48, 0xc2, 0x0e, 0x40, 0xb3, 0xdb, 0xe6, 0x71, 0x9b, 0x47, - 0xa3, 0x03, 0xd0, 0xeb, 0xb6, 0xad, 0x78, 0xec, 0xe6, 0x10, 0xd1, 0xf8, 0x8d, 0xa1, 0x74, 0xe1, - 0x20, 0xd4, 0x77, 0x9d, 0x45, 0x38, 0x08, 0x89, 0x3e, 0x99, 0x99, 0xba, 0x05, 0xb3, 0xd2, 0x2a, - 0x4f, 0x9a, 0x77, 0x6d, 0x99, 0xab, 0x62, 0x88, 0x51, 0x6f, 0x14, 0xda, 0xf3, 0x49, 0x13, 0x31, - 0xab, 0xeb, 0x69, 0x7a, 0xa3, 0x14, 0xfa, 0x85, 0x5f, 0x97, 0x6a, 0x31, 0x75, 0x10, 0xb6, 0xb6, - 0xc2, 0xb9, 0x1c, 0x1b, 0x84, 0x6e, 0x57, 0x1b, 0x46, 0x9d, 0x84, 0xef, 0xbd, 0x52, 0xe5, 0x80, - 0x4c, 0x14, 0x59, 0x51, 0x51, 0x54, 0xc4, 0xb8, 0xc4, 0x88, 0xc8, 0x1e, 0x5c, 0x8c, 0x44, 0x69, - 0xe5, 0xa6, 0x80, 0x1c, 0x79, 0x83, 0xaf, 0x9d, 0x1c, 0x17, 0x5f, 0x55, 0x44, 0x71, 0xf5, 0xc2, - 0x11, 0xe3, 0xde, 0x9b, 0x17, 0xdb, 0x6f, 0x97, 0x3c, 0xbb, 0x5d, 0xdf, 0x57, 0xe6, 0x3c, 0xee, - 0xb7, 0x3b, 0x08, 0x4d, 0x38, 0x8e, 0x47, 0xc8, 0xc6, 0x8f, 0x66, 0x61, 0x8a, 0x9f, 0xd5, 0xfc, - 0x75, 0xee, 0x99, 0x7d, 0xf9, 0x7c, 0x47, 0x7b, 0xf9, 0x94, 0x31, 0xce, 0xd4, 0xa6, 0x0d, 0xf4, - 0xee, 0xb9, 0x0f, 0x24, 0x49, 0x43, 0x4c, 0x98, 0x50, 0xa1, 0xfd, 0x9f, 0x3c, 0x6f, 0x46, 0xe1, - 0xf0, 0x84, 0xa8, 0x84, 0xef, 0xce, 0xbe, 0xa9, 0xf1, 0x30, 0x7e, 0x24, 0x0b, 0x93, 0x8a, 0x9d, - 0xca, 0x33, 0xdb, 0xf1, 0x9f, 0xd7, 0x3a, 0x7e, 0x3e, 0xf4, 0x9a, 0x0b, 0x5b, 0x36, 0x50, 0xbf, - 0x77, 0x61, 0x26, 0x41, 0x12, 0x37, 0xf7, 0xc9, 0x0c, 0x62, 0xee, 0xf3, 0x46, 0x32, 0xb6, 0x16, - 0x0f, 0x51, 0x1f, 0x46, 0x5a, 0x51, 0x83, 0x79, 0xfd, 0x78, 0x16, 0xe6, 0xc4, 0x2f, 0x0c, 0x46, - 0xc9, 0x85, 0xd5, 0x67, 0x76, 0x2c, 0x4a, 0xda, 0x58, 0x14, 0xf5, 0xb1, 0x50, 0x1a, 0xd8, 0x7b, - 0x48, 0x8c, 0xbf, 0x0d, 0x30, 0xdf, 0x8b, 0x60, 0x60, 0xe7, 0xf4, 0xc8, 0xf5, 0x2f, 0x3b, 0x80, - 0xeb, 0xdf, 0x2a, 0x14, 0xb0, 0x2a, 0x11, 0x6e, 0xce, 0xdf, 0x32, 0xab, 0xa2, 0x93, 0x50, 0xbf, - 0xc0, 0x23, 0x86, 0x8a, 0xf0, 0x77, 0x7e, 0x4c, 0xe7, 0x91, 0xa0, 0x24, 0xbf, 0x98, 0x81, 0x29, - 0x04, 0x2e, 0x3f, 0xa2, 0xed, 0x00, 0x99, 0x0d, 0x09, 0x4f, 0xb5, 0xf0, 0x61, 0xb4, 0x16, 0x78, - 0x4e, 0x7b, 0x4f, 0xbc, 0x8c, 0xee, 0x88, 0x97, 0xd1, 0x77, 0xf9, 0x8b, 0xee, 0xf5, 0xba, 0xdb, - 0xba, 0xb1, 0xe7, 0xd9, 0x8f, 0x1c, 0x6e, 0x82, 0x65, 0x37, 0x6f, 0x44, 0x99, 0x55, 0x3a, 0x4e, - 0x2c, 0xe7, 0x89, 0x60, 0x85, 0xaf, 0xce, 0xfc, 0x43, 0x29, 0x56, 0x1b, 0x57, 0xcd, 0xe8, 0x5f, - 0x44, 0xbe, 0x07, 0x2e, 0xf0, 0x20, 0x50, 0xec, 0x86, 0xef, 0xb4, 0xbb, 0x6e, 0xd7, 0x5f, 0xb2, - 0xeb, 0x07, 0x4c, 0xcc, 0xe7, 0xde, 0xb6, 0xd8, 0xf2, 0x7a, 0x58, 0x68, 0xed, 0xf0, 0x52, 0x2d, - 0xba, 0x40, 0x3a, 0x03, 0xb2, 0x02, 0x33, 0xbc, 0xa8, 0xd4, 0x0d, 0xdc, 0x5a, 0xdd, 0x6e, 0x3a, - 0xed, 0x3d, 0x94, 0x25, 0xf2, 0x5c, 0x94, 0xb1, 0xbb, 0x81, 0x6b, 0xf9, 0x1c, 0xae, 0x6a, 0x6a, - 0x12, 0x44, 0xa4, 0x0a, 0xd3, 0x26, 0xb5, 0x1b, 0x6b, 0xf6, 0xe3, 0xb2, 0xdd, 0xb1, 0xeb, 0x4e, - 0xc0, 0xa3, 0x52, 0xe6, 0xb8, 0x40, 0xe7, 0x51, 0xbb, 0x61, 0xb5, 0xec, 0xc7, 0x56, 0x5d, 0x14, - 0xea, 0x2a, 0x7b, 0x8d, 0x2e, 0x64, 0xe5, 0xb4, 0x43, 0x56, 0x63, 0x71, 0x56, 0x4e, 0xbb, 0x37, - 0xab, 0x88, 0x4e, 0xb2, 0xda, 0xb4, 0xbd, 0x3d, 0x1a, 0x70, 0xf3, 0x68, 0xb8, 0x9c, 0xb9, 0x9a, - 0x51, 0x58, 0x05, 0x58, 0x66, 0xa1, 0xa9, 0x74, 0x9c, 0x95, 0x42, 0xc7, 0x66, 0xde, 0xb6, 0xe7, - 0x04, 0x54, 0x6d, 0xe1, 0x38, 0x7e, 0x16, 0xf6, 0x3f, 0x1a, 0x96, 0xf7, 0x6a, 0x62, 0x82, 0x32, - 0xe2, 0xa6, 0x34, 0x72, 0x22, 0xc1, 0x2d, 0xbd, 0x95, 0x09, 0xca, 0x90, 0x9b, 0xda, 0xce, 0x49, - 0x6c, 0xa7, 0xc2, 0xad, 0x47, 0x43, 0x13, 0x94, 0x64, 0x9d, 0x75, 0x5a, 0xc0, 0xe4, 0x26, 0xb7, - 0x2d, 0x2c, 0xb8, 0xa7, 0xf0, 0xd3, 0x5e, 0x11, 0x66, 0x88, 0x05, 0x4f, 0x16, 0x5b, 0x29, 0xf6, - 0xdc, 0x71, 0x62, 0xf2, 0x37, 0x60, 0x7a, 0xcb, 0xa7, 0x77, 0xaa, 0x1b, 0x35, 0x19, 0x33, 0x0a, - 0x95, 0x8b, 0x53, 0x8b, 0x37, 0x4f, 0xd9, 0x74, 0xae, 0xab, 0x34, 0x98, 0xa8, 0x84, 0x8f, 0x5b, - 0xd7, 0xa7, 0xd6, 0xae, 0xd3, 0xf1, 0xc3, 0x00, 0x7c, 0xea, 0xb8, 0xc5, 0xaa, 0x32, 0x56, 0x60, - 0x26, 0xc1, 0x86, 0x4c, 0x01, 0x30, 0xa0, 0xb5, 0xb5, 0x5e, 0x5b, 0xde, 0x2c, 0x3c, 0x47, 0x0a, - 0x30, 0x81, 0xbf, 0x97, 0xd7, 0x4b, 0x4b, 0xab, 0xcb, 0x95, 0x42, 0x86, 0xcc, 0xc0, 0x24, 0x42, - 0x2a, 0xd5, 0x1a, 0x07, 0x65, 0x79, 0x98, 0x7a, 0xb3, 0xc0, 0x97, 0x6e, 0xc0, 0x16, 0x00, 0x9e, - 0x29, 0xc6, 0xdf, 0xcf, 0xc2, 0x45, 0x79, 0xac, 0xd0, 0x80, 0x09, 0x8e, 0x4e, 0x7b, 0xef, 0x19, - 0x3f, 0x1d, 0xee, 0x68, 0xa7, 0xc3, 0x2b, 0xb1, 0x93, 0x3a, 0xd6, 0xca, 0x3e, 0x47, 0xc4, 0x6f, - 0x8f, 0xc1, 0x8b, 0x7d, 0xa9, 0xc8, 0x17, 0xd9, 0x69, 0xee, 0xd0, 0x76, 0x50, 0x6d, 0x34, 0xe9, - 0xa6, 0xd3, 0xa2, 0x6e, 0x37, 0x10, 0x1e, 0x03, 0x2f, 0xa3, 0x3e, 0x0f, 0x0b, 0x2d, 0xa7, 0xd1, - 0xa4, 0x56, 0xc0, 0x8b, 0xb5, 0xe9, 0x96, 0xa4, 0x66, 0x2c, 0xc3, 0xa4, 0x49, 0xd5, 0x76, 0x40, - 0xbd, 0x47, 0x68, 0x95, 0x18, 0xb2, 0x3c, 0xa0, 0xb4, 0x63, 0xd9, 0xac, 0xd4, 0x72, 0x44, 0xb1, - 0xce, 0x32, 0x41, 0x4d, 0xee, 0x28, 0x2c, 0xcb, 0xec, 0xf6, 0xbf, 0x66, 0x3f, 0x16, 0x66, 0x52, - 0x22, 0x06, 0x69, 0xc8, 0x92, 0x3b, 0xf1, 0xb5, 0xec, 0xc7, 0x66, 0x92, 0x84, 0x7c, 0x15, 0xce, - 0x89, 0x03, 0x48, 0x04, 0x34, 0x91, 0x2d, 0xe6, 0xe1, 0x52, 0x5e, 0x3b, 0x39, 0x2e, 0x5e, 0x90, - 0xd1, 0x5b, 0x65, 0x08, 0x9b, 0xb4, 0x56, 0xa7, 0x73, 0x21, 0x9b, 0xec, 0x40, 0x8e, 0x75, 0xc7, - 0x1a, 0xf5, 0x7d, 0xe9, 0xa9, 0x29, 0x6e, 0xc6, 0x6a, 0x67, 0x5a, 0x2d, 0x5e, 0x6e, 0xf6, 0xa4, - 0x24, 0x2b, 0x30, 0xb5, 0x4d, 0x77, 0xd4, 0xf1, 0x19, 0x09, 0xb7, 0xaa, 0xc2, 0x21, 0xdd, 0xe9, - 0x3d, 0x38, 0x31, 0x3a, 0xe2, 0xe0, 0xfb, 0xc0, 0xe3, 0xa3, 0x55, 0xc7, 0x0f, 0x68, 0x9b, 0x7a, - 0x18, 0x28, 0x6b, 0x14, 0x37, 0x83, 0xf9, 0x48, 0x42, 0xd6, 0xcb, 0x97, 0x5e, 0x3a, 0x39, 0x2e, - 0xbe, 0xc8, 0x5d, 0x9e, 0x9b, 0x02, 0x6e, 0xc5, 0x52, 0x0e, 0x25, 0xb9, 0x92, 0xaf, 0xc3, 0xb4, - 0xe9, 0x76, 0x03, 0xa7, 0xbd, 0x57, 0x0b, 0x3c, 0x3b, 0xa0, 0x7b, 0xfc, 0x40, 0x8a, 0x22, 0x72, - 0xc5, 0x4a, 0xc5, 0xd3, 0x32, 0x07, 0x5a, 0xbe, 0x80, 0x6a, 0x27, 0x82, 0x4e, 0x40, 0xbe, 0x06, - 0x53, 0x3c, 0x94, 0x45, 0x58, 0xc1, 0x98, 0x96, 0x2e, 0x41, 0x2f, 0x7c, 0x78, 0x53, 0x58, 0xb5, - 0x20, 0x34, 0xad, 0x82, 0x18, 0x37, 0xf2, 0x65, 0xd1, 0x59, 0x1b, 0x4e, 0x7b, 0x2f, 0x9c, 0xc6, - 0x80, 0x3d, 0xff, 0x66, 0xd4, 0x25, 0x1d, 0xf6, 0xb9, 0x72, 0x1a, 0xf7, 0x30, 0xd1, 0x4b, 0xf2, - 0x21, 0x01, 0xbc, 0x58, 0xf2, 0x7d, 0xc7, 0x0f, 0x84, 0x5f, 0xcd, 0xf2, 0x63, 0x5a, 0xef, 0x32, - 0x64, 0x76, 0xbd, 0xa5, 0x1e, 0xb7, 0xeb, 0x1e, 0x5e, 0xba, 0x7e, 0x72, 0x5c, 0x7c, 0xdd, 0x46, - 0x44, 0x4b, 0xb8, 0xe2, 0x58, 0x54, 0xa2, 0x5a, 0x87, 0x1c, 0x57, 0x69, 0x43, 0x7f, 0xa6, 0xe4, - 0x6b, 0x70, 0xbe, 0x6c, 0xfb, 0xb4, 0xda, 0xf6, 0x69, 0xdb, 0x77, 0x02, 0xe7, 0x11, 0x15, 0x9d, - 0x8a, 0x87, 0x5f, 0x1e, 0x93, 0x33, 0x19, 0x75, 0xdb, 0x67, 0x0b, 0x33, 0x44, 0xb1, 0xc4, 0xa0, - 0x28, 0xd5, 0xf4, 0xe0, 0x42, 0x4c, 0x98, 0xaa, 0xd5, 0x56, 0x2a, 0x8e, 0x1d, 0xae, 0xab, 0x49, - 0xec, 0xaf, 0xd7, 0x51, 0xb5, 0xe7, 0xef, 0x5b, 0x0d, 0xc7, 0x0e, 0x17, 0x54, 0x8f, 0xce, 0x8a, - 0x71, 0x30, 0x8e, 0x33, 0x50, 0x88, 0x0f, 0x25, 0xf9, 0x12, 0x8c, 0x71, 0xfb, 0x36, 0xea, 0xef, - 0x8b, 0xc8, 0x0e, 0xd2, 0x5c, 0x2a, 0x84, 0xeb, 0x44, 0xc2, 0x89, 0x8e, 0x5b, 0xcf, 0x51, 0xd5, - 0x5a, 0x06, 0x9d, 0xe8, 0x24, 0x11, 0x69, 0xc0, 0x04, 0x1f, 0x2d, 0x8a, 0xe1, 0xf8, 0x84, 0x99, - 0xf3, 0x4b, 0xea, 0xea, 0x10, 0x45, 0x31, 0xfe, 0xf8, 0x6a, 0x28, 0xe6, 0x04, 0x47, 0xd0, 0xaa, - 0xd0, 0xb8, 0x2e, 0x01, 0xe4, 0x25, 0xa1, 0x71, 0x11, 0x2e, 0xf4, 0xf8, 0x66, 0xe3, 0x11, 0x5a, - 0x12, 0xf4, 0xa8, 0x91, 0x7c, 0x09, 0xe6, 0x90, 0xb0, 0xec, 0xb6, 0xdb, 0xb4, 0x1e, 0xe0, 0x76, - 0x24, 0xb5, 0xef, 0x39, 0x6e, 0xe9, 0xc2, 0xdb, 0x5b, 0x0f, 0x11, 0xac, 0xb8, 0x12, 0x3e, 0x95, - 0x83, 0xf1, 0x33, 0x59, 0x98, 0x17, 0x3b, 0x9c, 0x49, 0xeb, 0xae, 0xd7, 0x78, 0xf6, 0x4f, 0xd4, - 0x65, 0xed, 0x44, 0x7d, 0x39, 0x0c, 0xe5, 0x93, 0xd6, 0xc8, 0x3e, 0x07, 0xea, 0xaf, 0x64, 0xe0, - 0x85, 0x7e, 0x44, 0xac, 0x77, 0xc2, 0xf0, 0x83, 0x63, 0x89, 0x30, 0x83, 0x1d, 0x98, 0xc5, 0x01, - 0x2d, 0xef, 0xd3, 0xfa, 0x81, 0xbf, 0xe2, 0xfa, 0x01, 0x7a, 0x5a, 0x64, 0x7b, 0xbc, 0x75, 0xbf, - 0x91, 0xfa, 0xd6, 0x7d, 0x9e, 0xcf, 0xb2, 0x3a, 0xf2, 0xe0, 0x01, 0x12, 0x0f, 0xe8, 0x91, 0x6f, - 0xa6, 0xb1, 0x46, 0x8b, 0xf9, 0x52, 0x37, 0xd8, 0xdf, 0xf0, 0xe8, 0x2e, 0xf5, 0x68, 0xbb, 0x4e, - 0xbf, 0xcb, 0x2c, 0xe6, 0xf5, 0xc6, 0x0d, 0xa4, 0xc1, 0xf8, 0xc7, 0x93, 0x30, 0x97, 0x46, 0xc6, - 0xfa, 0x45, 0xb9, 0x34, 0xc7, 0x73, 0x47, 0xfe, 0x40, 0x06, 0x26, 0x6a, 0xb4, 0xee, 0xb6, 0x1b, - 0x77, 0xd0, 0xa2, 0x48, 0xf4, 0x8e, 0xc5, 0x85, 0x06, 0x06, 0xb7, 0x76, 0x63, 0xa6, 0x46, 0xdf, - 0x39, 0x2e, 0x7e, 0x61, 0xb0, 0xbb, 0x6a, 0xdd, 0xc5, 0x70, 0x3c, 0x01, 0xe6, 0x36, 0x08, 0xab, - 0xc0, 0xc7, 0x41, 0xad, 0x52, 0xb2, 0x04, 0x93, 0x62, 0xb9, 0xba, 0x6a, 0xf4, 0x49, 0x1e, 0xed, - 0x48, 0x16, 0x24, 0x54, 0xd7, 0x1a, 0x09, 0xb9, 0x05, 0xb9, 0xad, 0xc5, 0x3b, 0x62, 0x0c, 0x64, - 0x76, 0x88, 0xad, 0xc5, 0x3b, 0xa8, 0x0e, 0x63, 0x57, 0x8c, 0xc9, 0xee, 0xa2, 0x66, 0xe4, 0xb3, - 0xb5, 0x78, 0x87, 0xfc, 0x4d, 0x38, 0x57, 0x71, 0x7c, 0x51, 0x05, 0xf7, 0xdd, 0x68, 0xa0, 0xc7, - 0xe2, 0x48, 0x8f, 0xd9, 0xfb, 0xd9, 0xd4, 0xd9, 0xfb, 0x52, 0x23, 0x64, 0x62, 0x71, 0xc7, 0x90, - 0x46, 0x3c, 0xca, 0x66, 0x7a, 0x3d, 0xe4, 0x23, 0x98, 0x42, 0x65, 0x36, 0xba, 0xb3, 0x60, 0x7c, - 0xf4, 0xd1, 0x1e, 0x35, 0x7f, 0x3a, 0xb5, 0xe6, 0x05, 0x1e, 0x65, 0x03, 0x9d, 0x62, 0x30, 0x96, - 0xba, 0x76, 0xeb, 0xd7, 0x38, 0x93, 0x7b, 0x30, 0x2d, 0xc4, 0xaf, 0x07, 0xbb, 0x9b, 0xfb, 0xb4, - 0x62, 0x1f, 0x09, 0xfb, 0x1c, 0xbc, 0xd1, 0x09, 0x99, 0xcd, 0x72, 0x77, 0xad, 0x60, 0x9f, 0x5a, - 0x0d, 0x5b, 0x13, 0x54, 0x62, 0x84, 0xe4, 0x5b, 0x30, 0xbe, 0xea, 0xd6, 0x99, 0xe4, 0x8d, 0x3b, - 0x03, 0x37, 0xd9, 0xf9, 0x10, 0xb3, 0x13, 0x72, 0x70, 0x4c, 0x9c, 0xfa, 0xce, 0x71, 0xf1, 0x9d, - 0xb3, 0x4e, 0x1a, 0xa5, 0x02, 0x53, 0xad, 0x8d, 0x94, 0x21, 0xbf, 0x4d, 0x77, 0x58, 0x6b, 0xe3, - 0x99, 0xcb, 0x24, 0x58, 0x58, 0xe4, 0x89, 0x5f, 0x9a, 0x45, 0x9e, 0x80, 0x11, 0x0f, 0x66, 0xb0, - 0x7f, 0x36, 0x6c, 0xdf, 0x3f, 0x74, 0xbd, 0x06, 0xa6, 0xa8, 0xe8, 0x65, 0x0d, 0xb4, 0x98, 0xda, - 0xf9, 0x2f, 0xf0, 0xce, 0xef, 0x28, 0x1c, 0x54, 0x01, 0x32, 0xc1, 0x9e, 0x7c, 0x1d, 0xa6, 0x44, - 0xc4, 0x82, 0xb5, 0x3b, 0x25, 0x5c, 0x95, 0x13, 0x9a, 0xdf, 0xa7, 0x5e, 0xc8, 0xa5, 0x54, 0x11, - 0x00, 0x41, 0x6a, 0xa0, 0xac, 0xd6, 0xae, 0xad, 0x2b, 0xfd, 0x55, 0x12, 0xb2, 0x01, 0xe3, 0x15, - 0xcc, 0x9f, 0x8b, 0xbe, 0x69, 0xc2, 0x2e, 0x3c, 0x4c, 0xbd, 0x14, 0x95, 0x70, 0x5d, 0x8c, 0x48, - 0xb5, 0x8b, 0x9e, 0x6e, 0xba, 0xad, 0x6e, 0x88, 0x48, 0x6e, 0x43, 0xae, 0x5a, 0xd9, 0x10, 0x66, - 0xe1, 0x33, 0x61, 0x5c, 0x90, 0x0d, 0x99, 0xa8, 0x06, 0xed, 0xe7, 0x9c, 0x86, 0x66, 0x54, 0x5e, - 0xad, 0x6c, 0x90, 0x5d, 0x98, 0xc4, 0x0e, 0x58, 0xa1, 0x36, 0xef, 0xdb, 0xe9, 0x1e, 0x7d, 0x7b, - 0x3d, 0xb5, 0x6f, 0xe7, 0x79, 0xdf, 0xee, 0x0b, 0x6a, 0x2d, 0xf3, 0x86, 0xca, 0x96, 0x89, 0xb4, - 0x22, 0x1b, 0x90, 0xcc, 0x17, 0xb1, 0xb9, 0x8a, 0xf6, 0x41, 0x42, 0xa4, 0x95, 0xc9, 0x83, 0xc2, - 0x04, 0x16, 0x3d, 0xbd, 0x4e, 0x92, 0x7c, 0xc8, 0xe7, 0x61, 0xe8, 0xc1, 0x41, 0x60, 0x0b, 0x03, - 0x70, 0xd9, 0x8f, 0x0c, 0x24, 0x9b, 0x8f, 0x5a, 0x48, 0xf7, 0x40, 0x8b, 0xc3, 0x86, 0x34, 0x6c, - 0x28, 0x56, 0x6c, 0xaf, 0x71, 0x68, 0x7b, 0xe8, 0x20, 0x3c, 0xab, 0xb1, 0x50, 0x4a, 0xf8, 0x50, - 0xec, 0x0b, 0x40, 0xcc, 0x6b, 0x58, 0x65, 0x41, 0xbe, 0x07, 0x2e, 0xfa, 0xce, 0x5e, 0xdb, 0x0e, - 0xba, 0x1e, 0xb5, 0xec, 0xe6, 0x9e, 0xeb, 0x39, 0xc1, 0x7e, 0xcb, 0xf2, 0xbb, 0x4e, 0x40, 0xe7, - 0xe7, 0xb4, 0xdc, 0xc1, 0x35, 0x89, 0x57, 0x92, 0x68, 0x35, 0x86, 0x65, 0x5e, 0xf0, 0xd3, 0x0b, - 0xc8, 0x97, 0x61, 0x52, 0xdd, 0x92, 0xfd, 0xf9, 0x73, 0x97, 0x73, 0x57, 0xa7, 0xc2, 0x8b, 0x47, - 0x7c, 0x03, 0x97, 0x31, 0x77, 0x95, 0x13, 0xc2, 0xd7, 0x63, 0xee, 0x2a, 0xbc, 0xc2, 0x6c, 0x7c, - 0xa4, 0x30, 0x6b, 0xce, 0x88, 0x19, 0x2b, 0x7a, 0x79, 0xed, 0x4e, 0xc9, 0x1c, 0xdd, 0xa8, 0x3e, - 0xac, 0x35, 0xdd, 0xc0, 0xf8, 0xcf, 0x32, 0xb8, 0x89, 0x93, 0xd7, 0x31, 0x7c, 0x54, 0xf8, 0x7a, - 0x86, 0xfa, 0x5b, 0xbb, 0x13, 0x0b, 0xd8, 0xce, 0x51, 0xc8, 0x1b, 0x30, 0x72, 0xc7, 0xae, 0xcb, - 0xd0, 0x35, 0x02, 0x79, 0x17, 0x21, 0xaa, 0xb2, 0x97, 0xe3, 0x30, 0xf9, 0x92, 0x4f, 0xee, 0x52, - 0x94, 0x96, 0xba, 0x5c, 0x92, 0xcf, 0xf5, 0x28, 0x5f, 0x8a, 0x45, 0xa1, 0xe4, 0xad, 0x8e, 0x59, - 0xc5, 0xa7, 0x72, 0x30, 0xfe, 0x2c, 0x13, 0xed, 0x4a, 0xe4, 0x35, 0x18, 0x32, 0x37, 0xc2, 0xef, - 0xe7, 0x4e, 0xbf, 0xb1, 0xcf, 0x47, 0x04, 0xf2, 0x65, 0x38, 0xa7, 0xf0, 0x49, 0x98, 0xe8, 0xbf, - 0x8a, 0x3e, 0xa9, 0xca, 0x97, 0xa4, 0xdb, 0xe9, 0xa7, 0xf3, 0x40, 0x61, 0x3a, 0x2a, 0xa8, 0xd0, - 0xb6, 0xc3, 0x79, 0x2b, 0x8d, 0x55, 0x79, 0x37, 0x10, 0x21, 0xde, 0xd8, 0x34, 0x0e, 0xdc, 0x25, - 0xd5, 0xf8, 0xad, 0x8c, 0xb6, 0xdb, 0x84, 0x79, 0x7c, 0x33, 0xa7, 0xe4, 0xf1, 0x7d, 0x1b, 0xa0, - 0xd4, 0x0d, 0xdc, 0xe5, 0xb6, 0xe7, 0x36, 0xb9, 0x16, 0x45, 0xe4, 0x2c, 0x40, 0xdd, 0x30, 0x45, - 0xb0, 0xe6, 0x39, 0x17, 0x22, 0xa7, 0x7a, 0x33, 0xe4, 0x3e, 0xae, 0x37, 0x83, 0xf1, 0x07, 0x19, - 0x6d, 0x8d, 0x32, 0x29, 0x51, 0x4c, 0x45, 0xd5, 0x62, 0xac, 0xe3, 0x3c, 0xb2, 0xfc, 0xa6, 0xab, - 0x05, 0xa9, 0x10, 0x68, 0xe4, 0xff, 0x9f, 0x81, 0xf3, 0xdc, 0x2d, 0x60, 0xbd, 0xdb, 0xda, 0xa1, - 0xde, 0x43, 0xbb, 0xe9, 0x34, 0xb8, 0xe3, 0x35, 0x17, 0x80, 0xaf, 0x26, 0x17, 0x7c, 0x3a, 0x3e, - 0xbf, 0xa8, 0x72, 0x37, 0x05, 0xab, 0x8d, 0x85, 0xd6, 0xa3, 0xb0, 0x54, 0xbd, 0xa8, 0xa6, 0xd3, - 0x1b, 0xbf, 0x9a, 0x81, 0x97, 0x4e, 0xad, 0x85, 0xdc, 0x80, 0x51, 0x99, 0x2c, 0x22, 0x83, 0x1d, - 0x8f, 0x76, 0xb6, 0xc9, 0x44, 0x11, 0x12, 0x8b, 0x7c, 0x05, 0xce, 0xa9, 0xac, 0x36, 0x3d, 0xdb, - 0x51, 0x53, 0x32, 0xa4, 0x7c, 0x75, 0xc0, 0x50, 0xe2, 0xd2, 0x5a, 0x3a, 0x13, 0xe3, 0xff, 0xcd, - 0x28, 0x99, 0xbd, 0x9f, 0x51, 0x19, 0xfe, 0xb6, 0x26, 0xc3, 0xcb, 0xc0, 0x9d, 0x61, 0xab, 0x58, - 0x59, 0xea, 0xbd, 0x6b, 0x5a, 0xb1, 0x17, 0x47, 0xc0, 0x0f, 0x65, 0x61, 0x7c, 0xcb, 0xa7, 0x1e, - 0x7f, 0xc8, 0xfd, 0xee, 0x0a, 0xd0, 0x18, 0xb6, 0x6b, 0xa0, 0x10, 0x7a, 0x7f, 0x92, 0x41, 0x05, - 0xbf, 0x4a, 0xc1, 0x7a, 0x43, 0xc9, 0xe6, 0x87, 0xbd, 0x81, 0x79, 0xfc, 0x10, 0xca, 0x03, 0x8a, - 0xad, 0xea, 0x89, 0x3d, 0x31, 0xbb, 0xeb, 0x2a, 0xf9, 0x02, 0x0c, 0x6f, 0xa1, 0xba, 0x52, 0x0f, - 0xb2, 0x11, 0xf2, 0xc7, 0x42, 0xbe, 0x49, 0x77, 0x7d, 0x3d, 0xda, 0x1c, 0x27, 0x24, 0x35, 0x18, - 0x2d, 0x7b, 0x14, 0xf3, 0x74, 0x0f, 0x0d, 0xee, 0x22, 0x5e, 0xe7, 0x24, 0x71, 0x17, 0x71, 0xc1, - 0xc9, 0xf8, 0xe9, 0x2c, 0x90, 0xa8, 0x8d, 0x98, 0x94, 0xca, 0x7f, 0x66, 0x07, 0xfd, 0x03, 0x6d, - 0xd0, 0x5f, 0x4c, 0x0c, 0x3a, 0x6f, 0xde, 0x40, 0x63, 0xff, 0x3b, 0x19, 0x38, 0x9f, 0x4e, 0x48, - 0x5e, 0x86, 0x91, 0x07, 0x9b, 0x1b, 0x32, 0x4e, 0x8b, 0x68, 0x8a, 0xdb, 0x41, 0x5d, 0x81, 0x29, - 0x8a, 0xc8, 0x9b, 0x30, 0xf2, 0x45, 0xb3, 0xcc, 0xce, 0x21, 0x25, 0xed, 0xc1, 0x37, 0x3c, 0xab, - 0xae, 0x1f, 0x45, 0x02, 0x49, 0x1d, 0xdb, 0xdc, 0x53, 0x1b, 0xdb, 0x1f, 0xcf, 0xc2, 0x74, 0xa9, - 0x5e, 0xa7, 0xbe, 0xcf, 0xa4, 0x1d, 0xea, 0x07, 0xcf, 0xec, 0xc0, 0xa6, 0x47, 0x60, 0xd1, 0xda, - 0x36, 0xd0, 0xa8, 0xfe, 0x5e, 0x06, 0xce, 0x49, 0xaa, 0x47, 0x0e, 0x3d, 0xdc, 0xdc, 0xf7, 0xa8, - 0xbf, 0xef, 0x36, 0x1b, 0x03, 0xe7, 0x56, 0x61, 0x82, 0x1e, 0x06, 0x4c, 0x57, 0x5f, 0xf5, 0x77, - 0x11, 0xa2, 0x09, 0x7a, 0x3c, 0xa8, 0xfa, 0x0d, 0x18, 0x2d, 0x75, 0x3a, 0x9e, 0xfb, 0x88, 0x2f, - 0x7b, 0x11, 0x4f, 0xd2, 0xe6, 0x20, 0xcd, 0xc3, 0x9e, 0x83, 0xd8, 0x67, 0x54, 0x68, 0x9b, 0x07, - 0xf0, 0x9b, 0xe4, 0x9f, 0xd1, 0xa0, 0x6d, 0x55, 0x16, 0xc7, 0x72, 0xa3, 0x06, 0x64, 0xc3, 0x73, - 0x5b, 0x6e, 0x40, 0x1b, 0xbc, 0x3d, 0x18, 0x98, 0xe0, 0xd4, 0x40, 0x5a, 0x9b, 0x4e, 0xd0, 0xd4, - 0x02, 0x69, 0x05, 0x0c, 0x60, 0x72, 0xb8, 0xf1, 0x7f, 0x0f, 0xc3, 0x84, 0xda, 0x3b, 0xc4, 0xe0, - 0x09, 0x13, 0x5c, 0x4f, 0x8d, 0x8e, 0x61, 0x23, 0xc4, 0x14, 0x25, 0x51, 0x68, 0x99, 0xec, 0xa9, - 0xa1, 0x65, 0xb6, 0x61, 0x72, 0xc3, 0x73, 0x31, 0xf0, 0x25, 0xbe, 0x56, 0x8a, 0xad, 0x70, 0x56, - 0xb9, 0x77, 0xb2, 0x81, 0xc4, 0xf7, 0x50, 0x94, 0xec, 0x3b, 0x02, 0x1b, 0xd3, 0x08, 0x6a, 0x5a, - 0x17, 0x8d, 0x0f, 0x37, 0xb5, 0xb0, 0x7d, 0x11, 0xbd, 0x36, 0x34, 0xb5, 0x60, 0x10, 0xdd, 0xd4, - 0x82, 0x41, 0xd4, 0xb5, 0x36, 0xfc, 0xb4, 0xd6, 0x1a, 0xf9, 0xe9, 0x0c, 0x8c, 0x97, 0xda, 0x6d, - 0x11, 0xb2, 0xe6, 0x14, 0x6f, 0xfd, 0xaf, 0x08, 0x6b, 0x8b, 0x77, 0x3e, 0x96, 0xb5, 0x05, 0xca, - 0x2d, 0x3e, 0x4a, 0xaa, 0x51, 0x85, 0xea, 0x6d, 0x4d, 0xf9, 0x0e, 0xf2, 0x0e, 0x14, 0xc2, 0x49, - 0x5e, 0x6d, 0x37, 0xe8, 0x63, 0xca, 0x13, 0xce, 0x4d, 0x8a, 0xb8, 0xd5, 0xaa, 0x64, 0x1a, 0x47, - 0x24, 0x9b, 0x00, 0x76, 0x38, 0xbb, 0x62, 0x99, 0x33, 0x93, 0xd3, 0x4f, 0x48, 0xcf, 0xf8, 0x1b, - 0x1f, 0xb4, 0x54, 0xe9, 0x39, 0xe2, 0x43, 0x5a, 0x30, 0xcd, 0xd3, 0x56, 0xd6, 0x02, 0xdb, 0x0b, - 0x30, 0x3d, 0x03, 0x9c, 0x3a, 0x0e, 0xaf, 0x09, 0xfd, 0xd9, 0xf3, 0x22, 0x19, 0xa6, 0xcf, 0x68, - 0xad, 0x94, 0x5c, 0x0d, 0x71, 0xde, 0x3c, 0x4a, 0xb8, 0x79, 0x21, 0xf9, 0xbd, 0x7c, 0xd2, 0xff, - 0x78, 0x06, 0xce, 0xab, 0x93, 0xbe, 0xd6, 0xdd, 0x11, 0x01, 0x43, 0xc9, 0x75, 0x18, 0x13, 0x73, - 0x32, 0xbc, 0x44, 0x25, 0xb3, 0x4c, 0x44, 0x28, 0x64, 0x99, 0x4d, 0x43, 0xc6, 0x43, 0x48, 0xdd, - 0xb3, 0xb1, 0x7d, 0x8a, 0x15, 0x45, 0x29, 0x91, 0x3d, 0xfc, 0xad, 0xcf, 0x4f, 0x06, 0x31, 0xde, - 0x87, 0x19, 0x7d, 0x24, 0x6a, 0x34, 0x20, 0xd7, 0x60, 0x54, 0x0e, 0x5f, 0x26, 0x7d, 0xf8, 0x64, - 0xb9, 0xb1, 0x0d, 0x24, 0x41, 0xef, 0xa3, 0x59, 0x14, 0xbb, 0x9f, 0x72, 0xb3, 0x3d, 0xf9, 0x28, - 0x99, 0x40, 0x5c, 0x9a, 0x15, 0xdf, 0x37, 0xae, 0xb9, 0x25, 0x60, 0xf0, 0xd4, 0x3f, 0x9b, 0x82, - 0xd9, 0x94, 0x3d, 0xf7, 0x14, 0x99, 0xa8, 0xa8, 0x6f, 0x10, 0x63, 0x61, 0xb0, 0x0f, 0xb9, 0x2d, - 0xbc, 0x0f, 0xc3, 0xa7, 0x6e, 0x07, 0xdc, 0x29, 0x25, 0xb6, 0x0b, 0x70, 0xb2, 0x4f, 0x44, 0x2e, - 0x52, 0xe3, 0xf1, 0x0c, 0x3f, 0xb5, 0x78, 0x3c, 0x4b, 0x30, 0x29, 0x5a, 0x25, 0xb6, 0x2b, 0xc5, - 0x38, 0xda, 0xe3, 0x05, 0x56, 0x62, 0xdb, 0xd2, 0x49, 0x38, 0x0f, 0xdf, 0x6d, 0x3e, 0xa2, 0x82, - 0xc7, 0xa8, 0xca, 0x03, 0x0b, 0x52, 0x79, 0x28, 0x24, 0xe4, 0x3f, 0xc0, 0x94, 0x79, 0x08, 0x51, - 0xf7, 0xac, 0x7c, 0xbf, 0x3d, 0xab, 0xf1, 0x74, 0xf6, 0xac, 0x17, 0xe5, 0x37, 0xa6, 0xef, 0x5d, - 0x29, 0x9f, 0x45, 0x7e, 0x29, 0x03, 0x33, 0x3c, 0x28, 0x8c, 0xfa, 0xb1, 0x7d, 0x03, 0x7d, 0xd4, - 0x9f, 0xce, 0xc7, 0xbe, 0x20, 0x52, 0x45, 0xa5, 0x7f, 0x6b, 0xf2, 0xa3, 0xc8, 0xf7, 0x00, 0x84, - 0x2b, 0x8a, 0x07, 0x90, 0x1d, 0x5f, 0x7c, 0x21, 0x65, 0x17, 0x08, 0x91, 0xa2, 0xb4, 0x16, 0x41, - 0x48, 0xa7, 0x25, 0x4a, 0x0c, 0xa1, 0xe4, 0x6f, 0xc2, 0x1c, 0x5b, 0x2f, 0x21, 0x44, 0x84, 0xb0, - 0x9a, 0x1f, 0xc7, 0x5a, 0x3e, 0xd3, 0x5b, 0x26, 0xba, 0x9e, 0x46, 0xc6, 0xc3, 0x0d, 0x47, 0x39, - 0xab, 0x03, 0x35, 0xda, 0x45, 0x6a, 0x45, 0x18, 0x19, 0x0e, 0xbf, 0x9e, 0xa7, 0x9e, 0xe8, 0xb1, - 0xbf, 0x5d, 0x94, 0x6b, 0x81, 0xef, 0x6f, 0xbe, 0xee, 0xa3, 0x8c, 0x20, 0xf2, 0x45, 0x20, 0x61, - 0x34, 0x15, 0x0e, 0xa3, 0x32, 0x2d, 0x05, 0x57, 0x37, 0x47, 0x51, 0x59, 0x3c, 0x59, 0xac, 0x4e, - 0x92, 0x24, 0x31, 0xa1, 0x30, 0x27, 0x1a, 0xcd, 0xa0, 0x32, 0x9f, 0x9d, 0x3f, 0x3f, 0xa5, 0x05, - 0x08, 0x8b, 0x4a, 0xa2, 0xe4, 0xd6, 0x4a, 0x52, 0x3c, 0x4d, 0xe5, 0x94, 0xc6, 0x8e, 0xdc, 0x86, - 0x31, 0x74, 0x14, 0x5e, 0x91, 0xc6, 0x5e, 0xc2, 0xf0, 0x04, 0x5d, 0x8a, 0xad, 0x7d, 0xdd, 0x64, - 0x2b, 0x42, 0x65, 0xd7, 0x81, 0x8a, 0x77, 0x64, 0x76, 0xdb, 0xa8, 0x14, 0x16, 0xfa, 0x8e, 0x86, - 0x77, 0x64, 0x79, 0x5d, 0xdd, 0x93, 0x1c, 0x91, 0xc8, 0xd7, 0x61, 0x7c, 0xcd, 0x7e, 0x2c, 0x75, - 0xc2, 0x42, 0xf1, 0xdb, 0x6f, 0x07, 0x32, 0x64, 0x6b, 0x5a, 0xf6, 0x63, 0xab, 0xd1, 0x8d, 0x07, - 0x3b, 0xc6, 0x6d, 0x48, 0x65, 0x49, 0xbe, 0x0a, 0xa0, 0x68, 0xaa, 0xc9, 0xa9, 0x15, 0xbc, 0x24, - 0xc3, 0xde, 0xa5, 0x6a, 0xb0, 0x91, 0xbf, 0xc2, 0x30, 0x26, 0x39, 0xcc, 0x7d, 0x72, 0x92, 0xc3, - 0xb9, 0x4f, 0x4e, 0x72, 0x58, 0xd8, 0x81, 0x8b, 0x3d, 0x97, 0x4e, 0x4a, 0xa8, 0xe3, 0x1b, 0x7a, - 0xa8, 0xe3, 0x8b, 0xbd, 0x8e, 0x58, 0x5f, 0xcf, 0x64, 0x32, 0x5b, 0x98, 0xeb, 0x2d, 0x9d, 0x7c, - 0x3b, 0x1b, 0x3b, 0x72, 0xc5, 0xc5, 0x82, 0x67, 0xbe, 0xea, 0x25, 0x93, 0x64, 0x31, 0xd9, 0x31, - 0x3f, 0x94, 0x95, 0x68, 0xf0, 0xec, 0x50, 0x56, 0x0f, 0x75, 0x3c, 0x9e, 0x9f, 0xf4, 0xf4, 0x7d, - 0x17, 0xa6, 0x78, 0x7e, 0xd2, 0xfb, 0xf4, 0xe8, 0xd0, 0xf5, 0x1a, 0x3c, 0xa7, 0x8f, 0x90, 0xc1, - 0x13, 0xc9, 0xc5, 0x63, 0xb8, 0xa4, 0x22, 0x7d, 0x4f, 0x87, 0xb1, 0xf6, 0x8b, 0xa9, 0xbb, 0x18, - 0x43, 0xe8, 0xe7, 0x96, 0x4a, 0xde, 0x0a, 0x05, 0x35, 0xea, 0xa9, 0xf9, 0x4c, 0x3c, 0x09, 0x4c, - 0x91, 0xd7, 0xa8, 0x67, 0xfc, 0xb3, 0x1c, 0x10, 0x5e, 0x53, 0xd9, 0xee, 0xd8, 0xe8, 0x99, 0xed, - 0x60, 0xac, 0xa5, 0x82, 0xc0, 0xb1, 0x77, 0x9a, 0x54, 0x0d, 0x54, 0x26, 0x8c, 0x6b, 0xc3, 0x32, - 0x2b, 0x7e, 0xd1, 0x49, 0x10, 0xf6, 0xd8, 0xea, 0xb2, 0x4f, 0xb2, 0xd5, 0x7d, 0x1d, 0x9e, 0x2f, - 0x75, 0x30, 0xd1, 0xb1, 0xac, 0xe5, 0x8e, 0xeb, 0xc9, 0x4d, 0x4a, 0xf3, 0xf9, 0xb3, 0x43, 0xb4, - 0xc4, 0x97, 0xf6, 0x63, 0xa1, 0xc8, 0x29, 0x6c, 0x5e, 0x76, 0x02, 0x35, 0x86, 0x84, 0x94, 0x53, - 0x3a, 0x58, 0x92, 0x22, 0xa7, 0x70, 0x12, 0xc9, 0xc3, 0xf1, 0xa4, 0x9c, 0x82, 0x19, 0xbc, 0x22, - 0x1e, 0x8e, 0x47, 0x7b, 0xc8, 0x3a, 0x21, 0x09, 0x79, 0x17, 0xc6, 0x4b, 0xdd, 0xc0, 0x15, 0x8c, - 0x85, 0x55, 0x78, 0x64, 0xbf, 0x2d, 0x3e, 0x45, 0xbb, 0xfa, 0x44, 0xe8, 0xc6, 0x9f, 0xe6, 0xe0, - 0x62, 0x72, 0x78, 0x45, 0x69, 0xb8, 0x3e, 0x32, 0xa7, 0xac, 0x8f, 0xb4, 0xd9, 0x90, 0x8d, 0xf2, - 0x4b, 0x3c, 0x8d, 0xd9, 0xc0, 0xf3, 0x25, 0x7f, 0xcc, 0xd9, 0x50, 0x83, 0x71, 0xf5, 0xbc, 0x1b, - 0xfa, 0xb8, 0xe7, 0x9d, 0xca, 0x85, 0x5d, 0xea, 0x79, 0xe8, 0x8c, 0xe1, 0xe8, 0xe9, 0x28, 0x1e, - 0x35, 0x83, 0x63, 0x90, 0xff, 0x1f, 0x5c, 0xe6, 0x7b, 0x52, 0xbc, 0xb1, 0x4b, 0x47, 0x92, 0xa3, - 0x18, 0xb8, 0xc5, 0x93, 0xe3, 0xe2, 0x75, 0xae, 0x2a, 0xb1, 0x12, 0xdd, 0x66, 0xed, 0x1c, 0x59, - 0xf2, 0xcb, 0x94, 0x4a, 0x4e, 0xe5, 0x6d, 0x94, 0xe1, 0xa2, 0x28, 0x8d, 0x9c, 0xb6, 0x65, 0x21, - 0x1b, 0xe4, 0x83, 0x48, 0xdb, 0x85, 0x83, 0x1c, 0x53, 0x64, 0x61, 0x39, 0x66, 0x5a, 0x56, 0xb2, - 0xe0, 0xbe, 0x99, 0xe6, 0x73, 0xc3, 0xa3, 0x76, 0x73, 0xb0, 0xee, 0x6e, 0x23, 0x75, 0x6a, 0xd9, - 0x54, 0x9d, 0x9a, 0x54, 0xca, 0xe4, 0x52, 0x95, 0x32, 0x15, 0x98, 0xae, 0x75, 0x77, 0x64, 0xdd, - 0x71, 0x7f, 0x4d, 0xbf, 0xbb, 0x93, 0xd6, 0x2b, 0x71, 0x12, 0xe3, 0x87, 0xb3, 0x30, 0xb1, 0xd1, - 0xec, 0xee, 0x39, 0xed, 0x8a, 0x1d, 0xd8, 0xcf, 0xac, 0x9a, 0xef, 0x6d, 0x4d, 0xcd, 0x17, 0xba, - 0x96, 0x85, 0x0d, 0x1b, 0x48, 0xc7, 0xf7, 0x53, 0x19, 0x98, 0x8e, 0x48, 0xf8, 0x61, 0xbd, 0x02, - 0x43, 0xec, 0x87, 0xb8, 0xfc, 0x5e, 0x4e, 0x30, 0xe6, 0xa9, 0x17, 0xc3, 0xbf, 0x84, 0xe2, 0x4d, - 0xcf, 0x6b, 0x86, 0x1c, 0x16, 0x3e, 0x0b, 0x63, 0x11, 0xdb, 0xb3, 0xa4, 0x5c, 0xfc, 0xb5, 0x0c, - 0x14, 0xe2, 0x2d, 0x21, 0xf7, 0x61, 0x94, 0x71, 0x72, 0xa8, 0xbc, 0x97, 0xbf, 0xd2, 0xa3, 0xcd, - 0xd7, 0x05, 0x1a, 0xff, 0x3c, 0xec, 0x7c, 0xca, 0x21, 0xa6, 0xe4, 0xb0, 0x60, 0xc2, 0x84, 0x8a, - 0x95, 0xf2, 0x75, 0x6f, 0xe8, 0x12, 0xca, 0xf9, 0xf4, 0x7e, 0xd0, 0x12, 0x45, 0x6a, 0x5f, 0x2d, - 0x84, 0x8f, 0x2b, 0xda, 0xe4, 0x4a, 0x5d, 0x55, 0x38, 0x69, 0x16, 0xa3, 0x2c, 0x05, 0xea, 0x3c, - 0x4b, 0x99, 0xd0, 0x21, 0x1e, 0x79, 0x03, 0x46, 0x78, 0x7d, 0x6a, 0xc2, 0xb4, 0x0e, 0x42, 0x54, - 0x39, 0x99, 0xe3, 0x18, 0xff, 0x20, 0x07, 0xe7, 0xa3, 0xcf, 0xdb, 0xea, 0x34, 0xec, 0x80, 0x6e, - 0xd8, 0x9e, 0xdd, 0xf2, 0x4f, 0x59, 0x01, 0x57, 0x13, 0x9f, 0x86, 0x09, 0xb4, 0xe4, 0xa7, 0x29, - 0x1f, 0x64, 0xc4, 0x3e, 0x08, 0x75, 0xa0, 0xfc, 0x83, 0xe4, 0x67, 0x90, 0xfb, 0x90, 0xab, 0xd1, - 0x40, 0xec, 0xbd, 0x57, 0x12, 0xbd, 0xaa, 0x7e, 0xd7, 0xf5, 0x1a, 0x0d, 0xf8, 0x20, 0xf2, 0xb8, - 0x50, 0x5a, 0x70, 0x3e, 0xc6, 0x85, 0x6c, 0xc3, 0xc8, 0xf2, 0xe3, 0x0e, 0xad, 0x07, 0x22, 0x61, - 0xe8, 0xb5, 0xfe, 0xfc, 0x38, 0xae, 0x92, 0x2f, 0x94, 0x22, 0x40, 0xed, 0x2c, 0x8e, 0xb2, 0x70, - 0x1b, 0xf2, 0xb2, 0xf2, 0xb3, 0xcc, 0xdc, 0x85, 0xb7, 0x61, 0x5c, 0xa9, 0xe4, 0x4c, 0x93, 0xfe, - 0xe7, 0xd9, 0xbe, 0xea, 0x36, 0x65, 0x8e, 0xd1, 0xe5, 0x84, 0xac, 0xa8, 0xe4, 0xa0, 0xe2, 0xb2, - 0xa2, 0x75, 0x20, 0x8a, 0xfa, 0x08, 0x8d, 0x55, 0x98, 0xae, 0x1d, 0x38, 0x9d, 0x28, 0x50, 0xac, - 0x76, 0x22, 0x63, 0x9e, 0x1b, 0x71, 0x71, 0x8f, 0x9f, 0xc8, 0x71, 0x3a, 0xe3, 0x2f, 0x32, 0x30, - 0xc2, 0xfe, 0x7a, 0x78, 0xfb, 0x19, 0xdd, 0x32, 0x6f, 0x69, 0x5b, 0xe6, 0x8c, 0x12, 0xab, 0x1d, - 0x37, 0x8e, 0xdb, 0xa7, 0x6c, 0x96, 0xc7, 0x62, 0x80, 0x38, 0x32, 0xb9, 0x0b, 0xa3, 0xc2, 0xa4, - 0x48, 0xd8, 0x7e, 0xab, 0xc1, 0xdf, 0xa5, 0xb1, 0x51, 0x78, 0xc3, 0x77, 0x3b, 0x71, 0x95, 0x88, - 0xa4, 0x66, 0x72, 0xbd, 0x0c, 0xd9, 0xab, 0x65, 0xa6, 0x76, 0xd1, 0x59, 0x8f, 0x87, 0x2e, 0x57, - 0x72, 0xc9, 0xf7, 0xf0, 0xad, 0x2f, 0x89, 0xd7, 0x90, 0x5c, 0x3f, 0x26, 0xe7, 0x65, 0xe2, 0xde, - 0xd4, 0x87, 0x92, 0x16, 0x9c, 0xaf, 0xd5, 0x56, 0xd0, 0xfc, 0x70, 0xc3, 0xf5, 0x82, 0x3b, 0xae, - 0x77, 0x68, 0xa3, 0x6d, 0x31, 0x6a, 0xf8, 0x14, 0x1b, 0x84, 0x34, 0xa3, 0xb0, 0xd7, 0x52, 0x8d, - 0xc2, 0xfa, 0xd8, 0x29, 0x18, 0x6d, 0xb8, 0x50, 0xab, 0xad, 0xf0, 0xc0, 0xe1, 0x7f, 0x19, 0xf5, - 0xfd, 0x5a, 0x06, 0x66, 0x6a, 0xb5, 0x95, 0x58, 0x55, 0xab, 0x32, 0x62, 0x79, 0x46, 0x7b, 0x08, - 0x4d, 0xef, 0x08, 0x1c, 0x85, 0x0c, 0x97, 0xf0, 0xea, 0x5a, 0x70, 0x4a, 0xce, 0x84, 0x6c, 0x84, - 0x31, 0xd2, 0xb3, 0x9a, 0x3f, 0x40, 0x8f, 0x86, 0xa2, 0x86, 0x5b, 0x78, 0xd3, 0xb1, 0x52, 0x5d, - 0xc3, 0xcd, 0x20, 0xc6, 0x7f, 0x75, 0x9e, 0x47, 0x61, 0x97, 0xb3, 0xe5, 0x3d, 0x98, 0x10, 0xf4, - 0x68, 0x34, 0x2f, 0x6c, 0x42, 0x2e, 0xb2, 0x0d, 0x72, 0x97, 0xc3, 0x79, 0x74, 0xde, 0xef, 0x1c, - 0x17, 0x87, 0x58, 0xd7, 0x98, 0x1a, 0x3a, 0x79, 0x00, 0x93, 0x6b, 0xf6, 0x63, 0x45, 0x9d, 0xc1, - 0x5d, 0xa2, 0xae, 0xb1, 0x5d, 0xa5, 0x65, 0x3f, 0x1e, 0xc0, 0xe8, 0x4e, 0xa7, 0x27, 0x07, 0x30, - 0xa5, 0xb7, 0x49, 0xcc, 0xc0, 0xe4, 0x88, 0xdd, 0x4c, 0x1d, 0xb1, 0x8b, 0x1d, 0xd7, 0x0b, 0xac, - 0xdd, 0x90, 0x5c, 0xcb, 0x38, 0x10, 0x63, 0x4d, 0xde, 0x83, 0x19, 0x25, 0x04, 0xe8, 0x1d, 0xd7, - 0x6b, 0xd9, 0xf2, 0xc2, 0x85, 0x3a, 0x7e, 0xb4, 0x25, 0xda, 0x45, 0xb0, 0x99, 0xc4, 0x24, 0x5f, - 0x4e, 0x73, 0x33, 0x1b, 0x8e, 0x2c, 0x0f, 0x53, 0xdc, 0xcc, 0x7a, 0x59, 0x1e, 0x26, 0x1d, 0xce, - 0xf6, 0xfa, 0x59, 0x26, 0xe7, 0x79, 0xeb, 0x07, 0xb2, 0x3c, 0x0e, 0x47, 0xae, 0x87, 0x05, 0xf2, - 0x22, 0xe4, 0x96, 0x36, 0xee, 0xe0, 0xcb, 0x94, 0x34, 0xa2, 0x6a, 0xef, 0xdb, 0xed, 0x3a, 0x5e, - 0x84, 0x84, 0x37, 0x80, 0x7a, 0x50, 0x2e, 0x6d, 0xdc, 0x21, 0x36, 0xcc, 0x62, 0x76, 0xb7, 0xe0, - 0x4b, 0x37, 0x6f, 0x2a, 0x43, 0x95, 0xc7, 0x4f, 0xbb, 0x21, 0x3e, 0xad, 0x88, 0xb9, 0xe1, 0x02, - 0xeb, 0xf1, 0xcd, 0x9b, 0xa9, 0x03, 0x12, 0x7e, 0x58, 0x1a, 0x2f, 0x76, 0x60, 0xad, 0xd9, 0x8f, - 0x23, 0x27, 0x0e, 0x5f, 0x38, 0xec, 0xbe, 0x28, 0xa7, 0x56, 0xe4, 0x00, 0xa2, 0x1d, 0x58, 0x3a, - 0x11, 0xbb, 0xc7, 0x46, 0x13, 0xcc, 0x17, 0xae, 0x4e, 0x0b, 0x52, 0x5d, 0x27, 0xbd, 0xba, 0xd5, - 0xcb, 0x98, 0x82, 0x4e, 0xb6, 0xc2, 0xdb, 0x38, 0xbf, 0xcd, 0x8a, 0x6c, 0xc1, 0x37, 0xd4, 0xdb, - 0x38, 0x57, 0x92, 0x69, 0xcd, 0x9a, 0x0e, 0x55, 0x38, 0xdc, 0xab, 0xc5, 0xd4, 0xb9, 0x24, 0x2f, - 0xf9, 0x13, 0x67, 0xbf, 0xe4, 0x53, 0x18, 0x5a, 0x75, 0xeb, 0x07, 0x22, 0x38, 0xdf, 0x17, 0xd9, - 0x2e, 0xdc, 0x74, 0xeb, 0x07, 0x4f, 0xcf, 0xe2, 0x1a, 0xd9, 0x93, 0x75, 0xf6, 0xa9, 0x6c, 0x16, - 0x88, 0x3e, 0x11, 0x56, 0xbc, 0x73, 0xe1, 0x2d, 0x57, 0x29, 0xe3, 0xf2, 0x28, 0x9f, 0x34, 0xb2, - 0x6b, 0x4d, 0x9d, 0x9c, 0x50, 0x28, 0x54, 0xa8, 0x7f, 0x10, 0xb8, 0x9d, 0x72, 0xd3, 0xe9, 0xec, - 0xb8, 0xb6, 0x27, 0x43, 0x39, 0x0f, 0xbc, 0x27, 0x37, 0x38, 0xbd, 0x55, 0x97, 0x0c, 0xcc, 0x04, - 0x4b, 0xf2, 0x65, 0x98, 0x62, 0x93, 0x7b, 0xf9, 0x71, 0x40, 0xdb, 0x7c, 0xe4, 0x67, 0x50, 0xa2, - 0x9b, 0x53, 0x72, 0x97, 0x84, 0x85, 0x7c, 0x4e, 0xe1, 0x62, 0xa7, 0x21, 0x81, 0x16, 0xd8, 0x50, - 0x63, 0x45, 0x1a, 0x30, 0xbf, 0x66, 0x3f, 0x56, 0x72, 0x1c, 0x2b, 0x93, 0x94, 0xe0, 0x04, 0xbb, - 0x7a, 0x72, 0x5c, 0x7c, 0x85, 0x4d, 0xb0, 0x28, 0xba, 0x78, 0x8f, 0xf9, 0xda, 0x93, 0x13, 0xf9, - 0x16, 0x5c, 0x10, 0xcd, 0xaa, 0x60, 0xb6, 0x30, 0xd7, 0x3b, 0xaa, 0xed, 0xdb, 0xe8, 0xbf, 0x35, - 0xdb, 0xa3, 0xc3, 0x6e, 0xa4, 0x6f, 0x89, 0xb2, 0xc3, 0x1a, 0x92, 0x8f, 0xe5, 0x73, 0x46, 0x66, - 0xaf, 0x1a, 0xc8, 0x47, 0x30, 0xc5, 0x9f, 0xe3, 0x56, 0x5c, 0x3f, 0x40, 0x65, 0xcd, 0xdc, 0xd9, - 0xdc, 0x12, 0xf8, 0x1b, 0x1f, 0x77, 0xe4, 0x89, 0x29, 0x77, 0x62, 0x9c, 0xc9, 0x3b, 0x30, 0xbe, - 0xe1, 0xb4, 0x79, 0xe8, 0xd1, 0xea, 0x06, 0xaa, 0x95, 0xc5, 0x09, 0xd4, 0x71, 0xda, 0x96, 0xd4, - 0x98, 0x74, 0xc2, 0xed, 0x42, 0xc5, 0x26, 0xdb, 0x30, 0x5e, 0xab, 0xad, 0xdc, 0x71, 0x98, 0x5c, - 0xd2, 0x39, 0x9a, 0x3f, 0xdf, 0xe3, 0x2b, 0x5f, 0x4e, 0xfd, 0xca, 0x49, 0xdf, 0xdf, 0xb7, 0x76, - 0x9d, 0x26, 0xb5, 0xea, 0x6e, 0xe7, 0xc8, 0x54, 0x39, 0xa5, 0x98, 0xea, 0x5f, 0x78, 0xca, 0xa6, - 0xfa, 0x55, 0x98, 0x56, 0x8c, 0x67, 0xd1, 0x70, 0x76, 0x3e, 0x8a, 0x57, 0xa5, 0x9a, 0xe6, 0xc7, - 0x5d, 0x53, 0xe3, 0x74, 0xd2, 0x46, 0xff, 0xe2, 0x59, 0x6d, 0xf4, 0x1d, 0x98, 0xe1, 0x83, 0x21, - 0xe6, 0x01, 0x8e, 0xf4, 0x42, 0x8f, 0x3e, 0xbc, 0x96, 0xda, 0x87, 0xb3, 0x62, 0xa4, 0xe5, 0x24, - 0xc3, 0xe7, 0xe7, 0x24, 0x57, 0xb2, 0x0b, 0x44, 0x00, 0xed, 0xc0, 0xde, 0xb1, 0x7d, 0x8a, 0x75, - 0x3d, 0xdf, 0xa3, 0xae, 0x57, 0x52, 0xeb, 0x9a, 0x92, 0x75, 0xed, 0xf0, 0x6a, 0x52, 0x38, 0x92, - 0xb6, 0xac, 0x47, 0xce, 0x2f, 0xec, 0xd8, 0x17, 0x34, 0x1d, 0x77, 0x12, 0x81, 0x87, 0x7e, 0x8a, - 0x4f, 0xda, 0x78, 0xbf, 0xa7, 0x70, 0x26, 0x8f, 0xe1, 0x7c, 0xf2, 0x2b, 0xb0, 0xce, 0x17, 0xb1, - 0xce, 0x17, 0xb5, 0x3a, 0xe3, 0x48, 0x7c, 0xde, 0xe8, 0xcd, 0x8a, 0xd7, 0xda, 0x83, 0x3f, 0xf9, - 0xdb, 0x19, 0xb8, 0xb0, 0x76, 0xa7, 0x84, 0x39, 0x44, 0x1d, 0x1e, 0x89, 0x2e, 0x74, 0xe9, 0xbd, - 0x24, 0xde, 0x41, 0xe2, 0x6f, 0x33, 0x52, 0xe2, 0xc0, 0xad, 0x82, 0x89, 0xee, 0x2f, 0xb7, 0x76, - 0x6d, 0x9e, 0x9a, 0x54, 0xb0, 0x48, 0xf1, 0xfb, 0xfd, 0xd9, 0x3f, 0x2e, 0x66, 0xcc, 0x5e, 0x55, - 0x91, 0x26, 0x2c, 0xe8, 0xdd, 0x22, 0xbd, 0x28, 0xf6, 0x69, 0xb3, 0x39, 0x5f, 0xc4, 0x19, 0xfd, - 0xc6, 0xc9, 0x71, 0xf1, 0x6a, 0xa2, 0x77, 0x43, 0xcf, 0x0c, 0x86, 0xa9, 0x34, 0xb8, 0x0f, 0x3f, - 0xd2, 0x4a, 0x11, 0xba, 0xe7, 0x2f, 0x6b, 0xb1, 0x7f, 0x12, 0xe5, 0x4b, 0xaf, 0x0a, 0x89, 0xe4, - 0x45, 0xb6, 0xde, 0x7b, 0x0a, 0x88, 0x66, 0x92, 0xf3, 0xbd, 0xa1, 0xfc, 0x64, 0x61, 0x2a, 0xc5, - 0x65, 0xc1, 0xf8, 0xed, 0x6c, 0xec, 0x60, 0x24, 0x55, 0x18, 0x15, 0xf3, 0xbd, 0xe7, 0x25, 0xe3, - 0xc5, 0xd4, 0x59, 0x3d, 0x2a, 0x96, 0x8e, 0x29, 0xe9, 0xc9, 0x21, 0x63, 0x85, 0x8d, 0x16, 0x37, - 0xde, 0xaf, 0xf2, 0x73, 0x0f, 0x41, 0xda, 0x09, 0x5f, 0x39, 0xbb, 0x23, 0x9e, 0xee, 0xe7, 0x89, - 0x47, 0xbd, 0xac, 0x8d, 0x1c, 0xf0, 0x54, 0x52, 0xb9, 0xd0, 0x9b, 0x4b, 0xcf, 0x1b, 0xf5, 0xd4, - 0x2a, 0x64, 0xb5, 0x18, 0xbf, 0x95, 0x81, 0x49, 0xed, 0x64, 0x25, 0xb7, 0x15, 0x57, 0xc5, 0xc8, - 0x7b, 0x5f, 0xc3, 0xc1, 0xcd, 0x36, 0xee, 0xc4, 0x78, 0x5b, 0xf8, 0x1d, 0x64, 0x7b, 0xd3, 0xe1, - 0x62, 0x8b, 0x7b, 0xae, 0xf6, 0xd7, 0x0f, 0x87, 0xd9, 0x2f, 0x87, 0x7a, 0x64, 0xbf, 0xfc, 0x8d, - 0x4b, 0x30, 0xa5, 0xdf, 0x88, 0xc9, 0x1b, 0x30, 0x82, 0xba, 0x79, 0xa9, 0x5e, 0x41, 0xb5, 0x10, - 0xaa, 0xef, 0x35, 0x67, 0x14, 0x8e, 0x43, 0x5e, 0x05, 0x08, 0x0d, 0xc0, 0xe5, 0xcb, 0xd4, 0xf0, - 0xc9, 0x71, 0x31, 0xf3, 0xa6, 0xa9, 0x14, 0x90, 0xaf, 0x01, 0xac, 0xbb, 0x0d, 0x1a, 0xa6, 0x34, - 0xee, 0x63, 0x7d, 0xf1, 0x5a, 0x22, 0xcd, 0xca, 0xb9, 0xb6, 0xdb, 0xa0, 0xc9, 0x9c, 0x2a, 0x0a, - 0x47, 0xf2, 0x79, 0x18, 0x36, 0xbb, 0x4d, 0x2a, 0x5f, 0x30, 0xc6, 0xe5, 0x09, 0xd7, 0x6d, 0xd2, - 0x48, 0x4f, 0xe0, 0x75, 0xe3, 0x86, 0x85, 0x0c, 0x40, 0x3e, 0xe0, 0xe9, 0x57, 0x44, 0x8c, 0xd0, - 0xe1, 0xe8, 0xad, 0x4e, 0x91, 0x7c, 0x12, 0x51, 0x42, 0x15, 0x12, 0xf2, 0x00, 0x46, 0xd5, 0x47, - 0x26, 0xc5, 0xe7, 0x5d, 0x7d, 0x88, 0x54, 0x94, 0x0e, 0x22, 0x17, 0x72, 0xfc, 0xfd, 0x49, 0x72, - 0x21, 0xef, 0xc2, 0x18, 0x63, 0xcf, 0x76, 0x0e, 0x5f, 0xdc, 0x6a, 0xf0, 0x45, 0x4e, 0xf9, 0x20, - 0xb6, 0xfb, 0x68, 0x91, 0x3c, 0x43, 0x02, 0xf2, 0x65, 0xcc, 0x5e, 0x2b, 0xba, 0xba, 0xaf, 0x55, - 0xce, 0x95, 0x44, 0x57, 0x63, 0x3a, 0xdb, 0x44, 0x4f, 0x47, 0xfc, 0xc8, 0x5e, 0x18, 0x72, 0x6d, - 0x90, 0x94, 0x39, 0xaf, 0x27, 0x2a, 0x98, 0x97, 0x51, 0xc4, 0x92, 0xa9, 0xa9, 0x35, 0xbe, 0xa4, - 0x03, 0x85, 0x48, 0xa8, 0x14, 0x75, 0x41, 0xbf, 0xba, 0xde, 0x4c, 0xd4, 0xa5, 0x0e, 0x60, 0xa2, - 0xba, 0x04, 0x77, 0xd2, 0x80, 0x29, 0x79, 0x40, 0x89, 0xfa, 0xc6, 0xfb, 0xd5, 0xf7, 0x6a, 0xa2, - 0xbe, 0xd9, 0xc6, 0x4e, 0xb2, 0x9e, 0x18, 0x4f, 0xf2, 0x2e, 0x4c, 0x4a, 0x08, 0x4f, 0x14, 0x3d, - 0x11, 0x65, 0xda, 0x6d, 0xec, 0x24, 0xd2, 0x43, 0xeb, 0xc8, 0x2a, 0x35, 0x9f, 0x1d, 0x93, 0x1a, - 0x75, 0x7c, 0x56, 0xe8, 0xc8, 0xe4, 0x43, 0x18, 0xaf, 0xb6, 0x58, 0x43, 0xdc, 0xb6, 0x1d, 0x50, - 0xe1, 0x0f, 0x29, 0x2d, 0x8c, 0x94, 0x12, 0x65, 0xaa, 0xf2, 0x14, 0xd8, 0x51, 0x91, 0x96, 0x02, - 0x3b, 0x02, 0xb3, 0xce, 0xe3, 0xaf, 0x8a, 0x62, 0x0e, 0x4b, 0x5f, 0xc9, 0x17, 0x53, 0xac, 0x7c, - 0x14, 0xf6, 0x22, 0x1e, 0x24, 0x83, 0xca, 0x57, 0xbd, 0x58, 0x2c, 0x5e, 0x95, 0x27, 0x79, 0x0f, - 0xc6, 0x45, 0x36, 0xb1, 0x92, 0xb9, 0xee, 0xcf, 0x17, 0xb0, 0xf1, 0x18, 0xe1, 0x41, 0x26, 0x1e, - 0xb3, 0x6c, 0x2f, 0x66, 0xce, 0x1a, 0xe1, 0x93, 0x2f, 0xc1, 0xdc, 0xb6, 0xd3, 0x6e, 0xb8, 0x87, - 0xbe, 0x38, 0xa6, 0xc4, 0x46, 0x37, 0x13, 0x39, 0x93, 0x1d, 0xf2, 0xf2, 0x50, 0x16, 0x4c, 0x6c, - 0x7c, 0xa9, 0x1c, 0xc8, 0xf7, 0x26, 0x38, 0xf3, 0x19, 0x44, 0xfa, 0xcd, 0xa0, 0xc5, 0xc4, 0x0c, - 0x4a, 0x56, 0x1f, 0x9f, 0x4e, 0xa9, 0xd5, 0x10, 0x17, 0x88, 0x7e, 0xbe, 0xdf, 0x73, 0x9d, 0xf6, - 0xfc, 0x2c, 0xee, 0x85, 0xcf, 0xc7, 0x63, 0x2a, 0x20, 0x9e, 0x48, 0x25, 0x6e, 0x9c, 0x1c, 0x17, - 0x2f, 0xc5, 0x65, 0xfe, 0x8f, 0x5c, 0xed, 0xb9, 0x24, 0x85, 0x35, 0xf9, 0x10, 0x26, 0xd8, 0xff, - 0xa1, 0x52, 0x62, 0x4e, 0xb3, 0x0b, 0x55, 0x30, 0x45, 0x3d, 0x38, 0x46, 0x98, 0xee, 0x2c, 0x45, - 0x5f, 0xa1, 0xb1, 0x22, 0x6f, 0x03, 0x30, 0xb1, 0x49, 0x6c, 0xc7, 0xe7, 0xa2, 0xd0, 0xc7, 0x28, - 0x75, 0x25, 0x37, 0xe2, 0x08, 0x99, 0xbc, 0x0b, 0xe3, 0xec, 0x57, 0xad, 0xdb, 0x70, 0xd9, 0xda, - 0x38, 0x8f, 0xb4, 0xdc, 0x35, 0x95, 0xd1, 0xfa, 0x1c, 0xae, 0xb9, 0xa6, 0x46, 0xe8, 0x64, 0x05, - 0xa6, 0x31, 0x44, 0xb5, 0x08, 0x8e, 0xea, 0x50, 0x7f, 0xfe, 0x82, 0x62, 0x0d, 0xc1, 0x8a, 0x2c, - 0x27, 0x2c, 0x53, 0xef, 0x32, 0x31, 0x32, 0xe2, 0xc3, 0x6c, 0xf2, 0x39, 0xd9, 0x9f, 0x9f, 0xc7, - 0x4e, 0x92, 0x12, 0x7c, 0x12, 0x83, 0xef, 0xc7, 0x6c, 0x44, 0x94, 0x8d, 0x4b, 0x3e, 0x2a, 0xa9, - 0x15, 0xa6, 0x71, 0x27, 0x26, 0x90, 0xbb, 0xe5, 0x8d, 0x78, 0x0c, 0xe7, 0x8b, 0xd8, 0x02, 0x1c, - 0xe6, 0xbd, 0x7a, 0x94, 0x3b, 0x3c, 0x25, 0x8e, 0x73, 0x0a, 0x35, 0xf9, 0x26, 0x9c, 0x93, 0x3b, - 0x88, 0x28, 0x12, 0xf3, 0x7a, 0xe1, 0x8c, 0x3b, 0x71, 0x63, 0x27, 0xac, 0x3a, 0x31, 0xa5, 0xd3, - 0xab, 0x20, 0x36, 0x8c, 0xe3, 0xb0, 0x8a, 0x1a, 0x9f, 0xef, 0x57, 0xe3, 0xd5, 0x44, 0x8d, 0xe7, - 0x71, 0xa2, 0x24, 0x2b, 0x53, 0x79, 0x92, 0x25, 0x98, 0x14, 0xeb, 0x48, 0xcc, 0xb6, 0x17, 0xb0, - 0xb7, 0x50, 0x89, 0x25, 0x57, 0x60, 0x62, 0xc2, 0xe9, 0x24, 0xea, 0x8e, 0xcc, 0x1f, 0x93, 0x5e, - 0xd4, 0x76, 0xe4, 0xf8, 0x1b, 0x92, 0x8e, 0xcc, 0x76, 0xa4, 0x48, 0x8a, 0x59, 0x7e, 0xdc, 0xf1, - 0x84, 0x8a, 0xea, 0x52, 0x94, 0x15, 0x49, 0x11, 0x7e, 0x2c, 0x1a, 0x62, 0xa8, 0x5b, 0x42, 0x1a, - 0x07, 0xb2, 0x05, 0xb3, 0xe1, 0xa9, 0xad, 0x30, 0x2e, 0x46, 0x51, 0x82, 0xa3, 0xa3, 0x3e, 0x9d, - 0x6f, 0x1a, 0x3d, 0xb1, 0xe1, 0x82, 0x76, 0x4e, 0x2b, 0xac, 0x2f, 0x23, 0x6b, 0xcc, 0x55, 0xaf, - 0x1f, 0xf2, 0xe9, 0xec, 0x7b, 0xf1, 0x21, 0x1f, 0xc1, 0x42, 0xfc, 0x6c, 0x56, 0x6a, 0x79, 0x09, - 0x6b, 0x79, 0xfd, 0xe4, 0xb8, 0x78, 0x25, 0x71, 0xbc, 0xa7, 0x57, 0xd4, 0x87, 0x1b, 0xf9, 0x1a, - 0xcc, 0xeb, 0xe7, 0xb3, 0x52, 0x93, 0x81, 0x35, 0xe1, 0xd2, 0x09, 0x0f, 0xf6, 0xf4, 0x1a, 0x7a, - 0xf2, 0x20, 0x01, 0x14, 0x53, 0x67, 0xb7, 0x52, 0xcd, 0xcb, 0x51, 0x83, 0x12, 0xab, 0x24, 0xbd, - 0xba, 0xd3, 0x58, 0x92, 0x43, 0xb8, 0x94, 0x76, 0x4c, 0x28, 0x95, 0xbe, 0x12, 0x2a, 0x81, 0x3f, - 0x95, 0x7e, 0xe4, 0xa4, 0xd7, 0x7c, 0x0a, 0x5b, 0xf2, 0x65, 0x38, 0xa7, 0xac, 0x2f, 0xa5, 0xbe, - 0x57, 0xb1, 0x3e, 0x74, 0x05, 0x57, 0x17, 0x66, 0x7a, 0x2d, 0xe9, 0x3c, 0x48, 0x0b, 0x66, 0x65, - 0xc3, 0x51, 0xdb, 0x2e, 0x8e, 0x9e, 0x2b, 0xda, 0xae, 0x9a, 0xc4, 0x58, 0xba, 0x2c, 0x76, 0xd5, - 0xf9, 0xc6, 0x8e, 0xd5, 0x89, 0x08, 0xd5, 0x99, 0x9e, 0xc2, 0x97, 0xac, 0xc0, 0x48, 0x6d, 0xa3, - 0x7a, 0xe7, 0xce, 0xf2, 0xfc, 0x6b, 0x58, 0x83, 0xf4, 0x1b, 0xe3, 0x40, 0xed, 0xd2, 0x24, 0xcc, - 0x15, 0x3b, 0xce, 0xee, 0xae, 0xf6, 0x60, 0xc5, 0x51, 0xc9, 0xf7, 0xa2, 0xa1, 0x20, 0xdb, 0x51, - 0x4b, 0xbe, 0xef, 0xec, 0x61, 0xd4, 0x69, 0x7f, 0xfe, 0x75, 0xed, 0xbd, 0x5f, 0x46, 0xe4, 0x2e, - 0x63, 0xc2, 0xb2, 0x04, 0x3a, 0x97, 0x36, 0xd9, 0xfd, 0x5f, 0xec, 0xdc, 0x96, 0x1d, 0xb1, 0x52, - 0x37, 0xf1, 0x64, 0x45, 0xe4, 0x07, 0x32, 0x70, 0x7e, 0xdb, 0xf5, 0x0e, 0x9a, 0xae, 0xdd, 0x90, - 0xd5, 0x88, 0x4d, 0xf5, 0x8d, 0x7e, 0x9b, 0xea, 0x67, 0x12, 0x9b, 0xaa, 0x71, 0x28, 0xd8, 0x58, - 0x61, 0x84, 0xf1, 0xc4, 0x06, 0xdb, 0xa3, 0x2a, 0xf2, 0xbd, 0x70, 0x39, 0xbd, 0x44, 0x99, 0x25, - 0x6f, 0xe2, 0x2c, 0xb9, 0x79, 0x72, 0x5c, 0x7c, 0xb3, 0x57, 0x4d, 0xe9, 0x33, 0xe6, 0x54, 0xd6, - 0xf7, 0x86, 0xf2, 0x57, 0x0b, 0xd7, 0xee, 0x0d, 0xe5, 0xaf, 0x15, 0x5e, 0x37, 0x5f, 0xa8, 0x95, - 0xd6, 0x56, 0xab, 0x0d, 0x79, 0xda, 0xc9, 0x20, 0xe8, 0x9c, 0xc6, 0xbc, 0xd2, 0xaf, 0x34, 0xe2, - 0x68, 0xfc, 0xbd, 0x0c, 0x14, 0x4f, 0x19, 0x35, 0x76, 0xc0, 0x44, 0x53, 0xaa, 0x46, 0x03, 0x35, - 0x94, 0x7a, 0x34, 0x15, 0x2d, 0xdd, 0x8e, 0x43, 0x27, 0x41, 0x2f, 0x40, 0x91, 0xbf, 0x43, 0x71, - 0x06, 0x4d, 0xe6, 0xed, 0x90, 0x58, 0xc6, 0xcf, 0x67, 0x60, 0x36, 0x65, 0x92, 0x92, 0x2b, 0x30, - 0x84, 0x09, 0xb9, 0x14, 0xc3, 0x9b, 0x58, 0x22, 0x2e, 0x2c, 0x27, 0x9f, 0x86, 0xd1, 0xca, 0x7a, - 0xad, 0x56, 0x5a, 0x97, 0xf7, 0x79, 0x7e, 0x96, 0xb5, 0x7d, 0xcb, 0xb7, 0xf5, 0xf7, 0x7a, 0x81, - 0x46, 0xde, 0x84, 0x91, 0xea, 0x06, 0x12, 0x70, 0xf3, 0x51, 0xfc, 0x42, 0xa7, 0x13, 0xc7, 0x17, - 0x48, 0xc6, 0x8f, 0x66, 0x80, 0x24, 0x57, 0x1c, 0xb9, 0x09, 0xe3, 0xea, 0xba, 0xe6, 0xda, 0x07, - 0x7c, 0xc4, 0x54, 0x56, 0xad, 0xa9, 0xe2, 0x90, 0x0a, 0x0c, 0x63, 0x2a, 0xd5, 0xd0, 0x50, 0x20, - 0x75, 0x22, 0x5f, 0x48, 0x4c, 0xe4, 0x61, 0x4c, 0xd4, 0x6a, 0x72, 0x62, 0xe3, 0xf7, 0x32, 0x40, - 0xd2, 0xcd, 0xff, 0x06, 0x32, 0x54, 0x7a, 0x4b, 0x71, 0xff, 0x57, 0x53, 0xee, 0x84, 0xf9, 0xd2, - 0xd4, 0x9b, 0x74, 0x14, 0x28, 0xe0, 0x8a, 0xa6, 0xb9, 0xe9, 0xed, 0x33, 0x7a, 0x0d, 0x86, 0x1f, - 0x52, 0x6f, 0x47, 0x5a, 0x46, 0xa3, 0x35, 0xe5, 0x23, 0x06, 0x50, 0x35, 0x19, 0x88, 0x61, 0xfc, - 0x69, 0x06, 0xe6, 0xd2, 0xc4, 0xfc, 0x53, 0x5c, 0x3b, 0x8d, 0x98, 0x57, 0x2a, 0x1a, 0x29, 0x71, - 0x53, 0xcb, 0xd0, 0x17, 0xb5, 0x08, 0xc3, 0xac, 0xb1, 0x72, 0x84, 0x51, 0x93, 0xc4, 0x7a, 0xc3, - 0x37, 0x39, 0x9c, 0x21, 0xf0, 0x30, 0x77, 0x43, 0x18, 0x21, 0x11, 0x11, 0x70, 0x3e, 0x9a, 0x1c, - 0xce, 0x10, 0xd6, 0xdc, 0x06, 0x95, 0x1a, 0x16, 0x44, 0x68, 0x31, 0x80, 0xc9, 0xe1, 0xe4, 0x0a, - 0x8c, 0x3e, 0x68, 0xaf, 0x52, 0xfb, 0x91, 0x4c, 0xfb, 0x80, 0x46, 0x55, 0x6e, 0xdb, 0x6a, 0x32, - 0x98, 0x29, 0x0b, 0x8d, 0x9f, 0xca, 0xc0, 0x4c, 0xe2, 0x86, 0x71, 0xba, 0xf7, 0x6a, 0x7f, 0x37, - 0xb2, 0x41, 0xda, 0xc7, 0x3f, 0x7f, 0x28, 0xfd, 0xf3, 0x8d, 0xff, 0x66, 0x04, 0x2e, 0xf4, 0x50, - 0xf8, 0x44, 0x6e, 0xae, 0x99, 0x53, 0xdd, 0x5c, 0xbf, 0x02, 0x93, 0xe5, 0xa6, 0xed, 0xb4, 0xfc, - 0x4d, 0x37, 0xfa, 0xe2, 0xc8, 0x5b, 0x06, 0xcb, 0x84, 0x2b, 0x41, 0xe8, 0x56, 0x71, 0xb1, 0x8e, - 0x14, 0x56, 0xe0, 0x26, 0xe5, 0x4d, 0x8d, 0x59, 0xc2, 0xd1, 0x34, 0xf7, 0x57, 0xc4, 0xd1, 0x54, - 0x77, 0x7d, 0x1a, 0x7a, 0xaa, 0xae, 0x4f, 0xe9, 0x66, 0xd3, 0xc3, 0x4f, 0x62, 0x44, 0x5f, 0x86, - 0x49, 0x6e, 0x55, 0x56, 0xf2, 0xf9, 0x20, 0x8d, 0x24, 0x2c, 0xd1, 0x6c, 0x3f, 0x39, 0x16, 0x1a, - 0x0d, 0x59, 0xd1, 0xdd, 0x74, 0x46, 0xf1, 0xd9, 0xf5, 0x4a, 0x6f, 0x37, 0x1c, 0xcd, 0xdc, 0x42, - 0x73, 0xc7, 0xf9, 0x16, 0xcc, 0xa5, 0xdd, 0x18, 0xe7, 0xf3, 0x9a, 0xc1, 0x6a, 0x4f, 0x43, 0xe7, - 0xc1, 0xef, 0x9d, 0x07, 0xa9, 0xf7, 0x4e, 0xe9, 0x3e, 0x3d, 0xa6, 0x45, 0x45, 0xee, 0xb1, 0x16, - 0x38, 0x6e, 0x7f, 0x27, 0x6b, 0xe3, 0x2b, 0xf0, 0x62, 0x5f, 0x72, 0xf2, 0x8e, 0x16, 0xa6, 0xe7, - 0xb5, 0x64, 0x98, 0x9e, 0xef, 0x1c, 0x17, 0x67, 0x34, 0xd7, 0xc7, 0xb5, 0x50, 0x67, 0x6e, 0xfc, - 0x54, 0x56, 0x77, 0xda, 0xfd, 0xab, 0xb8, 0x50, 0xaf, 0xc1, 0xf0, 0xf6, 0x3e, 0xf5, 0xe4, 0xf1, - 0x80, 0x1f, 0x72, 0xc8, 0x00, 0xea, 0x87, 0x20, 0x06, 0xb9, 0x03, 0x53, 0x1b, 0x7c, 0xe2, 0xca, - 0xd9, 0x38, 0x14, 0xa9, 0x2d, 0x3a, 0x42, 0xb9, 0x96, 0x32, 0x1d, 0x63, 0x54, 0xc6, 0xdd, 0x58, - 0xa7, 0x8b, 0x20, 0x43, 0xdc, 0xb9, 0x88, 0x0b, 0x10, 0x53, 0x91, 0x3b, 0x55, 0xb4, 0xd9, 0x9a, - 0x31, 0xa8, 0xb1, 0x0b, 0x97, 0xfa, 0x32, 0x62, 0xe7, 0x36, 0x74, 0xc2, 0x5f, 0x31, 0xe3, 0xe5, - 0xbe, 0xa4, 0xa6, 0x42, 0x67, 0x7c, 0x0b, 0x26, 0xd4, 0x5e, 0xc6, 0x23, 0x88, 0xfd, 0x16, 0xb3, - 0x82, 0x1f, 0x41, 0x0c, 0x60, 0x72, 0x78, 0xf4, 0x1c, 0x92, 0x4d, 0x7f, 0x0e, 0x89, 0x86, 0x3f, - 0x77, 0xda, 0xf0, 0xb3, 0xca, 0x71, 0x87, 0x53, 0x2a, 0xc7, 0xdf, 0x6a, 0xe5, 0x18, 0x45, 0xc8, - 0xe4, 0xf0, 0xa7, 0x5a, 0xf9, 0xef, 0xca, 0x3c, 0x61, 0xe8, 0xbb, 0x24, 0x97, 0x7b, 0x26, 0x4a, - 0xf6, 0x95, 0xb6, 0x7a, 0x23, 0xcc, 0x48, 0xa6, 0xc8, 0x9e, 0x26, 0x53, 0x9c, 0x65, 0x22, 0xa2, - 0xa4, 0xca, 0x87, 0x74, 0x28, 0x92, 0x03, 0xed, 0x84, 0xc1, 0x88, 0xc4, 0x32, 0x7e, 0x36, 0x03, - 0xe7, 0x52, 0xd5, 0xce, 0xac, 0x56, 0xae, 0xdf, 0x56, 0xd6, 0x61, 0x5c, 0xb9, 0xcd, 0x31, 0xce, - 0x12, 0x42, 0x62, 0xf0, 0xb6, 0x18, 0x2f, 0xc1, 0x58, 0xf8, 0xe8, 0x49, 0xe6, 0xe4, 0xd0, 0xa1, - 0x69, 0xa1, 0x7c, 0x3b, 0xab, 0x01, 0xb0, 0x2f, 0x78, 0xaa, 0xd6, 0xc9, 0xc6, 0xef, 0x66, 0x79, - 0x0e, 0xd9, 0x67, 0x36, 0x1a, 0x6c, 0xba, 0x49, 0x31, 0x6b, 0x52, 0xef, 0x18, 0xb0, 0x64, 0x19, - 0x46, 0x6a, 0x81, 0x1d, 0x74, 0x65, 0xe4, 0x8b, 0x59, 0x95, 0x0c, 0x0b, 0x1e, 0x2e, 0x46, 0xb1, - 0x0f, 0x7c, 0x84, 0x68, 0x17, 0x6d, 0x84, 0x28, 0x96, 0xc9, 0x7f, 0x98, 0x81, 0x09, 0x95, 0x98, - 0x7c, 0x08, 0x53, 0x32, 0xc6, 0x25, 0x8f, 0x07, 0x22, 0x5e, 0x68, 0xa5, 0x35, 0x95, 0x8c, 0x71, - 0xa9, 0xc6, 0x0f, 0xd1, 0xf0, 0xd5, 0xad, 0xba, 0xa3, 0x22, 0x93, 0x06, 0x90, 0xd6, 0xae, 0x6d, - 0x1d, 0x52, 0xfb, 0x80, 0xfa, 0x81, 0xc5, 0xad, 0x5e, 0xc4, 0x43, 0xae, 0x64, 0xbf, 0x76, 0xa7, - 0xc4, 0x0d, 0x5e, 0xd8, 0x48, 0x88, 0x60, 0xa5, 0x09, 0x1a, 0xf5, 0x75, 0xaa, 0xb5, 0x6b, 0x6f, - 0xf3, 0x42, 0x4e, 0x67, 0xfc, 0xd9, 0x08, 0x9f, 0x6e, 0x22, 0x24, 0xee, 0x0e, 0x4c, 0x3d, 0xa8, - 0x56, 0xca, 0x8a, 0xae, 0x5a, 0xcf, 0xa8, 0xb4, 0xfc, 0x38, 0xa0, 0x5e, 0xdb, 0x6e, 0xca, 0x1b, - 0x6a, 0x74, 0x04, 0xb9, 0x4e, 0xa3, 0x9e, 0xae, 0xc7, 0x8e, 0x71, 0x64, 0x75, 0xf0, 0xbb, 0x70, - 0x58, 0x47, 0x76, 0xc0, 0x3a, 0x7c, 0xbb, 0xd5, 0xec, 0x51, 0x87, 0xce, 0x91, 0xec, 0x43, 0xe1, - 0x2e, 0x4a, 0x97, 0x4a, 0x2d, 0xb9, 0xfe, 0xb5, 0xbc, 0x2c, 0x6a, 0x79, 0x9e, 0x8b, 0xa5, 0xe9, - 0xf5, 0x24, 0xb8, 0x46, 0xfb, 0xc4, 0xd0, 0xa9, 0xfb, 0xc4, 0xdf, 0xc9, 0xc0, 0x08, 0x17, 0x5f, - 0xc5, 0x34, 0xee, 0x21, 0x20, 0x6f, 0x3f, 0x1d, 0x01, 0xb9, 0x80, 0xe7, 0x84, 0x36, 0xa1, 0x79, - 0x19, 0xa9, 0xc4, 0xd6, 0x85, 0x34, 0xa8, 0xc7, 0x57, 0x27, 0x5e, 0x72, 0xfa, 0xb2, 0x20, 0xd5, - 0x28, 0x1a, 0xc5, 0xe8, 0xa9, 0x0e, 0xcf, 0x32, 0x82, 0xc7, 0xa8, 0x88, 0x46, 0xa1, 0xc7, 0xa0, - 0x58, 0x85, 0x31, 0x11, 0xe3, 0x62, 0xe9, 0x48, 0xbc, 0x2d, 0x17, 0x34, 0xeb, 0xa0, 0xc6, 0xd2, - 0x51, 0x24, 0x9a, 0x8b, 0x28, 0x19, 0xd6, 0xce, 0x91, 0x96, 0x92, 0x57, 0x22, 0x92, 0x07, 0x3c, - 0x55, 0x25, 0x0f, 0x1a, 0xac, 0x67, 0x09, 0x08, 0xe1, 0x22, 0x7a, 0x96, 0x74, 0x94, 0x4f, 0x89, - 0x11, 0x1c, 0xf1, 0x20, 0xab, 0x50, 0x40, 0x8b, 0x32, 0xda, 0xe0, 0xab, 0xa6, 0x5a, 0xe1, 0x71, - 0x14, 0x84, 0x55, 0x70, 0xc0, 0xcb, 0xc4, 0x72, 0x8b, 0xb9, 0x30, 0x26, 0x28, 0xd9, 0x75, 0xba, - 0x10, 0x9f, 0x7d, 0xe4, 0x5d, 0x18, 0x0f, 0x83, 0x36, 0x87, 0x4e, 0xd4, 0xf8, 0xc6, 0x14, 0x45, - 0x79, 0xd6, 0x13, 0x1c, 0x2a, 0xe8, 0x64, 0x11, 0xf2, 0x6c, 0x11, 0xc7, 0x93, 0x01, 0x77, 0x05, - 0x4c, 0x75, 0x6a, 0x92, 0x78, 0xa4, 0x06, 0xb3, 0x6c, 0xd1, 0xd4, 0x9c, 0xf6, 0x5e, 0x93, 0xae, - 0xba, 0x7b, 0x6e, 0x37, 0x88, 0xf2, 0xfd, 0xf1, 0x0b, 0x8c, 0xdd, 0x6a, 0x6a, 0xc5, 0x7a, 0xb6, - 0xbf, 0x14, 0x6a, 0x65, 0xab, 0xfc, 0xe3, 0x2c, 0x8c, 0x2b, 0xf3, 0x89, 0x5c, 0x83, 0x7c, 0xd5, - 0x5f, 0x75, 0xeb, 0x07, 0x61, 0x78, 0xc5, 0xc9, 0x93, 0xe3, 0xe2, 0x98, 0xe3, 0x5b, 0x4d, 0x04, - 0x9a, 0x61, 0x31, 0x59, 0x82, 0x49, 0xfe, 0x97, 0x4c, 0xa6, 0x91, 0x8d, 0xd4, 0x5b, 0x1c, 0x59, - 0xa6, 0xd1, 0x50, 0x77, 0x4f, 0x8d, 0x84, 0x7c, 0x15, 0x80, 0x03, 0xd0, 0x21, 0x3f, 0x37, 0x78, - 0x28, 0x01, 0x51, 0x41, 0x8a, 0x2b, 0xbe, 0xc2, 0x90, 0x7c, 0x9d, 0x07, 0x79, 0x96, 0xf3, 0x7f, - 0x68, 0xf0, 0x58, 0x08, 0x8c, 0xbf, 0x95, 0x1e, 0x92, 0x45, 0x65, 0x29, 0xf2, 0xdf, 0x2c, 0x98, - 0xb4, 0xee, 0x3e, 0xa2, 0xde, 0x51, 0x29, 0x40, 0x44, 0x05, 0xc3, 0xf8, 0x5f, 0x32, 0xca, 0xaa, - 0x21, 0xeb, 0x98, 0xbf, 0x9a, 0xcf, 0x08, 0x61, 0x66, 0x15, 0xde, 0x19, 0x24, 0xdc, 0xa4, 0xbb, - 0x4b, 0xcf, 0x0b, 0x8b, 0xaf, 0xd9, 0x70, 0x5e, 0xc5, 0xf2, 0x5a, 0x73, 0x20, 0xf9, 0x02, 0x0c, - 0x61, 0xd7, 0x65, 0x4f, 0x6d, 0x9a, 0x3c, 0xb6, 0x87, 0x58, 0x9f, 0x61, 0x43, 0x90, 0x92, 0x7c, - 0x5a, 0x38, 0x33, 0xf3, 0xce, 0x9f, 0x52, 0xce, 0x5e, 0xf6, 0x1d, 0xe1, 0x79, 0x1d, 0x45, 0xe5, - 0x51, 0x66, 0xcf, 0xdf, 0xcb, 0x42, 0x21, 0xbe, 0x56, 0xc9, 0x07, 0x30, 0x21, 0xcf, 0xd3, 0x15, - 0x5b, 0x64, 0x82, 0x98, 0x10, 0x99, 0x18, 0xe4, 0xa1, 0xba, 0x6f, 0xab, 0x66, 0x59, 0xa6, 0x46, - 0xc0, 0x84, 0x9b, 0x4d, 0x11, 0x25, 0x4f, 0x59, 0x25, 0x81, 0x1b, 0x74, 0x62, 0xb1, 0x85, 0x25, - 0x1a, 0x79, 0x0b, 0x72, 0x6b, 0x77, 0x4a, 0xc2, 0xe9, 0xad, 0x10, 0x3f, 0x75, 0xb9, 0xf5, 0xa8, - 0x6e, 0xcb, 0xca, 0xf0, 0xc9, 0xaa, 0x12, 0x86, 0x7b, 0x44, 0x33, 0xc1, 0x93, 0xe0, 0xb0, 0x71, - 0xa7, 0xc7, 0xe3, 0xbe, 0x37, 0x94, 0xcf, 0x15, 0x86, 0x44, 0x60, 0xd9, 0xff, 0x2e, 0x07, 0x63, - 0x61, 0xfd, 0x84, 0xa8, 0xae, 0xc4, 0xdc, 0x6d, 0x98, 0x5c, 0x84, 0xbc, 0x14, 0xd7, 0x84, 0xef, - 0xdb, 0xa8, 0x2f, 0x44, 0xb5, 0x79, 0x90, 0x72, 0x19, 0x5f, 0xe6, 0xa6, 0xfc, 0x49, 0x6e, 0x42, - 0x28, 0x74, 0xf5, 0x92, 0xce, 0x86, 0xd8, 0x80, 0x99, 0x21, 0x1a, 0x99, 0x82, 0xac, 0xc3, 0x83, - 0x95, 0x8d, 0x99, 0x59, 0xa7, 0x41, 0x3e, 0x80, 0xbc, 0xdd, 0x68, 0xd0, 0x86, 0x65, 0x4b, 0x7b, - 0xa5, 0x7e, 0x93, 0x26, 0xcf, 0xb8, 0xf1, 0x43, 0x00, 0xa9, 0x4a, 0x01, 0x29, 0xc1, 0x58, 0xd3, - 0xe6, 0x16, 0x90, 0x8d, 0x01, 0x4e, 0x94, 0x88, 0x43, 0x9e, 0x91, 0x6d, 0xf9, 0xb4, 0x41, 0x5e, - 0x83, 0x21, 0x36, 0x9a, 0xe2, 0x08, 0x91, 0x52, 0x22, 0x1b, 0x4c, 0xde, 0x61, 0x2b, 0xcf, 0x99, - 0x88, 0x40, 0x5e, 0x81, 0x5c, 0x77, 0x71, 0x57, 0x1c, 0x0e, 0x85, 0x28, 0x24, 0x7e, 0x88, 0xc6, - 0x8a, 0xc9, 0x2d, 0xc8, 0x1f, 0xea, 0xd1, 0xd4, 0xcf, 0xc5, 0x86, 0x31, 0xc4, 0x0f, 0x11, 0xc9, - 0x6b, 0x90, 0xf3, 0x7d, 0x57, 0x18, 0xf9, 0xcc, 0x86, 0x96, 0x97, 0x0f, 0xc2, 0x51, 0x63, 0xdc, - 0x7d, 0xdf, 0x5d, 0xca, 0xc3, 0x08, 0x3f, 0x31, 0x8c, 0x4b, 0x00, 0xd1, 0x37, 0x26, 0x7d, 0x19, - 0x8d, 0xaf, 0xc2, 0x58, 0xf8, 0x6d, 0xe4, 0x45, 0x80, 0x03, 0x7a, 0x64, 0xed, 0xdb, 0xed, 0x46, - 0x93, 0x8b, 0x9b, 0x13, 0xe6, 0xd8, 0x01, 0x3d, 0x5a, 0x41, 0x00, 0xb9, 0x00, 0xa3, 0x1d, 0x36, - 0xfc, 0x62, 0x8e, 0x4f, 0x98, 0x23, 0x9d, 0xee, 0x0e, 0x9b, 0xca, 0xf3, 0x30, 0x8a, 0x8a, 0x53, - 0xb1, 0x22, 0x27, 0x4d, 0xf9, 0xd3, 0xf8, 0xf3, 0x1c, 0xa6, 0x1c, 0x52, 0x1a, 0x44, 0x5e, 0x86, - 0xc9, 0xba, 0x47, 0xf1, 0x70, 0xb2, 0x99, 0xc8, 0x25, 0xea, 0x99, 0x88, 0x80, 0xd5, 0x06, 0xb9, - 0x02, 0xd3, 0x9d, 0xee, 0x4e, 0xd3, 0xa9, 0xb3, 0xda, 0xac, 0xfa, 0x8e, 0xc8, 0x91, 0x30, 0x61, - 0x4e, 0x72, 0xf0, 0x7d, 0x7a, 0x54, 0xde, 0xc1, 0x68, 0x7c, 0x05, 0x35, 0x98, 0x72, 0x10, 0x26, - 0x83, 0x37, 0xa7, 0x15, 0x38, 0xda, 0x2b, 0x9e, 0x87, 0x11, 0xdb, 0xde, 0xeb, 0x3a, 0x3c, 0x6a, - 0xd6, 0x84, 0x29, 0x7e, 0x91, 0x4f, 0xc1, 0x4c, 0x14, 0xdf, 0x5b, 0x36, 0x63, 0x18, 0x9b, 0x51, - 0x08, 0x0b, 0xca, 0x1c, 0x4e, 0xde, 0x04, 0xa2, 0xd6, 0xe7, 0xee, 0x7c, 0x44, 0xeb, 0x7c, 0x4e, - 0x4e, 0x98, 0x33, 0x4a, 0xc9, 0x03, 0x2c, 0x20, 0x2f, 0xc1, 0x84, 0x47, 0x7d, 0x14, 0xf7, 0xb0, - 0xdb, 0x30, 0x23, 0x9f, 0x39, 0x2e, 0x61, 0xac, 0xef, 0xae, 0x42, 0x41, 0xe9, 0x0e, 0x8c, 0x57, - 0xcd, 0x13, 0x04, 0x98, 0x53, 0x11, 0xdc, 0xec, 0x54, 0x1b, 0xe4, 0x4b, 0xb0, 0xa0, 0x60, 0xf2, - 0xe4, 0x80, 0x16, 0x6d, 0x3a, 0x7b, 0xce, 0x4e, 0x93, 0x8a, 0xf9, 0x96, 0x9c, 0xd5, 0xe1, 0x9d, - 0xd0, 0x9c, 0x8f, 0xa8, 0x79, 0xda, 0xc0, 0x65, 0x41, 0x4b, 0x56, 0x61, 0x2e, 0xc6, 0x99, 0x36, - 0xac, 0x6e, 0xa7, 0x67, 0x98, 0xba, 0x88, 0x27, 0xd1, 0x79, 0xd2, 0xc6, 0x56, 0xc7, 0xf8, 0x16, - 0x4c, 0xa8, 0x73, 0x92, 0x75, 0x82, 0x2a, 0x68, 0x88, 0xd9, 0x37, 0x1e, 0xc2, 0xaa, 0xec, 0xa2, - 0x37, 0x15, 0xa1, 0x04, 0x61, 0xde, 0x7b, 0x73, 0x32, 0x84, 0xe2, 0x10, 0xbe, 0x04, 0x13, 0x0d, - 0xc7, 0xef, 0x34, 0xed, 0x23, 0x2b, 0xca, 0x7a, 0x6d, 0x8e, 0x0b, 0x18, 0x6a, 0x72, 0x96, 0x60, - 0x26, 0xb1, 0x0f, 0x92, 0x37, 0xf9, 0x0d, 0x55, 0x08, 0x3f, 0x13, 0xfc, 0x96, 0x8f, 0xd6, 0xd0, - 0x9a, 0xdc, 0x23, 0x90, 0x8c, 0x36, 0x4c, 0xa8, 0xe7, 0xda, 0x29, 0xc9, 0x3c, 0xce, 0x63, 0x68, - 0x1a, 0xbe, 0xe9, 0x8f, 0x9c, 0x1c, 0x17, 0xb3, 0x4e, 0x03, 0x03, 0xd2, 0x5c, 0x85, 0xbc, 0x14, - 0xc1, 0x84, 0xe4, 0x83, 0xaf, 0x03, 0xf2, 0x75, 0xd0, 0x0c, 0x4b, 0x8d, 0xd7, 0x60, 0x54, 0x1c, - 0x5d, 0xfd, 0xdf, 0x04, 0x8c, 0x1f, 0xcc, 0xc2, 0xb4, 0x49, 0xd9, 0xc6, 0x4a, 0x79, 0x06, 0x9f, - 0x67, 0xf6, 0xce, 0x9d, 0x1e, 0xe0, 0x54, 0x6b, 0x5b, 0x9f, 0xdc, 0x39, 0xbf, 0x9c, 0x81, 0xd9, - 0x14, 0xdc, 0x8f, 0x95, 0x3b, 0xf6, 0x36, 0x8c, 0x55, 0x1c, 0xbb, 0x59, 0x6a, 0x34, 0xc2, 0x38, - 0x35, 0x28, 0xb8, 0x63, 0x82, 0x29, 0x9b, 0x41, 0x55, 0x21, 0x26, 0x44, 0x25, 0xaf, 0x8b, 0x49, - 0x11, 0x65, 0x5e, 0xc7, 0x49, 0xf1, 0x9d, 0xe3, 0x22, 0xf0, 0x6f, 0xda, 0x0c, 0xa7, 0x08, 0x06, - 0x1d, 0xe6, 0xc0, 0xc8, 0xd7, 0xe8, 0x99, 0x1d, 0xba, 0xf4, 0xa0, 0xc3, 0xf1, 0xe6, 0x0d, 0x94, - 0x3e, 0xe7, 0xc7, 0xb2, 0x70, 0x3e, 0x9d, 0xf0, 0xe3, 0xa6, 0x01, 0xc6, 0xc4, 0x45, 0x4a, 0xa0, - 0x74, 0x4c, 0x03, 0xcc, 0xb3, 0x1c, 0x21, 0x7e, 0x84, 0x40, 0x76, 0x61, 0x72, 0xd5, 0xf6, 0x83, - 0x15, 0x6a, 0x7b, 0xc1, 0x0e, 0xb5, 0x83, 0x01, 0x24, 0xf9, 0x57, 0xa4, 0x5d, 0x06, 0x0a, 0x13, - 0xfb, 0x92, 0x32, 0x26, 0x6b, 0xeb, 0x6c, 0xc3, 0x89, 0x32, 0x34, 0xc0, 0x44, 0xf9, 0x06, 0x4c, - 0xd7, 0x68, 0xcb, 0xee, 0xec, 0xbb, 0x9e, 0x8c, 0x21, 0x70, 0x1d, 0x26, 0x43, 0x50, 0xea, 0x6c, - 0xd1, 0x8b, 0x35, 0x7c, 0xa5, 0x23, 0xa2, 0xad, 0x44, 0x2f, 0x36, 0xfe, 0x7e, 0x16, 0x2e, 0x94, - 0xea, 0xc2, 0x5c, 0x52, 0x14, 0x48, 0xab, 0xee, 0x4f, 0xb8, 0x6e, 0x72, 0x03, 0xc6, 0xd6, 0xec, - 0xc7, 0xab, 0xd4, 0xf6, 0xa9, 0x2f, 0x92, 0x30, 0x72, 0xb1, 0xd7, 0x7e, 0x1c, 0xbd, 0xe6, 0x98, - 0x11, 0x8e, 0xaa, 0x17, 0x18, 0x7a, 0x42, 0xbd, 0x80, 0x01, 0x23, 0x2b, 0x6e, 0xb3, 0x21, 0xce, - 0x7a, 0xf1, 0x84, 0xbc, 0x8f, 0x10, 0x53, 0x94, 0xb0, 0xeb, 0xf4, 0x54, 0xf8, 0xc5, 0xf8, 0x09, - 0x9f, 0x78, 0x97, 0x5c, 0x81, 0x51, 0xac, 0x28, 0xcc, 0x16, 0x8f, 0x87, 0x46, 0x93, 0x62, 0x2a, - 0xbd, 0x86, 0x29, 0x0b, 0xd5, 0x9e, 0x18, 0x7e, 0xb2, 0x9e, 0x30, 0xfe, 0x11, 0xbe, 0x4e, 0xab, - 0xad, 0x64, 0x27, 0x91, 0xf2, 0x21, 0x99, 0x01, 0x3f, 0x24, 0xfb, 0xd4, 0x86, 0x24, 0xd7, 0x73, - 0x48, 0x7e, 0x28, 0x0b, 0xe3, 0xe1, 0xc7, 0x7e, 0x97, 0x45, 0xeb, 0x0f, 0xdb, 0x35, 0x50, 0xdc, - 0x9f, 0x9a, 0xb2, 0x57, 0x88, 0xf0, 0x3a, 0x5f, 0x80, 0x11, 0xb1, 0x98, 0x32, 0x31, 0xeb, 0xe6, - 0xd8, 0xe8, 0x2e, 0x4d, 0x09, 0xd6, 0x23, 0x38, 0xa0, 0xbe, 0x29, 0xe8, 0x30, 0xb0, 0xd2, 0x36, - 0xdd, 0x11, 0xc6, 0x0a, 0xcf, 0xec, 0x19, 0x95, 0x1e, 0x58, 0x29, 0x6a, 0xd8, 0x40, 0xa7, 0xd3, - 0x3f, 0xc9, 0x43, 0x21, 0x4e, 0x72, 0x7a, 0x3e, 0x84, 0x8d, 0xee, 0x0e, 0xbf, 0xaa, 0xf0, 0x7c, - 0x08, 0x9d, 0xee, 0x8e, 0xc9, 0x60, 0x68, 0xcb, 0xe4, 0x39, 0x8f, 0xb0, 0xd5, 0x13, 0xc2, 0x96, - 0xc9, 0x73, 0x1e, 0x69, 0xb6, 0x4c, 0x9e, 0xf3, 0x08, 0x15, 0x09, 0xab, 0x35, 0x0c, 0x3a, 0x80, - 0xf7, 0x14, 0xa1, 0x48, 0x68, 0xfa, 0xf1, 0xdc, 0x66, 0x12, 0x8d, 0x1d, 0x95, 0x4b, 0xd4, 0xf6, - 0x44, 0xec, 0x7e, 0xb1, 0x9d, 0xe1, 0x51, 0xb9, 0x83, 0x60, 0x2b, 0x60, 0x70, 0x53, 0x45, 0x22, - 0x4d, 0x20, 0xca, 0x4f, 0xb9, 0x80, 0x4f, 0xbf, 0x5b, 0x4b, 0xcb, 0xc4, 0x39, 0x95, 0xb5, 0xa5, - 0xae, 0xe6, 0x14, 0xbe, 0x4f, 0x53, 0x9d, 0xbb, 0x21, 0x02, 0x92, 0xa2, 0x02, 0x29, 0x7f, 0x2a, - 0x33, 0x19, 0x2c, 0x05, 0x78, 0xc0, 0xd2, 0x50, 0x8d, 0x14, 0x31, 0x21, 0xef, 0xc3, 0xb8, 0x1a, - 0x4a, 0x82, 0x07, 0x3c, 0x78, 0x81, 0xc7, 0x98, 0xec, 0x91, 0x0d, 0x57, 0x25, 0x20, 0x3b, 0x70, - 0xa1, 0xec, 0xb6, 0xfd, 0x6e, 0x4b, 0x46, 0xb3, 0x8c, 0x62, 0x68, 0x03, 0x0e, 0x05, 0xfa, 0xa5, - 0xd7, 0x05, 0x8a, 0x88, 0x5c, 0x20, 0x5d, 0x47, 0xf4, 0x0b, 0x48, 0x2f, 0x46, 0x64, 0x13, 0xc6, - 0x51, 0x25, 0x2a, 0xac, 0x0e, 0xc7, 0xf5, 0x6d, 0x23, 0x2a, 0xa9, 0xb0, 0x85, 0xc1, 0x23, 0xa9, - 0xd9, 0xad, 0xa6, 0xf4, 0x5c, 0x50, 0x55, 0xbb, 0x0a, 0x32, 0xf9, 0x2a, 0x4c, 0xf1, 0x2b, 0xda, - 0x36, 0xdd, 0xe1, 0x73, 0x67, 0x42, 0xd3, 0x44, 0xe8, 0x85, 0xfc, 0x75, 0x5e, 0x28, 0xa2, 0x0f, - 0xe9, 0x0e, 0x1f, 0x7b, 0xcd, 0x6f, 0x48, 0xc3, 0x27, 0x5b, 0x30, 0xbb, 0x62, 0xfb, 0x1c, 0xa8, - 0xc4, 0x04, 0x98, 0x44, 0x0d, 0x2d, 0xda, 0x73, 0xef, 0xdb, 0xbe, 0xd4, 0x6c, 0xa7, 0xc6, 0x00, - 0x48, 0xa3, 0x27, 0x3f, 0x98, 0x81, 0x79, 0x4d, 0xf1, 0x2d, 0x0c, 0xc7, 0x5a, 0xb4, 0x1d, 0xa0, - 0x83, 0xd0, 0xd4, 0x62, 0x51, 0x0a, 0xa5, 0x3d, 0xd0, 0xf8, 0x90, 0xc4, 0x74, 0xeb, 0x5e, 0x54, - 0xae, 0x1a, 0x4a, 0xf7, 0xe2, 0x21, 0x16, 0x2a, 0xae, 0xe9, 0x69, 0x7d, 0xa1, 0xc6, 0xd6, 0xb5, - 0x44, 0x33, 0x6e, 0xc7, 0xfb, 0x5b, 0x28, 0xba, 0x32, 0xa1, 0xa2, 0x6b, 0x0e, 0x86, 0xb1, 0x57, - 0x65, 0x64, 0x29, 0xfc, 0x61, 0x7c, 0x5a, 0xdd, 0x87, 0x84, 0x58, 0xd8, 0x77, 0x1f, 0x32, 0xfe, - 0x87, 0x11, 0x98, 0x8e, 0x4d, 0x0b, 0x71, 0x4f, 0xcd, 0x24, 0xee, 0xa9, 0x35, 0x00, 0xae, 0xea, - 0x1d, 0x50, 0x27, 0x2b, 0x9d, 0x13, 0xc7, 0x85, 0x6b, 0x71, 0xb8, 0xa6, 0x14, 0x36, 0x8c, 0x29, - 0x5f, 0xb1, 0x03, 0xea, 0xc8, 0x43, 0xa6, 0x7c, 0xd1, 0x2b, 0x4c, 0x23, 0x36, 0xa4, 0x08, 0xc3, - 0x18, 0x53, 0x56, 0xf5, 0x0d, 0x75, 0x18, 0xc0, 0xe4, 0x70, 0xf2, 0x32, 0x8c, 0x30, 0x21, 0xaa, - 0x5a, 0x11, 0x9b, 0x20, 0x9e, 0x2d, 0x4c, 0xca, 0x62, 0x12, 0x8b, 0x28, 0x22, 0xb7, 0x61, 0x82, - 0xff, 0x25, 0x42, 0xcf, 0x8c, 0xe8, 0xd6, 0x8c, 0x96, 0xd3, 0x90, 0xd1, 0x67, 0x34, 0x3c, 0x76, - 0xbb, 0xa8, 0x75, 0x51, 0xad, 0x53, 0xad, 0x88, 0x20, 0xe4, 0x78, 0xbb, 0xf0, 0x39, 0x90, 0x55, - 0x11, 0x21, 0x30, 0x59, 0x46, 0x78, 0x68, 0xe4, 0xf1, 0x4e, 0x89, 0xb2, 0x0c, 0xf7, 0xcc, 0x30, - 0x45, 0x09, 0xb9, 0xc6, 0x9f, 0x56, 0x50, 0x2c, 0xe4, 0xb9, 0x1c, 0xf1, 0xdd, 0x02, 0x15, 0x13, - 0x28, 0x1b, 0x86, 0xc5, 0xac, 0x72, 0xf6, 0xf7, 0x72, 0xcb, 0x76, 0x9a, 0x62, 0x5b, 0xc1, 0xca, - 0x11, 0x97, 0x32, 0xa8, 0x19, 0x21, 0x90, 0x77, 0x61, 0x8a, 0xfd, 0x28, 0xbb, 0xad, 0x96, 0xdb, - 0x46, 0xf6, 0xe3, 0x51, 0x70, 0x39, 0x24, 0xa9, 0x63, 0x11, 0xaf, 0x25, 0x86, 0xcb, 0xce, 0x13, - 0x7c, 0xb6, 0xed, 0xf2, 0x47, 0x9f, 0x89, 0xe8, 0x3c, 0x41, 0x52, 0x9f, 0xc3, 0x4d, 0x15, 0x89, - 0xbc, 0x0d, 0x93, 0xec, 0xe7, 0x5d, 0xe7, 0x11, 0xe5, 0x15, 0x4e, 0x46, 0xf6, 0x0a, 0x48, 0xb5, - 0xc7, 0x4a, 0x78, 0x7d, 0x3a, 0x26, 0xf9, 0x22, 0x9c, 0x43, 0x4e, 0x75, 0xb7, 0x43, 0x1b, 0xa5, - 0xdd, 0x5d, 0xa7, 0xe9, 0x70, 0xf3, 0x32, 0x1e, 0x64, 0x05, 0x75, 0xf0, 0xbc, 0x62, 0xc4, 0xb0, - 0xec, 0x08, 0xc5, 0x4c, 0xa7, 0x24, 0xdb, 0x50, 0x28, 0x77, 0xfd, 0xc0, 0x6d, 0x95, 0x82, 0xc0, - 0x73, 0x76, 0xba, 0x01, 0xf5, 0xe7, 0xa7, 0xb5, 0x50, 0x24, 0x6c, 0x71, 0x84, 0x85, 0x5c, 0x1f, - 0x54, 0x47, 0x0a, 0xcb, 0x0e, 0x49, 0xcc, 0x04, 0x13, 0xe3, 0x9f, 0x66, 0x60, 0x52, 0x23, 0x25, - 0x6f, 0xc1, 0xc4, 0x1d, 0xcf, 0xa1, 0xed, 0x46, 0xf3, 0x48, 0xb9, 0xa8, 0xe2, 0x2d, 0x66, 0x57, - 0xc0, 0x79, 0xab, 0x35, 0xb4, 0x50, 0xcf, 0x93, 0x4d, 0xb5, 0xfd, 0xbc, 0xc1, 0x5d, 0x94, 0xc5, - 0x04, 0xcd, 0x45, 0xb1, 0x91, 0x70, 0x82, 0x8a, 0xd9, 0xa9, 0xa0, 0x90, 0xf7, 0x60, 0x84, 0x3f, - 0xf0, 0x0a, 0x43, 0xc4, 0x8b, 0x69, 0xcd, 0xe4, 0xee, 0xf0, 0x38, 0x11, 0xd1, 0x8a, 0xc7, 0x37, - 0x05, 0x91, 0xf1, 0xd3, 0x19, 0x20, 0x49, 0xd4, 0x53, 0xf4, 0x5e, 0xa7, 0x5a, 0x07, 0x7d, 0x21, - 0x5c, 0x8d, 0x39, 0x4d, 0x67, 0xce, 0x6a, 0xe2, 0x05, 0xbc, 0xe3, 0xc5, 0xaa, 0x53, 0x15, 0x71, - 0xbc, 0xd8, 0xf8, 0xdb, 0x59, 0x80, 0x08, 0x9b, 0x7c, 0x8e, 0xa7, 0xee, 0xfa, 0x62, 0xd7, 0x6e, - 0x3a, 0xbb, 0x8e, 0x1e, 0xcb, 0x16, 0x99, 0x7c, 0x43, 0x96, 0x98, 0x3a, 0x22, 0xf9, 0x00, 0xa6, - 0x6b, 0x1b, 0x3a, 0xad, 0x62, 0x99, 0xee, 0x77, 0xac, 0x18, 0x79, 0x1c, 0x1b, 0x0d, 0x8e, 0xd5, - 0xd1, 0xe0, 0x06, 0xc7, 0x7c, 0x20, 0x44, 0x09, 0xdb, 0x58, 0x6a, 0x1b, 0xc2, 0xf8, 0xbe, 0x51, - 0xad, 0x88, 0x5d, 0x0a, 0xbf, 0xce, 0xef, 0x58, 0x1d, 0x61, 0x95, 0xcf, 0xf6, 0x09, 0x0d, 0x2f, - 0xea, 0xc8, 0xe1, 0x1e, 0x2e, 0xef, 0x3f, 0x83, 0x6a, 0xbf, 0x96, 0x1b, 0x50, 0xa1, 0xed, 0x78, - 0x66, 0xef, 0x3d, 0x91, 0x75, 0xc0, 0xb0, 0xe6, 0xc9, 0xab, 0xb5, 0x4e, 0x58, 0xc0, 0xdc, 0x8a, - 0x2e, 0x29, 0xdc, 0x4e, 0x20, 0xc5, 0x68, 0xe6, 0x1f, 0x66, 0xe0, 0x5c, 0x2a, 0x2d, 0xb9, 0x0e, - 0x10, 0xe9, 0x94, 0x44, 0x2f, 0xe1, 0x8e, 0x19, 0x45, 0x04, 0x32, 0x15, 0x0c, 0xf2, 0x95, 0xb8, - 0x36, 0xe8, 0xf4, 0x83, 0x70, 0x41, 0x06, 0xe2, 0xd3, 0xb5, 0x41, 0x29, 0x3a, 0x20, 0xe3, 0x97, - 0x73, 0x30, 0xa3, 0x04, 0x1c, 0xe2, 0xdf, 0x7a, 0x8a, 0x01, 0xf8, 0x01, 0x4c, 0xb0, 0xd6, 0x38, - 0x75, 0xe1, 0xf9, 0xc2, 0x2d, 0x59, 0x5e, 0x4f, 0xf8, 0x62, 0x0a, 0x6e, 0xd7, 0x55, 0x64, 0x1e, - 0x1e, 0x13, 0xb7, 0x4e, 0x7c, 0x90, 0xa8, 0x27, 0xbd, 0x5e, 0x34, 0xe6, 0xc4, 0x87, 0xc9, 0xca, - 0x51, 0xdb, 0x6e, 0x85, 0xb5, 0x71, 0x8b, 0x96, 0x4f, 0xf5, 0xac, 0x4d, 0xc3, 0xe6, 0xd5, 0x45, - 0x5e, 0x4b, 0xbc, 0x2c, 0xc5, 0x61, 0x5e, 0xa3, 0x5a, 0xf8, 0x00, 0x66, 0x12, 0x1f, 0x7d, 0xa6, - 0x48, 0x9d, 0xdb, 0x40, 0x92, 0xdf, 0x91, 0xc2, 0xe1, 0x53, 0x7a, 0x1c, 0xd8, 0x73, 0xe1, 0xe3, - 0x75, 0xab, 0x65, 0xb7, 0x1b, 0xdc, 0x3e, 0x66, 0x51, 0x8d, 0xe3, 0xf9, 0x33, 0x59, 0xd5, 0x1f, - 0xf6, 0x59, 0x5f, 0x75, 0x5f, 0xd0, 0x6e, 0xc3, 0x97, 0x7a, 0x8d, 0xe9, 0x40, 0x5a, 0x87, 0x6f, - 0xe7, 0xe0, 0x42, 0x0f, 0x4a, 0x72, 0x14, 0x9f, 0x44, 0x5c, 0x0b, 0x71, 0xb3, 0x7f, 0x85, 0x4f, - 0x63, 0x2a, 0x91, 0xcf, 0xf1, 0x88, 0x18, 0x75, 0x4c, 0xa0, 0x2f, 0xee, 0xdf, 0xa8, 0xc6, 0x3f, - 0x08, 0xa1, 0xf1, 0x50, 0x18, 0x1c, 0x4a, 0x3e, 0x80, 0x61, 0x74, 0x86, 0x8e, 0x85, 0x3c, 0x64, - 0x18, 0x08, 0x57, 0x82, 0x76, 0xb2, 0x9f, 0x5a, 0xd0, 0x4e, 0x06, 0x20, 0x9f, 0x85, 0x5c, 0x69, - 0xbb, 0x26, 0xc6, 0x65, 0x4a, 0x25, 0xdf, 0xae, 0x45, 0x09, 0x47, 0x6c, 0x2d, 0x33, 0x08, 0xa3, - 0x60, 0x84, 0x77, 0xcb, 0x1b, 0x62, 0x54, 0x54, 0xc2, 0xbb, 0xe5, 0x8d, 0x88, 0x70, 0xaf, 0xae, - 0x05, 0x90, 0xba, 0x5b, 0xde, 0xf8, 0xe4, 0xa6, 0xfd, 0xbf, 0x91, 0xe5, 0x61, 0x3c, 0x78, 0xc3, - 0x3e, 0x80, 0x09, 0x2d, 0x4e, 0x77, 0x26, 0x92, 0xc7, 0xc2, 0x98, 0xea, 0x31, 0x13, 0x20, 0x8d, - 0x40, 0xa6, 0xee, 0x61, 0xbf, 0x51, 0xe2, 0x55, 0x8d, 0x6d, 0x42, 0x0e, 0x28, 0x13, 0xc7, 0x53, - 0xf7, 0x84, 0x24, 0xe4, 0x16, 0xe4, 0x37, 0x69, 0xdb, 0x6e, 0x07, 0xa1, 0x42, 0x14, 0xad, 0x85, - 0x03, 0x84, 0xe9, 0x52, 0x43, 0x88, 0x88, 0x96, 0xad, 0xdd, 0x1d, 0xbf, 0xee, 0x39, 0x18, 0xee, - 0x27, 0x3c, 0x8b, 0xb9, 0x65, 0xab, 0x52, 0xa2, 0x33, 0x88, 0x11, 0x19, 0x3f, 0x93, 0x81, 0x51, - 0x31, 0x90, 0x3c, 0xe5, 0xda, 0x5e, 0x74, 0x96, 0x08, 0x6f, 0x80, 0x3d, 0x27, 0xee, 0x0d, 0xb0, - 0xc7, 0x63, 0xea, 0x8c, 0x09, 0xdf, 0xb6, 0xf0, 0x69, 0x10, 0x67, 0xa3, 0x74, 0x85, 0xd4, 0x33, - 0x6a, 0x85, 0xa8, 0x83, 0x7a, 0x58, 0x19, 0xff, 0x40, 0x7c, 0xd9, 0xdd, 0xf2, 0x06, 0x59, 0x84, - 0xfc, 0xaa, 0xcb, 0xc3, 0x43, 0xa9, 0xf9, 0x73, 0x9b, 0x02, 0xa6, 0x76, 0x90, 0xc4, 0x63, 0xdf, - 0xb7, 0xe1, 0xb9, 0xe2, 0x2e, 0xa3, 0x7c, 0x5f, 0x87, 0x03, 0x63, 0xdf, 0x17, 0xa2, 0x0e, 0xfc, - 0x7d, 0x34, 0x65, 0x93, 0x78, 0x78, 0x0b, 0x73, 0x9a, 0xdc, 0x53, 0x3d, 0xd7, 0x44, 0x91, 0xdc, - 0x29, 0x16, 0x7a, 0xed, 0x14, 0x0f, 0x6f, 0x99, 0x29, 0x54, 0xf8, 0xae, 0x16, 0x81, 0x6b, 0xd4, - 0x7b, 0xf4, 0x0c, 0xef, 0xd2, 0xe9, 0xef, 0x6a, 0xf1, 0xe6, 0x0d, 0xb4, 0x49, 0xff, 0x61, 0x16, - 0xce, 0xa7, 0x13, 0xaa, 0x6d, 0xc9, 0xf4, 0x69, 0xcb, 0x55, 0xc8, 0xaf, 0xb8, 0x7e, 0xa0, 0x58, - 0xfd, 0xa1, 0xfa, 0x7f, 0x5f, 0xc0, 0xcc, 0xb0, 0x94, 0xdd, 0xb9, 0xd9, 0xdf, 0xe1, 0xf2, 0x44, - 0x7e, 0x18, 0xbc, 0x82, 0xdd, 0xb9, 0x79, 0x11, 0xb9, 0x0b, 0x79, 0x53, 0x78, 0x4e, 0xc5, 0xba, - 0x46, 0x82, 0x43, 0x69, 0x8a, 0x78, 0x02, 0xa2, 0x85, 0x4b, 0x17, 0x30, 0x52, 0x82, 0x51, 0x31, - 0xfa, 0xb1, 0xa7, 0xe3, 0x94, 0x29, 0xa3, 0x67, 0x30, 0x90, 0x74, 0x6c, 0x47, 0xc1, 0x47, 0xc0, - 0x6a, 0x45, 0x3a, 0x41, 0xe1, 0x8e, 0xc2, 0x1f, 0x09, 0x75, 0x03, 0xcb, 0x10, 0xd1, 0xf8, 0xc1, - 0x2c, 0x80, 0xd4, 0xda, 0x3c, 0xb3, 0x33, 0xec, 0xb3, 0xda, 0x0c, 0x53, 0xec, 0x8d, 0x06, 0x4f, - 0x11, 0xfc, 0x00, 0xcd, 0x79, 0x06, 0x4f, 0x10, 0x5c, 0x84, 0xe1, 0xcd, 0x48, 0xa1, 0x25, 0x7c, - 0x4c, 0x50, 0x1d, 0xcd, 0xe1, 0xc6, 0x0e, 0xcc, 0xdd, 0xa5, 0x41, 0xa4, 0xde, 0x92, 0x4f, 0x8f, - 0xfd, 0xd9, 0xbe, 0x01, 0x63, 0x02, 0x3f, 0xdc, 0xbf, 0xb8, 0x2e, 0x46, 0xc4, 0x83, 0x41, 0x5d, - 0x8c, 0x44, 0x60, 0xbb, 0x51, 0x85, 0x36, 0x69, 0x40, 0x3f, 0xd9, 0x6a, 0x6a, 0x40, 0x78, 0x53, - 0xb0, 0x65, 0x83, 0xd5, 0x70, 0x6a, 0xff, 0x3c, 0x84, 0x73, 0xe1, 0xb7, 0x3f, 0x4d, 0xbe, 0x37, - 0xd8, 0x95, 0x52, 0x04, 0xff, 0x8f, 0x38, 0xf6, 0xb1, 0x3d, 0x79, 0x0c, 0x0b, 0x92, 0x60, 0xdb, - 0x09, 0x0d, 0x27, 0x07, 0xa2, 0x25, 0xef, 0xc2, 0xb8, 0x42, 0x23, 0x82, 0xd7, 0xa3, 0x9a, 0xfa, - 0xd0, 0x09, 0xf6, 0x2d, 0x9f, 0xc3, 0x55, 0x35, 0xb5, 0x82, 0x6e, 0x7c, 0x19, 0x9e, 0x0f, 0xfd, - 0x80, 0x52, 0xaa, 0x8e, 0x31, 0xcf, 0x9c, 0x8d, 0xf9, 0x7a, 0xd4, 0xac, 0x6a, 0x3b, 0x74, 0x75, - 0x96, 0xbc, 0x89, 0xda, 0x2c, 0xd1, 0x98, 0x17, 0x12, 0xce, 0xd3, 0x8a, 0x8f, 0xb4, 0xf1, 0x8e, - 0xf2, 0xb1, 0x29, 0x0c, 0x35, 0xe2, 0x4c, 0x9c, 0xf8, 0x07, 0xb3, 0x30, 0xfd, 0xa0, 0x5a, 0x29, - 0x87, 0xd6, 0x47, 0xdf, 0x65, 0x09, 0x8c, 0xb5, 0xb6, 0xf5, 0xde, 0x6f, 0x8c, 0x2d, 0x98, 0x8d, - 0x75, 0x03, 0x8a, 0x0e, 0xef, 0x73, 0x0f, 0x92, 0x10, 0x2c, 0xc5, 0x86, 0xf3, 0x69, 0xec, 0x1f, - 0xde, 0x32, 0x63, 0xd8, 0xc6, 0x7f, 0x0e, 0x31, 0xbe, 0x62, 0x0b, 0x7b, 0x03, 0xc6, 0xaa, 0xbe, - 0xdf, 0xa5, 0xde, 0x96, 0xb9, 0xaa, 0xaa, 0x0a, 0x1c, 0x04, 0x5a, 0x5d, 0xaf, 0x69, 0x46, 0x08, - 0xe4, 0x1a, 0xe4, 0x45, 0xe0, 0x70, 0xb9, 0x27, 0xa0, 0xd6, 0x36, 0x8c, 0x3b, 0x6e, 0x86, 0xc5, - 0xe4, 0x2d, 0x98, 0xe0, 0x7f, 0xf3, 0xd9, 0x26, 0x3a, 0x1c, 0x95, 0x83, 0x02, 0x9d, 0xcf, 0x4e, - 0x53, 0x43, 0x23, 0xaf, 0x43, 0xae, 0x54, 0x36, 0x85, 0x3a, 0x48, 0xc8, 0x8d, 0x9e, 0xc5, 0x75, - 0x76, 0xda, 0x25, 0xa2, 0x6c, 0x32, 0xe9, 0x4f, 0xc6, 0x7b, 0x10, 0x9a, 0x6c, 0x9c, 0x01, 0x52, - 0xdb, 0x14, 0x3b, 0xcc, 0x10, 0x46, 0x6e, 0xc0, 0x68, 0x85, 0x9b, 0xcc, 0x09, 0x3d, 0x36, 0xcf, - 0xce, 0xc7, 0x41, 0x5a, 0xb4, 0x04, 0x0e, 0x22, 0xd7, 0x64, 0xd6, 0xb2, 0x7c, 0xe4, 0x88, 0xd2, - 0x23, 0x35, 0xd9, 0x1b, 0x30, 0x22, 0xc2, 0x6b, 0x8f, 0x29, 0xf9, 0x4c, 0xe2, 0x61, 0xb5, 0x05, - 0x4e, 0xd2, 0x23, 0x15, 0x9e, 0xa6, 0x47, 0xea, 0x0e, 0x5c, 0xb8, 0x8b, 0xda, 0x1b, 0x3d, 0x48, - 0xd4, 0x96, 0x59, 0x15, 0xfa, 0x70, 0x7c, 0x06, 0xe2, 0x0a, 0x9e, 0x78, 0x9c, 0x29, 0xab, 0xeb, - 0xa9, 0xc9, 0x66, 0x7b, 0x31, 0x22, 0x5f, 0x82, 0xb9, 0xb4, 0x22, 0xa1, 0x35, 0xc7, 0x70, 0x48, - 0xe9, 0x15, 0xa8, 0xe1, 0x90, 0xd2, 0x38, 0x90, 0x55, 0x28, 0x70, 0x78, 0xa9, 0xd1, 0x72, 0xda, - 0x5c, 0xf3, 0xcf, 0xb5, 0xea, 0xe8, 0x19, 0x22, 0xb8, 0xda, 0xac, 0x90, 0xbf, 0x00, 0x68, 0xbe, - 0x44, 0x31, 0x4a, 0xf2, 0x13, 0x19, 0x76, 0x9b, 0xe3, 0xc1, 0xa8, 0xb7, 0xcc, 0x55, 0x5f, 0x84, - 0xd2, 0x3b, 0x1f, 0xb9, 0x09, 0xd5, 0x02, 0xcf, 0x69, 0xef, 0x09, 0x3f, 0xa1, 0x4d, 0xe1, 0x27, - 0xf4, 0xee, 0xc7, 0xf2, 0x13, 0xe2, 0xac, 0xfc, 0x93, 0xe3, 0xe2, 0x84, 0x27, 0xea, 0xc4, 0x55, - 0xa4, 0x7d, 0x01, 0xeb, 0x3a, 0x74, 0x96, 0xdd, 0x6a, 0xf3, 0x50, 0xb8, 0xb4, 0xc1, 0x1b, 0x39, - 0x8d, 0x3b, 0x38, 0x76, 0x1d, 0xe6, 0xc9, 0xb0, 0xba, 0x21, 0x42, 0xa2, 0xa1, 0xa9, 0x1c, 0xd8, - 0xc5, 0x53, 0xfa, 0xa2, 0x70, 0xf7, 0xda, 0x42, 0x74, 0xf1, 0x94, 0x8e, 0x2b, 0x16, 0x4e, 0x23, - 0x75, 0xf2, 0x68, 0x24, 0xe4, 0x06, 0x8c, 0xac, 0xd9, 0x8f, 0x4b, 0x7b, 0x54, 0x64, 0xa3, 0x9c, - 0x94, 0xdb, 0x1f, 0x02, 0x97, 0xf2, 0x7f, 0xc4, 0x7d, 0x1d, 0x9e, 0x33, 0x05, 0x1a, 0xf9, 0xbe, - 0x0c, 0x9c, 0xe7, 0xcb, 0x58, 0xb6, 0xb2, 0x46, 0x83, 0x80, 0xf5, 0x83, 0x88, 0xa9, 0x77, 0x39, - 0x32, 0xd8, 0x4e, 0xc7, 0x43, 0x57, 0x7a, 0x43, 0xec, 0x0c, 0x61, 0xc7, 0xf9, 0xa2, 0x54, 0x0b, - 0x4e, 0x9c, 0x4a, 0x4f, 0x36, 0x61, 0x7c, 0xed, 0x4e, 0x29, 0xac, 0x96, 0x47, 0x2c, 0x2f, 0xa6, - 0xed, 0x8e, 0x0a, 0x5a, 0x9a, 0xa7, 0x81, 0xca, 0x46, 0x78, 0x07, 0x7c, 0x56, 0xf6, 0x07, 0x79, - 0x53, 0xf5, 0x2d, 0xcd, 0xa1, 0xf4, 0x3c, 0xda, 0xb2, 0x1f, 0x5b, 0xf6, 0x1e, 0xd5, 0x5e, 0xc9, - 0x85, 0xf6, 0xfa, 0xa7, 0x32, 0x70, 0xb1, 0x67, 0x93, 0xc9, 0x6d, 0xb8, 0x60, 0x73, 0x8f, 0x69, - 0x6b, 0x3f, 0x08, 0x3a, 0xbe, 0x25, 0xaf, 0x18, 0xc2, 0x1b, 0xd5, 0x3c, 0x27, 0x8a, 0x57, 0x58, - 0xa9, 0xbc, 0x75, 0xf8, 0xe4, 0x03, 0x78, 0xc1, 0x69, 0xfb, 0xb4, 0xde, 0xf5, 0xa8, 0x25, 0x19, - 0xd4, 0x9d, 0x86, 0x67, 0x79, 0x76, 0x7b, 0x4f, 0xba, 0xd6, 0x9a, 0x17, 0x25, 0x8e, 0xf0, 0xca, - 0x2e, 0x3b, 0x0d, 0xcf, 0x44, 0x04, 0xe3, 0x9f, 0x66, 0x60, 0xbe, 0x57, 0x97, 0x90, 0x79, 0x18, - 0xa5, 0x4a, 0xee, 0x92, 0xbc, 0x29, 0x7f, 0x92, 0xe7, 0x21, 0xda, 0xe9, 0xc5, 0xe9, 0x9f, 0xaf, - 0x8b, 0x3c, 0x12, 0x68, 0xda, 0xae, 0xee, 0xeb, 0xc2, 0x40, 0x79, 0xa2, 0xae, 0xee, 0xee, 0x2f, - 0x02, 0x44, 0xdb, 0x39, 0x57, 0x4c, 0x98, 0x63, 0x76, 0xdd, 0xe3, 0x2b, 0x8f, 0x9c, 0x87, 0x11, - 0xbe, 0x5d, 0x0a, 0xff, 0x07, 0xf1, 0x8b, 0x9d, 0xdb, 0xa2, 0x93, 0x71, 0x9f, 0xcf, 0x2d, 0x4d, - 0x68, 0x9d, 0x3d, 0xd2, 0xc2, 0xc1, 0x31, 0x7e, 0x72, 0x92, 0x8b, 0x10, 0xa5, 0x6e, 0xb0, 0x2f, - 0x85, 0x8e, 0xc5, 0x34, 0x07, 0x30, 0x6e, 0x4b, 0xa9, 0xd8, 0x65, 0xeb, 0x6e, 0x5f, 0xf2, 0xed, - 0x27, 0x9b, 0xfa, 0xf6, 0xf3, 0x06, 0x8c, 0x95, 0xf7, 0x69, 0xfd, 0x20, 0x74, 0xc2, 0xc9, 0x0b, - 0xe5, 0x3a, 0x03, 0xf2, 0x30, 0xe1, 0x11, 0x02, 0xb9, 0x01, 0x80, 0x7e, 0xa7, 0x5c, 0x22, 0x55, - 0x52, 0x7d, 0xa0, 0x9b, 0xaa, 0x30, 0x4f, 0x51, 0x50, 0x90, 0x7d, 0xcd, 0xbc, 0xa3, 0xda, 0xb3, - 0x70, 0xf6, 0xbe, 0xb7, 0x2b, 0xd0, 0x23, 0x04, 0xd6, 0x3c, 0x65, 0x5f, 0x11, 0xa7, 0x60, 0x21, - 0xb1, 0xf9, 0xa8, 0x48, 0xe4, 0x3a, 0x8c, 0x6d, 0x48, 0x47, 0x02, 0x3c, 0x04, 0x27, 0x90, 0x02, - 0x22, 0xa7, 0x83, 0xf9, 0x8c, 0x19, 0xa1, 0x90, 0xcf, 0xc2, 0x68, 0x99, 0x7a, 0xc1, 0xe6, 0xe6, - 0x2a, 0x1a, 0x9d, 0xf0, 0x8c, 0x18, 0x79, 0xcc, 0x5e, 0x10, 0x04, 0xcd, 0xef, 0x1c, 0x17, 0x27, - 0x03, 0xa7, 0x45, 0xc3, 0x48, 0xdf, 0xa6, 0xc4, 0x26, 0x4b, 0x50, 0xe0, 0xcf, 0xe2, 0xd1, 0xdd, - 0x03, 0x4f, 0xc6, 0x3c, 0x3f, 0xa7, 0xc5, 0x1b, 0xfa, 0x21, 0xdd, 0x09, 0x73, 0x37, 0x24, 0xf0, - 0xc9, 0xb2, 0x4c, 0x79, 0xa2, 0x36, 0x13, 0x22, 0x65, 0x58, 0x7c, 0xc7, 0x60, 0xad, 0x4d, 0x52, - 0x90, 0x12, 0x4c, 0x96, 0xdd, 0x56, 0xc7, 0x0e, 0x1c, 0xcc, 0x0d, 0x79, 0x24, 0x0e, 0x41, 0x54, - 0xe8, 0xd5, 0xd5, 0x02, 0xed, 0x44, 0x55, 0x0b, 0xc8, 0x1d, 0x98, 0x32, 0xdd, 0x2e, 0x1b, 0x26, - 0x79, 0x0b, 0xe7, 0xe7, 0x1c, 0x9a, 0x86, 0x78, 0xac, 0x84, 0x1d, 0xcb, 0xe2, 0xca, 0xad, 0x45, - 0x45, 0xd5, 0xa8, 0xc8, 0x7a, 0xca, 0x73, 0x88, 0x7a, 0xb8, 0xa9, 0x19, 0x1c, 0x12, 0xcc, 0x52, - 0x5e, 0x52, 0x6e, 0xc1, 0x78, 0xad, 0xf6, 0x60, 0x93, 0xfa, 0xc1, 0x9d, 0xa6, 0x7b, 0x88, 0x67, - 0x5b, 0x5e, 0x24, 0x1c, 0xf3, 0x5d, 0x2b, 0xa0, 0x7e, 0x60, 0xed, 0x36, 0xdd, 0x43, 0x53, 0xc5, - 0x22, 0x5f, 0x63, 0xfd, 0xa1, 0x48, 0x82, 0x22, 0xfe, 0x6b, 0x3f, 0x61, 0x15, 0x4f, 0x90, 0x68, - 0xd1, 0x30, 0x91, 0x55, 0xef, 0x2c, 0x05, 0x1d, 0x7d, 0xca, 0x3c, 0xf7, 0xf1, 0x51, 0xa9, 0xd1, - 0xf0, 0xa8, 0xef, 0x8b, 0x43, 0x88, 0xfb, 0x94, 0xa1, 0xb2, 0xc1, 0xe6, 0x05, 0x9a, 0x4f, 0x99, - 0x42, 0x40, 0x7e, 0x38, 0x03, 0xe7, 0x54, 0x6f, 0x13, 0x5c, 0x2e, 0x68, 0xe6, 0xc2, 0x8f, 0xa4, - 0x37, 0xaf, 0xcb, 0x43, 0xf8, 0xba, 0x82, 0x76, 0xfd, 0xd1, 0xcd, 0xeb, 0xa5, 0xe8, 0x67, 0x4d, - 0x12, 0x61, 0x2c, 0xbb, 0x62, 0x2a, 0x3f, 0x2d, 0x5f, 0xcf, 0x9c, 0x9d, 0x42, 0x4c, 0xca, 0x4c, - 0x52, 0x63, 0x33, 0x0a, 0x0d, 0xa7, 0xaa, 0x1b, 0x78, 0xa6, 0x09, 0x8d, 0xaa, 0x98, 0x7f, 0xdc, - 0xc4, 0xca, 0xe9, 0xe8, 0x02, 0x99, 0x42, 0x43, 0xaa, 0x30, 0xcd, 0x01, 0x6c, 0x5b, 0xe0, 0xa9, - 0x8f, 0x66, 0xa3, 0xe4, 0x0b, 0x82, 0x0d, 0xbe, 0xf5, 0x63, 0xfa, 0x23, 0x35, 0x60, 0x69, 0x8c, - 0x8e, 0x7c, 0x00, 0x53, 0x18, 0x57, 0x3e, 0x5a, 0xaf, 0x73, 0xb8, 0x8a, 0x31, 0xee, 0xaa, 0x28, - 0x89, 0x79, 0xde, 0x4d, 0xf8, 0xfe, 0x7e, 0xb4, 0xa2, 0x3f, 0x80, 0x29, 0xb4, 0xd5, 0x89, 0x18, - 0x9c, 0x8b, 0x18, 0x88, 0x92, 0x38, 0x83, 0xa0, 0xe9, 0x47, 0x0c, 0xfe, 0x6e, 0x06, 0x2e, 0xb2, - 0x8a, 0xd2, 0x47, 0xe8, 0xfc, 0xc7, 0x19, 0x21, 0x8c, 0x44, 0xd9, 0x93, 0xa7, 0x2a, 0x8e, 0xfa, - 0xfe, 0x7e, 0x1a, 0x07, 0xfc, 0x28, 0xf6, 0xf1, 0xe9, 0x1f, 0x75, 0xe1, 0x63, 0x7f, 0x54, 0x4f, - 0x9e, 0xea, 0x47, 0x05, 0x4d, 0x3f, 0x8d, 0x03, 0x5e, 0x6b, 0x6b, 0xa5, 0xb5, 0xd5, 0xe8, 0x6e, - 0xf6, 0xdd, 0xe5, 0xb6, 0xa2, 0xb5, 0xad, 0x8f, 0xdb, 0xca, 0x16, 0x77, 0x8b, 0x56, 0xba, 0x41, - 0x5e, 0x6b, 0x35, 0x70, 0xfc, 0x5a, 0x1b, 0xa3, 0x31, 0x63, 0xd8, 0xc6, 0x2f, 0x42, 0x8c, 0xaf, - 0x30, 0x55, 0x35, 0x60, 0x84, 0xdf, 0x5a, 0x45, 0x27, 0xa3, 0xcd, 0x02, 0xbf, 0xd3, 0x9a, 0xa2, - 0x84, 0x5c, 0x84, 0x5c, 0xad, 0xf6, 0x40, 0x74, 0x32, 0x1a, 0xac, 0xfa, 0xbe, 0x6b, 0x32, 0x18, - 0x1b, 0x21, 0xb4, 0x42, 0x55, 0xe2, 0xf4, 0xb3, 0xf3, 0xce, 0x44, 0x28, 0xeb, 0x6f, 0x79, 0x87, - 0x1c, 0x8a, 0xfa, 0x5b, 0xdc, 0x21, 0xa3, 0x9b, 0x63, 0x19, 0xe6, 0x4b, 0xbe, 0x4f, 0x3d, 0x36, - 0x21, 0x84, 0x71, 0xa3, 0x27, 0xee, 0x39, 0xe2, 0x60, 0xc7, 0x4a, 0xed, 0xba, 0x6f, 0xf6, 0x44, - 0x24, 0x57, 0x21, 0x5f, 0xea, 0x36, 0x1c, 0xda, 0xae, 0x6b, 0x71, 0xd6, 0x6c, 0x01, 0x33, 0xc3, - 0x52, 0xf2, 0x45, 0x38, 0x17, 0x0b, 0x82, 0x28, 0x7a, 0x60, 0x34, 0xda, 0x7b, 0xe5, 0x3d, 0x2c, - 0x32, 0xc8, 0xe0, 0x5d, 0x92, 0x4e, 0x49, 0x4a, 0x50, 0x58, 0x46, 0x37, 0xad, 0x0a, 0xe5, 0x6f, - 0x43, 0xae, 0xc7, 0xfd, 0xf3, 0xf8, 0xad, 0x59, 0x84, 0x7a, 0x6c, 0x84, 0x85, 0x66, 0x02, 0x9d, - 0xdc, 0x87, 0xd9, 0x38, 0x8c, 0x9d, 0xe0, 0xfc, 0x82, 0x8c, 0xfb, 0x4d, 0x82, 0x0b, 0x9e, 0xe1, - 0x69, 0x54, 0x64, 0x07, 0x66, 0x22, 0x83, 0x24, 0xfd, 0xda, 0x2c, 0xed, 0x9c, 0xc3, 0x72, 0x79, - 0x75, 0x7e, 0x5e, 0x4c, 0xc6, 0xd9, 0xc8, 0xb8, 0x29, 0xbc, 0x3e, 0x9b, 0x49, 0x76, 0xa4, 0x01, - 0x53, 0x35, 0x67, 0xaf, 0xed, 0xb4, 0xf7, 0xee, 0xd3, 0xa3, 0x0d, 0xdb, 0xf1, 0x84, 0xc5, 0xa9, - 0xb4, 0x27, 0x2f, 0xf9, 0x47, 0xad, 0x16, 0x0d, 0x3c, 0xdc, 0x08, 0x59, 0x39, 0xfa, 0xa0, 0xb3, - 0xeb, 0xd0, 0x82, 0xcf, 0xe9, 0xd0, 0x6d, 0xb3, 0x63, 0x3b, 0x9a, 0x10, 0xa0, 0xf3, 0xd4, 0x54, - 0x17, 0x13, 0x03, 0xaa, 0x2e, 0x9a, 0x30, 0xb3, 0xdc, 0xae, 0x7b, 0x47, 0xf8, 0x44, 0x27, 0x3f, - 0x6e, 0xf2, 0x94, 0x8f, 0x7b, 0x45, 0x7c, 0xdc, 0x0b, 0xb6, 0x9c, 0x61, 0x69, 0x9f, 0x97, 0x64, - 0x4c, 0x6a, 0x30, 0x83, 0x17, 0x87, 0x6a, 0x65, 0xa3, 0xda, 0x76, 0x02, 0xc7, 0x0e, 0x68, 0x43, - 0x08, 0x17, 0x61, 0x76, 0x13, 0x7e, 0x45, 0x75, 0x1a, 0x1d, 0xcb, 0x91, 0x28, 0x2a, 0xd3, 0x04, - 0x7d, 0xbf, 0x7b, 0xe2, 0xf4, 0x5f, 0xd2, 0x3d, 0xb1, 0x0a, 0xd3, 0xf1, 0xd8, 0x0c, 0x85, 0xe8, - 0x1c, 0xf6, 0xb1, 0x88, 0x1d, 0xe7, 0x6e, 0x17, 0x85, 0x49, 0x2d, 0xa1, 0xa8, 0x4e, 0x17, 0xbf, - 0x72, 0xce, 0x68, 0x57, 0x4e, 0x6d, 0x57, 0x3a, 0xc3, 0x95, 0x93, 0x6c, 0x00, 0xdc, 0x71, 0xbd, - 0x3a, 0x2d, 0xa1, 0x7f, 0x34, 0xd1, 0x72, 0x40, 0x31, 0xa6, 0x51, 0x21, 0x5f, 0x3f, 0xbb, 0xec, - 0xb7, 0x15, 0x77, 0x73, 0x57, 0x78, 0x18, 0x3f, 0x92, 0x85, 0xf9, 0x5e, 0x9f, 0xd3, 0xe7, 0xba, - 0xf7, 0x29, 0x48, 0xae, 0x70, 0x71, 0xed, 0x2b, 0xd0, 0xf8, 0x3a, 0x5f, 0x84, 0xf4, 0x85, 0x2c, - 0xae, 0x81, 0xb3, 0x71, 0x82, 0x2d, 0xaf, 0x49, 0x6e, 0xc3, 0xb8, 0xf2, 0xf1, 0xb8, 0x97, 0xf6, - 0x6a, 0xaa, 0x09, 0xbb, 0xe1, 0xdf, 0xec, 0x9a, 0xc8, 0xf7, 0x2d, 0x79, 0x4d, 0xe4, 0xbf, 0x48, - 0x81, 0xbb, 0x88, 0x8f, 0x70, 0x2b, 0x00, 0xdf, 0x77, 0x09, 0x01, 0xdc, 0xb7, 0xf9, 0x16, 0x68, - 0xe2, 0xdf, 0xc6, 0xaf, 0x4f, 0xf0, 0x13, 0x59, 0xbd, 0x25, 0xf6, 0xb2, 0x0f, 0x8e, 0xdd, 0x1e, - 0xb3, 0x67, 0xb9, 0x3d, 0xe6, 0x4e, 0xbf, 0x3d, 0x0e, 0x9d, 0x76, 0x7b, 0x8c, 0x5d, 0xef, 0x86, - 0xcf, 0x7c, 0xbd, 0x1b, 0x39, 0xd3, 0xf5, 0x6e, 0xf4, 0x4c, 0xd7, 0x3b, 0xed, 0xa6, 0x9a, 0x3f, - 0xed, 0xa6, 0xfa, 0xd7, 0x97, 0xc1, 0x67, 0xf5, 0x32, 0x98, 0x26, 0xe2, 0x9d, 0xe9, 0x32, 0xf8, - 0x43, 0x3d, 0xef, 0x72, 0x85, 0x8f, 0x23, 0x94, 0xbf, 0x3c, 0xc0, 0x5d, 0x6e, 0xd0, 0x9b, 0xdc, - 0xcc, 0xd3, 0xb9, 0xc9, 0x91, 0xa7, 0x76, 0x93, 0x9b, 0x7d, 0xd2, 0x9b, 0xdc, 0xdc, 0xd3, 0xbc, - 0xc9, 0x9d, 0xfb, 0xab, 0x78, 0x93, 0x3b, 0xff, 0xaf, 0xe7, 0x26, 0xf7, 0x37, 0xa0, 0x10, 0x17, - 0x2e, 0x4f, 0x0f, 0x63, 0xfc, 0xd4, 0x62, 0x48, 0x32, 0xd1, 0x37, 0x2e, 0xdc, 0x91, 0x1b, 0x00, - 0x1b, 0x9e, 0xf3, 0xc8, 0x0e, 0xe8, 0x7d, 0x69, 0xfd, 0x26, 0x42, 0x70, 0x73, 0x28, 0x1b, 0x79, - 0x53, 0x41, 0x09, 0xef, 0x35, 0xd9, 0xb4, 0x7b, 0x8d, 0xf1, 0xc3, 0x59, 0x98, 0xe1, 0x81, 0xd8, - 0x9e, 0xfd, 0x47, 0xd8, 0xf7, 0xb5, 0xdb, 0xaa, 0xb4, 0xb5, 0x8e, 0xb5, 0xae, 0xcf, 0x33, 0xec, - 0x57, 0xe1, 0x5c, 0xa2, 0x2b, 0xf0, 0xc6, 0x5a, 0x91, 0x21, 0xf0, 0x12, 0x77, 0xd6, 0xf9, 0xf4, - 0x4a, 0x1e, 0xde, 0x32, 0x13, 0x14, 0xc6, 0x9f, 0x0f, 0x25, 0xf8, 0x8b, 0x07, 0x59, 0xf5, 0x89, - 0x35, 0x73, 0xb6, 0x27, 0xd6, 0xec, 0x60, 0x4f, 0xac, 0x31, 0xa1, 0x22, 0x37, 0x88, 0x50, 0xf1, - 0x45, 0x98, 0xdc, 0xa4, 0x76, 0xcb, 0xdf, 0x74, 0x45, 0x12, 0x26, 0xee, 0x6b, 0x21, 0x23, 0xdc, - 0xb1, 0x32, 0x79, 0xe1, 0x0a, 0x6d, 0x46, 0x03, 0x46, 0xc0, 0x8e, 0x41, 0x9e, 0x95, 0xc9, 0xd4, - 0x39, 0xa8, 0xb7, 0xe8, 0xe1, 0x3e, 0xb7, 0xe8, 0x1a, 0x4c, 0x08, 0xba, 0x28, 0x76, 0x73, 0x74, - 0xdd, 0x63, 0x45, 0x08, 0x97, 0xb5, 0x87, 0x19, 0xe2, 0xc3, 0xda, 0xf9, 0x4d, 0x4f, 0x63, 0xc2, - 0xba, 0x60, 0xb9, 0xdd, 0xe8, 0xb8, 0x4e, 0x1b, 0xbb, 0x60, 0x34, 0xea, 0x02, 0x2a, 0xc0, 0xbc, - 0x0b, 0x14, 0x24, 0xf2, 0x2e, 0x4c, 0x95, 0x36, 0xaa, 0x2a, 0x59, 0x3e, 0x7a, 0xe5, 0xb5, 0x3b, - 0x8e, 0xa5, 0x91, 0xc6, 0x70, 0xfb, 0xdd, 0x7c, 0xc6, 0xfe, 0x72, 0x6e, 0x3e, 0xc6, 0xbf, 0x98, - 0x90, 0xcb, 0xfb, 0x93, 0x7d, 0x20, 0xd1, 0x9f, 0x3c, 0x72, 0x67, 0x7c, 0xf2, 0x18, 0x3a, 0x4d, - 0x90, 0xd4, 0xe4, 0xdb, 0xe1, 0x33, 0xc9, 0xb7, 0x23, 0x4f, 0xfc, 0x7c, 0x31, 0x7a, 0x46, 0x89, - 0x35, 0xb6, 0xd6, 0xf2, 0x83, 0xac, 0xb5, 0x54, 0x29, 0x77, 0xec, 0xc9, 0xa5, 0x5c, 0x38, 0xb3, - 0x94, 0x5b, 0x8b, 0x7c, 0x97, 0xc7, 0x4f, 0x75, 0x09, 0x79, 0x51, 0x68, 0x05, 0x66, 0xd2, 0xa3, - 0xf0, 0x85, 0x5e, 0xcc, 0xdf, 0x55, 0xa2, 0xf3, 0xd7, 0xd3, 0x45, 0xe7, 0xfe, 0xe7, 0xcd, 0x99, - 0x84, 0xe7, 0x1f, 0x7e, 0xba, 0xc2, 0xf3, 0xd3, 0x7d, 0x08, 0xf9, 0x6b, 0xf1, 0xf9, 0xaf, 0xc5, - 0xe7, 0x01, 0xc5, 0x67, 0x0f, 0x97, 0xd7, 0xb6, 0xed, 0xb5, 0x51, 0xed, 0x74, 0x03, 0x46, 0x65, - 0x18, 0xd2, 0x4c, 0xa4, 0x51, 0x4e, 0xc6, 0x1f, 0x95, 0x58, 0x64, 0x11, 0xf2, 0x92, 0x58, 0x4d, - 0x74, 0x73, 0x28, 0x60, 0x5a, 0x84, 0x47, 0x01, 0x33, 0xfe, 0xbd, 0x21, 0xb9, 0x85, 0xb3, 0x39, - 0xb3, 0x61, 0x7b, 0x76, 0x0b, 0xd3, 0xc8, 0x85, 0x2b, 0x4c, 0x11, 0xde, 0x63, 0x8b, 0x32, 0x66, - 0xda, 0xaf, 0x93, 0x7c, 0xac, 0xc0, 0xb0, 0x51, 0xa6, 0xde, 0xdc, 0x00, 0x99, 0x7a, 0xdf, 0xd6, - 0xd2, 0xdc, 0x0e, 0x45, 0x79, 0x15, 0xd9, 0xb6, 0xd6, 0x3f, 0xc1, 0xed, 0x6d, 0x35, 0x1f, 0xed, - 0x70, 0x14, 0xd5, 0x0b, 0x29, 0xfb, 0x64, 0xa2, 0x0d, 0x6f, 0x23, 0x23, 0x67, 0x09, 0xb9, 0x3c, - 0xfa, 0xaf, 0x35, 0xe4, 0xf2, 0x32, 0x80, 0x38, 0x6a, 0x23, 0xf3, 0x84, 0x57, 0x71, 0xf5, 0x0b, - 0x33, 0xe5, 0x20, 0x68, 0xf6, 0xc8, 0xc9, 0xa1, 0x10, 0x1a, 0x7f, 0x40, 0x60, 0xa6, 0x56, 0x7b, - 0x50, 0x71, 0xec, 0xbd, 0xb6, 0xeb, 0x07, 0x4e, 0xbd, 0xda, 0xde, 0x75, 0x99, 0x28, 0x1e, 0x1e, - 0x07, 0x4a, 0x6c, 0xdd, 0xe8, 0x28, 0x08, 0x8b, 0xd9, 0x55, 0x6f, 0xd9, 0xf3, 0xa4, 0x7e, 0x94, - 0x5f, 0xf5, 0x28, 0x03, 0x98, 0x1c, 0xce, 0xa4, 0xdd, 0x5a, 0x17, 0x23, 0x5b, 0x08, 0x9b, 0x11, - 0x94, 0x76, 0x7d, 0x0e, 0x32, 0x65, 0x19, 0xa1, 0xc9, 0x09, 0x2b, 0x6e, 0x3f, 0x17, 0xb4, 0xc0, - 0xcd, 0x51, 0x31, 0x3f, 0xec, 0x84, 0x30, 0x82, 0xdb, 0x66, 0x07, 0xe1, 0xaa, 0x45, 0x5c, 0x62, - 0x0d, 0x1c, 0xc1, 0x39, 0xcd, 0xe7, 0x79, 0xd0, 0xc7, 0x94, 0xd7, 0x85, 0x74, 0x6d, 0x60, 0x88, - 0x8d, 0x94, 0x17, 0x15, 0x35, 0x2f, 0x5c, 0x6a, 0x0d, 0xec, 0x3c, 0x7b, 0x31, 0xb5, 0x24, 0x5c, - 0xdd, 0xe3, 0x5a, 0xf0, 0x6c, 0x65, 0xd3, 0xe0, 0x19, 0xf0, 0x7a, 0x55, 0x6d, 0xa5, 0x6c, 0x05, - 0xfd, 0x6b, 0x22, 0xbf, 0x99, 0x81, 0x0b, 0x1a, 0x46, 0xb8, 0x5d, 0xf9, 0x61, 0x38, 0x90, 0xd4, - 0x79, 0xfd, 0xd1, 0xd3, 0x99, 0xd7, 0x2f, 0xeb, 0x6d, 0x89, 0x36, 0x54, 0xb5, 0x0d, 0xbd, 0xbe, - 0x90, 0x3c, 0x82, 0x19, 0x2c, 0x92, 0x0f, 0x3b, 0x6c, 0xce, 0x8a, 0xf7, 0xa0, 0xb9, 0xe8, 0xb3, - 0xb9, 0x1f, 0x3f, 0x66, 0x31, 0x5f, 0xfc, 0xf6, 0x71, 0x71, 0x52, 0x43, 0x97, 0xe1, 0xa8, 0xad, - 0xe8, 0x75, 0xc8, 0x69, 0xef, 0xba, 0x5a, 0x8a, 0xfa, 0x78, 0x15, 0xe4, 0xbf, 0xcc, 0xf0, 0xe7, - 0x04, 0xde, 0x8c, 0x3b, 0x9e, 0xdb, 0x0a, 0xcb, 0xa5, 0x69, 0x65, 0x8f, 0x6e, 0x6b, 0x3e, 0x9d, - 0x6e, 0x7b, 0x15, 0x3f, 0x99, 0xef, 0x09, 0xd6, 0xae, 0xe7, 0xb6, 0xa2, 0xcf, 0x57, 0x3b, 0xae, - 0xe7, 0x47, 0x92, 0xef, 0xcf, 0xc0, 0x45, 0x4d, 0xab, 0xa9, 0xe6, 0x06, 0x11, 0xd1, 0x12, 0x66, - 0xc3, 0x38, 0x2a, 0x51, 0xd1, 0xd2, 0x75, 0x31, 0xff, 0xaf, 0xe0, 0x17, 0x28, 0x61, 0x3b, 0x19, - 0x92, 0xd5, 0xe2, 0x58, 0xca, 0x27, 0xf4, 0xae, 0x85, 0x38, 0x30, 0x83, 0x56, 0x36, 0x9a, 0x09, - 0xf0, 0x5c, 0x6f, 0x13, 0xe0, 0x30, 0xeb, 0x0f, 0x66, 0x04, 0xe8, 0x6d, 0x07, 0x9c, 0xe4, 0x4a, - 0xbe, 0x17, 0x2e, 0x26, 0x80, 0xe1, 0x6a, 0x3b, 0xd7, 0x73, 0xb5, 0x7d, 0xea, 0xe4, 0xb8, 0xf8, - 0x5a, 0x5a, 0x6d, 0x69, 0x2b, 0xad, 0x77, 0x0d, 0xc4, 0x06, 0x88, 0x0a, 0x85, 0xf8, 0x91, 0x3e, - 0x41, 0x3f, 0x25, 0xe6, 0x87, 0x82, 0xcf, 0xf6, 0x72, 0xe5, 0x1b, 0xd4, 0x23, 0x2f, 0x42, 0x22, - 0x14, 0x26, 0x94, 0x6c, 0x08, 0x47, 0xc2, 0xd8, 0xa3, 0x47, 0x25, 0xdf, 0x3e, 0x2e, 0x6a, 0xd8, - 0xec, 0x42, 0xa4, 0xa6, 0x59, 0xd0, 0xa4, 0x3d, 0x15, 0x91, 0xfc, 0x5a, 0x06, 0xe6, 0x18, 0x20, - 0x9a, 0x54, 0xa2, 0x51, 0xf3, 0xfd, 0x66, 0xfd, 0xfe, 0xd3, 0x99, 0xf5, 0x2f, 0xe1, 0x37, 0xaa, - 0xb3, 0x3e, 0xd1, 0x25, 0xa9, 0x1f, 0x87, 0xb3, 0x5d, 0x33, 0xe8, 0xd2, 0x66, 0xfb, 0xc5, 0x01, - 0x66, 0x3b, 0x1f, 0x80, 0xd3, 0x67, 0x7b, 0xcf, 0x5a, 0xc8, 0x26, 0x4c, 0x88, 0xbb, 0x10, 0xef, - 0xb0, 0x4b, 0x5a, 0x18, 0x67, 0xb5, 0x88, 0x5f, 0x50, 0x45, 0xb2, 0x88, 0x44, 0x0b, 0x35, 0x2e, - 0xa4, 0x0d, 0xb3, 0xfc, 0xb7, 0xae, 0x9b, 0x2a, 0xf6, 0xd4, 0x4d, 0x5d, 0x15, 0x2d, 0xba, 0x2c, - 0xf8, 0xc7, 0x54, 0x54, 0x6a, 0xf8, 0xa5, 0x14, 0xc6, 0xa4, 0x03, 0x44, 0x03, 0xf3, 0x45, 0x7b, - 0xb9, 0xbf, 0x46, 0xea, 0x35, 0x51, 0x67, 0x31, 0x5e, 0x67, 0x7c, 0xe5, 0xa6, 0xf0, 0x26, 0x36, - 0x4c, 0x0b, 0xa8, 0x7b, 0x40, 0xf9, 0x0e, 0xff, 0x92, 0x16, 0x00, 0x2b, 0x56, 0xca, 0x2f, 0x51, - 0xb2, 0x26, 0x0c, 0x50, 0x16, 0xdb, 0xd0, 0xe3, 0xfc, 0xc8, 0x03, 0x98, 0x29, 0x75, 0x3a, 0x4d, - 0x87, 0x36, 0xb0, 0x95, 0x66, 0x97, 0xb5, 0xc9, 0x88, 0xf2, 0xad, 0xd9, 0xbc, 0x50, 0xdc, 0xec, - 0xbc, 0x6e, 0x6c, 0xbb, 0x49, 0xd0, 0x1a, 0x3f, 0x94, 0x49, 0x7c, 0x34, 0x79, 0x03, 0xc6, 0xf0, - 0x87, 0x12, 0x53, 0x05, 0x55, 0x3c, 0xfc, 0x13, 0x51, 0x79, 0x14, 0x21, 0x30, 0x61, 0x49, 0x8d, - 0xab, 0x98, 0xe3, 0xc2, 0x92, 0xd0, 0x2b, 0x44, 0x9a, 0x84, 0xa2, 0x74, 0xcd, 0xc8, 0x45, 0x42, - 0x17, 0xba, 0x66, 0x08, 0x87, 0x0c, 0xe3, 0xfb, 0xb3, 0xfa, 0xb4, 0x23, 0x57, 0x15, 0xb9, 0x5d, - 0x89, 0xec, 0x28, 0xe5, 0x76, 0x45, 0x5a, 0xff, 0x87, 0x19, 0x98, 0x7d, 0xe0, 0xed, 0xd9, 0x6d, - 0xe7, 0x9b, 0x3c, 0x8c, 0xb6, 0x8b, 0xe3, 0xd2, 0x3f, 0x75, 0xe5, 0xd3, 0x4a, 0xc1, 0xe7, 0x2a, - 0x15, 0xb3, 0x99, 0x82, 0x53, 0xc6, 0x4c, 0xfb, 0x1e, 0x74, 0x76, 0xc3, 0x0f, 0x53, 0x32, 0x21, - 0x72, 0x74, 0x0e, 0x37, 0x7e, 0x2c, 0x0b, 0xe3, 0xca, 0x12, 0x20, 0x9f, 0x81, 0x09, 0x95, 0x8f, - 0xaa, 0xf0, 0x53, 0xab, 0x35, 0x35, 0x2c, 0xd4, 0xf8, 0x51, 0xbb, 0xa5, 0x69, 0xfc, 0xd8, 0x44, - 0x47, 0xe8, 0x19, 0xaf, 0x36, 0x1f, 0xa4, 0x5c, 0x6d, 0x70, 0xda, 0x2a, 0x1a, 0x9b, 0xbe, 0x17, - 0x9c, 0x77, 0x93, 0x17, 0x1c, 0x54, 0x1e, 0x29, 0xf4, 0xbd, 0xaf, 0x39, 0xc6, 0x4f, 0x66, 0xa0, - 0x10, 0x5f, 0xa4, 0x9f, 0x48, 0xaf, 0x9c, 0xe1, 0x75, 0xe7, 0x47, 0xb3, 0x61, 0x2a, 0x14, 0xe9, - 0xc2, 0xfb, 0xac, 0x9a, 0x09, 0xbe, 0xa7, 0x3d, 0xbc, 0x3c, 0xaf, 0x47, 0xa3, 0x53, 0x83, 0x5f, - 0xa4, 0x87, 0xa0, 0x1c, 0xfa, 0xd9, 0x5f, 0x28, 0x3e, 0x67, 0x7c, 0x08, 0x73, 0xf1, 0xee, 0xc0, - 0xc7, 0x97, 0x12, 0x4c, 0xeb, 0xf0, 0x78, 0x22, 0xa5, 0x38, 0x95, 0x19, 0xc7, 0x37, 0xfe, 0x28, - 0x1b, 0xe7, 0x2d, 0x4c, 0x06, 0xd9, 0xa6, 0xa3, 0x1a, 0xc2, 0x88, 0x4d, 0x87, 0x83, 0x4c, 0x59, - 0x76, 0x96, 0x04, 0x66, 0xa1, 0x23, 0x6a, 0x2e, 0xdd, 0x11, 0x95, 0xdc, 0x8e, 0x59, 0x49, 0x2b, - 0x51, 0x93, 0x0e, 0xe9, 0x8e, 0x15, 0x59, 0x4a, 0xc7, 0x8c, 0xa3, 0xcb, 0x30, 0xa7, 0x85, 0x00, - 0x97, 0xf4, 0xc3, 0x91, 0xae, 0x3d, 0xc0, 0x02, 0x4e, 0x9c, 0x8a, 0x4c, 0x56, 0x60, 0x94, 0x7d, - 0xe6, 0x9a, 0xdd, 0x11, 0x6f, 0x2a, 0x24, 0x74, 0x4b, 0x6f, 0x86, 0x17, 0x3e, 0xc5, 0x33, 0xbd, - 0x49, 0xd9, 0x91, 0xaf, 0x4e, 0x2c, 0x81, 0x68, 0xfc, 0xf3, 0x0c, 0x5b, 0xff, 0xf5, 0x83, 0xef, - 0xb2, 0x2c, 0x68, 0xac, 0x49, 0x7d, 0x2c, 0x5a, 0xff, 0x24, 0xcb, 0x73, 0xe1, 0x88, 0xe9, 0xf3, - 0x36, 0x8c, 0x6c, 0xda, 0xde, 0x9e, 0xc8, 0x1a, 0xad, 0x73, 0xe1, 0x05, 0x51, 0x4c, 0xa7, 0x00, - 0x7f, 0x9b, 0x82, 0x40, 0xd5, 0x85, 0x65, 0x07, 0xd2, 0x85, 0x29, 0x7a, 0xf9, 0xdc, 0x53, 0xd3, - 0xcb, 0x7f, 0x4f, 0x98, 0xf6, 0xa6, 0x14, 0x0c, 0x10, 0x61, 0xfa, 0x72, 0x3c, 0x6d, 0x54, 0x22, - 0x16, 0x78, 0xc4, 0x8e, 0xdc, 0x56, 0x13, 0x51, 0x29, 0xbe, 0x9d, 0xa7, 0xa4, 0x9c, 0x32, 0xfe, - 0x24, 0xc7, 0xfb, 0x58, 0x74, 0xd4, 0x15, 0xcd, 0xef, 0x1b, 0xd7, 0x09, 0xdb, 0xe8, 0xd5, 0x10, - 0x1c, 0x68, 0x36, 0x75, 0x05, 0x86, 0xd8, 0xdc, 0x14, 0xbd, 0x89, 0x78, 0x6c, 0xfe, 0xaa, 0x78, - 0xac, 0x9c, 0xad, 0x65, 0x3c, 0x93, 0xd4, 0x0c, 0x83, 0x78, 0x6c, 0xa9, 0x6b, 0x19, 0x31, 0xc8, - 0x55, 0x18, 0x5a, 0x77, 0x1b, 0x32, 0x92, 0xf9, 0x1c, 0x46, 0xff, 0xd0, 0x52, 0x98, 0xce, 0x67, - 0x4c, 0xc4, 0x60, 0x6d, 0x0d, 0xf3, 0x3f, 0xa8, 0x6d, 0x6d, 0xed, 0xda, 0xc9, 0xcc, 0x71, 0x4a, - 0xd2, 0x99, 0x65, 0x98, 0xd2, 0xf3, 0xf5, 0x0b, 0x7b, 0x5f, 0xd4, 0xae, 0xc7, 0xd2, 0xfe, 0xab, - 0xcf, 0x22, 0x3a, 0x11, 0x59, 0x82, 0x49, 0x2d, 0x82, 0xaa, 0x78, 0xdc, 0x44, 0xf5, 0xa6, 0x1e, - 0x7f, 0x55, 0x55, 0x6f, 0x6a, 0x24, 0xec, 0x3c, 0x17, 0xdf, 0xaf, 0x3c, 0x71, 0x26, 0xbe, 0x5d, - 0xe0, 0x90, 0x5b, 0x90, 0xe7, 0x61, 0x36, 0xaa, 0x15, 0xf5, 0x99, 0xca, 0x47, 0x58, 0x2c, 0x4c, - 0x8d, 0x44, 0x54, 0xc2, 0x2a, 0x7c, 0x1a, 0x0a, 0x62, 0x4b, 0x8a, 0x92, 0x9f, 0xbf, 0x00, 0x43, - 0xe5, 0x6a, 0xc5, 0x54, 0xb7, 0x91, 0xba, 0xd3, 0xf0, 0x4c, 0x84, 0xa2, 0x57, 0xdd, 0x3a, 0x0d, - 0x0e, 0x5d, 0xef, 0xc0, 0xa4, 0x7e, 0xe0, 0x39, 0x3c, 0x41, 0x25, 0x2e, 0xc4, 0xcf, 0x90, 0x77, - 0x61, 0x18, 0x0d, 0x4f, 0x63, 0x27, 0x43, 0xbc, 0x8e, 0xa5, 0x49, 0x31, 0x81, 0x87, 0xd1, 0x8a, - 0xd5, 0xe4, 0x44, 0xe4, 0x6d, 0x18, 0xaa, 0xd0, 0xf6, 0x51, 0x2c, 0x77, 0x5e, 0x82, 0x38, 0xdc, - 0x10, 0x1a, 0xb4, 0x7d, 0x64, 0x22, 0x89, 0xf1, 0x93, 0x59, 0x38, 0x97, 0xf2, 0x59, 0x0f, 0x3f, - 0xf3, 0x8c, 0xee, 0x8a, 0x4b, 0xda, 0xae, 0x28, 0xdf, 0xa7, 0x7b, 0x76, 0x7c, 0xea, 0x26, 0xf9, - 0x73, 0x19, 0xb8, 0xa0, 0x4f, 0x50, 0x61, 0x69, 0xfe, 0xf0, 0x16, 0x79, 0x07, 0x46, 0x56, 0xa8, - 0xdd, 0xa0, 0x32, 0xaf, 0xd6, 0xb9, 0x30, 0x20, 0x1e, 0x8f, 0x21, 0xc0, 0x0b, 0x39, 0xdb, 0xc8, - 0xe3, 0x94, 0x43, 0x49, 0x45, 0x7c, 0x1c, 0x97, 0xc7, 0x0d, 0x19, 0xcf, 0x23, 0xad, 0xaa, 0x3e, - 0x56, 0x1e, 0xdf, 0xce, 0xc0, 0xf3, 0x7d, 0x68, 0xd8, 0xc0, 0xb1, 0xa1, 0x57, 0x07, 0x0e, 0x4f, - 0x54, 0x84, 0x92, 0xf7, 0x61, 0x7a, 0x53, 0xc8, 0xf3, 0x72, 0x38, 0xb2, 0xd1, 0x7a, 0x91, 0xa2, - 0xbe, 0x25, 0xc7, 0x25, 0x8e, 0xac, 0x05, 0x9a, 0xc9, 0xf5, 0x0d, 0x34, 0xa3, 0xc6, 0x6d, 0x19, - 0x1a, 0x34, 0x6e, 0xcb, 0x87, 0x30, 0xa7, 0xb7, 0x4d, 0x84, 0xcf, 0x8d, 0xa2, 0xd6, 0x64, 0x7a, - 0x47, 0xad, 0xe9, 0x1b, 0xa4, 0xd3, 0xf8, 0xb1, 0x0c, 0x14, 0x74, 0xde, 0x4f, 0x3a, 0x9e, 0xef, - 0x69, 0xe3, 0xf9, 0x7c, 0xfa, 0x78, 0xf6, 0x1e, 0xc8, 0xff, 0x2b, 0x13, 0x6f, 0xec, 0x40, 0x23, - 0x68, 0xc0, 0x48, 0xc5, 0x6d, 0xd9, 0x4e, 0x5b, 0xcd, 0xa5, 0xdf, 0x40, 0x88, 0x29, 0x4a, 0x06, - 0x0b, 0xf2, 0x73, 0x19, 0x86, 0xd7, 0xdd, 0x76, 0xa9, 0x22, 0x4c, 0x7a, 0x91, 0x4f, 0xdb, 0x6d, - 0x5b, 0x76, 0xc3, 0xe4, 0x05, 0x64, 0x15, 0xa0, 0x56, 0xf7, 0x28, 0x6d, 0xd7, 0x9c, 0x6f, 0xd2, - 0x98, 0xa4, 0xc1, 0x7a, 0xa8, 0xd9, 0xc5, 0x8d, 0x85, 0x3f, 0x5d, 0x22, 0xa2, 0xe5, 0x3b, 0xdf, - 0x54, 0xf7, 0x5b, 0x85, 0x1e, 0xd7, 0x95, 0x88, 0x83, 0x16, 0x1b, 0x87, 0x9b, 0x9f, 0xc4, 0xba, - 0x4a, 0xad, 0x0a, 0x7b, 0xf8, 0x66, 0xea, 0x70, 0xfc, 0x61, 0x06, 0x9e, 0xef, 0x43, 0xf3, 0x14, - 0x46, 0xe5, 0x2f, 0xbb, 0xc3, 0x29, 0x40, 0x44, 0x84, 0xa9, 0x89, 0x9d, 0x46, 0xc0, 0x73, 0xe5, - 0x4d, 0x8a, 0xd4, 0xc4, 0x0c, 0xa0, 0xa5, 0x26, 0x66, 0x00, 0x76, 0x96, 0xae, 0x50, 0x67, 0x6f, - 0x9f, 0x9b, 0x67, 0x4d, 0xf2, 0xbd, 0x61, 0x1f, 0x21, 0xea, 0x59, 0xca, 0x71, 0x8c, 0x7f, 0x39, - 0x0c, 0x17, 0x4d, 0xba, 0xe7, 0xb0, 0x7b, 0xc9, 0x96, 0xef, 0xb4, 0xf7, 0xb4, 0xb8, 0x37, 0x46, - 0x6c, 0xe5, 0x8a, 0x24, 0x11, 0x0c, 0x12, 0xce, 0xc4, 0x6b, 0x90, 0x67, 0x62, 0x88, 0xb2, 0x78, - 0xf1, 0xd1, 0x8a, 0x09, 0x2b, 0x22, 0xb0, 0xb2, 0x2c, 0x26, 0xaf, 0x0b, 0x31, 0x49, 0x49, 0xe3, - 0xc3, 0xc4, 0xa4, 0xef, 0x1c, 0x17, 0xa1, 0x76, 0xe4, 0x07, 0x14, 0xaf, 0xc8, 0x42, 0x54, 0x0a, - 0xef, 0x32, 0x43, 0x3d, 0xee, 0x32, 0x6b, 0x30, 0x57, 0x6a, 0xf0, 0xd3, 0xd1, 0x6e, 0x6e, 0x78, - 0x4e, 0xbb, 0xee, 0x74, 0xec, 0xa6, 0xbc, 0x9f, 0x63, 0x2f, 0xdb, 0x61, 0xb9, 0xd5, 0x09, 0x11, - 0xcc, 0x54, 0x32, 0xd6, 0x8c, 0xca, 0x7a, 0x0d, 0xc3, 0xc3, 0x88, 0xf7, 0x48, 0x6c, 0x46, 0xa3, - 0xed, 0x63, 0x2b, 0x7c, 0x33, 0x2c, 0xc6, 0x5b, 0x14, 0x3e, 0xc8, 0x6f, 0xae, 0xd6, 0x22, 0x97, - 0x66, 0x9e, 0x65, 0x80, 0x3f, 0xec, 0x07, 0x4d, 0x1f, 0x4d, 0x21, 0x35, 0xbc, 0x88, 0xae, 0x56, - 0x5b, 0x61, 0x74, 0xf9, 0x04, 0x9d, 0xef, 0xef, 0xab, 0x74, 0x1c, 0x8f, 0xdc, 0x60, 0x53, 0xa1, - 0xe5, 0x06, 0x14, 0xa7, 0xf0, 0x58, 0x74, 0xe7, 0xf2, 0x10, 0xca, 0xef, 0x5c, 0x0a, 0x0a, 0x79, - 0x17, 0x66, 0x97, 0xcb, 0x8b, 0x52, 0x8b, 0x5c, 0x71, 0xeb, 0x5d, 0x7c, 0x88, 0x07, 0xac, 0x0f, - 0xc7, 0x90, 0xd6, 0x17, 0xd9, 0x6e, 0x92, 0x86, 0x46, 0xae, 0xc0, 0x68, 0xb5, 0xc2, 0xfb, 0x7e, - 0x5c, 0x4d, 0xa5, 0x25, 0x2c, 0xa3, 0x64, 0x21, 0x79, 0x10, 0x5d, 0x0a, 0x26, 0x4e, 0x95, 0xde, - 0x2f, 0x0e, 0x70, 0x21, 0x78, 0x1b, 0x26, 0x97, 0xdc, 0xa0, 0xda, 0xf6, 0x03, 0xbb, 0x5d, 0xa7, - 0xd5, 0x8a, 0x1a, 0xd7, 0x7a, 0xc7, 0x0d, 0x2c, 0x47, 0x94, 0xb0, 0x2f, 0xd7, 0x31, 0xc9, 0xe7, - 0x90, 0xf4, 0x2e, 0x6d, 0x53, 0x2f, 0x8a, 0x67, 0x3d, 0xcc, 0xfb, 0x96, 0x91, 0xee, 0x85, 0x25, - 0xa6, 0x8e, 0x28, 0xd2, 0x7c, 0xf1, 0xe4, 0x9c, 0x65, 0xb7, 0x41, 0x7d, 0xbe, 0x5b, 0x7c, 0x17, - 0xa5, 0xf9, 0x52, 0xda, 0xd6, 0x67, 0x07, 0xfd, 0xb7, 0x30, 0xcd, 0x57, 0x02, 0x97, 0x7c, 0x0e, - 0x86, 0xf1, 0xa7, 0x90, 0x6e, 0x67, 0x53, 0xd8, 0x46, 0x92, 0x6d, 0x9d, 0x61, 0x9a, 0x9c, 0x80, - 0x54, 0x61, 0x54, 0x5c, 0xac, 0xce, 0x92, 0xac, 0x46, 0xdc, 0xd0, 0xf8, 0xcc, 0x10, 0xf4, 0x46, - 0x03, 0x26, 0xd4, 0x0a, 0xd9, 0x8a, 0x58, 0xb1, 0xfd, 0x7d, 0xda, 0x60, 0xbf, 0x44, 0x9e, 0x39, - 0x5c, 0x11, 0xfb, 0x08, 0xb5, 0xd8, 0x77, 0x98, 0x0a, 0x0a, 0x3b, 0x53, 0xab, 0xfe, 0x96, 0x2f, - 0x3e, 0x45, 0xa8, 0x5a, 0x1c, 0x54, 0xdb, 0x35, 0x4c, 0x51, 0x64, 0x7c, 0x0f, 0xcc, 0xad, 0x77, - 0x9b, 0x4d, 0x7b, 0xa7, 0x49, 0x65, 0x1e, 0x12, 0xcc, 0xe0, 0xbd, 0x04, 0xc3, 0x35, 0x25, 0x27, - 0x78, 0x98, 0x0b, 0x52, 0xc1, 0x41, 0x23, 0xd4, 0x0c, 0x86, 0xea, 0x89, 0x65, 0x03, 0xe7, 0xa4, - 0xc6, 0xef, 0x67, 0x60, 0x4e, 0xbe, 0xff, 0x7b, 0x76, 0xfd, 0x20, 0x4c, 0x0c, 0x7f, 0x45, 0x9b, - 0x6b, 0x38, 0x61, 0x63, 0xd3, 0x88, 0xcf, 0xba, 0x7b, 0xf2, 0x23, 0x74, 0x81, 0x25, 0xed, 0x83, - 0x4f, 0xfb, 0x18, 0xf2, 0x2e, 0x8c, 0x8b, 0xe3, 0x51, 0x09, 0x30, 0x89, 0x51, 0xbc, 0xc4, 0x75, - 0x2f, 0x6e, 0x8d, 0xa2, 0xa2, 0xa3, 0x2c, 0xa6, 0x37, 0xe5, 0x49, 0x65, 0x80, 0x74, 0x59, 0x4c, - 0xaf, 0xa3, 0xcf, 0xd4, 0xfd, 0xed, 0xf1, 0x78, 0xdf, 0x8a, 0xb9, 0x7b, 0x5b, 0x0d, 0x29, 0x97, - 0x89, 0x6e, 0xc6, 0x51, 0x48, 0x39, 0xf5, 0x66, 0x1c, 0xa2, 0x86, 0x63, 0x92, 0x3d, 0x65, 0x4c, - 0xde, 0x97, 0x63, 0x92, 0xeb, 0x3d, 0x31, 0x66, 0xfb, 0x8c, 0x43, 0x2d, 0x5a, 0x21, 0x43, 0x03, - 0xa9, 0x55, 0x9e, 0xc3, 0xd8, 0xf9, 0x9c, 0x24, 0xbe, 0x8b, 0x0a, 0x4e, 0xaa, 0xae, 0x66, 0x78, - 0x70, 0xa6, 0xa7, 0x6c, 0xcd, 0x9f, 0x87, 0x89, 0x52, 0x10, 0xd8, 0xf5, 0x7d, 0xda, 0xa8, 0xb0, - 0xed, 0x49, 0x89, 0x7e, 0x65, 0x0b, 0xb8, 0xfa, 0x68, 0xa6, 0xe2, 0xf2, 0x68, 0xae, 0xb6, 0x2f, - 0x8c, 0x59, 0xc3, 0x68, 0xae, 0x0c, 0xa2, 0x47, 0x73, 0x65, 0x10, 0x72, 0x03, 0x46, 0xab, 0xed, - 0x47, 0x0e, 0xeb, 0x13, 0x1e, 0x00, 0x0b, 0x75, 0x53, 0x0e, 0x07, 0xa9, 0x9b, 0xab, 0xc0, 0x22, - 0x6f, 0x2b, 0x97, 0x9a, 0xb1, 0x48, 0x81, 0xc1, 0x55, 0x5e, 0x61, 0x84, 0x1b, 0xf5, 0xc2, 0x12, - 0xde, 0x72, 0x6e, 0xc3, 0xa8, 0xd4, 0x64, 0x42, 0xa4, 0xb4, 0x10, 0x94, 0xc9, 0x80, 0x11, 0x12, - 0x19, 0x93, 0x7c, 0x2b, 0xf9, 0xf2, 0xc6, 0x95, 0x24, 0xdf, 0x4a, 0xbe, 0x3c, 0x2d, 0xc9, 0xb7, - 0x92, 0x39, 0x2f, 0x54, 0x02, 0x4d, 0x9c, 0xaa, 0x04, 0x7a, 0x08, 0x13, 0x1b, 0xb6, 0x17, 0x38, - 0x4c, 0x46, 0x69, 0x07, 0xfe, 0xfc, 0xa4, 0xa6, 0x37, 0x55, 0x8a, 0x96, 0x2e, 0xc9, 0xbc, 0xd4, - 0x1d, 0x05, 0x5f, 0x4f, 0xa0, 0x1c, 0xc1, 0xd3, 0x4d, 0x59, 0xa7, 0x9e, 0xc4, 0x94, 0x15, 0x3b, - 0x15, 0x75, 0x65, 0xd3, 0x91, 0x46, 0x06, 0x2f, 0x2d, 0x31, 0x85, 0x59, 0x88, 0x48, 0xbe, 0x02, - 0x13, 0xec, 0xef, 0x0d, 0xb7, 0xe9, 0xd4, 0x1d, 0xea, 0xcf, 0x17, 0xb0, 0x71, 0x97, 0x52, 0x57, - 0x3f, 0x22, 0x1d, 0xd5, 0x68, 0xc0, 0x17, 0x30, 0x32, 0x8e, 0x2b, 0xc1, 0x35, 0x6e, 0xe4, 0x03, - 0x98, 0x60, 0xb3, 0x6f, 0xc7, 0xf6, 0xb9, 0x68, 0x3a, 0x13, 0x19, 0x23, 0x37, 0x04, 0x3c, 0x11, - 0x50, 0x59, 0x25, 0x60, 0xc7, 0x7c, 0xa9, 0xc3, 0x37, 0x48, 0xa2, 0xcc, 0xf6, 0x4e, 0x62, 0x73, - 0x94, 0x68, 0xe4, 0x0b, 0x30, 0x51, 0xea, 0x74, 0xa2, 0x1d, 0x67, 0x56, 0x51, 0x84, 0x75, 0x3a, - 0x56, 0xea, 0xae, 0xa3, 0x51, 0xc4, 0x37, 0xe6, 0xb9, 0x33, 0x6d, 0xcc, 0xe4, 0xcd, 0x50, 0x5a, - 0x3f, 0x17, 0x69, 0x75, 0xc5, 0xc5, 0x51, 0x13, 0xfd, 0xb9, 0xe0, 0x5e, 0x86, 0x49, 0xae, 0xe6, - 0x94, 0xd2, 0xcc, 0xf9, 0xc4, 0xea, 0x49, 0x11, 0x6a, 0x74, 0x1a, 0xb2, 0x0c, 0x53, 0xdc, 0xdb, - 0xba, 0x29, 0x22, 0x5d, 0xcf, 0x5f, 0xc0, 0x55, 0x8b, 0x5c, 0xb8, 0x93, 0x76, 0x13, 0x13, 0xa0, - 0xd8, 0x1a, 0x97, 0x18, 0x91, 0xf1, 0xa7, 0x19, 0xb8, 0xd0, 0x63, 0xc4, 0xc3, 0x38, 0xc8, 0x99, - 0xfe, 0x71, 0x90, 0xd9, 0xce, 0xa1, 0x6b, 0x45, 0xb0, 0xfd, 0x42, 0xca, 0x52, 0xc7, 0x4b, 0xca, - 0x5b, 0x2e, 0x10, 0x91, 0x63, 0x48, 0x54, 0x7d, 0xcf, 0x45, 0xd5, 0x6c, 0x2e, 0x79, 0x08, 0x09, - 0x3c, 0xfe, 0x51, 0x4b, 0xc6, 0xc9, 0x71, 0xf1, 0x92, 0x48, 0x61, 0x14, 0x0e, 0xeb, 0x47, 0xae, - 0xb6, 0x82, 0x53, 0x58, 0x1b, 0xc7, 0x19, 0x18, 0x57, 0xd6, 0x21, 0xb9, 0xac, 0x78, 0x01, 0x17, - 0x78, 0x12, 0x2c, 0x85, 0x43, 0x96, 0x9f, 0x44, 0xb8, 0xa8, 0xb2, 0xa7, 0x2b, 0xa0, 0xd7, 0x98, - 0x28, 0xa4, 0xc4, 0x8a, 0x6e, 0x69, 0xda, 0x62, 0x13, 0xcb, 0x31, 0x9d, 0xbe, 0xed, 0x07, 0xa5, - 0x7a, 0xe0, 0x3c, 0xa2, 0x03, 0x1c, 0x3a, 0x51, 0x3a, 0x7d, 0xdb, 0x0f, 0x2c, 0x1b, 0xc9, 0x12, - 0xe9, 0xf4, 0x43, 0x86, 0xc6, 0xdf, 0xca, 0x00, 0x6c, 0x55, 0xcb, 0x18, 0xec, 0xfd, 0x49, 0x85, - 0x82, 0xf4, 0x00, 0xba, 0x92, 0x7b, 0x1f, 0x71, 0xe0, 0x7f, 0xcc, 0xc0, 0x94, 0x8e, 0x46, 0xde, - 0x87, 0xe9, 0x5a, 0xdd, 0x73, 0x9b, 0xcd, 0x1d, 0xbb, 0x7e, 0xb0, 0xea, 0xb4, 0x29, 0x0f, 0x5d, - 0x3a, 0xcc, 0xcf, 0x22, 0x3f, 0x2c, 0xb2, 0x9a, 0xac, 0xcc, 0x8c, 0x23, 0x93, 0x1f, 0xc8, 0xc0, - 0x64, 0x6d, 0xdf, 0x3d, 0x0c, 0xa3, 0x8d, 0x8a, 0x01, 0xf9, 0x2a, 0x5b, 0xdb, 0xfe, 0xbe, 0x7b, - 0x18, 0x65, 0xd0, 0xd4, 0x8c, 0x3f, 0xdf, 0x1b, 0xec, 0x5d, 0xbe, 0xee, 0xe2, 0x4d, 0x26, 0xf0, - 0xaf, 0x6b, 0x95, 0x98, 0x7a, 0x9d, 0xc6, 0x5f, 0x64, 0x60, 0x1c, 0xef, 0x3c, 0xcd, 0x26, 0xca, - 0x5c, 0xdf, 0x4d, 0xe9, 0x18, 0xc3, 0x76, 0xf5, 0x19, 0xd8, 0xb7, 0x60, 0x3a, 0x86, 0x46, 0x0c, - 0x18, 0xa9, 0xa1, 0x83, 0xbf, 0xaa, 0xa0, 0xe0, 0x2e, 0xff, 0xa6, 0x28, 0x31, 0x96, 0x15, 0xb2, - 0x87, 0x37, 0xf1, 0x59, 0x77, 0x11, 0xc0, 0x91, 0x20, 0x79, 0xb3, 0x21, 0xf1, 0x2f, 0x79, 0x78, - 0xd3, 0x54, 0xb0, 0x8c, 0x75, 0x18, 0xa9, 0xb9, 0x5e, 0xb0, 0x74, 0xc4, 0x2f, 0x13, 0x15, 0xea, - 0xd7, 0xd5, 0x77, 0x5b, 0x07, 0xdf, 0x4a, 0xea, 0xa6, 0x28, 0x22, 0x45, 0x18, 0xbe, 0xe3, 0xd0, - 0x66, 0x43, 0x35, 0xd0, 0xdd, 0x65, 0x00, 0x93, 0xc3, 0xd9, 0x85, 0xeb, 0x7c, 0x94, 0x13, 0x25, - 0xb2, 0x04, 0x7e, 0xd2, 0x75, 0x53, 0xd6, 0xfa, 0xf7, 0xa5, 0x30, 0x0f, 0x41, 0xb2, 0xa6, 0x3e, - 0x5d, 0xfd, 0x1f, 0x66, 0x60, 0xa1, 0x37, 0x89, 0x6a, 0x5c, 0x9c, 0xe9, 0x63, 0x5c, 0xfc, 0x6a, - 0xfc, 0x9d, 0x11, 0xd1, 0xc4, 0x3b, 0x63, 0xf4, 0xba, 0x58, 0x41, 0xdb, 0xee, 0x3a, 0x95, 0x89, - 0x50, 0x2e, 0xf7, 0xf9, 0x66, 0x44, 0xe4, 0xc3, 0x1c, 0x20, 0x8d, 0x29, 0x68, 0x8d, 0xdf, 0x1a, - 0x82, 0x8b, 0x3d, 0x29, 0xc8, 0x8a, 0x92, 0x5e, 0x69, 0x2a, 0x4c, 0xec, 0xd2, 0x13, 0xff, 0x3a, - 0xfe, 0x8b, 0xe6, 0x7b, 0x71, 0x6f, 0xb3, 0x07, 0x61, 0x5a, 0x9d, 0x2c, 0xf2, 0xfa, 0xd4, 0xa9, - 0xbc, 0x38, 0x3a, 0x32, 0x83, 0x64, 0x86, 0x1d, 0xf4, 0x4b, 0xa4, 0x81, 0xed, 0x34, 0x7d, 0x75, - 0xd9, 0x35, 0x38, 0xc8, 0x94, 0x65, 0x91, 0xc5, 0xf7, 0x50, 0xba, 0xc5, 0xb7, 0xf1, 0x2f, 0x33, - 0x30, 0x16, 0x7e, 0x36, 0x59, 0x80, 0xf3, 0x9b, 0x66, 0xa9, 0xbc, 0x6c, 0x6d, 0x7e, 0xb8, 0xb1, - 0x6c, 0x6d, 0xad, 0xd7, 0x36, 0x96, 0xcb, 0xd5, 0x3b, 0xd5, 0xe5, 0x4a, 0xe1, 0x39, 0x32, 0x03, - 0x93, 0x5b, 0xeb, 0xf7, 0xd7, 0x1f, 0x6c, 0xaf, 0x5b, 0xcb, 0xa6, 0xf9, 0xc0, 0x2c, 0x64, 0xc8, - 0x24, 0x8c, 0x99, 0x4b, 0xa5, 0xb2, 0xb5, 0xfe, 0xa0, 0xb2, 0x5c, 0xc8, 0x92, 0x02, 0x4c, 0x94, - 0x1f, 0xac, 0xaf, 0x2f, 0x97, 0x37, 0xab, 0x0f, 0xab, 0x9b, 0x1f, 0x16, 0x72, 0x84, 0xc0, 0x14, - 0x22, 0x6c, 0x98, 0xd5, 0xf5, 0x72, 0x75, 0xa3, 0xb4, 0x5a, 0x18, 0x62, 0x30, 0x86, 0xaf, 0xc0, - 0x86, 0x43, 0x46, 0xf7, 0xb7, 0x96, 0x96, 0x0b, 0x23, 0x0c, 0x85, 0xfd, 0xa5, 0xa0, 0x8c, 0xb2, - 0xea, 0x11, 0xa5, 0x52, 0xda, 0x2c, 0x2d, 0x95, 0x6a, 0xcb, 0x85, 0x3c, 0xb9, 0x00, 0xb3, 0x1a, - 0xc8, 0x5a, 0x7d, 0x70, 0xb7, 0xba, 0x5e, 0x18, 0x23, 0x73, 0x50, 0x08, 0x61, 0x95, 0x25, 0x6b, - 0xab, 0xb6, 0x6c, 0x16, 0x20, 0x0e, 0x5d, 0x2f, 0xad, 0x2d, 0x17, 0xc6, 0x8d, 0xf7, 0xb8, 0x1f, - 0x20, 0xef, 0x6a, 0x72, 0x1e, 0x48, 0x6d, 0xb3, 0xb4, 0xb9, 0x55, 0x8b, 0x35, 0x7e, 0x1c, 0x46, - 0x6b, 0x5b, 0xe5, 0xf2, 0x72, 0xad, 0x56, 0xc8, 0x10, 0x80, 0x91, 0x3b, 0xa5, 0xea, 0xea, 0x72, - 0xa5, 0x90, 0x35, 0x7e, 0x22, 0x03, 0x33, 0x52, 0x02, 0x94, 0x8f, 0x46, 0x4f, 0xb8, 0x16, 0xdf, - 0xd7, 0x2e, 0xb6, 0xd2, 0x49, 0x2b, 0x56, 0x49, 0x9f, 0x65, 0xf8, 0x73, 0x19, 0x38, 0x97, 0x8a, - 0x4d, 0x3e, 0x84, 0x82, 0xfc, 0x82, 0x35, 0x3b, 0xa8, 0xef, 0x47, 0xfb, 0xd8, 0xa5, 0x58, 0x2d, - 0x31, 0x34, 0xae, 0xd6, 0x8c, 0x12, 0x3e, 0x27, 0xd8, 0x0c, 0x9e, 0x8e, 0xc0, 0xf8, 0xd9, 0x0c, - 0x5c, 0xe8, 0x51, 0x0d, 0x29, 0xc3, 0x48, 0x98, 0x98, 0xa6, 0x8f, 0x05, 0xdb, 0xdc, 0xb7, 0x8f, - 0x8b, 0x02, 0x11, 0x33, 0xe4, 0xe2, 0x5f, 0xe6, 0x48, 0x98, 0x69, 0x06, 0xd3, 0xbd, 0xf0, 0xee, - 0xbb, 0x18, 0xeb, 0x79, 0x51, 0x53, 0x69, 0xbb, 0xb6, 0x34, 0x2e, 0xfa, 0x2e, 0x67, 0x1f, 0xfa, - 0x98, 0xef, 0xc5, 0xf8, 0xa9, 0x0c, 0x13, 0xee, 0xe2, 0x88, 0x4c, 0xe6, 0x2d, 0xf9, 0x7e, 0xb7, - 0x45, 0x4d, 0xb7, 0x49, 0x4b, 0xe6, 0xba, 0x38, 0x36, 0x50, 0x5a, 0xb5, 0xb1, 0x00, 0xaf, 0x15, - 0x96, 0xed, 0xb5, 0xb5, 0xd7, 0x6a, 0x95, 0x86, 0xbc, 0x0d, 0xb0, 0xfc, 0x38, 0xa0, 0x5e, 0xdb, - 0x6e, 0x86, 0x31, 0x5a, 0x78, 0x64, 0x29, 0x01, 0xd5, 0xe5, 0x6d, 0x05, 0xd9, 0xf8, 0x3b, 0x19, - 0x98, 0x10, 0x97, 0xa6, 0x52, 0x93, 0x7a, 0xc1, 0x93, 0x4d, 0xaf, 0xb7, 0xb5, 0xe9, 0x15, 0x3a, - 0x6c, 0x28, 0xfc, 0x59, 0x71, 0xea, 0xcc, 0xfa, 0x27, 0x19, 0x28, 0xc4, 0x11, 0xc9, 0xfb, 0x90, - 0xaf, 0xd1, 0x47, 0xd4, 0x73, 0x82, 0x23, 0xb1, 0x51, 0xca, 0x14, 0x7e, 0x1c, 0x47, 0x94, 0xf1, - 0xf9, 0xe0, 0x8b, 0x5f, 0x66, 0x48, 0x33, 0xe8, 0x7e, 0xaf, 0xa8, 0x3d, 0x72, 0x4f, 0x4b, 0xed, - 0x61, 0xfc, 0x6f, 0x59, 0xb8, 0x70, 0x97, 0x06, 0x6a, 0x9b, 0x42, 0xf3, 0x82, 0x4f, 0x0f, 0xd6, - 0x2e, 0xa5, 0x25, 0xf3, 0x30, 0x8a, 0x45, 0x72, 0x7c, 0x4d, 0xf9, 0x93, 0x2c, 0x85, 0xf3, 0x3a, - 0xa7, 0xe5, 0x08, 0xeb, 0x51, 0xf7, 0x75, 0x25, 0x6b, 0x50, 0x38, 0xad, 0xaf, 0xc0, 0x14, 0x86, - 0xc5, 0xef, 0xb2, 0xe5, 0x40, 0x1b, 0x42, 0xfd, 0x93, 0x37, 0x63, 0x50, 0xf2, 0x3a, 0x14, 0x18, - 0xa4, 0x54, 0x3f, 0x68, 0xbb, 0x87, 0x4d, 0xda, 0xd8, 0xa3, 0x0d, 0x3c, 0xd6, 0xf3, 0x66, 0x02, - 0x2e, 0x79, 0x6e, 0xb5, 0xf9, 0xd5, 0x8d, 0x36, 0x50, 0x47, 0x23, 0x78, 0x46, 0xd0, 0x85, 0xb7, - 0x61, 0xfc, 0x63, 0x66, 0x00, 0x33, 0xfe, 0xd7, 0x0c, 0xcc, 0x61, 0xe3, 0x94, 0x8a, 0x65, 0x76, - 0x56, 0xd9, 0x5b, 0x4a, 0x52, 0x1c, 0x9b, 0x81, 0xf4, 0xa5, 0x10, 0xf6, 0x62, 0xa4, 0x13, 0xca, - 0x0e, 0xa0, 0x13, 0xaa, 0x9d, 0x25, 0x13, 0xfd, 0x80, 0x2a, 0xad, 0x7b, 0x43, 0xf9, 0x5c, 0x61, - 0x28, 0x1a, 0x72, 0xe3, 0x07, 0xb2, 0x30, 0x6a, 0x52, 0x4c, 0xd1, 0x4d, 0xae, 0xc0, 0xe8, 0xba, - 0x1b, 0x50, 0x7f, 0x4d, 0xcb, 0xc7, 0xde, 0x66, 0x20, 0xab, 0xd5, 0x30, 0x65, 0x21, 0x9b, 0xf0, - 0x1b, 0x9e, 0xdb, 0xe8, 0xd6, 0x03, 0x75, 0xc2, 0x77, 0x38, 0xc8, 0x94, 0x65, 0xe4, 0x0d, 0x18, - 0x13, 0x9c, 0xc3, 0x47, 0x5d, 0x34, 0x46, 0xf6, 0x68, 0x98, 0xe2, 0x3d, 0x42, 0x40, 0x99, 0x96, - 0x0b, 0x18, 0x43, 0x8a, 0x4c, 0x9b, 0x90, 0x19, 0xa4, 0xa8, 0x3e, 0xdc, 0x47, 0x54, 0xff, 0x34, - 0x8c, 0x94, 0x7c, 0x9f, 0x06, 0x32, 0x8a, 0xc1, 0x44, 0x18, 0xb6, 0xcd, 0xa7, 0x01, 0x67, 0x6c, - 0x63, 0xb9, 0x29, 0xf0, 0x8c, 0x7f, 0x9e, 0x85, 0x61, 0xfc, 0x13, 0x9f, 0x4c, 0xbd, 0xfa, 0xbe, - 0xf6, 0x64, 0xea, 0xd5, 0xf7, 0x4d, 0x84, 0x92, 0x9b, 0xa8, 0xa9, 0x90, 0xf9, 0x9b, 0x44, 0xeb, - 0x51, 0x05, 0xdf, 0x88, 0xc0, 0xa6, 0x8a, 0x13, 0xbe, 0xf0, 0xe7, 0x52, 0x63, 0x97, 0x9c, 0x87, - 0xec, 0x83, 0x9a, 0x68, 0x31, 0x46, 0xc4, 0x72, 0x7d, 0x33, 0xfb, 0xa0, 0x86, 0xbd, 0xb1, 0x52, - 0x5a, 0x7c, 0xeb, 0xb6, 0x68, 0x28, 0xef, 0x8d, 0x7d, 0x7b, 0xf1, 0xad, 0xdb, 0xa6, 0x28, 0x61, - 0xfd, 0x8b, 0xdf, 0x8c, 0x0f, 0xaf, 0xdc, 0xe7, 0x1e, 0xfb, 0x17, 0xdb, 0x86, 0x8f, 0xac, 0x66, - 0x84, 0x40, 0x16, 0x61, 0x5c, 0xc4, 0x7a, 0x40, 0x7c, 0x25, 0x16, 0x83, 0x88, 0x05, 0xc1, 0x29, - 0x54, 0x24, 0xfe, 0x04, 0x27, 0x06, 0x48, 0x66, 0x99, 0x15, 0x4f, 0x70, 0x72, 0x08, 0x7d, 0x53, - 0x41, 0x61, 0x9f, 0xc4, 0xdf, 0xf0, 0x22, 0x5f, 0xfa, 0x29, 0x25, 0x68, 0x00, 0xa6, 0x39, 0x08, - 0x11, 0x8c, 0x5f, 0xca, 0x42, 0x7e, 0xa3, 0xd9, 0xdd, 0x73, 0xda, 0x0f, 0x6f, 0x12, 0x02, 0x78, - 0x8d, 0x93, 0x79, 0x30, 0xd8, 0xdf, 0xe4, 0x22, 0xe4, 0xe5, 0xcd, 0x4d, 0x6e, 0x48, 0xbe, 0xb8, - 0xb5, 0xcd, 0x83, 0x1c, 0x77, 0x11, 0xfa, 0x4c, 0xfe, 0x24, 0x37, 0x21, 0xbc, 0x7f, 0xf5, 0xba, - 0xa8, 0x0d, 0xb1, 0xc5, 0x62, 0x86, 0x68, 0xe4, 0x4d, 0xc0, 0x43, 0x42, 0x5c, 0x1e, 0xa4, 0x42, - 0x9b, 0x7f, 0x9a, 0x90, 0x53, 0x38, 0x09, 0xa2, 0x91, 0x5b, 0x20, 0x26, 0xa6, 0xc8, 0x66, 0x7e, - 0x4e, 0x27, 0xe0, 0xf9, 0x21, 0x25, 0x89, 0x40, 0x25, 0xef, 0xc2, 0x78, 0xdd, 0xa3, 0xf8, 0xea, - 0x68, 0x37, 0xa3, 0x24, 0xe5, 0x2a, 0x65, 0x39, 0x2a, 0x7f, 0x78, 0xd3, 0x54, 0xd1, 0x8d, 0x5f, - 0xca, 0xc3, 0x84, 0xfa, 0x3d, 0xc4, 0x84, 0x59, 0xbf, 0xc9, 0xee, 0xee, 0xc2, 0xd8, 0xac, 0x83, - 0x85, 0xe2, 0x38, 0xbd, 0xac, 0x7f, 0x10, 0xc3, 0xe3, 0x96, 0x67, 0x32, 0x48, 0xc5, 0xca, 0x73, - 0xe6, 0x8c, 0x1f, 0x81, 0x39, 0x1e, 0x29, 0x41, 0xde, 0xed, 0xf8, 0x7b, 0xb4, 0xed, 0xc8, 0xf7, - 0x96, 0x97, 0x35, 0x46, 0x0f, 0x44, 0x61, 0x82, 0x57, 0x48, 0x46, 0xde, 0x82, 0x11, 0xb7, 0x43, - 0xdb, 0xb6, 0x23, 0xce, 0xb8, 0xe7, 0x63, 0x0c, 0x68, 0xbb, 0x54, 0x55, 0x08, 0x05, 0x32, 0xb9, - 0x01, 0x43, 0xee, 0x41, 0x38, 0x5e, 0x17, 0x75, 0xa2, 0x83, 0xc0, 0x56, 0x48, 0x10, 0x91, 0x11, - 0x7c, 0x64, 0xb7, 0x76, 0xc5, 0x88, 0xe9, 0x04, 0xf7, 0xec, 0xd6, 0xae, 0x4a, 0xc0, 0x10, 0xc9, - 0x07, 0x00, 0x1d, 0x7b, 0x8f, 0x7a, 0x56, 0xa3, 0x1b, 0x1c, 0x89, 0x71, 0xbb, 0xa4, 0x91, 0x6d, - 0xb0, 0xe2, 0x4a, 0x37, 0x38, 0x52, 0x68, 0xc7, 0x3a, 0x12, 0x48, 0x4a, 0x00, 0x2d, 0x3b, 0x08, - 0xa8, 0xd7, 0x72, 0x85, 0xb5, 0x5f, 0x14, 0x84, 0x90, 0x33, 0x58, 0x0b, 0x8b, 0x15, 0x0e, 0x0a, - 0x11, 0x7e, 0xb4, 0xe3, 0xd9, 0x22, 0xa7, 0x7c, 0xec, 0xa3, 0x1d, 0x4f, 0x6b, 0x25, 0x43, 0x24, - 0x9f, 0x83, 0xd1, 0x86, 0xe3, 0xd7, 0x5d, 0xaf, 0x21, 0xa2, 0x97, 0xbc, 0xa0, 0xd1, 0x54, 0x78, - 0x99, 0x42, 0x26, 0xd1, 0xd9, 0xd7, 0x8a, 0x20, 0xa4, 0xeb, 0xee, 0x21, 0xaa, 0xf9, 0xe3, 0x5f, - 0x5b, 0x0b, 0x8b, 0xd5, 0xaf, 0x8d, 0x88, 0xd8, 0x50, 0xee, 0x39, 0x41, 0xd3, 0xde, 0x11, 0xef, - 0xdc, 0xfa, 0x50, 0xde, 0xc5, 0x22, 0x75, 0x28, 0x39, 0x32, 0x79, 0x1b, 0xf2, 0xb4, 0x1d, 0x78, - 0xb6, 0xe5, 0x34, 0x84, 0x97, 0xa4, 0xfe, 0xd1, 0xec, 0x00, 0xb6, 0xab, 0x15, 0xf5, 0xa3, 0x11, - 0xbf, 0xda, 0x60, 0xfd, 0xe3, 0xd7, 0x9d, 0x96, 0x70, 0x6e, 0xd4, 0xfb, 0xa7, 0x56, 0xae, 0xae, - 0xa9, 0xfd, 0xc3, 0x10, 0xc9, 0xfb, 0x30, 0xca, 0xd6, 0x6f, 0xc3, 0xdd, 0x13, 0x01, 0x21, 0x0c, - 0xbd, 0x7f, 0x78, 0x59, 0x62, 0xba, 0x4a, 0x22, 0xb6, 0x90, 0xed, 0x43, 0xdf, 0x72, 0xea, 0x22, - 0xc8, 0x83, 0xbe, 0x1c, 0x4b, 0xdb, 0xb5, 0x6a, 0x59, 0x21, 0x1b, 0xb6, 0x0f, 0xfd, 0x6a, 0x9d, - 0x2c, 0xc2, 0x30, 0xa6, 0x88, 0x10, 0x81, 0x28, 0x75, 0x1a, 0x4c, 0x0e, 0xa1, 0xd2, 0x20, 0x2a, - 0x1b, 0xc8, 0x96, 0x8f, 0xfe, 0x22, 0x22, 0x51, 0x83, 0xde, 0x27, 0x6b, 0x35, 0x74, 0x22, 0x51, - 0x3f, 0x51, 0xa0, 0x93, 0x4b, 0x00, 0xd1, 0x2b, 0x3e, 0x7f, 0x73, 0x31, 0x15, 0xc8, 0xe7, 0x87, - 0xfe, 0xcf, 0x5f, 0x28, 0x66, 0x96, 0x00, 0xf2, 0x32, 0x42, 0x8d, 0xb1, 0x0a, 0x17, 0x7b, 0xae, - 0x7b, 0x72, 0x0d, 0x0a, 0xbb, 0xb6, 0xd0, 0xfa, 0xd5, 0xf7, 0xed, 0x76, 0x9b, 0x36, 0xc5, 0x8e, - 0x3b, 0x2d, 0xe1, 0x65, 0x0e, 0xe6, 0x9c, 0x8d, 0x0f, 0x60, 0x2e, 0x6d, 0xc0, 0xc9, 0x4b, 0x30, - 0xa1, 0x06, 0xe3, 0x11, 0x4c, 0xc6, 0xed, 0x8e, 0x23, 0xc3, 0xf1, 0x08, 0x06, 0xbf, 0x99, 0x81, - 0x17, 0xfa, 0x6d, 0x1f, 0x64, 0x01, 0xf2, 0x1d, 0xcf, 0x71, 0x51, 0x4c, 0x15, 0xd9, 0x0e, 0xe4, - 0x6f, 0x4c, 0x64, 0x80, 0xf2, 0x54, 0x60, 0xef, 0x09, 0x07, 0x0f, 0x73, 0x0c, 0x21, 0x9b, 0xf6, - 0x9e, 0x4f, 0x3e, 0x05, 0x33, 0x0d, 0xba, 0x6b, 0x77, 0x9b, 0x81, 0xe5, 0xd7, 0xf7, 0x69, 0x03, - 0x7d, 0xaa, 0xd0, 0x70, 0xcf, 0x2c, 0x88, 0x82, 0x9a, 0x84, 0x27, 0xbe, 0x78, 0xb8, 0xc7, 0x17, - 0xdf, 0x1b, 0xca, 0x67, 0x0a, 0x59, 0x13, 0x2d, 0xa5, 0x8c, 0xef, 0xcb, 0xc2, 0x7c, 0xaf, 0xf5, - 0x42, 0xde, 0x4b, 0xeb, 0x03, 0xfe, 0x70, 0xa1, 0xc2, 0xd5, 0x87, 0x0b, 0xa5, 0x36, 0xb2, 0x08, - 0xa1, 0x47, 0xd4, 0x69, 0xd1, 0x0d, 0x24, 0x8c, 0xd1, 0x74, 0x6c, 0xdf, 0x3f, 0x64, 0x5b, 0x42, - 0x4e, 0x09, 0x68, 0x2b, 0x60, 0x2a, 0x8d, 0x84, 0x91, 0xcf, 0x02, 0xd4, 0x9b, 0xae, 0x4f, 0xd1, - 0x3e, 0x40, 0xc8, 0x1a, 0xdc, 0x2c, 0x3c, 0x84, 0xaa, 0x0f, 0xc2, 0x08, 0x2d, 0xbb, 0x0d, 0x2a, - 0x06, 0xd0, 0x86, 0x0b, 0x3d, 0x36, 0x48, 0x36, 0x3c, 0x51, 0x76, 0x78, 0x99, 0x6b, 0xaa, 0x1b, - 0xe6, 0x88, 0x8f, 0xf7, 0x78, 0xb6, 0xd7, 0x1c, 0x39, 0x02, 0x92, 0xdc, 0x05, 0x19, 0x77, 0x61, - 0xdc, 0xdc, 0xf5, 0x42, 0xee, 0x1c, 0xb2, 0xe5, 0x35, 0x49, 0x11, 0xc6, 0x65, 0x2e, 0x49, 0x26, - 0xcb, 0x73, 0xe6, 0x20, 0x40, 0xf7, 0x29, 0x4e, 0x1e, 0x8c, 0x58, 0x8a, 0x7e, 0x6f, 0x42, 0x4a, - 0xf8, 0xff, 0xd8, 0xfb, 0x96, 0xd8, 0x46, 0x92, 0xf3, 0xe0, 0x69, 0x92, 0x92, 0xa8, 0x8f, 0x7a, - 0xb4, 0x6a, 0x5e, 0xda, 0xd1, 0x3c, 0x76, 0x7a, 0x67, 0xc6, 0x33, 0x5c, 0xef, 0xda, 0x33, 0xfb, - 0xaf, 0x77, 0xd7, 0xfe, 0xfd, 0x68, 0x91, 0x2d, 0x89, 0x33, 0x7c, 0xb9, 0x9b, 0x94, 0x3c, 0x1e, - 0xdb, 0xed, 0x5e, 0xb2, 0x25, 0xb5, 0x4d, 0xb1, 0x69, 0x36, 0xb9, 0xe3, 0x31, 0x02, 0x24, 0x46, - 0x00, 0x1b, 0xc8, 0xcb, 0x89, 0x93, 0x20, 0x8b, 0x5c, 0x7c, 0x88, 0x11, 0xe4, 0x90, 0x6b, 0x90, - 0x20, 0xc9, 0xc5, 0x37, 0x03, 0x86, 0x01, 0x03, 0xc9, 0x29, 0x09, 0x16, 0xc9, 0x02, 0x09, 0x90, - 0xc7, 0x2d, 0x88, 0x0f, 0x3e, 0x05, 0xf5, 0x55, 0x55, 0x77, 0xf5, 0x83, 0x1c, 0x8d, 0x77, 0x9d, - 0xc4, 0x80, 0x4f, 0x12, 0xbf, 0xfa, 0xea, 0xeb, 0x7a, 0xd7, 0xf7, 0x7d, 0xf5, 0x3d, 0x96, 0x11, - 0xd2, 0x79, 0x32, 0x12, 0xbd, 0xbb, 0x2c, 0xd6, 0x77, 0xfc, 0x6e, 0xe2, 0xa5, 0xbf, 0xaf, 0x88, - 0xe9, 0x4f, 0x1f, 0xee, 0x4f, 0x6b, 0x1f, 0x01, 0xf4, 0x52, 0xe2, 0x0d, 0xc3, 0xff, 0x29, 0xd7, - 0x22, 0x76, 0x1d, 0xe7, 0x5a, 0xf8, 0x4f, 0x72, 0x0b, 0xd6, 0xc7, 0xcc, 0x8e, 0x75, 0xe2, 0xf3, - 0xf1, 0x64, 0x79, 0x3b, 0x56, 0x19, 0xb8, 0xe3, 0xe3, 0x98, 0xf2, 0x76, 0xdd, 0x0f, 0x07, 0x4c, - 0xba, 0xeb, 0xc8, 0xcb, 0xb0, 0x4c, 0xef, 0x3a, 0x8c, 0x74, 0x93, 0x70, 0x8f, 0x40, 0x3c, 0xe4, - 0x1c, 0xcc, 0xe2, 0x97, 0xf8, 0xff, 0x9c, 0xd6, 0xdb, 0x39, 0x41, 0x4c, 0xbe, 0x69, 0xc9, 0x45, - 0x58, 0xf2, 0xc7, 0x47, 0x52, 0xd7, 0x16, 0xfd, 0xf1, 0x11, 0xed, 0xd7, 0x6d, 0x50, 0x99, 0xb7, - 0x0e, 0x0b, 0x83, 0x10, 0x3c, 0x19, 0x32, 0x51, 0xbc, 0x68, 0xae, 0x31, 0x38, 0x26, 0xcc, 0x7f, - 0x32, 0xec, 0x51, 0xcc, 0x20, 0xf0, 0x6d, 0x39, 0xc0, 0x15, 0xef, 0xf6, 0x5a, 0x10, 0xf8, 0x51, - 0xa4, 0xab, 0x3e, 0xd9, 0x86, 0x55, 0x4a, 0x27, 0x0c, 0xb3, 0xc5, 0x19, 0x81, 0x2b, 0x69, 0x46, - 0xe0, 0xc9, 0xb0, 0x27, 0x9a, 0x68, 0xae, 0x04, 0xd2, 0x2f, 0xf2, 0x00, 0x54, 0x89, 0x63, 0x42, - 0x7f, 0xcc, 0x84, 0x4d, 0x75, 0x44, 0x46, 0xe2, 0xb4, 0x6a, 0xc3, 0x43, 0xdf, 0x5c, 0xef, 0xc5, - 0x01, 0x7c, 0x68, 0xbe, 0xa3, 0x88, 0xb3, 0x34, 0xa3, 0x12, 0xd1, 0x60, 0xf5, 0xd8, 0x09, 0xec, - 0x20, 0x38, 0x61, 0x36, 0x62, 0x3c, 0xb0, 0x6f, 0xe9, 0xd8, 0x09, 0xac, 0xe0, 0x44, 0x24, 0x0e, - 0x39, 0x4f, 0x71, 0x7c, 0x67, 0x3a, 0x39, 0xb6, 0x65, 0xfe, 0x8f, 0x8d, 0xd8, 0xd9, 0x63, 0x27, - 0x68, 0xd1, 0x32, 0x89, 0x36, 0xb9, 0x01, 0x6b, 0x48, 0xb7, 0xe7, 0x09, 0xc2, 0x18, 0xca, 0xc2, - 0x5c, 0xa1, 0x84, 0x7b, 0x1e, 0xa3, 0xcc, 0x5b, 0xf8, 0xaf, 0x39, 0xb8, 0x90, 0x3d, 0x3a, 0xb8, - 0x3c, 0xe9, 0x98, 0xa2, 0x8f, 0x1e, 0x6f, 0xdb, 0x32, 0x85, 0xb0, 0x30, 0x24, 0x59, 0x93, 0x93, - 0xcb, 0x9c, 0x9c, 0x32, 0x6c, 0x20, 0x21, 0xce, 0x69, 0x0e, 0xbc, 0x60, 0xc2, 0xa3, 0x6b, 0x98, - 0xeb, 0xb4, 0x80, 0x9d, 0xe7, 0x75, 0x0a, 0x26, 0x37, 0x61, 0x4d, 0x9c, 0xc8, 0xfe, 0xe3, 0x21, - 0xfd, 0x30, 0x3b, 0x8e, 0x57, 0x39, 0xb4, 0x85, 0x40, 0x72, 0x1e, 0x16, 0x9d, 0xd1, 0x88, 0x7e, - 0x92, 0x9d, 0xc2, 0x0b, 0xce, 0x68, 0xc4, 0x92, 0xdb, 0xa0, 0x47, 0xa2, 0x7d, 0x88, 0x56, 0x42, - 0xdc, 0x24, 0xd1, 0x5c, 0x41, 0x20, 0xb3, 0x1c, 0x0a, 0xe8, 0xbe, 0xa7, 0x75, 0x05, 0xca, 0x12, - 0xa2, 0x80, 0x33, 0x0a, 0x11, 0x9e, 0x83, 0xa2, 0x78, 0xaf, 0x66, 0x8e, 0x15, 0xe6, 0x92, 0xc3, - 0xdf, 0xaa, 0x5f, 0x85, 0x8b, 0x7d, 0x2f, 0xc0, 0xc5, 0xcb, 0xba, 0x34, 0x1a, 0x71, 0x1f, 0x48, - 0x16, 0x24, 0xd7, 0x3c, 0xc7, 0x8b, 0xe9, 0x48, 0xea, 0xa3, 0x11, 0xf3, 0x84, 0xe4, 0x63, 0xfd, - 0x3a, 0xac, 0x73, 0x8e, 0x8b, 0x5f, 0x91, 0xd8, 0x16, 0xbe, 0x81, 0xa9, 0x28, 0xc4, 0xd3, 0x09, - 0x01, 0x07, 0xd5, 0xfa, 0xa2, 0xe6, 0x3f, 0x28, 0x70, 0x3e, 0x93, 0x65, 0x23, 0x5f, 0x04, 0xe6, - 0xf2, 0x35, 0xf1, 0xed, 0xb1, 0xdb, 0xf3, 0x46, 0x1e, 0x06, 0xc5, 0x60, 0x2a, 0xcd, 0x7b, 0xf3, - 0x98, 0x3d, 0x74, 0x1f, 0xeb, 0xf8, 0x66, 0x58, 0x89, 0xe9, 0x5a, 0xd4, 0x71, 0x02, 0x7c, 0xe9, - 0x11, 0x9c, 0xcf, 0x44, 0xcd, 0xd0, 0x81, 0x7c, 0x30, 0x9e, 0xcc, 0x59, 0x3c, 0x52, 0x25, 0x3a, - 0x2d, 0xe9, 0x46, 0x78, 0xf7, 0xbe, 0x17, 0x76, 0x2f, 0xc1, 0xdc, 0x11, 0x23, 0xb9, 0xaf, 0xb3, - 0xe4, 0x13, 0x51, 0x69, 0xf6, 0xd6, 0x7e, 0x04, 0xe7, 0xf9, 0xe2, 0x3b, 0x1a, 0x3b, 0xa3, 0xe3, - 0x88, 0x1c, 0x6b, 0xe8, 0x07, 0xb2, 0xc8, 0xb1, 0x55, 0xb9, 0x4b, 0xf1, 0x43, 0xaa, 0x67, 0x9d, - 0x34, 0x90, 0xf7, 0xe1, 0xeb, 0x39, 0xb1, 0xd5, 0x33, 0x9a, 0x93, 0xb1, 0xac, 0x95, 0xac, 0x65, - 0x7d, 0xfa, 0x3d, 0xd5, 0x04, 0x22, 0x1f, 0x56, 0x4c, 0xeb, 0xc9, 0x0d, 0xaa, 0x04, 0x9f, 0xce, - 0x1b, 0x22, 0x1d, 0x0d, 0x16, 0x4b, 0xa6, 0xb9, 0xd1, 0x4b, 0x82, 0xc8, 0x16, 0x2c, 0x87, 0xf9, - 0xaa, 0xf9, 0xc5, 0x51, 0x64, 0x80, 0x5a, 0x9f, 0x3c, 0x0f, 0x2b, 0x8c, 0x25, 0x8f, 0xed, 0x39, - 0x40, 0x98, 0x4e, 0x37, 0x9e, 0x18, 0x03, 0x05, 0x9e, 0x7f, 0xda, 0x18, 0x92, 0x03, 0xb8, 0x80, - 0x66, 0x1d, 0x81, 0x1f, 0x4e, 0x83, 0xdd, 0x73, 0x7a, 0xc7, 0x2e, 0x5f, 0xb5, 0x5a, 0xe6, 0x64, - 0x8c, 0x46, 0x96, 0xd5, 0x92, 0xe6, 0x61, 0x34, 0xb2, 0x02, 0x5f, 0xfc, 0xae, 0xd0, 0xea, 0xbc, - 0x0d, 0x7d, 0xd8, 0x9a, 0x53, 0x53, 0x3a, 0x38, 0x14, 0xf9, 0xe0, 0xb8, 0x0d, 0xea, 0xa1, 0xdb, - 0xa7, 0x3c, 0xb1, 0xdb, 0xc7, 0xa6, 0xbd, 0x75, 0x8f, 0x65, 0x68, 0x37, 0xd7, 0x42, 0xb8, 0x15, - 0xf8, 0xfb, 0xf7, 0xf8, 0x57, 0x4e, 0xc4, 0x95, 0x27, 0x8b, 0x15, 0xe4, 0x65, 0x38, 0x9b, 0x08, - 0x38, 0x12, 0x79, 0xb0, 0x9b, 0x1b, 0xb4, 0x28, 0x1e, 0x9e, 0xea, 0x3a, 0xac, 0x88, 0x55, 0x31, - 0x0e, 0xfd, 0xe0, 0xcc, 0x12, 0x87, 0xd1, 0x5d, 0xc7, 0x3f, 0x37, 0x15, 0x9d, 0xca, 0x94, 0x48, - 0x4e, 0xc1, 0x4b, 0x93, 0x97, 0x80, 0x84, 0x7c, 0x7b, 0x78, 0x50, 0xf0, 0x0f, 0x6e, 0x88, 0x92, - 0x70, 0x87, 0xf3, 0xcf, 0xfe, 0x75, 0x0e, 0xce, 0x66, 0x88, 0x32, 0x54, 0x08, 0xf0, 0x86, 0x13, - 0xf7, 0x88, 0x89, 0x10, 0x72, 0x27, 0xd7, 0x25, 0x38, 0xd7, 0x4f, 0x2d, 0xb2, 0x0c, 0xe4, 0xfc, - 0x5b, 0xfc, 0x17, 0x3d, 0x3c, 0x9c, 0xb1, 0x50, 0xbd, 0xd0, 0x7f, 0x49, 0x0d, 0x36, 0x30, 0xad, - 0x42, 0xe0, 0xf9, 0x98, 0x9d, 0x01, 0x99, 0x90, 0x42, 0x4c, 0xd8, 0xc1, 0x56, 0xb4, 0x25, 0x24, - 0xca, 0x85, 0x98, 0xea, 0x28, 0x01, 0x21, 0x1f, 0x83, 0x4b, 0xd2, 0x5d, 0x63, 0x27, 0x76, 0x1e, - 0x5a, 0xba, 0x9b, 0x17, 0x9d, 0xf0, 0xd6, 0xa9, 0xc6, 0xf6, 0xe0, 0x36, 0x5c, 0xc5, 0x49, 0xf4, - 0xfa, 0x23, 0x3b, 0x95, 0x87, 0x03, 0xbb, 0xca, 0x02, 0xd7, 0x5f, 0xa2, 0x58, 0xb5, 0xfe, 0x28, - 0x91, 0x92, 0x83, 0xf6, 0x9a, 0x0f, 0xdf, 0x23, 0x38, 0x9f, 0xd9, 0x62, 0x7a, 0xc1, 0xa0, 0x21, - 0x55, 0xc4, 0x1b, 0x2d, 0xd1, 0xdf, 0x94, 0x39, 0xba, 0x0e, 0x2b, 0x6f, 0xba, 0xce, 0xd8, 0x1d, - 0xf3, 0x9b, 0x9b, 0x2f, 0x09, 0x06, 0x93, 0x2f, 0xee, 0x7e, 0x7c, 0x6a, 0xb8, 0xce, 0x88, 0x34, - 0xe0, 0x2c, 0xbb, 0x01, 0xbd, 0x13, 0x64, 0x06, 0xb9, 0x9e, 0x49, 0x89, 0xb1, 0x43, 0x58, 0x05, - 0xaf, 0xa6, 0x1a, 0x62, 0xb1, 0xda, 0xe6, 0xc6, 0x51, 0x12, 0x44, 0x77, 0xf4, 0x85, 0x6c, 0x6c, - 0xb2, 0x0d, 0x25, 0x46, 0x9c, 0x89, 0x05, 0xec, 0x81, 0xe0, 0xfa, 0xdc, 0x2f, 0x54, 0xd0, 0xbe, - 0x38, 0x08, 0xff, 0xa7, 0xf7, 0x35, 0xbe, 0xc5, 0xda, 0x27, 0xf2, 0xfb, 0x87, 0xb9, 0x82, 0x40, - 0xfe, 0xee, 0xa1, 0xfd, 0x8d, 0x22, 0xba, 0x1a, 0x13, 0x8e, 0xe9, 0xd2, 0x0a, 0xdc, 0xa1, 0x78, - 0x03, 0x5a, 0x36, 0xf9, 0xaf, 0x67, 0x5c, 0xea, 0xe4, 0x35, 0x58, 0xa1, 0x64, 0x8f, 0xa6, 0x43, - 0xb6, 0xe4, 0xf2, 0xb1, 0x40, 0x3b, 0x0d, 0x56, 0x44, 0xa7, 0x6d, 0xef, 0x8c, 0x59, 0x3a, 0x89, - 0x7e, 0x52, 0x6e, 0x39, 0x38, 0x99, 0x8c, 0xe4, 0x85, 0x2a, 0x14, 0x85, 0x56, 0xa3, 0xd3, 0xe6, - 0x55, 0x8a, 0x14, 0x27, 0xe2, 0x96, 0xb7, 0x17, 0x99, 0xaa, 0x50, 0x7b, 0x11, 0x4a, 0x12, 0x6d, - 0xda, 0x19, 0xe6, 0x39, 0x23, 0x3a, 0xc3, 0x7e, 0xf1, 0xc9, 0x7e, 0x13, 0x8a, 0x82, 0x24, 0x15, - 0x0b, 0x8e, 0xfd, 0x40, 0x6c, 0x72, 0xfc, 0x9f, 0xc2, 0xe8, 0x28, 0x63, 0x27, 0x17, 0x4c, 0xfc, - 0x1f, 0xef, 0x92, 0x89, 0x43, 0xe5, 0x81, 0x41, 0x60, 0x8f, 0xd0, 0x02, 0x2b, 0x64, 0x9e, 0x29, - 0xbc, 0x33, 0x08, 0x98, 0x5d, 0x16, 0xff, 0xc6, 0x5f, 0x84, 0x97, 0x70, 0x42, 0x9b, 0x30, 0xeb, - 0xcc, 0x8c, 0x5d, 0x19, 0xb9, 0xf4, 0x95, 0xc1, 0x02, 0xa8, 0xf0, 0x9a, 0xec, 0xcb, 0x80, 0x30, - 0xbc, 0x32, 0xa4, 0x93, 0xa1, 0x10, 0x3b, 0x19, 0x24, 0x99, 0x3c, 0x9a, 0x3d, 0x76, 0xe3, 0x08, - 0x99, 0x3c, 0x79, 0x4e, 0xfd, 0x71, 0x4e, 0xa8, 0x08, 0xb6, 0x7d, 0x7f, 0x12, 0x4c, 0xc6, 0xce, - 0x28, 0xa6, 0x0a, 0x25, 0x27, 0xf0, 0x1c, 0x72, 0xd0, 0xf7, 0x30, 0x85, 0x85, 0x3f, 0x16, 0x31, - 0x3b, 0xc2, 0x95, 0x5b, 0xba, 0xf7, 0xa1, 0x38, 0x8f, 0xaf, 0x53, 0x6c, 0x5d, 0x46, 0xa6, 0x0b, - 0x56, 0xa2, 0xba, 0x77, 0xc6, 0xbc, 0xc8, 0x68, 0xa6, 0xb0, 0xc8, 0x5e, 0xc6, 0x26, 0x4e, 0xea, - 0x42, 0xb7, 0xa3, 0x1d, 0x1d, 0xa7, 0x2a, 0xef, 0x75, 0xf2, 0x09, 0x58, 0xf6, 0xfa, 0x72, 0xa6, - 0xc6, 0xa4, 0x16, 0xae, 0xd6, 0x67, 0xd1, 0xa2, 0x23, 0x1a, 0x74, 0xcd, 0x79, 0x1c, 0xba, 0xbd, - 0x1a, 0x53, 0x1a, 0x6b, 0xdb, 0x42, 0x1a, 0x4d, 0x57, 0x23, 0x6b, 0x90, 0x0b, 0x67, 0x38, 0xe7, - 0xf5, 0xd9, 0xf6, 0x8a, 0xe2, 0x55, 0x9b, 0xfc, 0x97, 0xf6, 0x4b, 0x70, 0xfb, 0xb4, 0x63, 0x44, - 0xb7, 0xe2, 0x8c, 0x01, 0x5f, 0x36, 0x37, 0x9c, 0xd4, 0xb8, 0x5d, 0x07, 0x39, 0xdc, 0xae, 0x27, - 0x0e, 0x3f, 0x01, 0xeb, 0x8e, 0x3d, 0xed, 0xcf, 0xf3, 0xb0, 0x16, 0x57, 0x93, 0x93, 0x17, 0xa1, - 0x20, 0x9d, 0x40, 0x17, 0x33, 0x74, 0xe9, 0x78, 0xee, 0x20, 0xd2, 0xa9, 0x4e, 0x1c, 0x72, 0x1f, - 0xd6, 0xd0, 0x70, 0x0f, 0x59, 0xcf, 0x89, 0xc7, 0x1f, 0x5f, 0xe6, 0xbf, 0x9f, 0x15, 0xbf, 0xff, - 0xce, 0xb5, 0x33, 0xf8, 0x54, 0xb6, 0x42, 0xeb, 0x52, 0xee, 0x8f, 0x16, 0x4a, 0x5a, 0xd0, 0xc2, - 0x6c, 0x2d, 0x28, 0xef, 0xca, 0x0c, 0x2d, 0xe8, 0xc2, 0x1c, 0x2d, 0x68, 0x54, 0x53, 0xd6, 0x82, - 0xa2, 0x2e, 0x7c, 0x69, 0x96, 0x2e, 0x3c, 0xaa, 0xc3, 0x74, 0xe1, 0x91, 0x16, 0xb3, 0x38, 0x53, - 0x8b, 0x19, 0xd5, 0xe1, 0x5a, 0xcc, 0x1b, 0x7c, 0x8c, 0xc6, 0xce, 0x63, 0x1b, 0x07, 0x8f, 0x5f, - 0x8b, 0xd8, 0x7b, 0xd3, 0x79, 0x8c, 0xc6, 0x35, 0xdb, 0xcb, 0x20, 0x2c, 0x72, 0xb4, 0xdf, 0x55, - 0x12, 0x9a, 0x40, 0x31, 0x7f, 0x37, 0x61, 0x8d, 0x5d, 0x56, 0x6e, 0x5f, 0x92, 0x35, 0x57, 0xcd, - 0x55, 0x01, 0x65, 0xf2, 0xe6, 0x07, 0x60, 0x3d, 0x44, 0xe3, 0x22, 0x17, 0x7a, 0xea, 0x99, 0x61, - 0x6d, 0x1e, 0x76, 0xe6, 0x45, 0xd8, 0x08, 0x11, 0xb9, 0x36, 0x87, 0x89, 0x9b, 0xab, 0xa6, 0x2a, - 0x0a, 0xda, 0x1c, 0xae, 0x1d, 0x25, 0x25, 0x8f, 0x9f, 0x51, 0xab, 0xb4, 0xef, 0xe5, 0x63, 0x5a, - 0x12, 0xf1, 0x19, 0x7a, 0x8b, 0x06, 0xbe, 0xcd, 0x07, 0x89, 0x9f, 0x45, 0xd7, 0x67, 0xcc, 0x19, - 0xb7, 0x69, 0xb2, 0xac, 0x96, 0x09, 0x41, 0xe0, 0x0b, 0x13, 0x27, 0x9b, 0x71, 0xd4, 0xec, 0xde, - 0xc7, 0x35, 0x2b, 0xc8, 0xb1, 0x83, 0xa7, 0x3c, 0x9f, 0x9c, 0x10, 0x53, 0xe9, 0x92, 0x45, 0xce, - 0x3a, 0xfc, 0x25, 0x3e, 0xd0, 0x05, 0x54, 0x2a, 0x06, 0x71, 0xe2, 0xf9, 0x0c, 0xd9, 0x29, 0x45, - 0x1c, 0x47, 0x09, 0x29, 0xab, 0x53, 0xf1, 0xaf, 0x20, 0x6b, 0xc0, 0x0a, 0xea, 0x28, 0x04, 0xc1, - 0x42, 0x86, 0x0a, 0x3e, 0xdd, 0xf9, 0x4a, 0xad, 0x61, 0x96, 0x68, 0x3d, 0x41, 0xe6, 0x18, 0x9e, - 0x93, 0x35, 0x0b, 0xf1, 0x46, 0x2e, 0x88, 0x28, 0xba, 0x73, 0x47, 0x20, 0x52, 0x40, 0x60, 0x53, - 0x2f, 0x38, 0x71, 0x00, 0x47, 0xd3, 0x8e, 0xe1, 0xd2, 0xec, 0x29, 0x99, 0x93, 0xa1, 0x29, 0xba, - 0x40, 0x73, 0xf2, 0x05, 0x2a, 0xeb, 0x19, 0xf2, 0x31, 0x3d, 0x83, 0xf6, 0x47, 0x79, 0x78, 0xe1, - 0x14, 0xd3, 0x35, 0xe7, 0x9b, 0x9f, 0x8a, 0xb3, 0x67, 0xb9, 0x98, 0x64, 0x48, 0x89, 0xf2, 0x03, - 0x92, 0x4a, 0xa9, 0xd9, 0xcc, 0xd9, 0x17, 0x61, 0x9d, 0x9d, 0x82, 0xcc, 0x2c, 0xf1, 0x70, 0x3a, - 0x38, 0xc5, 0x31, 0xb8, 0x25, 0x7c, 0xa8, 0x12, 0x55, 0xf1, 0x64, 0xc4, 0x13, 0xc3, 0x0a, 0x61, - 0xa4, 0x03, 0x25, 0x44, 0x3b, 0x74, 0xbc, 0xc1, 0xa9, 0x9c, 0x79, 0x84, 0x87, 0x96, 0x5c, 0x8d, - 0x59, 0x53, 0x53, 0xc0, 0x0e, 0xfe, 0x26, 0xb7, 0x60, 0x7d, 0x38, 0x3d, 0xa1, 0x8c, 0x07, 0x5b, - 0x0b, 0xdc, 0xfa, 0x63, 0xc1, 0x5c, 0x1d, 0x4e, 0x4f, 0xf4, 0xd1, 0x08, 0xa7, 0x14, 0xcd, 0x44, - 0x36, 0x28, 0x1e, 0xdb, 0xb5, 0x02, 0x73, 0x11, 0x31, 0x29, 0x01, 0xb6, 0x6f, 0x39, 0xee, 0x39, - 0x60, 0x46, 0x83, 0x3c, 0x43, 0x15, 0xfb, 0xa1, 0xfd, 0x38, 0x27, 0xe4, 0xdd, 0xd9, 0xeb, 0xfe, - 0x17, 0x53, 0x94, 0x31, 0x45, 0xb7, 0x41, 0xa5, 0x43, 0x1f, 0x1d, 0x2a, 0xe1, 0x1c, 0xad, 0x0d, - 0xa7, 0x27, 0xe1, 0xd8, 0xc9, 0x03, 0xbf, 0x28, 0x0f, 0xfc, 0x6b, 0x42, 0x1e, 0xce, 0x3c, 0x1e, - 0x66, 0x0f, 0xb9, 0xf6, 0x1f, 0x79, 0xb8, 0x75, 0xba, 0x43, 0xe0, 0x17, 0xf3, 0x96, 0x31, 0x6f, - 0x09, 0xd5, 0xe9, 0x42, 0x4a, 0x75, 0x9a, 0xb1, 0xf7, 0x16, 0xb3, 0xf6, 0x5e, 0x4a, 0x51, 0xbb, - 0x94, 0xa1, 0xa8, 0xcd, 0xdc, 0xa0, 0xc5, 0xa7, 0x6c, 0xd0, 0x65, 0x79, 0x9d, 0xfc, 0x4b, 0xa8, - 0xc0, 0x88, 0xcb, 0x03, 0x8f, 0xe0, 0xac, 0x90, 0x07, 0xd8, 0xcd, 0x11, 0xe9, 0xdf, 0x4b, 0xf7, - 0xee, 0x64, 0x49, 0x02, 0x88, 0x96, 0xc1, 0xad, 0x6f, 0x70, 0x19, 0x20, 0x2a, 0xff, 0xbf, 0xc3, - 0xfd, 0x93, 0x87, 0x70, 0x01, 0xe3, 0xbb, 0xf7, 0xe4, 0x97, 0x03, 0x7b, 0xec, 0x1e, 0xf2, 0xf5, - 0x70, 0x3d, 0xc5, 0x2b, 0x7b, 0x3d, 0xa9, 0x39, 0xa6, 0x7b, 0xb8, 0x77, 0xc6, 0x3c, 0x17, 0x64, - 0xc0, 0x93, 0x82, 0xc5, 0x9f, 0x2a, 0xa0, 0x3d, 0x7d, 0xbc, 0x50, 0x51, 0x95, 0x1c, 0xf0, 0x65, - 0xb3, 0xe4, 0x48, 0xa3, 0xf7, 0x02, 0xac, 0x8e, 0xdd, 0xc3, 0xb1, 0x1b, 0x1c, 0xc7, 0x34, 0x20, - 0x2b, 0x1c, 0x28, 0x06, 0x46, 0x44, 0x99, 0x7c, 0x26, 0xce, 0x5c, 0x54, 0xd2, 0x76, 0x42, 0x79, - 0x31, 0x73, 0x1e, 0xe8, 0x6a, 0x92, 0x1b, 0xc8, 0x7e, 0xdc, 0x2f, 0x14, 0x73, 0x6a, 0xde, 0xe4, - 0xb1, 0x30, 0x0f, 0xbd, 0x81, 0xab, 0xfd, 0xa5, 0x22, 0x38, 0x82, 0xac, 0xc1, 0x23, 0x8f, 0x24, - 0x63, 0xde, 0x7c, 0x8a, 0x0d, 0xc9, 0xaa, 0x22, 0xdb, 0x3d, 0xf2, 0xf0, 0x8c, 0x08, 0x88, 0x85, - 0x67, 0x44, 0xc8, 0x7b, 0xb0, 0x48, 0xe4, 0x52, 0xf3, 0x1b, 0xc2, 0x22, 0x88, 0x9e, 0x79, 0xfb, - 0x77, 0xc9, 0x1d, 0x58, 0x62, 0x46, 0x40, 0xa2, 0xb9, 0xeb, 0xb1, 0xe6, 0xee, 0xdf, 0x35, 0x45, - 0xb9, 0xf6, 0x76, 0xf8, 0xae, 0x95, 0xea, 0xc4, 0xfe, 0x5d, 0xf2, 0xda, 0xe9, 0x8c, 0x73, 0x8b, - 0xc2, 0x38, 0x37, 0x34, 0xcc, 0x7d, 0x3d, 0x66, 0x98, 0x7b, 0x63, 0xfe, 0x68, 0xf1, 0xd7, 0x48, - 0x16, 0x8e, 0x30, 0x0a, 0x53, 0xf5, 0x63, 0x05, 0xae, 0xcc, 0xad, 0x41, 0x2e, 0x43, 0x51, 0x6f, - 0xd7, 0x3a, 0xd1, 0xfc, 0xd2, 0x3d, 0x23, 0x20, 0x64, 0x17, 0x96, 0xb7, 0x9d, 0xc0, 0xeb, 0xd1, - 0x65, 0x9c, 0xf9, 0x3c, 0x90, 0x22, 0x1b, 0xa2, 0xef, 0x9d, 0x31, 0xa3, 0xba, 0xc4, 0x86, 0x0d, - 0xdc, 0x0b, 0xb1, 0xd4, 0x4f, 0xf9, 0x0c, 0x5d, 0x43, 0x8a, 0x60, 0xaa, 0x1a, 0x3d, 0x67, 0x52, - 0xc0, 0xe4, 0x16, 0x7c, 0x4b, 0xf0, 0x22, 0xb3, 0x1b, 0xf8, 0x0c, 0x71, 0x55, 0x6f, 0x43, 0xb1, - 0x2d, 0xec, 0x04, 0x24, 0x6b, 0x76, 0x61, 0x13, 0x60, 0x86, 0xa5, 0xda, 0x6f, 0x28, 0x42, 0x21, - 0xf0, 0xf4, 0x8e, 0x48, 0x59, 0xb3, 0xfa, 0xf3, 0xb3, 0x66, 0xf5, 0x7f, 0xca, 0xac, 0x59, 0xda, - 0x9f, 0xf0, 0xa8, 0xe7, 0xb5, 0x7e, 0x3b, 0xa1, 0x99, 0x7d, 0xaf, 0x5e, 0x09, 0x46, 0x6c, 0x75, - 0xbe, 0x20, 0x65, 0x5d, 0x4c, 0x7f, 0x6b, 0xb6, 0x73, 0x82, 0xb4, 0x54, 0xff, 0x20, 0x0f, 0x97, - 0xe7, 0x55, 0xcf, 0xcc, 0xeb, 0xac, 0x3c, 0x5b, 0x5e, 0xe7, 0x3b, 0x50, 0x64, 0xb0, 0xd0, 0xe4, - 0x1e, 0x07, 0x9c, 0x57, 0xa5, 0x03, 0x2e, 0x8a, 0xc9, 0x0b, 0xb0, 0xa8, 0x57, 0xac, 0x28, 0xd5, - 0x18, 0xda, 0xc6, 0x3a, 0xbd, 0x00, 0xad, 0x2e, 0x79, 0x11, 0xf9, 0x42, 0x3a, 0xbb, 0x1e, 0xcf, - 0x31, 0xb6, 0x25, 0x0d, 0x48, 0x2a, 0x21, 0x01, 0xb6, 0x37, 0x0a, 0xa0, 0xcf, 0x63, 0x52, 0x9b, - 0xe9, 0x4c, 0x7d, 0x1a, 0x2c, 0xb6, 0xc7, 0x6e, 0xe0, 0x4e, 0x64, 0xbb, 0xd5, 0x11, 0x42, 0x4c, - 0x5e, 0xc2, 0xad, 0x4a, 0x9d, 0x27, 0x2c, 0x88, 0xc0, 0xa2, 0x1c, 0xd8, 0x05, 0xcd, 0x50, 0x29, - 0xd8, 0x94, 0x50, 0x68, 0x85, 0xba, 0x33, 0x1d, 0xf6, 0x8e, 0xbb, 0x66, 0x9d, 0xb3, 0x1a, 0xac, - 0xc2, 0x00, 0xa1, 0xb4, 0x83, 0x81, 0x29, 0xa1, 0x68, 0xdf, 0x54, 0xe0, 0x5c, 0x56, 0x3f, 0xc8, - 0x65, 0x28, 0x0c, 0x33, 0x13, 0x09, 0x0e, 0x99, 0xef, 0x73, 0x89, 0xfe, 0xb5, 0x0f, 0xfd, 0xf1, - 0x89, 0x33, 0x91, 0xad, 0x7b, 0x25, 0xb0, 0x09, 0xf4, 0xc7, 0x0e, 0xfe, 0x4f, 0xae, 0x89, 0x33, - 0x3a, 0x9f, 0x4a, 0x3d, 0x88, 0x7f, 0x34, 0x1d, 0xa0, 0xd6, 0x6f, 0xb7, 0x46, 0x2c, 0x20, 0xfe, - 0x2b, 0x50, 0xa0, 0xcd, 0x4a, 0xac, 0x5e, 0xba, 0x7e, 0xf4, 0x46, 0x9d, 0x23, 0xb1, 0x56, 0x05, - 0xce, 0xc9, 0xc0, 0x44, 0x64, 0xed, 0x00, 0xd6, 0xe2, 0x18, 0xc4, 0x88, 0x87, 0x50, 0x2d, 0xdd, - 0x53, 0x39, 0xa5, 0x6d, 0xdf, 0x67, 0x1e, 0x26, 0xdb, 0xcf, 0xfd, 0xdd, 0x3b, 0xd7, 0x80, 0xfe, - 0x64, 0x75, 0xb2, 0x42, 0xac, 0x6a, 0xdf, 0xca, 0xc1, 0xb9, 0xc8, 0xa9, 0x5d, 0xec, 0xa1, 0x9f, - 0x5b, 0x0f, 0x4b, 0x3d, 0xe6, 0x01, 0x28, 0x18, 0xad, 0x74, 0x07, 0xe7, 0x38, 0x1e, 0xed, 0xc2, - 0xe6, 0x2c, 0x7c, 0xf2, 0x22, 0x2c, 0x63, 0x1c, 0xa4, 0x91, 0xd3, 0x73, 0xe5, 0xb3, 0x6f, 0x28, - 0x80, 0x66, 0x54, 0xae, 0xfd, 0x50, 0x81, 0x4b, 0xdc, 0x2f, 0xa2, 0xe1, 0x78, 0x43, 0x54, 0xab, - 0xf7, 0xdc, 0xf7, 0xc7, 0x43, 0x78, 0x37, 0x76, 0x8e, 0xdd, 0x8c, 0xbb, 0xbf, 0xa4, 0xbe, 0x36, - 0xbb, 0xb7, 0xe4, 0x0e, 0xc6, 0xf6, 0xe2, 0xcf, 0xce, 0x05, 0x16, 0x91, 0x61, 0x48, 0x01, 0x72, - 0x44, 0x06, 0xc4, 0xd0, 0x7e, 0x19, 0xae, 0xce, 0xff, 0x00, 0xf9, 0x3c, 0xac, 0x62, 0xb2, 0xa8, - 0xee, 0xe8, 0x68, 0xec, 0xf4, 0x5d, 0xa1, 0x0a, 0x13, 0xea, 0x4b, 0xb9, 0x8c, 0x85, 0x2a, 0xe3, - 0x11, 0x02, 0x8e, 0x30, 0x0d, 0x15, 0xaf, 0x14, 0x73, 0x3e, 0x92, 0xa9, 0x69, 0xbf, 0xa2, 0x00, - 0x49, 0xd3, 0x20, 0x1f, 0x81, 0x95, 0x6e, 0xa7, 0x62, 0x4d, 0x9c, 0xf1, 0x64, 0xcf, 0x9f, 0x8e, - 0x79, 0x9c, 0x30, 0xe6, 0x30, 0x3e, 0xe9, 0xd9, 0xec, 0x01, 0xe5, 0xd8, 0x9f, 0x8e, 0xcd, 0x18, - 0x1e, 0x66, 0x39, 0x72, 0xdd, 0x2f, 0xf7, 0x9d, 0x27, 0xf1, 0x2c, 0x47, 0x1c, 0x16, 0xcb, 0x72, - 0xc4, 0x61, 0xda, 0x77, 0x15, 0xd8, 0x12, 0xd6, 0x84, 0xfd, 0x8c, 0xb6, 0x54, 0x30, 0x2c, 0xca, - 0x58, 0x04, 0xa6, 0x9d, 0xc7, 0xd2, 0x6e, 0x88, 0xc8, 0x41, 0xd8, 0x40, 0xe4, 0x6d, 0x59, 0x5d, - 0xf2, 0x29, 0x28, 0x58, 0x13, 0x7f, 0x74, 0x8a, 0xd0, 0x41, 0x6a, 0x38, 0xa3, 0x13, 0x7f, 0x84, - 0x24, 0xb0, 0xa6, 0xe6, 0xc2, 0x39, 0xb9, 0x71, 0xa2, 0xc5, 0xa4, 0x01, 0x4b, 0x3c, 0x46, 0x5c, - 0xe2, 0xa1, 0x7e, 0x4e, 0x9f, 0xb6, 0xd7, 0x45, 0x7c, 0x22, 0x1e, 0x18, 0xd5, 0x14, 0x34, 0xb4, - 0xdf, 0x52, 0xa0, 0x44, 0xb9, 0x0d, 0x94, 0xe2, 0xde, 0xeb, 0x92, 0x8e, 0x33, 0x8e, 0xc2, 0xee, - 0x24, 0x24, 0x7f, 0xaa, 0xdb, 0xf8, 0x55, 0x58, 0x4f, 0x54, 0x20, 0x1a, 0x46, 0xa6, 0x18, 0x78, - 0x3d, 0x87, 0x25, 0x4d, 0x61, 0x36, 0x1b, 0x31, 0x98, 0xf6, 0x6b, 0x0a, 0x9c, 0xa3, 0x32, 0x3f, - 0x7b, 0xe7, 0x34, 0xa7, 0x03, 0xb1, 0xdf, 0x29, 0x07, 0x25, 0xcc, 0x52, 0x99, 0xd7, 0x3c, 0xe3, - 0xa0, 0x38, 0xcc, 0x0c, 0x4b, 0xc9, 0x1e, 0x14, 0xf9, 0xfd, 0x12, 0xf0, 0x78, 0xa6, 0x57, 0x25, - 0x65, 0x42, 0x44, 0x98, 0x23, 0xd1, 0x9e, 0xe0, 0x11, 0xc6, 0xeb, 0x98, 0x61, 0x6d, 0xed, 0x3f, - 0x15, 0xb8, 0x38, 0xa3, 0x0e, 0xf9, 0x38, 0x2c, 0xa0, 0x47, 0x1f, 0x9f, 0xbd, 0xcb, 0x33, 0x3e, - 0x31, 0xe9, 0x1d, 0xef, 0xdf, 0x65, 0x17, 0xd1, 0x09, 0xfd, 0x61, 0xb2, 0x5a, 0xe4, 0x11, 0x2c, - 0xeb, 0xfd, 0x3e, 0x17, 0x67, 0x72, 0x31, 0x71, 0x66, 0xc6, 0x17, 0x5f, 0x0e, 0xf1, 0x99, 0x38, - 0xc3, 0x7c, 0x4b, 0xfa, 0x7d, 0x9b, 0x7b, 0x2b, 0x46, 0xf4, 0x2e, 0xfd, 0x7f, 0x58, 0x8b, 0x23, - 0x3f, 0x93, 0x83, 0xd5, 0xdb, 0x0a, 0xa8, 0xf1, 0x36, 0xfc, 0x6c, 0x22, 0x2b, 0x65, 0x4d, 0xf3, - 0x53, 0x16, 0xd5, 0xef, 0xe4, 0xe0, 0x7c, 0xe6, 0x08, 0x93, 0x97, 0x60, 0x51, 0x1f, 0x8d, 0x6a, - 0x55, 0xbe, 0xaa, 0x38, 0x87, 0x84, 0x5a, 0xe2, 0x98, 0xb4, 0xc7, 0x90, 0xc8, 0x2b, 0x50, 0x64, - 0xcf, 0xe9, 0x55, 0x71, 0xe0, 0x60, 0xa8, 0x18, 0xfe, 0xd6, 0x1f, 0x8f, 0x2c, 0x2a, 0x10, 0xc9, - 0x0e, 0xac, 0xf1, 0x20, 0x2b, 0xa6, 0x7b, 0xe4, 0x7e, 0x35, 0x0c, 0x71, 0x8f, 0x51, 0xf8, 0x85, - 0xea, 0xd9, 0x1e, 0xb3, 0x32, 0x39, 0xcc, 0x48, 0xbc, 0x16, 0xa9, 0x83, 0x8a, 0x34, 0x65, 0x4a, - 0x2c, 0xbc, 0x29, 0x86, 0xbd, 0x61, 0x8d, 0x98, 0x41, 0x2b, 0x55, 0x33, 0x9c, 0x2e, 0x3d, 0x08, - 0xbc, 0xa3, 0xe1, 0x89, 0x3b, 0x9c, 0xfc, 0xec, 0xa6, 0x2b, 0xfa, 0xc6, 0xa9, 0xa6, 0xeb, 0xf7, - 0x0a, 0x6c, 0x33, 0x27, 0xab, 0x51, 0x8e, 0x46, 0x8a, 0x68, 0x8d, 0x1c, 0x0d, 0x15, 0x9a, 0x78, - 0x18, 0x91, 0x2a, 0x2c, 0xb1, 0xf0, 0x2e, 0x62, 0x67, 0x5c, 0xc9, 0x6c, 0x02, 0xc3, 0xd9, 0xbf, - 0xcb, 0xd8, 0x17, 0xe6, 0x5a, 0x18, 0x98, 0xa2, 0x2a, 0xd9, 0x87, 0x52, 0x65, 0xe0, 0x3a, 0xc3, - 0xe9, 0xa8, 0x73, 0xba, 0x27, 0xc7, 0x4d, 0xde, 0x97, 0x95, 0x1e, 0xab, 0x86, 0x4f, 0x95, 0x78, - 0x92, 0xcb, 0x84, 0x48, 0x27, 0xf4, 0x36, 0x2a, 0xa0, 0xa6, 0xf2, 0xc3, 0x73, 0xc6, 0x27, 0x09, - 0xc4, 0x7a, 0x71, 0x57, 0x3a, 0xee, 0x8e, 0x64, 0xc3, 0x5a, 0xdd, 0x09, 0x26, 0x9d, 0xb1, 0x33, - 0x0c, 0x30, 0x2c, 0xe4, 0x29, 0xc2, 0x66, 0x6d, 0x89, 0x94, 0xc3, 0xa8, 0x63, 0x9c, 0x84, 0x55, - 0x99, 0x06, 0x33, 0x4e, 0x8e, 0xf2, 0x4b, 0x3b, 0xde, 0xd0, 0x19, 0x78, 0x5f, 0x13, 0x4e, 0x99, - 0x8c, 0x5f, 0x3a, 0x14, 0x40, 0x33, 0x2a, 0xd7, 0x3e, 0x97, 0x9a, 0x37, 0xd6, 0xca, 0x12, 0x2c, - 0x71, 0x97, 0x7d, 0xe6, 0xc2, 0xde, 0x36, 0x9a, 0xd5, 0x5a, 0x73, 0x57, 0x55, 0xc8, 0x1a, 0x40, - 0xdb, 0x6c, 0x55, 0x0c, 0xcb, 0xa2, 0xbf, 0x73, 0xf4, 0x37, 0xf7, 0x6f, 0xdf, 0xe9, 0xd6, 0xd5, - 0xbc, 0xe4, 0xe2, 0x5e, 0xd0, 0x7e, 0xa0, 0xc0, 0x85, 0xec, 0xa9, 0x24, 0x1d, 0xc0, 0x20, 0x07, - 0xfc, 0xf1, 0xf9, 0x23, 0x73, 0xe7, 0x3d, 0x13, 0x9c, 0x0c, 0x96, 0x30, 0x61, 0x4e, 0xf8, 0x39, - 0xf1, 0x58, 0xc4, 0xbc, 0xfa, 0xbc, 0xbe, 0x99, 0xf3, 0xfa, 0x5a, 0x05, 0x36, 0x67, 0xd1, 0x88, - 0x77, 0x75, 0x1d, 0x4a, 0x7a, 0xbb, 0x5d, 0xaf, 0x55, 0xf4, 0x4e, 0xad, 0xd5, 0x54, 0x15, 0xb2, - 0x0c, 0x0b, 0xbb, 0x66, 0xab, 0xdb, 0x56, 0x73, 0xda, 0xb7, 0x15, 0x58, 0xad, 0x45, 0x66, 0x5a, - 0xef, 0x75, 0xf3, 0x7d, 0x34, 0xb6, 0xf9, 0x36, 0xc3, 0x70, 0x20, 0xe1, 0x07, 0x4e, 0xb5, 0xf3, - 0xfe, 0x56, 0x81, 0x8d, 0x54, 0x1d, 0x62, 0xc1, 0x92, 0x7e, 0x60, 0xb5, 0x6a, 0xd5, 0x0a, 0x6f, - 0xd9, 0xb5, 0xc8, 0xbe, 0x08, 0x33, 0x3e, 0xa5, 0xbe, 0xc2, 0x5c, 0x68, 0x1f, 0x07, 0xb6, 0xef, - 0xf5, 0xa5, 0x6c, 0xad, 0x7b, 0x67, 0x4c, 0x41, 0x09, 0x6f, 0xb2, 0xaf, 0x4d, 0xc7, 0x2e, 0x92, - 0xcd, 0xc5, 0x14, 0xa1, 0x21, 0x3c, 0x4d, 0x18, 0x1d, 0x1e, 0x1c, 0x5a, 0x9e, 0x26, 0x1d, 0xd1, - 0xdb, 0x5e, 0x85, 0x12, 0x97, 0x5a, 0x50, 0x20, 0xf8, 0x9e, 0x02, 0x9b, 0xb3, 0xda, 0x4a, 0x05, - 0xa1, 0xb8, 0x3f, 0xfd, 0x85, 0x30, 0x83, 0x43, 0xdc, 0x91, 0x5e, 0xa0, 0x91, 0x4f, 0x42, 0xa9, - 0x16, 0x04, 0x53, 0x77, 0x6c, 0xbd, 0xd2, 0x35, 0x6b, 0x7c, 0x81, 0x5c, 0xf9, 0xb7, 0x77, 0xae, - 0x5d, 0x44, 0xb7, 0x84, 0xb1, 0x1d, 0xbc, 0x62, 0x4f, 0xc7, 0x5e, 0x2c, 0xda, 0xbd, 0x5c, 0x83, - 0xf2, 0xad, 0xce, 0xb4, 0xef, 0xb9, 0x82, 0x6b, 0x17, 0x3e, 0xc7, 0x1c, 0x26, 0xdf, 0x22, 0x02, - 0xa6, 0x7d, 0x43, 0x81, 0x4b, 0xb3, 0x07, 0x86, 0xde, 0x4c, 0x1d, 0x66, 0xf5, 0x23, 0xbc, 0x7e, - 0xf1, 0x66, 0x0a, 0x4d, 0x83, 0x64, 0x9a, 0x02, 0x91, 0x56, 0x0a, 0xb3, 0xa7, 0xe7, 0x52, 0x29, - 0x93, 0xe3, 0x95, 0x04, 0xa2, 0xf6, 0xef, 0x39, 0xb8, 0x40, 0x17, 0xdd, 0xc0, 0x0d, 0x02, 0x7d, - 0x3a, 0x39, 0x76, 0x87, 0x13, 0xce, 0x86, 0x91, 0xd7, 0x60, 0xf1, 0xf8, 0xd9, 0x54, 0x8e, 0x0c, - 0x9d, 0x10, 0xc0, 0x83, 0x5c, 0x38, 0x59, 0xd0, 0xff, 0xc9, 0x75, 0x90, 0x93, 0x54, 0xe7, 0x31, - 0x4c, 0x66, 0x6e, 0x53, 0x31, 0x97, 0x47, 0x61, 0x3e, 0xd9, 0xd7, 0x61, 0x01, 0xd5, 0x0c, 0xfc, - 0x48, 0x15, 0xac, 0x70, 0x76, 0xeb, 0x50, 0x09, 0x61, 0xb2, 0x0a, 0xe4, 0x43, 0x00, 0x51, 0x86, - 0x01, 0x7e, 0x66, 0x0a, 0xf1, 0x3b, 0x4c, 0x32, 0x60, 0x2e, 0x9f, 0x1c, 0x3a, 0x3c, 0x6c, 0x7f, - 0x19, 0x36, 0xc4, 0xb0, 0x8c, 0x44, 0x74, 0x3d, 0xfe, 0x1a, 0xb6, 0xce, 0x0a, 0x6a, 0x23, 0x11, - 0x61, 0xef, 0x46, 0x2a, 0xd1, 0x2e, 0x06, 0xd9, 0x4d, 0x64, 0xd3, 0xbd, 0x91, 0xca, 0xa6, 0x5b, - 0x64, 0x58, 0x72, 0xca, 0x5c, 0xed, 0x9f, 0x73, 0xb0, 0x7c, 0x40, 0x99, 0x15, 0x14, 0xc1, 0xe7, - 0x8b, 0xf4, 0xf7, 0xa0, 0x54, 0xf7, 0x1d, 0xfe, 0xec, 0xc0, 0x7d, 0x13, 0x98, 0x6f, 0xf0, 0xc0, - 0x77, 0xc4, 0x0b, 0x46, 0x60, 0xca, 0x48, 0x4f, 0xf1, 0x6b, 0xbe, 0x0f, 0x8b, 0xec, 0x19, 0x88, - 0x6b, 0x97, 0x04, 0xbb, 0x1a, 0xb6, 0xe8, 0x65, 0x56, 0x2c, 0x69, 0xca, 0xd9, 0x53, 0x92, 0xcc, - 0x3b, 0xf1, 0x58, 0xa1, 0x92, 0xc2, 0x61, 0xe1, 0x74, 0x0a, 0x07, 0x29, 0x26, 0xda, 0xe2, 0x69, - 0x62, 0xa2, 0x5d, 0x7a, 0x03, 0x4a, 0x52, 0x7b, 0x9e, 0x89, 0x7b, 0xfd, 0x7a, 0x0e, 0x56, 0xb1, - 0x57, 0xa1, 0x4d, 0xc8, 0xcf, 0xa7, 0xfa, 0xe4, 0xa3, 0x31, 0xf5, 0xc9, 0xa6, 0x3c, 0x5f, 0xac, - 0x67, 0x73, 0xf4, 0x26, 0xf7, 0x61, 0x23, 0x85, 0x48, 0x5e, 0x85, 0x05, 0xda, 0x7c, 0x21, 0x6e, - 0xaa, 0xc9, 0x15, 0x10, 0xc5, 0xcf, 0xa5, 0x1d, 0x0f, 0x4c, 0x86, 0xad, 0xfd, 0x97, 0x02, 0x2b, - 0x3c, 0x7d, 0xc5, 0xf0, 0xd0, 0x7f, 0xea, 0x70, 0xde, 0x4a, 0x0e, 0x27, 0x8b, 0xd2, 0xc1, 0x87, - 0xf3, 0x7f, 0x7a, 0x10, 0xdf, 0x88, 0x0d, 0xe2, 0xc5, 0x30, 0x9a, 0x9e, 0xe8, 0xce, 0x9c, 0x31, - 0xfc, 0x2b, 0x8c, 0x2f, 0x1b, 0x47, 0x24, 0x5f, 0x80, 0xe5, 0xa6, 0xfb, 0x38, 0x26, 0xb5, 0xdd, - 0x9a, 0x41, 0xf4, 0xe5, 0x10, 0x91, 0xed, 0x29, 0xbc, 0xf0, 0x86, 0xee, 0x63, 0x3b, 0xf5, 0x02, - 0x15, 0x91, 0xa4, 0x82, 0x5b, 0xbc, 0xda, 0xb3, 0x2c, 0x7d, 0xee, 0x28, 0x89, 0x81, 0x67, 0xbe, - 0x99, 0x07, 0x88, 0x7c, 0xcc, 0xe8, 0x06, 0x8c, 0x3d, 0xbe, 0x0b, 0x85, 0x37, 0x82, 0xe4, 0x35, - 0x2e, 0xde, 0xe4, 0x6f, 0x71, 0xc5, 0x6c, 0x6e, 0x76, 0xb4, 0x43, 0x54, 0xd1, 0x56, 0xb8, 0x53, - 0x53, 0xdf, 0x1d, 0x38, 0xec, 0x6c, 0xcf, 0x6f, 0xdf, 0xc0, 0xe0, 0xb6, 0x21, 0x74, 0x46, 0x1e, - 0x62, 0x74, 0x7d, 0xaa, 0x52, 0x84, 0x94, 0xdf, 0x66, 0xe1, 0xd9, 0xfc, 0x36, 0xdb, 0xb0, 0xec, - 0x0d, 0xdf, 0x72, 0x87, 0x13, 0x7f, 0xfc, 0x04, 0xb5, 0xd1, 0x91, 0x9a, 0x8b, 0x0e, 0x41, 0x4d, - 0x94, 0xb1, 0x79, 0xc0, 0x8b, 0x31, 0xc4, 0x97, 0xa7, 0x21, 0x04, 0x86, 0x7e, 0xa7, 0x0b, 0xea, - 0xe2, 0xfd, 0x42, 0x71, 0x51, 0x5d, 0xba, 0x5f, 0x28, 0x16, 0xd5, 0xe5, 0xfb, 0x85, 0xe2, 0xb2, - 0x0a, 0xa6, 0xf4, 0xbe, 0x13, 0xbe, 0xdf, 0x48, 0x4f, 0x2e, 0xf1, 0xe7, 0x14, 0xed, 0x27, 0x39, - 0x20, 0xe9, 0x66, 0x90, 0x8f, 0x42, 0x89, 0x1d, 0xb0, 0xf6, 0x38, 0xf8, 0x0a, 0x37, 0x5b, 0x67, - 0xe1, 0x7b, 0x24, 0xb0, 0x1c, 0xbe, 0x87, 0x81, 0xcd, 0xe0, 0x2b, 0x03, 0xf2, 0x79, 0x38, 0x8b, - 0xc3, 0x3b, 0x72, 0xc7, 0x9e, 0xdf, 0xb7, 0x31, 0xd6, 0xaa, 0x33, 0xe0, 0x39, 0x03, 0x5f, 0xc2, - 0xe4, 0xb6, 0xe9, 0xe2, 0x19, 0xd3, 0x80, 0xae, 0x64, 0x6d, 0xc4, 0x6c, 0x33, 0x44, 0xd2, 0x01, - 0x55, 0xae, 0x7f, 0x38, 0x1d, 0x0c, 0xf8, 0xcc, 0x96, 0xa9, 0xa0, 0x9b, 0x2c, 0x9b, 0x41, 0x78, - 0x2d, 0x22, 0xbc, 0x33, 0x1d, 0x0c, 0xc8, 0x6b, 0x00, 0xfe, 0xd0, 0x3e, 0xf1, 0x82, 0x80, 0xbd, - 0x71, 0x84, 0x5e, 0xaf, 0x11, 0x54, 0x9e, 0x0c, 0x7f, 0xd8, 0x60, 0x40, 0xf2, 0xff, 0x00, 0xbd, - 0xfe, 0x31, 0x1c, 0x06, 0xb3, 0x6a, 0xe1, 0x59, 0x40, 0x04, 0x30, 0xee, 0x64, 0x7b, 0xe4, 0x5a, - 0xde, 0xd7, 0x84, 0xcb, 0xc0, 0x67, 0x61, 0x83, 0x1b, 0xa1, 0x1e, 0x78, 0x93, 0x63, 0xce, 0x61, - 0xbf, 0x17, 0xf6, 0x5c, 0x62, 0xb1, 0xff, 0xbe, 0x00, 0xa0, 0x1f, 0x58, 0x22, 0xd2, 0xd4, 0x1d, - 0x58, 0xa0, 0x72, 0x83, 0xd0, 0x3f, 0xa0, 0xf6, 0x16, 0xe9, 0xca, 0xda, 0x5b, 0xc4, 0xa0, 0xbb, - 0xd1, 0x44, 0xe3, 0x6c, 0xa1, 0x7b, 0xc0, 0xdd, 0xc8, 0xec, 0xb5, 0x63, 0x91, 0x7e, 0x39, 0x16, - 0xa9, 0x03, 0x44, 0xb1, 0x9f, 0xb8, 0x24, 0xbb, 0x11, 0x05, 0x51, 0xe1, 0x05, 0x3c, 0xdb, 0x40, - 0x14, 0x3f, 0x4a, 0x5e, 0x3e, 0x11, 0x1a, 0x79, 0x00, 0x85, 0x8e, 0x13, 0xfa, 0x74, 0xce, 0x88, - 0x88, 0xf5, 0x3c, 0xcf, 0xe9, 0x18, 0x45, 0xc5, 0x5a, 0x9b, 0x38, 0xb1, 0xd4, 0xb7, 0x48, 0x84, - 0x18, 0xb0, 0xc8, 0xf3, 0x75, 0xcf, 0x88, 0xa4, 0xc8, 0xd3, 0x75, 0xf3, 0xf8, 0xc9, 0x08, 0x94, - 0x79, 0x0a, 0x9e, 0x99, 0xfb, 0x1e, 0xe4, 0x2d, 0xab, 0xc1, 0xe3, 0x40, 0xac, 0x46, 0x52, 0x89, - 0x65, 0x35, 0xd8, 0x1b, 0x65, 0x10, 0x9c, 0x48, 0xd5, 0x28, 0x32, 0xf9, 0x18, 0x94, 0x24, 0xf6, - 0x99, 0x47, 0x50, 0xc1, 0x31, 0x90, 0xbc, 0x66, 0xe4, 0x43, 0x43, 0xc2, 0x26, 0x75, 0x50, 0x1f, - 0x4c, 0xdf, 0x74, 0xf5, 0xd1, 0x08, 0xdd, 0xe9, 0xde, 0x72, 0xc7, 0x8c, 0x6d, 0x2b, 0x46, 0xa1, - 0x87, 0xd1, 0xd6, 0xbe, 0x2f, 0x4a, 0x65, 0x1d, 0x4c, 0xb2, 0x26, 0x69, 0xc3, 0x86, 0xe5, 0x4e, - 0xa6, 0x23, 0x66, 0xa7, 0xb1, 0xe3, 0x8f, 0xa9, 0x10, 0xc2, 0xe2, 0xad, 0x60, 0x94, 0xd6, 0x80, - 0x16, 0x0a, 0xe3, 0x98, 0x43, 0x7f, 0x9c, 0x10, 0x48, 0xd2, 0x95, 0x35, 0x57, 0x9e, 0x72, 0x7a, - 0xab, 0xc6, 0x45, 0x1b, 0xbc, 0x55, 0x85, 0x68, 0x13, 0x09, 0x34, 0x1f, 0xca, 0x88, 0x09, 0x86, - 0x0f, 0x66, 0x52, 0x4c, 0xb0, 0x58, 0x24, 0xb0, 0xef, 0x16, 0xa4, 0xb0, 0x94, 0x7c, 0x2e, 0x3e, - 0x0e, 0x70, 0xdf, 0xf7, 0x86, 0x0d, 0x77, 0x72, 0xec, 0xf7, 0xa5, 0xd0, 0x64, 0xa5, 0x2f, 0xf9, - 0xde, 0xd0, 0x3e, 0x41, 0xf0, 0x4f, 0xde, 0xb9, 0x26, 0x21, 0x99, 0xd2, 0xff, 0xe4, 0x83, 0xb0, - 0x4c, 0x7f, 0x75, 0x22, 0x6b, 0x13, 0xa6, 0xaa, 0xc4, 0xda, 0x2c, 0x79, 0x43, 0x84, 0x40, 0xde, - 0xc0, 0x74, 0x25, 0xde, 0x68, 0x22, 0x31, 0xaf, 0x22, 0x37, 0x89, 0x37, 0x9a, 0x24, 0x23, 0x0d, - 0x4b, 0xc8, 0x64, 0x2f, 0x6c, 0xba, 0xc8, 0x30, 0xc4, 0xb3, 0xa2, 0xa0, 0x3e, 0x8e, 0xaf, 0x35, - 0x5b, 0x84, 0x38, 0x95, 0x73, 0xc1, 0x26, 0xaa, 0x61, 0x23, 0xac, 0xbd, 0x2a, 0x7b, 0x40, 0xe1, - 0x4c, 0x2d, 0x6b, 0x44, 0x70, 0xdc, 0xb7, 0x7b, 0x08, 0x8e, 0x35, 0x22, 0x44, 0x26, 0xdb, 0xb0, - 0xce, 0x78, 0xfc, 0x30, 0x53, 0x21, 0x67, 0x71, 0xf1, 0x6c, 0x8b, 0x52, 0x19, 0xca, 0x9f, 0x4f, - 0x54, 0x20, 0x3b, 0xb0, 0x80, 0x02, 0x21, 0x37, 0x31, 0xdf, 0x92, 0xa5, 0xe7, 0xe4, 0x3e, 0xc2, - 0x73, 0x05, 0xe5, 0x66, 0xf9, 0x5c, 0x41, 0x54, 0xf2, 0x19, 0x00, 0x63, 0x38, 0xf6, 0x07, 0x03, - 0x0c, 0xc2, 0x5b, 0x44, 0x51, 0xea, 0x4a, 0x7c, 0x3f, 0x22, 0x95, 0x08, 0x89, 0x07, 0x8c, 0xc3, - 0xdf, 0x76, 0x22, 0x54, 0xaf, 0x44, 0x4b, 0xab, 0xc1, 0x22, 0xdb, 0x8c, 0x18, 0xd0, 0x9a, 0xa7, - 0xe8, 0x90, 0xc2, 0x21, 0xb3, 0x80, 0xd6, 0x1c, 0x9e, 0x0e, 0x68, 0x2d, 0x55, 0xd0, 0x1e, 0xc0, - 0xb9, 0xac, 0x8e, 0xc5, 0x44, 0x58, 0xe5, 0xb4, 0x22, 0xec, 0x77, 0xf2, 0xb0, 0x82, 0xd4, 0xc4, - 0x29, 0xac, 0xc3, 0xaa, 0x35, 0x7d, 0x33, 0x8c, 0xf6, 0x24, 0x4e, 0x63, 0x6c, 0x5f, 0x20, 0x17, - 0xc8, 0x4f, 0x5b, 0xb1, 0x1a, 0xc4, 0x80, 0x35, 0x71, 0x13, 0xec, 0x0a, 0x0b, 0xf4, 0x30, 0x96, - 0xb4, 0x88, 0x58, 0x98, 0xce, 0xd4, 0x9a, 0xa8, 0x14, 0xdd, 0x07, 0xf9, 0x67, 0xb9, 0x0f, 0x0a, - 0xa7, 0xba, 0x0f, 0x1e, 0xc1, 0x8a, 0xf8, 0x1a, 0x9e, 0xe4, 0x0b, 0xef, 0xed, 0x24, 0x8f, 0x11, - 0x23, 0xf5, 0xf0, 0x44, 0x5f, 0x9c, 0x7b, 0xa2, 0xe3, 0x7b, 0xa1, 0xd8, 0x65, 0x23, 0x84, 0xa5, - 0x0f, 0x76, 0x4c, 0x65, 0xb8, 0x5b, 0x69, 0xff, 0x14, 0xb7, 0xe4, 0xab, 0xb0, 0x5c, 0xf7, 0xc5, - 0x53, 0x91, 0xa4, 0xa3, 0x1f, 0x08, 0xa0, 0xcc, 0x2e, 0x84, 0x98, 0xe1, 0xed, 0x96, 0x7f, 0x3f, - 0x6e, 0xb7, 0x37, 0x00, 0xb8, 0x6b, 0x43, 0x94, 0x82, 0x0c, 0xb7, 0x8c, 0x88, 0x74, 0x11, 0x7f, - 0x2a, 0x90, 0x90, 0xe9, 0xe9, 0xc4, 0xad, 0x50, 0xf4, 0x5e, 0xcf, 0x9f, 0x0e, 0x27, 0xb1, 0x9c, - 0xbd, 0xc2, 0x13, 0xd2, 0xe1, 0x65, 0xf2, 0xf1, 0x90, 0xa8, 0xf6, 0xfe, 0x4e, 0x08, 0xf9, 0x74, - 0x68, 0x44, 0xb7, 0x34, 0x6f, 0x84, 0xb4, 0xd4, 0x08, 0xcd, 0x34, 0x9d, 0xd3, 0x7e, 0xa0, 0xc8, - 0x81, 0xfc, 0x7f, 0x8a, 0xa9, 0x7e, 0x1d, 0x20, 0x7c, 0xab, 0x17, 0x73, 0xcd, 0xe4, 0xa5, 0x10, - 0x2a, 0x8f, 0x72, 0x84, 0x2b, 0xf5, 0x26, 0xff, 0x7e, 0xf5, 0xa6, 0x03, 0xa5, 0xd6, 0x97, 0x27, - 0x4e, 0x64, 0xdc, 0x01, 0x56, 0xc8, 0xc9, 0xe2, 0xc9, 0x94, 0xdf, 0xbe, 0x89, 0x77, 0x43, 0xc4, - 0x07, 0xcf, 0x60, 0x81, 0xa5, 0x8a, 0xda, 0x9f, 0x29, 0xb0, 0x2e, 0xbb, 0x6f, 0x3f, 0x19, 0xf6, - 0xc8, 0x27, 0x58, 0x5c, 0x51, 0x25, 0x26, 0xb2, 0x48, 0x48, 0xf4, 0xc8, 0x7d, 0x32, 0xec, 0x31, - 0x06, 0xc8, 0x79, 0x2c, 0x37, 0x96, 0x56, 0x24, 0x6f, 0xc2, 0x4a, 0xdb, 0x1f, 0x0c, 0x28, 0x5b, - 0x33, 0x7e, 0x8b, 0x0b, 0x00, 0x94, 0x50, 0xf2, 0xc5, 0x40, 0x34, 0x68, 0xfb, 0x05, 0x2e, 0xe7, - 0x5e, 0x1c, 0xd1, 0xf3, 0xde, 0xe3, 0xf5, 0x22, 0xb2, 0x6f, 0xa3, 0xbf, 0x95, 0x4c, 0x53, 0xfb, - 0x91, 0x02, 0x24, 0xdd, 0x24, 0xf9, 0xc8, 0x52, 0xfe, 0x17, 0x58, 0xd8, 0x04, 0xeb, 0x57, 0x78, - 0x16, 0xd6, 0xaf, 0xfc, 0xdb, 0x0a, 0xac, 0xd7, 0xf4, 0x06, 0x0f, 0xed, 0xcf, 0x1e, 0x36, 0xae, - 0xc3, 0x95, 0x9a, 0xde, 0xb0, 0xdb, 0xad, 0x7a, 0xad, 0xf2, 0xd0, 0xce, 0x8c, 0xd8, 0x7b, 0x05, - 0x9e, 0x4b, 0xa3, 0x44, 0x0f, 0x20, 0x97, 0x61, 0x33, 0x5d, 0x2c, 0xa2, 0xfa, 0x66, 0x57, 0x16, - 0x01, 0x80, 0xf3, 0xe5, 0x4f, 0xc2, 0xba, 0x88, 0x60, 0xdb, 0xa9, 0x5b, 0x18, 0x23, 0x7f, 0x1d, - 0x4a, 0xfb, 0x86, 0x59, 0xdb, 0x79, 0x68, 0xef, 0x74, 0xeb, 0x75, 0xf5, 0x0c, 0x59, 0x85, 0x65, - 0x0e, 0xa8, 0xe8, 0xaa, 0x42, 0x56, 0xa0, 0x58, 0x6b, 0x5a, 0x46, 0xa5, 0x6b, 0x1a, 0x6a, 0xae, - 0xfc, 0x49, 0x58, 0x6b, 0x8f, 0xbd, 0xb7, 0x9c, 0x89, 0xfb, 0xc0, 0x7d, 0x82, 0xef, 0x17, 0x4b, - 0x90, 0x37, 0xf5, 0x03, 0xf5, 0x0c, 0x01, 0x58, 0x6c, 0x3f, 0xa8, 0x58, 0x77, 0xef, 0xaa, 0x0a, - 0x29, 0xc1, 0xd2, 0x6e, 0xa5, 0x6d, 0x3f, 0x68, 0x58, 0x6a, 0x8e, 0xfe, 0xd0, 0x0f, 0x2c, 0xfc, - 0x91, 0x2f, 0x7f, 0x18, 0x36, 0x90, 0x21, 0xa9, 0x7b, 0xc1, 0xc4, 0x1d, 0xba, 0x63, 0x6c, 0xc3, - 0x0a, 0x14, 0x2d, 0x97, 0x9e, 0x24, 0x13, 0x97, 0x35, 0xa0, 0x31, 0x1d, 0x4c, 0xbc, 0xd1, 0xc0, - 0xfd, 0xaa, 0xaa, 0x94, 0xdf, 0x80, 0x75, 0xd3, 0x9f, 0x4e, 0xbc, 0xe1, 0x91, 0x35, 0xa1, 0x18, - 0x47, 0x4f, 0xc8, 0x79, 0xd8, 0xe8, 0x36, 0xf5, 0xc6, 0x76, 0x6d, 0xb7, 0xdb, 0xea, 0x5a, 0x76, - 0x43, 0xef, 0x54, 0xf6, 0xd8, 0xeb, 0x49, 0xa3, 0x65, 0x75, 0x6c, 0xd3, 0xa8, 0x18, 0xcd, 0x8e, - 0xaa, 0x94, 0xbf, 0x85, 0xba, 0x95, 0x9e, 0x3f, 0xec, 0xef, 0x38, 0xbd, 0x89, 0x3f, 0xc6, 0x06, - 0x6b, 0x70, 0xd5, 0x32, 0x2a, 0xad, 0x66, 0xd5, 0xde, 0xd1, 0x2b, 0x9d, 0x96, 0x99, 0x15, 0x32, - 0xfa, 0x12, 0x5c, 0xc8, 0xc0, 0x69, 0x75, 0xda, 0xaa, 0x42, 0xae, 0xc1, 0x56, 0x46, 0xd9, 0x81, - 0xb1, 0xad, 0x77, 0x3b, 0x7b, 0x4d, 0x35, 0x37, 0xa3, 0xb2, 0x65, 0xb5, 0xd4, 0x7c, 0xf9, 0xd7, - 0x15, 0x58, 0xeb, 0x06, 0xdc, 0x74, 0xb9, 0x8b, 0x5e, 0x8b, 0xcf, 0xc3, 0xe5, 0xae, 0x65, 0x98, - 0x76, 0xa7, 0xf5, 0xc0, 0x68, 0xda, 0x5d, 0x4b, 0xdf, 0x4d, 0xb6, 0xe6, 0x1a, 0x6c, 0x49, 0x18, - 0xa6, 0x51, 0x69, 0xed, 0x1b, 0xa6, 0xdd, 0xd6, 0x2d, 0xeb, 0xa0, 0x65, 0x56, 0x55, 0x85, 0x7e, - 0x31, 0x03, 0xa1, 0xb1, 0xa3, 0xb3, 0xd6, 0xc4, 0xca, 0x9a, 0xc6, 0x81, 0x5e, 0xb7, 0xb7, 0x5b, - 0x1d, 0x35, 0x5f, 0x6e, 0xd0, 0xfb, 0x1d, 0x03, 0xb7, 0x32, 0x83, 0xbb, 0x22, 0x14, 0x9a, 0xad, - 0xa6, 0x91, 0x7c, 0x73, 0x5b, 0x81, 0xa2, 0xde, 0x6e, 0x9b, 0xad, 0x7d, 0x5c, 0x62, 0x00, 0x8b, - 0x55, 0xa3, 0x49, 0x5b, 0x96, 0xa7, 0x25, 0x6d, 0xb3, 0xd5, 0x68, 0x75, 0x8c, 0xaa, 0x5a, 0x28, - 0x9b, 0x62, 0x0b, 0x0b, 0xa2, 0x3d, 0x9f, 0x3d, 0x70, 0x55, 0x8d, 0x1d, 0xbd, 0x5b, 0xef, 0xf0, - 0x29, 0x7a, 0x68, 0x9b, 0xc6, 0xa7, 0xbb, 0x86, 0xd5, 0xb1, 0x54, 0x85, 0xa8, 0xb0, 0xd2, 0x34, - 0x8c, 0xaa, 0x65, 0x9b, 0xc6, 0x7e, 0xcd, 0x38, 0x50, 0x73, 0x94, 0x26, 0xfb, 0x9f, 0x7e, 0xa1, - 0xfc, 0x5d, 0x05, 0x08, 0x0b, 0x7a, 0x2b, 0x32, 0xa9, 0xe0, 0x8a, 0xb9, 0x0a, 0x97, 0xf6, 0xe8, - 0x54, 0x63, 0xd7, 0x1a, 0xad, 0x6a, 0x72, 0xc8, 0x2e, 0x00, 0x49, 0x94, 0xb7, 0x76, 0x76, 0x54, - 0x85, 0x6c, 0xc1, 0xd9, 0x04, 0xbc, 0x6a, 0xb6, 0xda, 0x6a, 0xee, 0x52, 0xae, 0xa8, 0x90, 0x8b, - 0xa9, 0xc2, 0x07, 0x86, 0xd1, 0x56, 0xf3, 0x74, 0x8a, 0x12, 0x05, 0x62, 0x4b, 0xb0, 0xea, 0x85, - 0xf2, 0x37, 0x14, 0xb8, 0xc0, 0x9a, 0x29, 0xf6, 0x57, 0xd8, 0xd4, 0xcb, 0xb0, 0xc9, 0x43, 0x79, - 0x67, 0x35, 0xf4, 0x1c, 0xa8, 0xb1, 0x52, 0xd6, 0xcc, 0xf3, 0xb0, 0x11, 0x83, 0x62, 0x3b, 0x72, - 0xf4, 0xf4, 0x88, 0x81, 0xb7, 0x0d, 0xab, 0x63, 0x1b, 0x3b, 0x3b, 0x2d, 0xb3, 0xc3, 0x1a, 0x92, - 0x2f, 0x6b, 0xb0, 0x51, 0x71, 0xc7, 0x13, 0x2a, 0x7a, 0x0d, 0x03, 0xcf, 0x1f, 0x62, 0x13, 0x56, - 0x61, 0xd9, 0xf8, 0x4c, 0xc7, 0x68, 0x5a, 0xb5, 0x56, 0x53, 0x3d, 0x53, 0xbe, 0x9c, 0xc0, 0x11, - 0xfb, 0xd8, 0xb2, 0xf6, 0xd4, 0x33, 0x65, 0x07, 0x56, 0x85, 0x91, 0x30, 0x5b, 0x15, 0x57, 0xe1, - 0x92, 0x58, 0x6b, 0x78, 0xa2, 0x24, 0xbb, 0xb0, 0x09, 0xe7, 0xd2, 0xe5, 0x46, 0x47, 0x55, 0xe8, - 0x2c, 0x24, 0x4a, 0x28, 0x3c, 0x57, 0xfe, 0x55, 0x05, 0x56, 0xc3, 0x47, 0x13, 0x54, 0xd3, 0x5e, - 0x83, 0xad, 0xc6, 0x8e, 0x6e, 0x57, 0x8d, 0xfd, 0x5a, 0xc5, 0xb0, 0x1f, 0xd4, 0x9a, 0xd5, 0xc4, - 0x47, 0x9e, 0x83, 0xf3, 0x19, 0x08, 0xf8, 0x95, 0x4d, 0x38, 0x97, 0x2c, 0xea, 0xd0, 0xad, 0x9a, - 0xa3, 0x43, 0x9f, 0x2c, 0x09, 0xf7, 0x69, 0xbe, 0xbc, 0x0f, 0x6b, 0x96, 0xde, 0xa8, 0xef, 0xf8, - 0xe3, 0x9e, 0xab, 0x4f, 0x27, 0xc7, 0x43, 0xb2, 0x05, 0x17, 0x77, 0x5a, 0x66, 0xc5, 0xb0, 0x11, - 0x25, 0xd1, 0x82, 0xb3, 0xb0, 0x2e, 0x17, 0x3e, 0x34, 0xe8, 0xf2, 0x25, 0xb0, 0x26, 0x03, 0x9b, - 0x2d, 0x35, 0x57, 0xfe, 0x1c, 0xac, 0xc4, 0x12, 0xaa, 0x5d, 0x84, 0xb3, 0xf2, 0xef, 0xb6, 0x3b, - 0xec, 0x7b, 0xc3, 0x23, 0xf5, 0x4c, 0xb2, 0xc0, 0x9c, 0x0e, 0x87, 0xb4, 0x00, 0xf7, 0xb3, 0x5c, - 0xd0, 0x71, 0xc7, 0x27, 0xde, 0xd0, 0x99, 0xb8, 0x7d, 0x35, 0x57, 0x7e, 0x19, 0x56, 0x63, 0x61, - 0x9c, 0xe9, 0xc4, 0xd5, 0x5b, 0xfc, 0x00, 0x6e, 0x18, 0xd5, 0x5a, 0xb7, 0xa1, 0x2e, 0xd0, 0x9d, - 0xbc, 0x57, 0xdb, 0xdd, 0x53, 0xa1, 0xfc, 0x6d, 0x85, 0xca, 0x19, 0x98, 0x9c, 0xa5, 0xb1, 0xa3, - 0x8b, 0xa9, 0xa6, 0xcb, 0x8c, 0x05, 0x87, 0x37, 0x2c, 0x8b, 0x3d, 0x35, 0x5f, 0x86, 0x4d, 0xfe, - 0xc3, 0xd6, 0x9b, 0x55, 0x7b, 0x4f, 0x37, 0xab, 0x07, 0xba, 0x49, 0xd7, 0xde, 0x43, 0x35, 0x87, - 0x1b, 0x4a, 0x82, 0xd8, 0x9d, 0x56, 0xb7, 0xb2, 0xa7, 0xe6, 0xe9, 0xfa, 0x8d, 0xc1, 0xdb, 0xb5, - 0xa6, 0x5a, 0xc0, 0xed, 0x99, 0xc2, 0x46, 0xb2, 0xb4, 0x7c, 0xa1, 0xfc, 0xae, 0x02, 0x17, 0x2d, - 0xef, 0x68, 0xe8, 0x4c, 0xa6, 0x63, 0x57, 0x1f, 0x1c, 0xf9, 0x63, 0x6f, 0x72, 0x7c, 0x62, 0x4d, - 0xbd, 0x89, 0x4b, 0xee, 0xc0, 0x4d, 0xab, 0xb6, 0xdb, 0xd4, 0x3b, 0x74, 0x7b, 0xe9, 0xf5, 0xdd, - 0x96, 0x59, 0xeb, 0xec, 0x35, 0x6c, 0xab, 0x5b, 0x4b, 0xad, 0xbc, 0x1b, 0xf0, 0xfc, 0x6c, 0xd4, - 0xba, 0xb1, 0xab, 0x57, 0x1e, 0xaa, 0xca, 0x7c, 0x82, 0xdb, 0x7a, 0x5d, 0x6f, 0x56, 0x8c, 0xaa, - 0xbd, 0x7f, 0x57, 0xcd, 0x91, 0x9b, 0x70, 0x7d, 0x36, 0xea, 0x4e, 0xad, 0x6d, 0x51, 0xb4, 0xfc, - 0xfc, 0xef, 0xee, 0x59, 0x0d, 0x8a, 0x55, 0x28, 0xff, 0xa1, 0x02, 0x9b, 0xb3, 0x62, 0xf9, 0x90, - 0x5b, 0xa0, 0x19, 0xcd, 0x8e, 0xa9, 0xd7, 0xaa, 0x76, 0xc5, 0x34, 0xaa, 0x46, 0xb3, 0x53, 0xd3, - 0xeb, 0x96, 0x6d, 0xb5, 0xba, 0x74, 0x35, 0x45, 0x16, 0x01, 0x2f, 0xc0, 0xb5, 0x39, 0x78, 0xad, - 0x5a, 0xb5, 0xa2, 0x2a, 0xe4, 0x2e, 0xbc, 0x34, 0x07, 0xc9, 0x7a, 0x68, 0x75, 0x8c, 0x86, 0x5c, - 0xa2, 0xe6, 0xca, 0x15, 0xb8, 0x34, 0x3b, 0xd8, 0x07, 0x3d, 0xa6, 0xe3, 0x23, 0x5d, 0x84, 0x42, - 0x95, 0xde, 0x0c, 0xb1, 0x1c, 0x02, 0x65, 0x0f, 0xd4, 0xa4, 0xbf, 0x7e, 0xca, 0x74, 0xc3, 0xec, - 0x36, 0x9b, 0xec, 0x1a, 0x59, 0x87, 0x52, 0xab, 0xb3, 0x67, 0x98, 0x3c, 0x0b, 0x03, 0xa6, 0x5d, - 0xe8, 0x36, 0xe9, 0xc6, 0x69, 0x99, 0xb5, 0xcf, 0xe2, 0x7d, 0xb2, 0x09, 0xe7, 0xac, 0xba, 0x5e, - 0x79, 0x60, 0x37, 0x5b, 0x1d, 0xbb, 0xd6, 0xb4, 0x2b, 0x7b, 0x7a, 0xb3, 0x69, 0xd4, 0x55, 0xc0, - 0xc1, 0x9c, 0xe5, 0xa3, 0x47, 0x3e, 0x08, 0xb7, 0x5b, 0x0f, 0x3a, 0xba, 0xdd, 0xae, 0x77, 0x77, - 0x6b, 0x4d, 0xdb, 0x7a, 0xd8, 0xac, 0x08, 0xde, 0xa7, 0x92, 0x3e, 0x72, 0x6f, 0xc3, 0x8d, 0xb9, - 0xd8, 0x51, 0xbe, 0x84, 0x5b, 0xa0, 0xcd, 0xc5, 0xe4, 0x1d, 0x29, 0xff, 0x50, 0x81, 0xad, 0x39, - 0x6f, 0xc8, 0xe4, 0x25, 0xb8, 0xb3, 0x67, 0xe8, 0xd5, 0xba, 0x61, 0x59, 0x78, 0x50, 0xd0, 0x69, - 0x60, 0x26, 0x1e, 0x99, 0x07, 0xea, 0x1d, 0xb8, 0x39, 0x1f, 0x3d, 0xba, 0x9a, 0x6f, 0xc3, 0x8d, - 0xf9, 0xa8, 0xfc, 0xaa, 0xce, 0x91, 0x32, 0xdc, 0x9a, 0x8f, 0x19, 0x5e, 0xf1, 0xf9, 0xf2, 0x6f, - 0x2a, 0x70, 0x21, 0x5b, 0x91, 0x43, 0xdb, 0x56, 0x6b, 0x5a, 0x1d, 0xbd, 0x5e, 0xb7, 0xdb, 0xba, - 0xa9, 0x37, 0x6c, 0xa3, 0x69, 0xb6, 0xea, 0xf5, 0xac, 0xab, 0xed, 0x06, 0x3c, 0x3f, 0x1b, 0xd5, - 0xaa, 0x98, 0xb5, 0x36, 0x3d, 0xbd, 0x35, 0xb8, 0x3a, 0x1b, 0xcb, 0xa8, 0x55, 0x0c, 0x35, 0xb7, - 0xfd, 0xf1, 0xef, 0xff, 0xd3, 0xd5, 0x33, 0xdf, 0x7f, 0xf7, 0xaa, 0xf2, 0xa3, 0x77, 0xaf, 0x2a, - 0xff, 0xf8, 0xee, 0x55, 0xe5, 0xb3, 0x2f, 0x9e, 0x2e, 0xd5, 0x10, 0xf2, 0xfd, 0x6f, 0x2e, 0xa2, - 0x84, 0xf2, 0xca, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x03, 0xd6, 0x08, 0x80, 0x74, 0xb9, 0x01, - 0x00, + 0x2d, 0xd6, 0xd2, 0xd8, 0xc9, 0x71, 0x91, 0x4f, 0x17, 0x93, 0xc3, 0x0d, 0x0a, 0x63, 0xe1, 0xd4, + 0x65, 0xbc, 0xd8, 0x0f, 0xe4, 0x35, 0xc9, 0x79, 0xb1, 0x49, 0x6c, 0x22, 0x94, 0x89, 0x7a, 0xcb, + 0xed, 0x06, 0x22, 0x64, 0x11, 0x01, 0xbb, 0x87, 0xb6, 0x1b, 0x38, 0xd3, 0xd5, 0xd6, 0x09, 0x34, + 0x45, 0xa0, 0xfa, 0x91, 0x0c, 0x4c, 0xe9, 0xd3, 0x96, 0x5c, 0x87, 0x11, 0xe1, 0x82, 0x95, 0x41, + 0xa5, 0x20, 0xe3, 0x36, 0xc2, 0x9d, 0xaf, 0x34, 0x97, 0x2b, 0x81, 0xc5, 0xe4, 0x46, 0xc1, 0x41, + 0x08, 0x4d, 0x28, 0x37, 0xd6, 0x39, 0xc8, 0x94, 0x65, 0xc4, 0x60, 0x97, 0x46, 0xbf, 0xdb, 0x0c, + 0xd4, 0xb7, 0x22, 0x0f, 0x21, 0xa6, 0x28, 0x31, 0xca, 0x30, 0xc2, 0xb7, 0xd6, 0x98, 0xd1, 0x59, + 0xe6, 0x0c, 0x46, 0x67, 0xc6, 0x71, 0x06, 0xa0, 0x56, 0x5b, 0xb9, 0x4f, 0x8f, 0x36, 0x6c, 0x07, + 0xcf, 0x6f, 0x7e, 0x8c, 0xdd, 0x17, 0x6b, 0x78, 0x42, 0x3c, 0x6e, 0xf2, 0x23, 0xef, 0x80, 0x1e, + 0x69, 0x8f, 0x9b, 0x12, 0x15, 0xcf, 0x4a, 0xcf, 0x79, 0x64, 0x07, 0x94, 0x11, 0x66, 0x91, 0x90, + 0x9f, 0x95, 0x1c, 0x1a, 0xa3, 0x54, 0x90, 0xc9, 0x57, 0x61, 0x2a, 0xfa, 0x15, 0x3e, 0xd1, 0x4e, + 0x85, 0xfb, 0x84, 0x5e, 0xb8, 0x74, 0xe9, 0xe4, 0xb8, 0xb8, 0xa0, 0x70, 0x8d, 0x3f, 0xde, 0xc6, + 0x98, 0x19, 0xbf, 0x98, 0x41, 0xc3, 0x04, 0xd9, 0xc0, 0x2b, 0x30, 0x14, 0x9a, 0xd2, 0x4e, 0x88, + 0x4d, 0x58, 0x7f, 0x86, 0xc2, 0x72, 0x26, 0x6e, 0x45, 0x2d, 0xc1, 0xa3, 0x4b, 0x6f, 0x01, 0x2b, + 0x25, 0x77, 0x61, 0x74, 0xa0, 0x6f, 0xc6, 0x29, 0x96, 0xf2, 0xad, 0x92, 0x1a, 0x47, 0xe1, 0xde, + 0xf6, 0xe6, 0x77, 0xef, 0x28, 0xfc, 0x78, 0x16, 0xa6, 0x59, 0xbf, 0x96, 0xba, 0xc1, 0xbe, 0xeb, + 0x39, 0xc1, 0xd1, 0x33, 0xab, 0x55, 0x7d, 0x57, 0xbb, 0x92, 0x2d, 0xc8, 0xc3, 0x4c, 0x6d, 0xdb, + 0x40, 0xca, 0xd5, 0xff, 0x76, 0x18, 0x66, 0x53, 0xa8, 0xc8, 0x1b, 0xda, 0xc3, 0xc7, 0xbc, 0x74, + 0xb1, 0xfe, 0xce, 0x71, 0x71, 0x42, 0xa2, 0x6f, 0x46, 0x2e, 0xd7, 0x8b, 0xba, 0x95, 0x0f, 0xef, + 0x29, 0x7c, 0x07, 0x51, 0xad, 0x7c, 0x74, 0xdb, 0x9e, 0x6b, 0x30, 0x6c, 0xba, 0x4d, 0x2a, 0x2d, + 0xdb, 0x50, 0xe0, 0xf2, 0x18, 0x40, 0x7b, 0xc9, 0x67, 0x00, 0xb2, 0x02, 0xa3, 0xec, 0x8f, 0x35, + 0xbb, 0x23, 0xde, 0xa8, 0x48, 0xa8, 0x14, 0x40, 0x68, 0xc7, 0x69, 0xef, 0xa9, 0x7a, 0x81, 0x26, + 0xb5, 0x5a, 0x76, 0x47, 0x93, 0x0c, 0x39, 0xa2, 0xa6, 0x5f, 0xc8, 0xf7, 0xd6, 0x2f, 0x64, 0x4e, + 0xd5, 0x2f, 0xec, 0x02, 0xd4, 0x9c, 0xbd, 0xb6, 0xd3, 0xde, 0x2b, 0x35, 0xf7, 0x84, 0xa3, 0xfa, + 0xb5, 0xde, 0xa3, 0x70, 0x3d, 0x42, 0xc6, 0x89, 0xfb, 0x3c, 0x3e, 0x24, 0x73, 0x98, 0x65, 0x37, + 0xf7, 0x34, 0x87, 0x1a, 0x85, 0x33, 0x59, 0x07, 0x28, 0xd5, 0x03, 0xe7, 0x11, 0x9b, 0xc2, 0xbe, + 0x10, 0xe3, 0xe4, 0x27, 0x97, 0x4b, 0xf7, 0xe9, 0x11, 0x5e, 0x3d, 0xe4, 0x93, 0x9c, 0x8d, 0xa8, + 0x6c, 0x25, 0x68, 0xde, 0x12, 0x11, 0x07, 0xd2, 0x81, 0x73, 0xa5, 0x46, 0xc3, 0x61, 0x6d, 0xb0, + 0x9b, 0x9b, 0x3c, 0xc4, 0x00, 0xb2, 0x9e, 0x48, 0x67, 0x7d, 0x4d, 0xb0, 0x7e, 0xc9, 0x0e, 0xa9, + 0x2c, 0x19, 0x99, 0x20, 0x56, 0x4d, 0x3a, 0x63, 0xa3, 0x06, 0x53, 0x7a, 0xe3, 0x75, 0x07, 0xfb, + 0x09, 0xc8, 0x9b, 0xb5, 0x92, 0x55, 0x5b, 0x29, 0xdd, 0x2c, 0x64, 0x48, 0x01, 0x26, 0xc4, 0xaf, + 0x45, 0x6b, 0xf1, 0xad, 0xdb, 0x85, 0xac, 0x06, 0x79, 0xeb, 0xe6, 0x62, 0x21, 0xb7, 0x90, 0x9d, + 0xcf, 0xc4, 0x7c, 0xdb, 0x46, 0x0b, 0x79, 0xae, 0x7c, 0x35, 0x7e, 0x35, 0x03, 0x79, 0xf9, 0xed, + 0xe4, 0x36, 0xe4, 0x6a, 0xb5, 0x95, 0x98, 0x37, 0x5a, 0x74, 0xca, 0xf0, 0xfd, 0xd4, 0xf7, 0x55, + 0x93, 0x63, 0x46, 0xc0, 0xe8, 0x36, 0x57, 0x6b, 0x42, 0x06, 0x91, 0x74, 0xd1, 0xe6, 0xcd, 0xe9, + 0x52, 0x5c, 0x74, 0x6e, 0x43, 0xee, 0xde, 0xf6, 0xa6, 0xb8, 0x64, 0x49, 0xba, 0x68, 0x3f, 0xe5, + 0x74, 0x1f, 0x1d, 0xaa, 0xbb, 0x3c, 0x23, 0x30, 0x4c, 0x18, 0x57, 0x26, 0x32, 0x3f, 0x74, 0x5b, + 0x6e, 0xe8, 0x55, 0x2e, 0x0e, 0x5d, 0x06, 0x31, 0x45, 0x09, 0x13, 0x45, 0x56, 0xdd, 0xba, 0xdd, + 0x14, 0xa7, 0x37, 0x8a, 0x22, 0x4d, 0x06, 0x30, 0x39, 0xdc, 0xf8, 0x9d, 0x0c, 0x14, 0x50, 0x60, + 0x43, 0x93, 0x61, 0xf7, 0x80, 0xb6, 0x1f, 0xde, 0x24, 0x6f, 0xca, 0x25, 0x97, 0x09, 0x15, 0x5d, + 0xc3, 0xb8, 0xe4, 0x62, 0x2f, 0x65, 0x62, 0xd9, 0x29, 0x8e, 0xfb, 0xd9, 0xc1, 0x1d, 0x7e, 0x4f, + 0x71, 0xdc, 0x2f, 0xc2, 0x30, 0x7e, 0x8e, 0xd8, 0x1c, 0xf1, 0xcb, 0x03, 0x06, 0x30, 0x39, 0x5c, + 0xd9, 0x9b, 0x7e, 0x32, 0x9b, 0x68, 0xc3, 0xe2, 0x77, 0x95, 0xd3, 0xac, 0xde, 0xb8, 0x81, 0xf6, + 0xeb, 0x0f, 0x61, 0x2e, 0xde, 0x25, 0xa8, 0x84, 0x2c, 0xc1, 0xb4, 0x0e, 0x97, 0xfa, 0xc8, 0x0b, + 0xa9, 0x75, 0x3d, 0x5c, 0x34, 0xe3, 0xf8, 0xc6, 0xff, 0x9e, 0x81, 0x31, 0xfc, 0xd3, 0xec, 0x36, + 0xd1, 0x74, 0xab, 0xb4, 0x5d, 0x13, 0xaa, 0x11, 0x55, 0x98, 0xb3, 0x0f, 0x7d, 0x4b, 0xe8, 0x51, + 0xb4, 0x3d, 0x26, 0x44, 0x16, 0xa4, 0xfc, 0x25, 0x41, 0x2a, 0xe5, 0x42, 0x52, 0xfe, 0xe4, 0xe0, + 0xc7, 0x48, 0x05, 0x32, 0x1a, 0x7c, 0x6e, 0xd7, 0xd8, 0xf4, 0x53, 0x6d, 0x29, 0x90, 0xce, 0x6d, + 0xea, 0x06, 0x9f, 0x1c, 0x0d, 0x4d, 0x29, 0xb6, 0x6b, 0x25, 0x73, 0x5d, 0x33, 0xa5, 0x60, 0xdf, + 0xa8, 0xe9, 0xa5, 0x04, 0x92, 0xf1, 0x73, 0xe3, 0xf1, 0x0e, 0x14, 0x07, 0xde, 0x19, 0xd7, 0xc6, + 0x3b, 0x30, 0x5c, 0x6a, 0x36, 0xdd, 0x43, 0xb1, 0x4b, 0xc8, 0x9b, 0x6b, 0xd8, 0x7f, 0xfc, 0x3c, + 0x43, 0xb5, 0x9e, 0xe6, 0x08, 0xc8, 0x00, 0xa4, 0x0c, 0x63, 0xa5, 0xed, 0x5a, 0xb5, 0x5a, 0xd9, + 0xdc, 0xe4, 0x4e, 0x4f, 0xb9, 0xa5, 0x57, 0x65, 0xff, 0x38, 0x4e, 0xc3, 0x8a, 0xbf, 0xe6, 0x47, + 0xf2, 0x7b, 0x44, 0x47, 0xde, 0x03, 0xb8, 0xe7, 0x3a, 0x6d, 0xae, 0xc6, 0x14, 0x8d, 0x67, 0x37, + 0xf0, 0xf1, 0x8f, 0x5c, 0xa7, 0x2d, 0xf4, 0x9e, 0xec, 0xdb, 0x23, 0x24, 0x53, 0xf9, 0x9b, 0xf5, + 0xf4, 0x92, 0xcb, 0xcd, 0xb1, 0x86, 0xa3, 0x9e, 0xde, 0x71, 0x13, 0xfa, 0x36, 0x89, 0x46, 0x5a, + 0x30, 0x5d, 0xeb, 0xee, 0xed, 0x51, 0xb6, 0xb3, 0x0b, 0x7d, 0xd2, 0x88, 0xb8, 0x4a, 0x87, 0xa1, + 0x66, 0xf8, 0x7d, 0x84, 0x5d, 0x86, 0xfc, 0xa5, 0x37, 0xd8, 0x44, 0xfe, 0xf6, 0x71, 0x51, 0x58, + 0x09, 0x30, 0x51, 0xcd, 0x97, 0xf4, 0x49, 0x6d, 0x52, 0x9c, 0x37, 0x79, 0x00, 0x23, 0x77, 0x9d, + 0x60, 0xa5, 0xbb, 0x23, 0x9c, 0x78, 0x5e, 0xea, 0xb3, 0x68, 0x38, 0x22, 0x7f, 0xa6, 0xda, 0x73, + 0x82, 0xfd, 0xae, 0xea, 0x46, 0x21, 0xd8, 0x90, 0x6d, 0xc8, 0x97, 0x1d, 0xaf, 0xde, 0xa4, 0xe5, + 0xaa, 0x38, 0xfb, 0x5f, 0xee, 0xc3, 0x52, 0xa2, 0xf2, 0x7e, 0xa9, 0xe3, 0xaf, 0xba, 0xa3, 0xca, + 0x02, 0x12, 0x83, 0xfc, 0x9b, 0x19, 0x78, 0x3e, 0xfc, 0xfa, 0xd2, 0x1e, 0x6d, 0x07, 0x6b, 0x76, + 0x50, 0xdf, 0xa7, 0x9e, 0xe8, 0xa5, 0xb1, 0x7e, 0xbd, 0xf4, 0xf9, 0x44, 0x2f, 0x5d, 0x8d, 0x7a, + 0xc9, 0x66, 0xcc, 0xac, 0x16, 0xe7, 0x96, 0xec, 0xb3, 0x7e, 0xb5, 0x12, 0x0b, 0x20, 0x7a, 0x77, + 0x14, 0x4e, 0xa0, 0xaf, 0xf6, 0x69, 0x70, 0x84, 0x2c, 0x9c, 0x37, 0xc2, 0xdf, 0x9a, 0xf5, 0x61, + 0x08, 0x25, 0xf7, 0xa5, 0xc7, 0x1c, 0x97, 0x4a, 0x2e, 0xf7, 0xe1, 0xcd, 0xbd, 0xe8, 0x66, 0xfb, + 0xf8, 0xc6, 0xf2, 0xd1, 0x5e, 0xb5, 0x77, 0x84, 0x20, 0x72, 0xca, 0x68, 0xaf, 0xda, 0xd1, 0x68, + 0x37, 0xed, 0xf8, 0x68, 0xaf, 0xda, 0x3b, 0xa4, 0xcc, 0xdd, 0x7c, 0xb9, 0x4f, 0xe8, 0xa5, 0x7e, + 0xdc, 0xca, 0x1b, 0xfc, 0x64, 0x4e, 0x71, 0xf7, 0xfd, 0x32, 0x8c, 0xd5, 0x3a, 0x76, 0x9d, 0x36, + 0x9d, 0xdd, 0x40, 0x3c, 0x44, 0xbf, 0xd2, 0x87, 0x55, 0x88, 0x2b, 0x1e, 0x31, 0xe5, 0x4f, 0xf5, + 0x9a, 0x14, 0xe2, 0xb0, 0x2f, 0xdc, 0xdc, 0x58, 0x9b, 0x9f, 0x3e, 0xf5, 0x0b, 0x37, 0x37, 0xd6, + 0x84, 0xcc, 0xd1, 0x69, 0x69, 0x32, 0xc7, 0xc6, 0x1a, 0xe9, 0xc0, 0xd4, 0x26, 0xf5, 0x3c, 0x7b, + 0xd7, 0xf5, 0x5a, 0x5c, 0x7f, 0xc9, 0xfd, 0x8c, 0xae, 0xf5, 0xe3, 0xa7, 0x11, 0x70, 0xb5, 0x5d, + 0x20, 0x61, 0x56, 0x5c, 0xe9, 0x19, 0xe3, 0xcf, 0xfa, 0x64, 0xc9, 0x09, 0x76, 0xba, 0xf5, 0x03, + 0x1a, 0xcc, 0xcf, 0x9c, 0xda, 0x27, 0x21, 0x2e, 0xef, 0x93, 0x1d, 0xf9, 0x53, 0xed, 0x93, 0x10, + 0xc7, 0xf8, 0xcd, 0x1c, 0x5c, 0xe8, 0xd1, 0x05, 0x64, 0x5d, 0x6e, 0xb9, 0x19, 0x4d, 0x8b, 0xdd, + 0x03, 0xfd, 0xfa, 0xa9, 0xbb, 0xf0, 0x2a, 0x14, 0x96, 0xef, 0xa3, 0xac, 0xce, 0x1f, 0x72, 0xca, + 0x25, 0x79, 0x58, 0xa1, 0xa6, 0x95, 0x1e, 0xa0, 0x5d, 0xa6, 0x7c, 0x00, 0xaa, 0x6b, 0x0e, 0xc8, + 0x09, 0xca, 0x85, 0xef, 0xcf, 0xc2, 0x10, 0x1e, 0x9c, 0xb1, 0xb0, 0x4b, 0x99, 0x33, 0x85, 0x5d, + 0xfa, 0x02, 0x4c, 0x2c, 0xdf, 0xe7, 0x37, 0xe9, 0x15, 0xdb, 0xdf, 0x17, 0xdb, 0x3a, 0x9a, 0x39, + 0xd0, 0x03, 0x4b, 0x5c, 0xbc, 0xf7, 0x6d, 0x4d, 0x66, 0xd5, 0x28, 0xc8, 0x16, 0xcc, 0xf2, 0x6f, + 0x73, 0x76, 0x9d, 0x3a, 0x8f, 0xde, 0xe2, 0xd8, 0x4d, 0xb1, 0xc7, 0xbf, 0x7c, 0x72, 0x5c, 0x2c, + 0xd2, 0x03, 0xb4, 0x38, 0x15, 0xe5, 0x96, 0x8f, 0x08, 0xaa, 0xe9, 0x69, 0x0a, 0xbd, 0x1a, 0x52, + 0xc2, 0x1c, 0xc3, 0x0a, 0x59, 0x6d, 0xac, 0x6e, 0x86, 0xcb, 0x91, 0x8c, 0x3f, 0x1b, 0x86, 0x85, + 0xde, 0xdb, 0x33, 0xf9, 0xa2, 0x3e, 0x80, 0x57, 0x4e, 0xdd, 0xd0, 0x4f, 0x1f, 0xc3, 0x2f, 0xc1, + 0xdc, 0x72, 0x3b, 0xa0, 0x5e, 0xc7, 0x73, 0x64, 0x10, 0x91, 0x15, 0xd7, 0x97, 0x16, 0xbe, 0x68, + 0x6a, 0x4b, 0xc3, 0x72, 0xa1, 0x5b, 0x45, 0x7b, 0x63, 0x85, 0x55, 0x2a, 0x07, 0xb2, 0x0c, 0x53, + 0x0a, 0xbc, 0xd9, 0xdd, 0x53, 0x5f, 0xa7, 0x54, 0x9e, 0xcd, 0xae, 0x6a, 0xfe, 0x18, 0x23, 0x42, + 0x2b, 0x62, 0x76, 0x65, 0xac, 0xdf, 0xdb, 0xbe, 0x5f, 0x13, 0xc3, 0xc9, 0xad, 0x88, 0x11, 0x6a, + 0x7d, 0x74, 0x78, 0xa0, 0xed, 0xaf, 0x11, 0xf2, 0xc2, 0x2f, 0xe6, 0xc4, 0x8c, 0x7a, 0x19, 0x72, + 0xb5, 0xee, 0x8e, 0xfa, 0xe6, 0xe6, 0x6b, 0x07, 0x1c, 0x2b, 0x25, 0x9f, 0x03, 0x30, 0x69, 0xc7, + 0xf5, 0x9d, 0xc0, 0xf5, 0x8e, 0x54, 0x37, 0x36, 0x2f, 0x84, 0xea, 0x96, 0xf6, 0x12, 0x4a, 0x56, + 0x60, 0x3a, 0xfa, 0xf5, 0xe0, 0xb0, 0x2d, 0x74, 0xc9, 0x63, 0x5c, 0xbb, 0x12, 0x91, 0x5b, 0x2e, + 0x2b, 0x53, 0x8f, 0xec, 0x18, 0x19, 0x59, 0x84, 0xfc, 0xb6, 0xeb, 0x1d, 0xec, 0xb2, 0x31, 0x1e, + 0x8a, 0x84, 0x8a, 0x43, 0x01, 0x53, 0x0f, 0x4f, 0x89, 0xc7, 0x96, 0xcb, 0x72, 0xfb, 0x91, 0xe3, + 0xb9, 0xf8, 0xa2, 0xa7, 0x5a, 0x8f, 0xd0, 0x08, 0xac, 0x39, 0x10, 0x47, 0x60, 0x72, 0x0d, 0x86, + 0x4b, 0xf5, 0xc0, 0xf5, 0x84, 0xe9, 0x08, 0x9f, 0x29, 0x0c, 0xa0, 0xcd, 0x14, 0x06, 0x60, 0x9d, + 0x68, 0xd2, 0x5d, 0xf1, 0xba, 0x83, 0x9d, 0xe8, 0xd1, 0x5d, 0xcd, 0x3b, 0x9a, 0xee, 0x32, 0xa1, + 0xc8, 0xa4, 0xbb, 0xa8, 0xf8, 0xd0, 0x82, 0x8a, 0xed, 0x26, 0x54, 0x66, 0x02, 0xcd, 0xf8, 0xfd, + 0xb1, 0x9e, 0x53, 0x9e, 0x9d, 0x42, 0x67, 0x9b, 0xf2, 0xab, 0xf6, 0x00, 0x53, 0xfe, 0x8d, 0xd0, + 0x7e, 0x5f, 0x0d, 0x09, 0x80, 0x10, 0xf5, 0x18, 0xe4, 0x38, 0x0b, 0xbf, 0x94, 0x3f, 0xcb, 0x24, + 0x12, 0x9d, 0x94, 0x1d, 0xb4, 0x93, 0x72, 0x03, 0x75, 0x12, 0x59, 0x82, 0xc9, 0x30, 0x2c, 0xdd, + 0x86, 0x1d, 0x68, 0xdb, 0x5a, 0x18, 0x4b, 0xd0, 0xea, 0xd8, 0x81, 0xba, 0xad, 0xe9, 0x24, 0xe4, + 0x5d, 0x18, 0x17, 0x4e, 0x2c, 0xc8, 0x61, 0x38, 0x32, 0x23, 0x96, 0x1e, 0x2f, 0x31, 0x7a, 0x15, + 0x9d, 0xad, 0xe6, 0x0d, 0xa7, 0x43, 0x9b, 0x4e, 0x9b, 0xd6, 0xf0, 0xb1, 0x42, 0xcc, 0x18, 0xfe, + 0x68, 0x2b, 0x4a, 0x2c, 0xfe, 0x8e, 0xa1, 0xe9, 0x0f, 0x35, 0xa2, 0xf8, 0x64, 0x1d, 0x3d, 0xd3, + 0x64, 0xe5, 0x56, 0x7c, 0xde, 0xaa, 0xbb, 0xe7, 0x48, 0xbb, 0x65, 0x69, 0xc5, 0xe7, 0x59, 0x4d, + 0x06, 0x8d, 0x59, 0xf1, 0x71, 0x54, 0x76, 0xc3, 0x61, 0x3f, 0xaa, 0x15, 0xf1, 0x92, 0x88, 0x37, + 0x1c, 0x24, 0xd2, 0x8d, 0xc5, 0x39, 0x92, 0xac, 0x66, 0xb9, 0x65, 0x3b, 0x4d, 0xe1, 0xf9, 0x1d, + 0x55, 0x43, 0x19, 0x34, 0x5e, 0x0d, 0xa2, 0x92, 0x3a, 0x4c, 0x98, 0x74, 0x77, 0xc3, 0x73, 0x03, + 0x5a, 0x0f, 0x68, 0x43, 0x48, 0x75, 0xf2, 0x62, 0xb3, 0xe4, 0xba, 0x5c, 0x62, 0x5d, 0x7a, 0xf3, + 0xf7, 0x8f, 0x8b, 0x99, 0x6f, 0x1f, 0x17, 0x81, 0x81, 0xb8, 0x27, 0xc2, 0xc9, 0x71, 0xf1, 0x02, + 0x1b, 0xff, 0x8e, 0x24, 0x56, 0x4f, 0x27, 0x95, 0x29, 0xf9, 0x16, 0xdb, 0xaf, 0xc3, 0x2e, 0x89, + 0x2a, 0x9b, 0xe8, 0x51, 0xd9, 0x5b, 0xa9, 0x95, 0x15, 0x95, 0xde, 0x4e, 0xad, 0x34, 0xb5, 0x12, + 0xf2, 0x1e, 0x8c, 0x97, 0xab, 0x65, 0xb7, 0xbd, 0xeb, 0xec, 0xd5, 0x56, 0x4a, 0x28, 0x1a, 0x0a, + 0x2f, 0x94, 0xba, 0x63, 0xd5, 0x11, 0x6e, 0xf9, 0xfb, 0xb6, 0xe6, 0x8c, 0x18, 0xe1, 0x93, 0xbb, + 0x30, 0x25, 0x7f, 0x9a, 0x74, 0x77, 0xcb, 0xac, 0xa2, 0x44, 0x28, 0x5d, 0x7f, 0x42, 0x0e, 0xac, + 0x23, 0xba, 0x9e, 0x7a, 0x53, 0x88, 0x91, 0xb1, 0xc9, 0x58, 0xa1, 0x9d, 0xa6, 0x7b, 0xc4, 0x3e, + 0x6f, 0xd3, 0xa1, 0x1e, 0xca, 0x80, 0x62, 0x32, 0x36, 0xc2, 0x12, 0x2b, 0x70, 0xf4, 0xf7, 0x53, + 0x9d, 0x88, 0xac, 0xc3, 0x8c, 0x98, 0xe2, 0x0f, 0x1d, 0xdf, 0xd9, 0x71, 0x9a, 0x4e, 0x70, 0x84, + 0xd2, 0x9f, 0x10, 0x60, 0xe4, 0xba, 0x78, 0x14, 0x96, 0x2a, 0xcc, 0x92, 0xa4, 0xc6, 0xaf, 0x66, + 0xe1, 0x85, 0x7e, 0x37, 0x21, 0x52, 0xd3, 0x37, 0xb3, 0xab, 0x03, 0xdc, 0x9e, 0x4e, 0xdf, 0xce, + 0x96, 0x61, 0xea, 0x81, 0xb7, 0x67, 0xb7, 0x9d, 0x6f, 0xe2, 0x0d, 0x37, 0x34, 0x66, 0xc4, 0xce, + 0x70, 0x95, 0x12, 0x7d, 0xb6, 0xc7, 0x88, 0x16, 0x1e, 0x89, 0x6d, 0xee, 0xe3, 0xba, 0xc5, 0xdd, + 0x86, 0xb1, 0xb2, 0xdb, 0x0e, 0xe8, 0xe3, 0x20, 0xe6, 0x04, 0xce, 0x81, 0x71, 0x97, 0x40, 0x89, + 0x6a, 0xfc, 0xab, 0x2c, 0xbc, 0xd8, 0xf7, 0x2a, 0x40, 0x36, 0xf5, 0x5e, 0xbb, 0x36, 0xc8, 0xfd, + 0xe1, 0xf4, 0x6e, 0x5b, 0x4c, 0xd8, 0xdd, 0x9d, 0xea, 0x75, 0xb2, 0xf0, 0xdf, 0x67, 0x44, 0x27, + 0x7d, 0x1a, 0x46, 0xb1, 0xaa, 0xb0, 0x8b, 0xb8, 0x96, 0x0c, 0x77, 0x61, 0x47, 0xd7, 0x92, 0x71, + 0x34, 0x72, 0x0b, 0xf2, 0x65, 0xbb, 0xd9, 0x54, 0x5c, 0xe4, 0x51, 0x9a, 0xaf, 0x23, 0x2c, 0x66, + 0xa6, 0x29, 0x11, 0x99, 0xec, 0xc3, 0xff, 0x56, 0xce, 0x0a, 0xdc, 0x2c, 0x05, 0x59, 0xec, 0xb8, + 0x50, 0x90, 0x31, 0xb0, 0x66, 0xdd, 0x0d, 0x9d, 0x70, 0x79, 0x60, 0x4d, 0x06, 0xd0, 0x02, 0x6b, + 0x32, 0x80, 0xf1, 0x6b, 0x39, 0xb8, 0xd4, 0xff, 0x3e, 0x4b, 0xb6, 0xf4, 0x21, 0x78, 0x7d, 0xa0, + 0x5b, 0xf0, 0xe9, 0x63, 0x20, 0xc3, 0xd4, 0xf2, 0x0e, 0xb9, 0x9a, 0x74, 0x0e, 0xf9, 0xce, 0x71, + 0x51, 0xb1, 0xfd, 0xbd, 0xe7, 0x3a, 0x6d, 0xe5, 0xcd, 0xe4, 0x1b, 0x9a, 0x64, 0xc8, 0x5f, 0xef, + 0x6f, 0x0f, 0xf6, 0x65, 0x11, 0x1d, 0xdf, 0x57, 0x06, 0x95, 0x28, 0x3f, 0x0f, 0x85, 0x38, 0x29, + 0xb9, 0x02, 0x43, 0xf8, 0x01, 0x8a, 0x87, 0x4b, 0x8c, 0x03, 0x96, 0x2f, 0xac, 0x89, 0xb9, 0x83, + 0x51, 0x03, 0xd0, 0x1e, 0x40, 0xd7, 0x0d, 0x8a, 0xa8, 0x01, 0xdc, 0x9c, 0x20, 0xa9, 0x1f, 0x8c, + 0x11, 0x19, 0x7f, 0x91, 0x81, 0x8b, 0x3d, 0x35, 0x05, 0x64, 0x43, 0x1f, 0xb0, 0x57, 0x4f, 0x53, + 0x2d, 0x9c, 0x3a, 0x56, 0x0b, 0x3f, 0x2a, 0xe7, 0xfe, 0xfb, 0x30, 0x51, 0xeb, 0xee, 0xc4, 0xef, + 0x67, 0x3c, 0xa6, 0x87, 0x02, 0x57, 0x4f, 0x30, 0x15, 0x9f, 0xb5, 0x5f, 0x1a, 0x3c, 0x08, 0x03, + 0x20, 0xc5, 0xea, 0x30, 0x74, 0x6b, 0x4d, 0x46, 0x4d, 0xd0, 0x89, 0x8c, 0x5f, 0xc9, 0xa6, 0x5f, + 0x74, 0xef, 0x96, 0x37, 0xce, 0x72, 0xd1, 0xbd, 0x5b, 0xde, 0x38, 0xbd, 0xed, 0xff, 0x58, 0xb6, + 0x1d, 0x1f, 0x66, 0xc5, 0x8e, 0x27, 0x15, 0x9d, 0xe2, 0x61, 0x56, 0xee, 0x8e, 0xbe, 0xfe, 0x30, + 0x2b, 0x91, 0xc9, 0x5b, 0x30, 0xb6, 0xea, 0xf2, 0x80, 0x06, 0xb2, 0xc5, 0xdc, 0xef, 0x53, 0x02, + 0xd5, 0xed, 0x31, 0xc4, 0x64, 0x77, 0x0b, 0x7d, 0xe0, 0xa5, 0x71, 0x25, 0xde, 0x2d, 0x62, 0xd3, + 0x45, 0x57, 0x07, 0xea, 0x64, 0xc6, 0x7f, 0x34, 0x0c, 0xc6, 0xe9, 0xca, 0x0c, 0xf2, 0xa1, 0xde, + 0x77, 0xd7, 0x07, 0x56, 0x83, 0x0c, 0xb4, 0xe5, 0x96, 0xba, 0x0d, 0x87, 0xb6, 0xeb, 0x7a, 0x34, + 0x02, 0x01, 0x53, 0xb7, 0x40, 0x89, 0xf7, 0x71, 0x9c, 0x03, 0x17, 0xfe, 0xeb, 0x5c, 0xb4, 0xd4, + 0x62, 0x47, 0x63, 0xe6, 0x63, 0x1c, 0x8d, 0xe4, 0x3e, 0x14, 0x54, 0x88, 0xf2, 0x42, 0x8b, 0x92, + 0x8b, 0xc6, 0x28, 0xf6, 0x51, 0x09, 0x42, 0xfd, 0x7c, 0xcd, 0x0d, 0x7e, 0xbe, 0x46, 0xe2, 0x3b, + 0xd6, 0x3f, 0x94, 0x14, 0xdf, 0xe3, 0x0e, 0xc0, 0x0a, 0xba, 0x8c, 0x5e, 0xe0, 0x8b, 0x43, 0x6b, + 0x58, 0x8f, 0x5e, 0x90, 0x72, 0x70, 0xa9, 0xe8, 0x32, 0x00, 0x03, 0xfe, 0x54, 0xfc, 0x8f, 0xc3, + 0x00, 0x0c, 0x9c, 0x3e, 0x2d, 0x00, 0x43, 0x48, 0xc2, 0x0e, 0x40, 0xb3, 0xdb, 0xe6, 0x11, 0x9c, + 0x47, 0xa3, 0x03, 0xd0, 0xeb, 0xb6, 0xad, 0x78, 0x14, 0xe7, 0x10, 0xd1, 0xf8, 0x8d, 0xa1, 0x74, + 0xe1, 0x20, 0xd4, 0x77, 0x9d, 0x45, 0x38, 0x08, 0x89, 0x3e, 0x99, 0x99, 0xba, 0x05, 0xb3, 0xd2, + 0x3e, 0x4f, 0x1a, 0x7a, 0x6d, 0x99, 0xab, 0x62, 0x88, 0x51, 0x6f, 0x14, 0x5a, 0xf6, 0x49, 0x63, + 0x31, 0xab, 0xeb, 0x69, 0x7a, 0xa3, 0x14, 0xfa, 0x85, 0x5f, 0x97, 0x6a, 0x31, 0x75, 0x10, 0xb6, + 0xb6, 0xc2, 0xb9, 0x1c, 0x1b, 0x84, 0x6e, 0x57, 0x1b, 0x46, 0x9d, 0x84, 0xef, 0xbd, 0x52, 0xe5, + 0x80, 0x4c, 0x14, 0x59, 0x51, 0x51, 0x54, 0xc4, 0xb8, 0xc4, 0x88, 0xc8, 0x1e, 0x5c, 0x8c, 0x44, + 0x69, 0xe5, 0xa6, 0x80, 0x1c, 0x79, 0x83, 0xaf, 0x9d, 0x1c, 0x17, 0x5f, 0x55, 0x44, 0x71, 0xf5, + 0xc2, 0x11, 0xe3, 0xde, 0x9b, 0x17, 0xdb, 0x6f, 0x97, 0x3c, 0xbb, 0x5d, 0xdf, 0x57, 0xe6, 0x3c, + 0xee, 0xb7, 0x3b, 0x08, 0x4d, 0xb8, 0x90, 0x47, 0xc8, 0xc6, 0x8f, 0x66, 0x61, 0x8a, 0x9f, 0xd5, + 0xfc, 0x75, 0xee, 0x99, 0x7d, 0xf9, 0x7c, 0x47, 0x7b, 0xf9, 0x94, 0xd1, 0xce, 0xd4, 0xa6, 0x0d, + 0xf4, 0xee, 0xb9, 0x0f, 0x24, 0x49, 0x43, 0x4c, 0x98, 0x50, 0xa1, 0xfd, 0x9f, 0x3c, 0x6f, 0x46, + 0x81, 0xf1, 0x84, 0xa8, 0x84, 0xef, 0xce, 0xbe, 0xa9, 0xf1, 0x30, 0x7e, 0x24, 0x0b, 0x93, 0x8a, + 0x9d, 0xca, 0x33, 0xdb, 0xf1, 0x9f, 0xd7, 0x3a, 0x7e, 0x3e, 0xf4, 0x9f, 0x0b, 0x5b, 0x36, 0x50, + 0xbf, 0x77, 0x61, 0x26, 0x41, 0x12, 0x37, 0xf7, 0xc9, 0x0c, 0x62, 0xee, 0xf3, 0x46, 0x32, 0xca, + 0x16, 0x0f, 0x56, 0x1f, 0xc6, 0x5c, 0x51, 0xc3, 0x7a, 0xfd, 0x78, 0x16, 0xe6, 0xc4, 0x2f, 0x0c, + 0x4b, 0xc9, 0x85, 0xd5, 0x67, 0x76, 0x2c, 0x4a, 0xda, 0x58, 0x14, 0xf5, 0xb1, 0x50, 0x1a, 0xd8, + 0x7b, 0x48, 0x8c, 0xbf, 0x0d, 0x30, 0xdf, 0x8b, 0x60, 0x60, 0x37, 0xf5, 0xc8, 0x09, 0x30, 0x3b, + 0x80, 0x13, 0xe0, 0x2a, 0x14, 0xb0, 0x2a, 0x11, 0x78, 0xce, 0xdf, 0x32, 0xab, 0xa2, 0x93, 0x50, + 0xbf, 0xc0, 0x63, 0x87, 0x8a, 0x40, 0x78, 0x7e, 0x4c, 0xe7, 0x91, 0xa0, 0x24, 0xbf, 0x98, 0x81, + 0x29, 0x04, 0x2e, 0x3f, 0xa2, 0xed, 0x00, 0x99, 0x0d, 0x09, 0x9f, 0xb5, 0xf0, 0x61, 0xb4, 0x16, + 0x78, 0x4e, 0x7b, 0x4f, 0xbc, 0x8c, 0xee, 0x88, 0x97, 0xd1, 0x77, 0xf9, 0x8b, 0xee, 0xf5, 0xba, + 0xdb, 0xba, 0xb1, 0xe7, 0xd9, 0x8f, 0x1c, 0x6e, 0x82, 0x65, 0x37, 0x6f, 0x44, 0x39, 0x56, 0x3a, + 0x4e, 0x2c, 0xfb, 0x89, 0x60, 0x85, 0xaf, 0xce, 0xfc, 0x43, 0x29, 0x56, 0x1b, 0x57, 0xcd, 0xe8, + 0x5f, 0x44, 0xbe, 0x07, 0x2e, 0xf0, 0x70, 0x50, 0xec, 0x86, 0xef, 0xb4, 0xbb, 0x6e, 0xd7, 0x5f, + 0xb2, 0xeb, 0x07, 0x4c, 0xcc, 0xe7, 0x7e, 0xb7, 0xd8, 0xf2, 0x7a, 0x58, 0x68, 0xed, 0xf0, 0x52, + 0x2d, 0xce, 0x40, 0x3a, 0x03, 0xb2, 0x02, 0x33, 0xbc, 0xa8, 0xd4, 0x0d, 0xdc, 0x5a, 0xdd, 0x6e, + 0x3a, 0xed, 0x3d, 0x94, 0x25, 0xf2, 0x5c, 0x94, 0xb1, 0xbb, 0x81, 0x6b, 0xf9, 0x1c, 0xae, 0x6a, + 0x6a, 0x12, 0x44, 0xa4, 0x0a, 0xd3, 0x26, 0xb5, 0x1b, 0x6b, 0xf6, 0xe3, 0xb2, 0xdd, 0xb1, 0xeb, + 0x4e, 0xc0, 0xe3, 0x53, 0xe6, 0xb8, 0x40, 0xe7, 0x51, 0xbb, 0x61, 0xb5, 0xec, 0xc7, 0x56, 0x5d, + 0x14, 0xea, 0x2a, 0x7b, 0x8d, 0x2e, 0x64, 0xe5, 0xb4, 0x43, 0x56, 0x63, 0x71, 0x56, 0x4e, 0xbb, + 0x37, 0xab, 0x88, 0x4e, 0xb2, 0xda, 0xb4, 0xbd, 0x3d, 0x1a, 0x70, 0x43, 0x69, 0xb8, 0x9c, 0xb9, + 0x9a, 0x51, 0x58, 0x05, 0x58, 0x66, 0xa1, 0xd1, 0x74, 0x9c, 0x95, 0x42, 0xc7, 0x66, 0xde, 0xb6, + 0xe7, 0x04, 0x54, 0x6d, 0xe1, 0x38, 0x7e, 0x16, 0xf6, 0x3f, 0x9a, 0x98, 0xf7, 0x6a, 0x62, 0x82, + 0x32, 0xe2, 0xa6, 0x34, 0x72, 0x22, 0xc1, 0x2d, 0xbd, 0x95, 0x09, 0xca, 0x90, 0x9b, 0xda, 0xce, + 0x49, 0x6c, 0xa7, 0xc2, 0xad, 0x47, 0x43, 0x13, 0x94, 0x64, 0x9d, 0x75, 0x5a, 0xc0, 0xe4, 0x26, + 0xb7, 0x2d, 0x2c, 0xb8, 0xa7, 0xf0, 0xd3, 0x5e, 0x11, 0x66, 0x88, 0x05, 0x4f, 0x16, 0x5b, 0x29, + 0xf6, 0xdc, 0x71, 0x62, 0xf2, 0x37, 0x60, 0x7a, 0xcb, 0xa7, 0x77, 0xaa, 0x1b, 0x35, 0x19, 0x3d, + 0x0a, 0x95, 0x8b, 0x53, 0x8b, 0x37, 0x4f, 0xd9, 0x74, 0xae, 0xab, 0x34, 0x98, 0xb2, 0x84, 0x8f, + 0x5b, 0xd7, 0xa7, 0xd6, 0xae, 0xd3, 0xf1, 0xc3, 0x50, 0x7c, 0xea, 0xb8, 0xc5, 0xaa, 0x32, 0x56, + 0x60, 0x26, 0xc1, 0x86, 0x4c, 0x01, 0x30, 0xa0, 0xb5, 0xb5, 0x5e, 0x5b, 0xde, 0x2c, 0x3c, 0x47, + 0x0a, 0x30, 0x81, 0xbf, 0x97, 0xd7, 0x4b, 0x4b, 0xab, 0xcb, 0x95, 0x42, 0x86, 0xcc, 0xc0, 0x24, + 0x42, 0x2a, 0xd5, 0x1a, 0x07, 0x65, 0x79, 0xc0, 0x7a, 0xb3, 0xc0, 0x97, 0x6e, 0xc0, 0x16, 0x00, + 0x9e, 0x29, 0xc6, 0xdf, 0xcf, 0xc2, 0x45, 0x79, 0xac, 0xd0, 0x80, 0x09, 0x8e, 0x4e, 0x7b, 0xef, + 0x19, 0x3f, 0x1d, 0xee, 0x68, 0xa7, 0xc3, 0x2b, 0xb1, 0x93, 0x3a, 0xd6, 0xca, 0x3e, 0x47, 0xc4, + 0x6f, 0x8f, 0xc1, 0x8b, 0x7d, 0xa9, 0xc8, 0x17, 0xd9, 0x69, 0xee, 0xd0, 0x76, 0x50, 0x6d, 0x34, + 0xe9, 0xa6, 0xd3, 0xa2, 0x6e, 0x37, 0x10, 0x1e, 0x03, 0x2f, 0xa3, 0x3e, 0x0f, 0x0b, 0x2d, 0xa7, + 0xd1, 0xa4, 0x56, 0xc0, 0x8b, 0xb5, 0xe9, 0x96, 0xa4, 0x66, 0x2c, 0xc3, 0xf4, 0x49, 0xd5, 0x76, + 0x40, 0xbd, 0x47, 0x68, 0x95, 0x18, 0xb2, 0x3c, 0xa0, 0xb4, 0x63, 0xd9, 0xac, 0xd4, 0x72, 0x44, + 0xb1, 0xce, 0x32, 0x41, 0x4d, 0xee, 0x28, 0x2c, 0xcb, 0xec, 0xf6, 0xbf, 0x66, 0x3f, 0x16, 0x66, + 0x52, 0x22, 0x1a, 0x69, 0xc8, 0x92, 0xbb, 0xf3, 0xb5, 0xec, 0xc7, 0x66, 0x92, 0x84, 0x7c, 0x15, + 0xce, 0x89, 0x03, 0x48, 0x84, 0x36, 0x91, 0x2d, 0xe6, 0x81, 0x53, 0x5e, 0x3b, 0x39, 0x2e, 0x5e, + 0x90, 0x71, 0x5c, 0x65, 0x30, 0x9b, 0xb4, 0x56, 0xa7, 0x73, 0x21, 0x9b, 0xec, 0x40, 0x8e, 0x75, + 0xc7, 0x1a, 0xf5, 0x7d, 0xe9, 0xb3, 0x29, 0x6e, 0xc6, 0x6a, 0x67, 0x5a, 0x2d, 0x5e, 0x6e, 0xf6, + 0xa4, 0x24, 0x2b, 0x30, 0xb5, 0x4d, 0x77, 0xd4, 0xf1, 0x19, 0x09, 0xb7, 0xaa, 0xc2, 0x21, 0xdd, + 0xe9, 0x3d, 0x38, 0x31, 0x3a, 0xe2, 0xe0, 0xfb, 0xc0, 0xe3, 0xa3, 0x55, 0xc7, 0x0f, 0x68, 0x9b, + 0x7a, 0x18, 0x32, 0x6b, 0x14, 0x37, 0x83, 0xf9, 0x48, 0x42, 0xd6, 0xcb, 0x97, 0x5e, 0x3a, 0x39, + 0x2e, 0xbe, 0xc8, 0x9d, 0x9f, 0x9b, 0x02, 0x6e, 0xc5, 0x92, 0x0f, 0x25, 0xb9, 0x92, 0xaf, 0xc3, + 0xb4, 0xe9, 0x76, 0x03, 0xa7, 0xbd, 0x57, 0x0b, 0x3c, 0x3b, 0xa0, 0x7b, 0xfc, 0x40, 0x8a, 0x62, + 0x73, 0xc5, 0x4a, 0xc5, 0xd3, 0x32, 0x07, 0x5a, 0xbe, 0x80, 0x6a, 0x27, 0x82, 0x4e, 0x40, 0xbe, + 0x06, 0x53, 0x3c, 0xa8, 0x45, 0x58, 0xc1, 0x98, 0x96, 0x38, 0x41, 0x2f, 0x7c, 0x78, 0x53, 0x58, + 0xb5, 0x20, 0x34, 0xad, 0x82, 0x18, 0x37, 0xf2, 0x65, 0xd1, 0x59, 0x1b, 0x4e, 0x7b, 0x2f, 0x9c, + 0xc6, 0x80, 0x3d, 0xff, 0x66, 0xd4, 0x25, 0x1d, 0xf6, 0xb9, 0x72, 0x1a, 0xf7, 0x30, 0xd1, 0x4b, + 0xf2, 0x21, 0x01, 0xbc, 0x58, 0xf2, 0x7d, 0xc7, 0x0f, 0x84, 0x5f, 0xcd, 0xf2, 0x63, 0x5a, 0xef, + 0x32, 0x64, 0x76, 0xbd, 0xa5, 0x1e, 0xb7, 0xeb, 0x1e, 0x5e, 0xba, 0x7e, 0x72, 0x5c, 0x7c, 0xdd, + 0x46, 0x44, 0x4b, 0xb8, 0xe2, 0x58, 0x54, 0xa2, 0x5a, 0x87, 0x1c, 0x57, 0x69, 0x43, 0x7f, 0xa6, + 0xe4, 0x6b, 0x70, 0xbe, 0x6c, 0xfb, 0xb4, 0xda, 0xf6, 0x69, 0xdb, 0x77, 0x02, 0xe7, 0x11, 0x15, + 0x9d, 0x8a, 0x87, 0x5f, 0x1e, 0xd3, 0x34, 0x19, 0x75, 0xdb, 0x67, 0x0b, 0x33, 0x44, 0xb1, 0xc4, + 0xa0, 0x28, 0xd5, 0xf4, 0xe0, 0x42, 0x4c, 0x98, 0xaa, 0xd5, 0x56, 0x2a, 0x8e, 0x1d, 0xae, 0xab, + 0x49, 0xec, 0xaf, 0xd7, 0x51, 0xb5, 0xe7, 0xef, 0x5b, 0x0d, 0xc7, 0x0e, 0x17, 0x54, 0x8f, 0xce, + 0x8a, 0x71, 0x30, 0x8e, 0x33, 0x50, 0x88, 0x0f, 0x25, 0xf9, 0x12, 0x8c, 0x71, 0xfb, 0x36, 0xea, + 0xef, 0x8b, 0x18, 0x0f, 0xd2, 0x5c, 0x2a, 0x84, 0xeb, 0x44, 0xc2, 0x9d, 0x8e, 0x5b, 0xcf, 0x51, + 0xd5, 0x5a, 0x06, 0xdd, 0xe9, 0x24, 0x11, 0x69, 0xc0, 0x04, 0x1f, 0x2d, 0x8a, 0x81, 0xf9, 0x84, + 0x99, 0xf3, 0x4b, 0xea, 0xea, 0x10, 0x45, 0x31, 0xfe, 0xf8, 0x6a, 0x28, 0xe6, 0x04, 0x47, 0xd0, + 0xaa, 0xd0, 0xb8, 0x2e, 0x01, 0xe4, 0x25, 0xa1, 0x71, 0x11, 0x2e, 0xf4, 0xf8, 0x66, 0xe3, 0x11, + 0x5a, 0x12, 0xf4, 0xa8, 0x91, 0x7c, 0x09, 0xe6, 0x90, 0xb0, 0xec, 0xb6, 0xdb, 0xb4, 0x1e, 0xe0, + 0x76, 0x24, 0xb5, 0xef, 0x39, 0x6e, 0xe9, 0xc2, 0xdb, 0x5b, 0x0f, 0x11, 0xac, 0xb8, 0x12, 0x3e, + 0x95, 0x83, 0xf1, 0x33, 0x59, 0x98, 0x17, 0x3b, 0x9c, 0x49, 0xeb, 0xae, 0xd7, 0x78, 0xf6, 0x4f, + 0xd4, 0x65, 0xed, 0x44, 0x7d, 0x39, 0x0c, 0xea, 0x93, 0xd6, 0xc8, 0x3e, 0x07, 0xea, 0xaf, 0x64, + 0xe0, 0x85, 0x7e, 0x44, 0xac, 0x77, 0xc2, 0x40, 0x84, 0x63, 0x89, 0x80, 0x83, 0x1d, 0x98, 0xc5, + 0x01, 0x2d, 0xef, 0xd3, 0xfa, 0x81, 0xbf, 0xe2, 0xfa, 0x01, 0x7a, 0x5a, 0x64, 0x7b, 0xbc, 0x75, + 0xbf, 0x91, 0xfa, 0xd6, 0x7d, 0x9e, 0xcf, 0xb2, 0x3a, 0xf2, 0xe0, 0xa1, 0x12, 0x0f, 0xe8, 0x91, + 0x6f, 0xa6, 0xb1, 0x46, 0x8b, 0xf9, 0x52, 0x37, 0xd8, 0xdf, 0xf0, 0xe8, 0x2e, 0xf5, 0x68, 0xbb, + 0x4e, 0xbf, 0xcb, 0x2c, 0xe6, 0xf5, 0xc6, 0x0d, 0xa4, 0xc1, 0xf8, 0xc7, 0x93, 0x30, 0x97, 0x46, + 0xc6, 0xfa, 0x45, 0xb9, 0x34, 0xc7, 0xb3, 0x48, 0xfe, 0x40, 0x06, 0x26, 0x6a, 0xb4, 0xee, 0xb6, + 0x1b, 0x77, 0xd0, 0xa2, 0x48, 0xf4, 0x8e, 0xc5, 0x85, 0x06, 0x06, 0xb7, 0x76, 0x63, 0xa6, 0x46, + 0xdf, 0x39, 0x2e, 0x7e, 0x61, 0xb0, 0xbb, 0x6a, 0xdd, 0xc5, 0xc0, 0x3c, 0x01, 0x66, 0x39, 0x08, + 0xab, 0xc0, 0xc7, 0x41, 0xad, 0x52, 0xb2, 0x04, 0x93, 0x62, 0xb9, 0xba, 0x6a, 0x1c, 0x4a, 0x1e, + 0xf7, 0x48, 0x16, 0x24, 0x54, 0xd7, 0x1a, 0x09, 0xb9, 0x05, 0xb9, 0xad, 0xc5, 0x3b, 0x62, 0x0c, + 0x64, 0x9e, 0x88, 0xad, 0xc5, 0x3b, 0xa8, 0x0e, 0x63, 0x57, 0x8c, 0xc9, 0xee, 0xa2, 0x66, 0xe4, + 0xb3, 0xb5, 0x78, 0x87, 0xfc, 0x4d, 0x38, 0x57, 0x71, 0x7c, 0x51, 0x05, 0xf7, 0xdd, 0x68, 0xa0, + 0xc7, 0xe2, 0x48, 0x8f, 0xd9, 0xfb, 0xd9, 0xd4, 0xd9, 0xfb, 0x52, 0x23, 0x64, 0x62, 0x71, 0xc7, + 0x90, 0x46, 0x3c, 0xde, 0x66, 0x7a, 0x3d, 0xe4, 0x23, 0x98, 0x42, 0x65, 0x36, 0xba, 0xb3, 0x60, + 0xa4, 0xf4, 0xd1, 0x1e, 0x35, 0x7f, 0x3a, 0xb5, 0xe6, 0x05, 0x1e, 0x6f, 0x03, 0x9d, 0x62, 0x30, + 0xaa, 0xba, 0x76, 0xeb, 0xd7, 0x38, 0x93, 0x7b, 0x30, 0x2d, 0xc4, 0xaf, 0x07, 0xbb, 0x9b, 0xfb, + 0xb4, 0x62, 0x1f, 0x09, 0xfb, 0x1c, 0xbc, 0xd1, 0x09, 0x99, 0xcd, 0x72, 0x77, 0xad, 0x60, 0x9f, + 0x5a, 0x0d, 0x5b, 0x13, 0x54, 0x62, 0x84, 0xe4, 0x5b, 0x30, 0xbe, 0xea, 0xd6, 0x99, 0xe4, 0x8d, + 0x3b, 0x03, 0x37, 0xd9, 0xf9, 0x10, 0xf3, 0x14, 0x72, 0x70, 0x4c, 0x9c, 0xfa, 0xce, 0x71, 0xf1, + 0x9d, 0xb3, 0x4e, 0x1a, 0xa5, 0x02, 0x53, 0xad, 0x8d, 0x94, 0x21, 0xbf, 0x4d, 0x77, 0x58, 0x6b, + 0xe3, 0x39, 0xcc, 0x24, 0x58, 0x58, 0xe4, 0x89, 0x5f, 0x9a, 0x45, 0x9e, 0x80, 0x11, 0x0f, 0x66, + 0xb0, 0x7f, 0x36, 0x6c, 0xdf, 0x3f, 0x74, 0xbd, 0x06, 0x26, 0xab, 0xe8, 0x65, 0x0d, 0xb4, 0x98, + 0xda, 0xf9, 0x2f, 0xf0, 0xce, 0xef, 0x28, 0x1c, 0x54, 0x01, 0x32, 0xc1, 0x9e, 0x7c, 0x1d, 0xa6, + 0x44, 0xec, 0x82, 0xb5, 0x3b, 0x25, 0x5c, 0x95, 0x13, 0x9a, 0xdf, 0xa7, 0x5e, 0xc8, 0xa5, 0x54, + 0x11, 0x0a, 0x41, 0x6a, 0xa0, 0xac, 0xd6, 0xae, 0xad, 0x2b, 0xfd, 0x55, 0x12, 0xb2, 0x01, 0xe3, + 0x15, 0xcc, 0xa4, 0x8b, 0xbe, 0x69, 0xc2, 0x2e, 0x3c, 0x4c, 0xc2, 0x14, 0x95, 0x70, 0x5d, 0x8c, + 0x48, 0xba, 0x8b, 0x9e, 0x6e, 0xba, 0xad, 0x6e, 0x88, 0x48, 0x6e, 0x43, 0xae, 0x5a, 0xd9, 0x10, + 0x66, 0xe1, 0x33, 0x61, 0x84, 0x90, 0x0d, 0x99, 0xb2, 0x06, 0xed, 0xe7, 0x9c, 0x86, 0x66, 0x54, + 0x5e, 0xad, 0x6c, 0x90, 0x5d, 0x98, 0xc4, 0x0e, 0x58, 0xa1, 0x36, 0xef, 0xdb, 0xe9, 0x1e, 0x7d, + 0x7b, 0x3d, 0xb5, 0x6f, 0xe7, 0x79, 0xdf, 0xee, 0x0b, 0x6a, 0x2d, 0x07, 0x87, 0xca, 0x96, 0x89, + 0xb4, 0x22, 0x2f, 0x90, 0xcc, 0x1c, 0xb1, 0xb9, 0x8a, 0xf6, 0x41, 0x42, 0xa4, 0x95, 0x69, 0x84, + 0xc2, 0x54, 0x16, 0x3d, 0xbd, 0x4e, 0x92, 0x7c, 0xc8, 0xe7, 0x61, 0xe8, 0xc1, 0x41, 0x60, 0x0b, + 0x03, 0x70, 0xd9, 0x8f, 0x0c, 0x24, 0x9b, 0x8f, 0x5a, 0x48, 0xf7, 0x40, 0x8b, 0xc8, 0x86, 0x34, + 0x6c, 0x28, 0x56, 0x6c, 0xaf, 0x71, 0x68, 0x7b, 0xe8, 0x20, 0x3c, 0xab, 0xb1, 0x50, 0x4a, 0xf8, + 0x50, 0xec, 0x0b, 0x40, 0xcc, 0x6b, 0x58, 0x65, 0x41, 0xbe, 0x07, 0x2e, 0xfa, 0xce, 0x5e, 0xdb, + 0x0e, 0xba, 0x1e, 0xb5, 0xec, 0xe6, 0x9e, 0xeb, 0x39, 0xc1, 0x7e, 0xcb, 0xf2, 0xbb, 0x4e, 0x40, + 0xe7, 0xe7, 0xb4, 0x2c, 0xc2, 0x35, 0x89, 0x57, 0x92, 0x68, 0x35, 0x86, 0x65, 0x5e, 0xf0, 0xd3, + 0x0b, 0xc8, 0x97, 0x61, 0x52, 0xdd, 0x92, 0xfd, 0xf9, 0x73, 0x97, 0x73, 0x57, 0xa7, 0xc2, 0x8b, + 0x47, 0x7c, 0x03, 0x97, 0xd1, 0x77, 0x95, 0x13, 0xc2, 0xd7, 0xa3, 0xef, 0x2a, 0xbc, 0xc2, 0xbc, + 0x7c, 0xa4, 0x30, 0x6b, 0xce, 0x88, 0x19, 0x2b, 0x7a, 0x79, 0xed, 0x4e, 0xc9, 0x1c, 0xdd, 0xa8, + 0x3e, 0xac, 0x35, 0xdd, 0xc0, 0xf8, 0xcf, 0x32, 0xb8, 0x89, 0x93, 0xd7, 0x31, 0x90, 0x54, 0xf8, + 0x7a, 0x86, 0xfa, 0x5b, 0xbb, 0x13, 0x0b, 0xdd, 0xce, 0x51, 0xc8, 0x1b, 0x30, 0x72, 0xc7, 0xae, + 0xcb, 0x20, 0x36, 0x02, 0x79, 0x17, 0x21, 0xaa, 0xb2, 0x97, 0xe3, 0x30, 0xf9, 0x92, 0x4f, 0xee, + 0x52, 0x94, 0xa0, 0xba, 0x5c, 0x92, 0xcf, 0xf5, 0x28, 0x5f, 0x8a, 0x45, 0xa1, 0x64, 0xb0, 0x8e, + 0x59, 0xc5, 0xa7, 0x72, 0x30, 0xfe, 0x2c, 0x13, 0xed, 0x4a, 0xe4, 0x35, 0x18, 0x32, 0x37, 0xc2, + 0xef, 0xe7, 0x4e, 0xbf, 0xb1, 0xcf, 0x47, 0x04, 0xf2, 0x65, 0x38, 0xa7, 0xf0, 0x49, 0x98, 0xe8, + 0xbf, 0x8a, 0x3e, 0xa9, 0xca, 0x97, 0xa4, 0xdb, 0xe9, 0xa7, 0xf3, 0x40, 0x61, 0x3a, 0x2a, 0xa8, + 0xd0, 0xb6, 0xc3, 0x79, 0x2b, 0x8d, 0x55, 0x79, 0x37, 0x10, 0x21, 0xde, 0xd8, 0x34, 0x0e, 0xdc, + 0x25, 0xd5, 0xf8, 0xad, 0x8c, 0xb6, 0xdb, 0x84, 0x19, 0x7d, 0x33, 0xa7, 0x64, 0xf4, 0x7d, 0x1b, + 0xa0, 0xd4, 0x0d, 0xdc, 0xe5, 0xb6, 0xe7, 0x36, 0xb9, 0x16, 0x45, 0x64, 0x2f, 0x40, 0xdd, 0x30, + 0x45, 0xb0, 0xe6, 0x39, 0x17, 0x22, 0xa7, 0x7a, 0x33, 0xe4, 0x3e, 0xae, 0x37, 0x83, 0xf1, 0x07, + 0x19, 0x6d, 0x8d, 0x32, 0x29, 0x51, 0x4c, 0x45, 0xd5, 0x62, 0xac, 0xe3, 0x3c, 0xb2, 0xfc, 0xa6, + 0xab, 0x85, 0xab, 0x10, 0x68, 0xe4, 0xff, 0x9f, 0x81, 0xf3, 0xdc, 0x2d, 0x60, 0xbd, 0xdb, 0xda, + 0xa1, 0xde, 0x43, 0xbb, 0xe9, 0x34, 0xb8, 0xe3, 0x35, 0x17, 0x80, 0xaf, 0x26, 0x17, 0x7c, 0x3a, + 0x3e, 0xbf, 0xa8, 0x72, 0x37, 0x05, 0xab, 0x8d, 0x85, 0xd6, 0xa3, 0xb0, 0x54, 0xbd, 0xa8, 0xa6, + 0xd3, 0x1b, 0xbf, 0x9a, 0x81, 0x97, 0x4e, 0xad, 0x85, 0xdc, 0x80, 0x51, 0x99, 0x36, 0x22, 0x83, + 0x1d, 0x8f, 0x76, 0xb6, 0xc9, 0x94, 0x11, 0x12, 0x8b, 0x7c, 0x05, 0xce, 0xa9, 0xac, 0x36, 0x3d, + 0xdb, 0x51, 0x93, 0x33, 0xa4, 0x7c, 0x75, 0xc0, 0x50, 0xe2, 0xd2, 0x5a, 0x3a, 0x13, 0xe3, 0xff, + 0xcd, 0x28, 0x39, 0xbe, 0x9f, 0x51, 0x19, 0xfe, 0xb6, 0x26, 0xc3, 0xcb, 0x10, 0x9e, 0x61, 0xab, + 0x58, 0x59, 0xea, 0xbd, 0x6b, 0x5a, 0xb1, 0x17, 0x47, 0xc0, 0x0f, 0x65, 0x61, 0x7c, 0xcb, 0xa7, + 0x1e, 0x7f, 0xc8, 0xfd, 0xee, 0x0a, 0xd5, 0x18, 0xb6, 0x6b, 0xa0, 0x60, 0x7a, 0x7f, 0x92, 0x41, + 0x05, 0xbf, 0x4a, 0xc1, 0x7a, 0x43, 0xc9, 0xeb, 0x87, 0xbd, 0x81, 0x19, 0xfd, 0x10, 0xca, 0x43, + 0x8b, 0xad, 0xea, 0x29, 0x3e, 0x31, 0xcf, 0xeb, 0x2a, 0xf9, 0x02, 0x0c, 0x6f, 0xa1, 0xba, 0x52, + 0x0f, 0xb2, 0x11, 0xf2, 0xc7, 0x42, 0xbe, 0x49, 0x77, 0x7d, 0x3d, 0xee, 0x1c, 0x27, 0x24, 0x35, + 0x18, 0x2d, 0x7b, 0x14, 0x33, 0x76, 0x0f, 0x0d, 0xee, 0x22, 0x5e, 0xe7, 0x24, 0x71, 0x17, 0x71, + 0xc1, 0xc9, 0xf8, 0xe9, 0x2c, 0x90, 0xa8, 0x8d, 0x98, 0x9e, 0xca, 0x7f, 0x66, 0x07, 0xfd, 0x03, + 0x6d, 0xd0, 0x5f, 0x4c, 0x0c, 0x3a, 0x6f, 0xde, 0x40, 0x63, 0xff, 0x3b, 0x19, 0x38, 0x9f, 0x4e, + 0x48, 0x5e, 0x86, 0x91, 0x07, 0x9b, 0x1b, 0x32, 0x4e, 0x8b, 0x68, 0x8a, 0xdb, 0x41, 0x5d, 0x81, + 0x29, 0x8a, 0xc8, 0x9b, 0x30, 0xf2, 0x45, 0xb3, 0xcc, 0xce, 0x21, 0x25, 0x01, 0xc2, 0x37, 0x3c, + 0xab, 0xae, 0x1f, 0x45, 0x02, 0x49, 0x1d, 0xdb, 0xdc, 0x53, 0x1b, 0xdb, 0x1f, 0xcf, 0xc2, 0x74, + 0xa9, 0x5e, 0xa7, 0xbe, 0xcf, 0xa4, 0x1d, 0xea, 0x07, 0xcf, 0xec, 0xc0, 0xa6, 0x47, 0x60, 0xd1, + 0xda, 0x36, 0xd0, 0xa8, 0xfe, 0x5e, 0x06, 0xce, 0x49, 0xaa, 0x47, 0x0e, 0x3d, 0xdc, 0xdc, 0xf7, + 0xa8, 0xbf, 0xef, 0x36, 0x1b, 0x03, 0x67, 0x59, 0x61, 0x82, 0x1e, 0x86, 0x4e, 0x57, 0x5f, 0xf5, + 0x77, 0x11, 0xa2, 0x09, 0x7a, 0x3c, 0xbc, 0xfa, 0x0d, 0x18, 0x2d, 0x75, 0x3a, 0x9e, 0xfb, 0x88, + 0x2f, 0x7b, 0x11, 0x59, 0xd2, 0xe6, 0x20, 0xcd, 0xc3, 0x9e, 0x83, 0xd8, 0x67, 0x54, 0x68, 0x9b, + 0x87, 0xf2, 0x9b, 0xe4, 0x9f, 0xd1, 0xa0, 0x6d, 0x55, 0x16, 0xc7, 0x72, 0xa3, 0x06, 0x64, 0xc3, + 0x73, 0x5b, 0x6e, 0x40, 0x1b, 0xbc, 0x3d, 0x18, 0x98, 0xe0, 0xd4, 0x90, 0x5a, 0x9b, 0x4e, 0xd0, + 0xd4, 0x42, 0x6a, 0x05, 0x0c, 0x60, 0x72, 0xb8, 0xf1, 0x7f, 0x0f, 0xc3, 0x84, 0xda, 0x3b, 0xc4, + 0xe0, 0xa9, 0x13, 0x5c, 0x4f, 0x8d, 0x8e, 0x61, 0x23, 0xc4, 0x14, 0x25, 0x51, 0x68, 0x99, 0xec, + 0xa9, 0xa1, 0x65, 0xb6, 0x61, 0x72, 0xc3, 0x73, 0x31, 0x04, 0x26, 0xbe, 0x56, 0x8a, 0xad, 0x70, + 0x56, 0xb9, 0x77, 0xb2, 0x81, 0xc4, 0xf7, 0x50, 0x94, 0xec, 0x3b, 0x02, 0x1b, 0x13, 0x0a, 0x6a, + 0x5a, 0x17, 0x8d, 0x0f, 0x37, 0xb5, 0xb0, 0x7d, 0x11, 0xc7, 0x36, 0x34, 0xb5, 0x60, 0x10, 0xdd, + 0xd4, 0x82, 0x41, 0xd4, 0xb5, 0x36, 0xfc, 0xb4, 0xd6, 0x1a, 0xf9, 0xe9, 0x0c, 0x8c, 0x97, 0xda, + 0x6d, 0x11, 0xb2, 0xe6, 0x14, 0x6f, 0xfd, 0xaf, 0x08, 0x6b, 0x8b, 0x77, 0x3e, 0x96, 0xb5, 0x05, + 0xca, 0x2d, 0x3e, 0x4a, 0xaa, 0x51, 0x85, 0xea, 0x6d, 0x4d, 0xf9, 0x0e, 0xf2, 0x0e, 0x14, 0xc2, + 0x49, 0x5e, 0x6d, 0x37, 0xe8, 0x63, 0xca, 0x53, 0xcf, 0x4d, 0x8a, 0x08, 0xd6, 0xaa, 0x64, 0x1a, + 0x47, 0x24, 0x9b, 0x00, 0x76, 0x38, 0xbb, 0x62, 0x39, 0x34, 0x93, 0xd3, 0x4f, 0x48, 0xcf, 0xf8, + 0x1b, 0x1f, 0xb4, 0x54, 0xe9, 0x39, 0xe2, 0x43, 0x5a, 0x30, 0xcd, 0x13, 0x58, 0xd6, 0x02, 0xdb, + 0x0b, 0x30, 0x51, 0x03, 0x9c, 0x3a, 0x0e, 0xaf, 0x09, 0xfd, 0xd9, 0xf3, 0x22, 0x2d, 0xa6, 0xcf, + 0x68, 0xad, 0x94, 0xac, 0x0d, 0x71, 0xde, 0x3c, 0x5e, 0xb8, 0x79, 0x21, 0xf9, 0xbd, 0x7c, 0xd2, + 0xff, 0x78, 0x06, 0xce, 0xab, 0x93, 0xbe, 0xd6, 0xdd, 0x11, 0xa1, 0x43, 0xc9, 0x75, 0x18, 0x13, + 0x73, 0x32, 0xbc, 0x44, 0x25, 0xf3, 0x4d, 0x44, 0x28, 0x64, 0x99, 0x4d, 0x43, 0xc6, 0x43, 0x48, + 0xdd, 0xb3, 0xb1, 0x7d, 0x8a, 0x15, 0x45, 0xc9, 0x91, 0x3d, 0xfc, 0xad, 0xcf, 0x4f, 0x06, 0x31, + 0xde, 0x87, 0x19, 0x7d, 0x24, 0x6a, 0x34, 0x20, 0xd7, 0x60, 0x54, 0x0e, 0x5f, 0x26, 0x7d, 0xf8, + 0x64, 0xb9, 0xb1, 0x0d, 0x24, 0x41, 0xef, 0xa3, 0x59, 0x14, 0xbb, 0x9f, 0x72, 0xb3, 0x3d, 0xf9, + 0x28, 0x99, 0x40, 0x5c, 0x9a, 0x15, 0xdf, 0x37, 0xae, 0xb9, 0x25, 0x60, 0x18, 0xd5, 0x3f, 0x9b, + 0x82, 0xd9, 0x94, 0x3d, 0xf7, 0x14, 0x99, 0xa8, 0xa8, 0x6f, 0x10, 0x63, 0x61, 0xb0, 0x0f, 0xb9, + 0x2d, 0xbc, 0x0f, 0xc3, 0xa7, 0x6e, 0x07, 0xdc, 0x29, 0x25, 0xb6, 0x0b, 0x70, 0xb2, 0x4f, 0x44, + 0x2e, 0x52, 0xe3, 0xf1, 0x0c, 0x3f, 0xb5, 0x78, 0x3c, 0x4b, 0x30, 0x29, 0x5a, 0x25, 0xb6, 0x2b, + 0xc5, 0x38, 0xda, 0xe3, 0x05, 0x56, 0x62, 0xdb, 0xd2, 0x49, 0x38, 0x0f, 0xdf, 0x6d, 0x3e, 0xa2, + 0x82, 0xc7, 0xa8, 0xca, 0x03, 0x0b, 0x52, 0x79, 0x28, 0x24, 0xe4, 0x3f, 0xc0, 0xe4, 0x79, 0x08, + 0x51, 0xf7, 0xac, 0x7c, 0xbf, 0x3d, 0xab, 0xf1, 0x74, 0xf6, 0xac, 0x17, 0xe5, 0x37, 0xa6, 0xef, + 0x5d, 0x29, 0x9f, 0x45, 0x7e, 0x29, 0x03, 0x33, 0x3c, 0x28, 0x8c, 0xfa, 0xb1, 0x7d, 0x03, 0x7d, + 0xd4, 0x9f, 0xce, 0xc7, 0xbe, 0x20, 0x92, 0x46, 0xa5, 0x7f, 0x6b, 0xf2, 0xa3, 0xc8, 0xf7, 0x00, + 0x84, 0x2b, 0x8a, 0x87, 0x92, 0x1d, 0x5f, 0x7c, 0x21, 0x65, 0x17, 0x08, 0x91, 0xa2, 0x04, 0x17, + 0x41, 0x48, 0xa7, 0xa5, 0x4c, 0x0c, 0xa1, 0xe4, 0x6f, 0xc2, 0x1c, 0x5b, 0x2f, 0x21, 0x44, 0x84, + 0xb0, 0x9a, 0x1f, 0xc7, 0x5a, 0x3e, 0xd3, 0x5b, 0x26, 0xba, 0x9e, 0x46, 0xc6, 0x03, 0x0f, 0x47, + 0xd9, 0xab, 0x03, 0x35, 0xda, 0x45, 0x6a, 0x45, 0x18, 0x19, 0x0e, 0xbf, 0x9e, 0x27, 0xa1, 0xe8, + 0xb1, 0xbf, 0x5d, 0x94, 0x6b, 0x81, 0xef, 0x6f, 0xbe, 0xee, 0xa3, 0x8c, 0x20, 0xf2, 0x45, 0x20, + 0x61, 0x34, 0x15, 0x0e, 0xa3, 0x32, 0x41, 0x05, 0x57, 0x37, 0x47, 0x51, 0x59, 0x3c, 0x59, 0xac, + 0x4e, 0x92, 0x24, 0x31, 0xa1, 0x30, 0x27, 0x1a, 0xcd, 0xa0, 0x32, 0xb3, 0x9d, 0x3f, 0x3f, 0xa5, + 0x05, 0x08, 0x8b, 0x4a, 0xa2, 0x34, 0xd7, 0x4a, 0x7a, 0x3c, 0x4d, 0xe5, 0x94, 0xc6, 0x8e, 0xdc, + 0x86, 0x31, 0x74, 0x14, 0x5e, 0x91, 0xc6, 0x5e, 0xc2, 0xf0, 0x04, 0x5d, 0x8a, 0xad, 0x7d, 0xdd, + 0x64, 0x2b, 0x42, 0x65, 0xd7, 0x81, 0x8a, 0x77, 0x64, 0x76, 0xdb, 0xa8, 0x14, 0x16, 0xfa, 0x8e, + 0x86, 0x77, 0x64, 0x79, 0x5d, 0xdd, 0x93, 0x1c, 0x91, 0xc8, 0xd7, 0x61, 0x7c, 0xcd, 0x7e, 0x2c, + 0x75, 0xc2, 0x42, 0xf1, 0xdb, 0x6f, 0x07, 0x32, 0x64, 0x6b, 0x5a, 0xf6, 0x63, 0xab, 0xd1, 0x8d, + 0x87, 0x3d, 0xc6, 0x6d, 0x48, 0x65, 0x49, 0xbe, 0x0a, 0xa0, 0x68, 0xaa, 0xc9, 0xa9, 0x15, 0xbc, + 0x24, 0xc3, 0xde, 0xa5, 0x6a, 0xb0, 0x91, 0xbf, 0xc2, 0x30, 0x26, 0x39, 0xcc, 0x7d, 0x72, 0x92, + 0xc3, 0xb9, 0x4f, 0x4e, 0x72, 0x58, 0xd8, 0x81, 0x8b, 0x3d, 0x97, 0x4e, 0x4a, 0xd0, 0xe3, 0x1b, + 0x7a, 0xd0, 0xe3, 0x8b, 0xbd, 0x8e, 0x58, 0x5f, 0xcf, 0x69, 0x32, 0x5b, 0x98, 0xeb, 0x2d, 0x9d, + 0x7c, 0x3b, 0x1b, 0x3b, 0x72, 0xc5, 0xc5, 0x82, 0xe7, 0xc0, 0xea, 0x25, 0x93, 0x64, 0x31, 0xed, + 0x31, 0x3f, 0x94, 0x95, 0xb8, 0xf0, 0xec, 0x50, 0x56, 0x0f, 0x75, 0x3c, 0x9e, 0x9f, 0xf4, 0xf4, + 0x7d, 0x17, 0xa6, 0x78, 0xa6, 0xd2, 0xfb, 0xf4, 0xe8, 0xd0, 0xf5, 0x1a, 0x3c, 0xbb, 0x8f, 0x90, + 0xc1, 0x13, 0x69, 0xc6, 0x63, 0xb8, 0xa4, 0x22, 0x7d, 0x4f, 0x87, 0xb1, 0xf6, 0x8b, 0xa9, 0xbb, + 0x18, 0x43, 0xe8, 0xe7, 0x96, 0x4a, 0xde, 0x0a, 0x05, 0x35, 0xea, 0xa9, 0x99, 0x4d, 0x3c, 0x09, + 0x4c, 0x91, 0xd7, 0xa8, 0x67, 0xfc, 0xb3, 0x1c, 0x10, 0x5e, 0x53, 0xd9, 0xee, 0xd8, 0xe8, 0x99, + 0xed, 0x60, 0xac, 0xa5, 0x82, 0xc0, 0xb1, 0x77, 0x9a, 0x54, 0x0d, 0x54, 0x26, 0x8c, 0x6b, 0xc3, + 0x32, 0x2b, 0x7e, 0xd1, 0x49, 0x10, 0xf6, 0xd8, 0xea, 0xb2, 0x4f, 0xb2, 0xd5, 0x7d, 0x1d, 0x9e, + 0x2f, 0x75, 0x30, 0xe5, 0xb1, 0xac, 0xe5, 0x8e, 0xeb, 0xc9, 0x4d, 0x4a, 0xf3, 0xf9, 0xb3, 0x43, + 0xb4, 0xc4, 0x97, 0xf6, 0x63, 0xa1, 0xc8, 0x29, 0x6c, 0x5e, 0x76, 0x02, 0x35, 0x86, 0x84, 0x94, + 0x53, 0x3a, 0x58, 0x92, 0x22, 0xa7, 0x70, 0x12, 0xc9, 0xc3, 0xf1, 0xa4, 0x9c, 0x82, 0xb9, 0xbc, + 0x22, 0x1e, 0x8e, 0x47, 0x7b, 0xc8, 0x3a, 0x21, 0x09, 0x79, 0x17, 0xc6, 0x4b, 0xdd, 0xc0, 0x15, + 0x8c, 0x85, 0x55, 0x78, 0x64, 0xbf, 0x2d, 0x3e, 0x45, 0xbb, 0xfa, 0x44, 0xe8, 0xc6, 0x9f, 0xe6, + 0xe0, 0x62, 0x72, 0x78, 0x45, 0x69, 0xb8, 0x3e, 0x32, 0xa7, 0xac, 0x8f, 0xb4, 0xd9, 0x90, 0x8d, + 0x32, 0x4d, 0x3c, 0x8d, 0xd9, 0xc0, 0x33, 0x27, 0x7f, 0xcc, 0xd9, 0x50, 0x83, 0x71, 0xf5, 0xbc, + 0x1b, 0xfa, 0xb8, 0xe7, 0x9d, 0xca, 0x85, 0x5d, 0xea, 0x79, 0xe8, 0x8c, 0xe1, 0xe8, 0xe9, 0x28, + 0x1e, 0x35, 0x83, 0x63, 0x90, 0xff, 0x1f, 0x5c, 0xe6, 0x7b, 0x52, 0xbc, 0xb1, 0x4b, 0x47, 0x92, + 0xa3, 0x18, 0xb8, 0xc5, 0x93, 0xe3, 0xe2, 0x75, 0xae, 0x2a, 0xb1, 0x12, 0xdd, 0x66, 0xed, 0x1c, + 0x59, 0xf2, 0xcb, 0x94, 0x4a, 0x4e, 0xe5, 0x6d, 0x94, 0xe1, 0xa2, 0x28, 0x8d, 0x9c, 0xb6, 0x65, + 0x21, 0x1b, 0xe4, 0x83, 0x48, 0xdb, 0x85, 0x83, 0x1c, 0x53, 0x64, 0x61, 0x39, 0xe6, 0x5c, 0x56, + 0xf2, 0xe1, 0xbe, 0x99, 0xe6, 0x73, 0xc3, 0xa3, 0x76, 0x73, 0xb0, 0xee, 0x6e, 0x23, 0x75, 0x6a, + 0xd9, 0x54, 0x9d, 0x9a, 0x54, 0xca, 0xe4, 0x52, 0x95, 0x32, 0x15, 0x98, 0xae, 0x75, 0x77, 0x64, + 0xdd, 0x71, 0x7f, 0x4d, 0xbf, 0xbb, 0x93, 0xd6, 0x2b, 0x71, 0x12, 0xe3, 0x87, 0xb3, 0x30, 0xb1, + 0xd1, 0xec, 0xee, 0x39, 0xed, 0x8a, 0x1d, 0xd8, 0xcf, 0xac, 0x9a, 0xef, 0x6d, 0x4d, 0xcd, 0x17, + 0xba, 0x96, 0x85, 0x0d, 0x1b, 0x48, 0xc7, 0xf7, 0x53, 0x19, 0x98, 0x8e, 0x48, 0xf8, 0x61, 0xbd, + 0x02, 0x43, 0xec, 0x87, 0xb8, 0xfc, 0x5e, 0x4e, 0x30, 0xe6, 0x49, 0x18, 0xc3, 0xbf, 0x84, 0xe2, + 0x4d, 0xcf, 0x70, 0x86, 0x1c, 0x16, 0x3e, 0x0b, 0x63, 0x11, 0xdb, 0xb3, 0x24, 0x5f, 0xfc, 0xb5, + 0x0c, 0x14, 0xe2, 0x2d, 0x21, 0xf7, 0x61, 0x94, 0x71, 0x72, 0xa8, 0xbc, 0x97, 0xbf, 0xd2, 0xa3, + 0xcd, 0xd7, 0x05, 0x1a, 0xff, 0x3c, 0xec, 0x7c, 0xca, 0x21, 0xa6, 0xe4, 0xb0, 0x60, 0xc2, 0x84, + 0x8a, 0x95, 0xf2, 0x75, 0x6f, 0xe8, 0x12, 0xca, 0xf9, 0xf4, 0x7e, 0xd0, 0x52, 0x46, 0x6a, 0x5f, + 0x2d, 0x84, 0x8f, 0x2b, 0xda, 0xe4, 0x4a, 0x5d, 0x55, 0x38, 0x69, 0x16, 0xa3, 0x7c, 0x05, 0xea, + 0x3c, 0x4b, 0x99, 0xd0, 0x21, 0x1e, 0x79, 0x03, 0x46, 0x78, 0x7d, 0x6a, 0xea, 0xb4, 0x0e, 0x42, + 0x54, 0x39, 0x99, 0xe3, 0x18, 0xff, 0x20, 0x07, 0xe7, 0xa3, 0xcf, 0xdb, 0xea, 0x34, 0xec, 0x80, + 0x6e, 0xd8, 0x9e, 0xdd, 0xf2, 0x4f, 0x59, 0x01, 0x57, 0x13, 0x9f, 0x86, 0xa9, 0xb4, 0xe4, 0xa7, + 0x29, 0x1f, 0x64, 0xc4, 0x3e, 0x08, 0x75, 0xa0, 0xfc, 0x83, 0xe4, 0x67, 0x90, 0xfb, 0x90, 0xab, + 0xd1, 0x40, 0xec, 0xbd, 0x57, 0x12, 0xbd, 0xaa, 0x7e, 0xd7, 0xf5, 0x1a, 0x0d, 0xf8, 0x20, 0xf2, + 0xb8, 0x50, 0x5a, 0x70, 0x3e, 0xc6, 0x85, 0x6c, 0xc3, 0xc8, 0xf2, 0xe3, 0x0e, 0xad, 0x07, 0x22, + 0x75, 0xe8, 0xb5, 0xfe, 0xfc, 0x38, 0xae, 0x92, 0x39, 0x94, 0x22, 0x40, 0xed, 0x2c, 0x8e, 0xb2, + 0x70, 0x1b, 0xf2, 0xb2, 0xf2, 0xb3, 0xcc, 0xdc, 0x85, 0xb7, 0x61, 0x5c, 0xa9, 0xe4, 0x4c, 0x93, + 0xfe, 0xe7, 0xd9, 0xbe, 0xea, 0x36, 0x65, 0xb6, 0xd1, 0xe5, 0x84, 0xac, 0xa8, 0x64, 0xa3, 0xe2, + 0xb2, 0xa2, 0x75, 0x20, 0x8a, 0xfa, 0x08, 0x8d, 0x55, 0x98, 0xae, 0x1d, 0x38, 0x9d, 0x28, 0x50, + 0xac, 0x76, 0x22, 0x63, 0xc6, 0x1b, 0x71, 0x71, 0x8f, 0x9f, 0xc8, 0x71, 0x3a, 0xe3, 0x2f, 0x32, + 0x30, 0xc2, 0xfe, 0x7a, 0x78, 0xfb, 0x19, 0xdd, 0x32, 0x6f, 0x69, 0x5b, 0xe6, 0x8c, 0x12, 0xab, + 0x1d, 0x37, 0x8e, 0xdb, 0xa7, 0x6c, 0x96, 0xc7, 0x62, 0x80, 0x38, 0x32, 0xb9, 0x0b, 0xa3, 0xc2, + 0xa4, 0x48, 0xd8, 0x7e, 0xab, 0xc1, 0xdf, 0xa5, 0xb1, 0x51, 0x78, 0xc3, 0x77, 0x3b, 0x71, 0x95, + 0x88, 0xa4, 0x66, 0x72, 0xbd, 0x0c, 0xd9, 0xab, 0xe5, 0xa8, 0x76, 0xd1, 0x59, 0x8f, 0x87, 0x2e, + 0x57, 0xb2, 0xca, 0xf7, 0xf0, 0xad, 0x2f, 0x89, 0xd7, 0x90, 0x5c, 0x3f, 0x26, 0xe7, 0x65, 0x0a, + 0xdf, 0xd4, 0x87, 0x92, 0x16, 0x9c, 0xaf, 0xd5, 0x56, 0xd0, 0xfc, 0x70, 0xc3, 0xf5, 0x82, 0x3b, + 0xae, 0x77, 0x68, 0xa3, 0x6d, 0x31, 0x6a, 0xf8, 0x14, 0x1b, 0x84, 0x34, 0xa3, 0xb0, 0xd7, 0x52, + 0x8d, 0xc2, 0xfa, 0xd8, 0x29, 0x18, 0x6d, 0xb8, 0x50, 0xab, 0xad, 0xf0, 0xc0, 0xe1, 0x7f, 0x19, + 0xf5, 0xfd, 0x5a, 0x06, 0x66, 0x6a, 0xb5, 0x95, 0x58, 0x55, 0xab, 0x32, 0x62, 0x79, 0x46, 0x7b, + 0x08, 0x4d, 0xef, 0x08, 0x1c, 0x85, 0x0c, 0x97, 0xf0, 0xea, 0x5a, 0x70, 0x4a, 0xce, 0x84, 0x6c, + 0x84, 0x31, 0xd2, 0xb3, 0x9a, 0x3f, 0x40, 0x8f, 0x86, 0xa2, 0x86, 0x5b, 0x78, 0xd3, 0xb1, 0x52, + 0x5d, 0xc3, 0xcd, 0x20, 0xc6, 0x7f, 0x75, 0x9e, 0x47, 0x61, 0x97, 0xb3, 0xe5, 0x3d, 0x98, 0x10, + 0xf4, 0x68, 0x34, 0x2f, 0x6c, 0x42, 0x2e, 0xb2, 0x0d, 0x72, 0x97, 0xc3, 0x79, 0x74, 0xde, 0xef, + 0x1c, 0x17, 0x87, 0x58, 0xd7, 0x98, 0x1a, 0x3a, 0x79, 0x00, 0x93, 0x6b, 0xf6, 0x63, 0x45, 0x9d, + 0xc1, 0x5d, 0xa2, 0xae, 0xb1, 0x5d, 0xa5, 0x65, 0x3f, 0x1e, 0xc0, 0xe8, 0x4e, 0xa7, 0x27, 0x07, + 0x30, 0xa5, 0xb7, 0x49, 0xcc, 0xc0, 0xe4, 0x88, 0xdd, 0x4c, 0x1d, 0xb1, 0x8b, 0x1d, 0xd7, 0x0b, + 0xac, 0xdd, 0x90, 0x5c, 0xcb, 0x38, 0x10, 0x63, 0x4d, 0xde, 0x83, 0x19, 0x25, 0x04, 0xe8, 0x1d, + 0xd7, 0x6b, 0xd9, 0xf2, 0xc2, 0x85, 0x3a, 0x7e, 0xb4, 0x25, 0xda, 0x45, 0xb0, 0x99, 0xc4, 0x24, + 0x5f, 0x4e, 0x73, 0x33, 0x1b, 0x8e, 0x2c, 0x0f, 0x53, 0xdc, 0xcc, 0x7a, 0x59, 0x1e, 0x26, 0x1d, + 0xce, 0xf6, 0xfa, 0x59, 0x26, 0xe7, 0x79, 0xeb, 0x07, 0xb2, 0x3c, 0x0e, 0x47, 0xae, 0x87, 0x05, + 0xf2, 0x22, 0xe4, 0x96, 0x36, 0xee, 0xe0, 0xcb, 0x94, 0x34, 0xa2, 0x6a, 0xef, 0xdb, 0xed, 0x3a, + 0x5e, 0x84, 0x84, 0x37, 0x80, 0x7a, 0x50, 0x2e, 0x6d, 0xdc, 0x21, 0x36, 0xcc, 0x62, 0x9e, 0xb7, + 0xe0, 0x4b, 0x37, 0x6f, 0x2a, 0x43, 0x95, 0xc7, 0x4f, 0xbb, 0x21, 0x3e, 0xad, 0x88, 0x59, 0xe2, + 0x02, 0xeb, 0xf1, 0xcd, 0x9b, 0xa9, 0x03, 0x12, 0x7e, 0x58, 0x1a, 0x2f, 0x76, 0x60, 0xad, 0xd9, + 0x8f, 0x23, 0x27, 0x0e, 0x5f, 0x38, 0xec, 0xbe, 0x28, 0xa7, 0x56, 0xe4, 0x00, 0xa2, 0x1d, 0x58, + 0x3a, 0x11, 0xbb, 0xc7, 0x46, 0x13, 0xcc, 0x17, 0xae, 0x4e, 0x0b, 0x52, 0x5d, 0x27, 0xbd, 0xba, + 0xd5, 0xcb, 0x98, 0x82, 0x4e, 0xb6, 0xc2, 0xdb, 0x38, 0xbf, 0xcd, 0x8a, 0xbc, 0xc1, 0x37, 0xd4, + 0xdb, 0x38, 0x57, 0x92, 0x69, 0xcd, 0x9a, 0x0e, 0x55, 0x38, 0xdc, 0xab, 0xc5, 0xd4, 0xb9, 0x24, + 0x2f, 0xf9, 0x13, 0x67, 0xbf, 0xe4, 0x53, 0x18, 0x5a, 0x75, 0xeb, 0x07, 0x22, 0x38, 0xdf, 0x17, + 0xd9, 0x2e, 0xdc, 0x74, 0xeb, 0x07, 0x4f, 0xcf, 0xe2, 0x1a, 0xd9, 0x93, 0x75, 0xf6, 0xa9, 0x6c, + 0x16, 0x88, 0x3e, 0x11, 0x56, 0xbc, 0x73, 0xe1, 0x2d, 0x57, 0x29, 0xe3, 0xf2, 0x28, 0x9f, 0x34, + 0xb2, 0x6b, 0x4d, 0x9d, 0x9c, 0x50, 0x28, 0x54, 0xa8, 0x7f, 0x10, 0xb8, 0x9d, 0x72, 0xd3, 0xe9, + 0xec, 0xb8, 0xb6, 0x27, 0x43, 0x39, 0x0f, 0xbc, 0x27, 0x37, 0x38, 0xbd, 0x55, 0x97, 0x0c, 0xcc, + 0x04, 0x4b, 0xf2, 0x65, 0x98, 0x62, 0x93, 0x7b, 0xf9, 0x71, 0x40, 0xdb, 0x7c, 0xe4, 0x67, 0x50, + 0xa2, 0x9b, 0x53, 0x72, 0x97, 0x84, 0x85, 0x7c, 0x4e, 0xe1, 0x62, 0xa7, 0x21, 0x81, 0x16, 0xd8, + 0x50, 0x63, 0x45, 0x1a, 0x30, 0xbf, 0x66, 0x3f, 0x56, 0xb2, 0x1d, 0x2b, 0x93, 0x94, 0xe0, 0x04, + 0xbb, 0x7a, 0x72, 0x5c, 0x7c, 0x85, 0x4d, 0xb0, 0x28, 0xba, 0x78, 0x8f, 0xf9, 0xda, 0x93, 0x13, + 0xf9, 0x16, 0x5c, 0x10, 0xcd, 0xaa, 0x60, 0xde, 0x30, 0xd7, 0x3b, 0xaa, 0xed, 0xdb, 0xe8, 0xbf, + 0x35, 0xdb, 0xa3, 0xc3, 0x6e, 0xa4, 0x6f, 0x89, 0xb2, 0xc3, 0x1a, 0x92, 0x8f, 0xe5, 0x73, 0x46, + 0x66, 0xaf, 0x1a, 0xc8, 0x47, 0x30, 0xc5, 0x9f, 0xe3, 0x56, 0x5c, 0x3f, 0x40, 0x65, 0xcd, 0xdc, + 0xd9, 0xdc, 0x12, 0xf8, 0x1b, 0x1f, 0x77, 0xe4, 0x89, 0x29, 0x77, 0x62, 0x9c, 0xc9, 0x3b, 0x30, + 0xbe, 0xe1, 0xb4, 0x79, 0xe8, 0xd1, 0xea, 0x06, 0xaa, 0x95, 0xc5, 0x09, 0xd4, 0x71, 0xda, 0x96, + 0xd4, 0x98, 0x74, 0xc2, 0xed, 0x42, 0xc5, 0x26, 0xdb, 0x30, 0x5e, 0xab, 0xad, 0xdc, 0x71, 0x98, + 0x5c, 0xd2, 0x39, 0x9a, 0x3f, 0xdf, 0xe3, 0x2b, 0x5f, 0x4e, 0xfd, 0xca, 0x49, 0xdf, 0xdf, 0xb7, + 0x76, 0x9d, 0x26, 0xb5, 0xea, 0x6e, 0xe7, 0xc8, 0x54, 0x39, 0xa5, 0x98, 0xea, 0x5f, 0x78, 0xca, + 0xa6, 0xfa, 0x55, 0x98, 0x56, 0x8c, 0x67, 0xd1, 0x70, 0x76, 0x3e, 0x8a, 0x57, 0xa5, 0x9a, 0xe6, + 0xc7, 0x5d, 0x53, 0xe3, 0x74, 0xd2, 0x46, 0xff, 0xe2, 0x59, 0x6d, 0xf4, 0x1d, 0x98, 0xe1, 0x83, + 0x21, 0xe6, 0x01, 0x8e, 0xf4, 0x42, 0x8f, 0x3e, 0xbc, 0x96, 0xda, 0x87, 0xb3, 0x62, 0xa4, 0xe5, + 0x24, 0xc3, 0xe7, 0xe7, 0x24, 0x57, 0xb2, 0x0b, 0x44, 0x00, 0xed, 0xc0, 0xde, 0xb1, 0x7d, 0x8a, + 0x75, 0x3d, 0xdf, 0xa3, 0xae, 0x57, 0x52, 0xeb, 0x9a, 0x92, 0x75, 0xed, 0xf0, 0x6a, 0x52, 0x38, + 0x92, 0xb6, 0xac, 0x47, 0xce, 0x2f, 0xec, 0xd8, 0x17, 0x34, 0x1d, 0x77, 0x12, 0x81, 0x87, 0x7e, + 0x8a, 0x4f, 0xda, 0x78, 0xbf, 0xa7, 0x70, 0x26, 0x8f, 0xe1, 0x7c, 0xf2, 0x2b, 0xb0, 0xce, 0x17, + 0xb1, 0xce, 0x17, 0xb5, 0x3a, 0xe3, 0x48, 0x7c, 0xde, 0xe8, 0xcd, 0x8a, 0xd7, 0xda, 0x83, 0x3f, + 0xf9, 0xdb, 0x19, 0xb8, 0xb0, 0x76, 0xa7, 0x84, 0xd9, 0x44, 0x1d, 0x1e, 0x89, 0x2e, 0x74, 0xe9, + 0xbd, 0x24, 0xde, 0x41, 0xe2, 0x6f, 0x33, 0x52, 0xe2, 0xc0, 0xad, 0x82, 0x89, 0xee, 0x2f, 0xb7, + 0x76, 0x6d, 0x9e, 0xa4, 0x54, 0xb0, 0x48, 0xf1, 0xfb, 0xfd, 0xd9, 0x3f, 0x2e, 0x66, 0xcc, 0x5e, + 0x55, 0x91, 0x26, 0x2c, 0xe8, 0xdd, 0x22, 0xbd, 0x28, 0xf6, 0x69, 0xb3, 0x39, 0x5f, 0xc4, 0x19, + 0xfd, 0xc6, 0xc9, 0x71, 0xf1, 0x6a, 0xa2, 0x77, 0x43, 0xcf, 0x0c, 0x86, 0xa9, 0x34, 0xb8, 0x0f, + 0x3f, 0xd2, 0x4a, 0x11, 0xba, 0xe7, 0x2f, 0x6b, 0xb1, 0x7f, 0x12, 0xe5, 0x4b, 0xaf, 0x0a, 0x89, + 0xe4, 0x45, 0xb6, 0xde, 0x7b, 0x0a, 0x88, 0x66, 0x92, 0xf3, 0xbd, 0xa1, 0xfc, 0x64, 0x61, 0x2a, + 0xc5, 0x65, 0xc1, 0xf8, 0xed, 0x6c, 0xec, 0x60, 0x24, 0x55, 0x18, 0x15, 0xf3, 0xbd, 0xe7, 0x25, + 0xe3, 0xc5, 0xd4, 0x59, 0x3d, 0x2a, 0x96, 0x8e, 0x29, 0xe9, 0xc9, 0x21, 0x63, 0x85, 0x8d, 0x16, + 0x37, 0xde, 0xaf, 0xf2, 0x73, 0x0f, 0x41, 0xda, 0x09, 0x5f, 0x39, 0xbb, 0x23, 0x9e, 0xee, 0xe7, + 0x89, 0x47, 0xbd, 0xac, 0x8d, 0x1c, 0xf0, 0x54, 0x52, 0xb9, 0xd0, 0x9b, 0x4b, 0xcf, 0x1b, 0xf5, + 0xd4, 0x2a, 0x64, 0xb5, 0x18, 0xbf, 0x95, 0x81, 0x49, 0xed, 0x64, 0x25, 0xb7, 0x15, 0x57, 0xc5, + 0xc8, 0x7b, 0x5f, 0xc3, 0xc1, 0xcd, 0x36, 0xee, 0xc4, 0x78, 0x5b, 0xf8, 0x1d, 0x64, 0x7b, 0xd3, + 0xe1, 0x62, 0x8b, 0x7b, 0xae, 0xf6, 0xd7, 0x0f, 0x87, 0x79, 0x30, 0x87, 0x7a, 0xe4, 0xc1, 0xfc, + 0x8d, 0x4b, 0x30, 0xa5, 0xdf, 0x88, 0xc9, 0x1b, 0x30, 0x82, 0xba, 0x79, 0xa9, 0x5e, 0x41, 0xb5, + 0x10, 0xaa, 0xef, 0x35, 0x67, 0x14, 0x8e, 0x43, 0x5e, 0x05, 0x08, 0x0d, 0xc0, 0xe5, 0xcb, 0xd4, + 0xf0, 0xc9, 0x71, 0x31, 0xf3, 0xa6, 0xa9, 0x14, 0x90, 0xaf, 0x01, 0xac, 0xbb, 0x0d, 0x1a, 0x26, + 0x37, 0xee, 0x63, 0x7d, 0xf1, 0x5a, 0x22, 0xcd, 0xca, 0xb9, 0xb6, 0xdb, 0xa0, 0xc9, 0x9c, 0x2a, + 0x0a, 0x47, 0xf2, 0x79, 0x18, 0x36, 0xbb, 0x4d, 0x2a, 0x5f, 0x30, 0xc6, 0xe5, 0x09, 0xd7, 0x6d, + 0xd2, 0x48, 0x4f, 0xe0, 0x75, 0xe3, 0x86, 0x85, 0x0c, 0x40, 0x3e, 0xe0, 0xe9, 0x57, 0x44, 0x8c, + 0xd0, 0xe1, 0xe8, 0xad, 0x4e, 0x91, 0x7c, 0x12, 0x51, 0x42, 0x15, 0x12, 0xf2, 0x00, 0x46, 0xd5, + 0x47, 0x26, 0xc5, 0xe7, 0x5d, 0x7d, 0x88, 0x54, 0x94, 0x0e, 0x22, 0x2b, 0x72, 0xfc, 0xfd, 0x49, + 0x72, 0x21, 0xef, 0xc2, 0x18, 0x63, 0xcf, 0x76, 0x0e, 0x5f, 0xdc, 0x6a, 0xf0, 0x45, 0x4e, 0xf9, + 0x20, 0xb6, 0xfb, 0x68, 0x91, 0x3c, 0x43, 0x02, 0xf2, 0x65, 0xcc, 0x63, 0x2b, 0xba, 0xba, 0xaf, + 0x55, 0xce, 0x95, 0x44, 0x57, 0x63, 0x62, 0xdb, 0x44, 0x4f, 0x47, 0xfc, 0xc8, 0x5e, 0x18, 0x72, + 0x6d, 0x90, 0x94, 0x39, 0xaf, 0x27, 0x2a, 0x98, 0x97, 0x51, 0xc4, 0x92, 0x49, 0xaa, 0x35, 0xbe, + 0xa4, 0x03, 0x85, 0x48, 0xa8, 0x14, 0x75, 0x41, 0xbf, 0xba, 0xde, 0x4c, 0xd4, 0xa5, 0x0e, 0x60, + 0xa2, 0xba, 0x04, 0x77, 0xd2, 0x80, 0x29, 0x79, 0x40, 0x89, 0xfa, 0xc6, 0xfb, 0xd5, 0xf7, 0x6a, + 0xa2, 0xbe, 0xd9, 0xc6, 0x4e, 0xb2, 0x9e, 0x18, 0x4f, 0xf2, 0x2e, 0x4c, 0x4a, 0x08, 0x4f, 0x19, + 0x3d, 0x11, 0xe5, 0xdc, 0x6d, 0xec, 0x24, 0x12, 0x45, 0xeb, 0xc8, 0x2a, 0x35, 0x9f, 0x1d, 0x93, + 0x1a, 0x75, 0x7c, 0x56, 0xe8, 0xc8, 0xe4, 0x43, 0x18, 0xaf, 0xb6, 0x58, 0x43, 0xdc, 0xb6, 0x1d, + 0x50, 0xe1, 0x0f, 0x29, 0x2d, 0x8c, 0x94, 0x12, 0x65, 0xaa, 0xf2, 0x64, 0xd8, 0x51, 0x91, 0x96, + 0x0c, 0x3b, 0x02, 0xb3, 0xce, 0xe3, 0xaf, 0x8a, 0x62, 0x0e, 0x4b, 0x5f, 0xc9, 0x17, 0x53, 0xac, + 0x7c, 0x14, 0xf6, 0x22, 0x1e, 0x24, 0x83, 0xca, 0x57, 0xbd, 0x58, 0x2c, 0x5e, 0x95, 0x27, 0x79, + 0x0f, 0xc6, 0x45, 0x36, 0xb1, 0x92, 0xb9, 0xee, 0xcf, 0x17, 0xb0, 0xf1, 0x18, 0xe1, 0x41, 0x26, + 0x1e, 0xb3, 0x6c, 0x2f, 0x66, 0xce, 0x1a, 0xe1, 0x93, 0x2f, 0xc1, 0xdc, 0xb6, 0xd3, 0x6e, 0xb8, + 0x87, 0xbe, 0x38, 0xa6, 0xc4, 0x46, 0x37, 0x13, 0x39, 0x93, 0x1d, 0xf2, 0xf2, 0x50, 0x16, 0x4c, + 0x6c, 0x7c, 0xa9, 0x1c, 0xc8, 0xf7, 0x26, 0x38, 0xf3, 0x19, 0x44, 0xfa, 0xcd, 0xa0, 0xc5, 0xc4, + 0x0c, 0x4a, 0x56, 0x1f, 0x9f, 0x4e, 0xa9, 0xd5, 0x10, 0x17, 0x88, 0x7e, 0xbe, 0xdf, 0x73, 0x9d, + 0xf6, 0xfc, 0x2c, 0xee, 0x85, 0xcf, 0xc7, 0x63, 0x2a, 0x20, 0x9e, 0x48, 0x2a, 0x6e, 0x9c, 0x1c, + 0x17, 0x2f, 0xc5, 0x65, 0xfe, 0x8f, 0x5c, 0xed, 0xb9, 0x24, 0x85, 0x35, 0xf9, 0x10, 0x26, 0xd8, + 0xff, 0xa1, 0x52, 0x62, 0x4e, 0xb3, 0x0b, 0x55, 0x30, 0x45, 0x3d, 0x38, 0x46, 0x98, 0xee, 0x2c, + 0x45, 0x5f, 0xa1, 0xb1, 0x22, 0x6f, 0x03, 0x30, 0xb1, 0x49, 0x6c, 0xc7, 0xe7, 0xa2, 0xd0, 0xc7, + 0x28, 0x75, 0x25, 0x37, 0xe2, 0x08, 0x99, 0xbc, 0x0b, 0xe3, 0xec, 0x57, 0xad, 0xdb, 0x70, 0xd9, + 0xda, 0x38, 0x8f, 0xb4, 0xdc, 0x35, 0x95, 0xd1, 0xfa, 0x1c, 0xae, 0xb9, 0xa6, 0x46, 0xe8, 0x64, + 0x05, 0xa6, 0x31, 0x44, 0xb5, 0x08, 0x8e, 0xea, 0x50, 0x7f, 0xfe, 0x82, 0x62, 0x0d, 0xc1, 0x8a, + 0x2c, 0x27, 0x2c, 0x53, 0xef, 0x32, 0x31, 0x32, 0xe2, 0xc3, 0x6c, 0xf2, 0x39, 0xd9, 0x9f, 0x9f, + 0xc7, 0x4e, 0x92, 0x12, 0x7c, 0x12, 0x83, 0xef, 0xc7, 0x6c, 0x44, 0x94, 0x8d, 0x4b, 0x3e, 0x2a, + 0xa9, 0x15, 0xa6, 0x71, 0x27, 0x26, 0x90, 0xbb, 0xe5, 0x8d, 0x78, 0x0c, 0xe7, 0x8b, 0xd8, 0x02, + 0x1c, 0xe6, 0xbd, 0x7a, 0x94, 0x45, 0x3c, 0x25, 0x8e, 0x73, 0x0a, 0x35, 0xf9, 0x26, 0x9c, 0x93, + 0x3b, 0x88, 0x28, 0x12, 0xf3, 0x7a, 0xe1, 0x8c, 0x3b, 0x71, 0x63, 0x27, 0xac, 0x3a, 0x31, 0xa5, + 0xd3, 0xab, 0x20, 0x36, 0x8c, 0xe3, 0xb0, 0x8a, 0x1a, 0x9f, 0xef, 0x57, 0xe3, 0xd5, 0x44, 0x8d, + 0xe7, 0x71, 0xa2, 0x24, 0x2b, 0x53, 0x79, 0x92, 0x25, 0x98, 0x14, 0xeb, 0x48, 0xcc, 0xb6, 0x17, + 0xb0, 0xb7, 0x50, 0x89, 0x25, 0x57, 0x60, 0x62, 0xc2, 0xe9, 0x24, 0xea, 0x8e, 0xcc, 0x1f, 0x93, + 0x5e, 0xd4, 0x76, 0xe4, 0xf8, 0x1b, 0x92, 0x8e, 0xcc, 0x76, 0xa4, 0x48, 0x8a, 0x59, 0x7e, 0xdc, + 0xf1, 0x84, 0x8a, 0xea, 0x52, 0x94, 0x15, 0x49, 0x11, 0x7e, 0x2c, 0x1a, 0x62, 0xa8, 0x5b, 0x42, + 0x1a, 0x07, 0xb2, 0x05, 0xb3, 0xe1, 0xa9, 0xad, 0x30, 0x2e, 0x46, 0x51, 0x82, 0xa3, 0xa3, 0x3e, + 0x9d, 0x6f, 0x1a, 0x3d, 0xb1, 0xe1, 0x82, 0x76, 0x4e, 0x2b, 0xac, 0x2f, 0x23, 0x6b, 0xcc, 0x5a, + 0xaf, 0x1f, 0xf2, 0xe9, 0xec, 0x7b, 0xf1, 0x21, 0x1f, 0xc1, 0x42, 0xfc, 0x6c, 0x56, 0x6a, 0x79, + 0x09, 0x6b, 0x79, 0xfd, 0xe4, 0xb8, 0x78, 0x25, 0x71, 0xbc, 0xa7, 0x57, 0xd4, 0x87, 0x1b, 0xf9, + 0x1a, 0xcc, 0xeb, 0xe7, 0xb3, 0x52, 0x93, 0x81, 0x35, 0xe1, 0xd2, 0x09, 0x0f, 0xf6, 0xf4, 0x1a, + 0x7a, 0xf2, 0x20, 0x01, 0x14, 0x53, 0x67, 0xb7, 0x52, 0xcd, 0xcb, 0x51, 0x83, 0x12, 0xab, 0x24, + 0xbd, 0xba, 0xd3, 0x58, 0x92, 0x43, 0xb8, 0x94, 0x76, 0x4c, 0x28, 0x95, 0xbe, 0x12, 0x2a, 0x81, + 0x3f, 0x95, 0x7e, 0xe4, 0xa4, 0xd7, 0x7c, 0x0a, 0x5b, 0xf2, 0x65, 0x38, 0xa7, 0xac, 0x2f, 0xa5, + 0xbe, 0x57, 0xb1, 0x3e, 0x74, 0x05, 0x57, 0x17, 0x66, 0x7a, 0x2d, 0xe9, 0x3c, 0x48, 0x0b, 0x66, + 0x65, 0xc3, 0x51, 0xdb, 0x2e, 0x8e, 0x9e, 0x2b, 0xda, 0xae, 0x9a, 0xc4, 0x58, 0xba, 0x2c, 0x76, + 0xd5, 0xf9, 0xc6, 0x8e, 0xd5, 0x89, 0x08, 0xd5, 0x99, 0x9e, 0xc2, 0x97, 0xac, 0xc0, 0x48, 0x6d, + 0xa3, 0x7a, 0xe7, 0xce, 0xf2, 0xfc, 0x6b, 0x58, 0x83, 0xf4, 0x1b, 0xe3, 0x40, 0xed, 0xd2, 0x24, + 0xcc, 0x15, 0x3b, 0xce, 0xee, 0xae, 0xf6, 0x60, 0xc5, 0x51, 0xc9, 0xf7, 0xa2, 0xa1, 0x20, 0xdb, + 0x51, 0x4b, 0xbe, 0xef, 0xec, 0x61, 0xd4, 0x69, 0x7f, 0xfe, 0x75, 0xed, 0xbd, 0x5f, 0x46, 0xe4, + 0x2e, 0x63, 0xc2, 0xb2, 0x04, 0x3a, 0x97, 0x36, 0xd9, 0xfd, 0x5f, 0xec, 0xdc, 0x96, 0x1d, 0xb1, + 0x52, 0x37, 0xf1, 0x64, 0x45, 0xe4, 0x07, 0x32, 0x70, 0x7e, 0xdb, 0xf5, 0x0e, 0x9a, 0xae, 0xdd, + 0x90, 0xd5, 0x88, 0x4d, 0xf5, 0x8d, 0x7e, 0x9b, 0xea, 0x67, 0x12, 0x9b, 0xaa, 0x71, 0x28, 0xd8, + 0x58, 0x61, 0x84, 0xf1, 0xc4, 0x06, 0xdb, 0xa3, 0x2a, 0xf2, 0xbd, 0x70, 0x39, 0xbd, 0x44, 0x99, + 0x25, 0x6f, 0xe2, 0x2c, 0xb9, 0x79, 0x72, 0x5c, 0x7c, 0xb3, 0x57, 0x4d, 0xe9, 0x33, 0xe6, 0x54, + 0xd6, 0xf7, 0x86, 0xf2, 0x57, 0x0b, 0xd7, 0xee, 0x0d, 0xe5, 0xaf, 0x15, 0x5e, 0x37, 0x5f, 0xa8, + 0x95, 0xd6, 0x56, 0xab, 0x0d, 0x79, 0xda, 0xc9, 0x20, 0xe8, 0x9c, 0xc6, 0xbc, 0xd2, 0xaf, 0x34, + 0xe2, 0x68, 0xfc, 0xbd, 0x0c, 0x14, 0x4f, 0x19, 0x35, 0x76, 0xc0, 0x44, 0x53, 0xaa, 0x46, 0x03, + 0x35, 0x94, 0x7a, 0x34, 0x15, 0x2d, 0xdd, 0x8e, 0x43, 0x27, 0x41, 0x2f, 0x40, 0x91, 0xbf, 0x43, + 0x71, 0x06, 0x4d, 0xe6, 0xed, 0x90, 0x58, 0xc6, 0xcf, 0x67, 0x60, 0x36, 0x65, 0x92, 0x92, 0x2b, + 0x30, 0x84, 0x09, 0xb9, 0x14, 0xc3, 0x9b, 0x58, 0x22, 0x2e, 0x2c, 0x27, 0x9f, 0x86, 0xd1, 0xca, + 0x7a, 0xad, 0x56, 0x5a, 0x97, 0xf7, 0x79, 0x7e, 0x96, 0xb5, 0x7d, 0xcb, 0xb7, 0xf5, 0xf7, 0x7a, + 0x81, 0x46, 0xde, 0x84, 0x91, 0xea, 0x06, 0x12, 0x70, 0xf3, 0x51, 0xfc, 0x42, 0xa7, 0x13, 0xc7, + 0x17, 0x48, 0xc6, 0x8f, 0x66, 0x80, 0x24, 0x57, 0x1c, 0xb9, 0x09, 0xe3, 0xea, 0xba, 0xe6, 0xda, + 0x07, 0x7c, 0xc4, 0x54, 0x56, 0xad, 0xa9, 0xe2, 0x90, 0x0a, 0x0c, 0x63, 0x2a, 0xd5, 0xd0, 0x50, + 0x20, 0x75, 0x22, 0x5f, 0x48, 0x4c, 0xe4, 0x61, 0x4c, 0xd4, 0x6a, 0x72, 0x62, 0xe3, 0xf7, 0x32, + 0x40, 0xd2, 0xcd, 0xff, 0x06, 0x32, 0x54, 0x7a, 0x4b, 0x71, 0xff, 0x57, 0x53, 0xee, 0x84, 0xf9, + 0xd2, 0xd4, 0x9b, 0x74, 0x14, 0x28, 0xe0, 0x8a, 0xa6, 0xb9, 0xe9, 0xed, 0x33, 0x7a, 0x0d, 0x86, + 0x1f, 0x52, 0x6f, 0x47, 0x5a, 0x46, 0xa3, 0x35, 0xe5, 0x23, 0x06, 0x50, 0x35, 0x19, 0x88, 0x61, + 0xfc, 0x69, 0x06, 0xe6, 0xd2, 0xc4, 0xfc, 0x53, 0x5c, 0x3b, 0x8d, 0x98, 0x57, 0x2a, 0x1a, 0x29, + 0x71, 0x53, 0xcb, 0xd0, 0x17, 0xb5, 0x08, 0xc3, 0xac, 0xb1, 0x72, 0x84, 0x51, 0x93, 0xc4, 0x7a, + 0xc3, 0x37, 0x39, 0x9c, 0x21, 0xf0, 0x30, 0x77, 0x43, 0x18, 0x21, 0x11, 0x11, 0x70, 0x3e, 0x9a, + 0x1c, 0xce, 0x10, 0xd6, 0xdc, 0x06, 0x95, 0x1a, 0x16, 0x44, 0x68, 0x31, 0x80, 0xc9, 0xe1, 0xe4, + 0x0a, 0x8c, 0x3e, 0x68, 0xaf, 0x52, 0xfb, 0x91, 0x4c, 0xfb, 0x80, 0x46, 0x55, 0x6e, 0xdb, 0x6a, + 0x32, 0x98, 0x29, 0x0b, 0x8d, 0x9f, 0xca, 0xc0, 0x4c, 0xe2, 0x86, 0x71, 0xba, 0xf7, 0x6a, 0x7f, + 0x37, 0xb2, 0x41, 0xda, 0xc7, 0x3f, 0x7f, 0x28, 0xfd, 0xf3, 0x8d, 0xff, 0x66, 0x04, 0x2e, 0xf4, + 0x50, 0xf8, 0x44, 0x6e, 0xae, 0x99, 0x53, 0xdd, 0x5c, 0xbf, 0x02, 0x93, 0xe5, 0xa6, 0xed, 0xb4, + 0xfc, 0x4d, 0x37, 0xfa, 0xe2, 0xc8, 0x5b, 0x06, 0xcb, 0x84, 0x2b, 0x41, 0xe8, 0x56, 0x71, 0xb1, + 0x8e, 0x14, 0x56, 0xe0, 0x26, 0xe5, 0x4d, 0x8d, 0x59, 0xc2, 0xd1, 0x34, 0xf7, 0x57, 0xc4, 0xd1, + 0x54, 0x77, 0x7d, 0x1a, 0x7a, 0xaa, 0xae, 0x4f, 0xe9, 0x66, 0xd3, 0xc3, 0x4f, 0x62, 0x44, 0x5f, + 0x86, 0x49, 0x6e, 0x55, 0x56, 0xf2, 0xf9, 0x20, 0x8d, 0x24, 0x2c, 0xd1, 0x6c, 0x3f, 0x39, 0x16, + 0x1a, 0x0d, 0x59, 0xd1, 0xdd, 0x74, 0x46, 0xf1, 0xd9, 0xf5, 0x4a, 0x6f, 0x37, 0x1c, 0xcd, 0xdc, + 0x42, 0x73, 0xc7, 0xf9, 0x16, 0xcc, 0xa5, 0xdd, 0x18, 0xe7, 0xf3, 0x9a, 0xc1, 0x6a, 0x4f, 0x43, + 0xe7, 0xc1, 0xef, 0x9d, 0x07, 0xa9, 0xf7, 0x4e, 0xe9, 0x3e, 0x3d, 0xa6, 0x45, 0x45, 0xee, 0xb1, + 0x16, 0x38, 0x6e, 0x7f, 0x27, 0x6b, 0xe3, 0x2b, 0xf0, 0x62, 0x5f, 0x72, 0xf2, 0x8e, 0x16, 0xa6, + 0xe7, 0xb5, 0x64, 0x98, 0x9e, 0xef, 0x1c, 0x17, 0x67, 0x34, 0xd7, 0xc7, 0xb5, 0x50, 0x67, 0x6e, + 0xfc, 0x54, 0x56, 0x77, 0xda, 0xfd, 0xab, 0xb8, 0x50, 0xaf, 0xc1, 0xf0, 0xf6, 0x3e, 0xf5, 0xe4, + 0xf1, 0x80, 0x1f, 0x72, 0xc8, 0x00, 0xea, 0x87, 0x20, 0x06, 0xb9, 0x03, 0x53, 0x1b, 0x7c, 0xe2, + 0xca, 0xd9, 0x38, 0x14, 0xa9, 0x2d, 0x3a, 0x42, 0xb9, 0x96, 0x32, 0x1d, 0x63, 0x54, 0xc6, 0xdd, + 0x58, 0xa7, 0x8b, 0x20, 0x43, 0xdc, 0xb9, 0x88, 0x0b, 0x10, 0x53, 0x91, 0x3b, 0x55, 0xb4, 0xd9, + 0x9a, 0x31, 0xa8, 0xb1, 0x0b, 0x97, 0xfa, 0x32, 0x62, 0xe7, 0x36, 0x74, 0xc2, 0x5f, 0x31, 0xe3, + 0xe5, 0xbe, 0xa4, 0xa6, 0x42, 0x67, 0x7c, 0x0b, 0x26, 0xd4, 0x5e, 0xc6, 0x23, 0x88, 0xfd, 0x16, + 0xb3, 0x82, 0x1f, 0x41, 0x0c, 0x60, 0x72, 0x78, 0xf4, 0x1c, 0x92, 0x4d, 0x7f, 0x0e, 0x89, 0x86, + 0x3f, 0x77, 0xda, 0xf0, 0xb3, 0xca, 0x71, 0x87, 0x53, 0x2a, 0xc7, 0xdf, 0x6a, 0xe5, 0x18, 0x45, + 0xc8, 0xe4, 0xf0, 0xa7, 0x5a, 0xf9, 0xef, 0xca, 0x3c, 0x61, 0xe8, 0xbb, 0x24, 0x97, 0x7b, 0x26, + 0x4a, 0xf6, 0x95, 0xb6, 0x7a, 0x23, 0xcc, 0x48, 0xa6, 0xc8, 0x9e, 0x26, 0x53, 0x9c, 0x65, 0x22, + 0xa2, 0xa4, 0xca, 0x87, 0x74, 0x28, 0x92, 0x03, 0xed, 0x84, 0xc1, 0x88, 0xc4, 0x32, 0x7e, 0x36, + 0x03, 0xe7, 0x52, 0xd5, 0xce, 0xac, 0x56, 0xae, 0xdf, 0x56, 0xd6, 0x61, 0x5c, 0xb9, 0xcd, 0x31, + 0xce, 0x12, 0x42, 0x62, 0xf0, 0xb6, 0x18, 0x2f, 0xc1, 0x58, 0xf8, 0xe8, 0x49, 0xe6, 0xe4, 0xd0, + 0xa1, 0x69, 0xa1, 0x7c, 0x3b, 0xab, 0x01, 0xb0, 0x2f, 0x78, 0xaa, 0xd6, 0xc9, 0xc6, 0xef, 0x66, + 0x79, 0x0e, 0xd9, 0x67, 0x36, 0x1a, 0x6c, 0xba, 0x49, 0x31, 0x6b, 0x52, 0xef, 0x18, 0xb0, 0x64, + 0x19, 0x46, 0x6a, 0x81, 0x1d, 0x74, 0x65, 0xe4, 0x8b, 0x59, 0x95, 0x0c, 0x0b, 0x1e, 0x2e, 0x46, + 0xb1, 0x0f, 0x7c, 0x84, 0x68, 0x17, 0x6d, 0x84, 0x28, 0x96, 0xc9, 0x7f, 0x98, 0x81, 0x09, 0x95, + 0x98, 0x7c, 0x08, 0x53, 0x32, 0xc6, 0x25, 0x8f, 0x07, 0x22, 0x5e, 0x68, 0xa5, 0x35, 0x95, 0x8c, + 0x71, 0xa9, 0xc6, 0x0f, 0xd1, 0xf0, 0xd5, 0xad, 0xba, 0xa3, 0x22, 0x93, 0x06, 0x90, 0xd6, 0xae, + 0x6d, 0x1d, 0x52, 0xfb, 0x80, 0xfa, 0x81, 0xc5, 0xad, 0x5e, 0xc4, 0x43, 0xae, 0x64, 0xbf, 0x76, + 0xa7, 0xc4, 0x0d, 0x5e, 0xd8, 0x48, 0x88, 0x60, 0xa5, 0x09, 0x1a, 0xf5, 0x75, 0xaa, 0xb5, 0x6b, + 0x6f, 0xf3, 0x42, 0x4e, 0x67, 0xfc, 0xd9, 0x08, 0x9f, 0x6e, 0x22, 0x24, 0xee, 0x0e, 0x4c, 0x3d, + 0xa8, 0x56, 0xca, 0x8a, 0xae, 0x5a, 0xcf, 0xa8, 0xb4, 0xfc, 0x38, 0xa0, 0x5e, 0xdb, 0x6e, 0xca, + 0x1b, 0x6a, 0x74, 0x04, 0xb9, 0x4e, 0xa3, 0x9e, 0xae, 0xc7, 0x8e, 0x71, 0x64, 0x75, 0xf0, 0xbb, + 0x70, 0x58, 0x47, 0x76, 0xc0, 0x3a, 0x7c, 0xbb, 0xd5, 0xec, 0x51, 0x87, 0xce, 0x91, 0xec, 0x43, + 0xe1, 0x2e, 0x4a, 0x97, 0x4a, 0x2d, 0xb9, 0xfe, 0xb5, 0xbc, 0x2c, 0x6a, 0x79, 0x9e, 0x8b, 0xa5, + 0xe9, 0xf5, 0x24, 0xb8, 0x46, 0xfb, 0xc4, 0xd0, 0xa9, 0xfb, 0xc4, 0xdf, 0xc9, 0xc0, 0x08, 0x17, + 0x5f, 0xc5, 0x34, 0xee, 0x21, 0x20, 0x6f, 0x3f, 0x1d, 0x01, 0xb9, 0x80, 0xe7, 0x84, 0x36, 0xa1, + 0x79, 0x19, 0xa9, 0xc4, 0xd6, 0x85, 0x34, 0xa8, 0xc7, 0x57, 0x27, 0x5e, 0x72, 0xfa, 0xb2, 0x20, + 0xd5, 0x28, 0x1a, 0xc5, 0xe8, 0xa9, 0x0e, 0xcf, 0x32, 0x82, 0xc7, 0xa8, 0x88, 0x46, 0xa1, 0xc7, + 0xa0, 0x58, 0x85, 0x31, 0x11, 0xe3, 0x62, 0xe9, 0x48, 0xbc, 0x2d, 0x17, 0x34, 0xeb, 0xa0, 0xc6, + 0xd2, 0x51, 0x24, 0x9a, 0x8b, 0x28, 0x19, 0xd6, 0xce, 0x91, 0x96, 0x92, 0x57, 0x22, 0x92, 0x07, + 0x3c, 0x55, 0x25, 0x0f, 0x1a, 0xac, 0x67, 0x09, 0x08, 0xe1, 0x22, 0x7a, 0x96, 0x74, 0x94, 0x4f, + 0x89, 0x11, 0x1c, 0xf1, 0x20, 0xab, 0x50, 0x40, 0x8b, 0x32, 0xda, 0xe0, 0xab, 0xa6, 0x5a, 0xe1, + 0x71, 0x14, 0x84, 0x55, 0x70, 0xc0, 0xcb, 0xc4, 0x72, 0x8b, 0xb9, 0x30, 0x26, 0x28, 0xd9, 0x75, + 0xba, 0x10, 0x9f, 0x7d, 0xe4, 0x5d, 0x18, 0x0f, 0x83, 0x36, 0x87, 0x4e, 0xd4, 0xf8, 0xc6, 0x14, + 0x45, 0x79, 0xd6, 0x13, 0x1c, 0x2a, 0xe8, 0x64, 0x11, 0xf2, 0x6c, 0x11, 0xc7, 0x93, 0x01, 0x77, + 0x05, 0x4c, 0x75, 0x6a, 0x92, 0x78, 0xa4, 0x06, 0xb3, 0x6c, 0xd1, 0xd4, 0x9c, 0xf6, 0x5e, 0x93, + 0xae, 0xba, 0x7b, 0x6e, 0x37, 0x88, 0xf2, 0xfd, 0xf1, 0x0b, 0x8c, 0xdd, 0x6a, 0x6a, 0xc5, 0x7a, + 0xb6, 0xbf, 0x14, 0x6a, 0x65, 0xab, 0xfc, 0xe3, 0x2c, 0x8c, 0x2b, 0xf3, 0x89, 0x5c, 0x83, 0x7c, + 0xd5, 0x5f, 0x75, 0xeb, 0x07, 0x61, 0x78, 0xc5, 0xc9, 0x93, 0xe3, 0xe2, 0x98, 0xe3, 0x5b, 0x4d, + 0x04, 0x9a, 0x61, 0x31, 0x59, 0x82, 0x49, 0xfe, 0x97, 0x4c, 0xa6, 0x91, 0x8d, 0xd4, 0x5b, 0x1c, + 0x59, 0xa6, 0xd1, 0x50, 0x77, 0x4f, 0x8d, 0x84, 0x7c, 0x15, 0x80, 0x03, 0xd0, 0x21, 0x3f, 0x37, + 0x78, 0x28, 0x01, 0x51, 0x41, 0x8a, 0x2b, 0xbe, 0xc2, 0x90, 0x7c, 0x9d, 0x07, 0x79, 0x96, 0xf3, + 0x7f, 0x68, 0xf0, 0x58, 0x08, 0x8c, 0xbf, 0x95, 0x1e, 0x92, 0x45, 0x65, 0x29, 0xf2, 0xdf, 0x2c, + 0x98, 0xb4, 0xee, 0x3e, 0xa2, 0xde, 0x51, 0x29, 0x40, 0x44, 0x05, 0xc3, 0xf8, 0x5f, 0x32, 0xca, + 0xaa, 0x21, 0xeb, 0x98, 0xbf, 0x9a, 0xcf, 0x08, 0x61, 0x66, 0x15, 0xde, 0x19, 0x24, 0xdc, 0xa4, + 0xbb, 0x4b, 0xcf, 0x0b, 0x8b, 0xaf, 0xd9, 0x70, 0x5e, 0xc5, 0xf2, 0x5a, 0x73, 0x20, 0xf9, 0x02, + 0x0c, 0x61, 0xd7, 0x65, 0x4f, 0x6d, 0x9a, 0x3c, 0xb6, 0x87, 0x58, 0x9f, 0x61, 0x43, 0x90, 0x92, + 0x7c, 0x5a, 0x38, 0x33, 0xf3, 0xce, 0x9f, 0x52, 0xce, 0x5e, 0xf6, 0x1d, 0xe1, 0x79, 0x1d, 0x45, + 0xe5, 0x51, 0x66, 0xcf, 0xdf, 0xcb, 0x42, 0x21, 0xbe, 0x56, 0xc9, 0x07, 0x30, 0x21, 0xcf, 0xd3, + 0x15, 0x5b, 0x64, 0x82, 0x98, 0x10, 0x99, 0x18, 0xe4, 0xa1, 0xba, 0x6f, 0xab, 0x66, 0x59, 0xa6, + 0x46, 0xc0, 0x84, 0x9b, 0x4d, 0x11, 0x25, 0x4f, 0x59, 0x25, 0x81, 0x1b, 0x74, 0x62, 0xb1, 0x85, + 0x25, 0x1a, 0x79, 0x0b, 0x72, 0x6b, 0x77, 0x4a, 0xc2, 0xe9, 0xad, 0x10, 0x3f, 0x75, 0xb9, 0xf5, + 0xa8, 0x6e, 0xcb, 0xca, 0xf0, 0xc9, 0xaa, 0x12, 0x86, 0x7b, 0x44, 0x33, 0xc1, 0x93, 0xe0, 0xb0, + 0x71, 0xa7, 0xc7, 0xe3, 0xbe, 0x37, 0x94, 0xcf, 0x15, 0x86, 0x44, 0x60, 0xd9, 0xff, 0x2e, 0x07, + 0x63, 0x61, 0xfd, 0x84, 0xa8, 0xae, 0xc4, 0xdc, 0x6d, 0x98, 0x5c, 0x84, 0xbc, 0x14, 0xd7, 0x84, + 0xef, 0xdb, 0xa8, 0x2f, 0x44, 0xb5, 0x79, 0x90, 0x72, 0x19, 0x5f, 0xe6, 0xa6, 0xfc, 0x49, 0x6e, + 0x42, 0x28, 0x74, 0xf5, 0x92, 0xce, 0x86, 0xd8, 0x80, 0x99, 0x21, 0x1a, 0x99, 0x82, 0xac, 0xc3, + 0x83, 0x95, 0x8d, 0x99, 0x59, 0xa7, 0x41, 0x3e, 0x80, 0xbc, 0xdd, 0x68, 0xd0, 0x86, 0x65, 0x4b, + 0x7b, 0xa5, 0x7e, 0x93, 0x26, 0xcf, 0xb8, 0xf1, 0x43, 0x00, 0xa9, 0x4a, 0x01, 0x29, 0xc1, 0x58, + 0xd3, 0xe6, 0x16, 0x90, 0x8d, 0x01, 0x4e, 0x94, 0x88, 0x43, 0x9e, 0x91, 0x6d, 0xf9, 0xb4, 0x41, + 0x5e, 0x83, 0x21, 0x36, 0x9a, 0xe2, 0x08, 0x91, 0x52, 0x22, 0x1b, 0x4c, 0xde, 0x61, 0x2b, 0xcf, + 0x99, 0x88, 0x40, 0x5e, 0x81, 0x5c, 0x77, 0x71, 0x57, 0x1c, 0x0e, 0x85, 0x28, 0x24, 0x7e, 0x88, + 0xc6, 0x8a, 0xc9, 0x2d, 0xc8, 0x1f, 0xea, 0xd1, 0xd4, 0xcf, 0xc5, 0x86, 0x31, 0xc4, 0x0f, 0x11, + 0xc9, 0x6b, 0x90, 0xf3, 0x7d, 0x57, 0x18, 0xf9, 0xcc, 0x86, 0x96, 0x97, 0x0f, 0xc2, 0x51, 0x63, + 0xdc, 0x7d, 0xdf, 0x5d, 0xca, 0xc3, 0x08, 0x3f, 0x31, 0x8c, 0x4b, 0x00, 0xd1, 0x37, 0x26, 0x7d, + 0x19, 0x8d, 0xaf, 0xc2, 0x58, 0xf8, 0x6d, 0xe4, 0x45, 0x80, 0x03, 0x7a, 0x64, 0xed, 0xdb, 0xed, + 0x46, 0x93, 0x8b, 0x9b, 0x13, 0xe6, 0xd8, 0x01, 0x3d, 0x5a, 0x41, 0x00, 0xb9, 0x00, 0xa3, 0x1d, + 0x36, 0xfc, 0x62, 0x8e, 0x4f, 0x98, 0x23, 0x9d, 0xee, 0x0e, 0x9b, 0xca, 0xf3, 0x30, 0x8a, 0x8a, + 0x53, 0xb1, 0x22, 0x27, 0x4d, 0xf9, 0xd3, 0xf8, 0xf3, 0x1c, 0xa6, 0x1c, 0x52, 0x1a, 0x44, 0x5e, + 0x86, 0xc9, 0xba, 0x47, 0xf1, 0x70, 0xb2, 0x99, 0xc8, 0x25, 0xea, 0x99, 0x88, 0x80, 0xd5, 0x06, + 0xb9, 0x02, 0xd3, 0x9d, 0xee, 0x4e, 0xd3, 0xa9, 0xb3, 0xda, 0xac, 0xfa, 0x8e, 0xc8, 0x91, 0x30, + 0x61, 0x4e, 0x72, 0xf0, 0x7d, 0x7a, 0x54, 0xde, 0xc1, 0x68, 0x7c, 0x05, 0x35, 0x98, 0x72, 0x10, + 0x26, 0x83, 0x37, 0xa7, 0x15, 0x38, 0xda, 0x2b, 0x9e, 0x87, 0x11, 0xdb, 0xde, 0xeb, 0x3a, 0x3c, + 0x6a, 0xd6, 0x84, 0x29, 0x7e, 0x91, 0x4f, 0xc1, 0x4c, 0x14, 0xdf, 0x5b, 0x36, 0x63, 0x18, 0x9b, + 0x51, 0x08, 0x0b, 0xca, 0x1c, 0x4e, 0xde, 0x04, 0xa2, 0xd6, 0xe7, 0xee, 0x7c, 0x44, 0xeb, 0x7c, + 0x4e, 0x4e, 0x98, 0x33, 0x4a, 0xc9, 0x03, 0x2c, 0x20, 0x2f, 0xc1, 0x84, 0x47, 0x7d, 0x14, 0xf7, + 0xb0, 0xdb, 0x30, 0x23, 0x9f, 0x39, 0x2e, 0x61, 0xac, 0xef, 0xae, 0x42, 0x41, 0xe9, 0x0e, 0x8c, + 0x57, 0xcd, 0x13, 0x04, 0x98, 0x53, 0x11, 0xdc, 0xec, 0x54, 0x1b, 0xe4, 0x4b, 0xb0, 0xa0, 0x60, + 0xf2, 0xe4, 0x80, 0x16, 0x6d, 0x3a, 0x7b, 0xce, 0x4e, 0x93, 0x8a, 0xf9, 0x96, 0x9c, 0xd5, 0xe1, + 0x9d, 0xd0, 0x9c, 0x8f, 0xa8, 0x79, 0xda, 0xc0, 0x65, 0x41, 0x4b, 0x56, 0x61, 0x2e, 0xc6, 0x99, + 0x36, 0xac, 0x6e, 0xa7, 0x67, 0x98, 0xba, 0x88, 0x27, 0xd1, 0x79, 0xd2, 0xc6, 0x56, 0xc7, 0xf8, + 0x16, 0x4c, 0xa8, 0x73, 0x92, 0x75, 0x82, 0x2a, 0x68, 0x88, 0xd9, 0x37, 0x1e, 0xc2, 0xaa, 0xec, + 0xa2, 0x37, 0x15, 0xa1, 0x04, 0x61, 0xde, 0x7b, 0x73, 0x32, 0x84, 0xe2, 0x10, 0xbe, 0x04, 0x13, + 0x0d, 0xc7, 0xef, 0x34, 0xed, 0x23, 0x2b, 0xca, 0x7a, 0x6d, 0x8e, 0x0b, 0x18, 0x6a, 0x72, 0x96, + 0x60, 0x26, 0xb1, 0x0f, 0x92, 0x37, 0xf9, 0x0d, 0x55, 0x08, 0x3f, 0x13, 0xfc, 0x96, 0x8f, 0xd6, + 0xd0, 0x9a, 0xdc, 0x23, 0x90, 0x8c, 0x36, 0x4c, 0xa8, 0xe7, 0xda, 0x29, 0xc9, 0x3c, 0xce, 0x63, + 0x68, 0x1a, 0xbe, 0xe9, 0x8f, 0x9c, 0x1c, 0x17, 0xb3, 0x4e, 0x03, 0x03, 0xd2, 0x5c, 0x85, 0xbc, + 0x14, 0xc1, 0x84, 0xe4, 0x83, 0xaf, 0x03, 0xf2, 0x75, 0xd0, 0x0c, 0x4b, 0x8d, 0xd7, 0x60, 0x54, + 0x1c, 0x5d, 0xfd, 0xdf, 0x04, 0x8c, 0x1f, 0xcc, 0xc2, 0xb4, 0x49, 0xd9, 0xc6, 0x4a, 0x79, 0x06, + 0x9f, 0x67, 0xf6, 0xce, 0x9d, 0x1e, 0xe0, 0x54, 0x6b, 0x5b, 0x9f, 0xdc, 0x39, 0xbf, 0x9c, 0x81, + 0xd9, 0x14, 0xdc, 0x8f, 0x95, 0x3b, 0xf6, 0x36, 0x8c, 0x55, 0x1c, 0xbb, 0x59, 0x6a, 0x34, 0xc2, + 0x38, 0x35, 0x28, 0xb8, 0x63, 0x82, 0x29, 0x9b, 0x41, 0x55, 0x21, 0x26, 0x44, 0x25, 0xaf, 0x8b, + 0x49, 0x11, 0x65, 0x5e, 0xc7, 0x49, 0xf1, 0x9d, 0xe3, 0x22, 0xf0, 0x6f, 0xda, 0x0c, 0xa7, 0x08, + 0x06, 0x1d, 0xe6, 0xc0, 0xc8, 0xd7, 0xe8, 0x99, 0x1d, 0xba, 0xf4, 0xa0, 0xc3, 0xf1, 0xe6, 0x0d, + 0x94, 0x3e, 0xe7, 0xc7, 0xb2, 0x70, 0x3e, 0x9d, 0xf0, 0xe3, 0xa6, 0x01, 0xc6, 0xc4, 0x45, 0x4a, + 0xa0, 0x74, 0x4c, 0x03, 0xcc, 0xb3, 0x1c, 0x21, 0x7e, 0x84, 0x40, 0x76, 0x61, 0x72, 0xd5, 0xf6, + 0x83, 0x15, 0x6a, 0x7b, 0xc1, 0x0e, 0xb5, 0x83, 0x01, 0x24, 0xf9, 0x57, 0xa4, 0x5d, 0x06, 0x0a, + 0x13, 0xfb, 0x92, 0x32, 0x26, 0x6b, 0xeb, 0x6c, 0xc3, 0x89, 0x32, 0x34, 0xc0, 0x44, 0xf9, 0x06, + 0x4c, 0xd7, 0x68, 0xcb, 0xee, 0xec, 0xbb, 0x9e, 0x8c, 0x21, 0x70, 0x1d, 0x26, 0x43, 0x50, 0xea, + 0x6c, 0xd1, 0x8b, 0x35, 0x7c, 0xa5, 0x23, 0xa2, 0xad, 0x44, 0x2f, 0x36, 0xfe, 0x7e, 0x16, 0x2e, + 0x94, 0xea, 0xc2, 0x5c, 0x52, 0x14, 0x48, 0xab, 0xee, 0x4f, 0xb8, 0x6e, 0x72, 0x03, 0xc6, 0xd6, + 0xec, 0xc7, 0xab, 0xd4, 0xf6, 0xa9, 0x2f, 0x92, 0x30, 0x72, 0xb1, 0xd7, 0x7e, 0x1c, 0xbd, 0xe6, + 0x98, 0x11, 0x8e, 0xaa, 0x17, 0x18, 0x7a, 0x42, 0xbd, 0x80, 0x01, 0x23, 0x2b, 0x6e, 0xb3, 0x21, + 0xce, 0x7a, 0xf1, 0x84, 0xbc, 0x8f, 0x10, 0x53, 0x94, 0xb0, 0xeb, 0xf4, 0x54, 0xf8, 0xc5, 0xf8, + 0x09, 0x9f, 0x78, 0x97, 0x5c, 0x81, 0x51, 0xac, 0x28, 0xcc, 0x16, 0x8f, 0x87, 0x46, 0x93, 0x62, + 0x2a, 0xbd, 0x86, 0x29, 0x0b, 0xd5, 0x9e, 0x18, 0x7e, 0xb2, 0x9e, 0x30, 0xfe, 0x11, 0xbe, 0x4e, + 0xab, 0xad, 0x64, 0x27, 0x91, 0xf2, 0x21, 0x99, 0x01, 0x3f, 0x24, 0xfb, 0xd4, 0x86, 0x24, 0xd7, + 0x73, 0x48, 0x7e, 0x28, 0x0b, 0xe3, 0xe1, 0xc7, 0x7e, 0x97, 0x45, 0xeb, 0x0f, 0xdb, 0x35, 0x50, + 0xdc, 0x9f, 0x9a, 0xb2, 0x57, 0x88, 0xf0, 0x3a, 0x5f, 0x80, 0x11, 0xb1, 0x98, 0x32, 0x31, 0xeb, + 0xe6, 0xd8, 0xe8, 0x2e, 0x4d, 0x09, 0xd6, 0x23, 0x38, 0xa0, 0xbe, 0x29, 0xe8, 0x30, 0xb0, 0xd2, + 0x36, 0xdd, 0x11, 0xc6, 0x0a, 0xcf, 0xec, 0x19, 0x95, 0x1e, 0x58, 0x29, 0x6a, 0xd8, 0x40, 0xa7, + 0xd3, 0x3f, 0xc9, 0x43, 0x21, 0x4e, 0x72, 0x7a, 0x3e, 0x84, 0x8d, 0xee, 0x0e, 0xbf, 0xaa, 0xf0, + 0x7c, 0x08, 0x9d, 0xee, 0x8e, 0xc9, 0x60, 0x68, 0xcb, 0xe4, 0x39, 0x8f, 0xb0, 0xd5, 0x13, 0xc2, + 0x96, 0xc9, 0x73, 0x1e, 0x69, 0xb6, 0x4c, 0x9e, 0xf3, 0x08, 0x15, 0x09, 0xab, 0x35, 0x0c, 0x3a, + 0x80, 0xf7, 0x14, 0xa1, 0x48, 0x68, 0xfa, 0xf1, 0xdc, 0x66, 0x12, 0x8d, 0x1d, 0x95, 0x4b, 0xd4, + 0xf6, 0x44, 0xec, 0x7e, 0xb1, 0x9d, 0xe1, 0x51, 0xb9, 0x83, 0x60, 0x2b, 0x60, 0x70, 0x53, 0x45, + 0x22, 0x4d, 0x20, 0xca, 0x4f, 0xb9, 0x80, 0x4f, 0xbf, 0x5b, 0x4b, 0xcb, 0xc4, 0x39, 0x95, 0xb5, + 0xa5, 0xae, 0xe6, 0x14, 0xbe, 0x4f, 0x53, 0x9d, 0xbb, 0x21, 0x02, 0x92, 0xa2, 0x02, 0x29, 0x7f, + 0x2a, 0x33, 0x19, 0x2c, 0x05, 0x78, 0xc0, 0xd2, 0x50, 0x8d, 0x14, 0x31, 0x21, 0xef, 0xc3, 0xb8, + 0x1a, 0x4a, 0x82, 0x07, 0x3c, 0x78, 0x81, 0xc7, 0x98, 0xec, 0x91, 0x0d, 0x57, 0x25, 0x20, 0x3b, + 0x70, 0xa1, 0xec, 0xb6, 0xfd, 0x6e, 0x4b, 0x46, 0xb3, 0x8c, 0x62, 0x68, 0x03, 0x0e, 0x05, 0xfa, + 0xa5, 0xd7, 0x05, 0x8a, 0x88, 0x5c, 0x20, 0x5d, 0x47, 0xf4, 0x0b, 0x48, 0x2f, 0x46, 0x64, 0x13, + 0xc6, 0x51, 0x25, 0x2a, 0xac, 0x0e, 0xc7, 0xf5, 0x6d, 0x23, 0x2a, 0xa9, 0xb0, 0x85, 0xc1, 0x23, + 0xa9, 0xd9, 0xad, 0xa6, 0xf4, 0x5c, 0x50, 0x55, 0xbb, 0x0a, 0x32, 0xf9, 0x2a, 0x4c, 0xf1, 0x2b, + 0xda, 0x36, 0xdd, 0xe1, 0x73, 0x67, 0x42, 0xd3, 0x44, 0xe8, 0x85, 0xfc, 0x75, 0x5e, 0x28, 0xa2, + 0x0f, 0xe9, 0x0e, 0x1f, 0x7b, 0xcd, 0x6f, 0x48, 0xc3, 0x27, 0x5b, 0x30, 0xbb, 0x62, 0xfb, 0x1c, + 0xa8, 0xc4, 0x04, 0x98, 0x44, 0x0d, 0x2d, 0xda, 0x73, 0xef, 0xdb, 0xbe, 0xd4, 0x6c, 0xa7, 0xc6, + 0x00, 0x48, 0xa3, 0x27, 0x3f, 0x98, 0x81, 0x79, 0x4d, 0xf1, 0x2d, 0x0c, 0xc7, 0x5a, 0xb4, 0x1d, + 0xa0, 0x83, 0xd0, 0xd4, 0x62, 0x51, 0x0a, 0xa5, 0x3d, 0xd0, 0xf8, 0x90, 0xc4, 0x74, 0xeb, 0x5e, + 0x54, 0xae, 0x1a, 0x4a, 0xf7, 0xe2, 0x21, 0x16, 0x2a, 0xae, 0xe9, 0x69, 0x7d, 0xa1, 0xc6, 0xd6, + 0xb5, 0x44, 0x33, 0x6e, 0xc7, 0xfb, 0x5b, 0x28, 0xba, 0x32, 0xa1, 0xa2, 0x6b, 0x0e, 0x86, 0xb1, + 0x57, 0x65, 0x64, 0x29, 0xfc, 0x61, 0x7c, 0x5a, 0xdd, 0x87, 0x84, 0x58, 0xd8, 0x77, 0x1f, 0x32, + 0xfe, 0x87, 0x11, 0x98, 0x8e, 0x4d, 0x0b, 0x71, 0x4f, 0xcd, 0x24, 0xee, 0xa9, 0x35, 0x00, 0xae, + 0xea, 0x1d, 0x50, 0x27, 0x2b, 0x9d, 0x13, 0xc7, 0x85, 0x6b, 0x71, 0xb8, 0xa6, 0x14, 0x36, 0x8c, + 0x29, 0x5f, 0xb1, 0x03, 0xea, 0xc8, 0x43, 0xa6, 0x7c, 0xd1, 0x2b, 0x4c, 0x23, 0x36, 0xa4, 0x08, + 0xc3, 0x18, 0x53, 0x56, 0xf5, 0x0d, 0x75, 0x18, 0xc0, 0xe4, 0x70, 0xf2, 0x32, 0x8c, 0x30, 0x21, + 0xaa, 0x5a, 0x11, 0x9b, 0x20, 0x9e, 0x2d, 0x4c, 0xca, 0x62, 0x12, 0x8b, 0x28, 0x22, 0xb7, 0x61, + 0x82, 0xff, 0x25, 0x42, 0xcf, 0x8c, 0xe8, 0xd6, 0x8c, 0x96, 0xd3, 0x90, 0xd1, 0x67, 0x34, 0x3c, + 0x76, 0xbb, 0xa8, 0x75, 0x51, 0xad, 0x53, 0xad, 0x88, 0x20, 0xe4, 0x78, 0xbb, 0xf0, 0x39, 0x90, + 0x55, 0x11, 0x21, 0x30, 0x59, 0x46, 0x78, 0x68, 0xe4, 0xf1, 0x4e, 0x89, 0xb2, 0x0c, 0xf7, 0xcc, + 0x30, 0x45, 0x09, 0xb9, 0xc6, 0x9f, 0x56, 0x50, 0x2c, 0xe4, 0xb9, 0x1c, 0xf1, 0xdd, 0x02, 0x15, + 0x13, 0x28, 0x1b, 0x86, 0xc5, 0xac, 0x72, 0xf6, 0xf7, 0x72, 0xcb, 0x76, 0x9a, 0x62, 0x5b, 0xc1, + 0xca, 0x11, 0x97, 0x32, 0xa8, 0x19, 0x21, 0x90, 0x77, 0x61, 0x8a, 0xfd, 0x28, 0xbb, 0xad, 0x96, + 0xdb, 0x46, 0xf6, 0xe3, 0x51, 0x70, 0x39, 0x24, 0xa9, 0x63, 0x11, 0xaf, 0x25, 0x86, 0xcb, 0xce, + 0x13, 0x7c, 0xb6, 0xed, 0xf2, 0x47, 0x9f, 0x89, 0xe8, 0x3c, 0x41, 0x52, 0x9f, 0xc3, 0x4d, 0x15, + 0x89, 0xbc, 0x0d, 0x93, 0xec, 0xe7, 0x5d, 0xe7, 0x11, 0xe5, 0x15, 0x4e, 0x46, 0xf6, 0x0a, 0x48, + 0xb5, 0xc7, 0x4a, 0x78, 0x7d, 0x3a, 0x26, 0xf9, 0x22, 0x9c, 0x43, 0x4e, 0x75, 0xb7, 0x43, 0x1b, + 0xa5, 0xdd, 0x5d, 0xa7, 0xe9, 0x70, 0xf3, 0x32, 0x1e, 0x64, 0x05, 0x75, 0xf0, 0xbc, 0x62, 0xc4, + 0xb0, 0xec, 0x08, 0xc5, 0x4c, 0xa7, 0x24, 0xdb, 0x50, 0x28, 0x77, 0xfd, 0xc0, 0x6d, 0x95, 0x82, + 0xc0, 0x73, 0x76, 0xba, 0x01, 0xf5, 0xe7, 0xa7, 0xb5, 0x50, 0x24, 0x6c, 0x71, 0x84, 0x85, 0x5c, + 0x1f, 0x54, 0x47, 0x0a, 0xcb, 0x0e, 0x49, 0xcc, 0x04, 0x13, 0xe3, 0x9f, 0x66, 0x60, 0x52, 0x23, + 0x25, 0x6f, 0xc1, 0xc4, 0x1d, 0xcf, 0xa1, 0xed, 0x46, 0xf3, 0x48, 0xb9, 0xa8, 0xe2, 0x2d, 0x66, + 0x57, 0xc0, 0x79, 0xab, 0x35, 0xb4, 0x50, 0xcf, 0x93, 0x4d, 0xb5, 0xfd, 0xbc, 0xc1, 0x5d, 0x94, + 0xc5, 0x04, 0xcd, 0x45, 0xb1, 0x91, 0x70, 0x82, 0x8a, 0xd9, 0xa9, 0xa0, 0x90, 0xf7, 0x60, 0x84, + 0x3f, 0xf0, 0x0a, 0x43, 0xc4, 0x8b, 0x69, 0xcd, 0xe4, 0xee, 0xf0, 0x38, 0x11, 0xd1, 0x8a, 0xc7, + 0x37, 0x05, 0x91, 0xf1, 0xd3, 0x19, 0x20, 0x49, 0xd4, 0x53, 0xf4, 0x5e, 0xa7, 0x5a, 0x07, 0x7d, + 0x21, 0x5c, 0x8d, 0x39, 0x4d, 0x67, 0xce, 0x6a, 0xe2, 0x05, 0xbc, 0xe3, 0xc5, 0xaa, 0x53, 0x15, + 0x71, 0xbc, 0xd8, 0xf8, 0xdb, 0x59, 0x80, 0x08, 0x9b, 0x7c, 0x8e, 0xa7, 0xee, 0xfa, 0x62, 0xd7, + 0x6e, 0x3a, 0xbb, 0x8e, 0x1e, 0xcb, 0x16, 0x99, 0x7c, 0x43, 0x96, 0x98, 0x3a, 0x22, 0xf9, 0x00, + 0xa6, 0x6b, 0x1b, 0x3a, 0xad, 0x62, 0x99, 0xee, 0x77, 0xac, 0x18, 0x79, 0x1c, 0x1b, 0x0d, 0x8e, + 0xd5, 0xd1, 0xe0, 0x06, 0xc7, 0x7c, 0x20, 0x44, 0x09, 0xdb, 0x58, 0x6a, 0x1b, 0xc2, 0xf8, 0xbe, + 0x51, 0xad, 0x88, 0x5d, 0x0a, 0xbf, 0xce, 0xef, 0x58, 0x1d, 0x61, 0x95, 0xcf, 0xf6, 0x09, 0x0d, + 0x2f, 0xea, 0xc8, 0xe1, 0x1e, 0x2e, 0xef, 0x3f, 0x83, 0x6a, 0xbf, 0x96, 0x1b, 0x50, 0xa1, 0xed, + 0x78, 0x66, 0xef, 0x3d, 0x91, 0x75, 0xc0, 0xb0, 0xe6, 0xc9, 0xab, 0xb5, 0x4e, 0x58, 0xc0, 0xdc, + 0x8a, 0x2e, 0x29, 0xdc, 0x4e, 0x20, 0xc5, 0x68, 0xe6, 0x1f, 0x66, 0xe0, 0x5c, 0x2a, 0x2d, 0xb9, + 0x0e, 0x10, 0xe9, 0x94, 0x44, 0x2f, 0xe1, 0x8e, 0x19, 0x45, 0x04, 0x32, 0x15, 0x0c, 0xf2, 0x95, + 0xb8, 0x36, 0xe8, 0xf4, 0x83, 0x70, 0x41, 0x06, 0xe2, 0xd3, 0xb5, 0x41, 0x29, 0x3a, 0x20, 0xe3, + 0x97, 0x73, 0x30, 0xa3, 0x04, 0x1c, 0xe2, 0xdf, 0x7a, 0x8a, 0x01, 0xf8, 0x01, 0x4c, 0xb0, 0xd6, + 0x38, 0x75, 0xe1, 0xf9, 0xc2, 0x2d, 0x59, 0x5e, 0x4f, 0xf8, 0x62, 0x0a, 0x6e, 0xd7, 0x55, 0x64, + 0x1e, 0x1e, 0x13, 0xb7, 0x4e, 0x7c, 0x90, 0xa8, 0x27, 0xbd, 0x5e, 0x34, 0xe6, 0xc4, 0x87, 0xc9, + 0xca, 0x51, 0xdb, 0x6e, 0x85, 0xb5, 0x71, 0x8b, 0x96, 0x4f, 0xf5, 0xac, 0x4d, 0xc3, 0xe6, 0xd5, + 0x45, 0x5e, 0x4b, 0xbc, 0x2c, 0xc5, 0x61, 0x5e, 0xa3, 0x5a, 0xf8, 0x00, 0x66, 0x12, 0x1f, 0x7d, + 0xa6, 0x48, 0x9d, 0xdb, 0x40, 0x92, 0xdf, 0x91, 0xc2, 0xe1, 0x53, 0x7a, 0x1c, 0xd8, 0x73, 0xe1, + 0xe3, 0x75, 0xab, 0x65, 0xb7, 0x1b, 0xdc, 0x3e, 0x66, 0x51, 0x8d, 0xe3, 0xf9, 0x33, 0x59, 0xd5, + 0x1f, 0xf6, 0x59, 0x5f, 0x75, 0x5f, 0xd0, 0x6e, 0xc3, 0x97, 0x7a, 0x8d, 0xe9, 0x40, 0x5a, 0x87, + 0x6f, 0xe7, 0xe0, 0x42, 0x0f, 0x4a, 0x72, 0x14, 0x9f, 0x44, 0x5c, 0x0b, 0x71, 0xb3, 0x7f, 0x85, + 0x4f, 0x63, 0x2a, 0x91, 0xcf, 0xf1, 0x88, 0x18, 0x75, 0x4c, 0xa0, 0x2f, 0xee, 0xdf, 0xa8, 0xc6, + 0x3f, 0x08, 0xa1, 0xf1, 0x50, 0x18, 0x1c, 0x4a, 0x3e, 0x80, 0x61, 0x74, 0x86, 0x8e, 0x85, 0x3c, + 0x64, 0x18, 0x08, 0x57, 0x82, 0x76, 0xb2, 0x9f, 0x5a, 0xd0, 0x4e, 0x06, 0x20, 0x9f, 0x85, 0x5c, + 0x69, 0xbb, 0x26, 0xc6, 0x65, 0x4a, 0x25, 0xdf, 0xae, 0x45, 0x09, 0x47, 0x6c, 0x2d, 0x33, 0x08, + 0xa3, 0x60, 0x84, 0x77, 0xcb, 0x1b, 0x62, 0x54, 0x54, 0xc2, 0xbb, 0xe5, 0x8d, 0x88, 0x70, 0xaf, + 0xae, 0x05, 0x90, 0xba, 0x5b, 0xde, 0xf8, 0xe4, 0xa6, 0xfd, 0xbf, 0x91, 0xe5, 0x61, 0x3c, 0x78, + 0xc3, 0x3e, 0x80, 0x09, 0x2d, 0x4e, 0x77, 0x26, 0x92, 0xc7, 0xc2, 0x98, 0xea, 0x31, 0x13, 0x20, + 0x8d, 0x40, 0xa6, 0xee, 0x61, 0xbf, 0x51, 0xe2, 0x55, 0x8d, 0x6d, 0x42, 0x0e, 0x28, 0x13, 0xc7, + 0x53, 0xf7, 0x84, 0x24, 0xe4, 0x16, 0xe4, 0x37, 0x69, 0xdb, 0x6e, 0x07, 0xa1, 0x42, 0x14, 0xad, + 0x85, 0x03, 0x84, 0xe9, 0x52, 0x43, 0x88, 0x88, 0x96, 0xad, 0xdd, 0x1d, 0xbf, 0xee, 0x39, 0x18, + 0xee, 0x27, 0x3c, 0x8b, 0xb9, 0x65, 0xab, 0x52, 0xa2, 0x33, 0x88, 0x11, 0x19, 0x3f, 0x93, 0x81, + 0x51, 0x31, 0x90, 0x3c, 0xe5, 0xda, 0x5e, 0x74, 0x96, 0x08, 0x6f, 0x80, 0x3d, 0x27, 0xee, 0x0d, + 0xb0, 0xc7, 0x63, 0xea, 0x8c, 0x09, 0xdf, 0xb6, 0xf0, 0x69, 0x10, 0x67, 0xa3, 0x74, 0x85, 0xd4, + 0x33, 0x6a, 0x85, 0xa8, 0x83, 0x7a, 0x58, 0x19, 0xff, 0x40, 0x7c, 0xd9, 0xdd, 0xf2, 0x06, 0x59, + 0x84, 0xfc, 0xaa, 0xcb, 0xc3, 0x43, 0xa9, 0xf9, 0x73, 0x9b, 0x02, 0xa6, 0x76, 0x90, 0xc4, 0x63, + 0xdf, 0xb7, 0xe1, 0xb9, 0xe2, 0x2e, 0xa3, 0x7c, 0x5f, 0x87, 0x03, 0x63, 0xdf, 0x17, 0xa2, 0x0e, + 0xfc, 0x7d, 0x34, 0x65, 0x93, 0x78, 0x78, 0x0b, 0x73, 0x9a, 0xdc, 0x53, 0x3d, 0xd7, 0x44, 0x91, + 0xdc, 0x29, 0x16, 0x7a, 0xed, 0x14, 0x0f, 0x6f, 0x99, 0x29, 0x54, 0xf8, 0xae, 0x16, 0x81, 0x6b, + 0xd4, 0x7b, 0xf4, 0x0c, 0xef, 0xd2, 0xe9, 0xef, 0x6a, 0xf1, 0xe6, 0x0d, 0xb4, 0x49, 0xff, 0x61, + 0x16, 0xce, 0xa7, 0x13, 0xaa, 0x6d, 0xc9, 0xf4, 0x69, 0xcb, 0x55, 0xc8, 0xaf, 0xb8, 0x7e, 0xa0, + 0x58, 0xfd, 0xa1, 0xfa, 0x7f, 0x5f, 0xc0, 0xcc, 0xb0, 0x94, 0xdd, 0xb9, 0xd9, 0xdf, 0xe1, 0xf2, + 0x44, 0x7e, 0x18, 0xbc, 0x82, 0xdd, 0xb9, 0x79, 0x11, 0xb9, 0x0b, 0x79, 0x53, 0x78, 0x4e, 0xc5, + 0xba, 0x46, 0x82, 0x43, 0x69, 0x8a, 0x78, 0x02, 0xa2, 0x85, 0x4b, 0x17, 0x30, 0x52, 0x82, 0x51, + 0x31, 0xfa, 0xb1, 0xa7, 0xe3, 0x94, 0x29, 0xa3, 0x67, 0x30, 0x90, 0x74, 0x6c, 0x47, 0xc1, 0x47, + 0xc0, 0x6a, 0x45, 0x3a, 0x41, 0xe1, 0x8e, 0xc2, 0x1f, 0x09, 0x75, 0x03, 0xcb, 0x10, 0xd1, 0xf8, + 0xc1, 0x2c, 0x80, 0xd4, 0xda, 0x3c, 0xb3, 0x33, 0xec, 0xb3, 0xda, 0x0c, 0x53, 0xec, 0x8d, 0x06, + 0x4f, 0x11, 0xfc, 0x00, 0xcd, 0x79, 0x06, 0x4f, 0x10, 0x5c, 0x84, 0xe1, 0xcd, 0x48, 0xa1, 0x25, + 0x7c, 0x4c, 0x50, 0x1d, 0xcd, 0xe1, 0xc6, 0x0e, 0xcc, 0xdd, 0xa5, 0x41, 0xa4, 0xde, 0x92, 0x4f, + 0x8f, 0xfd, 0xd9, 0xbe, 0x01, 0x63, 0x02, 0x3f, 0xdc, 0xbf, 0xb8, 0x2e, 0x46, 0xc4, 0x83, 0x41, + 0x5d, 0x8c, 0x44, 0x60, 0xbb, 0x51, 0x85, 0x36, 0x69, 0x40, 0x3f, 0xd9, 0x6a, 0x6a, 0x40, 0x78, + 0x53, 0xb0, 0x65, 0x83, 0xd5, 0x70, 0x6a, 0xff, 0x3c, 0x84, 0x73, 0xe1, 0xb7, 0x3f, 0x4d, 0xbe, + 0x37, 0xd8, 0x95, 0x52, 0x04, 0xff, 0x8f, 0x38, 0xf6, 0xb1, 0x3d, 0x79, 0x0c, 0x0b, 0x92, 0x60, + 0xdb, 0x09, 0x0d, 0x27, 0x07, 0xa2, 0x25, 0xef, 0xc2, 0xb8, 0x42, 0x23, 0x82, 0xd7, 0xa3, 0x9a, + 0xfa, 0xd0, 0x09, 0xf6, 0x2d, 0x9f, 0xc3, 0x55, 0x35, 0xb5, 0x82, 0x6e, 0x7c, 0x19, 0x9e, 0x0f, + 0xfd, 0x80, 0x52, 0xaa, 0x8e, 0x31, 0xcf, 0x9c, 0x8d, 0xf9, 0x7a, 0xd4, 0xac, 0x6a, 0x3b, 0x74, + 0x75, 0x96, 0xbc, 0x89, 0xda, 0x2c, 0xd1, 0x98, 0x17, 0x12, 0xce, 0xd3, 0x8a, 0x8f, 0xb4, 0xf1, + 0x8e, 0xf2, 0xb1, 0x29, 0x0c, 0x35, 0xe2, 0x4c, 0x9c, 0xf8, 0x07, 0xb3, 0x30, 0xfd, 0xa0, 0x5a, + 0x29, 0x87, 0xd6, 0x47, 0xdf, 0x65, 0x09, 0x8c, 0xb5, 0xb6, 0xf5, 0xde, 0x6f, 0x8c, 0x2d, 0x98, + 0x8d, 0x75, 0x03, 0x8a, 0x0e, 0xef, 0x73, 0x0f, 0x92, 0x10, 0x2c, 0xc5, 0x86, 0xf3, 0x69, 0xec, + 0x1f, 0xde, 0x32, 0x63, 0xd8, 0xc6, 0x7f, 0x0e, 0x31, 0xbe, 0x62, 0x0b, 0x7b, 0x03, 0xc6, 0xaa, + 0xbe, 0xdf, 0xa5, 0xde, 0x96, 0xb9, 0xaa, 0xaa, 0x0a, 0x1c, 0x04, 0x5a, 0x5d, 0xaf, 0x69, 0x46, + 0x08, 0xe4, 0x1a, 0xe4, 0x45, 0xe0, 0x70, 0xb9, 0x27, 0xa0, 0xd6, 0x36, 0x8c, 0x3b, 0x6e, 0x86, + 0xc5, 0xe4, 0x2d, 0x98, 0xe0, 0x7f, 0xf3, 0xd9, 0x26, 0x3a, 0x1c, 0x95, 0x83, 0x02, 0x9d, 0xcf, + 0x4e, 0x53, 0x43, 0x23, 0xaf, 0x43, 0xae, 0x54, 0x36, 0x85, 0x3a, 0x48, 0xc8, 0x8d, 0x9e, 0xc5, + 0x75, 0x76, 0xda, 0x25, 0xa2, 0x6c, 0x32, 0xe9, 0x4f, 0xc6, 0x7b, 0x10, 0x9a, 0x6c, 0x9c, 0x01, + 0x52, 0xdb, 0x14, 0x3b, 0xcc, 0x10, 0x46, 0x6e, 0xc0, 0x68, 0x85, 0x9b, 0xcc, 0x09, 0x3d, 0x36, + 0xcf, 0xce, 0xc7, 0x41, 0x5a, 0xb4, 0x04, 0x0e, 0x22, 0xd7, 0x64, 0xd6, 0xb2, 0x7c, 0xe4, 0x88, + 0xd2, 0x23, 0x35, 0xd9, 0x1b, 0x30, 0x22, 0xc2, 0x6b, 0x8f, 0x29, 0xf9, 0x4c, 0xe2, 0x61, 0xb5, + 0x05, 0x4e, 0xd2, 0x23, 0x15, 0x9e, 0xa6, 0x47, 0xea, 0x0e, 0x5c, 0xb8, 0x8b, 0xda, 0x1b, 0x3d, + 0x48, 0xd4, 0x96, 0x59, 0x15, 0xfa, 0x70, 0x7c, 0x06, 0xe2, 0x0a, 0x9e, 0x78, 0x9c, 0x29, 0xab, + 0xeb, 0xa9, 0xc9, 0x66, 0x7b, 0x31, 0x22, 0x5f, 0x82, 0xb9, 0xb4, 0x22, 0xa1, 0x35, 0xc7, 0x70, + 0x48, 0xe9, 0x15, 0xa8, 0xe1, 0x90, 0xd2, 0x38, 0x90, 0x55, 0x28, 0x70, 0x78, 0xa9, 0xd1, 0x72, + 0xda, 0x5c, 0xf3, 0xcf, 0xb5, 0xea, 0xe8, 0x19, 0x22, 0xb8, 0xda, 0xac, 0x90, 0xbf, 0x00, 0x68, + 0xbe, 0x44, 0x31, 0x4a, 0xf2, 0x13, 0x19, 0x76, 0x9b, 0xe3, 0xc1, 0xa8, 0xb7, 0xcc, 0x55, 0x5f, + 0x84, 0xd2, 0x3b, 0x1f, 0xb9, 0x09, 0xd5, 0x02, 0xcf, 0x69, 0xef, 0x09, 0x3f, 0xa1, 0x4d, 0xe1, + 0x27, 0xf4, 0xee, 0xc7, 0xf2, 0x13, 0xe2, 0xac, 0xfc, 0x93, 0xe3, 0xe2, 0x84, 0x27, 0xea, 0xc4, + 0x55, 0xa4, 0x7d, 0x01, 0xeb, 0x3a, 0x74, 0x96, 0xdd, 0x6a, 0xf3, 0x50, 0xb8, 0xb4, 0xc1, 0x1b, + 0x39, 0x8d, 0x3b, 0x38, 0x76, 0x1d, 0xe6, 0xc9, 0xb0, 0xba, 0x21, 0x42, 0xa2, 0xa1, 0xa9, 0x1c, + 0xd8, 0xc5, 0x53, 0xfa, 0xa2, 0x70, 0xf7, 0xda, 0x42, 0x74, 0xf1, 0x94, 0x8e, 0x2b, 0x16, 0x4e, + 0x23, 0x75, 0xf2, 0x68, 0x24, 0xe4, 0x06, 0x8c, 0xac, 0xd9, 0x8f, 0x4b, 0x7b, 0x54, 0x64, 0xa3, + 0x9c, 0x94, 0xdb, 0x1f, 0x02, 0x97, 0xf2, 0x7f, 0xc4, 0x7d, 0x1d, 0x9e, 0x33, 0x05, 0x1a, 0xf9, + 0xbe, 0x0c, 0x9c, 0xe7, 0xcb, 0x58, 0xb6, 0xb2, 0x46, 0x83, 0x80, 0xf5, 0x83, 0x88, 0xa9, 0x77, + 0x39, 0x32, 0xd8, 0x4e, 0xc7, 0x43, 0x57, 0x7a, 0x43, 0xec, 0x0c, 0x61, 0xc7, 0xf9, 0xa2, 0x54, + 0x0b, 0x4e, 0x9c, 0x4a, 0x4f, 0x36, 0x61, 0x7c, 0xed, 0x4e, 0x29, 0xac, 0x96, 0x47, 0x2c, 0x2f, + 0xa6, 0xed, 0x8e, 0x0a, 0x5a, 0x9a, 0xa7, 0x81, 0xca, 0x46, 0x78, 0x07, 0x7c, 0x56, 0xf6, 0x07, + 0x79, 0x53, 0xf5, 0x2d, 0xcd, 0xa1, 0xf4, 0x3c, 0xda, 0xb2, 0x1f, 0x5b, 0xf6, 0x1e, 0xd5, 0x5e, + 0xc9, 0x85, 0xf6, 0xfa, 0xa7, 0x32, 0x70, 0xb1, 0x67, 0x93, 0xc9, 0x6d, 0xb8, 0x60, 0x73, 0x8f, + 0x69, 0x6b, 0x3f, 0x08, 0x3a, 0xbe, 0x25, 0xaf, 0x18, 0xc2, 0x1b, 0xd5, 0x3c, 0x27, 0x8a, 0x57, + 0x58, 0xa9, 0xbc, 0x75, 0xf8, 0xe4, 0x03, 0x78, 0xc1, 0x69, 0xfb, 0xb4, 0xde, 0xf5, 0xa8, 0x25, + 0x19, 0xd4, 0x9d, 0x86, 0x67, 0x79, 0x76, 0x7b, 0x4f, 0xba, 0xd6, 0x9a, 0x17, 0x25, 0x8e, 0xf0, + 0xca, 0x2e, 0x3b, 0x0d, 0xcf, 0x44, 0x04, 0xe3, 0x9f, 0x66, 0x60, 0xbe, 0x57, 0x97, 0x90, 0x79, + 0x18, 0xa5, 0x4a, 0xee, 0x92, 0xbc, 0x29, 0x7f, 0x92, 0xe7, 0x21, 0xda, 0xe9, 0xc5, 0xe9, 0x9f, + 0xaf, 0x8b, 0x3c, 0x12, 0x68, 0xda, 0xae, 0xee, 0xeb, 0xc2, 0x40, 0x79, 0xa2, 0xae, 0xee, 0xee, + 0x2f, 0x02, 0x44, 0xdb, 0x39, 0x57, 0x4c, 0x98, 0x63, 0x76, 0xdd, 0xe3, 0x2b, 0x8f, 0x9c, 0x87, + 0x11, 0xbe, 0x5d, 0x0a, 0xff, 0x07, 0xf1, 0x8b, 0x9d, 0xdb, 0xa2, 0x93, 0x71, 0x9f, 0xcf, 0x2d, + 0x4d, 0x68, 0x9d, 0x3d, 0xd2, 0xc2, 0xc1, 0x31, 0x7e, 0x72, 0x92, 0x8b, 0x10, 0xa5, 0x6e, 0xb0, + 0x2f, 0x85, 0x8e, 0xc5, 0x34, 0x07, 0x30, 0x6e, 0x4b, 0xa9, 0xd8, 0x65, 0xeb, 0x6e, 0x5f, 0xf2, + 0xed, 0x27, 0x9b, 0xfa, 0xf6, 0xf3, 0x06, 0x8c, 0x95, 0xf7, 0x69, 0xfd, 0x20, 0x74, 0xc2, 0xc9, + 0x0b, 0xe5, 0x3a, 0x03, 0xf2, 0x30, 0xe1, 0x11, 0x02, 0xb9, 0x01, 0x80, 0x7e, 0xa7, 0x5c, 0x22, + 0x55, 0x52, 0x7d, 0xa0, 0x9b, 0xaa, 0x30, 0x4f, 0x51, 0x50, 0x90, 0x7d, 0xcd, 0xbc, 0xa3, 0xda, + 0xb3, 0x70, 0xf6, 0xbe, 0xb7, 0x2b, 0xd0, 0x23, 0x04, 0xd6, 0x3c, 0x65, 0x5f, 0x11, 0xa7, 0x60, + 0x21, 0xb1, 0xf9, 0xa8, 0x48, 0xe4, 0x3a, 0x8c, 0x6d, 0x48, 0x47, 0x02, 0x3c, 0x04, 0x27, 0x90, + 0x02, 0x22, 0xa7, 0x83, 0xf9, 0x8c, 0x19, 0xa1, 0x90, 0xcf, 0xc2, 0x68, 0x99, 0x7a, 0xc1, 0xe6, + 0xe6, 0x2a, 0x1a, 0x9d, 0xf0, 0x8c, 0x18, 0x79, 0xcc, 0x5e, 0x10, 0x04, 0xcd, 0xef, 0x1c, 0x17, + 0x27, 0x03, 0xa7, 0x45, 0xc3, 0x48, 0xdf, 0xa6, 0xc4, 0x26, 0x4b, 0x50, 0xe0, 0xcf, 0xe2, 0xd1, + 0xdd, 0x03, 0x4f, 0xc6, 0x3c, 0x3f, 0xa7, 0xc5, 0x1b, 0xfa, 0x21, 0xdd, 0x09, 0x73, 0x37, 0x24, + 0xf0, 0xc9, 0xb2, 0x4c, 0x79, 0xa2, 0x36, 0x13, 0x22, 0x65, 0x58, 0x7c, 0xc7, 0x60, 0xad, 0x4d, + 0x52, 0x90, 0x12, 0x4c, 0x96, 0xdd, 0x56, 0xc7, 0x0e, 0x1c, 0xcc, 0x0d, 0x79, 0x24, 0x0e, 0x41, + 0x54, 0xe8, 0xd5, 0xd5, 0x02, 0xed, 0x44, 0x55, 0x0b, 0xc8, 0x1d, 0x98, 0x32, 0xdd, 0x2e, 0x1b, + 0x26, 0x79, 0x0b, 0xe7, 0xe7, 0x1c, 0x9a, 0x86, 0x78, 0xac, 0x84, 0x1d, 0xcb, 0xe2, 0xca, 0xad, + 0x45, 0x45, 0xd5, 0xa8, 0xc8, 0x7a, 0xca, 0x73, 0x88, 0x7a, 0xb8, 0xa9, 0x19, 0x1c, 0x12, 0xcc, + 0x52, 0x5e, 0x52, 0x6e, 0xc1, 0x78, 0xad, 0xf6, 0x60, 0x93, 0xfa, 0xc1, 0x9d, 0xa6, 0x7b, 0x88, + 0x67, 0x5b, 0x5e, 0x24, 0x1c, 0xf3, 0x5d, 0x2b, 0xa0, 0x7e, 0x60, 0xed, 0x36, 0xdd, 0x43, 0x53, + 0xc5, 0x22, 0x5f, 0x63, 0xfd, 0xa1, 0x48, 0x82, 0x22, 0xfe, 0x6b, 0x3f, 0x61, 0x15, 0x4f, 0x90, + 0x68, 0xd1, 0x30, 0x91, 0x55, 0xef, 0x2c, 0x05, 0x1d, 0x7d, 0xca, 0x3c, 0xf7, 0xf1, 0x51, 0xa9, + 0xd1, 0xf0, 0xa8, 0xef, 0x8b, 0x43, 0x88, 0xfb, 0x94, 0xa1, 0xb2, 0xc1, 0xe6, 0x05, 0x9a, 0x4f, + 0x99, 0x42, 0x40, 0x7e, 0x38, 0x03, 0xe7, 0x54, 0x6f, 0x13, 0x5c, 0x2e, 0x68, 0xe6, 0xc2, 0x8f, + 0xa4, 0x37, 0xaf, 0xcb, 0x43, 0xf8, 0xba, 0x82, 0x76, 0xfd, 0xd1, 0xcd, 0xeb, 0xa5, 0xe8, 0x67, + 0x4d, 0x12, 0x61, 0x2c, 0xbb, 0x62, 0x2a, 0x3f, 0x2d, 0x5f, 0xcf, 0x9c, 0x9d, 0x42, 0x4c, 0xca, + 0x4c, 0x52, 0x63, 0x33, 0x0a, 0x0d, 0xa7, 0xaa, 0x1b, 0x78, 0xa6, 0x09, 0x8d, 0xaa, 0x98, 0x7f, + 0xdc, 0xc4, 0xca, 0xe9, 0xe8, 0x02, 0x99, 0x42, 0x43, 0xaa, 0x30, 0xcd, 0x01, 0x6c, 0x5b, 0xe0, + 0xa9, 0x8f, 0x66, 0xa3, 0xe4, 0x0b, 0x82, 0x0d, 0xbe, 0xf5, 0x63, 0xfa, 0x23, 0x35, 0x60, 0x69, + 0x8c, 0x8e, 0x7c, 0x00, 0x53, 0x18, 0x57, 0x3e, 0x5a, 0xaf, 0x73, 0xb8, 0x8a, 0x31, 0xee, 0xaa, + 0x28, 0x89, 0x79, 0xde, 0x4d, 0xf8, 0xfe, 0x7e, 0xb4, 0xa2, 0x3f, 0x80, 0x29, 0xb4, 0xd5, 0x89, + 0x18, 0x9c, 0x8b, 0x18, 0x88, 0x92, 0x38, 0x83, 0xa0, 0xe9, 0x47, 0x0c, 0xfe, 0x6e, 0x06, 0x2e, + 0xb2, 0x8a, 0xd2, 0x47, 0xe8, 0xfc, 0xc7, 0x19, 0x21, 0x8c, 0x44, 0xd9, 0x93, 0xa7, 0x2a, 0x8e, + 0xfa, 0xfe, 0x7e, 0x1a, 0x07, 0xfc, 0x28, 0xf6, 0xf1, 0xe9, 0x1f, 0x75, 0xe1, 0x63, 0x7f, 0x54, + 0x4f, 0x9e, 0xea, 0x47, 0x05, 0x4d, 0x3f, 0x8d, 0x03, 0x5e, 0x6b, 0x6b, 0xa5, 0xb5, 0xd5, 0xe8, + 0x6e, 0xf6, 0xdd, 0xe5, 0xb6, 0xa2, 0xb5, 0xad, 0x8f, 0xdb, 0xca, 0x16, 0x77, 0x8b, 0x56, 0xba, + 0x41, 0x5e, 0x6b, 0x35, 0x70, 0xfc, 0x5a, 0x1b, 0xa3, 0x31, 0x63, 0xd8, 0xc6, 0x2f, 0x42, 0x8c, + 0xaf, 0x30, 0x55, 0x35, 0x60, 0x84, 0xdf, 0x5a, 0x45, 0x27, 0xa3, 0xcd, 0x02, 0xbf, 0xd3, 0x9a, + 0xa2, 0x84, 0x5c, 0x84, 0x5c, 0xad, 0xf6, 0x40, 0x74, 0x32, 0x1a, 0xac, 0xfa, 0xbe, 0x6b, 0x32, + 0x18, 0x1b, 0x21, 0xb4, 0x42, 0x55, 0xe2, 0xf4, 0xb3, 0xf3, 0xce, 0x44, 0x28, 0xeb, 0x6f, 0x79, + 0x87, 0x1c, 0x8a, 0xfa, 0x5b, 0xdc, 0x21, 0xa3, 0x9b, 0x63, 0x19, 0xe6, 0x4b, 0xbe, 0x4f, 0x3d, + 0x36, 0x21, 0x84, 0x71, 0xa3, 0x27, 0xee, 0x39, 0xe2, 0x60, 0xc7, 0x4a, 0xed, 0xba, 0x6f, 0xf6, + 0x44, 0x24, 0x57, 0x21, 0x5f, 0xea, 0x36, 0x1c, 0xda, 0xae, 0x6b, 0x71, 0xd6, 0x6c, 0x01, 0x33, + 0xc3, 0x52, 0xf2, 0x45, 0x38, 0x17, 0x0b, 0x82, 0x28, 0x7a, 0x60, 0x34, 0xda, 0x7b, 0xe5, 0x3d, + 0x2c, 0x32, 0xc8, 0xe0, 0x5d, 0x92, 0x4e, 0x49, 0x4a, 0x50, 0x58, 0x46, 0x37, 0xad, 0x0a, 0xe5, + 0x6f, 0x43, 0xae, 0xc7, 0xfd, 0xf3, 0xf8, 0xad, 0x59, 0x84, 0x7a, 0x6c, 0x84, 0x85, 0x66, 0x02, + 0x9d, 0xdc, 0x87, 0xd9, 0x38, 0x8c, 0x9d, 0xe0, 0xfc, 0x82, 0x8c, 0xfb, 0x4d, 0x82, 0x0b, 0x9e, + 0xe1, 0x69, 0x54, 0x64, 0x07, 0x66, 0x22, 0x83, 0x24, 0xfd, 0xda, 0x2c, 0xed, 0x9c, 0xc3, 0x72, + 0x79, 0x75, 0x7e, 0x5e, 0x4c, 0xc6, 0xd9, 0xc8, 0xb8, 0x29, 0xbc, 0x3e, 0x9b, 0x49, 0x76, 0xa4, + 0x01, 0x53, 0x35, 0x67, 0xaf, 0xed, 0xb4, 0xf7, 0xee, 0xd3, 0xa3, 0x0d, 0xdb, 0xf1, 0x84, 0xc5, + 0xa9, 0xb4, 0x27, 0x2f, 0xf9, 0x47, 0xad, 0x16, 0x0d, 0x3c, 0xdc, 0x08, 0x59, 0x39, 0xfa, 0xa0, + 0xb3, 0xeb, 0xd0, 0x82, 0xcf, 0xe9, 0xd0, 0x6d, 0xb3, 0x63, 0x3b, 0x9a, 0x10, 0xa0, 0xf3, 0xd4, + 0x54, 0x17, 0x13, 0x03, 0xaa, 0x2e, 0x9a, 0x30, 0xb3, 0xdc, 0xae, 0x7b, 0x47, 0xf8, 0x44, 0x27, + 0x3f, 0x6e, 0xf2, 0x94, 0x8f, 0x7b, 0x45, 0x7c, 0xdc, 0x0b, 0xb6, 0x9c, 0x61, 0x69, 0x9f, 0x97, + 0x64, 0x4c, 0x6a, 0x30, 0x83, 0x17, 0x87, 0x6a, 0x65, 0xa3, 0xda, 0x76, 0x02, 0xc7, 0x0e, 0x68, + 0x43, 0x08, 0x17, 0x61, 0x76, 0x13, 0x7e, 0x45, 0x75, 0x1a, 0x1d, 0xcb, 0x91, 0x28, 0x2a, 0xd3, + 0x04, 0x7d, 0xbf, 0x7b, 0xe2, 0xf4, 0x5f, 0xd2, 0x3d, 0xb1, 0x0a, 0xd3, 0xf1, 0xd8, 0x0c, 0x85, + 0xe8, 0x1c, 0xf6, 0xb1, 0x88, 0x1d, 0xe7, 0x6e, 0x17, 0x85, 0x49, 0x2d, 0xa1, 0xa8, 0x4e, 0x17, + 0xbf, 0x72, 0xce, 0x68, 0x57, 0x4e, 0x6d, 0x57, 0x3a, 0xc3, 0x95, 0x93, 0x6c, 0x00, 0xdc, 0x71, + 0xbd, 0x3a, 0x2d, 0xa1, 0x7f, 0x34, 0xd1, 0x72, 0x40, 0x31, 0xa6, 0x51, 0x21, 0x5f, 0x3f, 0xbb, + 0xec, 0xb7, 0x15, 0x77, 0x73, 0x57, 0x78, 0x18, 0x3f, 0x92, 0x85, 0xf9, 0x5e, 0x9f, 0xd3, 0xe7, + 0xba, 0xf7, 0x29, 0x48, 0xae, 0x70, 0x71, 0xed, 0x2b, 0xd0, 0xf8, 0x3a, 0x5f, 0x84, 0xf4, 0x85, + 0x2c, 0xae, 0x81, 0xb3, 0x71, 0x82, 0x2d, 0xaf, 0x49, 0x6e, 0xc3, 0xb8, 0xf2, 0xf1, 0xb8, 0x97, + 0xf6, 0x6a, 0xaa, 0x09, 0xbb, 0xe1, 0xdf, 0xec, 0x9a, 0xc8, 0xf7, 0x2d, 0x79, 0x4d, 0xe4, 0xbf, + 0x48, 0x81, 0xbb, 0x88, 0x8f, 0x70, 0x2b, 0x00, 0xdf, 0x77, 0x09, 0x01, 0xdc, 0xb7, 0xf9, 0x16, + 0x68, 0xe2, 0xdf, 0xc6, 0xaf, 0x4f, 0xf0, 0x13, 0x59, 0xbd, 0x25, 0xf6, 0xb2, 0x0f, 0x8e, 0xdd, + 0x1e, 0xb3, 0x67, 0xb9, 0x3d, 0xe6, 0x4e, 0xbf, 0x3d, 0x0e, 0x9d, 0x76, 0x7b, 0x8c, 0x5d, 0xef, + 0x86, 0xcf, 0x7c, 0xbd, 0x1b, 0x39, 0xd3, 0xf5, 0x6e, 0xf4, 0x4c, 0xd7, 0x3b, 0xed, 0xa6, 0x9a, + 0x3f, 0xed, 0xa6, 0xfa, 0xd7, 0x97, 0xc1, 0x67, 0xf5, 0x32, 0x98, 0x26, 0xe2, 0x9d, 0xe9, 0x32, + 0xf8, 0x43, 0x3d, 0xef, 0x72, 0x85, 0x8f, 0x23, 0x94, 0xbf, 0x3c, 0xc0, 0x5d, 0x6e, 0xd0, 0x9b, + 0xdc, 0xcc, 0xd3, 0xb9, 0xc9, 0x91, 0xa7, 0x76, 0x93, 0x9b, 0x7d, 0xd2, 0x9b, 0xdc, 0xdc, 0xd3, + 0xbc, 0xc9, 0x9d, 0xfb, 0xab, 0x78, 0x93, 0x3b, 0xff, 0xaf, 0xe7, 0x26, 0xf7, 0x37, 0xa0, 0x10, + 0x17, 0x2e, 0x4f, 0x0f, 0x63, 0xfc, 0xd4, 0x62, 0x48, 0x32, 0xd1, 0x37, 0x2e, 0xdc, 0x91, 0x1b, + 0x00, 0x1b, 0x9e, 0xf3, 0xc8, 0x0e, 0xe8, 0x7d, 0x69, 0xfd, 0x26, 0x42, 0x70, 0x73, 0x28, 0x1b, + 0x79, 0x53, 0x41, 0x09, 0xef, 0x35, 0xd9, 0xb4, 0x7b, 0x8d, 0xf1, 0xc3, 0x59, 0x98, 0xe1, 0x81, + 0xd8, 0x9e, 0xfd, 0x47, 0xd8, 0xf7, 0xb5, 0xdb, 0xaa, 0xb4, 0xb5, 0x8e, 0xb5, 0xae, 0xcf, 0x33, + 0xec, 0x57, 0xe1, 0x5c, 0xa2, 0x2b, 0xf0, 0xc6, 0x5a, 0x91, 0x21, 0xf0, 0x12, 0x77, 0xd6, 0xf9, + 0xf4, 0x4a, 0x1e, 0xde, 0x32, 0x13, 0x14, 0xc6, 0x9f, 0x0f, 0x25, 0xf8, 0x8b, 0x07, 0x59, 0xf5, + 0x89, 0x35, 0x73, 0xb6, 0x27, 0xd6, 0xec, 0x60, 0x4f, 0xac, 0x31, 0xa1, 0x22, 0x37, 0x88, 0x50, + 0xf1, 0x45, 0x98, 0xdc, 0xa4, 0x76, 0xcb, 0xdf, 0x74, 0x45, 0x12, 0x26, 0xee, 0x6b, 0x21, 0x23, + 0xdc, 0xb1, 0x32, 0x79, 0xe1, 0x0a, 0x6d, 0x46, 0x03, 0x46, 0xc0, 0x8e, 0x41, 0x9e, 0x95, 0xc9, + 0xd4, 0x39, 0xa8, 0xb7, 0xe8, 0xe1, 0x3e, 0xb7, 0xe8, 0x1a, 0x4c, 0x08, 0xba, 0x28, 0x76, 0x73, + 0x74, 0xdd, 0x63, 0x45, 0x08, 0x97, 0xb5, 0x87, 0x19, 0xe2, 0xc3, 0xda, 0xf9, 0x4d, 0x4f, 0x63, + 0xc2, 0xba, 0x60, 0xb9, 0xdd, 0xe8, 0xb8, 0x4e, 0x1b, 0xbb, 0x60, 0x34, 0xea, 0x02, 0x2a, 0xc0, + 0xbc, 0x0b, 0x14, 0x24, 0xf2, 0x2e, 0x4c, 0x95, 0x36, 0xaa, 0x2a, 0x59, 0x3e, 0x7a, 0xe5, 0xb5, + 0x3b, 0x8e, 0xa5, 0x91, 0xc6, 0x70, 0xfb, 0xdd, 0x7c, 0xc6, 0xfe, 0x72, 0x6e, 0x3e, 0xc6, 0xbf, + 0x98, 0x90, 0xcb, 0xfb, 0x93, 0x7d, 0x20, 0xd1, 0x9f, 0x3c, 0x72, 0x67, 0x7c, 0xf2, 0x18, 0x3a, + 0x4d, 0x90, 0xd4, 0xe4, 0xdb, 0xe1, 0x33, 0xc9, 0xb7, 0x23, 0x4f, 0xfc, 0x7c, 0x31, 0x7a, 0x46, + 0x89, 0x35, 0xb6, 0xd6, 0xf2, 0x83, 0xac, 0xb5, 0x54, 0x29, 0x77, 0xec, 0xc9, 0xa5, 0x5c, 0x38, + 0xb3, 0x94, 0x5b, 0x8b, 0x7c, 0x97, 0xc7, 0x4f, 0x75, 0x09, 0x79, 0x51, 0x68, 0x05, 0x66, 0xd2, + 0xa3, 0xf0, 0x85, 0x5e, 0xcc, 0xdf, 0x55, 0xa2, 0xf3, 0xd7, 0xd3, 0x45, 0xe7, 0xfe, 0xe7, 0xcd, + 0x99, 0x84, 0xe7, 0x1f, 0x7e, 0xba, 0xc2, 0xf3, 0xd3, 0x7d, 0x08, 0xf9, 0x6b, 0xf1, 0xf9, 0xaf, + 0xc5, 0xe7, 0x01, 0xc5, 0x67, 0x0f, 0x97, 0xd7, 0xb6, 0xed, 0xb5, 0x51, 0xed, 0x74, 0x03, 0x46, + 0x65, 0x18, 0xd2, 0x4c, 0xa4, 0x51, 0x4e, 0xc6, 0x1f, 0x95, 0x58, 0x64, 0x11, 0xf2, 0x92, 0x58, + 0x4d, 0x74, 0x73, 0x28, 0x60, 0x5a, 0x84, 0x47, 0x01, 0x33, 0xfe, 0xbd, 0x21, 0xb9, 0x85, 0xb3, + 0x39, 0xb3, 0x61, 0x7b, 0x76, 0x0b, 0xd3, 0xc8, 0x85, 0x2b, 0x4c, 0x11, 0xde, 0x63, 0x8b, 0x32, + 0x66, 0xda, 0xaf, 0x93, 0x7c, 0xac, 0xc0, 0xb0, 0x51, 0xa6, 0xde, 0xdc, 0x00, 0x99, 0x7a, 0xdf, + 0xd6, 0xd2, 0xdc, 0x0e, 0x45, 0x79, 0x15, 0xd9, 0xb6, 0xd6, 0x3f, 0xc1, 0xed, 0x6d, 0x35, 0x1f, + 0xed, 0x70, 0x14, 0xd5, 0x0b, 0x29, 0xfb, 0x64, 0xa2, 0x0d, 0x6f, 0x23, 0x23, 0x67, 0x09, 0xb9, + 0x3c, 0xfa, 0xaf, 0x35, 0xe4, 0xf2, 0x32, 0x80, 0x38, 0x6a, 0x23, 0xf3, 0x84, 0x57, 0x71, 0xf5, + 0x0b, 0x33, 0xe5, 0x20, 0x68, 0xf6, 0xc8, 0xc9, 0xa1, 0x10, 0x1a, 0x7f, 0x40, 0x60, 0xa6, 0x56, + 0x7b, 0x50, 0x71, 0xec, 0xbd, 0xb6, 0xeb, 0x07, 0x4e, 0xbd, 0xda, 0xde, 0x75, 0x99, 0x28, 0x1e, + 0x1e, 0x07, 0x4a, 0x6c, 0xdd, 0xe8, 0x28, 0x08, 0x8b, 0xd9, 0x55, 0x6f, 0xd9, 0xf3, 0xa4, 0x7e, + 0x94, 0x5f, 0xf5, 0x28, 0x03, 0x98, 0x1c, 0xce, 0xa4, 0xdd, 0x5a, 0x17, 0x23, 0x5b, 0x08, 0x9b, + 0x11, 0x94, 0x76, 0x7d, 0x0e, 0x32, 0x65, 0x19, 0xa1, 0xc9, 0x09, 0x2b, 0x6e, 0x3f, 0x17, 0xb4, + 0xc0, 0xcd, 0x51, 0x31, 0x3f, 0xec, 0x84, 0x30, 0x82, 0xdb, 0x66, 0x07, 0xe1, 0xaa, 0x45, 0x5c, + 0x62, 0x0d, 0x1c, 0xc1, 0x39, 0xcd, 0xe7, 0x79, 0xd0, 0xc7, 0x94, 0xd7, 0x85, 0x74, 0x6d, 0x60, + 0x88, 0x8d, 0x94, 0x17, 0x15, 0x35, 0x2f, 0x5c, 0x6a, 0x0d, 0xec, 0x3c, 0x7b, 0x31, 0xb5, 0x24, + 0x5c, 0xdd, 0xe3, 0x5a, 0xf0, 0x6c, 0x65, 0xd3, 0xe0, 0x19, 0xf0, 0x7a, 0x55, 0x6d, 0xa5, 0x6c, + 0x05, 0xfd, 0x6b, 0x22, 0xbf, 0x99, 0x81, 0x0b, 0x1a, 0x46, 0xb8, 0x5d, 0xf9, 0x61, 0x38, 0x90, + 0xd4, 0x79, 0xfd, 0xd1, 0xd3, 0x99, 0xd7, 0x2f, 0xeb, 0x6d, 0x89, 0x36, 0x54, 0xb5, 0x0d, 0xbd, + 0xbe, 0x90, 0x3c, 0x82, 0x19, 0x2c, 0x92, 0x0f, 0x3b, 0x6c, 0xce, 0x8a, 0xf7, 0xa0, 0xb9, 0xe8, + 0xb3, 0xb9, 0x1f, 0x3f, 0x66, 0x31, 0x5f, 0xfc, 0xf6, 0x71, 0x71, 0x52, 0x43, 0x97, 0xe1, 0xa8, + 0xad, 0xe8, 0x75, 0xc8, 0x69, 0xef, 0xba, 0x5a, 0x8a, 0xfa, 0x78, 0x15, 0xe4, 0xbf, 0xcc, 0xf0, + 0xe7, 0x04, 0xde, 0x8c, 0x3b, 0x9e, 0xdb, 0x0a, 0xcb, 0xa5, 0x69, 0x65, 0x8f, 0x6e, 0x6b, 0x3e, + 0x9d, 0x6e, 0x7b, 0x15, 0x3f, 0x99, 0xef, 0x09, 0xd6, 0xae, 0xe7, 0xb6, 0xa2, 0xcf, 0x57, 0x3b, + 0xae, 0xe7, 0x47, 0x92, 0xef, 0xcf, 0xc0, 0x45, 0x4d, 0xab, 0xa9, 0xe6, 0x06, 0x11, 0xd1, 0x12, + 0x66, 0xc3, 0x38, 0x2a, 0x51, 0xd1, 0xd2, 0x75, 0x31, 0xff, 0xaf, 0xe0, 0x17, 0x28, 0x61, 0x3b, + 0x19, 0x92, 0xd5, 0xe2, 0x58, 0xca, 0x27, 0xf4, 0xae, 0x85, 0x38, 0x30, 0x83, 0x56, 0x36, 0x9a, + 0x09, 0xf0, 0x5c, 0x6f, 0x13, 0xe0, 0x30, 0xeb, 0x0f, 0x66, 0x04, 0xe8, 0x6d, 0x07, 0x9c, 0xe4, + 0x4a, 0xbe, 0x17, 0x2e, 0x26, 0x80, 0xe1, 0x6a, 0x3b, 0xd7, 0x73, 0xb5, 0x7d, 0xea, 0xe4, 0xb8, + 0xf8, 0x5a, 0x5a, 0x6d, 0x69, 0x2b, 0xad, 0x77, 0x0d, 0xc4, 0x06, 0x88, 0x0a, 0x85, 0xf8, 0x91, + 0x3e, 0x41, 0x3f, 0x25, 0xe6, 0x87, 0x82, 0xcf, 0xf6, 0x72, 0xe5, 0x1b, 0xd4, 0x23, 0x2f, 0x42, + 0x22, 0x14, 0x26, 0x94, 0x6c, 0x08, 0x47, 0xc2, 0xd8, 0xa3, 0x47, 0x25, 0xdf, 0x3e, 0x2e, 0x6a, + 0xd8, 0xec, 0x42, 0xa4, 0xa6, 0x59, 0xd0, 0xa4, 0x3d, 0x15, 0x91, 0xfc, 0x5a, 0x06, 0xe6, 0x18, + 0x20, 0x9a, 0x54, 0xa2, 0x51, 0xf3, 0xfd, 0x66, 0xfd, 0xfe, 0xd3, 0x99, 0xf5, 0x2f, 0xe1, 0x37, + 0xaa, 0xb3, 0x3e, 0xd1, 0x25, 0xa9, 0x1f, 0x87, 0xb3, 0x5d, 0x33, 0xe8, 0xd2, 0x66, 0xfb, 0xc5, + 0x01, 0x66, 0x3b, 0x1f, 0x80, 0xd3, 0x67, 0x7b, 0xcf, 0x5a, 0xc8, 0x26, 0x4c, 0x88, 0xbb, 0x10, + 0xef, 0xb0, 0x4b, 0x5a, 0x18, 0x67, 0xb5, 0x88, 0x5f, 0x50, 0x45, 0xb2, 0x88, 0x44, 0x0b, 0x35, + 0x2e, 0xa4, 0x0d, 0xb3, 0xfc, 0xb7, 0xae, 0x9b, 0x2a, 0xf6, 0xd4, 0x4d, 0x5d, 0x15, 0x2d, 0xba, + 0x2c, 0xf8, 0xc7, 0x54, 0x54, 0x6a, 0xf8, 0xa5, 0x14, 0xc6, 0xa4, 0x03, 0x44, 0x03, 0xf3, 0x45, + 0x7b, 0xb9, 0xbf, 0x46, 0xea, 0x35, 0x51, 0x67, 0x31, 0x5e, 0x67, 0x7c, 0xe5, 0xa6, 0xf0, 0x26, + 0x36, 0x4c, 0x0b, 0xa8, 0x7b, 0x40, 0xf9, 0x0e, 0xff, 0x92, 0x16, 0x00, 0x2b, 0x56, 0xca, 0x2f, + 0x51, 0xb2, 0x26, 0x0c, 0x50, 0x16, 0xdb, 0xd0, 0xe3, 0xfc, 0xc8, 0x03, 0x98, 0x29, 0x75, 0x3a, + 0x4d, 0x87, 0x36, 0xb0, 0x95, 0x66, 0x97, 0xb5, 0xc9, 0x88, 0xf2, 0xad, 0xd9, 0xbc, 0x50, 0xdc, + 0xec, 0xbc, 0x6e, 0x6c, 0xbb, 0x49, 0xd0, 0x1a, 0x3f, 0x94, 0x49, 0x7c, 0x34, 0x79, 0x03, 0xc6, + 0xf0, 0x87, 0x12, 0x53, 0x05, 0x55, 0x3c, 0xfc, 0x13, 0x51, 0x79, 0x14, 0x21, 0x30, 0x61, 0x49, + 0x8d, 0xab, 0x98, 0xe3, 0xc2, 0x92, 0xd0, 0x2b, 0x44, 0x9a, 0x84, 0xa2, 0x74, 0xcd, 0xc8, 0x45, + 0x42, 0x17, 0xba, 0x66, 0x08, 0x87, 0x0c, 0xe3, 0xfb, 0xb3, 0xfa, 0xb4, 0x23, 0x57, 0x15, 0xb9, + 0x5d, 0x89, 0xec, 0x28, 0xe5, 0x76, 0x45, 0x5a, 0xff, 0x87, 0x19, 0x98, 0x7d, 0xe0, 0xed, 0xd9, + 0x6d, 0xe7, 0x9b, 0x3c, 0x8c, 0xb6, 0x8b, 0xe3, 0xd2, 0x3f, 0x75, 0xe5, 0xd3, 0x4a, 0xc1, 0xe7, + 0x2a, 0x15, 0xb3, 0x99, 0x82, 0x53, 0xc6, 0x4c, 0xfb, 0x1e, 0x74, 0x76, 0xc3, 0x0f, 0x53, 0x32, + 0x21, 0x72, 0x74, 0x0e, 0x37, 0x7e, 0x2c, 0x0b, 0xe3, 0xca, 0x12, 0x20, 0x9f, 0x81, 0x09, 0x95, + 0x8f, 0xaa, 0xf0, 0x53, 0xab, 0x35, 0x35, 0x2c, 0xd4, 0xf8, 0x51, 0xbb, 0xa5, 0x69, 0xfc, 0xd8, + 0x44, 0x47, 0xe8, 0x19, 0xaf, 0x36, 0x1f, 0xa4, 0x5c, 0x6d, 0x70, 0xda, 0x2a, 0x1a, 0x9b, 0xbe, + 0x17, 0x9c, 0x77, 0x93, 0x17, 0x1c, 0x54, 0x1e, 0x29, 0xf4, 0xbd, 0xaf, 0x39, 0xc6, 0x4f, 0x66, + 0xa0, 0x10, 0x5f, 0xa4, 0x9f, 0x48, 0xaf, 0x9c, 0xe1, 0x75, 0xe7, 0x47, 0xb3, 0x61, 0x2a, 0x14, + 0xe9, 0xc2, 0xfb, 0xac, 0x9a, 0x09, 0xbe, 0xa7, 0x3d, 0xbc, 0x3c, 0xaf, 0x47, 0xa3, 0x53, 0x83, + 0x5f, 0xa4, 0x87, 0xa0, 0x1c, 0xfa, 0xd9, 0x5f, 0x28, 0x3e, 0x67, 0x7c, 0x08, 0x73, 0xf1, 0xee, + 0xc0, 0xc7, 0x97, 0x12, 0x4c, 0xeb, 0xf0, 0x78, 0x22, 0xa5, 0x38, 0x95, 0x19, 0xc7, 0x37, 0xfe, + 0x28, 0x1b, 0xe7, 0x2d, 0x4c, 0x06, 0xd9, 0xa6, 0xa3, 0x1a, 0xc2, 0x88, 0x4d, 0x87, 0x83, 0x4c, + 0x59, 0x76, 0x96, 0x04, 0x66, 0xa1, 0x23, 0x6a, 0x2e, 0xdd, 0x11, 0x95, 0xdc, 0x8e, 0x59, 0x49, + 0x2b, 0x51, 0x93, 0x0e, 0xe9, 0x8e, 0x15, 0x59, 0x4a, 0xc7, 0x8c, 0xa3, 0xcb, 0x30, 0xa7, 0x85, + 0x00, 0x97, 0xf4, 0xc3, 0x91, 0xae, 0x3d, 0xc0, 0x02, 0x4e, 0x9c, 0x8a, 0x4c, 0x56, 0x60, 0x94, + 0x7d, 0xe6, 0x9a, 0xdd, 0x11, 0x6f, 0x2a, 0x24, 0x74, 0x4b, 0x6f, 0x86, 0x17, 0x3e, 0xc5, 0x33, + 0xbd, 0x49, 0xd9, 0x91, 0xaf, 0x4e, 0x2c, 0x81, 0x68, 0xfc, 0xf3, 0x0c, 0x5b, 0xff, 0xf5, 0x83, + 0xef, 0xb2, 0x2c, 0x68, 0xac, 0x49, 0x7d, 0x2c, 0x5a, 0xff, 0x24, 0xcb, 0x73, 0xe1, 0x88, 0xe9, + 0xf3, 0x36, 0x8c, 0x6c, 0xda, 0xde, 0x9e, 0xc8, 0x1a, 0xad, 0x73, 0xe1, 0x05, 0x51, 0x4c, 0xa7, + 0x00, 0x7f, 0x9b, 0x82, 0x40, 0xd5, 0x85, 0x65, 0x07, 0xd2, 0x85, 0x29, 0x7a, 0xf9, 0xdc, 0x53, + 0xd3, 0xcb, 0x7f, 0x4f, 0x98, 0xf6, 0xa6, 0x14, 0x0c, 0x10, 0x61, 0xfa, 0x72, 0x3c, 0x6d, 0x54, + 0x22, 0x16, 0x78, 0xc4, 0x8e, 0xdc, 0x56, 0x13, 0x51, 0x29, 0xbe, 0x9d, 0xa7, 0xa4, 0x9c, 0x32, + 0xfe, 0x24, 0xc7, 0xfb, 0x58, 0x74, 0xd4, 0x15, 0xcd, 0xef, 0x1b, 0xd7, 0x09, 0xdb, 0xe8, 0xd5, + 0x10, 0x1c, 0x68, 0x36, 0x75, 0x05, 0x86, 0xd8, 0xdc, 0x14, 0xbd, 0x89, 0x78, 0x6c, 0xfe, 0xaa, + 0x78, 0xac, 0x9c, 0xad, 0x65, 0x3c, 0x93, 0xd4, 0x0c, 0x83, 0x78, 0x6c, 0xa9, 0x6b, 0x19, 0x31, + 0xc8, 0x55, 0x18, 0x5a, 0x77, 0x1b, 0x32, 0x92, 0xf9, 0x1c, 0x46, 0xff, 0xd0, 0x52, 0x98, 0xce, + 0x67, 0x4c, 0xc4, 0x60, 0x6d, 0x0d, 0xf3, 0x3f, 0xa8, 0x6d, 0x6d, 0xed, 0xda, 0xc9, 0xcc, 0x71, + 0x4a, 0xd2, 0x99, 0x65, 0x98, 0xd2, 0xf3, 0xf5, 0x0b, 0x7b, 0x5f, 0xd4, 0xae, 0xc7, 0xd2, 0xfe, + 0xab, 0xcf, 0x22, 0x3a, 0x11, 0x59, 0x82, 0x49, 0x2d, 0x82, 0xaa, 0x78, 0xdc, 0x44, 0xf5, 0xa6, + 0x1e, 0x7f, 0x55, 0x55, 0x6f, 0x6a, 0x24, 0xec, 0x3c, 0x17, 0xdf, 0xaf, 0x3c, 0x71, 0x26, 0xbe, + 0x5d, 0xe0, 0x90, 0x5b, 0x90, 0xe7, 0x61, 0x36, 0xaa, 0x15, 0xf5, 0x99, 0xca, 0x47, 0x58, 0x2c, + 0x4c, 0x8d, 0x44, 0x54, 0xc2, 0x2a, 0x7c, 0x1a, 0x0a, 0x62, 0x4b, 0x8a, 0x92, 0x9f, 0xbf, 0x00, + 0x43, 0xe5, 0x6a, 0xc5, 0x54, 0xb7, 0x91, 0xba, 0xd3, 0xf0, 0x4c, 0x84, 0xa2, 0x57, 0xdd, 0x3a, + 0x0d, 0x0e, 0x5d, 0xef, 0xc0, 0xa4, 0x7e, 0xe0, 0x39, 0x3c, 0x41, 0x25, 0x2e, 0xc4, 0xcf, 0x90, + 0x77, 0x61, 0x18, 0x0d, 0x4f, 0x63, 0x27, 0x43, 0xbc, 0x8e, 0xa5, 0x49, 0x31, 0x81, 0x87, 0xd1, + 0x8a, 0xd5, 0xe4, 0x44, 0xe4, 0x6d, 0x18, 0xaa, 0xd0, 0xf6, 0x51, 0x2c, 0x77, 0x5e, 0x82, 0x38, + 0xdc, 0x10, 0x1a, 0xb4, 0x7d, 0x64, 0x22, 0x89, 0xf1, 0x93, 0x59, 0x38, 0x97, 0xf2, 0x59, 0x0f, + 0x3f, 0xf3, 0x8c, 0xee, 0x8a, 0x4b, 0xda, 0xae, 0x28, 0xdf, 0xa7, 0x7b, 0x76, 0x7c, 0xea, 0x26, + 0xf9, 0x73, 0x19, 0xb8, 0xa0, 0x4f, 0x50, 0x61, 0x69, 0xfe, 0xf0, 0x16, 0x79, 0x07, 0x46, 0x56, + 0xa8, 0xdd, 0xa0, 0x32, 0xaf, 0xd6, 0xb9, 0x30, 0x20, 0x1e, 0x8f, 0x21, 0xc0, 0x0b, 0x39, 0xdb, + 0xc8, 0xe3, 0x94, 0x43, 0x49, 0x45, 0x7c, 0x1c, 0x97, 0xc7, 0x0d, 0x19, 0xcf, 0x23, 0xad, 0xaa, + 0x3e, 0x56, 0x1e, 0xdf, 0xce, 0xc0, 0xf3, 0x7d, 0x68, 0xd8, 0xc0, 0xb1, 0xa1, 0x57, 0x07, 0x0e, + 0x4f, 0x54, 0x84, 0x92, 0xf7, 0x61, 0x7a, 0x53, 0xc8, 0xf3, 0x72, 0x38, 0xb2, 0xd1, 0x7a, 0x91, + 0xa2, 0xbe, 0x25, 0xc7, 0x25, 0x8e, 0xac, 0x05, 0x9a, 0xc9, 0xf5, 0x0d, 0x34, 0xa3, 0xc6, 0x6d, + 0x19, 0x1a, 0x34, 0x6e, 0xcb, 0x87, 0x30, 0xa7, 0xb7, 0x4d, 0x84, 0xcf, 0x8d, 0xa2, 0xd6, 0x64, + 0x7a, 0x47, 0xad, 0xe9, 0x1b, 0xa4, 0xd3, 0xf8, 0xb1, 0x0c, 0x14, 0x74, 0xde, 0x4f, 0x3a, 0x9e, + 0xef, 0x69, 0xe3, 0xf9, 0x7c, 0xfa, 0x78, 0xf6, 0x1e, 0xc8, 0xff, 0x2b, 0x13, 0x6f, 0xec, 0x40, + 0x23, 0x68, 0xc0, 0x48, 0xc5, 0x6d, 0xd9, 0x4e, 0x5b, 0xcd, 0xa5, 0xdf, 0x40, 0x88, 0x29, 0x4a, + 0x06, 0x0b, 0xf2, 0x73, 0x19, 0x86, 0xd7, 0xdd, 0x76, 0xa9, 0x22, 0x4c, 0x7a, 0x91, 0x4f, 0xdb, + 0x6d, 0x5b, 0x76, 0xc3, 0xe4, 0x05, 0x64, 0x15, 0xa0, 0x56, 0xf7, 0x28, 0x6d, 0xd7, 0x9c, 0x6f, + 0xd2, 0x98, 0xa4, 0xc1, 0x7a, 0xa8, 0xd9, 0xc5, 0x8d, 0x85, 0x3f, 0x5d, 0x22, 0xa2, 0xe5, 0x3b, + 0xdf, 0x54, 0xf7, 0x5b, 0x85, 0x1e, 0xd7, 0x95, 0x88, 0x83, 0x16, 0x1b, 0x87, 0x9b, 0x9f, 0xc4, + 0xba, 0x4a, 0xad, 0x0a, 0x7b, 0xf8, 0x66, 0xea, 0x70, 0xfc, 0x61, 0x06, 0x9e, 0xef, 0x43, 0xf3, + 0x14, 0x46, 0xe5, 0x2f, 0xbb, 0xc3, 0x29, 0x40, 0x44, 0x84, 0xa9, 0x89, 0x9d, 0x46, 0xc0, 0x73, + 0xe5, 0x4d, 0x8a, 0xd4, 0xc4, 0x0c, 0xa0, 0xa5, 0x26, 0x66, 0x00, 0x76, 0x96, 0xae, 0x50, 0x67, + 0x6f, 0x9f, 0x9b, 0x67, 0x4d, 0xf2, 0xbd, 0x61, 0x1f, 0x21, 0xea, 0x59, 0xca, 0x71, 0x8c, 0x7f, + 0x39, 0x0c, 0x17, 0x4d, 0xba, 0xe7, 0xb0, 0x7b, 0xc9, 0x96, 0xef, 0xb4, 0xf7, 0xb4, 0xb8, 0x37, + 0x46, 0x6c, 0xe5, 0x8a, 0x24, 0x11, 0x0c, 0x12, 0xce, 0xc4, 0x6b, 0x90, 0x67, 0x62, 0x88, 0xb2, + 0x78, 0xf1, 0xd1, 0x8a, 0x09, 0x2b, 0x22, 0xb0, 0xb2, 0x2c, 0x26, 0xaf, 0x0b, 0x31, 0x49, 0x49, + 0xe3, 0xc3, 0xc4, 0xa4, 0xef, 0x1c, 0x17, 0xa1, 0x76, 0xe4, 0x07, 0x14, 0xaf, 0xc8, 0x42, 0x54, + 0x0a, 0xef, 0x32, 0x43, 0x3d, 0xee, 0x32, 0x6b, 0x30, 0x57, 0x6a, 0xf0, 0xd3, 0xd1, 0x6e, 0x6e, + 0x78, 0x4e, 0xbb, 0xee, 0x74, 0xec, 0xa6, 0xbc, 0x9f, 0x63, 0x2f, 0xdb, 0x61, 0xb9, 0xd5, 0x09, + 0x11, 0xcc, 0x54, 0x32, 0xd6, 0x8c, 0xca, 0x7a, 0x0d, 0xc3, 0xc3, 0x88, 0xf7, 0x48, 0x6c, 0x46, + 0xa3, 0xed, 0x63, 0x2b, 0x7c, 0x33, 0x2c, 0xc6, 0x5b, 0x14, 0x3e, 0xc8, 0x6f, 0xae, 0xd6, 0x22, + 0x97, 0x66, 0x9e, 0x65, 0x80, 0x3f, 0xec, 0x07, 0x4d, 0x1f, 0x4d, 0x21, 0x35, 0xbc, 0x88, 0xae, + 0x56, 0x5b, 0x61, 0x74, 0xf9, 0x04, 0x9d, 0xef, 0xef, 0xab, 0x74, 0x1c, 0x8f, 0xdc, 0x60, 0x53, + 0xa1, 0xe5, 0x06, 0x14, 0xa7, 0xf0, 0x58, 0x74, 0xe7, 0xf2, 0x10, 0xca, 0xef, 0x5c, 0x0a, 0x0a, + 0x79, 0x17, 0x66, 0x97, 0xcb, 0x8b, 0x52, 0x8b, 0x5c, 0x71, 0xeb, 0x5d, 0x7c, 0x88, 0x07, 0xac, + 0x0f, 0xc7, 0x90, 0xd6, 0x17, 0xd9, 0x6e, 0x92, 0x86, 0x46, 0xae, 0xc0, 0x68, 0xb5, 0xc2, 0xfb, + 0x7e, 0x5c, 0x4d, 0xa5, 0x25, 0x2c, 0xa3, 0x64, 0x21, 0x79, 0x10, 0x5d, 0x0a, 0x26, 0x4e, 0x95, + 0xde, 0x2f, 0x0e, 0x70, 0x21, 0x78, 0x1b, 0x26, 0x97, 0xdc, 0xa0, 0xda, 0xf6, 0x03, 0xbb, 0x5d, + 0xa7, 0xd5, 0x8a, 0x1a, 0xd7, 0x7a, 0xc7, 0x0d, 0x2c, 0x47, 0x94, 0xb0, 0x2f, 0xd7, 0x31, 0xc9, + 0xe7, 0x90, 0xf4, 0x2e, 0x6d, 0x53, 0x2f, 0x8a, 0x67, 0x3d, 0xcc, 0xfb, 0x96, 0x91, 0xee, 0x85, + 0x25, 0xa6, 0x8e, 0x28, 0xd2, 0x7c, 0xf1, 0xe4, 0x9c, 0x65, 0xb7, 0x41, 0x7d, 0xbe, 0x5b, 0x7c, + 0x17, 0xa5, 0xf9, 0x52, 0xda, 0xd6, 0x67, 0x07, 0xfd, 0xb7, 0x30, 0xcd, 0x57, 0x02, 0x97, 0x7c, + 0x0e, 0x86, 0xf1, 0xa7, 0x90, 0x6e, 0x67, 0x53, 0xd8, 0x46, 0x92, 0x6d, 0x9d, 0x61, 0x9a, 0x9c, + 0x80, 0x54, 0x61, 0x54, 0x5c, 0xac, 0xce, 0x92, 0xac, 0x46, 0xdc, 0xd0, 0xf8, 0xcc, 0x10, 0xf4, + 0x46, 0x03, 0x26, 0xd4, 0x0a, 0xd9, 0x8a, 0x58, 0xb1, 0xfd, 0x7d, 0xda, 0x60, 0xbf, 0x44, 0x9e, + 0x39, 0x5c, 0x11, 0xfb, 0x08, 0xb5, 0xd8, 0x77, 0x98, 0x0a, 0x0a, 0x3b, 0x53, 0xab, 0xfe, 0x96, + 0x2f, 0x3e, 0x45, 0xa8, 0x5a, 0x1c, 0x54, 0xdb, 0x35, 0x4c, 0x51, 0x64, 0x7c, 0x0f, 0xcc, 0xad, + 0x77, 0x9b, 0x4d, 0x7b, 0xa7, 0x49, 0x65, 0x1e, 0x12, 0xcc, 0xe0, 0xbd, 0x04, 0xc3, 0x35, 0x25, + 0x27, 0x78, 0x98, 0x0b, 0x52, 0xc1, 0x41, 0x23, 0xd4, 0x0c, 0x86, 0xea, 0x89, 0x65, 0x03, 0xe7, + 0xa4, 0xc6, 0xef, 0x67, 0x60, 0x4e, 0xbe, 0xff, 0x7b, 0x76, 0xfd, 0x20, 0x4c, 0x0c, 0x7f, 0x45, + 0x9b, 0x6b, 0x38, 0x61, 0x63, 0xd3, 0x88, 0xcf, 0xba, 0x7b, 0xf2, 0x23, 0x74, 0x81, 0x25, 0xed, + 0x83, 0x4f, 0xfb, 0x18, 0xf2, 0x2e, 0x8c, 0x8b, 0xe3, 0x51, 0x09, 0x30, 0x89, 0x51, 0xbc, 0xc4, + 0x75, 0x2f, 0x6e, 0x8d, 0xa2, 0xa2, 0xa3, 0x2c, 0xa6, 0x37, 0xe5, 0x49, 0x65, 0x80, 0x74, 0x59, + 0x4c, 0xaf, 0xa3, 0xcf, 0xd4, 0xfd, 0xed, 0xf1, 0x78, 0xdf, 0x8a, 0xb9, 0x7b, 0x5b, 0x0d, 0x29, + 0x97, 0x89, 0x6e, 0xc6, 0x51, 0x48, 0x39, 0xf5, 0x66, 0x1c, 0xa2, 0x86, 0x63, 0x92, 0x3d, 0x65, + 0x4c, 0xde, 0x97, 0x63, 0x92, 0xeb, 0x3d, 0x31, 0x66, 0xfb, 0x8c, 0x43, 0x2d, 0x5a, 0x21, 0x43, + 0x03, 0xa9, 0x55, 0x9e, 0xc3, 0xd8, 0xf9, 0x9c, 0x24, 0xbe, 0x8b, 0x0a, 0x4e, 0xaa, 0xae, 0x66, + 0x78, 0x70, 0xa6, 0xa7, 0x6c, 0xcd, 0x9f, 0x87, 0x89, 0x52, 0x10, 0xd8, 0xf5, 0x7d, 0xda, 0xa8, + 0xb0, 0xed, 0x49, 0x89, 0x7e, 0x65, 0x0b, 0xb8, 0xfa, 0x68, 0xa6, 0xe2, 0xf2, 0x68, 0xae, 0xb6, + 0x2f, 0x8c, 0x59, 0xc3, 0x68, 0xae, 0x0c, 0xa2, 0x47, 0x73, 0x65, 0x10, 0x72, 0x03, 0x46, 0xab, + 0xed, 0x47, 0x0e, 0xeb, 0x13, 0x1e, 0x00, 0x0b, 0x75, 0x53, 0x0e, 0x07, 0xa9, 0x9b, 0xab, 0xc0, + 0x22, 0x6f, 0x2b, 0x97, 0x9a, 0xb1, 0x48, 0x81, 0xc1, 0x55, 0x5e, 0x61, 0x84, 0x1b, 0xf5, 0xc2, + 0x12, 0xde, 0x72, 0x6e, 0xc3, 0xa8, 0xd4, 0x64, 0x42, 0xa4, 0xb4, 0x10, 0x94, 0xc9, 0x80, 0x11, + 0x12, 0x19, 0x93, 0x7c, 0x2b, 0xf9, 0xf2, 0xc6, 0x95, 0x24, 0xdf, 0x4a, 0xbe, 0x3c, 0x2d, 0xc9, + 0xb7, 0x92, 0x39, 0x2f, 0x54, 0x02, 0x4d, 0x9c, 0xaa, 0x04, 0x7a, 0x08, 0x13, 0x1b, 0xb6, 0x17, + 0x38, 0x4c, 0x46, 0x69, 0x07, 0xfe, 0xfc, 0xa4, 0xa6, 0x37, 0x55, 0x8a, 0x96, 0x2e, 0xc9, 0xbc, + 0xd4, 0x1d, 0x05, 0x5f, 0x4f, 0xa0, 0x1c, 0xc1, 0xd3, 0x4d, 0x59, 0xa7, 0x9e, 0xc4, 0x94, 0x15, + 0x3b, 0x15, 0x75, 0x65, 0xd3, 0x91, 0x46, 0x06, 0x2f, 0x2d, 0x31, 0x85, 0x59, 0x88, 0x48, 0xbe, + 0x02, 0x13, 0xec, 0xef, 0x0d, 0xb7, 0xe9, 0xd4, 0x1d, 0xea, 0xcf, 0x17, 0xb0, 0x71, 0x97, 0x52, + 0x57, 0x3f, 0x22, 0x1d, 0xd5, 0x68, 0xc0, 0x17, 0x30, 0x32, 0x8e, 0x2b, 0xc1, 0x35, 0x6e, 0xe4, + 0x03, 0x98, 0x60, 0xb3, 0x6f, 0xc7, 0xf6, 0xb9, 0x68, 0x3a, 0x13, 0x19, 0x23, 0x37, 0x04, 0x3c, + 0x11, 0x50, 0x59, 0x25, 0x60, 0xc7, 0x7c, 0xa9, 0xc3, 0x37, 0x48, 0xa2, 0xcc, 0xf6, 0x4e, 0x62, + 0x73, 0x94, 0x68, 0xe4, 0x0b, 0x30, 0x51, 0xea, 0x74, 0xa2, 0x1d, 0x67, 0x56, 0x51, 0x84, 0x75, + 0x3a, 0x56, 0xea, 0xae, 0xa3, 0x51, 0xc4, 0x37, 0xe6, 0xb9, 0x33, 0x6d, 0xcc, 0xe4, 0xcd, 0x50, + 0x5a, 0x3f, 0x17, 0x69, 0x75, 0xc5, 0xc5, 0x51, 0x13, 0xfd, 0xb9, 0xe0, 0x5e, 0x86, 0x49, 0xae, + 0xe6, 0x94, 0xd2, 0xcc, 0xf9, 0xc4, 0xea, 0x49, 0x11, 0x6a, 0x74, 0x1a, 0xb2, 0x0c, 0x53, 0xdc, + 0xdb, 0xba, 0x29, 0x22, 0x5d, 0xcf, 0x5f, 0xc0, 0x55, 0x8b, 0x5c, 0xb8, 0x93, 0x76, 0x13, 0x13, + 0xa0, 0xd8, 0x1a, 0x97, 0x18, 0x91, 0xf1, 0xa7, 0x19, 0xb8, 0xd0, 0x63, 0xc4, 0xc3, 0x38, 0xc8, + 0x99, 0xfe, 0x71, 0x90, 0xd9, 0xce, 0xa1, 0x6b, 0x45, 0xb0, 0xfd, 0x42, 0xca, 0x52, 0xc7, 0x4b, + 0xca, 0x5b, 0x2e, 0x10, 0x91, 0x63, 0x48, 0x54, 0x7d, 0xcf, 0x45, 0xd5, 0x6c, 0x2e, 0x79, 0x08, + 0x09, 0x3c, 0xfe, 0x51, 0x4b, 0xc6, 0xc9, 0x71, 0xf1, 0x92, 0x48, 0x61, 0x14, 0x0e, 0xeb, 0x47, + 0xae, 0xb6, 0x82, 0x53, 0x58, 0x1b, 0xc7, 0x19, 0x18, 0x57, 0xd6, 0x21, 0xb9, 0xac, 0x78, 0x01, + 0x17, 0x78, 0x12, 0x2c, 0x85, 0x43, 0x96, 0x9f, 0x44, 0xb8, 0xa8, 0xb2, 0xa7, 0x2b, 0xa0, 0xd7, + 0x98, 0x28, 0xa4, 0xc4, 0x8a, 0x6e, 0x69, 0xda, 0x62, 0x13, 0xcb, 0x31, 0x9d, 0xbe, 0xed, 0x07, + 0xa5, 0x7a, 0xe0, 0x3c, 0xa2, 0x03, 0x1c, 0x3a, 0x51, 0x3a, 0x7d, 0xdb, 0x0f, 0x2c, 0x1b, 0xc9, + 0x12, 0xe9, 0xf4, 0x43, 0x86, 0xc6, 0xdf, 0xca, 0x00, 0x6c, 0x55, 0xcb, 0x18, 0xec, 0xfd, 0x49, + 0x85, 0x82, 0xf4, 0x00, 0xba, 0x92, 0x7b, 0x1f, 0x71, 0xe0, 0x7f, 0xcc, 0xc0, 0x94, 0x8e, 0x46, + 0xde, 0x87, 0xe9, 0x5a, 0xdd, 0x73, 0x9b, 0xcd, 0x1d, 0xbb, 0x7e, 0xb0, 0xea, 0xb4, 0x29, 0x0f, + 0x5d, 0x3a, 0xcc, 0xcf, 0x22, 0x3f, 0x2c, 0xb2, 0x9a, 0xac, 0xcc, 0x8c, 0x23, 0x93, 0x1f, 0xc8, + 0xc0, 0x64, 0x6d, 0xdf, 0x3d, 0x0c, 0xa3, 0x8d, 0x8a, 0x01, 0xf9, 0x2a, 0x5b, 0xdb, 0xfe, 0xbe, + 0x7b, 0x18, 0x65, 0xd0, 0xd4, 0x8c, 0x3f, 0xdf, 0x1b, 0xec, 0x5d, 0xbe, 0xee, 0xe2, 0x4d, 0x26, + 0xf0, 0xaf, 0x6b, 0x95, 0x98, 0x7a, 0x9d, 0xc6, 0x5f, 0x64, 0x60, 0x1c, 0xef, 0x3c, 0xcd, 0x26, + 0xca, 0x5c, 0xdf, 0x4d, 0xe9, 0x18, 0xc3, 0x76, 0xf5, 0x19, 0xd8, 0xb7, 0x60, 0x3a, 0x86, 0x46, + 0x0c, 0x18, 0xa9, 0xa1, 0x83, 0xbf, 0xaa, 0xa0, 0xe0, 0x2e, 0xff, 0xa6, 0x28, 0x31, 0x96, 0x15, + 0xb2, 0x87, 0x37, 0xf1, 0x59, 0x77, 0x11, 0xc0, 0x91, 0x20, 0x79, 0xb3, 0x21, 0xf1, 0x2f, 0x79, + 0x78, 0xd3, 0x54, 0xb0, 0x8c, 0x75, 0x18, 0xa9, 0xb9, 0x5e, 0xb0, 0x74, 0xc4, 0x2f, 0x13, 0x15, + 0xea, 0xd7, 0xd5, 0x77, 0x5b, 0x07, 0xdf, 0x4a, 0xea, 0xa6, 0x28, 0x22, 0x45, 0x18, 0xbe, 0xe3, + 0xd0, 0x66, 0x43, 0x35, 0xd0, 0xdd, 0x65, 0x00, 0x93, 0xc3, 0xd9, 0x85, 0xeb, 0x7c, 0x94, 0x13, + 0x25, 0xb2, 0x04, 0x7e, 0xd2, 0x75, 0x53, 0xd6, 0xfa, 0xf7, 0xa5, 0x30, 0x0f, 0x41, 0xb2, 0xa6, + 0x3e, 0x5d, 0xfd, 0x1f, 0x66, 0x60, 0xa1, 0x37, 0x89, 0x6a, 0x5c, 0x9c, 0xe9, 0x63, 0x5c, 0xfc, + 0x6a, 0xfc, 0x9d, 0x11, 0xd1, 0xc4, 0x3b, 0x63, 0xf4, 0xba, 0x58, 0x41, 0xdb, 0xee, 0x3a, 0x95, + 0x89, 0x50, 0x2e, 0xf7, 0xf9, 0x66, 0x44, 0xe4, 0xc3, 0x1c, 0x20, 0x8d, 0x29, 0x68, 0x8d, 0xdf, + 0x1a, 0x82, 0x8b, 0x3d, 0x29, 0xc8, 0x8a, 0x92, 0x5e, 0x69, 0x2a, 0x4c, 0xec, 0xd2, 0x13, 0xff, + 0x3a, 0xfe, 0x8b, 0xe6, 0x7b, 0x71, 0x6f, 0xb3, 0x07, 0x61, 0x5a, 0x9d, 0x2c, 0xf2, 0xfa, 0xd4, + 0xa9, 0xbc, 0x38, 0x3a, 0x32, 0x83, 0x64, 0x86, 0x1d, 0xf4, 0x4b, 0xa4, 0x81, 0xed, 0x34, 0x7d, + 0x75, 0xd9, 0x35, 0x38, 0xc8, 0x94, 0x65, 0x91, 0xc5, 0xf7, 0x50, 0xba, 0xc5, 0xb7, 0xf1, 0x2f, + 0x33, 0x30, 0x16, 0x7e, 0x36, 0x59, 0x80, 0xf3, 0x9b, 0x66, 0xa9, 0xbc, 0x6c, 0x6d, 0x7e, 0xb8, + 0xb1, 0x6c, 0x6d, 0xad, 0xd7, 0x36, 0x96, 0xcb, 0xd5, 0x3b, 0xd5, 0xe5, 0x4a, 0xe1, 0x39, 0x32, + 0x03, 0x93, 0x5b, 0xeb, 0xf7, 0xd7, 0x1f, 0x6c, 0xaf, 0x5b, 0xcb, 0xa6, 0xf9, 0xc0, 0x2c, 0x64, + 0xc8, 0x24, 0x8c, 0x99, 0x4b, 0xa5, 0xb2, 0xb5, 0xfe, 0xa0, 0xb2, 0x5c, 0xc8, 0x92, 0x02, 0x4c, + 0x94, 0x1f, 0xac, 0xaf, 0x2f, 0x97, 0x37, 0xab, 0x0f, 0xab, 0x9b, 0x1f, 0x16, 0x72, 0x84, 0xc0, + 0x14, 0x22, 0x6c, 0x98, 0xd5, 0xf5, 0x72, 0x75, 0xa3, 0xb4, 0x5a, 0x18, 0x62, 0x30, 0x86, 0xaf, + 0xc0, 0x86, 0x43, 0x46, 0xf7, 0xb7, 0x96, 0x96, 0x0b, 0x23, 0x0c, 0x85, 0xfd, 0xa5, 0xa0, 0x8c, + 0xb2, 0xea, 0x11, 0xa5, 0x52, 0xda, 0x2c, 0x2d, 0x95, 0x6a, 0xcb, 0x85, 0x3c, 0xb9, 0x00, 0xb3, + 0x1a, 0xc8, 0x5a, 0x7d, 0x70, 0xb7, 0xba, 0x5e, 0x18, 0x23, 0x73, 0x50, 0x08, 0x61, 0x95, 0x25, + 0x6b, 0xab, 0xb6, 0x6c, 0x16, 0x20, 0x0e, 0x5d, 0x2f, 0xad, 0x2d, 0x17, 0xc6, 0x8d, 0xf7, 0xb8, + 0x1f, 0x20, 0xef, 0x6a, 0x72, 0x1e, 0x48, 0x6d, 0xb3, 0xb4, 0xb9, 0x55, 0x8b, 0x35, 0x7e, 0x1c, + 0x46, 0x6b, 0x5b, 0xe5, 0xf2, 0x72, 0xad, 0x56, 0xc8, 0x10, 0x80, 0x91, 0x3b, 0xa5, 0xea, 0xea, + 0x72, 0xa5, 0x90, 0x35, 0x7e, 0x22, 0x03, 0x33, 0x52, 0x02, 0x94, 0x8f, 0x46, 0x4f, 0xb8, 0x16, + 0xdf, 0xd7, 0x2e, 0xb6, 0xd2, 0x49, 0x2b, 0x56, 0x49, 0x9f, 0x65, 0xf8, 0x73, 0x19, 0x38, 0x97, + 0x8a, 0x4d, 0x3e, 0x84, 0x82, 0xfc, 0x82, 0x35, 0x3b, 0xa8, 0xef, 0x47, 0xfb, 0xd8, 0xa5, 0x58, + 0x2d, 0x31, 0x34, 0xae, 0xd6, 0x8c, 0x12, 0x3e, 0x27, 0xd8, 0x0c, 0x9e, 0x8e, 0xc0, 0xf8, 0xd9, + 0x0c, 0x5c, 0xe8, 0x51, 0x0d, 0x29, 0xc3, 0x48, 0x98, 0x98, 0xa6, 0x8f, 0x05, 0xdb, 0xdc, 0xb7, + 0x8f, 0x8b, 0x02, 0x11, 0x33, 0xe4, 0xe2, 0x5f, 0xe6, 0x48, 0x98, 0x69, 0x06, 0xd3, 0xbd, 0xf0, + 0xee, 0xbb, 0x18, 0xeb, 0x79, 0x51, 0x53, 0x69, 0xbb, 0xb6, 0x34, 0x2e, 0xfa, 0x2e, 0x67, 0x1f, + 0xfa, 0x98, 0xef, 0xc5, 0xf8, 0xa9, 0x0c, 0x13, 0xee, 0xe2, 0x88, 0x4c, 0xe6, 0x2d, 0xf9, 0x7e, + 0xb7, 0x45, 0x4d, 0xb7, 0x49, 0x4b, 0xe6, 0xba, 0x38, 0x36, 0x50, 0x5a, 0xb5, 0xb1, 0x00, 0xaf, + 0x15, 0x96, 0xed, 0xb5, 0xb5, 0xd7, 0x6a, 0x95, 0x86, 0xbc, 0x0d, 0xb0, 0xfc, 0x38, 0xa0, 0x5e, + 0xdb, 0x6e, 0x86, 0x31, 0x5a, 0x78, 0x64, 0x29, 0x01, 0xd5, 0xe5, 0x6d, 0x05, 0xd9, 0xf8, 0x3b, + 0x19, 0x98, 0x10, 0x97, 0xa6, 0x52, 0x93, 0x7a, 0xc1, 0x93, 0x4d, 0xaf, 0xb7, 0xb5, 0xe9, 0x15, + 0x3a, 0x6c, 0x28, 0xfc, 0x59, 0x71, 0xea, 0xcc, 0xfa, 0x27, 0x19, 0x28, 0xc4, 0x11, 0xc9, 0xfb, + 0x90, 0xaf, 0xd1, 0x47, 0xd4, 0x73, 0x82, 0x23, 0xb1, 0x51, 0xca, 0x14, 0x7e, 0x1c, 0x47, 0x94, + 0xf1, 0xf9, 0xe0, 0x8b, 0x5f, 0x66, 0x48, 0x33, 0xe8, 0x7e, 0xaf, 0xa8, 0x3d, 0x72, 0x4f, 0x4b, + 0xed, 0x61, 0xfc, 0x6f, 0x59, 0xb8, 0x70, 0x97, 0x06, 0x6a, 0x9b, 0x42, 0xf3, 0x82, 0x4f, 0x0f, + 0xd6, 0x2e, 0xa5, 0x25, 0xf3, 0x30, 0x8a, 0x45, 0x72, 0x7c, 0x4d, 0xf9, 0x93, 0x2c, 0x85, 0xf3, + 0x3a, 0xa7, 0xe5, 0x08, 0xeb, 0x51, 0xf7, 0x75, 0x25, 0x6b, 0x50, 0x38, 0xad, 0xaf, 0xc0, 0x14, + 0x86, 0xc5, 0xef, 0xb2, 0xe5, 0x40, 0x1b, 0x42, 0xfd, 0x93, 0x37, 0x63, 0x50, 0xf2, 0x3a, 0x14, + 0x18, 0xa4, 0x54, 0x3f, 0x68, 0xbb, 0x87, 0x4d, 0xda, 0xd8, 0xa3, 0x0d, 0x3c, 0xd6, 0xf3, 0x66, + 0x02, 0x2e, 0x79, 0x6e, 0xb5, 0xf9, 0xd5, 0x8d, 0x36, 0x50, 0x47, 0x23, 0x78, 0x46, 0xd0, 0x85, + 0xb7, 0x61, 0xfc, 0x63, 0x66, 0x00, 0x33, 0xfe, 0xd7, 0x0c, 0xcc, 0x61, 0xe3, 0x94, 0x8a, 0x65, + 0x76, 0x56, 0xd9, 0x5b, 0x4a, 0x52, 0x1c, 0x9b, 0x81, 0xf4, 0xa5, 0x10, 0xf6, 0x62, 0xa4, 0x13, + 0xca, 0x0e, 0xa0, 0x13, 0xaa, 0x9d, 0x25, 0x13, 0xfd, 0x80, 0x2a, 0xad, 0x7b, 0x43, 0xf9, 0x5c, + 0x61, 0x28, 0x1a, 0x72, 0xe3, 0x07, 0xb2, 0x30, 0x6a, 0x52, 0x4c, 0xd1, 0x4d, 0xae, 0xc0, 0xe8, + 0xba, 0x1b, 0x50, 0x7f, 0x4d, 0xcb, 0xc7, 0xde, 0x66, 0x20, 0xab, 0xd5, 0x30, 0x65, 0x21, 0x9b, + 0xf0, 0x1b, 0x9e, 0xdb, 0xe8, 0xd6, 0x03, 0x75, 0xc2, 0x77, 0x38, 0xc8, 0x94, 0x65, 0xe4, 0x0d, + 0x18, 0x13, 0x9c, 0xc3, 0x47, 0x5d, 0x34, 0x46, 0xf6, 0x68, 0x98, 0xe2, 0x3d, 0x42, 0x40, 0x99, + 0x96, 0x0b, 0x18, 0x43, 0x8a, 0x4c, 0x9b, 0x90, 0x19, 0xa4, 0xa8, 0x3e, 0xdc, 0x47, 0x54, 0xff, + 0x34, 0x8c, 0x94, 0x7c, 0x9f, 0x06, 0x32, 0x8a, 0xc1, 0x44, 0x18, 0xb6, 0xcd, 0xa7, 0x01, 0x67, + 0x6c, 0x63, 0xb9, 0x29, 0xf0, 0x8c, 0x7f, 0x9e, 0x85, 0x61, 0xfc, 0x13, 0x9f, 0x4c, 0xbd, 0xfa, + 0xbe, 0xf6, 0x64, 0xea, 0xd5, 0xf7, 0x4d, 0x84, 0x92, 0x9b, 0xa8, 0xa9, 0x90, 0xf9, 0x9b, 0x44, + 0xeb, 0x51, 0x05, 0xdf, 0x88, 0xc0, 0xa6, 0x8a, 0x13, 0xbe, 0xf0, 0xe7, 0x52, 0x63, 0x97, 0x9c, + 0x87, 0xec, 0x83, 0x9a, 0x68, 0x31, 0x46, 0xc4, 0x72, 0x7d, 0x33, 0xfb, 0xa0, 0x86, 0xbd, 0xb1, + 0x52, 0x5a, 0x7c, 0xeb, 0xb6, 0x68, 0x28, 0xef, 0x8d, 0x7d, 0x7b, 0xf1, 0xad, 0xdb, 0xa6, 0x28, + 0x61, 0xfd, 0x8b, 0xdf, 0x8c, 0x0f, 0xaf, 0xdc, 0xe7, 0x1e, 0xfb, 0x17, 0xdb, 0x86, 0x8f, 0xac, + 0x66, 0x84, 0x40, 0x16, 0x61, 0x5c, 0xc4, 0x7a, 0x40, 0x7c, 0x25, 0x16, 0x83, 0x88, 0x05, 0xc1, + 0x29, 0x54, 0x24, 0xfe, 0x04, 0x27, 0x06, 0x48, 0x66, 0x99, 0x15, 0x4f, 0x70, 0x72, 0x08, 0x7d, + 0x53, 0x41, 0x61, 0x9f, 0xc4, 0xdf, 0xf0, 0x22, 0x5f, 0xfa, 0x29, 0x25, 0x68, 0x00, 0xa6, 0x39, + 0x08, 0x11, 0x8c, 0x5f, 0xca, 0x42, 0x7e, 0xa3, 0xd9, 0xdd, 0x73, 0xda, 0x0f, 0x6f, 0x12, 0x02, + 0x78, 0x8d, 0x93, 0x79, 0x30, 0xd8, 0xdf, 0xe4, 0x22, 0xe4, 0xe5, 0xcd, 0x4d, 0x6e, 0x48, 0xbe, + 0xb8, 0xb5, 0xcd, 0x83, 0x1c, 0x77, 0x11, 0xfa, 0x4c, 0xfe, 0x24, 0x37, 0x21, 0xbc, 0x7f, 0xf5, + 0xba, 0xa8, 0x0d, 0xb1, 0xc5, 0x62, 0x86, 0x68, 0xe4, 0x4d, 0xc0, 0x43, 0x42, 0x5c, 0x1e, 0xa4, + 0x42, 0x9b, 0x7f, 0x9a, 0x90, 0x53, 0x38, 0x09, 0xa2, 0x91, 0x5b, 0x20, 0x26, 0xa6, 0xc8, 0x66, + 0x7e, 0x4e, 0x27, 0xe0, 0xf9, 0x21, 0x25, 0x89, 0x40, 0x25, 0xef, 0xc2, 0x78, 0xdd, 0xa3, 0xf8, + 0xea, 0x68, 0x37, 0xa3, 0x24, 0xe5, 0x2a, 0x65, 0x39, 0x2a, 0x7f, 0x78, 0xd3, 0x54, 0xd1, 0x8d, + 0x5f, 0xca, 0xc3, 0x84, 0xfa, 0x3d, 0xc4, 0x84, 0x59, 0xbf, 0xc9, 0xee, 0xee, 0xc2, 0xd8, 0xac, + 0x83, 0x85, 0xe2, 0x38, 0xbd, 0xac, 0x7f, 0x10, 0xc3, 0xe3, 0x96, 0x67, 0x32, 0x48, 0xc5, 0xca, + 0x73, 0xe6, 0x8c, 0x1f, 0x81, 0x39, 0x1e, 0x29, 0x41, 0xde, 0xed, 0xf8, 0x7b, 0xb4, 0xed, 0xc8, + 0xf7, 0x96, 0x97, 0x35, 0x46, 0x0f, 0x44, 0x61, 0x82, 0x57, 0x48, 0x46, 0xde, 0x82, 0x11, 0xb7, + 0x43, 0xdb, 0xb6, 0x23, 0xce, 0xb8, 0xe7, 0x63, 0x0c, 0x68, 0xbb, 0x54, 0x55, 0x08, 0x05, 0x32, + 0xb9, 0x01, 0x43, 0xee, 0x41, 0x38, 0x5e, 0x17, 0x75, 0xa2, 0x83, 0xc0, 0x56, 0x48, 0x10, 0x91, + 0x11, 0x7c, 0x64, 0xb7, 0x76, 0xc5, 0x88, 0xe9, 0x04, 0xf7, 0xec, 0xd6, 0xae, 0x4a, 0xc0, 0x10, + 0xc9, 0x07, 0x00, 0x1d, 0x7b, 0x8f, 0x7a, 0x56, 0xa3, 0x1b, 0x1c, 0x89, 0x71, 0xbb, 0xa4, 0x91, + 0x6d, 0xb0, 0xe2, 0x4a, 0x37, 0x38, 0x52, 0x68, 0xc7, 0x3a, 0x12, 0x48, 0x4a, 0x00, 0x2d, 0x3b, + 0x08, 0xa8, 0xd7, 0x72, 0x85, 0xb5, 0x5f, 0x14, 0x84, 0x90, 0x33, 0x58, 0x0b, 0x8b, 0x15, 0x0e, + 0x0a, 0x11, 0x7e, 0xb4, 0xe3, 0xd9, 0x22, 0xa7, 0x7c, 0xec, 0xa3, 0x1d, 0x4f, 0x6b, 0x25, 0x43, + 0x24, 0x9f, 0x83, 0xd1, 0x86, 0xe3, 0xd7, 0x5d, 0xaf, 0x21, 0xa2, 0x97, 0xbc, 0xa0, 0xd1, 0x54, + 0x78, 0x99, 0x42, 0x26, 0xd1, 0xd9, 0xd7, 0x8a, 0x20, 0xa4, 0xeb, 0xee, 0x21, 0xaa, 0xf9, 0xe3, + 0x5f, 0x5b, 0x0b, 0x8b, 0xd5, 0xaf, 0x8d, 0x88, 0xd8, 0x50, 0xee, 0x39, 0x41, 0xd3, 0xde, 0x11, + 0xef, 0xdc, 0xfa, 0x50, 0xde, 0xc5, 0x22, 0x75, 0x28, 0x39, 0x32, 0x79, 0x1b, 0xf2, 0xb4, 0x1d, + 0x78, 0xb6, 0xe5, 0x34, 0x84, 0x97, 0xa4, 0xfe, 0xd1, 0xec, 0x00, 0xb6, 0xab, 0x15, 0xf5, 0xa3, + 0x11, 0xbf, 0xda, 0x60, 0xfd, 0xe3, 0xd7, 0x9d, 0x96, 0x70, 0x6e, 0xd4, 0xfb, 0xa7, 0x56, 0xae, + 0xae, 0xa9, 0xfd, 0xc3, 0x10, 0xc9, 0xfb, 0x30, 0xca, 0xd6, 0x6f, 0xc3, 0xdd, 0x13, 0x01, 0x21, + 0x0c, 0xbd, 0x7f, 0x78, 0x59, 0x62, 0xba, 0x4a, 0x22, 0xb6, 0x90, 0xed, 0x43, 0xdf, 0x72, 0xea, + 0x22, 0xc8, 0x83, 0xbe, 0x1c, 0x4b, 0xdb, 0xb5, 0x6a, 0x59, 0x21, 0x1b, 0xb6, 0x0f, 0xfd, 0x6a, + 0x9d, 0x2c, 0xc2, 0x30, 0xa6, 0x88, 0x10, 0x81, 0x28, 0x75, 0x1a, 0x4c, 0x0e, 0xa1, 0xd2, 0x20, + 0x2a, 0x1b, 0xc8, 0x96, 0x8f, 0xfe, 0x22, 0x22, 0x51, 0x83, 0xde, 0x27, 0x6b, 0x35, 0x74, 0x22, + 0x51, 0x3f, 0x51, 0xa0, 0x93, 0x4b, 0x00, 0xd1, 0x2b, 0x3e, 0x7f, 0x73, 0x31, 0x15, 0xc8, 0xe7, + 0x87, 0xfe, 0xcf, 0x5f, 0x28, 0x66, 0x96, 0x00, 0xf2, 0x32, 0x42, 0x8d, 0xb1, 0x0a, 0x17, 0x7b, + 0xae, 0x7b, 0x72, 0x0d, 0x0a, 0xbb, 0xb6, 0xd0, 0xfa, 0xd5, 0xf7, 0xed, 0x76, 0x9b, 0x36, 0xc5, + 0x8e, 0x3b, 0x2d, 0xe1, 0x65, 0x0e, 0xe6, 0x9c, 0x8d, 0x0f, 0x60, 0x2e, 0x6d, 0xc0, 0xc9, 0x4b, + 0x30, 0xa1, 0x06, 0xe3, 0x11, 0x4c, 0xc6, 0xed, 0x8e, 0x23, 0xc3, 0xf1, 0x08, 0x06, 0xbf, 0x99, + 0x81, 0x17, 0xfa, 0x6d, 0x1f, 0x64, 0x01, 0xf2, 0x1d, 0xcf, 0x71, 0x51, 0x4c, 0x15, 0xd9, 0x0e, + 0xe4, 0x6f, 0x4c, 0x64, 0x80, 0xf2, 0x54, 0x60, 0xef, 0x09, 0x07, 0x0f, 0x73, 0x0c, 0x21, 0x9b, + 0xf6, 0x9e, 0x4f, 0x3e, 0x05, 0x33, 0x0d, 0xba, 0x6b, 0x77, 0x9b, 0x81, 0xe5, 0xd7, 0xf7, 0x69, + 0x03, 0x7d, 0xaa, 0xd0, 0x70, 0xcf, 0x2c, 0x88, 0x82, 0x9a, 0x84, 0x27, 0xbe, 0x78, 0xb8, 0xc7, + 0x17, 0xdf, 0x1b, 0xca, 0x67, 0x0a, 0x59, 0x13, 0x2d, 0xa5, 0x8c, 0xef, 0xcb, 0xc2, 0x7c, 0xaf, + 0xf5, 0x42, 0xde, 0x4b, 0xeb, 0x03, 0xfe, 0x70, 0xa1, 0xc2, 0xd5, 0x87, 0x0b, 0xa5, 0x36, 0xb2, + 0x08, 0xa1, 0x47, 0xd4, 0x69, 0xd1, 0x0d, 0x24, 0x8c, 0xd1, 0x74, 0x6c, 0xdf, 0x3f, 0x64, 0x5b, + 0x42, 0x4e, 0x09, 0x68, 0x2b, 0x60, 0x2a, 0x8d, 0x84, 0x91, 0xcf, 0x02, 0xd4, 0x9b, 0xae, 0x4f, + 0xd1, 0x3e, 0x40, 0xc8, 0x1a, 0xdc, 0x2c, 0x3c, 0x84, 0xaa, 0x0f, 0xc2, 0x08, 0x2d, 0xbb, 0x0d, + 0x2a, 0x06, 0xd0, 0x86, 0x0b, 0x3d, 0x36, 0x48, 0x36, 0x3c, 0x51, 0x76, 0x78, 0x99, 0x6b, 0xaa, + 0x1b, 0xe6, 0x88, 0x8f, 0xf7, 0x78, 0xb6, 0xd7, 0x1c, 0x39, 0x02, 0x92, 0xdc, 0x05, 0x19, 0x77, + 0x61, 0xdc, 0xdc, 0xf5, 0x42, 0xee, 0x1c, 0xb2, 0xe5, 0x35, 0x49, 0x11, 0xc6, 0x65, 0x2e, 0x49, + 0x26, 0xcb, 0x73, 0xe6, 0x20, 0x40, 0xf7, 0x29, 0x4e, 0x1e, 0x8c, 0x58, 0x8a, 0x7e, 0x6f, 0x42, + 0x4a, 0xf8, 0xff, 0xd8, 0xfb, 0x96, 0xd8, 0x46, 0x92, 0xf3, 0xe0, 0x69, 0x92, 0x92, 0xa8, 0x8f, + 0x7a, 0xb4, 0x6a, 0x5e, 0xda, 0xd1, 0x3c, 0x76, 0x7a, 0x67, 0xc6, 0x33, 0x5c, 0xef, 0xda, 0x33, + 0xfb, 0xaf, 0x77, 0xd7, 0xfe, 0xfd, 0x68, 0x91, 0x2d, 0x89, 0x33, 0x7c, 0xb9, 0x9b, 0x94, 0x3c, + 0x1e, 0xdb, 0xed, 0x5e, 0xb2, 0x25, 0xb5, 0x4d, 0xb1, 0x69, 0x36, 0xb9, 0xe3, 0x31, 0x02, 0x24, + 0x46, 0x00, 0x1b, 0xc8, 0xcb, 0x89, 0x93, 0x20, 0x8b, 0x5c, 0x7c, 0x88, 0x11, 0xe4, 0x90, 0x6b, + 0x90, 0x20, 0xc9, 0xc5, 0x37, 0x03, 0x86, 0x01, 0x03, 0xc9, 0x29, 0x09, 0x16, 0xc9, 0x02, 0x09, + 0x90, 0xc7, 0x2d, 0x88, 0x0f, 0x3e, 0x05, 0xf5, 0x55, 0x55, 0x77, 0xf5, 0x83, 0x1c, 0x8d, 0x77, + 0x9d, 0xc4, 0x80, 0x4f, 0x12, 0xbf, 0xfa, 0xea, 0xeb, 0x7a, 0xd7, 0xf7, 0x7d, 0xf5, 0x3d, 0x96, + 0x11, 0xd2, 0x79, 0x32, 0x12, 0xbd, 0xbb, 0x2c, 0xd6, 0x77, 0xfc, 0x6e, 0xe2, 0xa5, 0xbf, 0xaf, + 0x88, 0xe9, 0x4f, 0x1f, 0xee, 0x4f, 0x6b, 0x1f, 0x01, 0xf4, 0x52, 0xe2, 0x0d, 0xc3, 0xff, 0x29, + 0xd7, 0x22, 0x76, 0x1d, 0xe7, 0x5a, 0xf8, 0x4f, 0x72, 0x0b, 0xd6, 0xc7, 0xcc, 0x8e, 0x75, 0xe2, + 0xf3, 0xf1, 0x64, 0x79, 0x3b, 0x56, 0x19, 0xb8, 0xe3, 0xe3, 0x98, 0xf2, 0x76, 0xdd, 0x0f, 0x07, + 0x4c, 0xba, 0xeb, 0xc8, 0xcb, 0xb0, 0x4c, 0xef, 0x3a, 0x8c, 0x74, 0x93, 0x70, 0x8f, 0x40, 0x3c, + 0xe4, 0x1c, 0xcc, 0xe2, 0x97, 0xf8, 0xff, 0x9c, 0xd6, 0xdb, 0x39, 0x41, 0x4c, 0xbe, 0x69, 0xc9, + 0x45, 0x58, 0xf2, 0xc7, 0x47, 0x52, 0xd7, 0x16, 0xfd, 0xf1, 0x11, 0xed, 0xd7, 0x6d, 0x50, 0x99, + 0xb7, 0x0e, 0x0b, 0x83, 0x10, 0x3c, 0x19, 0x32, 0x51, 0xbc, 0x68, 0xae, 0x31, 0x38, 0x26, 0xcc, + 0x7f, 0x32, 0xec, 0x51, 0xcc, 0x20, 0xf0, 0x6d, 0x39, 0xc0, 0x15, 0xef, 0xf6, 0x5a, 0x10, 0xf8, + 0x51, 0xa4, 0xab, 0x3e, 0xd9, 0x86, 0x55, 0x4a, 0x27, 0x0c, 0xb3, 0xc5, 0x19, 0x81, 0x2b, 0x69, + 0x46, 0xe0, 0xc9, 0xb0, 0x27, 0x9a, 0x68, 0xae, 0x04, 0xd2, 0x2f, 0xf2, 0x00, 0x54, 0x89, 0x63, + 0x42, 0x7f, 0xcc, 0x84, 0x4d, 0x75, 0x44, 0x46, 0xe2, 0xb4, 0x6a, 0xc3, 0x43, 0xdf, 0x5c, 0xef, + 0xc5, 0x01, 0x7c, 0x68, 0xbe, 0xa3, 0x88, 0xb3, 0x34, 0xa3, 0x12, 0xd1, 0x60, 0xf5, 0xd8, 0x09, + 0xec, 0x20, 0x38, 0x61, 0x36, 0x62, 0x3c, 0xb0, 0x6f, 0xe9, 0xd8, 0x09, 0xac, 0xe0, 0x44, 0x24, + 0x0e, 0x39, 0x4f, 0x71, 0x7c, 0x67, 0x3a, 0x39, 0xb6, 0x65, 0xfe, 0x8f, 0x8d, 0xd8, 0xd9, 0x63, + 0x27, 0x68, 0xd1, 0x32, 0x89, 0x36, 0xb9, 0x01, 0x6b, 0x48, 0xb7, 0xe7, 0x09, 0xc2, 0x18, 0xca, + 0xc2, 0x5c, 0xa1, 0x84, 0x7b, 0x1e, 0xa3, 0xcc, 0x5b, 0xf8, 0xaf, 0x39, 0xb8, 0x90, 0x3d, 0x3a, + 0xb8, 0x3c, 0xe9, 0x98, 0xa2, 0x8f, 0x1e, 0x6f, 0xdb, 0x32, 0x85, 0xb0, 0x30, 0x24, 0x59, 0x93, + 0x93, 0xcb, 0x9c, 0x9c, 0x32, 0x6c, 0x20, 0x21, 0xce, 0x69, 0x0e, 0xbc, 0x60, 0xc2, 0xa3, 0x6b, + 0x98, 0xeb, 0xb4, 0x80, 0x9d, 0xe7, 0x75, 0x0a, 0x26, 0x37, 0x61, 0x4d, 0x9c, 0xc8, 0xfe, 0xe3, + 0x21, 0xfd, 0x30, 0x3b, 0x8e, 0x57, 0x39, 0xb4, 0x85, 0x40, 0x72, 0x1e, 0x16, 0x9d, 0xd1, 0x88, + 0x7e, 0x92, 0x9d, 0xc2, 0x0b, 0xce, 0x68, 0xc4, 0x92, 0xdb, 0xa0, 0x47, 0xa2, 0x7d, 0x88, 0x56, + 0x42, 0xdc, 0x24, 0xd1, 0x5c, 0x41, 0x20, 0xb3, 0x1c, 0x0a, 0xe8, 0xbe, 0xa7, 0x75, 0x05, 0xca, + 0x12, 0xa2, 0x80, 0x33, 0x0a, 0x11, 0x9e, 0x83, 0xa2, 0x78, 0xaf, 0x66, 0x8e, 0x15, 0xe6, 0x92, + 0xc3, 0xdf, 0xaa, 0x5f, 0x85, 0x8b, 0x7d, 0x2f, 0xc0, 0xc5, 0xcb, 0xba, 0x34, 0x1a, 0x71, 0x1f, + 0x48, 0x16, 0x24, 0xd7, 0x3c, 0xc7, 0x8b, 0xe9, 0x48, 0xea, 0xa3, 0x11, 0xf3, 0x84, 0xe4, 0x63, + 0xfd, 0x3a, 0xac, 0x73, 0x8e, 0x8b, 0x5f, 0x91, 0xd8, 0x16, 0xbe, 0x81, 0xa9, 0x28, 0xc4, 0xd3, + 0x09, 0x01, 0x07, 0xd5, 0xfa, 0xa2, 0xe6, 0x3f, 0x28, 0x70, 0x3e, 0x93, 0x65, 0x23, 0x5f, 0x04, + 0xe6, 0xf2, 0x35, 0xf1, 0xed, 0xb1, 0xdb, 0xf3, 0x46, 0x1e, 0x06, 0xc5, 0x60, 0x2a, 0xcd, 0x7b, + 0xf3, 0x98, 0x3d, 0x74, 0x1f, 0xeb, 0xf8, 0x66, 0x58, 0x89, 0xe9, 0x5a, 0xd4, 0x71, 0x02, 0x7c, + 0xe9, 0x11, 0x9c, 0xcf, 0x44, 0xcd, 0xd0, 0x81, 0x7c, 0x30, 0x9e, 0xcc, 0x59, 0x3c, 0x52, 0x25, + 0x3a, 0x2d, 0xe9, 0x46, 0x78, 0xf7, 0xbe, 0x17, 0x76, 0x2f, 0xc1, 0xdc, 0x11, 0x23, 0xb9, 0xaf, + 0xb3, 0xe4, 0x13, 0x51, 0x69, 0xf6, 0xd6, 0x7e, 0x04, 0xe7, 0xf9, 0xe2, 0x3b, 0x1a, 0x3b, 0xa3, + 0xe3, 0x88, 0x1c, 0x6b, 0xe8, 0x07, 0xb2, 0xc8, 0xb1, 0x55, 0xb9, 0x4b, 0xf1, 0x43, 0xaa, 0x67, + 0x9d, 0x34, 0x90, 0xf7, 0xe1, 0xeb, 0x39, 0xb1, 0xd5, 0x33, 0x9a, 0x93, 0xb1, 0xac, 0x95, 0xac, + 0x65, 0x7d, 0xfa, 0x3d, 0xd5, 0x04, 0x22, 0x1f, 0x56, 0x4c, 0xeb, 0xc9, 0x0d, 0xaa, 0x04, 0x9f, + 0xce, 0x1b, 0x22, 0x1d, 0x0d, 0x16, 0x4b, 0xa6, 0xb9, 0xd1, 0x4b, 0x82, 0xc8, 0x16, 0x2c, 0x87, + 0xf9, 0xaa, 0xf9, 0xc5, 0x51, 0x64, 0x80, 0x5a, 0x9f, 0x3c, 0x0f, 0x2b, 0x8c, 0x25, 0x8f, 0xed, + 0x39, 0x40, 0x98, 0x4e, 0x37, 0x9e, 0x18, 0x03, 0x05, 0x9e, 0x7f, 0xda, 0x18, 0x92, 0x03, 0xb8, + 0x80, 0x66, 0x1d, 0x81, 0x1f, 0x4e, 0x83, 0xdd, 0x73, 0x7a, 0xc7, 0x2e, 0x5f, 0xb5, 0x5a, 0xe6, + 0x64, 0x8c, 0x46, 0x96, 0xd5, 0x92, 0xe6, 0x61, 0x34, 0xb2, 0x02, 0x5f, 0xfc, 0xae, 0xd0, 0xea, + 0xbc, 0x0d, 0x7d, 0xd8, 0x9a, 0x53, 0x53, 0x3a, 0x38, 0x14, 0xf9, 0xe0, 0xb8, 0x0d, 0xea, 0xa1, + 0xdb, 0xa7, 0x3c, 0xb1, 0xdb, 0xc7, 0xa6, 0xbd, 0x75, 0x8f, 0x65, 0x68, 0x37, 0xd7, 0x42, 0xb8, + 0x15, 0xf8, 0xfb, 0xf7, 0xf8, 0x57, 0x4e, 0xc4, 0x95, 0x27, 0x8b, 0x15, 0xe4, 0x65, 0x38, 0x9b, + 0x08, 0x38, 0x12, 0x79, 0xb0, 0x9b, 0x1b, 0xb4, 0x28, 0x1e, 0x9e, 0xea, 0x3a, 0xac, 0x88, 0x55, + 0x31, 0x0e, 0xfd, 0xe0, 0xcc, 0x12, 0x87, 0xd1, 0x5d, 0xc7, 0x3f, 0x37, 0x15, 0x9d, 0xca, 0x94, + 0x48, 0x4e, 0xc1, 0x4b, 0x93, 0x97, 0x80, 0x84, 0x7c, 0x7b, 0x78, 0x50, 0xf0, 0x0f, 0x6e, 0x88, + 0x92, 0x70, 0x87, 0xf3, 0xcf, 0xfe, 0x75, 0x0e, 0xce, 0x66, 0x88, 0x32, 0x54, 0x08, 0xf0, 0x86, + 0x13, 0xf7, 0x88, 0x89, 0x10, 0x72, 0x27, 0xd7, 0x25, 0x38, 0xd7, 0x4f, 0x2d, 0xb2, 0x0c, 0xe4, + 0xfc, 0x5b, 0xfc, 0x17, 0x3d, 0x3c, 0x9c, 0xb1, 0x50, 0xbd, 0xd0, 0x7f, 0x49, 0x0d, 0x36, 0x30, + 0xad, 0x42, 0xe0, 0xf9, 0x98, 0x9d, 0x01, 0x99, 0x90, 0x42, 0x4c, 0xd8, 0xc1, 0x56, 0xb4, 0x25, + 0x24, 0xca, 0x85, 0x98, 0xea, 0x28, 0x01, 0x21, 0x1f, 0x83, 0x4b, 0xd2, 0x5d, 0x63, 0x27, 0x76, + 0x1e, 0x5a, 0xba, 0x9b, 0x17, 0x9d, 0xf0, 0xd6, 0xa9, 0xc6, 0xf6, 0xe0, 0x36, 0x5c, 0xc5, 0x49, + 0xf4, 0xfa, 0x23, 0x3b, 0x95, 0x87, 0x03, 0xbb, 0xca, 0x02, 0xd7, 0x5f, 0xa2, 0x58, 0xb5, 0xfe, + 0x28, 0x91, 0x92, 0x83, 0xf6, 0x9a, 0x0f, 0xdf, 0x23, 0x38, 0x9f, 0xd9, 0x62, 0x7a, 0xc1, 0xa0, + 0x21, 0x55, 0xc4, 0x1b, 0x2d, 0xd1, 0xdf, 0x94, 0x39, 0xba, 0x0e, 0x2b, 0x6f, 0xba, 0xce, 0xd8, + 0x1d, 0xf3, 0x9b, 0x9b, 0x2f, 0x09, 0x06, 0x93, 0x2f, 0xee, 0x7e, 0x7c, 0x6a, 0xb8, 0xce, 0x88, + 0x34, 0xe0, 0x2c, 0xbb, 0x01, 0xbd, 0x13, 0x64, 0x06, 0xb9, 0x9e, 0x49, 0x89, 0xb1, 0x43, 0x58, + 0x05, 0xaf, 0xa6, 0x1a, 0x62, 0xb1, 0xda, 0xe6, 0xc6, 0x51, 0x12, 0x44, 0x77, 0xf4, 0x85, 0x6c, + 0x6c, 0xb2, 0x0d, 0x25, 0x46, 0x9c, 0x89, 0x05, 0xec, 0x81, 0xe0, 0xfa, 0xdc, 0x2f, 0x54, 0xd0, + 0xbe, 0x38, 0x08, 0xff, 0xa7, 0xf7, 0x35, 0xbe, 0xc5, 0xda, 0x27, 0xf2, 0xfb, 0x87, 0xb9, 0x82, + 0x40, 0xfe, 0xee, 0xa1, 0xfd, 0x8d, 0x22, 0xba, 0x1a, 0x13, 0x8e, 0xe9, 0xd2, 0x0a, 0xdc, 0xa1, + 0x78, 0x03, 0x5a, 0x36, 0xf9, 0xaf, 0x67, 0x5c, 0xea, 0xe4, 0x35, 0x58, 0xa1, 0x64, 0x8f, 0xa6, + 0x43, 0xb6, 0xe4, 0xf2, 0xb1, 0x40, 0x3b, 0x0d, 0x56, 0x44, 0xa7, 0x6d, 0xef, 0x8c, 0x59, 0x3a, + 0x89, 0x7e, 0x52, 0x6e, 0x39, 0x38, 0x99, 0x8c, 0xe4, 0x85, 0x2a, 0x14, 0x85, 0x56, 0xa3, 0xd3, + 0xe6, 0x55, 0x8a, 0x14, 0x27, 0xe2, 0x96, 0xb7, 0x17, 0x99, 0xaa, 0x50, 0x7b, 0x11, 0x4a, 0x12, + 0x6d, 0xda, 0x19, 0xe6, 0x39, 0x23, 0x3a, 0xc3, 0x7e, 0xf1, 0xc9, 0x7e, 0x13, 0x8a, 0x82, 0x24, + 0x15, 0x0b, 0x8e, 0xfd, 0x40, 0x6c, 0x72, 0xfc, 0x9f, 0xc2, 0xe8, 0x28, 0x63, 0x27, 0x17, 0x4c, + 0xfc, 0x1f, 0xef, 0x92, 0x89, 0x43, 0xe5, 0x81, 0x41, 0x60, 0x8f, 0xd0, 0x02, 0x2b, 0x64, 0x9e, + 0x29, 0xbc, 0x33, 0x08, 0x98, 0x5d, 0x16, 0xff, 0xc6, 0x5f, 0x84, 0x97, 0x70, 0x42, 0x9b, 0x30, + 0xeb, 0xcc, 0x8c, 0x5d, 0x19, 0xb9, 0xf4, 0x95, 0xc1, 0x02, 0xa8, 0xf0, 0x9a, 0xec, 0xcb, 0x80, + 0x30, 0xbc, 0x32, 0xa4, 0x93, 0xa1, 0x10, 0x3b, 0x19, 0x24, 0x99, 0x3c, 0x9a, 0x3d, 0x76, 0xe3, + 0x08, 0x99, 0x3c, 0x79, 0x4e, 0xfd, 0x71, 0x4e, 0xa8, 0x08, 0xb6, 0x7d, 0x7f, 0x12, 0x4c, 0xc6, + 0xce, 0x28, 0xa6, 0x0a, 0x25, 0x27, 0xf0, 0x1c, 0x72, 0xd0, 0xf7, 0x30, 0x85, 0x85, 0x3f, 0x16, + 0x31, 0x3b, 0xc2, 0x95, 0x5b, 0xba, 0xf7, 0xa1, 0x38, 0x8f, 0xaf, 0x53, 0x6c, 0x5d, 0x46, 0xa6, + 0x0b, 0x56, 0xa2, 0xba, 0x77, 0xc6, 0xbc, 0xc8, 0x68, 0xa6, 0xb0, 0xc8, 0x5e, 0xc6, 0x26, 0x4e, + 0xea, 0x42, 0xb7, 0xa3, 0x1d, 0x1d, 0xa7, 0x2a, 0xef, 0x75, 0xf2, 0x09, 0x58, 0xf6, 0xfa, 0x72, + 0xa6, 0xc6, 0xa4, 0x16, 0xae, 0xd6, 0x67, 0xd1, 0xa2, 0x23, 0x1a, 0x74, 0xcd, 0x79, 0x1c, 0xba, + 0xbd, 0x1a, 0x53, 0x1a, 0x6b, 0xdb, 0x42, 0x1a, 0x4d, 0x57, 0x23, 0x6b, 0x90, 0x0b, 0x67, 0x38, + 0xe7, 0xf5, 0xd9, 0xf6, 0x8a, 0xe2, 0x55, 0x9b, 0xfc, 0x97, 0xf6, 0x4b, 0x70, 0xfb, 0xb4, 0x63, + 0x44, 0xb7, 0xe2, 0x8c, 0x01, 0x5f, 0x36, 0x37, 0x9c, 0xd4, 0xb8, 0x5d, 0x07, 0x39, 0xdc, 0xae, + 0x27, 0x0e, 0x3f, 0x01, 0xeb, 0x8e, 0x3d, 0xed, 0xcf, 0xf3, 0xb0, 0x16, 0x57, 0x93, 0x93, 0x17, + 0xa1, 0x20, 0x9d, 0x40, 0x17, 0x33, 0x74, 0xe9, 0x78, 0xee, 0x20, 0xd2, 0xa9, 0x4e, 0x1c, 0x72, + 0x1f, 0xd6, 0xd0, 0x70, 0x0f, 0x59, 0xcf, 0x89, 0xc7, 0x1f, 0x5f, 0xe6, 0xbf, 0x9f, 0x15, 0xbf, + 0xff, 0xce, 0xb5, 0x33, 0xf8, 0x54, 0xb6, 0x42, 0xeb, 0x52, 0xee, 0x8f, 0x16, 0x4a, 0x5a, 0xd0, + 0xc2, 0x6c, 0x2d, 0x28, 0xef, 0xca, 0x0c, 0x2d, 0xe8, 0xc2, 0x1c, 0x2d, 0x68, 0x54, 0x53, 0xd6, + 0x82, 0xa2, 0x2e, 0x7c, 0x69, 0x96, 0x2e, 0x3c, 0xaa, 0xc3, 0x74, 0xe1, 0x91, 0x16, 0xb3, 0x38, + 0x53, 0x8b, 0x19, 0xd5, 0xe1, 0x5a, 0xcc, 0x1b, 0x7c, 0x8c, 0xc6, 0xce, 0x63, 0x1b, 0x07, 0x8f, + 0x5f, 0x8b, 0xd8, 0x7b, 0xd3, 0x79, 0x8c, 0xc6, 0x35, 0xdb, 0xcb, 0x20, 0x2c, 0x72, 0xb4, 0xdf, + 0x55, 0x12, 0x9a, 0x40, 0x31, 0x7f, 0x37, 0x61, 0x8d, 0x5d, 0x56, 0x6e, 0x5f, 0x92, 0x35, 0x57, + 0xcd, 0x55, 0x01, 0x65, 0xf2, 0xe6, 0x07, 0x60, 0x3d, 0x44, 0xe3, 0x22, 0x17, 0x7a, 0xea, 0x99, + 0x61, 0x6d, 0x1e, 0x76, 0xe6, 0x45, 0xd8, 0x08, 0x11, 0xb9, 0x36, 0x87, 0x89, 0x9b, 0xab, 0xa6, + 0x2a, 0x0a, 0xda, 0x1c, 0xae, 0x1d, 0x25, 0x25, 0x8f, 0x9f, 0x51, 0xab, 0xb4, 0xef, 0xe5, 0x63, + 0x5a, 0x12, 0xf1, 0x19, 0x7a, 0x8b, 0x06, 0xbe, 0xcd, 0x07, 0x89, 0x9f, 0x45, 0xd7, 0x67, 0xcc, + 0x19, 0xb7, 0x69, 0xb2, 0xac, 0x96, 0x09, 0x41, 0xe0, 0x0b, 0x13, 0x27, 0x9b, 0x71, 0xd4, 0xec, + 0xde, 0xc7, 0x35, 0x2b, 0xc8, 0xb1, 0x83, 0xa7, 0x3c, 0x9f, 0x9c, 0x10, 0x53, 0xe9, 0x92, 0x45, + 0xce, 0x3a, 0xfc, 0x25, 0x3e, 0xd0, 0x05, 0x54, 0x2a, 0x06, 0x71, 0xe2, 0xf9, 0x0c, 0xd9, 0x29, + 0x45, 0x1c, 0x47, 0x09, 0x29, 0xab, 0x53, 0xf1, 0xaf, 0x20, 0x6b, 0xc0, 0x0a, 0xea, 0x28, 0x04, + 0xc1, 0x42, 0x86, 0x0a, 0x3e, 0xdd, 0xf9, 0x4a, 0xad, 0x61, 0x96, 0x68, 0x3d, 0x41, 0xe6, 0x18, + 0x9e, 0x93, 0x35, 0x0b, 0xf1, 0x46, 0x2e, 0x88, 0x28, 0xba, 0x73, 0x47, 0x20, 0x52, 0x40, 0x60, + 0x53, 0x2f, 0x38, 0x71, 0x00, 0x47, 0xd3, 0x8e, 0xe1, 0xd2, 0xec, 0x29, 0x99, 0x93, 0xa1, 0x29, + 0xba, 0x40, 0x73, 0xf2, 0x05, 0x2a, 0xeb, 0x19, 0xf2, 0x31, 0x3d, 0x83, 0xf6, 0x47, 0x79, 0x78, + 0xe1, 0x14, 0xd3, 0x35, 0xe7, 0x9b, 0x9f, 0x8a, 0xb3, 0x67, 0xb9, 0x98, 0x64, 0x48, 0x89, 0xf2, + 0x03, 0x92, 0x4a, 0xa9, 0xd9, 0xcc, 0xd9, 0x17, 0x61, 0x9d, 0x9d, 0x82, 0xcc, 0x2c, 0xf1, 0x70, + 0x3a, 0x38, 0xc5, 0x31, 0xb8, 0x25, 0x7c, 0xa8, 0x12, 0x55, 0xf1, 0x64, 0xc4, 0x13, 0xc3, 0x0a, + 0x61, 0xa4, 0x03, 0x25, 0x44, 0x3b, 0x74, 0xbc, 0xc1, 0xa9, 0x9c, 0x79, 0x84, 0x87, 0x96, 0x5c, + 0x8d, 0x59, 0x53, 0x53, 0xc0, 0x0e, 0xfe, 0x26, 0xb7, 0x60, 0x7d, 0x38, 0x3d, 0xa1, 0x8c, 0x07, + 0x5b, 0x0b, 0xdc, 0xfa, 0x63, 0xc1, 0x5c, 0x1d, 0x4e, 0x4f, 0xf4, 0xd1, 0x08, 0xa7, 0x14, 0xcd, + 0x44, 0x36, 0x28, 0x1e, 0xdb, 0xb5, 0x02, 0x73, 0x11, 0x31, 0x29, 0x01, 0xb6, 0x6f, 0x39, 0xee, + 0x39, 0x60, 0x46, 0x83, 0x3c, 0x43, 0x15, 0xfb, 0xa1, 0xfd, 0x38, 0x27, 0xe4, 0xdd, 0xd9, 0xeb, + 0xfe, 0x17, 0x53, 0x94, 0x31, 0x45, 0xb7, 0x41, 0xa5, 0x43, 0x1f, 0x1d, 0x2a, 0xe1, 0x1c, 0xad, + 0x0d, 0xa7, 0x27, 0xe1, 0xd8, 0xc9, 0x03, 0xbf, 0x28, 0x0f, 0xfc, 0x6b, 0x42, 0x1e, 0xce, 0x3c, + 0x1e, 0x66, 0x0f, 0xb9, 0xf6, 0x1f, 0x79, 0xb8, 0x75, 0xba, 0x43, 0xe0, 0x17, 0xf3, 0x96, 0x31, + 0x6f, 0x09, 0xd5, 0xe9, 0x42, 0x4a, 0x75, 0x9a, 0xb1, 0xf7, 0x16, 0xb3, 0xf6, 0x5e, 0x4a, 0x51, + 0xbb, 0x94, 0xa1, 0xa8, 0xcd, 0xdc, 0xa0, 0xc5, 0xa7, 0x6c, 0xd0, 0x65, 0x79, 0x9d, 0xfc, 0x4b, + 0xa8, 0xc0, 0x88, 0xcb, 0x03, 0x8f, 0xe0, 0xac, 0x90, 0x07, 0xd8, 0xcd, 0x11, 0xe9, 0xdf, 0x4b, + 0xf7, 0xee, 0x64, 0x49, 0x02, 0x88, 0x96, 0xc1, 0xad, 0x6f, 0x70, 0x19, 0x20, 0x2a, 0xff, 0xbf, + 0xc3, 0xfd, 0x93, 0x87, 0x70, 0x01, 0xe3, 0xbb, 0xf7, 0xe4, 0x97, 0x03, 0x7b, 0xec, 0x1e, 0xf2, + 0xf5, 0x70, 0x3d, 0xc5, 0x2b, 0x7b, 0x3d, 0xa9, 0x39, 0xa6, 0x7b, 0xb8, 0x77, 0xc6, 0x3c, 0x17, + 0x64, 0xc0, 0x93, 0x82, 0xc5, 0x9f, 0x2a, 0xa0, 0x3d, 0x7d, 0xbc, 0x50, 0x51, 0x95, 0x1c, 0xf0, + 0x65, 0xb3, 0xe4, 0x48, 0xa3, 0xf7, 0x02, 0xac, 0x8e, 0xdd, 0xc3, 0xb1, 0x1b, 0x1c, 0xc7, 0x34, + 0x20, 0x2b, 0x1c, 0x28, 0x06, 0x46, 0x44, 0x99, 0x7c, 0x26, 0xce, 0x5c, 0x54, 0xd2, 0x76, 0x42, + 0x79, 0x31, 0x73, 0x1e, 0xe8, 0x6a, 0x92, 0x1b, 0xc8, 0x7e, 0xdc, 0x2f, 0x14, 0x73, 0x6a, 0xde, + 0xe4, 0xb1, 0x30, 0x0f, 0xbd, 0x81, 0xab, 0xfd, 0xa5, 0x22, 0x38, 0x82, 0xac, 0xc1, 0x23, 0x8f, + 0x24, 0x63, 0xde, 0x7c, 0x8a, 0x0d, 0xc9, 0xaa, 0x22, 0xdb, 0x3d, 0xf2, 0xf0, 0x8c, 0x08, 0x88, + 0x85, 0x67, 0x44, 0xc8, 0x7b, 0xb0, 0x48, 0xe4, 0x52, 0xf3, 0x1b, 0xc2, 0x22, 0x88, 0x9e, 0x79, + 0xfb, 0x77, 0xc9, 0x1d, 0x58, 0x62, 0x46, 0x40, 0xa2, 0xb9, 0xeb, 0xb1, 0xe6, 0xee, 0xdf, 0x35, + 0x45, 0xb9, 0xf6, 0x76, 0xf8, 0xae, 0x95, 0xea, 0xc4, 0xfe, 0x5d, 0xf2, 0xda, 0xe9, 0x8c, 0x73, + 0x8b, 0xc2, 0x38, 0x37, 0x34, 0xcc, 0x7d, 0x3d, 0x66, 0x98, 0x7b, 0x63, 0xfe, 0x68, 0xf1, 0xd7, + 0x48, 0x16, 0x8e, 0x30, 0x0a, 0x53, 0xf5, 0x63, 0x05, 0xae, 0xcc, 0xad, 0x41, 0x2e, 0x43, 0x51, + 0x6f, 0xd7, 0x3a, 0xd1, 0xfc, 0xd2, 0x3d, 0x23, 0x20, 0x64, 0x17, 0x96, 0xb7, 0x9d, 0xc0, 0xeb, + 0xd1, 0x65, 0x9c, 0xf9, 0x3c, 0x90, 0x22, 0x1b, 0xa2, 0xef, 0x9d, 0x31, 0xa3, 0xba, 0xc4, 0x86, + 0x0d, 0xdc, 0x0b, 0xb1, 0xd4, 0x4f, 0xf9, 0x0c, 0x5d, 0x43, 0x8a, 0x60, 0xaa, 0x1a, 0x3d, 0x67, + 0x52, 0xc0, 0xe4, 0x16, 0x7c, 0x4b, 0xf0, 0x22, 0xb3, 0x1b, 0xf8, 0x0c, 0x71, 0x55, 0x6f, 0x43, + 0xb1, 0x2d, 0xec, 0x04, 0x24, 0x6b, 0x76, 0x61, 0x13, 0x60, 0x86, 0xa5, 0xda, 0x6f, 0x28, 0x42, + 0x21, 0xf0, 0xf4, 0x8e, 0x48, 0x59, 0xb3, 0xfa, 0xf3, 0xb3, 0x66, 0xf5, 0x7f, 0xca, 0xac, 0x59, + 0xda, 0x9f, 0xf0, 0xa8, 0xe7, 0xb5, 0x7e, 0x3b, 0xa1, 0x99, 0x7d, 0xaf, 0x5e, 0x09, 0x46, 0x6c, + 0x75, 0xbe, 0x20, 0x65, 0x5d, 0x4c, 0x7f, 0x6b, 0xb6, 0x73, 0x82, 0xb4, 0x54, 0xff, 0x20, 0x0f, + 0x97, 0xe7, 0x55, 0xcf, 0xcc, 0xeb, 0xac, 0x3c, 0x5b, 0x5e, 0xe7, 0x3b, 0x50, 0x64, 0xb0, 0xd0, + 0xe4, 0x1e, 0x07, 0x9c, 0x57, 0xa5, 0x03, 0x2e, 0x8a, 0xc9, 0x0b, 0xb0, 0xa8, 0x57, 0xac, 0x28, + 0xd5, 0x18, 0xda, 0xc6, 0x3a, 0xbd, 0x00, 0xad, 0x2e, 0x79, 0x11, 0xf9, 0x42, 0x3a, 0xbb, 0x1e, + 0xcf, 0x31, 0xb6, 0x25, 0x0d, 0x48, 0x2a, 0x21, 0x01, 0xb6, 0x37, 0x0a, 0xa0, 0xcf, 0x63, 0x52, + 0x9b, 0xe9, 0x4c, 0x7d, 0x1a, 0x2c, 0xb6, 0xc7, 0x6e, 0xe0, 0x4e, 0x64, 0xbb, 0xd5, 0x11, 0x42, + 0x4c, 0x5e, 0xc2, 0xad, 0x4a, 0x9d, 0x27, 0x2c, 0x88, 0xc0, 0xa2, 0x1c, 0xd8, 0x05, 0xcd, 0x50, + 0x29, 0xd8, 0x94, 0x50, 0x68, 0x85, 0xba, 0x33, 0x1d, 0xf6, 0x8e, 0xbb, 0x66, 0x9d, 0xb3, 0x1a, + 0xac, 0xc2, 0x00, 0xa1, 0xb4, 0x83, 0x81, 0x29, 0xa1, 0x68, 0xdf, 0x54, 0xe0, 0x5c, 0x56, 0x3f, + 0xc8, 0x65, 0x28, 0x0c, 0x33, 0x13, 0x09, 0x0e, 0x99, 0xef, 0x73, 0x89, 0xfe, 0xb5, 0x0f, 0xfd, + 0xf1, 0x89, 0x33, 0x91, 0xad, 0x7b, 0x25, 0xb0, 0x09, 0xf4, 0xc7, 0x0e, 0xfe, 0x4f, 0xae, 0x89, + 0x33, 0x3a, 0x9f, 0x4a, 0x3d, 0x88, 0x7f, 0x34, 0x1d, 0xa0, 0xd6, 0x6f, 0xb7, 0x46, 0x2c, 0x20, + 0xfe, 0x2b, 0x50, 0xa0, 0xcd, 0x4a, 0xac, 0x5e, 0xba, 0x7e, 0xf4, 0x46, 0x9d, 0x23, 0xb1, 0x56, + 0x05, 0xce, 0xc9, 0xc0, 0x44, 0x64, 0xed, 0x00, 0xd6, 0xe2, 0x18, 0xc4, 0x88, 0x87, 0x50, 0x2d, + 0xdd, 0x53, 0x39, 0xa5, 0x6d, 0xdf, 0x67, 0x1e, 0x26, 0xdb, 0xcf, 0xfd, 0xdd, 0x3b, 0xd7, 0x80, + 0xfe, 0x64, 0x75, 0xb2, 0x42, 0xac, 0x6a, 0xdf, 0xca, 0xc1, 0xb9, 0xc8, 0xa9, 0x5d, 0xec, 0xa1, + 0x9f, 0x5b, 0x0f, 0x4b, 0x3d, 0xe6, 0x01, 0x28, 0x18, 0xad, 0x74, 0x07, 0xe7, 0x38, 0x1e, 0xed, + 0xc2, 0xe6, 0x2c, 0x7c, 0xf2, 0x22, 0x2c, 0x63, 0x1c, 0xa4, 0x91, 0xd3, 0x73, 0xe5, 0xb3, 0x6f, + 0x28, 0x80, 0x66, 0x54, 0xae, 0xfd, 0x50, 0x81, 0x4b, 0xdc, 0x2f, 0xa2, 0xe1, 0x78, 0x43, 0x54, + 0xab, 0xf7, 0xdc, 0xf7, 0xc7, 0x43, 0x78, 0x37, 0x76, 0x8e, 0xdd, 0x8c, 0xbb, 0xbf, 0xa4, 0xbe, + 0x36, 0xbb, 0xb7, 0xe4, 0x0e, 0xc6, 0xf6, 0xe2, 0xcf, 0xce, 0x05, 0x16, 0x91, 0x61, 0x48, 0x01, + 0x72, 0x44, 0x06, 0xc4, 0xd0, 0x7e, 0x19, 0xae, 0xce, 0xff, 0x00, 0xf9, 0x3c, 0xac, 0x62, 0xb2, + 0xa8, 0xee, 0xe8, 0x68, 0xec, 0xf4, 0x5d, 0xa1, 0x0a, 0x13, 0xea, 0x4b, 0xb9, 0x8c, 0x85, 0x2a, + 0xe3, 0x11, 0x02, 0x8e, 0x30, 0x0d, 0x15, 0xaf, 0x14, 0x73, 0x3e, 0x92, 0xa9, 0x69, 0xbf, 0xa2, + 0x00, 0x49, 0xd3, 0x20, 0x1f, 0x81, 0x95, 0x6e, 0xa7, 0x62, 0x4d, 0x9c, 0xf1, 0x64, 0xcf, 0x9f, + 0x8e, 0x79, 0x9c, 0x30, 0xe6, 0x30, 0x3e, 0xe9, 0xd9, 0xec, 0x01, 0xe5, 0xd8, 0x9f, 0x8e, 0xcd, + 0x18, 0x1e, 0x66, 0x39, 0x72, 0xdd, 0x2f, 0xf7, 0x9d, 0x27, 0xf1, 0x2c, 0x47, 0x1c, 0x16, 0xcb, + 0x72, 0xc4, 0x61, 0xda, 0x77, 0x15, 0xd8, 0x12, 0xd6, 0x84, 0xfd, 0x8c, 0xb6, 0x54, 0x30, 0x2c, + 0xca, 0x58, 0x04, 0xa6, 0x9d, 0xc7, 0xd2, 0x6e, 0x88, 0xc8, 0x41, 0xd8, 0x40, 0xe4, 0x6d, 0x59, + 0x5d, 0xf2, 0x29, 0x28, 0x58, 0x13, 0x7f, 0x74, 0x8a, 0xd0, 0x41, 0x6a, 0x38, 0xa3, 0x13, 0x7f, + 0x84, 0x24, 0xb0, 0xa6, 0xe6, 0xc2, 0x39, 0xb9, 0x71, 0xa2, 0xc5, 0xa4, 0x01, 0x4b, 0x3c, 0x46, + 0x5c, 0xe2, 0xa1, 0x7e, 0x4e, 0x9f, 0xb6, 0xd7, 0x45, 0x7c, 0x22, 0x1e, 0x18, 0xd5, 0x14, 0x34, + 0xb4, 0xdf, 0x52, 0xa0, 0x44, 0xb9, 0x0d, 0x94, 0xe2, 0xde, 0xeb, 0x92, 0x8e, 0x33, 0x8e, 0xc2, + 0xee, 0x24, 0x24, 0x7f, 0xaa, 0xdb, 0xf8, 0x55, 0x58, 0x4f, 0x54, 0x20, 0x1a, 0x46, 0xa6, 0x18, + 0x78, 0x3d, 0x87, 0x25, 0x4d, 0x61, 0x36, 0x1b, 0x31, 0x98, 0xf6, 0x6b, 0x0a, 0x9c, 0xa3, 0x32, + 0x3f, 0x7b, 0xe7, 0x34, 0xa7, 0x03, 0xb1, 0xdf, 0x29, 0x07, 0x25, 0xcc, 0x52, 0x99, 0xd7, 0x3c, + 0xe3, 0xa0, 0x38, 0xcc, 0x0c, 0x4b, 0xc9, 0x1e, 0x14, 0xf9, 0xfd, 0x12, 0xf0, 0x78, 0xa6, 0x57, + 0x25, 0x65, 0x42, 0x44, 0x98, 0x23, 0xd1, 0x9e, 0xe0, 0x11, 0xc6, 0xeb, 0x98, 0x61, 0x6d, 0xed, + 0x3f, 0x15, 0xb8, 0x38, 0xa3, 0x0e, 0xf9, 0x38, 0x2c, 0xa0, 0x47, 0x1f, 0x9f, 0xbd, 0xcb, 0x33, + 0x3e, 0x31, 0xe9, 0x1d, 0xef, 0xdf, 0x65, 0x17, 0xd1, 0x09, 0xfd, 0x61, 0xb2, 0x5a, 0xe4, 0x11, + 0x2c, 0xeb, 0xfd, 0x3e, 0x17, 0x67, 0x72, 0x31, 0x71, 0x66, 0xc6, 0x17, 0x5f, 0x0e, 0xf1, 0x99, + 0x38, 0xc3, 0x7c, 0x4b, 0xfa, 0x7d, 0x9b, 0x7b, 0x2b, 0x46, 0xf4, 0x2e, 0xfd, 0x7f, 0x58, 0x8b, + 0x23, 0x3f, 0x93, 0x83, 0xd5, 0xdb, 0x0a, 0xa8, 0xf1, 0x36, 0xfc, 0x6c, 0x22, 0x2b, 0x65, 0x4d, + 0xf3, 0x53, 0x16, 0xd5, 0xef, 0xe4, 0xe0, 0x7c, 0xe6, 0x08, 0x93, 0x97, 0x60, 0x51, 0x1f, 0x8d, + 0x6a, 0x55, 0xbe, 0xaa, 0x38, 0x87, 0x84, 0x5a, 0xe2, 0x98, 0xb4, 0xc7, 0x90, 0xc8, 0x2b, 0x50, + 0x64, 0xcf, 0xe9, 0x55, 0x71, 0xe0, 0x60, 0xa8, 0x18, 0xfe, 0xd6, 0x1f, 0x8f, 0x2c, 0x2a, 0x10, + 0xc9, 0x0e, 0xac, 0xf1, 0x20, 0x2b, 0xa6, 0x7b, 0xe4, 0x7e, 0x35, 0x0c, 0x71, 0x8f, 0x51, 0xf8, + 0x85, 0xea, 0xd9, 0x1e, 0xb3, 0x32, 0x39, 0xcc, 0x48, 0xbc, 0x16, 0xa9, 0x83, 0x8a, 0x34, 0x65, + 0x4a, 0x2c, 0xbc, 0x29, 0x86, 0xbd, 0x61, 0x8d, 0x98, 0x41, 0x2b, 0x55, 0x33, 0x9c, 0x2e, 0x3d, + 0x08, 0xbc, 0xa3, 0xe1, 0x89, 0x3b, 0x9c, 0xfc, 0xec, 0xa6, 0x2b, 0xfa, 0xc6, 0xa9, 0xa6, 0xeb, + 0xf7, 0x0a, 0x6c, 0x33, 0x27, 0xab, 0x51, 0x8e, 0x46, 0x8a, 0x68, 0x8d, 0x1c, 0x0d, 0x15, 0x9a, + 0x78, 0x18, 0x91, 0x2a, 0x2c, 0xb1, 0xf0, 0x2e, 0x62, 0x67, 0x5c, 0xc9, 0x6c, 0x02, 0xc3, 0xd9, + 0xbf, 0xcb, 0xd8, 0x17, 0xe6, 0x5a, 0x18, 0x98, 0xa2, 0x2a, 0xd9, 0x87, 0x52, 0x65, 0xe0, 0x3a, + 0xc3, 0xe9, 0xa8, 0x73, 0xba, 0x27, 0xc7, 0x4d, 0xde, 0x97, 0x95, 0x1e, 0xab, 0x86, 0x4f, 0x95, + 0x78, 0x92, 0xcb, 0x84, 0x48, 0x27, 0xf4, 0x36, 0x2a, 0xa0, 0xa6, 0xf2, 0xc3, 0x73, 0xc6, 0x27, + 0x09, 0xc4, 0x7a, 0x71, 0x57, 0x3a, 0xee, 0x8e, 0x64, 0xc3, 0x5a, 0xdd, 0x09, 0x26, 0x9d, 0xb1, + 0x33, 0x0c, 0x30, 0x2c, 0xe4, 0x29, 0xc2, 0x66, 0x6d, 0x89, 0x94, 0xc3, 0xa8, 0x63, 0x9c, 0x84, + 0x55, 0x99, 0x06, 0x33, 0x4e, 0x8e, 0xf2, 0x4b, 0x3b, 0xde, 0xd0, 0x19, 0x78, 0x5f, 0x13, 0x4e, + 0x99, 0x8c, 0x5f, 0x3a, 0x14, 0x40, 0x33, 0x2a, 0xd7, 0x3e, 0x97, 0x9a, 0x37, 0xd6, 0xca, 0x12, + 0x2c, 0x71, 0x97, 0x7d, 0xe6, 0xc2, 0xde, 0x36, 0x9a, 0xd5, 0x5a, 0x73, 0x57, 0x55, 0xc8, 0x1a, + 0x40, 0xdb, 0x6c, 0x55, 0x0c, 0xcb, 0xa2, 0xbf, 0x73, 0xf4, 0x37, 0xf7, 0x6f, 0xdf, 0xe9, 0xd6, + 0xd5, 0xbc, 0xe4, 0xe2, 0x5e, 0xd0, 0x7e, 0xa0, 0xc0, 0x85, 0xec, 0xa9, 0x24, 0x1d, 0xc0, 0x20, + 0x07, 0xfc, 0xf1, 0xf9, 0x23, 0x73, 0xe7, 0x3d, 0x13, 0x9c, 0x0c, 0x96, 0x30, 0x61, 0x4e, 0xf8, + 0x39, 0xf1, 0x58, 0xc4, 0xbc, 0xfa, 0xbc, 0xbe, 0x99, 0xf3, 0xfa, 0x5a, 0x05, 0x36, 0x67, 0xd1, + 0x88, 0x77, 0x75, 0x1d, 0x4a, 0x7a, 0xbb, 0x5d, 0xaf, 0x55, 0xf4, 0x4e, 0xad, 0xd5, 0x54, 0x15, + 0xb2, 0x0c, 0x0b, 0xbb, 0x66, 0xab, 0xdb, 0x56, 0x73, 0xda, 0xb7, 0x15, 0x58, 0xad, 0x45, 0x66, + 0x5a, 0xef, 0x75, 0xf3, 0x7d, 0x34, 0xb6, 0xf9, 0x36, 0xc3, 0x70, 0x20, 0xe1, 0x07, 0x4e, 0xb5, + 0xf3, 0xfe, 0x56, 0x81, 0x8d, 0x54, 0x1d, 0x62, 0xc1, 0x92, 0x7e, 0x60, 0xb5, 0x6a, 0xd5, 0x0a, + 0x6f, 0xd9, 0xb5, 0xc8, 0xbe, 0x08, 0x33, 0x3e, 0xa5, 0xbe, 0xc2, 0x5c, 0x68, 0x1f, 0x07, 0xb6, + 0xef, 0xf5, 0xa5, 0x6c, 0xad, 0x7b, 0x67, 0x4c, 0x41, 0x09, 0x6f, 0xb2, 0xaf, 0x4d, 0xc7, 0x2e, + 0x92, 0xcd, 0xc5, 0x14, 0xa1, 0x21, 0x3c, 0x4d, 0x18, 0x1d, 0x1e, 0x1c, 0x5a, 0x9e, 0x26, 0x1d, + 0xd1, 0xdb, 0x5e, 0x85, 0x12, 0x97, 0x5a, 0x50, 0x20, 0xf8, 0x9e, 0x02, 0x9b, 0xb3, 0xda, 0x4a, + 0x05, 0xa1, 0xb8, 0x3f, 0xfd, 0x85, 0x30, 0x83, 0x43, 0xdc, 0x91, 0x5e, 0xa0, 0x91, 0x4f, 0x42, + 0xa9, 0x16, 0x04, 0x53, 0x77, 0x6c, 0xbd, 0xd2, 0x35, 0x6b, 0x7c, 0x81, 0x5c, 0xf9, 0xb7, 0x77, + 0xae, 0x5d, 0x44, 0xb7, 0x84, 0xb1, 0x1d, 0xbc, 0x62, 0x4f, 0xc7, 0x5e, 0x2c, 0xda, 0xbd, 0x5c, + 0x83, 0xf2, 0xad, 0xce, 0xb4, 0xef, 0xb9, 0x82, 0x6b, 0x17, 0x3e, 0xc7, 0x1c, 0x26, 0xdf, 0x22, + 0x02, 0xa6, 0x7d, 0x43, 0x81, 0x4b, 0xb3, 0x07, 0x86, 0xde, 0x4c, 0x1d, 0x66, 0xf5, 0x23, 0xbc, + 0x7e, 0xf1, 0x66, 0x0a, 0x4d, 0x83, 0x64, 0x9a, 0x02, 0x91, 0x56, 0x0a, 0xb3, 0xa7, 0xe7, 0x52, + 0x29, 0x93, 0xe3, 0x95, 0x04, 0xa2, 0xf6, 0xef, 0x39, 0xb8, 0x40, 0x17, 0xdd, 0xc0, 0x0d, 0x02, + 0x7d, 0x3a, 0x39, 0x76, 0x87, 0x13, 0xce, 0x86, 0x91, 0xd7, 0x60, 0xf1, 0xf8, 0xd9, 0x54, 0x8e, + 0x0c, 0x9d, 0x10, 0xc0, 0x83, 0x5c, 0x38, 0x59, 0xd0, 0xff, 0xc9, 0x75, 0x90, 0x93, 0x54, 0xe7, + 0x31, 0x4c, 0x66, 0x6e, 0x53, 0x31, 0x97, 0x47, 0x61, 0x3e, 0xd9, 0xd7, 0x61, 0x01, 0xd5, 0x0c, + 0xfc, 0x48, 0x15, 0xac, 0x70, 0x76, 0xeb, 0x50, 0x09, 0x61, 0xb2, 0x0a, 0xe4, 0x43, 0x00, 0x51, + 0x86, 0x01, 0x7e, 0x66, 0x0a, 0xf1, 0x3b, 0x4c, 0x32, 0x60, 0x2e, 0x9f, 0x1c, 0x3a, 0x3c, 0x6c, + 0x7f, 0x19, 0x36, 0xc4, 0xb0, 0x8c, 0x44, 0x74, 0x3d, 0xfe, 0x1a, 0xb6, 0xce, 0x0a, 0x6a, 0x23, + 0x11, 0x61, 0xef, 0x46, 0x2a, 0xd1, 0x2e, 0x06, 0xd9, 0x4d, 0x64, 0xd3, 0xbd, 0x91, 0xca, 0xa6, + 0x5b, 0x64, 0x58, 0x72, 0xca, 0x5c, 0xed, 0x9f, 0x73, 0xb0, 0x7c, 0x40, 0x99, 0x15, 0x14, 0xc1, + 0xe7, 0x8b, 0xf4, 0xf7, 0xa0, 0x54, 0xf7, 0x1d, 0xfe, 0xec, 0xc0, 0x7d, 0x13, 0x98, 0x6f, 0xf0, + 0xc0, 0x77, 0xc4, 0x0b, 0x46, 0x60, 0xca, 0x48, 0x4f, 0xf1, 0x6b, 0xbe, 0x0f, 0x8b, 0xec, 0x19, + 0x88, 0x6b, 0x97, 0x04, 0xbb, 0x1a, 0xb6, 0xe8, 0x65, 0x56, 0x2c, 0x69, 0xca, 0xd9, 0x53, 0x92, + 0xcc, 0x3b, 0xf1, 0x58, 0xa1, 0x92, 0xc2, 0x61, 0xe1, 0x74, 0x0a, 0x07, 0x29, 0x26, 0xda, 0xe2, + 0x69, 0x62, 0xa2, 0x5d, 0x7a, 0x03, 0x4a, 0x52, 0x7b, 0x9e, 0x89, 0x7b, 0xfd, 0x7a, 0x0e, 0x56, + 0xb1, 0x57, 0xa1, 0x4d, 0xc8, 0xcf, 0xa7, 0xfa, 0xe4, 0xa3, 0x31, 0xf5, 0xc9, 0xa6, 0x3c, 0x5f, + 0xac, 0x67, 0x73, 0xf4, 0x26, 0xf7, 0x61, 0x23, 0x85, 0x48, 0x5e, 0x85, 0x05, 0xda, 0x7c, 0x21, + 0x6e, 0xaa, 0xc9, 0x15, 0x10, 0xc5, 0xcf, 0xa5, 0x1d, 0x0f, 0x4c, 0x86, 0xad, 0xfd, 0x97, 0x02, + 0x2b, 0x3c, 0x7d, 0xc5, 0xf0, 0xd0, 0x7f, 0xea, 0x70, 0xde, 0x4a, 0x0e, 0x27, 0x8b, 0xd2, 0xc1, + 0x87, 0xf3, 0x7f, 0x7a, 0x10, 0xdf, 0x88, 0x0d, 0xe2, 0xc5, 0x30, 0x9a, 0x9e, 0xe8, 0xce, 0x9c, + 0x31, 0xfc, 0x2b, 0x8c, 0x2f, 0x1b, 0x47, 0x24, 0x5f, 0x80, 0xe5, 0xa6, 0xfb, 0x38, 0x26, 0xb5, + 0xdd, 0x9a, 0x41, 0xf4, 0xe5, 0x10, 0x91, 0xed, 0x29, 0xbc, 0xf0, 0x86, 0xee, 0x63, 0x3b, 0xf5, + 0x02, 0x15, 0x91, 0xa4, 0x82, 0x5b, 0xbc, 0xda, 0xb3, 0x2c, 0x7d, 0xee, 0x28, 0x89, 0x81, 0x67, + 0xbe, 0x99, 0x07, 0x88, 0x7c, 0xcc, 0xe8, 0x06, 0x8c, 0x3d, 0xbe, 0x0b, 0x85, 0x37, 0x82, 0xe4, + 0x35, 0x2e, 0xde, 0xe4, 0x6f, 0x71, 0xc5, 0x6c, 0x6e, 0x76, 0xb4, 0x43, 0x54, 0xd1, 0x56, 0xb8, + 0x53, 0x53, 0xdf, 0x1d, 0x38, 0xec, 0x6c, 0xcf, 0x6f, 0xdf, 0xc0, 0xe0, 0xb6, 0x21, 0x74, 0x46, + 0x1e, 0x62, 0x74, 0x7d, 0xaa, 0x52, 0x84, 0x94, 0xdf, 0x66, 0xe1, 0xd9, 0xfc, 0x36, 0xdb, 0xb0, + 0xec, 0x0d, 0xdf, 0x72, 0x87, 0x13, 0x7f, 0xfc, 0x04, 0xb5, 0xd1, 0x91, 0x9a, 0x8b, 0x0e, 0x41, + 0x4d, 0x94, 0xb1, 0x79, 0xc0, 0x8b, 0x31, 0xc4, 0x97, 0xa7, 0x21, 0x04, 0x86, 0x7e, 0xa7, 0x0b, + 0xea, 0xe2, 0xfd, 0x42, 0x71, 0x51, 0x5d, 0xba, 0x5f, 0x28, 0x16, 0xd5, 0xe5, 0xfb, 0x85, 0xe2, + 0xb2, 0x0a, 0xa6, 0xf4, 0xbe, 0x13, 0xbe, 0xdf, 0x48, 0x4f, 0x2e, 0xf1, 0xe7, 0x14, 0xed, 0x27, + 0x39, 0x20, 0xe9, 0x66, 0x90, 0x8f, 0x42, 0x89, 0x1d, 0xb0, 0xf6, 0x38, 0xf8, 0x0a, 0x37, 0x5b, + 0x67, 0xe1, 0x7b, 0x24, 0xb0, 0x1c, 0xbe, 0x87, 0x81, 0xcd, 0xe0, 0x2b, 0x03, 0xf2, 0x79, 0x38, + 0x8b, 0xc3, 0x3b, 0x72, 0xc7, 0x9e, 0xdf, 0xb7, 0x31, 0xd6, 0xaa, 0x33, 0xe0, 0x39, 0x03, 0x5f, + 0xc2, 0xe4, 0xb6, 0xe9, 0xe2, 0x19, 0xd3, 0x80, 0xae, 0x64, 0x6d, 0xc4, 0x6c, 0x33, 0x44, 0xd2, + 0x01, 0x55, 0xae, 0x7f, 0x38, 0x1d, 0x0c, 0xf8, 0xcc, 0x96, 0xa9, 0xa0, 0x9b, 0x2c, 0x9b, 0x41, + 0x78, 0x2d, 0x22, 0xbc, 0x33, 0x1d, 0x0c, 0xc8, 0x6b, 0x00, 0xfe, 0xd0, 0x3e, 0xf1, 0x82, 0x80, + 0xbd, 0x71, 0x84, 0x5e, 0xaf, 0x11, 0x54, 0x9e, 0x0c, 0x7f, 0xd8, 0x60, 0x40, 0xf2, 0xff, 0x00, + 0xbd, 0xfe, 0x31, 0x1c, 0x06, 0xb3, 0x6a, 0xe1, 0x59, 0x40, 0x04, 0x30, 0xee, 0x64, 0x7b, 0xe4, + 0x5a, 0xde, 0xd7, 0x84, 0xcb, 0xc0, 0x67, 0x61, 0x83, 0x1b, 0xa1, 0x1e, 0x78, 0x93, 0x63, 0xce, + 0x61, 0xbf, 0x17, 0xf6, 0x5c, 0x62, 0xb1, 0xff, 0xbe, 0x00, 0xa0, 0x1f, 0x58, 0x22, 0xd2, 0xd4, + 0x1d, 0x58, 0xa0, 0x72, 0x83, 0xd0, 0x3f, 0xa0, 0xf6, 0x16, 0xe9, 0xca, 0xda, 0x5b, 0xc4, 0xa0, + 0xbb, 0xd1, 0x44, 0xe3, 0x6c, 0xa1, 0x7b, 0xc0, 0xdd, 0xc8, 0xec, 0xb5, 0x63, 0x91, 0x7e, 0x39, + 0x16, 0xa9, 0x03, 0x44, 0xb1, 0x9f, 0xb8, 0x24, 0xbb, 0x11, 0x05, 0x51, 0xe1, 0x05, 0x3c, 0xdb, + 0x40, 0x14, 0x3f, 0x4a, 0x5e, 0x3e, 0x11, 0x1a, 0x79, 0x00, 0x85, 0x8e, 0x13, 0xfa, 0x74, 0xce, + 0x88, 0x88, 0xf5, 0x3c, 0xcf, 0xe9, 0x18, 0x45, 0xc5, 0x5a, 0x9b, 0x38, 0xb1, 0xd4, 0xb7, 0x48, + 0x84, 0x18, 0xb0, 0xc8, 0xf3, 0x75, 0xcf, 0x88, 0xa4, 0xc8, 0xd3, 0x75, 0xf3, 0xf8, 0xc9, 0x08, + 0x94, 0x79, 0x0a, 0x9e, 0x99, 0xfb, 0x1e, 0xe4, 0x2d, 0xab, 0xc1, 0xe3, 0x40, 0xac, 0x46, 0x52, + 0x89, 0x65, 0x35, 0xd8, 0x1b, 0x65, 0x10, 0x9c, 0x48, 0xd5, 0x28, 0x32, 0xf9, 0x18, 0x94, 0x24, + 0xf6, 0x99, 0x47, 0x50, 0xc1, 0x31, 0x90, 0xbc, 0x66, 0xe4, 0x43, 0x43, 0xc2, 0x26, 0x75, 0x50, + 0x1f, 0x4c, 0xdf, 0x74, 0xf5, 0xd1, 0x08, 0xdd, 0xe9, 0xde, 0x72, 0xc7, 0x8c, 0x6d, 0x2b, 0x46, + 0xa1, 0x87, 0xd1, 0xd6, 0xbe, 0x2f, 0x4a, 0x65, 0x1d, 0x4c, 0xb2, 0x26, 0x69, 0xc3, 0x86, 0xe5, + 0x4e, 0xa6, 0x23, 0x66, 0xa7, 0xb1, 0xe3, 0x8f, 0xa9, 0x10, 0xc2, 0xe2, 0xad, 0x60, 0x94, 0xd6, + 0x80, 0x16, 0x0a, 0xe3, 0x98, 0x43, 0x7f, 0x9c, 0x10, 0x48, 0xd2, 0x95, 0x35, 0x57, 0x9e, 0x72, + 0x7a, 0xab, 0xc6, 0x45, 0x1b, 0xbc, 0x55, 0x85, 0x68, 0x13, 0x09, 0x34, 0x1f, 0xca, 0x88, 0x09, + 0x86, 0x0f, 0x66, 0x52, 0x4c, 0xb0, 0x58, 0x24, 0xb0, 0xef, 0x16, 0xa4, 0xb0, 0x94, 0x7c, 0x2e, + 0x3e, 0x0e, 0x70, 0xdf, 0xf7, 0x86, 0x0d, 0x77, 0x72, 0xec, 0xf7, 0xa5, 0xd0, 0x64, 0xa5, 0x2f, + 0xf9, 0xde, 0xd0, 0x3e, 0x41, 0xf0, 0x4f, 0xde, 0xb9, 0x26, 0x21, 0x99, 0xd2, 0xff, 0xe4, 0x83, + 0xb0, 0x4c, 0x7f, 0x75, 0x22, 0x6b, 0x13, 0xa6, 0xaa, 0xc4, 0xda, 0x2c, 0x79, 0x43, 0x84, 0x40, + 0xde, 0xc0, 0x74, 0x25, 0xde, 0x68, 0x22, 0x31, 0xaf, 0x22, 0x37, 0x89, 0x37, 0x9a, 0x24, 0x23, + 0x0d, 0x4b, 0xc8, 0x64, 0x2f, 0x6c, 0xba, 0xc8, 0x30, 0xc4, 0xb3, 0xa2, 0xa0, 0x3e, 0x8e, 0xaf, + 0x35, 0x5b, 0x84, 0x38, 0x95, 0x73, 0xc1, 0x26, 0xaa, 0x61, 0x23, 0xac, 0xbd, 0x2a, 0x7b, 0x40, + 0xe1, 0x4c, 0x2d, 0x6b, 0x44, 0x70, 0xdc, 0xb7, 0x7b, 0x08, 0x8e, 0x35, 0x22, 0x44, 0x26, 0xdb, + 0xb0, 0xce, 0x78, 0xfc, 0x30, 0x53, 0x21, 0x67, 0x71, 0xf1, 0x6c, 0x8b, 0x52, 0x19, 0xca, 0x9f, + 0x4f, 0x54, 0x20, 0x3b, 0xb0, 0x80, 0x02, 0x21, 0x37, 0x31, 0xdf, 0x92, 0xa5, 0xe7, 0xe4, 0x3e, + 0xc2, 0x73, 0x05, 0xe5, 0x66, 0xf9, 0x5c, 0x41, 0x54, 0xf2, 0x19, 0x00, 0x63, 0x38, 0xf6, 0x07, + 0x03, 0x0c, 0xc2, 0x5b, 0x44, 0x51, 0xea, 0x4a, 0x7c, 0x3f, 0x22, 0x95, 0x08, 0x89, 0x07, 0x8c, + 0xc3, 0xdf, 0x76, 0x22, 0x54, 0xaf, 0x44, 0x4b, 0xab, 0xc1, 0x22, 0xdb, 0x8c, 0x18, 0xd0, 0x9a, + 0xa7, 0xe8, 0x90, 0xc2, 0x21, 0xb3, 0x80, 0xd6, 0x1c, 0x9e, 0x0e, 0x68, 0x2d, 0x55, 0xd0, 0x1e, + 0xc0, 0xb9, 0xac, 0x8e, 0xc5, 0x44, 0x58, 0xe5, 0xb4, 0x22, 0xec, 0x77, 0xf2, 0xb0, 0x82, 0xd4, + 0xc4, 0x29, 0xac, 0xc3, 0xaa, 0x35, 0x7d, 0x33, 0x8c, 0xf6, 0x24, 0x4e, 0x63, 0x6c, 0x5f, 0x20, + 0x17, 0xc8, 0x4f, 0x5b, 0xb1, 0x1a, 0xc4, 0x80, 0x35, 0x71, 0x13, 0xec, 0x0a, 0x0b, 0xf4, 0x30, + 0x96, 0xb4, 0x88, 0x58, 0x98, 0xce, 0xd4, 0x9a, 0xa8, 0x14, 0xdd, 0x07, 0xf9, 0x67, 0xb9, 0x0f, + 0x0a, 0xa7, 0xba, 0x0f, 0x1e, 0xc1, 0x8a, 0xf8, 0x1a, 0x9e, 0xe4, 0x0b, 0xef, 0xed, 0x24, 0x8f, + 0x11, 0x23, 0xf5, 0xf0, 0x44, 0x5f, 0x9c, 0x7b, 0xa2, 0xe3, 0x7b, 0xa1, 0xd8, 0x65, 0x23, 0x84, + 0xa5, 0x0f, 0x76, 0x4c, 0x65, 0xb8, 0x5b, 0x69, 0xff, 0x14, 0xb7, 0xe4, 0xab, 0xb0, 0x5c, 0xf7, + 0xc5, 0x53, 0x91, 0xa4, 0xa3, 0x1f, 0x08, 0xa0, 0xcc, 0x2e, 0x84, 0x98, 0xe1, 0xed, 0x96, 0x7f, + 0x3f, 0x6e, 0xb7, 0x37, 0x00, 0xb8, 0x6b, 0x43, 0x94, 0x82, 0x0c, 0xb7, 0x8c, 0x88, 0x74, 0x11, + 0x7f, 0x2a, 0x90, 0x90, 0xe9, 0xe9, 0xc4, 0xad, 0x50, 0xf4, 0x5e, 0xcf, 0x9f, 0x0e, 0x27, 0xb1, + 0x9c, 0xbd, 0xc2, 0x13, 0xd2, 0xe1, 0x65, 0xf2, 0xf1, 0x90, 0xa8, 0xf6, 0xfe, 0x4e, 0x08, 0xf9, + 0x74, 0x68, 0x44, 0xb7, 0x34, 0x6f, 0x84, 0xb4, 0xd4, 0x08, 0xcd, 0x34, 0x9d, 0xd3, 0x7e, 0xa0, + 0xc8, 0x81, 0xfc, 0x7f, 0x8a, 0xa9, 0x7e, 0x1d, 0x20, 0x7c, 0xab, 0x17, 0x73, 0xcd, 0xe4, 0xa5, + 0x10, 0x2a, 0x8f, 0x72, 0x84, 0x2b, 0xf5, 0x26, 0xff, 0x7e, 0xf5, 0xa6, 0x03, 0xa5, 0xd6, 0x97, + 0x27, 0x4e, 0x64, 0xdc, 0x01, 0x56, 0xc8, 0xc9, 0xe2, 0xc9, 0x94, 0xdf, 0xbe, 0x89, 0x77, 0x43, + 0xc4, 0x07, 0xcf, 0x60, 0x81, 0xa5, 0x8a, 0xda, 0x9f, 0x29, 0xb0, 0x2e, 0xbb, 0x6f, 0x3f, 0x19, + 0xf6, 0xc8, 0x27, 0x58, 0x5c, 0x51, 0x25, 0x26, 0xb2, 0x48, 0x48, 0xf4, 0xc8, 0x7d, 0x32, 0xec, + 0x31, 0x06, 0xc8, 0x79, 0x2c, 0x37, 0x96, 0x56, 0x24, 0x6f, 0xc2, 0x4a, 0xdb, 0x1f, 0x0c, 0x28, + 0x5b, 0x33, 0x7e, 0x8b, 0x0b, 0x00, 0x94, 0x50, 0xf2, 0xc5, 0x40, 0x34, 0x68, 0xfb, 0x05, 0x2e, + 0xe7, 0x5e, 0x1c, 0xd1, 0xf3, 0xde, 0xe3, 0xf5, 0x22, 0xb2, 0x6f, 0xa3, 0xbf, 0x95, 0x4c, 0x53, + 0xfb, 0x91, 0x02, 0x24, 0xdd, 0x24, 0xf9, 0xc8, 0x52, 0xfe, 0x17, 0x58, 0xd8, 0x04, 0xeb, 0x57, + 0x78, 0x16, 0xd6, 0xaf, 0xfc, 0xdb, 0x0a, 0xac, 0xd7, 0xf4, 0x06, 0x0f, 0xed, 0xcf, 0x1e, 0x36, + 0xae, 0xc3, 0x95, 0x9a, 0xde, 0xb0, 0xdb, 0xad, 0x7a, 0xad, 0xf2, 0xd0, 0xce, 0x8c, 0xd8, 0x7b, + 0x05, 0x9e, 0x4b, 0xa3, 0x44, 0x0f, 0x20, 0x97, 0x61, 0x33, 0x5d, 0x2c, 0xa2, 0xfa, 0x66, 0x57, + 0x16, 0x01, 0x80, 0xf3, 0xe5, 0x4f, 0xc2, 0xba, 0x88, 0x60, 0xdb, 0xa9, 0x5b, 0x18, 0x23, 0x7f, + 0x1d, 0x4a, 0xfb, 0x86, 0x59, 0xdb, 0x79, 0x68, 0xef, 0x74, 0xeb, 0x75, 0xf5, 0x0c, 0x59, 0x85, + 0x65, 0x0e, 0xa8, 0xe8, 0xaa, 0x42, 0x56, 0xa0, 0x58, 0x6b, 0x5a, 0x46, 0xa5, 0x6b, 0x1a, 0x6a, + 0xae, 0xfc, 0x49, 0x58, 0x6b, 0x8f, 0xbd, 0xb7, 0x9c, 0x89, 0xfb, 0xc0, 0x7d, 0x82, 0xef, 0x17, + 0x4b, 0x90, 0x37, 0xf5, 0x03, 0xf5, 0x0c, 0x01, 0x58, 0x6c, 0x3f, 0xa8, 0x58, 0x77, 0xef, 0xaa, + 0x0a, 0x29, 0xc1, 0xd2, 0x6e, 0xa5, 0x6d, 0x3f, 0x68, 0x58, 0x6a, 0x8e, 0xfe, 0xd0, 0x0f, 0x2c, + 0xfc, 0x91, 0x2f, 0x7f, 0x18, 0x36, 0x90, 0x21, 0xa9, 0x7b, 0xc1, 0xc4, 0x1d, 0xba, 0x63, 0x6c, + 0xc3, 0x0a, 0x14, 0x2d, 0x97, 0x9e, 0x24, 0x13, 0x97, 0x35, 0xa0, 0x31, 0x1d, 0x4c, 0xbc, 0xd1, + 0xc0, 0xfd, 0xaa, 0xaa, 0x94, 0xdf, 0x80, 0x75, 0xd3, 0x9f, 0x4e, 0xbc, 0xe1, 0x91, 0x35, 0xa1, + 0x18, 0x47, 0x4f, 0xc8, 0x79, 0xd8, 0xe8, 0x36, 0xf5, 0xc6, 0x76, 0x6d, 0xb7, 0xdb, 0xea, 0x5a, + 0x76, 0x43, 0xef, 0x54, 0xf6, 0xd8, 0xeb, 0x49, 0xa3, 0x65, 0x75, 0x6c, 0xd3, 0xa8, 0x18, 0xcd, + 0x8e, 0xaa, 0x94, 0xbf, 0x85, 0xba, 0x95, 0x9e, 0x3f, 0xec, 0xef, 0x38, 0xbd, 0x89, 0x3f, 0xc6, + 0x06, 0x6b, 0x70, 0xd5, 0x32, 0x2a, 0xad, 0x66, 0xd5, 0xde, 0xd1, 0x2b, 0x9d, 0x96, 0x99, 0x15, + 0x32, 0xfa, 0x12, 0x5c, 0xc8, 0xc0, 0x69, 0x75, 0xda, 0xaa, 0x42, 0xae, 0xc1, 0x56, 0x46, 0xd9, + 0x81, 0xb1, 0xad, 0x77, 0x3b, 0x7b, 0x4d, 0x35, 0x37, 0xa3, 0xb2, 0x65, 0xb5, 0xd4, 0x7c, 0xf9, + 0xd7, 0x15, 0x58, 0xeb, 0x06, 0xdc, 0x74, 0xb9, 0x8b, 0x5e, 0x8b, 0xcf, 0xc3, 0xe5, 0xae, 0x65, + 0x98, 0x76, 0xa7, 0xf5, 0xc0, 0x68, 0xda, 0x5d, 0x4b, 0xdf, 0x4d, 0xb6, 0xe6, 0x1a, 0x6c, 0x49, + 0x18, 0xa6, 0x51, 0x69, 0xed, 0x1b, 0xa6, 0xdd, 0xd6, 0x2d, 0xeb, 0xa0, 0x65, 0x56, 0x55, 0x85, + 0x7e, 0x31, 0x03, 0xa1, 0xb1, 0xa3, 0xb3, 0xd6, 0xc4, 0xca, 0x9a, 0xc6, 0x81, 0x5e, 0xb7, 0xb7, + 0x5b, 0x1d, 0x35, 0x5f, 0x6e, 0xd0, 0xfb, 0x1d, 0x03, 0xb7, 0x32, 0x83, 0xbb, 0x22, 0x14, 0x9a, + 0xad, 0xa6, 0x91, 0x7c, 0x73, 0x5b, 0x81, 0xa2, 0xde, 0x6e, 0x9b, 0xad, 0x7d, 0x5c, 0x62, 0x00, + 0x8b, 0x55, 0xa3, 0x49, 0x5b, 0x96, 0xa7, 0x25, 0x6d, 0xb3, 0xd5, 0x68, 0x75, 0x8c, 0xaa, 0x5a, + 0x28, 0x9b, 0x62, 0x0b, 0x0b, 0xa2, 0x3d, 0x9f, 0x3d, 0x70, 0x55, 0x8d, 0x1d, 0xbd, 0x5b, 0xef, + 0xf0, 0x29, 0x7a, 0x68, 0x9b, 0xc6, 0xa7, 0xbb, 0x86, 0xd5, 0xb1, 0x54, 0x85, 0xa8, 0xb0, 0xd2, + 0x34, 0x8c, 0xaa, 0x65, 0x9b, 0xc6, 0x7e, 0xcd, 0x38, 0x50, 0x73, 0x94, 0x26, 0xfb, 0x9f, 0x7e, + 0xa1, 0xfc, 0x5d, 0x05, 0x08, 0x0b, 0x7a, 0x2b, 0x32, 0xa9, 0xe0, 0x8a, 0xb9, 0x0a, 0x97, 0xf6, + 0xe8, 0x54, 0x63, 0xd7, 0x1a, 0xad, 0x6a, 0x72, 0xc8, 0x2e, 0x00, 0x49, 0x94, 0xb7, 0x76, 0x76, + 0x54, 0x85, 0x6c, 0xc1, 0xd9, 0x04, 0xbc, 0x6a, 0xb6, 0xda, 0x6a, 0xee, 0x52, 0xae, 0xa8, 0x90, + 0x8b, 0xa9, 0xc2, 0x07, 0x86, 0xd1, 0x56, 0xf3, 0x74, 0x8a, 0x12, 0x05, 0x62, 0x4b, 0xb0, 0xea, + 0x85, 0xf2, 0x37, 0x14, 0xb8, 0xc0, 0x9a, 0x29, 0xf6, 0x57, 0xd8, 0xd4, 0xcb, 0xb0, 0xc9, 0x43, + 0x79, 0x67, 0x35, 0xf4, 0x1c, 0xa8, 0xb1, 0x52, 0xd6, 0xcc, 0xf3, 0xb0, 0x11, 0x83, 0x62, 0x3b, + 0x72, 0xf4, 0xf4, 0x88, 0x81, 0xb7, 0x0d, 0xab, 0x63, 0x1b, 0x3b, 0x3b, 0x2d, 0xb3, 0xc3, 0x1a, + 0x92, 0x2f, 0x6b, 0xb0, 0x51, 0x71, 0xc7, 0x13, 0x2a, 0x7a, 0x0d, 0x03, 0xcf, 0x1f, 0x62, 0x13, + 0x56, 0x61, 0xd9, 0xf8, 0x4c, 0xc7, 0x68, 0x5a, 0xb5, 0x56, 0x53, 0x3d, 0x53, 0xbe, 0x9c, 0xc0, + 0x11, 0xfb, 0xd8, 0xb2, 0xf6, 0xd4, 0x33, 0x65, 0x07, 0x56, 0x85, 0x91, 0x30, 0x5b, 0x15, 0x57, + 0xe1, 0x92, 0x58, 0x6b, 0x78, 0xa2, 0x24, 0xbb, 0xb0, 0x09, 0xe7, 0xd2, 0xe5, 0x46, 0x47, 0x55, + 0xe8, 0x2c, 0x24, 0x4a, 0x28, 0x3c, 0x57, 0xfe, 0x55, 0x05, 0x56, 0xc3, 0x47, 0x13, 0x54, 0xd3, + 0x5e, 0x83, 0xad, 0xc6, 0x8e, 0x6e, 0x57, 0x8d, 0xfd, 0x5a, 0xc5, 0xb0, 0x1f, 0xd4, 0x9a, 0xd5, + 0xc4, 0x47, 0x9e, 0x83, 0xf3, 0x19, 0x08, 0xf8, 0x95, 0x4d, 0x38, 0x97, 0x2c, 0xea, 0xd0, 0xad, + 0x9a, 0xa3, 0x43, 0x9f, 0x2c, 0x09, 0xf7, 0x69, 0xbe, 0xbc, 0x0f, 0x6b, 0x96, 0xde, 0xa8, 0xef, + 0xf8, 0xe3, 0x9e, 0xab, 0x4f, 0x27, 0xc7, 0x43, 0xb2, 0x05, 0x17, 0x77, 0x5a, 0x66, 0xc5, 0xb0, + 0x11, 0x25, 0xd1, 0x82, 0xb3, 0xb0, 0x2e, 0x17, 0x3e, 0x34, 0xe8, 0xf2, 0x25, 0xb0, 0x26, 0x03, + 0x9b, 0x2d, 0x35, 0x57, 0xfe, 0x1c, 0xac, 0xc4, 0x12, 0xaa, 0x5d, 0x84, 0xb3, 0xf2, 0xef, 0xb6, + 0x3b, 0xec, 0x7b, 0xc3, 0x23, 0xf5, 0x4c, 0xb2, 0xc0, 0x9c, 0x0e, 0x87, 0xb4, 0x00, 0xf7, 0xb3, + 0x5c, 0xd0, 0x71, 0xc7, 0x27, 0xde, 0xd0, 0x99, 0xb8, 0x7d, 0x35, 0x57, 0x7e, 0x19, 0x56, 0x63, + 0x61, 0x9c, 0xe9, 0xc4, 0xd5, 0x5b, 0xfc, 0x00, 0x6e, 0x18, 0xd5, 0x5a, 0xb7, 0xa1, 0x2e, 0xd0, + 0x9d, 0xbc, 0x57, 0xdb, 0xdd, 0x53, 0xa1, 0xfc, 0x6d, 0x85, 0xca, 0x19, 0x98, 0x9c, 0xa5, 0xb1, + 0xa3, 0x8b, 0xa9, 0xa6, 0xcb, 0x8c, 0x05, 0x87, 0x37, 0x2c, 0x8b, 0x3d, 0x35, 0x5f, 0x86, 0x4d, + 0xfe, 0xc3, 0xd6, 0x9b, 0x55, 0x7b, 0x4f, 0x37, 0xab, 0x07, 0xba, 0x49, 0xd7, 0xde, 0x43, 0x35, + 0x87, 0x1b, 0x4a, 0x82, 0xd8, 0x9d, 0x56, 0xb7, 0xb2, 0xa7, 0xe6, 0xe9, 0xfa, 0x8d, 0xc1, 0xdb, + 0xb5, 0xa6, 0x5a, 0xc0, 0xed, 0x99, 0xc2, 0x46, 0xb2, 0xb4, 0x7c, 0xa1, 0xfc, 0xae, 0x02, 0x17, + 0x2d, 0xef, 0x68, 0xe8, 0x4c, 0xa6, 0x63, 0x57, 0x1f, 0x1c, 0xf9, 0x63, 0x6f, 0x72, 0x7c, 0x62, + 0x4d, 0xbd, 0x89, 0x4b, 0xee, 0xc0, 0x4d, 0xab, 0xb6, 0xdb, 0xd4, 0x3b, 0x74, 0x7b, 0xe9, 0xf5, + 0xdd, 0x96, 0x59, 0xeb, 0xec, 0x35, 0x6c, 0xab, 0x5b, 0x4b, 0xad, 0xbc, 0x1b, 0xf0, 0xfc, 0x6c, + 0xd4, 0xba, 0xb1, 0xab, 0x57, 0x1e, 0xaa, 0xca, 0x7c, 0x82, 0xdb, 0x7a, 0x5d, 0x6f, 0x56, 0x8c, + 0xaa, 0xbd, 0x7f, 0x57, 0xcd, 0x91, 0x9b, 0x70, 0x7d, 0x36, 0xea, 0x4e, 0xad, 0x6d, 0x51, 0xb4, + 0xfc, 0xfc, 0xef, 0xee, 0x59, 0x0d, 0x8a, 0x55, 0x28, 0xff, 0xa1, 0x02, 0x9b, 0xb3, 0x62, 0xf9, + 0x90, 0x5b, 0xa0, 0x19, 0xcd, 0x8e, 0xa9, 0xd7, 0xaa, 0x76, 0xc5, 0x34, 0xaa, 0x46, 0xb3, 0x53, + 0xd3, 0xeb, 0x96, 0x6d, 0xb5, 0xba, 0x74, 0x35, 0x45, 0x16, 0x01, 0x2f, 0xc0, 0xb5, 0x39, 0x78, + 0xad, 0x5a, 0xb5, 0xa2, 0x2a, 0xe4, 0x2e, 0xbc, 0x34, 0x07, 0xc9, 0x7a, 0x68, 0x75, 0x8c, 0x86, + 0x5c, 0xa2, 0xe6, 0xca, 0x15, 0xb8, 0x34, 0x3b, 0xd8, 0x07, 0x3d, 0xa6, 0xe3, 0x23, 0x5d, 0x84, + 0x42, 0x95, 0xde, 0x0c, 0xb1, 0x1c, 0x02, 0x65, 0x0f, 0xd4, 0xa4, 0xbf, 0x7e, 0xca, 0x74, 0xc3, + 0xec, 0x36, 0x9b, 0xec, 0x1a, 0x59, 0x87, 0x52, 0xab, 0xb3, 0x67, 0x98, 0x3c, 0x0b, 0x03, 0xa6, + 0x5d, 0xe8, 0x36, 0xe9, 0xc6, 0x69, 0x99, 0xb5, 0xcf, 0xe2, 0x7d, 0xb2, 0x09, 0xe7, 0xac, 0xba, + 0x5e, 0x79, 0x60, 0x37, 0x5b, 0x1d, 0xbb, 0xd6, 0xb4, 0x2b, 0x7b, 0x7a, 0xb3, 0x69, 0xd4, 0x55, + 0xc0, 0xc1, 0x9c, 0xe5, 0xa3, 0x47, 0x3e, 0x08, 0xb7, 0x5b, 0x0f, 0x3a, 0xba, 0xdd, 0xae, 0x77, + 0x77, 0x6b, 0x4d, 0xdb, 0x7a, 0xd8, 0xac, 0x08, 0xde, 0xa7, 0x92, 0x3e, 0x72, 0x6f, 0xc3, 0x8d, + 0xb9, 0xd8, 0x51, 0xbe, 0x84, 0x5b, 0xa0, 0xcd, 0xc5, 0xe4, 0x1d, 0x29, 0xff, 0x50, 0x81, 0xad, + 0x39, 0x6f, 0xc8, 0xe4, 0x25, 0xb8, 0xb3, 0x67, 0xe8, 0xd5, 0xba, 0x61, 0x59, 0x78, 0x50, 0xd0, + 0x69, 0x60, 0x26, 0x1e, 0x99, 0x07, 0xea, 0x1d, 0xb8, 0x39, 0x1f, 0x3d, 0xba, 0x9a, 0x6f, 0xc3, + 0x8d, 0xf9, 0xa8, 0xfc, 0xaa, 0xce, 0x91, 0x32, 0xdc, 0x9a, 0x8f, 0x19, 0x5e, 0xf1, 0xf9, 0xf2, + 0x6f, 0x2a, 0x70, 0x21, 0x5b, 0x91, 0x43, 0xdb, 0x56, 0x6b, 0x5a, 0x1d, 0xbd, 0x5e, 0xb7, 0xdb, + 0xba, 0xa9, 0x37, 0x6c, 0xa3, 0x69, 0xb6, 0xea, 0xf5, 0xac, 0xab, 0xed, 0x06, 0x3c, 0x3f, 0x1b, + 0xd5, 0xaa, 0x98, 0xb5, 0x36, 0x3d, 0xbd, 0x35, 0xb8, 0x3a, 0x1b, 0xcb, 0xa8, 0x55, 0x0c, 0x35, + 0xb7, 0xfd, 0xf1, 0xef, 0xff, 0xd3, 0xd5, 0x33, 0xdf, 0x7f, 0xf7, 0xaa, 0xf2, 0xa3, 0x77, 0xaf, + 0x2a, 0xff, 0xf8, 0xee, 0x55, 0xe5, 0xb3, 0x2f, 0x9e, 0x2e, 0xd5, 0x10, 0xf2, 0xfd, 0x6f, 0x2e, + 0xa2, 0x84, 0xf2, 0xca, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x55, 0x5f, 0x33, 0x7e, 0xb9, + 0x01, 0x00, } func (this *PluginSpecV1) Equal(that interface{}) bool { diff --git a/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go b/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go index 8a98f361de6b8..2881a78ef2e0f 100644 --- a/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go +++ b/gen/proto/go/teleport/lib/teleterm/v1/tshd_events_service.pb.go @@ -427,16 +427,19 @@ func (x *CannotProxyGatewayConnection) GetError() string { } // CannotProxyVnetConnection describes which app couldn't have been proxied through VNet and why. -// At the moment this is used solely when refreshing an expired cert. type CannotProxyVnetConnection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TargetUri string `protobuf:"bytes,1,opt,name=target_uri,json=targetUri,proto3" json:"target_uri,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // route_to_app is the metadata associated with the app that the user was trying to reach. RouteToApp *RouteToApp `protobuf:"bytes,4,opt,name=route_to_app,json=routeToApp,proto3" json:"route_to_app,omitempty"` + // Types that are assignable to Reason: + // + // *CannotProxyVnetConnection_CertReissueError + // *CannotProxyVnetConnection_InvalidLocalPort + Reason isCannotProxyVnetConnection_Reason `protobuf_oneof:"reason"` } func (x *CannotProxyVnetConnection) Reset() { @@ -476,16 +479,143 @@ func (x *CannotProxyVnetConnection) GetTargetUri() string { return "" } -func (x *CannotProxyVnetConnection) GetError() string { +func (x *CannotProxyVnetConnection) GetRouteToApp() *RouteToApp { + if x != nil { + return x.RouteToApp + } + return nil +} + +func (m *CannotProxyVnetConnection) GetReason() isCannotProxyVnetConnection_Reason { + if m != nil { + return m.Reason + } + return nil +} + +func (x *CannotProxyVnetConnection) GetCertReissueError() *CertReissueError { + if x, ok := x.GetReason().(*CannotProxyVnetConnection_CertReissueError); ok { + return x.CertReissueError + } + return nil +} + +func (x *CannotProxyVnetConnection) GetInvalidLocalPort() *InvalidLocalPort { + if x, ok := x.GetReason().(*CannotProxyVnetConnection_InvalidLocalPort); ok { + return x.InvalidLocalPort + } + return nil +} + +type isCannotProxyVnetConnection_Reason interface { + isCannotProxyVnetConnection_Reason() +} + +type CannotProxyVnetConnection_CertReissueError struct { + CertReissueError *CertReissueError `protobuf:"bytes,5,opt,name=cert_reissue_error,json=certReissueError,proto3,oneof"` +} + +type CannotProxyVnetConnection_InvalidLocalPort struct { + InvalidLocalPort *InvalidLocalPort `protobuf:"bytes,6,opt,name=invalid_local_port,json=invalidLocalPort,proto3,oneof"` +} + +func (*CannotProxyVnetConnection_CertReissueError) isCannotProxyVnetConnection_Reason() {} + +func (*CannotProxyVnetConnection_InvalidLocalPort) isCannotProxyVnetConnection_Reason() {} + +// CertReissueError is sent as reason in CannotProxyVnetConnection when VNet wasn't able to reissue +// a cert for a local proxy. +type CertReissueError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *CertReissueError) Reset() { + *x = CertReissueError{} + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CertReissueError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CertReissueError) ProtoMessage() {} + +func (x *CertReissueError) ProtoReflect() protoreflect.Message { + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CertReissueError.ProtoReflect.Descriptor instead. +func (*CertReissueError) Descriptor() ([]byte, []int) { + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{7} +} + +func (x *CertReissueError) GetError() string { if x != nil { return x.Error } return "" } -func (x *CannotProxyVnetConnection) GetRouteToApp() *RouteToApp { +// InvalidLocalPort is sent as reason in CannotProxyVnetConnection when VNet refused a connection +// because its local port did not match any TCP ports in the spec of the app. The port is included +// in route_to_app as target_port. +type InvalidLocalPort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // tcp_ports represents valid port ranges for the app. Sent only if there's less than 10 port + // ranges to keep the UI clean and to limit how much data is sent on each failed attempt. + TcpPorts []*PortRange `protobuf:"bytes,1,rep,name=tcp_ports,json=tcpPorts,proto3" json:"tcp_ports,omitempty"` +} + +func (x *InvalidLocalPort) Reset() { + *x = InvalidLocalPort{} + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InvalidLocalPort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvalidLocalPort) ProtoMessage() {} + +func (x *InvalidLocalPort) ProtoReflect() protoreflect.Message { + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[8] if x != nil { - return x.RouteToApp + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InvalidLocalPort.ProtoReflect.Descriptor instead. +func (*InvalidLocalPort) Descriptor() ([]byte, []int) { + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{8} +} + +func (x *InvalidLocalPort) GetTcpPorts() []*PortRange { + if x != nil { + return x.TcpPorts } return nil } @@ -499,7 +629,7 @@ type SendNotificationResponse struct { func (x *SendNotificationResponse) Reset() { *x = SendNotificationResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[7] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -511,7 +641,7 @@ func (x *SendNotificationResponse) String() string { func (*SendNotificationResponse) ProtoMessage() {} func (x *SendNotificationResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[7] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -524,7 +654,7 @@ func (x *SendNotificationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendNotificationResponse.ProtoReflect.Descriptor instead. func (*SendNotificationResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{7} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{9} } // Request for SendPendingHeadlessAuthentication. @@ -540,7 +670,7 @@ type SendPendingHeadlessAuthenticationRequest struct { func (x *SendPendingHeadlessAuthenticationRequest) Reset() { *x = SendPendingHeadlessAuthenticationRequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[8] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -552,7 +682,7 @@ func (x *SendPendingHeadlessAuthenticationRequest) String() string { func (*SendPendingHeadlessAuthenticationRequest) ProtoMessage() {} func (x *SendPendingHeadlessAuthenticationRequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[8] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -565,7 +695,7 @@ func (x *SendPendingHeadlessAuthenticationRequest) ProtoReflect() protoreflect.M // Deprecated: Use SendPendingHeadlessAuthenticationRequest.ProtoReflect.Descriptor instead. func (*SendPendingHeadlessAuthenticationRequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{8} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{10} } func (x *SendPendingHeadlessAuthenticationRequest) GetRootClusterUri() string { @@ -598,7 +728,7 @@ type SendPendingHeadlessAuthenticationResponse struct { func (x *SendPendingHeadlessAuthenticationResponse) Reset() { *x = SendPendingHeadlessAuthenticationResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[9] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -610,7 +740,7 @@ func (x *SendPendingHeadlessAuthenticationResponse) String() string { func (*SendPendingHeadlessAuthenticationResponse) ProtoMessage() {} func (x *SendPendingHeadlessAuthenticationResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[9] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -623,7 +753,7 @@ func (x *SendPendingHeadlessAuthenticationResponse) ProtoReflect() protoreflect. // Deprecated: Use SendPendingHeadlessAuthenticationResponse.ProtoReflect.Descriptor instead. func (*SendPendingHeadlessAuthenticationResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{9} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{11} } // Request for PromptMFA. @@ -641,7 +771,7 @@ type PromptMFARequest struct { func (x *PromptMFARequest) Reset() { *x = PromptMFARequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[10] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -653,7 +783,7 @@ func (x *PromptMFARequest) String() string { func (*PromptMFARequest) ProtoMessage() {} func (x *PromptMFARequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[10] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -666,7 +796,7 @@ func (x *PromptMFARequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptMFARequest.ProtoReflect.Descriptor instead. func (*PromptMFARequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{10} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{12} } func (x *PromptMFARequest) GetReason() string { @@ -718,7 +848,7 @@ type SSOChallenge struct { func (x *SSOChallenge) Reset() { *x = SSOChallenge{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[11] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -730,7 +860,7 @@ func (x *SSOChallenge) String() string { func (*SSOChallenge) ProtoMessage() {} func (x *SSOChallenge) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[11] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -743,7 +873,7 @@ func (x *SSOChallenge) ProtoReflect() protoreflect.Message { // Deprecated: Use SSOChallenge.ProtoReflect.Descriptor instead. func (*SSOChallenge) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{11} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{13} } func (x *SSOChallenge) GetConnectorId() string { @@ -785,7 +915,7 @@ type PromptMFAResponse struct { func (x *PromptMFAResponse) Reset() { *x = PromptMFAResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[12] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -797,7 +927,7 @@ func (x *PromptMFAResponse) String() string { func (*PromptMFAResponse) ProtoMessage() {} func (x *PromptMFAResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[12] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -810,7 +940,7 @@ func (x *PromptMFAResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptMFAResponse.ProtoReflect.Descriptor instead. func (*PromptMFAResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{12} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{14} } func (x *PromptMFAResponse) GetTotpCode() string { @@ -833,7 +963,7 @@ type PromptHardwareKeyPINRequest struct { func (x *PromptHardwareKeyPINRequest) Reset() { *x = PromptHardwareKeyPINRequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[13] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -845,7 +975,7 @@ func (x *PromptHardwareKeyPINRequest) String() string { func (*PromptHardwareKeyPINRequest) ProtoMessage() {} func (x *PromptHardwareKeyPINRequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[13] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -858,7 +988,7 @@ func (x *PromptHardwareKeyPINRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptHardwareKeyPINRequest.ProtoReflect.Descriptor instead. func (*PromptHardwareKeyPINRequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{13} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{15} } func (x *PromptHardwareKeyPINRequest) GetRootClusterUri() string { @@ -887,7 +1017,7 @@ type PromptHardwareKeyPINResponse struct { func (x *PromptHardwareKeyPINResponse) Reset() { *x = PromptHardwareKeyPINResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[14] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -899,7 +1029,7 @@ func (x *PromptHardwareKeyPINResponse) String() string { func (*PromptHardwareKeyPINResponse) ProtoMessage() {} func (x *PromptHardwareKeyPINResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[14] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -912,7 +1042,7 @@ func (x *PromptHardwareKeyPINResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptHardwareKeyPINResponse.ProtoReflect.Descriptor instead. func (*PromptHardwareKeyPINResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{14} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{16} } func (x *PromptHardwareKeyPINResponse) GetPin() string { @@ -933,7 +1063,7 @@ type PromptHardwareKeyTouchRequest struct { func (x *PromptHardwareKeyTouchRequest) Reset() { *x = PromptHardwareKeyTouchRequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[15] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -945,7 +1075,7 @@ func (x *PromptHardwareKeyTouchRequest) String() string { func (*PromptHardwareKeyTouchRequest) ProtoMessage() {} func (x *PromptHardwareKeyTouchRequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[15] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -958,7 +1088,7 @@ func (x *PromptHardwareKeyTouchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptHardwareKeyTouchRequest.ProtoReflect.Descriptor instead. func (*PromptHardwareKeyTouchRequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{15} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{17} } func (x *PromptHardwareKeyTouchRequest) GetRootClusterUri() string { @@ -977,7 +1107,7 @@ type PromptHardwareKeyTouchResponse struct { func (x *PromptHardwareKeyTouchResponse) Reset() { *x = PromptHardwareKeyTouchResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[16] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -989,7 +1119,7 @@ func (x *PromptHardwareKeyTouchResponse) String() string { func (*PromptHardwareKeyTouchResponse) ProtoMessage() {} func (x *PromptHardwareKeyTouchResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[16] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1002,7 +1132,7 @@ func (x *PromptHardwareKeyTouchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptHardwareKeyTouchResponse.ProtoReflect.Descriptor instead. func (*PromptHardwareKeyTouchResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{16} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{18} } // Response for PromptHardwareKeyPINChange. @@ -1016,7 +1146,7 @@ type PromptHardwareKeyPINChangeRequest struct { func (x *PromptHardwareKeyPINChangeRequest) Reset() { *x = PromptHardwareKeyPINChangeRequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[17] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1028,7 +1158,7 @@ func (x *PromptHardwareKeyPINChangeRequest) String() string { func (*PromptHardwareKeyPINChangeRequest) ProtoMessage() {} func (x *PromptHardwareKeyPINChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[17] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1041,7 +1171,7 @@ func (x *PromptHardwareKeyPINChangeRequest) ProtoReflect() protoreflect.Message // Deprecated: Use PromptHardwareKeyPINChangeRequest.ProtoReflect.Descriptor instead. func (*PromptHardwareKeyPINChangeRequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{17} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{19} } func (x *PromptHardwareKeyPINChangeRequest) GetRootClusterUri() string { @@ -1068,7 +1198,7 @@ type PromptHardwareKeyPINChangeResponse struct { func (x *PromptHardwareKeyPINChangeResponse) Reset() { *x = PromptHardwareKeyPINChangeResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[18] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1080,7 +1210,7 @@ func (x *PromptHardwareKeyPINChangeResponse) String() string { func (*PromptHardwareKeyPINChangeResponse) ProtoMessage() {} func (x *PromptHardwareKeyPINChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[18] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1093,7 +1223,7 @@ func (x *PromptHardwareKeyPINChangeResponse) ProtoReflect() protoreflect.Message // Deprecated: Use PromptHardwareKeyPINChangeResponse.ProtoReflect.Descriptor instead. func (*PromptHardwareKeyPINChangeResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{18} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{20} } func (x *PromptHardwareKeyPINChangeResponse) GetPin() string { @@ -1130,7 +1260,7 @@ type ConfirmHardwareKeySlotOverwriteRequest struct { func (x *ConfirmHardwareKeySlotOverwriteRequest) Reset() { *x = ConfirmHardwareKeySlotOverwriteRequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[19] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1142,7 +1272,7 @@ func (x *ConfirmHardwareKeySlotOverwriteRequest) String() string { func (*ConfirmHardwareKeySlotOverwriteRequest) ProtoMessage() {} func (x *ConfirmHardwareKeySlotOverwriteRequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[19] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1155,7 +1285,7 @@ func (x *ConfirmHardwareKeySlotOverwriteRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use ConfirmHardwareKeySlotOverwriteRequest.ProtoReflect.Descriptor instead. func (*ConfirmHardwareKeySlotOverwriteRequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{19} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{21} } func (x *ConfirmHardwareKeySlotOverwriteRequest) GetRootClusterUri() string { @@ -1184,7 +1314,7 @@ type ConfirmHardwareKeySlotOverwriteResponse struct { func (x *ConfirmHardwareKeySlotOverwriteResponse) Reset() { *x = ConfirmHardwareKeySlotOverwriteResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[20] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1196,7 +1326,7 @@ func (x *ConfirmHardwareKeySlotOverwriteResponse) String() string { func (*ConfirmHardwareKeySlotOverwriteResponse) ProtoMessage() {} func (x *ConfirmHardwareKeySlotOverwriteResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[20] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1209,7 +1339,7 @@ func (x *ConfirmHardwareKeySlotOverwriteResponse) ProtoReflect() protoreflect.Me // Deprecated: Use ConfirmHardwareKeySlotOverwriteResponse.ProtoReflect.Descriptor instead. func (*ConfirmHardwareKeySlotOverwriteResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{20} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{22} } func (x *ConfirmHardwareKeySlotOverwriteResponse) GetConfirmed() bool { @@ -1228,7 +1358,7 @@ type GetUsageReportingSettingsRequest struct { func (x *GetUsageReportingSettingsRequest) Reset() { *x = GetUsageReportingSettingsRequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[21] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1240,7 +1370,7 @@ func (x *GetUsageReportingSettingsRequest) String() string { func (*GetUsageReportingSettingsRequest) ProtoMessage() {} func (x *GetUsageReportingSettingsRequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[21] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1253,7 +1383,7 @@ func (x *GetUsageReportingSettingsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsageReportingSettingsRequest.ProtoReflect.Descriptor instead. func (*GetUsageReportingSettingsRequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{21} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{23} } // Response for GetUsageReportingSettings. @@ -1267,7 +1397,7 @@ type GetUsageReportingSettingsResponse struct { func (x *GetUsageReportingSettingsResponse) Reset() { *x = GetUsageReportingSettingsResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[22] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1279,7 +1409,7 @@ func (x *GetUsageReportingSettingsResponse) String() string { func (*GetUsageReportingSettingsResponse) ProtoMessage() {} func (x *GetUsageReportingSettingsResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[22] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1292,7 +1422,7 @@ func (x *GetUsageReportingSettingsResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetUsageReportingSettingsResponse.ProtoReflect.Descriptor instead. func (*GetUsageReportingSettingsResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{22} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{24} } func (x *GetUsageReportingSettingsResponse) GetUsageReportingSettings() *UsageReportingSettings { @@ -1314,7 +1444,7 @@ type UsageReportingSettings struct { func (x *UsageReportingSettings) Reset() { *x = UsageReportingSettings{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[23] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1326,7 +1456,7 @@ func (x *UsageReportingSettings) String() string { func (*UsageReportingSettings) ProtoMessage() {} func (x *UsageReportingSettings) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[23] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1339,7 +1469,7 @@ func (x *UsageReportingSettings) ProtoReflect() protoreflect.Message { // Deprecated: Use UsageReportingSettings.ProtoReflect.Descriptor instead. func (*UsageReportingSettings) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{23} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{25} } func (x *UsageReportingSettings) GetEnabled() bool { @@ -1362,7 +1492,7 @@ type ReportUnexpectedVnetShutdownRequest struct { func (x *ReportUnexpectedVnetShutdownRequest) Reset() { *x = ReportUnexpectedVnetShutdownRequest{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[24] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1374,7 +1504,7 @@ func (x *ReportUnexpectedVnetShutdownRequest) String() string { func (*ReportUnexpectedVnetShutdownRequest) ProtoMessage() {} func (x *ReportUnexpectedVnetShutdownRequest) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[24] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1387,7 +1517,7 @@ func (x *ReportUnexpectedVnetShutdownRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use ReportUnexpectedVnetShutdownRequest.ProtoReflect.Descriptor instead. func (*ReportUnexpectedVnetShutdownRequest) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{24} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{26} } func (x *ReportUnexpectedVnetShutdownRequest) GetError() string { @@ -1406,7 +1536,7 @@ type ReportUnexpectedVnetShutdownResponse struct { func (x *ReportUnexpectedVnetShutdownResponse) Reset() { *x = ReportUnexpectedVnetShutdownResponse{} - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[25] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1418,7 +1548,7 @@ func (x *ReportUnexpectedVnetShutdownResponse) String() string { func (*ReportUnexpectedVnetShutdownResponse) ProtoMessage() {} func (x *ReportUnexpectedVnetShutdownResponse) ProtoReflect() protoreflect.Message { - mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[25] + mi := &file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1431,7 +1561,7 @@ func (x *ReportUnexpectedVnetShutdownResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use ReportUnexpectedVnetShutdownResponse.ProtoReflect.Descriptor instead. func (*ReportUnexpectedVnetShutdownResponse) Descriptor() ([]byte, []int) { - return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{25} + return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP(), []int{27} } var File_teleport_lib_teleterm_v1_tshd_events_service_proto protoreflect.FileDescriptor @@ -1501,218 +1631,238 @@ var file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDesc = []byte{ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, + 0x72, 0x22, 0xe4, 0x02, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x56, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x6f, - 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, - 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x4a, 0x04, 0x08, 0x03, - 0x10, 0x04, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, - 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x28, - 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, - 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, - 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, - 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, - 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x49, 0x0a, 0x21, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x68, 0x65, 0x61, - 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x22, 0x2b, 0x0a, 0x29, 0x53, - 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, - 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x74, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x6f, 0x74, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x62, - 0x61, 0x75, 0x74, 0x68, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x65, 0x62, - 0x61, 0x75, 0x74, 0x68, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x38, 0x0a, 0x03, 0x73, 0x73, 0x6f, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x53, 0x4f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x73, 0x73, 0x6f, - 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x53, 0x53, 0x4f, - 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x30, 0x0a, 0x11, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x6a, 0x0a, 0x1b, 0x50, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, - 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, - 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x55, 0x72, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x30, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x49, 0x0a, 0x1d, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, - 0x75, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, - 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x55, 0x72, 0x69, 0x22, 0x20, 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x21, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, - 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x55, 0x72, 0x69, 0x22, 0x69, 0x0a, 0x22, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x10, 0x0a, - 0x03, 0x70, 0x75, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x75, 0x6b, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x75, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, - 0x22, 0x6c, 0x0a, 0x26, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, - 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x55, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, - 0x0a, 0x27, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x6a, 0x0a, 0x18, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x16, 0x75, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x32, 0x0a, - 0x16, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x22, 0x3b, 0x0a, 0x23, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x26, - 0x0a, 0x24, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x93, 0x0b, 0x0a, 0x11, 0x54, 0x73, 0x68, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x07, - 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, - 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x10, - 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xac, 0x01, 0x0a, 0x21, 0x53, 0x65, 0x6e, 0x64, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x46, + 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x6f, 0x41, 0x70, 0x70, 0x12, 0x5a, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x72, + 0x65, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, + 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x65, + 0x72, 0x74, 0x52, 0x65, 0x69, 0x73, 0x73, 0x75, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x69, 0x73, 0x73, 0x75, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x5a, 0x0a, 0x12, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x08, + 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, + 0x08, 0x03, 0x10, 0x04, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0x28, 0x0a, 0x10, 0x43, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x69, 0x73, 0x73, 0x75, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x22, 0x54, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x63, 0x70, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, + 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x28, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x43, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, - 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, - 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, - 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x4d, 0x46, 0x41, 0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, - 0x14, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, - 0x65, 0x79, 0x50, 0x49, 0x4e, 0x12, 0x35, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x6f, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1a, 0x68, + 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x18, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x21, 0x68, 0x65, 0x61, + 0x64, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x70, 0x22, 0x2b, 0x0a, 0x29, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x6f, 0x74, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x6f, + 0x74, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x12, 0x1f, + 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, + 0x38, 0x0a, 0x03, 0x73, 0x73, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x53, 0x4f, 0x43, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x73, 0x73, 0x6f, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, + 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, + 0x69, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x53, 0x53, 0x4f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, + 0x72, 0x6c, 0x22, 0x30, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x70, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x6a, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, + 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x69, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x22, 0x30, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, + 0x69, 0x6e, 0x22, 0x49, 0x0a, 0x1d, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, + 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x22, 0x20, 0x0a, + 0x1e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, + 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x4d, 0x0a, 0x21, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x22, 0x69, + 0x0a, 0x22, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x75, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x75, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x6b, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, + 0x75, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x6c, 0x0a, 0x26, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, + 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, + 0x6f, 0x6f, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x72, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x27, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, + 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, + 0x22, 0x22, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x18, 0x75, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x16, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x32, 0x0a, 0x16, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x3b, 0x0a, 0x23, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, + 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x26, 0x0a, 0x24, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, + 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0x93, 0x0b, 0x0a, 0x11, 0x54, 0x73, 0x68, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x12, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, + 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0xac, 0x01, 0x0a, 0x21, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x48, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x64, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x12, 0x2a, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, + 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x4d, 0x46, 0x41, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x12, 0x35, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, - 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x12, - 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x65, 0x79, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, + 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x12, 0x37, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x1a, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, + 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x38, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, - 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, - 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa6, 0x01, 0x0a, - 0x1f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x12, 0x40, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, - 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, - 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, - 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, - 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9d, 0x01, 0x0a, - 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3d, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, - 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, - 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x74, + 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x54, 0x6f, + 0x75, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x1a, + 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, + 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3b, 0x2e, 0x74, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4b, 0x65, 0x79, 0x50, 0x49, 0x4e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x1f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, + 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x40, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x4f, 0x76, 0x65, + 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, + 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, - 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, - 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x54, 0x5a, 0x52, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x74, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9d, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x6c, 0x69, 0x62, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x56, 0x6e, 0x65, 0x74, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x54, 0x5a, 0x52, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x31, + 0x3b, 0x74, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1727,7 +1877,7 @@ func file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescGZIP() []byt return file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDescData } -var file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_teleport_lib_teleterm_v1_tshd_events_service_proto_goTypes = []any{ (*ReloginRequest)(nil), // 0: teleport.lib.teleterm.v1.ReloginRequest (*GatewayCertExpired)(nil), // 1: teleport.lib.teleterm.v1.GatewayCertExpired @@ -1736,61 +1886,67 @@ var file_teleport_lib_teleterm_v1_tshd_events_service_proto_goTypes = []any{ (*SendNotificationRequest)(nil), // 4: teleport.lib.teleterm.v1.SendNotificationRequest (*CannotProxyGatewayConnection)(nil), // 5: teleport.lib.teleterm.v1.CannotProxyGatewayConnection (*CannotProxyVnetConnection)(nil), // 6: teleport.lib.teleterm.v1.CannotProxyVnetConnection - (*SendNotificationResponse)(nil), // 7: teleport.lib.teleterm.v1.SendNotificationResponse - (*SendPendingHeadlessAuthenticationRequest)(nil), // 8: teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationRequest - (*SendPendingHeadlessAuthenticationResponse)(nil), // 9: teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationResponse - (*PromptMFARequest)(nil), // 10: teleport.lib.teleterm.v1.PromptMFARequest - (*SSOChallenge)(nil), // 11: teleport.lib.teleterm.v1.SSOChallenge - (*PromptMFAResponse)(nil), // 12: teleport.lib.teleterm.v1.PromptMFAResponse - (*PromptHardwareKeyPINRequest)(nil), // 13: teleport.lib.teleterm.v1.PromptHardwareKeyPINRequest - (*PromptHardwareKeyPINResponse)(nil), // 14: teleport.lib.teleterm.v1.PromptHardwareKeyPINResponse - (*PromptHardwareKeyTouchRequest)(nil), // 15: teleport.lib.teleterm.v1.PromptHardwareKeyTouchRequest - (*PromptHardwareKeyTouchResponse)(nil), // 16: teleport.lib.teleterm.v1.PromptHardwareKeyTouchResponse - (*PromptHardwareKeyPINChangeRequest)(nil), // 17: teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeRequest - (*PromptHardwareKeyPINChangeResponse)(nil), // 18: teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeResponse - (*ConfirmHardwareKeySlotOverwriteRequest)(nil), // 19: teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteRequest - (*ConfirmHardwareKeySlotOverwriteResponse)(nil), // 20: teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteResponse - (*GetUsageReportingSettingsRequest)(nil), // 21: teleport.lib.teleterm.v1.GetUsageReportingSettingsRequest - (*GetUsageReportingSettingsResponse)(nil), // 22: teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse - (*UsageReportingSettings)(nil), // 23: teleport.lib.teleterm.v1.UsageReportingSettings - (*ReportUnexpectedVnetShutdownRequest)(nil), // 24: teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownRequest - (*ReportUnexpectedVnetShutdownResponse)(nil), // 25: teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownResponse - (*RouteToApp)(nil), // 26: teleport.lib.teleterm.v1.RouteToApp + (*CertReissueError)(nil), // 7: teleport.lib.teleterm.v1.CertReissueError + (*InvalidLocalPort)(nil), // 8: teleport.lib.teleterm.v1.InvalidLocalPort + (*SendNotificationResponse)(nil), // 9: teleport.lib.teleterm.v1.SendNotificationResponse + (*SendPendingHeadlessAuthenticationRequest)(nil), // 10: teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationRequest + (*SendPendingHeadlessAuthenticationResponse)(nil), // 11: teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationResponse + (*PromptMFARequest)(nil), // 12: teleport.lib.teleterm.v1.PromptMFARequest + (*SSOChallenge)(nil), // 13: teleport.lib.teleterm.v1.SSOChallenge + (*PromptMFAResponse)(nil), // 14: teleport.lib.teleterm.v1.PromptMFAResponse + (*PromptHardwareKeyPINRequest)(nil), // 15: teleport.lib.teleterm.v1.PromptHardwareKeyPINRequest + (*PromptHardwareKeyPINResponse)(nil), // 16: teleport.lib.teleterm.v1.PromptHardwareKeyPINResponse + (*PromptHardwareKeyTouchRequest)(nil), // 17: teleport.lib.teleterm.v1.PromptHardwareKeyTouchRequest + (*PromptHardwareKeyTouchResponse)(nil), // 18: teleport.lib.teleterm.v1.PromptHardwareKeyTouchResponse + (*PromptHardwareKeyPINChangeRequest)(nil), // 19: teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeRequest + (*PromptHardwareKeyPINChangeResponse)(nil), // 20: teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeResponse + (*ConfirmHardwareKeySlotOverwriteRequest)(nil), // 21: teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteRequest + (*ConfirmHardwareKeySlotOverwriteResponse)(nil), // 22: teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteResponse + (*GetUsageReportingSettingsRequest)(nil), // 23: teleport.lib.teleterm.v1.GetUsageReportingSettingsRequest + (*GetUsageReportingSettingsResponse)(nil), // 24: teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse + (*UsageReportingSettings)(nil), // 25: teleport.lib.teleterm.v1.UsageReportingSettings + (*ReportUnexpectedVnetShutdownRequest)(nil), // 26: teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownRequest + (*ReportUnexpectedVnetShutdownResponse)(nil), // 27: teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownResponse + (*RouteToApp)(nil), // 28: teleport.lib.teleterm.v1.RouteToApp + (*PortRange)(nil), // 29: teleport.lib.teleterm.v1.PortRange } var file_teleport_lib_teleterm_v1_tshd_events_service_proto_depIdxs = []int32{ 1, // 0: teleport.lib.teleterm.v1.ReloginRequest.gateway_cert_expired:type_name -> teleport.lib.teleterm.v1.GatewayCertExpired 2, // 1: teleport.lib.teleterm.v1.ReloginRequest.vnet_cert_expired:type_name -> teleport.lib.teleterm.v1.VnetCertExpired - 26, // 2: teleport.lib.teleterm.v1.VnetCertExpired.route_to_app:type_name -> teleport.lib.teleterm.v1.RouteToApp + 28, // 2: teleport.lib.teleterm.v1.VnetCertExpired.route_to_app:type_name -> teleport.lib.teleterm.v1.RouteToApp 5, // 3: teleport.lib.teleterm.v1.SendNotificationRequest.cannot_proxy_gateway_connection:type_name -> teleport.lib.teleterm.v1.CannotProxyGatewayConnection 6, // 4: teleport.lib.teleterm.v1.SendNotificationRequest.cannot_proxy_vnet_connection:type_name -> teleport.lib.teleterm.v1.CannotProxyVnetConnection - 26, // 5: teleport.lib.teleterm.v1.CannotProxyVnetConnection.route_to_app:type_name -> teleport.lib.teleterm.v1.RouteToApp - 11, // 6: teleport.lib.teleterm.v1.PromptMFARequest.sso:type_name -> teleport.lib.teleterm.v1.SSOChallenge - 23, // 7: teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse.usage_reporting_settings:type_name -> teleport.lib.teleterm.v1.UsageReportingSettings - 0, // 8: teleport.lib.teleterm.v1.TshdEventsService.Relogin:input_type -> teleport.lib.teleterm.v1.ReloginRequest - 4, // 9: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:input_type -> teleport.lib.teleterm.v1.SendNotificationRequest - 8, // 10: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:input_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationRequest - 10, // 11: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:input_type -> teleport.lib.teleterm.v1.PromptMFARequest - 13, // 12: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINRequest - 15, // 13: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchRequest - 17, // 14: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeRequest - 19, // 15: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:input_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteRequest - 21, // 16: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:input_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsRequest - 24, // 17: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:input_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownRequest - 3, // 18: teleport.lib.teleterm.v1.TshdEventsService.Relogin:output_type -> teleport.lib.teleterm.v1.ReloginResponse - 7, // 19: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:output_type -> teleport.lib.teleterm.v1.SendNotificationResponse - 9, // 20: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:output_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationResponse - 12, // 21: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:output_type -> teleport.lib.teleterm.v1.PromptMFAResponse - 14, // 22: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINResponse - 16, // 23: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchResponse - 18, // 24: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeResponse - 20, // 25: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:output_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteResponse - 22, // 26: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:output_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse - 25, // 27: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:output_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownResponse - 18, // [18:28] is the sub-list for method output_type - 8, // [8:18] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 28, // 5: teleport.lib.teleterm.v1.CannotProxyVnetConnection.route_to_app:type_name -> teleport.lib.teleterm.v1.RouteToApp + 7, // 6: teleport.lib.teleterm.v1.CannotProxyVnetConnection.cert_reissue_error:type_name -> teleport.lib.teleterm.v1.CertReissueError + 8, // 7: teleport.lib.teleterm.v1.CannotProxyVnetConnection.invalid_local_port:type_name -> teleport.lib.teleterm.v1.InvalidLocalPort + 29, // 8: teleport.lib.teleterm.v1.InvalidLocalPort.tcp_ports:type_name -> teleport.lib.teleterm.v1.PortRange + 13, // 9: teleport.lib.teleterm.v1.PromptMFARequest.sso:type_name -> teleport.lib.teleterm.v1.SSOChallenge + 25, // 10: teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse.usage_reporting_settings:type_name -> teleport.lib.teleterm.v1.UsageReportingSettings + 0, // 11: teleport.lib.teleterm.v1.TshdEventsService.Relogin:input_type -> teleport.lib.teleterm.v1.ReloginRequest + 4, // 12: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:input_type -> teleport.lib.teleterm.v1.SendNotificationRequest + 10, // 13: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:input_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationRequest + 12, // 14: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:input_type -> teleport.lib.teleterm.v1.PromptMFARequest + 15, // 15: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINRequest + 17, // 16: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchRequest + 19, // 17: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:input_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeRequest + 21, // 18: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:input_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteRequest + 23, // 19: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:input_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsRequest + 26, // 20: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:input_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownRequest + 3, // 21: teleport.lib.teleterm.v1.TshdEventsService.Relogin:output_type -> teleport.lib.teleterm.v1.ReloginResponse + 9, // 22: teleport.lib.teleterm.v1.TshdEventsService.SendNotification:output_type -> teleport.lib.teleterm.v1.SendNotificationResponse + 11, // 23: teleport.lib.teleterm.v1.TshdEventsService.SendPendingHeadlessAuthentication:output_type -> teleport.lib.teleterm.v1.SendPendingHeadlessAuthenticationResponse + 14, // 24: teleport.lib.teleterm.v1.TshdEventsService.PromptMFA:output_type -> teleport.lib.teleterm.v1.PromptMFAResponse + 16, // 25: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPIN:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINResponse + 18, // 26: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyTouch:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyTouchResponse + 20, // 27: teleport.lib.teleterm.v1.TshdEventsService.PromptHardwareKeyPINChange:output_type -> teleport.lib.teleterm.v1.PromptHardwareKeyPINChangeResponse + 22, // 28: teleport.lib.teleterm.v1.TshdEventsService.ConfirmHardwareKeySlotOverwrite:output_type -> teleport.lib.teleterm.v1.ConfirmHardwareKeySlotOverwriteResponse + 24, // 29: teleport.lib.teleterm.v1.TshdEventsService.GetUsageReportingSettings:output_type -> teleport.lib.teleterm.v1.GetUsageReportingSettingsResponse + 27, // 30: teleport.lib.teleterm.v1.TshdEventsService.ReportUnexpectedVnetShutdown:output_type -> teleport.lib.teleterm.v1.ReportUnexpectedVnetShutdownResponse + 21, // [21:31] is the sub-list for method output_type + 11, // [11:21] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_teleport_lib_teleterm_v1_tshd_events_service_proto_init() } @@ -1807,13 +1963,17 @@ func file_teleport_lib_teleterm_v1_tshd_events_service_proto_init() { (*SendNotificationRequest_CannotProxyGatewayConnection)(nil), (*SendNotificationRequest_CannotProxyVnetConnection)(nil), } + file_teleport_lib_teleterm_v1_tshd_events_service_proto_msgTypes[6].OneofWrappers = []any{ + (*CannotProxyVnetConnection_CertReissueError)(nil), + (*CannotProxyVnetConnection_InvalidLocalPort)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_teleport_lib_teleterm_v1_tshd_events_service_proto_rawDesc, NumEnums: 0, - NumMessages: 26, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts b/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts index ac021c705e893..1bca5f3f328b8 100644 --- a/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts +++ b/gen/proto/ts/teleport/lib/teleterm/v1/tshd_events_service_pb.ts @@ -31,6 +31,7 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; +import { PortRange } from "./app_pb"; import { RouteToApp } from "./app_pb"; /** * Request for Relogin. @@ -160,7 +161,6 @@ export interface CannotProxyGatewayConnection { } /** * CannotProxyVnetConnection describes which app couldn't have been proxied through VNet and why. - * At the moment this is used solely when refreshing an expired cert. * * @generated from protobuf message teleport.lib.teleterm.v1.CannotProxyVnetConnection */ @@ -169,16 +169,58 @@ export interface CannotProxyVnetConnection { * @generated from protobuf field: string target_uri = 1; */ targetUri: string; - /** - * @generated from protobuf field: string error = 2; - */ - error: string; /** * route_to_app is the metadata associated with the app that the user was trying to reach. * * @generated from protobuf field: teleport.lib.teleterm.v1.RouteToApp route_to_app = 4; */ routeToApp?: RouteToApp; + /** + * @generated from protobuf oneof: reason + */ + reason: { + oneofKind: "certReissueError"; + /** + * @generated from protobuf field: teleport.lib.teleterm.v1.CertReissueError cert_reissue_error = 5; + */ + certReissueError: CertReissueError; + } | { + oneofKind: "invalidLocalPort"; + /** + * @generated from protobuf field: teleport.lib.teleterm.v1.InvalidLocalPort invalid_local_port = 6; + */ + invalidLocalPort: InvalidLocalPort; + } | { + oneofKind: undefined; + }; +} +/** + * CertReissueError is sent as reason in CannotProxyVnetConnection when VNet wasn't able to reissue + * a cert for a local proxy. + * + * @generated from protobuf message teleport.lib.teleterm.v1.CertReissueError + */ +export interface CertReissueError { + /** + * @generated from protobuf field: string error = 1; + */ + error: string; +} +/** + * InvalidLocalPort is sent as reason in CannotProxyVnetConnection when VNet refused a connection + * because its local port did not match any TCP ports in the spec of the app. The port is included + * in route_to_app as target_port. + * + * @generated from protobuf message teleport.lib.teleterm.v1.InvalidLocalPort + */ +export interface InvalidLocalPort { + /** + * tcp_ports represents valid port ranges for the app. Sent only if there's less than 10 port + * ranges to keep the UI clean and to limit how much data is sent on each failed attempt. + * + * @generated from protobuf field: repeated teleport.lib.teleterm.v1.PortRange tcp_ports = 1; + */ + tcpPorts: PortRange[]; } /** * Response for SendNotification. @@ -770,14 +812,15 @@ class CannotProxyVnetConnection$Type extends MessageType RouteToApp } + { no: 4, name: "route_to_app", kind: "message", T: () => RouteToApp }, + { no: 5, name: "cert_reissue_error", kind: "message", oneof: "reason", T: () => CertReissueError }, + { no: 6, name: "invalid_local_port", kind: "message", oneof: "reason", T: () => InvalidLocalPort } ]); } create(value?: PartialMessage): CannotProxyVnetConnection { const message = globalThis.Object.create((this.messagePrototype!)); message.targetUri = ""; - message.error = ""; + message.reason = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -790,12 +833,21 @@ class CannotProxyVnetConnection$Type extends MessageType { + constructor() { + super("teleport.lib.teleterm.v1.CertReissueError", [ + { no: 1, name: "error", kind: "scalar", T: 9 /*ScalarType.STRING*/ } + ]); + } + create(value?: PartialMessage): CertReissueError { + const message = globalThis.Object.create((this.messagePrototype!)); + message.error = ""; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CertReissueError): CertReissueError { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* string error */ 1: + message.error = reader.string(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: CertReissueError, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* string error = 1; */ + if (message.error !== "") + writer.tag(1, WireType.LengthDelimited).string(message.error); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message teleport.lib.teleterm.v1.CertReissueError + */ +export const CertReissueError = new CertReissueError$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class InvalidLocalPort$Type extends MessageType { + constructor() { + super("teleport.lib.teleterm.v1.InvalidLocalPort", [ + { no: 1, name: "tcp_ports", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PortRange } + ]); + } + create(value?: PartialMessage): InvalidLocalPort { + const message = globalThis.Object.create((this.messagePrototype!)); + message.tcpPorts = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InvalidLocalPort): InvalidLocalPort { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* repeated teleport.lib.teleterm.v1.PortRange tcp_ports */ 1: + message.tcpPorts.push(PortRange.internalBinaryRead(reader, reader.uint32(), options)); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: InvalidLocalPort, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* repeated teleport.lib.teleterm.v1.PortRange tcp_ports = 1; */ + for (let i = 0; i < message.tcpPorts.length; i++) + PortRange.internalBinaryWrite(message.tcpPorts[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message teleport.lib.teleterm.v1.InvalidLocalPort + */ +export const InvalidLocalPort = new InvalidLocalPort$Type(); +// @generated message type with reflection information, may provide speed optimized methods class SendNotificationResponse$Type extends MessageType { constructor() { super("teleport.lib.teleterm.v1.SendNotificationResponse", []); diff --git a/lib/srv/app/tcpserver.go b/lib/srv/app/tcpserver.go index 7055c33c09406..10adbbaa71bb3 100644 --- a/lib/srv/app/tcpserver.go +++ b/lib/srv/app/tcpserver.go @@ -22,7 +22,6 @@ import ( "context" "log/slog" "net" - "slices" "strconv" "github.com/gravitational/trace" @@ -30,7 +29,6 @@ import ( apidefaults "github.com/gravitational/teleport/api/defaults" apitypes "github.com/gravitational/teleport/api/types" apievents "github.com/gravitational/teleport/api/types/events" - netutils "github.com/gravitational/teleport/api/utils/net" "github.com/gravitational/teleport/lib/events" "github.com/gravitational/teleport/lib/srv/app/common" "github.com/gravitational/teleport/lib/tlsca" @@ -116,11 +114,7 @@ func pickDialTarget(app apitypes.Application, uriAddr *utils.NetAddr, targetPort return net.JoinHostPort(uriAddr.Host(), strconv.Itoa(firstPort)), nil // Multi-port TCP app with target port specified in cert. default: - isTargetPortInTCPPorts := slices.ContainsFunc(app.GetTCPPorts(), func(portRange *apitypes.PortRange) bool { - return netutils.IsPortInRange(int(portRange.Port), int(portRange.EndPort), targetPort) - }) - - if !isTargetPortInTCPPorts { + if !app.GetTCPPorts().Contains(targetPort) { // This is not treated as an access denied error since there's no RBAC on TCP ports. return "", trace.BadParameter("port %d is not in TCP ports of app %q", targetPort, app.GetName()) } diff --git a/lib/teleterm/vnet/service.go b/lib/teleterm/vnet/service.go index cbe18a8bab2ab..713198a187558 100644 --- a/lib/teleterm/vnet/service.go +++ b/lib/teleterm/vnet/service.go @@ -30,6 +30,7 @@ import ( "github.com/gravitational/teleport" "github.com/gravitational/teleport/api/client/proto" + "github.com/gravitational/teleport/api/types" "github.com/gravitational/teleport/api/utils" prehogv1alpha "github.com/gravitational/teleport/gen/proto/go/prehog/v1alpha" apiteleterm "github.com/gravitational/teleport/gen/proto/go/teleport/lib/teleterm/v1" @@ -420,7 +421,11 @@ func (p *appProvider) ReissueAppCert(ctx context.Context, profileName, leafClust CannotProxyVnetConnection: &apiteleterm.CannotProxyVnetConnection{ TargetUri: appURI.String(), RouteToApp: &apiteletermRouteToApp, - Error: err.Error(), + Reason: &apiteleterm.CannotProxyVnetConnection_CertReissueError{ + CertReissueError: &apiteleterm.CertReissueError{ + Error: err.Error(), + }, + }, }, }, }) @@ -477,6 +482,51 @@ func (p *appProvider) OnNewConnection(ctx context.Context, profileName, leafClus return nil } +// OnInvalidLocalPort gets called before VNet refuses to handle a connection to a multi-port TCP app +// because the provided port does not match any of the TCP ports in the app spec. +func (p *appProvider) OnInvalidLocalPort(ctx context.Context, profileName, leafClusterName string, routeToApp proto.RouteToApp, tcpPorts types.PortRanges) { + // If something is wrong with the Electron app to the point that it stopped accepting RPCs, return + // quickly rather than being blocked on sending a notification. + ctx, cancel := context.WithTimeout(ctx, 2*time.Second) + defer cancel() + + appURI := uri.NewClusterURI(profileName).AppendLeafCluster(leafClusterName).AppendApp(routeToApp.Name) + apiteletermRouteToApp := apiteleterm.RouteToApp{ + Name: routeToApp.Name, + PublicAddr: routeToApp.PublicAddr, + ClusterName: routeToApp.ClusterName, + Uri: routeToApp.URI, + TargetPort: routeToApp.TargetPort, + } + + invalidLocalPort := &apiteleterm.InvalidLocalPort{} + // Send ports only if there's less than 10 ranges. A bigger number would be difficult to show in + // the UI. + if len(tcpPorts) <= 10 { + apiTCPPorts := make([]*apiteleterm.PortRange, 0, len(tcpPorts)) + for _, portRange := range tcpPorts { + apiTCPPorts = append(apiTCPPorts, &apiteleterm.PortRange{Port: portRange.Port, EndPort: portRange.EndPort}) + } + invalidLocalPort.TcpPorts = apiTCPPorts + } + + err := p.daemonService.NotifyApp(ctx, &apiteleterm.SendNotificationRequest{ + Subject: &apiteleterm.SendNotificationRequest_CannotProxyVnetConnection{ + CannotProxyVnetConnection: &apiteleterm.CannotProxyVnetConnection{ + TargetUri: appURI.String(), + RouteToApp: &apiteletermRouteToApp, + Reason: &apiteleterm.CannotProxyVnetConnection_InvalidLocalPort{ + InvalidLocalPort: invalidLocalPort, + }, + }, + }, + }) + if err != nil { + log.ErrorContext(ctx, "Could not notify the Electron app about invalid local port", + "notify_error", err, "profile_name", profileName, "leaf_cluster_name", leafClusterName, "route_to_app", routeToApp) + } +} + type usageReporter interface { ReportApp(uri.ResourceURI) error Stop() diff --git a/lib/vnet/app_resolver.go b/lib/vnet/app_resolver.go index 3f87c42ec74d7..bf2485cd60dbb 100644 --- a/lib/vnet/app_resolver.go +++ b/lib/vnet/app_resolver.go @@ -69,12 +69,17 @@ type AppProvider interface { // The connection won't be established until OnNewConnection returns. Returning an error prevents // the connection from being made. OnNewConnection(ctx context.Context, profileName, leafClusterName string, routeToApp proto.RouteToApp) error + + // OnInvalidLocalPort gets called before VNet refuses to handle a connection to a multi-port TCP app + // because the provided port does not match any of the TCP ports in the app spec. + OnInvalidLocalPort(ctx context.Context, profileName, leafClusterName string, routeToApp proto.RouteToApp, tcpPorts types.PortRanges) } // ClusterClient is an interface defining the subset of [client.ClusterClient] methods used by [AppProvider]. type ClusterClient interface { CurrentCluster() authclient.ClientI ClusterName() string + RootClusterName() string } // DialOptions holds ALPN dial options for dialing apps. @@ -165,8 +170,9 @@ func (r *tcpAppResolver) resolveTCPHandler(ctx context.Context, fqdn string) (*t } leafClusterName := "" - if clusterClient.ClusterName() != profileName { - leafClusterName = clusterClient.ClusterName() + clusterName := clusterClient.ClusterName() + if clusterName != "" && clusterName != clusterClient.RootClusterName() { + leafClusterName = clusterName } return r.resolveTCPHandlerForCluster(ctx, clusterClient, profileName, leafClusterName, fqdn) @@ -282,10 +288,15 @@ func (r *tcpAppResolver) resolveTCPHandlerForCluster( } type tcpAppHandler struct { - log *slog.Logger - appProvider AppProvider - clock clockwork.Clock - profileName string + log *slog.Logger + appProvider AppProvider + clock clockwork.Clock + profileName string + // clusterName is the name of the cluster that the app belongs to. For root cluster, it is not + // necessarily the equivalent of profileName. RouteToApp passed to a local proxy needs to include + // the actual root cluster name, not just an empty string (unlike what's often the case with + // siteName in lib/client). + clusterName string leafClusterName string app types.Application portToLocalProxy map[uint16]*alpnproxy.LocalProxy @@ -299,10 +310,16 @@ func (r *tcpAppResolver) newTCPAppHandler( leafClusterName string, app types.Application, ) (*tcpAppHandler, error) { + clusterClient, err := r.appProvider.GetCachedClient(ctx, profileName, leafClusterName) + if err != nil { + return nil, trace.Wrap(err) + } + return &tcpAppHandler{ appProvider: r.appProvider, clock: r.clock, profileName: profileName, + clusterName: clusterClient.ClusterName(), leafClusterName: leafClusterName, app: app, portToLocalProxy: make(map[uint16]*alpnproxy.LocalProxy), @@ -325,33 +342,17 @@ func (h *tcpAppHandler) getOrInitializeLocalProxy(ctx context.Context, localPort if len(h.app.GetTCPPorts()) == 0 { localPort = 0 } - // TODO(ravicious): For multi-port apps, check if localPort is valid and surface the error in UI. - // https://github.com/gravitational/teleport/blob/master/rfd/0182-multi-port-tcp-app-access.md#incorrect-port lp, ok := h.portToLocalProxy[localPort] if ok { return lp, nil } + routeToApp := h.routeToApp(localPort) dialOpts, err := h.appProvider.GetDialOptions(ctx, h.profileName) if err != nil { return nil, trace.Wrap(err, "getting dial options for profile %q", h.profileName) } - clusterClient, err := h.appProvider.GetCachedClient(ctx, h.profileName, h.leafClusterName) - if err != nil { - return nil, trace.Wrap(err) - } - - routeToApp := proto.RouteToApp{ - Name: h.app.GetName(), - PublicAddr: h.app.GetPublicAddr(), - // ClusterName must not be set to "" when targeting an app from a root cluster. Otherwise the - // connection routed through a local proxy will just get lost somewhere in the cluster (with no - // clear error being reported) and hang forever. - ClusterName: clusterClient.ClusterName(), - URI: h.app.GetURI(), - TargetPort: uint32(localPort), - } appCertIssuer := &appCertIssuer{ appProvider: h.appProvider, @@ -394,6 +395,13 @@ func (h *tcpAppHandler) getOrInitializeLocalProxy(ctx context.Context, localPort // handleTCPConnector handles an incoming TCP connection from VNet by passing it to the local alpn proxy, // which is set up with middleware to automatically handler certificate renewal and re-logins. func (h *tcpAppHandler) handleTCPConnector(ctx context.Context, localPort uint16, connector func() (net.Conn, error)) error { + if len(h.app.GetTCPPorts()) > 0 { + if !h.app.GetTCPPorts().Contains(int(localPort)) { + h.appProvider.OnInvalidLocalPort(ctx, h.profileName, h.leafClusterName, h.routeToApp(localPort), h.app.GetTCPPorts()) + return trace.BadParameter("local port %d is not in TCP ports of app %q", localPort, h.app.GetName()) + } + } + lp, err := h.getOrInitializeLocalProxy(ctx, localPort) if err != nil { return trace.Wrap(err) @@ -401,6 +409,19 @@ func (h *tcpAppHandler) handleTCPConnector(ctx context.Context, localPort uint16 return trace.Wrap(lp.HandleTCPConnector(ctx, connector), "handling TCP connector") } +func (h *tcpAppHandler) routeToApp(localPort uint16) proto.RouteToApp { + return proto.RouteToApp{ + Name: h.app.GetName(), + PublicAddr: h.app.GetPublicAddr(), + // ClusterName must _not_ be set to "" when targeting an app from a root cluster. Otherwise the + // connection routed through a local proxy will just get lost somewhere in the cluster (with no + // clear error being reported) and hang forever. + ClusterName: h.clusterName, + URI: h.app.GetURI(), + TargetPort: uint32(localPort), + } +} + // appCertIssuer implements [client.CertIssuer]. type appCertIssuer struct { appProvider AppProvider diff --git a/lib/vnet/vnet_test.go b/lib/vnet/vnet_test.go index 314d16cdf9c1d..a2e73ee25f5fd 100644 --- a/lib/vnet/vnet_test.go +++ b/lib/vnet/vnet_test.go @@ -32,6 +32,7 @@ import ( "math/big" "net" "os" + "slices" "strings" "sync" "sync/atomic" @@ -251,10 +252,11 @@ type testClusterSpec struct { } type echoAppProvider struct { - clusters map[string]testClusterSpec - dialOpts DialOptions - reissueAppCert func() tls.Certificate - onNewConnectionCallCount atomic.Uint32 + clusters map[string]testClusterSpec + dialOpts DialOptions + reissueAppCert func() tls.Certificate + onNewConnectionCallCount atomic.Uint32 + onInvalidLocalPortCallCount atomic.Uint32 // requestedRouteToApps indexed by public address. requestedRouteToApps map[string][]proto.RouteToApp requestedRouteToAppsMu sync.RWMutex @@ -286,8 +288,9 @@ func (p *echoAppProvider) GetCachedClient(ctx context.Context, profileName, leaf if leafClusterName == "" { return &fakeClusterClient{ authClient: &fakeAuthClient{ - clusterSpec: rootCluster, - clusterName: profileName, + clusterSpec: rootCluster, + clusterName: profileName, + rootClusterName: profileName, }, }, nil } @@ -297,8 +300,9 @@ func (p *echoAppProvider) GetCachedClient(ctx context.Context, profileName, leaf } return &fakeClusterClient{ authClient: &fakeAuthClient{ - clusterSpec: leafCluster, - clusterName: leafClusterName, + clusterSpec: leafCluster, + clusterName: leafClusterName, + rootClusterName: profileName, }, }, nil } @@ -312,15 +316,15 @@ func (p *echoAppProvider) ReissueAppCert(ctx context.Context, profileName, leafC return p.reissueAppCert(), nil } -func (p *echoAppProvider) AreAllRequestedRouteToAppsForPort(publicAddr string, port int) bool { +func (p *echoAppProvider) RequestedRouteToApps(publicAddr string) []proto.RouteToApp { p.requestedRouteToAppsMu.RLock() defer p.requestedRouteToAppsMu.RUnlock() - routes := p.requestedRouteToApps[publicAddr] + requestedRoutes := p.requestedRouteToApps[publicAddr] + returnedRoutes := make([]proto.RouteToApp, len(requestedRoutes)) + copy(returnedRoutes, requestedRoutes) - return apiutils.All(routes, func(route proto.RouteToApp) bool { - return route.TargetPort == uint32(port) - }) + return returnedRoutes } func (p *echoAppProvider) GetDialOptions(ctx context.Context, profileName string) (*DialOptions, error) { @@ -383,6 +387,10 @@ func (p *echoAppProvider) OnNewConnection(ctx context.Context, profileName, leaf return nil } +func (p *echoAppProvider) OnInvalidLocalPort(ctx context.Context, profileName, leafClusterName string, routeToApp proto.RouteToApp, tcpPorts types.PortRanges) { + p.onInvalidLocalPortCallCount.Add(1) +} + type fakeClusterClient struct { authClient *fakeAuthClient } @@ -395,12 +403,17 @@ func (c *fakeClusterClient) ClusterName() string { return c.authClient.clusterName } +func (c *fakeClusterClient) RootClusterName() string { + return c.authClient.rootClusterName +} + // fakeAuthClient is a fake auth client that answers GetResources requests with a static list of apps and // basic/faked predicate filtering. type fakeAuthClient struct { authclient.ClientI - clusterSpec testClusterSpec - clusterName string + clusterSpec testClusterSpec + clusterName string + rootClusterName string } func (c *fakeAuthClient) GetResources(ctx context.Context, req *proto.ListResourcesRequest) (*proto.ListResourcesResponse, error) { @@ -643,13 +656,15 @@ func TestDialFakeApp(t *testing.T) { testEchoConnection(t, conn) + requestedRoutes := appProvider.RequestedRouteToApps(tc.app) // For multi-port apps, certs should have RouteToApp.TargetPort set to the specified // cert. // // Single-port apps are going to be dialed on defaultPort in tests, but certs for them // need to have RouteToApp.TargetPort set to 0. - require.True(t, appProvider.AreAllRequestedRouteToAppsForPort(tc.app, tc.port), - "not all requested certs had RouteToApp.TargetPort set to %d", tc.port) + require.True(t, apiutils.All(requestedRoutes, func(route proto.RouteToApp) bool { + return int(route.TargetPort) == tc.port + }), "not all requested certs had RouteToApp.TargetPort set to %d", tc.port) }) } }) @@ -657,7 +672,7 @@ func TestDialFakeApp(t *testing.T) { } }) - t.Run("invalid", func(t *testing.T) { + t.Run("invalid FQDN", func(t *testing.T) { t.Parallel() invalidTestCases := []string{ "not.an.app.example.com.", @@ -673,6 +688,23 @@ func TestDialFakeApp(t *testing.T) { }) } }) + + t.Run("invalid target port", func(t *testing.T) { + t.Parallel() + app := "multi-port.root1.example.com" + port := 1000 + + _, err := p.dialHost(ctx, app, port) + // VNet is expected to refuse the connection rather than let the dial go through and then + // immediately close it. + require.ErrorContains(t, err, "connection was refused") + + requestedRoutes := appProvider.RequestedRouteToApps(app) + require.False(t, slices.ContainsFunc(requestedRoutes, func(route proto.RouteToApp) bool { + return int(route.TargetPort) == port + }), "no certs are supposed to be requested for target port %d in app %s", port, app) + require.Equal(t, uint32(1), appProvider.onInvalidLocalPortCallCount.Load(), "unexpected number of calls to OnInvalidLocalPort") + }) } func testEchoConnection(t *testing.T, conn net.Conn) { diff --git a/proto/teleport/lib/teleterm/v1/tshd_events_service.proto b/proto/teleport/lib/teleterm/v1/tshd_events_service.proto index 600a99d124bde..4c90d1c1dc9f0 100644 --- a/proto/teleport/lib/teleterm/v1/tshd_events_service.proto +++ b/proto/teleport/lib/teleterm/v1/tshd_events_service.proto @@ -134,14 +134,33 @@ message CannotProxyGatewayConnection { } // CannotProxyVnetConnection describes which app couldn't have been proxied through VNet and why. -// At the moment this is used solely when refreshing an expired cert. message CannotProxyVnetConnection { string target_uri = 1; - string error = 2; + reserved 2; + reserved "error"; reserved 3; reserved "public_addr"; // route_to_app is the metadata associated with the app that the user was trying to reach. RouteToApp route_to_app = 4; + oneof reason { + CertReissueError cert_reissue_error = 5; + InvalidLocalPort invalid_local_port = 6; + } +} + +// CertReissueError is sent as reason in CannotProxyVnetConnection when VNet wasn't able to reissue +// a cert for a local proxy. +message CertReissueError { + string error = 1; +} + +// InvalidLocalPort is sent as reason in CannotProxyVnetConnection when VNet refused a connection +// because its local port did not match any TCP ports in the spec of the app. The port is included +// in route_to_app as target_port. +message InvalidLocalPort { + // tcp_ports represents valid port ranges for the app. Sent only if there's less than 10 port + // ranges to keep the UI clean and to limit how much data is sent on each failed attempt. + repeated PortRange tcp_ports = 1; } // Response for SendNotification. diff --git a/tool/tsh/common/tsh.go b/tool/tsh/common/tsh.go index 0a3701cb92b1c..f5537566d40cf 100644 --- a/tool/tsh/common/tsh.go +++ b/tool/tsh/common/tsh.go @@ -2896,17 +2896,7 @@ func writeAppTable(w io.Writer, appListings []appListing, config appTableConfig) return common.FormatLabels(app.GetAllLabels(), config.verbose) } getTargetPorts := func(app types.Application) string { - ports := make([]string, 0, len(app.GetTCPPorts())) - for _, portRange := range app.GetTCPPorts() { - var port string - if portRange.EndPort == 0 { - port = strconv.Itoa(int(portRange.Port)) - } else { - port = fmt.Sprintf("%d-%d", portRange.Port, portRange.EndPort) - } - ports = append(ports, port) - } - return strings.Join(ports, ", ") + return app.GetTCPPorts().String() } const labelsColumn = "Labels" diff --git a/tool/tsh/common/vnet_app_provider.go b/tool/tsh/common/vnet_app_provider.go index 13a4b663245bc..86b5fee21d9e9 100644 --- a/tool/tsh/common/vnet_app_provider.go +++ b/tool/tsh/common/vnet_app_provider.go @@ -22,11 +22,14 @@ import ( "crypto/x509" "fmt" "log/slog" + "net" + "strconv" "sync" "github.com/gravitational/trace" "github.com/gravitational/teleport/api/client/proto" + "github.com/gravitational/teleport/api/types" "github.com/gravitational/teleport/lib/client" "github.com/gravitational/teleport/lib/client/clientcache" "github.com/gravitational/teleport/lib/utils" @@ -121,6 +124,19 @@ func (p *vnetAppProvider) OnNewConnection(ctx context.Context, profileName, leaf return nil } +// OnInvalidLocalPort gets called before VNet refuses to handle a connection to a multi-port TCP app +// because the provided port does not match any of the TCP ports in the app spec. +func (p *vnetAppProvider) OnInvalidLocalPort(ctx context.Context, profileName, leafClusterName string, routeToApp proto.RouteToApp, tcpPorts types.PortRanges) { + msg := fmt.Sprintf("%s: Connection refused, port not included in target ports of app %q.", + net.JoinHostPort(routeToApp.PublicAddr, strconv.Itoa(int(routeToApp.TargetPort))), routeToApp.Name) + + if len(tcpPorts) <= 10 { + msg = fmt.Sprintf("%s Valid ports: %s.", msg, tcpPorts) + } + + fmt.Println(msg) +} + // getRootClusterCACertPool returns a certificate pool for the root cluster of the given profile. func (p *vnetAppProvider) getRootClusterCACertPool(ctx context.Context, profileName string) (*x509.CertPool, error) { tc, err := p.newTeleportClient(ctx, profileName, "") diff --git a/web/packages/shared/components/Notification/Notification.tsx b/web/packages/shared/components/Notification/Notification.tsx index 27347693f2052..17788e1063533 100644 --- a/web/packages/shared/components/Notification/Notification.tsx +++ b/web/packages/shared/components/Notification/Notification.tsx @@ -45,6 +45,8 @@ interface NotificationProps extends BoxProps { * seconds. If undefined, the decision is based on the notification severity: * only 'success', 'info', and 'neutral' notifications are removable by * default. + * + * @deprecated: Define isAutoRemovable on item.content instead. */ isAutoRemovable?: boolean; } @@ -55,6 +57,7 @@ export function Notification(props: NotificationProps) { const { item, onRemove, + // TODO(ravicious): Remove isAutoRemovable in favor of item.content.isAutoRemovable. isAutoRemovable: isAutoRemovableProp, ...styleProps } = props; @@ -65,6 +68,7 @@ export function Notification(props: NotificationProps) { const theme = useTheme(); const isAutoRemovable = + getContentIsAutoRemovable(item.content) ?? isAutoRemovableProp ?? ['success', 'info', 'neutral'].includes(item.severity); useEffect(() => { @@ -177,6 +181,11 @@ const toObjectContent = ( ): NotificationItemObjectContent => typeof content === 'string' ? { title: content } : content; +const getContentIsAutoRemovable = ( + content: NotificationItemContent +): boolean | undefined => + typeof content === 'string' ? undefined : content.isAutoRemovable; + const notificationColors = (theme: Theme, severity: NotificationSeverity) => { switch (severity) { case 'neutral': diff --git a/web/packages/shared/components/Notification/types.ts b/web/packages/shared/components/Notification/types.ts index 0060346eb81b5..da1bd8f95ab75 100644 --- a/web/packages/shared/components/Notification/types.ts +++ b/web/packages/shared/components/Notification/types.ts @@ -42,4 +42,9 @@ export type NotificationItemObjectContent = { description?: string; icon?: React.ComponentType; action?: Action; + /** + * If defined, isAutoRemovable circumvents the auto-removing logic in the Notification component, + * which automatically removes 'success', 'info', and 'neutral' notifications. + */ + isAutoRemovable?: boolean; }; diff --git a/web/packages/teleterm/src/helpers.ts b/web/packages/teleterm/src/helpers.ts index b952209937038..4da2df9b46af9 100644 --- a/web/packages/teleterm/src/helpers.ts +++ b/web/packages/teleterm/src/helpers.ts @@ -16,8 +16,6 @@ * along with this program. If not, see . */ -// ExcludesFalse is a method that can be used instead of [].filter(Boolean) -// this removes the false values from the array type import { PaginatedResource } from 'gen-proto-ts/teleport/lib/teleterm/v1/service_pb'; import { Server } from 'gen-proto-ts/teleport/lib/teleterm/v1/server_pb'; import { Database } from 'gen-proto-ts/teleport/lib/teleterm/v1/database_pb'; @@ -139,6 +137,24 @@ export function notificationRequestOneOfIsCannotProxyVnetConnection( return subject.oneofKind === 'cannotProxyVnetConnection'; } +export function cannotProxyVnetConnectionReasonIsCertReissueError( + reason: api.CannotProxyVnetConnection['reason'] +): reason is { + oneofKind: 'certReissueError'; + certReissueError: api.CertReissueError; +} { + return reason.oneofKind === 'certReissueError'; +} + +export function cannotProxyVnetConnectionReasonIsInvalidLocalPort( + reason: api.CannotProxyVnetConnection['reason'] +): reason is { + oneofKind: 'invalidLocalPort'; + invalidLocalPort: api.InvalidLocalPort; +} { + return reason.oneofKind === 'invalidLocalPort'; +} + export function reloginReasonOneOfIsGatewayCertExpired( reason: ReloginRequest['reason'] ): reason is { diff --git a/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts b/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts index a7007676e75b8..d6ff8538816af 100644 --- a/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts +++ b/web/packages/teleterm/src/ui/services/tshdNotifications/tshdNotificationService.ts @@ -22,12 +22,17 @@ import { getTargetNameFromUri } from 'teleterm/services/tshd/gateway'; import { SendNotificationRequest } from 'teleterm/services/tshdEvents'; import { ClustersService } from 'teleterm/ui/services/clusters'; import { NotificationsService } from 'teleterm/ui/services/notifications'; -import { routing } from 'teleterm/ui/uri'; +import { ResourceUri, routing } from 'teleterm/ui/uri'; import { + cannotProxyVnetConnectionReasonIsCertReissueError, + cannotProxyVnetConnectionReasonIsInvalidLocalPort, notificationRequestOneOfIsCannotProxyGatewayConnection, notificationRequestOneOfIsCannotProxyVnetConnection, } from 'teleterm/helpers'; -import { publicAddrWithTargetPort } from 'teleterm/services/tshd/app'; +import { + formatPortRange, + publicAddrWithTargetPort, +} from 'teleterm/services/tshd/app'; export class TshdNotificationsService { constructor( @@ -56,7 +61,7 @@ export class TshdNotificationsService { const { gatewayUri, targetUri, error } = subject.cannotProxyGatewayConnection; const gateway = this.clustersService.findGateway(gatewayUri); - const clusterName = routing.parseClusterName(targetUri); + const clusterName = this.getClusterName(targetUri); let targetName: string; let targetUser: string; let targetDesc: string; @@ -83,14 +88,54 @@ export class TshdNotificationsService { if (!notificationRequestOneOfIsCannotProxyVnetConnection(subject)) { return; } - const { routeToApp, targetUri, error } = + const { routeToApp, targetUri, reason } = subject.cannotProxyVnetConnection; - const clusterName = routing.parseClusterName(targetUri); + const clusterName = this.getClusterName(targetUri); - return { - title: `Cannot connect to ${publicAddrWithTargetPort(routeToApp)}`, - description: `A connection attempt to the app in the cluster ${clusterName} failed due to an unexpected error: ${error}`, - }; + switch (reason.oneofKind) { + case 'certReissueError': { + if (!cannotProxyVnetConnectionReasonIsCertReissueError(reason)) { + return; + } + const { error } = reason.certReissueError; + + return { + title: `Cannot connect to ${publicAddrWithTargetPort(routeToApp)}`, + description: `A connection attempt to the app in the cluster ${clusterName} failed due to an unexpected error: ${error}`, + }; + } + case 'invalidLocalPort': { + if (!cannotProxyVnetConnectionReasonIsInvalidLocalPort(reason)) { + return; + } + + // Ports are not present if there's more than 10 port ranges defined on an app. + const ports = reason.invalidLocalPort.tcpPorts + .map(portRange => formatPortRange(portRange)) + .join(', '); + + let description = + `A connection attempt on the port ${routeToApp.targetPort} was refused ` + + `as that port is not included in the target ports of the app ${routeToApp.clusterName} in the cluster ${clusterName}.`; + + if (ports) { + description += ` Valid ports: ${ports}.`; + } + + return { + title: `Invalid port for ${publicAddrWithTargetPort(routeToApp)}`, + description, + // 3rd-party clients can potentially make dozens of attempts to connect to an invalid + // port within a short time. As all notifications from this service go as errors, we + // don't want to force the user to manually close each notification. + isAutoRemovable: true, + }; + } + default: { + reason satisfies never; + return; + } + } } default: { subject satisfies never; @@ -98,4 +143,11 @@ export class TshdNotificationsService { } } } + + private getClusterName(uri: ResourceUri): string { + const clusterUri = routing.ensureClusterUri(uri); + const cluster = this.clustersService.findCluster(clusterUri); + + return cluster ? cluster.name : routing.parseClusterName(clusterUri); + } }