From 952d0438c6271f9e608198202e5c5b9a5d68873f Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 15:23:04 +0200 Subject: [PATCH 01/28] Copy ports from replicaset rather than hardcoding them Fixes: #2233 Signed-off-by: Alex Eftimie --- experiments/experiment.go | 14 +++++++++++++- experiments/service.go | 9 ++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/experiments/experiment.go b/experiments/experiment.go index aa154d03d9..c0543c7917 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -22,6 +22,7 @@ import ( corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/kubernetes" appslisters "k8s.io/client-go/listers/apps/v1" v1 "k8s.io/client-go/listers/core/v1" @@ -285,8 +286,19 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp // Create service with has same name, podTemplateHash, and labels as RS podTemplateHash := rs.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] svc := ec.templateServices[template.Name] + var ports []corev1.ServicePort + for _, ctr := range rs.Spec.Template.Spec.Containers { + for _, port := range ctr.Ports { + servicePort := corev1.ServicePort{ + Protocol: port.Protocol, + Port: port.ContainerPort, + TargetPort: intstr.FromString(string(port.ContainerPort)), + } + ports = append(ports, servicePort) + } + } if svc == nil || svc.Name != rs.Name { - newService, err := ec.CreateService(rs.Name, *template, rs.Labels) + newService, err := ec.CreateService(rs.Name, *template, rs.Labels, ports) if err != nil { templateStatus.Status = v1alpha1.TemplateStatusError templateStatus.Message = fmt.Sprintf("Failed to create Service for template '%s': %v", template.Name, err) diff --git a/experiments/service.go b/experiments/service.go index 286c3b537a..5b33c468f6 100644 --- a/experiments/service.go +++ b/experiments/service.go @@ -12,7 +12,6 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/util/intstr" ) var experimentKind = v1alpha1.SchemeGroupVersion.WithKind("Experiment") @@ -59,7 +58,7 @@ func GetServiceForExperiment(experiment *v1alpha1.Experiment, svc *corev1.Servic return nil } -func (ec *experimentContext) CreateService(serviceName string, template v1alpha1.TemplateSpec, selector map[string]string) (*corev1.Service, error) { +func (ec *experimentContext) CreateService(serviceName string, template v1alpha1.TemplateSpec, selector map[string]string, ports []corev1.ServicePort) (*corev1.Service, error) { ctx := context.TODO() serviceAnnotations := newServiceSetAnnotations(ec.ex.Name, template.Name) newService := &corev1.Service{ @@ -74,11 +73,7 @@ func (ec *experimentContext) CreateService(serviceName string, template v1alpha1 }, Spec: corev1.ServiceSpec{ Selector: selector, - Ports: []corev1.ServicePort{{ - Protocol: "TCP", - Port: int32(80), - TargetPort: intstr.FromInt(8080), - }}, + Ports: ports, }, } From 69e9061792df19d12b45dc5c48fb7c58e43ce936 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 15:41:45 +0200 Subject: [PATCH 02/28] Allow user to set the experiment service name. Create a service even though a weight is not set (when the name is provided) Signed-off-by: Alex Eftimie --- experiments/experiment.go | 8 ++++++-- experiments/service.go | 4 ++-- manifests/crds/rollout-crd.yaml | 2 ++ pkg/apis/rollouts/v1alpha1/experiment_types.go | 4 +++- pkg/apis/rollouts/v1alpha1/types.go | 2 ++ rollout/experiment.go | 4 ++-- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/experiments/experiment.go b/experiments/experiment.go index c0543c7917..8425aac74b 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -297,8 +297,12 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp ports = append(ports, servicePort) } } - if svc == nil || svc.Name != rs.Name { - newService, err := ec.CreateService(rs.Name, *template, rs.Labels, ports) + templateServiceName := template.Service.Name + if templateServiceName == "" { + templateServiceName = rs.Name + } + if svc == nil || svc.Name != templateServiceName { + newService, err := ec.CreateService(templateServiceName, *template, rs.Labels, ports) if err != nil { templateStatus.Status = v1alpha1.TemplateStatusError templateStatus.Message = fmt.Sprintf("Failed to create Service for template '%s': %v", template.Name, err) diff --git a/experiments/service.go b/experiments/service.go index 5b33c468f6..3f165e76a5 100644 --- a/experiments/service.go +++ b/experiments/service.go @@ -60,7 +60,7 @@ func GetServiceForExperiment(experiment *v1alpha1.Experiment, svc *corev1.Servic func (ec *experimentContext) CreateService(serviceName string, template v1alpha1.TemplateSpec, selector map[string]string, ports []corev1.ServicePort) (*corev1.Service, error) { ctx := context.TODO() - serviceAnnotations := newServiceSetAnnotations(ec.ex.Name, template.Name) + serviceAnnotations := newServiceAnnotations(ec.ex.Name, template.Name) newService := &corev1.Service{ TypeMeta: metav1.TypeMeta{}, ObjectMeta: metav1.ObjectMeta{ @@ -107,7 +107,7 @@ func (ec *experimentContext) deleteService(service corev1.Service) error { return nil } -func newServiceSetAnnotations(experimentName, templateName string) map[string]string { +func newServiceAnnotations(experimentName, templateName string) map[string]string { return map[string]string{ v1alpha1.ExperimentNameAnnotationKey: experimentName, v1alpha1.ExperimentTemplateNameAnnotationKey: templateName, diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index c226789cf2..46797650fd 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -566,6 +566,8 @@ spec: weight: format: int32 type: integer + serviceName: + type: string required: - name - specRef diff --git a/pkg/apis/rollouts/v1alpha1/experiment_types.go b/pkg/apis/rollouts/v1alpha1/experiment_types.go index 5fcc27cb7c..cd7ac3d043 100644 --- a/pkg/apis/rollouts/v1alpha1/experiment_types.go +++ b/pkg/apis/rollouts/v1alpha1/experiment_types.go @@ -89,7 +89,9 @@ type TemplateSpec struct { Service *TemplateService `json:"service,omitempty" protobuf:"bytes,6,opt,name=service"` } -type TemplateService struct{} +type TemplateService struct { + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` +} type TemplateStatusCode string diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 746758c60f..4e1993c361 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -534,6 +534,8 @@ type RolloutExperimentTemplate struct { Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,5,opt,name=selector"` // Weight sets the percentage of traffic the template's replicas should receive Weight *int32 `json:"weight,omitempty" protobuf:"varint,6,opt,name=weight"` + // ServiceName sets the name of the optionally generated service for the replicaset + ServiceName string `json:"serviceName" protobuf:"bytes,7,opt,name=serviceName"` } // PodTemplateMetadata extra labels to add to the template diff --git a/rollout/experiment.go b/rollout/experiment.go index aeac6e8049..b51dba4330 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -64,8 +64,8 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Name: templateStep.Name, Replicas: templateStep.Replicas, } - if templateStep.Weight != nil { - template.Service = &v1alpha1.TemplateService{} + if templateStep.Weight != nil || templateStep.ServiceName != "" { + template.Service = &v1alpha1.TemplateService{Name: templateStep.ServiceName} } templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { From d6ae5add5af32afafdc56aee8383a84f3e4e1c28 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 16:13:49 +0200 Subject: [PATCH 03/28] Run codegen Signed-off-by: Alex Eftimie --- .../features/kustomize/rollout_cr_schema.json | 8 + manifests/crds/experiment-crd.yaml | 5 + manifests/crds/rollout-crd.yaml | 5 +- manifests/install.yaml | 8 + manifests/namespace-install.yaml | 8 + pkg/apiclient/rollout/rollout.swagger.json | 4 + pkg/apis/rollouts/v1alpha1/generated.pb.go | 982 ++++++++++-------- pkg/apis/rollouts/v1alpha1/generated.proto | 4 + ui/src/models/rollout/generated/api.ts | 6 + 9 files changed, 577 insertions(+), 453 deletions(-) diff --git a/docs/features/kustomize/rollout_cr_schema.json b/docs/features/kustomize/rollout_cr_schema.json index fbff809be6..3c7fc92ceb 100644 --- a/docs/features/kustomize/rollout_cr_schema.json +++ b/docs/features/kustomize/rollout_cr_schema.json @@ -12969,6 +12969,14 @@ "type": "object" }, "service": { + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], "type": "object" }, "template": { diff --git a/manifests/crds/experiment-crd.yaml b/manifests/crds/experiment-crd.yaml index 7af9a81d52..0b6654a4d4 100644 --- a/manifests/crds/experiment-crd.yaml +++ b/manifests/crds/experiment-crd.yaml @@ -149,6 +149,11 @@ spec: type: object type: object service: + properties: + name: + type: string + required: + - name type: object template: properties: diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index 46797650fd..f7de69e916 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -561,15 +561,16 @@ spec: type: string type: object type: object + serviceName: + type: string specRef: type: string weight: format: int32 type: integer - serviceName: - type: string required: - name + - serviceName - specRef type: object type: array diff --git a/manifests/install.yaml b/manifests/install.yaml index 04475b6a8a..a5e9a55a82 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -8557,6 +8557,11 @@ spec: type: object type: object service: + properties: + name: + type: string + required: + - name type: object template: properties: @@ -11571,6 +11576,8 @@ spec: type: string type: object type: object + serviceName: + type: string specRef: type: string weight: @@ -11578,6 +11585,7 @@ spec: type: integer required: - name + - serviceName - specRef type: object type: array diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index bfca8940be..b33253bba5 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -8557,6 +8557,11 @@ spec: type: object type: object service: + properties: + name: + type: string + required: + - name type: object template: properties: @@ -11571,6 +11576,8 @@ spec: type: string type: object type: object + serviceName: + type: string specRef: type: string weight: @@ -11578,6 +11585,7 @@ spec: type: integer required: - name + - serviceName - specRef type: object type: array diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index e7ac9434b8..fadfbe28f5 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -1329,6 +1329,10 @@ "type": "integer", "format": "int32", "title": "Weight sets the percentage of traffic the template's replicas should receive" + }, + "serviceName": { + "type": "string", + "title": "ServiceName sets the name of the optionally generated service for the replicaset" } }, "title": "RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step" diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index 1b57b69024..fc79b378ff 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -3084,483 +3084,483 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 7605 bytes of a gzipped FileDescriptorProto + // 7614 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xd7, 0x75, 0xb0, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x9f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0xea, 0xc4, 0x86, 0x5b, 0x52, 0xda, 0xf5, - 0x6a, 0x2d, 0xed, 0x72, 0x2f, 0xb5, 0xbb, 0x89, 0x13, 0x27, 0x19, 0x91, 0x57, 0xd4, 0xec, 0x92, + 0x6a, 0x2d, 0xed, 0x6a, 0x2f, 0xb5, 0xbb, 0x89, 0x13, 0x27, 0x19, 0x91, 0x57, 0xd4, 0xec, 0x92, 0x33, 0xcc, 0xcc, 0x50, 0xbb, 0x72, 0x8c, 0xc4, 0x6e, 0x60, 0x37, 0x2d, 0x12, 0xc4, 0x6d, 0x12, 0x14, 0x45, 0xd1, 0x22, 0x28, 0x0c, 0xf4, 0x27, 0x7d, 0x0a, 0x5a, 0xf4, 0x25, 0x40, 0x8b, 0xe6, - 0xa7, 0xe9, 0x43, 0x8a, 0xa4, 0x40, 0x9b, 0xa4, 0x40, 0xd8, 0x5a, 0xe9, 0x4b, 0x8b, 0x16, 0x41, + 0xa7, 0xe9, 0x43, 0x8a, 0xa4, 0x40, 0x9b, 0xa4, 0x40, 0xd8, 0x9a, 0xe9, 0x4b, 0x8b, 0x16, 0x41, 0x81, 0x14, 0x45, 0xf6, 0xa9, 0xb8, 0xbf, 0x73, 0x67, 0x38, 0x94, 0x48, 0x71, 0xb4, 0x31, 0xda, - 0xbc, 0x91, 0xf7, 0x9c, 0x7b, 0xce, 0xb9, 0xbf, 0xe7, 0xdc, 0x73, 0xcf, 0x3d, 0x03, 0xeb, 0x0d, - 0x3b, 0xd8, 0xe9, 0x6c, 0x2d, 0xd5, 0xdc, 0xd6, 0xb2, 0xe5, 0x35, 0xdc, 0xb6, 0xe7, 0xde, 0x60, - 0x3f, 0xde, 0xe5, 0xb9, 0xcd, 0xa6, 0xdb, 0x09, 0xfc, 0xe5, 0xf6, 0xcd, 0xc6, 0xb2, 0xd5, 0xb6, - 0xfd, 0x65, 0x55, 0xb2, 0xfb, 0x1e, 0xab, 0xd9, 0xde, 0xb1, 0xde, 0xb3, 0xdc, 0x20, 0x0e, 0xf1, - 0xac, 0x80, 0xd4, 0x97, 0xda, 0x9e, 0x1b, 0xb8, 0xe8, 0xe9, 0x90, 0xda, 0x92, 0xa4, 0xc6, 0x7e, - 0x7c, 0x44, 0xd6, 0x5d, 0x6a, 0xdf, 0x6c, 0x2c, 0x51, 0x6a, 0x4b, 0xaa, 0x44, 0x52, 0x5b, 0x7c, - 0x97, 0x26, 0x4b, 0xc3, 0x6d, 0xb8, 0xcb, 0x8c, 0xe8, 0x56, 0x67, 0x9b, 0xfd, 0x63, 0x7f, 0xd8, - 0x2f, 0xce, 0x6c, 0xf1, 0xc1, 0x9b, 0x4f, 0xfa, 0x4b, 0xb6, 0x4b, 0x65, 0x5b, 0xde, 0xb2, 0x82, - 0xda, 0xce, 0xf2, 0x6e, 0x8f, 0x44, 0x8b, 0xa6, 0x86, 0x54, 0x73, 0x3d, 0x92, 0x84, 0xf3, 0x78, - 0x88, 0xd3, 0xb2, 0x6a, 0x3b, 0xb6, 0x43, 0xbc, 0xbd, 0xb0, 0xd5, 0x2d, 0x12, 0x58, 0x49, 0xb5, - 0x96, 0xfb, 0xd5, 0xf2, 0x3a, 0x4e, 0x60, 0xb7, 0x48, 0x4f, 0x85, 0xff, 0x7f, 0x58, 0x05, 0xbf, - 0xb6, 0x43, 0x5a, 0x56, 0x4f, 0xbd, 0xc7, 0xfa, 0xd5, 0xeb, 0x04, 0x76, 0x73, 0xd9, 0x76, 0x02, - 0x3f, 0xf0, 0xe2, 0x95, 0xcc, 0xaf, 0x67, 0xa1, 0x50, 0x5a, 0x2f, 0x57, 0x03, 0x2b, 0xe8, 0xf8, - 0xe8, 0x35, 0x03, 0xa6, 0x9a, 0xae, 0x55, 0x2f, 0x5b, 0x4d, 0xcb, 0xa9, 0x11, 0x6f, 0xc1, 0x78, + 0xbc, 0x91, 0xf7, 0x9c, 0x7b, 0xce, 0xb9, 0xbf, 0xe7, 0xdc, 0x73, 0xcf, 0x3d, 0x03, 0xeb, 0x75, + 0x3b, 0xd8, 0x6d, 0x6f, 0x2f, 0x55, 0xdd, 0xe6, 0xb2, 0xe5, 0xd5, 0xdd, 0x96, 0xe7, 0xde, 0x60, + 0x3f, 0xde, 0xe5, 0xb9, 0x8d, 0x86, 0xdb, 0x0e, 0xfc, 0xe5, 0xd6, 0xcd, 0xfa, 0xb2, 0xd5, 0xb2, + 0xfd, 0x65, 0x55, 0xb2, 0xf7, 0x1e, 0xab, 0xd1, 0xda, 0xb5, 0xde, 0xb3, 0x5c, 0x27, 0x0e, 0xf1, + 0xac, 0x80, 0xd4, 0x96, 0x5a, 0x9e, 0x1b, 0xb8, 0xe8, 0xe9, 0x90, 0xda, 0x92, 0xa4, 0xc6, 0x7e, + 0x7c, 0x44, 0xd6, 0x5d, 0x6a, 0xdd, 0xac, 0x2f, 0x51, 0x6a, 0x4b, 0xaa, 0x44, 0x52, 0x5b, 0x7c, + 0x97, 0x26, 0x4b, 0xdd, 0xad, 0xbb, 0xcb, 0x8c, 0xe8, 0x76, 0x7b, 0x87, 0xfd, 0x63, 0x7f, 0xd8, + 0x2f, 0xce, 0x6c, 0xf1, 0xc1, 0x9b, 0x4f, 0xfa, 0x4b, 0xb6, 0x4b, 0x65, 0x5b, 0xde, 0xb6, 0x82, + 0xea, 0xee, 0xf2, 0x5e, 0x8f, 0x44, 0x8b, 0xa6, 0x86, 0x54, 0x75, 0x3d, 0x92, 0x84, 0xf3, 0x78, + 0x88, 0xd3, 0xb4, 0xaa, 0xbb, 0xb6, 0x43, 0xbc, 0xfd, 0xb0, 0xd5, 0x4d, 0x12, 0x58, 0x49, 0xb5, + 0x96, 0xfb, 0xd5, 0xf2, 0xda, 0x4e, 0x60, 0x37, 0x49, 0x4f, 0x85, 0xff, 0x7f, 0x58, 0x05, 0xbf, + 0xba, 0x4b, 0x9a, 0x56, 0x4f, 0xbd, 0xc7, 0xfa, 0xd5, 0x6b, 0x07, 0x76, 0x63, 0xd9, 0x76, 0x02, + 0x3f, 0xf0, 0xe2, 0x95, 0xcc, 0xaf, 0x67, 0xa1, 0x50, 0x5a, 0x2f, 0x57, 0x02, 0x2b, 0x68, 0xfb, + 0xe8, 0x35, 0x03, 0xa6, 0x1a, 0xae, 0x55, 0x2b, 0x5b, 0x0d, 0xcb, 0xa9, 0x12, 0x6f, 0xc1, 0x78, 0xc0, 0x78, 0x78, 0xf2, 0xd1, 0xf5, 0xa5, 0x51, 0xc6, 0x6b, 0xa9, 0x74, 0xcb, 0xc7, 0xc4, 0x77, - 0x3b, 0x5e, 0x8d, 0x60, 0xb2, 0x5d, 0x9e, 0xff, 0x56, 0xb7, 0x78, 0xcf, 0x7e, 0xb7, 0x38, 0xb5, - 0xae, 0x71, 0xc2, 0x11, 0xbe, 0xe8, 0x8b, 0x06, 0xcc, 0xd5, 0x2c, 0xc7, 0xf2, 0xf6, 0x36, 0x2d, - 0xaf, 0x41, 0x82, 0x67, 0x3d, 0xb7, 0xd3, 0x5e, 0xc8, 0x1c, 0x83, 0x34, 0xf7, 0x0a, 0x69, 0xe6, - 0x56, 0xe2, 0xec, 0x70, 0xaf, 0x04, 0x4c, 0x2e, 0x3f, 0xb0, 0xb6, 0x9a, 0x44, 0x97, 0x2b, 0x7b, - 0x9c, 0x72, 0x55, 0xe3, 0xec, 0x70, 0xaf, 0x04, 0xe6, 0xab, 0x59, 0x98, 0x2b, 0xad, 0x97, 0x37, - 0x3d, 0x6b, 0x7b, 0xdb, 0xae, 0x61, 0xb7, 0x13, 0xd8, 0x4e, 0x03, 0xbd, 0x13, 0x26, 0x6c, 0xa7, - 0xe1, 0x11, 0xdf, 0x67, 0x03, 0x59, 0x28, 0xcf, 0x08, 0xa2, 0x13, 0x6b, 0xbc, 0x18, 0x4b, 0x38, - 0x7a, 0x02, 0x26, 0x7d, 0xe2, 0xed, 0xda, 0x35, 0x52, 0x71, 0xbd, 0x80, 0xf5, 0x74, 0xae, 0x7c, - 0x52, 0xa0, 0x4f, 0x56, 0x43, 0x10, 0xd6, 0xf1, 0x68, 0x35, 0xcf, 0x75, 0x03, 0x01, 0x67, 0x1d, - 0x51, 0x08, 0xab, 0xe1, 0x10, 0x84, 0x75, 0x3c, 0xf4, 0xba, 0x01, 0xb3, 0x7e, 0x60, 0xd7, 0x6e, - 0xda, 0x0e, 0xf1, 0xfd, 0x15, 0xd7, 0xd9, 0xb6, 0x1b, 0x0b, 0x39, 0xd6, 0x8b, 0x97, 0x46, 0xeb, - 0xc5, 0x6a, 0x8c, 0x6a, 0x79, 0x7e, 0xbf, 0x5b, 0x9c, 0x8d, 0x97, 0xe2, 0x1e, 0xee, 0x68, 0x15, - 0x66, 0x2d, 0xc7, 0x71, 0x03, 0x2b, 0xb0, 0x5d, 0xa7, 0xe2, 0x91, 0x6d, 0xfb, 0xf6, 0xc2, 0x18, - 0x6b, 0xce, 0x82, 0x68, 0xce, 0x6c, 0x29, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x55, 0x58, 0x28, 0xb5, - 0xb6, 0x2c, 0xdf, 0xb7, 0xea, 0xae, 0x17, 0x1b, 0x8d, 0x87, 0x21, 0xdf, 0xb2, 0xda, 0x6d, 0xdb, - 0x69, 0xd0, 0xe1, 0xc8, 0x3e, 0x5c, 0x28, 0x4f, 0xed, 0x77, 0x8b, 0xf9, 0x0d, 0x51, 0x86, 0x15, - 0xd4, 0xfc, 0x41, 0x06, 0x26, 0x4b, 0x8e, 0xd5, 0xdc, 0xf3, 0x6d, 0x1f, 0x77, 0x1c, 0xf4, 0x51, - 0xc8, 0xd3, 0xdd, 0xa5, 0x6e, 0x05, 0x96, 0x58, 0x91, 0xef, 0x5e, 0xe2, 0x8b, 0x7d, 0x49, 0x5f, - 0xec, 0x61, 0xbf, 0x50, 0xec, 0xa5, 0xdd, 0xf7, 0x2c, 0x5d, 0xde, 0xba, 0x41, 0x6a, 0xc1, 0x06, - 0x09, 0xac, 0x32, 0x12, 0xad, 0x80, 0xb0, 0x0c, 0x2b, 0xaa, 0xc8, 0x85, 0x31, 0xbf, 0x4d, 0x6a, - 0x62, 0x85, 0x6d, 0x8c, 0x38, 0x93, 0x43, 0xd1, 0xab, 0x6d, 0x52, 0x2b, 0x4f, 0x09, 0xd6, 0x63, - 0xf4, 0x1f, 0x66, 0x8c, 0xd0, 0x2d, 0x18, 0xf7, 0xd9, 0x9e, 0x23, 0x16, 0xcf, 0xe5, 0xf4, 0x58, - 0x32, 0xb2, 0xe5, 0x69, 0xc1, 0x74, 0x9c, 0xff, 0xc7, 0x82, 0x9d, 0xf9, 0x0f, 0x06, 0x9c, 0xd4, - 0xb0, 0x4b, 0x5e, 0xa3, 0xd3, 0x22, 0x4e, 0x80, 0x1e, 0x80, 0x31, 0xc7, 0x6a, 0x11, 0xb1, 0x50, - 0x94, 0xc8, 0x97, 0xac, 0x16, 0xc1, 0x0c, 0x82, 0x1e, 0x84, 0xdc, 0xae, 0xd5, 0xec, 0x10, 0xd6, - 0x49, 0x85, 0xf2, 0x09, 0x81, 0x92, 0xbb, 0x46, 0x0b, 0x31, 0x87, 0xa1, 0x97, 0xa0, 0xc0, 0x7e, - 0x9c, 0xf7, 0xdc, 0x56, 0x4a, 0x4d, 0x13, 0x12, 0x5e, 0x93, 0x64, 0xcb, 0x27, 0xf6, 0xbb, 0xc5, - 0x82, 0xfa, 0x8b, 0x43, 0x86, 0xe6, 0x3f, 0x1a, 0x30, 0xa3, 0x35, 0x6e, 0xdd, 0xf6, 0x03, 0xf4, - 0xa1, 0x9e, 0xc9, 0xb3, 0x34, 0xd8, 0xe4, 0xa1, 0xb5, 0xd9, 0xd4, 0x99, 0x15, 0x2d, 0xcd, 0xcb, - 0x12, 0x6d, 0xe2, 0x38, 0x90, 0xb3, 0x03, 0xd2, 0xf2, 0x17, 0x32, 0x0f, 0x64, 0x1f, 0x9e, 0x7c, - 0x74, 0x2d, 0xb5, 0x61, 0x0c, 0xfb, 0x77, 0x8d, 0xd2, 0xc7, 0x9c, 0x8d, 0xf9, 0x95, 0xb1, 0x48, - 0x0b, 0xe9, 0x8c, 0x42, 0x2e, 0x4c, 0xb4, 0x48, 0xe0, 0xd9, 0x35, 0xbe, 0xae, 0x26, 0x1f, 0x5d, - 0x1d, 0x4d, 0x8a, 0x0d, 0x46, 0x2c, 0xdc, 0x2c, 0xf9, 0x7f, 0x1f, 0x4b, 0x2e, 0x68, 0x07, 0xc6, - 0x2c, 0xaf, 0x21, 0xdb, 0x7c, 0x3e, 0x9d, 0xf1, 0x0d, 0xe7, 0x5c, 0xc9, 0x6b, 0xf8, 0x98, 0x71, - 0x40, 0xcb, 0x50, 0x08, 0x88, 0xd7, 0xb2, 0x1d, 0x2b, 0xe0, 0xbb, 0x6b, 0xbe, 0x3c, 0x27, 0xd0, - 0x0a, 0x9b, 0x12, 0x80, 0x43, 0x1c, 0xd4, 0x84, 0xf1, 0xba, 0xb7, 0x87, 0x3b, 0xce, 0xc2, 0x58, - 0x1a, 0x5d, 0xb1, 0xca, 0x68, 0x85, 0x8b, 0x89, 0xff, 0xc7, 0x82, 0x07, 0x7a, 0xc3, 0x80, 0xf9, - 0x16, 0xb1, 0xfc, 0x8e, 0x47, 0x68, 0x13, 0x30, 0x09, 0x88, 0x43, 0x77, 0xc3, 0x85, 0x1c, 0x63, - 0x8e, 0x47, 0x1d, 0x87, 0x5e, 0xca, 0xe5, 0xfb, 0x85, 0x28, 0xf3, 0x49, 0x50, 0x9c, 0x28, 0x8d, - 0xf9, 0x83, 0x31, 0x98, 0xeb, 0xd9, 0x21, 0xd0, 0xe3, 0x90, 0x6b, 0xef, 0x58, 0xbe, 0x5c, 0xf2, - 0x67, 0xe5, 0x7c, 0xab, 0xd0, 0xc2, 0x3b, 0xdd, 0xe2, 0x09, 0x59, 0x85, 0x15, 0x60, 0x8e, 0x4c, - 0x75, 0x6a, 0x8b, 0xf8, 0xbe, 0xd5, 0x90, 0xfb, 0x80, 0x36, 0x4d, 0x58, 0x31, 0x96, 0x70, 0xf4, - 0x2b, 0x06, 0x9c, 0xe0, 0x53, 0x06, 0x13, 0xbf, 0xd3, 0x0c, 0xe8, 0x5e, 0x47, 0xbb, 0xe5, 0x62, - 0x1a, 0xd3, 0x93, 0x93, 0x2c, 0x9f, 0x12, 0xdc, 0x4f, 0xe8, 0xa5, 0x3e, 0x8e, 0xf2, 0x45, 0xd7, - 0xa1, 0xe0, 0x07, 0x96, 0x17, 0x90, 0x7a, 0x29, 0x60, 0x5a, 0x6d, 0xf2, 0xd1, 0xff, 0x3b, 0xd8, - 0x26, 0xb0, 0x69, 0xb7, 0x08, 0xdf, 0x70, 0xaa, 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x97, 0x00, 0xbc, - 0x8e, 0x53, 0xed, 0xb4, 0x5a, 0x96, 0xb7, 0x27, 0x34, 0xf8, 0x85, 0xd1, 0x9a, 0x87, 0x15, 0xbd, - 0x50, 0x67, 0x85, 0x65, 0x58, 0xe3, 0x87, 0x5e, 0x31, 0xe0, 0x04, 0x9f, 0x89, 0x52, 0x82, 0xf1, - 0x94, 0x25, 0x98, 0xa3, 0x5d, 0xbb, 0xaa, 0xb3, 0xc0, 0x51, 0x8e, 0xe6, 0xdf, 0x45, 0xf5, 0x49, - 0x35, 0xa0, 0xd6, 0x75, 0x63, 0x0f, 0x7d, 0x10, 0xee, 0xf5, 0x3b, 0xb5, 0x1a, 0xf1, 0xfd, 0xed, - 0x4e, 0x13, 0x77, 0x9c, 0x0b, 0xb6, 0x1f, 0xb8, 0xde, 0xde, 0xba, 0xdd, 0xb2, 0x03, 0x36, 0xe3, - 0x72, 0xe5, 0x33, 0xfb, 0xdd, 0xe2, 0xbd, 0xd5, 0x7e, 0x48, 0xb8, 0x7f, 0x7d, 0x64, 0xc1, 0x7d, - 0x1d, 0xa7, 0x3f, 0x79, 0x6e, 0xbd, 0x15, 0xf7, 0xbb, 0xc5, 0xfb, 0xae, 0xf6, 0x47, 0xc3, 0x07, - 0xd1, 0x30, 0xff, 0xd5, 0x80, 0x59, 0xd9, 0xae, 0x4d, 0xd2, 0x6a, 0x37, 0xe9, 0xee, 0x72, 0xfc, - 0x86, 0x48, 0x10, 0x31, 0x44, 0x70, 0x3a, 0xea, 0x44, 0xca, 0xdf, 0xcf, 0x1a, 0x31, 0xff, 0xc5, - 0x80, 0xf9, 0x38, 0xf2, 0x5d, 0x50, 0x9e, 0x7e, 0x54, 0x79, 0x5e, 0x4a, 0xb7, 0xb5, 0x7d, 0x34, - 0xe8, 0x6b, 0x63, 0xbd, 0x6d, 0xfd, 0x9f, 0xae, 0x46, 0x43, 0xad, 0x98, 0xfd, 0x59, 0x6a, 0xc5, - 0xb1, 0xb7, 0x94, 0x56, 0xfc, 0x83, 0x31, 0x98, 0x2a, 0x39, 0x81, 0x5d, 0xda, 0xde, 0xb6, 0x1d, - 0x3b, 0xd8, 0x43, 0x9f, 0xc9, 0xc0, 0x72, 0xdb, 0x23, 0xdb, 0xc4, 0xf3, 0x48, 0x7d, 0xb5, 0xe3, - 0xd9, 0x4e, 0xa3, 0x5a, 0xdb, 0x21, 0xf5, 0x4e, 0xd3, 0x76, 0x1a, 0x6b, 0x0d, 0xc7, 0x55, 0xc5, - 0xe7, 0x6e, 0x93, 0x5a, 0x87, 0x35, 0x89, 0x2f, 0x8a, 0xd6, 0x68, 0x4d, 0xaa, 0x0c, 0xc7, 0xb4, - 0xfc, 0xd8, 0x7e, 0xb7, 0xb8, 0x3c, 0x64, 0x25, 0x3c, 0x6c, 0xd3, 0xd0, 0xa7, 0x33, 0xb0, 0xe4, - 0x91, 0x8f, 0x75, 0xec, 0xc1, 0x7b, 0x83, 0xef, 0x5a, 0xcd, 0x11, 0xd5, 0xcf, 0x50, 0x3c, 0xcb, - 0x8f, 0xee, 0x77, 0x8b, 0x43, 0xd6, 0xc1, 0x43, 0xb6, 0xcb, 0xfc, 0x5a, 0x06, 0x4e, 0x95, 0xda, - 0xed, 0x0d, 0xe2, 0xef, 0xc4, 0x0e, 0xb5, 0x9f, 0x33, 0x60, 0x7a, 0xd7, 0xf6, 0x82, 0x8e, 0xd5, - 0x94, 0x4e, 0x00, 0x3e, 0x25, 0xaa, 0x23, 0x2e, 0x67, 0xce, 0xed, 0x5a, 0x84, 0x74, 0x19, 0xed, - 0x77, 0x8b, 0xd3, 0xd1, 0x32, 0x1c, 0x63, 0x8f, 0x7e, 0xd3, 0x80, 0x59, 0x51, 0x74, 0xc9, 0xad, - 0x13, 0xdd, 0x73, 0x74, 0x35, 0x4d, 0x99, 0x14, 0x71, 0xee, 0x62, 0x88, 0x97, 0xe2, 0x1e, 0x21, - 0xcc, 0x7f, 0xcf, 0xc0, 0xe9, 0x3e, 0x34, 0xd0, 0xef, 0x1b, 0x30, 0xcf, 0xdd, 0x4d, 0x1a, 0x08, - 0x93, 0x6d, 0xd1, 0x9b, 0x1f, 0x48, 0x5b, 0x72, 0x4c, 0xd7, 0x02, 0x71, 0x6a, 0xa4, 0xbc, 0x40, - 0xb7, 0x8d, 0x95, 0x04, 0xd6, 0x38, 0x51, 0x20, 0x26, 0x29, 0x77, 0x40, 0xc5, 0x24, 0xcd, 0xdc, - 0x15, 0x49, 0xab, 0x09, 0xac, 0x71, 0xa2, 0x40, 0xe6, 0x2f, 0xc2, 0x7d, 0x07, 0x90, 0x3b, 0xfc, - 0xc4, 0x6f, 0xbe, 0xa0, 0x66, 0x7d, 0x74, 0xce, 0x0d, 0xe0, 0x2c, 0x30, 0x61, 0xdc, 0x73, 0x3b, - 0x01, 0xe1, 0xda, 0xad, 0x50, 0x06, 0xaa, 0x27, 0x30, 0x2b, 0xc1, 0x02, 0x62, 0x7e, 0xcd, 0x80, - 0xfc, 0x10, 0xfe, 0x87, 0x62, 0xd4, 0xff, 0x50, 0xe8, 0xf1, 0x3d, 0x04, 0xbd, 0xbe, 0x87, 0x67, - 0x47, 0x1b, 0x8d, 0x41, 0x7c, 0x0e, 0x3f, 0x36, 0x60, 0xae, 0xc7, 0x47, 0x81, 0x76, 0x60, 0xbe, - 0xed, 0xd6, 0xa5, 0x7d, 0x71, 0xc1, 0xf2, 0x77, 0x18, 0x4c, 0x34, 0xef, 0x71, 0x3a, 0x92, 0x95, - 0x04, 0xf8, 0x9d, 0x6e, 0x71, 0x41, 0x11, 0x89, 0x21, 0xe0, 0x44, 0x8a, 0xa8, 0x0d, 0xf9, 0x6d, - 0x9b, 0x34, 0xeb, 0xe1, 0x14, 0x1c, 0xd1, 0x92, 0x38, 0x2f, 0xa8, 0x71, 0xf7, 0x9c, 0xfc, 0x87, - 0x15, 0x17, 0xf3, 0x0a, 0x4c, 0x47, 0x9d, 0xb5, 0x03, 0x0c, 0xde, 0x19, 0xc8, 0x5a, 0x9e, 0x23, - 0x86, 0x6e, 0x52, 0x20, 0x64, 0x4b, 0xf8, 0x12, 0xa6, 0xe5, 0xe6, 0x4f, 0xc7, 0x60, 0xa6, 0xdc, - 0xec, 0x90, 0x67, 0x3d, 0x42, 0xe4, 0xf9, 0xb4, 0x04, 0x33, 0x6d, 0x8f, 0xec, 0xda, 0xe4, 0x56, - 0x95, 0x34, 0x49, 0x2d, 0x70, 0x3d, 0x41, 0xff, 0xb4, 0xa8, 0x3e, 0x53, 0x89, 0x82, 0x71, 0x1c, - 0x1f, 0x3d, 0x03, 0xd3, 0x56, 0x2d, 0xb0, 0x77, 0x89, 0xa2, 0xc0, 0x05, 0x78, 0x9b, 0xa0, 0x30, - 0x5d, 0x8a, 0x40, 0x71, 0x0c, 0x1b, 0x7d, 0x08, 0x16, 0xfc, 0x9a, 0xd5, 0x24, 0x57, 0xdb, 0x82, - 0xd5, 0xca, 0x0e, 0xa9, 0xdd, 0xac, 0xb8, 0xb6, 0x13, 0x08, 0x6f, 0xc4, 0x03, 0x82, 0xd2, 0x42, - 0xb5, 0x0f, 0x1e, 0xee, 0x4b, 0x01, 0xfd, 0xb9, 0x01, 0x67, 0xda, 0x1e, 0xa9, 0x78, 0x6e, 0xcb, - 0xa5, 0x6a, 0xa6, 0xe7, 0x88, 0x2e, 0x8e, 0xaa, 0xd7, 0x46, 0xd4, 0xa7, 0xbc, 0xa4, 0xd7, 0x45, - 0xf8, 0xf6, 0xfd, 0x6e, 0xf1, 0x4c, 0xe5, 0x20, 0x01, 0xf0, 0xc1, 0xf2, 0xa1, 0xbf, 0x34, 0xe0, - 0x6c, 0xdb, 0xf5, 0x83, 0x03, 0x9a, 0x90, 0x3b, 0xd6, 0x26, 0x98, 0xfb, 0xdd, 0xe2, 0xd9, 0xca, - 0x81, 0x12, 0xe0, 0x43, 0x24, 0x34, 0xf7, 0x27, 0x61, 0x4e, 0x9b, 0x7b, 0xe2, 0xfc, 0xfa, 0x14, - 0x9c, 0x90, 0x93, 0x21, 0x54, 0xeb, 0x85, 0xd0, 0xdf, 0x50, 0xd2, 0x81, 0x38, 0x8a, 0x4b, 0xe7, - 0x9d, 0x9a, 0x8a, 0xbc, 0x76, 0x6c, 0xde, 0x55, 0x22, 0x50, 0x1c, 0xc3, 0x46, 0x6b, 0x70, 0x52, - 0x94, 0x60, 0xd2, 0x6e, 0xda, 0x35, 0x6b, 0xc5, 0xed, 0x88, 0x29, 0x97, 0x2b, 0x9f, 0xde, 0xef, - 0x16, 0x4f, 0x56, 0x7a, 0xc1, 0x38, 0xa9, 0x0e, 0x5a, 0x87, 0x79, 0xab, 0x13, 0xb8, 0xaa, 0xfd, - 0xe7, 0x1c, 0xaa, 0x29, 0xea, 0x6c, 0x6a, 0xe5, 0xb9, 0x4a, 0x29, 0x25, 0xc0, 0x71, 0x62, 0x2d, - 0x54, 0x89, 0x51, 0xab, 0x92, 0x9a, 0xeb, 0xd4, 0xf9, 0x28, 0xe7, 0x42, 0x2b, 0xbc, 0x94, 0x80, - 0x83, 0x13, 0x6b, 0xa2, 0x26, 0x4c, 0xb7, 0xac, 0xdb, 0x57, 0x1d, 0x6b, 0xd7, 0xb2, 0x9b, 0x94, - 0x89, 0xf0, 0x61, 0xf4, 0x3f, 0x58, 0x77, 0x02, 0xbb, 0xb9, 0xc4, 0xaf, 0xf3, 0x96, 0xd6, 0x9c, - 0xe0, 0xb2, 0x57, 0x0d, 0xa8, 0xb5, 0xc6, 0x8d, 0xa3, 0x8d, 0x08, 0x2d, 0x1c, 0xa3, 0x8d, 0x2e, - 0xc3, 0x29, 0xb6, 0x1c, 0x57, 0xdd, 0x5b, 0xce, 0x2a, 0x69, 0x5a, 0x7b, 0xb2, 0x01, 0x13, 0xac, - 0x01, 0xf7, 0xee, 0x77, 0x8b, 0xa7, 0xaa, 0x49, 0x08, 0x38, 0xb9, 0x1e, 0xb2, 0xe0, 0xbe, 0x28, - 0x00, 0x93, 0x5d, 0xdb, 0xb7, 0x5d, 0x87, 0x7b, 0x22, 0xf2, 0xa1, 0x27, 0xa2, 0xda, 0x1f, 0x0d, - 0x1f, 0x44, 0x03, 0xfd, 0xb6, 0x01, 0xf3, 0x49, 0xcb, 0x70, 0xa1, 0x90, 0xc6, 0x65, 0x45, 0x6c, - 0x69, 0xf1, 0x19, 0x91, 0xb8, 0x29, 0x24, 0x0a, 0x81, 0x5e, 0x36, 0x60, 0xca, 0xd2, 0x4e, 0x51, - 0x0b, 0xc0, 0xa4, 0xba, 0x38, 0xea, 0x59, 0x3e, 0xa4, 0x58, 0x9e, 0xdd, 0xef, 0x16, 0x23, 0x27, - 0x35, 0x1c, 0xe1, 0x88, 0x7e, 0xd7, 0x80, 0x53, 0x89, 0x6b, 0x7c, 0x61, 0xf2, 0x38, 0x7a, 0x88, - 0x4d, 0x92, 0xe4, 0x3d, 0x27, 0x59, 0x0c, 0xf4, 0xba, 0xa1, 0x54, 0xd9, 0x86, 0xf4, 0xa6, 0x4c, - 0x31, 0xd1, 0xae, 0x8c, 0x78, 0x70, 0x0c, 0x0d, 0x02, 0x49, 0xb8, 0x7c, 0x52, 0xd3, 0x8c, 0xb2, - 0x10, 0xc7, 0xd9, 0xa3, 0xcf, 0x1a, 0x52, 0x35, 0x2a, 0x89, 0x4e, 0x1c, 0x97, 0x44, 0x28, 0xd4, - 0xb4, 0x4a, 0xa0, 0x18, 0x73, 0xf4, 0x61, 0x58, 0xb4, 0xb6, 0x5c, 0x2f, 0x48, 0x5c, 0x7c, 0x0b, - 0xd3, 0x6c, 0x19, 0x9d, 0xdd, 0xef, 0x16, 0x17, 0x4b, 0x7d, 0xb1, 0xf0, 0x01, 0x14, 0xcc, 0x3f, - 0xce, 0xc1, 0x14, 0x37, 0xf2, 0x85, 0xea, 0xfa, 0xaa, 0x01, 0xf7, 0xd7, 0x3a, 0x9e, 0x47, 0x9c, - 0xa0, 0x1a, 0x90, 0x76, 0xaf, 0xe2, 0x32, 0x8e, 0x55, 0x71, 0x3d, 0xb0, 0xdf, 0x2d, 0xde, 0xbf, - 0x72, 0x00, 0x7f, 0x7c, 0xa0, 0x74, 0xe8, 0x6f, 0x0c, 0x30, 0x05, 0x42, 0xd9, 0xaa, 0xdd, 0x6c, - 0x78, 0x6e, 0xc7, 0xa9, 0xf7, 0x36, 0x22, 0x73, 0xac, 0x8d, 0x78, 0x68, 0xbf, 0x5b, 0x34, 0x57, - 0x0e, 0x95, 0x02, 0x0f, 0x20, 0x29, 0x7a, 0x16, 0xe6, 0x04, 0xd6, 0xb9, 0xdb, 0x6d, 0xe2, 0xd9, - 0xd4, 0x9c, 0x16, 0xf7, 0xe9, 0x61, 0x88, 0x42, 0x1c, 0x01, 0xf7, 0xd6, 0x41, 0x3e, 0x4c, 0xdc, - 0x22, 0x76, 0x63, 0x27, 0x90, 0xe6, 0xd3, 0x88, 0x71, 0x09, 0xe2, 0xc0, 0x7f, 0x9d, 0xd3, 0x2c, - 0x4f, 0xee, 0x77, 0x8b, 0x13, 0xe2, 0x0f, 0x96, 0x9c, 0xd0, 0x25, 0x98, 0xe6, 0x47, 0xb0, 0x8a, - 0xed, 0x34, 0x2a, 0xae, 0xc3, 0x6f, 0xf3, 0x0b, 0xe5, 0x87, 0xa4, 0xc2, 0xaf, 0x46, 0xa0, 0x77, - 0xba, 0xc5, 0x29, 0xf9, 0x7b, 0x73, 0xaf, 0x4d, 0x70, 0xac, 0xb6, 0xf9, 0xcd, 0x71, 0x00, 0x39, - 0x5d, 0x49, 0x1b, 0xfd, 0x3f, 0x28, 0xf8, 0x24, 0xe0, 0x5c, 0x85, 0xf3, 0x9c, 0xdf, 0x49, 0xc8, - 0x42, 0x1c, 0xc2, 0xd1, 0x4d, 0xc8, 0xb5, 0xad, 0x8e, 0x4f, 0xc4, 0xe0, 0x5f, 0x4c, 0x65, 0xf0, - 0x2b, 0x94, 0x22, 0x3f, 0x73, 0xb1, 0x9f, 0x98, 0xf3, 0x40, 0x9f, 0x32, 0x00, 0x48, 0x74, 0xc0, - 0x46, 0xf6, 0x7d, 0x08, 0x96, 0xe1, 0x98, 0xd2, 0x3e, 0x28, 0x4f, 0xef, 0x77, 0x8b, 0xa0, 0x0d, - 0xbd, 0xc6, 0x16, 0xdd, 0x82, 0xbc, 0x25, 0xf7, 0xfc, 0xb1, 0xe3, 0xd8, 0xf3, 0xd9, 0x51, 0x48, - 0x4d, 0x5a, 0xc5, 0x0c, 0x7d, 0xda, 0x80, 0x69, 0x9f, 0x04, 0x62, 0xa8, 0xe8, 0xce, 0x23, 0x0c, - 0xde, 0x11, 0x27, 0x5d, 0x35, 0x42, 0x93, 0xef, 0xa0, 0xd1, 0x32, 0x1c, 0xe3, 0x2b, 0x45, 0xb9, - 0x40, 0xac, 0x3a, 0xf1, 0xd8, 0x49, 0x5b, 0x58, 0x52, 0xa3, 0x8b, 0xa2, 0xd1, 0x54, 0xa2, 0x68, - 0x65, 0x38, 0xc6, 0x57, 0x8a, 0xb2, 0x61, 0x7b, 0x9e, 0x2b, 0x44, 0xc9, 0xa7, 0x24, 0x8a, 0x46, - 0x53, 0x89, 0xa2, 0x95, 0xe1, 0x18, 0x5f, 0xf3, 0x6f, 0xa7, 0x60, 0x5a, 0x2e, 0xa4, 0xd0, 0xb2, - 0xe7, 0x8e, 0x9d, 0x3e, 0x96, 0xfd, 0x8a, 0x0e, 0xc4, 0x51, 0x5c, 0x5a, 0x99, 0x2f, 0xd5, 0xa8, - 0x61, 0xaf, 0x2a, 0x57, 0x75, 0x20, 0x8e, 0xe2, 0xa2, 0x16, 0xe4, 0xfc, 0x80, 0xb4, 0xe5, 0x3d, - 0xe8, 0x88, 0xd7, 0x74, 0xe1, 0xfe, 0x10, 0xde, 0x74, 0xd0, 0x7f, 0x3e, 0xe6, 0x5c, 0x98, 0x6f, - 0x32, 0x88, 0xb8, 0x2b, 0xc5, 0xe2, 0x48, 0x67, 0x7d, 0x46, 0x3d, 0xa1, 0x7c, 0x34, 0xa2, 0x65, - 0x38, 0xc6, 0x3e, 0xc1, 0xd8, 0xcf, 0x1d, 0xa3, 0xb1, 0xff, 0x3c, 0xe4, 0x5b, 0xd6, 0xed, 0x6a, - 0xc7, 0x6b, 0x1c, 0xfd, 0x50, 0x21, 0x42, 0x94, 0x38, 0x15, 0xac, 0xe8, 0xa1, 0x57, 0x0c, 0x6d, - 0xcb, 0x99, 0x60, 0xc4, 0xaf, 0xa7, 0xbb, 0xe5, 0x28, 0x5d, 0xd9, 0x77, 0xf3, 0xe9, 0x31, 0xbd, - 0xf3, 0x77, 0xdd, 0xf4, 0xa6, 0x66, 0x24, 0x5f, 0x20, 0xca, 0x8c, 0x2c, 0x1c, 0xab, 0x19, 0xb9, - 0x12, 0x61, 0x86, 0x63, 0xcc, 0x99, 0x3c, 0x7c, 0xcd, 0x29, 0x79, 0xe0, 0x58, 0xe5, 0xa9, 0x46, - 0x98, 0xe1, 0x18, 0xf3, 0xfe, 0xe7, 0xcd, 0xc9, 0xe3, 0x39, 0x6f, 0x4e, 0xa5, 0x70, 0xde, 0x3c, - 0xd8, 0x14, 0x3f, 0x31, 0xaa, 0x29, 0x8e, 0x2e, 0x02, 0xaa, 0xef, 0x39, 0x56, 0xcb, 0xae, 0x89, - 0xcd, 0x92, 0xa9, 0xcd, 0x69, 0xe6, 0x8f, 0x58, 0x14, 0x1b, 0x19, 0x5a, 0xed, 0xc1, 0xc0, 0x09, - 0xb5, 0x50, 0x00, 0xf9, 0xb6, 0xb4, 0xb8, 0x66, 0xd2, 0x98, 0xfd, 0xd2, 0x02, 0xe3, 0x57, 0xe5, - 0x74, 0xe1, 0xc9, 0x12, 0xac, 0x38, 0x99, 0xff, 0x69, 0xc0, 0xec, 0x4a, 0xd3, 0xed, 0xd4, 0xaf, - 0x5b, 0x41, 0x6d, 0x87, 0xdf, 0xeb, 0xa2, 0x67, 0x20, 0x6f, 0x3b, 0x01, 0xf1, 0x76, 0xad, 0xa6, - 0xd0, 0x28, 0xa6, 0xbc, 0xfa, 0x5e, 0x13, 0xe5, 0x77, 0xba, 0xc5, 0xe9, 0xd5, 0x8e, 0xc7, 0x02, - 0x26, 0xf9, 0xfe, 0x82, 0x55, 0x1d, 0xf4, 0x25, 0x03, 0xe6, 0xf8, 0xcd, 0xf0, 0xaa, 0x15, 0x58, - 0x57, 0x3a, 0xc4, 0xb3, 0x89, 0xbc, 0x1b, 0x1e, 0x71, 0x6b, 0x89, 0xcb, 0x2a, 0x19, 0xec, 0x85, - 0xa6, 0xf5, 0x46, 0x9c, 0x33, 0xee, 0x15, 0xc6, 0xfc, 0x7c, 0x16, 0xee, 0xed, 0x4b, 0x0b, 0x2d, - 0x42, 0xc6, 0xae, 0x8b, 0xa6, 0x83, 0xa0, 0x9b, 0x59, 0xab, 0xe3, 0x8c, 0x5d, 0x47, 0x4b, 0xcc, - 0x4a, 0xf4, 0x88, 0xef, 0xcb, 0x6b, 0xc2, 0x82, 0x32, 0xe8, 0x44, 0x29, 0xd6, 0x30, 0x50, 0x11, - 0x72, 0x4d, 0x6b, 0x8b, 0x34, 0xc5, 0x09, 0x80, 0xd9, 0x9d, 0xeb, 0xb4, 0x00, 0xf3, 0x72, 0xf4, - 0xcb, 0x06, 0x00, 0x17, 0x90, 0x9e, 0x1f, 0x84, 0x5e, 0xc3, 0xe9, 0x76, 0x13, 0xa5, 0xcc, 0xa5, - 0x0c, 0xff, 0x63, 0x8d, 0x2b, 0xda, 0x84, 0x71, 0x6a, 0x82, 0xba, 0xf5, 0x23, 0xab, 0x31, 0x76, - 0x2d, 0x52, 0x61, 0x34, 0xb0, 0xa0, 0x45, 0xfb, 0xca, 0x23, 0x41, 0xc7, 0x73, 0x68, 0xd7, 0x32, - 0xc5, 0x95, 0xe7, 0x52, 0x60, 0x55, 0x8a, 0x35, 0x0c, 0xf3, 0xcf, 0x32, 0x30, 0x9f, 0x24, 0x3a, - 0xd5, 0x0f, 0xe3, 0x5c, 0x5a, 0x71, 0x98, 0x7d, 0x7f, 0xfa, 0xfd, 0x23, 0x82, 0x1c, 0x54, 0x28, - 0x80, 0x08, 0xc3, 0x12, 0x7c, 0xd1, 0xfb, 0x55, 0x0f, 0x65, 0x8e, 0xd8, 0x43, 0x8a, 0x72, 0xac, - 0x97, 0x1e, 0x80, 0x31, 0x9f, 0x8e, 0x7c, 0x36, 0x7a, 0xe5, 0xc0, 0xc6, 0x88, 0x41, 0x28, 0x46, - 0xc7, 0xb1, 0x03, 0x11, 0xc5, 0xac, 0x30, 0xae, 0x3a, 0x76, 0x80, 0x19, 0xc4, 0xfc, 0x62, 0x06, - 0x16, 0xfb, 0x37, 0x0a, 0x7d, 0xd1, 0x00, 0xa8, 0xd3, 0x03, 0x06, 0x9d, 0x92, 0x32, 0x28, 0xc4, - 0x3a, 0xae, 0x3e, 0x5c, 0x95, 0x9c, 0xc2, 0x08, 0x21, 0x55, 0xe4, 0x63, 0x4d, 0x10, 0xf4, 0xa8, - 0x9c, 0xfa, 0x97, 0xac, 0x96, 0x34, 0x40, 0x55, 0x9d, 0x0d, 0x05, 0xc1, 0x1a, 0x16, 0x3d, 0x41, - 0x3a, 0x56, 0x8b, 0xf8, 0x6d, 0x4b, 0x85, 0xa9, 0xb3, 0x13, 0xe4, 0x25, 0x59, 0x88, 0x43, 0xb8, - 0xd9, 0x84, 0x07, 0x07, 0x90, 0x33, 0xa5, 0x90, 0x61, 0xf3, 0x3f, 0x0c, 0x38, 0xbd, 0xd2, 0xec, - 0xf8, 0x01, 0xf1, 0xfe, 0xd7, 0x04, 0x5c, 0xfd, 0x97, 0x01, 0xf7, 0xf5, 0x69, 0xf3, 0x5d, 0x88, - 0xbb, 0x7a, 0x31, 0x1a, 0x77, 0x75, 0x75, 0xd4, 0x29, 0x9d, 0xd8, 0x8e, 0x3e, 0xe1, 0x57, 0x01, - 0x9c, 0xa0, 0xbb, 0x56, 0xdd, 0x6d, 0xa4, 0xa4, 0x37, 0x1f, 0x84, 0xdc, 0xc7, 0xa8, 0xfe, 0x89, - 0xcf, 0x31, 0xa6, 0x94, 0x30, 0x87, 0x99, 0x4f, 0x83, 0x08, 0x52, 0x8a, 0x2d, 0x1e, 0x63, 0x90, - 0xc5, 0x63, 0xfe, 0x7d, 0x06, 0x34, 0xcf, 0xc3, 0x5d, 0x98, 0x94, 0x4e, 0x64, 0x52, 0x8e, 0x78, - 0x6a, 0xd6, 0xfc, 0x28, 0xfd, 0x5e, 0x23, 0xec, 0xc6, 0x5e, 0x23, 0x5c, 0x4a, 0x8d, 0xe3, 0xc1, - 0x8f, 0x11, 0xbe, 0x67, 0xc0, 0x7d, 0x21, 0x72, 0xaf, 0x53, 0xf0, 0xf0, 0x1d, 0xe6, 0x09, 0x98, - 0xb4, 0xc2, 0x6a, 0x62, 0x0e, 0xa8, 0x07, 0x38, 0x1a, 0x45, 0xac, 0xe3, 0x85, 0xb1, 0xcf, 0xd9, - 0x23, 0xc6, 0x3e, 0x8f, 0x1d, 0x1c, 0xfb, 0x6c, 0xfe, 0x24, 0x03, 0x67, 0x7a, 0x5b, 0x26, 0xd7, - 0xc6, 0x60, 0x77, 0xe6, 0x4f, 0xc2, 0x54, 0x20, 0x2a, 0x68, 0x3b, 0xbd, 0x7a, 0x3e, 0xb6, 0xa9, - 0xc1, 0x70, 0x04, 0x93, 0xd6, 0xac, 0xf1, 0x55, 0x59, 0xad, 0xb9, 0x6d, 0x19, 0x39, 0xaf, 0x6a, - 0xae, 0x68, 0x30, 0x1c, 0xc1, 0x54, 0x31, 0x89, 0x63, 0xc7, 0x1e, 0x93, 0x58, 0x85, 0x53, 0x32, - 0x0a, 0xeb, 0xbc, 0xeb, 0xad, 0xb8, 0xad, 0x76, 0x93, 0x88, 0xd8, 0x79, 0x2a, 0xec, 0x19, 0x51, - 0xe5, 0x14, 0x4e, 0x42, 0xc2, 0xc9, 0x75, 0xcd, 0xef, 0x65, 0xe1, 0x64, 0xd8, 0xed, 0x2b, 0xae, - 0x53, 0xb7, 0x59, 0x2c, 0xdb, 0x53, 0x30, 0x16, 0xec, 0xb5, 0x65, 0x67, 0xff, 0x1f, 0x29, 0xce, - 0xe6, 0x5e, 0x9b, 0x8e, 0xf6, 0xe9, 0x84, 0x2a, 0xcc, 0x2d, 0xcb, 0x2a, 0xa1, 0x75, 0xb5, 0x3a, - 0xf8, 0x08, 0x3c, 0x1e, 0x9d, 0xcd, 0x77, 0xba, 0xc5, 0x84, 0xd7, 0x93, 0x4b, 0x8a, 0x52, 0x74, - 0xce, 0xa3, 0x1b, 0x30, 0xdd, 0xb4, 0xfc, 0xe0, 0x6a, 0xbb, 0x6e, 0x05, 0x64, 0xd3, 0x6e, 0x11, - 0xb1, 0xe6, 0x86, 0x09, 0x48, 0x57, 0xf7, 0xc8, 0xeb, 0x11, 0x4a, 0x38, 0x46, 0x19, 0xed, 0x02, - 0xa2, 0x25, 0x9b, 0x9e, 0xe5, 0xf8, 0xbc, 0x55, 0x94, 0xdf, 0xf0, 0x01, 0xf0, 0xea, 0x58, 0xb6, - 0xde, 0x43, 0x0d, 0x27, 0x70, 0x40, 0x0f, 0xc1, 0xb8, 0x47, 0x2c, 0x5f, 0x0c, 0x66, 0x21, 0x5c, - 0xff, 0x98, 0x95, 0x62, 0x01, 0xd5, 0x17, 0xd4, 0xf8, 0x21, 0x0b, 0xea, 0x87, 0x06, 0x4c, 0x87, - 0xc3, 0x74, 0x17, 0x94, 0x64, 0x2b, 0xaa, 0x24, 0x2f, 0xa4, 0xb5, 0x25, 0xf6, 0xd1, 0x8b, 0x7f, - 0x35, 0xae, 0xb7, 0x8f, 0x05, 0x24, 0x7f, 0x1c, 0x0a, 0x72, 0x55, 0x4b, 0xeb, 0x73, 0xc4, 0xd3, - 0x6d, 0xc4, 0x2e, 0xd1, 0x1e, 0xd2, 0x08, 0x26, 0x38, 0xe4, 0x47, 0xd5, 0x72, 0x5d, 0xa8, 0x5c, - 0x31, 0xed, 0x95, 0x5a, 0x96, 0xaa, 0x38, 0x49, 0x2d, 0xcb, 0x3a, 0xe8, 0x2a, 0x9c, 0x6e, 0x7b, - 0x2e, 0x7b, 0x5c, 0xb9, 0x4a, 0xac, 0x7a, 0xd3, 0x76, 0x88, 0x74, 0x21, 0xf0, 0x30, 0x86, 0xfb, - 0xf6, 0xbb, 0xc5, 0xd3, 0x95, 0x64, 0x14, 0xdc, 0xaf, 0x6e, 0xf4, 0x41, 0xd0, 0xd8, 0x00, 0x0f, - 0x82, 0x7e, 0x55, 0x39, 0xea, 0x88, 0x2f, 0x9e, 0xe5, 0x7c, 0x30, 0xad, 0xa1, 0x4c, 0xd8, 0xd6, - 0xc3, 0x29, 0x55, 0x12, 0x4c, 0xb1, 0x62, 0xdf, 0xdf, 0x1b, 0x34, 0x7e, 0x44, 0x6f, 0x50, 0x18, - 0xd7, 0x3d, 0xf1, 0xb3, 0x8c, 0xeb, 0xce, 0xbf, 0xa5, 0xe2, 0xba, 0x5f, 0xcd, 0xc1, 0x6c, 0xdc, - 0x02, 0x39, 0xfe, 0xc7, 0x4e, 0xbf, 0x61, 0xc0, 0xac, 0x5c, 0x3d, 0x9c, 0x27, 0x91, 0x7e, 0xfe, - 0xf5, 0x94, 0x16, 0x2d, 0xb7, 0xa5, 0xd4, 0x73, 0xdc, 0xcd, 0x18, 0x37, 0xdc, 0xc3, 0x1f, 0xbd, - 0x00, 0x93, 0xca, 0x1d, 0x7e, 0xa4, 0x97, 0x4f, 0x33, 0xcc, 0x8a, 0x0a, 0x49, 0x60, 0x9d, 0x1e, - 0x7a, 0xd5, 0x00, 0xa8, 0x49, 0x35, 0x27, 0x57, 0xd7, 0x95, 0xb4, 0x56, 0x97, 0x52, 0xa0, 0xa1, - 0xb1, 0xac, 0x8a, 0x7c, 0xac, 0x31, 0x46, 0x9f, 0x67, 0x8e, 0x70, 0x65, 0xdd, 0xd1, 0xf5, 0x94, - 0x1d, 0x3d, 0x14, 0xf7, 0x00, 0xc3, 0x34, 0x34, 0xa5, 0x34, 0x90, 0x8f, 0x23, 0x42, 0x98, 0x4f, - 0x81, 0x0a, 0x9e, 0xa4, 0xdb, 0x16, 0x0b, 0x9f, 0xac, 0x58, 0xc1, 0x8e, 0x98, 0x82, 0x6a, 0xdb, - 0x3a, 0x2f, 0x01, 0x38, 0xc4, 0x31, 0x3f, 0x0a, 0xd3, 0xcf, 0x7a, 0x56, 0x7b, 0xc7, 0x66, 0x0e, - 0x67, 0x7a, 0x4e, 0x7a, 0x27, 0x4c, 0x58, 0xf5, 0x7a, 0xd2, 0x63, 0xf6, 0x12, 0x2f, 0xc6, 0x12, - 0x3e, 0xd8, 0x91, 0xe8, 0x9b, 0x06, 0xa0, 0xf0, 0xd2, 0xce, 0x76, 0x1a, 0x1b, 0xf4, 0xb4, 0x4f, - 0xcf, 0x47, 0x3b, 0xac, 0x34, 0xe9, 0x7c, 0x74, 0x41, 0x41, 0xb0, 0x86, 0x85, 0x5e, 0x82, 0x49, - 0xfe, 0xef, 0x9a, 0x3a, 0xec, 0x8f, 0xfc, 0x14, 0x96, 0x2b, 0x14, 0x26, 0x13, 0x9f, 0x85, 0x17, - 0x42, 0x0e, 0x58, 0x67, 0x47, 0xbb, 0x6a, 0xcd, 0xd9, 0x6e, 0x76, 0x6e, 0xd7, 0xb7, 0xc2, 0xae, - 0x6a, 0x7b, 0xee, 0xb6, 0xdd, 0x24, 0xf1, 0xae, 0xaa, 0xf0, 0x62, 0x2c, 0xe1, 0x83, 0x75, 0xd5, - 0xd7, 0x0d, 0x98, 0x5f, 0xf3, 0x03, 0xdb, 0x5d, 0x25, 0x7e, 0x40, 0xd5, 0x0a, 0xdd, 0x7c, 0x3a, - 0xcd, 0x41, 0xe2, 0xa0, 0x57, 0x61, 0x56, 0x5c, 0x20, 0x76, 0xb6, 0x7c, 0x12, 0x68, 0x76, 0xbc, - 0x5a, 0xc7, 0x2b, 0x31, 0x38, 0xee, 0xa9, 0x41, 0xa9, 0x88, 0x9b, 0xc4, 0x90, 0x4a, 0x36, 0x4a, - 0xa5, 0x1a, 0x83, 0xe3, 0x9e, 0x1a, 0xe6, 0x77, 0xb2, 0x70, 0x92, 0x35, 0x23, 0xf6, 0x86, 0xe1, - 0xb3, 0xfd, 0xde, 0x30, 0x8c, 0xb8, 0x94, 0x19, 0xaf, 0x23, 0xbc, 0x60, 0xf8, 0x75, 0x03, 0x66, - 0xea, 0xd1, 0x9e, 0x4e, 0xc7, 0x3d, 0x93, 0x34, 0x86, 0x3c, 0x5e, 0x2a, 0x56, 0x88, 0xe3, 0xfc, - 0xd1, 0x17, 0x0c, 0x98, 0x89, 0x8a, 0x29, 0x77, 0xf7, 0x63, 0xe8, 0x24, 0x15, 0xe0, 0x1c, 0x2d, - 0xf7, 0x71, 0x5c, 0x04, 0xf3, 0xdb, 0x19, 0x31, 0xa4, 0xc7, 0x11, 0xa0, 0x8f, 0x6e, 0x41, 0x21, - 0x68, 0xfa, 0xbc, 0x50, 0xb4, 0x76, 0xc4, 0x13, 0xe1, 0xe6, 0x7a, 0x95, 0xdf, 0xdd, 0x87, 0x46, - 0x9b, 0x28, 0xa1, 0xc6, 0xa7, 0xe4, 0xc5, 0x18, 0xd7, 0xda, 0x82, 0x71, 0x2a, 0x47, 0xd1, 0xcd, - 0x95, 0x4a, 0x9c, 0xb1, 0x28, 0xa1, 0x8c, 0x25, 0x2f, 0xf3, 0xcb, 0x06, 0x14, 0x2e, 0xba, 0x72, + 0xdb, 0x5e, 0x95, 0x60, 0xb2, 0x53, 0x9e, 0xff, 0x56, 0xa7, 0x78, 0x4f, 0xb7, 0x53, 0x9c, 0x5a, + 0xd7, 0x38, 0xe1, 0x08, 0x5f, 0xf4, 0x45, 0x03, 0xe6, 0xaa, 0x96, 0x63, 0x79, 0xfb, 0x5b, 0x96, + 0x57, 0x27, 0xc1, 0xb3, 0x9e, 0xdb, 0x6e, 0x2d, 0x64, 0x8e, 0x41, 0x9a, 0x7b, 0x85, 0x34, 0x73, + 0x2b, 0x71, 0x76, 0xb8, 0x57, 0x02, 0x26, 0x97, 0x1f, 0x58, 0xdb, 0x0d, 0xa2, 0xcb, 0x95, 0x3d, + 0x4e, 0xb9, 0x2a, 0x71, 0x76, 0xb8, 0x57, 0x02, 0xf3, 0xd5, 0x2c, 0xcc, 0x95, 0xd6, 0xcb, 0x5b, + 0x9e, 0xb5, 0xb3, 0x63, 0x57, 0xb1, 0xdb, 0x0e, 0x6c, 0xa7, 0x8e, 0xde, 0x09, 0x13, 0xb6, 0x53, + 0xf7, 0x88, 0xef, 0xb3, 0x81, 0x2c, 0x94, 0x67, 0x04, 0xd1, 0x89, 0x35, 0x5e, 0x8c, 0x25, 0x1c, + 0x3d, 0x01, 0x93, 0x3e, 0xf1, 0xf6, 0xec, 0x2a, 0xd9, 0x74, 0xbd, 0x80, 0xf5, 0x74, 0xae, 0x7c, + 0x52, 0xa0, 0x4f, 0x56, 0x42, 0x10, 0xd6, 0xf1, 0x68, 0x35, 0xcf, 0x75, 0x03, 0x01, 0x67, 0x1d, + 0x51, 0x08, 0xab, 0xe1, 0x10, 0x84, 0x75, 0x3c, 0xf4, 0xba, 0x01, 0xb3, 0x7e, 0x60, 0x57, 0x6f, + 0xda, 0x0e, 0xf1, 0xfd, 0x15, 0xd7, 0xd9, 0xb1, 0xeb, 0x0b, 0x39, 0xd6, 0x8b, 0x97, 0x46, 0xeb, + 0xc5, 0x4a, 0x8c, 0x6a, 0x79, 0xbe, 0xdb, 0x29, 0xce, 0xc6, 0x4b, 0x71, 0x0f, 0x77, 0xb4, 0x0a, + 0xb3, 0x96, 0xe3, 0xb8, 0x81, 0x15, 0xd8, 0xae, 0xb3, 0xe9, 0x91, 0x1d, 0xfb, 0xf6, 0xc2, 0x18, + 0x6b, 0xce, 0x82, 0x68, 0xce, 0x6c, 0x29, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x55, 0x58, 0x28, 0x35, + 0xb7, 0x2d, 0xdf, 0xb7, 0x6a, 0xae, 0x17, 0x1b, 0x8d, 0x87, 0x21, 0xdf, 0xb4, 0x5a, 0x2d, 0xdb, + 0xa9, 0xd3, 0xe1, 0xc8, 0x3e, 0x5c, 0x28, 0x4f, 0x75, 0x3b, 0xc5, 0xfc, 0x86, 0x28, 0xc3, 0x0a, + 0x6a, 0xfe, 0x20, 0x03, 0x93, 0x25, 0xc7, 0x6a, 0xec, 0xfb, 0xb6, 0x8f, 0xdb, 0x0e, 0xfa, 0x28, + 0xe4, 0xe9, 0xee, 0x52, 0xb3, 0x02, 0x4b, 0xac, 0xc8, 0x77, 0x2f, 0xf1, 0xc5, 0xbe, 0xa4, 0x2f, + 0xf6, 0xb0, 0x5f, 0x28, 0xf6, 0xd2, 0xde, 0x7b, 0x96, 0x2e, 0x6f, 0xdf, 0x20, 0xd5, 0x60, 0x83, + 0x04, 0x56, 0x19, 0x89, 0x56, 0x40, 0x58, 0x86, 0x15, 0x55, 0xe4, 0xc2, 0x98, 0xdf, 0x22, 0x55, + 0xb1, 0xc2, 0x36, 0x46, 0x9c, 0xc9, 0xa1, 0xe8, 0x95, 0x16, 0xa9, 0x96, 0xa7, 0x04, 0xeb, 0x31, + 0xfa, 0x0f, 0x33, 0x46, 0xe8, 0x16, 0x8c, 0xfb, 0x6c, 0xcf, 0x11, 0x8b, 0xe7, 0x72, 0x7a, 0x2c, + 0x19, 0xd9, 0xf2, 0xb4, 0x60, 0x3a, 0xce, 0xff, 0x63, 0xc1, 0xce, 0xfc, 0x07, 0x03, 0x4e, 0x6a, + 0xd8, 0x25, 0xaf, 0xde, 0x6e, 0x12, 0x27, 0x40, 0x0f, 0xc0, 0x98, 0x63, 0x35, 0x89, 0x58, 0x28, + 0x4a, 0xe4, 0x4b, 0x56, 0x93, 0x60, 0x06, 0x41, 0x0f, 0x42, 0x6e, 0xcf, 0x6a, 0xb4, 0x09, 0xeb, + 0xa4, 0x42, 0xf9, 0x84, 0x40, 0xc9, 0x5d, 0xa3, 0x85, 0x98, 0xc3, 0xd0, 0x4b, 0x50, 0x60, 0x3f, + 0xce, 0x7b, 0x6e, 0x33, 0xa5, 0xa6, 0x09, 0x09, 0xaf, 0x49, 0xb2, 0xe5, 0x13, 0xdd, 0x4e, 0xb1, + 0xa0, 0xfe, 0xe2, 0x90, 0xa1, 0xf9, 0x8f, 0x06, 0xcc, 0x68, 0x8d, 0x5b, 0xb7, 0xfd, 0x00, 0x7d, + 0xa8, 0x67, 0xf2, 0x2c, 0x0d, 0x36, 0x79, 0x68, 0x6d, 0x36, 0x75, 0x66, 0x45, 0x4b, 0xf3, 0xb2, + 0x44, 0x9b, 0x38, 0x0e, 0xe4, 0xec, 0x80, 0x34, 0xfd, 0x85, 0xcc, 0x03, 0xd9, 0x87, 0x27, 0x1f, + 0x5d, 0x4b, 0x6d, 0x18, 0xc3, 0xfe, 0x5d, 0xa3, 0xf4, 0x31, 0x67, 0x63, 0x7e, 0x65, 0x2c, 0xd2, + 0x42, 0x3a, 0xa3, 0x90, 0x0b, 0x13, 0x4d, 0x12, 0x78, 0x76, 0x95, 0xaf, 0xab, 0xc9, 0x47, 0x57, + 0x47, 0x93, 0x62, 0x83, 0x11, 0x0b, 0x37, 0x4b, 0xfe, 0xdf, 0xc7, 0x92, 0x0b, 0xda, 0x85, 0x31, + 0xcb, 0xab, 0xcb, 0x36, 0x9f, 0x4f, 0x67, 0x7c, 0xc3, 0x39, 0x57, 0xf2, 0xea, 0x3e, 0x66, 0x1c, + 0xd0, 0x32, 0x14, 0x02, 0xe2, 0x35, 0x6d, 0xc7, 0x0a, 0xf8, 0xee, 0x9a, 0x2f, 0xcf, 0x09, 0xb4, + 0xc2, 0x96, 0x04, 0xe0, 0x10, 0x07, 0x35, 0x60, 0xbc, 0xe6, 0xed, 0xe3, 0xb6, 0xb3, 0x30, 0x96, + 0x46, 0x57, 0xac, 0x32, 0x5a, 0xe1, 0x62, 0xe2, 0xff, 0xb1, 0xe0, 0x81, 0xde, 0x30, 0x60, 0xbe, + 0x49, 0x2c, 0xbf, 0xed, 0x11, 0xda, 0x04, 0x4c, 0x02, 0xe2, 0xd0, 0xdd, 0x70, 0x21, 0xc7, 0x98, + 0xe3, 0x51, 0xc7, 0xa1, 0x97, 0x72, 0xf9, 0x7e, 0x21, 0xca, 0x7c, 0x12, 0x14, 0x27, 0x4a, 0x63, + 0xfe, 0x60, 0x0c, 0xe6, 0x7a, 0x76, 0x08, 0xf4, 0x38, 0xe4, 0x5a, 0xbb, 0x96, 0x2f, 0x97, 0xfc, + 0x59, 0x39, 0xdf, 0x36, 0x69, 0xe1, 0x9d, 0x4e, 0xf1, 0x84, 0xac, 0xc2, 0x0a, 0x30, 0x47, 0xa6, + 0x3a, 0xb5, 0x49, 0x7c, 0xdf, 0xaa, 0xcb, 0x7d, 0x40, 0x9b, 0x26, 0xac, 0x18, 0x4b, 0x38, 0xfa, + 0x15, 0x03, 0x4e, 0xf0, 0x29, 0x83, 0x89, 0xdf, 0x6e, 0x04, 0x74, 0xaf, 0xa3, 0xdd, 0x72, 0x31, + 0x8d, 0xe9, 0xc9, 0x49, 0x96, 0x4f, 0x09, 0xee, 0x27, 0xf4, 0x52, 0x1f, 0x47, 0xf9, 0xa2, 0xeb, + 0x50, 0xf0, 0x03, 0xcb, 0x0b, 0x48, 0xad, 0x14, 0x30, 0xad, 0x36, 0xf9, 0xe8, 0xff, 0x1d, 0x6c, + 0x13, 0xd8, 0xb2, 0x9b, 0x84, 0x6f, 0x38, 0x15, 0x49, 0x00, 0x87, 0xb4, 0xd0, 0x4b, 0x00, 0x5e, + 0xdb, 0xa9, 0xb4, 0x9b, 0x4d, 0xcb, 0xdb, 0x17, 0x1a, 0xfc, 0xc2, 0x68, 0xcd, 0xc3, 0x8a, 0x5e, + 0xa8, 0xb3, 0xc2, 0x32, 0xac, 0xf1, 0x43, 0xaf, 0x18, 0x70, 0x82, 0xcf, 0x44, 0x29, 0xc1, 0x78, + 0xca, 0x12, 0xcc, 0xd1, 0xae, 0x5d, 0xd5, 0x59, 0xe0, 0x28, 0x47, 0xf3, 0xef, 0xa2, 0xfa, 0xa4, + 0x12, 0x50, 0xeb, 0xba, 0xbe, 0x8f, 0x3e, 0x08, 0xf7, 0xfa, 0xed, 0x6a, 0x95, 0xf8, 0xfe, 0x4e, + 0xbb, 0x81, 0xdb, 0xce, 0x05, 0xdb, 0x0f, 0x5c, 0x6f, 0x7f, 0xdd, 0x6e, 0xda, 0x01, 0x9b, 0x71, + 0xb9, 0xf2, 0x99, 0x6e, 0xa7, 0x78, 0x6f, 0xa5, 0x1f, 0x12, 0xee, 0x5f, 0x1f, 0x59, 0x70, 0x5f, + 0xdb, 0xe9, 0x4f, 0x9e, 0x5b, 0x6f, 0xc5, 0x6e, 0xa7, 0x78, 0xdf, 0xd5, 0xfe, 0x68, 0xf8, 0x20, + 0x1a, 0xe6, 0xbf, 0x1a, 0x30, 0x2b, 0xdb, 0xb5, 0x45, 0x9a, 0xad, 0x06, 0xdd, 0x5d, 0x8e, 0xdf, + 0x10, 0x09, 0x22, 0x86, 0x08, 0x4e, 0x47, 0x9d, 0x48, 0xf9, 0xfb, 0x59, 0x23, 0xe6, 0xbf, 0x18, + 0x30, 0x1f, 0x47, 0xbe, 0x0b, 0xca, 0xd3, 0x8f, 0x2a, 0xcf, 0x4b, 0xe9, 0xb6, 0xb6, 0x8f, 0x06, + 0x7d, 0x6d, 0xac, 0xb7, 0xad, 0xff, 0xd3, 0xd5, 0x68, 0xa8, 0x15, 0xb3, 0x3f, 0x4b, 0xad, 0x38, + 0xf6, 0x96, 0xd2, 0x8a, 0x7f, 0x30, 0x06, 0x53, 0x25, 0x27, 0xb0, 0x4b, 0x3b, 0x3b, 0xb6, 0x63, + 0x07, 0xfb, 0xe8, 0x33, 0x19, 0x58, 0x6e, 0x79, 0x64, 0x87, 0x78, 0x1e, 0xa9, 0xad, 0xb6, 0x3d, + 0xdb, 0xa9, 0x57, 0xaa, 0xbb, 0xa4, 0xd6, 0x6e, 0xd8, 0x4e, 0x7d, 0xad, 0xee, 0xb8, 0xaa, 0xf8, + 0xdc, 0x6d, 0x52, 0x6d, 0xb3, 0x26, 0xf1, 0x45, 0xd1, 0x1c, 0xad, 0x49, 0x9b, 0xc3, 0x31, 0x2d, + 0x3f, 0xd6, 0xed, 0x14, 0x97, 0x87, 0xac, 0x84, 0x87, 0x6d, 0x1a, 0xfa, 0x74, 0x06, 0x96, 0x3c, + 0xf2, 0xb1, 0xb6, 0x3d, 0x78, 0x6f, 0xf0, 0x5d, 0xab, 0x31, 0xa2, 0xfa, 0x19, 0x8a, 0x67, 0xf9, + 0xd1, 0x6e, 0xa7, 0x38, 0x64, 0x1d, 0x3c, 0x64, 0xbb, 0xcc, 0xaf, 0x65, 0xe0, 0x54, 0xa9, 0xd5, + 0xda, 0x20, 0xfe, 0x6e, 0xec, 0x50, 0xfb, 0x39, 0x03, 0xa6, 0xf7, 0x6c, 0x2f, 0x68, 0x5b, 0x0d, + 0xe9, 0x04, 0xe0, 0x53, 0xa2, 0x32, 0xe2, 0x72, 0xe6, 0xdc, 0xae, 0x45, 0x48, 0x97, 0x51, 0xb7, + 0x53, 0x9c, 0x8e, 0x96, 0xe1, 0x18, 0x7b, 0xf4, 0x9b, 0x06, 0xcc, 0x8a, 0xa2, 0x4b, 0x6e, 0x8d, + 0xe8, 0x9e, 0xa3, 0xab, 0x69, 0xca, 0xa4, 0x88, 0x73, 0x17, 0x43, 0xbc, 0x14, 0xf7, 0x08, 0x61, + 0xfe, 0x7b, 0x06, 0x4e, 0xf7, 0xa1, 0x81, 0x7e, 0xdf, 0x80, 0x79, 0xee, 0x6e, 0xd2, 0x40, 0x98, + 0xec, 0x88, 0xde, 0xfc, 0x40, 0xda, 0x92, 0x63, 0xba, 0x16, 0x88, 0x53, 0x25, 0xe5, 0x05, 0xba, + 0x6d, 0xac, 0x24, 0xb0, 0xc6, 0x89, 0x02, 0x31, 0x49, 0xb9, 0x03, 0x2a, 0x26, 0x69, 0xe6, 0xae, + 0x48, 0x5a, 0x49, 0x60, 0x8d, 0x13, 0x05, 0x32, 0x7f, 0x11, 0xee, 0x3b, 0x80, 0xdc, 0xe1, 0x27, + 0x7e, 0xf3, 0x05, 0x35, 0xeb, 0xa3, 0x73, 0x6e, 0x00, 0x67, 0x81, 0x09, 0xe3, 0x9e, 0xdb, 0x0e, + 0x08, 0xd7, 0x6e, 0x85, 0x32, 0x50, 0x3d, 0x81, 0x59, 0x09, 0x16, 0x10, 0xf3, 0x6b, 0x06, 0xe4, + 0x87, 0xf0, 0x3f, 0x14, 0xa3, 0xfe, 0x87, 0x42, 0x8f, 0xef, 0x21, 0xe8, 0xf5, 0x3d, 0x3c, 0x3b, + 0xda, 0x68, 0x0c, 0xe2, 0x73, 0xf8, 0xb1, 0x01, 0x73, 0x3d, 0x3e, 0x0a, 0xb4, 0x0b, 0xf3, 0x2d, + 0xb7, 0x26, 0xed, 0x8b, 0x0b, 0x96, 0xbf, 0xcb, 0x60, 0xa2, 0x79, 0x8f, 0xd3, 0x91, 0xdc, 0x4c, + 0x80, 0xdf, 0xe9, 0x14, 0x17, 0x14, 0x91, 0x18, 0x02, 0x4e, 0xa4, 0x88, 0x5a, 0x90, 0xdf, 0xb1, + 0x49, 0xa3, 0x16, 0x4e, 0xc1, 0x11, 0x2d, 0x89, 0xf3, 0x82, 0x1a, 0x77, 0xcf, 0xc9, 0x7f, 0x58, + 0x71, 0x31, 0xaf, 0xc0, 0x74, 0xd4, 0x59, 0x3b, 0xc0, 0xe0, 0x9d, 0x81, 0xac, 0xe5, 0x39, 0x62, + 0xe8, 0x26, 0x05, 0x42, 0xb6, 0x84, 0x2f, 0x61, 0x5a, 0x6e, 0xfe, 0x74, 0x0c, 0x66, 0xca, 0x8d, + 0x36, 0x79, 0xd6, 0x23, 0x44, 0x9e, 0x4f, 0x4b, 0x30, 0xd3, 0xf2, 0xc8, 0x9e, 0x4d, 0x6e, 0x55, + 0x48, 0x83, 0x54, 0x03, 0xd7, 0x13, 0xf4, 0x4f, 0x8b, 0xea, 0x33, 0x9b, 0x51, 0x30, 0x8e, 0xe3, + 0xa3, 0x67, 0x60, 0xda, 0xaa, 0x06, 0xf6, 0x1e, 0x51, 0x14, 0xb8, 0x00, 0x6f, 0x13, 0x14, 0xa6, + 0x4b, 0x11, 0x28, 0x8e, 0x61, 0xa3, 0x0f, 0xc1, 0x82, 0x5f, 0xb5, 0x1a, 0xe4, 0x6a, 0x4b, 0xb0, + 0x5a, 0xd9, 0x25, 0xd5, 0x9b, 0x9b, 0xae, 0xed, 0x04, 0xc2, 0x1b, 0xf1, 0x80, 0xa0, 0xb4, 0x50, + 0xe9, 0x83, 0x87, 0xfb, 0x52, 0x40, 0x7f, 0x6e, 0xc0, 0x99, 0x96, 0x47, 0x36, 0x3d, 0xb7, 0xe9, + 0x52, 0x35, 0xd3, 0x73, 0x44, 0x17, 0x47, 0xd5, 0x6b, 0x23, 0xea, 0x53, 0x5e, 0xd2, 0xeb, 0x22, + 0x7c, 0x7b, 0xb7, 0x53, 0x3c, 0xb3, 0x79, 0x90, 0x00, 0xf8, 0x60, 0xf9, 0xd0, 0x5f, 0x1a, 0x70, + 0xb6, 0xe5, 0xfa, 0xc1, 0x01, 0x4d, 0xc8, 0x1d, 0x6b, 0x13, 0xcc, 0x6e, 0xa7, 0x78, 0x76, 0xf3, + 0x40, 0x09, 0xf0, 0x21, 0x12, 0x9a, 0xdd, 0x49, 0x98, 0xd3, 0xe6, 0x9e, 0x38, 0xbf, 0x3e, 0x05, + 0x27, 0xe4, 0x64, 0x08, 0xd5, 0x7a, 0x21, 0xf4, 0x37, 0x94, 0x74, 0x20, 0x8e, 0xe2, 0xd2, 0x79, + 0xa7, 0xa6, 0x22, 0xaf, 0x1d, 0x9b, 0x77, 0x9b, 0x11, 0x28, 0x8e, 0x61, 0xa3, 0x35, 0x38, 0x29, + 0x4a, 0x30, 0x69, 0x35, 0xec, 0xaa, 0xb5, 0xe2, 0xb6, 0xc5, 0x94, 0xcb, 0x95, 0x4f, 0x77, 0x3b, + 0xc5, 0x93, 0x9b, 0xbd, 0x60, 0x9c, 0x54, 0x07, 0xad, 0xc3, 0xbc, 0xd5, 0x0e, 0x5c, 0xd5, 0xfe, + 0x73, 0x0e, 0xd5, 0x14, 0x35, 0x36, 0xb5, 0xf2, 0x5c, 0xa5, 0x94, 0x12, 0xe0, 0x38, 0xb1, 0x16, + 0xda, 0x8c, 0x51, 0xab, 0x90, 0xaa, 0xeb, 0xd4, 0xf8, 0x28, 0xe7, 0x42, 0x2b, 0xbc, 0x94, 0x80, + 0x83, 0x13, 0x6b, 0xa2, 0x06, 0x4c, 0x37, 0xad, 0xdb, 0x57, 0x1d, 0x6b, 0xcf, 0xb2, 0x1b, 0x94, + 0x89, 0xf0, 0x61, 0xf4, 0x3f, 0x58, 0xb7, 0x03, 0xbb, 0xb1, 0xc4, 0xaf, 0xf3, 0x96, 0xd6, 0x9c, + 0xe0, 0xb2, 0x57, 0x09, 0xa8, 0xb5, 0xc6, 0x8d, 0xa3, 0x8d, 0x08, 0x2d, 0x1c, 0xa3, 0x8d, 0x2e, + 0xc3, 0x29, 0xb6, 0x1c, 0x57, 0xdd, 0x5b, 0xce, 0x2a, 0x69, 0x58, 0xfb, 0xb2, 0x01, 0x13, 0xac, + 0x01, 0xf7, 0x76, 0x3b, 0xc5, 0x53, 0x95, 0x24, 0x04, 0x9c, 0x5c, 0x0f, 0x59, 0x70, 0x5f, 0x14, + 0x80, 0xc9, 0x9e, 0xed, 0xdb, 0xae, 0xc3, 0x3d, 0x11, 0xf9, 0xd0, 0x13, 0x51, 0xe9, 0x8f, 0x86, + 0x0f, 0xa2, 0x81, 0x7e, 0xdb, 0x80, 0xf9, 0xa4, 0x65, 0xb8, 0x50, 0x48, 0xe3, 0xb2, 0x22, 0xb6, + 0xb4, 0xf8, 0x8c, 0x48, 0xdc, 0x14, 0x12, 0x85, 0x40, 0x2f, 0x1b, 0x30, 0x65, 0x69, 0xa7, 0xa8, + 0x05, 0x60, 0x52, 0x5d, 0x1c, 0xf5, 0x2c, 0x1f, 0x52, 0x2c, 0xcf, 0x76, 0x3b, 0xc5, 0xc8, 0x49, + 0x0d, 0x47, 0x38, 0xa2, 0xdf, 0x35, 0xe0, 0x54, 0xe2, 0x1a, 0x5f, 0x98, 0x3c, 0x8e, 0x1e, 0x62, + 0x93, 0x24, 0x79, 0xcf, 0x49, 0x16, 0x03, 0xbd, 0x6e, 0x28, 0x55, 0xb6, 0x21, 0xbd, 0x29, 0x53, + 0x4c, 0xb4, 0x2b, 0x23, 0x1e, 0x1c, 0x43, 0x83, 0x40, 0x12, 0x2e, 0x9f, 0xd4, 0x34, 0xa3, 0x2c, + 0xc4, 0x71, 0xf6, 0xe8, 0xb3, 0x86, 0x54, 0x8d, 0x4a, 0xa2, 0x13, 0xc7, 0x25, 0x11, 0x0a, 0x35, + 0xad, 0x12, 0x28, 0xc6, 0x1c, 0x7d, 0x18, 0x16, 0xad, 0x6d, 0xd7, 0x0b, 0x12, 0x17, 0xdf, 0xc2, + 0x34, 0x5b, 0x46, 0x67, 0xbb, 0x9d, 0xe2, 0x62, 0xa9, 0x2f, 0x16, 0x3e, 0x80, 0x82, 0xf9, 0xc7, + 0x39, 0x98, 0xe2, 0x46, 0xbe, 0x50, 0x5d, 0x5f, 0x35, 0xe0, 0xfe, 0x6a, 0xdb, 0xf3, 0x88, 0x13, + 0x54, 0x02, 0xd2, 0xea, 0x55, 0x5c, 0xc6, 0xb1, 0x2a, 0xae, 0x07, 0xba, 0x9d, 0xe2, 0xfd, 0x2b, + 0x07, 0xf0, 0xc7, 0x07, 0x4a, 0x87, 0xfe, 0xc6, 0x00, 0x53, 0x20, 0x94, 0xad, 0xea, 0xcd, 0xba, + 0xe7, 0xb6, 0x9d, 0x5a, 0x6f, 0x23, 0x32, 0xc7, 0xda, 0x88, 0x87, 0xba, 0x9d, 0xa2, 0xb9, 0x72, + 0xa8, 0x14, 0x78, 0x00, 0x49, 0xd1, 0xb3, 0x30, 0x27, 0xb0, 0xce, 0xdd, 0x6e, 0x11, 0xcf, 0xa6, + 0xe6, 0xb4, 0xb8, 0x4f, 0x0f, 0x43, 0x14, 0xe2, 0x08, 0xb8, 0xb7, 0x0e, 0xf2, 0x61, 0xe2, 0x16, + 0xb1, 0xeb, 0xbb, 0x81, 0x34, 0x9f, 0x46, 0x8c, 0x4b, 0x10, 0x07, 0xfe, 0xeb, 0x9c, 0x66, 0x79, + 0xb2, 0xdb, 0x29, 0x4e, 0x88, 0x3f, 0x58, 0x72, 0x42, 0x97, 0x60, 0x9a, 0x1f, 0xc1, 0x36, 0x6d, + 0xa7, 0xbe, 0xe9, 0x3a, 0xfc, 0x36, 0xbf, 0x50, 0x7e, 0x48, 0x2a, 0xfc, 0x4a, 0x04, 0x7a, 0xa7, + 0x53, 0x9c, 0x92, 0xbf, 0xb7, 0xf6, 0x5b, 0x04, 0xc7, 0x6a, 0x9b, 0xdf, 0x1c, 0x07, 0x90, 0xd3, + 0x95, 0xb4, 0xd0, 0xff, 0x83, 0x82, 0x4f, 0x02, 0xce, 0x55, 0x38, 0xcf, 0xf9, 0x9d, 0x84, 0x2c, + 0xc4, 0x21, 0x1c, 0xdd, 0x84, 0x5c, 0xcb, 0x6a, 0xfb, 0x44, 0x0c, 0xfe, 0xc5, 0x54, 0x06, 0x7f, + 0x93, 0x52, 0xe4, 0x67, 0x2e, 0xf6, 0x13, 0x73, 0x1e, 0xe8, 0x53, 0x06, 0x00, 0x89, 0x0e, 0xd8, + 0xc8, 0xbe, 0x0f, 0xc1, 0x32, 0x1c, 0x53, 0xda, 0x07, 0xe5, 0xe9, 0x6e, 0xa7, 0x08, 0xda, 0xd0, + 0x6b, 0x6c, 0xd1, 0x2d, 0xc8, 0x5b, 0x72, 0xcf, 0x1f, 0x3b, 0x8e, 0x3d, 0x9f, 0x1d, 0x85, 0xd4, + 0xa4, 0x55, 0xcc, 0xd0, 0xa7, 0x0d, 0x98, 0xf6, 0x49, 0x20, 0x86, 0x8a, 0xee, 0x3c, 0xc2, 0xe0, + 0x1d, 0x71, 0xd2, 0x55, 0x22, 0x34, 0xf9, 0x0e, 0x1a, 0x2d, 0xc3, 0x31, 0xbe, 0x52, 0x94, 0x0b, + 0xc4, 0xaa, 0x11, 0x8f, 0x9d, 0xb4, 0x85, 0x25, 0x35, 0xba, 0x28, 0x1a, 0x4d, 0x25, 0x8a, 0x56, + 0x86, 0x63, 0x7c, 0xa5, 0x28, 0x1b, 0xb6, 0xe7, 0xb9, 0x42, 0x94, 0x7c, 0x4a, 0xa2, 0x68, 0x34, + 0x95, 0x28, 0x5a, 0x19, 0x8e, 0xf1, 0x35, 0xff, 0x76, 0x0a, 0xa6, 0xe5, 0x42, 0x0a, 0x2d, 0x7b, + 0xee, 0xd8, 0xe9, 0x63, 0xd9, 0xaf, 0xe8, 0x40, 0x1c, 0xc5, 0xa5, 0x95, 0xf9, 0x52, 0x8d, 0x1a, + 0xf6, 0xaa, 0x72, 0x45, 0x07, 0xe2, 0x28, 0x2e, 0x6a, 0x42, 0xce, 0x0f, 0x48, 0x4b, 0xde, 0x83, + 0x8e, 0x78, 0x4d, 0x17, 0xee, 0x0f, 0xe1, 0x4d, 0x07, 0xfd, 0xe7, 0x63, 0xce, 0x85, 0xf9, 0x26, + 0x83, 0x88, 0xbb, 0x52, 0x2c, 0x8e, 0x74, 0xd6, 0x67, 0xd4, 0x13, 0xca, 0x47, 0x23, 0x5a, 0x86, + 0x63, 0xec, 0x13, 0x8c, 0xfd, 0xdc, 0x31, 0x1a, 0xfb, 0xcf, 0x43, 0xbe, 0x69, 0xdd, 0xae, 0xb4, + 0xbd, 0xfa, 0xd1, 0x0f, 0x15, 0x22, 0x44, 0x89, 0x53, 0xc1, 0x8a, 0x1e, 0x7a, 0xc5, 0xd0, 0xb6, + 0x9c, 0x09, 0x46, 0xfc, 0x7a, 0xba, 0x5b, 0x8e, 0xd2, 0x95, 0x7d, 0x37, 0x9f, 0x1e, 0xd3, 0x3b, + 0x7f, 0xd7, 0x4d, 0x6f, 0x6a, 0x46, 0xf2, 0x05, 0xa2, 0xcc, 0xc8, 0xc2, 0xb1, 0x9a, 0x91, 0x2b, + 0x11, 0x66, 0x38, 0xc6, 0x9c, 0xc9, 0xc3, 0xd7, 0x9c, 0x92, 0x07, 0x8e, 0x55, 0x9e, 0x4a, 0x84, + 0x19, 0x8e, 0x31, 0xef, 0x7f, 0xde, 0x9c, 0x3c, 0x9e, 0xf3, 0xe6, 0x54, 0x0a, 0xe7, 0xcd, 0x83, + 0x4d, 0xf1, 0x13, 0xa3, 0x9a, 0xe2, 0xe8, 0x22, 0xa0, 0xda, 0xbe, 0x63, 0x35, 0xed, 0xaa, 0xd8, + 0x2c, 0x99, 0xda, 0x9c, 0x66, 0xfe, 0x88, 0x45, 0xb1, 0x91, 0xa1, 0xd5, 0x1e, 0x0c, 0x9c, 0x50, + 0x0b, 0x05, 0x90, 0x6f, 0x49, 0x8b, 0x6b, 0x26, 0x8d, 0xd9, 0x2f, 0x2d, 0x30, 0x7e, 0x55, 0x4e, + 0x17, 0x9e, 0x2c, 0xc1, 0x8a, 0x93, 0xf9, 0x9f, 0x06, 0xcc, 0xae, 0x34, 0xdc, 0x76, 0xed, 0xba, + 0x15, 0x54, 0x77, 0xf9, 0xbd, 0x2e, 0x7a, 0x06, 0xf2, 0xb6, 0x13, 0x10, 0x6f, 0xcf, 0x6a, 0x08, + 0x8d, 0x62, 0xca, 0xab, 0xef, 0x35, 0x51, 0x7e, 0xa7, 0x53, 0x9c, 0x5e, 0x6d, 0x7b, 0x2c, 0x60, + 0x92, 0xef, 0x2f, 0x58, 0xd5, 0x41, 0x5f, 0x32, 0x60, 0x8e, 0xdf, 0x0c, 0xaf, 0x5a, 0x81, 0x75, + 0xa5, 0x4d, 0x3c, 0x9b, 0xc8, 0xbb, 0xe1, 0x11, 0xb7, 0x96, 0xb8, 0xac, 0x92, 0xc1, 0x7e, 0x68, + 0x5a, 0x6f, 0xc4, 0x39, 0xe3, 0x5e, 0x61, 0xcc, 0xcf, 0x67, 0xe1, 0xde, 0xbe, 0xb4, 0xd0, 0x22, + 0x64, 0xec, 0x9a, 0x68, 0x3a, 0x08, 0xba, 0x99, 0xb5, 0x1a, 0xce, 0xd8, 0x35, 0xb4, 0xc4, 0xac, + 0x44, 0x8f, 0xf8, 0xbe, 0xbc, 0x26, 0x2c, 0x28, 0x83, 0x4e, 0x94, 0x62, 0x0d, 0x03, 0x15, 0x21, + 0xd7, 0xb0, 0xb6, 0x49, 0x43, 0x9c, 0x00, 0x98, 0xdd, 0xb9, 0x4e, 0x0b, 0x30, 0x2f, 0x47, 0xbf, + 0x6c, 0x00, 0x70, 0x01, 0xe9, 0xf9, 0x41, 0xe8, 0x35, 0x9c, 0x6e, 0x37, 0x51, 0xca, 0x5c, 0xca, + 0xf0, 0x3f, 0xd6, 0xb8, 0xa2, 0x2d, 0x18, 0xa7, 0x26, 0xa8, 0x5b, 0x3b, 0xb2, 0x1a, 0x63, 0xd7, + 0x22, 0x9b, 0x8c, 0x06, 0x16, 0xb4, 0x68, 0x5f, 0x79, 0x24, 0x68, 0x7b, 0x0e, 0xed, 0x5a, 0xa6, + 0xb8, 0xf2, 0x5c, 0x0a, 0xac, 0x4a, 0xb1, 0x86, 0x61, 0xfe, 0x59, 0x06, 0xe6, 0x93, 0x44, 0xa7, + 0xfa, 0x61, 0x9c, 0x4b, 0x2b, 0x0e, 0xb3, 0xef, 0x4f, 0xbf, 0x7f, 0x44, 0x90, 0x83, 0x0a, 0x05, + 0x10, 0x61, 0x58, 0x82, 0x2f, 0x7a, 0xbf, 0xea, 0xa1, 0xcc, 0x11, 0x7b, 0x48, 0x51, 0x8e, 0xf5, + 0xd2, 0x03, 0x30, 0xe6, 0xd3, 0x91, 0xcf, 0x46, 0xaf, 0x1c, 0xd8, 0x18, 0x31, 0x08, 0xc5, 0x68, + 0x3b, 0x76, 0x20, 0xa2, 0x98, 0x15, 0xc6, 0x55, 0xc7, 0x0e, 0x30, 0x83, 0x98, 0x5f, 0xcc, 0xc0, + 0x62, 0xff, 0x46, 0xa1, 0x2f, 0x1a, 0x00, 0x35, 0x7a, 0xc0, 0xa0, 0x53, 0x52, 0x06, 0x85, 0x58, + 0xc7, 0xd5, 0x87, 0xab, 0x92, 0x53, 0x18, 0x21, 0xa4, 0x8a, 0x7c, 0xac, 0x09, 0x82, 0x1e, 0x95, + 0x53, 0xff, 0x92, 0xd5, 0x94, 0x06, 0xa8, 0xaa, 0xb3, 0xa1, 0x20, 0x58, 0xc3, 0xa2, 0x27, 0x48, + 0xc7, 0x6a, 0x12, 0xbf, 0x65, 0xa9, 0x30, 0x75, 0x76, 0x82, 0xbc, 0x24, 0x0b, 0x71, 0x08, 0x37, + 0x1b, 0xf0, 0xe0, 0x00, 0x72, 0xa6, 0x14, 0x32, 0x6c, 0xfe, 0x87, 0x01, 0xa7, 0x57, 0x1a, 0x6d, + 0x3f, 0x20, 0xde, 0xff, 0x9a, 0x80, 0xab, 0xff, 0x32, 0xe0, 0xbe, 0x3e, 0x6d, 0xbe, 0x0b, 0x71, + 0x57, 0x2f, 0x46, 0xe3, 0xae, 0xae, 0x8e, 0x3a, 0xa5, 0x13, 0xdb, 0xd1, 0x27, 0xfc, 0x2a, 0x80, + 0x13, 0x74, 0xd7, 0xaa, 0xb9, 0xf5, 0x94, 0xf4, 0xe6, 0x83, 0x90, 0xfb, 0x18, 0xd5, 0x3f, 0xf1, + 0x39, 0xc6, 0x94, 0x12, 0xe6, 0x30, 0xf3, 0x69, 0x10, 0x41, 0x4a, 0xb1, 0xc5, 0x63, 0x0c, 0xb2, + 0x78, 0xcc, 0xbf, 0xcf, 0x80, 0xe6, 0x79, 0xb8, 0x0b, 0x93, 0xd2, 0x89, 0x4c, 0xca, 0x11, 0x4f, + 0xcd, 0x9a, 0x1f, 0xa5, 0xdf, 0x6b, 0x84, 0xbd, 0xd8, 0x6b, 0x84, 0x4b, 0xa9, 0x71, 0x3c, 0xf8, + 0x31, 0xc2, 0xf7, 0x0c, 0xb8, 0x2f, 0x44, 0xee, 0x75, 0x0a, 0x1e, 0xbe, 0xc3, 0x3c, 0x01, 0x93, + 0x56, 0x58, 0x4d, 0xcc, 0x01, 0xf5, 0x00, 0x47, 0xa3, 0x88, 0x75, 0xbc, 0x30, 0xf6, 0x39, 0x7b, + 0xc4, 0xd8, 0xe7, 0xb1, 0x83, 0x63, 0x9f, 0xcd, 0x9f, 0x64, 0xe0, 0x4c, 0x6f, 0xcb, 0xe4, 0xda, + 0x18, 0xec, 0xce, 0xfc, 0x49, 0x98, 0x0a, 0x44, 0x05, 0x6d, 0xa7, 0x57, 0xcf, 0xc7, 0xb6, 0x34, + 0x18, 0x8e, 0x60, 0xd2, 0x9a, 0x55, 0xbe, 0x2a, 0x2b, 0x55, 0xb7, 0x25, 0x23, 0xe7, 0x55, 0xcd, + 0x15, 0x0d, 0x86, 0x23, 0x98, 0x2a, 0x26, 0x71, 0xec, 0xd8, 0x63, 0x12, 0x2b, 0x70, 0x4a, 0x46, + 0x61, 0x9d, 0x77, 0xbd, 0x15, 0xb7, 0xd9, 0x6a, 0x10, 0x11, 0x3b, 0x4f, 0x85, 0x3d, 0x23, 0xaa, + 0x9c, 0xc2, 0x49, 0x48, 0x38, 0xb9, 0xae, 0xf9, 0xbd, 0x2c, 0x9c, 0x0c, 0xbb, 0x7d, 0xc5, 0x75, + 0x6a, 0x36, 0x8b, 0x65, 0x7b, 0x0a, 0xc6, 0x82, 0xfd, 0x96, 0xec, 0xec, 0xff, 0x23, 0xc5, 0xd9, + 0xda, 0x6f, 0xd1, 0xd1, 0x3e, 0x9d, 0x50, 0x85, 0xb9, 0x65, 0x59, 0x25, 0xb4, 0xae, 0x56, 0x07, + 0x1f, 0x81, 0xc7, 0xa3, 0xb3, 0xf9, 0x4e, 0xa7, 0x98, 0xf0, 0x7a, 0x72, 0x49, 0x51, 0x8a, 0xce, + 0x79, 0x74, 0x03, 0xa6, 0x1b, 0x96, 0x1f, 0x5c, 0x6d, 0xd5, 0xac, 0x80, 0x6c, 0xd9, 0x4d, 0x22, + 0xd6, 0xdc, 0x30, 0x01, 0xe9, 0xea, 0x1e, 0x79, 0x3d, 0x42, 0x09, 0xc7, 0x28, 0xa3, 0x3d, 0x40, + 0xb4, 0x64, 0xcb, 0xb3, 0x1c, 0x9f, 0xb7, 0x8a, 0xf2, 0x1b, 0x3e, 0x00, 0x5e, 0x1d, 0xcb, 0xd6, + 0x7b, 0xa8, 0xe1, 0x04, 0x0e, 0xe8, 0x21, 0x18, 0xf7, 0x88, 0xe5, 0x8b, 0xc1, 0x2c, 0x84, 0xeb, + 0x1f, 0xb3, 0x52, 0x2c, 0xa0, 0xfa, 0x82, 0x1a, 0x3f, 0x64, 0x41, 0xfd, 0xd0, 0x80, 0xe9, 0x70, + 0x98, 0xee, 0x82, 0x92, 0x6c, 0x46, 0x95, 0xe4, 0x85, 0xb4, 0xb6, 0xc4, 0x3e, 0x7a, 0xf1, 0xaf, + 0xc6, 0xf5, 0xf6, 0xb1, 0x80, 0xe4, 0x8f, 0x43, 0x41, 0xae, 0x6a, 0x69, 0x7d, 0x8e, 0x78, 0xba, + 0x8d, 0xd8, 0x25, 0xda, 0x43, 0x1a, 0xc1, 0x04, 0x87, 0xfc, 0xa8, 0x5a, 0xae, 0x09, 0x95, 0x2b, + 0xa6, 0xbd, 0x52, 0xcb, 0x52, 0x15, 0x27, 0xa9, 0x65, 0x59, 0x07, 0x5d, 0x85, 0xd3, 0x2d, 0xcf, + 0x65, 0x8f, 0x2b, 0x57, 0x89, 0x55, 0x6b, 0xd8, 0x0e, 0x91, 0x2e, 0x04, 0x1e, 0xc6, 0x70, 0x5f, + 0xb7, 0x53, 0x3c, 0xbd, 0x99, 0x8c, 0x82, 0xfb, 0xd5, 0x8d, 0x3e, 0x08, 0x1a, 0x1b, 0xe0, 0x41, + 0xd0, 0xaf, 0x2a, 0x47, 0x1d, 0xf1, 0xc5, 0xb3, 0x9c, 0x0f, 0xa6, 0x35, 0x94, 0x09, 0xdb, 0x7a, + 0x38, 0xa5, 0x4a, 0x82, 0x29, 0x56, 0xec, 0xfb, 0x7b, 0x83, 0xc6, 0x8f, 0xe8, 0x0d, 0x0a, 0xe3, + 0xba, 0x27, 0x7e, 0x96, 0x71, 0xdd, 0xf9, 0xb7, 0x54, 0x5c, 0xf7, 0xab, 0x39, 0x98, 0x8d, 0x5b, + 0x20, 0xc7, 0xff, 0xd8, 0xe9, 0x37, 0x0c, 0x98, 0x95, 0xab, 0x87, 0xf3, 0x24, 0xd2, 0xcf, 0xbf, + 0x9e, 0xd2, 0xa2, 0xe5, 0xb6, 0x94, 0x7a, 0x8e, 0xbb, 0x15, 0xe3, 0x86, 0x7b, 0xf8, 0xa3, 0x17, + 0x60, 0x52, 0xb9, 0xc3, 0x8f, 0xf4, 0xf2, 0x69, 0x86, 0x59, 0x51, 0x21, 0x09, 0xac, 0xd3, 0x43, + 0xaf, 0x1a, 0x00, 0x55, 0xa9, 0xe6, 0xe4, 0xea, 0xba, 0x92, 0xd6, 0xea, 0x52, 0x0a, 0x34, 0x34, + 0x96, 0x55, 0x91, 0x8f, 0x35, 0xc6, 0xe8, 0xf3, 0xcc, 0x11, 0xae, 0xac, 0x3b, 0xba, 0x9e, 0xb2, + 0xa3, 0x87, 0xe2, 0x1e, 0x60, 0x98, 0x86, 0xa6, 0x94, 0x06, 0xf2, 0x71, 0x44, 0x08, 0xf3, 0x29, + 0x50, 0xc1, 0x93, 0x74, 0xdb, 0x62, 0xe1, 0x93, 0x9b, 0x56, 0xb0, 0x2b, 0xa6, 0xa0, 0xda, 0xb6, + 0xce, 0x4b, 0x00, 0x0e, 0x71, 0xcc, 0x8f, 0xc2, 0xf4, 0xb3, 0x9e, 0xd5, 0xda, 0xb5, 0x99, 0xc3, + 0x99, 0x9e, 0x93, 0xde, 0x09, 0x13, 0x56, 0xad, 0x96, 0xf4, 0x98, 0xbd, 0xc4, 0x8b, 0xb1, 0x84, + 0x0f, 0x76, 0x24, 0xfa, 0xa6, 0x01, 0x28, 0xbc, 0xb4, 0xb3, 0x9d, 0xfa, 0x06, 0x3d, 0xed, 0xd3, + 0xf3, 0xd1, 0x2e, 0x2b, 0x4d, 0x3a, 0x1f, 0x5d, 0x50, 0x10, 0xac, 0x61, 0xa1, 0x97, 0x60, 0x92, + 0xff, 0xbb, 0xa6, 0x0e, 0xfb, 0x23, 0x3f, 0x85, 0xe5, 0x0a, 0x85, 0xc9, 0xc4, 0x67, 0xe1, 0x85, + 0x90, 0x03, 0xd6, 0xd9, 0xd1, 0xae, 0x5a, 0x73, 0x76, 0x1a, 0xed, 0xdb, 0xb5, 0xed, 0xb0, 0xab, + 0x5a, 0x9e, 0xbb, 0x63, 0x37, 0x48, 0xbc, 0xab, 0x36, 0x79, 0x31, 0x96, 0xf0, 0xc1, 0xba, 0xea, + 0xeb, 0x06, 0xcc, 0xaf, 0xf9, 0x81, 0xed, 0xae, 0x12, 0x3f, 0xa0, 0x6a, 0x85, 0x6e, 0x3e, 0xed, + 0xc6, 0x20, 0x71, 0xd0, 0xab, 0x30, 0x2b, 0x2e, 0x10, 0xdb, 0xdb, 0x3e, 0x09, 0x34, 0x3b, 0x5e, + 0xad, 0xe3, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0xa0, 0x54, 0xc4, 0x4d, 0x62, 0x48, 0x25, 0x1b, 0xa5, + 0x52, 0x89, 0xc1, 0x71, 0x4f, 0x0d, 0xf3, 0x3b, 0x59, 0x38, 0xc9, 0x9a, 0x11, 0x7b, 0xc3, 0xf0, + 0xd9, 0x7e, 0x6f, 0x18, 0x46, 0x5c, 0xca, 0x8c, 0xd7, 0x11, 0x5e, 0x30, 0xfc, 0xba, 0x01, 0x33, + 0xb5, 0x68, 0x4f, 0xa7, 0xe3, 0x9e, 0x49, 0x1a, 0x43, 0x1e, 0x2f, 0x15, 0x2b, 0xc4, 0x71, 0xfe, + 0xe8, 0x0b, 0x06, 0xcc, 0x44, 0xc5, 0x94, 0xbb, 0xfb, 0x31, 0x74, 0x92, 0x0a, 0x70, 0x8e, 0x96, + 0xfb, 0x38, 0x2e, 0x82, 0xf9, 0xed, 0x8c, 0x18, 0xd2, 0xe3, 0x08, 0xd0, 0x47, 0xb7, 0xa0, 0x10, + 0x34, 0x7c, 0x5e, 0x28, 0x5a, 0x3b, 0xe2, 0x89, 0x70, 0x6b, 0xbd, 0xc2, 0xef, 0xee, 0x43, 0xa3, + 0x4d, 0x94, 0x50, 0xe3, 0x53, 0xf2, 0x62, 0x8c, 0xab, 0x2d, 0xc1, 0x38, 0x95, 0xa3, 0xe8, 0xd6, + 0xca, 0x66, 0x9c, 0xb1, 0x28, 0xa1, 0x8c, 0x25, 0x2f, 0xf3, 0xcb, 0x06, 0x14, 0x2e, 0xba, 0x72, 0x1f, 0xf9, 0x70, 0x0a, 0x8e, 0x1e, 0x65, 0x0f, 0xaa, 0x3b, 0xc2, 0xf0, 0x88, 0xf1, 0x4c, 0xc4, - 0xcd, 0x73, 0xbf, 0x46, 0x7b, 0x89, 0x25, 0xea, 0xa1, 0xa4, 0x2e, 0xba, 0x5b, 0x7d, 0xbd, 0x88, - 0xbf, 0x97, 0x83, 0x13, 0xcf, 0x59, 0x7b, 0xc4, 0x09, 0xac, 0xe1, 0x95, 0xc4, 0x13, 0x30, 0x69, - 0xb5, 0x59, 0xa0, 0xb0, 0x66, 0xe3, 0x87, 0x9e, 0x93, 0x10, 0x84, 0x75, 0xbc, 0x70, 0x43, 0xe3, + 0xcd, 0x73, 0xbf, 0x46, 0x7b, 0x89, 0x25, 0xea, 0xa1, 0xa4, 0x2e, 0xba, 0xdb, 0x7d, 0xbd, 0x88, + 0xbf, 0x97, 0x83, 0x13, 0xcf, 0x59, 0xfb, 0xc4, 0x09, 0xac, 0xe1, 0x95, 0xc4, 0x13, 0x30, 0x69, + 0xb5, 0x58, 0xa0, 0xb0, 0x66, 0xe3, 0x87, 0x9e, 0x93, 0x10, 0x84, 0x75, 0xbc, 0x70, 0x43, 0xe3, 0x79, 0x43, 0x92, 0xb6, 0xa2, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0x40, 0x17, 0x01, 0x89, 0x57, 0x90, - 0xa5, 0x5a, 0xcd, 0xed, 0x38, 0x7c, 0x4b, 0xe3, 0x4e, 0x15, 0x75, 0xd8, 0xdc, 0xe8, 0xc1, 0xc0, - 0x09, 0xb5, 0xd0, 0x87, 0x60, 0xa1, 0xc6, 0x28, 0x8b, 0xa3, 0x87, 0x4e, 0x91, 0x1f, 0x3f, 0x55, - 0x90, 0xfe, 0x4a, 0x1f, 0x3c, 0xdc, 0x97, 0x02, 0x95, 0xd4, 0x0f, 0x5c, 0xcf, 0x6a, 0x10, 0x9d, - 0xee, 0x78, 0x54, 0xd2, 0x6a, 0x0f, 0x06, 0x4e, 0xa8, 0x85, 0x3e, 0x09, 0x85, 0x60, 0xc7, 0x23, - 0xfe, 0x8e, 0xdb, 0xac, 0x8b, 0xa0, 0x81, 0x11, 0x3d, 0x6d, 0x62, 0xf4, 0x37, 0x25, 0x55, 0x6d, - 0x7a, 0xcb, 0x22, 0x1c, 0xf2, 0x44, 0x1e, 0x8c, 0xfb, 0x35, 0xb7, 0x4d, 0x7c, 0x61, 0xb2, 0x5f, + 0xa5, 0x6a, 0xd5, 0x6d, 0x3b, 0x7c, 0x4b, 0xe3, 0x4e, 0x15, 0x75, 0xd8, 0xdc, 0xe8, 0xc1, 0xc0, + 0x09, 0xb5, 0xd0, 0x87, 0x60, 0xa1, 0xca, 0x28, 0x8b, 0xa3, 0x87, 0x4e, 0x91, 0x1f, 0x3f, 0x55, + 0x90, 0xfe, 0x4a, 0x1f, 0x3c, 0xdc, 0x97, 0x02, 0x95, 0xd4, 0x0f, 0x5c, 0xcf, 0xaa, 0x13, 0x9d, + 0xee, 0x78, 0x54, 0xd2, 0x4a, 0x0f, 0x06, 0x4e, 0xa8, 0x85, 0x3e, 0x09, 0x85, 0x60, 0xd7, 0x23, + 0xfe, 0xae, 0xdb, 0xa8, 0x89, 0xa0, 0x81, 0x11, 0x3d, 0x6d, 0x62, 0xf4, 0xb7, 0x24, 0x55, 0x6d, + 0x7a, 0xcb, 0x22, 0x1c, 0xf2, 0x44, 0x1e, 0x8c, 0xfb, 0x55, 0xb7, 0x45, 0x7c, 0x61, 0xb2, 0x5f, 0x4c, 0x85, 0x3b, 0xf3, 0x1c, 0x69, 0x3e, 0x3e, 0xc6, 0x01, 0x0b, 0x4e, 0xe6, 0x37, 0x32, 0x30, - 0xa5, 0x23, 0x0e, 0xb0, 0x37, 0x7d, 0xca, 0x80, 0xa9, 0x9a, 0xeb, 0x04, 0x9e, 0xdb, 0xe4, 0xfe, - 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd4, 0x5c, 0x61, 0x1a, 0x1b, 0x1c, + 0xa5, 0x23, 0x0e, 0xb0, 0x37, 0x7d, 0xca, 0x80, 0xa9, 0xaa, 0xeb, 0x04, 0x9e, 0xdb, 0xe0, 0xfe, + 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd0, 0x5c, 0x61, 0x1a, 0x1b, 0x1c, 0x61, 0x8a, 0x3e, 0x63, 0xc0, 0x4c, 0x18, 0x63, 0x16, 0x3a, 0xd2, 0x52, 0x15, 0x44, 0x6d, 0xf5, - 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x05, 0xb3, 0xf1, 0xd1, 0xa6, 0x5d, 0xd9, 0xb6, 0xc4, - 0x5a, 0xcf, 0x86, 0x5d, 0x59, 0xb1, 0x7c, 0x1f, 0x33, 0x08, 0x7a, 0x04, 0xf2, 0x2d, 0xcb, 0x6b, - 0xd8, 0x8e, 0xd5, 0x64, 0xbd, 0x98, 0xd5, 0x36, 0x24, 0x51, 0x8e, 0x15, 0x86, 0xf9, 0x6e, 0x98, - 0xda, 0xb0, 0x9c, 0x06, 0xa9, 0x8b, 0x7d, 0xf8, 0xf0, 0x27, 0x62, 0x3f, 0x1a, 0x83, 0x49, 0xed, - 0x6c, 0x76, 0xfc, 0xe7, 0xac, 0x48, 0x2a, 0x87, 0x6c, 0x8a, 0xa9, 0x1c, 0x9e, 0x07, 0xd8, 0xb6, - 0x1d, 0xdb, 0xdf, 0x39, 0x62, 0x92, 0x08, 0x76, 0x45, 0x7b, 0x5e, 0x51, 0xc0, 0x1a, 0xb5, 0xf0, - 0x1e, 0x2c, 0x77, 0x40, 0xea, 0x9c, 0x57, 0x0d, 0x4d, 0xdd, 0x8c, 0xa7, 0x71, 0xef, 0xaf, 0x0d, - 0xcc, 0x92, 0x54, 0x3f, 0xe7, 0x9c, 0xc0, 0xdb, 0x3b, 0x50, 0x2b, 0x6d, 0x42, 0xde, 0x23, 0x7e, - 0xa7, 0x45, 0x4f, 0x8c, 0x13, 0x43, 0x77, 0x03, 0x8b, 0x99, 0xc0, 0xa2, 0x3e, 0x56, 0x94, 0x16, - 0x9f, 0x82, 0x13, 0x11, 0x11, 0xd0, 0x2c, 0x64, 0x6f, 0x92, 0x3d, 0x3e, 0x4f, 0x30, 0xfd, 0x89, - 0xe6, 0x23, 0xb7, 0x85, 0xa2, 0x5b, 0xde, 0x97, 0x79, 0xd2, 0x30, 0x5d, 0x48, 0x74, 0x00, 0x1c, - 0xe5, 0x32, 0x87, 0x8e, 0x45, 0x53, 0xcb, 0x12, 0xa1, 0xc6, 0x82, 0x47, 0xc6, 0x70, 0x98, 0xf9, - 0x93, 0x71, 0x10, 0x57, 0xd9, 0x03, 0x6c, 0x57, 0xfa, 0x0d, 0x56, 0xe6, 0x08, 0x37, 0x58, 0x17, - 0x61, 0xca, 0x76, 0xec, 0xc0, 0xb6, 0x9a, 0xcc, 0xb9, 0x23, 0xd4, 0xa9, 0x0c, 0x1d, 0x9e, 0x5a, - 0xd3, 0x60, 0x09, 0x74, 0x22, 0x75, 0xd1, 0x15, 0xc8, 0x31, 0x7d, 0x23, 0x26, 0xf0, 0xf0, 0xf7, - 0xed, 0x2c, 0xd4, 0x82, 0xbf, 0x27, 0xe2, 0x94, 0xd8, 0xe1, 0x83, 0xa7, 0xc9, 0x50, 0xc7, 0x6f, - 0x31, 0x8f, 0xc3, 0xc3, 0x47, 0x0c, 0x8e, 0x7b, 0x6a, 0x50, 0x2a, 0xdb, 0x96, 0xdd, 0xec, 0x78, - 0x24, 0xa4, 0x32, 0x1e, 0xa5, 0x72, 0x3e, 0x06, 0xc7, 0x3d, 0x35, 0xd0, 0x36, 0x4c, 0x89, 0x32, - 0x1e, 0xef, 0x34, 0x71, 0xc4, 0x56, 0xb2, 0xb8, 0xb6, 0xf3, 0x1a, 0x25, 0x1c, 0xa1, 0x8b, 0x3a, - 0x30, 0x67, 0x3b, 0x35, 0xd7, 0xa9, 0x35, 0x3b, 0xbe, 0xbd, 0x4b, 0xc2, 0xc7, 0x3c, 0x47, 0x61, - 0x76, 0x6a, 0xbf, 0x5b, 0x9c, 0x5b, 0x8b, 0x93, 0xc3, 0xbd, 0x1c, 0xd0, 0x2b, 0x06, 0x9c, 0xaa, - 0xb9, 0x8e, 0xcf, 0xde, 0x9d, 0xef, 0x92, 0x73, 0x9e, 0xe7, 0x7a, 0x9c, 0x77, 0xe1, 0x88, 0xbc, - 0x99, 0x4f, 0x71, 0x25, 0x89, 0x24, 0x4e, 0xe6, 0x84, 0x5e, 0x84, 0x7c, 0xdb, 0x73, 0x77, 0xed, - 0x3a, 0xf1, 0x44, 0xec, 0xdc, 0x7a, 0x1a, 0x79, 0x30, 0x2a, 0x82, 0x66, 0xb8, 0xf5, 0xc8, 0x12, - 0xac, 0xf8, 0x99, 0x6f, 0x14, 0x60, 0x3a, 0x8a, 0x8e, 0x3e, 0x01, 0xd0, 0xf6, 0xdc, 0x16, 0x09, - 0x76, 0x88, 0x7a, 0x94, 0x71, 0x69, 0xd4, 0x74, 0x0b, 0x92, 0x9e, 0x8c, 0x5e, 0xa1, 0xdb, 0x45, - 0x58, 0x8a, 0x35, 0x8e, 0xc8, 0x83, 0x89, 0x9b, 0x5c, 0xed, 0x0a, 0x2b, 0xe4, 0xb9, 0x54, 0x6c, - 0x26, 0xc1, 0x99, 0xbd, 0x26, 0x10, 0x45, 0x58, 0x32, 0x42, 0x5b, 0x90, 0xbd, 0x45, 0xb6, 0xd2, - 0x79, 0xc2, 0x7c, 0x9d, 0x88, 0xd3, 0x4c, 0x79, 0x62, 0xbf, 0x5b, 0xcc, 0x5e, 0x27, 0x5b, 0x98, - 0x12, 0xa7, 0xed, 0xaa, 0xf3, 0x7b, 0x78, 0xb1, 0x55, 0x8c, 0xd8, 0xae, 0xc8, 0xa5, 0x3e, 0x6f, - 0x97, 0x28, 0xc2, 0x92, 0x11, 0x7a, 0x11, 0x0a, 0xb7, 0xac, 0x5d, 0xb2, 0xed, 0xb9, 0x4e, 0x20, + 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x0d, 0xb3, 0xf1, 0xd1, 0xa6, 0x5d, 0xd9, 0xb2, 0xc4, + 0x5a, 0xcf, 0x86, 0x5d, 0xb9, 0x69, 0xf9, 0x3e, 0x66, 0x10, 0xf4, 0x08, 0xe4, 0x9b, 0x96, 0x57, + 0xb7, 0x1d, 0xab, 0xc1, 0x7a, 0x31, 0xab, 0x6d, 0x48, 0xa2, 0x1c, 0x2b, 0x0c, 0xf3, 0xdd, 0x30, + 0xb5, 0x61, 0x39, 0x75, 0x52, 0x13, 0xfb, 0xf0, 0xe1, 0x4f, 0xc4, 0x7e, 0x34, 0x06, 0x93, 0xda, + 0xd9, 0xec, 0xf8, 0xcf, 0x59, 0x91, 0x54, 0x0e, 0xd9, 0x14, 0x53, 0x39, 0x3c, 0x0f, 0xb0, 0x63, + 0x3b, 0xb6, 0xbf, 0x7b, 0xc4, 0x24, 0x11, 0xec, 0x8a, 0xf6, 0xbc, 0xa2, 0x80, 0x35, 0x6a, 0xe1, + 0x3d, 0x58, 0xee, 0x80, 0xd4, 0x39, 0xaf, 0x1a, 0x9a, 0xba, 0x19, 0x4f, 0xe3, 0xde, 0x5f, 0x1b, + 0x98, 0x25, 0xa9, 0x7e, 0xce, 0x39, 0x81, 0xb7, 0x7f, 0xa0, 0x56, 0xda, 0x82, 0xbc, 0x47, 0xfc, + 0x76, 0x93, 0x9e, 0x18, 0x27, 0x86, 0xee, 0x06, 0x16, 0x33, 0x81, 0x45, 0x7d, 0xac, 0x28, 0x2d, + 0x3e, 0x05, 0x27, 0x22, 0x22, 0xa0, 0x59, 0xc8, 0xde, 0x24, 0xfb, 0x7c, 0x9e, 0x60, 0xfa, 0x13, + 0xcd, 0x47, 0x6e, 0x0b, 0x45, 0xb7, 0xbc, 0x2f, 0xf3, 0xa4, 0x61, 0xba, 0x90, 0xe8, 0x00, 0x38, + 0xca, 0x65, 0x0e, 0x1d, 0x8b, 0x86, 0x96, 0x25, 0x42, 0x8d, 0x05, 0x8f, 0x8c, 0xe1, 0x30, 0xf3, + 0x27, 0xe3, 0x20, 0xae, 0xb2, 0x07, 0xd8, 0xae, 0xf4, 0x1b, 0xac, 0xcc, 0x11, 0x6e, 0xb0, 0x2e, + 0xc2, 0x94, 0xed, 0xd8, 0x81, 0x6d, 0x35, 0x98, 0x73, 0x47, 0xa8, 0x53, 0x19, 0x3a, 0x3c, 0xb5, + 0xa6, 0xc1, 0x12, 0xe8, 0x44, 0xea, 0xa2, 0x2b, 0x90, 0x63, 0xfa, 0x46, 0x4c, 0xe0, 0xe1, 0xef, + 0xdb, 0x59, 0xa8, 0x05, 0x7f, 0x4f, 0xc4, 0x29, 0xb1, 0xc3, 0x07, 0x4f, 0x93, 0xa1, 0x8e, 0xdf, + 0x62, 0x1e, 0x87, 0x87, 0x8f, 0x18, 0x1c, 0xf7, 0xd4, 0xa0, 0x54, 0x76, 0x2c, 0xbb, 0xd1, 0xf6, + 0x48, 0x48, 0x65, 0x3c, 0x4a, 0xe5, 0x7c, 0x0c, 0x8e, 0x7b, 0x6a, 0xa0, 0x1d, 0x98, 0x12, 0x65, + 0x3c, 0xde, 0x69, 0xe2, 0x88, 0xad, 0x64, 0x71, 0x6d, 0xe7, 0x35, 0x4a, 0x38, 0x42, 0x17, 0xb5, + 0x61, 0xce, 0x76, 0xaa, 0xae, 0x53, 0x6d, 0xb4, 0x7d, 0x7b, 0x8f, 0x84, 0x8f, 0x79, 0x8e, 0xc2, + 0xec, 0x54, 0xb7, 0x53, 0x9c, 0x5b, 0x8b, 0x93, 0xc3, 0xbd, 0x1c, 0xd0, 0x2b, 0x06, 0x9c, 0xaa, + 0xba, 0x8e, 0xcf, 0xde, 0x9d, 0xef, 0x91, 0x73, 0x9e, 0xe7, 0x7a, 0x9c, 0x77, 0xe1, 0x88, 0xbc, + 0x99, 0x4f, 0x71, 0x25, 0x89, 0x24, 0x4e, 0xe6, 0x84, 0x5e, 0x84, 0x7c, 0xcb, 0x73, 0xf7, 0xec, + 0x1a, 0xf1, 0x44, 0xec, 0xdc, 0x7a, 0x1a, 0x79, 0x30, 0x36, 0x05, 0xcd, 0x70, 0xeb, 0x91, 0x25, + 0x58, 0xf1, 0x33, 0xdf, 0x28, 0xc0, 0x74, 0x14, 0x1d, 0x7d, 0x02, 0xa0, 0xe5, 0xb9, 0x4d, 0x12, + 0xec, 0x12, 0xf5, 0x28, 0xe3, 0xd2, 0xa8, 0xe9, 0x16, 0x24, 0x3d, 0x19, 0xbd, 0x42, 0xb7, 0x8b, + 0xb0, 0x14, 0x6b, 0x1c, 0x91, 0x07, 0x13, 0x37, 0xb9, 0xda, 0x15, 0x56, 0xc8, 0x73, 0xa9, 0xd8, + 0x4c, 0x82, 0x33, 0x7b, 0x4d, 0x20, 0x8a, 0xb0, 0x64, 0x84, 0xb6, 0x21, 0x7b, 0x8b, 0x6c, 0xa7, + 0xf3, 0x84, 0xf9, 0x3a, 0x11, 0xa7, 0x99, 0xf2, 0x44, 0xb7, 0x53, 0xcc, 0x5e, 0x27, 0xdb, 0x98, + 0x12, 0xa7, 0xed, 0xaa, 0xf1, 0x7b, 0x78, 0xb1, 0x55, 0x8c, 0xd8, 0xae, 0xc8, 0xa5, 0x3e, 0x6f, + 0x97, 0x28, 0xc2, 0x92, 0x11, 0x7a, 0x11, 0x0a, 0xb7, 0xac, 0x3d, 0xb2, 0xe3, 0xb9, 0x4e, 0x20, 0x42, 0xa6, 0x46, 0x8c, 0xd3, 0xbf, 0x2e, 0xc9, 0x09, 0xbe, 0x4c, 0xbd, 0xab, 0x42, 0x1c, 0xb2, - 0x43, 0xbb, 0x90, 0x77, 0xc8, 0x2d, 0x4c, 0x9a, 0x76, 0x2d, 0x9d, 0xb8, 0xf8, 0x4b, 0x82, 0x9a, - 0xe0, 0xcc, 0xf4, 0x9e, 0x2c, 0xc3, 0x8a, 0x17, 0x1d, 0xcb, 0x1b, 0xee, 0x96, 0xd8, 0xa8, 0x46, - 0x1c, 0x4b, 0x75, 0x32, 0xe5, 0x63, 0x79, 0xd1, 0xdd, 0xc2, 0x94, 0x38, 0x5d, 0x23, 0x35, 0x15, + 0x43, 0x7b, 0x90, 0x77, 0xc8, 0x2d, 0x4c, 0x1a, 0x76, 0x35, 0x9d, 0xb8, 0xf8, 0x4b, 0x82, 0x9a, + 0xe0, 0xcc, 0xf4, 0x9e, 0x2c, 0xc3, 0x8a, 0x17, 0x1d, 0xcb, 0x1b, 0xee, 0xb6, 0xd8, 0xa8, 0x46, + 0x1c, 0x4b, 0x75, 0x32, 0xe5, 0x63, 0x79, 0xd1, 0xdd, 0xc6, 0x94, 0x38, 0x5d, 0x23, 0x55, 0x15, 0xaf, 0x23, 0xb6, 0xa9, 0x4b, 0xe9, 0xc6, 0x29, 0xf1, 0x35, 0x12, 0x96, 0x62, 0x8d, 0x23, 0xed, - 0xdb, 0x86, 0x70, 0x56, 0x8a, 0x8d, 0x6a, 0xc4, 0xbe, 0x8d, 0xba, 0x3e, 0x79, 0xdf, 0xca, 0x32, + 0xdb, 0xba, 0x70, 0x56, 0x8a, 0x8d, 0x6a, 0xc4, 0xbe, 0x8d, 0xba, 0x3e, 0x79, 0xdf, 0xca, 0x32, 0xac, 0x78, 0x51, 0xbe, 0xb6, 0xf0, 0xfc, 0xa5, 0xb3, 0x55, 0x45, 0xfd, 0x88, 0x9c, 0xaf, 0x2c, 0xc3, 0x8a, 0x97, 0xf9, 0xe5, 0x71, 0x98, 0xd2, 0xf3, 0x8d, 0x0d, 0x60, 0x23, 0x28, 0xbb, 0x38, 0x33, 0x8c, 0x5d, 0x4c, 0x0f, 0x42, 0xda, 0x1d, 0x87, 0x74, 0xc2, 0xac, 0xa5, 0x66, 0x16, 0x86, 0x07, 0x21, 0xad, 0xd0, 0xc7, 0x11, 0xa6, 0x43, 0x84, 0x3d, 0x50, 0xe3, 0x8a, 0x9b, 0x1f, 0xb9, 0xa8, 0x71, 0x15, 0x31, 0x28, 0x1e, 0x05, 0x08, 0xf3, 0x6e, 0x89, 0xbb, 0x2f, 0x65, 0xb5, 0x69, - 0xf9, 0xc0, 0x34, 0x2c, 0xf4, 0x10, 0x8c, 0x53, 0x05, 0x4d, 0xea, 0xe2, 0xa5, 0xae, 0x3a, 0x6d, + 0xf9, 0xc0, 0x34, 0x2c, 0xf4, 0x10, 0x8c, 0x53, 0x05, 0x4d, 0x6a, 0xe2, 0xa5, 0xae, 0x3a, 0x6d, 0x9e, 0x67, 0xa5, 0x58, 0x40, 0xd1, 0x93, 0xd4, 0x96, 0x0a, 0xd5, 0xaa, 0x78, 0x80, 0x3b, 0x1f, 0xda, 0x52, 0x21, 0x0c, 0x47, 0x30, 0xa9, 0xe8, 0x84, 0x6a, 0x41, 0x36, 0x83, 0x35, 0xd1, 0x99, 0x6a, 0xc4, 0x1c, 0xc6, 0xbc, 0x1f, 0x31, 0xad, 0xc9, 0x66, 0x5e, 0x4e, 0xf3, 0x7e, 0xc4, 0xe0, 0xb8, 0xa7, 0x06, 0x6d, 0x8c, 0xb8, 0xb6, 0x9b, 0xe4, 0xd1, 0x9d, 0x7d, 0x2e, 0xdc, 0x5e, 0xd3, 0x4f, 0x04, 0x53, 0x6c, 0xe8, 0xdf, 0x9f, 0x5e, 0xee, 0xbc, 0xc1, 0x8f, 0x04, 0xa3, 0x19, 0xef, - 0x1f, 0x85, 0xe9, 0xe8, 0x5e, 0x99, 0xba, 0x7f, 0xfe, 0xaf, 0xb3, 0x70, 0xf2, 0x52, 0xc3, 0x76, + 0x1f, 0x85, 0xe9, 0xe8, 0x5e, 0x99, 0xba, 0x7f, 0xfe, 0xaf, 0xb3, 0x70, 0xf2, 0x52, 0xdd, 0x76, 0x6e, 0xc7, 0x1c, 0xdb, 0x49, 0x39, 0x6d, 0x8d, 0x61, 0x73, 0xda, 0x86, 0x4f, 0x7e, 0x44, 0xd2, - 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, 0xfb, 0xad, 0x3a, 0xb7, - 0x5e, 0xad, 0xa6, 0x28, 0x0d, 0x99, 0xca, 0x15, 0xed, 0x8f, 0xa8, 0x8b, 0x7a, 0x1b, 0xbf, 0x54, + 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, 0xfb, 0xad, 0x1a, 0xb7, + 0x5e, 0xad, 0x86, 0x28, 0x0d, 0x99, 0xca, 0x15, 0xed, 0x8f, 0xa8, 0x8b, 0x7a, 0x1b, 0xbf, 0x54, 0x3a, 0x80, 0x2b, 0x1f, 0xf1, 0x77, 0x88, 0x16, 0xdc, 0x7f, 0x10, 0x2a, 0x3e, 0x50, 0xfc, 0xc5, 0xcb, 0xf0, 0xf6, 0x43, 0x19, 0x0d, 0x35, 0x5b, 0x3e, 0x65, 0x40, 0x81, 0xbb, 0x4f, 0x31, 0xd9, - 0xa6, 0x5b, 0x85, 0xd5, 0xb6, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, 0x03, 0x5e, 0xa9, 0xb2, - 0x26, 0x20, 0x58, 0xc3, 0xa2, 0x9b, 0xf1, 0x4d, 0xdb, 0xa9, 0x8b, 0x61, 0x52, 0x9b, 0xf1, 0x73, - 0xb6, 0x53, 0xc7, 0x0c, 0xa2, 0xb6, 0xeb, 0x6c, 0x5f, 0xb7, 0xc6, 0x1b, 0x06, 0x4c, 0xb3, 0x77, - 0x8e, 0xe1, 0xd1, 0xe3, 0x09, 0x15, 0xd3, 0xc2, 0xc5, 0x38, 0x13, 0x8d, 0x69, 0xb9, 0xd3, 0x2d, - 0x4e, 0xf2, 0x97, 0x91, 0xd1, 0x10, 0x97, 0x0f, 0x0a, 0x7f, 0x05, 0x8b, 0xbc, 0xc9, 0x0c, 0x7d, - 0x9c, 0x56, 0xfe, 0xbc, 0xaa, 0x24, 0x82, 0x43, 0x7a, 0xe6, 0x4b, 0x30, 0xa5, 0x3f, 0x58, 0x40, - 0x4f, 0xc0, 0x64, 0xdb, 0x76, 0x1a, 0xd1, 0x87, 0x6d, 0xca, 0xa7, 0x5b, 0x09, 0x41, 0x58, 0xc7, - 0x63, 0xd5, 0xdc, 0xb0, 0x5a, 0xcc, 0x15, 0x5c, 0x71, 0xf5, 0x6a, 0xe1, 0x1f, 0xf3, 0x4f, 0xb2, - 0x70, 0x32, 0xe1, 0x61, 0x0c, 0x7a, 0xd5, 0x80, 0x71, 0x16, 0xa5, 0x2f, 0xa3, 0x56, 0x5e, 0x48, - 0xfd, 0xf1, 0xcd, 0x12, 0x7b, 0x0c, 0x20, 0xe6, 0xb1, 0xda, 0x3e, 0x79, 0x21, 0x16, 0xcc, 0xd1, - 0x6f, 0x19, 0x30, 0x69, 0x69, 0x4b, 0x8d, 0x07, 0xf2, 0x6c, 0xa5, 0x2f, 0x4c, 0xcf, 0xca, 0xd2, - 0x02, 0x10, 0xc3, 0x85, 0xa4, 0xcb, 0xb2, 0xf8, 0x5e, 0x98, 0xd4, 0x9a, 0x30, 0xcc, 0x0a, 0x59, - 0x7c, 0x06, 0x66, 0x47, 0x5a, 0x61, 0x1f, 0x80, 0x61, 0x73, 0xc7, 0x51, 0x85, 0x75, 0x4b, 0x7f, - 0x7c, 0xac, 0x7a, 0x5c, 0xbc, 0x3e, 0x16, 0x50, 0x73, 0x0b, 0x66, 0xe3, 0x87, 0xab, 0xd4, 0xef, - 0xad, 0xdf, 0x0d, 0x43, 0x66, 0x7b, 0x33, 0xbf, 0x9d, 0x81, 0x09, 0xf1, 0xba, 0xee, 0x2e, 0xc4, - 0xee, 0xde, 0x8c, 0x5c, 0xea, 0xac, 0xa5, 0xf2, 0x28, 0xb0, 0x6f, 0xe0, 0xae, 0x1f, 0x0b, 0xdc, - 0x7d, 0x2e, 0x1d, 0x76, 0x07, 0x47, 0xed, 0xbe, 0x31, 0x06, 0x33, 0xb1, 0xd7, 0x8a, 0xd4, 0x54, - 0xe9, 0x09, 0x56, 0xbb, 0x9a, 0xea, 0x83, 0x48, 0x15, 0x57, 0x7e, 0x70, 0xdc, 0x9a, 0x1f, 0x49, - 0xaa, 0x79, 0x25, 0xb5, 0x7c, 0xdc, 0x3f, 0xcf, 0xaf, 0x39, 0x6c, 0x1c, 0xd6, 0x3f, 0x1b, 0x70, - 0x6f, 0xdf, 0x47, 0xad, 0x2c, 0x27, 0x8a, 0x17, 0x85, 0x8a, 0x05, 0x99, 0xf2, 0xd3, 0x7d, 0x75, - 0xc3, 0x12, 0x4f, 0x63, 0x11, 0x67, 0x8f, 0x1e, 0x87, 0x29, 0xa6, 0x5a, 0xe9, 0x9e, 0x12, 0x90, - 0xb6, 0x70, 0x10, 0x33, 0x57, 0x61, 0x55, 0x2b, 0xc7, 0x11, 0x2c, 0xf3, 0x4b, 0x06, 0x2c, 0xf4, - 0xcb, 0x90, 0x31, 0xc0, 0xc1, 0xf0, 0x17, 0x62, 0xc1, 0xc5, 0xc5, 0x9e, 0xe0, 0xe2, 0xd8, 0xd1, - 0x50, 0xc6, 0x11, 0x6b, 0xa7, 0xb2, 0xec, 0x21, 0xb1, 0xb3, 0x9f, 0x35, 0xe0, 0x74, 0x9f, 0xd5, - 0xd4, 0x13, 0x64, 0x6e, 0x1c, 0x39, 0xc8, 0x3c, 0x33, 0x68, 0x90, 0xb9, 0xf9, 0xdd, 0x2c, 0xcc, - 0x0a, 0x79, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, 0xda, 0xf3, 0x71, 0xfc, - 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, 0x89, 0x3b, 0xd0, 0xa7, - 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, 0x6a, 0xfe, 0x82, 0x1e, - 0x4c, 0xcc, 0xb7, 0xfa, 0xed, 0x63, 0xc8, 0x75, 0x32, 0x64, 0x5c, 0xb1, 0xf9, 0x6b, 0x59, 0x78, - 0x78, 0x50, 0x42, 0x6f, 0xd1, 0x77, 0x27, 0x7e, 0xe4, 0xdd, 0xc9, 0x5d, 0x52, 0xdb, 0xc7, 0xf2, - 0x04, 0xe5, 0xcb, 0x59, 0xa5, 0xf6, 0x7a, 0xe7, 0xe7, 0x40, 0xb7, 0x89, 0x13, 0xd4, 0xb4, 0x93, - 0xe9, 0x3c, 0xc3, 0xad, 0x70, 0xa2, 0xca, 0x8b, 0xef, 0x74, 0x8b, 0x73, 0x22, 0xc5, 0x5f, 0x95, - 0x04, 0xa2, 0x10, 0xcb, 0x4a, 0xe8, 0x61, 0xc8, 0x7b, 0x1c, 0x2a, 0x23, 0xed, 0xc5, 0x95, 0x2c, - 0x2f, 0xc3, 0x0a, 0x8a, 0x3e, 0xa9, 0xd9, 0xc2, 0x63, 0xc7, 0x95, 0x25, 0xe1, 0xa0, 0x9b, 0xe6, - 0x17, 0x20, 0xef, 0xcb, 0xc4, 0x9c, 0xfc, 0x3a, 0xe0, 0xb1, 0x01, 0x1f, 0x70, 0xd0, 0xa3, 0x93, - 0xcc, 0xd2, 0xc9, 0xdb, 0xa7, 0x72, 0x78, 0x2a, 0x92, 0xc8, 0x54, 0xa7, 0x16, 0xee, 0x63, 0x84, - 0x84, 0x13, 0xcb, 0xf7, 0x0c, 0x98, 0x14, 0xa3, 0x75, 0x17, 0xde, 0x94, 0xdc, 0x88, 0xbe, 0x29, - 0x39, 0x97, 0xca, 0xde, 0xd1, 0xe7, 0x41, 0xc9, 0x0d, 0x98, 0xd2, 0x73, 0x37, 0xa1, 0xe7, 0xb5, - 0xbd, 0xcf, 0x18, 0x25, 0x1b, 0x8a, 0xdc, 0x1d, 0xc3, 0x7d, 0xd1, 0xfc, 0x9d, 0xbc, 0xea, 0x45, - 0xe6, 0x87, 0xd0, 0xe7, 0xa0, 0x71, 0xe0, 0x1c, 0xd4, 0xa7, 0x40, 0x26, 0xfd, 0x29, 0x70, 0x05, - 0xf2, 0x72, 0x83, 0x12, 0x6a, 0xfc, 0x41, 0x3d, 0xca, 0x8e, 0xda, 0x02, 0x94, 0x98, 0x36, 0x71, - 0xd9, 0x51, 0x4b, 0x8d, 0xa1, 0xda, 0x38, 0x15, 0x19, 0xf4, 0x22, 0x4c, 0xde, 0x72, 0xbd, 0x9b, - 0x4d, 0xd7, 0x62, 0x29, 0x77, 0x21, 0x8d, 0x8b, 0x1d, 0xe5, 0xf0, 0xe2, 0xa1, 0xce, 0xd7, 0x43, - 0xfa, 0x58, 0x67, 0x86, 0x4a, 0x30, 0xd3, 0xb2, 0x1d, 0x4c, 0xac, 0xba, 0x7a, 0x3a, 0x32, 0xc6, - 0x73, 0x82, 0x4a, 0x23, 0x77, 0x23, 0x0a, 0xc6, 0x71, 0x7c, 0xf4, 0x71, 0xc8, 0xfb, 0x22, 0x13, - 0x52, 0x3a, 0x57, 0x70, 0xea, 0xcc, 0xc8, 0x89, 0x86, 0x7d, 0x27, 0x4b, 0xb0, 0x62, 0x88, 0xd6, - 0x61, 0xde, 0x13, 0xb9, 0x46, 0x22, 0x1f, 0xec, 0xe0, 0xeb, 0x93, 0xa5, 0x9e, 0xc4, 0x09, 0x70, - 0x9c, 0x58, 0x8b, 0x5a, 0x31, 0x2c, 0x09, 0x19, 0xbf, 0x13, 0xd0, 0xdc, 0xe8, 0x6c, 0xc2, 0xd7, - 0xb1, 0x80, 0x1e, 0xf4, 0x14, 0x29, 0x3f, 0xc2, 0x53, 0xa4, 0x2a, 0x9c, 0x8a, 0x83, 0x58, 0x46, - 0x14, 0x96, 0x84, 0x45, 0xd3, 0x1e, 0x95, 0x24, 0x24, 0x9c, 0x5c, 0x17, 0x5d, 0x87, 0x82, 0x47, - 0xd8, 0xf9, 0xa2, 0x24, 0x2f, 0xfd, 0x87, 0x0e, 0x6f, 0xc2, 0x92, 0x00, 0x0e, 0x69, 0xd1, 0x71, - 0xb7, 0xa2, 0x69, 0x31, 0xaf, 0xa4, 0xf8, 0xc9, 0x31, 0x31, 0xf6, 0x7d, 0x32, 0x15, 0x99, 0x6f, - 0x4e, 0xc3, 0x89, 0x88, 0x6f, 0x01, 0x3d, 0x08, 0x39, 0x96, 0x22, 0x86, 0x6d, 0x0f, 0xf9, 0x70, - 0x0b, 0xe3, 0x9d, 0xc3, 0x61, 0xe8, 0x73, 0x06, 0xcc, 0xb4, 0x23, 0x5e, 0x58, 0xb9, 0x73, 0x8e, - 0x78, 0xcf, 0x17, 0x75, 0xed, 0x6a, 0x09, 0xa5, 0xa3, 0xcc, 0x70, 0x9c, 0x3b, 0x5d, 0x80, 0x22, - 0x46, 0xb0, 0x49, 0x3c, 0x86, 0x2d, 0x6c, 0x1c, 0x45, 0x62, 0x25, 0x0a, 0xc6, 0x71, 0x7c, 0x3a, - 0xc2, 0xac, 0x75, 0xa3, 0x7c, 0x8b, 0xa8, 0x24, 0x09, 0xe0, 0x90, 0x16, 0x7a, 0x06, 0xa6, 0x45, - 0x36, 0xc4, 0x8a, 0x5b, 0xbf, 0x60, 0xf9, 0x3b, 0xc2, 0xb8, 0x57, 0x87, 0x91, 0x95, 0x08, 0x14, - 0xc7, 0xb0, 0x59, 0xdb, 0xc2, 0x94, 0x93, 0x8c, 0xc0, 0x78, 0x34, 0xdf, 0xf6, 0x4a, 0x14, 0x8c, - 0xe3, 0xf8, 0xe8, 0x11, 0x6d, 0xdf, 0xe7, 0xf7, 0x74, 0x6a, 0x37, 0x48, 0xd8, 0xfb, 0x4b, 0x30, - 0xd3, 0x61, 0x67, 0xa1, 0xba, 0x04, 0x8a, 0xf5, 0xa8, 0x18, 0x5e, 0x8d, 0x82, 0x71, 0x1c, 0x1f, - 0x3d, 0x05, 0x27, 0x3c, 0xba, 0xbb, 0x29, 0x02, 0xfc, 0xf2, 0x4e, 0xdd, 0xcd, 0x60, 0x1d, 0x88, - 0xa3, 0xb8, 0xe8, 0x59, 0x98, 0x0b, 0x93, 0x87, 0x49, 0x02, 0xfc, 0x36, 0x4f, 0xe5, 0xc5, 0x29, - 0xc5, 0x11, 0x70, 0x6f, 0x1d, 0xf4, 0x4b, 0x30, 0xab, 0xf5, 0xc4, 0x9a, 0x53, 0x27, 0xb7, 0x45, - 0x82, 0x27, 0xf6, 0x69, 0x84, 0x95, 0x18, 0x0c, 0xf7, 0x60, 0xa3, 0xf7, 0xc1, 0x74, 0xcd, 0x6d, - 0x36, 0xd9, 0x1e, 0xc7, 0x73, 0x3d, 0xf3, 0x4c, 0x4e, 0x3c, 0xe7, 0x55, 0x04, 0x82, 0x63, 0x98, - 0xe8, 0x22, 0x20, 0x77, 0xcb, 0x27, 0xde, 0x2e, 0xa9, 0x3f, 0xcb, 0xbf, 0x6e, 0x4a, 0x55, 0xfc, - 0x89, 0x68, 0x84, 0xf2, 0xe5, 0x1e, 0x0c, 0x9c, 0x50, 0x8b, 0xa5, 0xd5, 0xd1, 0x5e, 0x74, 0x4d, - 0xa7, 0xf1, 0x5d, 0x9e, 0xf8, 0xc9, 0xfd, 0xd0, 0xe7, 0x5c, 0x1e, 0x8c, 0xf3, 0x80, 0xf1, 0x74, - 0x52, 0x3a, 0xe9, 0x69, 0x5f, 0x43, 0x1d, 0xc1, 0x4b, 0xb1, 0xe0, 0x84, 0x3e, 0x01, 0x85, 0x2d, - 0x99, 0x03, 0x7c, 0x61, 0x36, 0x0d, 0xbd, 0x18, 0x4b, 0x67, 0x1f, 0x9e, 0x4c, 0x15, 0x00, 0x87, - 0x2c, 0xd1, 0x43, 0x30, 0x79, 0xa1, 0x52, 0x52, 0xb3, 0x70, 0x8e, 0x8d, 0xfe, 0x18, 0xad, 0x82, - 0x75, 0x00, 0x5d, 0x61, 0xca, 0x5e, 0x42, 0x6c, 0x88, 0x43, 0x7d, 0xdb, 0x6b, 0xfe, 0x50, 0x6c, - 0x76, 0x1d, 0x89, 0xab, 0x0b, 0x27, 0x63, 0xd8, 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x02, 0x4c, 0x0a, - 0x7d, 0xc1, 0xf6, 0xa6, 0xf9, 0xa3, 0xbd, 0x16, 0xc4, 0x21, 0x09, 0xac, 0xd3, 0x63, 0xb7, 0x4c, - 0x2c, 0x35, 0x32, 0x39, 0xdf, 0x69, 0x36, 0x17, 0x4e, 0xb1, 0x7d, 0x33, 0xbc, 0x65, 0x0a, 0x41, - 0x58, 0xc7, 0x43, 0x8f, 0xc9, 0xc8, 0x89, 0xb7, 0x45, 0xae, 0xdd, 0x54, 0xe4, 0x84, 0xb2, 0x72, - 0xfb, 0x04, 0x14, 0x9f, 0x3e, 0x24, 0x64, 0x61, 0x0b, 0x16, 0xa5, 0x89, 0xd5, 0xbb, 0x48, 0x16, - 0x16, 0x22, 0x5e, 0x82, 0xc5, 0xeb, 0x7d, 0x31, 0xf1, 0x01, 0x54, 0xd0, 0x16, 0x64, 0xad, 0xe6, - 0xd6, 0xc2, 0xbd, 0x69, 0xd8, 0x8a, 0xea, 0x6b, 0xc5, 0x3c, 0x08, 0xa8, 0xb4, 0x5e, 0xc6, 0x94, - 0xb8, 0xf9, 0x4a, 0x46, 0x79, 0xe5, 0x55, 0xaa, 0xcb, 0x97, 0xf4, 0x59, 0x6d, 0xa4, 0xf1, 0x35, - 0xce, 0x9e, 0x44, 0xf9, 0x5c, 0x21, 0x25, 0xce, 0xe9, 0xb6, 0x5a, 0xc7, 0xa9, 0xe4, 0x31, 0x89, - 0xa6, 0xf1, 0xe4, 0xa7, 0xb9, 0xe8, 0x2a, 0x36, 0xf7, 0x27, 0x94, 0x13, 0x2a, 0x16, 0x0a, 0xe0, - 0x41, 0xce, 0xf6, 0x03, 0xdb, 0x4d, 0xf1, 0x65, 0x5b, 0x2c, 0xff, 0x25, 0x0b, 0x9c, 0x65, 0x00, - 0xcc, 0x59, 0x51, 0x9e, 0x4e, 0xc3, 0x76, 0x6e, 0x8b, 0xe6, 0x5f, 0x49, 0xfd, 0x8e, 0x9f, 0xf3, - 0x64, 0x00, 0xcc, 0x59, 0xa1, 0x1b, 0x7c, 0xa6, 0xa5, 0xf3, 0xe5, 0xd5, 0xf8, 0x07, 0x95, 0xa3, - 0x33, 0x8e, 0xf2, 0xf2, 0x5b, 0xb6, 0xb0, 0x61, 0x46, 0xe4, 0x55, 0xdd, 0x58, 0x4b, 0xe2, 0x55, - 0xdd, 0x58, 0xc3, 0x94, 0x09, 0x7a, 0xcd, 0x00, 0xb0, 0xd4, 0x97, 0x85, 0xd3, 0xf9, 0xaa, 0x44, - 0xbf, 0x2f, 0x15, 0xf3, 0x58, 0xb7, 0x10, 0x8a, 0x35, 0xce, 0xe8, 0x45, 0x98, 0xb0, 0xf8, 0x37, - 0x71, 0x44, 0x18, 0x61, 0x3a, 0x1f, 0x7a, 0x8a, 0x49, 0xc0, 0xe2, 0x27, 0x05, 0x08, 0x4b, 0x86, - 0x94, 0x77, 0xe0, 0x59, 0x64, 0xdb, 0xbe, 0x29, 0xe2, 0x09, 0xab, 0x23, 0xa7, 0xb6, 0xa6, 0xc4, - 0x92, 0x78, 0x0b, 0x10, 0x96, 0x0c, 0xf9, 0xc7, 0x3c, 0x2d, 0xc7, 0x52, 0x8f, 0x43, 0xd2, 0x79, - 0x42, 0xa4, 0x3f, 0x37, 0xd1, 0x3e, 0xe6, 0xa9, 0x33, 0xc2, 0x51, 0xbe, 0xe6, 0x8f, 0xb3, 0x00, - 0xec, 0x27, 0x7f, 0xb0, 0xdc, 0x62, 0x49, 0xee, 0x76, 0xdc, 0xba, 0x58, 0xda, 0x29, 0xbe, 0x3b, - 0x06, 0x91, 0xd1, 0x6e, 0xc7, 0xad, 0x63, 0xc1, 0x04, 0x35, 0x60, 0xac, 0x6d, 0x05, 0x3b, 0xe9, - 0x3f, 0x72, 0xce, 0xf3, 0x97, 0x3b, 0xc1, 0x0e, 0x66, 0x0c, 0xd0, 0xcb, 0x06, 0x4c, 0xf0, 0x67, - 0xce, 0xd2, 0xd5, 0x3c, 0xf2, 0x7d, 0xaa, 0xec, 0xb3, 0x25, 0xfe, 0x96, 0x5a, 0x04, 0x2b, 0x28, - 0xd5, 0x28, 0x4a, 0xb1, 0x64, 0xbb, 0xf8, 0xaa, 0x01, 0x53, 0x3a, 0x6a, 0x42, 0x98, 0xc1, 0x47, - 0xf4, 0x30, 0x83, 0x34, 0xfb, 0x43, 0x8f, 0x58, 0xf8, 0x37, 0x03, 0xb4, 0x4f, 0xa0, 0x86, 0x41, - 0x86, 0xc6, 0xc0, 0x41, 0x86, 0x99, 0x21, 0x83, 0x0c, 0xb3, 0x43, 0x05, 0x19, 0x8e, 0x0d, 0x1f, - 0x64, 0x98, 0xeb, 0x1f, 0x64, 0x68, 0xbe, 0x6e, 0xc0, 0x5c, 0xcf, 0x7e, 0x18, 0xff, 0xd4, 0xbc, - 0x31, 0xe0, 0xa7, 0xe6, 0x57, 0x61, 0x56, 0x24, 0x61, 0xae, 0xb6, 0x9b, 0x76, 0xe2, 0x03, 0xf4, - 0xcd, 0x18, 0x1c, 0xf7, 0xd4, 0x30, 0xff, 0xc2, 0x80, 0x49, 0xed, 0xd9, 0x1a, 0x6d, 0x07, 0x7b, - 0xde, 0x27, 0xc4, 0x08, 0xf3, 0x4f, 0x33, 0xd7, 0x3e, 0x87, 0xf1, 0x5b, 0xa6, 0x86, 0x96, 0xf0, - 0x33, 0xbc, 0x65, 0xa2, 0xa5, 0x58, 0x40, 0x79, 0x2a, 0x47, 0xd2, 0x66, 0x9d, 0x9e, 0xd5, 0x53, - 0x39, 0x92, 0x36, 0x66, 0x10, 0xc6, 0x8e, 0xda, 0x91, 0x22, 0xfe, 0x54, 0x4b, 0x77, 0x6d, 0x79, - 0x01, 0xe6, 0x30, 0x74, 0x06, 0xb2, 0xc4, 0xa9, 0x8b, 0x43, 0xaf, 0xfa, 0xc4, 0xd4, 0x39, 0xa7, - 0x8e, 0x69, 0xb9, 0x79, 0x19, 0xa6, 0xaa, 0xa4, 0xe6, 0x91, 0xe0, 0x39, 0xb2, 0x37, 0xf0, 0x37, - 0xab, 0xe8, 0x6c, 0x8f, 0x7d, 0xb3, 0x8a, 0x56, 0xa7, 0xe5, 0xe6, 0x1f, 0x19, 0x10, 0xcb, 0xc9, - 0xae, 0x79, 0x9c, 0x8d, 0x7e, 0x1e, 0xe7, 0x88, 0x6f, 0x34, 0x73, 0xa0, 0x6f, 0xf4, 0x22, 0xa0, - 0x16, 0x5d, 0x0a, 0x91, 0x2f, 0x10, 0x08, 0x7f, 0x43, 0xf8, 0x48, 0xb6, 0x07, 0x03, 0x27, 0xd4, - 0x32, 0xff, 0x90, 0x0b, 0xab, 0x67, 0x69, 0x3f, 0xbc, 0x03, 0x3a, 0x90, 0x63, 0xa4, 0x84, 0xd3, - 0xa5, 0x32, 0xda, 0xe2, 0xee, 0x4d, 0x36, 0x11, 0x0e, 0xa4, 0x58, 0xf2, 0x8c, 0x9b, 0xf9, 0x5d, - 0x2e, 0xab, 0x96, 0xc6, 0x7d, 0x00, 0x59, 0x5b, 0x51, 0x59, 0x2f, 0xa4, 0xb5, 0x57, 0x26, 0xcb, - 0x88, 0x96, 0x00, 0xda, 0xc4, 0xab, 0x11, 0x27, 0x90, 0x61, 0xd1, 0x39, 0xf1, 0x8c, 0x44, 0x95, - 0x62, 0x0d, 0xc3, 0x7c, 0xd9, 0x80, 0xd9, 0x6a, 0x60, 0xd7, 0x6e, 0xda, 0x0e, 0x7f, 0x16, 0xb5, - 0x6d, 0x37, 0xe8, 0x29, 0x85, 0x88, 0xcf, 0x31, 0x71, 0x37, 0x98, 0xda, 0x8a, 0xe5, 0x57, 0x98, - 0x24, 0x1c, 0x95, 0x60, 0x46, 0x7a, 0xdb, 0xa5, 0xef, 0x92, 0x3f, 0xe7, 0x54, 0xbe, 0x92, 0xd5, - 0x28, 0x18, 0xc7, 0xf1, 0xcd, 0x4f, 0xc2, 0xa4, 0xb6, 0xbf, 0xb2, 0xad, 0xe8, 0xb6, 0x55, 0x0b, - 0xe2, 0x4b, 0xf8, 0x1c, 0x2d, 0xc4, 0x1c, 0xc6, 0x5c, 0xac, 0x3c, 0x6e, 0x36, 0xb6, 0x84, 0x45, - 0xb4, 0xac, 0x80, 0x52, 0x62, 0x1e, 0x69, 0x90, 0xdb, 0x32, 0xb5, 0xa8, 0x24, 0x86, 0x69, 0x21, - 0xe6, 0x30, 0xf3, 0x11, 0xc8, 0xcb, 0x47, 0xf7, 0xec, 0xe5, 0xaa, 0x74, 0xff, 0xe9, 0x2f, 0x57, - 0x5d, 0x2f, 0xc0, 0x0c, 0x62, 0x5e, 0x83, 0xbc, 0xcc, 0x0d, 0x70, 0x38, 0x36, 0x5d, 0x55, 0xbe, - 0x63, 0x5f, 0x70, 0xfd, 0x40, 0x26, 0x34, 0xe0, 0x57, 0x02, 0x97, 0xd6, 0x58, 0x19, 0x56, 0x50, - 0x73, 0x0e, 0x66, 0x94, 0xaf, 0x5f, 0x04, 0x32, 0x7e, 0x23, 0x0b, 0x53, 0x91, 0x4f, 0x01, 0x1f, - 0x3e, 0xdd, 0x06, 0x5f, 0xc5, 0x09, 0x3e, 0xfb, 0xec, 0x90, 0x3e, 0x7b, 0xfd, 0x92, 0x64, 0xec, - 0x78, 0x2f, 0x49, 0x72, 0xe9, 0x5c, 0x92, 0x04, 0x30, 0xe1, 0x0b, 0x45, 0x35, 0x9e, 0x86, 0x33, - 0x25, 0x36, 0x62, 0xdc, 0x46, 0x95, 0xfa, 0x4e, 0xb2, 0x32, 0xbf, 0x9a, 0x83, 0xe9, 0x68, 0x56, - 0xa4, 0x01, 0x46, 0xf2, 0x91, 0x9e, 0x91, 0x1c, 0xd2, 0x67, 0x99, 0x1d, 0xd5, 0x67, 0x39, 0x36, - 0xaa, 0xcf, 0x32, 0x77, 0x04, 0x9f, 0x65, 0xaf, 0xc7, 0x71, 0x7c, 0x60, 0x8f, 0xe3, 0xd3, 0x2a, - 0xe0, 0x66, 0x22, 0x72, 0x43, 0x1d, 0x06, 0xdc, 0xa0, 0xe8, 0x30, 0xac, 0xb8, 0xf5, 0xc4, 0xc0, - 0xa5, 0xfc, 0x21, 0xbe, 0x19, 0x2f, 0x31, 0x3e, 0x66, 0xf8, 0x6b, 0x91, 0xb7, 0x0d, 0x11, 0x1b, - 0xf3, 0x04, 0x4c, 0x8a, 0xf9, 0xc4, 0x6c, 0x25, 0x88, 0xda, 0x59, 0xd5, 0x10, 0x84, 0x75, 0x3c, - 0xf6, 0xb5, 0xca, 0xe8, 0xe7, 0x39, 0x99, 0x0b, 0x58, 0xff, 0x5a, 0x65, 0xec, 0x73, 0x9e, 0x71, - 0x7c, 0xf3, 0xe3, 0x70, 0x2a, 0xf1, 0x44, 0xc6, 0x5c, 0x54, 0x4c, 0x8d, 0x93, 0xba, 0x40, 0xd0, - 0xc4, 0x88, 0x25, 0xcd, 0x5d, 0xbc, 0xde, 0x17, 0x13, 0x1f, 0x40, 0xc5, 0xfc, 0x4a, 0x16, 0xa6, - 0xa3, 0x9f, 0x3a, 0x42, 0xb7, 0x94, 0xff, 0x26, 0x15, 0xd7, 0x11, 0x27, 0xab, 0x65, 0xda, 0xe9, - 0xeb, 0x8c, 0xbd, 0xc5, 0xe6, 0xd7, 0x96, 0x4a, 0xfb, 0x73, 0x7c, 0x8c, 0x85, 0x17, 0x54, 0xb0, - 0x63, 0x5f, 0x33, 0x0a, 0x9f, 0x3b, 0x88, 0x63, 0x57, 0xea, 0xdc, 0xc3, 0x07, 0x0c, 0x8a, 0x15, - 0xd6, 0xd8, 0x52, 0xdd, 0xb2, 0x4b, 0x3c, 0x7b, 0xdb, 0x56, 0x9f, 0x69, 0x64, 0x3b, 0xf7, 0x35, - 0x51, 0x86, 0x15, 0xd4, 0x7c, 0x39, 0x03, 0xe1, 0x47, 0x69, 0xd9, 0xf7, 0x40, 0x7c, 0xcd, 0xc4, - 0x15, 0xc3, 0x76, 0x71, 0xd4, 0x8f, 0xee, 0x84, 0x14, 0x45, 0x30, 0xa4, 0x56, 0x82, 0x23, 0x1c, - 0x7f, 0x06, 0x1f, 0xa3, 0xb5, 0x60, 0x26, 0xf6, 0x08, 0x34, 0xf5, 0x88, 0xf3, 0x1f, 0x65, 0xa1, - 0xa0, 0x9e, 0xd1, 0xa2, 0xf7, 0x46, 0xfc, 0x0d, 0x85, 0xf2, 0xdb, 0xb5, 0xd4, 0xf7, 0x3b, 0x6e, - 0xfd, 0x4e, 0xb7, 0x38, 0xa3, 0x90, 0x63, 0xbe, 0x83, 0x33, 0x90, 0xed, 0x78, 0xcd, 0xf8, 0x81, - 0xe2, 0x2a, 0x5e, 0xc7, 0xb4, 0x1c, 0xdd, 0x8e, 0x1f, 0xf8, 0x37, 0x52, 0x7a, 0xfa, 0xcb, 0x2d, - 0xef, 0xfe, 0x07, 0x7d, 0xaa, 0x25, 0xb7, 0xdc, 0xfa, 0x5e, 0x3c, 0x55, 0x7e, 0xd9, 0xad, 0xef, - 0x61, 0x06, 0x41, 0xcf, 0xc0, 0x74, 0x60, 0xb7, 0x88, 0xdb, 0x09, 0xf4, 0x4f, 0x7e, 0x66, 0xc3, - 0xcb, 0xc5, 0xcd, 0x08, 0x14, 0xc7, 0xb0, 0xa9, 0x96, 0xbd, 0xe1, 0xbb, 0x0e, 0xcb, 0x7f, 0x37, - 0x1e, 0xbd, 0x89, 0xb8, 0x58, 0xbd, 0x7c, 0x89, 0xf9, 0x3d, 0x14, 0x06, 0xc5, 0xb6, 0xd9, 0x9b, - 0x39, 0x8f, 0x88, 0xbb, 0xfd, 0xd9, 0x30, 0xa3, 0x02, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, - 0x54, 0x5a, 0xa6, 0x51, 0xa6, 0xca, 0x0f, 0x4b, 0xba, 0xb4, 0xec, 0x4e, 0xb7, 0xb8, 0x40, 0x9c, - 0x9a, 0x5b, 0xb7, 0x9d, 0xc6, 0x32, 0x45, 0x5c, 0xc2, 0xd6, 0x2d, 0xa9, 0x6a, 0x54, 0x4d, 0xf3, - 0x2a, 0xcc, 0xc4, 0x3a, 0x4c, 0x1e, 0x00, 0x8d, 0xe4, 0x03, 0xe0, 0x60, 0xd9, 0xed, 0xff, 0xd4, - 0x80, 0xb9, 0x9e, 0x2d, 0x60, 0xd0, 0x07, 0x15, 0x71, 0x65, 0x94, 0x39, 0xba, 0x32, 0xca, 0x0e, - 0xa7, 0x8c, 0xca, 0x5b, 0xdf, 0x7a, 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, - 0xf3, 0xec, 0x3d, 0x2f, 0xef, 0x9f, 0x35, 0xbe, 0xb5, 0x7f, 0xd6, 0xf8, 0xce, 0xfe, 0x59, 0xe3, - 0xfb, 0xfb, 0x67, 0x8d, 0x7f, 0xda, 0x3f, 0x6b, 0xbc, 0xfe, 0xa3, 0xb3, 0xf7, 0x3c, 0xff, 0x74, - 0x38, 0x41, 0x97, 0xe5, 0x04, 0x65, 0x3f, 0xde, 0x25, 0xa7, 0xe3, 0x72, 0xfb, 0x66, 0x63, 0x99, - 0x4e, 0xd0, 0x65, 0x55, 0x22, 0x27, 0xe8, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x2a, 0x23, - 0xab, 0x55, 0x93, 0x00, 0x00, + 0xa1, 0x5b, 0x85, 0xd5, 0xb2, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, 0x03, 0x5e, 0x69, 0x73, + 0x4d, 0x40, 0xb0, 0x86, 0x45, 0x37, 0xe3, 0x9b, 0xb6, 0x53, 0x13, 0xc3, 0xa4, 0x36, 0xe3, 0xe7, + 0x6c, 0xa7, 0x86, 0x19, 0x44, 0x6d, 0xd7, 0xd9, 0xbe, 0x6e, 0x8d, 0x37, 0x0c, 0x98, 0x66, 0xef, + 0x1c, 0xc3, 0xa3, 0xc7, 0x13, 0x2a, 0xa6, 0x85, 0x8b, 0x71, 0x26, 0x1a, 0xd3, 0x72, 0xa7, 0x53, + 0x9c, 0xe4, 0x2f, 0x23, 0xa3, 0x21, 0x2e, 0x1f, 0x14, 0xfe, 0x0a, 0x16, 0x79, 0x93, 0x19, 0xfa, + 0x38, 0xad, 0xfc, 0x79, 0x15, 0x49, 0x04, 0x87, 0xf4, 0xcc, 0x97, 0x60, 0x4a, 0x7f, 0xb0, 0x80, + 0x9e, 0x80, 0xc9, 0x96, 0xed, 0xd4, 0xa3, 0x0f, 0xdb, 0x94, 0x4f, 0x77, 0x33, 0x04, 0x61, 0x1d, + 0x8f, 0x55, 0x73, 0xc3, 0x6a, 0x31, 0x57, 0xf0, 0xa6, 0xab, 0x57, 0x0b, 0xff, 0x98, 0x7f, 0x92, + 0x85, 0x93, 0x09, 0x0f, 0x63, 0xd0, 0xab, 0x06, 0x8c, 0xb3, 0x28, 0x7d, 0x19, 0xb5, 0xf2, 0x42, + 0xea, 0x8f, 0x6f, 0x96, 0xd8, 0x63, 0x00, 0x31, 0x8f, 0xd5, 0xf6, 0xc9, 0x0b, 0xb1, 0x60, 0x8e, + 0x7e, 0xcb, 0x80, 0x49, 0x4b, 0x5b, 0x6a, 0x3c, 0x90, 0x67, 0x3b, 0x7d, 0x61, 0x7a, 0x56, 0x96, + 0x16, 0x80, 0x18, 0x2e, 0x24, 0x5d, 0x96, 0xc5, 0xf7, 0xc2, 0xa4, 0xd6, 0x84, 0x61, 0x56, 0xc8, + 0xe2, 0x33, 0x30, 0x3b, 0xd2, 0x0a, 0xfb, 0x00, 0x0c, 0x9b, 0x3b, 0x8e, 0x2a, 0xac, 0x5b, 0xfa, + 0xe3, 0x63, 0xd5, 0xe3, 0xe2, 0xf5, 0xb1, 0x80, 0x9a, 0xdb, 0x30, 0x1b, 0x3f, 0x5c, 0xa5, 0x7e, + 0x6f, 0xfd, 0x6e, 0x18, 0x32, 0xdb, 0x9b, 0xf9, 0xed, 0x0c, 0x4c, 0x88, 0xd7, 0x75, 0x77, 0x21, + 0x76, 0xf7, 0x66, 0xe4, 0x52, 0x67, 0x2d, 0x95, 0x47, 0x81, 0x7d, 0x03, 0x77, 0xfd, 0x58, 0xe0, + 0xee, 0x73, 0xe9, 0xb0, 0x3b, 0x38, 0x6a, 0xf7, 0x8d, 0x31, 0x98, 0x89, 0xbd, 0x56, 0xa4, 0xa6, + 0x4a, 0x4f, 0xb0, 0xda, 0xd5, 0x54, 0x1f, 0x44, 0xaa, 0xb8, 0xf2, 0x83, 0xe3, 0xd6, 0xfc, 0x48, + 0x52, 0xcd, 0x2b, 0xa9, 0xe5, 0xe3, 0xfe, 0x79, 0x7e, 0xcd, 0x61, 0xe3, 0xb0, 0xfe, 0xd9, 0x80, + 0x7b, 0xfb, 0x3e, 0x6a, 0x65, 0x39, 0x51, 0xbc, 0x28, 0x54, 0x2c, 0xc8, 0x94, 0x9f, 0xee, 0xab, + 0x1b, 0x96, 0x78, 0x1a, 0x8b, 0x38, 0x7b, 0xf4, 0x38, 0x4c, 0x31, 0xd5, 0x4a, 0xf7, 0x94, 0x80, + 0xb4, 0x84, 0x83, 0x98, 0xb9, 0x0a, 0x2b, 0x5a, 0x39, 0x8e, 0x60, 0x99, 0x5f, 0x32, 0x60, 0xa1, + 0x5f, 0x86, 0x8c, 0x01, 0x0e, 0x86, 0xbf, 0x10, 0x0b, 0x2e, 0x2e, 0xf6, 0x04, 0x17, 0xc7, 0x8e, + 0x86, 0x32, 0x8e, 0x58, 0x3b, 0x95, 0x65, 0x0f, 0x89, 0x9d, 0xfd, 0xac, 0x01, 0xa7, 0xfb, 0xac, + 0xa6, 0x9e, 0x20, 0x73, 0xe3, 0xc8, 0x41, 0xe6, 0x99, 0x41, 0x83, 0xcc, 0xcd, 0xef, 0x66, 0x61, + 0x56, 0xc8, 0x13, 0xda, 0x57, 0x4f, 0x46, 0x42, 0xb4, 0xdf, 0x11, 0x0b, 0xd1, 0x9e, 0x8f, 0xe3, + 0xff, 0x3c, 0x3e, 0xfb, 0xad, 0x15, 0x9f, 0xfd, 0xd3, 0x0c, 0x9c, 0x4a, 0x4c, 0xdc, 0x81, 0x3e, + 0x9d, 0xa0, 0x1a, 0xae, 0xa7, 0x9c, 0x21, 0x64, 0x40, 0xe5, 0x30, 0x6a, 0x50, 0xf3, 0x17, 0xf4, + 0x60, 0x62, 0xbe, 0xd5, 0xef, 0x1c, 0x43, 0xae, 0x93, 0x21, 0xe3, 0x8a, 0xcd, 0x5f, 0xcb, 0xc2, + 0xc3, 0x83, 0x12, 0x7a, 0x8b, 0xbe, 0x3b, 0xf1, 0x23, 0xef, 0x4e, 0xee, 0x92, 0xda, 0x3e, 0x96, + 0x27, 0x28, 0xdd, 0xac, 0x52, 0x7b, 0xbd, 0xf3, 0x73, 0xa0, 0xdb, 0xc4, 0x09, 0x6a, 0xda, 0xc9, + 0x74, 0x9e, 0xe1, 0x56, 0x38, 0x51, 0xe1, 0xc5, 0x77, 0x3a, 0xc5, 0x39, 0x91, 0xe2, 0xaf, 0x42, + 0x02, 0x51, 0x88, 0x65, 0x25, 0xf4, 0x30, 0xe4, 0x3d, 0x0e, 0x95, 0x91, 0xf6, 0xe2, 0x4a, 0x96, + 0x97, 0x61, 0x05, 0x45, 0x9f, 0xd4, 0x6c, 0xe1, 0xb1, 0xe3, 0xca, 0x92, 0x70, 0xd0, 0x4d, 0xf3, + 0x0b, 0x90, 0xf7, 0x65, 0x62, 0x4e, 0x7e, 0x1d, 0xf0, 0xd8, 0x80, 0x0f, 0x38, 0xe8, 0xd1, 0x49, + 0x66, 0xe9, 0xe4, 0xed, 0x53, 0x39, 0x3c, 0x15, 0x49, 0x64, 0xaa, 0x53, 0x0b, 0xf7, 0x31, 0x42, + 0xef, 0x89, 0x45, 0xfb, 0xee, 0x13, 0x9b, 0xea, 0x13, 0xd1, 0xa3, 0x6f, 0x25, 0x04, 0x61, 0x1d, + 0xcf, 0xfc, 0x9e, 0x01, 0x93, 0x62, 0x90, 0xef, 0xc2, 0x53, 0x94, 0x1b, 0xd1, 0xa7, 0x28, 0xe7, + 0x52, 0xd9, 0x72, 0xfa, 0xbc, 0x43, 0xb9, 0x01, 0x53, 0x7a, 0xca, 0x27, 0xf4, 0xbc, 0xb6, 0x65, + 0x1a, 0xa3, 0x24, 0x51, 0x91, 0x9b, 0x6a, 0xb8, 0x9d, 0x9a, 0xbf, 0x93, 0x57, 0xbd, 0xc8, 0xdc, + 0x17, 0xfa, 0xd4, 0x35, 0x0e, 0x9c, 0xba, 0xfa, 0xcc, 0xc9, 0xa4, 0x3f, 0x73, 0xae, 0x40, 0x5e, + 0xee, 0x6b, 0x42, 0xfb, 0x3f, 0xa8, 0x07, 0xe7, 0x51, 0x13, 0x82, 0x12, 0xd3, 0xe6, 0x3b, 0x3b, + 0xa1, 0xa9, 0x31, 0x54, 0xfb, 0xad, 0x22, 0x83, 0x5e, 0x84, 0xc9, 0x5b, 0xae, 0x77, 0xb3, 0xe1, + 0x5a, 0x2c, 0x53, 0x2f, 0xa4, 0x71, 0x1f, 0xa4, 0xfc, 0x64, 0x3c, 0x42, 0xfa, 0x7a, 0x48, 0x1f, + 0xeb, 0xcc, 0x50, 0x09, 0x66, 0x9a, 0xb6, 0x83, 0x89, 0x55, 0x53, 0x2f, 0x4e, 0xc6, 0x78, 0x2a, + 0x51, 0x69, 0x1b, 0x6f, 0x44, 0xc1, 0x38, 0x8e, 0x8f, 0x3e, 0x0e, 0x79, 0x5f, 0x24, 0x50, 0x4a, + 0xe7, 0xe6, 0x4e, 0x1d, 0x35, 0x39, 0xd1, 0xb0, 0xef, 0x64, 0x09, 0x56, 0x0c, 0xd1, 0x3a, 0xcc, + 0x7b, 0x22, 0x45, 0x49, 0xe4, 0x3b, 0x1f, 0x7c, 0x59, 0xb3, 0x8c, 0x95, 0x38, 0x01, 0x8e, 0x13, + 0x6b, 0x51, 0xe3, 0x87, 0xe5, 0x2e, 0xe3, 0x57, 0x09, 0x9a, 0xf7, 0x9d, 0x4d, 0xf8, 0x1a, 0x16, + 0xd0, 0x83, 0x5e, 0x30, 0xe5, 0x47, 0x78, 0xc1, 0x54, 0x81, 0x53, 0x71, 0x10, 0x4b, 0xa4, 0xc2, + 0x72, 0xb7, 0x68, 0x4a, 0x67, 0x33, 0x09, 0x09, 0x27, 0xd7, 0x45, 0xd7, 0xa1, 0xe0, 0x11, 0x76, + 0x2c, 0x29, 0xc9, 0x58, 0x81, 0xa1, 0xa3, 0xa2, 0xb0, 0x24, 0x80, 0x43, 0x5a, 0x74, 0xdc, 0xad, + 0x68, 0x36, 0xcd, 0x2b, 0x29, 0x7e, 0xa9, 0x4c, 0x8c, 0x7d, 0x9f, 0x04, 0x47, 0xe6, 0x9b, 0xd3, + 0x70, 0x22, 0xe2, 0x92, 0x40, 0x0f, 0x42, 0x8e, 0x65, 0x96, 0x61, 0xdb, 0x43, 0x3e, 0xdc, 0xc2, + 0x78, 0xe7, 0x70, 0x18, 0xfa, 0x9c, 0x01, 0x33, 0xad, 0x88, 0xf3, 0x56, 0xee, 0x9c, 0x23, 0x5e, + 0x0f, 0x46, 0x3d, 0xc2, 0x5a, 0x1e, 0xea, 0x28, 0x33, 0x1c, 0xe7, 0x4e, 0x17, 0xa0, 0x08, 0x2d, + 0x6c, 0x10, 0x8f, 0x61, 0x0b, 0xd3, 0x48, 0x91, 0x58, 0x89, 0x82, 0x71, 0x1c, 0x9f, 0x8e, 0x30, + 0x6b, 0xdd, 0x28, 0x9f, 0x30, 0x2a, 0x49, 0x02, 0x38, 0xa4, 0x85, 0x9e, 0x81, 0x69, 0x91, 0x44, + 0x71, 0xd3, 0xad, 0x5d, 0xb0, 0xfc, 0x5d, 0x71, 0x26, 0x50, 0x67, 0x98, 0x95, 0x08, 0x14, 0xc7, + 0xb0, 0x59, 0xdb, 0xc2, 0x4c, 0x95, 0x8c, 0xc0, 0x78, 0x34, 0x4d, 0xf7, 0x4a, 0x14, 0x8c, 0xe3, + 0xf8, 0xe8, 0x11, 0x6d, 0xdf, 0xe7, 0xd7, 0x7b, 0x6a, 0x37, 0x48, 0xd8, 0xfb, 0x4b, 0x30, 0xd3, + 0x66, 0x47, 0xa8, 0x9a, 0x04, 0x8a, 0xf5, 0xa8, 0x18, 0x5e, 0x8d, 0x82, 0x71, 0x1c, 0x1f, 0x3d, + 0x05, 0x27, 0x3c, 0xba, 0xbb, 0x29, 0x02, 0xfc, 0xce, 0x4f, 0x5d, 0xe9, 0x60, 0x1d, 0x88, 0xa3, + 0xb8, 0xe8, 0x59, 0x98, 0x0b, 0x73, 0x8e, 0x49, 0x02, 0xfc, 0x12, 0x50, 0xa5, 0xd3, 0x29, 0xc5, + 0x11, 0x70, 0x6f, 0x1d, 0xf4, 0x4b, 0x30, 0xab, 0xf5, 0xc4, 0x9a, 0x53, 0x23, 0xb7, 0x45, 0x5e, + 0x28, 0xf6, 0x45, 0x85, 0x95, 0x18, 0x0c, 0xf7, 0x60, 0xa3, 0xf7, 0xc1, 0x74, 0xd5, 0x6d, 0x34, + 0xd8, 0x1e, 0xc7, 0x53, 0x44, 0xf3, 0x04, 0x50, 0x3c, 0x55, 0x56, 0x04, 0x82, 0x63, 0x98, 0xe8, + 0x22, 0x20, 0x77, 0x9b, 0xda, 0x34, 0xa4, 0xf6, 0x2c, 0xff, 0x28, 0x2a, 0x55, 0xf1, 0x27, 0xa2, + 0x81, 0xcd, 0x97, 0x7b, 0x30, 0x70, 0x42, 0x2d, 0x96, 0x8d, 0x47, 0x7b, 0x08, 0x36, 0x9d, 0xc6, + 0xe7, 0x7c, 0xe2, 0x07, 0xfe, 0x43, 0x5f, 0x81, 0x79, 0x30, 0xce, 0xe3, 0xcc, 0xd3, 0xc9, 0x04, + 0xa5, 0x67, 0x8b, 0x0d, 0x75, 0x04, 0x2f, 0xc5, 0x82, 0x13, 0xfa, 0x04, 0x14, 0xb6, 0x65, 0xea, + 0xf0, 0x85, 0xd9, 0x34, 0xf4, 0x62, 0x2c, 0x0b, 0x7e, 0x78, 0xa0, 0x55, 0x00, 0x1c, 0xb2, 0x44, + 0x0f, 0xc1, 0xe4, 0x85, 0xcd, 0x92, 0x9a, 0x85, 0x73, 0x6c, 0xf4, 0xc7, 0x68, 0x15, 0xac, 0x03, + 0xe8, 0x0a, 0x53, 0xf6, 0x12, 0x62, 0x43, 0x1c, 0xea, 0xdb, 0x5e, 0xf3, 0x87, 0x62, 0xb3, 0x5b, + 0x4c, 0x5c, 0x59, 0x38, 0x19, 0xc3, 0x16, 0xe5, 0x58, 0x61, 0xa0, 0x17, 0x60, 0x52, 0xe8, 0x0b, + 0xb6, 0x37, 0xcd, 0x1f, 0xed, 0x91, 0x21, 0x0e, 0x49, 0x60, 0x9d, 0x1e, 0xbb, 0x9c, 0x62, 0x19, + 0x95, 0xc9, 0xf9, 0x76, 0xa3, 0xb1, 0x70, 0x8a, 0xed, 0x9b, 0xe1, 0xe5, 0x54, 0x08, 0xc2, 0x3a, + 0x1e, 0x7a, 0x4c, 0x06, 0x5c, 0xbc, 0x2d, 0x72, 0x5b, 0xa7, 0x02, 0x2e, 0x94, 0x95, 0xdb, 0x27, + 0x0e, 0xf9, 0xf4, 0x21, 0x91, 0x0e, 0xdb, 0xb0, 0x28, 0x4d, 0xac, 0xde, 0x45, 0xb2, 0xb0, 0x10, + 0x71, 0x2e, 0x2c, 0x5e, 0xef, 0x8b, 0x89, 0x0f, 0xa0, 0x82, 0xb6, 0x21, 0x6b, 0x35, 0xb6, 0x17, + 0xee, 0x4d, 0xc3, 0x56, 0x54, 0x1f, 0x39, 0xe6, 0xb1, 0x43, 0xa5, 0xf5, 0x32, 0xa6, 0xc4, 0xcd, + 0x57, 0x32, 0xca, 0x99, 0xaf, 0x32, 0x64, 0xbe, 0xa4, 0xcf, 0x6a, 0x23, 0x8d, 0x8f, 0x78, 0xf6, + 0xe4, 0xd7, 0xe7, 0x0a, 0x29, 0x71, 0x4e, 0xb7, 0xd4, 0x3a, 0x4e, 0x25, 0xfd, 0x49, 0x34, 0xfb, + 0x27, 0x3f, 0x04, 0x46, 0x57, 0xb1, 0xd9, 0x9d, 0x50, 0xbe, 0xab, 0x58, 0x04, 0x81, 0x07, 0x39, + 0xdb, 0x0f, 0x6c, 0x37, 0xc5, 0x07, 0x71, 0xb1, 0xb4, 0x99, 0x2c, 0xde, 0x96, 0x01, 0x30, 0x67, + 0x45, 0x79, 0x3a, 0x75, 0xdb, 0xb9, 0x2d, 0x9a, 0x7f, 0x25, 0xf5, 0xd0, 0x00, 0xce, 0x93, 0x01, + 0x30, 0x67, 0x85, 0x6e, 0xf0, 0x99, 0x96, 0xce, 0x07, 0x5b, 0xe3, 0xdf, 0x61, 0x8e, 0xce, 0x38, + 0xca, 0xcb, 0x6f, 0xda, 0xc2, 0x86, 0x19, 0x91, 0x57, 0x65, 0x63, 0x2d, 0x89, 0x57, 0x65, 0x63, + 0x0d, 0x53, 0x26, 0xe8, 0x35, 0x03, 0xc0, 0x52, 0x1f, 0x24, 0x4e, 0xe7, 0x63, 0x14, 0xfd, 0x3e, + 0x70, 0xcc, 0x43, 0xe4, 0x42, 0x28, 0xd6, 0x38, 0xa3, 0x17, 0x61, 0xc2, 0xe2, 0x9f, 0xd2, 0x11, + 0xd1, 0x87, 0xe9, 0x7c, 0x1f, 0x2a, 0x26, 0x01, 0x0b, 0xbb, 0x14, 0x20, 0x2c, 0x19, 0x52, 0xde, + 0x81, 0x67, 0x91, 0x1d, 0xfb, 0xa6, 0x08, 0x43, 0xac, 0x8c, 0x9c, 0x11, 0x9b, 0x12, 0x4b, 0xe2, + 0x2d, 0x40, 0x58, 0x32, 0xe4, 0xdf, 0x00, 0xb5, 0x1c, 0x4b, 0xbd, 0x29, 0x49, 0xe7, 0xe5, 0x91, + 0xfe, 0x4a, 0x45, 0xfb, 0x06, 0xa8, 0xce, 0x08, 0x47, 0xf9, 0x9a, 0x3f, 0xce, 0x02, 0xb0, 0x9f, + 0xfc, 0x9d, 0x73, 0x93, 0xe5, 0xc6, 0xdb, 0x75, 0x6b, 0x62, 0x69, 0xa7, 0xf8, 0x5c, 0x19, 0x44, + 0x22, 0xbc, 0x5d, 0xb7, 0x86, 0x05, 0x13, 0x54, 0x87, 0xb1, 0x96, 0x15, 0xec, 0xa6, 0xff, 0x36, + 0x3a, 0xcf, 0x1f, 0xfc, 0x04, 0xbb, 0x98, 0x31, 0x40, 0x2f, 0x1b, 0x30, 0xc1, 0x5f, 0x47, 0x4b, + 0x0f, 0xf5, 0xc8, 0xd7, 0xb0, 0xb2, 0xcf, 0x96, 0xf8, 0x13, 0x6c, 0x11, 0xe3, 0xa0, 0x54, 0xa3, + 0x28, 0xc5, 0x92, 0xed, 0xe2, 0xab, 0x06, 0x4c, 0xe9, 0xa8, 0x09, 0xd1, 0x09, 0x1f, 0xd1, 0xa3, + 0x13, 0xd2, 0xec, 0x0f, 0x3d, 0xd0, 0xe1, 0xdf, 0x0c, 0xd0, 0xbe, 0x9c, 0x1a, 0xc6, 0x26, 0x1a, + 0x03, 0xc7, 0x26, 0x66, 0x86, 0x8c, 0x4d, 0xcc, 0x0e, 0x15, 0x9b, 0x38, 0x36, 0x7c, 0x6c, 0x62, + 0xae, 0x7f, 0x6c, 0xa2, 0xf9, 0xba, 0x01, 0x73, 0x3d, 0xfb, 0x61, 0xfc, 0x0b, 0xf5, 0xc6, 0x80, + 0x5f, 0xa8, 0x5f, 0x85, 0x59, 0x91, 0xbb, 0xb9, 0xd2, 0x6a, 0xd8, 0x89, 0xef, 0xd6, 0xb7, 0x62, + 0x70, 0xdc, 0x53, 0xc3, 0xfc, 0x0b, 0x03, 0x26, 0xb5, 0xd7, 0x6e, 0xb4, 0x1d, 0xec, 0x55, 0xa0, + 0x10, 0x23, 0x4c, 0x5b, 0xcd, 0x6e, 0x04, 0x38, 0x8c, 0x5f, 0x4e, 0xd5, 0xb5, 0x3c, 0xa1, 0xe1, + 0xe5, 0x14, 0x2d, 0xc5, 0x02, 0xca, 0x33, 0x40, 0x92, 0x16, 0xeb, 0xf4, 0xac, 0x9e, 0x01, 0x92, + 0xb4, 0x30, 0x83, 0x30, 0x76, 0xd4, 0x8e, 0x14, 0x61, 0xab, 0x5a, 0x96, 0x6c, 0xcb, 0x0b, 0x30, + 0x87, 0xa1, 0x33, 0x90, 0x25, 0x4e, 0x4d, 0x1c, 0x7a, 0xd5, 0x97, 0xa9, 0xce, 0x39, 0x35, 0x4c, + 0xcb, 0xcd, 0xcb, 0x30, 0x55, 0x21, 0x55, 0x8f, 0x04, 0xcf, 0x91, 0xfd, 0x81, 0x3f, 0x75, 0x45, + 0x67, 0x7b, 0xec, 0x53, 0x57, 0xb4, 0x3a, 0x2d, 0x37, 0xff, 0xc8, 0x80, 0x58, 0x2a, 0x77, 0xcd, + 0x51, 0x6d, 0xf4, 0x75, 0x54, 0xeb, 0xbe, 0xd1, 0xcc, 0x81, 0xbe, 0xd1, 0x8b, 0x80, 0x9a, 0x74, + 0x29, 0x44, 0x3e, 0x5c, 0x20, 0xfc, 0x0d, 0xe1, 0xdb, 0xda, 0x1e, 0x0c, 0x9c, 0x50, 0xcb, 0xfc, + 0x43, 0x2e, 0xac, 0x9e, 0xdc, 0xfd, 0xf0, 0x0e, 0x68, 0x43, 0x8e, 0x91, 0x12, 0x4e, 0x97, 0xcd, + 0xd1, 0x16, 0x77, 0x6f, 0x8e, 0x8a, 0x70, 0x20, 0xc5, 0x92, 0x67, 0xdc, 0xcc, 0xef, 0x72, 0x59, + 0xb5, 0xec, 0xef, 0x03, 0xc8, 0xda, 0x8c, 0xca, 0x7a, 0x21, 0xad, 0xbd, 0x32, 0x59, 0x46, 0xb4, + 0x04, 0xd0, 0x22, 0x5e, 0x95, 0x38, 0x81, 0x8c, 0xa6, 0xce, 0x89, 0xd7, 0x27, 0xaa, 0x14, 0x6b, + 0x18, 0xe6, 0xcb, 0x06, 0xcc, 0x56, 0x02, 0xbb, 0x7a, 0xd3, 0x76, 0xf8, 0x6b, 0xaa, 0x1d, 0xbb, + 0x4e, 0x4f, 0x29, 0x44, 0x7c, 0xc5, 0x89, 0xbb, 0xc1, 0xd4, 0x56, 0x2c, 0x3f, 0xde, 0x24, 0xe1, + 0xa8, 0x04, 0x33, 0xd2, 0xdb, 0x2e, 0x7d, 0x97, 0xfc, 0x15, 0xa8, 0xf2, 0x95, 0xac, 0x46, 0xc1, + 0x38, 0x8e, 0x6f, 0x7e, 0x12, 0x26, 0xb5, 0xfd, 0x95, 0x6d, 0x45, 0xb7, 0xad, 0x6a, 0x10, 0x5f, + 0xc2, 0xe7, 0x68, 0x21, 0xe6, 0x30, 0xe6, 0x62, 0xe5, 0xe1, 0xb6, 0xb1, 0x25, 0x2c, 0x82, 0x6c, + 0x05, 0x94, 0x12, 0xf3, 0x48, 0x9d, 0xdc, 0x96, 0x19, 0x49, 0x25, 0x31, 0x4c, 0x0b, 0x31, 0x87, + 0x99, 0x8f, 0x40, 0x5e, 0xbe, 0xd5, 0x67, 0x0f, 0x5e, 0xa5, 0xfb, 0x4f, 0x7f, 0xf0, 0xea, 0x7a, + 0x01, 0x66, 0x10, 0xf3, 0x1a, 0xe4, 0x65, 0x4a, 0x81, 0xc3, 0xb1, 0xe9, 0xaa, 0xf2, 0x1d, 0xfb, + 0x82, 0xeb, 0x07, 0x32, 0x0f, 0x02, 0xbf, 0x12, 0xb8, 0xb4, 0xc6, 0xca, 0xb0, 0x82, 0x9a, 0x8f, + 0xc1, 0x8c, 0xf2, 0xf5, 0x0f, 0x9a, 0x64, 0xc1, 0xfc, 0x46, 0x16, 0xa6, 0x22, 0xdf, 0x18, 0x3e, + 0x7c, 0x42, 0x0e, 0xbe, 0xce, 0x13, 0xbc, 0xfa, 0xd9, 0x21, 0xbd, 0xfa, 0xfa, 0x35, 0xca, 0xd8, + 0xf1, 0x5e, 0xa3, 0xe4, 0xd2, 0xb9, 0x46, 0x09, 0x60, 0x42, 0xdc, 0xc3, 0x09, 0x3b, 0x7a, 0x23, + 0xa5, 0xe4, 0x4a, 0x22, 0xf5, 0x06, 0xb3, 0x62, 0xa5, 0x46, 0x94, 0xac, 0xcc, 0xaf, 0xe6, 0x60, + 0x3a, 0x9a, 0x6e, 0x69, 0x80, 0x91, 0x7c, 0xa4, 0x67, 0x24, 0x87, 0xf4, 0x6a, 0x66, 0x47, 0xf5, + 0x6a, 0x8e, 0x8d, 0xea, 0xd5, 0xcc, 0x1d, 0xc1, 0xab, 0xd9, 0xeb, 0x93, 0x1c, 0x1f, 0xd8, 0x27, + 0xf9, 0xb4, 0x8a, 0xe4, 0x99, 0x88, 0x5c, 0x7d, 0x87, 0x91, 0x3c, 0x28, 0x3a, 0x0c, 0x2b, 0x6e, + 0x2d, 0x31, 0x22, 0x2a, 0x7f, 0x88, 0xf7, 0xc6, 0x4b, 0x0c, 0xbc, 0x19, 0xfe, 0xe2, 0xe4, 0x6d, + 0x43, 0x04, 0xdd, 0xc4, 0xae, 0x9a, 0x61, 0xb0, 0xab, 0x66, 0xf6, 0x19, 0xcc, 0xe8, 0x77, 0x3f, + 0x99, 0x93, 0x58, 0xff, 0x0c, 0x66, 0xec, 0x3b, 0xa1, 0x71, 0x7c, 0xf3, 0xe3, 0x70, 0x2a, 0xf1, + 0xcc, 0xc6, 0x9c, 0x58, 0x4c, 0xd1, 0x93, 0x9a, 0x40, 0xd0, 0xc4, 0x88, 0x65, 0xe3, 0x5d, 0xbc, + 0xde, 0x17, 0x13, 0x1f, 0x40, 0xc5, 0xfc, 0x4a, 0x16, 0xa6, 0xa3, 0xdf, 0x50, 0x42, 0xb7, 0x94, + 0x87, 0x27, 0x15, 0xe7, 0x12, 0x27, 0xab, 0xa5, 0xf0, 0xe9, 0xeb, 0xae, 0xbd, 0xc5, 0xe6, 0xd7, + 0xb6, 0xca, 0x27, 0x74, 0x7c, 0x8c, 0x85, 0x9f, 0x54, 0xb0, 0x63, 0x9f, 0x49, 0x0a, 0xdf, 0x51, + 0x88, 0x83, 0x59, 0xea, 0xdc, 0xc3, 0x97, 0x11, 0x8a, 0x15, 0xd6, 0xd8, 0x52, 0xdd, 0xb2, 0x47, + 0x3c, 0x7b, 0xc7, 0x56, 0xdf, 0x7f, 0x64, 0x3b, 0xf7, 0x35, 0x51, 0x86, 0x15, 0xd4, 0x7c, 0x39, + 0x03, 0xe1, 0xd7, 0x6e, 0xd9, 0x87, 0x46, 0x7c, 0xcd, 0x08, 0x16, 0xc3, 0x76, 0x71, 0xd4, 0xaf, + 0xf9, 0x84, 0x14, 0x45, 0x94, 0xa5, 0x56, 0x82, 0x23, 0x1c, 0x7f, 0x06, 0x5f, 0xb9, 0xb5, 0x60, + 0x26, 0xf6, 0xba, 0x34, 0xf5, 0x50, 0xf6, 0x1f, 0x65, 0xa1, 0xa0, 0xde, 0xe7, 0xa2, 0xf7, 0x46, + 0x3c, 0x12, 0x85, 0xf2, 0xdb, 0xb5, 0x9c, 0xfa, 0xbb, 0x6e, 0xed, 0x4e, 0xa7, 0x38, 0xa3, 0x90, + 0x63, 0xde, 0x85, 0x33, 0x90, 0x6d, 0x7b, 0x8d, 0xf8, 0x91, 0xe3, 0x2a, 0x5e, 0xc7, 0xb4, 0x1c, + 0xdd, 0x8e, 0xbb, 0x04, 0x36, 0x52, 0x7a, 0x53, 0xcc, 0x6d, 0xf3, 0xfe, 0xae, 0x00, 0xaa, 0x25, + 0xb7, 0xdd, 0xda, 0x7e, 0x3c, 0x07, 0x7f, 0xd9, 0xad, 0xed, 0x63, 0x06, 0x41, 0xcf, 0xc0, 0x74, + 0x60, 0x37, 0x89, 0xdb, 0x0e, 0xf4, 0x6f, 0x89, 0x66, 0xc3, 0xeb, 0xc7, 0xad, 0x08, 0x14, 0xc7, + 0xb0, 0xa9, 0x96, 0xbd, 0xe1, 0xbb, 0x0e, 0x4b, 0xac, 0x37, 0x1e, 0xbd, 0xab, 0xb8, 0x58, 0xb9, + 0x7c, 0x89, 0x79, 0x46, 0x14, 0x06, 0xc5, 0xb6, 0xd9, 0x63, 0x3c, 0x8f, 0x88, 0xdb, 0xff, 0xd9, + 0x30, 0x55, 0x03, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, 0x54, 0x5a, 0xa6, 0x51, 0xa6, 0xca, + 0x0f, 0x4b, 0xba, 0xb4, 0xec, 0x4e, 0xa7, 0xb8, 0x40, 0x9c, 0xaa, 0x5b, 0xb3, 0x9d, 0xfa, 0x32, + 0x45, 0x5c, 0xc2, 0xd6, 0x2d, 0xa9, 0x6a, 0x54, 0x4d, 0xf3, 0x2a, 0xcc, 0xc4, 0x3a, 0x4c, 0x1e, + 0x11, 0x8d, 0xe4, 0x23, 0xe2, 0x60, 0x69, 0xf3, 0xff, 0xd4, 0x80, 0xb9, 0x9e, 0x2d, 0x60, 0xd0, + 0x97, 0x1a, 0x71, 0x65, 0x94, 0x39, 0xba, 0x32, 0xca, 0x0e, 0xa7, 0x8c, 0xca, 0xdb, 0xdf, 0x7a, + 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, 0xf3, 0xec, 0x3d, 0x2f, 0x77, 0xcf, + 0x1a, 0xdf, 0xea, 0x9e, 0x35, 0xbe, 0xd3, 0x3d, 0x6b, 0x7c, 0xbf, 0x7b, 0xd6, 0xf8, 0xa7, 0xee, + 0x59, 0xe3, 0xf5, 0x1f, 0x9d, 0xbd, 0xe7, 0xf9, 0xa7, 0xc3, 0x09, 0xba, 0x2c, 0x27, 0x28, 0xfb, + 0xf1, 0x2e, 0x39, 0x1d, 0x97, 0x5b, 0x37, 0xeb, 0xcb, 0x74, 0x82, 0x2e, 0xab, 0x12, 0x39, 0x41, + 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xb8, 0xfa, 0x80, 0x9b, 0xae, 0x93, 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -7745,6 +7745,11 @@ func (m *RolloutExperimentTemplate) MarshalToSizedBuffer(dAtA []byte) (int, erro _ = i var l int _ = l + i -= len(m.ServiceName) + copy(dAtA[i:], m.ServiceName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName))) + i-- + dAtA[i] = 0x3a if m.Weight != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.Weight)) i-- @@ -8890,6 +8895,11 @@ func (m *TemplateService) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -10930,6 +10940,8 @@ func (m *RolloutExperimentTemplate) Size() (n int) { if m.Weight != nil { n += 1 + sovGenerated(uint64(*m.Weight)) } + l = len(m.ServiceName) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -11326,6 +11338,8 @@ func (m *TemplateService) Size() (n int) { } var l int _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -12702,6 +12716,7 @@ func (this *RolloutExperimentTemplate) String() string { `Metadata:` + strings.Replace(strings.Replace(this.Metadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1), `&`, ``, 1) + `,`, `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, `Weight:` + valueToStringGenerated(this.Weight) + `,`, + `ServiceName:` + fmt.Sprintf("%v", this.ServiceName) + `,`, `}`, }, "") return s @@ -12996,6 +13011,7 @@ func (this *TemplateService) String() string { return "nil" } s := strings.Join([]string{`&TemplateService{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `}`, }, "") return s @@ -26327,6 +26343,38 @@ func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { } } m.Weight = &v + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ServiceName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -29748,6 +29796,38 @@ func (m *TemplateService) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: TemplateService: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index c90faf3a42..83c32d9c66 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -1223,6 +1223,9 @@ message RolloutExperimentTemplate { // Weight sets the percentage of traffic the template's replicas should receive optional int32 weight = 6; + + // ServiceName sets the name of the optionally generated service for the replicaset + optional string serviceName = 7; } // RolloutList is a list of Rollout resources @@ -1578,6 +1581,7 @@ message TLSRoute { } message TemplateService { + optional string name = 1; } message TemplateSpec { diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index a21a1bea6d..fc794b2f41 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -1185,6 +1185,12 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExpe * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate */ weight?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ + serviceName?: string; } /** * From 666d888911e796559a6e7ebf0371a874daf63d46 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 16:41:51 +0200 Subject: [PATCH 04/28] Run codegen again, service name is optional Signed-off-by: Alex Eftimie --- docs/features/kustomize/rollout_cr_schema.json | 3 --- manifests/crds/experiment-crd.yaml | 2 -- manifests/crds/rollout-crd.yaml | 1 - manifests/install.yaml | 3 --- manifests/namespace-install.yaml | 3 --- pkg/apis/rollouts/v1alpha1/experiment_types.go | 2 +- pkg/apis/rollouts/v1alpha1/openapi_generated.go | 17 +++++++++++++++++ pkg/apis/rollouts/v1alpha1/types.go | 2 +- 8 files changed, 19 insertions(+), 14 deletions(-) diff --git a/docs/features/kustomize/rollout_cr_schema.json b/docs/features/kustomize/rollout_cr_schema.json index 3c7fc92ceb..df7357fdda 100644 --- a/docs/features/kustomize/rollout_cr_schema.json +++ b/docs/features/kustomize/rollout_cr_schema.json @@ -12974,9 +12974,6 @@ "type": "string" } }, - "required": [ - "name" - ], "type": "object" }, "template": { diff --git a/manifests/crds/experiment-crd.yaml b/manifests/crds/experiment-crd.yaml index 0b6654a4d4..f856a4b9a9 100644 --- a/manifests/crds/experiment-crd.yaml +++ b/manifests/crds/experiment-crd.yaml @@ -152,8 +152,6 @@ spec: properties: name: type: string - required: - - name type: object template: properties: diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index f7de69e916..a41019caee 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -570,7 +570,6 @@ spec: type: integer required: - name - - serviceName - specRef type: object type: array diff --git a/manifests/install.yaml b/manifests/install.yaml index a5e9a55a82..2b929edfed 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -8560,8 +8560,6 @@ spec: properties: name: type: string - required: - - name type: object template: properties: @@ -11585,7 +11583,6 @@ spec: type: integer required: - name - - serviceName - specRef type: object type: array diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index b33253bba5..0ecca44b43 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -8560,8 +8560,6 @@ spec: properties: name: type: string - required: - - name type: object template: properties: @@ -11585,7 +11583,6 @@ spec: type: integer required: - name - - serviceName - specRef type: object type: array diff --git a/pkg/apis/rollouts/v1alpha1/experiment_types.go b/pkg/apis/rollouts/v1alpha1/experiment_types.go index cd7ac3d043..13e682c172 100644 --- a/pkg/apis/rollouts/v1alpha1/experiment_types.go +++ b/pkg/apis/rollouts/v1alpha1/experiment_types.go @@ -90,7 +90,7 @@ type TemplateSpec struct { } type TemplateService struct { - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` } type TemplateStatusCode string diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index ac729e0107..cf34a27ca4 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -3787,6 +3787,14 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe Format: "int32", }, }, + "serviceName": { + SchemaProps: spec.SchemaProps{ + Description: "ServiceName sets the name of the optionally generated service for the replicaset", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"name", "specRef"}, }, @@ -4685,6 +4693,15 @@ func schema_pkg_apis_rollouts_v1alpha1_TemplateService(ref common.ReferenceCallb Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, } diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 4e1993c361..aeb94b45e0 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -535,7 +535,7 @@ type RolloutExperimentTemplate struct { // Weight sets the percentage of traffic the template's replicas should receive Weight *int32 `json:"weight,omitempty" protobuf:"varint,6,opt,name=weight"` // ServiceName sets the name of the optionally generated service for the replicaset - ServiceName string `json:"serviceName" protobuf:"bytes,7,opt,name=serviceName"` + ServiceName string `json:"serviceName,omitempty" protobuf:"bytes,7,opt,name=serviceName"` } // PodTemplateMetadata extra labels to add to the template From 431f894358cddc21c9e293b0a4a845b00698e2ed Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 16:52:14 +0200 Subject: [PATCH 05/28] Fix conversion and tests Signed-off-by: Alex Eftimie --- experiments/experiment.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experiments/experiment.go b/experiments/experiment.go index 8425aac74b..47becb4bf2 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -292,7 +292,7 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp servicePort := corev1.ServicePort{ Protocol: port.Protocol, Port: port.ContainerPort, - TargetPort: intstr.FromString(string(port.ContainerPort)), + TargetPort: intstr.FromInt(int(port.ContainerPort)), } ports = append(ports, servicePort) } From 49b01f197ed84941645ac6bbf28bc2f8a2235f54 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 17:33:17 +0200 Subject: [PATCH 06/28] Fix codegen Signed-off-by: Alex Eftimie --- pkg/apis/rollouts/v1alpha1/openapi_generated.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index cf34a27ca4..90f549c8c5 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -4674,9 +4674,8 @@ func schema_pkg_apis_rollouts_v1alpha1_TLSRoute(ref common.ReferenceCallback) co Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Type: []string{"string"}, + Format: "", }, }, }, @@ -4696,9 +4695,8 @@ func schema_pkg_apis_rollouts_v1alpha1_TemplateService(ref common.ReferenceCallb Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Type: []string{"string"}, + Format: "", }, }, }, From 21adb4ac990a41a59ed93dbb67eb41f885d8c2f1 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 18:20:29 +0200 Subject: [PATCH 07/28] Fix codegen again Signed-off-by: Alex Eftimie --- pkg/apis/rollouts/v1alpha1/openapi_generated.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index 90f549c8c5..67831a223d 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -3790,7 +3790,6 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe "serviceName": { SchemaProps: spec.SchemaProps{ Description: "ServiceName sets the name of the optionally generated service for the replicaset", - Default: "", Type: []string{"string"}, Format: "", }, @@ -4674,8 +4673,9 @@ func schema_pkg_apis_rollouts_v1alpha1_TLSRoute(ref common.ReferenceCallback) co Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, From f534f9cc08179071cdab472dbe805413709b4c00 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 21 Oct 2022 18:46:09 +0200 Subject: [PATCH 08/28] white space Signed-off-by: Alex Eftimie --- pkg/apis/rollouts/v1alpha1/openapi_generated.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index 67831a223d..ee689773f1 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -4673,7 +4673,7 @@ func schema_pkg_apis_rollouts_v1alpha1_TLSRoute(ref common.ReferenceCallback) co Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", + Default: "", Type: []string{"string"}, Format: "", }, From 2b2294751f77c7a260be45f606d7beadca3851a5 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sat, 22 Oct 2022 22:59:02 +0200 Subject: [PATCH 09/28] Extend from corev1.ServiceSpec Signed-off-by: Alex Eftimie --- experiments/experiment.go | 17 +- experiments/service.go | 6 +- manifests/crds/rollout-crd.yaml | 7 +- manifests/install.yaml | 7 +- manifests/namespace-install.yaml | 7 +- pkg/apiclient/rollout/rollout.swagger.json | 14 +- .../rollouts/v1alpha1/experiment_types.go | 3 +- pkg/apis/rollouts/v1alpha1/generated.pb.go | 994 +++++++++--------- pkg/apis/rollouts/v1alpha1/generated.proto | 4 +- .../rollouts/v1alpha1/openapi_generated.go | 9 +- pkg/apis/rollouts/v1alpha1/types.go | 4 +- .../v1alpha1/zz_generated.deepcopy.go | 8 +- rollout/experiment.go | 8 +- ui/src/models/rollout/generated/api.ts | 17 +- 14 files changed, 575 insertions(+), 530 deletions(-) diff --git a/experiments/experiment.go b/experiments/experiment.go index 47becb4bf2..aafc6868b7 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -22,7 +22,6 @@ import ( corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/kubernetes" appslisters "k8s.io/client-go/listers/apps/v1" v1 "k8s.io/client-go/listers/core/v1" @@ -286,23 +285,15 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp // Create service with has same name, podTemplateHash, and labels as RS podTemplateHash := rs.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] svc := ec.templateServices[template.Name] - var ports []corev1.ServicePort - for _, ctr := range rs.Spec.Template.Spec.Containers { - for _, port := range ctr.Ports { - servicePort := corev1.ServicePort{ - Protocol: port.Protocol, - Port: port.ContainerPort, - TargetPort: intstr.FromInt(int(port.ContainerPort)), - } - ports = append(ports, servicePort) - } - } templateServiceName := template.Service.Name if templateServiceName == "" { templateServiceName = rs.Name } + if len(template.Service.Selector) == 0 { + template.Service.Selector = rs.Labels + } if svc == nil || svc.Name != templateServiceName { - newService, err := ec.CreateService(templateServiceName, *template, rs.Labels, ports) + newService, err := ec.CreateService(templateServiceName, *template) if err != nil { templateStatus.Status = v1alpha1.TemplateStatusError templateStatus.Message = fmt.Sprintf("Failed to create Service for template '%s': %v", template.Name, err) diff --git a/experiments/service.go b/experiments/service.go index 3f165e76a5..ee771be20f 100644 --- a/experiments/service.go +++ b/experiments/service.go @@ -58,7 +58,7 @@ func GetServiceForExperiment(experiment *v1alpha1.Experiment, svc *corev1.Servic return nil } -func (ec *experimentContext) CreateService(serviceName string, template v1alpha1.TemplateSpec, selector map[string]string, ports []corev1.ServicePort) (*corev1.Service, error) { +func (ec *experimentContext) CreateService(serviceName string, template v1alpha1.TemplateSpec) (*corev1.Service, error) { ctx := context.TODO() serviceAnnotations := newServiceAnnotations(ec.ex.Name, template.Name) newService := &corev1.Service{ @@ -72,8 +72,8 @@ func (ec *experimentContext) CreateService(serviceName string, template v1alpha1 Annotations: serviceAnnotations, }, Spec: corev1.ServiceSpec{ - Selector: selector, - Ports: ports, + Selector: template.Service.Selector, + Ports: template.Service.Ports, }, } diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index a41019caee..1cabae8d93 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -561,8 +561,11 @@ spec: type: string type: object type: object - serviceName: - type: string + service: + properties: + name: + type: string + type: object specRef: type: string weight: diff --git a/manifests/install.yaml b/manifests/install.yaml index 2b929edfed..ce2320c5da 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -11574,8 +11574,11 @@ spec: type: string type: object type: object - serviceName: - type: string + service: + properties: + name: + type: string + type: object specRef: type: string weight: diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index 0ecca44b43..09c644b486 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -11574,8 +11574,11 @@ spec: type: string type: object type: object - serviceName: - type: string + service: + properties: + name: + type: string + type: object specRef: type: string weight: diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index fadfbe28f5..27c684fa7a 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -1330,9 +1330,9 @@ "format": "int32", "title": "Weight sets the percentage of traffic the template's replicas should receive" }, - "serviceName": { - "type": "string", - "title": "ServiceName sets the name of the optionally generated service for the replicaset" + "service": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService", + "title": "Service controls the optionally generated service" } }, "title": "RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step" @@ -1729,6 +1729,14 @@ }, "description": "TLSRoute holds the information on the virtual service's TLS/HTTPS routes that are desired to be matched for changing weights." }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TraefikTrafficRouting": { "type": "object", "properties": { diff --git a/pkg/apis/rollouts/v1alpha1/experiment_types.go b/pkg/apis/rollouts/v1alpha1/experiment_types.go index 13e682c172..481691b2ad 100644 --- a/pkg/apis/rollouts/v1alpha1/experiment_types.go +++ b/pkg/apis/rollouts/v1alpha1/experiment_types.go @@ -90,7 +90,8 @@ type TemplateSpec struct { } type TemplateService struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + corev1.ServiceSpec `json:"-"` } type TemplateStatusCode string diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index fc79b378ff..b87feada01 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -3084,483 +3084,484 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 7614 bytes of a gzipped FileDescriptorProto + // 7618 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xd7, 0x75, 0xb0, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x9f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, - 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0xea, 0xc4, 0x86, 0x5b, 0x52, 0xda, 0xf5, - 0x6a, 0x2d, 0xed, 0x6a, 0x2f, 0xb5, 0xbb, 0x89, 0x13, 0x27, 0x19, 0x91, 0x57, 0xd4, 0xec, 0x92, - 0x33, 0xcc, 0xcc, 0x50, 0xbb, 0x72, 0x8c, 0xc4, 0x6e, 0x60, 0x37, 0x2d, 0x12, 0xc4, 0x6d, 0x12, - 0x14, 0x45, 0xd1, 0x22, 0x28, 0x0c, 0xf4, 0x27, 0x7d, 0x0a, 0x5a, 0xf4, 0x25, 0x40, 0x8b, 0xe6, - 0xa7, 0xe9, 0x43, 0x8a, 0xa4, 0x40, 0x9b, 0xa4, 0x40, 0xd8, 0x9a, 0xe9, 0x4b, 0x8b, 0x16, 0x41, - 0x81, 0x14, 0x45, 0xf6, 0xa9, 0xb8, 0xbf, 0x73, 0x67, 0x38, 0x94, 0x48, 0x71, 0xb4, 0x31, 0xda, - 0xbc, 0x91, 0xf7, 0x9c, 0x7b, 0xce, 0xb9, 0xbf, 0xe7, 0xdc, 0x73, 0xcf, 0x3d, 0x03, 0xeb, 0x75, - 0x3b, 0xd8, 0x6d, 0x6f, 0x2f, 0x55, 0xdd, 0xe6, 0xb2, 0xe5, 0xd5, 0xdd, 0x96, 0xe7, 0xde, 0x60, - 0x3f, 0xde, 0xe5, 0xb9, 0x8d, 0x86, 0xdb, 0x0e, 0xfc, 0xe5, 0xd6, 0xcd, 0xfa, 0xb2, 0xd5, 0xb2, - 0xfd, 0x65, 0x55, 0xb2, 0xf7, 0x1e, 0xab, 0xd1, 0xda, 0xb5, 0xde, 0xb3, 0x5c, 0x27, 0x0e, 0xf1, - 0xac, 0x80, 0xd4, 0x96, 0x5a, 0x9e, 0x1b, 0xb8, 0xe8, 0xe9, 0x90, 0xda, 0x92, 0xa4, 0xc6, 0x7e, - 0x7c, 0x44, 0xd6, 0x5d, 0x6a, 0xdd, 0xac, 0x2f, 0x51, 0x6a, 0x4b, 0xaa, 0x44, 0x52, 0x5b, 0x7c, - 0x97, 0x26, 0x4b, 0xdd, 0xad, 0xbb, 0xcb, 0x8c, 0xe8, 0x76, 0x7b, 0x87, 0xfd, 0x63, 0x7f, 0xd8, - 0x2f, 0xce, 0x6c, 0xf1, 0xc1, 0x9b, 0x4f, 0xfa, 0x4b, 0xb6, 0x4b, 0x65, 0x5b, 0xde, 0xb6, 0x82, - 0xea, 0xee, 0xf2, 0x5e, 0x8f, 0x44, 0x8b, 0xa6, 0x86, 0x54, 0x75, 0x3d, 0x92, 0x84, 0xf3, 0x78, - 0x88, 0xd3, 0xb4, 0xaa, 0xbb, 0xb6, 0x43, 0xbc, 0xfd, 0xb0, 0xd5, 0x4d, 0x12, 0x58, 0x49, 0xb5, - 0x96, 0xfb, 0xd5, 0xf2, 0xda, 0x4e, 0x60, 0x37, 0x49, 0x4f, 0x85, 0xff, 0x7f, 0x58, 0x05, 0xbf, - 0xba, 0x4b, 0x9a, 0x56, 0x4f, 0xbd, 0xc7, 0xfa, 0xd5, 0x6b, 0x07, 0x76, 0x63, 0xd9, 0x76, 0x02, - 0x3f, 0xf0, 0xe2, 0x95, 0xcc, 0xaf, 0x67, 0xa1, 0x50, 0x5a, 0x2f, 0x57, 0x02, 0x2b, 0x68, 0xfb, - 0xe8, 0x35, 0x03, 0xa6, 0x1a, 0xae, 0x55, 0x2b, 0x5b, 0x0d, 0xcb, 0xa9, 0x12, 0x6f, 0xc1, 0x78, - 0xc0, 0x78, 0x78, 0xf2, 0xd1, 0xf5, 0xa5, 0x51, 0xc6, 0x6b, 0xa9, 0x74, 0xcb, 0xc7, 0xc4, 0x77, - 0xdb, 0x5e, 0x95, 0x60, 0xb2, 0x53, 0x9e, 0xff, 0x56, 0xa7, 0x78, 0x4f, 0xb7, 0x53, 0x9c, 0x5a, - 0xd7, 0x38, 0xe1, 0x08, 0x5f, 0xf4, 0x45, 0x03, 0xe6, 0xaa, 0x96, 0x63, 0x79, 0xfb, 0x5b, 0x96, - 0x57, 0x27, 0xc1, 0xb3, 0x9e, 0xdb, 0x6e, 0x2d, 0x64, 0x8e, 0x41, 0x9a, 0x7b, 0x85, 0x34, 0x73, - 0x2b, 0x71, 0x76, 0xb8, 0x57, 0x02, 0x26, 0x97, 0x1f, 0x58, 0xdb, 0x0d, 0xa2, 0xcb, 0x95, 0x3d, - 0x4e, 0xb9, 0x2a, 0x71, 0x76, 0xb8, 0x57, 0x02, 0xf3, 0xd5, 0x2c, 0xcc, 0x95, 0xd6, 0xcb, 0x5b, - 0x9e, 0xb5, 0xb3, 0x63, 0x57, 0xb1, 0xdb, 0x0e, 0x6c, 0xa7, 0x8e, 0xde, 0x09, 0x13, 0xb6, 0x53, - 0xf7, 0x88, 0xef, 0xb3, 0x81, 0x2c, 0x94, 0x67, 0x04, 0xd1, 0x89, 0x35, 0x5e, 0x8c, 0x25, 0x1c, - 0x3d, 0x01, 0x93, 0x3e, 0xf1, 0xf6, 0xec, 0x2a, 0xd9, 0x74, 0xbd, 0x80, 0xf5, 0x74, 0xae, 0x7c, - 0x52, 0xa0, 0x4f, 0x56, 0x42, 0x10, 0xd6, 0xf1, 0x68, 0x35, 0xcf, 0x75, 0x03, 0x01, 0x67, 0x1d, - 0x51, 0x08, 0xab, 0xe1, 0x10, 0x84, 0x75, 0x3c, 0xf4, 0xba, 0x01, 0xb3, 0x7e, 0x60, 0x57, 0x6f, - 0xda, 0x0e, 0xf1, 0xfd, 0x15, 0xd7, 0xd9, 0xb1, 0xeb, 0x0b, 0x39, 0xd6, 0x8b, 0x97, 0x46, 0xeb, - 0xc5, 0x4a, 0x8c, 0x6a, 0x79, 0xbe, 0xdb, 0x29, 0xce, 0xc6, 0x4b, 0x71, 0x0f, 0x77, 0xb4, 0x0a, - 0xb3, 0x96, 0xe3, 0xb8, 0x81, 0x15, 0xd8, 0xae, 0xb3, 0xe9, 0x91, 0x1d, 0xfb, 0xf6, 0xc2, 0x18, - 0x6b, 0xce, 0x82, 0x68, 0xce, 0x6c, 0x29, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x55, 0x58, 0x28, 0x35, - 0xb7, 0x2d, 0xdf, 0xb7, 0x6a, 0xae, 0x17, 0x1b, 0x8d, 0x87, 0x21, 0xdf, 0xb4, 0x5a, 0x2d, 0xdb, - 0xa9, 0xd3, 0xe1, 0xc8, 0x3e, 0x5c, 0x28, 0x4f, 0x75, 0x3b, 0xc5, 0xfc, 0x86, 0x28, 0xc3, 0x0a, - 0x6a, 0xfe, 0x20, 0x03, 0x93, 0x25, 0xc7, 0x6a, 0xec, 0xfb, 0xb6, 0x8f, 0xdb, 0x0e, 0xfa, 0x28, - 0xe4, 0xe9, 0xee, 0x52, 0xb3, 0x02, 0x4b, 0xac, 0xc8, 0x77, 0x2f, 0xf1, 0xc5, 0xbe, 0xa4, 0x2f, - 0xf6, 0xb0, 0x5f, 0x28, 0xf6, 0xd2, 0xde, 0x7b, 0x96, 0x2e, 0x6f, 0xdf, 0x20, 0xd5, 0x60, 0x83, - 0x04, 0x56, 0x19, 0x89, 0x56, 0x40, 0x58, 0x86, 0x15, 0x55, 0xe4, 0xc2, 0x98, 0xdf, 0x22, 0x55, - 0xb1, 0xc2, 0x36, 0x46, 0x9c, 0xc9, 0xa1, 0xe8, 0x95, 0x16, 0xa9, 0x96, 0xa7, 0x04, 0xeb, 0x31, - 0xfa, 0x0f, 0x33, 0x46, 0xe8, 0x16, 0x8c, 0xfb, 0x6c, 0xcf, 0x11, 0x8b, 0xe7, 0x72, 0x7a, 0x2c, - 0x19, 0xd9, 0xf2, 0xb4, 0x60, 0x3a, 0xce, 0xff, 0x63, 0xc1, 0xce, 0xfc, 0x07, 0x03, 0x4e, 0x6a, - 0xd8, 0x25, 0xaf, 0xde, 0x6e, 0x12, 0x27, 0x40, 0x0f, 0xc0, 0x98, 0x63, 0x35, 0x89, 0x58, 0x28, - 0x4a, 0xe4, 0x4b, 0x56, 0x93, 0x60, 0x06, 0x41, 0x0f, 0x42, 0x6e, 0xcf, 0x6a, 0xb4, 0x09, 0xeb, - 0xa4, 0x42, 0xf9, 0x84, 0x40, 0xc9, 0x5d, 0xa3, 0x85, 0x98, 0xc3, 0xd0, 0x4b, 0x50, 0x60, 0x3f, - 0xce, 0x7b, 0x6e, 0x33, 0xa5, 0xa6, 0x09, 0x09, 0xaf, 0x49, 0xb2, 0xe5, 0x13, 0xdd, 0x4e, 0xb1, - 0xa0, 0xfe, 0xe2, 0x90, 0xa1, 0xf9, 0x8f, 0x06, 0xcc, 0x68, 0x8d, 0x5b, 0xb7, 0xfd, 0x00, 0x7d, - 0xa8, 0x67, 0xf2, 0x2c, 0x0d, 0x36, 0x79, 0x68, 0x6d, 0x36, 0x75, 0x66, 0x45, 0x4b, 0xf3, 0xb2, - 0x44, 0x9b, 0x38, 0x0e, 0xe4, 0xec, 0x80, 0x34, 0xfd, 0x85, 0xcc, 0x03, 0xd9, 0x87, 0x27, 0x1f, - 0x5d, 0x4b, 0x6d, 0x18, 0xc3, 0xfe, 0x5d, 0xa3, 0xf4, 0x31, 0x67, 0x63, 0x7e, 0x65, 0x2c, 0xd2, - 0x42, 0x3a, 0xa3, 0x90, 0x0b, 0x13, 0x4d, 0x12, 0x78, 0x76, 0x95, 0xaf, 0xab, 0xc9, 0x47, 0x57, - 0x47, 0x93, 0x62, 0x83, 0x11, 0x0b, 0x37, 0x4b, 0xfe, 0xdf, 0xc7, 0x92, 0x0b, 0xda, 0x85, 0x31, - 0xcb, 0xab, 0xcb, 0x36, 0x9f, 0x4f, 0x67, 0x7c, 0xc3, 0x39, 0x57, 0xf2, 0xea, 0x3e, 0x66, 0x1c, - 0xd0, 0x32, 0x14, 0x02, 0xe2, 0x35, 0x6d, 0xc7, 0x0a, 0xf8, 0xee, 0x9a, 0x2f, 0xcf, 0x09, 0xb4, - 0xc2, 0x96, 0x04, 0xe0, 0x10, 0x07, 0x35, 0x60, 0xbc, 0xe6, 0xed, 0xe3, 0xb6, 0xb3, 0x30, 0x96, - 0x46, 0x57, 0xac, 0x32, 0x5a, 0xe1, 0x62, 0xe2, 0xff, 0xb1, 0xe0, 0x81, 0xde, 0x30, 0x60, 0xbe, - 0x49, 0x2c, 0xbf, 0xed, 0x11, 0xda, 0x04, 0x4c, 0x02, 0xe2, 0xd0, 0xdd, 0x70, 0x21, 0xc7, 0x98, - 0xe3, 0x51, 0xc7, 0xa1, 0x97, 0x72, 0xf9, 0x7e, 0x21, 0xca, 0x7c, 0x12, 0x14, 0x27, 0x4a, 0x63, - 0xfe, 0x60, 0x0c, 0xe6, 0x7a, 0x76, 0x08, 0xf4, 0x38, 0xe4, 0x5a, 0xbb, 0x96, 0x2f, 0x97, 0xfc, - 0x59, 0x39, 0xdf, 0x36, 0x69, 0xe1, 0x9d, 0x4e, 0xf1, 0x84, 0xac, 0xc2, 0x0a, 0x30, 0x47, 0xa6, - 0x3a, 0xb5, 0x49, 0x7c, 0xdf, 0xaa, 0xcb, 0x7d, 0x40, 0x9b, 0x26, 0xac, 0x18, 0x4b, 0x38, 0xfa, - 0x15, 0x03, 0x4e, 0xf0, 0x29, 0x83, 0x89, 0xdf, 0x6e, 0x04, 0x74, 0xaf, 0xa3, 0xdd, 0x72, 0x31, - 0x8d, 0xe9, 0xc9, 0x49, 0x96, 0x4f, 0x09, 0xee, 0x27, 0xf4, 0x52, 0x1f, 0x47, 0xf9, 0xa2, 0xeb, - 0x50, 0xf0, 0x03, 0xcb, 0x0b, 0x48, 0xad, 0x14, 0x30, 0xad, 0x36, 0xf9, 0xe8, 0xff, 0x1d, 0x6c, - 0x13, 0xd8, 0xb2, 0x9b, 0x84, 0x6f, 0x38, 0x15, 0x49, 0x00, 0x87, 0xb4, 0xd0, 0x4b, 0x00, 0x5e, - 0xdb, 0xa9, 0xb4, 0x9b, 0x4d, 0xcb, 0xdb, 0x17, 0x1a, 0xfc, 0xc2, 0x68, 0xcd, 0xc3, 0x8a, 0x5e, - 0xa8, 0xb3, 0xc2, 0x32, 0xac, 0xf1, 0x43, 0xaf, 0x18, 0x70, 0x82, 0xcf, 0x44, 0x29, 0xc1, 0x78, - 0xca, 0x12, 0xcc, 0xd1, 0xae, 0x5d, 0xd5, 0x59, 0xe0, 0x28, 0x47, 0xf3, 0xef, 0xa2, 0xfa, 0xa4, - 0x12, 0x50, 0xeb, 0xba, 0xbe, 0x8f, 0x3e, 0x08, 0xf7, 0xfa, 0xed, 0x6a, 0x95, 0xf8, 0xfe, 0x4e, - 0xbb, 0x81, 0xdb, 0xce, 0x05, 0xdb, 0x0f, 0x5c, 0x6f, 0x7f, 0xdd, 0x6e, 0xda, 0x01, 0x9b, 0x71, - 0xb9, 0xf2, 0x99, 0x6e, 0xa7, 0x78, 0x6f, 0xa5, 0x1f, 0x12, 0xee, 0x5f, 0x1f, 0x59, 0x70, 0x5f, - 0xdb, 0xe9, 0x4f, 0x9e, 0x5b, 0x6f, 0xc5, 0x6e, 0xa7, 0x78, 0xdf, 0xd5, 0xfe, 0x68, 0xf8, 0x20, - 0x1a, 0xe6, 0xbf, 0x1a, 0x30, 0x2b, 0xdb, 0xb5, 0x45, 0x9a, 0xad, 0x06, 0xdd, 0x5d, 0x8e, 0xdf, - 0x10, 0x09, 0x22, 0x86, 0x08, 0x4e, 0x47, 0x9d, 0x48, 0xf9, 0xfb, 0x59, 0x23, 0xe6, 0xbf, 0x18, - 0x30, 0x1f, 0x47, 0xbe, 0x0b, 0xca, 0xd3, 0x8f, 0x2a, 0xcf, 0x4b, 0xe9, 0xb6, 0xb6, 0x8f, 0x06, - 0x7d, 0x6d, 0xac, 0xb7, 0xad, 0xff, 0xd3, 0xd5, 0x68, 0xa8, 0x15, 0xb3, 0x3f, 0x4b, 0xad, 0x38, - 0xf6, 0x96, 0xd2, 0x8a, 0x7f, 0x30, 0x06, 0x53, 0x25, 0x27, 0xb0, 0x4b, 0x3b, 0x3b, 0xb6, 0x63, - 0x07, 0xfb, 0xe8, 0x33, 0x19, 0x58, 0x6e, 0x79, 0x64, 0x87, 0x78, 0x1e, 0xa9, 0xad, 0xb6, 0x3d, - 0xdb, 0xa9, 0x57, 0xaa, 0xbb, 0xa4, 0xd6, 0x6e, 0xd8, 0x4e, 0x7d, 0xad, 0xee, 0xb8, 0xaa, 0xf8, - 0xdc, 0x6d, 0x52, 0x6d, 0xb3, 0x26, 0xf1, 0x45, 0xd1, 0x1c, 0xad, 0x49, 0x9b, 0xc3, 0x31, 0x2d, - 0x3f, 0xd6, 0xed, 0x14, 0x97, 0x87, 0xac, 0x84, 0x87, 0x6d, 0x1a, 0xfa, 0x74, 0x06, 0x96, 0x3c, - 0xf2, 0xb1, 0xb6, 0x3d, 0x78, 0x6f, 0xf0, 0x5d, 0xab, 0x31, 0xa2, 0xfa, 0x19, 0x8a, 0x67, 0xf9, - 0xd1, 0x6e, 0xa7, 0x38, 0x64, 0x1d, 0x3c, 0x64, 0xbb, 0xcc, 0xaf, 0x65, 0xe0, 0x54, 0xa9, 0xd5, - 0xda, 0x20, 0xfe, 0x6e, 0xec, 0x50, 0xfb, 0x39, 0x03, 0xa6, 0xf7, 0x6c, 0x2f, 0x68, 0x5b, 0x0d, - 0xe9, 0x04, 0xe0, 0x53, 0xa2, 0x32, 0xe2, 0x72, 0xe6, 0xdc, 0xae, 0x45, 0x48, 0x97, 0x51, 0xb7, - 0x53, 0x9c, 0x8e, 0x96, 0xe1, 0x18, 0x7b, 0xf4, 0x9b, 0x06, 0xcc, 0x8a, 0xa2, 0x4b, 0x6e, 0x8d, - 0xe8, 0x9e, 0xa3, 0xab, 0x69, 0xca, 0xa4, 0x88, 0x73, 0x17, 0x43, 0xbc, 0x14, 0xf7, 0x08, 0x61, - 0xfe, 0x7b, 0x06, 0x4e, 0xf7, 0xa1, 0x81, 0x7e, 0xdf, 0x80, 0x79, 0xee, 0x6e, 0xd2, 0x40, 0x98, - 0xec, 0x88, 0xde, 0xfc, 0x40, 0xda, 0x92, 0x63, 0xba, 0x16, 0x88, 0x53, 0x25, 0xe5, 0x05, 0xba, - 0x6d, 0xac, 0x24, 0xb0, 0xc6, 0x89, 0x02, 0x31, 0x49, 0xb9, 0x03, 0x2a, 0x26, 0x69, 0xe6, 0xae, - 0x48, 0x5a, 0x49, 0x60, 0x8d, 0x13, 0x05, 0x32, 0x7f, 0x11, 0xee, 0x3b, 0x80, 0xdc, 0xe1, 0x27, - 0x7e, 0xf3, 0x05, 0x35, 0xeb, 0xa3, 0x73, 0x6e, 0x00, 0x67, 0x81, 0x09, 0xe3, 0x9e, 0xdb, 0x0e, - 0x08, 0xd7, 0x6e, 0x85, 0x32, 0x50, 0x3d, 0x81, 0x59, 0x09, 0x16, 0x10, 0xf3, 0x6b, 0x06, 0xe4, - 0x87, 0xf0, 0x3f, 0x14, 0xa3, 0xfe, 0x87, 0x42, 0x8f, 0xef, 0x21, 0xe8, 0xf5, 0x3d, 0x3c, 0x3b, - 0xda, 0x68, 0x0c, 0xe2, 0x73, 0xf8, 0xb1, 0x01, 0x73, 0x3d, 0x3e, 0x0a, 0xb4, 0x0b, 0xf3, 0x2d, - 0xb7, 0x26, 0xed, 0x8b, 0x0b, 0x96, 0xbf, 0xcb, 0x60, 0xa2, 0x79, 0x8f, 0xd3, 0x91, 0xdc, 0x4c, - 0x80, 0xdf, 0xe9, 0x14, 0x17, 0x14, 0x91, 0x18, 0x02, 0x4e, 0xa4, 0x88, 0x5a, 0x90, 0xdf, 0xb1, - 0x49, 0xa3, 0x16, 0x4e, 0xc1, 0x11, 0x2d, 0x89, 0xf3, 0x82, 0x1a, 0x77, 0xcf, 0xc9, 0x7f, 0x58, - 0x71, 0x31, 0xaf, 0xc0, 0x74, 0xd4, 0x59, 0x3b, 0xc0, 0xe0, 0x9d, 0x81, 0xac, 0xe5, 0x39, 0x62, - 0xe8, 0x26, 0x05, 0x42, 0xb6, 0x84, 0x2f, 0x61, 0x5a, 0x6e, 0xfe, 0x74, 0x0c, 0x66, 0xca, 0x8d, - 0x36, 0x79, 0xd6, 0x23, 0x44, 0x9e, 0x4f, 0x4b, 0x30, 0xd3, 0xf2, 0xc8, 0x9e, 0x4d, 0x6e, 0x55, - 0x48, 0x83, 0x54, 0x03, 0xd7, 0x13, 0xf4, 0x4f, 0x8b, 0xea, 0x33, 0x9b, 0x51, 0x30, 0x8e, 0xe3, - 0xa3, 0x67, 0x60, 0xda, 0xaa, 0x06, 0xf6, 0x1e, 0x51, 0x14, 0xb8, 0x00, 0x6f, 0x13, 0x14, 0xa6, - 0x4b, 0x11, 0x28, 0x8e, 0x61, 0xa3, 0x0f, 0xc1, 0x82, 0x5f, 0xb5, 0x1a, 0xe4, 0x6a, 0x4b, 0xb0, - 0x5a, 0xd9, 0x25, 0xd5, 0x9b, 0x9b, 0xae, 0xed, 0x04, 0xc2, 0x1b, 0xf1, 0x80, 0xa0, 0xb4, 0x50, - 0xe9, 0x83, 0x87, 0xfb, 0x52, 0x40, 0x7f, 0x6e, 0xc0, 0x99, 0x96, 0x47, 0x36, 0x3d, 0xb7, 0xe9, - 0x52, 0x35, 0xd3, 0x73, 0x44, 0x17, 0x47, 0xd5, 0x6b, 0x23, 0xea, 0x53, 0x5e, 0xd2, 0xeb, 0x22, - 0x7c, 0x7b, 0xb7, 0x53, 0x3c, 0xb3, 0x79, 0x90, 0x00, 0xf8, 0x60, 0xf9, 0xd0, 0x5f, 0x1a, 0x70, - 0xb6, 0xe5, 0xfa, 0xc1, 0x01, 0x4d, 0xc8, 0x1d, 0x6b, 0x13, 0xcc, 0x6e, 0xa7, 0x78, 0x76, 0xf3, - 0x40, 0x09, 0xf0, 0x21, 0x12, 0x9a, 0xdd, 0x49, 0x98, 0xd3, 0xe6, 0x9e, 0x38, 0xbf, 0x3e, 0x05, - 0x27, 0xe4, 0x64, 0x08, 0xd5, 0x7a, 0x21, 0xf4, 0x37, 0x94, 0x74, 0x20, 0x8e, 0xe2, 0xd2, 0x79, - 0xa7, 0xa6, 0x22, 0xaf, 0x1d, 0x9b, 0x77, 0x9b, 0x11, 0x28, 0x8e, 0x61, 0xa3, 0x35, 0x38, 0x29, - 0x4a, 0x30, 0x69, 0x35, 0xec, 0xaa, 0xb5, 0xe2, 0xb6, 0xc5, 0x94, 0xcb, 0x95, 0x4f, 0x77, 0x3b, - 0xc5, 0x93, 0x9b, 0xbd, 0x60, 0x9c, 0x54, 0x07, 0xad, 0xc3, 0xbc, 0xd5, 0x0e, 0x5c, 0xd5, 0xfe, - 0x73, 0x0e, 0xd5, 0x14, 0x35, 0x36, 0xb5, 0xf2, 0x5c, 0xa5, 0x94, 0x12, 0xe0, 0x38, 0xb1, 0x16, - 0xda, 0x8c, 0x51, 0xab, 0x90, 0xaa, 0xeb, 0xd4, 0xf8, 0x28, 0xe7, 0x42, 0x2b, 0xbc, 0x94, 0x80, - 0x83, 0x13, 0x6b, 0xa2, 0x06, 0x4c, 0x37, 0xad, 0xdb, 0x57, 0x1d, 0x6b, 0xcf, 0xb2, 0x1b, 0x94, - 0x89, 0xf0, 0x61, 0xf4, 0x3f, 0x58, 0xb7, 0x03, 0xbb, 0xb1, 0xc4, 0xaf, 0xf3, 0x96, 0xd6, 0x9c, - 0xe0, 0xb2, 0x57, 0x09, 0xa8, 0xb5, 0xc6, 0x8d, 0xa3, 0x8d, 0x08, 0x2d, 0x1c, 0xa3, 0x8d, 0x2e, - 0xc3, 0x29, 0xb6, 0x1c, 0x57, 0xdd, 0x5b, 0xce, 0x2a, 0x69, 0x58, 0xfb, 0xb2, 0x01, 0x13, 0xac, - 0x01, 0xf7, 0x76, 0x3b, 0xc5, 0x53, 0x95, 0x24, 0x04, 0x9c, 0x5c, 0x0f, 0x59, 0x70, 0x5f, 0x14, - 0x80, 0xc9, 0x9e, 0xed, 0xdb, 0xae, 0xc3, 0x3d, 0x11, 0xf9, 0xd0, 0x13, 0x51, 0xe9, 0x8f, 0x86, - 0x0f, 0xa2, 0x81, 0x7e, 0xdb, 0x80, 0xf9, 0xa4, 0x65, 0xb8, 0x50, 0x48, 0xe3, 0xb2, 0x22, 0xb6, - 0xb4, 0xf8, 0x8c, 0x48, 0xdc, 0x14, 0x12, 0x85, 0x40, 0x2f, 0x1b, 0x30, 0x65, 0x69, 0xa7, 0xa8, - 0x05, 0x60, 0x52, 0x5d, 0x1c, 0xf5, 0x2c, 0x1f, 0x52, 0x2c, 0xcf, 0x76, 0x3b, 0xc5, 0xc8, 0x49, - 0x0d, 0x47, 0x38, 0xa2, 0xdf, 0x35, 0xe0, 0x54, 0xe2, 0x1a, 0x5f, 0x98, 0x3c, 0x8e, 0x1e, 0x62, - 0x93, 0x24, 0x79, 0xcf, 0x49, 0x16, 0x03, 0xbd, 0x6e, 0x28, 0x55, 0xb6, 0x21, 0xbd, 0x29, 0x53, - 0x4c, 0xb4, 0x2b, 0x23, 0x1e, 0x1c, 0x43, 0x83, 0x40, 0x12, 0x2e, 0x9f, 0xd4, 0x34, 0xa3, 0x2c, - 0xc4, 0x71, 0xf6, 0xe8, 0xb3, 0x86, 0x54, 0x8d, 0x4a, 0xa2, 0x13, 0xc7, 0x25, 0x11, 0x0a, 0x35, - 0xad, 0x12, 0x28, 0xc6, 0x1c, 0x7d, 0x18, 0x16, 0xad, 0x6d, 0xd7, 0x0b, 0x12, 0x17, 0xdf, 0xc2, - 0x34, 0x5b, 0x46, 0x67, 0xbb, 0x9d, 0xe2, 0x62, 0xa9, 0x2f, 0x16, 0x3e, 0x80, 0x82, 0xf9, 0xc7, - 0x39, 0x98, 0xe2, 0x46, 0xbe, 0x50, 0x5d, 0x5f, 0x35, 0xe0, 0xfe, 0x6a, 0xdb, 0xf3, 0x88, 0x13, - 0x54, 0x02, 0xd2, 0xea, 0x55, 0x5c, 0xc6, 0xb1, 0x2a, 0xae, 0x07, 0xba, 0x9d, 0xe2, 0xfd, 0x2b, - 0x07, 0xf0, 0xc7, 0x07, 0x4a, 0x87, 0xfe, 0xc6, 0x00, 0x53, 0x20, 0x94, 0xad, 0xea, 0xcd, 0xba, - 0xe7, 0xb6, 0x9d, 0x5a, 0x6f, 0x23, 0x32, 0xc7, 0xda, 0x88, 0x87, 0xba, 0x9d, 0xa2, 0xb9, 0x72, - 0xa8, 0x14, 0x78, 0x00, 0x49, 0xd1, 0xb3, 0x30, 0x27, 0xb0, 0xce, 0xdd, 0x6e, 0x11, 0xcf, 0xa6, - 0xe6, 0xb4, 0xb8, 0x4f, 0x0f, 0x43, 0x14, 0xe2, 0x08, 0xb8, 0xb7, 0x0e, 0xf2, 0x61, 0xe2, 0x16, - 0xb1, 0xeb, 0xbb, 0x81, 0x34, 0x9f, 0x46, 0x8c, 0x4b, 0x10, 0x07, 0xfe, 0xeb, 0x9c, 0x66, 0x79, - 0xb2, 0xdb, 0x29, 0x4e, 0x88, 0x3f, 0x58, 0x72, 0x42, 0x97, 0x60, 0x9a, 0x1f, 0xc1, 0x36, 0x6d, - 0xa7, 0xbe, 0xe9, 0x3a, 0xfc, 0x36, 0xbf, 0x50, 0x7e, 0x48, 0x2a, 0xfc, 0x4a, 0x04, 0x7a, 0xa7, - 0x53, 0x9c, 0x92, 0xbf, 0xb7, 0xf6, 0x5b, 0x04, 0xc7, 0x6a, 0x9b, 0xdf, 0x1c, 0x07, 0x90, 0xd3, - 0x95, 0xb4, 0xd0, 0xff, 0x83, 0x82, 0x4f, 0x02, 0xce, 0x55, 0x38, 0xcf, 0xf9, 0x9d, 0x84, 0x2c, - 0xc4, 0x21, 0x1c, 0xdd, 0x84, 0x5c, 0xcb, 0x6a, 0xfb, 0x44, 0x0c, 0xfe, 0xc5, 0x54, 0x06, 0x7f, - 0x93, 0x52, 0xe4, 0x67, 0x2e, 0xf6, 0x13, 0x73, 0x1e, 0xe8, 0x53, 0x06, 0x00, 0x89, 0x0e, 0xd8, - 0xc8, 0xbe, 0x0f, 0xc1, 0x32, 0x1c, 0x53, 0xda, 0x07, 0xe5, 0xe9, 0x6e, 0xa7, 0x08, 0xda, 0xd0, - 0x6b, 0x6c, 0xd1, 0x2d, 0xc8, 0x5b, 0x72, 0xcf, 0x1f, 0x3b, 0x8e, 0x3d, 0x9f, 0x1d, 0x85, 0xd4, - 0xa4, 0x55, 0xcc, 0xd0, 0xa7, 0x0d, 0x98, 0xf6, 0x49, 0x20, 0x86, 0x8a, 0xee, 0x3c, 0xc2, 0xe0, - 0x1d, 0x71, 0xd2, 0x55, 0x22, 0x34, 0xf9, 0x0e, 0x1a, 0x2d, 0xc3, 0x31, 0xbe, 0x52, 0x94, 0x0b, - 0xc4, 0xaa, 0x11, 0x8f, 0x9d, 0xb4, 0x85, 0x25, 0x35, 0xba, 0x28, 0x1a, 0x4d, 0x25, 0x8a, 0x56, - 0x86, 0x63, 0x7c, 0xa5, 0x28, 0x1b, 0xb6, 0xe7, 0xb9, 0x42, 0x94, 0x7c, 0x4a, 0xa2, 0x68, 0x34, - 0x95, 0x28, 0x5a, 0x19, 0x8e, 0xf1, 0x35, 0xff, 0x76, 0x0a, 0xa6, 0xe5, 0x42, 0x0a, 0x2d, 0x7b, - 0xee, 0xd8, 0xe9, 0x63, 0xd9, 0xaf, 0xe8, 0x40, 0x1c, 0xc5, 0xa5, 0x95, 0xf9, 0x52, 0x8d, 0x1a, - 0xf6, 0xaa, 0x72, 0x45, 0x07, 0xe2, 0x28, 0x2e, 0x6a, 0x42, 0xce, 0x0f, 0x48, 0x4b, 0xde, 0x83, - 0x8e, 0x78, 0x4d, 0x17, 0xee, 0x0f, 0xe1, 0x4d, 0x07, 0xfd, 0xe7, 0x63, 0xce, 0x85, 0xf9, 0x26, - 0x83, 0x88, 0xbb, 0x52, 0x2c, 0x8e, 0x74, 0xd6, 0x67, 0xd4, 0x13, 0xca, 0x47, 0x23, 0x5a, 0x86, - 0x63, 0xec, 0x13, 0x8c, 0xfd, 0xdc, 0x31, 0x1a, 0xfb, 0xcf, 0x43, 0xbe, 0x69, 0xdd, 0xae, 0xb4, - 0xbd, 0xfa, 0xd1, 0x0f, 0x15, 0x22, 0x44, 0x89, 0x53, 0xc1, 0x8a, 0x1e, 0x7a, 0xc5, 0xd0, 0xb6, - 0x9c, 0x09, 0x46, 0xfc, 0x7a, 0xba, 0x5b, 0x8e, 0xd2, 0x95, 0x7d, 0x37, 0x9f, 0x1e, 0xd3, 0x3b, - 0x7f, 0xd7, 0x4d, 0x6f, 0x6a, 0x46, 0xf2, 0x05, 0xa2, 0xcc, 0xc8, 0xc2, 0xb1, 0x9a, 0x91, 0x2b, - 0x11, 0x66, 0x38, 0xc6, 0x9c, 0xc9, 0xc3, 0xd7, 0x9c, 0x92, 0x07, 0x8e, 0x55, 0x9e, 0x4a, 0x84, - 0x19, 0x8e, 0x31, 0xef, 0x7f, 0xde, 0x9c, 0x3c, 0x9e, 0xf3, 0xe6, 0x54, 0x0a, 0xe7, 0xcd, 0x83, - 0x4d, 0xf1, 0x13, 0xa3, 0x9a, 0xe2, 0xe8, 0x22, 0xa0, 0xda, 0xbe, 0x63, 0x35, 0xed, 0xaa, 0xd8, - 0x2c, 0x99, 0xda, 0x9c, 0x66, 0xfe, 0x88, 0x45, 0xb1, 0x91, 0xa1, 0xd5, 0x1e, 0x0c, 0x9c, 0x50, - 0x0b, 0x05, 0x90, 0x6f, 0x49, 0x8b, 0x6b, 0x26, 0x8d, 0xd9, 0x2f, 0x2d, 0x30, 0x7e, 0x55, 0x4e, - 0x17, 0x9e, 0x2c, 0xc1, 0x8a, 0x93, 0xf9, 0x9f, 0x06, 0xcc, 0xae, 0x34, 0xdc, 0x76, 0xed, 0xba, - 0x15, 0x54, 0x77, 0xf9, 0xbd, 0x2e, 0x7a, 0x06, 0xf2, 0xb6, 0x13, 0x10, 0x6f, 0xcf, 0x6a, 0x08, - 0x8d, 0x62, 0xca, 0xab, 0xef, 0x35, 0x51, 0x7e, 0xa7, 0x53, 0x9c, 0x5e, 0x6d, 0x7b, 0x2c, 0x60, - 0x92, 0xef, 0x2f, 0x58, 0xd5, 0x41, 0x5f, 0x32, 0x60, 0x8e, 0xdf, 0x0c, 0xaf, 0x5a, 0x81, 0x75, - 0xa5, 0x4d, 0x3c, 0x9b, 0xc8, 0xbb, 0xe1, 0x11, 0xb7, 0x96, 0xb8, 0xac, 0x92, 0xc1, 0x7e, 0x68, - 0x5a, 0x6f, 0xc4, 0x39, 0xe3, 0x5e, 0x61, 0xcc, 0xcf, 0x67, 0xe1, 0xde, 0xbe, 0xb4, 0xd0, 0x22, - 0x64, 0xec, 0x9a, 0x68, 0x3a, 0x08, 0xba, 0x99, 0xb5, 0x1a, 0xce, 0xd8, 0x35, 0xb4, 0xc4, 0xac, - 0x44, 0x8f, 0xf8, 0xbe, 0xbc, 0x26, 0x2c, 0x28, 0x83, 0x4e, 0x94, 0x62, 0x0d, 0x03, 0x15, 0x21, - 0xd7, 0xb0, 0xb6, 0x49, 0x43, 0x9c, 0x00, 0x98, 0xdd, 0xb9, 0x4e, 0x0b, 0x30, 0x2f, 0x47, 0xbf, - 0x6c, 0x00, 0x70, 0x01, 0xe9, 0xf9, 0x41, 0xe8, 0x35, 0x9c, 0x6e, 0x37, 0x51, 0xca, 0x5c, 0xca, - 0xf0, 0x3f, 0xd6, 0xb8, 0xa2, 0x2d, 0x18, 0xa7, 0x26, 0xa8, 0x5b, 0x3b, 0xb2, 0x1a, 0x63, 0xd7, - 0x22, 0x9b, 0x8c, 0x06, 0x16, 0xb4, 0x68, 0x5f, 0x79, 0x24, 0x68, 0x7b, 0x0e, 0xed, 0x5a, 0xa6, - 0xb8, 0xf2, 0x5c, 0x0a, 0xac, 0x4a, 0xb1, 0x86, 0x61, 0xfe, 0x59, 0x06, 0xe6, 0x93, 0x44, 0xa7, - 0xfa, 0x61, 0x9c, 0x4b, 0x2b, 0x0e, 0xb3, 0xef, 0x4f, 0xbf, 0x7f, 0x44, 0x90, 0x83, 0x0a, 0x05, - 0x10, 0x61, 0x58, 0x82, 0x2f, 0x7a, 0xbf, 0xea, 0xa1, 0xcc, 0x11, 0x7b, 0x48, 0x51, 0x8e, 0xf5, - 0xd2, 0x03, 0x30, 0xe6, 0xd3, 0x91, 0xcf, 0x46, 0xaf, 0x1c, 0xd8, 0x18, 0x31, 0x08, 0xc5, 0x68, - 0x3b, 0x76, 0x20, 0xa2, 0x98, 0x15, 0xc6, 0x55, 0xc7, 0x0e, 0x30, 0x83, 0x98, 0x5f, 0xcc, 0xc0, - 0x62, 0xff, 0x46, 0xa1, 0x2f, 0x1a, 0x00, 0x35, 0x7a, 0xc0, 0xa0, 0x53, 0x52, 0x06, 0x85, 0x58, - 0xc7, 0xd5, 0x87, 0xab, 0x92, 0x53, 0x18, 0x21, 0xa4, 0x8a, 0x7c, 0xac, 0x09, 0x82, 0x1e, 0x95, - 0x53, 0xff, 0x92, 0xd5, 0x94, 0x06, 0xa8, 0xaa, 0xb3, 0xa1, 0x20, 0x58, 0xc3, 0xa2, 0x27, 0x48, - 0xc7, 0x6a, 0x12, 0xbf, 0x65, 0xa9, 0x30, 0x75, 0x76, 0x82, 0xbc, 0x24, 0x0b, 0x71, 0x08, 0x37, - 0x1b, 0xf0, 0xe0, 0x00, 0x72, 0xa6, 0x14, 0x32, 0x6c, 0xfe, 0x87, 0x01, 0xa7, 0x57, 0x1a, 0x6d, - 0x3f, 0x20, 0xde, 0xff, 0x9a, 0x80, 0xab, 0xff, 0x32, 0xe0, 0xbe, 0x3e, 0x6d, 0xbe, 0x0b, 0x71, - 0x57, 0x2f, 0x46, 0xe3, 0xae, 0xae, 0x8e, 0x3a, 0xa5, 0x13, 0xdb, 0xd1, 0x27, 0xfc, 0x2a, 0x80, - 0x13, 0x74, 0xd7, 0xaa, 0xb9, 0xf5, 0x94, 0xf4, 0xe6, 0x83, 0x90, 0xfb, 0x18, 0xd5, 0x3f, 0xf1, - 0x39, 0xc6, 0x94, 0x12, 0xe6, 0x30, 0xf3, 0x69, 0x10, 0x41, 0x4a, 0xb1, 0xc5, 0x63, 0x0c, 0xb2, - 0x78, 0xcc, 0xbf, 0xcf, 0x80, 0xe6, 0x79, 0xb8, 0x0b, 0x93, 0xd2, 0x89, 0x4c, 0xca, 0x11, 0x4f, - 0xcd, 0x9a, 0x1f, 0xa5, 0xdf, 0x6b, 0x84, 0xbd, 0xd8, 0x6b, 0x84, 0x4b, 0xa9, 0x71, 0x3c, 0xf8, - 0x31, 0xc2, 0xf7, 0x0c, 0xb8, 0x2f, 0x44, 0xee, 0x75, 0x0a, 0x1e, 0xbe, 0xc3, 0x3c, 0x01, 0x93, - 0x56, 0x58, 0x4d, 0xcc, 0x01, 0xf5, 0x00, 0x47, 0xa3, 0x88, 0x75, 0xbc, 0x30, 0xf6, 0x39, 0x7b, - 0xc4, 0xd8, 0xe7, 0xb1, 0x83, 0x63, 0x9f, 0xcd, 0x9f, 0x64, 0xe0, 0x4c, 0x6f, 0xcb, 0xe4, 0xda, - 0x18, 0xec, 0xce, 0xfc, 0x49, 0x98, 0x0a, 0x44, 0x05, 0x6d, 0xa7, 0x57, 0xcf, 0xc7, 0xb6, 0x34, - 0x18, 0x8e, 0x60, 0xd2, 0x9a, 0x55, 0xbe, 0x2a, 0x2b, 0x55, 0xb7, 0x25, 0x23, 0xe7, 0x55, 0xcd, - 0x15, 0x0d, 0x86, 0x23, 0x98, 0x2a, 0x26, 0x71, 0xec, 0xd8, 0x63, 0x12, 0x2b, 0x70, 0x4a, 0x46, - 0x61, 0x9d, 0x77, 0xbd, 0x15, 0xb7, 0xd9, 0x6a, 0x10, 0x11, 0x3b, 0x4f, 0x85, 0x3d, 0x23, 0xaa, - 0x9c, 0xc2, 0x49, 0x48, 0x38, 0xb9, 0xae, 0xf9, 0xbd, 0x2c, 0x9c, 0x0c, 0xbb, 0x7d, 0xc5, 0x75, - 0x6a, 0x36, 0x8b, 0x65, 0x7b, 0x0a, 0xc6, 0x82, 0xfd, 0x96, 0xec, 0xec, 0xff, 0x23, 0xc5, 0xd9, - 0xda, 0x6f, 0xd1, 0xd1, 0x3e, 0x9d, 0x50, 0x85, 0xb9, 0x65, 0x59, 0x25, 0xb4, 0xae, 0x56, 0x07, - 0x1f, 0x81, 0xc7, 0xa3, 0xb3, 0xf9, 0x4e, 0xa7, 0x98, 0xf0, 0x7a, 0x72, 0x49, 0x51, 0x8a, 0xce, - 0x79, 0x74, 0x03, 0xa6, 0x1b, 0x96, 0x1f, 0x5c, 0x6d, 0xd5, 0xac, 0x80, 0x6c, 0xd9, 0x4d, 0x22, - 0xd6, 0xdc, 0x30, 0x01, 0xe9, 0xea, 0x1e, 0x79, 0x3d, 0x42, 0x09, 0xc7, 0x28, 0xa3, 0x3d, 0x40, - 0xb4, 0x64, 0xcb, 0xb3, 0x1c, 0x9f, 0xb7, 0x8a, 0xf2, 0x1b, 0x3e, 0x00, 0x5e, 0x1d, 0xcb, 0xd6, - 0x7b, 0xa8, 0xe1, 0x04, 0x0e, 0xe8, 0x21, 0x18, 0xf7, 0x88, 0xe5, 0x8b, 0xc1, 0x2c, 0x84, 0xeb, - 0x1f, 0xb3, 0x52, 0x2c, 0xa0, 0xfa, 0x82, 0x1a, 0x3f, 0x64, 0x41, 0xfd, 0xd0, 0x80, 0xe9, 0x70, - 0x98, 0xee, 0x82, 0x92, 0x6c, 0x46, 0x95, 0xe4, 0x85, 0xb4, 0xb6, 0xc4, 0x3e, 0x7a, 0xf1, 0xaf, - 0xc6, 0xf5, 0xf6, 0xb1, 0x80, 0xe4, 0x8f, 0x43, 0x41, 0xae, 0x6a, 0x69, 0x7d, 0x8e, 0x78, 0xba, - 0x8d, 0xd8, 0x25, 0xda, 0x43, 0x1a, 0xc1, 0x04, 0x87, 0xfc, 0xa8, 0x5a, 0xae, 0x09, 0x95, 0x2b, - 0xa6, 0xbd, 0x52, 0xcb, 0x52, 0x15, 0x27, 0xa9, 0x65, 0x59, 0x07, 0x5d, 0x85, 0xd3, 0x2d, 0xcf, - 0x65, 0x8f, 0x2b, 0x57, 0x89, 0x55, 0x6b, 0xd8, 0x0e, 0x91, 0x2e, 0x04, 0x1e, 0xc6, 0x70, 0x5f, - 0xb7, 0x53, 0x3c, 0xbd, 0x99, 0x8c, 0x82, 0xfb, 0xd5, 0x8d, 0x3e, 0x08, 0x1a, 0x1b, 0xe0, 0x41, - 0xd0, 0xaf, 0x2a, 0x47, 0x1d, 0xf1, 0xc5, 0xb3, 0x9c, 0x0f, 0xa6, 0x35, 0x94, 0x09, 0xdb, 0x7a, - 0x38, 0xa5, 0x4a, 0x82, 0x29, 0x56, 0xec, 0xfb, 0x7b, 0x83, 0xc6, 0x8f, 0xe8, 0x0d, 0x0a, 0xe3, - 0xba, 0x27, 0x7e, 0x96, 0x71, 0xdd, 0xf9, 0xb7, 0x54, 0x5c, 0xf7, 0xab, 0x39, 0x98, 0x8d, 0x5b, - 0x20, 0xc7, 0xff, 0xd8, 0xe9, 0x37, 0x0c, 0x98, 0x95, 0xab, 0x87, 0xf3, 0x24, 0xd2, 0xcf, 0xbf, - 0x9e, 0xd2, 0xa2, 0xe5, 0xb6, 0x94, 0x7a, 0x8e, 0xbb, 0x15, 0xe3, 0x86, 0x7b, 0xf8, 0xa3, 0x17, - 0x60, 0x52, 0xb9, 0xc3, 0x8f, 0xf4, 0xf2, 0x69, 0x86, 0x59, 0x51, 0x21, 0x09, 0xac, 0xd3, 0x43, - 0xaf, 0x1a, 0x00, 0x55, 0xa9, 0xe6, 0xe4, 0xea, 0xba, 0x92, 0xd6, 0xea, 0x52, 0x0a, 0x34, 0x34, - 0x96, 0x55, 0x91, 0x8f, 0x35, 0xc6, 0xe8, 0xf3, 0xcc, 0x11, 0xae, 0xac, 0x3b, 0xba, 0x9e, 0xb2, - 0xa3, 0x87, 0xe2, 0x1e, 0x60, 0x98, 0x86, 0xa6, 0x94, 0x06, 0xf2, 0x71, 0x44, 0x08, 0xf3, 0x29, - 0x50, 0xc1, 0x93, 0x74, 0xdb, 0x62, 0xe1, 0x93, 0x9b, 0x56, 0xb0, 0x2b, 0xa6, 0xa0, 0xda, 0xb6, - 0xce, 0x4b, 0x00, 0x0e, 0x71, 0xcc, 0x8f, 0xc2, 0xf4, 0xb3, 0x9e, 0xd5, 0xda, 0xb5, 0x99, 0xc3, - 0x99, 0x9e, 0x93, 0xde, 0x09, 0x13, 0x56, 0xad, 0x96, 0xf4, 0x98, 0xbd, 0xc4, 0x8b, 0xb1, 0x84, - 0x0f, 0x76, 0x24, 0xfa, 0xa6, 0x01, 0x28, 0xbc, 0xb4, 0xb3, 0x9d, 0xfa, 0x06, 0x3d, 0xed, 0xd3, - 0xf3, 0xd1, 0x2e, 0x2b, 0x4d, 0x3a, 0x1f, 0x5d, 0x50, 0x10, 0xac, 0x61, 0xa1, 0x97, 0x60, 0x92, - 0xff, 0xbb, 0xa6, 0x0e, 0xfb, 0x23, 0x3f, 0x85, 0xe5, 0x0a, 0x85, 0xc9, 0xc4, 0x67, 0xe1, 0x85, - 0x90, 0x03, 0xd6, 0xd9, 0xd1, 0xae, 0x5a, 0x73, 0x76, 0x1a, 0xed, 0xdb, 0xb5, 0xed, 0xb0, 0xab, - 0x5a, 0x9e, 0xbb, 0x63, 0x37, 0x48, 0xbc, 0xab, 0x36, 0x79, 0x31, 0x96, 0xf0, 0xc1, 0xba, 0xea, - 0xeb, 0x06, 0xcc, 0xaf, 0xf9, 0x81, 0xed, 0xae, 0x12, 0x3f, 0xa0, 0x6a, 0x85, 0x6e, 0x3e, 0xed, - 0xc6, 0x20, 0x71, 0xd0, 0xab, 0x30, 0x2b, 0x2e, 0x10, 0xdb, 0xdb, 0x3e, 0x09, 0x34, 0x3b, 0x5e, - 0xad, 0xe3, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0xa0, 0x54, 0xc4, 0x4d, 0x62, 0x48, 0x25, 0x1b, 0xa5, - 0x52, 0x89, 0xc1, 0x71, 0x4f, 0x0d, 0xf3, 0x3b, 0x59, 0x38, 0xc9, 0x9a, 0x11, 0x7b, 0xc3, 0xf0, - 0xd9, 0x7e, 0x6f, 0x18, 0x46, 0x5c, 0xca, 0x8c, 0xd7, 0x11, 0x5e, 0x30, 0xfc, 0xba, 0x01, 0x33, - 0xb5, 0x68, 0x4f, 0xa7, 0xe3, 0x9e, 0x49, 0x1a, 0x43, 0x1e, 0x2f, 0x15, 0x2b, 0xc4, 0x71, 0xfe, - 0xe8, 0x0b, 0x06, 0xcc, 0x44, 0xc5, 0x94, 0xbb, 0xfb, 0x31, 0x74, 0x92, 0x0a, 0x70, 0x8e, 0x96, - 0xfb, 0x38, 0x2e, 0x82, 0xf9, 0xed, 0x8c, 0x18, 0xd2, 0xe3, 0x08, 0xd0, 0x47, 0xb7, 0xa0, 0x10, - 0x34, 0x7c, 0x5e, 0x28, 0x5a, 0x3b, 0xe2, 0x89, 0x70, 0x6b, 0xbd, 0xc2, 0xef, 0xee, 0x43, 0xa3, - 0x4d, 0x94, 0x50, 0xe3, 0x53, 0xf2, 0x62, 0x8c, 0xab, 0x2d, 0xc1, 0x38, 0x95, 0xa3, 0xe8, 0xd6, - 0xca, 0x66, 0x9c, 0xb1, 0x28, 0xa1, 0x8c, 0x25, 0x2f, 0xf3, 0xcb, 0x06, 0x14, 0x2e, 0xba, 0x72, - 0x1f, 0xf9, 0x70, 0x0a, 0x8e, 0x1e, 0x65, 0x0f, 0xaa, 0x3b, 0xc2, 0xf0, 0x88, 0xf1, 0x4c, 0xc4, - 0xcd, 0x73, 0xbf, 0x46, 0x7b, 0x89, 0x25, 0xea, 0xa1, 0xa4, 0x2e, 0xba, 0xdb, 0x7d, 0xbd, 0x88, - 0xbf, 0x97, 0x83, 0x13, 0xcf, 0x59, 0xfb, 0xc4, 0x09, 0xac, 0xe1, 0x95, 0xc4, 0x13, 0x30, 0x69, - 0xb5, 0x58, 0xa0, 0xb0, 0x66, 0xe3, 0x87, 0x9e, 0x93, 0x10, 0x84, 0x75, 0xbc, 0x70, 0x43, 0xe3, - 0x79, 0x43, 0x92, 0xb6, 0xa2, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0x40, 0x17, 0x01, 0x89, 0x57, 0x90, - 0xa5, 0x6a, 0xd5, 0x6d, 0x3b, 0x7c, 0x4b, 0xe3, 0x4e, 0x15, 0x75, 0xd8, 0xdc, 0xe8, 0xc1, 0xc0, - 0x09, 0xb5, 0xd0, 0x87, 0x60, 0xa1, 0xca, 0x28, 0x8b, 0xa3, 0x87, 0x4e, 0x91, 0x1f, 0x3f, 0x55, - 0x90, 0xfe, 0x4a, 0x1f, 0x3c, 0xdc, 0x97, 0x02, 0x95, 0xd4, 0x0f, 0x5c, 0xcf, 0xaa, 0x13, 0x9d, - 0xee, 0x78, 0x54, 0xd2, 0x4a, 0x0f, 0x06, 0x4e, 0xa8, 0x85, 0x3e, 0x09, 0x85, 0x60, 0xd7, 0x23, - 0xfe, 0xae, 0xdb, 0xa8, 0x89, 0xa0, 0x81, 0x11, 0x3d, 0x6d, 0x62, 0xf4, 0xb7, 0x24, 0x55, 0x6d, - 0x7a, 0xcb, 0x22, 0x1c, 0xf2, 0x44, 0x1e, 0x8c, 0xfb, 0x55, 0xb7, 0x45, 0x7c, 0x61, 0xb2, 0x5f, - 0x4c, 0x85, 0x3b, 0xf3, 0x1c, 0x69, 0x3e, 0x3e, 0xc6, 0x01, 0x0b, 0x4e, 0xe6, 0x37, 0x32, 0x30, - 0xa5, 0x23, 0x0e, 0xb0, 0x37, 0x7d, 0xca, 0x80, 0xa9, 0xaa, 0xeb, 0x04, 0x9e, 0xdb, 0xe0, 0xfe, - 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd0, 0x5c, 0x61, 0x1a, 0x1b, 0x1c, - 0x61, 0x8a, 0x3e, 0x63, 0xc0, 0x4c, 0x18, 0x63, 0x16, 0x3a, 0xd2, 0x52, 0x15, 0x44, 0x6d, 0xf5, - 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x0d, 0xb3, 0xf1, 0xd1, 0xa6, 0x5d, 0xd9, 0xb2, 0xc4, - 0x5a, 0xcf, 0x86, 0x5d, 0xb9, 0x69, 0xf9, 0x3e, 0x66, 0x10, 0xf4, 0x08, 0xe4, 0x9b, 0x96, 0x57, - 0xb7, 0x1d, 0xab, 0xc1, 0x7a, 0x31, 0xab, 0x6d, 0x48, 0xa2, 0x1c, 0x2b, 0x0c, 0xf3, 0xdd, 0x30, - 0xb5, 0x61, 0x39, 0x75, 0x52, 0x13, 0xfb, 0xf0, 0xe1, 0x4f, 0xc4, 0x7e, 0x34, 0x06, 0x93, 0xda, - 0xd9, 0xec, 0xf8, 0xcf, 0x59, 0x91, 0x54, 0x0e, 0xd9, 0x14, 0x53, 0x39, 0x3c, 0x0f, 0xb0, 0x63, - 0x3b, 0xb6, 0xbf, 0x7b, 0xc4, 0x24, 0x11, 0xec, 0x8a, 0xf6, 0xbc, 0xa2, 0x80, 0x35, 0x6a, 0xe1, - 0x3d, 0x58, 0xee, 0x80, 0xd4, 0x39, 0xaf, 0x1a, 0x9a, 0xba, 0x19, 0x4f, 0xe3, 0xde, 0x5f, 0x1b, - 0x98, 0x25, 0xa9, 0x7e, 0xce, 0x39, 0x81, 0xb7, 0x7f, 0xa0, 0x56, 0xda, 0x82, 0xbc, 0x47, 0xfc, - 0x76, 0x93, 0x9e, 0x18, 0x27, 0x86, 0xee, 0x06, 0x16, 0x33, 0x81, 0x45, 0x7d, 0xac, 0x28, 0x2d, - 0x3e, 0x05, 0x27, 0x22, 0x22, 0xa0, 0x59, 0xc8, 0xde, 0x24, 0xfb, 0x7c, 0x9e, 0x60, 0xfa, 0x13, - 0xcd, 0x47, 0x6e, 0x0b, 0x45, 0xb7, 0xbc, 0x2f, 0xf3, 0xa4, 0x61, 0xba, 0x90, 0xe8, 0x00, 0x38, - 0xca, 0x65, 0x0e, 0x1d, 0x8b, 0x86, 0x96, 0x25, 0x42, 0x8d, 0x05, 0x8f, 0x8c, 0xe1, 0x30, 0xf3, - 0x27, 0xe3, 0x20, 0xae, 0xb2, 0x07, 0xd8, 0xae, 0xf4, 0x1b, 0xac, 0xcc, 0x11, 0x6e, 0xb0, 0x2e, - 0xc2, 0x94, 0xed, 0xd8, 0x81, 0x6d, 0x35, 0x98, 0x73, 0x47, 0xa8, 0x53, 0x19, 0x3a, 0x3c, 0xb5, - 0xa6, 0xc1, 0x12, 0xe8, 0x44, 0xea, 0xa2, 0x2b, 0x90, 0x63, 0xfa, 0x46, 0x4c, 0xe0, 0xe1, 0xef, - 0xdb, 0x59, 0xa8, 0x05, 0x7f, 0x4f, 0xc4, 0x29, 0xb1, 0xc3, 0x07, 0x4f, 0x93, 0xa1, 0x8e, 0xdf, - 0x62, 0x1e, 0x87, 0x87, 0x8f, 0x18, 0x1c, 0xf7, 0xd4, 0xa0, 0x54, 0x76, 0x2c, 0xbb, 0xd1, 0xf6, - 0x48, 0x48, 0x65, 0x3c, 0x4a, 0xe5, 0x7c, 0x0c, 0x8e, 0x7b, 0x6a, 0xa0, 0x1d, 0x98, 0x12, 0x65, - 0x3c, 0xde, 0x69, 0xe2, 0x88, 0xad, 0x64, 0x71, 0x6d, 0xe7, 0x35, 0x4a, 0x38, 0x42, 0x17, 0xb5, - 0x61, 0xce, 0x76, 0xaa, 0xae, 0x53, 0x6d, 0xb4, 0x7d, 0x7b, 0x8f, 0x84, 0x8f, 0x79, 0x8e, 0xc2, - 0xec, 0x54, 0xb7, 0x53, 0x9c, 0x5b, 0x8b, 0x93, 0xc3, 0xbd, 0x1c, 0xd0, 0x2b, 0x06, 0x9c, 0xaa, - 0xba, 0x8e, 0xcf, 0xde, 0x9d, 0xef, 0x91, 0x73, 0x9e, 0xe7, 0x7a, 0x9c, 0x77, 0xe1, 0x88, 0xbc, - 0x99, 0x4f, 0x71, 0x25, 0x89, 0x24, 0x4e, 0xe6, 0x84, 0x5e, 0x84, 0x7c, 0xcb, 0x73, 0xf7, 0xec, - 0x1a, 0xf1, 0x44, 0xec, 0xdc, 0x7a, 0x1a, 0x79, 0x30, 0x36, 0x05, 0xcd, 0x70, 0xeb, 0x91, 0x25, - 0x58, 0xf1, 0x33, 0xdf, 0x28, 0xc0, 0x74, 0x14, 0x1d, 0x7d, 0x02, 0xa0, 0xe5, 0xb9, 0x4d, 0x12, - 0xec, 0x12, 0xf5, 0x28, 0xe3, 0xd2, 0xa8, 0xe9, 0x16, 0x24, 0x3d, 0x19, 0xbd, 0x42, 0xb7, 0x8b, - 0xb0, 0x14, 0x6b, 0x1c, 0x91, 0x07, 0x13, 0x37, 0xb9, 0xda, 0x15, 0x56, 0xc8, 0x73, 0xa9, 0xd8, - 0x4c, 0x82, 0x33, 0x7b, 0x4d, 0x20, 0x8a, 0xb0, 0x64, 0x84, 0xb6, 0x21, 0x7b, 0x8b, 0x6c, 0xa7, - 0xf3, 0x84, 0xf9, 0x3a, 0x11, 0xa7, 0x99, 0xf2, 0x44, 0xb7, 0x53, 0xcc, 0x5e, 0x27, 0xdb, 0x98, - 0x12, 0xa7, 0xed, 0xaa, 0xf1, 0x7b, 0x78, 0xb1, 0x55, 0x8c, 0xd8, 0xae, 0xc8, 0xa5, 0x3e, 0x6f, - 0x97, 0x28, 0xc2, 0x92, 0x11, 0x7a, 0x11, 0x0a, 0xb7, 0xac, 0x3d, 0xb2, 0xe3, 0xb9, 0x4e, 0x20, - 0x42, 0xa6, 0x46, 0x8c, 0xd3, 0xbf, 0x2e, 0xc9, 0x09, 0xbe, 0x4c, 0xbd, 0xab, 0x42, 0x1c, 0xb2, - 0x43, 0x7b, 0x90, 0x77, 0xc8, 0x2d, 0x4c, 0x1a, 0x76, 0x35, 0x9d, 0xb8, 0xf8, 0x4b, 0x82, 0x9a, - 0xe0, 0xcc, 0xf4, 0x9e, 0x2c, 0xc3, 0x8a, 0x17, 0x1d, 0xcb, 0x1b, 0xee, 0xb6, 0xd8, 0xa8, 0x46, - 0x1c, 0x4b, 0x75, 0x32, 0xe5, 0x63, 0x79, 0xd1, 0xdd, 0xc6, 0x94, 0x38, 0x5d, 0x23, 0x55, 0x15, - 0xaf, 0x23, 0xb6, 0xa9, 0x4b, 0xe9, 0xc6, 0x29, 0xf1, 0x35, 0x12, 0x96, 0x62, 0x8d, 0x23, 0xed, - 0xdb, 0xba, 0x70, 0x56, 0x8a, 0x8d, 0x6a, 0xc4, 0xbe, 0x8d, 0xba, 0x3e, 0x79, 0xdf, 0xca, 0x32, - 0xac, 0x78, 0x51, 0xbe, 0xb6, 0xf0, 0xfc, 0xa5, 0xb3, 0x55, 0x45, 0xfd, 0x88, 0x9c, 0xaf, 0x2c, - 0xc3, 0x8a, 0x97, 0xf9, 0xe5, 0x71, 0x98, 0xd2, 0xf3, 0x8d, 0x0d, 0x60, 0x23, 0x28, 0xbb, 0x38, - 0x33, 0x8c, 0x5d, 0x4c, 0x0f, 0x42, 0xda, 0x1d, 0x87, 0x74, 0xc2, 0xac, 0xa5, 0x66, 0x16, 0x86, - 0x07, 0x21, 0xad, 0xd0, 0xc7, 0x11, 0xa6, 0x43, 0x84, 0x3d, 0x50, 0xe3, 0x8a, 0x9b, 0x1f, 0xb9, - 0xa8, 0x71, 0x15, 0x31, 0x28, 0x1e, 0x05, 0x08, 0xf3, 0x6e, 0x89, 0xbb, 0x2f, 0x65, 0xb5, 0x69, - 0xf9, 0xc0, 0x34, 0x2c, 0xf4, 0x10, 0x8c, 0x53, 0x05, 0x4d, 0x6a, 0xe2, 0xa5, 0xae, 0x3a, 0x6d, - 0x9e, 0x67, 0xa5, 0x58, 0x40, 0xd1, 0x93, 0xd4, 0x96, 0x0a, 0xd5, 0xaa, 0x78, 0x80, 0x3b, 0x1f, - 0xda, 0x52, 0x21, 0x0c, 0x47, 0x30, 0xa9, 0xe8, 0x84, 0x6a, 0x41, 0x36, 0x83, 0x35, 0xd1, 0x99, - 0x6a, 0xc4, 0x1c, 0xc6, 0xbc, 0x1f, 0x31, 0xad, 0xc9, 0x66, 0x5e, 0x4e, 0xf3, 0x7e, 0xc4, 0xe0, - 0xb8, 0xa7, 0x06, 0x6d, 0x8c, 0xb8, 0xb6, 0x9b, 0xe4, 0xd1, 0x9d, 0x7d, 0x2e, 0xdc, 0x5e, 0xd3, - 0x4f, 0x04, 0x53, 0x6c, 0xe8, 0xdf, 0x9f, 0x5e, 0xee, 0xbc, 0xc1, 0x8f, 0x04, 0xa3, 0x19, 0xef, - 0x1f, 0x85, 0xe9, 0xe8, 0x5e, 0x99, 0xba, 0x7f, 0xfe, 0xaf, 0xb3, 0x70, 0xf2, 0x52, 0xdd, 0x76, - 0x6e, 0xc7, 0x1c, 0xdb, 0x49, 0x39, 0x6d, 0x8d, 0x61, 0x73, 0xda, 0x86, 0x4f, 0x7e, 0x44, 0xd2, - 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, 0xfb, 0xad, 0x1a, 0xb7, - 0x5e, 0xad, 0x86, 0x28, 0x0d, 0x99, 0xca, 0x15, 0xed, 0x8f, 0xa8, 0x8b, 0x7a, 0x1b, 0xbf, 0x54, - 0x3a, 0x80, 0x2b, 0x1f, 0xf1, 0x77, 0x88, 0x16, 0xdc, 0x7f, 0x10, 0x2a, 0x3e, 0x50, 0xfc, 0xc5, - 0xcb, 0xf0, 0xf6, 0x43, 0x19, 0x0d, 0x35, 0x5b, 0x3e, 0x65, 0x40, 0x81, 0xbb, 0x4f, 0x31, 0xd9, - 0xa1, 0x5b, 0x85, 0xd5, 0xb2, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, 0x03, 0x5e, 0x69, 0x73, - 0x4d, 0x40, 0xb0, 0x86, 0x45, 0x37, 0xe3, 0x9b, 0xb6, 0x53, 0x13, 0xc3, 0xa4, 0x36, 0xe3, 0xe7, - 0x6c, 0xa7, 0x86, 0x19, 0x44, 0x6d, 0xd7, 0xd9, 0xbe, 0x6e, 0x8d, 0x37, 0x0c, 0x98, 0x66, 0xef, - 0x1c, 0xc3, 0xa3, 0xc7, 0x13, 0x2a, 0xa6, 0x85, 0x8b, 0x71, 0x26, 0x1a, 0xd3, 0x72, 0xa7, 0x53, - 0x9c, 0xe4, 0x2f, 0x23, 0xa3, 0x21, 0x2e, 0x1f, 0x14, 0xfe, 0x0a, 0x16, 0x79, 0x93, 0x19, 0xfa, - 0x38, 0xad, 0xfc, 0x79, 0x15, 0x49, 0x04, 0x87, 0xf4, 0xcc, 0x97, 0x60, 0x4a, 0x7f, 0xb0, 0x80, - 0x9e, 0x80, 0xc9, 0x96, 0xed, 0xd4, 0xa3, 0x0f, 0xdb, 0x94, 0x4f, 0x77, 0x33, 0x04, 0x61, 0x1d, - 0x8f, 0x55, 0x73, 0xc3, 0x6a, 0x31, 0x57, 0xf0, 0xa6, 0xab, 0x57, 0x0b, 0xff, 0x98, 0x7f, 0x92, - 0x85, 0x93, 0x09, 0x0f, 0x63, 0xd0, 0xab, 0x06, 0x8c, 0xb3, 0x28, 0x7d, 0x19, 0xb5, 0xf2, 0x42, - 0xea, 0x8f, 0x6f, 0x96, 0xd8, 0x63, 0x00, 0x31, 0x8f, 0xd5, 0xf6, 0xc9, 0x0b, 0xb1, 0x60, 0x8e, - 0x7e, 0xcb, 0x80, 0x49, 0x4b, 0x5b, 0x6a, 0x3c, 0x90, 0x67, 0x3b, 0x7d, 0x61, 0x7a, 0x56, 0x96, - 0x16, 0x80, 0x18, 0x2e, 0x24, 0x5d, 0x96, 0xc5, 0xf7, 0xc2, 0xa4, 0xd6, 0x84, 0x61, 0x56, 0xc8, - 0xe2, 0x33, 0x30, 0x3b, 0xd2, 0x0a, 0xfb, 0x00, 0x0c, 0x9b, 0x3b, 0x8e, 0x2a, 0xac, 0x5b, 0xfa, - 0xe3, 0x63, 0xd5, 0xe3, 0xe2, 0xf5, 0xb1, 0x80, 0x9a, 0xdb, 0x30, 0x1b, 0x3f, 0x5c, 0xa5, 0x7e, - 0x6f, 0xfd, 0x6e, 0x18, 0x32, 0xdb, 0x9b, 0xf9, 0xed, 0x0c, 0x4c, 0x88, 0xd7, 0x75, 0x77, 0x21, - 0x76, 0xf7, 0x66, 0xe4, 0x52, 0x67, 0x2d, 0x95, 0x47, 0x81, 0x7d, 0x03, 0x77, 0xfd, 0x58, 0xe0, - 0xee, 0x73, 0xe9, 0xb0, 0x3b, 0x38, 0x6a, 0xf7, 0x8d, 0x31, 0x98, 0x89, 0xbd, 0x56, 0xa4, 0xa6, - 0x4a, 0x4f, 0xb0, 0xda, 0xd5, 0x54, 0x1f, 0x44, 0xaa, 0xb8, 0xf2, 0x83, 0xe3, 0xd6, 0xfc, 0x48, - 0x52, 0xcd, 0x2b, 0xa9, 0xe5, 0xe3, 0xfe, 0x79, 0x7e, 0xcd, 0x61, 0xe3, 0xb0, 0xfe, 0xd9, 0x80, - 0x7b, 0xfb, 0x3e, 0x6a, 0x65, 0x39, 0x51, 0xbc, 0x28, 0x54, 0x2c, 0xc8, 0x94, 0x9f, 0xee, 0xab, - 0x1b, 0x96, 0x78, 0x1a, 0x8b, 0x38, 0x7b, 0xf4, 0x38, 0x4c, 0x31, 0xd5, 0x4a, 0xf7, 0x94, 0x80, - 0xb4, 0x84, 0x83, 0x98, 0xb9, 0x0a, 0x2b, 0x5a, 0x39, 0x8e, 0x60, 0x99, 0x5f, 0x32, 0x60, 0xa1, - 0x5f, 0x86, 0x8c, 0x01, 0x0e, 0x86, 0xbf, 0x10, 0x0b, 0x2e, 0x2e, 0xf6, 0x04, 0x17, 0xc7, 0x8e, - 0x86, 0x32, 0x8e, 0x58, 0x3b, 0x95, 0x65, 0x0f, 0x89, 0x9d, 0xfd, 0xac, 0x01, 0xa7, 0xfb, 0xac, - 0xa6, 0x9e, 0x20, 0x73, 0xe3, 0xc8, 0x41, 0xe6, 0x99, 0x41, 0x83, 0xcc, 0xcd, 0xef, 0x66, 0x61, - 0x56, 0xc8, 0x13, 0xda, 0x57, 0x4f, 0x46, 0x42, 0xb4, 0xdf, 0x11, 0x0b, 0xd1, 0x9e, 0x8f, 0xe3, - 0xff, 0x3c, 0x3e, 0xfb, 0xad, 0x15, 0x9f, 0xfd, 0xd3, 0x0c, 0x9c, 0x4a, 0x4c, 0xdc, 0x81, 0x3e, - 0x9d, 0xa0, 0x1a, 0xae, 0xa7, 0x9c, 0x21, 0x64, 0x40, 0xe5, 0x30, 0x6a, 0x50, 0xf3, 0x17, 0xf4, - 0x60, 0x62, 0xbe, 0xd5, 0xef, 0x1c, 0x43, 0xae, 0x93, 0x21, 0xe3, 0x8a, 0xcd, 0x5f, 0xcb, 0xc2, - 0xc3, 0x83, 0x12, 0x7a, 0x8b, 0xbe, 0x3b, 0xf1, 0x23, 0xef, 0x4e, 0xee, 0x92, 0xda, 0x3e, 0x96, - 0x27, 0x28, 0xdd, 0xac, 0x52, 0x7b, 0xbd, 0xf3, 0x73, 0xa0, 0xdb, 0xc4, 0x09, 0x6a, 0xda, 0xc9, - 0x74, 0x9e, 0xe1, 0x56, 0x38, 0x51, 0xe1, 0xc5, 0x77, 0x3a, 0xc5, 0x39, 0x91, 0xe2, 0xaf, 0x42, - 0x02, 0x51, 0x88, 0x65, 0x25, 0xf4, 0x30, 0xe4, 0x3d, 0x0e, 0x95, 0x91, 0xf6, 0xe2, 0x4a, 0x96, - 0x97, 0x61, 0x05, 0x45, 0x9f, 0xd4, 0x6c, 0xe1, 0xb1, 0xe3, 0xca, 0x92, 0x70, 0xd0, 0x4d, 0xf3, - 0x0b, 0x90, 0xf7, 0x65, 0x62, 0x4e, 0x7e, 0x1d, 0xf0, 0xd8, 0x80, 0x0f, 0x38, 0xe8, 0xd1, 0x49, - 0x66, 0xe9, 0xe4, 0xed, 0x53, 0x39, 0x3c, 0x15, 0x49, 0x64, 0xaa, 0x53, 0x0b, 0xf7, 0x31, 0x42, - 0xef, 0x89, 0x45, 0xfb, 0xee, 0x13, 0x9b, 0xea, 0x13, 0xd1, 0xa3, 0x6f, 0x25, 0x04, 0x61, 0x1d, - 0xcf, 0xfc, 0x9e, 0x01, 0x93, 0x62, 0x90, 0xef, 0xc2, 0x53, 0x94, 0x1b, 0xd1, 0xa7, 0x28, 0xe7, - 0x52, 0xd9, 0x72, 0xfa, 0xbc, 0x43, 0xb9, 0x01, 0x53, 0x7a, 0xca, 0x27, 0xf4, 0xbc, 0xb6, 0x65, - 0x1a, 0xa3, 0x24, 0x51, 0x91, 0x9b, 0x6a, 0xb8, 0x9d, 0x9a, 0xbf, 0x93, 0x57, 0xbd, 0xc8, 0xdc, - 0x17, 0xfa, 0xd4, 0x35, 0x0e, 0x9c, 0xba, 0xfa, 0xcc, 0xc9, 0xa4, 0x3f, 0x73, 0xae, 0x40, 0x5e, - 0xee, 0x6b, 0x42, 0xfb, 0x3f, 0xa8, 0x07, 0xe7, 0x51, 0x13, 0x82, 0x12, 0xd3, 0xe6, 0x3b, 0x3b, - 0xa1, 0xa9, 0x31, 0x54, 0xfb, 0xad, 0x22, 0x83, 0x5e, 0x84, 0xc9, 0x5b, 0xae, 0x77, 0xb3, 0xe1, - 0x5a, 0x2c, 0x53, 0x2f, 0xa4, 0x71, 0x1f, 0xa4, 0xfc, 0x64, 0x3c, 0x42, 0xfa, 0x7a, 0x48, 0x1f, - 0xeb, 0xcc, 0x50, 0x09, 0x66, 0x9a, 0xb6, 0x83, 0x89, 0x55, 0x53, 0x2f, 0x4e, 0xc6, 0x78, 0x2a, - 0x51, 0x69, 0x1b, 0x6f, 0x44, 0xc1, 0x38, 0x8e, 0x8f, 0x3e, 0x0e, 0x79, 0x5f, 0x24, 0x50, 0x4a, - 0xe7, 0xe6, 0x4e, 0x1d, 0x35, 0x39, 0xd1, 0xb0, 0xef, 0x64, 0x09, 0x56, 0x0c, 0xd1, 0x3a, 0xcc, - 0x7b, 0x22, 0x45, 0x49, 0xe4, 0x3b, 0x1f, 0x7c, 0x59, 0xb3, 0x8c, 0x95, 0x38, 0x01, 0x8e, 0x13, - 0x6b, 0x51, 0xe3, 0x87, 0xe5, 0x2e, 0xe3, 0x57, 0x09, 0x9a, 0xf7, 0x9d, 0x4d, 0xf8, 0x1a, 0x16, - 0xd0, 0x83, 0x5e, 0x30, 0xe5, 0x47, 0x78, 0xc1, 0x54, 0x81, 0x53, 0x71, 0x10, 0x4b, 0xa4, 0xc2, - 0x72, 0xb7, 0x68, 0x4a, 0x67, 0x33, 0x09, 0x09, 0x27, 0xd7, 0x45, 0xd7, 0xa1, 0xe0, 0x11, 0x76, - 0x2c, 0x29, 0xc9, 0x58, 0x81, 0xa1, 0xa3, 0xa2, 0xb0, 0x24, 0x80, 0x43, 0x5a, 0x74, 0xdc, 0xad, - 0x68, 0x36, 0xcd, 0x2b, 0x29, 0x7e, 0xa9, 0x4c, 0x8c, 0x7d, 0x9f, 0x04, 0x47, 0xe6, 0x9b, 0xd3, - 0x70, 0x22, 0xe2, 0x92, 0x40, 0x0f, 0x42, 0x8e, 0x65, 0x96, 0x61, 0xdb, 0x43, 0x3e, 0xdc, 0xc2, - 0x78, 0xe7, 0x70, 0x18, 0xfa, 0x9c, 0x01, 0x33, 0xad, 0x88, 0xf3, 0x56, 0xee, 0x9c, 0x23, 0x5e, - 0x0f, 0x46, 0x3d, 0xc2, 0x5a, 0x1e, 0xea, 0x28, 0x33, 0x1c, 0xe7, 0x4e, 0x17, 0xa0, 0x08, 0x2d, - 0x6c, 0x10, 0x8f, 0x61, 0x0b, 0xd3, 0x48, 0x91, 0x58, 0x89, 0x82, 0x71, 0x1c, 0x9f, 0x8e, 0x30, - 0x6b, 0xdd, 0x28, 0x9f, 0x30, 0x2a, 0x49, 0x02, 0x38, 0xa4, 0x85, 0x9e, 0x81, 0x69, 0x91, 0x44, - 0x71, 0xd3, 0xad, 0x5d, 0xb0, 0xfc, 0x5d, 0x71, 0x26, 0x50, 0x67, 0x98, 0x95, 0x08, 0x14, 0xc7, - 0xb0, 0x59, 0xdb, 0xc2, 0x4c, 0x95, 0x8c, 0xc0, 0x78, 0x34, 0x4d, 0xf7, 0x4a, 0x14, 0x8c, 0xe3, - 0xf8, 0xe8, 0x11, 0x6d, 0xdf, 0xe7, 0xd7, 0x7b, 0x6a, 0x37, 0x48, 0xd8, 0xfb, 0x4b, 0x30, 0xd3, - 0x66, 0x47, 0xa8, 0x9a, 0x04, 0x8a, 0xf5, 0xa8, 0x18, 0x5e, 0x8d, 0x82, 0x71, 0x1c, 0x1f, 0x3d, - 0x05, 0x27, 0x3c, 0xba, 0xbb, 0x29, 0x02, 0xfc, 0xce, 0x4f, 0x5d, 0xe9, 0x60, 0x1d, 0x88, 0xa3, - 0xb8, 0xe8, 0x59, 0x98, 0x0b, 0x73, 0x8e, 0x49, 0x02, 0xfc, 0x12, 0x50, 0xa5, 0xd3, 0x29, 0xc5, - 0x11, 0x70, 0x6f, 0x1d, 0xf4, 0x4b, 0x30, 0xab, 0xf5, 0xc4, 0x9a, 0x53, 0x23, 0xb7, 0x45, 0x5e, - 0x28, 0xf6, 0x45, 0x85, 0x95, 0x18, 0x0c, 0xf7, 0x60, 0xa3, 0xf7, 0xc1, 0x74, 0xd5, 0x6d, 0x34, - 0xd8, 0x1e, 0xc7, 0x53, 0x44, 0xf3, 0x04, 0x50, 0x3c, 0x55, 0x56, 0x04, 0x82, 0x63, 0x98, 0xe8, - 0x22, 0x20, 0x77, 0x9b, 0xda, 0x34, 0xa4, 0xf6, 0x2c, 0xff, 0x28, 0x2a, 0x55, 0xf1, 0x27, 0xa2, - 0x81, 0xcd, 0x97, 0x7b, 0x30, 0x70, 0x42, 0x2d, 0x96, 0x8d, 0x47, 0x7b, 0x08, 0x36, 0x9d, 0xc6, - 0xe7, 0x7c, 0xe2, 0x07, 0xfe, 0x43, 0x5f, 0x81, 0x79, 0x30, 0xce, 0xe3, 0xcc, 0xd3, 0xc9, 0x04, - 0xa5, 0x67, 0x8b, 0x0d, 0x75, 0x04, 0x2f, 0xc5, 0x82, 0x13, 0xfa, 0x04, 0x14, 0xb6, 0x65, 0xea, - 0xf0, 0x85, 0xd9, 0x34, 0xf4, 0x62, 0x2c, 0x0b, 0x7e, 0x78, 0xa0, 0x55, 0x00, 0x1c, 0xb2, 0x44, - 0x0f, 0xc1, 0xe4, 0x85, 0xcd, 0x92, 0x9a, 0x85, 0x73, 0x6c, 0xf4, 0xc7, 0x68, 0x15, 0xac, 0x03, - 0xe8, 0x0a, 0x53, 0xf6, 0x12, 0x62, 0x43, 0x1c, 0xea, 0xdb, 0x5e, 0xf3, 0x87, 0x62, 0xb3, 0x5b, - 0x4c, 0x5c, 0x59, 0x38, 0x19, 0xc3, 0x16, 0xe5, 0x58, 0x61, 0xa0, 0x17, 0x60, 0x52, 0xe8, 0x0b, - 0xb6, 0x37, 0xcd, 0x1f, 0xed, 0x91, 0x21, 0x0e, 0x49, 0x60, 0x9d, 0x1e, 0xbb, 0x9c, 0x62, 0x19, - 0x95, 0xc9, 0xf9, 0x76, 0xa3, 0xb1, 0x70, 0x8a, 0xed, 0x9b, 0xe1, 0xe5, 0x54, 0x08, 0xc2, 0x3a, - 0x1e, 0x7a, 0x4c, 0x06, 0x5c, 0xbc, 0x2d, 0x72, 0x5b, 0xa7, 0x02, 0x2e, 0x94, 0x95, 0xdb, 0x27, - 0x0e, 0xf9, 0xf4, 0x21, 0x91, 0x0e, 0xdb, 0xb0, 0x28, 0x4d, 0xac, 0xde, 0x45, 0xb2, 0xb0, 0x10, - 0x71, 0x2e, 0x2c, 0x5e, 0xef, 0x8b, 0x89, 0x0f, 0xa0, 0x82, 0xb6, 0x21, 0x6b, 0x35, 0xb6, 0x17, - 0xee, 0x4d, 0xc3, 0x56, 0x54, 0x1f, 0x39, 0xe6, 0xb1, 0x43, 0xa5, 0xf5, 0x32, 0xa6, 0xc4, 0xcd, - 0x57, 0x32, 0xca, 0x99, 0xaf, 0x32, 0x64, 0xbe, 0xa4, 0xcf, 0x6a, 0x23, 0x8d, 0x8f, 0x78, 0xf6, - 0xe4, 0xd7, 0xe7, 0x0a, 0x29, 0x71, 0x4e, 0xb7, 0xd4, 0x3a, 0x4e, 0x25, 0xfd, 0x49, 0x34, 0xfb, - 0x27, 0x3f, 0x04, 0x46, 0x57, 0xb1, 0xd9, 0x9d, 0x50, 0xbe, 0xab, 0x58, 0x04, 0x81, 0x07, 0x39, - 0xdb, 0x0f, 0x6c, 0x37, 0xc5, 0x07, 0x71, 0xb1, 0xb4, 0x99, 0x2c, 0xde, 0x96, 0x01, 0x30, 0x67, - 0x45, 0x79, 0x3a, 0x75, 0xdb, 0xb9, 0x2d, 0x9a, 0x7f, 0x25, 0xf5, 0xd0, 0x00, 0xce, 0x93, 0x01, - 0x30, 0x67, 0x85, 0x6e, 0xf0, 0x99, 0x96, 0xce, 0x07, 0x5b, 0xe3, 0xdf, 0x61, 0x8e, 0xce, 0x38, - 0xca, 0xcb, 0x6f, 0xda, 0xc2, 0x86, 0x19, 0x91, 0x57, 0x65, 0x63, 0x2d, 0x89, 0x57, 0x65, 0x63, - 0x0d, 0x53, 0x26, 0xe8, 0x35, 0x03, 0xc0, 0x52, 0x1f, 0x24, 0x4e, 0xe7, 0x63, 0x14, 0xfd, 0x3e, - 0x70, 0xcc, 0x43, 0xe4, 0x42, 0x28, 0xd6, 0x38, 0xa3, 0x17, 0x61, 0xc2, 0xe2, 0x9f, 0xd2, 0x11, - 0xd1, 0x87, 0xe9, 0x7c, 0x1f, 0x2a, 0x26, 0x01, 0x0b, 0xbb, 0x14, 0x20, 0x2c, 0x19, 0x52, 0xde, - 0x81, 0x67, 0x91, 0x1d, 0xfb, 0xa6, 0x08, 0x43, 0xac, 0x8c, 0x9c, 0x11, 0x9b, 0x12, 0x4b, 0xe2, - 0x2d, 0x40, 0x58, 0x32, 0xe4, 0xdf, 0x00, 0xb5, 0x1c, 0x4b, 0xbd, 0x29, 0x49, 0xe7, 0xe5, 0x91, - 0xfe, 0x4a, 0x45, 0xfb, 0x06, 0xa8, 0xce, 0x08, 0x47, 0xf9, 0x9a, 0x3f, 0xce, 0x02, 0xb0, 0x9f, - 0xfc, 0x9d, 0x73, 0x93, 0xe5, 0xc6, 0xdb, 0x75, 0x6b, 0x62, 0x69, 0xa7, 0xf8, 0x5c, 0x19, 0x44, - 0x22, 0xbc, 0x5d, 0xb7, 0x86, 0x05, 0x13, 0x54, 0x87, 0xb1, 0x96, 0x15, 0xec, 0xa6, 0xff, 0x36, - 0x3a, 0xcf, 0x1f, 0xfc, 0x04, 0xbb, 0x98, 0x31, 0x40, 0x2f, 0x1b, 0x30, 0xc1, 0x5f, 0x47, 0x4b, - 0x0f, 0xf5, 0xc8, 0xd7, 0xb0, 0xb2, 0xcf, 0x96, 0xf8, 0x13, 0x6c, 0x11, 0xe3, 0xa0, 0x54, 0xa3, - 0x28, 0xc5, 0x92, 0xed, 0xe2, 0xab, 0x06, 0x4c, 0xe9, 0xa8, 0x09, 0xd1, 0x09, 0x1f, 0xd1, 0xa3, - 0x13, 0xd2, 0xec, 0x0f, 0x3d, 0xd0, 0xe1, 0xdf, 0x0c, 0xd0, 0xbe, 0x9c, 0x1a, 0xc6, 0x26, 0x1a, - 0x03, 0xc7, 0x26, 0x66, 0x86, 0x8c, 0x4d, 0xcc, 0x0e, 0x15, 0x9b, 0x38, 0x36, 0x7c, 0x6c, 0x62, - 0xae, 0x7f, 0x6c, 0xa2, 0xf9, 0xba, 0x01, 0x73, 0x3d, 0xfb, 0x61, 0xfc, 0x0b, 0xf5, 0xc6, 0x80, - 0x5f, 0xa8, 0x5f, 0x85, 0x59, 0x91, 0xbb, 0xb9, 0xd2, 0x6a, 0xd8, 0x89, 0xef, 0xd6, 0xb7, 0x62, - 0x70, 0xdc, 0x53, 0xc3, 0xfc, 0x0b, 0x03, 0x26, 0xb5, 0xd7, 0x6e, 0xb4, 0x1d, 0xec, 0x55, 0xa0, - 0x10, 0x23, 0x4c, 0x5b, 0xcd, 0x6e, 0x04, 0x38, 0x8c, 0x5f, 0x4e, 0xd5, 0xb5, 0x3c, 0xa1, 0xe1, - 0xe5, 0x14, 0x2d, 0xc5, 0x02, 0xca, 0x33, 0x40, 0x92, 0x16, 0xeb, 0xf4, 0xac, 0x9e, 0x01, 0x92, - 0xb4, 0x30, 0x83, 0x30, 0x76, 0xd4, 0x8e, 0x14, 0x61, 0xab, 0x5a, 0x96, 0x6c, 0xcb, 0x0b, 0x30, - 0x87, 0xa1, 0x33, 0x90, 0x25, 0x4e, 0x4d, 0x1c, 0x7a, 0xd5, 0x97, 0xa9, 0xce, 0x39, 0x35, 0x4c, - 0xcb, 0xcd, 0xcb, 0x30, 0x55, 0x21, 0x55, 0x8f, 0x04, 0xcf, 0x91, 0xfd, 0x81, 0x3f, 0x75, 0x45, - 0x67, 0x7b, 0xec, 0x53, 0x57, 0xb4, 0x3a, 0x2d, 0x37, 0xff, 0xc8, 0x80, 0x58, 0x2a, 0x77, 0xcd, - 0x51, 0x6d, 0xf4, 0x75, 0x54, 0xeb, 0xbe, 0xd1, 0xcc, 0x81, 0xbe, 0xd1, 0x8b, 0x80, 0x9a, 0x74, - 0x29, 0x44, 0x3e, 0x5c, 0x20, 0xfc, 0x0d, 0xe1, 0xdb, 0xda, 0x1e, 0x0c, 0x9c, 0x50, 0xcb, 0xfc, - 0x43, 0x2e, 0xac, 0x9e, 0xdc, 0xfd, 0xf0, 0x0e, 0x68, 0x43, 0x8e, 0x91, 0x12, 0x4e, 0x97, 0xcd, - 0xd1, 0x16, 0x77, 0x6f, 0x8e, 0x8a, 0x70, 0x20, 0xc5, 0x92, 0x67, 0xdc, 0xcc, 0xef, 0x72, 0x59, - 0xb5, 0xec, 0xef, 0x03, 0xc8, 0xda, 0x8c, 0xca, 0x7a, 0x21, 0xad, 0xbd, 0x32, 0x59, 0x46, 0xb4, - 0x04, 0xd0, 0x22, 0x5e, 0x95, 0x38, 0x81, 0x8c, 0xa6, 0xce, 0x89, 0xd7, 0x27, 0xaa, 0x14, 0x6b, - 0x18, 0xe6, 0xcb, 0x06, 0xcc, 0x56, 0x02, 0xbb, 0x7a, 0xd3, 0x76, 0xf8, 0x6b, 0xaa, 0x1d, 0xbb, - 0x4e, 0x4f, 0x29, 0x44, 0x7c, 0xc5, 0x89, 0xbb, 0xc1, 0xd4, 0x56, 0x2c, 0x3f, 0xde, 0x24, 0xe1, - 0xa8, 0x04, 0x33, 0xd2, 0xdb, 0x2e, 0x7d, 0x97, 0xfc, 0x15, 0xa8, 0xf2, 0x95, 0xac, 0x46, 0xc1, - 0x38, 0x8e, 0x6f, 0x7e, 0x12, 0x26, 0xb5, 0xfd, 0x95, 0x6d, 0x45, 0xb7, 0xad, 0x6a, 0x10, 0x5f, - 0xc2, 0xe7, 0x68, 0x21, 0xe6, 0x30, 0xe6, 0x62, 0xe5, 0xe1, 0xb6, 0xb1, 0x25, 0x2c, 0x82, 0x6c, - 0x05, 0x94, 0x12, 0xf3, 0x48, 0x9d, 0xdc, 0x96, 0x19, 0x49, 0x25, 0x31, 0x4c, 0x0b, 0x31, 0x87, - 0x99, 0x8f, 0x40, 0x5e, 0xbe, 0xd5, 0x67, 0x0f, 0x5e, 0xa5, 0xfb, 0x4f, 0x7f, 0xf0, 0xea, 0x7a, - 0x01, 0x66, 0x10, 0xf3, 0x1a, 0xe4, 0x65, 0x4a, 0x81, 0xc3, 0xb1, 0xe9, 0xaa, 0xf2, 0x1d, 0xfb, - 0x82, 0xeb, 0x07, 0x32, 0x0f, 0x02, 0xbf, 0x12, 0xb8, 0xb4, 0xc6, 0xca, 0xb0, 0x82, 0x9a, 0x8f, - 0xc1, 0x8c, 0xf2, 0xf5, 0x0f, 0x9a, 0x64, 0xc1, 0xfc, 0x46, 0x16, 0xa6, 0x22, 0xdf, 0x18, 0x3e, - 0x7c, 0x42, 0x0e, 0xbe, 0xce, 0x13, 0xbc, 0xfa, 0xd9, 0x21, 0xbd, 0xfa, 0xfa, 0x35, 0xca, 0xd8, - 0xf1, 0x5e, 0xa3, 0xe4, 0xd2, 0xb9, 0x46, 0x09, 0x60, 0x42, 0xdc, 0xc3, 0x09, 0x3b, 0x7a, 0x23, - 0xa5, 0xe4, 0x4a, 0x22, 0xf5, 0x06, 0xb3, 0x62, 0xa5, 0x46, 0x94, 0xac, 0xcc, 0xaf, 0xe6, 0x60, - 0x3a, 0x9a, 0x6e, 0x69, 0x80, 0x91, 0x7c, 0xa4, 0x67, 0x24, 0x87, 0xf4, 0x6a, 0x66, 0x47, 0xf5, - 0x6a, 0x8e, 0x8d, 0xea, 0xd5, 0xcc, 0x1d, 0xc1, 0xab, 0xd9, 0xeb, 0x93, 0x1c, 0x1f, 0xd8, 0x27, - 0xf9, 0xb4, 0x8a, 0xe4, 0x99, 0x88, 0x5c, 0x7d, 0x87, 0x91, 0x3c, 0x28, 0x3a, 0x0c, 0x2b, 0x6e, - 0x2d, 0x31, 0x22, 0x2a, 0x7f, 0x88, 0xf7, 0xc6, 0x4b, 0x0c, 0xbc, 0x19, 0xfe, 0xe2, 0xe4, 0x6d, - 0x43, 0x04, 0xdd, 0xc4, 0xae, 0x9a, 0x61, 0xb0, 0xab, 0x66, 0xf6, 0x19, 0xcc, 0xe8, 0x77, 0x3f, - 0x99, 0x93, 0x58, 0xff, 0x0c, 0x66, 0xec, 0x3b, 0xa1, 0x71, 0x7c, 0xf3, 0xe3, 0x70, 0x2a, 0xf1, - 0xcc, 0xc6, 0x9c, 0x58, 0x4c, 0xd1, 0x93, 0x9a, 0x40, 0xd0, 0xc4, 0x88, 0x65, 0xe3, 0x5d, 0xbc, - 0xde, 0x17, 0x13, 0x1f, 0x40, 0xc5, 0xfc, 0x4a, 0x16, 0xa6, 0xa3, 0xdf, 0x50, 0x42, 0xb7, 0x94, - 0x87, 0x27, 0x15, 0xe7, 0x12, 0x27, 0xab, 0xa5, 0xf0, 0xe9, 0xeb, 0xae, 0xbd, 0xc5, 0xe6, 0xd7, - 0xb6, 0xca, 0x27, 0x74, 0x7c, 0x8c, 0x85, 0x9f, 0x54, 0xb0, 0x63, 0x9f, 0x49, 0x0a, 0xdf, 0x51, - 0x88, 0x83, 0x59, 0xea, 0xdc, 0xc3, 0x97, 0x11, 0x8a, 0x15, 0xd6, 0xd8, 0x52, 0xdd, 0xb2, 0x47, - 0x3c, 0x7b, 0xc7, 0x56, 0xdf, 0x7f, 0x64, 0x3b, 0xf7, 0x35, 0x51, 0x86, 0x15, 0xd4, 0x7c, 0x39, - 0x03, 0xe1, 0xd7, 0x6e, 0xd9, 0x87, 0x46, 0x7c, 0xcd, 0x08, 0x16, 0xc3, 0x76, 0x71, 0xd4, 0xaf, - 0xf9, 0x84, 0x14, 0x45, 0x94, 0xa5, 0x56, 0x82, 0x23, 0x1c, 0x7f, 0x06, 0x5f, 0xb9, 0xb5, 0x60, - 0x26, 0xf6, 0xba, 0x34, 0xf5, 0x50, 0xf6, 0x1f, 0x65, 0xa1, 0xa0, 0xde, 0xe7, 0xa2, 0xf7, 0x46, - 0x3c, 0x12, 0x85, 0xf2, 0xdb, 0xb5, 0x9c, 0xfa, 0xbb, 0x6e, 0xed, 0x4e, 0xa7, 0x38, 0xa3, 0x90, - 0x63, 0xde, 0x85, 0x33, 0x90, 0x6d, 0x7b, 0x8d, 0xf8, 0x91, 0xe3, 0x2a, 0x5e, 0xc7, 0xb4, 0x1c, - 0xdd, 0x8e, 0xbb, 0x04, 0x36, 0x52, 0x7a, 0x53, 0xcc, 0x6d, 0xf3, 0xfe, 0xae, 0x00, 0xaa, 0x25, - 0xb7, 0xdd, 0xda, 0x7e, 0x3c, 0x07, 0x7f, 0xd9, 0xad, 0xed, 0x63, 0x06, 0x41, 0xcf, 0xc0, 0x74, - 0x60, 0x37, 0x89, 0xdb, 0x0e, 0xf4, 0x6f, 0x89, 0x66, 0xc3, 0xeb, 0xc7, 0xad, 0x08, 0x14, 0xc7, - 0xb0, 0xa9, 0x96, 0xbd, 0xe1, 0xbb, 0x0e, 0x4b, 0xac, 0x37, 0x1e, 0xbd, 0xab, 0xb8, 0x58, 0xb9, - 0x7c, 0x89, 0x79, 0x46, 0x14, 0x06, 0xc5, 0xb6, 0xd9, 0x63, 0x3c, 0x8f, 0x88, 0xdb, 0xff, 0xd9, - 0x30, 0x55, 0x03, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, 0x54, 0x5a, 0xa6, 0x51, 0xa6, 0xca, - 0x0f, 0x4b, 0xba, 0xb4, 0xec, 0x4e, 0xa7, 0xb8, 0x40, 0x9c, 0xaa, 0x5b, 0xb3, 0x9d, 0xfa, 0x32, - 0x45, 0x5c, 0xc2, 0xd6, 0x2d, 0xa9, 0x6a, 0x54, 0x4d, 0xf3, 0x2a, 0xcc, 0xc4, 0x3a, 0x4c, 0x1e, - 0x11, 0x8d, 0xe4, 0x23, 0xe2, 0x60, 0x69, 0xf3, 0xff, 0xd4, 0x80, 0xb9, 0x9e, 0x2d, 0x60, 0xd0, - 0x97, 0x1a, 0x71, 0x65, 0x94, 0x39, 0xba, 0x32, 0xca, 0x0e, 0xa7, 0x8c, 0xca, 0xdb, 0xdf, 0x7a, - 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, 0xf3, 0xec, 0x3d, 0x2f, 0x77, 0xcf, - 0x1a, 0xdf, 0xea, 0x9e, 0x35, 0xbe, 0xd3, 0x3d, 0x6b, 0x7c, 0xbf, 0x7b, 0xd6, 0xf8, 0xa7, 0xee, - 0x59, 0xe3, 0xf5, 0x1f, 0x9d, 0xbd, 0xe7, 0xf9, 0xa7, 0xc3, 0x09, 0xba, 0x2c, 0x27, 0x28, 0xfb, - 0xf1, 0x2e, 0x39, 0x1d, 0x97, 0x5b, 0x37, 0xeb, 0xcb, 0x74, 0x82, 0x2e, 0xab, 0x12, 0x39, 0x41, - 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xb8, 0xfa, 0x80, 0x9b, 0xae, 0x93, 0x00, 0x00, + 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0x3e, 0x27, 0x36, 0xfc, 0x95, 0x94, 0x76, + 0xbd, 0x5a, 0x4b, 0xbb, 0xdc, 0x4b, 0xed, 0x6e, 0xe2, 0xc4, 0x49, 0x46, 0xe4, 0x15, 0x35, 0xbb, + 0xe4, 0x0c, 0x33, 0x33, 0xd4, 0xae, 0x1c, 0x23, 0xb1, 0x1b, 0xd8, 0x4d, 0x8b, 0x04, 0x71, 0x9b, + 0x04, 0x45, 0x51, 0xb4, 0x48, 0x0b, 0x03, 0xfd, 0x49, 0x9f, 0x82, 0x16, 0x7d, 0x09, 0xd0, 0xa2, + 0xf9, 0x69, 0xfa, 0x90, 0x22, 0x29, 0xd0, 0x26, 0x29, 0x10, 0xb6, 0x56, 0xfa, 0xd2, 0xa2, 0x45, + 0x50, 0x20, 0x45, 0x91, 0x7d, 0x2a, 0xee, 0xef, 0xdc, 0x19, 0x0e, 0x25, 0x52, 0x1c, 0x6d, 0x8c, + 0x36, 0x6f, 0xe4, 0x3d, 0xe7, 0x9e, 0x73, 0xff, 0xcf, 0xb9, 0xe7, 0x9e, 0x73, 0x06, 0xd6, 0x1b, + 0x76, 0xb0, 0xd3, 0xd9, 0x5a, 0xaa, 0xb9, 0xad, 0x65, 0xcb, 0x6b, 0xb8, 0x6d, 0xcf, 0xbd, 0xc1, + 0x7e, 0xbc, 0xcb, 0x73, 0x9b, 0x4d, 0xb7, 0x13, 0xf8, 0xcb, 0xed, 0x9b, 0x8d, 0x65, 0xab, 0x6d, + 0xfb, 0xcb, 0xaa, 0x64, 0xf7, 0x3d, 0x56, 0xb3, 0xbd, 0x63, 0xbd, 0x67, 0xb9, 0x41, 0x1c, 0xe2, + 0x59, 0x01, 0xa9, 0x2f, 0xb5, 0x3d, 0x37, 0x70, 0xd1, 0xd3, 0x21, 0xb5, 0x25, 0x49, 0x8d, 0xfd, + 0xf8, 0x88, 0xac, 0xbb, 0xd4, 0xbe, 0xd9, 0x58, 0xa2, 0xd4, 0x96, 0x54, 0x89, 0xa4, 0xb6, 0xf8, + 0x2e, 0xad, 0x2d, 0x0d, 0xb7, 0xe1, 0x2e, 0x33, 0xa2, 0x5b, 0x9d, 0x6d, 0xf6, 0x8f, 0xfd, 0x61, + 0xbf, 0x38, 0xb3, 0xc5, 0x07, 0x6f, 0x3e, 0xe9, 0x2f, 0xd9, 0x2e, 0x6d, 0xdb, 0xf2, 0x96, 0x15, + 0xd4, 0x76, 0x96, 0x77, 0x7b, 0x5a, 0xb4, 0x68, 0x6a, 0x48, 0x35, 0xd7, 0x23, 0x49, 0x38, 0x8f, + 0x87, 0x38, 0x2d, 0xab, 0xb6, 0x63, 0x3b, 0xc4, 0xdb, 0x0b, 0x7b, 0xdd, 0x22, 0x81, 0x95, 0x54, + 0x6b, 0xb9, 0x5f, 0x2d, 0xaf, 0xe3, 0x04, 0x76, 0x8b, 0xf4, 0x54, 0xf8, 0xbf, 0x87, 0x55, 0xf0, + 0x6b, 0x3b, 0xa4, 0x65, 0xf5, 0xd4, 0x7b, 0xac, 0x5f, 0xbd, 0x4e, 0x60, 0x37, 0x97, 0x6d, 0x27, + 0xf0, 0x03, 0x2f, 0x5e, 0xc9, 0xfc, 0x7a, 0x16, 0x0a, 0xa5, 0xf5, 0x72, 0x35, 0xb0, 0x82, 0x8e, + 0x8f, 0x5e, 0x33, 0x60, 0xaa, 0xe9, 0x5a, 0xf5, 0xb2, 0xd5, 0xb4, 0x9c, 0x1a, 0xf1, 0x16, 0x8c, + 0x07, 0x8c, 0x87, 0x27, 0x1f, 0x5d, 0x5f, 0x1a, 0x65, 0xbe, 0x96, 0x4a, 0xb7, 0x7c, 0x4c, 0x7c, + 0xb7, 0xe3, 0xd5, 0x08, 0x26, 0xdb, 0xe5, 0xf9, 0x6f, 0x75, 0x8b, 0xf7, 0xec, 0x77, 0x8b, 0x53, + 0xeb, 0x1a, 0x27, 0x1c, 0xe1, 0x8b, 0xbe, 0x68, 0xc0, 0x5c, 0xcd, 0x72, 0x2c, 0x6f, 0x6f, 0xd3, + 0xf2, 0x1a, 0x24, 0x78, 0xd6, 0x73, 0x3b, 0xed, 0x85, 0xcc, 0x31, 0xb4, 0xe6, 0x5e, 0xd1, 0x9a, + 0xb9, 0x95, 0x38, 0x3b, 0xdc, 0xdb, 0x02, 0xd6, 0x2e, 0x3f, 0xb0, 0xb6, 0x9a, 0x44, 0x6f, 0x57, + 0xf6, 0x38, 0xdb, 0x55, 0x8d, 0xb3, 0xc3, 0xbd, 0x2d, 0x30, 0x5f, 0xcd, 0xc2, 0x5c, 0x69, 0xbd, + 0xbc, 0xe9, 0x59, 0xdb, 0xdb, 0x76, 0x0d, 0xbb, 0x9d, 0xc0, 0x76, 0x1a, 0xe8, 0x9d, 0x30, 0x61, + 0x3b, 0x0d, 0x8f, 0xf8, 0x3e, 0x9b, 0xc8, 0x42, 0x79, 0x46, 0x10, 0x9d, 0x58, 0xe3, 0xc5, 0x58, + 0xc2, 0xd1, 0x13, 0x30, 0xe9, 0x13, 0x6f, 0xd7, 0xae, 0x91, 0x8a, 0xeb, 0x05, 0x6c, 0xa4, 0x73, + 0xe5, 0x93, 0x02, 0x7d, 0xb2, 0x1a, 0x82, 0xb0, 0x8e, 0x47, 0xab, 0x79, 0xae, 0x1b, 0x08, 0x38, + 0x1b, 0x88, 0x42, 0x58, 0x0d, 0x87, 0x20, 0xac, 0xe3, 0xa1, 0xd7, 0x0d, 0x98, 0xf5, 0x03, 0xbb, + 0x76, 0xd3, 0x76, 0x88, 0xef, 0xaf, 0xb8, 0xce, 0xb6, 0xdd, 0x58, 0xc8, 0xb1, 0x51, 0xbc, 0x34, + 0xda, 0x28, 0x56, 0x63, 0x54, 0xcb, 0xf3, 0xfb, 0xdd, 0xe2, 0x6c, 0xbc, 0x14, 0xf7, 0x70, 0x47, + 0xab, 0x30, 0x6b, 0x39, 0x8e, 0x1b, 0x58, 0x81, 0xed, 0x3a, 0x15, 0x8f, 0x6c, 0xdb, 0xb7, 0x17, + 0xc6, 0x58, 0x77, 0x16, 0x44, 0x77, 0x66, 0x4b, 0x31, 0x38, 0xee, 0xa9, 0x61, 0xae, 0xc2, 0x42, + 0xa9, 0xb5, 0x65, 0xf9, 0xbe, 0x55, 0x77, 0xbd, 0xd8, 0x6c, 0x3c, 0x0c, 0xf9, 0x96, 0xd5, 0x6e, + 0xdb, 0x4e, 0x83, 0x4e, 0x47, 0xf6, 0xe1, 0x42, 0x79, 0x6a, 0xbf, 0x5b, 0xcc, 0x6f, 0x88, 0x32, + 0xac, 0xa0, 0xe6, 0x0f, 0x32, 0x30, 0x59, 0x72, 0xac, 0xe6, 0x9e, 0x6f, 0xfb, 0xb8, 0xe3, 0xa0, + 0x8f, 0x42, 0x9e, 0x9e, 0x2e, 0x75, 0x2b, 0xb0, 0xc4, 0x8e, 0x7c, 0xf7, 0x12, 0xdf, 0xec, 0x4b, + 0xfa, 0x66, 0x0f, 0xc7, 0x85, 0x62, 0x2f, 0xed, 0xbe, 0x67, 0xe9, 0xf2, 0xd6, 0x0d, 0x52, 0x0b, + 0x36, 0x48, 0x60, 0x95, 0x91, 0xe8, 0x05, 0x84, 0x65, 0x58, 0x51, 0x45, 0x2e, 0x8c, 0xf9, 0x6d, + 0x52, 0x13, 0x3b, 0x6c, 0x63, 0xc4, 0x95, 0x1c, 0x36, 0xbd, 0xda, 0x26, 0xb5, 0xf2, 0x94, 0x60, + 0x3d, 0x46, 0xff, 0x61, 0xc6, 0x08, 0xdd, 0x82, 0x71, 0x9f, 0x9d, 0x39, 0x62, 0xf3, 0x5c, 0x4e, + 0x8f, 0x25, 0x23, 0x5b, 0x9e, 0x16, 0x4c, 0xc7, 0xf9, 0x7f, 0x2c, 0xd8, 0x99, 0x7f, 0x6f, 0xc0, + 0x49, 0x0d, 0xbb, 0xe4, 0x35, 0x3a, 0x2d, 0xe2, 0x04, 0xe8, 0x01, 0x18, 0x73, 0xac, 0x16, 0x11, + 0x1b, 0x45, 0x35, 0xf9, 0x92, 0xd5, 0x22, 0x98, 0x41, 0xd0, 0x83, 0x90, 0xdb, 0xb5, 0x9a, 0x1d, + 0xc2, 0x06, 0xa9, 0x50, 0x3e, 0x21, 0x50, 0x72, 0xd7, 0x68, 0x21, 0xe6, 0x30, 0xf4, 0x12, 0x14, + 0xd8, 0x8f, 0xf3, 0x9e, 0xdb, 0x4a, 0xa9, 0x6b, 0xa2, 0x85, 0xd7, 0x24, 0xd9, 0xf2, 0x89, 0xfd, + 0x6e, 0xb1, 0xa0, 0xfe, 0xe2, 0x90, 0xa1, 0xf9, 0x0f, 0x06, 0xcc, 0x68, 0x9d, 0x5b, 0xb7, 0xfd, + 0x00, 0x7d, 0xa8, 0x67, 0xf1, 0x2c, 0x0d, 0xb6, 0x78, 0x68, 0x6d, 0xb6, 0x74, 0x66, 0x45, 0x4f, + 0xf3, 0xb2, 0x44, 0x5b, 0x38, 0x0e, 0xe4, 0xec, 0x80, 0xb4, 0xfc, 0x85, 0xcc, 0x03, 0xd9, 0x87, + 0x27, 0x1f, 0x5d, 0x4b, 0x6d, 0x1a, 0xc3, 0xf1, 0x5d, 0xa3, 0xf4, 0x31, 0x67, 0x63, 0x7e, 0x65, + 0x2c, 0xd2, 0x43, 0xba, 0xa2, 0x90, 0x0b, 0x13, 0x2d, 0x12, 0x78, 0x76, 0x8d, 0xef, 0xab, 0xc9, + 0x47, 0x57, 0x47, 0x6b, 0xc5, 0x06, 0x23, 0x16, 0x1e, 0x96, 0xfc, 0xbf, 0x8f, 0x25, 0x17, 0xb4, + 0x03, 0x63, 0x96, 0xd7, 0x90, 0x7d, 0x3e, 0x9f, 0xce, 0xfc, 0x86, 0x6b, 0xae, 0xe4, 0x35, 0x7c, + 0xcc, 0x38, 0xa0, 0x65, 0x28, 0x04, 0xc4, 0x6b, 0xd9, 0x8e, 0x15, 0xf0, 0xd3, 0x35, 0x5f, 0x9e, + 0x13, 0x68, 0x85, 0x4d, 0x09, 0xc0, 0x21, 0x0e, 0x6a, 0xc2, 0x78, 0xdd, 0xdb, 0xc3, 0x1d, 0x67, + 0x61, 0x2c, 0x8d, 0xa1, 0x58, 0x65, 0xb4, 0xc2, 0xcd, 0xc4, 0xff, 0x63, 0xc1, 0x03, 0xbd, 0x61, + 0xc0, 0x7c, 0x8b, 0x58, 0x7e, 0xc7, 0x23, 0xb4, 0x0b, 0x98, 0x04, 0xc4, 0xa1, 0xa7, 0xe1, 0x42, + 0x8e, 0x31, 0xc7, 0xa3, 0xce, 0x43, 0x2f, 0xe5, 0xf2, 0xfd, 0xa2, 0x29, 0xf3, 0x49, 0x50, 0x9c, + 0xd8, 0x1a, 0xf3, 0x07, 0x63, 0x30, 0xd7, 0x73, 0x42, 0xa0, 0xc7, 0x21, 0xd7, 0xde, 0xb1, 0x7c, + 0xb9, 0xe5, 0xcf, 0xca, 0xf5, 0x56, 0xa1, 0x85, 0x77, 0xba, 0xc5, 0x13, 0xb2, 0x0a, 0x2b, 0xc0, + 0x1c, 0x99, 0xca, 0xd4, 0x16, 0xf1, 0x7d, 0xab, 0x21, 0xcf, 0x01, 0x6d, 0x99, 0xb0, 0x62, 0x2c, + 0xe1, 0xe8, 0x97, 0x0c, 0x38, 0xc1, 0x97, 0x0c, 0x26, 0x7e, 0xa7, 0x19, 0xd0, 0xb3, 0x8e, 0x0e, + 0xcb, 0xc5, 0x34, 0x96, 0x27, 0x27, 0x59, 0x3e, 0x25, 0xb8, 0x9f, 0xd0, 0x4b, 0x7d, 0x1c, 0xe5, + 0x8b, 0xae, 0x43, 0xc1, 0x0f, 0x2c, 0x2f, 0x20, 0xf5, 0x52, 0xc0, 0xa4, 0xda, 0xe4, 0xa3, 0xff, + 0x7b, 0xb0, 0x43, 0x60, 0xd3, 0x6e, 0x11, 0x7e, 0xe0, 0x54, 0x25, 0x01, 0x1c, 0xd2, 0x42, 0x2f, + 0x01, 0x78, 0x1d, 0xa7, 0xda, 0x69, 0xb5, 0x2c, 0x6f, 0x4f, 0x48, 0xf0, 0x0b, 0xa3, 0x75, 0x0f, + 0x2b, 0x7a, 0xa1, 0xcc, 0x0a, 0xcb, 0xb0, 0xc6, 0x0f, 0xbd, 0x62, 0xc0, 0x09, 0xbe, 0x12, 0x65, + 0x0b, 0xc6, 0x53, 0x6e, 0xc1, 0x1c, 0x1d, 0xda, 0x55, 0x9d, 0x05, 0x8e, 0x72, 0x34, 0xff, 0x36, + 0x2a, 0x4f, 0xaa, 0x01, 0xd5, 0xae, 0x1b, 0x7b, 0xe8, 0x83, 0x70, 0xaf, 0xdf, 0xa9, 0xd5, 0x88, + 0xef, 0x6f, 0x77, 0x9a, 0xb8, 0xe3, 0x5c, 0xb0, 0xfd, 0xc0, 0xf5, 0xf6, 0xd6, 0xed, 0x96, 0x1d, + 0xb0, 0x15, 0x97, 0x2b, 0x9f, 0xd9, 0xef, 0x16, 0xef, 0xad, 0xf6, 0x43, 0xc2, 0xfd, 0xeb, 0x23, + 0x0b, 0xee, 0xeb, 0x38, 0xfd, 0xc9, 0x73, 0xed, 0xad, 0xb8, 0xdf, 0x2d, 0xde, 0x77, 0xb5, 0x3f, + 0x1a, 0x3e, 0x88, 0x86, 0xf9, 0x2f, 0x06, 0xcc, 0xca, 0x7e, 0x6d, 0x92, 0x56, 0xbb, 0x49, 0x4f, + 0x97, 0xe3, 0x57, 0x44, 0x82, 0x88, 0x22, 0x82, 0xd3, 0x11, 0x27, 0xb2, 0xfd, 0xfd, 0xb4, 0x11, + 0xf3, 0x9f, 0x0d, 0x98, 0x8f, 0x23, 0xdf, 0x05, 0xe1, 0xe9, 0x47, 0x85, 0xe7, 0xa5, 0x74, 0x7b, + 0xdb, 0x47, 0x82, 0xbe, 0x36, 0xd6, 0xdb, 0xd7, 0xff, 0xee, 0x62, 0x34, 0x94, 0x8a, 0xd9, 0x9f, + 0xa5, 0x54, 0x1c, 0x7b, 0x4b, 0x49, 0xc5, 0xdf, 0x1f, 0x83, 0xa9, 0x92, 0x13, 0xd8, 0xa5, 0xed, + 0x6d, 0xdb, 0xb1, 0x83, 0x3d, 0xf4, 0x99, 0x0c, 0x2c, 0xb7, 0x3d, 0xb2, 0x4d, 0x3c, 0x8f, 0xd4, + 0x57, 0x3b, 0x9e, 0xed, 0x34, 0xaa, 0xb5, 0x1d, 0x52, 0xef, 0x34, 0x6d, 0xa7, 0xb1, 0xd6, 0x70, + 0x5c, 0x55, 0x7c, 0xee, 0x36, 0xa9, 0x75, 0x58, 0x97, 0xf8, 0xa6, 0x68, 0x8d, 0xd6, 0xa5, 0xca, + 0x70, 0x4c, 0xcb, 0x8f, 0xed, 0x77, 0x8b, 0xcb, 0x43, 0x56, 0xc2, 0xc3, 0x76, 0x0d, 0x7d, 0x3a, + 0x03, 0x4b, 0x1e, 0xf9, 0x58, 0xc7, 0x1e, 0x7c, 0x34, 0xf8, 0xa9, 0xd5, 0x1c, 0x51, 0xfc, 0x0c, + 0xc5, 0xb3, 0xfc, 0xe8, 0x7e, 0xb7, 0x38, 0x64, 0x1d, 0x3c, 0x64, 0xbf, 0xcc, 0xaf, 0x65, 0xe0, + 0x54, 0xa9, 0xdd, 0xde, 0x20, 0xfe, 0x4e, 0xec, 0x52, 0xfb, 0x39, 0x03, 0xa6, 0x77, 0x6d, 0x2f, + 0xe8, 0x58, 0x4d, 0x69, 0x04, 0xe0, 0x4b, 0xa2, 0x3a, 0xe2, 0x76, 0xe6, 0xdc, 0xae, 0x45, 0x48, + 0x97, 0xd1, 0x7e, 0xb7, 0x38, 0x1d, 0x2d, 0xc3, 0x31, 0xf6, 0xe8, 0xd7, 0x0d, 0x98, 0x15, 0x45, + 0x97, 0xdc, 0x3a, 0xd1, 0x2d, 0x47, 0x57, 0xd3, 0x6c, 0x93, 0x22, 0xce, 0x4d, 0x0c, 0xf1, 0x52, + 0xdc, 0xd3, 0x08, 0xf3, 0xdf, 0x32, 0x70, 0xba, 0x0f, 0x0d, 0xf4, 0x7b, 0x06, 0xcc, 0x73, 0x73, + 0x93, 0x06, 0xc2, 0x64, 0x5b, 0x8c, 0xe6, 0x07, 0xd2, 0x6e, 0x39, 0xa6, 0x7b, 0x81, 0x38, 0x35, + 0x52, 0x5e, 0xa0, 0xc7, 0xc6, 0x4a, 0x02, 0x6b, 0x9c, 0xd8, 0x20, 0xd6, 0x52, 0x6e, 0x80, 0x8a, + 0xb5, 0x34, 0x73, 0x57, 0x5a, 0x5a, 0x4d, 0x60, 0x8d, 0x13, 0x1b, 0x64, 0xfe, 0x7f, 0xb8, 0xef, + 0x00, 0x72, 0x87, 0xdf, 0xf8, 0xcd, 0x17, 0xd4, 0xaa, 0x8f, 0xae, 0xb9, 0x01, 0x8c, 0x05, 0x26, + 0x8c, 0x7b, 0x6e, 0x27, 0x20, 0x5c, 0xba, 0x15, 0xca, 0x40, 0xe5, 0x04, 0x66, 0x25, 0x58, 0x40, + 0xcc, 0xaf, 0x19, 0x90, 0x1f, 0xc2, 0xfe, 0x50, 0x8c, 0xda, 0x1f, 0x0a, 0x3d, 0xb6, 0x87, 0xa0, + 0xd7, 0xf6, 0xf0, 0xec, 0x68, 0xb3, 0x31, 0x88, 0xcd, 0xe1, 0xc7, 0x06, 0xcc, 0xf5, 0xd8, 0x28, + 0xd0, 0x0e, 0xcc, 0xb7, 0xdd, 0xba, 0xd4, 0x2f, 0x2e, 0x58, 0xfe, 0x0e, 0x83, 0x89, 0xee, 0x3d, + 0x4e, 0x67, 0xb2, 0x92, 0x00, 0xbf, 0xd3, 0x2d, 0x2e, 0x28, 0x22, 0x31, 0x04, 0x9c, 0x48, 0x11, + 0xb5, 0x21, 0xbf, 0x6d, 0x93, 0x66, 0x3d, 0x5c, 0x82, 0x23, 0x6a, 0x12, 0xe7, 0x05, 0x35, 0x6e, + 0x9e, 0x93, 0xff, 0xb0, 0xe2, 0x62, 0x5e, 0x81, 0xe9, 0xa8, 0xb1, 0x76, 0x80, 0xc9, 0x3b, 0x03, + 0x59, 0xcb, 0x73, 0xc4, 0xd4, 0x4d, 0x0a, 0x84, 0x6c, 0x09, 0x5f, 0xc2, 0xb4, 0xdc, 0xfc, 0xe9, + 0x18, 0xcc, 0x94, 0x9b, 0x1d, 0xf2, 0xac, 0x47, 0x88, 0xbc, 0x9f, 0x96, 0x60, 0xa6, 0xed, 0x91, + 0x5d, 0x9b, 0xdc, 0xaa, 0x92, 0x26, 0xa9, 0x05, 0xae, 0x27, 0xe8, 0x9f, 0x16, 0xd5, 0x67, 0x2a, + 0x51, 0x30, 0x8e, 0xe3, 0xa3, 0x67, 0x60, 0xda, 0xaa, 0x05, 0xf6, 0x2e, 0x51, 0x14, 0x78, 0x03, + 0xde, 0x26, 0x28, 0x4c, 0x97, 0x22, 0x50, 0x1c, 0xc3, 0x46, 0x1f, 0x82, 0x05, 0xbf, 0x66, 0x35, + 0xc9, 0xd5, 0xb6, 0x60, 0xb5, 0xb2, 0x43, 0x6a, 0x37, 0x2b, 0xae, 0xed, 0x04, 0xc2, 0x1a, 0xf1, + 0x80, 0xa0, 0xb4, 0x50, 0xed, 0x83, 0x87, 0xfb, 0x52, 0x40, 0x7f, 0x66, 0xc0, 0x99, 0xb6, 0x47, + 0x2a, 0x9e, 0xdb, 0x72, 0xa9, 0x98, 0xe9, 0xb9, 0xa2, 0x8b, 0xab, 0xea, 0xb5, 0x11, 0xe5, 0x29, + 0x2f, 0xe9, 0x35, 0x11, 0xbe, 0x7d, 0xbf, 0x5b, 0x3c, 0x53, 0x39, 0xa8, 0x01, 0xf8, 0xe0, 0xf6, + 0xa1, 0xbf, 0x30, 0xe0, 0x6c, 0xdb, 0xf5, 0x83, 0x03, 0xba, 0x90, 0x3b, 0xd6, 0x2e, 0x98, 0xfb, + 0xdd, 0xe2, 0xd9, 0xca, 0x81, 0x2d, 0xc0, 0x87, 0xb4, 0xd0, 0xdc, 0x9f, 0x84, 0x39, 0x6d, 0xed, + 0x89, 0xfb, 0xeb, 0x53, 0x70, 0x42, 0x2e, 0x86, 0x50, 0xac, 0x17, 0x42, 0x7b, 0x43, 0x49, 0x07, + 0xe2, 0x28, 0x2e, 0x5d, 0x77, 0x6a, 0x29, 0xf2, 0xda, 0xb1, 0x75, 0x57, 0x89, 0x40, 0x71, 0x0c, + 0x1b, 0xad, 0xc1, 0x49, 0x51, 0x82, 0x49, 0xbb, 0x69, 0xd7, 0xac, 0x15, 0xb7, 0x23, 0x96, 0x5c, + 0xae, 0x7c, 0x7a, 0xbf, 0x5b, 0x3c, 0x59, 0xe9, 0x05, 0xe3, 0xa4, 0x3a, 0x68, 0x1d, 0xe6, 0xad, + 0x4e, 0xe0, 0xaa, 0xfe, 0x9f, 0x73, 0xa8, 0xa4, 0xa8, 0xb3, 0xa5, 0x95, 0xe7, 0x22, 0xa5, 0x94, + 0x00, 0xc7, 0x89, 0xb5, 0x50, 0x25, 0x46, 0xad, 0x4a, 0x6a, 0xae, 0x53, 0xe7, 0xb3, 0x9c, 0x0b, + 0xb5, 0xf0, 0x52, 0x02, 0x0e, 0x4e, 0xac, 0x89, 0x9a, 0x30, 0xdd, 0xb2, 0x6e, 0x5f, 0x75, 0xac, + 0x5d, 0xcb, 0x6e, 0x52, 0x26, 0xc2, 0x86, 0xd1, 0xff, 0x62, 0xdd, 0x09, 0xec, 0xe6, 0x12, 0x7f, + 0xce, 0x5b, 0x5a, 0x73, 0x82, 0xcb, 0x5e, 0x35, 0xa0, 0xda, 0x1a, 0x57, 0x8e, 0x36, 0x22, 0xb4, + 0x70, 0x8c, 0x36, 0xba, 0x0c, 0xa7, 0xd8, 0x76, 0x5c, 0x75, 0x6f, 0x39, 0xab, 0xa4, 0x69, 0xed, + 0xc9, 0x0e, 0x4c, 0xb0, 0x0e, 0xdc, 0xbb, 0xdf, 0x2d, 0x9e, 0xaa, 0x26, 0x21, 0xe0, 0xe4, 0x7a, + 0xc8, 0x82, 0xfb, 0xa2, 0x00, 0x4c, 0x76, 0x6d, 0xdf, 0x76, 0x1d, 0x6e, 0x89, 0xc8, 0x87, 0x96, + 0x88, 0x6a, 0x7f, 0x34, 0x7c, 0x10, 0x0d, 0xf4, 0x9b, 0x06, 0xcc, 0x27, 0x6d, 0xc3, 0x85, 0x42, + 0x1a, 0x8f, 0x15, 0xb1, 0xad, 0xc5, 0x57, 0x44, 0xe2, 0xa1, 0x90, 0xd8, 0x08, 0xf4, 0xb2, 0x01, + 0x53, 0x96, 0x76, 0x8b, 0x5a, 0x00, 0xd6, 0xaa, 0x8b, 0xa3, 0xde, 0xe5, 0x43, 0x8a, 0xe5, 0xd9, + 0xfd, 0x6e, 0x31, 0x72, 0x53, 0xc3, 0x11, 0x8e, 0xe8, 0xb7, 0x0d, 0x38, 0x95, 0xb8, 0xc7, 0x17, + 0x26, 0x8f, 0x63, 0x84, 0xd8, 0x22, 0x49, 0x3e, 0x73, 0x92, 0x9b, 0x81, 0x5e, 0x37, 0x94, 0x28, + 0xdb, 0x90, 0xd6, 0x94, 0x29, 0xd6, 0xb4, 0x2b, 0x23, 0x5e, 0x1c, 0x43, 0x85, 0x40, 0x12, 0x2e, + 0x9f, 0xd4, 0x24, 0xa3, 0x2c, 0xc4, 0x71, 0xf6, 0xe8, 0xb3, 0x86, 0x14, 0x8d, 0xaa, 0x45, 0x27, + 0x8e, 0xab, 0x45, 0x28, 0x94, 0xb4, 0xaa, 0x41, 0x31, 0xe6, 0xe8, 0xc3, 0xb0, 0x68, 0x6d, 0xb9, + 0x5e, 0x90, 0xb8, 0xf9, 0x16, 0xa6, 0xd9, 0x36, 0x3a, 0xbb, 0xdf, 0x2d, 0x2e, 0x96, 0xfa, 0x62, + 0xe1, 0x03, 0x28, 0x98, 0x7f, 0x94, 0x83, 0x29, 0xae, 0xe4, 0x0b, 0xd1, 0xf5, 0x55, 0x03, 0xee, + 0xaf, 0x75, 0x3c, 0x8f, 0x38, 0x41, 0x35, 0x20, 0xed, 0x5e, 0xc1, 0x65, 0x1c, 0xab, 0xe0, 0x7a, + 0x60, 0xbf, 0x5b, 0xbc, 0x7f, 0xe5, 0x00, 0xfe, 0xf8, 0xc0, 0xd6, 0xa1, 0xbf, 0x36, 0xc0, 0x14, + 0x08, 0x65, 0xab, 0x76, 0xb3, 0xe1, 0xb9, 0x1d, 0xa7, 0xde, 0xdb, 0x89, 0xcc, 0xb1, 0x76, 0xe2, + 0xa1, 0xfd, 0x6e, 0xd1, 0x5c, 0x39, 0xb4, 0x15, 0x78, 0x80, 0x96, 0xa2, 0x67, 0x61, 0x4e, 0x60, + 0x9d, 0xbb, 0xdd, 0x26, 0x9e, 0x4d, 0xd5, 0x69, 0xf1, 0x9e, 0x1e, 0xba, 0x28, 0xc4, 0x11, 0x70, + 0x6f, 0x1d, 0xe4, 0xc3, 0xc4, 0x2d, 0x62, 0x37, 0x76, 0x02, 0xa9, 0x3e, 0x8d, 0xe8, 0x97, 0x20, + 0x2e, 0xfc, 0xd7, 0x39, 0xcd, 0xf2, 0xe4, 0x7e, 0xb7, 0x38, 0x21, 0xfe, 0x60, 0xc9, 0x09, 0x5d, + 0x82, 0x69, 0x7e, 0x05, 0xab, 0xd8, 0x4e, 0xa3, 0xe2, 0x3a, 0xfc, 0x35, 0xbf, 0x50, 0x7e, 0x48, + 0x0a, 0xfc, 0x6a, 0x04, 0x7a, 0xa7, 0x5b, 0x9c, 0x92, 0xbf, 0x37, 0xf7, 0xda, 0x04, 0xc7, 0x6a, + 0x9b, 0xdf, 0x1c, 0x07, 0x90, 0xcb, 0x95, 0xb4, 0xd1, 0xff, 0x81, 0x82, 0x4f, 0x02, 0xce, 0x55, + 0x18, 0xcf, 0xf9, 0x9b, 0x84, 0x2c, 0xc4, 0x21, 0x1c, 0xdd, 0x84, 0x5c, 0xdb, 0xea, 0xf8, 0x44, + 0x4c, 0xfe, 0xc5, 0x54, 0x26, 0xbf, 0x42, 0x29, 0xf2, 0x3b, 0x17, 0xfb, 0x89, 0x39, 0x0f, 0xf4, + 0x29, 0x03, 0x80, 0x44, 0x27, 0x6c, 0x64, 0xdb, 0x87, 0x60, 0x19, 0xce, 0x29, 0x1d, 0x83, 0xf2, + 0xf4, 0x7e, 0xb7, 0x08, 0xda, 0xd4, 0x6b, 0x6c, 0xd1, 0x2d, 0xc8, 0x5b, 0xf2, 0xcc, 0x1f, 0x3b, + 0x8e, 0x33, 0x9f, 0x5d, 0x85, 0xd4, 0xa2, 0x55, 0xcc, 0xd0, 0xa7, 0x0d, 0x98, 0xf6, 0x49, 0x20, + 0xa6, 0x8a, 0x9e, 0x3c, 0x42, 0xe1, 0x1d, 0x71, 0xd1, 0x55, 0x23, 0x34, 0xf9, 0x09, 0x1a, 0x2d, + 0xc3, 0x31, 0xbe, 0xb2, 0x29, 0x17, 0x88, 0x55, 0x27, 0x1e, 0xbb, 0x69, 0x0b, 0x4d, 0x6a, 0xf4, + 0xa6, 0x68, 0x34, 0x55, 0x53, 0xb4, 0x32, 0x1c, 0xe3, 0x2b, 0x9b, 0xb2, 0x61, 0x7b, 0x9e, 0x2b, + 0x9a, 0x92, 0x4f, 0xa9, 0x29, 0x1a, 0x4d, 0xd5, 0x14, 0xad, 0x0c, 0xc7, 0xf8, 0x9a, 0x7f, 0x33, + 0x05, 0xd3, 0x72, 0x23, 0x85, 0x9a, 0x3d, 0x37, 0xec, 0xf4, 0xd1, 0xec, 0x57, 0x74, 0x20, 0x8e, + 0xe2, 0xd2, 0xca, 0x7c, 0xab, 0x46, 0x15, 0x7b, 0x55, 0xb9, 0xaa, 0x03, 0x71, 0x14, 0x17, 0xb5, + 0x20, 0xe7, 0x07, 0xa4, 0x2d, 0xdf, 0x41, 0x47, 0x7c, 0xa6, 0x0b, 0xcf, 0x87, 0xf0, 0xa5, 0x83, + 0xfe, 0xf3, 0x31, 0xe7, 0xc2, 0x6c, 0x93, 0x41, 0xc4, 0x5c, 0x29, 0x36, 0x47, 0x3a, 0xfb, 0x33, + 0x6a, 0x09, 0xe5, 0xb3, 0x11, 0x2d, 0xc3, 0x31, 0xf6, 0x09, 0xca, 0x7e, 0xee, 0x18, 0x95, 0xfd, + 0xe7, 0x21, 0xdf, 0xb2, 0x6e, 0x57, 0x3b, 0x5e, 0xe3, 0xe8, 0x97, 0x0a, 0xe1, 0xa2, 0xc4, 0xa9, + 0x60, 0x45, 0x0f, 0xbd, 0x62, 0x68, 0x47, 0xce, 0x04, 0x23, 0x7e, 0x3d, 0xdd, 0x23, 0x47, 0xc9, + 0xca, 0xbe, 0x87, 0x4f, 0x8f, 0xea, 0x9d, 0xbf, 0xeb, 0xaa, 0x37, 0x55, 0x23, 0xf9, 0x06, 0x51, + 0x6a, 0x64, 0xe1, 0x58, 0xd5, 0xc8, 0x95, 0x08, 0x33, 0x1c, 0x63, 0xce, 0xda, 0xc3, 0xf7, 0x9c, + 0x6a, 0x0f, 0x1c, 0x6b, 0x7b, 0xaa, 0x11, 0x66, 0x38, 0xc6, 0xbc, 0xff, 0x7d, 0x73, 0xf2, 0x78, + 0xee, 0x9b, 0x53, 0x29, 0xdc, 0x37, 0x0f, 0x56, 0xc5, 0x4f, 0x8c, 0xaa, 0x8a, 0xa3, 0x8b, 0x80, + 0xea, 0x7b, 0x8e, 0xd5, 0xb2, 0x6b, 0xe2, 0xb0, 0x64, 0x62, 0x73, 0x9a, 0xd9, 0x23, 0x16, 0xc5, + 0x41, 0x86, 0x56, 0x7b, 0x30, 0x70, 0x42, 0x2d, 0x14, 0x40, 0xbe, 0x2d, 0x35, 0xae, 0x99, 0x34, + 0x56, 0xbf, 0xd4, 0xc0, 0xf8, 0x53, 0x39, 0xdd, 0x78, 0xb2, 0x04, 0x2b, 0x4e, 0xe6, 0x7f, 0x18, + 0x30, 0xbb, 0xd2, 0x74, 0x3b, 0xf5, 0xeb, 0x56, 0x50, 0xdb, 0xe1, 0xef, 0xba, 0xe8, 0x19, 0xc8, + 0xdb, 0x4e, 0x40, 0xbc, 0x5d, 0xab, 0x29, 0x24, 0x8a, 0x29, 0x9f, 0xbe, 0xd7, 0x44, 0xf9, 0x9d, + 0x6e, 0x71, 0x7a, 0xb5, 0xe3, 0x31, 0x87, 0x49, 0x7e, 0xbe, 0x60, 0x55, 0x07, 0x7d, 0xc9, 0x80, + 0x39, 0xfe, 0x32, 0xbc, 0x6a, 0x05, 0xd6, 0x95, 0x0e, 0xf1, 0x6c, 0x22, 0xdf, 0x86, 0x47, 0x3c, + 0x5a, 0xe2, 0x6d, 0x95, 0x0c, 0xf6, 0x42, 0xd5, 0x7a, 0x23, 0xce, 0x19, 0xf7, 0x36, 0xc6, 0xfc, + 0x7c, 0x16, 0xee, 0xed, 0x4b, 0x0b, 0x2d, 0x42, 0xc6, 0xae, 0x8b, 0xae, 0x83, 0xa0, 0x9b, 0x59, + 0xab, 0xe3, 0x8c, 0x5d, 0x47, 0x4b, 0x4c, 0x4b, 0xf4, 0x88, 0xef, 0xcb, 0x67, 0xc2, 0x82, 0x52, + 0xe8, 0x44, 0x29, 0xd6, 0x30, 0x50, 0x11, 0x72, 0x4d, 0x6b, 0x8b, 0x34, 0xc5, 0x0d, 0x80, 0xe9, + 0x9d, 0xeb, 0xb4, 0x00, 0xf3, 0x72, 0xf4, 0x8b, 0x06, 0x00, 0x6f, 0x20, 0xbd, 0x3f, 0x08, 0xb9, + 0x86, 0xd3, 0x1d, 0x26, 0x4a, 0x99, 0xb7, 0x32, 0xfc, 0x8f, 0x35, 0xae, 0x68, 0x13, 0xc6, 0xa9, + 0x0a, 0xea, 0xd6, 0x8f, 0x2c, 0xc6, 0xd8, 0xb3, 0x48, 0x85, 0xd1, 0xc0, 0x82, 0x16, 0x1d, 0x2b, + 0x8f, 0x04, 0x1d, 0xcf, 0xa1, 0x43, 0xcb, 0x04, 0x57, 0x9e, 0xb7, 0x02, 0xab, 0x52, 0xac, 0x61, + 0x98, 0x7f, 0x9a, 0x81, 0xf9, 0xa4, 0xa6, 0x53, 0xf9, 0x30, 0xce, 0x5b, 0x2b, 0x2e, 0xb3, 0xef, + 0x4f, 0x7f, 0x7c, 0x84, 0x93, 0x83, 0x72, 0x05, 0x10, 0x6e, 0x58, 0x82, 0x2f, 0x7a, 0xbf, 0x1a, + 0xa1, 0xcc, 0x11, 0x47, 0x48, 0x51, 0x8e, 0x8d, 0xd2, 0x03, 0x30, 0xe6, 0xd3, 0x99, 0xcf, 0x46, + 0x9f, 0x1c, 0xd8, 0x1c, 0x31, 0x08, 0xc5, 0xe8, 0x38, 0x76, 0x20, 0xbc, 0x98, 0x15, 0xc6, 0x55, + 0xc7, 0x0e, 0x30, 0x83, 0x98, 0x5f, 0xcc, 0xc0, 0x62, 0xff, 0x4e, 0xa1, 0x2f, 0x1a, 0x00, 0x75, + 0x7a, 0xc1, 0xa0, 0x4b, 0x52, 0x3a, 0x85, 0x58, 0xc7, 0x35, 0x86, 0xab, 0x92, 0x53, 0xe8, 0x21, + 0xa4, 0x8a, 0x7c, 0xac, 0x35, 0x04, 0x3d, 0x2a, 0x97, 0xfe, 0x25, 0xab, 0x25, 0x15, 0x50, 0x55, + 0x67, 0x43, 0x41, 0xb0, 0x86, 0x45, 0x6f, 0x90, 0x8e, 0xd5, 0x22, 0x7e, 0xdb, 0x52, 0x6e, 0xea, + 0xec, 0x06, 0x79, 0x49, 0x16, 0xe2, 0x10, 0x6e, 0x36, 0xe1, 0xc1, 0x01, 0xda, 0x99, 0x92, 0xcb, + 0xb0, 0xf9, 0xef, 0x06, 0x9c, 0x5e, 0x69, 0x76, 0xfc, 0x80, 0x78, 0xff, 0x63, 0x1c, 0xae, 0xfe, + 0xd3, 0x80, 0xfb, 0xfa, 0xf4, 0xf9, 0x2e, 0xf8, 0x5d, 0xbd, 0x18, 0xf5, 0xbb, 0xba, 0x3a, 0xea, + 0x92, 0x4e, 0xec, 0x47, 0x1f, 0xf7, 0xab, 0x00, 0x4e, 0xd0, 0x53, 0xab, 0xee, 0x36, 0x52, 0x92, + 0x9b, 0x0f, 0x42, 0xee, 0x63, 0x54, 0xfe, 0xc4, 0xd7, 0x18, 0x13, 0x4a, 0x98, 0xc3, 0xcc, 0xa7, + 0x41, 0x38, 0x29, 0xc5, 0x36, 0x8f, 0x31, 0xc8, 0xe6, 0x31, 0xff, 0x2e, 0x03, 0x9a, 0xe5, 0xe1, + 0x2e, 0x2c, 0x4a, 0x27, 0xb2, 0x28, 0x47, 0xbc, 0x35, 0x6b, 0x76, 0x94, 0x7e, 0xd1, 0x08, 0xbb, + 0xb1, 0x68, 0x84, 0x4b, 0xa9, 0x71, 0x3c, 0x38, 0x18, 0xe1, 0x7b, 0x06, 0xdc, 0x17, 0x22, 0xf7, + 0x1a, 0x05, 0x0f, 0x3f, 0x61, 0x9e, 0x80, 0x49, 0x2b, 0xac, 0x26, 0xd6, 0x80, 0x0a, 0xc0, 0xd1, + 0x28, 0x62, 0x1d, 0x2f, 0xf4, 0x7d, 0xce, 0x1e, 0xd1, 0xf7, 0x79, 0xec, 0x60, 0xdf, 0x67, 0xf3, + 0x27, 0x19, 0x38, 0xd3, 0xdb, 0x33, 0xb9, 0x37, 0x06, 0x7b, 0x33, 0x7f, 0x12, 0xa6, 0x02, 0x51, + 0x41, 0x3b, 0xe9, 0x55, 0xf8, 0xd8, 0xa6, 0x06, 0xc3, 0x11, 0x4c, 0x5a, 0xb3, 0xc6, 0x77, 0x65, + 0xb5, 0xe6, 0xb6, 0xa5, 0xe7, 0xbc, 0xaa, 0xb9, 0xa2, 0xc1, 0x70, 0x04, 0x53, 0xf9, 0x24, 0x8e, + 0x1d, 0xbb, 0x4f, 0x62, 0x15, 0x4e, 0x49, 0x2f, 0xac, 0xf3, 0xae, 0xb7, 0xe2, 0xb6, 0xda, 0x4d, + 0x22, 0x7c, 0xe7, 0x69, 0x63, 0xcf, 0x88, 0x2a, 0xa7, 0x70, 0x12, 0x12, 0x4e, 0xae, 0x6b, 0x7e, + 0x2f, 0x0b, 0x27, 0xc3, 0x61, 0x5f, 0x71, 0x9d, 0xba, 0xcd, 0x7c, 0xd9, 0x9e, 0x82, 0xb1, 0x60, + 0xaf, 0x2d, 0x07, 0xfb, 0x7f, 0xc9, 0xe6, 0x6c, 0xee, 0xb5, 0xe9, 0x6c, 0x9f, 0x4e, 0xa8, 0xc2, + 0xcc, 0xb2, 0xac, 0x12, 0x5a, 0x57, 0xbb, 0x83, 0xcf, 0xc0, 0xe3, 0xd1, 0xd5, 0x7c, 0xa7, 0x5b, + 0x4c, 0x88, 0x9e, 0x5c, 0x52, 0x94, 0xa2, 0x6b, 0x1e, 0xdd, 0x80, 0xe9, 0xa6, 0xe5, 0x07, 0x57, + 0xdb, 0x75, 0x2b, 0x20, 0x9b, 0x76, 0x8b, 0x88, 0x3d, 0x37, 0x8c, 0x43, 0xba, 0x7a, 0x47, 0x5e, + 0x8f, 0x50, 0xc2, 0x31, 0xca, 0x68, 0x17, 0x10, 0x2d, 0xd9, 0xf4, 0x2c, 0xc7, 0xe7, 0xbd, 0xa2, + 0xfc, 0x86, 0x77, 0x80, 0x57, 0xd7, 0xb2, 0xf5, 0x1e, 0x6a, 0x38, 0x81, 0x03, 0x7a, 0x08, 0xc6, + 0x3d, 0x62, 0xf9, 0x62, 0x32, 0x0b, 0xe1, 0xfe, 0xc7, 0xac, 0x14, 0x0b, 0xa8, 0xbe, 0xa1, 0xc6, + 0x0f, 0xd9, 0x50, 0x3f, 0x34, 0x60, 0x3a, 0x9c, 0xa6, 0xbb, 0x20, 0x24, 0x5b, 0x51, 0x21, 0x79, + 0x21, 0xad, 0x23, 0xb1, 0x8f, 0x5c, 0xfc, 0xcb, 0x71, 0xbd, 0x7f, 0xcc, 0x21, 0xf9, 0xe3, 0x50, + 0x90, 0xbb, 0x5a, 0x6a, 0x9f, 0x23, 0xde, 0x6e, 0x23, 0x7a, 0x89, 0x16, 0x48, 0x23, 0x98, 0xe0, + 0x90, 0x1f, 0x15, 0xcb, 0x75, 0x21, 0x72, 0xc5, 0xb2, 0x57, 0x62, 0x59, 0x8a, 0xe2, 0x24, 0xb1, + 0x2c, 0xeb, 0xa0, 0xab, 0x70, 0xba, 0xed, 0xb9, 0x2c, 0xb8, 0x72, 0x95, 0x58, 0xf5, 0xa6, 0xed, + 0x10, 0x69, 0x42, 0xe0, 0x6e, 0x0c, 0xf7, 0xed, 0x77, 0x8b, 0xa7, 0x2b, 0xc9, 0x28, 0xb8, 0x5f, + 0xdd, 0x68, 0x40, 0xd0, 0xd8, 0x00, 0x01, 0x41, 0xbf, 0xac, 0x0c, 0x75, 0xc4, 0x17, 0x61, 0x39, + 0x1f, 0x4c, 0x6b, 0x2a, 0x13, 0x8e, 0xf5, 0x70, 0x49, 0x95, 0x04, 0x53, 0xac, 0xd8, 0xf7, 0xb7, + 0x06, 0x8d, 0x1f, 0xd1, 0x1a, 0x14, 0xfa, 0x75, 0x4f, 0xfc, 0x2c, 0xfd, 0xba, 0xf3, 0x6f, 0x29, + 0xbf, 0xee, 0x57, 0x73, 0x30, 0x1b, 0xd7, 0x40, 0x8e, 0x3f, 0xd8, 0xe9, 0xd7, 0x0c, 0x98, 0x95, + 0xbb, 0x87, 0xf3, 0x24, 0xd2, 0xce, 0xbf, 0x9e, 0xd2, 0xa6, 0xe5, 0xba, 0x94, 0x0a, 0xc7, 0xdd, + 0x8c, 0x71, 0xc3, 0x3d, 0xfc, 0xd1, 0x0b, 0x30, 0xa9, 0xcc, 0xe1, 0x47, 0x8a, 0x7c, 0x9a, 0x61, + 0x5a, 0x54, 0x48, 0x02, 0xeb, 0xf4, 0xd0, 0xab, 0x06, 0x40, 0x4d, 0x8a, 0x39, 0xb9, 0xbb, 0xae, + 0xa4, 0xb5, 0xbb, 0x94, 0x00, 0x0d, 0x95, 0x65, 0x55, 0xe4, 0x63, 0x8d, 0x31, 0xfa, 0x3c, 0x33, + 0x84, 0x2b, 0xed, 0x8e, 0xee, 0xa7, 0xec, 0xe8, 0xae, 0xb8, 0x07, 0x28, 0xa6, 0xa1, 0x2a, 0xa5, + 0x81, 0x7c, 0x1c, 0x69, 0x84, 0xf9, 0x14, 0x28, 0xe7, 0x49, 0x7a, 0x6c, 0x31, 0xf7, 0xc9, 0x8a, + 0x15, 0xec, 0x88, 0x25, 0xa8, 0x8e, 0xad, 0xf3, 0x12, 0x80, 0x43, 0x1c, 0xf3, 0xa3, 0x30, 0xfd, + 0xac, 0x67, 0xb5, 0x77, 0x6c, 0x66, 0x70, 0xa6, 0xf7, 0xa4, 0x77, 0xc2, 0x84, 0x55, 0xaf, 0x27, + 0x05, 0xb3, 0x97, 0x78, 0x31, 0x96, 0xf0, 0xc1, 0xae, 0x44, 0xdf, 0x34, 0x00, 0x85, 0x8f, 0x76, + 0xb6, 0xd3, 0xd8, 0xa0, 0xb7, 0x7d, 0x7a, 0x3f, 0xda, 0x61, 0xa5, 0x49, 0xf7, 0xa3, 0x0b, 0x0a, + 0x82, 0x35, 0x2c, 0xf4, 0x12, 0x4c, 0xf2, 0x7f, 0xd7, 0xd4, 0x65, 0x7f, 0xe4, 0x50, 0x58, 0x2e, + 0x50, 0x58, 0x9b, 0xf8, 0x2a, 0xbc, 0x10, 0x72, 0xc0, 0x3a, 0x3b, 0x3a, 0x54, 0x6b, 0xce, 0x76, + 0xb3, 0x73, 0xbb, 0xbe, 0x15, 0x0e, 0x55, 0xdb, 0x73, 0xb7, 0xed, 0x26, 0x89, 0x0f, 0x55, 0x85, + 0x17, 0x63, 0x09, 0x1f, 0x6c, 0xa8, 0xbe, 0x6e, 0xc0, 0xfc, 0x9a, 0x1f, 0xd8, 0xee, 0x2a, 0xf1, + 0x03, 0x2a, 0x56, 0xe8, 0xe1, 0xd3, 0x69, 0x0e, 0xe2, 0x07, 0xbd, 0x0a, 0xb3, 0xe2, 0x01, 0xb1, + 0xb3, 0xe5, 0x93, 0x40, 0xd3, 0xe3, 0xd5, 0x3e, 0x5e, 0x89, 0xc1, 0x71, 0x4f, 0x0d, 0x4a, 0x45, + 0xbc, 0x24, 0x86, 0x54, 0xb2, 0x51, 0x2a, 0xd5, 0x18, 0x1c, 0xf7, 0xd4, 0x30, 0xbf, 0x93, 0x85, + 0x93, 0xac, 0x1b, 0xb1, 0x18, 0x86, 0xcf, 0xf6, 0x8b, 0x61, 0x18, 0x71, 0x2b, 0x33, 0x5e, 0x47, + 0x88, 0x60, 0xf8, 0x55, 0x03, 0x66, 0xea, 0xd1, 0x91, 0x4e, 0xc7, 0x3c, 0x93, 0x34, 0x87, 0xdc, + 0x5f, 0x2a, 0x56, 0x88, 0xe3, 0xfc, 0xd1, 0x17, 0x0c, 0x98, 0x89, 0x36, 0x53, 0x9e, 0xee, 0xc7, + 0x30, 0x48, 0xca, 0xc1, 0x39, 0x5a, 0xee, 0xe3, 0x78, 0x13, 0xcc, 0x6f, 0x67, 0xc4, 0x94, 0x1e, + 0x87, 0x83, 0x3e, 0xba, 0x05, 0x85, 0xa0, 0xe9, 0xf3, 0x42, 0xd1, 0xdb, 0x11, 0x6f, 0x84, 0x9b, + 0xeb, 0x55, 0xfe, 0x76, 0x1f, 0x2a, 0x6d, 0xa2, 0x84, 0x2a, 0x9f, 0x92, 0x17, 0x63, 0x5c, 0x6b, + 0x0b, 0xc6, 0xa9, 0x5c, 0x45, 0x37, 0x57, 0x2a, 0x71, 0xc6, 0xa2, 0x84, 0x32, 0x96, 0xbc, 0xcc, + 0x2f, 0x1b, 0x50, 0xb8, 0xe8, 0xca, 0x73, 0xe4, 0xc3, 0x29, 0x18, 0x7a, 0x94, 0x3e, 0xa8, 0xde, + 0x08, 0xc3, 0x2b, 0xc6, 0x33, 0x11, 0x33, 0xcf, 0xfd, 0x1a, 0xed, 0x25, 0x96, 0xa8, 0x87, 0x92, + 0xba, 0xe8, 0x6e, 0xf5, 0xb5, 0x22, 0xfe, 0x6e, 0x0e, 0x4e, 0x3c, 0x67, 0xed, 0x11, 0x27, 0xb0, + 0x86, 0x17, 0x12, 0x4f, 0xc0, 0xa4, 0xd5, 0x66, 0x8e, 0xc2, 0x9a, 0x8e, 0x1f, 0x5a, 0x4e, 0x42, + 0x10, 0xd6, 0xf1, 0xc2, 0x03, 0x8d, 0xe7, 0x0d, 0x49, 0x3a, 0x8a, 0x56, 0x62, 0x70, 0xdc, 0x53, + 0x03, 0x5d, 0x04, 0x24, 0xa2, 0x20, 0x4b, 0xb5, 0x9a, 0xdb, 0x71, 0xf8, 0x91, 0xc6, 0x8d, 0x2a, + 0xea, 0xb2, 0xb9, 0xd1, 0x83, 0x81, 0x13, 0x6a, 0xa1, 0x0f, 0xc1, 0x42, 0x8d, 0x51, 0x16, 0x57, + 0x0f, 0x9d, 0x22, 0xbf, 0x7e, 0x2a, 0x27, 0xfd, 0x95, 0x3e, 0x78, 0xb8, 0x2f, 0x05, 0xda, 0x52, + 0x3f, 0x70, 0x3d, 0xab, 0x41, 0x74, 0xba, 0xe3, 0xd1, 0x96, 0x56, 0x7b, 0x30, 0x70, 0x42, 0x2d, + 0xf4, 0x49, 0x28, 0x04, 0x3b, 0x1e, 0xf1, 0x77, 0xdc, 0x66, 0x5d, 0x38, 0x0d, 0x8c, 0x68, 0x69, + 0x13, 0xb3, 0xbf, 0x29, 0xa9, 0x6a, 0xcb, 0x5b, 0x16, 0xe1, 0x90, 0x27, 0xf2, 0x60, 0xdc, 0xaf, + 0xb9, 0x6d, 0xe2, 0x0b, 0x95, 0xfd, 0x62, 0x2a, 0xdc, 0x99, 0xe5, 0x48, 0xb3, 0xf1, 0x31, 0x0e, + 0x58, 0x70, 0x32, 0xbf, 0x91, 0x81, 0x29, 0x1d, 0x71, 0x80, 0xb3, 0xe9, 0x53, 0x06, 0x4c, 0xd5, + 0x5c, 0x27, 0xf0, 0xdc, 0x26, 0xb7, 0x5f, 0xa5, 0xa3, 0x51, 0x50, 0x52, 0xab, 0x24, 0xb0, 0xec, + 0xa6, 0x66, 0x0a, 0xd3, 0xd8, 0xe0, 0x08, 0x53, 0xf4, 0x19, 0x03, 0x66, 0x42, 0x1f, 0xb3, 0xd0, + 0x90, 0x96, 0x6a, 0x43, 0xd4, 0x51, 0x7f, 0x2e, 0xca, 0x09, 0xc7, 0x59, 0x9b, 0x5b, 0x30, 0x1b, + 0x9f, 0x6d, 0x3a, 0x94, 0x6d, 0x4b, 0xec, 0xf5, 0x6c, 0x38, 0x94, 0x15, 0xcb, 0xf7, 0x31, 0x83, + 0xa0, 0x47, 0x20, 0xdf, 0xb2, 0xbc, 0x86, 0xed, 0x58, 0x4d, 0x36, 0x8a, 0x59, 0xed, 0x40, 0x12, + 0xe5, 0x58, 0x61, 0x98, 0xef, 0x86, 0xa9, 0x0d, 0xcb, 0x69, 0x90, 0xba, 0x38, 0x87, 0x0f, 0x0f, + 0x11, 0xfb, 0xd1, 0x18, 0x4c, 0x6a, 0x77, 0xb3, 0xe3, 0xbf, 0x67, 0x45, 0x52, 0x39, 0x64, 0x53, + 0x4c, 0xe5, 0xf0, 0x3c, 0xc0, 0xb6, 0xed, 0xd8, 0xfe, 0xce, 0x11, 0x93, 0x44, 0xb0, 0x27, 0xda, + 0xf3, 0x8a, 0x02, 0xd6, 0xa8, 0x85, 0xef, 0x60, 0xb9, 0x03, 0x52, 0xe7, 0xbc, 0x6a, 0x68, 0xe2, + 0x66, 0x3c, 0x8d, 0x77, 0x7f, 0x6d, 0x62, 0x96, 0xa4, 0xf8, 0x39, 0xe7, 0x04, 0xde, 0xde, 0x81, + 0x52, 0x69, 0x13, 0xf2, 0x1e, 0xf1, 0x3b, 0x2d, 0x7a, 0x63, 0x9c, 0x18, 0x7a, 0x18, 0x98, 0xcf, + 0x04, 0x16, 0xf5, 0xb1, 0xa2, 0xb4, 0xf8, 0x14, 0x9c, 0x88, 0x34, 0x01, 0xcd, 0x42, 0xf6, 0x26, + 0xd9, 0xe3, 0xeb, 0x04, 0xd3, 0x9f, 0x68, 0x3e, 0xf2, 0x5a, 0x28, 0x86, 0xe5, 0x7d, 0x99, 0x27, + 0x0d, 0xd3, 0x85, 0x44, 0x03, 0xc0, 0x51, 0x1e, 0x73, 0xe8, 0x5c, 0x34, 0xb5, 0x2c, 0x11, 0x6a, + 0x2e, 0xb8, 0x67, 0x0c, 0x87, 0x99, 0x3f, 0x19, 0x07, 0xf1, 0x94, 0x3d, 0xc0, 0x71, 0xa5, 0xbf, + 0x60, 0x65, 0x8e, 0xf0, 0x82, 0x75, 0x11, 0xa6, 0x6c, 0xc7, 0x0e, 0x6c, 0xab, 0xc9, 0x8c, 0x3b, + 0x42, 0x9c, 0x4a, 0xd7, 0xe1, 0xa9, 0x35, 0x0d, 0x96, 0x40, 0x27, 0x52, 0x17, 0x5d, 0x81, 0x1c, + 0x93, 0x37, 0x62, 0x01, 0x0f, 0xff, 0xde, 0xce, 0x5c, 0x2d, 0x78, 0x3c, 0x11, 0xa7, 0xc4, 0x2e, + 0x1f, 0x3c, 0x4d, 0x86, 0xba, 0x7e, 0x8b, 0x75, 0x1c, 0x5e, 0x3e, 0x62, 0x70, 0xdc, 0x53, 0x83, + 0x52, 0xd9, 0xb6, 0xec, 0x66, 0xc7, 0x23, 0x21, 0x95, 0xf1, 0x28, 0x95, 0xf3, 0x31, 0x38, 0xee, + 0xa9, 0x81, 0xb6, 0x61, 0x4a, 0x94, 0x71, 0x7f, 0xa7, 0x89, 0x23, 0xf6, 0x92, 0xf9, 0xb5, 0x9d, + 0xd7, 0x28, 0xe1, 0x08, 0x5d, 0xd4, 0x81, 0x39, 0xdb, 0xa9, 0xb9, 0x4e, 0xad, 0xd9, 0xf1, 0xed, + 0x5d, 0x12, 0x06, 0xf3, 0x1c, 0x85, 0xd9, 0xa9, 0xfd, 0x6e, 0x71, 0x6e, 0x2d, 0x4e, 0x0e, 0xf7, + 0x72, 0x40, 0xaf, 0x18, 0x70, 0xaa, 0xe6, 0x3a, 0x3e, 0x8b, 0x3b, 0xdf, 0x25, 0xe7, 0x3c, 0xcf, + 0xf5, 0x38, 0xef, 0xc2, 0x11, 0x79, 0x33, 0x9b, 0xe2, 0x4a, 0x12, 0x49, 0x9c, 0xcc, 0x09, 0xbd, + 0x08, 0xf9, 0xb6, 0xe7, 0xee, 0xda, 0x75, 0xe2, 0x09, 0xdf, 0xb9, 0xf5, 0x34, 0xf2, 0x60, 0x54, + 0x04, 0xcd, 0xf0, 0xe8, 0x91, 0x25, 0x58, 0xf1, 0x33, 0xdf, 0x28, 0xc0, 0x74, 0x14, 0x1d, 0x7d, + 0x02, 0xa0, 0xed, 0xb9, 0x2d, 0x12, 0xec, 0x10, 0x15, 0x94, 0x71, 0x69, 0xd4, 0x74, 0x0b, 0x92, + 0x9e, 0xf4, 0x5e, 0xa1, 0xc7, 0x45, 0x58, 0x8a, 0x35, 0x8e, 0xc8, 0x83, 0x89, 0x9b, 0x5c, 0xec, + 0x0a, 0x2d, 0xe4, 0xb9, 0x54, 0x74, 0x26, 0xc1, 0x99, 0x45, 0x13, 0x88, 0x22, 0x2c, 0x19, 0xa1, + 0x2d, 0xc8, 0xde, 0x22, 0x5b, 0xe9, 0x84, 0x30, 0x5f, 0x27, 0xe2, 0x36, 0x53, 0x9e, 0xd8, 0xef, + 0x16, 0xb3, 0xd7, 0xc9, 0x16, 0xa6, 0xc4, 0x69, 0xbf, 0xea, 0xfc, 0x1d, 0x5e, 0x1c, 0x15, 0x23, + 0xf6, 0x2b, 0xf2, 0xa8, 0xcf, 0xfb, 0x25, 0x8a, 0xb0, 0x64, 0x84, 0x5e, 0x84, 0xc2, 0x2d, 0x6b, + 0x97, 0x6c, 0x7b, 0xae, 0x13, 0x08, 0x97, 0xa9, 0x11, 0xfd, 0xf4, 0xaf, 0x4b, 0x72, 0x82, 0x2f, + 0x13, 0xef, 0xaa, 0x10, 0x87, 0xec, 0xd0, 0x2e, 0xe4, 0x1d, 0x72, 0x0b, 0x93, 0xa6, 0x5d, 0x4b, + 0xc7, 0x2f, 0xfe, 0x92, 0xa0, 0x26, 0x38, 0x33, 0xb9, 0x27, 0xcb, 0xb0, 0xe2, 0x45, 0xe7, 0xf2, + 0x86, 0xbb, 0x25, 0x0e, 0xaa, 0x11, 0xe7, 0x52, 0xdd, 0x4c, 0xf9, 0x5c, 0x5e, 0x74, 0xb7, 0x30, + 0x25, 0x4e, 0xf7, 0x48, 0x4d, 0xf9, 0xeb, 0x88, 0x63, 0xea, 0x52, 0xba, 0x7e, 0x4a, 0x7c, 0x8f, + 0x84, 0xa5, 0x58, 0xe3, 0x48, 0xc7, 0xb6, 0x21, 0x8c, 0x95, 0xe2, 0xa0, 0x1a, 0x71, 0x6c, 0xa3, + 0xa6, 0x4f, 0x3e, 0xb6, 0xb2, 0x0c, 0x2b, 0x5e, 0x94, 0xaf, 0x2d, 0x2c, 0x7f, 0xe9, 0x1c, 0x55, + 0x51, 0x3b, 0x22, 0xe7, 0x2b, 0xcb, 0xb0, 0xe2, 0x65, 0x7e, 0x79, 0x1c, 0xa6, 0xf4, 0x7c, 0x63, + 0x03, 0xe8, 0x08, 0x4a, 0x2f, 0xce, 0x0c, 0xa3, 0x17, 0xd3, 0x8b, 0x90, 0xf6, 0xc6, 0x21, 0x8d, + 0x30, 0x6b, 0xa9, 0xa9, 0x85, 0xe1, 0x45, 0x48, 0x2b, 0xf4, 0x71, 0x84, 0xe9, 0x10, 0x6e, 0x0f, + 0x54, 0xb9, 0xe2, 0xea, 0x47, 0x2e, 0xaa, 0x5c, 0x45, 0x14, 0x8a, 0x47, 0x01, 0xc2, 0xbc, 0x5b, + 0xe2, 0xed, 0x4b, 0x69, 0x6d, 0x5a, 0x3e, 0x30, 0x0d, 0x0b, 0x3d, 0x04, 0xe3, 0x54, 0x40, 0x93, + 0xba, 0x88, 0xd4, 0x55, 0xb7, 0xcd, 0xf3, 0xac, 0x14, 0x0b, 0x28, 0x7a, 0x92, 0xea, 0x52, 0xa1, + 0x58, 0x15, 0x01, 0xb8, 0xf3, 0xa1, 0x2e, 0x15, 0xc2, 0x70, 0x04, 0x93, 0x36, 0x9d, 0x50, 0x29, + 0xc8, 0x56, 0xb0, 0xd6, 0x74, 0x26, 0x1a, 0x31, 0x87, 0x31, 0xeb, 0x47, 0x4c, 0x6a, 0xb2, 0x95, + 0x97, 0xd3, 0xac, 0x1f, 0x31, 0x38, 0xee, 0xa9, 0x41, 0x3b, 0x23, 0x9e, 0xed, 0x26, 0xb9, 0x77, + 0x67, 0x9f, 0x07, 0xb7, 0xd7, 0xf4, 0x1b, 0xc1, 0x14, 0x9b, 0xfa, 0xf7, 0xa7, 0x97, 0x3b, 0x6f, + 0xf0, 0x2b, 0xc1, 0x68, 0xca, 0xfb, 0x47, 0x61, 0x3a, 0x7a, 0x56, 0xa6, 0x6e, 0x9f, 0xff, 0xab, + 0x2c, 0x9c, 0xbc, 0xd4, 0xb0, 0x9d, 0xdb, 0x31, 0xc3, 0x76, 0x52, 0x4e, 0x5b, 0x63, 0xd8, 0x9c, + 0xb6, 0x61, 0xc8, 0x8f, 0x48, 0x1a, 0x9c, 0x1c, 0xf2, 0x23, 0x33, 0x0a, 0x47, 0x71, 0xd1, 0x0f, + 0x0d, 0xb8, 0xdf, 0xaa, 0x73, 0xed, 0xd5, 0x6a, 0x8a, 0xd2, 0x90, 0xa9, 0xdc, 0xd1, 0xfe, 0x88, + 0xb2, 0xa8, 0xb7, 0xf3, 0x4b, 0xa5, 0x03, 0xb8, 0xf2, 0x19, 0x7f, 0x87, 0xe8, 0xc1, 0xfd, 0x07, + 0xa1, 0xe2, 0x03, 0x9b, 0xbf, 0x78, 0x19, 0xde, 0x7e, 0x28, 0xa3, 0xa1, 0x56, 0xcb, 0xa7, 0x0c, + 0x28, 0x70, 0xf3, 0x29, 0x26, 0xdb, 0xf4, 0xa8, 0xb0, 0xda, 0xf6, 0x35, 0xe2, 0xf9, 0x32, 0xd9, + 0x96, 0x76, 0xc1, 0x2b, 0x55, 0xd6, 0x04, 0x04, 0x6b, 0x58, 0xf4, 0x30, 0xbe, 0x69, 0x3b, 0x75, + 0x31, 0x4d, 0xea, 0x30, 0x7e, 0xce, 0x76, 0xea, 0x98, 0x41, 0xd4, 0x71, 0x9d, 0xed, 0x6b, 0xd6, + 0x78, 0xc3, 0x80, 0x69, 0x16, 0xe7, 0x18, 0x5e, 0x3d, 0x9e, 0x50, 0x3e, 0x2d, 0xbc, 0x19, 0x67, + 0xa2, 0x3e, 0x2d, 0x77, 0xba, 0xc5, 0x49, 0x1e, 0x19, 0x19, 0x75, 0x71, 0xf9, 0xa0, 0xb0, 0x57, + 0x30, 0xcf, 0x9b, 0xcc, 0xd0, 0xd7, 0x69, 0x65, 0xcf, 0xab, 0x4a, 0x22, 0x38, 0xa4, 0x67, 0xbe, + 0x04, 0x53, 0x7a, 0xc0, 0x02, 0x7a, 0x02, 0x26, 0xdb, 0xb6, 0xd3, 0x88, 0x06, 0xb6, 0x29, 0x9b, + 0x6e, 0x25, 0x04, 0x61, 0x1d, 0x8f, 0x55, 0x73, 0xc3, 0x6a, 0x31, 0x53, 0x70, 0xc5, 0xd5, 0xab, + 0x85, 0x7f, 0xcc, 0x3f, 0xce, 0xc2, 0xc9, 0x84, 0xc0, 0x18, 0xf4, 0xaa, 0x01, 0xe3, 0xcc, 0x4b, + 0x5f, 0x7a, 0xad, 0xbc, 0x90, 0x7a, 0xf0, 0xcd, 0x12, 0x0b, 0x06, 0x10, 0xeb, 0x58, 0x1d, 0x9f, + 0xbc, 0x10, 0x0b, 0xe6, 0xe8, 0x37, 0x0c, 0x98, 0xb4, 0xb4, 0xad, 0xc6, 0x1d, 0x79, 0xb6, 0xd2, + 0x6f, 0x4c, 0xcf, 0xce, 0xd2, 0x1c, 0x10, 0xc3, 0x8d, 0xa4, 0xb7, 0x65, 0xf1, 0xbd, 0x30, 0xa9, + 0x75, 0x61, 0x98, 0x1d, 0xb2, 0xf8, 0x0c, 0xcc, 0x8e, 0xb4, 0xc3, 0x3e, 0x00, 0xc3, 0xe6, 0x8e, + 0xa3, 0x02, 0xeb, 0x96, 0x1e, 0x7c, 0xac, 0x46, 0x5c, 0x44, 0x1f, 0x0b, 0xa8, 0xb9, 0x05, 0xb3, + 0xf1, 0xcb, 0x55, 0xea, 0xef, 0xd6, 0xef, 0x86, 0x21, 0xb3, 0xbd, 0x99, 0xdf, 0xce, 0xc0, 0x84, + 0x88, 0xae, 0xbb, 0x0b, 0xbe, 0xbb, 0x37, 0x23, 0x8f, 0x3a, 0x6b, 0xa9, 0x04, 0x05, 0xf6, 0x75, + 0xdc, 0xf5, 0x63, 0x8e, 0xbb, 0xcf, 0xa5, 0xc3, 0xee, 0x60, 0xaf, 0xdd, 0x37, 0xc6, 0x60, 0x26, + 0x16, 0xad, 0x48, 0x55, 0x95, 0x1e, 0x67, 0xb5, 0xab, 0xa9, 0x06, 0x44, 0x2a, 0xbf, 0xf2, 0x83, + 0xfd, 0xd6, 0xfc, 0x48, 0x52, 0xcd, 0x2b, 0xa9, 0xe5, 0xe3, 0xfe, 0x79, 0x7e, 0xcd, 0x61, 0xfd, + 0xb0, 0xfe, 0xc9, 0x80, 0x7b, 0xfb, 0x06, 0xb5, 0xb2, 0x9c, 0x28, 0x5e, 0x14, 0x2a, 0x36, 0x64, + 0xca, 0xa1, 0xfb, 0xea, 0x85, 0x25, 0x9e, 0xc6, 0x22, 0xce, 0x1e, 0x3d, 0x0e, 0x53, 0x4c, 0xb4, + 0xd2, 0x33, 0x25, 0x20, 0x6d, 0x61, 0x20, 0x66, 0xa6, 0xc2, 0xaa, 0x56, 0x8e, 0x23, 0x58, 0xe6, + 0x97, 0x0c, 0x58, 0xe8, 0x97, 0x21, 0x63, 0x80, 0x8b, 0xe1, 0xff, 0x8b, 0x39, 0x17, 0x17, 0x7b, + 0x9c, 0x8b, 0x63, 0x57, 0x43, 0xe9, 0x47, 0xac, 0xdd, 0xca, 0xb2, 0x87, 0xf8, 0xce, 0x7e, 0xd6, + 0x80, 0xd3, 0x7d, 0x76, 0x53, 0x8f, 0x93, 0xb9, 0x71, 0x64, 0x27, 0xf3, 0xcc, 0xa0, 0x4e, 0xe6, + 0xe6, 0x77, 0xb3, 0x30, 0x2b, 0xda, 0x13, 0xea, 0x57, 0x4f, 0x46, 0x5c, 0xb4, 0xdf, 0x11, 0x73, + 0xd1, 0x9e, 0x8f, 0xe3, 0xff, 0xdc, 0x3f, 0xfb, 0xad, 0xe5, 0x9f, 0xfd, 0xd3, 0x0c, 0x9c, 0x4a, + 0x4c, 0xdc, 0x81, 0x3e, 0x9d, 0x20, 0x1a, 0xae, 0xa7, 0x9c, 0x21, 0x64, 0x40, 0xe1, 0x30, 0xaa, + 0x53, 0xf3, 0x17, 0x74, 0x67, 0x62, 0x7e, 0xd4, 0x6f, 0x1f, 0x43, 0xae, 0x93, 0x21, 0xfd, 0x8a, + 0xcd, 0x5f, 0xc9, 0xc2, 0xc3, 0x83, 0x12, 0x7a, 0x8b, 0xc6, 0x9d, 0xf8, 0x91, 0xb8, 0x93, 0xbb, + 0x24, 0xb6, 0x8f, 0x25, 0x04, 0xe5, 0x77, 0xc6, 0x94, 0xd8, 0xeb, 0x5d, 0x9f, 0x03, 0xbd, 0x26, + 0x4e, 0x50, 0xd5, 0x4e, 0xa6, 0xf3, 0x0c, 0x8f, 0xc2, 0x89, 0x2a, 0x2f, 0xbe, 0xd3, 0x2d, 0xce, + 0x89, 0x14, 0x7f, 0x55, 0x12, 0x88, 0x42, 0x2c, 0x2b, 0xa1, 0x87, 0x21, 0xef, 0x71, 0xa8, 0xf4, + 0xb4, 0x17, 0x4f, 0xb2, 0xbc, 0x0c, 0x2b, 0x28, 0xfa, 0xa4, 0xa6, 0x0b, 0x8f, 0x1d, 0x57, 0x96, + 0x84, 0x83, 0x5e, 0x9a, 0x5f, 0x80, 0xbc, 0x2f, 0x13, 0x73, 0xf2, 0xe7, 0x80, 0xc7, 0x06, 0x0c, + 0xe0, 0xa0, 0x57, 0x27, 0x99, 0xa5, 0x93, 0xf7, 0x4f, 0xe5, 0xf0, 0x54, 0x24, 0x91, 0xa9, 0x6e, + 0x2d, 0xdc, 0xc6, 0x08, 0xbd, 0x37, 0x16, 0x14, 0xc0, 0x84, 0xf8, 0x9e, 0x93, 0x30, 0xd1, 0x6f, + 0xa4, 0xe4, 0xac, 0x2d, 0x5c, 0xf9, 0xd8, 0x43, 0x88, 0xbc, 0x3d, 0x4b, 0x56, 0xe6, 0xf7, 0x0c, + 0x98, 0x14, 0x6b, 0xe4, 0x2e, 0x44, 0xb2, 0xdc, 0x88, 0x46, 0xb2, 0x9c, 0x4b, 0xe5, 0xc4, 0xea, + 0x13, 0xc6, 0x72, 0x03, 0xa6, 0xf4, 0x8c, 0x51, 0xe8, 0x79, 0xed, 0xc4, 0x35, 0x46, 0xc9, 0xc1, + 0x22, 0xcf, 0xe4, 0xf0, 0x34, 0x36, 0x7f, 0x2b, 0xaf, 0x46, 0x91, 0x59, 0x3f, 0xf4, 0x95, 0x6f, + 0x1c, 0xb8, 0xf2, 0xf5, 0x85, 0x97, 0x49, 0x7f, 0xe1, 0x5d, 0x81, 0xbc, 0x3c, 0x16, 0x85, 0xf2, + 0xf0, 0xa0, 0xee, 0xdb, 0x47, 0x35, 0x10, 0x4a, 0x4c, 0xdb, 0x2e, 0xec, 0x82, 0xa7, 0xe6, 0x50, + 0x1d, 0xd7, 0x8a, 0x0c, 0x7a, 0x11, 0x26, 0x6f, 0xb9, 0xde, 0xcd, 0xa6, 0x6b, 0xb1, 0x44, 0xbf, + 0x90, 0xc6, 0x73, 0x92, 0x32, 0xb3, 0x71, 0x07, 0xeb, 0xeb, 0x21, 0x7d, 0xac, 0x33, 0x43, 0x25, + 0x98, 0x69, 0xd9, 0x0e, 0x26, 0x56, 0x5d, 0x05, 0xac, 0x8c, 0xf1, 0x4c, 0xa4, 0x52, 0xb5, 0xde, + 0x88, 0x82, 0x71, 0x1c, 0x1f, 0x7d, 0x1c, 0xf2, 0xbe, 0xc8, 0xbf, 0x94, 0xce, 0xc3, 0x9f, 0xba, + 0xa9, 0x72, 0xa2, 0xe1, 0xd8, 0xc9, 0x12, 0xac, 0x18, 0xa2, 0x75, 0x98, 0xf7, 0x44, 0x86, 0x93, + 0xc8, 0x67, 0x42, 0xf8, 0xa9, 0xc0, 0x12, 0x5e, 0xe2, 0x04, 0x38, 0x4e, 0xac, 0x45, 0x75, 0x27, + 0x96, 0xfa, 0x8c, 0xbf, 0x44, 0x68, 0xc6, 0x7b, 0xb6, 0xe0, 0xeb, 0x58, 0x40, 0x0f, 0x0a, 0x80, + 0xca, 0x8f, 0x10, 0x00, 0x55, 0x85, 0x53, 0x71, 0x10, 0xcb, 0xc3, 0xc2, 0x52, 0xbf, 0x68, 0x32, + 0xab, 0x92, 0x84, 0x84, 0x93, 0xeb, 0xa2, 0xeb, 0x50, 0xf0, 0x08, 0xbb, 0xd5, 0x94, 0xa4, 0xab, + 0xc1, 0xd0, 0x4e, 0x55, 0x58, 0x12, 0xc0, 0x21, 0x2d, 0x3a, 0xef, 0x56, 0x34, 0x19, 0xe7, 0x95, + 0x14, 0x3f, 0x74, 0x26, 0xe6, 0xbe, 0x4f, 0x7e, 0x24, 0xf3, 0xcd, 0x69, 0x38, 0x11, 0xb1, 0x68, + 0xa0, 0x07, 0x21, 0xc7, 0x12, 0xd3, 0xb0, 0xe3, 0x21, 0x1f, 0x1e, 0x61, 0x7c, 0x70, 0x38, 0x0c, + 0x7d, 0xce, 0x80, 0x99, 0x76, 0xc4, 0xf6, 0x2b, 0x4f, 0xce, 0x11, 0x5f, 0x17, 0xa3, 0x06, 0x65, + 0x2d, 0x8d, 0x75, 0x94, 0x19, 0x8e, 0x73, 0xa7, 0x1b, 0x50, 0x78, 0x26, 0x36, 0x89, 0xc7, 0xb0, + 0x85, 0x66, 0xa5, 0x48, 0xac, 0x44, 0xc1, 0x38, 0x8e, 0x4f, 0x67, 0x98, 0xf5, 0x6e, 0x94, 0x2f, + 0x20, 0x95, 0x24, 0x01, 0x1c, 0xd2, 0x42, 0xcf, 0xc0, 0xb4, 0xc8, 0xc1, 0x58, 0x71, 0xeb, 0x17, + 0x2c, 0x7f, 0x47, 0x5c, 0x29, 0xd4, 0x15, 0x68, 0x25, 0x02, 0xc5, 0x31, 0x6c, 0xd6, 0xb7, 0x30, + 0xd1, 0x25, 0x23, 0x30, 0x1e, 0xcd, 0xf2, 0xbd, 0x12, 0x05, 0xe3, 0x38, 0x3e, 0x7a, 0x44, 0x3b, + 0xf7, 0xf9, 0xeb, 0xa0, 0x3a, 0x0d, 0x12, 0xce, 0xfe, 0x12, 0xcc, 0x74, 0xd8, 0x0d, 0xac, 0x2e, + 0x81, 0x62, 0x3f, 0x2a, 0x86, 0x57, 0xa3, 0x60, 0x1c, 0xc7, 0x47, 0x4f, 0xc1, 0x09, 0x8f, 0x9e, + 0x6e, 0x8a, 0x00, 0x7f, 0x32, 0x54, 0x2f, 0x42, 0x58, 0x07, 0xe2, 0x28, 0x2e, 0x7a, 0x16, 0xe6, + 0xc2, 0x94, 0x65, 0x92, 0x00, 0x7f, 0x43, 0x54, 0xd9, 0x78, 0x4a, 0x71, 0x04, 0xdc, 0x5b, 0x07, + 0xfd, 0x02, 0xcc, 0x6a, 0x23, 0xb1, 0xe6, 0xd4, 0xc9, 0x6d, 0x91, 0x56, 0x8a, 0x7d, 0x90, 0x61, + 0x25, 0x06, 0xc3, 0x3d, 0xd8, 0xe8, 0x7d, 0x30, 0x5d, 0x73, 0x9b, 0x4d, 0x76, 0xc6, 0xf1, 0x0c, + 0xd3, 0x3c, 0x7f, 0x14, 0xcf, 0xb4, 0x15, 0x81, 0xe0, 0x18, 0x26, 0xba, 0x08, 0xc8, 0xdd, 0xa2, + 0xfa, 0x0c, 0xa9, 0x3f, 0xcb, 0xbf, 0xa9, 0x4a, 0x45, 0xfc, 0x89, 0xa8, 0x5f, 0xf4, 0xe5, 0x1e, + 0x0c, 0x9c, 0x50, 0x8b, 0x25, 0xf3, 0xd1, 0xe2, 0xc8, 0xa6, 0xd3, 0xf8, 0x1a, 0x50, 0xdc, 0x5e, + 0x70, 0x68, 0x10, 0x99, 0x07, 0xe3, 0xdc, 0x4d, 0x3d, 0x9d, 0x44, 0x52, 0x7a, 0xb2, 0xd9, 0x50, + 0x46, 0xf0, 0x52, 0x2c, 0x38, 0xa1, 0x4f, 0x40, 0x61, 0x4b, 0x66, 0x1e, 0x5f, 0x98, 0x4d, 0x43, + 0x2e, 0xc6, 0x92, 0xe8, 0x87, 0xf7, 0x61, 0x05, 0xc0, 0x21, 0x4b, 0xf4, 0x10, 0x4c, 0x5e, 0xa8, + 0x94, 0xd4, 0x2a, 0x9c, 0x63, 0xb3, 0x3f, 0x46, 0xab, 0x60, 0x1d, 0x40, 0x77, 0x98, 0xd2, 0x97, + 0x10, 0x9b, 0xe2, 0x50, 0xde, 0xf6, 0xaa, 0x3f, 0x14, 0x9b, 0x3d, 0x82, 0xe2, 0xea, 0xc2, 0xc9, + 0x18, 0xb6, 0x28, 0xc7, 0x0a, 0x03, 0xbd, 0x00, 0x93, 0x42, 0x5e, 0xb0, 0xb3, 0x69, 0xfe, 0x68, + 0x31, 0x8a, 0x38, 0x24, 0x81, 0x75, 0x7a, 0xec, 0x6d, 0x8b, 0x25, 0x64, 0x26, 0xe7, 0x3b, 0xcd, + 0xe6, 0xc2, 0x29, 0x76, 0x6e, 0x86, 0x6f, 0x5b, 0x21, 0x08, 0xeb, 0x78, 0xe8, 0x31, 0xe9, 0xaf, + 0xf1, 0xb6, 0xc8, 0x63, 0x9f, 0xf2, 0xd7, 0x50, 0x5a, 0x6e, 0x1f, 0x37, 0xe6, 0xd3, 0x87, 0x38, + 0x4a, 0x6c, 0xc1, 0xa2, 0x54, 0xb1, 0x7a, 0x37, 0xc9, 0xc2, 0x42, 0xc4, 0x36, 0xb1, 0x78, 0xbd, + 0x2f, 0x26, 0x3e, 0x80, 0x0a, 0xda, 0x82, 0xac, 0xd5, 0xdc, 0x5a, 0xb8, 0x37, 0x0d, 0x5d, 0x51, + 0x7d, 0x23, 0x99, 0xbb, 0x1e, 0x95, 0xd6, 0xcb, 0x98, 0x12, 0x37, 0x5f, 0xc9, 0xa8, 0xb7, 0x00, + 0x95, 0x60, 0xf3, 0x25, 0x7d, 0x55, 0x1b, 0x69, 0x7c, 0x03, 0xb4, 0x27, 0x3d, 0x3f, 0x17, 0x48, + 0x89, 0x6b, 0xba, 0xad, 0xf6, 0x71, 0x2a, 0xd9, 0x53, 0xa2, 0xc9, 0x43, 0xf9, 0x1d, 0x32, 0xba, + 0x8b, 0xcd, 0xfd, 0x09, 0x65, 0xfa, 0x8a, 0x39, 0x20, 0x78, 0x90, 0xb3, 0xfd, 0xc0, 0x76, 0x53, + 0x8c, 0xa7, 0x8b, 0x65, 0xdd, 0x64, 0xee, 0xba, 0x0c, 0x80, 0x39, 0x2b, 0xca, 0xd3, 0x69, 0xd8, + 0xce, 0x6d, 0xd1, 0xfd, 0x2b, 0xa9, 0x7b, 0x16, 0x70, 0x9e, 0x0c, 0x80, 0x39, 0x2b, 0x74, 0x83, + 0xaf, 0xb4, 0x74, 0xbe, 0xf7, 0x1a, 0xff, 0x8c, 0x73, 0x74, 0xc5, 0x51, 0x5e, 0x7e, 0xcb, 0x16, + 0x3a, 0xcc, 0x88, 0xbc, 0xaa, 0x1b, 0x6b, 0x49, 0xbc, 0xaa, 0x1b, 0x6b, 0x98, 0x32, 0x41, 0xaf, + 0x19, 0x00, 0x96, 0xfa, 0x9e, 0x71, 0x3a, 0xdf, 0xb2, 0xe8, 0xf7, 0x7d, 0x64, 0xee, 0x61, 0x17, + 0x42, 0xb1, 0xc6, 0x19, 0xbd, 0x08, 0x13, 0x16, 0xff, 0x12, 0x8f, 0x70, 0x5e, 0x4c, 0xe7, 0xf3, + 0x52, 0xb1, 0x16, 0x30, 0x63, 0x85, 0x00, 0x61, 0xc9, 0x90, 0xf2, 0x0e, 0x3c, 0x8b, 0x6c, 0xdb, + 0x37, 0x85, 0x89, 0xa4, 0x3a, 0x72, 0x42, 0x6d, 0x4a, 0x2c, 0x89, 0xb7, 0x00, 0x61, 0xc9, 0x90, + 0x7f, 0x42, 0xd4, 0x72, 0x2c, 0x15, 0x92, 0x92, 0x4e, 0xe0, 0x92, 0x1e, 0xe4, 0xa2, 0x7d, 0x42, + 0x54, 0x67, 0x84, 0xa3, 0x7c, 0xcd, 0x1f, 0x67, 0x01, 0xd8, 0x4f, 0x1e, 0x26, 0xdd, 0x62, 0xa9, + 0xf5, 0x76, 0xdc, 0xba, 0xd8, 0xda, 0x29, 0x46, 0x3b, 0x83, 0xc8, 0xa3, 0xb7, 0xe3, 0xd6, 0xb1, + 0x60, 0x82, 0x1a, 0x30, 0xd6, 0xb6, 0x82, 0x9d, 0xf4, 0x43, 0xab, 0xf3, 0x3c, 0x5e, 0x28, 0xd8, + 0xc1, 0x8c, 0x01, 0x7a, 0xd9, 0x80, 0x09, 0x1e, 0x5c, 0x2d, 0x0d, 0xdc, 0x23, 0xbf, 0xe2, 0xca, + 0x31, 0x5b, 0xe2, 0x11, 0xdc, 0xc2, 0x45, 0x42, 0x89, 0x46, 0x51, 0x8a, 0x25, 0xdb, 0xc5, 0x57, + 0x0d, 0x98, 0xd2, 0x51, 0x13, 0x9c, 0x1b, 0x3e, 0xa2, 0x3b, 0x37, 0xa4, 0x39, 0x1e, 0xba, 0x9f, + 0xc4, 0xbf, 0x1a, 0xa0, 0x7d, 0x78, 0x35, 0x74, 0x6d, 0x34, 0x06, 0x76, 0x6d, 0xcc, 0x0c, 0xe9, + 0xda, 0x98, 0x1d, 0xca, 0xb5, 0x71, 0x6c, 0x78, 0xd7, 0xc6, 0x5c, 0x7f, 0xd7, 0x46, 0xf3, 0x75, + 0x03, 0xe6, 0x7a, 0xce, 0xc3, 0xf8, 0x07, 0xee, 0x8d, 0x01, 0x3f, 0x70, 0xbf, 0x0a, 0xb3, 0x22, + 0xf5, 0x73, 0xb5, 0xdd, 0xb4, 0x13, 0xc3, 0xde, 0x37, 0x63, 0x70, 0xdc, 0x53, 0xc3, 0xfc, 0x73, + 0x03, 0x26, 0xb5, 0x60, 0x39, 0xda, 0x0f, 0x16, 0x54, 0x28, 0x9a, 0x11, 0x66, 0xbd, 0x66, 0x0f, + 0x0a, 0x1c, 0xc6, 0xdf, 0xb6, 0x1a, 0x5a, 0x9a, 0xd1, 0xf0, 0x6d, 0x8b, 0x96, 0x62, 0x01, 0xe5, + 0x09, 0x24, 0x49, 0x9b, 0x0d, 0x7a, 0x56, 0x4f, 0x20, 0x49, 0xda, 0x98, 0x41, 0x18, 0x3b, 0xaa, + 0x47, 0x0a, 0xaf, 0x57, 0x2d, 0xc9, 0xb6, 0xe5, 0x05, 0x98, 0xc3, 0xd0, 0x19, 0xc8, 0x12, 0xa7, + 0x2e, 0x2e, 0xbd, 0xea, 0xc3, 0x56, 0xe7, 0x9c, 0x3a, 0xa6, 0xe5, 0xe6, 0x65, 0x98, 0xaa, 0x92, + 0x9a, 0x47, 0x82, 0xe7, 0xc8, 0xde, 0xc0, 0x5f, 0xca, 0xa2, 0xab, 0x3d, 0xf6, 0xa5, 0x2c, 0x5a, + 0x9d, 0x96, 0x9b, 0x7f, 0x68, 0x40, 0x2c, 0x13, 0xbc, 0x66, 0xe7, 0x36, 0xfa, 0xda, 0xb9, 0x75, + 0xdb, 0x68, 0xe6, 0x40, 0xdb, 0xe8, 0x45, 0x40, 0x2d, 0xba, 0x15, 0x22, 0xdf, 0x3d, 0x10, 0xf6, + 0x86, 0x30, 0x34, 0xb7, 0x07, 0x03, 0x27, 0xd4, 0x32, 0xff, 0x80, 0x37, 0x56, 0xcf, 0x0d, 0x7f, + 0xf8, 0x00, 0x74, 0x20, 0xc7, 0x48, 0x09, 0xa3, 0x4b, 0x65, 0xb4, 0xcd, 0xdd, 0x9b, 0xe2, 0x22, + 0x9c, 0x48, 0xb1, 0xe5, 0x19, 0x37, 0xf3, 0xbb, 0xbc, 0xad, 0x5a, 0xf2, 0xf8, 0x01, 0xda, 0xda, + 0x8a, 0xb6, 0xf5, 0x42, 0x5a, 0x67, 0x65, 0x72, 0x1b, 0xd1, 0x12, 0x40, 0x9b, 0x78, 0x35, 0xe2, + 0x04, 0xd2, 0x19, 0x3b, 0x27, 0x82, 0x57, 0x54, 0x29, 0xd6, 0x30, 0xcc, 0x97, 0x0d, 0x98, 0xad, + 0x06, 0x76, 0xed, 0xa6, 0xed, 0xf0, 0x60, 0xac, 0x6d, 0xbb, 0x41, 0x6f, 0x29, 0x44, 0x7c, 0x04, + 0x8a, 0x9b, 0xc1, 0xd4, 0x51, 0x2c, 0xbf, 0xfd, 0x24, 0xe1, 0xa8, 0x04, 0x33, 0xd2, 0xda, 0x2e, + 0x6d, 0x97, 0x3c, 0x88, 0x54, 0xd9, 0x4a, 0x56, 0xa3, 0x60, 0x1c, 0xc7, 0x37, 0x3f, 0x09, 0x93, + 0xda, 0xf9, 0xca, 0x8e, 0xa2, 0xdb, 0x56, 0x2d, 0x88, 0x6f, 0xe1, 0x73, 0xb4, 0x10, 0x73, 0x18, + 0x33, 0xb1, 0x72, 0x6f, 0xdd, 0xd8, 0x16, 0x16, 0x3e, 0xba, 0x02, 0x4a, 0x89, 0x79, 0xa4, 0x41, + 0x6e, 0xcb, 0x84, 0xa6, 0x92, 0x18, 0xa6, 0x85, 0x98, 0xc3, 0xcc, 0x47, 0x20, 0x2f, 0x43, 0xfd, + 0x59, 0xbc, 0xac, 0x34, 0xff, 0xe9, 0xf1, 0xb2, 0xae, 0x17, 0x60, 0x06, 0x31, 0xaf, 0x41, 0x5e, + 0x66, 0x24, 0x38, 0x1c, 0x9b, 0xee, 0x2a, 0xdf, 0xb1, 0x2f, 0xb8, 0x7e, 0x20, 0xd3, 0x28, 0xf0, + 0x27, 0x81, 0x4b, 0x6b, 0xac, 0x0c, 0x2b, 0xa8, 0xf9, 0x18, 0xcc, 0xc4, 0x9e, 0x86, 0x06, 0x08, + 0xae, 0xfd, 0x46, 0x16, 0xa6, 0x22, 0x9f, 0x28, 0x3e, 0x7c, 0x41, 0x0e, 0xbe, 0xcf, 0x13, 0xac, + 0xfa, 0xd9, 0x21, 0xad, 0xfa, 0xfa, 0x33, 0xca, 0xd8, 0xf1, 0x3e, 0xa3, 0xe4, 0xd2, 0x79, 0x46, + 0xd1, 0x9e, 0xfb, 0xc6, 0xef, 0xde, 0x73, 0xdf, 0x57, 0x73, 0x30, 0x1d, 0xcd, 0xd6, 0x34, 0xc0, + 0x4c, 0x3e, 0xd2, 0x33, 0x93, 0x43, 0x5a, 0x35, 0xb3, 0xa3, 0x5a, 0x35, 0xc7, 0x46, 0xb5, 0x6a, + 0xe6, 0x8e, 0x60, 0xd5, 0xec, 0xb5, 0x49, 0x8e, 0x0f, 0x6c, 0x93, 0x7c, 0x5a, 0x39, 0x02, 0x4d, + 0x44, 0x5e, 0xce, 0x43, 0x47, 0x20, 0x14, 0x9d, 0x86, 0x15, 0xb7, 0x9e, 0xe8, 0x50, 0x95, 0x3f, + 0xc4, 0x7a, 0xe3, 0x25, 0xfa, 0xed, 0x0c, 0xff, 0x70, 0xf2, 0xb6, 0x21, 0x7c, 0x76, 0x9e, 0x80, + 0x49, 0xb1, 0x9e, 0x98, 0x36, 0x05, 0x51, 0x4d, 0xac, 0x1a, 0x82, 0xb0, 0x8e, 0xc7, 0xbe, 0xa2, + 0x19, 0xfd, 0x6c, 0x28, 0x33, 0x12, 0xeb, 0x5f, 0xd1, 0x8c, 0x7d, 0x66, 0x34, 0x8e, 0x6f, 0x7e, + 0x1c, 0x4e, 0x25, 0xde, 0xd9, 0x98, 0x11, 0x8b, 0x09, 0x7a, 0x52, 0x17, 0x08, 0x5a, 0x33, 0x62, + 0xc9, 0x7c, 0x17, 0xaf, 0xf7, 0xc5, 0xc4, 0x07, 0x50, 0x31, 0xbf, 0x92, 0x85, 0xe9, 0xe8, 0x27, + 0x98, 0xd0, 0x2d, 0x65, 0xe1, 0x49, 0xc5, 0xb8, 0xc4, 0xc9, 0x6a, 0x19, 0x80, 0xfa, 0x9a, 0x6b, + 0x6f, 0xb1, 0xf5, 0xb5, 0xa5, 0xd2, 0x11, 0x1d, 0x1f, 0x63, 0x61, 0x27, 0x15, 0xec, 0xd8, 0x57, + 0x96, 0xc2, 0x30, 0x0c, 0x71, 0x31, 0x4b, 0x9d, 0x7b, 0x18, 0x58, 0xa1, 0x58, 0x61, 0x8d, 0x2d, + 0x95, 0x2d, 0xbb, 0xc4, 0xb3, 0xb7, 0x6d, 0xf5, 0xf9, 0x48, 0x76, 0x72, 0x5f, 0x13, 0x65, 0x58, + 0x41, 0xcd, 0x97, 0x33, 0x10, 0x7e, 0x2c, 0x97, 0x7d, 0xa7, 0xc4, 0xd7, 0x94, 0x60, 0x31, 0x6d, + 0x17, 0x47, 0xfd, 0x18, 0x50, 0x48, 0x51, 0x38, 0x69, 0x6a, 0x25, 0x38, 0xc2, 0xf1, 0x67, 0xf0, + 0x91, 0x5c, 0x0b, 0x66, 0x62, 0xc1, 0xa9, 0xa9, 0x7b, 0xc2, 0xff, 0x28, 0x0b, 0x05, 0x15, 0xde, + 0x8b, 0xde, 0x1b, 0xb1, 0x48, 0x14, 0xca, 0x6f, 0xd7, 0x52, 0xf2, 0xef, 0xb8, 0xf5, 0x3b, 0xdd, + 0xe2, 0x8c, 0x42, 0x8e, 0x59, 0x17, 0xce, 0x40, 0xb6, 0xe3, 0x35, 0xe3, 0x57, 0x8e, 0xab, 0x78, + 0x1d, 0xd3, 0x72, 0x74, 0x3b, 0x6e, 0x12, 0xd8, 0x48, 0x29, 0x24, 0x99, 0xeb, 0xe6, 0xfd, 0x4d, + 0x01, 0x54, 0x4a, 0x6e, 0xb9, 0xf5, 0xbd, 0x78, 0x0a, 0xff, 0xb2, 0x5b, 0xdf, 0xc3, 0x0c, 0x82, + 0x9e, 0x81, 0xe9, 0xc0, 0x6e, 0x11, 0xb7, 0x13, 0xe8, 0x9f, 0x22, 0xcd, 0x86, 0xcf, 0x8f, 0x9b, + 0x11, 0x28, 0x8e, 0x61, 0x53, 0x29, 0x7b, 0xc3, 0x77, 0x1d, 0x96, 0x97, 0x6f, 0x3c, 0xfa, 0x56, + 0x71, 0xb1, 0x7a, 0xf9, 0x12, 0xb3, 0x8c, 0x28, 0x0c, 0x8a, 0x6d, 0xb3, 0x58, 0x3e, 0x8f, 0x88, + 0xd7, 0xff, 0xd9, 0x30, 0xd3, 0x03, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, 0xb4, 0xb5, 0x4c, + 0xa2, 0x4c, 0x95, 0x1f, 0x96, 0x74, 0x69, 0xd9, 0x9d, 0x6e, 0x71, 0x81, 0x38, 0x35, 0xb7, 0x6e, + 0x3b, 0x8d, 0x65, 0x8a, 0xb8, 0x84, 0xad, 0x5b, 0x52, 0xd4, 0xa8, 0x9a, 0xe6, 0x55, 0x98, 0x89, + 0x0d, 0x98, 0xbc, 0x22, 0x1a, 0xc9, 0x57, 0xc4, 0xc1, 0xb2, 0xee, 0xff, 0x89, 0x01, 0x73, 0x3d, + 0x47, 0xc0, 0xa0, 0x81, 0x1e, 0x71, 0x61, 0x94, 0x39, 0xba, 0x30, 0xca, 0x0e, 0x27, 0x8c, 0xca, + 0x5b, 0xdf, 0x7a, 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, 0xf3, 0xec, 0x3d, + 0x2f, 0xef, 0x9f, 0x35, 0xbe, 0xb5, 0x7f, 0xd6, 0xf8, 0xce, 0xfe, 0x59, 0xe3, 0xfb, 0xfb, 0x67, + 0x8d, 0x7f, 0xdc, 0x3f, 0x6b, 0xbc, 0xfe, 0xa3, 0xb3, 0xf7, 0x3c, 0xff, 0x74, 0xb8, 0x40, 0x97, + 0xe5, 0x02, 0x65, 0x3f, 0xde, 0x25, 0x97, 0xe3, 0x72, 0xfb, 0x66, 0x63, 0x99, 0x2e, 0xd0, 0x65, + 0x55, 0x22, 0x17, 0xe8, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xda, 0xc9, 0xe3, 0x90, 0xed, 0x93, + 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -7745,11 +7746,18 @@ func (m *RolloutExperimentTemplate) MarshalToSizedBuffer(dAtA []byte) (int, erro _ = i var l int _ = l - i -= len(m.ServiceName) - copy(dAtA[i:], m.ServiceName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName))) - i-- - dAtA[i] = 0x3a + if m.Service != nil { + { + size, err := m.Service.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } if m.Weight != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.Weight)) i-- @@ -10940,8 +10948,10 @@ func (m *RolloutExperimentTemplate) Size() (n int) { if m.Weight != nil { n += 1 + sovGenerated(uint64(*m.Weight)) } - l = len(m.ServiceName) - n += 1 + l + sovGenerated(uint64(l)) + if m.Service != nil { + l = m.Service.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -12716,7 +12726,7 @@ func (this *RolloutExperimentTemplate) String() string { `Metadata:` + strings.Replace(strings.Replace(this.Metadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1), `&`, ``, 1) + `,`, `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, `Weight:` + valueToStringGenerated(this.Weight) + `,`, - `ServiceName:` + fmt.Sprintf("%v", this.ServiceName) + `,`, + `Service:` + strings.Replace(this.Service.String(), "TemplateService", "TemplateService", 1) + `,`, `}`, }, "") return s @@ -26345,9 +26355,9 @@ func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { m.Weight = &v case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -26357,23 +26367,27 @@ func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.ServiceName = string(dAtA[iNdEx:postIndex]) + if m.Service == nil { + m.Service = &TemplateService{} + } + if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index 83c32d9c66..ab34257b23 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -1224,8 +1224,8 @@ message RolloutExperimentTemplate { // Weight sets the percentage of traffic the template's replicas should receive optional int32 weight = 6; - // ServiceName sets the name of the optionally generated service for the replicaset - optional string serviceName = 7; + // Service controls the optionally generated service + optional TemplateService service = 7; } // RolloutList is a list of Rollout resources diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index ee689773f1..a873c1bdc4 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -3787,11 +3787,10 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe Format: "int32", }, }, - "serviceName": { + "service": { SchemaProps: spec.SchemaProps{ - Description: "ServiceName sets the name of the optionally generated service for the replicaset", - Type: []string{"string"}, - Format: "", + Description: "Service controls the optionally generated service", + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService"), }, }, }, @@ -3799,7 +3798,7 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, } } diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index aeb94b45e0..718a3383bf 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -534,8 +534,8 @@ type RolloutExperimentTemplate struct { Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,5,opt,name=selector"` // Weight sets the percentage of traffic the template's replicas should receive Weight *int32 `json:"weight,omitempty" protobuf:"varint,6,opt,name=weight"` - // ServiceName sets the name of the optionally generated service for the replicaset - ServiceName string `json:"serviceName,omitempty" protobuf:"bytes,7,opt,name=serviceName"` + // Service controls the optionally generated service + Service *TemplateService `json:"service,omitempty" protobuf:"bytes,7,opt,name=service"` } // PodTemplateMetadata extra labels to add to the template diff --git a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go index 1a64ef2cca..102f59face 100644 --- a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go @@ -2035,6 +2035,11 @@ func (in *RolloutExperimentTemplate) DeepCopyInto(out *RolloutExperimentTemplate *out = new(int32) **out = **in } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(TemplateService) + (*in).DeepCopyInto(*out) + } return } @@ -2537,6 +2542,7 @@ func (in *TLSRoute) DeepCopy() *TLSRoute { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TemplateService) DeepCopyInto(out *TemplateService) { *out = *in + in.ServiceSpec.DeepCopyInto(&out.ServiceSpec) return } @@ -2567,7 +2573,7 @@ func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec) { if in.Service != nil { in, out := &in.Service, &out.Service *out = new(TemplateService) - **out = **in + (*in).DeepCopyInto(*out) } return } diff --git a/rollout/experiment.go b/rollout/experiment.go index b51dba4330..a037eac11b 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -64,8 +64,12 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Name: templateStep.Name, Replicas: templateStep.Replicas, } - if templateStep.Weight != nil || templateStep.ServiceName != "" { - template.Service = &v1alpha1.TemplateService{Name: templateStep.ServiceName} + if templateStep.Weight != nil || (templateStep.Service != nil && templateStep.Service.Name != "") { + if templateStep.Service != nil { + template.Service = templateStep.Service.DeepCopy() + } else { + template.Service = &v1alpha1.TemplateService{} + } } templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index fc794b2f41..b0457ddb7d 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -1187,10 +1187,10 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExpe weight?: number; /** * - * @type {string} + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService} * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate */ - serviceName?: string; + service?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService; } /** * @@ -1704,6 +1704,19 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TLSRoute { */ sniHosts?: Array; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService + */ + name?: string; +} /** * * @export From 0f28e2b2280a4a63362991c5eb7d7e00f1c3f98d Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sat, 22 Oct 2022 23:03:30 +0200 Subject: [PATCH 10/28] make lint Signed-off-by: Alex Eftimie --- rollout/experiment.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rollout/experiment.go b/rollout/experiment.go index a037eac11b..4706e25e30 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -65,11 +65,11 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Replicas: templateStep.Replicas, } if templateStep.Weight != nil || (templateStep.Service != nil && templateStep.Service.Name != "") { - if templateStep.Service != nil { - template.Service = templateStep.Service.DeepCopy() - } else { - template.Service = &v1alpha1.TemplateService{} - } + if templateStep.Service != nil { + template.Service = templateStep.Service.DeepCopy() + } else { + template.Service = &v1alpha1.TemplateService{} + } } templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { From d805441d0519886fb2c775aae2dcef8a9abdb62e Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sun, 23 Oct 2022 08:55:57 +0200 Subject: [PATCH 11/28] infer ports from ReplicaSet. this should fix e2e tests Signed-off-by: Alex Eftimie --- experiments/experiment.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/experiments/experiment.go b/experiments/experiment.go index aafc6868b7..39cecfa7af 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -22,6 +22,7 @@ import ( corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/kubernetes" appslisters "k8s.io/client-go/listers/apps/v1" v1 "k8s.io/client-go/listers/core/v1" @@ -292,6 +293,20 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp if len(template.Service.Selector) == 0 { template.Service.Selector = rs.Labels } + if len(template.Service.Ports) == 0 { + var ports []corev1.ServicePort + for _, ctr := range rs.Spec.Template.Spec.Containers { + for _, port := range ctr.Ports { + servicePort := corev1.ServicePort{ + Protocol: port.Protocol, + Port: port.ContainerPort, + TargetPort: intstr.FromInt(int(port.ContainerPort)), + } + ports = append(ports, servicePort) + } + } + template.Service.Ports = ports + } if svc == nil || svc.Name != templateServiceName { newService, err := ec.CreateService(templateServiceName, *template) if err != nil { From 303b29e89982a5db919dc86c66e2f87787d5283a Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sun, 23 Oct 2022 14:16:40 +0200 Subject: [PATCH 12/28] fix e2e disable service where service is not needed or expected set ports where service must be created Signed-off-by: Alex Eftimie --- test/e2e/functional/experiment-dry-run-analysis.yaml | 1 - .../experiment-measurement-retention-analysis.yaml | 1 - test/e2e/functional/experiment-with-service.yaml | 6 +++++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/test/e2e/functional/experiment-dry-run-analysis.yaml b/test/e2e/functional/experiment-dry-run-analysis.yaml index 466e38f612..181dff1531 100644 --- a/test/e2e/functional/experiment-dry-run-analysis.yaml +++ b/test/e2e/functional/experiment-dry-run-analysis.yaml @@ -28,7 +28,6 @@ spec: templates: - name: baseline replicas: 1 - service: {} selector: matchLabels: app: experiment-with-dry-run diff --git a/test/e2e/functional/experiment-measurement-retention-analysis.yaml b/test/e2e/functional/experiment-measurement-retention-analysis.yaml index 95da9274f7..85c6d284f2 100644 --- a/test/e2e/functional/experiment-measurement-retention-analysis.yaml +++ b/test/e2e/functional/experiment-measurement-retention-analysis.yaml @@ -31,7 +31,6 @@ spec: templates: - name: baseline replicas: 1 - service: {} selector: matchLabels: app: experiment-with-mr diff --git a/test/e2e/functional/experiment-with-service.yaml b/test/e2e/functional/experiment-with-service.yaml index d3f5a8c9eb..af6ab5dee9 100644 --- a/test/e2e/functional/experiment-with-service.yaml +++ b/test/e2e/functional/experiment-with-service.yaml @@ -9,7 +9,11 @@ spec: templates: - name: test replicas: 1 - service: {} + service: + ports: + - protocol: TCP + port: 80 + targetPort: 8080 selector: matchLabels: app: experiment-with-service From d1371cd4418de39d7fd479f0fb7c9b5830efaffd Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sun, 23 Oct 2022 15:31:58 +0200 Subject: [PATCH 13/28] use json inline so that crd reflects ports Signed-off-by: Alex Eftimie --- .../features/kustomize/rollout_cr_schema.json | 129 +++ manifests/crds/experiment-crd.yaml | 86 ++ manifests/crds/rollout-crd.yaml | 86 ++ manifests/install.yaml | 172 +++ manifests/namespace-install.yaml | 172 +++ pkg/apiclient/rollout/rollout.swagger.json | 157 +++ .../rollouts/v1alpha1/experiment_types.go | 2 +- pkg/apis/rollouts/v1alpha1/generated.pb.go | 1003 +++++++++-------- pkg/apis/rollouts/v1alpha1/generated.proto | 2 + ui/src/models/rollout/generated/api.ts | 196 ++++ 10 files changed, 1526 insertions(+), 479 deletions(-) diff --git a/docs/features/kustomize/rollout_cr_schema.json b/docs/features/kustomize/rollout_cr_schema.json index df7357fdda..dcb1b39dfb 100644 --- a/docs/features/kustomize/rollout_cr_schema.json +++ b/docs/features/kustomize/rollout_cr_schema.json @@ -12970,8 +12970,137 @@ }, "service": { "properties": { + "allocateLoadBalancerNodePorts": { + "type": "boolean" + }, + "clusterIP": { + "type": "string" + }, + "clusterIPs": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "externalIPs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "externalName": { + "type": "string" + }, + "externalTrafficPolicy": { + "type": "string" + }, + "healthCheckNodePort": { + "format": "int32", + "type": "integer" + }, + "internalTrafficPolicy": { + "type": "string" + }, + "ipFamilies": { + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "ipFamilyPolicy": { + "type": "string" + }, + "loadBalancerClass": { + "type": "string" + }, + "loadBalancerIP": { + "type": "string" + }, + "loadBalancerSourceRanges": { + "items": { + "type": "string" + }, + "type": "array" + }, "name": { "type": "string" + }, + "ports": { + "items": { + "properties": { + "appProtocol": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nodePort": { + "format": "int32", + "type": "integer" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "protocol": { + "default": "TCP", + "type": "string" + }, + "targetPort": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "port", + "protocol" + ], + "x-kubernetes-list-type": "map" + }, + "publishNotReadyAddresses": { + "type": "boolean" + }, + "selector": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "sessionAffinity": { + "type": "string" + }, + "sessionAffinityConfig": { + "properties": { + "clientIP": { + "properties": { + "timeoutSeconds": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": { + "type": "string" } }, "type": "object" diff --git a/manifests/crds/experiment-crd.yaml b/manifests/crds/experiment-crd.yaml index f856a4b9a9..28e9401070 100644 --- a/manifests/crds/experiment-crd.yaml +++ b/manifests/crds/experiment-crd.yaml @@ -150,8 +150,94 @@ spec: type: object service: properties: + allocateLoadBalancerNodePorts: + type: boolean + clusterIP: + type: string + clusterIPs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + externalIPs: + items: + type: string + type: array + externalName: + type: string + externalTrafficPolicy: + type: string + healthCheckNodePort: + format: int32 + type: integer + internalTrafficPolicy: + type: string + ipFamilies: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ipFamilyPolicy: + type: string + loadBalancerClass: + type: string + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array name: type: string + ports: + items: + properties: + appProtocol: + type: string + name: + type: string + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + protocol: + default: TCP + type: string + targetPort: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + x-kubernetes-list-map-keys: + - port + - protocol + x-kubernetes-list-type: map + publishNotReadyAddresses: + type: boolean + selector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + sessionAffinity: + type: string + sessionAffinityConfig: + properties: + clientIP: + properties: + timeoutSeconds: + format: int32 + type: integer + type: object + type: object + type: + type: string type: object template: properties: diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index 1cabae8d93..2cff8cde93 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -563,8 +563,94 @@ spec: type: object service: properties: + allocateLoadBalancerNodePorts: + type: boolean + clusterIP: + type: string + clusterIPs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + externalIPs: + items: + type: string + type: array + externalName: + type: string + externalTrafficPolicy: + type: string + healthCheckNodePort: + format: int32 + type: integer + internalTrafficPolicy: + type: string + ipFamilies: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ipFamilyPolicy: + type: string + loadBalancerClass: + type: string + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array name: type: string + ports: + items: + properties: + appProtocol: + type: string + name: + type: string + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + protocol: + default: TCP + type: string + targetPort: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + x-kubernetes-list-map-keys: + - port + - protocol + x-kubernetes-list-type: map + publishNotReadyAddresses: + type: boolean + selector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + sessionAffinity: + type: string + sessionAffinityConfig: + properties: + clientIP: + properties: + timeoutSeconds: + format: int32 + type: integer + type: object + type: object + type: + type: string type: object specRef: type: string diff --git a/manifests/install.yaml b/manifests/install.yaml index ce2320c5da..49a976435e 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -8558,8 +8558,94 @@ spec: type: object service: properties: + allocateLoadBalancerNodePorts: + type: boolean + clusterIP: + type: string + clusterIPs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + externalIPs: + items: + type: string + type: array + externalName: + type: string + externalTrafficPolicy: + type: string + healthCheckNodePort: + format: int32 + type: integer + internalTrafficPolicy: + type: string + ipFamilies: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ipFamilyPolicy: + type: string + loadBalancerClass: + type: string + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array name: type: string + ports: + items: + properties: + appProtocol: + type: string + name: + type: string + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + protocol: + default: TCP + type: string + targetPort: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + x-kubernetes-list-map-keys: + - port + - protocol + x-kubernetes-list-type: map + publishNotReadyAddresses: + type: boolean + selector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + sessionAffinity: + type: string + sessionAffinityConfig: + properties: + clientIP: + properties: + timeoutSeconds: + format: int32 + type: integer + type: object + type: object + type: + type: string type: object template: properties: @@ -11576,8 +11662,94 @@ spec: type: object service: properties: + allocateLoadBalancerNodePorts: + type: boolean + clusterIP: + type: string + clusterIPs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + externalIPs: + items: + type: string + type: array + externalName: + type: string + externalTrafficPolicy: + type: string + healthCheckNodePort: + format: int32 + type: integer + internalTrafficPolicy: + type: string + ipFamilies: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ipFamilyPolicy: + type: string + loadBalancerClass: + type: string + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array name: type: string + ports: + items: + properties: + appProtocol: + type: string + name: + type: string + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + protocol: + default: TCP + type: string + targetPort: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + x-kubernetes-list-map-keys: + - port + - protocol + x-kubernetes-list-type: map + publishNotReadyAddresses: + type: boolean + selector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + sessionAffinity: + type: string + sessionAffinityConfig: + properties: + clientIP: + properties: + timeoutSeconds: + format: int32 + type: integer + type: object + type: object + type: + type: string type: object specRef: type: string diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index 09c644b486..cdbf8e42a9 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -8558,8 +8558,94 @@ spec: type: object service: properties: + allocateLoadBalancerNodePorts: + type: boolean + clusterIP: + type: string + clusterIPs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + externalIPs: + items: + type: string + type: array + externalName: + type: string + externalTrafficPolicy: + type: string + healthCheckNodePort: + format: int32 + type: integer + internalTrafficPolicy: + type: string + ipFamilies: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ipFamilyPolicy: + type: string + loadBalancerClass: + type: string + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array name: type: string + ports: + items: + properties: + appProtocol: + type: string + name: + type: string + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + protocol: + default: TCP + type: string + targetPort: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + x-kubernetes-list-map-keys: + - port + - protocol + x-kubernetes-list-type: map + publishNotReadyAddresses: + type: boolean + selector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + sessionAffinity: + type: string + sessionAffinityConfig: + properties: + clientIP: + properties: + timeoutSeconds: + format: int32 + type: integer + type: object + type: object + type: + type: string type: object template: properties: @@ -11576,8 +11662,94 @@ spec: type: object service: properties: + allocateLoadBalancerNodePorts: + type: boolean + clusterIP: + type: string + clusterIPs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + externalIPs: + items: + type: string + type: array + externalName: + type: string + externalTrafficPolicy: + type: string + healthCheckNodePort: + format: int32 + type: integer + internalTrafficPolicy: + type: string + ipFamilies: + items: + type: string + type: array + x-kubernetes-list-type: atomic + ipFamilyPolicy: + type: string + loadBalancerClass: + type: string + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array name: type: string + ports: + items: + properties: + appProtocol: + type: string + name: + type: string + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + protocol: + default: TCP + type: string + targetPort: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + x-kubernetes-list-map-keys: + - port + - protocol + x-kubernetes-list-type: map + publishNotReadyAddresses: + type: boolean + selector: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: atomic + sessionAffinity: + type: string + sessionAffinityConfig: + properties: + clientIP: + properties: + timeoutSeconds: + format: int32 + type: integer + type: object + type: object + type: + type: string type: object specRef: type: string diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index 27c684fa7a..1aa480ead8 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -1734,6 +1734,9 @@ "properties": { "name": { "type": "string" + }, + "serviceSpec": { + "$ref": "#/definitions/k8s.io.api.core.v1.ServiceSpec" } } }, @@ -2041,6 +2044,17 @@ }, "description": "Represents a cinder volume resource in Openstack.\nA Cinder volume must exist before mounting to a container.\nThe volume must also be in the same region as the kubelet.\nCinder volumes support ownership management and SELinux relabeling." }, + "k8s.io.api.core.v1.ClientIPConfig": { + "type": "object", + "properties": { + "timeoutSeconds": { + "type": "integer", + "format": "int32", + "title": "timeoutSeconds specifies the seconds of ClientIP type session sticky time.\nThe value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\".\nDefault value is 10800(for 3 hours).\n+optional" + } + }, + "description": "ClientIPConfig represents the configurations of Client IP based session affinity." + }, "k8s.io.api.core.v1.ConfigMapEnvSource": { "type": "object", "properties": { @@ -3900,6 +3914,149 @@ }, "description": "ServiceAccountTokenProjection represents a projected service account token\nvolume. This projection can be used to insert a service account token into\nthe pods runtime filesystem for use against APIs (Kubernetes API Server or\notherwise)." }, + "k8s.io.api.core.v1.ServicePort": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The name of this port within the service. This must be a DNS_LABEL.\nAll ports within a ServiceSpec must have unique names. When considering\nthe endpoints for a Service, this must match the 'name' field in the\nEndpointPort.\nOptional if only one ServicePort is defined on this service.\n+optional" + }, + "protocol": { + "type": "string", + "title": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\".\nDefault is TCP.\n+default=\"TCP\"\n+optional" + }, + "appProtocol": { + "type": "string", + "title": "The application protocol for this port.\nThis field follows standard Kubernetes label syntax.\nUn-prefixed names are reserved for IANA standard service names (as per\nRFC-6335 and https://www.iana.org/assignments/service-names).\nNon-standard protocols should use prefixed names such as\nmycompany.com/my-custom-protocol.\n+optional" + }, + "port": { + "type": "integer", + "format": "int32", + "description": "The port that will be exposed by this service." + }, + "targetPort": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", + "title": "Number or name of the port to access on the pods targeted by the service.\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\nIf this is a string, it will be looked up as a named port in the\ntarget Pod's container ports. If this is not specified, the value\nof the 'port' field is used (an identity map).\nThis field is ignored for services with clusterIP=None, and should be\nomitted or set equal to the 'port' field.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\n+optional" + }, + "nodePort": { + "type": "integer", + "format": "int32", + "title": "The port on each node on which this service is exposed when type is\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\nspecified, in-range, and not in use it will be used, otherwise the\noperation will fail. If not specified, a port will be allocated if this\nService requires one. If this field is specified when creating a\nService which does not need it, creation will fail. This field will be\nwiped when updating a Service to no longer need it (e.g. changing type\nfrom NodePort to ClusterIP).\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\n+optional" + } + }, + "description": "ServicePort contains information on service's port." + }, + "k8s.io.api.core.v1.ServiceSpec": { + "type": "object", + "properties": { + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.ServicePort" + }, + "title": "The list of ports that are exposed by this service.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+patchMergeKey=port\n+patchStrategy=merge\n+listType=map\n+listMapKey=port\n+listMapKey=protocol" + }, + "selector": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Route service traffic to pods with label keys and values matching this\nselector. If empty or not present, the service is assumed to have an\nexternal process managing its endpoints, which Kubernetes will not\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\nIgnored if type is ExternalName.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\n+optional\n+mapType=atomic" + }, + "clusterIP": { + "type": "string", + "title": "clusterIP is the IP address of the service and is usually assigned\nrandomly. If an address is specified manually, is in-range (as per\nsystem configuration), and is not in use, it will be allocated to the\nservice; otherwise creation of the service will fail. This field may not\nbe changed through updates unless the type field is also being changed\nto ExternalName (which requires this field to be blank) or the type\nfield is being changed from ExternalName (in which case this field may\noptionally be specified, as describe above). Valid values are \"None\",\nempty string (\"\"), or a valid IP address. Setting this to \"None\" makes a\n\"headless service\" (no virtual IP), which is useful when direct endpoint\nconnections are preferred and proxying is not required. Only applies to\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\nwhen creating a Service of type ExternalName, creation will fail. This\nfield will be wiped when updating a Service to type ExternalName.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+optional" + }, + "clusterIPs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ClusterIPs is a list of IP addresses assigned to this service, and are\nusually assigned randomly. If an address is specified manually, is\nin-range (as per system configuration), and is not in use, it will be\nallocated to the service; otherwise creation of the service will fail.\nThis field may not be changed through updates unless the type field is\nalso being changed to ExternalName (which requires this field to be\nempty) or the type field is being changed from ExternalName (in which\ncase this field may optionally be specified, as describe above). Valid\nvalues are \"None\", empty string (\"\"), or a valid IP address. Setting\nthis to \"None\" makes a \"headless service\" (no virtual IP), which is\nuseful when direct endpoint connections are preferred and proxying is\nnot required. Only applies to types ClusterIP, NodePort, and\nLoadBalancer. If this field is specified when creating a Service of type\nExternalName, creation will fail. This field will be wiped when updating\na Service to type ExternalName. If this field is not specified, it will\nbe initialized from the clusterIP field. If this field is specified,\nclients must ensure that clusterIPs[0] and clusterIP have the same\nvalue.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\nThese IPs must correspond to the values of the ipFamilies field. Both\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+listType=atomic\n+optional" + }, + "type": { + "type": "string", + "title": "type determines how the Service is exposed. Defaults to ClusterIP. Valid\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\n\"ClusterIP\" allocates a cluster-internal IP address for load-balancing\nto endpoints. Endpoints are determined by the selector or if that is not\nspecified, by manual construction of an Endpoints object or\nEndpointSlice objects. If clusterIP is \"None\", no virtual IP is\nallocated and the endpoints are published as a set of endpoints rather\nthan a virtual IP.\n\"NodePort\" builds on ClusterIP and allocates a port on every node which\nroutes to the same endpoints as the clusterIP.\n\"LoadBalancer\" builds on NodePort and creates an external load-balancer\n(if supported in the current cloud) which routes to the same endpoints\nas the clusterIP.\n\"ExternalName\" aliases this service to the specified externalName.\nSeveral other fields do not apply to ExternalName services.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n+optional" + }, + "externalIPs": { + "type": "array", + "items": { + "type": "string" + }, + "title": "externalIPs is a list of IP addresses for which nodes in the cluster\nwill also accept traffic for this service. These IPs are not managed by\nKubernetes. The user is responsible for ensuring that traffic arrives\nat a node with this IP. A common example is external load-balancers\nthat are not part of the Kubernetes system.\n+optional" + }, + "sessionAffinity": { + "type": "string", + "title": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity.\nEnable client IP based session affinity.\nMust be ClientIP or None.\nDefaults to None.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+optional" + }, + "loadBalancerIP": { + "type": "string", + "title": "Only applies to Service Type: LoadBalancer.\nThis feature depends on whether the underlying cloud-provider supports specifying\nthe loadBalancerIP when a load balancer is created.\nThis field will be ignored if the cloud-provider does not support the feature.\nDeprecated: This field was under-specified and its meaning varies across implementations,\nand it cannot support dual-stack.\nAs of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available.\nThis field may be removed in a future API version.\n+optional" + }, + "loadBalancerSourceRanges": { + "type": "array", + "items": { + "type": "string" + }, + "title": "If specified and supported by the platform, this will restrict traffic through the cloud-provider\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\ncloud-provider does not support the feature.\"\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\n+optional" + }, + "externalName": { + "type": "string", + "title": "externalName is the external reference that discovery mechanisms will\nreturn as an alias for this service (e.g. a DNS CNAME record). No\nproxying will be involved. Must be a lowercase RFC-1123 hostname\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".\n+optional" + }, + "externalTrafficPolicy": { + "type": "string", + "title": "externalTrafficPolicy denotes if this Service desires to route external\ntraffic to node-local or cluster-wide endpoints. \"Local\" preserves the\nclient source IP and avoids a second hop for LoadBalancer and Nodeport\ntype services, but risks potentially imbalanced traffic spreading.\n\"Cluster\" obscures the client source IP and may cause a second hop to\nanother node, but should have good overall load-spreading.\n+optional" + }, + "healthCheckNodePort": { + "type": "integer", + "format": "int32", + "title": "healthCheckNodePort specifies the healthcheck nodePort for the service.\nThis only applies when type is set to LoadBalancer and\nexternalTrafficPolicy is set to Local. If a value is specified, is\nin-range, and is not in use, it will be used. If not specified, a value\nwill be automatically allocated. External systems (e.g. load-balancers)\ncan use this port to determine if a given node holds endpoints for this\nservice or not. If this field is specified when creating a Service\nwhich does not need it, creation will fail. This field will be wiped\nwhen updating a Service to no longer need it (e.g. changing type).\n+optional" + }, + "publishNotReadyAddresses": { + "type": "boolean", + "title": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this\nService should disregard any indications of ready/not-ready.\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\nServices interpret this to mean that all endpoints are considered \"ready\" even if the\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\n+optional" + }, + "sessionAffinityConfig": { + "$ref": "#/definitions/k8s.io.api.core.v1.SessionAffinityConfig", + "title": "sessionAffinityConfig contains the configurations of session affinity.\n+optional" + }, + "ipFamilies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\nservice. This field is usually assigned automatically based on cluster\nconfiguration and the ipFamilyPolicy field. If this field is specified\nmanually, the requested family is available in the cluster,\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\nthe service will fail. This field is conditionally mutable: it allows\nfor adding or removing a secondary IP family, but it does not allow\nchanging the primary IP family of the Service. Valid values are \"IPv4\"\nand \"IPv6\". This field only applies to Services of types ClusterIP,\nNodePort, and LoadBalancer, and does apply to \"headless\" services.\nThis field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in\neither order). These families must correspond to the values of the\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\ngoverned by the ipFamilyPolicy field.\n+listType=atomic\n+optional" + }, + "ipFamilyPolicy": { + "type": "string", + "title": "IPFamilyPolicy represents the dual-stack-ness requested or required by\nthis Service. If there is no value provided, then this field will be set\nto SingleStack. Services can be \"SingleStack\" (a single IP family),\n\"PreferDualStack\" (two IP families on dual-stack configured clusters or\na single IP family on single-stack clusters), or \"RequireDualStack\"\n(two IP families on dual-stack configured clusters, otherwise fail). The\nipFamilies and clusterIPs fields depend on the value of this field. This\nfield will be wiped when updating a service to type ExternalName.\n+optional" + }, + "allocateLoadBalancerNodePorts": { + "type": "boolean", + "title": "allocateLoadBalancerNodePorts defines if NodePorts will be automatically\nallocated for services with type LoadBalancer. Default is \"true\". It\nmay be set to \"false\" if the cluster load-balancer does not rely on\nNodePorts. If the caller requests specific NodePorts (by specifying a\nvalue), those requests will be respected, regardless of this field.\nThis field may only be set for services with type LoadBalancer and will\nbe cleared if the type is changed to any other type.\n+optional" + }, + "loadBalancerClass": { + "type": "string", + "title": "loadBalancerClass is the class of the load balancer implementation this Service belongs to.\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\ne.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users.\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\nbalancer implementation is used, today this is typically done through the cloud provider integration,\nbut should apply for any default implementation. If set, it is assumed that a load balancer\nimplementation is watching for Services with a matching class. Any default load balancer\nimplementation (e.g. cloud providers) should ignore Services that set this field.\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\n+featureGate=LoadBalancerClass\n+optional" + }, + "internalTrafficPolicy": { + "type": "string", + "title": "InternalTrafficPolicy specifies if the cluster internal traffic\nshould be routed to all endpoints or node-local endpoints only.\n\"Cluster\" routes internal traffic to a Service to all endpoints.\n\"Local\" routes traffic to node-local endpoints only, traffic is\ndropped if no node-local endpoints are ready.\nThe default value is \"Cluster\".\n+featureGate=ServiceInternalTrafficPolicy\n+optional" + } + }, + "description": "ServiceSpec describes the attributes that a user creates on a service." + }, + "k8s.io.api.core.v1.SessionAffinityConfig": { + "type": "object", + "properties": { + "clientIP": { + "$ref": "#/definitions/k8s.io.api.core.v1.ClientIPConfig", + "title": "clientIP contains the configurations of Client IP based session affinity.\n+optional" + } + }, + "description": "SessionAffinityConfig represents the configurations of session affinity." + }, "k8s.io.api.core.v1.StorageOSVolumeSource": { "type": "object", "properties": { diff --git a/pkg/apis/rollouts/v1alpha1/experiment_types.go b/pkg/apis/rollouts/v1alpha1/experiment_types.go index 481691b2ad..93786137b6 100644 --- a/pkg/apis/rollouts/v1alpha1/experiment_types.go +++ b/pkg/apis/rollouts/v1alpha1/experiment_types.go @@ -91,7 +91,7 @@ type TemplateSpec struct { type TemplateService struct { Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - corev1.ServiceSpec `json:"-"` + corev1.ServiceSpec `json:",inline"` } type TemplateStatusCode string diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index b87feada01..9e889974ad 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -3084,484 +3084,485 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 7618 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xd7, - 0x75, 0xb0, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x9f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, - 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0x3e, 0x27, 0x36, 0xfc, 0x95, 0x94, 0x76, - 0xbd, 0x5a, 0x4b, 0xbb, 0xdc, 0x4b, 0xed, 0x6e, 0xe2, 0xc4, 0x49, 0x46, 0xe4, 0x15, 0x35, 0xbb, - 0xe4, 0x0c, 0x33, 0x33, 0xd4, 0xae, 0x1c, 0x23, 0xb1, 0x1b, 0xd8, 0x4d, 0x8b, 0x04, 0x71, 0x9b, - 0x04, 0x45, 0x51, 0xb4, 0x48, 0x0b, 0x03, 0xfd, 0x49, 0x9f, 0x82, 0x16, 0x7d, 0x09, 0xd0, 0xa2, - 0xf9, 0x69, 0xfa, 0x90, 0x22, 0x29, 0xd0, 0x26, 0x29, 0x10, 0xb6, 0x56, 0xfa, 0xd2, 0xa2, 0x45, - 0x50, 0x20, 0x45, 0x91, 0x7d, 0x2a, 0xee, 0xef, 0xdc, 0x19, 0x0e, 0x25, 0x52, 0x1c, 0x6d, 0x8c, - 0x36, 0x6f, 0xe4, 0x3d, 0xe7, 0x9e, 0x73, 0xff, 0xcf, 0xb9, 0xe7, 0x9e, 0x73, 0x06, 0xd6, 0x1b, - 0x76, 0xb0, 0xd3, 0xd9, 0x5a, 0xaa, 0xb9, 0xad, 0x65, 0xcb, 0x6b, 0xb8, 0x6d, 0xcf, 0xbd, 0xc1, - 0x7e, 0xbc, 0xcb, 0x73, 0x9b, 0x4d, 0xb7, 0x13, 0xf8, 0xcb, 0xed, 0x9b, 0x8d, 0x65, 0xab, 0x6d, - 0xfb, 0xcb, 0xaa, 0x64, 0xf7, 0x3d, 0x56, 0xb3, 0xbd, 0x63, 0xbd, 0x67, 0xb9, 0x41, 0x1c, 0xe2, - 0x59, 0x01, 0xa9, 0x2f, 0xb5, 0x3d, 0x37, 0x70, 0xd1, 0xd3, 0x21, 0xb5, 0x25, 0x49, 0x8d, 0xfd, - 0xf8, 0x88, 0xac, 0xbb, 0xd4, 0xbe, 0xd9, 0x58, 0xa2, 0xd4, 0x96, 0x54, 0x89, 0xa4, 0xb6, 0xf8, - 0x2e, 0xad, 0x2d, 0x0d, 0xb7, 0xe1, 0x2e, 0x33, 0xa2, 0x5b, 0x9d, 0x6d, 0xf6, 0x8f, 0xfd, 0x61, - 0xbf, 0x38, 0xb3, 0xc5, 0x07, 0x6f, 0x3e, 0xe9, 0x2f, 0xd9, 0x2e, 0x6d, 0xdb, 0xf2, 0x96, 0x15, - 0xd4, 0x76, 0x96, 0x77, 0x7b, 0x5a, 0xb4, 0x68, 0x6a, 0x48, 0x35, 0xd7, 0x23, 0x49, 0x38, 0x8f, - 0x87, 0x38, 0x2d, 0xab, 0xb6, 0x63, 0x3b, 0xc4, 0xdb, 0x0b, 0x7b, 0xdd, 0x22, 0x81, 0x95, 0x54, - 0x6b, 0xb9, 0x5f, 0x2d, 0xaf, 0xe3, 0x04, 0x76, 0x8b, 0xf4, 0x54, 0xf8, 0xbf, 0x87, 0x55, 0xf0, - 0x6b, 0x3b, 0xa4, 0x65, 0xf5, 0xd4, 0x7b, 0xac, 0x5f, 0xbd, 0x4e, 0x60, 0x37, 0x97, 0x6d, 0x27, - 0xf0, 0x03, 0x2f, 0x5e, 0xc9, 0xfc, 0x7a, 0x16, 0x0a, 0xa5, 0xf5, 0x72, 0x35, 0xb0, 0x82, 0x8e, - 0x8f, 0x5e, 0x33, 0x60, 0xaa, 0xe9, 0x5a, 0xf5, 0xb2, 0xd5, 0xb4, 0x9c, 0x1a, 0xf1, 0x16, 0x8c, - 0x07, 0x8c, 0x87, 0x27, 0x1f, 0x5d, 0x5f, 0x1a, 0x65, 0xbe, 0x96, 0x4a, 0xb7, 0x7c, 0x4c, 0x7c, - 0xb7, 0xe3, 0xd5, 0x08, 0x26, 0xdb, 0xe5, 0xf9, 0x6f, 0x75, 0x8b, 0xf7, 0xec, 0x77, 0x8b, 0x53, - 0xeb, 0x1a, 0x27, 0x1c, 0xe1, 0x8b, 0xbe, 0x68, 0xc0, 0x5c, 0xcd, 0x72, 0x2c, 0x6f, 0x6f, 0xd3, - 0xf2, 0x1a, 0x24, 0x78, 0xd6, 0x73, 0x3b, 0xed, 0x85, 0xcc, 0x31, 0xb4, 0xe6, 0x5e, 0xd1, 0x9a, - 0xb9, 0x95, 0x38, 0x3b, 0xdc, 0xdb, 0x02, 0xd6, 0x2e, 0x3f, 0xb0, 0xb6, 0x9a, 0x44, 0x6f, 0x57, - 0xf6, 0x38, 0xdb, 0x55, 0x8d, 0xb3, 0xc3, 0xbd, 0x2d, 0x30, 0x5f, 0xcd, 0xc2, 0x5c, 0x69, 0xbd, - 0xbc, 0xe9, 0x59, 0xdb, 0xdb, 0x76, 0x0d, 0xbb, 0x9d, 0xc0, 0x76, 0x1a, 0xe8, 0x9d, 0x30, 0x61, - 0x3b, 0x0d, 0x8f, 0xf8, 0x3e, 0x9b, 0xc8, 0x42, 0x79, 0x46, 0x10, 0x9d, 0x58, 0xe3, 0xc5, 0x58, - 0xc2, 0xd1, 0x13, 0x30, 0xe9, 0x13, 0x6f, 0xd7, 0xae, 0x91, 0x8a, 0xeb, 0x05, 0x6c, 0xa4, 0x73, - 0xe5, 0x93, 0x02, 0x7d, 0xb2, 0x1a, 0x82, 0xb0, 0x8e, 0x47, 0xab, 0x79, 0xae, 0x1b, 0x08, 0x38, - 0x1b, 0x88, 0x42, 0x58, 0x0d, 0x87, 0x20, 0xac, 0xe3, 0xa1, 0xd7, 0x0d, 0x98, 0xf5, 0x03, 0xbb, - 0x76, 0xd3, 0x76, 0x88, 0xef, 0xaf, 0xb8, 0xce, 0xb6, 0xdd, 0x58, 0xc8, 0xb1, 0x51, 0xbc, 0x34, - 0xda, 0x28, 0x56, 0x63, 0x54, 0xcb, 0xf3, 0xfb, 0xdd, 0xe2, 0x6c, 0xbc, 0x14, 0xf7, 0x70, 0x47, - 0xab, 0x30, 0x6b, 0x39, 0x8e, 0x1b, 0x58, 0x81, 0xed, 0x3a, 0x15, 0x8f, 0x6c, 0xdb, 0xb7, 0x17, - 0xc6, 0x58, 0x77, 0x16, 0x44, 0x77, 0x66, 0x4b, 0x31, 0x38, 0xee, 0xa9, 0x61, 0xae, 0xc2, 0x42, - 0xa9, 0xb5, 0x65, 0xf9, 0xbe, 0x55, 0x77, 0xbd, 0xd8, 0x6c, 0x3c, 0x0c, 0xf9, 0x96, 0xd5, 0x6e, - 0xdb, 0x4e, 0x83, 0x4e, 0x47, 0xf6, 0xe1, 0x42, 0x79, 0x6a, 0xbf, 0x5b, 0xcc, 0x6f, 0x88, 0x32, - 0xac, 0xa0, 0xe6, 0x0f, 0x32, 0x30, 0x59, 0x72, 0xac, 0xe6, 0x9e, 0x6f, 0xfb, 0xb8, 0xe3, 0xa0, - 0x8f, 0x42, 0x9e, 0x9e, 0x2e, 0x75, 0x2b, 0xb0, 0xc4, 0x8e, 0x7c, 0xf7, 0x12, 0xdf, 0xec, 0x4b, - 0xfa, 0x66, 0x0f, 0xc7, 0x85, 0x62, 0x2f, 0xed, 0xbe, 0x67, 0xe9, 0xf2, 0xd6, 0x0d, 0x52, 0x0b, - 0x36, 0x48, 0x60, 0x95, 0x91, 0xe8, 0x05, 0x84, 0x65, 0x58, 0x51, 0x45, 0x2e, 0x8c, 0xf9, 0x6d, - 0x52, 0x13, 0x3b, 0x6c, 0x63, 0xc4, 0x95, 0x1c, 0x36, 0xbd, 0xda, 0x26, 0xb5, 0xf2, 0x94, 0x60, - 0x3d, 0x46, 0xff, 0x61, 0xc6, 0x08, 0xdd, 0x82, 0x71, 0x9f, 0x9d, 0x39, 0x62, 0xf3, 0x5c, 0x4e, - 0x8f, 0x25, 0x23, 0x5b, 0x9e, 0x16, 0x4c, 0xc7, 0xf9, 0x7f, 0x2c, 0xd8, 0x99, 0x7f, 0x6f, 0xc0, - 0x49, 0x0d, 0xbb, 0xe4, 0x35, 0x3a, 0x2d, 0xe2, 0x04, 0xe8, 0x01, 0x18, 0x73, 0xac, 0x16, 0x11, - 0x1b, 0x45, 0x35, 0xf9, 0x92, 0xd5, 0x22, 0x98, 0x41, 0xd0, 0x83, 0x90, 0xdb, 0xb5, 0x9a, 0x1d, - 0xc2, 0x06, 0xa9, 0x50, 0x3e, 0x21, 0x50, 0x72, 0xd7, 0x68, 0x21, 0xe6, 0x30, 0xf4, 0x12, 0x14, - 0xd8, 0x8f, 0xf3, 0x9e, 0xdb, 0x4a, 0xa9, 0x6b, 0xa2, 0x85, 0xd7, 0x24, 0xd9, 0xf2, 0x89, 0xfd, - 0x6e, 0xb1, 0xa0, 0xfe, 0xe2, 0x90, 0xa1, 0xf9, 0x0f, 0x06, 0xcc, 0x68, 0x9d, 0x5b, 0xb7, 0xfd, - 0x00, 0x7d, 0xa8, 0x67, 0xf1, 0x2c, 0x0d, 0xb6, 0x78, 0x68, 0x6d, 0xb6, 0x74, 0x66, 0x45, 0x4f, - 0xf3, 0xb2, 0x44, 0x5b, 0x38, 0x0e, 0xe4, 0xec, 0x80, 0xb4, 0xfc, 0x85, 0xcc, 0x03, 0xd9, 0x87, - 0x27, 0x1f, 0x5d, 0x4b, 0x6d, 0x1a, 0xc3, 0xf1, 0x5d, 0xa3, 0xf4, 0x31, 0x67, 0x63, 0x7e, 0x65, - 0x2c, 0xd2, 0x43, 0xba, 0xa2, 0x90, 0x0b, 0x13, 0x2d, 0x12, 0x78, 0x76, 0x8d, 0xef, 0xab, 0xc9, - 0x47, 0x57, 0x47, 0x6b, 0xc5, 0x06, 0x23, 0x16, 0x1e, 0x96, 0xfc, 0xbf, 0x8f, 0x25, 0x17, 0xb4, - 0x03, 0x63, 0x96, 0xd7, 0x90, 0x7d, 0x3e, 0x9f, 0xce, 0xfc, 0x86, 0x6b, 0xae, 0xe4, 0x35, 0x7c, - 0xcc, 0x38, 0xa0, 0x65, 0x28, 0x04, 0xc4, 0x6b, 0xd9, 0x8e, 0x15, 0xf0, 0xd3, 0x35, 0x5f, 0x9e, - 0x13, 0x68, 0x85, 0x4d, 0x09, 0xc0, 0x21, 0x0e, 0x6a, 0xc2, 0x78, 0xdd, 0xdb, 0xc3, 0x1d, 0x67, - 0x61, 0x2c, 0x8d, 0xa1, 0x58, 0x65, 0xb4, 0xc2, 0xcd, 0xc4, 0xff, 0x63, 0xc1, 0x03, 0xbd, 0x61, - 0xc0, 0x7c, 0x8b, 0x58, 0x7e, 0xc7, 0x23, 0xb4, 0x0b, 0x98, 0x04, 0xc4, 0xa1, 0xa7, 0xe1, 0x42, - 0x8e, 0x31, 0xc7, 0xa3, 0xce, 0x43, 0x2f, 0xe5, 0xf2, 0xfd, 0xa2, 0x29, 0xf3, 0x49, 0x50, 0x9c, - 0xd8, 0x1a, 0xf3, 0x07, 0x63, 0x30, 0xd7, 0x73, 0x42, 0xa0, 0xc7, 0x21, 0xd7, 0xde, 0xb1, 0x7c, - 0xb9, 0xe5, 0xcf, 0xca, 0xf5, 0x56, 0xa1, 0x85, 0x77, 0xba, 0xc5, 0x13, 0xb2, 0x0a, 0x2b, 0xc0, - 0x1c, 0x99, 0xca, 0xd4, 0x16, 0xf1, 0x7d, 0xab, 0x21, 0xcf, 0x01, 0x6d, 0x99, 0xb0, 0x62, 0x2c, - 0xe1, 0xe8, 0x97, 0x0c, 0x38, 0xc1, 0x97, 0x0c, 0x26, 0x7e, 0xa7, 0x19, 0xd0, 0xb3, 0x8e, 0x0e, - 0xcb, 0xc5, 0x34, 0x96, 0x27, 0x27, 0x59, 0x3e, 0x25, 0xb8, 0x9f, 0xd0, 0x4b, 0x7d, 0x1c, 0xe5, - 0x8b, 0xae, 0x43, 0xc1, 0x0f, 0x2c, 0x2f, 0x20, 0xf5, 0x52, 0xc0, 0xa4, 0xda, 0xe4, 0xa3, 0xff, - 0x7b, 0xb0, 0x43, 0x60, 0xd3, 0x6e, 0x11, 0x7e, 0xe0, 0x54, 0x25, 0x01, 0x1c, 0xd2, 0x42, 0x2f, - 0x01, 0x78, 0x1d, 0xa7, 0xda, 0x69, 0xb5, 0x2c, 0x6f, 0x4f, 0x48, 0xf0, 0x0b, 0xa3, 0x75, 0x0f, - 0x2b, 0x7a, 0xa1, 0xcc, 0x0a, 0xcb, 0xb0, 0xc6, 0x0f, 0xbd, 0x62, 0xc0, 0x09, 0xbe, 0x12, 0x65, - 0x0b, 0xc6, 0x53, 0x6e, 0xc1, 0x1c, 0x1d, 0xda, 0x55, 0x9d, 0x05, 0x8e, 0x72, 0x34, 0xff, 0x36, - 0x2a, 0x4f, 0xaa, 0x01, 0xd5, 0xae, 0x1b, 0x7b, 0xe8, 0x83, 0x70, 0xaf, 0xdf, 0xa9, 0xd5, 0x88, - 0xef, 0x6f, 0x77, 0x9a, 0xb8, 0xe3, 0x5c, 0xb0, 0xfd, 0xc0, 0xf5, 0xf6, 0xd6, 0xed, 0x96, 0x1d, - 0xb0, 0x15, 0x97, 0x2b, 0x9f, 0xd9, 0xef, 0x16, 0xef, 0xad, 0xf6, 0x43, 0xc2, 0xfd, 0xeb, 0x23, - 0x0b, 0xee, 0xeb, 0x38, 0xfd, 0xc9, 0x73, 0xed, 0xad, 0xb8, 0xdf, 0x2d, 0xde, 0x77, 0xb5, 0x3f, - 0x1a, 0x3e, 0x88, 0x86, 0xf9, 0x2f, 0x06, 0xcc, 0xca, 0x7e, 0x6d, 0x92, 0x56, 0xbb, 0x49, 0x4f, - 0x97, 0xe3, 0x57, 0x44, 0x82, 0x88, 0x22, 0x82, 0xd3, 0x11, 0x27, 0xb2, 0xfd, 0xfd, 0xb4, 0x11, - 0xf3, 0x9f, 0x0d, 0x98, 0x8f, 0x23, 0xdf, 0x05, 0xe1, 0xe9, 0x47, 0x85, 0xe7, 0xa5, 0x74, 0x7b, - 0xdb, 0x47, 0x82, 0xbe, 0x36, 0xd6, 0xdb, 0xd7, 0xff, 0xee, 0x62, 0x34, 0x94, 0x8a, 0xd9, 0x9f, - 0xa5, 0x54, 0x1c, 0x7b, 0x4b, 0x49, 0xc5, 0xdf, 0x1f, 0x83, 0xa9, 0x92, 0x13, 0xd8, 0xa5, 0xed, - 0x6d, 0xdb, 0xb1, 0x83, 0x3d, 0xf4, 0x99, 0x0c, 0x2c, 0xb7, 0x3d, 0xb2, 0x4d, 0x3c, 0x8f, 0xd4, - 0x57, 0x3b, 0x9e, 0xed, 0x34, 0xaa, 0xb5, 0x1d, 0x52, 0xef, 0x34, 0x6d, 0xa7, 0xb1, 0xd6, 0x70, - 0x5c, 0x55, 0x7c, 0xee, 0x36, 0xa9, 0x75, 0x58, 0x97, 0xf8, 0xa6, 0x68, 0x8d, 0xd6, 0xa5, 0xca, - 0x70, 0x4c, 0xcb, 0x8f, 0xed, 0x77, 0x8b, 0xcb, 0x43, 0x56, 0xc2, 0xc3, 0x76, 0x0d, 0x7d, 0x3a, - 0x03, 0x4b, 0x1e, 0xf9, 0x58, 0xc7, 0x1e, 0x7c, 0x34, 0xf8, 0xa9, 0xd5, 0x1c, 0x51, 0xfc, 0x0c, - 0xc5, 0xb3, 0xfc, 0xe8, 0x7e, 0xb7, 0x38, 0x64, 0x1d, 0x3c, 0x64, 0xbf, 0xcc, 0xaf, 0x65, 0xe0, - 0x54, 0xa9, 0xdd, 0xde, 0x20, 0xfe, 0x4e, 0xec, 0x52, 0xfb, 0x39, 0x03, 0xa6, 0x77, 0x6d, 0x2f, - 0xe8, 0x58, 0x4d, 0x69, 0x04, 0xe0, 0x4b, 0xa2, 0x3a, 0xe2, 0x76, 0xe6, 0xdc, 0xae, 0x45, 0x48, - 0x97, 0xd1, 0x7e, 0xb7, 0x38, 0x1d, 0x2d, 0xc3, 0x31, 0xf6, 0xe8, 0xd7, 0x0d, 0x98, 0x15, 0x45, - 0x97, 0xdc, 0x3a, 0xd1, 0x2d, 0x47, 0x57, 0xd3, 0x6c, 0x93, 0x22, 0xce, 0x4d, 0x0c, 0xf1, 0x52, - 0xdc, 0xd3, 0x08, 0xf3, 0xdf, 0x32, 0x70, 0xba, 0x0f, 0x0d, 0xf4, 0x7b, 0x06, 0xcc, 0x73, 0x73, - 0x93, 0x06, 0xc2, 0x64, 0x5b, 0x8c, 0xe6, 0x07, 0xd2, 0x6e, 0x39, 0xa6, 0x7b, 0x81, 0x38, 0x35, - 0x52, 0x5e, 0xa0, 0xc7, 0xc6, 0x4a, 0x02, 0x6b, 0x9c, 0xd8, 0x20, 0xd6, 0x52, 0x6e, 0x80, 0x8a, - 0xb5, 0x34, 0x73, 0x57, 0x5a, 0x5a, 0x4d, 0x60, 0x8d, 0x13, 0x1b, 0x64, 0xfe, 0x7f, 0xb8, 0xef, - 0x00, 0x72, 0x87, 0xdf, 0xf8, 0xcd, 0x17, 0xd4, 0xaa, 0x8f, 0xae, 0xb9, 0x01, 0x8c, 0x05, 0x26, - 0x8c, 0x7b, 0x6e, 0x27, 0x20, 0x5c, 0xba, 0x15, 0xca, 0x40, 0xe5, 0x04, 0x66, 0x25, 0x58, 0x40, - 0xcc, 0xaf, 0x19, 0x90, 0x1f, 0xc2, 0xfe, 0x50, 0x8c, 0xda, 0x1f, 0x0a, 0x3d, 0xb6, 0x87, 0xa0, - 0xd7, 0xf6, 0xf0, 0xec, 0x68, 0xb3, 0x31, 0x88, 0xcd, 0xe1, 0xc7, 0x06, 0xcc, 0xf5, 0xd8, 0x28, - 0xd0, 0x0e, 0xcc, 0xb7, 0xdd, 0xba, 0xd4, 0x2f, 0x2e, 0x58, 0xfe, 0x0e, 0x83, 0x89, 0xee, 0x3d, - 0x4e, 0x67, 0xb2, 0x92, 0x00, 0xbf, 0xd3, 0x2d, 0x2e, 0x28, 0x22, 0x31, 0x04, 0x9c, 0x48, 0x11, - 0xb5, 0x21, 0xbf, 0x6d, 0x93, 0x66, 0x3d, 0x5c, 0x82, 0x23, 0x6a, 0x12, 0xe7, 0x05, 0x35, 0x6e, - 0x9e, 0x93, 0xff, 0xb0, 0xe2, 0x62, 0x5e, 0x81, 0xe9, 0xa8, 0xb1, 0x76, 0x80, 0xc9, 0x3b, 0x03, - 0x59, 0xcb, 0x73, 0xc4, 0xd4, 0x4d, 0x0a, 0x84, 0x6c, 0x09, 0x5f, 0xc2, 0xb4, 0xdc, 0xfc, 0xe9, - 0x18, 0xcc, 0x94, 0x9b, 0x1d, 0xf2, 0xac, 0x47, 0x88, 0xbc, 0x9f, 0x96, 0x60, 0xa6, 0xed, 0x91, - 0x5d, 0x9b, 0xdc, 0xaa, 0x92, 0x26, 0xa9, 0x05, 0xae, 0x27, 0xe8, 0x9f, 0x16, 0xd5, 0x67, 0x2a, - 0x51, 0x30, 0x8e, 0xe3, 0xa3, 0x67, 0x60, 0xda, 0xaa, 0x05, 0xf6, 0x2e, 0x51, 0x14, 0x78, 0x03, - 0xde, 0x26, 0x28, 0x4c, 0x97, 0x22, 0x50, 0x1c, 0xc3, 0x46, 0x1f, 0x82, 0x05, 0xbf, 0x66, 0x35, - 0xc9, 0xd5, 0xb6, 0x60, 0xb5, 0xb2, 0x43, 0x6a, 0x37, 0x2b, 0xae, 0xed, 0x04, 0xc2, 0x1a, 0xf1, - 0x80, 0xa0, 0xb4, 0x50, 0xed, 0x83, 0x87, 0xfb, 0x52, 0x40, 0x7f, 0x66, 0xc0, 0x99, 0xb6, 0x47, - 0x2a, 0x9e, 0xdb, 0x72, 0xa9, 0x98, 0xe9, 0xb9, 0xa2, 0x8b, 0xab, 0xea, 0xb5, 0x11, 0xe5, 0x29, - 0x2f, 0xe9, 0x35, 0x11, 0xbe, 0x7d, 0xbf, 0x5b, 0x3c, 0x53, 0x39, 0xa8, 0x01, 0xf8, 0xe0, 0xf6, - 0xa1, 0xbf, 0x30, 0xe0, 0x6c, 0xdb, 0xf5, 0x83, 0x03, 0xba, 0x90, 0x3b, 0xd6, 0x2e, 0x98, 0xfb, - 0xdd, 0xe2, 0xd9, 0xca, 0x81, 0x2d, 0xc0, 0x87, 0xb4, 0xd0, 0xdc, 0x9f, 0x84, 0x39, 0x6d, 0xed, - 0x89, 0xfb, 0xeb, 0x53, 0x70, 0x42, 0x2e, 0x86, 0x50, 0xac, 0x17, 0x42, 0x7b, 0x43, 0x49, 0x07, - 0xe2, 0x28, 0x2e, 0x5d, 0x77, 0x6a, 0x29, 0xf2, 0xda, 0xb1, 0x75, 0x57, 0x89, 0x40, 0x71, 0x0c, - 0x1b, 0xad, 0xc1, 0x49, 0x51, 0x82, 0x49, 0xbb, 0x69, 0xd7, 0xac, 0x15, 0xb7, 0x23, 0x96, 0x5c, - 0xae, 0x7c, 0x7a, 0xbf, 0x5b, 0x3c, 0x59, 0xe9, 0x05, 0xe3, 0xa4, 0x3a, 0x68, 0x1d, 0xe6, 0xad, - 0x4e, 0xe0, 0xaa, 0xfe, 0x9f, 0x73, 0xa8, 0xa4, 0xa8, 0xb3, 0xa5, 0x95, 0xe7, 0x22, 0xa5, 0x94, - 0x00, 0xc7, 0x89, 0xb5, 0x50, 0x25, 0x46, 0xad, 0x4a, 0x6a, 0xae, 0x53, 0xe7, 0xb3, 0x9c, 0x0b, - 0xb5, 0xf0, 0x52, 0x02, 0x0e, 0x4e, 0xac, 0x89, 0x9a, 0x30, 0xdd, 0xb2, 0x6e, 0x5f, 0x75, 0xac, - 0x5d, 0xcb, 0x6e, 0x52, 0x26, 0xc2, 0x86, 0xd1, 0xff, 0x62, 0xdd, 0x09, 0xec, 0xe6, 0x12, 0x7f, - 0xce, 0x5b, 0x5a, 0x73, 0x82, 0xcb, 0x5e, 0x35, 0xa0, 0xda, 0x1a, 0x57, 0x8e, 0x36, 0x22, 0xb4, - 0x70, 0x8c, 0x36, 0xba, 0x0c, 0xa7, 0xd8, 0x76, 0x5c, 0x75, 0x6f, 0x39, 0xab, 0xa4, 0x69, 0xed, - 0xc9, 0x0e, 0x4c, 0xb0, 0x0e, 0xdc, 0xbb, 0xdf, 0x2d, 0x9e, 0xaa, 0x26, 0x21, 0xe0, 0xe4, 0x7a, - 0xc8, 0x82, 0xfb, 0xa2, 0x00, 0x4c, 0x76, 0x6d, 0xdf, 0x76, 0x1d, 0x6e, 0x89, 0xc8, 0x87, 0x96, - 0x88, 0x6a, 0x7f, 0x34, 0x7c, 0x10, 0x0d, 0xf4, 0x9b, 0x06, 0xcc, 0x27, 0x6d, 0xc3, 0x85, 0x42, - 0x1a, 0x8f, 0x15, 0xb1, 0xad, 0xc5, 0x57, 0x44, 0xe2, 0xa1, 0x90, 0xd8, 0x08, 0xf4, 0xb2, 0x01, - 0x53, 0x96, 0x76, 0x8b, 0x5a, 0x00, 0xd6, 0xaa, 0x8b, 0xa3, 0xde, 0xe5, 0x43, 0x8a, 0xe5, 0xd9, - 0xfd, 0x6e, 0x31, 0x72, 0x53, 0xc3, 0x11, 0x8e, 0xe8, 0xb7, 0x0d, 0x38, 0x95, 0xb8, 0xc7, 0x17, - 0x26, 0x8f, 0x63, 0x84, 0xd8, 0x22, 0x49, 0x3e, 0x73, 0x92, 0x9b, 0x81, 0x5e, 0x37, 0x94, 0x28, - 0xdb, 0x90, 0xd6, 0x94, 0x29, 0xd6, 0xb4, 0x2b, 0x23, 0x5e, 0x1c, 0x43, 0x85, 0x40, 0x12, 0x2e, - 0x9f, 0xd4, 0x24, 0xa3, 0x2c, 0xc4, 0x71, 0xf6, 0xe8, 0xb3, 0x86, 0x14, 0x8d, 0xaa, 0x45, 0x27, - 0x8e, 0xab, 0x45, 0x28, 0x94, 0xb4, 0xaa, 0x41, 0x31, 0xe6, 0xe8, 0xc3, 0xb0, 0x68, 0x6d, 0xb9, - 0x5e, 0x90, 0xb8, 0xf9, 0x16, 0xa6, 0xd9, 0x36, 0x3a, 0xbb, 0xdf, 0x2d, 0x2e, 0x96, 0xfa, 0x62, - 0xe1, 0x03, 0x28, 0x98, 0x7f, 0x94, 0x83, 0x29, 0xae, 0xe4, 0x0b, 0xd1, 0xf5, 0x55, 0x03, 0xee, - 0xaf, 0x75, 0x3c, 0x8f, 0x38, 0x41, 0x35, 0x20, 0xed, 0x5e, 0xc1, 0x65, 0x1c, 0xab, 0xe0, 0x7a, - 0x60, 0xbf, 0x5b, 0xbc, 0x7f, 0xe5, 0x00, 0xfe, 0xf8, 0xc0, 0xd6, 0xa1, 0xbf, 0x36, 0xc0, 0x14, - 0x08, 0x65, 0xab, 0x76, 0xb3, 0xe1, 0xb9, 0x1d, 0xa7, 0xde, 0xdb, 0x89, 0xcc, 0xb1, 0x76, 0xe2, - 0xa1, 0xfd, 0x6e, 0xd1, 0x5c, 0x39, 0xb4, 0x15, 0x78, 0x80, 0x96, 0xa2, 0x67, 0x61, 0x4e, 0x60, - 0x9d, 0xbb, 0xdd, 0x26, 0x9e, 0x4d, 0xd5, 0x69, 0xf1, 0x9e, 0x1e, 0xba, 0x28, 0xc4, 0x11, 0x70, - 0x6f, 0x1d, 0xe4, 0xc3, 0xc4, 0x2d, 0x62, 0x37, 0x76, 0x02, 0xa9, 0x3e, 0x8d, 0xe8, 0x97, 0x20, - 0x2e, 0xfc, 0xd7, 0x39, 0xcd, 0xf2, 0xe4, 0x7e, 0xb7, 0x38, 0x21, 0xfe, 0x60, 0xc9, 0x09, 0x5d, - 0x82, 0x69, 0x7e, 0x05, 0xab, 0xd8, 0x4e, 0xa3, 0xe2, 0x3a, 0xfc, 0x35, 0xbf, 0x50, 0x7e, 0x48, - 0x0a, 0xfc, 0x6a, 0x04, 0x7a, 0xa7, 0x5b, 0x9c, 0x92, 0xbf, 0x37, 0xf7, 0xda, 0x04, 0xc7, 0x6a, - 0x9b, 0xdf, 0x1c, 0x07, 0x90, 0xcb, 0x95, 0xb4, 0xd1, 0xff, 0x81, 0x82, 0x4f, 0x02, 0xce, 0x55, - 0x18, 0xcf, 0xf9, 0x9b, 0x84, 0x2c, 0xc4, 0x21, 0x1c, 0xdd, 0x84, 0x5c, 0xdb, 0xea, 0xf8, 0x44, - 0x4c, 0xfe, 0xc5, 0x54, 0x26, 0xbf, 0x42, 0x29, 0xf2, 0x3b, 0x17, 0xfb, 0x89, 0x39, 0x0f, 0xf4, - 0x29, 0x03, 0x80, 0x44, 0x27, 0x6c, 0x64, 0xdb, 0x87, 0x60, 0x19, 0xce, 0x29, 0x1d, 0x83, 0xf2, - 0xf4, 0x7e, 0xb7, 0x08, 0xda, 0xd4, 0x6b, 0x6c, 0xd1, 0x2d, 0xc8, 0x5b, 0xf2, 0xcc, 0x1f, 0x3b, - 0x8e, 0x33, 0x9f, 0x5d, 0x85, 0xd4, 0xa2, 0x55, 0xcc, 0xd0, 0xa7, 0x0d, 0x98, 0xf6, 0x49, 0x20, - 0xa6, 0x8a, 0x9e, 0x3c, 0x42, 0xe1, 0x1d, 0x71, 0xd1, 0x55, 0x23, 0x34, 0xf9, 0x09, 0x1a, 0x2d, - 0xc3, 0x31, 0xbe, 0xb2, 0x29, 0x17, 0x88, 0x55, 0x27, 0x1e, 0xbb, 0x69, 0x0b, 0x4d, 0x6a, 0xf4, - 0xa6, 0x68, 0x34, 0x55, 0x53, 0xb4, 0x32, 0x1c, 0xe3, 0x2b, 0x9b, 0xb2, 0x61, 0x7b, 0x9e, 0x2b, - 0x9a, 0x92, 0x4f, 0xa9, 0x29, 0x1a, 0x4d, 0xd5, 0x14, 0xad, 0x0c, 0xc7, 0xf8, 0x9a, 0x7f, 0x33, - 0x05, 0xd3, 0x72, 0x23, 0x85, 0x9a, 0x3d, 0x37, 0xec, 0xf4, 0xd1, 0xec, 0x57, 0x74, 0x20, 0x8e, - 0xe2, 0xd2, 0xca, 0x7c, 0xab, 0x46, 0x15, 0x7b, 0x55, 0xb9, 0xaa, 0x03, 0x71, 0x14, 0x17, 0xb5, - 0x20, 0xe7, 0x07, 0xa4, 0x2d, 0xdf, 0x41, 0x47, 0x7c, 0xa6, 0x0b, 0xcf, 0x87, 0xf0, 0xa5, 0x83, - 0xfe, 0xf3, 0x31, 0xe7, 0xc2, 0x6c, 0x93, 0x41, 0xc4, 0x5c, 0x29, 0x36, 0x47, 0x3a, 0xfb, 0x33, - 0x6a, 0x09, 0xe5, 0xb3, 0x11, 0x2d, 0xc3, 0x31, 0xf6, 0x09, 0xca, 0x7e, 0xee, 0x18, 0x95, 0xfd, - 0xe7, 0x21, 0xdf, 0xb2, 0x6e, 0x57, 0x3b, 0x5e, 0xe3, 0xe8, 0x97, 0x0a, 0xe1, 0xa2, 0xc4, 0xa9, - 0x60, 0x45, 0x0f, 0xbd, 0x62, 0x68, 0x47, 0xce, 0x04, 0x23, 0x7e, 0x3d, 0xdd, 0x23, 0x47, 0xc9, - 0xca, 0xbe, 0x87, 0x4f, 0x8f, 0xea, 0x9d, 0xbf, 0xeb, 0xaa, 0x37, 0x55, 0x23, 0xf9, 0x06, 0x51, - 0x6a, 0x64, 0xe1, 0x58, 0xd5, 0xc8, 0x95, 0x08, 0x33, 0x1c, 0x63, 0xce, 0xda, 0xc3, 0xf7, 0x9c, - 0x6a, 0x0f, 0x1c, 0x6b, 0x7b, 0xaa, 0x11, 0x66, 0x38, 0xc6, 0xbc, 0xff, 0x7d, 0x73, 0xf2, 0x78, - 0xee, 0x9b, 0x53, 0x29, 0xdc, 0x37, 0x0f, 0x56, 0xc5, 0x4f, 0x8c, 0xaa, 0x8a, 0xa3, 0x8b, 0x80, - 0xea, 0x7b, 0x8e, 0xd5, 0xb2, 0x6b, 0xe2, 0xb0, 0x64, 0x62, 0x73, 0x9a, 0xd9, 0x23, 0x16, 0xc5, - 0x41, 0x86, 0x56, 0x7b, 0x30, 0x70, 0x42, 0x2d, 0x14, 0x40, 0xbe, 0x2d, 0x35, 0xae, 0x99, 0x34, - 0x56, 0xbf, 0xd4, 0xc0, 0xf8, 0x53, 0x39, 0xdd, 0x78, 0xb2, 0x04, 0x2b, 0x4e, 0xe6, 0x7f, 0x18, - 0x30, 0xbb, 0xd2, 0x74, 0x3b, 0xf5, 0xeb, 0x56, 0x50, 0xdb, 0xe1, 0xef, 0xba, 0xe8, 0x19, 0xc8, - 0xdb, 0x4e, 0x40, 0xbc, 0x5d, 0xab, 0x29, 0x24, 0x8a, 0x29, 0x9f, 0xbe, 0xd7, 0x44, 0xf9, 0x9d, - 0x6e, 0x71, 0x7a, 0xb5, 0xe3, 0x31, 0x87, 0x49, 0x7e, 0xbe, 0x60, 0x55, 0x07, 0x7d, 0xc9, 0x80, - 0x39, 0xfe, 0x32, 0xbc, 0x6a, 0x05, 0xd6, 0x95, 0x0e, 0xf1, 0x6c, 0x22, 0xdf, 0x86, 0x47, 0x3c, - 0x5a, 0xe2, 0x6d, 0x95, 0x0c, 0xf6, 0x42, 0xd5, 0x7a, 0x23, 0xce, 0x19, 0xf7, 0x36, 0xc6, 0xfc, - 0x7c, 0x16, 0xee, 0xed, 0x4b, 0x0b, 0x2d, 0x42, 0xc6, 0xae, 0x8b, 0xae, 0x83, 0xa0, 0x9b, 0x59, - 0xab, 0xe3, 0x8c, 0x5d, 0x47, 0x4b, 0x4c, 0x4b, 0xf4, 0x88, 0xef, 0xcb, 0x67, 0xc2, 0x82, 0x52, - 0xe8, 0x44, 0x29, 0xd6, 0x30, 0x50, 0x11, 0x72, 0x4d, 0x6b, 0x8b, 0x34, 0xc5, 0x0d, 0x80, 0xe9, - 0x9d, 0xeb, 0xb4, 0x00, 0xf3, 0x72, 0xf4, 0x8b, 0x06, 0x00, 0x6f, 0x20, 0xbd, 0x3f, 0x08, 0xb9, - 0x86, 0xd3, 0x1d, 0x26, 0x4a, 0x99, 0xb7, 0x32, 0xfc, 0x8f, 0x35, 0xae, 0x68, 0x13, 0xc6, 0xa9, - 0x0a, 0xea, 0xd6, 0x8f, 0x2c, 0xc6, 0xd8, 0xb3, 0x48, 0x85, 0xd1, 0xc0, 0x82, 0x16, 0x1d, 0x2b, - 0x8f, 0x04, 0x1d, 0xcf, 0xa1, 0x43, 0xcb, 0x04, 0x57, 0x9e, 0xb7, 0x02, 0xab, 0x52, 0xac, 0x61, - 0x98, 0x7f, 0x9a, 0x81, 0xf9, 0xa4, 0xa6, 0x53, 0xf9, 0x30, 0xce, 0x5b, 0x2b, 0x2e, 0xb3, 0xef, - 0x4f, 0x7f, 0x7c, 0x84, 0x93, 0x83, 0x72, 0x05, 0x10, 0x6e, 0x58, 0x82, 0x2f, 0x7a, 0xbf, 0x1a, - 0xa1, 0xcc, 0x11, 0x47, 0x48, 0x51, 0x8e, 0x8d, 0xd2, 0x03, 0x30, 0xe6, 0xd3, 0x99, 0xcf, 0x46, - 0x9f, 0x1c, 0xd8, 0x1c, 0x31, 0x08, 0xc5, 0xe8, 0x38, 0x76, 0x20, 0xbc, 0x98, 0x15, 0xc6, 0x55, - 0xc7, 0x0e, 0x30, 0x83, 0x98, 0x5f, 0xcc, 0xc0, 0x62, 0xff, 0x4e, 0xa1, 0x2f, 0x1a, 0x00, 0x75, - 0x7a, 0xc1, 0xa0, 0x4b, 0x52, 0x3a, 0x85, 0x58, 0xc7, 0x35, 0x86, 0xab, 0x92, 0x53, 0xe8, 0x21, - 0xa4, 0x8a, 0x7c, 0xac, 0x35, 0x04, 0x3d, 0x2a, 0x97, 0xfe, 0x25, 0xab, 0x25, 0x15, 0x50, 0x55, - 0x67, 0x43, 0x41, 0xb0, 0x86, 0x45, 0x6f, 0x90, 0x8e, 0xd5, 0x22, 0x7e, 0xdb, 0x52, 0x6e, 0xea, - 0xec, 0x06, 0x79, 0x49, 0x16, 0xe2, 0x10, 0x6e, 0x36, 0xe1, 0xc1, 0x01, 0xda, 0x99, 0x92, 0xcb, - 0xb0, 0xf9, 0xef, 0x06, 0x9c, 0x5e, 0x69, 0x76, 0xfc, 0x80, 0x78, 0xff, 0x63, 0x1c, 0xae, 0xfe, - 0xd3, 0x80, 0xfb, 0xfa, 0xf4, 0xf9, 0x2e, 0xf8, 0x5d, 0xbd, 0x18, 0xf5, 0xbb, 0xba, 0x3a, 0xea, - 0x92, 0x4e, 0xec, 0x47, 0x1f, 0xf7, 0xab, 0x00, 0x4e, 0xd0, 0x53, 0xab, 0xee, 0x36, 0x52, 0x92, - 0x9b, 0x0f, 0x42, 0xee, 0x63, 0x54, 0xfe, 0xc4, 0xd7, 0x18, 0x13, 0x4a, 0x98, 0xc3, 0xcc, 0xa7, - 0x41, 0x38, 0x29, 0xc5, 0x36, 0x8f, 0x31, 0xc8, 0xe6, 0x31, 0xff, 0x2e, 0x03, 0x9a, 0xe5, 0xe1, - 0x2e, 0x2c, 0x4a, 0x27, 0xb2, 0x28, 0x47, 0xbc, 0x35, 0x6b, 0x76, 0x94, 0x7e, 0xd1, 0x08, 0xbb, - 0xb1, 0x68, 0x84, 0x4b, 0xa9, 0x71, 0x3c, 0x38, 0x18, 0xe1, 0x7b, 0x06, 0xdc, 0x17, 0x22, 0xf7, - 0x1a, 0x05, 0x0f, 0x3f, 0x61, 0x9e, 0x80, 0x49, 0x2b, 0xac, 0x26, 0xd6, 0x80, 0x0a, 0xc0, 0xd1, - 0x28, 0x62, 0x1d, 0x2f, 0xf4, 0x7d, 0xce, 0x1e, 0xd1, 0xf7, 0x79, 0xec, 0x60, 0xdf, 0x67, 0xf3, - 0x27, 0x19, 0x38, 0xd3, 0xdb, 0x33, 0xb9, 0x37, 0x06, 0x7b, 0x33, 0x7f, 0x12, 0xa6, 0x02, 0x51, - 0x41, 0x3b, 0xe9, 0x55, 0xf8, 0xd8, 0xa6, 0x06, 0xc3, 0x11, 0x4c, 0x5a, 0xb3, 0xc6, 0x77, 0x65, - 0xb5, 0xe6, 0xb6, 0xa5, 0xe7, 0xbc, 0xaa, 0xb9, 0xa2, 0xc1, 0x70, 0x04, 0x53, 0xf9, 0x24, 0x8e, - 0x1d, 0xbb, 0x4f, 0x62, 0x15, 0x4e, 0x49, 0x2f, 0xac, 0xf3, 0xae, 0xb7, 0xe2, 0xb6, 0xda, 0x4d, - 0x22, 0x7c, 0xe7, 0x69, 0x63, 0xcf, 0x88, 0x2a, 0xa7, 0x70, 0x12, 0x12, 0x4e, 0xae, 0x6b, 0x7e, - 0x2f, 0x0b, 0x27, 0xc3, 0x61, 0x5f, 0x71, 0x9d, 0xba, 0xcd, 0x7c, 0xd9, 0x9e, 0x82, 0xb1, 0x60, - 0xaf, 0x2d, 0x07, 0xfb, 0x7f, 0xc9, 0xe6, 0x6c, 0xee, 0xb5, 0xe9, 0x6c, 0x9f, 0x4e, 0xa8, 0xc2, - 0xcc, 0xb2, 0xac, 0x12, 0x5a, 0x57, 0xbb, 0x83, 0xcf, 0xc0, 0xe3, 0xd1, 0xd5, 0x7c, 0xa7, 0x5b, - 0x4c, 0x88, 0x9e, 0x5c, 0x52, 0x94, 0xa2, 0x6b, 0x1e, 0xdd, 0x80, 0xe9, 0xa6, 0xe5, 0x07, 0x57, - 0xdb, 0x75, 0x2b, 0x20, 0x9b, 0x76, 0x8b, 0x88, 0x3d, 0x37, 0x8c, 0x43, 0xba, 0x7a, 0x47, 0x5e, - 0x8f, 0x50, 0xc2, 0x31, 0xca, 0x68, 0x17, 0x10, 0x2d, 0xd9, 0xf4, 0x2c, 0xc7, 0xe7, 0xbd, 0xa2, - 0xfc, 0x86, 0x77, 0x80, 0x57, 0xd7, 0xb2, 0xf5, 0x1e, 0x6a, 0x38, 0x81, 0x03, 0x7a, 0x08, 0xc6, - 0x3d, 0x62, 0xf9, 0x62, 0x32, 0x0b, 0xe1, 0xfe, 0xc7, 0xac, 0x14, 0x0b, 0xa8, 0xbe, 0xa1, 0xc6, - 0x0f, 0xd9, 0x50, 0x3f, 0x34, 0x60, 0x3a, 0x9c, 0xa6, 0xbb, 0x20, 0x24, 0x5b, 0x51, 0x21, 0x79, - 0x21, 0xad, 0x23, 0xb1, 0x8f, 0x5c, 0xfc, 0xcb, 0x71, 0xbd, 0x7f, 0xcc, 0x21, 0xf9, 0xe3, 0x50, - 0x90, 0xbb, 0x5a, 0x6a, 0x9f, 0x23, 0xde, 0x6e, 0x23, 0x7a, 0x89, 0x16, 0x48, 0x23, 0x98, 0xe0, - 0x90, 0x1f, 0x15, 0xcb, 0x75, 0x21, 0x72, 0xc5, 0xb2, 0x57, 0x62, 0x59, 0x8a, 0xe2, 0x24, 0xb1, - 0x2c, 0xeb, 0xa0, 0xab, 0x70, 0xba, 0xed, 0xb9, 0x2c, 0xb8, 0x72, 0x95, 0x58, 0xf5, 0xa6, 0xed, - 0x10, 0x69, 0x42, 0xe0, 0x6e, 0x0c, 0xf7, 0xed, 0x77, 0x8b, 0xa7, 0x2b, 0xc9, 0x28, 0xb8, 0x5f, - 0xdd, 0x68, 0x40, 0xd0, 0xd8, 0x00, 0x01, 0x41, 0xbf, 0xac, 0x0c, 0x75, 0xc4, 0x17, 0x61, 0x39, - 0x1f, 0x4c, 0x6b, 0x2a, 0x13, 0x8e, 0xf5, 0x70, 0x49, 0x95, 0x04, 0x53, 0xac, 0xd8, 0xf7, 0xb7, - 0x06, 0x8d, 0x1f, 0xd1, 0x1a, 0x14, 0xfa, 0x75, 0x4f, 0xfc, 0x2c, 0xfd, 0xba, 0xf3, 0x6f, 0x29, - 0xbf, 0xee, 0x57, 0x73, 0x30, 0x1b, 0xd7, 0x40, 0x8e, 0x3f, 0xd8, 0xe9, 0xd7, 0x0c, 0x98, 0x95, - 0xbb, 0x87, 0xf3, 0x24, 0xd2, 0xce, 0xbf, 0x9e, 0xd2, 0xa6, 0xe5, 0xba, 0x94, 0x0a, 0xc7, 0xdd, - 0x8c, 0x71, 0xc3, 0x3d, 0xfc, 0xd1, 0x0b, 0x30, 0xa9, 0xcc, 0xe1, 0x47, 0x8a, 0x7c, 0x9a, 0x61, - 0x5a, 0x54, 0x48, 0x02, 0xeb, 0xf4, 0xd0, 0xab, 0x06, 0x40, 0x4d, 0x8a, 0x39, 0xb9, 0xbb, 0xae, - 0xa4, 0xb5, 0xbb, 0x94, 0x00, 0x0d, 0x95, 0x65, 0x55, 0xe4, 0x63, 0x8d, 0x31, 0xfa, 0x3c, 0x33, - 0x84, 0x2b, 0xed, 0x8e, 0xee, 0xa7, 0xec, 0xe8, 0xae, 0xb8, 0x07, 0x28, 0xa6, 0xa1, 0x2a, 0xa5, - 0x81, 0x7c, 0x1c, 0x69, 0x84, 0xf9, 0x14, 0x28, 0xe7, 0x49, 0x7a, 0x6c, 0x31, 0xf7, 0xc9, 0x8a, - 0x15, 0xec, 0x88, 0x25, 0xa8, 0x8e, 0xad, 0xf3, 0x12, 0x80, 0x43, 0x1c, 0xf3, 0xa3, 0x30, 0xfd, - 0xac, 0x67, 0xb5, 0x77, 0x6c, 0x66, 0x70, 0xa6, 0xf7, 0xa4, 0x77, 0xc2, 0x84, 0x55, 0xaf, 0x27, - 0x05, 0xb3, 0x97, 0x78, 0x31, 0x96, 0xf0, 0xc1, 0xae, 0x44, 0xdf, 0x34, 0x00, 0x85, 0x8f, 0x76, - 0xb6, 0xd3, 0xd8, 0xa0, 0xb7, 0x7d, 0x7a, 0x3f, 0xda, 0x61, 0xa5, 0x49, 0xf7, 0xa3, 0x0b, 0x0a, - 0x82, 0x35, 0x2c, 0xf4, 0x12, 0x4c, 0xf2, 0x7f, 0xd7, 0xd4, 0x65, 0x7f, 0xe4, 0x50, 0x58, 0x2e, - 0x50, 0x58, 0x9b, 0xf8, 0x2a, 0xbc, 0x10, 0x72, 0xc0, 0x3a, 0x3b, 0x3a, 0x54, 0x6b, 0xce, 0x76, - 0xb3, 0x73, 0xbb, 0xbe, 0x15, 0x0e, 0x55, 0xdb, 0x73, 0xb7, 0xed, 0x26, 0x89, 0x0f, 0x55, 0x85, - 0x17, 0x63, 0x09, 0x1f, 0x6c, 0xa8, 0xbe, 0x6e, 0xc0, 0xfc, 0x9a, 0x1f, 0xd8, 0xee, 0x2a, 0xf1, - 0x03, 0x2a, 0x56, 0xe8, 0xe1, 0xd3, 0x69, 0x0e, 0xe2, 0x07, 0xbd, 0x0a, 0xb3, 0xe2, 0x01, 0xb1, - 0xb3, 0xe5, 0x93, 0x40, 0xd3, 0xe3, 0xd5, 0x3e, 0x5e, 0x89, 0xc1, 0x71, 0x4f, 0x0d, 0x4a, 0x45, - 0xbc, 0x24, 0x86, 0x54, 0xb2, 0x51, 0x2a, 0xd5, 0x18, 0x1c, 0xf7, 0xd4, 0x30, 0xbf, 0x93, 0x85, - 0x93, 0xac, 0x1b, 0xb1, 0x18, 0x86, 0xcf, 0xf6, 0x8b, 0x61, 0x18, 0x71, 0x2b, 0x33, 0x5e, 0x47, - 0x88, 0x60, 0xf8, 0x55, 0x03, 0x66, 0xea, 0xd1, 0x91, 0x4e, 0xc7, 0x3c, 0x93, 0x34, 0x87, 0xdc, - 0x5f, 0x2a, 0x56, 0x88, 0xe3, 0xfc, 0xd1, 0x17, 0x0c, 0x98, 0x89, 0x36, 0x53, 0x9e, 0xee, 0xc7, - 0x30, 0x48, 0xca, 0xc1, 0x39, 0x5a, 0xee, 0xe3, 0x78, 0x13, 0xcc, 0x6f, 0x67, 0xc4, 0x94, 0x1e, - 0x87, 0x83, 0x3e, 0xba, 0x05, 0x85, 0xa0, 0xe9, 0xf3, 0x42, 0xd1, 0xdb, 0x11, 0x6f, 0x84, 0x9b, - 0xeb, 0x55, 0xfe, 0x76, 0x1f, 0x2a, 0x6d, 0xa2, 0x84, 0x2a, 0x9f, 0x92, 0x17, 0x63, 0x5c, 0x6b, - 0x0b, 0xc6, 0xa9, 0x5c, 0x45, 0x37, 0x57, 0x2a, 0x71, 0xc6, 0xa2, 0x84, 0x32, 0x96, 0xbc, 0xcc, - 0x2f, 0x1b, 0x50, 0xb8, 0xe8, 0xca, 0x73, 0xe4, 0xc3, 0x29, 0x18, 0x7a, 0x94, 0x3e, 0xa8, 0xde, - 0x08, 0xc3, 0x2b, 0xc6, 0x33, 0x11, 0x33, 0xcf, 0xfd, 0x1a, 0xed, 0x25, 0x96, 0xa8, 0x87, 0x92, - 0xba, 0xe8, 0x6e, 0xf5, 0xb5, 0x22, 0xfe, 0x6e, 0x0e, 0x4e, 0x3c, 0x67, 0xed, 0x11, 0x27, 0xb0, - 0x86, 0x17, 0x12, 0x4f, 0xc0, 0xa4, 0xd5, 0x66, 0x8e, 0xc2, 0x9a, 0x8e, 0x1f, 0x5a, 0x4e, 0x42, - 0x10, 0xd6, 0xf1, 0xc2, 0x03, 0x8d, 0xe7, 0x0d, 0x49, 0x3a, 0x8a, 0x56, 0x62, 0x70, 0xdc, 0x53, - 0x03, 0x5d, 0x04, 0x24, 0xa2, 0x20, 0x4b, 0xb5, 0x9a, 0xdb, 0x71, 0xf8, 0x91, 0xc6, 0x8d, 0x2a, - 0xea, 0xb2, 0xb9, 0xd1, 0x83, 0x81, 0x13, 0x6a, 0xa1, 0x0f, 0xc1, 0x42, 0x8d, 0x51, 0x16, 0x57, - 0x0f, 0x9d, 0x22, 0xbf, 0x7e, 0x2a, 0x27, 0xfd, 0x95, 0x3e, 0x78, 0xb8, 0x2f, 0x05, 0xda, 0x52, - 0x3f, 0x70, 0x3d, 0xab, 0x41, 0x74, 0xba, 0xe3, 0xd1, 0x96, 0x56, 0x7b, 0x30, 0x70, 0x42, 0x2d, - 0xf4, 0x49, 0x28, 0x04, 0x3b, 0x1e, 0xf1, 0x77, 0xdc, 0x66, 0x5d, 0x38, 0x0d, 0x8c, 0x68, 0x69, - 0x13, 0xb3, 0xbf, 0x29, 0xa9, 0x6a, 0xcb, 0x5b, 0x16, 0xe1, 0x90, 0x27, 0xf2, 0x60, 0xdc, 0xaf, - 0xb9, 0x6d, 0xe2, 0x0b, 0x95, 0xfd, 0x62, 0x2a, 0xdc, 0x99, 0xe5, 0x48, 0xb3, 0xf1, 0x31, 0x0e, - 0x58, 0x70, 0x32, 0xbf, 0x91, 0x81, 0x29, 0x1d, 0x71, 0x80, 0xb3, 0xe9, 0x53, 0x06, 0x4c, 0xd5, - 0x5c, 0x27, 0xf0, 0xdc, 0x26, 0xb7, 0x5f, 0xa5, 0xa3, 0x51, 0x50, 0x52, 0xab, 0x24, 0xb0, 0xec, - 0xa6, 0x66, 0x0a, 0xd3, 0xd8, 0xe0, 0x08, 0x53, 0xf4, 0x19, 0x03, 0x66, 0x42, 0x1f, 0xb3, 0xd0, - 0x90, 0x96, 0x6a, 0x43, 0xd4, 0x51, 0x7f, 0x2e, 0xca, 0x09, 0xc7, 0x59, 0x9b, 0x5b, 0x30, 0x1b, - 0x9f, 0x6d, 0x3a, 0x94, 0x6d, 0x4b, 0xec, 0xf5, 0x6c, 0x38, 0x94, 0x15, 0xcb, 0xf7, 0x31, 0x83, - 0xa0, 0x47, 0x20, 0xdf, 0xb2, 0xbc, 0x86, 0xed, 0x58, 0x4d, 0x36, 0x8a, 0x59, 0xed, 0x40, 0x12, - 0xe5, 0x58, 0x61, 0x98, 0xef, 0x86, 0xa9, 0x0d, 0xcb, 0x69, 0x90, 0xba, 0x38, 0x87, 0x0f, 0x0f, - 0x11, 0xfb, 0xd1, 0x18, 0x4c, 0x6a, 0x77, 0xb3, 0xe3, 0xbf, 0x67, 0x45, 0x52, 0x39, 0x64, 0x53, - 0x4c, 0xe5, 0xf0, 0x3c, 0xc0, 0xb6, 0xed, 0xd8, 0xfe, 0xce, 0x11, 0x93, 0x44, 0xb0, 0x27, 0xda, - 0xf3, 0x8a, 0x02, 0xd6, 0xa8, 0x85, 0xef, 0x60, 0xb9, 0x03, 0x52, 0xe7, 0xbc, 0x6a, 0x68, 0xe2, - 0x66, 0x3c, 0x8d, 0x77, 0x7f, 0x6d, 0x62, 0x96, 0xa4, 0xf8, 0x39, 0xe7, 0x04, 0xde, 0xde, 0x81, - 0x52, 0x69, 0x13, 0xf2, 0x1e, 0xf1, 0x3b, 0x2d, 0x7a, 0x63, 0x9c, 0x18, 0x7a, 0x18, 0x98, 0xcf, - 0x04, 0x16, 0xf5, 0xb1, 0xa2, 0xb4, 0xf8, 0x14, 0x9c, 0x88, 0x34, 0x01, 0xcd, 0x42, 0xf6, 0x26, - 0xd9, 0xe3, 0xeb, 0x04, 0xd3, 0x9f, 0x68, 0x3e, 0xf2, 0x5a, 0x28, 0x86, 0xe5, 0x7d, 0x99, 0x27, - 0x0d, 0xd3, 0x85, 0x44, 0x03, 0xc0, 0x51, 0x1e, 0x73, 0xe8, 0x5c, 0x34, 0xb5, 0x2c, 0x11, 0x6a, - 0x2e, 0xb8, 0x67, 0x0c, 0x87, 0x99, 0x3f, 0x19, 0x07, 0xf1, 0x94, 0x3d, 0xc0, 0x71, 0xa5, 0xbf, - 0x60, 0x65, 0x8e, 0xf0, 0x82, 0x75, 0x11, 0xa6, 0x6c, 0xc7, 0x0e, 0x6c, 0xab, 0xc9, 0x8c, 0x3b, - 0x42, 0x9c, 0x4a, 0xd7, 0xe1, 0xa9, 0x35, 0x0d, 0x96, 0x40, 0x27, 0x52, 0x17, 0x5d, 0x81, 0x1c, - 0x93, 0x37, 0x62, 0x01, 0x0f, 0xff, 0xde, 0xce, 0x5c, 0x2d, 0x78, 0x3c, 0x11, 0xa7, 0xc4, 0x2e, - 0x1f, 0x3c, 0x4d, 0x86, 0xba, 0x7e, 0x8b, 0x75, 0x1c, 0x5e, 0x3e, 0x62, 0x70, 0xdc, 0x53, 0x83, - 0x52, 0xd9, 0xb6, 0xec, 0x66, 0xc7, 0x23, 0x21, 0x95, 0xf1, 0x28, 0x95, 0xf3, 0x31, 0x38, 0xee, - 0xa9, 0x81, 0xb6, 0x61, 0x4a, 0x94, 0x71, 0x7f, 0xa7, 0x89, 0x23, 0xf6, 0x92, 0xf9, 0xb5, 0x9d, - 0xd7, 0x28, 0xe1, 0x08, 0x5d, 0xd4, 0x81, 0x39, 0xdb, 0xa9, 0xb9, 0x4e, 0xad, 0xd9, 0xf1, 0xed, - 0x5d, 0x12, 0x06, 0xf3, 0x1c, 0x85, 0xd9, 0xa9, 0xfd, 0x6e, 0x71, 0x6e, 0x2d, 0x4e, 0x0e, 0xf7, - 0x72, 0x40, 0xaf, 0x18, 0x70, 0xaa, 0xe6, 0x3a, 0x3e, 0x8b, 0x3b, 0xdf, 0x25, 0xe7, 0x3c, 0xcf, - 0xf5, 0x38, 0xef, 0xc2, 0x11, 0x79, 0x33, 0x9b, 0xe2, 0x4a, 0x12, 0x49, 0x9c, 0xcc, 0x09, 0xbd, - 0x08, 0xf9, 0xb6, 0xe7, 0xee, 0xda, 0x75, 0xe2, 0x09, 0xdf, 0xb9, 0xf5, 0x34, 0xf2, 0x60, 0x54, - 0x04, 0xcd, 0xf0, 0xe8, 0x91, 0x25, 0x58, 0xf1, 0x33, 0xdf, 0x28, 0xc0, 0x74, 0x14, 0x1d, 0x7d, - 0x02, 0xa0, 0xed, 0xb9, 0x2d, 0x12, 0xec, 0x10, 0x15, 0x94, 0x71, 0x69, 0xd4, 0x74, 0x0b, 0x92, - 0x9e, 0xf4, 0x5e, 0xa1, 0xc7, 0x45, 0x58, 0x8a, 0x35, 0x8e, 0xc8, 0x83, 0x89, 0x9b, 0x5c, 0xec, - 0x0a, 0x2d, 0xe4, 0xb9, 0x54, 0x74, 0x26, 0xc1, 0x99, 0x45, 0x13, 0x88, 0x22, 0x2c, 0x19, 0xa1, - 0x2d, 0xc8, 0xde, 0x22, 0x5b, 0xe9, 0x84, 0x30, 0x5f, 0x27, 0xe2, 0x36, 0x53, 0x9e, 0xd8, 0xef, - 0x16, 0xb3, 0xd7, 0xc9, 0x16, 0xa6, 0xc4, 0x69, 0xbf, 0xea, 0xfc, 0x1d, 0x5e, 0x1c, 0x15, 0x23, - 0xf6, 0x2b, 0xf2, 0xa8, 0xcf, 0xfb, 0x25, 0x8a, 0xb0, 0x64, 0x84, 0x5e, 0x84, 0xc2, 0x2d, 0x6b, - 0x97, 0x6c, 0x7b, 0xae, 0x13, 0x08, 0x97, 0xa9, 0x11, 0xfd, 0xf4, 0xaf, 0x4b, 0x72, 0x82, 0x2f, - 0x13, 0xef, 0xaa, 0x10, 0x87, 0xec, 0xd0, 0x2e, 0xe4, 0x1d, 0x72, 0x0b, 0x93, 0xa6, 0x5d, 0x4b, - 0xc7, 0x2f, 0xfe, 0x92, 0xa0, 0x26, 0x38, 0x33, 0xb9, 0x27, 0xcb, 0xb0, 0xe2, 0x45, 0xe7, 0xf2, - 0x86, 0xbb, 0x25, 0x0e, 0xaa, 0x11, 0xe7, 0x52, 0xdd, 0x4c, 0xf9, 0x5c, 0x5e, 0x74, 0xb7, 0x30, - 0x25, 0x4e, 0xf7, 0x48, 0x4d, 0xf9, 0xeb, 0x88, 0x63, 0xea, 0x52, 0xba, 0x7e, 0x4a, 0x7c, 0x8f, - 0x84, 0xa5, 0x58, 0xe3, 0x48, 0xc7, 0xb6, 0x21, 0x8c, 0x95, 0xe2, 0xa0, 0x1a, 0x71, 0x6c, 0xa3, - 0xa6, 0x4f, 0x3e, 0xb6, 0xb2, 0x0c, 0x2b, 0x5e, 0x94, 0xaf, 0x2d, 0x2c, 0x7f, 0xe9, 0x1c, 0x55, - 0x51, 0x3b, 0x22, 0xe7, 0x2b, 0xcb, 0xb0, 0xe2, 0x65, 0x7e, 0x79, 0x1c, 0xa6, 0xf4, 0x7c, 0x63, - 0x03, 0xe8, 0x08, 0x4a, 0x2f, 0xce, 0x0c, 0xa3, 0x17, 0xd3, 0x8b, 0x90, 0xf6, 0xc6, 0x21, 0x8d, - 0x30, 0x6b, 0xa9, 0xa9, 0x85, 0xe1, 0x45, 0x48, 0x2b, 0xf4, 0x71, 0x84, 0xe9, 0x10, 0x6e, 0x0f, - 0x54, 0xb9, 0xe2, 0xea, 0x47, 0x2e, 0xaa, 0x5c, 0x45, 0x14, 0x8a, 0x47, 0x01, 0xc2, 0xbc, 0x5b, - 0xe2, 0xed, 0x4b, 0x69, 0x6d, 0x5a, 0x3e, 0x30, 0x0d, 0x0b, 0x3d, 0x04, 0xe3, 0x54, 0x40, 0x93, - 0xba, 0x88, 0xd4, 0x55, 0xb7, 0xcd, 0xf3, 0xac, 0x14, 0x0b, 0x28, 0x7a, 0x92, 0xea, 0x52, 0xa1, - 0x58, 0x15, 0x01, 0xb8, 0xf3, 0xa1, 0x2e, 0x15, 0xc2, 0x70, 0x04, 0x93, 0x36, 0x9d, 0x50, 0x29, - 0xc8, 0x56, 0xb0, 0xd6, 0x74, 0x26, 0x1a, 0x31, 0x87, 0x31, 0xeb, 0x47, 0x4c, 0x6a, 0xb2, 0x95, - 0x97, 0xd3, 0xac, 0x1f, 0x31, 0x38, 0xee, 0xa9, 0x41, 0x3b, 0x23, 0x9e, 0xed, 0x26, 0xb9, 0x77, - 0x67, 0x9f, 0x07, 0xb7, 0xd7, 0xf4, 0x1b, 0xc1, 0x14, 0x9b, 0xfa, 0xf7, 0xa7, 0x97, 0x3b, 0x6f, - 0xf0, 0x2b, 0xc1, 0x68, 0xca, 0xfb, 0x47, 0x61, 0x3a, 0x7a, 0x56, 0xa6, 0x6e, 0x9f, 0xff, 0xab, - 0x2c, 0x9c, 0xbc, 0xd4, 0xb0, 0x9d, 0xdb, 0x31, 0xc3, 0x76, 0x52, 0x4e, 0x5b, 0x63, 0xd8, 0x9c, - 0xb6, 0x61, 0xc8, 0x8f, 0x48, 0x1a, 0x9c, 0x1c, 0xf2, 0x23, 0x33, 0x0a, 0x47, 0x71, 0xd1, 0x0f, - 0x0d, 0xb8, 0xdf, 0xaa, 0x73, 0xed, 0xd5, 0x6a, 0x8a, 0xd2, 0x90, 0xa9, 0xdc, 0xd1, 0xfe, 0x88, - 0xb2, 0xa8, 0xb7, 0xf3, 0x4b, 0xa5, 0x03, 0xb8, 0xf2, 0x19, 0x7f, 0x87, 0xe8, 0xc1, 0xfd, 0x07, - 0xa1, 0xe2, 0x03, 0x9b, 0xbf, 0x78, 0x19, 0xde, 0x7e, 0x28, 0xa3, 0xa1, 0x56, 0xcb, 0xa7, 0x0c, - 0x28, 0x70, 0xf3, 0x29, 0x26, 0xdb, 0xf4, 0xa8, 0xb0, 0xda, 0xf6, 0x35, 0xe2, 0xf9, 0x32, 0xd9, - 0x96, 0x76, 0xc1, 0x2b, 0x55, 0xd6, 0x04, 0x04, 0x6b, 0x58, 0xf4, 0x30, 0xbe, 0x69, 0x3b, 0x75, - 0x31, 0x4d, 0xea, 0x30, 0x7e, 0xce, 0x76, 0xea, 0x98, 0x41, 0xd4, 0x71, 0x9d, 0xed, 0x6b, 0xd6, - 0x78, 0xc3, 0x80, 0x69, 0x16, 0xe7, 0x18, 0x5e, 0x3d, 0x9e, 0x50, 0x3e, 0x2d, 0xbc, 0x19, 0x67, - 0xa2, 0x3e, 0x2d, 0x77, 0xba, 0xc5, 0x49, 0x1e, 0x19, 0x19, 0x75, 0x71, 0xf9, 0xa0, 0xb0, 0x57, - 0x30, 0xcf, 0x9b, 0xcc, 0xd0, 0xd7, 0x69, 0x65, 0xcf, 0xab, 0x4a, 0x22, 0x38, 0xa4, 0x67, 0xbe, - 0x04, 0x53, 0x7a, 0xc0, 0x02, 0x7a, 0x02, 0x26, 0xdb, 0xb6, 0xd3, 0x88, 0x06, 0xb6, 0x29, 0x9b, - 0x6e, 0x25, 0x04, 0x61, 0x1d, 0x8f, 0x55, 0x73, 0xc3, 0x6a, 0x31, 0x53, 0x70, 0xc5, 0xd5, 0xab, - 0x85, 0x7f, 0xcc, 0x3f, 0xce, 0xc2, 0xc9, 0x84, 0xc0, 0x18, 0xf4, 0xaa, 0x01, 0xe3, 0xcc, 0x4b, - 0x5f, 0x7a, 0xad, 0xbc, 0x90, 0x7a, 0xf0, 0xcd, 0x12, 0x0b, 0x06, 0x10, 0xeb, 0x58, 0x1d, 0x9f, - 0xbc, 0x10, 0x0b, 0xe6, 0xe8, 0x37, 0x0c, 0x98, 0xb4, 0xb4, 0xad, 0xc6, 0x1d, 0x79, 0xb6, 0xd2, - 0x6f, 0x4c, 0xcf, 0xce, 0xd2, 0x1c, 0x10, 0xc3, 0x8d, 0xa4, 0xb7, 0x65, 0xf1, 0xbd, 0x30, 0xa9, - 0x75, 0x61, 0x98, 0x1d, 0xb2, 0xf8, 0x0c, 0xcc, 0x8e, 0xb4, 0xc3, 0x3e, 0x00, 0xc3, 0xe6, 0x8e, - 0xa3, 0x02, 0xeb, 0x96, 0x1e, 0x7c, 0xac, 0x46, 0x5c, 0x44, 0x1f, 0x0b, 0xa8, 0xb9, 0x05, 0xb3, - 0xf1, 0xcb, 0x55, 0xea, 0xef, 0xd6, 0xef, 0x86, 0x21, 0xb3, 0xbd, 0x99, 0xdf, 0xce, 0xc0, 0x84, - 0x88, 0xae, 0xbb, 0x0b, 0xbe, 0xbb, 0x37, 0x23, 0x8f, 0x3a, 0x6b, 0xa9, 0x04, 0x05, 0xf6, 0x75, - 0xdc, 0xf5, 0x63, 0x8e, 0xbb, 0xcf, 0xa5, 0xc3, 0xee, 0x60, 0xaf, 0xdd, 0x37, 0xc6, 0x60, 0x26, - 0x16, 0xad, 0x48, 0x55, 0x95, 0x1e, 0x67, 0xb5, 0xab, 0xa9, 0x06, 0x44, 0x2a, 0xbf, 0xf2, 0x83, - 0xfd, 0xd6, 0xfc, 0x48, 0x52, 0xcd, 0x2b, 0xa9, 0xe5, 0xe3, 0xfe, 0x79, 0x7e, 0xcd, 0x61, 0xfd, - 0xb0, 0xfe, 0xc9, 0x80, 0x7b, 0xfb, 0x06, 0xb5, 0xb2, 0x9c, 0x28, 0x5e, 0x14, 0x2a, 0x36, 0x64, - 0xca, 0xa1, 0xfb, 0xea, 0x85, 0x25, 0x9e, 0xc6, 0x22, 0xce, 0x1e, 0x3d, 0x0e, 0x53, 0x4c, 0xb4, - 0xd2, 0x33, 0x25, 0x20, 0x6d, 0x61, 0x20, 0x66, 0xa6, 0xc2, 0xaa, 0x56, 0x8e, 0x23, 0x58, 0xe6, - 0x97, 0x0c, 0x58, 0xe8, 0x97, 0x21, 0x63, 0x80, 0x8b, 0xe1, 0xff, 0x8b, 0x39, 0x17, 0x17, 0x7b, - 0x9c, 0x8b, 0x63, 0x57, 0x43, 0xe9, 0x47, 0xac, 0xdd, 0xca, 0xb2, 0x87, 0xf8, 0xce, 0x7e, 0xd6, - 0x80, 0xd3, 0x7d, 0x76, 0x53, 0x8f, 0x93, 0xb9, 0x71, 0x64, 0x27, 0xf3, 0xcc, 0xa0, 0x4e, 0xe6, - 0xe6, 0x77, 0xb3, 0x30, 0x2b, 0xda, 0x13, 0xea, 0x57, 0x4f, 0x46, 0x5c, 0xb4, 0xdf, 0x11, 0x73, - 0xd1, 0x9e, 0x8f, 0xe3, 0xff, 0xdc, 0x3f, 0xfb, 0xad, 0xe5, 0x9f, 0xfd, 0xd3, 0x0c, 0x9c, 0x4a, - 0x4c, 0xdc, 0x81, 0x3e, 0x9d, 0x20, 0x1a, 0xae, 0xa7, 0x9c, 0x21, 0x64, 0x40, 0xe1, 0x30, 0xaa, - 0x53, 0xf3, 0x17, 0x74, 0x67, 0x62, 0x7e, 0xd4, 0x6f, 0x1f, 0x43, 0xae, 0x93, 0x21, 0xfd, 0x8a, - 0xcd, 0x5f, 0xc9, 0xc2, 0xc3, 0x83, 0x12, 0x7a, 0x8b, 0xc6, 0x9d, 0xf8, 0x91, 0xb8, 0x93, 0xbb, - 0x24, 0xb6, 0x8f, 0x25, 0x04, 0xe5, 0x77, 0xc6, 0x94, 0xd8, 0xeb, 0x5d, 0x9f, 0x03, 0xbd, 0x26, - 0x4e, 0x50, 0xd5, 0x4e, 0xa6, 0xf3, 0x0c, 0x8f, 0xc2, 0x89, 0x2a, 0x2f, 0xbe, 0xd3, 0x2d, 0xce, - 0x89, 0x14, 0x7f, 0x55, 0x12, 0x88, 0x42, 0x2c, 0x2b, 0xa1, 0x87, 0x21, 0xef, 0x71, 0xa8, 0xf4, - 0xb4, 0x17, 0x4f, 0xb2, 0xbc, 0x0c, 0x2b, 0x28, 0xfa, 0xa4, 0xa6, 0x0b, 0x8f, 0x1d, 0x57, 0x96, - 0x84, 0x83, 0x5e, 0x9a, 0x5f, 0x80, 0xbc, 0x2f, 0x13, 0x73, 0xf2, 0xe7, 0x80, 0xc7, 0x06, 0x0c, - 0xe0, 0xa0, 0x57, 0x27, 0x99, 0xa5, 0x93, 0xf7, 0x4f, 0xe5, 0xf0, 0x54, 0x24, 0x91, 0xa9, 0x6e, - 0x2d, 0xdc, 0xc6, 0x08, 0xbd, 0x37, 0x16, 0x14, 0xc0, 0x84, 0xf8, 0x9e, 0x93, 0x30, 0xd1, 0x6f, - 0xa4, 0xe4, 0xac, 0x2d, 0x5c, 0xf9, 0xd8, 0x43, 0x88, 0xbc, 0x3d, 0x4b, 0x56, 0xe6, 0xf7, 0x0c, - 0x98, 0x14, 0x6b, 0xe4, 0x2e, 0x44, 0xb2, 0xdc, 0x88, 0x46, 0xb2, 0x9c, 0x4b, 0xe5, 0xc4, 0xea, - 0x13, 0xc6, 0x72, 0x03, 0xa6, 0xf4, 0x8c, 0x51, 0xe8, 0x79, 0xed, 0xc4, 0x35, 0x46, 0xc9, 0xc1, - 0x22, 0xcf, 0xe4, 0xf0, 0x34, 0x36, 0x7f, 0x2b, 0xaf, 0x46, 0x91, 0x59, 0x3f, 0xf4, 0x95, 0x6f, - 0x1c, 0xb8, 0xf2, 0xf5, 0x85, 0x97, 0x49, 0x7f, 0xe1, 0x5d, 0x81, 0xbc, 0x3c, 0x16, 0x85, 0xf2, - 0xf0, 0xa0, 0xee, 0xdb, 0x47, 0x35, 0x10, 0x4a, 0x4c, 0xdb, 0x2e, 0xec, 0x82, 0xa7, 0xe6, 0x50, - 0x1d, 0xd7, 0x8a, 0x0c, 0x7a, 0x11, 0x26, 0x6f, 0xb9, 0xde, 0xcd, 0xa6, 0x6b, 0xb1, 0x44, 0xbf, - 0x90, 0xc6, 0x73, 0x92, 0x32, 0xb3, 0x71, 0x07, 0xeb, 0xeb, 0x21, 0x7d, 0xac, 0x33, 0x43, 0x25, - 0x98, 0x69, 0xd9, 0x0e, 0x26, 0x56, 0x5d, 0x05, 0xac, 0x8c, 0xf1, 0x4c, 0xa4, 0x52, 0xb5, 0xde, - 0x88, 0x82, 0x71, 0x1c, 0x1f, 0x7d, 0x1c, 0xf2, 0xbe, 0xc8, 0xbf, 0x94, 0xce, 0xc3, 0x9f, 0xba, - 0xa9, 0x72, 0xa2, 0xe1, 0xd8, 0xc9, 0x12, 0xac, 0x18, 0xa2, 0x75, 0x98, 0xf7, 0x44, 0x86, 0x93, - 0xc8, 0x67, 0x42, 0xf8, 0xa9, 0xc0, 0x12, 0x5e, 0xe2, 0x04, 0x38, 0x4e, 0xac, 0x45, 0x75, 0x27, - 0x96, 0xfa, 0x8c, 0xbf, 0x44, 0x68, 0xc6, 0x7b, 0xb6, 0xe0, 0xeb, 0x58, 0x40, 0x0f, 0x0a, 0x80, - 0xca, 0x8f, 0x10, 0x00, 0x55, 0x85, 0x53, 0x71, 0x10, 0xcb, 0xc3, 0xc2, 0x52, 0xbf, 0x68, 0x32, - 0xab, 0x92, 0x84, 0x84, 0x93, 0xeb, 0xa2, 0xeb, 0x50, 0xf0, 0x08, 0xbb, 0xd5, 0x94, 0xa4, 0xab, - 0xc1, 0xd0, 0x4e, 0x55, 0x58, 0x12, 0xc0, 0x21, 0x2d, 0x3a, 0xef, 0x56, 0x34, 0x19, 0xe7, 0x95, - 0x14, 0x3f, 0x74, 0x26, 0xe6, 0xbe, 0x4f, 0x7e, 0x24, 0xf3, 0xcd, 0x69, 0x38, 0x11, 0xb1, 0x68, - 0xa0, 0x07, 0x21, 0xc7, 0x12, 0xd3, 0xb0, 0xe3, 0x21, 0x1f, 0x1e, 0x61, 0x7c, 0x70, 0x38, 0x0c, - 0x7d, 0xce, 0x80, 0x99, 0x76, 0xc4, 0xf6, 0x2b, 0x4f, 0xce, 0x11, 0x5f, 0x17, 0xa3, 0x06, 0x65, - 0x2d, 0x8d, 0x75, 0x94, 0x19, 0x8e, 0x73, 0xa7, 0x1b, 0x50, 0x78, 0x26, 0x36, 0x89, 0xc7, 0xb0, - 0x85, 0x66, 0xa5, 0x48, 0xac, 0x44, 0xc1, 0x38, 0x8e, 0x4f, 0x67, 0x98, 0xf5, 0x6e, 0x94, 0x2f, - 0x20, 0x95, 0x24, 0x01, 0x1c, 0xd2, 0x42, 0xcf, 0xc0, 0xb4, 0xc8, 0xc1, 0x58, 0x71, 0xeb, 0x17, - 0x2c, 0x7f, 0x47, 0x5c, 0x29, 0xd4, 0x15, 0x68, 0x25, 0x02, 0xc5, 0x31, 0x6c, 0xd6, 0xb7, 0x30, - 0xd1, 0x25, 0x23, 0x30, 0x1e, 0xcd, 0xf2, 0xbd, 0x12, 0x05, 0xe3, 0x38, 0x3e, 0x7a, 0x44, 0x3b, - 0xf7, 0xf9, 0xeb, 0xa0, 0x3a, 0x0d, 0x12, 0xce, 0xfe, 0x12, 0xcc, 0x74, 0xd8, 0x0d, 0xac, 0x2e, - 0x81, 0x62, 0x3f, 0x2a, 0x86, 0x57, 0xa3, 0x60, 0x1c, 0xc7, 0x47, 0x4f, 0xc1, 0x09, 0x8f, 0x9e, - 0x6e, 0x8a, 0x00, 0x7f, 0x32, 0x54, 0x2f, 0x42, 0x58, 0x07, 0xe2, 0x28, 0x2e, 0x7a, 0x16, 0xe6, - 0xc2, 0x94, 0x65, 0x92, 0x00, 0x7f, 0x43, 0x54, 0xd9, 0x78, 0x4a, 0x71, 0x04, 0xdc, 0x5b, 0x07, - 0xfd, 0x02, 0xcc, 0x6a, 0x23, 0xb1, 0xe6, 0xd4, 0xc9, 0x6d, 0x91, 0x56, 0x8a, 0x7d, 0x90, 0x61, - 0x25, 0x06, 0xc3, 0x3d, 0xd8, 0xe8, 0x7d, 0x30, 0x5d, 0x73, 0x9b, 0x4d, 0x76, 0xc6, 0xf1, 0x0c, - 0xd3, 0x3c, 0x7f, 0x14, 0xcf, 0xb4, 0x15, 0x81, 0xe0, 0x18, 0x26, 0xba, 0x08, 0xc8, 0xdd, 0xa2, - 0xfa, 0x0c, 0xa9, 0x3f, 0xcb, 0xbf, 0xa9, 0x4a, 0x45, 0xfc, 0x89, 0xa8, 0x5f, 0xf4, 0xe5, 0x1e, - 0x0c, 0x9c, 0x50, 0x8b, 0x25, 0xf3, 0xd1, 0xe2, 0xc8, 0xa6, 0xd3, 0xf8, 0x1a, 0x50, 0xdc, 0x5e, - 0x70, 0x68, 0x10, 0x99, 0x07, 0xe3, 0xdc, 0x4d, 0x3d, 0x9d, 0x44, 0x52, 0x7a, 0xb2, 0xd9, 0x50, - 0x46, 0xf0, 0x52, 0x2c, 0x38, 0xa1, 0x4f, 0x40, 0x61, 0x4b, 0x66, 0x1e, 0x5f, 0x98, 0x4d, 0x43, - 0x2e, 0xc6, 0x92, 0xe8, 0x87, 0xf7, 0x61, 0x05, 0xc0, 0x21, 0x4b, 0xf4, 0x10, 0x4c, 0x5e, 0xa8, - 0x94, 0xd4, 0x2a, 0x9c, 0x63, 0xb3, 0x3f, 0x46, 0xab, 0x60, 0x1d, 0x40, 0x77, 0x98, 0xd2, 0x97, - 0x10, 0x9b, 0xe2, 0x50, 0xde, 0xf6, 0xaa, 0x3f, 0x14, 0x9b, 0x3d, 0x82, 0xe2, 0xea, 0xc2, 0xc9, - 0x18, 0xb6, 0x28, 0xc7, 0x0a, 0x03, 0xbd, 0x00, 0x93, 0x42, 0x5e, 0xb0, 0xb3, 0x69, 0xfe, 0x68, - 0x31, 0x8a, 0x38, 0x24, 0x81, 0x75, 0x7a, 0xec, 0x6d, 0x8b, 0x25, 0x64, 0x26, 0xe7, 0x3b, 0xcd, - 0xe6, 0xc2, 0x29, 0x76, 0x6e, 0x86, 0x6f, 0x5b, 0x21, 0x08, 0xeb, 0x78, 0xe8, 0x31, 0xe9, 0xaf, - 0xf1, 0xb6, 0xc8, 0x63, 0x9f, 0xf2, 0xd7, 0x50, 0x5a, 0x6e, 0x1f, 0x37, 0xe6, 0xd3, 0x87, 0x38, - 0x4a, 0x6c, 0xc1, 0xa2, 0x54, 0xb1, 0x7a, 0x37, 0xc9, 0xc2, 0x42, 0xc4, 0x36, 0xb1, 0x78, 0xbd, - 0x2f, 0x26, 0x3e, 0x80, 0x0a, 0xda, 0x82, 0xac, 0xd5, 0xdc, 0x5a, 0xb8, 0x37, 0x0d, 0x5d, 0x51, - 0x7d, 0x23, 0x99, 0xbb, 0x1e, 0x95, 0xd6, 0xcb, 0x98, 0x12, 0x37, 0x5f, 0xc9, 0xa8, 0xb7, 0x00, - 0x95, 0x60, 0xf3, 0x25, 0x7d, 0x55, 0x1b, 0x69, 0x7c, 0x03, 0xb4, 0x27, 0x3d, 0x3f, 0x17, 0x48, - 0x89, 0x6b, 0xba, 0xad, 0xf6, 0x71, 0x2a, 0xd9, 0x53, 0xa2, 0xc9, 0x43, 0xf9, 0x1d, 0x32, 0xba, - 0x8b, 0xcd, 0xfd, 0x09, 0x65, 0xfa, 0x8a, 0x39, 0x20, 0x78, 0x90, 0xb3, 0xfd, 0xc0, 0x76, 0x53, - 0x8c, 0xa7, 0x8b, 0x65, 0xdd, 0x64, 0xee, 0xba, 0x0c, 0x80, 0x39, 0x2b, 0xca, 0xd3, 0x69, 0xd8, - 0xce, 0x6d, 0xd1, 0xfd, 0x2b, 0xa9, 0x7b, 0x16, 0x70, 0x9e, 0x0c, 0x80, 0x39, 0x2b, 0x74, 0x83, - 0xaf, 0xb4, 0x74, 0xbe, 0xf7, 0x1a, 0xff, 0x8c, 0x73, 0x74, 0xc5, 0x51, 0x5e, 0x7e, 0xcb, 0x16, - 0x3a, 0xcc, 0x88, 0xbc, 0xaa, 0x1b, 0x6b, 0x49, 0xbc, 0xaa, 0x1b, 0x6b, 0x98, 0x32, 0x41, 0xaf, - 0x19, 0x00, 0x96, 0xfa, 0x9e, 0x71, 0x3a, 0xdf, 0xb2, 0xe8, 0xf7, 0x7d, 0x64, 0xee, 0x61, 0x17, - 0x42, 0xb1, 0xc6, 0x19, 0xbd, 0x08, 0x13, 0x16, 0xff, 0x12, 0x8f, 0x70, 0x5e, 0x4c, 0xe7, 0xf3, - 0x52, 0xb1, 0x16, 0x30, 0x63, 0x85, 0x00, 0x61, 0xc9, 0x90, 0xf2, 0x0e, 0x3c, 0x8b, 0x6c, 0xdb, - 0x37, 0x85, 0x89, 0xa4, 0x3a, 0x72, 0x42, 0x6d, 0x4a, 0x2c, 0x89, 0xb7, 0x00, 0x61, 0xc9, 0x90, - 0x7f, 0x42, 0xd4, 0x72, 0x2c, 0x15, 0x92, 0x92, 0x4e, 0xe0, 0x92, 0x1e, 0xe4, 0xa2, 0x7d, 0x42, - 0x54, 0x67, 0x84, 0xa3, 0x7c, 0xcd, 0x1f, 0x67, 0x01, 0xd8, 0x4f, 0x1e, 0x26, 0xdd, 0x62, 0xa9, - 0xf5, 0x76, 0xdc, 0xba, 0xd8, 0xda, 0x29, 0x46, 0x3b, 0x83, 0xc8, 0xa3, 0xb7, 0xe3, 0xd6, 0xb1, - 0x60, 0x82, 0x1a, 0x30, 0xd6, 0xb6, 0x82, 0x9d, 0xf4, 0x43, 0xab, 0xf3, 0x3c, 0x5e, 0x28, 0xd8, - 0xc1, 0x8c, 0x01, 0x7a, 0xd9, 0x80, 0x09, 0x1e, 0x5c, 0x2d, 0x0d, 0xdc, 0x23, 0xbf, 0xe2, 0xca, - 0x31, 0x5b, 0xe2, 0x11, 0xdc, 0xc2, 0x45, 0x42, 0x89, 0x46, 0x51, 0x8a, 0x25, 0xdb, 0xc5, 0x57, - 0x0d, 0x98, 0xd2, 0x51, 0x13, 0x9c, 0x1b, 0x3e, 0xa2, 0x3b, 0x37, 0xa4, 0x39, 0x1e, 0xba, 0x9f, - 0xc4, 0xbf, 0x1a, 0xa0, 0x7d, 0x78, 0x35, 0x74, 0x6d, 0x34, 0x06, 0x76, 0x6d, 0xcc, 0x0c, 0xe9, - 0xda, 0x98, 0x1d, 0xca, 0xb5, 0x71, 0x6c, 0x78, 0xd7, 0xc6, 0x5c, 0x7f, 0xd7, 0x46, 0xf3, 0x75, - 0x03, 0xe6, 0x7a, 0xce, 0xc3, 0xf8, 0x07, 0xee, 0x8d, 0x01, 0x3f, 0x70, 0xbf, 0x0a, 0xb3, 0x22, - 0xf5, 0x73, 0xb5, 0xdd, 0xb4, 0x13, 0xc3, 0xde, 0x37, 0x63, 0x70, 0xdc, 0x53, 0xc3, 0xfc, 0x73, - 0x03, 0x26, 0xb5, 0x60, 0x39, 0xda, 0x0f, 0x16, 0x54, 0x28, 0x9a, 0x11, 0x66, 0xbd, 0x66, 0x0f, - 0x0a, 0x1c, 0xc6, 0xdf, 0xb6, 0x1a, 0x5a, 0x9a, 0xd1, 0xf0, 0x6d, 0x8b, 0x96, 0x62, 0x01, 0xe5, - 0x09, 0x24, 0x49, 0x9b, 0x0d, 0x7a, 0x56, 0x4f, 0x20, 0x49, 0xda, 0x98, 0x41, 0x18, 0x3b, 0xaa, - 0x47, 0x0a, 0xaf, 0x57, 0x2d, 0xc9, 0xb6, 0xe5, 0x05, 0x98, 0xc3, 0xd0, 0x19, 0xc8, 0x12, 0xa7, - 0x2e, 0x2e, 0xbd, 0xea, 0xc3, 0x56, 0xe7, 0x9c, 0x3a, 0xa6, 0xe5, 0xe6, 0x65, 0x98, 0xaa, 0x92, - 0x9a, 0x47, 0x82, 0xe7, 0xc8, 0xde, 0xc0, 0x5f, 0xca, 0xa2, 0xab, 0x3d, 0xf6, 0xa5, 0x2c, 0x5a, - 0x9d, 0x96, 0x9b, 0x7f, 0x68, 0x40, 0x2c, 0x13, 0xbc, 0x66, 0xe7, 0x36, 0xfa, 0xda, 0xb9, 0x75, - 0xdb, 0x68, 0xe6, 0x40, 0xdb, 0xe8, 0x45, 0x40, 0x2d, 0xba, 0x15, 0x22, 0xdf, 0x3d, 0x10, 0xf6, - 0x86, 0x30, 0x34, 0xb7, 0x07, 0x03, 0x27, 0xd4, 0x32, 0xff, 0x80, 0x37, 0x56, 0xcf, 0x0d, 0x7f, - 0xf8, 0x00, 0x74, 0x20, 0xc7, 0x48, 0x09, 0xa3, 0x4b, 0x65, 0xb4, 0xcd, 0xdd, 0x9b, 0xe2, 0x22, - 0x9c, 0x48, 0xb1, 0xe5, 0x19, 0x37, 0xf3, 0xbb, 0xbc, 0xad, 0x5a, 0xf2, 0xf8, 0x01, 0xda, 0xda, - 0x8a, 0xb6, 0xf5, 0x42, 0x5a, 0x67, 0x65, 0x72, 0x1b, 0xd1, 0x12, 0x40, 0x9b, 0x78, 0x35, 0xe2, - 0x04, 0xd2, 0x19, 0x3b, 0x27, 0x82, 0x57, 0x54, 0x29, 0xd6, 0x30, 0xcc, 0x97, 0x0d, 0x98, 0xad, - 0x06, 0x76, 0xed, 0xa6, 0xed, 0xf0, 0x60, 0xac, 0x6d, 0xbb, 0x41, 0x6f, 0x29, 0x44, 0x7c, 0x04, - 0x8a, 0x9b, 0xc1, 0xd4, 0x51, 0x2c, 0xbf, 0xfd, 0x24, 0xe1, 0xa8, 0x04, 0x33, 0xd2, 0xda, 0x2e, - 0x6d, 0x97, 0x3c, 0x88, 0x54, 0xd9, 0x4a, 0x56, 0xa3, 0x60, 0x1c, 0xc7, 0x37, 0x3f, 0x09, 0x93, - 0xda, 0xf9, 0xca, 0x8e, 0xa2, 0xdb, 0x56, 0x2d, 0x88, 0x6f, 0xe1, 0x73, 0xb4, 0x10, 0x73, 0x18, - 0x33, 0xb1, 0x72, 0x6f, 0xdd, 0xd8, 0x16, 0x16, 0x3e, 0xba, 0x02, 0x4a, 0x89, 0x79, 0xa4, 0x41, - 0x6e, 0xcb, 0x84, 0xa6, 0x92, 0x18, 0xa6, 0x85, 0x98, 0xc3, 0xcc, 0x47, 0x20, 0x2f, 0x43, 0xfd, - 0x59, 0xbc, 0xac, 0x34, 0xff, 0xe9, 0xf1, 0xb2, 0xae, 0x17, 0x60, 0x06, 0x31, 0xaf, 0x41, 0x5e, - 0x66, 0x24, 0x38, 0x1c, 0x9b, 0xee, 0x2a, 0xdf, 0xb1, 0x2f, 0xb8, 0x7e, 0x20, 0xd3, 0x28, 0xf0, - 0x27, 0x81, 0x4b, 0x6b, 0xac, 0x0c, 0x2b, 0xa8, 0xf9, 0x18, 0xcc, 0xc4, 0x9e, 0x86, 0x06, 0x08, - 0xae, 0xfd, 0x46, 0x16, 0xa6, 0x22, 0x9f, 0x28, 0x3e, 0x7c, 0x41, 0x0e, 0xbe, 0xcf, 0x13, 0xac, - 0xfa, 0xd9, 0x21, 0xad, 0xfa, 0xfa, 0x33, 0xca, 0xd8, 0xf1, 0x3e, 0xa3, 0xe4, 0xd2, 0x79, 0x46, - 0xd1, 0x9e, 0xfb, 0xc6, 0xef, 0xde, 0x73, 0xdf, 0x57, 0x73, 0x30, 0x1d, 0xcd, 0xd6, 0x34, 0xc0, - 0x4c, 0x3e, 0xd2, 0x33, 0x93, 0x43, 0x5a, 0x35, 0xb3, 0xa3, 0x5a, 0x35, 0xc7, 0x46, 0xb5, 0x6a, - 0xe6, 0x8e, 0x60, 0xd5, 0xec, 0xb5, 0x49, 0x8e, 0x0f, 0x6c, 0x93, 0x7c, 0x5a, 0x39, 0x02, 0x4d, - 0x44, 0x5e, 0xce, 0x43, 0x47, 0x20, 0x14, 0x9d, 0x86, 0x15, 0xb7, 0x9e, 0xe8, 0x50, 0x95, 0x3f, - 0xc4, 0x7a, 0xe3, 0x25, 0xfa, 0xed, 0x0c, 0xff, 0x70, 0xf2, 0xb6, 0x21, 0x7c, 0x76, 0x9e, 0x80, - 0x49, 0xb1, 0x9e, 0x98, 0x36, 0x05, 0x51, 0x4d, 0xac, 0x1a, 0x82, 0xb0, 0x8e, 0xc7, 0xbe, 0xa2, - 0x19, 0xfd, 0x6c, 0x28, 0x33, 0x12, 0xeb, 0x5f, 0xd1, 0x8c, 0x7d, 0x66, 0x34, 0x8e, 0x6f, 0x7e, - 0x1c, 0x4e, 0x25, 0xde, 0xd9, 0x98, 0x11, 0x8b, 0x09, 0x7a, 0x52, 0x17, 0x08, 0x5a, 0x33, 0x62, - 0xc9, 0x7c, 0x17, 0xaf, 0xf7, 0xc5, 0xc4, 0x07, 0x50, 0x31, 0xbf, 0x92, 0x85, 0xe9, 0xe8, 0x27, - 0x98, 0xd0, 0x2d, 0x65, 0xe1, 0x49, 0xc5, 0xb8, 0xc4, 0xc9, 0x6a, 0x19, 0x80, 0xfa, 0x9a, 0x6b, - 0x6f, 0xb1, 0xf5, 0xb5, 0xa5, 0xd2, 0x11, 0x1d, 0x1f, 0x63, 0x61, 0x27, 0x15, 0xec, 0xd8, 0x57, - 0x96, 0xc2, 0x30, 0x0c, 0x71, 0x31, 0x4b, 0x9d, 0x7b, 0x18, 0x58, 0xa1, 0x58, 0x61, 0x8d, 0x2d, - 0x95, 0x2d, 0xbb, 0xc4, 0xb3, 0xb7, 0x6d, 0xf5, 0xf9, 0x48, 0x76, 0x72, 0x5f, 0x13, 0x65, 0x58, - 0x41, 0xcd, 0x97, 0x33, 0x10, 0x7e, 0x2c, 0x97, 0x7d, 0xa7, 0xc4, 0xd7, 0x94, 0x60, 0x31, 0x6d, - 0x17, 0x47, 0xfd, 0x18, 0x50, 0x48, 0x51, 0x38, 0x69, 0x6a, 0x25, 0x38, 0xc2, 0xf1, 0x67, 0xf0, - 0x91, 0x5c, 0x0b, 0x66, 0x62, 0xc1, 0xa9, 0xa9, 0x7b, 0xc2, 0xff, 0x28, 0x0b, 0x05, 0x15, 0xde, - 0x8b, 0xde, 0x1b, 0xb1, 0x48, 0x14, 0xca, 0x6f, 0xd7, 0x52, 0xf2, 0xef, 0xb8, 0xf5, 0x3b, 0xdd, - 0xe2, 0x8c, 0x42, 0x8e, 0x59, 0x17, 0xce, 0x40, 0xb6, 0xe3, 0x35, 0xe3, 0x57, 0x8e, 0xab, 0x78, - 0x1d, 0xd3, 0x72, 0x74, 0x3b, 0x6e, 0x12, 0xd8, 0x48, 0x29, 0x24, 0x99, 0xeb, 0xe6, 0xfd, 0x4d, - 0x01, 0x54, 0x4a, 0x6e, 0xb9, 0xf5, 0xbd, 0x78, 0x0a, 0xff, 0xb2, 0x5b, 0xdf, 0xc3, 0x0c, 0x82, - 0x9e, 0x81, 0xe9, 0xc0, 0x6e, 0x11, 0xb7, 0x13, 0xe8, 0x9f, 0x22, 0xcd, 0x86, 0xcf, 0x8f, 0x9b, - 0x11, 0x28, 0x8e, 0x61, 0x53, 0x29, 0x7b, 0xc3, 0x77, 0x1d, 0x96, 0x97, 0x6f, 0x3c, 0xfa, 0x56, - 0x71, 0xb1, 0x7a, 0xf9, 0x12, 0xb3, 0x8c, 0x28, 0x0c, 0x8a, 0x6d, 0xb3, 0x58, 0x3e, 0x8f, 0x88, - 0xd7, 0xff, 0xd9, 0x30, 0xd3, 0x03, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, 0xb4, 0xb5, 0x4c, - 0xa2, 0x4c, 0x95, 0x1f, 0x96, 0x74, 0x69, 0xd9, 0x9d, 0x6e, 0x71, 0x81, 0x38, 0x35, 0xb7, 0x6e, - 0x3b, 0x8d, 0x65, 0x8a, 0xb8, 0x84, 0xad, 0x5b, 0x52, 0xd4, 0xa8, 0x9a, 0xe6, 0x55, 0x98, 0x89, - 0x0d, 0x98, 0xbc, 0x22, 0x1a, 0xc9, 0x57, 0xc4, 0xc1, 0xb2, 0xee, 0xff, 0x89, 0x01, 0x73, 0x3d, - 0x47, 0xc0, 0xa0, 0x81, 0x1e, 0x71, 0x61, 0x94, 0x39, 0xba, 0x30, 0xca, 0x0e, 0x27, 0x8c, 0xca, - 0x5b, 0xdf, 0x7a, 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, 0xf3, 0xec, 0x3d, - 0x2f, 0xef, 0x9f, 0x35, 0xbe, 0xb5, 0x7f, 0xd6, 0xf8, 0xce, 0xfe, 0x59, 0xe3, 0xfb, 0xfb, 0x67, - 0x8d, 0x7f, 0xdc, 0x3f, 0x6b, 0xbc, 0xfe, 0xa3, 0xb3, 0xf7, 0x3c, 0xff, 0x74, 0xb8, 0x40, 0x97, - 0xe5, 0x02, 0x65, 0x3f, 0xde, 0x25, 0x97, 0xe3, 0x72, 0xfb, 0x66, 0x63, 0x99, 0x2e, 0xd0, 0x65, - 0x55, 0x22, 0x17, 0xe8, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xda, 0xc9, 0xe3, 0x90, 0xed, 0x93, - 0x00, 0x00, + // 7642 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x6c, 0x23, 0xd7, + 0x75, 0xa8, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x8f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, + 0x38, 0xf0, 0x73, 0xde, 0x73, 0xa4, 0xc4, 0x1f, 0xef, 0x39, 0xb1, 0xe1, 0xf7, 0x48, 0x69, 0xd7, + 0xab, 0xb5, 0xb4, 0xcb, 0xbd, 0xd4, 0xee, 0x26, 0x4e, 0x9c, 0x64, 0x44, 0x5e, 0x51, 0xb3, 0x4b, + 0xce, 0x30, 0x33, 0x43, 0xed, 0xca, 0x31, 0x12, 0xfb, 0x05, 0x76, 0xd3, 0x36, 0x41, 0xdc, 0x26, + 0x41, 0x51, 0x14, 0x2d, 0xd2, 0xc2, 0x40, 0x3f, 0xd2, 0x5f, 0x41, 0x8b, 0xfe, 0x09, 0xd0, 0xa2, + 0xf9, 0x68, 0xfa, 0x23, 0x45, 0x52, 0xa0, 0x4d, 0x52, 0x20, 0x6c, 0xad, 0xf4, 0x4f, 0x8b, 0x16, + 0x41, 0x81, 0x14, 0x45, 0xf6, 0x57, 0x71, 0x3f, 0xe7, 0xce, 0x70, 0x28, 0x91, 0xe2, 0x68, 0x63, + 0xb4, 0xf9, 0x47, 0xde, 0x73, 0xee, 0x39, 0xf7, 0xf3, 0x9c, 0x73, 0xcf, 0x3d, 0xf7, 0x0c, 0xac, + 0x37, 0xec, 0x60, 0xa7, 0xb3, 0xb5, 0x54, 0x73, 0x5b, 0xcb, 0x96, 0xd7, 0x70, 0xdb, 0x9e, 0x7b, + 0x83, 0xfd, 0x78, 0x97, 0xe7, 0x36, 0x9b, 0x6e, 0x27, 0xf0, 0x97, 0xdb, 0x37, 0x1b, 0xcb, 0x56, + 0xdb, 0xf6, 0x97, 0x55, 0xc9, 0xee, 0x7b, 0xac, 0x66, 0x7b, 0xc7, 0x7a, 0xcf, 0x72, 0x83, 0x38, + 0xc4, 0xb3, 0x02, 0x52, 0x5f, 0x6a, 0x7b, 0x6e, 0xe0, 0xa2, 0xa7, 0x43, 0x6a, 0x4b, 0x92, 0x1a, + 0xfb, 0xf1, 0x11, 0x59, 0x77, 0xa9, 0x7d, 0xb3, 0xb1, 0x44, 0xa9, 0x2d, 0xa9, 0x12, 0x49, 0x6d, + 0xf1, 0x5d, 0x5a, 0x5b, 0x1a, 0x6e, 0xc3, 0x5d, 0x66, 0x44, 0xb7, 0x3a, 0xdb, 0xec, 0x1f, 0xfb, + 0xc3, 0x7e, 0x71, 0x66, 0x8b, 0x0f, 0xde, 0x7c, 0xd2, 0x5f, 0xb2, 0x5d, 0xda, 0xb6, 0xe5, 0x2d, + 0x2b, 0xa8, 0xed, 0x2c, 0xef, 0xf6, 0xb4, 0x68, 0xd1, 0xd4, 0x90, 0x6a, 0xae, 0x47, 0x92, 0x70, + 0x1e, 0x0f, 0x71, 0x5a, 0x56, 0x6d, 0xc7, 0x76, 0x88, 0xb7, 0x17, 0xf6, 0xba, 0x45, 0x02, 0x2b, + 0xa9, 0xd6, 0x72, 0xbf, 0x5a, 0x5e, 0xc7, 0x09, 0xec, 0x16, 0xe9, 0xa9, 0xf0, 0xbf, 0x0f, 0xab, + 0xe0, 0xd7, 0x76, 0x48, 0xcb, 0xea, 0xa9, 0xf7, 0x58, 0xbf, 0x7a, 0x9d, 0xc0, 0x6e, 0x2e, 0xdb, + 0x4e, 0xe0, 0x07, 0x5e, 0xbc, 0x92, 0xf9, 0xf5, 0x2c, 0x14, 0x4a, 0xeb, 0xe5, 0x6a, 0x60, 0x05, + 0x1d, 0x1f, 0xbd, 0x66, 0xc0, 0x54, 0xd3, 0xb5, 0xea, 0x65, 0xab, 0x69, 0x39, 0x35, 0xe2, 0x2d, + 0x18, 0x0f, 0x18, 0x0f, 0x4f, 0x3e, 0xba, 0xbe, 0x34, 0xca, 0x7c, 0x2d, 0x95, 0x6e, 0xf9, 0x98, + 0xf8, 0x6e, 0xc7, 0xab, 0x11, 0x4c, 0xb6, 0xcb, 0xf3, 0xdf, 0xea, 0x16, 0xef, 0xd9, 0xef, 0x16, + 0xa7, 0xd6, 0x35, 0x4e, 0x38, 0xc2, 0x17, 0x7d, 0xd1, 0x80, 0xb9, 0x9a, 0xe5, 0x58, 0xde, 0xde, + 0xa6, 0xe5, 0x35, 0x48, 0xf0, 0xac, 0xe7, 0x76, 0xda, 0x0b, 0x99, 0x63, 0x68, 0xcd, 0xbd, 0xa2, + 0x35, 0x73, 0x2b, 0x71, 0x76, 0xb8, 0xb7, 0x05, 0xac, 0x5d, 0x7e, 0x60, 0x6d, 0x35, 0x89, 0xde, + 0xae, 0xec, 0x71, 0xb6, 0xab, 0x1a, 0x67, 0x87, 0x7b, 0x5b, 0x60, 0xbe, 0x9a, 0x85, 0xb9, 0xd2, + 0x7a, 0x79, 0xd3, 0xb3, 0xb6, 0xb7, 0xed, 0x1a, 0x76, 0x3b, 0x81, 0xed, 0x34, 0xd0, 0x3b, 0x61, + 0xc2, 0x76, 0x1a, 0x1e, 0xf1, 0x7d, 0x36, 0x91, 0x85, 0xf2, 0x8c, 0x20, 0x3a, 0xb1, 0xc6, 0x8b, + 0xb1, 0x84, 0xa3, 0x27, 0x60, 0xd2, 0x27, 0xde, 0xae, 0x5d, 0x23, 0x15, 0xd7, 0x0b, 0xd8, 0x48, + 0xe7, 0xca, 0x27, 0x05, 0xfa, 0x64, 0x35, 0x04, 0x61, 0x1d, 0x8f, 0x56, 0xf3, 0x5c, 0x37, 0x10, + 0x70, 0x36, 0x10, 0x85, 0xb0, 0x1a, 0x0e, 0x41, 0x58, 0xc7, 0x43, 0xaf, 0x1b, 0x30, 0xeb, 0x07, + 0x76, 0xed, 0xa6, 0xed, 0x10, 0xdf, 0x5f, 0x71, 0x9d, 0x6d, 0xbb, 0xb1, 0x90, 0x63, 0xa3, 0x78, + 0x69, 0xb4, 0x51, 0xac, 0xc6, 0xa8, 0x96, 0xe7, 0xf7, 0xbb, 0xc5, 0xd9, 0x78, 0x29, 0xee, 0xe1, + 0x8e, 0x56, 0x61, 0xd6, 0x72, 0x1c, 0x37, 0xb0, 0x02, 0xdb, 0x75, 0x2a, 0x1e, 0xd9, 0xb6, 0x6f, + 0x2f, 0x8c, 0xb1, 0xee, 0x2c, 0x88, 0xee, 0xcc, 0x96, 0x62, 0x70, 0xdc, 0x53, 0xc3, 0x5c, 0x85, + 0x85, 0x52, 0x6b, 0xcb, 0xf2, 0x7d, 0xab, 0xee, 0x7a, 0xb1, 0xd9, 0x78, 0x18, 0xf2, 0x2d, 0xab, + 0xdd, 0xb6, 0x9d, 0x06, 0x9d, 0x8e, 0xec, 0xc3, 0x85, 0xf2, 0xd4, 0x7e, 0xb7, 0x98, 0xdf, 0x10, + 0x65, 0x58, 0x41, 0xcd, 0x1f, 0x64, 0x60, 0xb2, 0xe4, 0x58, 0xcd, 0x3d, 0xdf, 0xf6, 0x71, 0xc7, + 0x41, 0x1f, 0x85, 0x3c, 0x95, 0x2e, 0x75, 0x2b, 0xb0, 0xc4, 0x8e, 0x7c, 0xf7, 0x12, 0xdf, 0xec, + 0x4b, 0xfa, 0x66, 0x0f, 0xc7, 0x85, 0x62, 0x2f, 0xed, 0xbe, 0x67, 0xe9, 0xf2, 0xd6, 0x0d, 0x52, + 0x0b, 0x36, 0x48, 0x60, 0x95, 0x91, 0xe8, 0x05, 0x84, 0x65, 0x58, 0x51, 0x45, 0x2e, 0x8c, 0xf9, + 0x6d, 0x52, 0x13, 0x3b, 0x6c, 0x63, 0xc4, 0x95, 0x1c, 0x36, 0xbd, 0xda, 0x26, 0xb5, 0xf2, 0x94, + 0x60, 0x3d, 0x46, 0xff, 0x61, 0xc6, 0x08, 0xdd, 0x82, 0x71, 0x9f, 0xc9, 0x1c, 0xb1, 0x79, 0x2e, + 0xa7, 0xc7, 0x92, 0x91, 0x2d, 0x4f, 0x0b, 0xa6, 0xe3, 0xfc, 0x3f, 0x16, 0xec, 0xcc, 0xbf, 0x33, + 0xe0, 0xa4, 0x86, 0x5d, 0xf2, 0x1a, 0x9d, 0x16, 0x71, 0x02, 0xf4, 0x00, 0x8c, 0x39, 0x56, 0x8b, + 0x88, 0x8d, 0xa2, 0x9a, 0x7c, 0xc9, 0x6a, 0x11, 0xcc, 0x20, 0xe8, 0x41, 0xc8, 0xed, 0x5a, 0xcd, + 0x0e, 0x61, 0x83, 0x54, 0x28, 0x9f, 0x10, 0x28, 0xb9, 0x6b, 0xb4, 0x10, 0x73, 0x18, 0x7a, 0x09, + 0x0a, 0xec, 0xc7, 0x79, 0xcf, 0x6d, 0xa5, 0xd4, 0x35, 0xd1, 0xc2, 0x6b, 0x92, 0x6c, 0xf9, 0xc4, + 0x7e, 0xb7, 0x58, 0x50, 0x7f, 0x71, 0xc8, 0xd0, 0xfc, 0x7b, 0x03, 0x66, 0xb4, 0xce, 0xad, 0xdb, + 0x7e, 0x80, 0x3e, 0xd4, 0xb3, 0x78, 0x96, 0x06, 0x5b, 0x3c, 0xb4, 0x36, 0x5b, 0x3a, 0xb3, 0xa2, + 0xa7, 0x79, 0x59, 0xa2, 0x2d, 0x1c, 0x07, 0x72, 0x76, 0x40, 0x5a, 0xfe, 0x42, 0xe6, 0x81, 0xec, + 0xc3, 0x93, 0x8f, 0xae, 0xa5, 0x36, 0x8d, 0xe1, 0xf8, 0xae, 0x51, 0xfa, 0x98, 0xb3, 0x31, 0xbf, + 0x32, 0x16, 0xe9, 0x21, 0x5d, 0x51, 0xc8, 0x85, 0x89, 0x16, 0x09, 0x3c, 0xbb, 0xc6, 0xf7, 0xd5, + 0xe4, 0xa3, 0xab, 0xa3, 0xb5, 0x62, 0x83, 0x11, 0x0b, 0x85, 0x25, 0xff, 0xef, 0x63, 0xc9, 0x05, + 0xed, 0xc0, 0x98, 0xe5, 0x35, 0x64, 0x9f, 0xcf, 0xa7, 0x33, 0xbf, 0xe1, 0x9a, 0x2b, 0x79, 0x0d, + 0x1f, 0x33, 0x0e, 0x68, 0x19, 0x0a, 0x01, 0xf1, 0x5a, 0xb6, 0x63, 0x05, 0x5c, 0xba, 0xe6, 0xcb, + 0x73, 0x02, 0xad, 0xb0, 0x29, 0x01, 0x38, 0xc4, 0x41, 0x4d, 0x18, 0xaf, 0x7b, 0x7b, 0xb8, 0xe3, + 0x2c, 0x8c, 0xa5, 0x31, 0x14, 0xab, 0x8c, 0x56, 0xb8, 0x99, 0xf8, 0x7f, 0x2c, 0x78, 0xa0, 0x37, + 0x0c, 0x98, 0x6f, 0x11, 0xcb, 0xef, 0x78, 0x84, 0x76, 0x01, 0x93, 0x80, 0x38, 0x54, 0x1a, 0x2e, + 0xe4, 0x18, 0x73, 0x3c, 0xea, 0x3c, 0xf4, 0x52, 0x2e, 0xdf, 0x2f, 0x9a, 0x32, 0x9f, 0x04, 0xc5, + 0x89, 0xad, 0x31, 0x7f, 0x30, 0x06, 0x73, 0x3d, 0x12, 0x02, 0x3d, 0x0e, 0xb9, 0xf6, 0x8e, 0xe5, + 0xcb, 0x2d, 0x7f, 0x56, 0xae, 0xb7, 0x0a, 0x2d, 0xbc, 0xd3, 0x2d, 0x9e, 0x90, 0x55, 0x58, 0x01, + 0xe6, 0xc8, 0x54, 0xa7, 0xb6, 0x88, 0xef, 0x5b, 0x0d, 0x29, 0x07, 0xb4, 0x65, 0xc2, 0x8a, 0xb1, + 0x84, 0xa3, 0x5f, 0x30, 0xe0, 0x04, 0x5f, 0x32, 0x98, 0xf8, 0x9d, 0x66, 0x40, 0x65, 0x1d, 0x1d, + 0x96, 0x8b, 0x69, 0x2c, 0x4f, 0x4e, 0xb2, 0x7c, 0x4a, 0x70, 0x3f, 0xa1, 0x97, 0xfa, 0x38, 0xca, + 0x17, 0x5d, 0x87, 0x82, 0x1f, 0x58, 0x5e, 0x40, 0xea, 0xa5, 0x80, 0x69, 0xb5, 0xc9, 0x47, 0xff, + 0xe7, 0x60, 0x42, 0x60, 0xd3, 0x6e, 0x11, 0x2e, 0x70, 0xaa, 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x97, + 0x00, 0xbc, 0x8e, 0x53, 0xed, 0xb4, 0x5a, 0x96, 0xb7, 0x27, 0x34, 0xf8, 0x85, 0xd1, 0xba, 0x87, + 0x15, 0xbd, 0x50, 0x67, 0x85, 0x65, 0x58, 0xe3, 0x87, 0x5e, 0x31, 0xe0, 0x04, 0x5f, 0x89, 0xb2, + 0x05, 0xe3, 0x29, 0xb7, 0x60, 0x8e, 0x0e, 0xed, 0xaa, 0xce, 0x02, 0x47, 0x39, 0x9a, 0x7f, 0x13, + 0xd5, 0x27, 0xd5, 0x80, 0x5a, 0xd7, 0x8d, 0x3d, 0xf4, 0x41, 0xb8, 0xd7, 0xef, 0xd4, 0x6a, 0xc4, + 0xf7, 0xb7, 0x3b, 0x4d, 0xdc, 0x71, 0x2e, 0xd8, 0x7e, 0xe0, 0x7a, 0x7b, 0xeb, 0x76, 0xcb, 0x0e, + 0xd8, 0x8a, 0xcb, 0x95, 0xcf, 0xec, 0x77, 0x8b, 0xf7, 0x56, 0xfb, 0x21, 0xe1, 0xfe, 0xf5, 0x91, + 0x05, 0xf7, 0x75, 0x9c, 0xfe, 0xe4, 0xb9, 0xf5, 0x56, 0xdc, 0xef, 0x16, 0xef, 0xbb, 0xda, 0x1f, + 0x0d, 0x1f, 0x44, 0xc3, 0xfc, 0x67, 0x03, 0x66, 0x65, 0xbf, 0x36, 0x49, 0xab, 0xdd, 0xa4, 0xd2, + 0xe5, 0xf8, 0x0d, 0x91, 0x20, 0x62, 0x88, 0xe0, 0x74, 0xd4, 0x89, 0x6c, 0x7f, 0x3f, 0x6b, 0xc4, + 0xfc, 0x27, 0x03, 0xe6, 0xe3, 0xc8, 0x77, 0x41, 0x79, 0xfa, 0x51, 0xe5, 0x79, 0x29, 0xdd, 0xde, + 0xf6, 0xd1, 0xa0, 0xaf, 0x8d, 0xf5, 0xf6, 0xf5, 0xbf, 0xba, 0x1a, 0x0d, 0xb5, 0x62, 0xf6, 0x67, + 0xa9, 0x15, 0xc7, 0xde, 0x52, 0x5a, 0xf1, 0xf7, 0xc6, 0x60, 0xaa, 0xe4, 0x04, 0x76, 0x69, 0x7b, + 0xdb, 0x76, 0xec, 0x60, 0x0f, 0x7d, 0x26, 0x03, 0xcb, 0x6d, 0x8f, 0x6c, 0x13, 0xcf, 0x23, 0xf5, + 0xd5, 0x8e, 0x67, 0x3b, 0x8d, 0x6a, 0x6d, 0x87, 0xd4, 0x3b, 0x4d, 0xdb, 0x69, 0xac, 0x35, 0x1c, + 0x57, 0x15, 0x9f, 0xbb, 0x4d, 0x6a, 0x1d, 0xd6, 0x25, 0xbe, 0x29, 0x5a, 0xa3, 0x75, 0xa9, 0x32, + 0x1c, 0xd3, 0xf2, 0x63, 0xfb, 0xdd, 0xe2, 0xf2, 0x90, 0x95, 0xf0, 0xb0, 0x5d, 0x43, 0x9f, 0xce, + 0xc0, 0x92, 0x47, 0x3e, 0xd6, 0xb1, 0x07, 0x1f, 0x0d, 0x2e, 0xb5, 0x9a, 0x23, 0xaa, 0x9f, 0xa1, + 0x78, 0x96, 0x1f, 0xdd, 0xef, 0x16, 0x87, 0xac, 0x83, 0x87, 0xec, 0x97, 0xf9, 0xb5, 0x0c, 0x9c, + 0x2a, 0xb5, 0xdb, 0x1b, 0xc4, 0xdf, 0x89, 0x1d, 0x6a, 0x3f, 0x67, 0xc0, 0xf4, 0xae, 0xed, 0x05, + 0x1d, 0xab, 0x29, 0x9d, 0x00, 0x7c, 0x49, 0x54, 0x47, 0xdc, 0xce, 0x9c, 0xdb, 0xb5, 0x08, 0xe9, + 0x32, 0xda, 0xef, 0x16, 0xa7, 0xa3, 0x65, 0x38, 0xc6, 0x1e, 0xfd, 0x9a, 0x01, 0xb3, 0xa2, 0xe8, + 0x92, 0x5b, 0x27, 0xba, 0xe7, 0xe8, 0x6a, 0x9a, 0x6d, 0x52, 0xc4, 0xb9, 0x8b, 0x21, 0x5e, 0x8a, + 0x7b, 0x1a, 0x61, 0xfe, 0x6b, 0x06, 0x4e, 0xf7, 0xa1, 0x81, 0x7e, 0xd7, 0x80, 0x79, 0xee, 0x6e, + 0xd2, 0x40, 0x98, 0x6c, 0x8b, 0xd1, 0xfc, 0x40, 0xda, 0x2d, 0xc7, 0x74, 0x2f, 0x10, 0xa7, 0x46, + 0xca, 0x0b, 0x54, 0x6c, 0xac, 0x24, 0xb0, 0xc6, 0x89, 0x0d, 0x62, 0x2d, 0xe5, 0x0e, 0xa8, 0x58, + 0x4b, 0x33, 0x77, 0xa5, 0xa5, 0xd5, 0x04, 0xd6, 0x38, 0xb1, 0x41, 0xe6, 0xff, 0x85, 0xfb, 0x0e, + 0x20, 0x77, 0xf8, 0x89, 0xdf, 0x7c, 0x41, 0xad, 0xfa, 0xe8, 0x9a, 0x1b, 0xc0, 0x59, 0x60, 0xc2, + 0xb8, 0xe7, 0x76, 0x02, 0xc2, 0xb5, 0x5b, 0xa1, 0x0c, 0x54, 0x4f, 0x60, 0x56, 0x82, 0x05, 0xc4, + 0xfc, 0x9a, 0x01, 0xf9, 0x21, 0xfc, 0x0f, 0xc5, 0xa8, 0xff, 0xa1, 0xd0, 0xe3, 0x7b, 0x08, 0x7a, + 0x7d, 0x0f, 0xcf, 0x8e, 0x36, 0x1b, 0x83, 0xf8, 0x1c, 0x7e, 0x6c, 0xc0, 0x5c, 0x8f, 0x8f, 0x02, + 0xed, 0xc0, 0x7c, 0xdb, 0xad, 0x4b, 0xfb, 0xe2, 0x82, 0xe5, 0xef, 0x30, 0x98, 0xe8, 0xde, 0xe3, + 0x74, 0x26, 0x2b, 0x09, 0xf0, 0x3b, 0xdd, 0xe2, 0x82, 0x22, 0x12, 0x43, 0xc0, 0x89, 0x14, 0x51, + 0x1b, 0xf2, 0xdb, 0x36, 0x69, 0xd6, 0xc3, 0x25, 0x38, 0xa2, 0x25, 0x71, 0x5e, 0x50, 0xe3, 0xee, + 0x39, 0xf9, 0x0f, 0x2b, 0x2e, 0xe6, 0x15, 0x98, 0x8e, 0x3a, 0x6b, 0x07, 0x98, 0xbc, 0x33, 0x90, + 0xb5, 0x3c, 0x47, 0x4c, 0xdd, 0xa4, 0x40, 0xc8, 0x96, 0xf0, 0x25, 0x4c, 0xcb, 0xcd, 0x9f, 0x8e, + 0xc1, 0x4c, 0xb9, 0xd9, 0x21, 0xcf, 0x7a, 0x84, 0xc8, 0xf3, 0x69, 0x09, 0x66, 0xda, 0x1e, 0xd9, + 0xb5, 0xc9, 0xad, 0x2a, 0x69, 0x92, 0x5a, 0xe0, 0x7a, 0x82, 0xfe, 0x69, 0x51, 0x7d, 0xa6, 0x12, + 0x05, 0xe3, 0x38, 0x3e, 0x7a, 0x06, 0xa6, 0xad, 0x5a, 0x60, 0xef, 0x12, 0x45, 0x81, 0x37, 0xe0, + 0x6d, 0x82, 0xc2, 0x74, 0x29, 0x02, 0xc5, 0x31, 0x6c, 0xf4, 0x21, 0x58, 0xf0, 0x6b, 0x56, 0x93, + 0x5c, 0x6d, 0x0b, 0x56, 0x2b, 0x3b, 0xa4, 0x76, 0xb3, 0xe2, 0xda, 0x4e, 0x20, 0xbc, 0x11, 0x0f, + 0x08, 0x4a, 0x0b, 0xd5, 0x3e, 0x78, 0xb8, 0x2f, 0x05, 0xf4, 0xa7, 0x06, 0x9c, 0x69, 0x7b, 0xa4, + 0xe2, 0xb9, 0x2d, 0x97, 0xaa, 0x99, 0x9e, 0x23, 0xba, 0x38, 0xaa, 0x5e, 0x1b, 0x51, 0x9f, 0xf2, + 0x92, 0x5e, 0x17, 0xe1, 0xdb, 0xf7, 0xbb, 0xc5, 0x33, 0x95, 0x83, 0x1a, 0x80, 0x0f, 0x6e, 0x1f, + 0xfa, 0x73, 0x03, 0xce, 0xb6, 0x5d, 0x3f, 0x38, 0xa0, 0x0b, 0xb9, 0x63, 0xed, 0x82, 0xb9, 0xdf, + 0x2d, 0x9e, 0xad, 0x1c, 0xd8, 0x02, 0x7c, 0x48, 0x0b, 0xcd, 0xfd, 0x49, 0x98, 0xd3, 0xd6, 0x9e, + 0x38, 0xbf, 0x3e, 0x05, 0x27, 0xe4, 0x62, 0x08, 0xd5, 0x7a, 0x21, 0xf4, 0x37, 0x94, 0x74, 0x20, + 0x8e, 0xe2, 0xd2, 0x75, 0xa7, 0x96, 0x22, 0xaf, 0x1d, 0x5b, 0x77, 0x95, 0x08, 0x14, 0xc7, 0xb0, + 0xd1, 0x1a, 0x9c, 0x14, 0x25, 0x98, 0xb4, 0x9b, 0x76, 0xcd, 0x5a, 0x71, 0x3b, 0x62, 0xc9, 0xe5, + 0xca, 0xa7, 0xf7, 0xbb, 0xc5, 0x93, 0x95, 0x5e, 0x30, 0x4e, 0xaa, 0x83, 0xd6, 0x61, 0xde, 0xea, + 0x04, 0xae, 0xea, 0xff, 0x39, 0x87, 0x6a, 0x8a, 0x3a, 0x5b, 0x5a, 0x79, 0xae, 0x52, 0x4a, 0x09, + 0x70, 0x9c, 0x58, 0x0b, 0x55, 0x62, 0xd4, 0xaa, 0xa4, 0xe6, 0x3a, 0x75, 0x3e, 0xcb, 0xb9, 0xd0, + 0x0a, 0x2f, 0x25, 0xe0, 0xe0, 0xc4, 0x9a, 0xa8, 0x09, 0xd3, 0x2d, 0xeb, 0xf6, 0x55, 0xc7, 0xda, + 0xb5, 0xec, 0x26, 0x65, 0x22, 0x7c, 0x18, 0xfd, 0x0f, 0xd6, 0x9d, 0xc0, 0x6e, 0x2e, 0xf1, 0xeb, + 0xbc, 0xa5, 0x35, 0x27, 0xb8, 0xec, 0x55, 0x03, 0x6a, 0xad, 0x71, 0xe3, 0x68, 0x23, 0x42, 0x0b, + 0xc7, 0x68, 0xa3, 0xcb, 0x70, 0x8a, 0x6d, 0xc7, 0x55, 0xf7, 0x96, 0xb3, 0x4a, 0x9a, 0xd6, 0x9e, + 0xec, 0xc0, 0x04, 0xeb, 0xc0, 0xbd, 0xfb, 0xdd, 0xe2, 0xa9, 0x6a, 0x12, 0x02, 0x4e, 0xae, 0x87, + 0x2c, 0xb8, 0x2f, 0x0a, 0xc0, 0x64, 0xd7, 0xf6, 0x6d, 0xd7, 0xe1, 0x9e, 0x88, 0x7c, 0xe8, 0x89, + 0xa8, 0xf6, 0x47, 0xc3, 0x07, 0xd1, 0x40, 0xbf, 0x61, 0xc0, 0x7c, 0xd2, 0x36, 0x5c, 0x28, 0xa4, + 0x71, 0x59, 0x11, 0xdb, 0x5a, 0x7c, 0x45, 0x24, 0x0a, 0x85, 0xc4, 0x46, 0xa0, 0x97, 0x0d, 0x98, + 0xb2, 0xb4, 0x53, 0xd4, 0x02, 0xb0, 0x56, 0x5d, 0x1c, 0xf5, 0x2c, 0x1f, 0x52, 0x2c, 0xcf, 0xee, + 0x77, 0x8b, 0x91, 0x93, 0x1a, 0x8e, 0x70, 0x44, 0xbf, 0x65, 0xc0, 0xa9, 0xc4, 0x3d, 0xbe, 0x30, + 0x79, 0x1c, 0x23, 0xc4, 0x16, 0x49, 0xb2, 0xcc, 0x49, 0x6e, 0x06, 0x7a, 0xdd, 0x50, 0xaa, 0x6c, + 0x43, 0x7a, 0x53, 0xa6, 0x58, 0xd3, 0xae, 0x8c, 0x78, 0x70, 0x0c, 0x0d, 0x02, 0x49, 0xb8, 0x7c, + 0x52, 0xd3, 0x8c, 0xb2, 0x10, 0xc7, 0xd9, 0xa3, 0xcf, 0x1a, 0x52, 0x35, 0xaa, 0x16, 0x9d, 0x38, + 0xae, 0x16, 0xa1, 0x50, 0xd3, 0xaa, 0x06, 0xc5, 0x98, 0xa3, 0x0f, 0xc3, 0xa2, 0xb5, 0xe5, 0x7a, + 0x41, 0xe2, 0xe6, 0x5b, 0x98, 0x66, 0xdb, 0xe8, 0xec, 0x7e, 0xb7, 0xb8, 0x58, 0xea, 0x8b, 0x85, + 0x0f, 0xa0, 0x60, 0xfe, 0x61, 0x0e, 0xa6, 0xb8, 0x91, 0x2f, 0x54, 0xd7, 0x57, 0x0d, 0xb8, 0xbf, + 0xd6, 0xf1, 0x3c, 0xe2, 0x04, 0xd5, 0x80, 0xb4, 0x7b, 0x15, 0x97, 0x71, 0xac, 0x8a, 0xeb, 0x81, + 0xfd, 0x6e, 0xf1, 0xfe, 0x95, 0x03, 0xf8, 0xe3, 0x03, 0x5b, 0x87, 0xfe, 0xca, 0x00, 0x53, 0x20, + 0x94, 0xad, 0xda, 0xcd, 0x86, 0xe7, 0x76, 0x9c, 0x7a, 0x6f, 0x27, 0x32, 0xc7, 0xda, 0x89, 0x87, + 0xf6, 0xbb, 0x45, 0x73, 0xe5, 0xd0, 0x56, 0xe0, 0x01, 0x5a, 0x8a, 0x9e, 0x85, 0x39, 0x81, 0x75, + 0xee, 0x76, 0x9b, 0x78, 0x36, 0x35, 0xa7, 0xc5, 0x7d, 0x7a, 0x18, 0xa2, 0x10, 0x47, 0xc0, 0xbd, + 0x75, 0x90, 0x0f, 0x13, 0xb7, 0x88, 0xdd, 0xd8, 0x09, 0xa4, 0xf9, 0x34, 0x62, 0x5c, 0x82, 0x38, + 0xf0, 0x5f, 0xe7, 0x34, 0xcb, 0x93, 0xfb, 0xdd, 0xe2, 0x84, 0xf8, 0x83, 0x25, 0x27, 0x74, 0x09, + 0xa6, 0xf9, 0x11, 0xac, 0x62, 0x3b, 0x8d, 0x8a, 0xeb, 0xf0, 0xdb, 0xfc, 0x42, 0xf9, 0x21, 0xa9, + 0xf0, 0xab, 0x11, 0xe8, 0x9d, 0x6e, 0x71, 0x4a, 0xfe, 0xde, 0xdc, 0x6b, 0x13, 0x1c, 0xab, 0x6d, + 0x7e, 0x73, 0x1c, 0x40, 0x2e, 0x57, 0xd2, 0x46, 0xff, 0x0b, 0x0a, 0x3e, 0x09, 0x38, 0x57, 0xe1, + 0x3c, 0xe7, 0x77, 0x12, 0xb2, 0x10, 0x87, 0x70, 0x74, 0x13, 0x72, 0x6d, 0xab, 0xe3, 0x13, 0x31, + 0xf9, 0x17, 0x53, 0x99, 0xfc, 0x0a, 0xa5, 0xc8, 0xcf, 0x5c, 0xec, 0x27, 0xe6, 0x3c, 0xd0, 0xa7, + 0x0c, 0x00, 0x12, 0x9d, 0xb0, 0x91, 0x7d, 0x1f, 0x82, 0x65, 0x38, 0xa7, 0x74, 0x0c, 0xca, 0xd3, + 0xfb, 0xdd, 0x22, 0x68, 0x53, 0xaf, 0xb1, 0x45, 0xb7, 0x20, 0x6f, 0x49, 0x99, 0x3f, 0x76, 0x1c, + 0x32, 0x9f, 0x1d, 0x85, 0xd4, 0xa2, 0x55, 0xcc, 0xd0, 0xa7, 0x0d, 0x98, 0xf6, 0x49, 0x20, 0xa6, + 0x8a, 0x4a, 0x1e, 0x61, 0xf0, 0x8e, 0xb8, 0xe8, 0xaa, 0x11, 0x9a, 0x5c, 0x82, 0x46, 0xcb, 0x70, + 0x8c, 0xaf, 0x6c, 0xca, 0x05, 0x62, 0xd5, 0x89, 0xc7, 0x4e, 0xda, 0xc2, 0x92, 0x1a, 0xbd, 0x29, + 0x1a, 0x4d, 0xd5, 0x14, 0xad, 0x0c, 0xc7, 0xf8, 0xca, 0xa6, 0x6c, 0xd8, 0x9e, 0xe7, 0x8a, 0xa6, + 0xe4, 0x53, 0x6a, 0x8a, 0x46, 0x53, 0x35, 0x45, 0x2b, 0xc3, 0x31, 0xbe, 0xe6, 0x5f, 0x4f, 0xc1, + 0xb4, 0xdc, 0x48, 0xa1, 0x65, 0xcf, 0x1d, 0x3b, 0x7d, 0x2c, 0xfb, 0x15, 0x1d, 0x88, 0xa3, 0xb8, + 0xb4, 0x32, 0xdf, 0xaa, 0x51, 0xc3, 0x5e, 0x55, 0xae, 0xea, 0x40, 0x1c, 0xc5, 0x45, 0x2d, 0xc8, + 0xf9, 0x01, 0x69, 0xcb, 0x7b, 0xd0, 0x11, 0xaf, 0xe9, 0x42, 0xf9, 0x10, 0xde, 0x74, 0xd0, 0x7f, + 0x3e, 0xe6, 0x5c, 0x98, 0x6f, 0x32, 0x88, 0xb8, 0x2b, 0xc5, 0xe6, 0x48, 0x67, 0x7f, 0x46, 0x3d, + 0xa1, 0x7c, 0x36, 0xa2, 0x65, 0x38, 0xc6, 0x3e, 0xc1, 0xd8, 0xcf, 0x1d, 0xa3, 0xb1, 0xff, 0x3c, + 0xe4, 0x5b, 0xd6, 0xed, 0x6a, 0xc7, 0x6b, 0x1c, 0xfd, 0x50, 0x21, 0x42, 0x94, 0x38, 0x15, 0xac, + 0xe8, 0xa1, 0x57, 0x0c, 0x4d, 0xe4, 0x4c, 0x30, 0xe2, 0xd7, 0xd3, 0x15, 0x39, 0x4a, 0x57, 0xf6, + 0x15, 0x3e, 0x3d, 0xa6, 0x77, 0xfe, 0xae, 0x9b, 0xde, 0xd4, 0x8c, 0xe4, 0x1b, 0x44, 0x99, 0x91, + 0x85, 0x63, 0x35, 0x23, 0x57, 0x22, 0xcc, 0x70, 0x8c, 0x39, 0x6b, 0x0f, 0xdf, 0x73, 0xaa, 0x3d, + 0x70, 0xac, 0xed, 0xa9, 0x46, 0x98, 0xe1, 0x18, 0xf3, 0xfe, 0xe7, 0xcd, 0xc9, 0xe3, 0x39, 0x6f, + 0x4e, 0xa5, 0x70, 0xde, 0x3c, 0xd8, 0x14, 0x3f, 0x31, 0xaa, 0x29, 0x8e, 0x2e, 0x02, 0xaa, 0xef, + 0x39, 0x56, 0xcb, 0xae, 0x09, 0x61, 0xc9, 0xd4, 0xe6, 0x34, 0xf3, 0x47, 0x2c, 0x0a, 0x41, 0x86, + 0x56, 0x7b, 0x30, 0x70, 0x42, 0x2d, 0x14, 0x40, 0xbe, 0x2d, 0x2d, 0xae, 0x99, 0x34, 0x56, 0xbf, + 0xb4, 0xc0, 0xf8, 0x55, 0x39, 0xdd, 0x78, 0xb2, 0x04, 0x2b, 0x4e, 0xe6, 0xbf, 0x1b, 0x30, 0xbb, + 0xd2, 0x74, 0x3b, 0xf5, 0xeb, 0x56, 0x50, 0xdb, 0xe1, 0xf7, 0xba, 0xe8, 0x19, 0xc8, 0xdb, 0x4e, + 0x40, 0xbc, 0x5d, 0xab, 0x29, 0x34, 0x8a, 0x29, 0xaf, 0xbe, 0xd7, 0x44, 0xf9, 0x9d, 0x6e, 0x71, + 0x7a, 0xb5, 0xe3, 0xb1, 0x80, 0x49, 0x2e, 0x5f, 0xb0, 0xaa, 0x83, 0xbe, 0x64, 0xc0, 0x1c, 0xbf, + 0x19, 0x5e, 0xb5, 0x02, 0xeb, 0x4a, 0x87, 0x78, 0x36, 0x91, 0x77, 0xc3, 0x23, 0x8a, 0x96, 0x78, + 0x5b, 0x25, 0x83, 0xbd, 0xd0, 0xb4, 0xde, 0x88, 0x73, 0xc6, 0xbd, 0x8d, 0x31, 0x3f, 0x9f, 0x85, + 0x7b, 0xfb, 0xd2, 0x42, 0x8b, 0x90, 0xb1, 0xeb, 0xa2, 0xeb, 0x20, 0xe8, 0x66, 0xd6, 0xea, 0x38, + 0x63, 0xd7, 0xd1, 0x12, 0xb3, 0x12, 0x3d, 0xe2, 0xfb, 0xf2, 0x9a, 0xb0, 0xa0, 0x0c, 0x3a, 0x51, + 0x8a, 0x35, 0x0c, 0x54, 0x84, 0x5c, 0xd3, 0xda, 0x22, 0x4d, 0x71, 0x02, 0x60, 0x76, 0xe7, 0x3a, + 0x2d, 0xc0, 0xbc, 0x1c, 0xfd, 0x7f, 0x03, 0x80, 0x37, 0x90, 0x9e, 0x1f, 0x84, 0x5e, 0xc3, 0xe9, + 0x0e, 0x13, 0xa5, 0xcc, 0x5b, 0x19, 0xfe, 0xc7, 0x1a, 0x57, 0xb4, 0x09, 0xe3, 0xd4, 0x04, 0x75, + 0xeb, 0x47, 0x56, 0x63, 0xec, 0x5a, 0xa4, 0xc2, 0x68, 0x60, 0x41, 0x8b, 0x8e, 0x95, 0x47, 0x82, + 0x8e, 0xe7, 0xd0, 0xa1, 0x65, 0x8a, 0x2b, 0xcf, 0x5b, 0x81, 0x55, 0x29, 0xd6, 0x30, 0xcc, 0x3f, + 0xc9, 0xc0, 0x7c, 0x52, 0xd3, 0xa9, 0x7e, 0x18, 0xe7, 0xad, 0x15, 0x87, 0xd9, 0xf7, 0xa7, 0x3f, + 0x3e, 0x22, 0xc8, 0x41, 0x85, 0x02, 0x88, 0x30, 0x2c, 0xc1, 0x17, 0xbd, 0x5f, 0x8d, 0x50, 0xe6, + 0x88, 0x23, 0xa4, 0x28, 0xc7, 0x46, 0xe9, 0x01, 0x18, 0xf3, 0xe9, 0xcc, 0x67, 0xa3, 0x57, 0x0e, + 0x6c, 0x8e, 0x18, 0x84, 0x62, 0x74, 0x1c, 0x3b, 0x10, 0x51, 0xcc, 0x0a, 0xe3, 0xaa, 0x63, 0x07, + 0x98, 0x41, 0xcc, 0x2f, 0x66, 0x60, 0xb1, 0x7f, 0xa7, 0xd0, 0x17, 0x0d, 0x80, 0x3a, 0x3d, 0x60, + 0xd0, 0x25, 0x29, 0x83, 0x42, 0xac, 0xe3, 0x1a, 0xc3, 0x55, 0xc9, 0x29, 0x8c, 0x10, 0x52, 0x45, + 0x3e, 0xd6, 0x1a, 0x82, 0x1e, 0x95, 0x4b, 0xff, 0x92, 0xd5, 0x92, 0x06, 0xa8, 0xaa, 0xb3, 0xa1, + 0x20, 0x58, 0xc3, 0xa2, 0x27, 0x48, 0xc7, 0x6a, 0x11, 0xbf, 0x6d, 0xa9, 0x30, 0x75, 0x76, 0x82, + 0xbc, 0x24, 0x0b, 0x71, 0x08, 0x37, 0x9b, 0xf0, 0xe0, 0x00, 0xed, 0x4c, 0x29, 0x64, 0xd8, 0xfc, + 0x37, 0x03, 0x4e, 0xaf, 0x34, 0x3b, 0x7e, 0x40, 0xbc, 0xff, 0x36, 0x01, 0x57, 0xff, 0x61, 0xc0, + 0x7d, 0x7d, 0xfa, 0x7c, 0x17, 0xe2, 0xae, 0x5e, 0x8c, 0xc6, 0x5d, 0x5d, 0x1d, 0x75, 0x49, 0x27, + 0xf6, 0xa3, 0x4f, 0xf8, 0x55, 0x00, 0x27, 0xa8, 0xd4, 0xaa, 0xbb, 0x8d, 0x94, 0xf4, 0xe6, 0x83, + 0x90, 0xfb, 0x18, 0xd5, 0x3f, 0xf1, 0x35, 0xc6, 0x94, 0x12, 0xe6, 0x30, 0xf3, 0x69, 0x10, 0x41, + 0x4a, 0xb1, 0xcd, 0x63, 0x0c, 0xb2, 0x79, 0xcc, 0xbf, 0xcd, 0x80, 0xe6, 0x79, 0xb8, 0x0b, 0x8b, + 0xd2, 0x89, 0x2c, 0xca, 0x11, 0x4f, 0xcd, 0x9a, 0x1f, 0xa5, 0xdf, 0x6b, 0x84, 0xdd, 0xd8, 0x6b, + 0x84, 0x4b, 0xa9, 0x71, 0x3c, 0xf8, 0x31, 0xc2, 0xf7, 0x0c, 0xb8, 0x2f, 0x44, 0xee, 0x75, 0x0a, + 0x1e, 0x2e, 0x61, 0x9e, 0x80, 0x49, 0x2b, 0xac, 0x26, 0xd6, 0x80, 0x7a, 0x80, 0xa3, 0x51, 0xc4, + 0x3a, 0x5e, 0x18, 0xfb, 0x9c, 0x3d, 0x62, 0xec, 0xf3, 0xd8, 0xc1, 0xb1, 0xcf, 0xe6, 0x4f, 0x32, + 0x70, 0xa6, 0xb7, 0x67, 0x72, 0x6f, 0x0c, 0x76, 0x67, 0xfe, 0x24, 0x4c, 0x05, 0xa2, 0x82, 0x26, + 0xe9, 0xd5, 0xf3, 0xb1, 0x4d, 0x0d, 0x86, 0x23, 0x98, 0xb4, 0x66, 0x8d, 0xef, 0xca, 0x6a, 0xcd, + 0x6d, 0xcb, 0xc8, 0x79, 0x55, 0x73, 0x45, 0x83, 0xe1, 0x08, 0xa6, 0x8a, 0x49, 0x1c, 0x3b, 0xf6, + 0x98, 0xc4, 0x2a, 0x9c, 0x92, 0x51, 0x58, 0xe7, 0x5d, 0x6f, 0xc5, 0x6d, 0xb5, 0x9b, 0x44, 0xc4, + 0xce, 0xd3, 0xc6, 0x9e, 0x11, 0x55, 0x4e, 0xe1, 0x24, 0x24, 0x9c, 0x5c, 0xd7, 0xfc, 0x5e, 0x16, + 0x4e, 0x86, 0xc3, 0xbe, 0xe2, 0x3a, 0x75, 0x9b, 0xc5, 0xb2, 0x3d, 0x05, 0x63, 0xc1, 0x5e, 0x5b, + 0x0e, 0xf6, 0xff, 0x90, 0xcd, 0xd9, 0xdc, 0x6b, 0xd3, 0xd9, 0x3e, 0x9d, 0x50, 0x85, 0xb9, 0x65, + 0x59, 0x25, 0xb4, 0xae, 0x76, 0x07, 0x9f, 0x81, 0xc7, 0xa3, 0xab, 0xf9, 0x4e, 0xb7, 0x98, 0xf0, + 0x7a, 0x72, 0x49, 0x51, 0x8a, 0xae, 0x79, 0x74, 0x03, 0xa6, 0x9b, 0x96, 0x1f, 0x5c, 0x6d, 0xd7, + 0xad, 0x80, 0x6c, 0xda, 0x2d, 0x22, 0xf6, 0xdc, 0x30, 0x01, 0xe9, 0xea, 0x1e, 0x79, 0x3d, 0x42, + 0x09, 0xc7, 0x28, 0xa3, 0x5d, 0x40, 0xb4, 0x64, 0xd3, 0xb3, 0x1c, 0x9f, 0xf7, 0x8a, 0xf2, 0x1b, + 0x3e, 0x00, 0x5e, 0x1d, 0xcb, 0xd6, 0x7b, 0xa8, 0xe1, 0x04, 0x0e, 0xe8, 0x21, 0x18, 0xf7, 0x88, + 0xe5, 0x8b, 0xc9, 0x2c, 0x84, 0xfb, 0x1f, 0xb3, 0x52, 0x2c, 0xa0, 0xfa, 0x86, 0x1a, 0x3f, 0x64, + 0x43, 0xfd, 0xd0, 0x80, 0xe9, 0x70, 0x9a, 0xee, 0x82, 0x92, 0x6c, 0x45, 0x95, 0xe4, 0x85, 0xb4, + 0x44, 0x62, 0x1f, 0xbd, 0xf8, 0x17, 0xe3, 0x7a, 0xff, 0x58, 0x40, 0xf2, 0xc7, 0xa1, 0x20, 0x77, + 0xb5, 0xb4, 0x3e, 0x47, 0x3c, 0xdd, 0x46, 0xec, 0x12, 0xed, 0x21, 0x8d, 0x60, 0x82, 0x43, 0x7e, + 0x54, 0x2d, 0xd7, 0x85, 0xca, 0x15, 0xcb, 0x5e, 0xa9, 0x65, 0xa9, 0x8a, 0x93, 0xd4, 0xb2, 0xac, + 0x83, 0xae, 0xc2, 0xe9, 0xb6, 0xe7, 0xb2, 0xc7, 0x95, 0xab, 0xc4, 0xaa, 0x37, 0x6d, 0x87, 0x48, + 0x17, 0x02, 0x0f, 0x63, 0xb8, 0x6f, 0xbf, 0x5b, 0x3c, 0x5d, 0x49, 0x46, 0xc1, 0xfd, 0xea, 0x46, + 0x1f, 0x04, 0x8d, 0x0d, 0xf0, 0x20, 0xe8, 0x17, 0x95, 0xa3, 0x8e, 0xf8, 0xe2, 0x59, 0xce, 0x07, + 0xd3, 0x9a, 0xca, 0x04, 0xb1, 0x1e, 0x2e, 0xa9, 0x92, 0x60, 0x8a, 0x15, 0xfb, 0xfe, 0xde, 0xa0, + 0xf1, 0x23, 0x7a, 0x83, 0xc2, 0xb8, 0xee, 0x89, 0x9f, 0x65, 0x5c, 0x77, 0xfe, 0x2d, 0x15, 0xd7, + 0xfd, 0x6a, 0x0e, 0x66, 0xe3, 0x16, 0xc8, 0xf1, 0x3f, 0x76, 0xfa, 0x55, 0x03, 0x66, 0xe5, 0xee, + 0xe1, 0x3c, 0x89, 0xf4, 0xf3, 0xaf, 0xa7, 0xb4, 0x69, 0xb9, 0x2d, 0xa5, 0x9e, 0xe3, 0x6e, 0xc6, + 0xb8, 0xe1, 0x1e, 0xfe, 0xe8, 0x05, 0x98, 0x54, 0xee, 0xf0, 0x23, 0xbd, 0x7c, 0x9a, 0x61, 0x56, + 0x54, 0x48, 0x02, 0xeb, 0xf4, 0xd0, 0xab, 0x06, 0x40, 0x4d, 0xaa, 0x39, 0xb9, 0xbb, 0xae, 0xa4, + 0xb5, 0xbb, 0x94, 0x02, 0x0d, 0x8d, 0x65, 0x55, 0xe4, 0x63, 0x8d, 0x31, 0xfa, 0x3c, 0x73, 0x84, + 0x2b, 0xeb, 0x8e, 0xee, 0xa7, 0xec, 0xe8, 0xa1, 0xb8, 0x07, 0x18, 0xa6, 0xa1, 0x29, 0xa5, 0x81, + 0x7c, 0x1c, 0x69, 0x84, 0xf9, 0x14, 0xa8, 0xe0, 0x49, 0x2a, 0xb6, 0x58, 0xf8, 0x64, 0xc5, 0x0a, + 0x76, 0xc4, 0x12, 0x54, 0x62, 0xeb, 0xbc, 0x04, 0xe0, 0x10, 0xc7, 0xfc, 0x28, 0x4c, 0x3f, 0xeb, + 0x59, 0xed, 0x1d, 0x9b, 0x39, 0x9c, 0xe9, 0x39, 0xe9, 0x9d, 0x30, 0x61, 0xd5, 0xeb, 0x49, 0x8f, + 0xd9, 0x4b, 0xbc, 0x18, 0x4b, 0xf8, 0x60, 0x47, 0xa2, 0x6f, 0x1a, 0x80, 0xc2, 0x4b, 0x3b, 0xdb, + 0x69, 0x6c, 0xd0, 0xd3, 0x3e, 0x3d, 0x1f, 0xed, 0xb0, 0xd2, 0xa4, 0xf3, 0xd1, 0x05, 0x05, 0xc1, + 0x1a, 0x16, 0x7a, 0x09, 0x26, 0xf9, 0xbf, 0x6b, 0xea, 0xb0, 0x3f, 0xf2, 0x53, 0x58, 0xae, 0x50, + 0x58, 0x9b, 0xf8, 0x2a, 0xbc, 0x10, 0x72, 0xc0, 0x3a, 0x3b, 0x3a, 0x54, 0x6b, 0xce, 0x76, 0xb3, + 0x73, 0xbb, 0xbe, 0x15, 0x0e, 0x55, 0xdb, 0x73, 0xb7, 0xed, 0x26, 0x89, 0x0f, 0x55, 0x85, 0x17, + 0x63, 0x09, 0x1f, 0x6c, 0xa8, 0xbe, 0x6e, 0xc0, 0xfc, 0x9a, 0x1f, 0xd8, 0xee, 0x2a, 0xf1, 0x03, + 0xaa, 0x56, 0xa8, 0xf0, 0xe9, 0x34, 0x07, 0x89, 0x83, 0x5e, 0x85, 0x59, 0x71, 0x81, 0xd8, 0xd9, + 0xf2, 0x49, 0xa0, 0xd9, 0xf1, 0x6a, 0x1f, 0xaf, 0xc4, 0xe0, 0xb8, 0xa7, 0x06, 0xa5, 0x22, 0x6e, + 0x12, 0x43, 0x2a, 0xd9, 0x28, 0x95, 0x6a, 0x0c, 0x8e, 0x7b, 0x6a, 0x98, 0xdf, 0xc9, 0xc2, 0x49, + 0xd6, 0x8d, 0xd8, 0x1b, 0x86, 0xcf, 0xf6, 0x7b, 0xc3, 0x30, 0xe2, 0x56, 0x66, 0xbc, 0x8e, 0xf0, + 0x82, 0xe1, 0x57, 0x0c, 0x98, 0xa9, 0x47, 0x47, 0x3a, 0x1d, 0xf7, 0x4c, 0xd2, 0x1c, 0xf2, 0x78, + 0xa9, 0x58, 0x21, 0x8e, 0xf3, 0x47, 0x5f, 0x30, 0x60, 0x26, 0xda, 0x4c, 0x29, 0xdd, 0x8f, 0x61, + 0x90, 0x54, 0x80, 0x73, 0xb4, 0xdc, 0xc7, 0xf1, 0x26, 0x98, 0xdf, 0xce, 0x88, 0x29, 0x3d, 0x8e, + 0x00, 0x7d, 0x74, 0x0b, 0x0a, 0x41, 0xd3, 0xe7, 0x85, 0xa2, 0xb7, 0x23, 0x9e, 0x08, 0x37, 0xd7, + 0xab, 0xfc, 0xee, 0x3e, 0x34, 0xda, 0x44, 0x09, 0x35, 0x3e, 0x25, 0x2f, 0xc6, 0xb8, 0xd6, 0x16, + 0x8c, 0x53, 0x39, 0x8a, 0x6e, 0xae, 0x54, 0xe2, 0x8c, 0x45, 0x09, 0x65, 0x2c, 0x79, 0x99, 0x5f, + 0x36, 0xa0, 0x70, 0xd1, 0x95, 0x72, 0xe4, 0xc3, 0x29, 0x38, 0x7a, 0x94, 0x3d, 0xa8, 0xee, 0x08, + 0xc3, 0x23, 0xc6, 0x33, 0x11, 0x37, 0xcf, 0xfd, 0x1a, 0xed, 0x25, 0x96, 0xa8, 0x87, 0x92, 0xba, + 0xe8, 0x6e, 0xf5, 0xf5, 0x22, 0xfe, 0x4e, 0x0e, 0x4e, 0x3c, 0x67, 0xed, 0x11, 0x27, 0xb0, 0x86, + 0x57, 0x12, 0x4f, 0xc0, 0xa4, 0xd5, 0x66, 0x81, 0xc2, 0x9a, 0x8d, 0x1f, 0x7a, 0x4e, 0x42, 0x10, + 0xd6, 0xf1, 0x42, 0x81, 0xc6, 0xf3, 0x86, 0x24, 0x89, 0xa2, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0x40, + 0x17, 0x01, 0x89, 0x57, 0x90, 0xa5, 0x5a, 0xcd, 0xed, 0x38, 0x5c, 0xa4, 0x71, 0xa7, 0x8a, 0x3a, + 0x6c, 0x6e, 0xf4, 0x60, 0xe0, 0x84, 0x5a, 0xe8, 0x43, 0xb0, 0x50, 0x63, 0x94, 0xc5, 0xd1, 0x43, + 0xa7, 0xc8, 0x8f, 0x9f, 0x2a, 0x48, 0x7f, 0xa5, 0x0f, 0x1e, 0xee, 0x4b, 0x81, 0xb6, 0xd4, 0x0f, + 0x5c, 0xcf, 0x6a, 0x10, 0x9d, 0xee, 0x78, 0xb4, 0xa5, 0xd5, 0x1e, 0x0c, 0x9c, 0x50, 0x0b, 0x7d, + 0x12, 0x0a, 0xc1, 0x8e, 0x47, 0xfc, 0x1d, 0xb7, 0x59, 0x17, 0x41, 0x03, 0x23, 0x7a, 0xda, 0xc4, + 0xec, 0x6f, 0x4a, 0xaa, 0xda, 0xf2, 0x96, 0x45, 0x38, 0xe4, 0x89, 0x3c, 0x18, 0xf7, 0x6b, 0x6e, + 0x9b, 0xf8, 0xc2, 0x64, 0xbf, 0x98, 0x0a, 0x77, 0xe6, 0x39, 0xd2, 0x7c, 0x7c, 0x8c, 0x03, 0x16, + 0x9c, 0xcc, 0x6f, 0x64, 0x60, 0x4a, 0x47, 0x1c, 0x40, 0x36, 0x7d, 0xca, 0x80, 0xa9, 0x9a, 0xeb, + 0x04, 0x9e, 0xdb, 0xe4, 0xfe, 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd4, + 0x5c, 0x61, 0x1a, 0x1b, 0x1c, 0x61, 0x8a, 0x3e, 0x63, 0xc0, 0x4c, 0x18, 0x63, 0x16, 0x3a, 0xd2, + 0x52, 0x6d, 0x88, 0x12, 0xf5, 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x05, 0xb3, 0xf1, 0xd9, + 0xa6, 0x43, 0xd9, 0xb6, 0xc4, 0x5e, 0xcf, 0x86, 0x43, 0x59, 0xb1, 0x7c, 0x1f, 0x33, 0x08, 0x7a, + 0x04, 0xf2, 0x2d, 0xcb, 0x6b, 0xd8, 0x8e, 0xd5, 0x64, 0xa3, 0x98, 0xd5, 0x04, 0x92, 0x28, 0xc7, + 0x0a, 0xc3, 0x7c, 0x37, 0x4c, 0x6d, 0x58, 0x4e, 0x83, 0xd4, 0x85, 0x1c, 0x3e, 0xfc, 0x89, 0xd8, + 0x8f, 0xc6, 0x60, 0x52, 0x3b, 0x9b, 0x1d, 0xff, 0x39, 0x2b, 0x92, 0xca, 0x21, 0x9b, 0x62, 0x2a, + 0x87, 0xe7, 0x01, 0xb6, 0x6d, 0xc7, 0xf6, 0x77, 0x8e, 0x98, 0x24, 0x82, 0x5d, 0xd1, 0x9e, 0x57, + 0x14, 0xb0, 0x46, 0x2d, 0xbc, 0x07, 0xcb, 0x1d, 0x90, 0x3a, 0xe7, 0x55, 0x43, 0x53, 0x37, 0xe3, + 0x69, 0xdc, 0xfb, 0x6b, 0x13, 0xb3, 0x24, 0xd5, 0xcf, 0x39, 0x27, 0xf0, 0xf6, 0x0e, 0xd4, 0x4a, + 0x9b, 0x90, 0xf7, 0x88, 0xdf, 0x69, 0xd1, 0x13, 0xe3, 0xc4, 0xd0, 0xc3, 0xc0, 0x62, 0x26, 0xb0, + 0xa8, 0x8f, 0x15, 0xa5, 0xc5, 0xa7, 0xe0, 0x44, 0xa4, 0x09, 0x68, 0x16, 0xb2, 0x37, 0xc9, 0x1e, + 0x5f, 0x27, 0x98, 0xfe, 0x44, 0xf3, 0x91, 0xdb, 0x42, 0x31, 0x2c, 0xef, 0xcb, 0x3c, 0x69, 0x98, + 0x2e, 0x24, 0x3a, 0x00, 0x8e, 0x72, 0x99, 0x43, 0xe7, 0xa2, 0xa9, 0x65, 0x89, 0x50, 0x73, 0xc1, + 0x23, 0x63, 0x38, 0xcc, 0xfc, 0xc9, 0x38, 0x88, 0xab, 0xec, 0x01, 0xc4, 0x95, 0x7e, 0x83, 0x95, + 0x39, 0xc2, 0x0d, 0xd6, 0x45, 0x98, 0xb2, 0x1d, 0x3b, 0xb0, 0xad, 0x26, 0x73, 0xee, 0x08, 0x75, + 0x2a, 0x43, 0x87, 0xa7, 0xd6, 0x34, 0x58, 0x02, 0x9d, 0x48, 0x5d, 0x74, 0x05, 0x72, 0x4c, 0xdf, + 0x88, 0x05, 0x3c, 0xfc, 0x7d, 0x3b, 0x0b, 0xb5, 0xe0, 0xef, 0x89, 0x38, 0x25, 0x76, 0xf8, 0xe0, + 0x69, 0x32, 0xd4, 0xf1, 0x5b, 0xac, 0xe3, 0xf0, 0xf0, 0x11, 0x83, 0xe3, 0x9e, 0x1a, 0x94, 0xca, + 0xb6, 0x65, 0x37, 0x3b, 0x1e, 0x09, 0xa9, 0x8c, 0x47, 0xa9, 0x9c, 0x8f, 0xc1, 0x71, 0x4f, 0x0d, + 0xb4, 0x0d, 0x53, 0xa2, 0x8c, 0xc7, 0x3b, 0x4d, 0x1c, 0xb1, 0x97, 0x2c, 0xae, 0xed, 0xbc, 0x46, + 0x09, 0x47, 0xe8, 0xa2, 0x0e, 0xcc, 0xd9, 0x4e, 0xcd, 0x75, 0x6a, 0xcd, 0x8e, 0x6f, 0xef, 0x92, + 0xf0, 0x31, 0xcf, 0x51, 0x98, 0x9d, 0xda, 0xef, 0x16, 0xe7, 0xd6, 0xe2, 0xe4, 0x70, 0x2f, 0x07, + 0xf4, 0x8a, 0x01, 0xa7, 0x6a, 0xae, 0xe3, 0xb3, 0x77, 0xe7, 0xbb, 0xe4, 0x9c, 0xe7, 0xb9, 0x1e, + 0xe7, 0x5d, 0x38, 0x22, 0x6f, 0xe6, 0x53, 0x5c, 0x49, 0x22, 0x89, 0x93, 0x39, 0xa1, 0x17, 0x21, + 0xdf, 0xf6, 0xdc, 0x5d, 0xbb, 0x4e, 0x3c, 0x11, 0x3b, 0xb7, 0x9e, 0x46, 0x1e, 0x8c, 0x8a, 0xa0, + 0x19, 0x8a, 0x1e, 0x59, 0x82, 0x15, 0x3f, 0xf3, 0x8d, 0x02, 0x4c, 0x47, 0xd1, 0xd1, 0x27, 0x00, + 0xda, 0x9e, 0xdb, 0x22, 0xc1, 0x0e, 0x51, 0x8f, 0x32, 0x2e, 0x8d, 0x9a, 0x6e, 0x41, 0xd2, 0x93, + 0xd1, 0x2b, 0x54, 0x5c, 0x84, 0xa5, 0x58, 0xe3, 0x88, 0x3c, 0x98, 0xb8, 0xc9, 0xd5, 0xae, 0xb0, + 0x42, 0x9e, 0x4b, 0xc5, 0x66, 0x12, 0x9c, 0xd9, 0x6b, 0x02, 0x51, 0x84, 0x25, 0x23, 0xb4, 0x05, + 0xd9, 0x5b, 0x64, 0x2b, 0x9d, 0x27, 0xcc, 0xd7, 0x89, 0x38, 0xcd, 0x94, 0x27, 0xf6, 0xbb, 0xc5, + 0xec, 0x75, 0xb2, 0x85, 0x29, 0x71, 0xda, 0xaf, 0x3a, 0xbf, 0x87, 0x17, 0xa2, 0x62, 0xc4, 0x7e, + 0x45, 0x2e, 0xf5, 0x79, 0xbf, 0x44, 0x11, 0x96, 0x8c, 0xd0, 0x8b, 0x50, 0xb8, 0x65, 0xed, 0x92, + 0x6d, 0xcf, 0x75, 0x02, 0x11, 0x32, 0x35, 0x62, 0x9c, 0xfe, 0x75, 0x49, 0x4e, 0xf0, 0x65, 0xea, + 0x5d, 0x15, 0xe2, 0x90, 0x1d, 0xda, 0x85, 0xbc, 0x43, 0x6e, 0x61, 0xd2, 0xb4, 0x6b, 0xe9, 0xc4, + 0xc5, 0x5f, 0x12, 0xd4, 0x04, 0x67, 0xa6, 0xf7, 0x64, 0x19, 0x56, 0xbc, 0xe8, 0x5c, 0xde, 0x70, + 0xb7, 0x84, 0xa0, 0x1a, 0x71, 0x2e, 0xd5, 0xc9, 0x94, 0xcf, 0xe5, 0x45, 0x77, 0x0b, 0x53, 0xe2, + 0x74, 0x8f, 0xd4, 0x54, 0xbc, 0x8e, 0x10, 0x53, 0x97, 0xd2, 0x8d, 0x53, 0xe2, 0x7b, 0x24, 0x2c, + 0xc5, 0x1a, 0x47, 0x3a, 0xb6, 0x0d, 0xe1, 0xac, 0x14, 0x82, 0x6a, 0xc4, 0xb1, 0x8d, 0xba, 0x3e, + 0xf9, 0xd8, 0xca, 0x32, 0xac, 0x78, 0x51, 0xbe, 0xb6, 0xf0, 0xfc, 0xa5, 0x23, 0xaa, 0xa2, 0x7e, + 0x44, 0xce, 0x57, 0x96, 0x61, 0xc5, 0xcb, 0xfc, 0xf2, 0x38, 0x4c, 0xe9, 0xf9, 0xc6, 0x06, 0xb0, + 0x11, 0x94, 0x5d, 0x9c, 0x19, 0xc6, 0x2e, 0xa6, 0x07, 0x21, 0xed, 0x8e, 0x43, 0x3a, 0x61, 0xd6, + 0x52, 0x33, 0x0b, 0xc3, 0x83, 0x90, 0x56, 0xe8, 0xe3, 0x08, 0xd3, 0x21, 0xc2, 0x1e, 0xa8, 0x71, + 0xc5, 0xcd, 0x8f, 0x5c, 0xd4, 0xb8, 0x8a, 0x18, 0x14, 0x8f, 0x02, 0x84, 0x79, 0xb7, 0xc4, 0xdd, + 0x97, 0xb2, 0xda, 0xb4, 0x7c, 0x60, 0x1a, 0x16, 0x7a, 0x08, 0xc6, 0xa9, 0x82, 0x26, 0x75, 0xf1, + 0x52, 0x57, 0x9d, 0x36, 0xcf, 0xb3, 0x52, 0x2c, 0xa0, 0xe8, 0x49, 0x6a, 0x4b, 0x85, 0x6a, 0x55, + 0x3c, 0xc0, 0x9d, 0x0f, 0x6d, 0xa9, 0x10, 0x86, 0x23, 0x98, 0xb4, 0xe9, 0x84, 0x6a, 0x41, 0xb6, + 0x82, 0xb5, 0xa6, 0x33, 0xd5, 0x88, 0x39, 0x8c, 0x79, 0x3f, 0x62, 0x5a, 0x93, 0xad, 0xbc, 0x9c, + 0xe6, 0xfd, 0x88, 0xc1, 0x71, 0x4f, 0x0d, 0xda, 0x19, 0x71, 0x6d, 0x37, 0xc9, 0xa3, 0x3b, 0xfb, + 0x5c, 0xb8, 0xbd, 0xa6, 0x9f, 0x08, 0xa6, 0xd8, 0xd4, 0xbf, 0x3f, 0xbd, 0xdc, 0x79, 0x83, 0x1f, + 0x09, 0x46, 0x33, 0xde, 0x3f, 0x0a, 0xd3, 0x51, 0x59, 0x99, 0xba, 0x7f, 0xfe, 0x2f, 0xb3, 0x70, + 0xf2, 0x52, 0xc3, 0x76, 0x6e, 0xc7, 0x1c, 0xdb, 0x49, 0x39, 0x6d, 0x8d, 0x61, 0x73, 0xda, 0x86, + 0x4f, 0x7e, 0x44, 0xd2, 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, + 0xfb, 0xad, 0x3a, 0xb7, 0x5e, 0xad, 0xa6, 0x28, 0x0d, 0x99, 0xca, 0x1d, 0xed, 0x8f, 0xa8, 0x8b, + 0x7a, 0x3b, 0xbf, 0x54, 0x3a, 0x80, 0x2b, 0x9f, 0xf1, 0x77, 0x88, 0x1e, 0xdc, 0x7f, 0x10, 0x2a, + 0x3e, 0xb0, 0xf9, 0x8b, 0x97, 0xe1, 0xed, 0x87, 0x32, 0x1a, 0x6a, 0xb5, 0x7c, 0xca, 0x80, 0x02, + 0x77, 0x9f, 0x62, 0xb2, 0x4d, 0x45, 0x85, 0xd5, 0xb6, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, + 0x03, 0x5e, 0xa9, 0xb2, 0x26, 0x20, 0x58, 0xc3, 0xa2, 0xc2, 0xf8, 0xa6, 0xed, 0xd4, 0xc5, 0x34, + 0x29, 0x61, 0xfc, 0x9c, 0xed, 0xd4, 0x31, 0x83, 0x28, 0x71, 0x9d, 0xed, 0xeb, 0xd6, 0x78, 0xc3, + 0x80, 0x69, 0xf6, 0xce, 0x31, 0x3c, 0x7a, 0x3c, 0xa1, 0x62, 0x5a, 0x78, 0x33, 0xce, 0x44, 0x63, + 0x5a, 0xee, 0x74, 0x8b, 0x93, 0xfc, 0x65, 0x64, 0x34, 0xc4, 0xe5, 0x83, 0xc2, 0x5f, 0xc1, 0x22, + 0x6f, 0x32, 0x43, 0x1f, 0xa7, 0x95, 0x3f, 0xaf, 0x2a, 0x89, 0xe0, 0x90, 0x9e, 0xf9, 0x12, 0x4c, + 0xe9, 0x0f, 0x16, 0xd0, 0x13, 0x30, 0xd9, 0xb6, 0x9d, 0x46, 0xf4, 0x61, 0x9b, 0xf2, 0xe9, 0x56, + 0x42, 0x10, 0xd6, 0xf1, 0x58, 0x35, 0x37, 0xac, 0x16, 0x73, 0x05, 0x57, 0x5c, 0xbd, 0x5a, 0xf8, + 0xc7, 0xfc, 0xa3, 0x2c, 0x9c, 0x4c, 0x78, 0x18, 0x83, 0x5e, 0x35, 0x60, 0x9c, 0x45, 0xe9, 0xcb, + 0xa8, 0x95, 0x17, 0x52, 0x7f, 0x7c, 0xb3, 0xc4, 0x1e, 0x03, 0x88, 0x75, 0xac, 0xc4, 0x27, 0x2f, + 0xc4, 0x82, 0x39, 0xfa, 0x75, 0x03, 0x26, 0x2d, 0x6d, 0xab, 0xf1, 0x40, 0x9e, 0xad, 0xf4, 0x1b, + 0xd3, 0xb3, 0xb3, 0xb4, 0x00, 0xc4, 0x70, 0x23, 0xe9, 0x6d, 0x59, 0x7c, 0x2f, 0x4c, 0x6a, 0x5d, + 0x18, 0x66, 0x87, 0x2c, 0x3e, 0x03, 0xb3, 0x23, 0xed, 0xb0, 0x0f, 0xc0, 0xb0, 0xb9, 0xe3, 0xa8, + 0xc2, 0xba, 0xa5, 0x3f, 0x3e, 0x56, 0x23, 0x2e, 0x5e, 0x1f, 0x0b, 0xa8, 0xb9, 0x05, 0xb3, 0xf1, + 0xc3, 0x55, 0xea, 0xf7, 0xd6, 0xef, 0x86, 0x21, 0xb3, 0xbd, 0x99, 0xdf, 0xce, 0xc0, 0x84, 0x78, + 0x5d, 0x77, 0x17, 0x62, 0x77, 0x6f, 0x46, 0x2e, 0x75, 0xd6, 0x52, 0x79, 0x14, 0xd8, 0x37, 0x70, + 0xd7, 0x8f, 0x05, 0xee, 0x3e, 0x97, 0x0e, 0xbb, 0x83, 0xa3, 0x76, 0xdf, 0x18, 0x83, 0x99, 0xd8, + 0x6b, 0x45, 0x6a, 0xaa, 0xf4, 0x04, 0xab, 0x5d, 0x4d, 0xf5, 0x41, 0xa4, 0x8a, 0x2b, 0x3f, 0x38, + 0x6e, 0xcd, 0x8f, 0x24, 0xd5, 0xbc, 0x92, 0x5a, 0x3e, 0xee, 0x9f, 0xe7, 0xd7, 0x1c, 0x36, 0x0e, + 0xeb, 0x1f, 0x0d, 0xb8, 0xb7, 0xef, 0xa3, 0x56, 0x96, 0x13, 0xc5, 0x8b, 0x42, 0xc5, 0x86, 0x4c, + 0xf9, 0xe9, 0xbe, 0xba, 0x61, 0x89, 0xa7, 0xb1, 0x88, 0xb3, 0x47, 0x8f, 0xc3, 0x14, 0x53, 0xad, + 0x54, 0xa6, 0x04, 0xa4, 0x2d, 0x1c, 0xc4, 0xcc, 0x55, 0x58, 0xd5, 0xca, 0x71, 0x04, 0xcb, 0xfc, + 0x92, 0x01, 0x0b, 0xfd, 0x32, 0x64, 0x0c, 0x70, 0x30, 0xfc, 0x3f, 0xb1, 0xe0, 0xe2, 0x62, 0x4f, + 0x70, 0x71, 0xec, 0x68, 0x28, 0xe3, 0x88, 0xb5, 0x53, 0x59, 0xf6, 0x90, 0xd8, 0xd9, 0xcf, 0x1a, + 0x70, 0xba, 0xcf, 0x6e, 0xea, 0x09, 0x32, 0x37, 0x8e, 0x1c, 0x64, 0x9e, 0x19, 0x34, 0xc8, 0xdc, + 0xfc, 0x6e, 0x16, 0x66, 0x45, 0x7b, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, + 0xda, 0xf3, 0x71, 0xfc, 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, + 0x89, 0x3b, 0xd0, 0xa7, 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, + 0x6a, 0xfe, 0x82, 0x1e, 0x4c, 0xcc, 0x45, 0xfd, 0xf6, 0x31, 0xe4, 0x3a, 0x19, 0x32, 0xae, 0xd8, + 0xfc, 0xa5, 0x2c, 0x3c, 0x3c, 0x28, 0xa1, 0xb7, 0xe8, 0xbb, 0x13, 0x3f, 0xf2, 0xee, 0xe4, 0x2e, + 0xa9, 0xed, 0x63, 0x79, 0x82, 0xf2, 0xdb, 0x63, 0x4a, 0xed, 0xf5, 0xae, 0xcf, 0x81, 0x6e, 0x13, + 0x27, 0xa8, 0x69, 0x27, 0xd3, 0x79, 0x86, 0xa2, 0x70, 0xa2, 0xca, 0x8b, 0xef, 0x74, 0x8b, 0x73, + 0x22, 0xc5, 0x5f, 0x95, 0x04, 0xa2, 0x10, 0xcb, 0x4a, 0xe8, 0x61, 0xc8, 0x7b, 0x1c, 0x2a, 0x23, + 0xed, 0xc5, 0x95, 0x2c, 0x2f, 0xc3, 0x0a, 0x8a, 0x3e, 0xa9, 0xd9, 0xc2, 0x63, 0xc7, 0x95, 0x25, + 0xe1, 0xa0, 0x9b, 0xe6, 0x17, 0x20, 0xef, 0xcb, 0xc4, 0x9c, 0xfc, 0x3a, 0xe0, 0xb1, 0x01, 0x1f, + 0x70, 0xd0, 0xa3, 0x93, 0xcc, 0xd2, 0xc9, 0xfb, 0xa7, 0x72, 0x78, 0x2a, 0x92, 0xc8, 0x54, 0xa7, + 0x16, 0xee, 0x63, 0x84, 0xde, 0x13, 0x0b, 0x0a, 0x60, 0x42, 0x7c, 0xcf, 0x49, 0xb8, 0xe8, 0x37, + 0x52, 0x0a, 0xd6, 0x16, 0xa1, 0x7c, 0xec, 0x22, 0x44, 0x9e, 0x9e, 0x25, 0x2b, 0xf3, 0x7b, 0x06, + 0x4c, 0x8a, 0x35, 0x72, 0x17, 0x5e, 0xb2, 0xdc, 0x88, 0xbe, 0x64, 0x39, 0x97, 0x8a, 0xc4, 0xea, + 0xf3, 0x8c, 0xe5, 0x06, 0x4c, 0xe9, 0x19, 0xa3, 0xd0, 0xf3, 0x9a, 0xc4, 0x35, 0x46, 0xc9, 0xc1, + 0x22, 0x65, 0x72, 0x28, 0x8d, 0xcd, 0xdf, 0xcc, 0xab, 0x51, 0x64, 0xde, 0x0f, 0x7d, 0xe5, 0x1b, + 0x07, 0xae, 0x7c, 0x7d, 0xe1, 0x65, 0xd2, 0x5f, 0x78, 0x57, 0x20, 0x2f, 0xc5, 0xa2, 0x30, 0x1e, + 0x1e, 0xd4, 0x63, 0xfb, 0xa8, 0x05, 0x42, 0x89, 0x69, 0xdb, 0x85, 0x1d, 0xf0, 0xd4, 0x1c, 0x2a, + 0x71, 0xad, 0xc8, 0xa0, 0x17, 0x61, 0xf2, 0x96, 0xeb, 0xdd, 0x6c, 0xba, 0x16, 0x4b, 0xf4, 0x0b, + 0x69, 0x5c, 0x27, 0x29, 0x37, 0x1b, 0x0f, 0xb0, 0xbe, 0x1e, 0xd2, 0xc7, 0x3a, 0x33, 0x54, 0x82, + 0x99, 0x96, 0xed, 0x60, 0x62, 0xd5, 0xd5, 0x83, 0x95, 0x31, 0x9e, 0x89, 0x54, 0x9a, 0xd6, 0x1b, + 0x51, 0x30, 0x8e, 0xe3, 0xa3, 0x8f, 0x43, 0xde, 0x17, 0xf9, 0x97, 0xd2, 0xb9, 0xf8, 0x53, 0x27, + 0x55, 0x4e, 0x34, 0x1c, 0x3b, 0x59, 0x82, 0x15, 0x43, 0xb4, 0x0e, 0xf3, 0x9e, 0xc8, 0x70, 0x12, + 0xf9, 0x4c, 0x08, 0x97, 0x0a, 0x2c, 0xe1, 0x25, 0x4e, 0x80, 0xe3, 0xc4, 0x5a, 0xd4, 0x76, 0x62, + 0xa9, 0xcf, 0xf8, 0x4d, 0x84, 0xe6, 0xbc, 0x67, 0x0b, 0xbe, 0x8e, 0x05, 0xf4, 0xa0, 0x07, 0x50, + 0xf9, 0x11, 0x1e, 0x40, 0x55, 0xe1, 0x54, 0x1c, 0xc4, 0xf2, 0xb0, 0xb0, 0xd4, 0x2f, 0x9a, 0xce, + 0xaa, 0x24, 0x21, 0xe1, 0xe4, 0xba, 0xe8, 0x3a, 0x14, 0x3c, 0xc2, 0x4e, 0x35, 0x25, 0x19, 0x6a, + 0x30, 0x74, 0x50, 0x15, 0x96, 0x04, 0x70, 0x48, 0x8b, 0xce, 0xbb, 0x15, 0x4d, 0xc6, 0x79, 0x25, + 0xc5, 0x0f, 0x9d, 0x89, 0xb9, 0xef, 0x93, 0x1f, 0xc9, 0x7c, 0x73, 0x1a, 0x4e, 0x44, 0x3c, 0x1a, + 0xe8, 0x41, 0xc8, 0xb1, 0xc4, 0x34, 0x4c, 0x3c, 0xe4, 0x43, 0x11, 0xc6, 0x07, 0x87, 0xc3, 0xd0, + 0xe7, 0x0c, 0x98, 0x69, 0x47, 0x7c, 0xbf, 0x52, 0x72, 0x8e, 0x78, 0xbb, 0x18, 0x75, 0x28, 0x6b, + 0x69, 0xac, 0xa3, 0xcc, 0x70, 0x9c, 0x3b, 0xdd, 0x80, 0x22, 0x32, 0xb1, 0x49, 0x3c, 0x86, 0x2d, + 0x2c, 0x2b, 0x45, 0x62, 0x25, 0x0a, 0xc6, 0x71, 0x7c, 0x3a, 0xc3, 0xac, 0x77, 0xa3, 0x7c, 0x01, + 0xa9, 0x24, 0x09, 0xe0, 0x90, 0x16, 0x7a, 0x06, 0xa6, 0x45, 0x0e, 0xc6, 0x8a, 0x5b, 0xbf, 0x60, + 0xf9, 0x3b, 0xe2, 0x48, 0xa1, 0x8e, 0x40, 0x2b, 0x11, 0x28, 0x8e, 0x61, 0xb3, 0xbe, 0x85, 0x89, + 0x2e, 0x19, 0x81, 0xf1, 0x68, 0x96, 0xef, 0x95, 0x28, 0x18, 0xc7, 0xf1, 0xd1, 0x23, 0x9a, 0xdc, + 0xe7, 0xb7, 0x83, 0x4a, 0x1a, 0x24, 0xc8, 0xfe, 0x12, 0xcc, 0x74, 0xd8, 0x09, 0xac, 0x2e, 0x81, + 0x62, 0x3f, 0x2a, 0x86, 0x57, 0xa3, 0x60, 0x1c, 0xc7, 0x47, 0x4f, 0xc1, 0x09, 0x8f, 0x4a, 0x37, + 0x45, 0x80, 0x5f, 0x19, 0xaa, 0x1b, 0x21, 0xac, 0x03, 0x71, 0x14, 0x17, 0x3d, 0x0b, 0x73, 0x61, + 0xca, 0x32, 0x49, 0x80, 0xdf, 0x21, 0xaa, 0x6c, 0x3c, 0xa5, 0x38, 0x02, 0xee, 0xad, 0x83, 0xfe, + 0x1f, 0xcc, 0x6a, 0x23, 0xb1, 0xe6, 0xd4, 0xc9, 0x6d, 0x91, 0x56, 0x8a, 0x7d, 0x90, 0x61, 0x25, + 0x06, 0xc3, 0x3d, 0xd8, 0xe8, 0x7d, 0x30, 0x5d, 0x73, 0x9b, 0x4d, 0x26, 0xe3, 0x78, 0x86, 0x69, + 0x9e, 0x3f, 0x8a, 0x67, 0xda, 0x8a, 0x40, 0x70, 0x0c, 0x13, 0x5d, 0x04, 0xe4, 0x6e, 0x51, 0x7b, + 0x86, 0xd4, 0x9f, 0xe5, 0xdf, 0x54, 0xa5, 0x2a, 0xfe, 0x44, 0x34, 0x2e, 0xfa, 0x72, 0x0f, 0x06, + 0x4e, 0xa8, 0xc5, 0x92, 0xf9, 0x68, 0xef, 0xc8, 0xa6, 0xd3, 0xf8, 0x1a, 0x50, 0xdc, 0x5f, 0x70, + 0xe8, 0x23, 0x32, 0x0f, 0xc6, 0x79, 0x98, 0x7a, 0x3a, 0x89, 0xa4, 0xf4, 0x64, 0xb3, 0xa1, 0x8e, + 0xe0, 0xa5, 0x58, 0x70, 0x42, 0x9f, 0x80, 0xc2, 0x96, 0xcc, 0x3c, 0xbe, 0x30, 0x9b, 0x86, 0x5e, + 0x8c, 0x25, 0xd1, 0x0f, 0xcf, 0xc3, 0x0a, 0x80, 0x43, 0x96, 0xe8, 0x21, 0x98, 0xbc, 0x50, 0x29, + 0xa9, 0x55, 0x38, 0xc7, 0x66, 0x7f, 0x8c, 0x56, 0xc1, 0x3a, 0x80, 0xee, 0x30, 0x65, 0x2f, 0x21, + 0x36, 0xc5, 0xa1, 0xbe, 0xed, 0x35, 0x7f, 0x28, 0x36, 0xbb, 0x04, 0xc5, 0xd5, 0x85, 0x93, 0x31, + 0x6c, 0x51, 0x8e, 0x15, 0x06, 0x7a, 0x01, 0x26, 0x85, 0xbe, 0x60, 0xb2, 0x69, 0xfe, 0x68, 0x6f, + 0x14, 0x71, 0x48, 0x02, 0xeb, 0xf4, 0xd8, 0xdd, 0x16, 0x4b, 0xc8, 0x4c, 0xce, 0x77, 0x9a, 0xcd, + 0x85, 0x53, 0x4c, 0x6e, 0x86, 0x77, 0x5b, 0x21, 0x08, 0xeb, 0x78, 0xe8, 0x31, 0x19, 0xaf, 0xf1, + 0xb6, 0xc8, 0x65, 0x9f, 0x8a, 0xd7, 0x50, 0x56, 0x6e, 0x9f, 0x30, 0xe6, 0xd3, 0x87, 0x04, 0x4a, + 0x6c, 0xc1, 0xa2, 0x34, 0xb1, 0x7a, 0x37, 0xc9, 0xc2, 0x42, 0xc4, 0x37, 0xb1, 0x78, 0xbd, 0x2f, + 0x26, 0x3e, 0x80, 0x0a, 0xda, 0x82, 0xac, 0xd5, 0xdc, 0x5a, 0xb8, 0x37, 0x0d, 0x5b, 0x51, 0x7d, + 0x23, 0x99, 0x87, 0x1e, 0x95, 0xd6, 0xcb, 0x98, 0x12, 0x37, 0x5f, 0xc9, 0xa8, 0xbb, 0x00, 0x95, + 0x60, 0xf3, 0x25, 0x7d, 0x55, 0x1b, 0x69, 0x7c, 0x03, 0xb4, 0x27, 0x3d, 0x3f, 0x57, 0x48, 0x89, + 0x6b, 0xba, 0xad, 0xf6, 0x71, 0x2a, 0xd9, 0x53, 0xa2, 0xc9, 0x43, 0xf9, 0x19, 0x32, 0xba, 0x8b, + 0xcd, 0xfd, 0x09, 0xe5, 0xfa, 0x8a, 0x05, 0x20, 0x78, 0x90, 0xb3, 0xfd, 0xc0, 0x76, 0x53, 0x7c, + 0x4f, 0x17, 0xcb, 0xba, 0xc9, 0xc2, 0x75, 0x19, 0x00, 0x73, 0x56, 0x94, 0xa7, 0xd3, 0xb0, 0x9d, + 0xdb, 0xa2, 0xfb, 0x57, 0x52, 0x8f, 0x2c, 0xe0, 0x3c, 0x19, 0x00, 0x73, 0x56, 0xe8, 0x06, 0x5f, + 0x69, 0xe9, 0x7c, 0xef, 0x35, 0xfe, 0x19, 0xe7, 0xe8, 0x8a, 0xa3, 0xbc, 0xfc, 0x96, 0x2d, 0x6c, + 0x98, 0x11, 0x79, 0x55, 0x37, 0xd6, 0x92, 0x78, 0x55, 0x37, 0xd6, 0x30, 0x65, 0x82, 0x5e, 0x33, + 0x00, 0x2c, 0xf5, 0x3d, 0xe3, 0x74, 0xbe, 0x65, 0xd1, 0xef, 0xfb, 0xc8, 0x3c, 0xc2, 0x2e, 0x84, + 0x62, 0x8d, 0x33, 0x7a, 0x11, 0x26, 0x2c, 0xfe, 0x25, 0x1e, 0x11, 0xbc, 0x98, 0xce, 0xe7, 0xa5, + 0x62, 0x2d, 0x60, 0xce, 0x0a, 0x01, 0xc2, 0x92, 0x21, 0xe5, 0x1d, 0x78, 0x16, 0xd9, 0xb6, 0x6f, + 0x0a, 0x17, 0x49, 0x75, 0xe4, 0x84, 0xda, 0x94, 0x58, 0x12, 0x6f, 0x01, 0xc2, 0x92, 0x21, 0xff, + 0x84, 0xa8, 0xe5, 0x58, 0xea, 0x49, 0x4a, 0x3a, 0x0f, 0x97, 0xf4, 0x47, 0x2e, 0xda, 0x27, 0x44, + 0x75, 0x46, 0x38, 0xca, 0xd7, 0xfc, 0x71, 0x16, 0x80, 0xfd, 0xe4, 0xcf, 0xa4, 0x5b, 0x2c, 0xb5, + 0xde, 0x8e, 0x5b, 0x17, 0x5b, 0x3b, 0xc5, 0xd7, 0xce, 0x20, 0xf2, 0xe8, 0xed, 0xb8, 0x75, 0x2c, + 0x98, 0xa0, 0x06, 0x8c, 0xb5, 0xad, 0x60, 0x27, 0xfd, 0xa7, 0xd5, 0x79, 0xfe, 0x5e, 0x28, 0xd8, + 0xc1, 0x8c, 0x01, 0x7a, 0xd9, 0x80, 0x09, 0xfe, 0xb8, 0x5a, 0x3a, 0xb8, 0x47, 0xbe, 0xc5, 0x95, + 0x63, 0xb6, 0xc4, 0x5f, 0x70, 0x8b, 0x10, 0x09, 0xa5, 0x1a, 0x45, 0x29, 0x96, 0x6c, 0x17, 0x5f, + 0x35, 0x60, 0x4a, 0x47, 0x4d, 0x08, 0x6e, 0xf8, 0x88, 0x1e, 0xdc, 0x90, 0xe6, 0x78, 0xe8, 0x71, + 0x12, 0xff, 0x62, 0x80, 0xf6, 0xe1, 0xd5, 0x30, 0xb4, 0xd1, 0x18, 0x38, 0xb4, 0x31, 0x33, 0x64, + 0x68, 0x63, 0x76, 0xa8, 0xd0, 0xc6, 0xb1, 0xe1, 0x43, 0x1b, 0x73, 0xfd, 0x43, 0x1b, 0xcd, 0xd7, + 0x0d, 0x98, 0xeb, 0x91, 0x87, 0xf1, 0x0f, 0xdc, 0x1b, 0x03, 0x7e, 0xe0, 0x7e, 0x15, 0x66, 0x45, + 0xea, 0xe7, 0x6a, 0xbb, 0x69, 0x27, 0x3e, 0x7b, 0xdf, 0x8c, 0xc1, 0x71, 0x4f, 0x0d, 0xf3, 0xcf, + 0x0c, 0x98, 0xd4, 0x1e, 0xcb, 0xd1, 0x7e, 0xb0, 0x47, 0x85, 0xa2, 0x19, 0x61, 0xd6, 0x6b, 0x76, + 0xa1, 0xc0, 0x61, 0xfc, 0x6e, 0xab, 0xa1, 0xa5, 0x19, 0x0d, 0xef, 0xb6, 0x68, 0x29, 0x16, 0x50, + 0x9e, 0x40, 0x92, 0xb4, 0xd9, 0xa0, 0x67, 0xf5, 0x04, 0x92, 0xa4, 0x8d, 0x19, 0x84, 0xb1, 0xa3, + 0x76, 0xa4, 0x88, 0x7a, 0xd5, 0x92, 0x6c, 0x5b, 0x5e, 0x80, 0x39, 0x0c, 0x9d, 0x81, 0x2c, 0x71, + 0xea, 0xe2, 0xd0, 0xab, 0x3e, 0x6c, 0x75, 0xce, 0xa9, 0x63, 0x5a, 0x6e, 0x5e, 0x86, 0xa9, 0x2a, + 0xa9, 0x79, 0x24, 0x78, 0x8e, 0xec, 0x0d, 0xfc, 0xa5, 0x2c, 0xba, 0xda, 0x63, 0x5f, 0xca, 0xa2, + 0xd5, 0x69, 0xb9, 0xf9, 0x07, 0x06, 0xc4, 0x32, 0xc1, 0x6b, 0x7e, 0x6e, 0xa3, 0xaf, 0x9f, 0x5b, + 0xf7, 0x8d, 0x66, 0x0e, 0xf4, 0x8d, 0x5e, 0x04, 0xd4, 0xa2, 0x5b, 0x21, 0xf2, 0xdd, 0x03, 0xe1, + 0x6f, 0x08, 0x9f, 0xe6, 0xf6, 0x60, 0xe0, 0x84, 0x5a, 0xe6, 0xef, 0xf3, 0xc6, 0xea, 0xb9, 0xe1, + 0x0f, 0x1f, 0x80, 0x0e, 0xe4, 0x18, 0x29, 0xe1, 0x74, 0xa9, 0x8c, 0xb6, 0xb9, 0x7b, 0x53, 0x5c, + 0x84, 0x13, 0x29, 0xb6, 0x3c, 0xe3, 0x66, 0x7e, 0x97, 0xb7, 0x55, 0x4b, 0x1e, 0x3f, 0x40, 0x5b, + 0x5b, 0xd1, 0xb6, 0x5e, 0x48, 0x4b, 0x56, 0x26, 0xb7, 0x11, 0x2d, 0x01, 0xb4, 0x89, 0x57, 0x23, + 0x4e, 0x20, 0x83, 0xb1, 0x73, 0xe2, 0xf1, 0x8a, 0x2a, 0xc5, 0x1a, 0x86, 0xf9, 0xb2, 0x01, 0xb3, + 0xd5, 0xc0, 0xae, 0xdd, 0xb4, 0x1d, 0xfe, 0x18, 0x6b, 0xdb, 0x6e, 0xd0, 0x53, 0x0a, 0x11, 0x1f, + 0x81, 0xe2, 0x6e, 0x30, 0x25, 0x8a, 0xe5, 0xb7, 0x9f, 0x24, 0x1c, 0x95, 0x60, 0x46, 0x7a, 0xdb, + 0xa5, 0xef, 0x92, 0x3f, 0x22, 0x55, 0xbe, 0x92, 0xd5, 0x28, 0x18, 0xc7, 0xf1, 0xcd, 0x4f, 0xc2, + 0xa4, 0x26, 0x5f, 0x99, 0x28, 0xba, 0x6d, 0xd5, 0x82, 0xf8, 0x16, 0x3e, 0x47, 0x0b, 0x31, 0x87, + 0x31, 0x17, 0x2b, 0x8f, 0xd6, 0x8d, 0x6d, 0x61, 0x11, 0xa3, 0x2b, 0xa0, 0x94, 0x98, 0x47, 0x1a, + 0xe4, 0xb6, 0x4c, 0x68, 0x2a, 0x89, 0x61, 0x5a, 0x88, 0x39, 0xcc, 0x7c, 0x04, 0xf2, 0xf2, 0xa9, + 0x3f, 0x7b, 0x2f, 0x2b, 0xdd, 0x7f, 0xfa, 0x7b, 0x59, 0xd7, 0x0b, 0x30, 0x83, 0x98, 0xd7, 0x20, + 0x2f, 0x33, 0x12, 0x1c, 0x8e, 0x4d, 0x77, 0x95, 0xef, 0xd8, 0x17, 0x5c, 0x3f, 0x90, 0x69, 0x14, + 0xf8, 0x95, 0xc0, 0xa5, 0x35, 0x56, 0x86, 0x15, 0xd4, 0xfc, 0x65, 0x03, 0x66, 0x62, 0x77, 0x43, + 0x03, 0x2c, 0xaf, 0x6b, 0x30, 0x29, 0xae, 0x8c, 0xaa, 0x61, 0x48, 0x59, 0x31, 0xe9, 0x2e, 0xa1, + 0x1a, 0xa2, 0x85, 0xe2, 0x59, 0x2b, 0xc4, 0x3a, 0x21, 0xf3, 0x1b, 0x59, 0x98, 0x8a, 0x7c, 0xfb, + 0xf8, 0xf0, 0xa6, 0x0c, 0x2e, 0x40, 0x12, 0xae, 0x0b, 0xb2, 0x43, 0x5e, 0x17, 0xe8, 0xf7, 0x33, + 0x63, 0xc7, 0x7b, 0x3f, 0x93, 0x4b, 0xe7, 0x7e, 0x46, 0xbb, 0x47, 0x1c, 0xbf, 0x7b, 0xf7, 0x88, + 0x5f, 0xcd, 0xc1, 0x74, 0x34, 0x0d, 0xd4, 0x00, 0x33, 0xf9, 0x48, 0xcf, 0x4c, 0x0e, 0xe9, 0x2e, + 0xcd, 0x8e, 0xea, 0x2e, 0x1d, 0x1b, 0xd5, 0x5d, 0x9a, 0x3b, 0x82, 0xbb, 0xb4, 0xd7, 0xd9, 0x39, + 0x3e, 0xb0, 0xb3, 0xf3, 0x69, 0x15, 0x61, 0x34, 0x11, 0xb9, 0x92, 0x0f, 0x23, 0x8c, 0x50, 0x74, + 0x1a, 0x56, 0xdc, 0x7a, 0x62, 0xa4, 0x56, 0xfe, 0x10, 0xb7, 0x90, 0x97, 0x18, 0x10, 0x34, 0xfc, + 0x8d, 0xcc, 0xdb, 0x86, 0x08, 0x06, 0x7a, 0x42, 0x09, 0x19, 0x66, 0xa6, 0x41, 0xd4, 0xc4, 0xab, + 0x86, 0x20, 0xac, 0xe3, 0xb1, 0xcf, 0x73, 0x46, 0xbf, 0x47, 0xca, 0xbc, 0xcf, 0xfa, 0xe7, 0x39, + 0x63, 0xdf, 0x2f, 0x8d, 0xe3, 0x9b, 0x1f, 0x87, 0x53, 0x89, 0x87, 0x41, 0xe6, 0x1d, 0x63, 0x16, + 0x04, 0xa9, 0x0b, 0x04, 0xad, 0x19, 0xb1, 0x2c, 0xc1, 0x8b, 0xd7, 0xfb, 0x62, 0xe2, 0x03, 0xa8, + 0x98, 0x5f, 0xc9, 0xc2, 0x74, 0xf4, 0xdb, 0x4e, 0xe8, 0x96, 0x72, 0x1d, 0xa5, 0xe2, 0xb5, 0xe2, + 0x64, 0xb5, 0xd4, 0x42, 0x7d, 0xfd, 0xc0, 0xb7, 0xd8, 0xfa, 0xda, 0x52, 0x79, 0x8e, 0x8e, 0x8f, + 0xb1, 0x70, 0xc0, 0x0a, 0x76, 0xec, 0xf3, 0x4d, 0xe1, 0xfb, 0x0e, 0x71, 0xe2, 0x4b, 0x9d, 0x7b, + 0xf8, 0x62, 0x43, 0xb1, 0xc2, 0x1a, 0x5b, 0xaa, 0x5b, 0x76, 0x89, 0x67, 0x6f, 0xdb, 0xea, 0xbb, + 0x94, 0x4c, 0x72, 0x5f, 0x13, 0x65, 0x58, 0x41, 0xcd, 0x97, 0x33, 0x10, 0x7e, 0x85, 0x97, 0x7d, + 0x00, 0xc5, 0xd7, 0xac, 0x6b, 0x31, 0x6d, 0x17, 0x47, 0xfd, 0xca, 0x50, 0x48, 0x51, 0x44, 0x7f, + 0x6a, 0x25, 0x38, 0xc2, 0xf1, 0x67, 0xf0, 0xf5, 0x5d, 0x0b, 0x66, 0x62, 0xaf, 0x5e, 0x53, 0x0f, + 0xb1, 0xff, 0x51, 0x16, 0x0a, 0xea, 0xdd, 0x30, 0x7a, 0x6f, 0xc4, 0xd5, 0x51, 0x28, 0xbf, 0x5d, + 0xcb, 0xf5, 0xbf, 0xe3, 0xd6, 0xef, 0x74, 0x8b, 0x33, 0x0a, 0x39, 0xe6, 0xb6, 0x38, 0x03, 0xd9, + 0x8e, 0xd7, 0x8c, 0x9f, 0x65, 0xae, 0xe2, 0x75, 0x4c, 0xcb, 0xd1, 0xed, 0xb8, 0xaf, 0x61, 0x23, + 0xa5, 0xb7, 0xce, 0xdc, 0xe8, 0xef, 0xef, 0x63, 0xa0, 0x5a, 0x72, 0xcb, 0xad, 0xef, 0xc5, 0xbf, + 0x0d, 0x50, 0x76, 0xeb, 0x7b, 0x98, 0x41, 0xd0, 0x33, 0x30, 0x1d, 0xd8, 0x2d, 0xe2, 0x76, 0x02, + 0xfd, 0x1b, 0xa7, 0xd9, 0xf0, 0x5e, 0x73, 0x33, 0x02, 0xc5, 0x31, 0x6c, 0xaa, 0x65, 0x6f, 0xf8, + 0xae, 0xc3, 0x12, 0xfe, 0x8d, 0x47, 0x2f, 0x41, 0x2e, 0x56, 0x2f, 0x5f, 0x62, 0x2e, 0x17, 0x85, + 0x41, 0xb1, 0x6d, 0xf6, 0x48, 0xd0, 0x23, 0x22, 0xac, 0x60, 0x36, 0x4c, 0x21, 0xc1, 0xcb, 0xb1, + 0xc2, 0x40, 0xab, 0x9c, 0x36, 0x6d, 0x2d, 0xd3, 0x28, 0x53, 0xe5, 0x87, 0x25, 0x5d, 0x5a, 0x76, + 0xa7, 0x5b, 0x5c, 0x20, 0x4e, 0xcd, 0xad, 0xdb, 0x4e, 0x63, 0x99, 0x22, 0x2e, 0x61, 0xeb, 0x96, + 0x54, 0x35, 0xaa, 0xa6, 0x79, 0x15, 0x66, 0x62, 0x03, 0x26, 0xcf, 0x9e, 0x46, 0xf2, 0xd9, 0x73, + 0xb0, 0x74, 0xfe, 0x7f, 0x6c, 0xc0, 0x5c, 0x8f, 0x08, 0x18, 0xf4, 0x05, 0x49, 0x5c, 0x19, 0x65, + 0x8e, 0xae, 0x8c, 0xb2, 0xc3, 0x29, 0xa3, 0xf2, 0xd6, 0xb7, 0xde, 0x3c, 0x7b, 0xcf, 0x77, 0xde, + 0x3c, 0x7b, 0xcf, 0xf7, 0xdf, 0x3c, 0x7b, 0xcf, 0xcb, 0xfb, 0x67, 0x8d, 0x6f, 0xed, 0x9f, 0x35, + 0xbe, 0xb3, 0x7f, 0xd6, 0xf8, 0xfe, 0xfe, 0x59, 0xe3, 0x1f, 0xf6, 0xcf, 0x1a, 0xaf, 0xff, 0xe8, + 0xec, 0x3d, 0xcf, 0x3f, 0x1d, 0x2e, 0xd0, 0x65, 0xb9, 0x40, 0xd9, 0x8f, 0x77, 0xc9, 0xe5, 0xb8, + 0xdc, 0xbe, 0xd9, 0x58, 0xa6, 0x0b, 0x74, 0x59, 0x95, 0xc8, 0x05, 0xfa, 0x9f, 0x01, 0x00, 0x00, + 0xff, 0xff, 0xb8, 0x5a, 0x3c, 0xd3, 0x46, 0x94, 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -8903,6 +8904,16 @@ func (m *TemplateService) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.ServiceSpec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 i -= len(m.Name) copy(dAtA[i:], m.Name) i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) @@ -11350,6 +11361,8 @@ func (m *TemplateService) Size() (n int) { _ = l l = len(m.Name) n += 1 + l + sovGenerated(uint64(l)) + l = m.ServiceSpec.Size() + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -13022,6 +13035,7 @@ func (this *TemplateService) String() string { } s := strings.Join([]string{`&TemplateService{`, `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `ServiceSpec:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ServiceSpec), "ServiceSpec", "v12.ServiceSpec", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -29842,6 +29856,39 @@ func (m *TemplateService) Unmarshal(dAtA []byte) error { } m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceSpec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ServiceSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index ab34257b23..4fbb2abb8c 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -1582,6 +1582,8 @@ message TLSRoute { message TemplateService { optional string name = 1; + + optional k8s.io.api.core.v1.ServiceSpec serviceSpec = 2; } message TemplateSpec { diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index b0457ddb7d..670d4ba0ad 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -1716,6 +1716,12 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateSer * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService */ name?: string; + /** + * + * @type {K8sIoApiCoreV1ServiceSpec} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService + */ + serviceSpec?: K8sIoApiCoreV1ServiceSpec; } /** * @@ -2127,6 +2133,19 @@ export interface K8sIoApiCoreV1CinderVolumeSource { */ secretRef?: K8sIoApiCoreV1LocalObjectReference; } +/** + * ClientIPConfig represents the configurations of Client IP based session affinity. + * @export + * @interface K8sIoApiCoreV1ClientIPConfig + */ +export interface K8sIoApiCoreV1ClientIPConfig { + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1ClientIPConfig + */ + timeoutSeconds?: number; +} /** * ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables. * @export @@ -4472,6 +4491,183 @@ export interface K8sIoApiCoreV1ServiceAccountTokenProjection { */ path?: string; } +/** + * ServicePort contains information on service's port. + * @export + * @interface K8sIoApiCoreV1ServicePort + */ +export interface K8sIoApiCoreV1ServicePort { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServicePort + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServicePort + */ + protocol?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServicePort + */ + appProtocol?: string; + /** + * The port that will be exposed by this service. + * @type {number} + * @memberof K8sIoApiCoreV1ServicePort + */ + port?: number; + /** + * + * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} + * @memberof K8sIoApiCoreV1ServicePort + */ + targetPort?: K8sIoApimachineryPkgUtilIntstrIntOrString; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1ServicePort + */ + nodePort?: number; +} +/** + * ServiceSpec describes the attributes that a user creates on a service. + * @export + * @interface K8sIoApiCoreV1ServiceSpec + */ +export interface K8sIoApiCoreV1ServiceSpec { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + ports?: Array; + /** + * + * @type {{ [key: string]: string; }} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + selector?: { [key: string]: string; }; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + clusterIP?: string; + /** + * ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value. This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies +listType=atomic +optional + * @type {Array} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + clusterIPs?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + type?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + externalIPs?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + sessionAffinity?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + loadBalancerIP?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + loadBalancerSourceRanges?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + externalName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + externalTrafficPolicy?: string; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + healthCheckNodePort?: number; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + publishNotReadyAddresses?: boolean; + /** + * + * @type {K8sIoApiCoreV1SessionAffinityConfig} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + sessionAffinityConfig?: K8sIoApiCoreV1SessionAffinityConfig; + /** + * IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName. This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. +listType=atomic +optional + * @type {Array} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + ipFamilies?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + ipFamilyPolicy?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + allocateLoadBalancerNodePorts?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + loadBalancerClass?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceSpec + */ + internalTrafficPolicy?: string; +} +/** + * SessionAffinityConfig represents the configurations of session affinity. + * @export + * @interface K8sIoApiCoreV1SessionAffinityConfig + */ +export interface K8sIoApiCoreV1SessionAffinityConfig { + /** + * + * @type {K8sIoApiCoreV1ClientIPConfig} + * @memberof K8sIoApiCoreV1SessionAffinityConfig + */ + clientIP?: K8sIoApiCoreV1ClientIPConfig; +} /** * Represents a StorageOS persistent volume resource. * @export From e1247e1bb765309f9f96f4d7095426698cef0a92 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sun, 23 Oct 2022 15:41:47 +0200 Subject: [PATCH 14/28] Add codegen openapi_generated.go Signed-off-by: Alex Eftimie --- .../rollouts/v1alpha1/openapi_generated.go | 208 ++++++++++++++++++ 1 file changed, 208 insertions(+) diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index a873c1bdc4..232b590442 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -4698,9 +4698,217 @@ func schema_pkg_apis_rollouts_v1alpha1_TemplateService(ref common.ReferenceCallb Format: "", }, }, + "ports": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "port", + "protocol", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "port", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.ServicePort"), + }, + }, + }, + }, + }, + "selector": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-map-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "clusterIP": { + SchemaProps: spec.SchemaProps{ + Description: "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + Type: []string{"string"}, + Format: "", + }, + }, + "clusterIPs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "type": { + SchemaProps: spec.SchemaProps{ + Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", + Type: []string{"string"}, + Format: "", + }, + }, + "externalIPs": { + SchemaProps: spec.SchemaProps{ + Description: "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "sessionAffinity": { + SchemaProps: spec.SchemaProps{ + Description: "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + Type: []string{"string"}, + Format: "", + }, + }, + "loadBalancerIP": { + SchemaProps: spec.SchemaProps{ + Description: "Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations, and it cannot support dual-stack. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.", + Type: []string{"string"}, + Format: "", + }, + }, + "loadBalancerSourceRanges": { + SchemaProps: spec.SchemaProps{ + Description: "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "externalName": { + SchemaProps: spec.SchemaProps{ + Description: "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".", + Type: []string{"string"}, + Format: "", + }, + }, + "externalTrafficPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", + Type: []string{"string"}, + Format: "", + }, + }, + "healthCheckNodePort": { + SchemaProps: spec.SchemaProps{ + Description: "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type).", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "publishNotReadyAddresses": { + SchemaProps: spec.SchemaProps{ + Description: "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "sessionAffinityConfig": { + SchemaProps: spec.SchemaProps{ + Description: "sessionAffinityConfig contains the configurations of session affinity.", + Ref: ref("k8s.io/api/core/v1.SessionAffinityConfig"), + }, + }, + "ipFamilies": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "ipFamilyPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", + Type: []string{"string"}, + Format: "", + }, + }, + "allocateLoadBalancerNodePorts": { + SchemaProps: spec.SchemaProps{ + Description: "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "loadBalancerClass": { + SchemaProps: spec.SchemaProps{ + Description: "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.", + Type: []string{"string"}, + Format: "", + }, + }, + "internalTrafficPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "InternalTrafficPolicy specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. \"Cluster\" routes internal traffic to a Service to all endpoints. \"Local\" routes traffic to node-local endpoints only, traffic is dropped if no node-local endpoints are ready. The default value is \"Cluster\".", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, + Dependencies: []string{ + "k8s.io/api/core/v1.ServicePort", "k8s.io/api/core/v1.SessionAffinityConfig"}, } } From b8c415766b017799fb6f1e779030bfd383a66a31 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sun, 23 Oct 2022 15:52:08 +0200 Subject: [PATCH 15/28] fix codegen, protobuf is needed Signed-off-by: Alex Eftimie --- pkg/apis/rollouts/v1alpha1/experiment_types.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/apis/rollouts/v1alpha1/experiment_types.go b/pkg/apis/rollouts/v1alpha1/experiment_types.go index 93786137b6..a610fabeb6 100644 --- a/pkg/apis/rollouts/v1alpha1/experiment_types.go +++ b/pkg/apis/rollouts/v1alpha1/experiment_types.go @@ -91,7 +91,7 @@ type TemplateSpec struct { type TemplateService struct { Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - corev1.ServiceSpec `json:",inline"` + corev1.ServiceSpec `json:",inline" protobuf:"bytes,2,opt,name=serviceSpec"` } type TemplateStatusCode string From de6b858956e6c70640ad80c8d7c2c3da3e7d1b77 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Mon, 24 Oct 2022 09:55:55 +0200 Subject: [PATCH 16/28] Add unit test Signed-off-by: Alex Eftimie --- rollout/experiment_test.go | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/rollout/experiment_test.go b/rollout/experiment_test.go index e2e50c1f28..9ebb32f5a4 100644 --- a/rollout/experiment_test.go +++ b/rollout/experiment_test.go @@ -7,6 +7,7 @@ import ( "time" "github.com/stretchr/testify/assert" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/uuid" @@ -820,3 +821,63 @@ func TestRolloutCreateExperimentWithService(t *testing.T) { assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) assert.Nil(t, ex.Spec.Templates[1].Service) } + +func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { + steps := []v1alpha1.CanaryStep{{ + Experiment: &v1alpha1.RolloutExperimentStep{ + Templates: []v1alpha1.RolloutExperimentTemplate{ + // Service should be created for "stable-template" + { + Name: "stable-template", + SpecRef: v1alpha1.StableSpecRef, + Replicas: pointer.Int32Ptr(1), + Weight: pointer.Int32Ptr(5), + Service: &v1alpha1.TemplateService{ + ServiceSpec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{{ + Name: "testport", + Port: 80, + TargetPort: intstr.FromInt(8080), + Protocol: "TCP", + }, + }, + }, + }, + }, + // Service should also be created for "canary-template" + { + Name: "canary-template", + SpecRef: v1alpha1.CanarySpecRef, + Replicas: pointer.Int32Ptr(1), + Service: &v1alpha1.TemplateService{ + Name: "custom-name", + }, + }, + }, + }, + }} + + r1 := newCanaryRollout("foo", 1, nil, steps, pointer.Int32Ptr(0), intstr.FromInt(0), intstr.FromInt(1)) + r2 := bumpVersion(r1) + + rs1 := newReplicaSetWithStatus(r1, 1, 1) + rs2 := newReplicaSetWithStatus(r2, 1, 1) + rs1PodHash := rs1.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] + + r2.Status.CurrentStepIndex = pointer.Int32Ptr(0) + r2.Status.StableRS = rs1PodHash + + ex, err := GetExperimentFromTemplate(r2, rs1, rs2) + assert.Nil(t, err) + + assert.Equal(t, "stable-template", ex.Spec.Templates[0].Name) + assert.NotNil(t, ex.Spec.Templates[0].Service) + + assert.Equal(t, int32(80), ex.Spec.Templates[0].Service.Ports[0].Port) + + assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) + assert.NotNil(t, ex.Spec.Templates[1].Service) + + assert.Equal(t, 0, len(ex.Spec.Templates[1].Service.Ports)) + assert.Equal(t, "custom-name", ex.Spec.Templates[1].Service.Name) +} From bc379f71741e785498e481aa3011f072f720826e Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Mon, 24 Oct 2022 12:44:50 +0200 Subject: [PATCH 17/28] Add unit test to new not tested code - copy pods from RS Signed-off-by: Alex Eftimie --- experiments/experiment_test.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/experiments/experiment_test.go b/experiments/experiment_test.go index 60c04e0723..1fa0328904 100644 --- a/experiments/experiment_test.go +++ b/experiments/experiment_test.go @@ -496,3 +496,26 @@ func TestDeleteServiceIfServiceFieldNil(t *testing.T) { assert.Equal(t, "", exStatus.TemplateStatuses[0].ServiceName) assert.Nil(t, exCtx.templateServices["bar"]) } + +func TestServiceInheritPortsFromRS(t *testing.T) { + templates := generateTemplates("bar") + templates[0].Service = &v1alpha1.TemplateService{Name: "foobar"} + templates[0].Template.Spec.Containers[0].Ports = []corev1.ContainerPort{ + { + Name: "testport", + ContainerPort: 80, + Protocol: "TCP", + }, + } + ex := newExperiment("foo", templates, "") + + exCtx := newTestContext(ex) + rs := templateToRS(ex, templates[0], 0) + exCtx.templateRSs["bar"] = rs + + exCtx.reconcile() + + assert.NotNil(t, exCtx.templateServices["bar"]) + assert.Equal(t, exCtx.templateServices["bar"].Name, "foobar") + assert.Equal(t, exCtx.templateServices["bar"].Spec.Ports[0].Port, int32(80)) +} From c32cbe79ba944db27a3ed3c7a38a69e7a2dab6ae Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Tue, 1 Nov 2022 17:48:10 +0100 Subject: [PATCH 18/28] Address PR comment: set entire spec Signed-off-by: Alex Eftimie --- experiments/service.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/experiments/service.go b/experiments/service.go index ee771be20f..b4cc7c97bd 100644 --- a/experiments/service.go +++ b/experiments/service.go @@ -71,10 +71,7 @@ func (ec *experimentContext) CreateService(serviceName string, template v1alpha1 }, Annotations: serviceAnnotations, }, - Spec: corev1.ServiceSpec{ - Selector: template.Service.Selector, - Ports: template.Service.Ports, - }, + Spec: template.Service.ServiceSpec, } service, err := ec.kubeclientset.CoreV1().Services(ec.ex.Namespace).Create(ctx, newService, metav1.CreateOptions{}) From 0f5ed7afb764354148e3842d923e348dfb2f696a Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Tue, 1 Nov 2022 23:44:15 +0100 Subject: [PATCH 19/28] docs: update experiment and rollout spec Signed-off-by: Alex Eftimie --- docs/features/experiment.md | 25 +++++++++++++++++++++++-- docs/features/specification.md | 13 +++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/docs/features/experiment.md b/docs/features/experiment.md index 41057d866b..99952895ff 100644 --- a/docs/features/experiment.md +++ b/docs/features/experiment.md @@ -6,6 +6,10 @@ The Experiment CRD allows users to have ephemeral runs of one or more ReplicaSet running ephemeral ReplicaSets, the Experiment CRD can launch AnalysisRuns alongside the ReplicaSets. Generally, those AnalysisRun is used to confirm that new ReplicaSets are running as expected. +A Service routing traffic to the Experiment ReplicaSet is generated if either: +- the experiment template is weighted; +- the experiment template explicitly defines the `service` property. + ## Use cases of Experiments - A user wants to run two versions of an application for a specific duration to enable Kayenta-style @@ -67,6 +71,18 @@ spec: - name: http containerPort: 8080 protocol: TCP + # Generate a Service object pointing to this variation + service: + name: experiment-purple + # Control the service specification (selector, ports etc) + ports: + - name: http + targetPort: 8080 + port: 80 + protocol: TCP + selector: + app: canary-demo + color: purple - name: orange replicas: 1 minReadySeconds: 10 @@ -243,5 +259,10 @@ to `experiment-baseline`, leaving the remaining 90% of traffic to the old stack. !!! note When a weighted experiment step with traffic routing is used, a - service is auto-created for each experiment template. The traffic routers use - this service to send traffic to the experiment pods. \ No newline at end of file + Service is auto-created for each experiment template. The traffic routers use + this service to send traffic to the experiment pods. + +By default, the generated Service has the name of the ReplicaSet and inherits +ports and selector from the specRef definition. These properties can be overriden, +using the `experiment.templates[].service` specification +(see [Experiment Spec](#experiment-spec)). \ No newline at end of file diff --git a/docs/features/specification.md b/docs/features/specification.md index 100ddbb430..a560783c19 100644 --- a/docs/features/specification.md +++ b/docs/features/specification.md @@ -326,8 +326,21 @@ spec: templates: - name: baseline specRef: stable + # optional, generate a Service pointing to this version + # by default, the service is named the same as the ReplicaSet + # but name can be explicitly set below + service: + name: experiment-baseline + # optional, control the service specification (selector, ports etc) + ports: + - name: http + targetPort: 8080 + port: 80 + protocol: TCP - name: canary specRef: canary + # optional, set the weight of traffic routed to this version + weight: 10 analyses: - name : mann-whitney templateName: mann-whitney From 09ac6e1e1004b3ddc7ceef361784f34ba189bb41 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 4 Nov 2022 17:05:31 +0100 Subject: [PATCH 20/28] redo pr. drop spec changes. only inherit ports and always create the service. update docs Signed-off-by: Alex Eftimie --- docs/features/experiment.md | 21 +- .../features/kustomize/rollout_cr_schema.json | 134 -- docs/features/specification.md | 11 - experiments/experiment.go | 36 +- experiments/experiment_test.go | 4 +- experiments/service.go | 7 +- manifests/crds/experiment-crd.yaml | 89 -- manifests/crds/rollout-crd.yaml | 91 -- manifests/install.yaml | 180 --- manifests/namespace-install.yaml | 180 --- pkg/apiclient/rollout/rollout.swagger.json | 169 --- .../rollouts/v1alpha1/experiment_types.go | 5 +- pkg/apis/rollouts/v1alpha1/generated.pb.go | 1095 +++++++---------- pkg/apis/rollouts/v1alpha1/generated.proto | 6 - .../rollouts/v1alpha1/openapi_generated.go | 224 +--- pkg/apis/rollouts/v1alpha1/types.go | 2 - .../v1alpha1/zz_generated.deepcopy.go | 8 +- rollout/experiment.go | 8 +- rollout/experiment_test.go | 24 +- ui/src/models/rollout/generated/api.ts | 215 ---- 20 files changed, 506 insertions(+), 2003 deletions(-) diff --git a/docs/features/experiment.md b/docs/features/experiment.md index 99952895ff..6740895d68 100644 --- a/docs/features/experiment.md +++ b/docs/features/experiment.md @@ -6,9 +6,7 @@ The Experiment CRD allows users to have ephemeral runs of one or more ReplicaSet running ephemeral ReplicaSets, the Experiment CRD can launch AnalysisRuns alongside the ReplicaSets. Generally, those AnalysisRun is used to confirm that new ReplicaSets are running as expected. -A Service routing traffic to the Experiment ReplicaSet is generated if either: -- the experiment template is weighted; -- the experiment template explicitly defines the `service` property. +A Service routing traffic to the Experiment ReplicaSet is also generated. ## Use cases of Experiments @@ -71,18 +69,6 @@ spec: - name: http containerPort: 8080 protocol: TCP - # Generate a Service object pointing to this variation - service: - name: experiment-purple - # Control the service specification (selector, ports etc) - ports: - - name: http - targetPort: 8080 - port: 80 - protocol: TCP - selector: - app: canary-demo - color: purple - name: orange replicas: 1 minReadySeconds: 10 @@ -263,6 +249,5 @@ to `experiment-baseline`, leaving the remaining 90% of traffic to the old stack. this service to send traffic to the experiment pods. By default, the generated Service has the name of the ReplicaSet and inherits -ports and selector from the specRef definition. These properties can be overriden, -using the `experiment.templates[].service` specification -(see [Experiment Spec](#experiment-spec)). \ No newline at end of file +ports and selector from the specRef definition. It can be accessed in using the `{{templates.baseline.replicaset.name}}` +or `{{templates.canary.replicaset.name}}` variables respectively. \ No newline at end of file diff --git a/docs/features/kustomize/rollout_cr_schema.json b/docs/features/kustomize/rollout_cr_schema.json index dcb1b39dfb..fbff809be6 100644 --- a/docs/features/kustomize/rollout_cr_schema.json +++ b/docs/features/kustomize/rollout_cr_schema.json @@ -12969,140 +12969,6 @@ "type": "object" }, "service": { - "properties": { - "allocateLoadBalancerNodePorts": { - "type": "boolean" - }, - "clusterIP": { - "type": "string" - }, - "clusterIPs": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "externalIPs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "externalName": { - "type": "string" - }, - "externalTrafficPolicy": { - "type": "string" - }, - "healthCheckNodePort": { - "format": "int32", - "type": "integer" - }, - "internalTrafficPolicy": { - "type": "string" - }, - "ipFamilies": { - "items": { - "type": "string" - }, - "type": "array", - "x-kubernetes-list-type": "atomic" - }, - "ipFamilyPolicy": { - "type": "string" - }, - "loadBalancerClass": { - "type": "string" - }, - "loadBalancerIP": { - "type": "string" - }, - "loadBalancerSourceRanges": { - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "properties": { - "appProtocol": { - "type": "string" - }, - "name": { - "type": "string" - }, - "nodePort": { - "format": "int32", - "type": "integer" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "protocol": { - "default": "TCP", - "type": "string" - }, - "targetPort": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "string" - } - ], - "x-kubernetes-int-or-string": true - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "port", - "protocol" - ], - "x-kubernetes-list-type": "map" - }, - "publishNotReadyAddresses": { - "type": "boolean" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "type": "object", - "x-kubernetes-map-type": "atomic" - }, - "sessionAffinity": { - "type": "string" - }, - "sessionAffinityConfig": { - "properties": { - "clientIP": { - "properties": { - "timeoutSeconds": { - "format": "int32", - "type": "integer" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, "type": "object" }, "template": { diff --git a/docs/features/specification.md b/docs/features/specification.md index a560783c19..64ee171972 100644 --- a/docs/features/specification.md +++ b/docs/features/specification.md @@ -326,17 +326,6 @@ spec: templates: - name: baseline specRef: stable - # optional, generate a Service pointing to this version - # by default, the service is named the same as the ReplicaSet - # but name can be explicitly set below - service: - name: experiment-baseline - # optional, control the service specification (selector, ports etc) - ports: - - name: http - targetPort: 8080 - port: 80 - protocol: TCP - name: canary specRef: canary # optional, set the weight of traffic routed to this version diff --git a/experiments/experiment.go b/experiments/experiment.go index 39cecfa7af..d8975d9d20 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -286,29 +286,19 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp // Create service with has same name, podTemplateHash, and labels as RS podTemplateHash := rs.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] svc := ec.templateServices[template.Name] - templateServiceName := template.Service.Name - if templateServiceName == "" { - templateServiceName = rs.Name - } - if len(template.Service.Selector) == 0 { - template.Service.Selector = rs.Labels - } - if len(template.Service.Ports) == 0 { - var ports []corev1.ServicePort - for _, ctr := range rs.Spec.Template.Spec.Containers { - for _, port := range ctr.Ports { - servicePort := corev1.ServicePort{ - Protocol: port.Protocol, - Port: port.ContainerPort, - TargetPort: intstr.FromInt(int(port.ContainerPort)), - } - ports = append(ports, servicePort) - } - } - template.Service.Ports = ports - } - if svc == nil || svc.Name != templateServiceName { - newService, err := ec.CreateService(templateServiceName, *template) + var ports []corev1.ServicePort + for _, ctr := range rs.Spec.Template.Spec.Containers { + for _, port := range ctr.Ports { + servicePort := corev1.ServicePort{ + Protocol: port.Protocol, + Port: port.ContainerPort, + TargetPort: intstr.FromInt(int(port.ContainerPort)), + } + ports = append(ports, servicePort) + } + } + if svc == nil || svc.Name != rs.Name { + newService, err := ec.CreateService(rs.Name, *template, rs.Labels, ports) if err != nil { templateStatus.Status = v1alpha1.TemplateStatusError templateStatus.Message = fmt.Sprintf("Failed to create Service for template '%s': %v", template.Name, err) diff --git a/experiments/experiment_test.go b/experiments/experiment_test.go index 1fa0328904..2343038ef5 100644 --- a/experiments/experiment_test.go +++ b/experiments/experiment_test.go @@ -499,7 +499,7 @@ func TestDeleteServiceIfServiceFieldNil(t *testing.T) { func TestServiceInheritPortsFromRS(t *testing.T) { templates := generateTemplates("bar") - templates[0].Service = &v1alpha1.TemplateService{Name: "foobar"} + templates[0].Service = &v1alpha1.TemplateService{} templates[0].Template.Spec.Containers[0].Ports = []corev1.ContainerPort{ { Name: "testport", @@ -516,6 +516,6 @@ func TestServiceInheritPortsFromRS(t *testing.T) { exCtx.reconcile() assert.NotNil(t, exCtx.templateServices["bar"]) - assert.Equal(t, exCtx.templateServices["bar"].Name, "foobar") + assert.Equal(t, exCtx.templateServices["bar"].Name, "foo-bar") assert.Equal(t, exCtx.templateServices["bar"].Spec.Ports[0].Port, int32(80)) } diff --git a/experiments/service.go b/experiments/service.go index b4cc7c97bd..a43f797206 100644 --- a/experiments/service.go +++ b/experiments/service.go @@ -58,7 +58,7 @@ func GetServiceForExperiment(experiment *v1alpha1.Experiment, svc *corev1.Servic return nil } -func (ec *experimentContext) CreateService(serviceName string, template v1alpha1.TemplateSpec) (*corev1.Service, error) { +func (ec *experimentContext) CreateService(serviceName string, template v1alpha1.TemplateSpec, selector map[string]string, ports []corev1.ServicePort) (*corev1.Service, error) { ctx := context.TODO() serviceAnnotations := newServiceAnnotations(ec.ex.Name, template.Name) newService := &corev1.Service{ @@ -71,7 +71,10 @@ func (ec *experimentContext) CreateService(serviceName string, template v1alpha1 }, Annotations: serviceAnnotations, }, - Spec: template.Service.ServiceSpec, + Spec: corev1.ServiceSpec{ + Selector: selector, + Ports: ports, + }, } service, err := ec.kubeclientset.CoreV1().Services(ec.ex.Namespace).Create(ctx, newService, metav1.CreateOptions{}) diff --git a/manifests/crds/experiment-crd.yaml b/manifests/crds/experiment-crd.yaml index 28e9401070..7af9a81d52 100644 --- a/manifests/crds/experiment-crd.yaml +++ b/manifests/crds/experiment-crd.yaml @@ -149,95 +149,6 @@ spec: type: object type: object service: - properties: - allocateLoadBalancerNodePorts: - type: boolean - clusterIP: - type: string - clusterIPs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - externalIPs: - items: - type: string - type: array - externalName: - type: string - externalTrafficPolicy: - type: string - healthCheckNodePort: - format: int32 - type: integer - internalTrafficPolicy: - type: string - ipFamilies: - items: - type: string - type: array - x-kubernetes-list-type: atomic - ipFamilyPolicy: - type: string - loadBalancerClass: - type: string - loadBalancerIP: - type: string - loadBalancerSourceRanges: - items: - type: string - type: array - name: - type: string - ports: - items: - properties: - appProtocol: - type: string - name: - type: string - nodePort: - format: int32 - type: integer - port: - format: int32 - type: integer - protocol: - default: TCP - type: string - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: array - x-kubernetes-list-map-keys: - - port - - protocol - x-kubernetes-list-type: map - publishNotReadyAddresses: - type: boolean - selector: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: atomic - sessionAffinity: - type: string - sessionAffinityConfig: - properties: - clientIP: - properties: - timeoutSeconds: - format: int32 - type: integer - type: object - type: object - type: - type: string type: object template: properties: diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index 2cff8cde93..c226789cf2 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -561,97 +561,6 @@ spec: type: string type: object type: object - service: - properties: - allocateLoadBalancerNodePorts: - type: boolean - clusterIP: - type: string - clusterIPs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - externalIPs: - items: - type: string - type: array - externalName: - type: string - externalTrafficPolicy: - type: string - healthCheckNodePort: - format: int32 - type: integer - internalTrafficPolicy: - type: string - ipFamilies: - items: - type: string - type: array - x-kubernetes-list-type: atomic - ipFamilyPolicy: - type: string - loadBalancerClass: - type: string - loadBalancerIP: - type: string - loadBalancerSourceRanges: - items: - type: string - type: array - name: - type: string - ports: - items: - properties: - appProtocol: - type: string - name: - type: string - nodePort: - format: int32 - type: integer - port: - format: int32 - type: integer - protocol: - default: TCP - type: string - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: array - x-kubernetes-list-map-keys: - - port - - protocol - x-kubernetes-list-type: map - publishNotReadyAddresses: - type: boolean - selector: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: atomic - sessionAffinity: - type: string - sessionAffinityConfig: - properties: - clientIP: - properties: - timeoutSeconds: - format: int32 - type: integer - type: object - type: object - type: - type: string - type: object specRef: type: string weight: diff --git a/manifests/install.yaml b/manifests/install.yaml index 49a976435e..04475b6a8a 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -8557,95 +8557,6 @@ spec: type: object type: object service: - properties: - allocateLoadBalancerNodePorts: - type: boolean - clusterIP: - type: string - clusterIPs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - externalIPs: - items: - type: string - type: array - externalName: - type: string - externalTrafficPolicy: - type: string - healthCheckNodePort: - format: int32 - type: integer - internalTrafficPolicy: - type: string - ipFamilies: - items: - type: string - type: array - x-kubernetes-list-type: atomic - ipFamilyPolicy: - type: string - loadBalancerClass: - type: string - loadBalancerIP: - type: string - loadBalancerSourceRanges: - items: - type: string - type: array - name: - type: string - ports: - items: - properties: - appProtocol: - type: string - name: - type: string - nodePort: - format: int32 - type: integer - port: - format: int32 - type: integer - protocol: - default: TCP - type: string - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: array - x-kubernetes-list-map-keys: - - port - - protocol - x-kubernetes-list-type: map - publishNotReadyAddresses: - type: boolean - selector: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: atomic - sessionAffinity: - type: string - sessionAffinityConfig: - properties: - clientIP: - properties: - timeoutSeconds: - format: int32 - type: integer - type: object - type: object - type: - type: string type: object template: properties: @@ -11660,97 +11571,6 @@ spec: type: string type: object type: object - service: - properties: - allocateLoadBalancerNodePorts: - type: boolean - clusterIP: - type: string - clusterIPs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - externalIPs: - items: - type: string - type: array - externalName: - type: string - externalTrafficPolicy: - type: string - healthCheckNodePort: - format: int32 - type: integer - internalTrafficPolicy: - type: string - ipFamilies: - items: - type: string - type: array - x-kubernetes-list-type: atomic - ipFamilyPolicy: - type: string - loadBalancerClass: - type: string - loadBalancerIP: - type: string - loadBalancerSourceRanges: - items: - type: string - type: array - name: - type: string - ports: - items: - properties: - appProtocol: - type: string - name: - type: string - nodePort: - format: int32 - type: integer - port: - format: int32 - type: integer - protocol: - default: TCP - type: string - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: array - x-kubernetes-list-map-keys: - - port - - protocol - x-kubernetes-list-type: map - publishNotReadyAddresses: - type: boolean - selector: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: atomic - sessionAffinity: - type: string - sessionAffinityConfig: - properties: - clientIP: - properties: - timeoutSeconds: - format: int32 - type: integer - type: object - type: object - type: - type: string - type: object specRef: type: string weight: diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index cdbf8e42a9..bfca8940be 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -8557,95 +8557,6 @@ spec: type: object type: object service: - properties: - allocateLoadBalancerNodePorts: - type: boolean - clusterIP: - type: string - clusterIPs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - externalIPs: - items: - type: string - type: array - externalName: - type: string - externalTrafficPolicy: - type: string - healthCheckNodePort: - format: int32 - type: integer - internalTrafficPolicy: - type: string - ipFamilies: - items: - type: string - type: array - x-kubernetes-list-type: atomic - ipFamilyPolicy: - type: string - loadBalancerClass: - type: string - loadBalancerIP: - type: string - loadBalancerSourceRanges: - items: - type: string - type: array - name: - type: string - ports: - items: - properties: - appProtocol: - type: string - name: - type: string - nodePort: - format: int32 - type: integer - port: - format: int32 - type: integer - protocol: - default: TCP - type: string - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: array - x-kubernetes-list-map-keys: - - port - - protocol - x-kubernetes-list-type: map - publishNotReadyAddresses: - type: boolean - selector: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: atomic - sessionAffinity: - type: string - sessionAffinityConfig: - properties: - clientIP: - properties: - timeoutSeconds: - format: int32 - type: integer - type: object - type: object - type: - type: string type: object template: properties: @@ -11660,97 +11571,6 @@ spec: type: string type: object type: object - service: - properties: - allocateLoadBalancerNodePorts: - type: boolean - clusterIP: - type: string - clusterIPs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - externalIPs: - items: - type: string - type: array - externalName: - type: string - externalTrafficPolicy: - type: string - healthCheckNodePort: - format: int32 - type: integer - internalTrafficPolicy: - type: string - ipFamilies: - items: - type: string - type: array - x-kubernetes-list-type: atomic - ipFamilyPolicy: - type: string - loadBalancerClass: - type: string - loadBalancerIP: - type: string - loadBalancerSourceRanges: - items: - type: string - type: array - name: - type: string - ports: - items: - properties: - appProtocol: - type: string - name: - type: string - nodePort: - format: int32 - type: integer - port: - format: int32 - type: integer - protocol: - default: TCP - type: string - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: array - x-kubernetes-list-map-keys: - - port - - protocol - x-kubernetes-list-type: map - publishNotReadyAddresses: - type: boolean - selector: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: atomic - sessionAffinity: - type: string - sessionAffinityConfig: - properties: - clientIP: - properties: - timeoutSeconds: - format: int32 - type: integer - type: object - type: object - type: - type: string - type: object specRef: type: string weight: diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index 1aa480ead8..e7ac9434b8 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -1329,10 +1329,6 @@ "type": "integer", "format": "int32", "title": "Weight sets the percentage of traffic the template's replicas should receive" - }, - "service": { - "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService", - "title": "Service controls the optionally generated service" } }, "title": "RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step" @@ -1729,17 +1725,6 @@ }, "description": "TLSRoute holds the information on the virtual service's TLS/HTTPS routes that are desired to be matched for changing weights." }, - "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "serviceSpec": { - "$ref": "#/definitions/k8s.io.api.core.v1.ServiceSpec" - } - } - }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TraefikTrafficRouting": { "type": "object", "properties": { @@ -2044,17 +2029,6 @@ }, "description": "Represents a cinder volume resource in Openstack.\nA Cinder volume must exist before mounting to a container.\nThe volume must also be in the same region as the kubelet.\nCinder volumes support ownership management and SELinux relabeling." }, - "k8s.io.api.core.v1.ClientIPConfig": { - "type": "object", - "properties": { - "timeoutSeconds": { - "type": "integer", - "format": "int32", - "title": "timeoutSeconds specifies the seconds of ClientIP type session sticky time.\nThe value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\".\nDefault value is 10800(for 3 hours).\n+optional" - } - }, - "description": "ClientIPConfig represents the configurations of Client IP based session affinity." - }, "k8s.io.api.core.v1.ConfigMapEnvSource": { "type": "object", "properties": { @@ -3914,149 +3888,6 @@ }, "description": "ServiceAccountTokenProjection represents a projected service account token\nvolume. This projection can be used to insert a service account token into\nthe pods runtime filesystem for use against APIs (Kubernetes API Server or\notherwise)." }, - "k8s.io.api.core.v1.ServicePort": { - "type": "object", - "properties": { - "name": { - "type": "string", - "title": "The name of this port within the service. This must be a DNS_LABEL.\nAll ports within a ServiceSpec must have unique names. When considering\nthe endpoints for a Service, this must match the 'name' field in the\nEndpointPort.\nOptional if only one ServicePort is defined on this service.\n+optional" - }, - "protocol": { - "type": "string", - "title": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\".\nDefault is TCP.\n+default=\"TCP\"\n+optional" - }, - "appProtocol": { - "type": "string", - "title": "The application protocol for this port.\nThis field follows standard Kubernetes label syntax.\nUn-prefixed names are reserved for IANA standard service names (as per\nRFC-6335 and https://www.iana.org/assignments/service-names).\nNon-standard protocols should use prefixed names such as\nmycompany.com/my-custom-protocol.\n+optional" - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The port that will be exposed by this service." - }, - "targetPort": { - "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", - "title": "Number or name of the port to access on the pods targeted by the service.\nNumber must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\nIf this is a string, it will be looked up as a named port in the\ntarget Pod's container ports. If this is not specified, the value\nof the 'port' field is used (an identity map).\nThis field is ignored for services with clusterIP=None, and should be\nomitted or set equal to the 'port' field.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\n+optional" - }, - "nodePort": { - "type": "integer", - "format": "int32", - "title": "The port on each node on which this service is exposed when type is\nNodePort or LoadBalancer. Usually assigned by the system. If a value is\nspecified, in-range, and not in use it will be used, otherwise the\noperation will fail. If not specified, a port will be allocated if this\nService requires one. If this field is specified when creating a\nService which does not need it, creation will fail. This field will be\nwiped when updating a Service to no longer need it (e.g. changing type\nfrom NodePort to ClusterIP).\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\n+optional" - } - }, - "description": "ServicePort contains information on service's port." - }, - "k8s.io.api.core.v1.ServiceSpec": { - "type": "object", - "properties": { - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/k8s.io.api.core.v1.ServicePort" - }, - "title": "The list of ports that are exposed by this service.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+patchMergeKey=port\n+patchStrategy=merge\n+listType=map\n+listMapKey=port\n+listMapKey=protocol" - }, - "selector": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "title": "Route service traffic to pods with label keys and values matching this\nselector. If empty or not present, the service is assumed to have an\nexternal process managing its endpoints, which Kubernetes will not\nmodify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\nIgnored if type is ExternalName.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/\n+optional\n+mapType=atomic" - }, - "clusterIP": { - "type": "string", - "title": "clusterIP is the IP address of the service and is usually assigned\nrandomly. If an address is specified manually, is in-range (as per\nsystem configuration), and is not in use, it will be allocated to the\nservice; otherwise creation of the service will fail. This field may not\nbe changed through updates unless the type field is also being changed\nto ExternalName (which requires this field to be blank) or the type\nfield is being changed from ExternalName (in which case this field may\noptionally be specified, as describe above). Valid values are \"None\",\nempty string (\"\"), or a valid IP address. Setting this to \"None\" makes a\n\"headless service\" (no virtual IP), which is useful when direct endpoint\nconnections are preferred and proxying is not required. Only applies to\ntypes ClusterIP, NodePort, and LoadBalancer. If this field is specified\nwhen creating a Service of type ExternalName, creation will fail. This\nfield will be wiped when updating a Service to type ExternalName.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+optional" - }, - "clusterIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ClusterIPs is a list of IP addresses assigned to this service, and are\nusually assigned randomly. If an address is specified manually, is\nin-range (as per system configuration), and is not in use, it will be\nallocated to the service; otherwise creation of the service will fail.\nThis field may not be changed through updates unless the type field is\nalso being changed to ExternalName (which requires this field to be\nempty) or the type field is being changed from ExternalName (in which\ncase this field may optionally be specified, as describe above). Valid\nvalues are \"None\", empty string (\"\"), or a valid IP address. Setting\nthis to \"None\" makes a \"headless service\" (no virtual IP), which is\nuseful when direct endpoint connections are preferred and proxying is\nnot required. Only applies to types ClusterIP, NodePort, and\nLoadBalancer. If this field is specified when creating a Service of type\nExternalName, creation will fail. This field will be wiped when updating\na Service to type ExternalName. If this field is not specified, it will\nbe initialized from the clusterIP field. If this field is specified,\nclients must ensure that clusterIPs[0] and clusterIP have the same\nvalue.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order).\nThese IPs must correspond to the values of the ipFamilies field. Both\nclusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+listType=atomic\n+optional" - }, - "type": { - "type": "string", - "title": "type determines how the Service is exposed. Defaults to ClusterIP. Valid\noptions are ExternalName, ClusterIP, NodePort, and LoadBalancer.\n\"ClusterIP\" allocates a cluster-internal IP address for load-balancing\nto endpoints. Endpoints are determined by the selector or if that is not\nspecified, by manual construction of an Endpoints object or\nEndpointSlice objects. If clusterIP is \"None\", no virtual IP is\nallocated and the endpoints are published as a set of endpoints rather\nthan a virtual IP.\n\"NodePort\" builds on ClusterIP and allocates a port on every node which\nroutes to the same endpoints as the clusterIP.\n\"LoadBalancer\" builds on NodePort and creates an external load-balancer\n(if supported in the current cloud) which routes to the same endpoints\nas the clusterIP.\n\"ExternalName\" aliases this service to the specified externalName.\nSeveral other fields do not apply to ExternalName services.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n+optional" - }, - "externalIPs": { - "type": "array", - "items": { - "type": "string" - }, - "title": "externalIPs is a list of IP addresses for which nodes in the cluster\nwill also accept traffic for this service. These IPs are not managed by\nKubernetes. The user is responsible for ensuring that traffic arrives\nat a node with this IP. A common example is external load-balancers\nthat are not part of the Kubernetes system.\n+optional" - }, - "sessionAffinity": { - "type": "string", - "title": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity.\nEnable client IP based session affinity.\nMust be ClientIP or None.\nDefaults to None.\nMore info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n+optional" - }, - "loadBalancerIP": { - "type": "string", - "title": "Only applies to Service Type: LoadBalancer.\nThis feature depends on whether the underlying cloud-provider supports specifying\nthe loadBalancerIP when a load balancer is created.\nThis field will be ignored if the cloud-provider does not support the feature.\nDeprecated: This field was under-specified and its meaning varies across implementations,\nand it cannot support dual-stack.\nAs of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available.\nThis field may be removed in a future API version.\n+optional" - }, - "loadBalancerSourceRanges": { - "type": "array", - "items": { - "type": "string" - }, - "title": "If specified and supported by the platform, this will restrict traffic through the cloud-provider\nload-balancer will be restricted to the specified client IPs. This field will be ignored if the\ncloud-provider does not support the feature.\"\nMore info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\n+optional" - }, - "externalName": { - "type": "string", - "title": "externalName is the external reference that discovery mechanisms will\nreturn as an alias for this service (e.g. a DNS CNAME record). No\nproxying will be involved. Must be a lowercase RFC-1123 hostname\n(https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".\n+optional" - }, - "externalTrafficPolicy": { - "type": "string", - "title": "externalTrafficPolicy denotes if this Service desires to route external\ntraffic to node-local or cluster-wide endpoints. \"Local\" preserves the\nclient source IP and avoids a second hop for LoadBalancer and Nodeport\ntype services, but risks potentially imbalanced traffic spreading.\n\"Cluster\" obscures the client source IP and may cause a second hop to\nanother node, but should have good overall load-spreading.\n+optional" - }, - "healthCheckNodePort": { - "type": "integer", - "format": "int32", - "title": "healthCheckNodePort specifies the healthcheck nodePort for the service.\nThis only applies when type is set to LoadBalancer and\nexternalTrafficPolicy is set to Local. If a value is specified, is\nin-range, and is not in use, it will be used. If not specified, a value\nwill be automatically allocated. External systems (e.g. load-balancers)\ncan use this port to determine if a given node holds endpoints for this\nservice or not. If this field is specified when creating a Service\nwhich does not need it, creation will fail. This field will be wiped\nwhen updating a Service to no longer need it (e.g. changing type).\n+optional" - }, - "publishNotReadyAddresses": { - "type": "boolean", - "title": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this\nService should disregard any indications of ready/not-ready.\nThe primary use case for setting this field is for a StatefulSet's Headless Service to\npropagate SRV DNS records for its Pods for the purpose of peer discovery.\nThe Kubernetes controllers that generate Endpoints and EndpointSlice resources for\nServices interpret this to mean that all endpoints are considered \"ready\" even if the\nPods themselves are not. Agents which consume only Kubernetes generated endpoints\nthrough the Endpoints or EndpointSlice resources can safely assume this behavior.\n+optional" - }, - "sessionAffinityConfig": { - "$ref": "#/definitions/k8s.io.api.core.v1.SessionAffinityConfig", - "title": "sessionAffinityConfig contains the configurations of session affinity.\n+optional" - }, - "ipFamilies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\nservice. This field is usually assigned automatically based on cluster\nconfiguration and the ipFamilyPolicy field. If this field is specified\nmanually, the requested family is available in the cluster,\nand ipFamilyPolicy allows it, it will be used; otherwise creation of\nthe service will fail. This field is conditionally mutable: it allows\nfor adding or removing a secondary IP family, but it does not allow\nchanging the primary IP family of the Service. Valid values are \"IPv4\"\nand \"IPv6\". This field only applies to Services of types ClusterIP,\nNodePort, and LoadBalancer, and does apply to \"headless\" services.\nThis field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in\neither order). These families must correspond to the values of the\nclusterIPs field, if specified. Both clusterIPs and ipFamilies are\ngoverned by the ipFamilyPolicy field.\n+listType=atomic\n+optional" - }, - "ipFamilyPolicy": { - "type": "string", - "title": "IPFamilyPolicy represents the dual-stack-ness requested or required by\nthis Service. If there is no value provided, then this field will be set\nto SingleStack. Services can be \"SingleStack\" (a single IP family),\n\"PreferDualStack\" (two IP families on dual-stack configured clusters or\na single IP family on single-stack clusters), or \"RequireDualStack\"\n(two IP families on dual-stack configured clusters, otherwise fail). The\nipFamilies and clusterIPs fields depend on the value of this field. This\nfield will be wiped when updating a service to type ExternalName.\n+optional" - }, - "allocateLoadBalancerNodePorts": { - "type": "boolean", - "title": "allocateLoadBalancerNodePorts defines if NodePorts will be automatically\nallocated for services with type LoadBalancer. Default is \"true\". It\nmay be set to \"false\" if the cluster load-balancer does not rely on\nNodePorts. If the caller requests specific NodePorts (by specifying a\nvalue), those requests will be respected, regardless of this field.\nThis field may only be set for services with type LoadBalancer and will\nbe cleared if the type is changed to any other type.\n+optional" - }, - "loadBalancerClass": { - "type": "string", - "title": "loadBalancerClass is the class of the load balancer implementation this Service belongs to.\nIf specified, the value of this field must be a label-style identifier, with an optional prefix,\ne.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users.\nThis field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\nbalancer implementation is used, today this is typically done through the cloud provider integration,\nbut should apply for any default implementation. If set, it is assumed that a load balancer\nimplementation is watching for Services with a matching class. Any default load balancer\nimplementation (e.g. cloud providers) should ignore Services that set this field.\nThis field can only be set when creating or updating a Service to type 'LoadBalancer'.\nOnce set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\n+featureGate=LoadBalancerClass\n+optional" - }, - "internalTrafficPolicy": { - "type": "string", - "title": "InternalTrafficPolicy specifies if the cluster internal traffic\nshould be routed to all endpoints or node-local endpoints only.\n\"Cluster\" routes internal traffic to a Service to all endpoints.\n\"Local\" routes traffic to node-local endpoints only, traffic is\ndropped if no node-local endpoints are ready.\nThe default value is \"Cluster\".\n+featureGate=ServiceInternalTrafficPolicy\n+optional" - } - }, - "description": "ServiceSpec describes the attributes that a user creates on a service." - }, - "k8s.io.api.core.v1.SessionAffinityConfig": { - "type": "object", - "properties": { - "clientIP": { - "$ref": "#/definitions/k8s.io.api.core.v1.ClientIPConfig", - "title": "clientIP contains the configurations of Client IP based session affinity.\n+optional" - } - }, - "description": "SessionAffinityConfig represents the configurations of session affinity." - }, "k8s.io.api.core.v1.StorageOSVolumeSource": { "type": "object", "properties": { diff --git a/pkg/apis/rollouts/v1alpha1/experiment_types.go b/pkg/apis/rollouts/v1alpha1/experiment_types.go index a610fabeb6..5fcc27cb7c 100644 --- a/pkg/apis/rollouts/v1alpha1/experiment_types.go +++ b/pkg/apis/rollouts/v1alpha1/experiment_types.go @@ -89,10 +89,7 @@ type TemplateSpec struct { Service *TemplateService `json:"service,omitempty" protobuf:"bytes,6,opt,name=service"` } -type TemplateService struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - corev1.ServiceSpec `json:",inline" protobuf:"bytes,2,opt,name=serviceSpec"` -} +type TemplateService struct{} type TemplateStatusCode string diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index 9e889974ad..1b57b69024 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -3084,485 +3084,483 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 7642 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x6c, 0x23, 0xd7, - 0x75, 0xa8, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x8f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, - 0x38, 0xf0, 0x73, 0xde, 0x73, 0xa4, 0xc4, 0x1f, 0xef, 0x39, 0xb1, 0xe1, 0xf7, 0x48, 0x69, 0xd7, - 0xab, 0xb5, 0xb4, 0xcb, 0xbd, 0xd4, 0xee, 0x26, 0x4e, 0x9c, 0x64, 0x44, 0x5e, 0x51, 0xb3, 0x4b, - 0xce, 0x30, 0x33, 0x43, 0xed, 0xca, 0x31, 0x12, 0xfb, 0x05, 0x76, 0xd3, 0x36, 0x41, 0xdc, 0x26, - 0x41, 0x51, 0x14, 0x2d, 0xd2, 0xc2, 0x40, 0x3f, 0xd2, 0x5f, 0x41, 0x8b, 0xfe, 0x09, 0xd0, 0xa2, - 0xf9, 0x68, 0xfa, 0x23, 0x45, 0x52, 0xa0, 0x4d, 0x52, 0x20, 0x6c, 0xad, 0xf4, 0x4f, 0x8b, 0x16, - 0x41, 0x81, 0x14, 0x45, 0xf6, 0x57, 0x71, 0x3f, 0xe7, 0xce, 0x70, 0x28, 0x91, 0xe2, 0x68, 0x63, - 0xb4, 0xf9, 0x47, 0xde, 0x73, 0xee, 0x39, 0xf7, 0xf3, 0x9c, 0x73, 0xcf, 0x3d, 0xf7, 0x0c, 0xac, - 0x37, 0xec, 0x60, 0xa7, 0xb3, 0xb5, 0x54, 0x73, 0x5b, 0xcb, 0x96, 0xd7, 0x70, 0xdb, 0x9e, 0x7b, - 0x83, 0xfd, 0x78, 0x97, 0xe7, 0x36, 0x9b, 0x6e, 0x27, 0xf0, 0x97, 0xdb, 0x37, 0x1b, 0xcb, 0x56, - 0xdb, 0xf6, 0x97, 0x55, 0xc9, 0xee, 0x7b, 0xac, 0x66, 0x7b, 0xc7, 0x7a, 0xcf, 0x72, 0x83, 0x38, - 0xc4, 0xb3, 0x02, 0x52, 0x5f, 0x6a, 0x7b, 0x6e, 0xe0, 0xa2, 0xa7, 0x43, 0x6a, 0x4b, 0x92, 0x1a, - 0xfb, 0xf1, 0x11, 0x59, 0x77, 0xa9, 0x7d, 0xb3, 0xb1, 0x44, 0xa9, 0x2d, 0xa9, 0x12, 0x49, 0x6d, - 0xf1, 0x5d, 0x5a, 0x5b, 0x1a, 0x6e, 0xc3, 0x5d, 0x66, 0x44, 0xb7, 0x3a, 0xdb, 0xec, 0x1f, 0xfb, - 0xc3, 0x7e, 0x71, 0x66, 0x8b, 0x0f, 0xde, 0x7c, 0xd2, 0x5f, 0xb2, 0x5d, 0xda, 0xb6, 0xe5, 0x2d, - 0x2b, 0xa8, 0xed, 0x2c, 0xef, 0xf6, 0xb4, 0x68, 0xd1, 0xd4, 0x90, 0x6a, 0xae, 0x47, 0x92, 0x70, - 0x1e, 0x0f, 0x71, 0x5a, 0x56, 0x6d, 0xc7, 0x76, 0x88, 0xb7, 0x17, 0xf6, 0xba, 0x45, 0x02, 0x2b, - 0xa9, 0xd6, 0x72, 0xbf, 0x5a, 0x5e, 0xc7, 0x09, 0xec, 0x16, 0xe9, 0xa9, 0xf0, 0xbf, 0x0f, 0xab, - 0xe0, 0xd7, 0x76, 0x48, 0xcb, 0xea, 0xa9, 0xf7, 0x58, 0xbf, 0x7a, 0x9d, 0xc0, 0x6e, 0x2e, 0xdb, - 0x4e, 0xe0, 0x07, 0x5e, 0xbc, 0x92, 0xf9, 0xf5, 0x2c, 0x14, 0x4a, 0xeb, 0xe5, 0x6a, 0x60, 0x05, - 0x1d, 0x1f, 0xbd, 0x66, 0xc0, 0x54, 0xd3, 0xb5, 0xea, 0x65, 0xab, 0x69, 0x39, 0x35, 0xe2, 0x2d, - 0x18, 0x0f, 0x18, 0x0f, 0x4f, 0x3e, 0xba, 0xbe, 0x34, 0xca, 0x7c, 0x2d, 0x95, 0x6e, 0xf9, 0x98, - 0xf8, 0x6e, 0xc7, 0xab, 0x11, 0x4c, 0xb6, 0xcb, 0xf3, 0xdf, 0xea, 0x16, 0xef, 0xd9, 0xef, 0x16, - 0xa7, 0xd6, 0x35, 0x4e, 0x38, 0xc2, 0x17, 0x7d, 0xd1, 0x80, 0xb9, 0x9a, 0xe5, 0x58, 0xde, 0xde, - 0xa6, 0xe5, 0x35, 0x48, 0xf0, 0xac, 0xe7, 0x76, 0xda, 0x0b, 0x99, 0x63, 0x68, 0xcd, 0xbd, 0xa2, - 0x35, 0x73, 0x2b, 0x71, 0x76, 0xb8, 0xb7, 0x05, 0xac, 0x5d, 0x7e, 0x60, 0x6d, 0x35, 0x89, 0xde, - 0xae, 0xec, 0x71, 0xb6, 0xab, 0x1a, 0x67, 0x87, 0x7b, 0x5b, 0x60, 0xbe, 0x9a, 0x85, 0xb9, 0xd2, - 0x7a, 0x79, 0xd3, 0xb3, 0xb6, 0xb7, 0xed, 0x1a, 0x76, 0x3b, 0x81, 0xed, 0x34, 0xd0, 0x3b, 0x61, - 0xc2, 0x76, 0x1a, 0x1e, 0xf1, 0x7d, 0x36, 0x91, 0x85, 0xf2, 0x8c, 0x20, 0x3a, 0xb1, 0xc6, 0x8b, - 0xb1, 0x84, 0xa3, 0x27, 0x60, 0xd2, 0x27, 0xde, 0xae, 0x5d, 0x23, 0x15, 0xd7, 0x0b, 0xd8, 0x48, - 0xe7, 0xca, 0x27, 0x05, 0xfa, 0x64, 0x35, 0x04, 0x61, 0x1d, 0x8f, 0x56, 0xf3, 0x5c, 0x37, 0x10, - 0x70, 0x36, 0x10, 0x85, 0xb0, 0x1a, 0x0e, 0x41, 0x58, 0xc7, 0x43, 0xaf, 0x1b, 0x30, 0xeb, 0x07, - 0x76, 0xed, 0xa6, 0xed, 0x10, 0xdf, 0x5f, 0x71, 0x9d, 0x6d, 0xbb, 0xb1, 0x90, 0x63, 0xa3, 0x78, - 0x69, 0xb4, 0x51, 0xac, 0xc6, 0xa8, 0x96, 0xe7, 0xf7, 0xbb, 0xc5, 0xd9, 0x78, 0x29, 0xee, 0xe1, - 0x8e, 0x56, 0x61, 0xd6, 0x72, 0x1c, 0x37, 0xb0, 0x02, 0xdb, 0x75, 0x2a, 0x1e, 0xd9, 0xb6, 0x6f, - 0x2f, 0x8c, 0xb1, 0xee, 0x2c, 0x88, 0xee, 0xcc, 0x96, 0x62, 0x70, 0xdc, 0x53, 0xc3, 0x5c, 0x85, - 0x85, 0x52, 0x6b, 0xcb, 0xf2, 0x7d, 0xab, 0xee, 0x7a, 0xb1, 0xd9, 0x78, 0x18, 0xf2, 0x2d, 0xab, - 0xdd, 0xb6, 0x9d, 0x06, 0x9d, 0x8e, 0xec, 0xc3, 0x85, 0xf2, 0xd4, 0x7e, 0xb7, 0x98, 0xdf, 0x10, - 0x65, 0x58, 0x41, 0xcd, 0x1f, 0x64, 0x60, 0xb2, 0xe4, 0x58, 0xcd, 0x3d, 0xdf, 0xf6, 0x71, 0xc7, - 0x41, 0x1f, 0x85, 0x3c, 0x95, 0x2e, 0x75, 0x2b, 0xb0, 0xc4, 0x8e, 0x7c, 0xf7, 0x12, 0xdf, 0xec, - 0x4b, 0xfa, 0x66, 0x0f, 0xc7, 0x85, 0x62, 0x2f, 0xed, 0xbe, 0x67, 0xe9, 0xf2, 0xd6, 0x0d, 0x52, - 0x0b, 0x36, 0x48, 0x60, 0x95, 0x91, 0xe8, 0x05, 0x84, 0x65, 0x58, 0x51, 0x45, 0x2e, 0x8c, 0xf9, - 0x6d, 0x52, 0x13, 0x3b, 0x6c, 0x63, 0xc4, 0x95, 0x1c, 0x36, 0xbd, 0xda, 0x26, 0xb5, 0xf2, 0x94, - 0x60, 0x3d, 0x46, 0xff, 0x61, 0xc6, 0x08, 0xdd, 0x82, 0x71, 0x9f, 0xc9, 0x1c, 0xb1, 0x79, 0x2e, - 0xa7, 0xc7, 0x92, 0x91, 0x2d, 0x4f, 0x0b, 0xa6, 0xe3, 0xfc, 0x3f, 0x16, 0xec, 0xcc, 0xbf, 0x33, - 0xe0, 0xa4, 0x86, 0x5d, 0xf2, 0x1a, 0x9d, 0x16, 0x71, 0x02, 0xf4, 0x00, 0x8c, 0x39, 0x56, 0x8b, - 0x88, 0x8d, 0xa2, 0x9a, 0x7c, 0xc9, 0x6a, 0x11, 0xcc, 0x20, 0xe8, 0x41, 0xc8, 0xed, 0x5a, 0xcd, - 0x0e, 0x61, 0x83, 0x54, 0x28, 0x9f, 0x10, 0x28, 0xb9, 0x6b, 0xb4, 0x10, 0x73, 0x18, 0x7a, 0x09, - 0x0a, 0xec, 0xc7, 0x79, 0xcf, 0x6d, 0xa5, 0xd4, 0x35, 0xd1, 0xc2, 0x6b, 0x92, 0x6c, 0xf9, 0xc4, - 0x7e, 0xb7, 0x58, 0x50, 0x7f, 0x71, 0xc8, 0xd0, 0xfc, 0x7b, 0x03, 0x66, 0xb4, 0xce, 0xad, 0xdb, - 0x7e, 0x80, 0x3e, 0xd4, 0xb3, 0x78, 0x96, 0x06, 0x5b, 0x3c, 0xb4, 0x36, 0x5b, 0x3a, 0xb3, 0xa2, - 0xa7, 0x79, 0x59, 0xa2, 0x2d, 0x1c, 0x07, 0x72, 0x76, 0x40, 0x5a, 0xfe, 0x42, 0xe6, 0x81, 0xec, - 0xc3, 0x93, 0x8f, 0xae, 0xa5, 0x36, 0x8d, 0xe1, 0xf8, 0xae, 0x51, 0xfa, 0x98, 0xb3, 0x31, 0xbf, - 0x32, 0x16, 0xe9, 0x21, 0x5d, 0x51, 0xc8, 0x85, 0x89, 0x16, 0x09, 0x3c, 0xbb, 0xc6, 0xf7, 0xd5, - 0xe4, 0xa3, 0xab, 0xa3, 0xb5, 0x62, 0x83, 0x11, 0x0b, 0x85, 0x25, 0xff, 0xef, 0x63, 0xc9, 0x05, - 0xed, 0xc0, 0x98, 0xe5, 0x35, 0x64, 0x9f, 0xcf, 0xa7, 0x33, 0xbf, 0xe1, 0x9a, 0x2b, 0x79, 0x0d, - 0x1f, 0x33, 0x0e, 0x68, 0x19, 0x0a, 0x01, 0xf1, 0x5a, 0xb6, 0x63, 0x05, 0x5c, 0xba, 0xe6, 0xcb, - 0x73, 0x02, 0xad, 0xb0, 0x29, 0x01, 0x38, 0xc4, 0x41, 0x4d, 0x18, 0xaf, 0x7b, 0x7b, 0xb8, 0xe3, - 0x2c, 0x8c, 0xa5, 0x31, 0x14, 0xab, 0x8c, 0x56, 0xb8, 0x99, 0xf8, 0x7f, 0x2c, 0x78, 0xa0, 0x37, - 0x0c, 0x98, 0x6f, 0x11, 0xcb, 0xef, 0x78, 0x84, 0x76, 0x01, 0x93, 0x80, 0x38, 0x54, 0x1a, 0x2e, - 0xe4, 0x18, 0x73, 0x3c, 0xea, 0x3c, 0xf4, 0x52, 0x2e, 0xdf, 0x2f, 0x9a, 0x32, 0x9f, 0x04, 0xc5, - 0x89, 0xad, 0x31, 0x7f, 0x30, 0x06, 0x73, 0x3d, 0x12, 0x02, 0x3d, 0x0e, 0xb9, 0xf6, 0x8e, 0xe5, - 0xcb, 0x2d, 0x7f, 0x56, 0xae, 0xb7, 0x0a, 0x2d, 0xbc, 0xd3, 0x2d, 0x9e, 0x90, 0x55, 0x58, 0x01, - 0xe6, 0xc8, 0x54, 0xa7, 0xb6, 0x88, 0xef, 0x5b, 0x0d, 0x29, 0x07, 0xb4, 0x65, 0xc2, 0x8a, 0xb1, - 0x84, 0xa3, 0x5f, 0x30, 0xe0, 0x04, 0x5f, 0x32, 0x98, 0xf8, 0x9d, 0x66, 0x40, 0x65, 0x1d, 0x1d, - 0x96, 0x8b, 0x69, 0x2c, 0x4f, 0x4e, 0xb2, 0x7c, 0x4a, 0x70, 0x3f, 0xa1, 0x97, 0xfa, 0x38, 0xca, - 0x17, 0x5d, 0x87, 0x82, 0x1f, 0x58, 0x5e, 0x40, 0xea, 0xa5, 0x80, 0x69, 0xb5, 0xc9, 0x47, 0xff, - 0xe7, 0x60, 0x42, 0x60, 0xd3, 0x6e, 0x11, 0x2e, 0x70, 0xaa, 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x97, - 0x00, 0xbc, 0x8e, 0x53, 0xed, 0xb4, 0x5a, 0x96, 0xb7, 0x27, 0x34, 0xf8, 0x85, 0xd1, 0xba, 0x87, - 0x15, 0xbd, 0x50, 0x67, 0x85, 0x65, 0x58, 0xe3, 0x87, 0x5e, 0x31, 0xe0, 0x04, 0x5f, 0x89, 0xb2, - 0x05, 0xe3, 0x29, 0xb7, 0x60, 0x8e, 0x0e, 0xed, 0xaa, 0xce, 0x02, 0x47, 0x39, 0x9a, 0x7f, 0x13, - 0xd5, 0x27, 0xd5, 0x80, 0x5a, 0xd7, 0x8d, 0x3d, 0xf4, 0x41, 0xb8, 0xd7, 0xef, 0xd4, 0x6a, 0xc4, - 0xf7, 0xb7, 0x3b, 0x4d, 0xdc, 0x71, 0x2e, 0xd8, 0x7e, 0xe0, 0x7a, 0x7b, 0xeb, 0x76, 0xcb, 0x0e, - 0xd8, 0x8a, 0xcb, 0x95, 0xcf, 0xec, 0x77, 0x8b, 0xf7, 0x56, 0xfb, 0x21, 0xe1, 0xfe, 0xf5, 0x91, - 0x05, 0xf7, 0x75, 0x9c, 0xfe, 0xe4, 0xb9, 0xf5, 0x56, 0xdc, 0xef, 0x16, 0xef, 0xbb, 0xda, 0x1f, - 0x0d, 0x1f, 0x44, 0xc3, 0xfc, 0x67, 0x03, 0x66, 0x65, 0xbf, 0x36, 0x49, 0xab, 0xdd, 0xa4, 0xd2, - 0xe5, 0xf8, 0x0d, 0x91, 0x20, 0x62, 0x88, 0xe0, 0x74, 0xd4, 0x89, 0x6c, 0x7f, 0x3f, 0x6b, 0xc4, - 0xfc, 0x27, 0x03, 0xe6, 0xe3, 0xc8, 0x77, 0x41, 0x79, 0xfa, 0x51, 0xe5, 0x79, 0x29, 0xdd, 0xde, - 0xf6, 0xd1, 0xa0, 0xaf, 0x8d, 0xf5, 0xf6, 0xf5, 0xbf, 0xba, 0x1a, 0x0d, 0xb5, 0x62, 0xf6, 0x67, - 0xa9, 0x15, 0xc7, 0xde, 0x52, 0x5a, 0xf1, 0xf7, 0xc6, 0x60, 0xaa, 0xe4, 0x04, 0x76, 0x69, 0x7b, - 0xdb, 0x76, 0xec, 0x60, 0x0f, 0x7d, 0x26, 0x03, 0xcb, 0x6d, 0x8f, 0x6c, 0x13, 0xcf, 0x23, 0xf5, - 0xd5, 0x8e, 0x67, 0x3b, 0x8d, 0x6a, 0x6d, 0x87, 0xd4, 0x3b, 0x4d, 0xdb, 0x69, 0xac, 0x35, 0x1c, - 0x57, 0x15, 0x9f, 0xbb, 0x4d, 0x6a, 0x1d, 0xd6, 0x25, 0xbe, 0x29, 0x5a, 0xa3, 0x75, 0xa9, 0x32, - 0x1c, 0xd3, 0xf2, 0x63, 0xfb, 0xdd, 0xe2, 0xf2, 0x90, 0x95, 0xf0, 0xb0, 0x5d, 0x43, 0x9f, 0xce, - 0xc0, 0x92, 0x47, 0x3e, 0xd6, 0xb1, 0x07, 0x1f, 0x0d, 0x2e, 0xb5, 0x9a, 0x23, 0xaa, 0x9f, 0xa1, - 0x78, 0x96, 0x1f, 0xdd, 0xef, 0x16, 0x87, 0xac, 0x83, 0x87, 0xec, 0x97, 0xf9, 0xb5, 0x0c, 0x9c, - 0x2a, 0xb5, 0xdb, 0x1b, 0xc4, 0xdf, 0x89, 0x1d, 0x6a, 0x3f, 0x67, 0xc0, 0xf4, 0xae, 0xed, 0x05, - 0x1d, 0xab, 0x29, 0x9d, 0x00, 0x7c, 0x49, 0x54, 0x47, 0xdc, 0xce, 0x9c, 0xdb, 0xb5, 0x08, 0xe9, - 0x32, 0xda, 0xef, 0x16, 0xa7, 0xa3, 0x65, 0x38, 0xc6, 0x1e, 0xfd, 0x9a, 0x01, 0xb3, 0xa2, 0xe8, - 0x92, 0x5b, 0x27, 0xba, 0xe7, 0xe8, 0x6a, 0x9a, 0x6d, 0x52, 0xc4, 0xb9, 0x8b, 0x21, 0x5e, 0x8a, - 0x7b, 0x1a, 0x61, 0xfe, 0x6b, 0x06, 0x4e, 0xf7, 0xa1, 0x81, 0x7e, 0xd7, 0x80, 0x79, 0xee, 0x6e, - 0xd2, 0x40, 0x98, 0x6c, 0x8b, 0xd1, 0xfc, 0x40, 0xda, 0x2d, 0xc7, 0x74, 0x2f, 0x10, 0xa7, 0x46, - 0xca, 0x0b, 0x54, 0x6c, 0xac, 0x24, 0xb0, 0xc6, 0x89, 0x0d, 0x62, 0x2d, 0xe5, 0x0e, 0xa8, 0x58, - 0x4b, 0x33, 0x77, 0xa5, 0xa5, 0xd5, 0x04, 0xd6, 0x38, 0xb1, 0x41, 0xe6, 0xff, 0x85, 0xfb, 0x0e, - 0x20, 0x77, 0xf8, 0x89, 0xdf, 0x7c, 0x41, 0xad, 0xfa, 0xe8, 0x9a, 0x1b, 0xc0, 0x59, 0x60, 0xc2, - 0xb8, 0xe7, 0x76, 0x02, 0xc2, 0xb5, 0x5b, 0xa1, 0x0c, 0x54, 0x4f, 0x60, 0x56, 0x82, 0x05, 0xc4, - 0xfc, 0x9a, 0x01, 0xf9, 0x21, 0xfc, 0x0f, 0xc5, 0xa8, 0xff, 0xa1, 0xd0, 0xe3, 0x7b, 0x08, 0x7a, - 0x7d, 0x0f, 0xcf, 0x8e, 0x36, 0x1b, 0x83, 0xf8, 0x1c, 0x7e, 0x6c, 0xc0, 0x5c, 0x8f, 0x8f, 0x02, - 0xed, 0xc0, 0x7c, 0xdb, 0xad, 0x4b, 0xfb, 0xe2, 0x82, 0xe5, 0xef, 0x30, 0x98, 0xe8, 0xde, 0xe3, - 0x74, 0x26, 0x2b, 0x09, 0xf0, 0x3b, 0xdd, 0xe2, 0x82, 0x22, 0x12, 0x43, 0xc0, 0x89, 0x14, 0x51, - 0x1b, 0xf2, 0xdb, 0x36, 0x69, 0xd6, 0xc3, 0x25, 0x38, 0xa2, 0x25, 0x71, 0x5e, 0x50, 0xe3, 0xee, - 0x39, 0xf9, 0x0f, 0x2b, 0x2e, 0xe6, 0x15, 0x98, 0x8e, 0x3a, 0x6b, 0x07, 0x98, 0xbc, 0x33, 0x90, - 0xb5, 0x3c, 0x47, 0x4c, 0xdd, 0xa4, 0x40, 0xc8, 0x96, 0xf0, 0x25, 0x4c, 0xcb, 0xcd, 0x9f, 0x8e, - 0xc1, 0x4c, 0xb9, 0xd9, 0x21, 0xcf, 0x7a, 0x84, 0xc8, 0xf3, 0x69, 0x09, 0x66, 0xda, 0x1e, 0xd9, - 0xb5, 0xc9, 0xad, 0x2a, 0x69, 0x92, 0x5a, 0xe0, 0x7a, 0x82, 0xfe, 0x69, 0x51, 0x7d, 0xa6, 0x12, - 0x05, 0xe3, 0x38, 0x3e, 0x7a, 0x06, 0xa6, 0xad, 0x5a, 0x60, 0xef, 0x12, 0x45, 0x81, 0x37, 0xe0, - 0x6d, 0x82, 0xc2, 0x74, 0x29, 0x02, 0xc5, 0x31, 0x6c, 0xf4, 0x21, 0x58, 0xf0, 0x6b, 0x56, 0x93, - 0x5c, 0x6d, 0x0b, 0x56, 0x2b, 0x3b, 0xa4, 0x76, 0xb3, 0xe2, 0xda, 0x4e, 0x20, 0xbc, 0x11, 0x0f, - 0x08, 0x4a, 0x0b, 0xd5, 0x3e, 0x78, 0xb8, 0x2f, 0x05, 0xf4, 0xa7, 0x06, 0x9c, 0x69, 0x7b, 0xa4, - 0xe2, 0xb9, 0x2d, 0x97, 0xaa, 0x99, 0x9e, 0x23, 0xba, 0x38, 0xaa, 0x5e, 0x1b, 0x51, 0x9f, 0xf2, - 0x92, 0x5e, 0x17, 0xe1, 0xdb, 0xf7, 0xbb, 0xc5, 0x33, 0x95, 0x83, 0x1a, 0x80, 0x0f, 0x6e, 0x1f, - 0xfa, 0x73, 0x03, 0xce, 0xb6, 0x5d, 0x3f, 0x38, 0xa0, 0x0b, 0xb9, 0x63, 0xed, 0x82, 0xb9, 0xdf, - 0x2d, 0x9e, 0xad, 0x1c, 0xd8, 0x02, 0x7c, 0x48, 0x0b, 0xcd, 0xfd, 0x49, 0x98, 0xd3, 0xd6, 0x9e, - 0x38, 0xbf, 0x3e, 0x05, 0x27, 0xe4, 0x62, 0x08, 0xd5, 0x7a, 0x21, 0xf4, 0x37, 0x94, 0x74, 0x20, - 0x8e, 0xe2, 0xd2, 0x75, 0xa7, 0x96, 0x22, 0xaf, 0x1d, 0x5b, 0x77, 0x95, 0x08, 0x14, 0xc7, 0xb0, - 0xd1, 0x1a, 0x9c, 0x14, 0x25, 0x98, 0xb4, 0x9b, 0x76, 0xcd, 0x5a, 0x71, 0x3b, 0x62, 0xc9, 0xe5, - 0xca, 0xa7, 0xf7, 0xbb, 0xc5, 0x93, 0x95, 0x5e, 0x30, 0x4e, 0xaa, 0x83, 0xd6, 0x61, 0xde, 0xea, - 0x04, 0xae, 0xea, 0xff, 0x39, 0x87, 0x6a, 0x8a, 0x3a, 0x5b, 0x5a, 0x79, 0xae, 0x52, 0x4a, 0x09, - 0x70, 0x9c, 0x58, 0x0b, 0x55, 0x62, 0xd4, 0xaa, 0xa4, 0xe6, 0x3a, 0x75, 0x3e, 0xcb, 0xb9, 0xd0, - 0x0a, 0x2f, 0x25, 0xe0, 0xe0, 0xc4, 0x9a, 0xa8, 0x09, 0xd3, 0x2d, 0xeb, 0xf6, 0x55, 0xc7, 0xda, - 0xb5, 0xec, 0x26, 0x65, 0x22, 0x7c, 0x18, 0xfd, 0x0f, 0xd6, 0x9d, 0xc0, 0x6e, 0x2e, 0xf1, 0xeb, - 0xbc, 0xa5, 0x35, 0x27, 0xb8, 0xec, 0x55, 0x03, 0x6a, 0xad, 0x71, 0xe3, 0x68, 0x23, 0x42, 0x0b, - 0xc7, 0x68, 0xa3, 0xcb, 0x70, 0x8a, 0x6d, 0xc7, 0x55, 0xf7, 0x96, 0xb3, 0x4a, 0x9a, 0xd6, 0x9e, - 0xec, 0xc0, 0x04, 0xeb, 0xc0, 0xbd, 0xfb, 0xdd, 0xe2, 0xa9, 0x6a, 0x12, 0x02, 0x4e, 0xae, 0x87, - 0x2c, 0xb8, 0x2f, 0x0a, 0xc0, 0x64, 0xd7, 0xf6, 0x6d, 0xd7, 0xe1, 0x9e, 0x88, 0x7c, 0xe8, 0x89, - 0xa8, 0xf6, 0x47, 0xc3, 0x07, 0xd1, 0x40, 0xbf, 0x61, 0xc0, 0x7c, 0xd2, 0x36, 0x5c, 0x28, 0xa4, - 0x71, 0x59, 0x11, 0xdb, 0x5a, 0x7c, 0x45, 0x24, 0x0a, 0x85, 0xc4, 0x46, 0xa0, 0x97, 0x0d, 0x98, - 0xb2, 0xb4, 0x53, 0xd4, 0x02, 0xb0, 0x56, 0x5d, 0x1c, 0xf5, 0x2c, 0x1f, 0x52, 0x2c, 0xcf, 0xee, - 0x77, 0x8b, 0x91, 0x93, 0x1a, 0x8e, 0x70, 0x44, 0xbf, 0x65, 0xc0, 0xa9, 0xc4, 0x3d, 0xbe, 0x30, - 0x79, 0x1c, 0x23, 0xc4, 0x16, 0x49, 0xb2, 0xcc, 0x49, 0x6e, 0x06, 0x7a, 0xdd, 0x50, 0xaa, 0x6c, - 0x43, 0x7a, 0x53, 0xa6, 0x58, 0xd3, 0xae, 0x8c, 0x78, 0x70, 0x0c, 0x0d, 0x02, 0x49, 0xb8, 0x7c, - 0x52, 0xd3, 0x8c, 0xb2, 0x10, 0xc7, 0xd9, 0xa3, 0xcf, 0x1a, 0x52, 0x35, 0xaa, 0x16, 0x9d, 0x38, - 0xae, 0x16, 0xa1, 0x50, 0xd3, 0xaa, 0x06, 0xc5, 0x98, 0xa3, 0x0f, 0xc3, 0xa2, 0xb5, 0xe5, 0x7a, - 0x41, 0xe2, 0xe6, 0x5b, 0x98, 0x66, 0xdb, 0xe8, 0xec, 0x7e, 0xb7, 0xb8, 0x58, 0xea, 0x8b, 0x85, - 0x0f, 0xa0, 0x60, 0xfe, 0x61, 0x0e, 0xa6, 0xb8, 0x91, 0x2f, 0x54, 0xd7, 0x57, 0x0d, 0xb8, 0xbf, - 0xd6, 0xf1, 0x3c, 0xe2, 0x04, 0xd5, 0x80, 0xb4, 0x7b, 0x15, 0x97, 0x71, 0xac, 0x8a, 0xeb, 0x81, - 0xfd, 0x6e, 0xf1, 0xfe, 0x95, 0x03, 0xf8, 0xe3, 0x03, 0x5b, 0x87, 0xfe, 0xca, 0x00, 0x53, 0x20, - 0x94, 0xad, 0xda, 0xcd, 0x86, 0xe7, 0x76, 0x9c, 0x7a, 0x6f, 0x27, 0x32, 0xc7, 0xda, 0x89, 0x87, - 0xf6, 0xbb, 0x45, 0x73, 0xe5, 0xd0, 0x56, 0xe0, 0x01, 0x5a, 0x8a, 0x9e, 0x85, 0x39, 0x81, 0x75, - 0xee, 0x76, 0x9b, 0x78, 0x36, 0x35, 0xa7, 0xc5, 0x7d, 0x7a, 0x18, 0xa2, 0x10, 0x47, 0xc0, 0xbd, - 0x75, 0x90, 0x0f, 0x13, 0xb7, 0x88, 0xdd, 0xd8, 0x09, 0xa4, 0xf9, 0x34, 0x62, 0x5c, 0x82, 0x38, - 0xf0, 0x5f, 0xe7, 0x34, 0xcb, 0x93, 0xfb, 0xdd, 0xe2, 0x84, 0xf8, 0x83, 0x25, 0x27, 0x74, 0x09, - 0xa6, 0xf9, 0x11, 0xac, 0x62, 0x3b, 0x8d, 0x8a, 0xeb, 0xf0, 0xdb, 0xfc, 0x42, 0xf9, 0x21, 0xa9, - 0xf0, 0xab, 0x11, 0xe8, 0x9d, 0x6e, 0x71, 0x4a, 0xfe, 0xde, 0xdc, 0x6b, 0x13, 0x1c, 0xab, 0x6d, - 0x7e, 0x73, 0x1c, 0x40, 0x2e, 0x57, 0xd2, 0x46, 0xff, 0x0b, 0x0a, 0x3e, 0x09, 0x38, 0x57, 0xe1, - 0x3c, 0xe7, 0x77, 0x12, 0xb2, 0x10, 0x87, 0x70, 0x74, 0x13, 0x72, 0x6d, 0xab, 0xe3, 0x13, 0x31, - 0xf9, 0x17, 0x53, 0x99, 0xfc, 0x0a, 0xa5, 0xc8, 0xcf, 0x5c, 0xec, 0x27, 0xe6, 0x3c, 0xd0, 0xa7, - 0x0c, 0x00, 0x12, 0x9d, 0xb0, 0x91, 0x7d, 0x1f, 0x82, 0x65, 0x38, 0xa7, 0x74, 0x0c, 0xca, 0xd3, - 0xfb, 0xdd, 0x22, 0x68, 0x53, 0xaf, 0xb1, 0x45, 0xb7, 0x20, 0x6f, 0x49, 0x99, 0x3f, 0x76, 0x1c, - 0x32, 0x9f, 0x1d, 0x85, 0xd4, 0xa2, 0x55, 0xcc, 0xd0, 0xa7, 0x0d, 0x98, 0xf6, 0x49, 0x20, 0xa6, - 0x8a, 0x4a, 0x1e, 0x61, 0xf0, 0x8e, 0xb8, 0xe8, 0xaa, 0x11, 0x9a, 0x5c, 0x82, 0x46, 0xcb, 0x70, - 0x8c, 0xaf, 0x6c, 0xca, 0x05, 0x62, 0xd5, 0x89, 0xc7, 0x4e, 0xda, 0xc2, 0x92, 0x1a, 0xbd, 0x29, - 0x1a, 0x4d, 0xd5, 0x14, 0xad, 0x0c, 0xc7, 0xf8, 0xca, 0xa6, 0x6c, 0xd8, 0x9e, 0xe7, 0x8a, 0xa6, - 0xe4, 0x53, 0x6a, 0x8a, 0x46, 0x53, 0x35, 0x45, 0x2b, 0xc3, 0x31, 0xbe, 0xe6, 0x5f, 0x4f, 0xc1, - 0xb4, 0xdc, 0x48, 0xa1, 0x65, 0xcf, 0x1d, 0x3b, 0x7d, 0x2c, 0xfb, 0x15, 0x1d, 0x88, 0xa3, 0xb8, - 0xb4, 0x32, 0xdf, 0xaa, 0x51, 0xc3, 0x5e, 0x55, 0xae, 0xea, 0x40, 0x1c, 0xc5, 0x45, 0x2d, 0xc8, - 0xf9, 0x01, 0x69, 0xcb, 0x7b, 0xd0, 0x11, 0xaf, 0xe9, 0x42, 0xf9, 0x10, 0xde, 0x74, 0xd0, 0x7f, - 0x3e, 0xe6, 0x5c, 0x98, 0x6f, 0x32, 0x88, 0xb8, 0x2b, 0xc5, 0xe6, 0x48, 0x67, 0x7f, 0x46, 0x3d, - 0xa1, 0x7c, 0x36, 0xa2, 0x65, 0x38, 0xc6, 0x3e, 0xc1, 0xd8, 0xcf, 0x1d, 0xa3, 0xb1, 0xff, 0x3c, - 0xe4, 0x5b, 0xd6, 0xed, 0x6a, 0xc7, 0x6b, 0x1c, 0xfd, 0x50, 0x21, 0x42, 0x94, 0x38, 0x15, 0xac, - 0xe8, 0xa1, 0x57, 0x0c, 0x4d, 0xe4, 0x4c, 0x30, 0xe2, 0xd7, 0xd3, 0x15, 0x39, 0x4a, 0x57, 0xf6, - 0x15, 0x3e, 0x3d, 0xa6, 0x77, 0xfe, 0xae, 0x9b, 0xde, 0xd4, 0x8c, 0xe4, 0x1b, 0x44, 0x99, 0x91, - 0x85, 0x63, 0x35, 0x23, 0x57, 0x22, 0xcc, 0x70, 0x8c, 0x39, 0x6b, 0x0f, 0xdf, 0x73, 0xaa, 0x3d, - 0x70, 0xac, 0xed, 0xa9, 0x46, 0x98, 0xe1, 0x18, 0xf3, 0xfe, 0xe7, 0xcd, 0xc9, 0xe3, 0x39, 0x6f, - 0x4e, 0xa5, 0x70, 0xde, 0x3c, 0xd8, 0x14, 0x3f, 0x31, 0xaa, 0x29, 0x8e, 0x2e, 0x02, 0xaa, 0xef, - 0x39, 0x56, 0xcb, 0xae, 0x09, 0x61, 0xc9, 0xd4, 0xe6, 0x34, 0xf3, 0x47, 0x2c, 0x0a, 0x41, 0x86, - 0x56, 0x7b, 0x30, 0x70, 0x42, 0x2d, 0x14, 0x40, 0xbe, 0x2d, 0x2d, 0xae, 0x99, 0x34, 0x56, 0xbf, - 0xb4, 0xc0, 0xf8, 0x55, 0x39, 0xdd, 0x78, 0xb2, 0x04, 0x2b, 0x4e, 0xe6, 0xbf, 0x1b, 0x30, 0xbb, - 0xd2, 0x74, 0x3b, 0xf5, 0xeb, 0x56, 0x50, 0xdb, 0xe1, 0xf7, 0xba, 0xe8, 0x19, 0xc8, 0xdb, 0x4e, - 0x40, 0xbc, 0x5d, 0xab, 0x29, 0x34, 0x8a, 0x29, 0xaf, 0xbe, 0xd7, 0x44, 0xf9, 0x9d, 0x6e, 0x71, - 0x7a, 0xb5, 0xe3, 0xb1, 0x80, 0x49, 0x2e, 0x5f, 0xb0, 0xaa, 0x83, 0xbe, 0x64, 0xc0, 0x1c, 0xbf, - 0x19, 0x5e, 0xb5, 0x02, 0xeb, 0x4a, 0x87, 0x78, 0x36, 0x91, 0x77, 0xc3, 0x23, 0x8a, 0x96, 0x78, - 0x5b, 0x25, 0x83, 0xbd, 0xd0, 0xb4, 0xde, 0x88, 0x73, 0xc6, 0xbd, 0x8d, 0x31, 0x3f, 0x9f, 0x85, - 0x7b, 0xfb, 0xd2, 0x42, 0x8b, 0x90, 0xb1, 0xeb, 0xa2, 0xeb, 0x20, 0xe8, 0x66, 0xd6, 0xea, 0x38, - 0x63, 0xd7, 0xd1, 0x12, 0xb3, 0x12, 0x3d, 0xe2, 0xfb, 0xf2, 0x9a, 0xb0, 0xa0, 0x0c, 0x3a, 0x51, - 0x8a, 0x35, 0x0c, 0x54, 0x84, 0x5c, 0xd3, 0xda, 0x22, 0x4d, 0x71, 0x02, 0x60, 0x76, 0xe7, 0x3a, - 0x2d, 0xc0, 0xbc, 0x1c, 0xfd, 0x7f, 0x03, 0x80, 0x37, 0x90, 0x9e, 0x1f, 0x84, 0x5e, 0xc3, 0xe9, - 0x0e, 0x13, 0xa5, 0xcc, 0x5b, 0x19, 0xfe, 0xc7, 0x1a, 0x57, 0xb4, 0x09, 0xe3, 0xd4, 0x04, 0x75, - 0xeb, 0x47, 0x56, 0x63, 0xec, 0x5a, 0xa4, 0xc2, 0x68, 0x60, 0x41, 0x8b, 0x8e, 0x95, 0x47, 0x82, - 0x8e, 0xe7, 0xd0, 0xa1, 0x65, 0x8a, 0x2b, 0xcf, 0x5b, 0x81, 0x55, 0x29, 0xd6, 0x30, 0xcc, 0x3f, - 0xc9, 0xc0, 0x7c, 0x52, 0xd3, 0xa9, 0x7e, 0x18, 0xe7, 0xad, 0x15, 0x87, 0xd9, 0xf7, 0xa7, 0x3f, - 0x3e, 0x22, 0xc8, 0x41, 0x85, 0x02, 0x88, 0x30, 0x2c, 0xc1, 0x17, 0xbd, 0x5f, 0x8d, 0x50, 0xe6, - 0x88, 0x23, 0xa4, 0x28, 0xc7, 0x46, 0xe9, 0x01, 0x18, 0xf3, 0xe9, 0xcc, 0x67, 0xa3, 0x57, 0x0e, - 0x6c, 0x8e, 0x18, 0x84, 0x62, 0x74, 0x1c, 0x3b, 0x10, 0x51, 0xcc, 0x0a, 0xe3, 0xaa, 0x63, 0x07, - 0x98, 0x41, 0xcc, 0x2f, 0x66, 0x60, 0xb1, 0x7f, 0xa7, 0xd0, 0x17, 0x0d, 0x80, 0x3a, 0x3d, 0x60, - 0xd0, 0x25, 0x29, 0x83, 0x42, 0xac, 0xe3, 0x1a, 0xc3, 0x55, 0xc9, 0x29, 0x8c, 0x10, 0x52, 0x45, - 0x3e, 0xd6, 0x1a, 0x82, 0x1e, 0x95, 0x4b, 0xff, 0x92, 0xd5, 0x92, 0x06, 0xa8, 0xaa, 0xb3, 0xa1, - 0x20, 0x58, 0xc3, 0xa2, 0x27, 0x48, 0xc7, 0x6a, 0x11, 0xbf, 0x6d, 0xa9, 0x30, 0x75, 0x76, 0x82, - 0xbc, 0x24, 0x0b, 0x71, 0x08, 0x37, 0x9b, 0xf0, 0xe0, 0x00, 0xed, 0x4c, 0x29, 0x64, 0xd8, 0xfc, - 0x37, 0x03, 0x4e, 0xaf, 0x34, 0x3b, 0x7e, 0x40, 0xbc, 0xff, 0x36, 0x01, 0x57, 0xff, 0x61, 0xc0, - 0x7d, 0x7d, 0xfa, 0x7c, 0x17, 0xe2, 0xae, 0x5e, 0x8c, 0xc6, 0x5d, 0x5d, 0x1d, 0x75, 0x49, 0x27, - 0xf6, 0xa3, 0x4f, 0xf8, 0x55, 0x00, 0x27, 0xa8, 0xd4, 0xaa, 0xbb, 0x8d, 0x94, 0xf4, 0xe6, 0x83, - 0x90, 0xfb, 0x18, 0xd5, 0x3f, 0xf1, 0x35, 0xc6, 0x94, 0x12, 0xe6, 0x30, 0xf3, 0x69, 0x10, 0x41, - 0x4a, 0xb1, 0xcd, 0x63, 0x0c, 0xb2, 0x79, 0xcc, 0xbf, 0xcd, 0x80, 0xe6, 0x79, 0xb8, 0x0b, 0x8b, - 0xd2, 0x89, 0x2c, 0xca, 0x11, 0x4f, 0xcd, 0x9a, 0x1f, 0xa5, 0xdf, 0x6b, 0x84, 0xdd, 0xd8, 0x6b, - 0x84, 0x4b, 0xa9, 0x71, 0x3c, 0xf8, 0x31, 0xc2, 0xf7, 0x0c, 0xb8, 0x2f, 0x44, 0xee, 0x75, 0x0a, - 0x1e, 0x2e, 0x61, 0x9e, 0x80, 0x49, 0x2b, 0xac, 0x26, 0xd6, 0x80, 0x7a, 0x80, 0xa3, 0x51, 0xc4, - 0x3a, 0x5e, 0x18, 0xfb, 0x9c, 0x3d, 0x62, 0xec, 0xf3, 0xd8, 0xc1, 0xb1, 0xcf, 0xe6, 0x4f, 0x32, - 0x70, 0xa6, 0xb7, 0x67, 0x72, 0x6f, 0x0c, 0x76, 0x67, 0xfe, 0x24, 0x4c, 0x05, 0xa2, 0x82, 0x26, - 0xe9, 0xd5, 0xf3, 0xb1, 0x4d, 0x0d, 0x86, 0x23, 0x98, 0xb4, 0x66, 0x8d, 0xef, 0xca, 0x6a, 0xcd, - 0x6d, 0xcb, 0xc8, 0x79, 0x55, 0x73, 0x45, 0x83, 0xe1, 0x08, 0xa6, 0x8a, 0x49, 0x1c, 0x3b, 0xf6, - 0x98, 0xc4, 0x2a, 0x9c, 0x92, 0x51, 0x58, 0xe7, 0x5d, 0x6f, 0xc5, 0x6d, 0xb5, 0x9b, 0x44, 0xc4, - 0xce, 0xd3, 0xc6, 0x9e, 0x11, 0x55, 0x4e, 0xe1, 0x24, 0x24, 0x9c, 0x5c, 0xd7, 0xfc, 0x5e, 0x16, - 0x4e, 0x86, 0xc3, 0xbe, 0xe2, 0x3a, 0x75, 0x9b, 0xc5, 0xb2, 0x3d, 0x05, 0x63, 0xc1, 0x5e, 0x5b, - 0x0e, 0xf6, 0xff, 0x90, 0xcd, 0xd9, 0xdc, 0x6b, 0xd3, 0xd9, 0x3e, 0x9d, 0x50, 0x85, 0xb9, 0x65, - 0x59, 0x25, 0xb4, 0xae, 0x76, 0x07, 0x9f, 0x81, 0xc7, 0xa3, 0xab, 0xf9, 0x4e, 0xb7, 0x98, 0xf0, - 0x7a, 0x72, 0x49, 0x51, 0x8a, 0xae, 0x79, 0x74, 0x03, 0xa6, 0x9b, 0x96, 0x1f, 0x5c, 0x6d, 0xd7, - 0xad, 0x80, 0x6c, 0xda, 0x2d, 0x22, 0xf6, 0xdc, 0x30, 0x01, 0xe9, 0xea, 0x1e, 0x79, 0x3d, 0x42, - 0x09, 0xc7, 0x28, 0xa3, 0x5d, 0x40, 0xb4, 0x64, 0xd3, 0xb3, 0x1c, 0x9f, 0xf7, 0x8a, 0xf2, 0x1b, - 0x3e, 0x00, 0x5e, 0x1d, 0xcb, 0xd6, 0x7b, 0xa8, 0xe1, 0x04, 0x0e, 0xe8, 0x21, 0x18, 0xf7, 0x88, - 0xe5, 0x8b, 0xc9, 0x2c, 0x84, 0xfb, 0x1f, 0xb3, 0x52, 0x2c, 0xa0, 0xfa, 0x86, 0x1a, 0x3f, 0x64, - 0x43, 0xfd, 0xd0, 0x80, 0xe9, 0x70, 0x9a, 0xee, 0x82, 0x92, 0x6c, 0x45, 0x95, 0xe4, 0x85, 0xb4, - 0x44, 0x62, 0x1f, 0xbd, 0xf8, 0x17, 0xe3, 0x7a, 0xff, 0x58, 0x40, 0xf2, 0xc7, 0xa1, 0x20, 0x77, - 0xb5, 0xb4, 0x3e, 0x47, 0x3c, 0xdd, 0x46, 0xec, 0x12, 0xed, 0x21, 0x8d, 0x60, 0x82, 0x43, 0x7e, - 0x54, 0x2d, 0xd7, 0x85, 0xca, 0x15, 0xcb, 0x5e, 0xa9, 0x65, 0xa9, 0x8a, 0x93, 0xd4, 0xb2, 0xac, - 0x83, 0xae, 0xc2, 0xe9, 0xb6, 0xe7, 0xb2, 0xc7, 0x95, 0xab, 0xc4, 0xaa, 0x37, 0x6d, 0x87, 0x48, - 0x17, 0x02, 0x0f, 0x63, 0xb8, 0x6f, 0xbf, 0x5b, 0x3c, 0x5d, 0x49, 0x46, 0xc1, 0xfd, 0xea, 0x46, - 0x1f, 0x04, 0x8d, 0x0d, 0xf0, 0x20, 0xe8, 0x17, 0x95, 0xa3, 0x8e, 0xf8, 0xe2, 0x59, 0xce, 0x07, - 0xd3, 0x9a, 0xca, 0x04, 0xb1, 0x1e, 0x2e, 0xa9, 0x92, 0x60, 0x8a, 0x15, 0xfb, 0xfe, 0xde, 0xa0, - 0xf1, 0x23, 0x7a, 0x83, 0xc2, 0xb8, 0xee, 0x89, 0x9f, 0x65, 0x5c, 0x77, 0xfe, 0x2d, 0x15, 0xd7, - 0xfd, 0x6a, 0x0e, 0x66, 0xe3, 0x16, 0xc8, 0xf1, 0x3f, 0x76, 0xfa, 0x55, 0x03, 0x66, 0xe5, 0xee, - 0xe1, 0x3c, 0x89, 0xf4, 0xf3, 0xaf, 0xa7, 0xb4, 0x69, 0xb9, 0x2d, 0xa5, 0x9e, 0xe3, 0x6e, 0xc6, - 0xb8, 0xe1, 0x1e, 0xfe, 0xe8, 0x05, 0x98, 0x54, 0xee, 0xf0, 0x23, 0xbd, 0x7c, 0x9a, 0x61, 0x56, - 0x54, 0x48, 0x02, 0xeb, 0xf4, 0xd0, 0xab, 0x06, 0x40, 0x4d, 0xaa, 0x39, 0xb9, 0xbb, 0xae, 0xa4, - 0xb5, 0xbb, 0x94, 0x02, 0x0d, 0x8d, 0x65, 0x55, 0xe4, 0x63, 0x8d, 0x31, 0xfa, 0x3c, 0x73, 0x84, - 0x2b, 0xeb, 0x8e, 0xee, 0xa7, 0xec, 0xe8, 0xa1, 0xb8, 0x07, 0x18, 0xa6, 0xa1, 0x29, 0xa5, 0x81, - 0x7c, 0x1c, 0x69, 0x84, 0xf9, 0x14, 0xa8, 0xe0, 0x49, 0x2a, 0xb6, 0x58, 0xf8, 0x64, 0xc5, 0x0a, - 0x76, 0xc4, 0x12, 0x54, 0x62, 0xeb, 0xbc, 0x04, 0xe0, 0x10, 0xc7, 0xfc, 0x28, 0x4c, 0x3f, 0xeb, - 0x59, 0xed, 0x1d, 0x9b, 0x39, 0x9c, 0xe9, 0x39, 0xe9, 0x9d, 0x30, 0x61, 0xd5, 0xeb, 0x49, 0x8f, - 0xd9, 0x4b, 0xbc, 0x18, 0x4b, 0xf8, 0x60, 0x47, 0xa2, 0x6f, 0x1a, 0x80, 0xc2, 0x4b, 0x3b, 0xdb, - 0x69, 0x6c, 0xd0, 0xd3, 0x3e, 0x3d, 0x1f, 0xed, 0xb0, 0xd2, 0xa4, 0xf3, 0xd1, 0x05, 0x05, 0xc1, - 0x1a, 0x16, 0x7a, 0x09, 0x26, 0xf9, 0xbf, 0x6b, 0xea, 0xb0, 0x3f, 0xf2, 0x53, 0x58, 0xae, 0x50, - 0x58, 0x9b, 0xf8, 0x2a, 0xbc, 0x10, 0x72, 0xc0, 0x3a, 0x3b, 0x3a, 0x54, 0x6b, 0xce, 0x76, 0xb3, - 0x73, 0xbb, 0xbe, 0x15, 0x0e, 0x55, 0xdb, 0x73, 0xb7, 0xed, 0x26, 0x89, 0x0f, 0x55, 0x85, 0x17, - 0x63, 0x09, 0x1f, 0x6c, 0xa8, 0xbe, 0x6e, 0xc0, 0xfc, 0x9a, 0x1f, 0xd8, 0xee, 0x2a, 0xf1, 0x03, - 0xaa, 0x56, 0xa8, 0xf0, 0xe9, 0x34, 0x07, 0x89, 0x83, 0x5e, 0x85, 0x59, 0x71, 0x81, 0xd8, 0xd9, - 0xf2, 0x49, 0xa0, 0xd9, 0xf1, 0x6a, 0x1f, 0xaf, 0xc4, 0xe0, 0xb8, 0xa7, 0x06, 0xa5, 0x22, 0x6e, - 0x12, 0x43, 0x2a, 0xd9, 0x28, 0x95, 0x6a, 0x0c, 0x8e, 0x7b, 0x6a, 0x98, 0xdf, 0xc9, 0xc2, 0x49, - 0xd6, 0x8d, 0xd8, 0x1b, 0x86, 0xcf, 0xf6, 0x7b, 0xc3, 0x30, 0xe2, 0x56, 0x66, 0xbc, 0x8e, 0xf0, - 0x82, 0xe1, 0x57, 0x0c, 0x98, 0xa9, 0x47, 0x47, 0x3a, 0x1d, 0xf7, 0x4c, 0xd2, 0x1c, 0xf2, 0x78, - 0xa9, 0x58, 0x21, 0x8e, 0xf3, 0x47, 0x5f, 0x30, 0x60, 0x26, 0xda, 0x4c, 0x29, 0xdd, 0x8f, 0x61, - 0x90, 0x54, 0x80, 0x73, 0xb4, 0xdc, 0xc7, 0xf1, 0x26, 0x98, 0xdf, 0xce, 0x88, 0x29, 0x3d, 0x8e, - 0x00, 0x7d, 0x74, 0x0b, 0x0a, 0x41, 0xd3, 0xe7, 0x85, 0xa2, 0xb7, 0x23, 0x9e, 0x08, 0x37, 0xd7, - 0xab, 0xfc, 0xee, 0x3e, 0x34, 0xda, 0x44, 0x09, 0x35, 0x3e, 0x25, 0x2f, 0xc6, 0xb8, 0xd6, 0x16, - 0x8c, 0x53, 0x39, 0x8a, 0x6e, 0xae, 0x54, 0xe2, 0x8c, 0x45, 0x09, 0x65, 0x2c, 0x79, 0x99, 0x5f, - 0x36, 0xa0, 0x70, 0xd1, 0x95, 0x72, 0xe4, 0xc3, 0x29, 0x38, 0x7a, 0x94, 0x3d, 0xa8, 0xee, 0x08, - 0xc3, 0x23, 0xc6, 0x33, 0x11, 0x37, 0xcf, 0xfd, 0x1a, 0xed, 0x25, 0x96, 0xa8, 0x87, 0x92, 0xba, - 0xe8, 0x6e, 0xf5, 0xf5, 0x22, 0xfe, 0x4e, 0x0e, 0x4e, 0x3c, 0x67, 0xed, 0x11, 0x27, 0xb0, 0x86, - 0x57, 0x12, 0x4f, 0xc0, 0xa4, 0xd5, 0x66, 0x81, 0xc2, 0x9a, 0x8d, 0x1f, 0x7a, 0x4e, 0x42, 0x10, - 0xd6, 0xf1, 0x42, 0x81, 0xc6, 0xf3, 0x86, 0x24, 0x89, 0xa2, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0x40, - 0x17, 0x01, 0x89, 0x57, 0x90, 0xa5, 0x5a, 0xcd, 0xed, 0x38, 0x5c, 0xa4, 0x71, 0xa7, 0x8a, 0x3a, - 0x6c, 0x6e, 0xf4, 0x60, 0xe0, 0x84, 0x5a, 0xe8, 0x43, 0xb0, 0x50, 0x63, 0x94, 0xc5, 0xd1, 0x43, - 0xa7, 0xc8, 0x8f, 0x9f, 0x2a, 0x48, 0x7f, 0xa5, 0x0f, 0x1e, 0xee, 0x4b, 0x81, 0xb6, 0xd4, 0x0f, - 0x5c, 0xcf, 0x6a, 0x10, 0x9d, 0xee, 0x78, 0xb4, 0xa5, 0xd5, 0x1e, 0x0c, 0x9c, 0x50, 0x0b, 0x7d, - 0x12, 0x0a, 0xc1, 0x8e, 0x47, 0xfc, 0x1d, 0xb7, 0x59, 0x17, 0x41, 0x03, 0x23, 0x7a, 0xda, 0xc4, - 0xec, 0x6f, 0x4a, 0xaa, 0xda, 0xf2, 0x96, 0x45, 0x38, 0xe4, 0x89, 0x3c, 0x18, 0xf7, 0x6b, 0x6e, - 0x9b, 0xf8, 0xc2, 0x64, 0xbf, 0x98, 0x0a, 0x77, 0xe6, 0x39, 0xd2, 0x7c, 0x7c, 0x8c, 0x03, 0x16, - 0x9c, 0xcc, 0x6f, 0x64, 0x60, 0x4a, 0x47, 0x1c, 0x40, 0x36, 0x7d, 0xca, 0x80, 0xa9, 0x9a, 0xeb, - 0x04, 0x9e, 0xdb, 0xe4, 0xfe, 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd4, - 0x5c, 0x61, 0x1a, 0x1b, 0x1c, 0x61, 0x8a, 0x3e, 0x63, 0xc0, 0x4c, 0x18, 0x63, 0x16, 0x3a, 0xd2, - 0x52, 0x6d, 0x88, 0x12, 0xf5, 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x05, 0xb3, 0xf1, 0xd9, - 0xa6, 0x43, 0xd9, 0xb6, 0xc4, 0x5e, 0xcf, 0x86, 0x43, 0x59, 0xb1, 0x7c, 0x1f, 0x33, 0x08, 0x7a, - 0x04, 0xf2, 0x2d, 0xcb, 0x6b, 0xd8, 0x8e, 0xd5, 0x64, 0xa3, 0x98, 0xd5, 0x04, 0x92, 0x28, 0xc7, - 0x0a, 0xc3, 0x7c, 0x37, 0x4c, 0x6d, 0x58, 0x4e, 0x83, 0xd4, 0x85, 0x1c, 0x3e, 0xfc, 0x89, 0xd8, - 0x8f, 0xc6, 0x60, 0x52, 0x3b, 0x9b, 0x1d, 0xff, 0x39, 0x2b, 0x92, 0xca, 0x21, 0x9b, 0x62, 0x2a, - 0x87, 0xe7, 0x01, 0xb6, 0x6d, 0xc7, 0xf6, 0x77, 0x8e, 0x98, 0x24, 0x82, 0x5d, 0xd1, 0x9e, 0x57, - 0x14, 0xb0, 0x46, 0x2d, 0xbc, 0x07, 0xcb, 0x1d, 0x90, 0x3a, 0xe7, 0x55, 0x43, 0x53, 0x37, 0xe3, - 0x69, 0xdc, 0xfb, 0x6b, 0x13, 0xb3, 0x24, 0xd5, 0xcf, 0x39, 0x27, 0xf0, 0xf6, 0x0e, 0xd4, 0x4a, - 0x9b, 0x90, 0xf7, 0x88, 0xdf, 0x69, 0xd1, 0x13, 0xe3, 0xc4, 0xd0, 0xc3, 0xc0, 0x62, 0x26, 0xb0, - 0xa8, 0x8f, 0x15, 0xa5, 0xc5, 0xa7, 0xe0, 0x44, 0xa4, 0x09, 0x68, 0x16, 0xb2, 0x37, 0xc9, 0x1e, - 0x5f, 0x27, 0x98, 0xfe, 0x44, 0xf3, 0x91, 0xdb, 0x42, 0x31, 0x2c, 0xef, 0xcb, 0x3c, 0x69, 0x98, - 0x2e, 0x24, 0x3a, 0x00, 0x8e, 0x72, 0x99, 0x43, 0xe7, 0xa2, 0xa9, 0x65, 0x89, 0x50, 0x73, 0xc1, - 0x23, 0x63, 0x38, 0xcc, 0xfc, 0xc9, 0x38, 0x88, 0xab, 0xec, 0x01, 0xc4, 0x95, 0x7e, 0x83, 0x95, - 0x39, 0xc2, 0x0d, 0xd6, 0x45, 0x98, 0xb2, 0x1d, 0x3b, 0xb0, 0xad, 0x26, 0x73, 0xee, 0x08, 0x75, - 0x2a, 0x43, 0x87, 0xa7, 0xd6, 0x34, 0x58, 0x02, 0x9d, 0x48, 0x5d, 0x74, 0x05, 0x72, 0x4c, 0xdf, - 0x88, 0x05, 0x3c, 0xfc, 0x7d, 0x3b, 0x0b, 0xb5, 0xe0, 0xef, 0x89, 0x38, 0x25, 0x76, 0xf8, 0xe0, - 0x69, 0x32, 0xd4, 0xf1, 0x5b, 0xac, 0xe3, 0xf0, 0xf0, 0x11, 0x83, 0xe3, 0x9e, 0x1a, 0x94, 0xca, - 0xb6, 0x65, 0x37, 0x3b, 0x1e, 0x09, 0xa9, 0x8c, 0x47, 0xa9, 0x9c, 0x8f, 0xc1, 0x71, 0x4f, 0x0d, - 0xb4, 0x0d, 0x53, 0xa2, 0x8c, 0xc7, 0x3b, 0x4d, 0x1c, 0xb1, 0x97, 0x2c, 0xae, 0xed, 0xbc, 0x46, - 0x09, 0x47, 0xe8, 0xa2, 0x0e, 0xcc, 0xd9, 0x4e, 0xcd, 0x75, 0x6a, 0xcd, 0x8e, 0x6f, 0xef, 0x92, - 0xf0, 0x31, 0xcf, 0x51, 0x98, 0x9d, 0xda, 0xef, 0x16, 0xe7, 0xd6, 0xe2, 0xe4, 0x70, 0x2f, 0x07, - 0xf4, 0x8a, 0x01, 0xa7, 0x6a, 0xae, 0xe3, 0xb3, 0x77, 0xe7, 0xbb, 0xe4, 0x9c, 0xe7, 0xb9, 0x1e, - 0xe7, 0x5d, 0x38, 0x22, 0x6f, 0xe6, 0x53, 0x5c, 0x49, 0x22, 0x89, 0x93, 0x39, 0xa1, 0x17, 0x21, - 0xdf, 0xf6, 0xdc, 0x5d, 0xbb, 0x4e, 0x3c, 0x11, 0x3b, 0xb7, 0x9e, 0x46, 0x1e, 0x8c, 0x8a, 0xa0, - 0x19, 0x8a, 0x1e, 0x59, 0x82, 0x15, 0x3f, 0xf3, 0x8d, 0x02, 0x4c, 0x47, 0xd1, 0xd1, 0x27, 0x00, - 0xda, 0x9e, 0xdb, 0x22, 0xc1, 0x0e, 0x51, 0x8f, 0x32, 0x2e, 0x8d, 0x9a, 0x6e, 0x41, 0xd2, 0x93, - 0xd1, 0x2b, 0x54, 0x5c, 0x84, 0xa5, 0x58, 0xe3, 0x88, 0x3c, 0x98, 0xb8, 0xc9, 0xd5, 0xae, 0xb0, - 0x42, 0x9e, 0x4b, 0xc5, 0x66, 0x12, 0x9c, 0xd9, 0x6b, 0x02, 0x51, 0x84, 0x25, 0x23, 0xb4, 0x05, - 0xd9, 0x5b, 0x64, 0x2b, 0x9d, 0x27, 0xcc, 0xd7, 0x89, 0x38, 0xcd, 0x94, 0x27, 0xf6, 0xbb, 0xc5, - 0xec, 0x75, 0xb2, 0x85, 0x29, 0x71, 0xda, 0xaf, 0x3a, 0xbf, 0x87, 0x17, 0xa2, 0x62, 0xc4, 0x7e, - 0x45, 0x2e, 0xf5, 0x79, 0xbf, 0x44, 0x11, 0x96, 0x8c, 0xd0, 0x8b, 0x50, 0xb8, 0x65, 0xed, 0x92, - 0x6d, 0xcf, 0x75, 0x02, 0x11, 0x32, 0x35, 0x62, 0x9c, 0xfe, 0x75, 0x49, 0x4e, 0xf0, 0x65, 0xea, - 0x5d, 0x15, 0xe2, 0x90, 0x1d, 0xda, 0x85, 0xbc, 0x43, 0x6e, 0x61, 0xd2, 0xb4, 0x6b, 0xe9, 0xc4, - 0xc5, 0x5f, 0x12, 0xd4, 0x04, 0x67, 0xa6, 0xf7, 0x64, 0x19, 0x56, 0xbc, 0xe8, 0x5c, 0xde, 0x70, - 0xb7, 0x84, 0xa0, 0x1a, 0x71, 0x2e, 0xd5, 0xc9, 0x94, 0xcf, 0xe5, 0x45, 0x77, 0x0b, 0x53, 0xe2, - 0x74, 0x8f, 0xd4, 0x54, 0xbc, 0x8e, 0x10, 0x53, 0x97, 0xd2, 0x8d, 0x53, 0xe2, 0x7b, 0x24, 0x2c, - 0xc5, 0x1a, 0x47, 0x3a, 0xb6, 0x0d, 0xe1, 0xac, 0x14, 0x82, 0x6a, 0xc4, 0xb1, 0x8d, 0xba, 0x3e, - 0xf9, 0xd8, 0xca, 0x32, 0xac, 0x78, 0x51, 0xbe, 0xb6, 0xf0, 0xfc, 0xa5, 0x23, 0xaa, 0xa2, 0x7e, - 0x44, 0xce, 0x57, 0x96, 0x61, 0xc5, 0xcb, 0xfc, 0xf2, 0x38, 0x4c, 0xe9, 0xf9, 0xc6, 0x06, 0xb0, - 0x11, 0x94, 0x5d, 0x9c, 0x19, 0xc6, 0x2e, 0xa6, 0x07, 0x21, 0xed, 0x8e, 0x43, 0x3a, 0x61, 0xd6, - 0x52, 0x33, 0x0b, 0xc3, 0x83, 0x90, 0x56, 0xe8, 0xe3, 0x08, 0xd3, 0x21, 0xc2, 0x1e, 0xa8, 0x71, - 0xc5, 0xcd, 0x8f, 0x5c, 0xd4, 0xb8, 0x8a, 0x18, 0x14, 0x8f, 0x02, 0x84, 0x79, 0xb7, 0xc4, 0xdd, - 0x97, 0xb2, 0xda, 0xb4, 0x7c, 0x60, 0x1a, 0x16, 0x7a, 0x08, 0xc6, 0xa9, 0x82, 0x26, 0x75, 0xf1, - 0x52, 0x57, 0x9d, 0x36, 0xcf, 0xb3, 0x52, 0x2c, 0xa0, 0xe8, 0x49, 0x6a, 0x4b, 0x85, 0x6a, 0x55, - 0x3c, 0xc0, 0x9d, 0x0f, 0x6d, 0xa9, 0x10, 0x86, 0x23, 0x98, 0xb4, 0xe9, 0x84, 0x6a, 0x41, 0xb6, - 0x82, 0xb5, 0xa6, 0x33, 0xd5, 0x88, 0x39, 0x8c, 0x79, 0x3f, 0x62, 0x5a, 0x93, 0xad, 0xbc, 0x9c, - 0xe6, 0xfd, 0x88, 0xc1, 0x71, 0x4f, 0x0d, 0xda, 0x19, 0x71, 0x6d, 0x37, 0xc9, 0xa3, 0x3b, 0xfb, - 0x5c, 0xb8, 0xbd, 0xa6, 0x9f, 0x08, 0xa6, 0xd8, 0xd4, 0xbf, 0x3f, 0xbd, 0xdc, 0x79, 0x83, 0x1f, - 0x09, 0x46, 0x33, 0xde, 0x3f, 0x0a, 0xd3, 0x51, 0x59, 0x99, 0xba, 0x7f, 0xfe, 0x2f, 0xb3, 0x70, - 0xf2, 0x52, 0xc3, 0x76, 0x6e, 0xc7, 0x1c, 0xdb, 0x49, 0x39, 0x6d, 0x8d, 0x61, 0x73, 0xda, 0x86, - 0x4f, 0x7e, 0x44, 0xd2, 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, - 0xfb, 0xad, 0x3a, 0xb7, 0x5e, 0xad, 0xa6, 0x28, 0x0d, 0x99, 0xca, 0x1d, 0xed, 0x8f, 0xa8, 0x8b, - 0x7a, 0x3b, 0xbf, 0x54, 0x3a, 0x80, 0x2b, 0x9f, 0xf1, 0x77, 0x88, 0x1e, 0xdc, 0x7f, 0x10, 0x2a, - 0x3e, 0xb0, 0xf9, 0x8b, 0x97, 0xe1, 0xed, 0x87, 0x32, 0x1a, 0x6a, 0xb5, 0x7c, 0xca, 0x80, 0x02, - 0x77, 0x9f, 0x62, 0xb2, 0x4d, 0x45, 0x85, 0xd5, 0xb6, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, - 0x03, 0x5e, 0xa9, 0xb2, 0x26, 0x20, 0x58, 0xc3, 0xa2, 0xc2, 0xf8, 0xa6, 0xed, 0xd4, 0xc5, 0x34, - 0x29, 0x61, 0xfc, 0x9c, 0xed, 0xd4, 0x31, 0x83, 0x28, 0x71, 0x9d, 0xed, 0xeb, 0xd6, 0x78, 0xc3, - 0x80, 0x69, 0xf6, 0xce, 0x31, 0x3c, 0x7a, 0x3c, 0xa1, 0x62, 0x5a, 0x78, 0x33, 0xce, 0x44, 0x63, - 0x5a, 0xee, 0x74, 0x8b, 0x93, 0xfc, 0x65, 0x64, 0x34, 0xc4, 0xe5, 0x83, 0xc2, 0x5f, 0xc1, 0x22, - 0x6f, 0x32, 0x43, 0x1f, 0xa7, 0x95, 0x3f, 0xaf, 0x2a, 0x89, 0xe0, 0x90, 0x9e, 0xf9, 0x12, 0x4c, - 0xe9, 0x0f, 0x16, 0xd0, 0x13, 0x30, 0xd9, 0xb6, 0x9d, 0x46, 0xf4, 0x61, 0x9b, 0xf2, 0xe9, 0x56, - 0x42, 0x10, 0xd6, 0xf1, 0x58, 0x35, 0x37, 0xac, 0x16, 0x73, 0x05, 0x57, 0x5c, 0xbd, 0x5a, 0xf8, - 0xc7, 0xfc, 0xa3, 0x2c, 0x9c, 0x4c, 0x78, 0x18, 0x83, 0x5e, 0x35, 0x60, 0x9c, 0x45, 0xe9, 0xcb, - 0xa8, 0x95, 0x17, 0x52, 0x7f, 0x7c, 0xb3, 0xc4, 0x1e, 0x03, 0x88, 0x75, 0xac, 0xc4, 0x27, 0x2f, - 0xc4, 0x82, 0x39, 0xfa, 0x75, 0x03, 0x26, 0x2d, 0x6d, 0xab, 0xf1, 0x40, 0x9e, 0xad, 0xf4, 0x1b, - 0xd3, 0xb3, 0xb3, 0xb4, 0x00, 0xc4, 0x70, 0x23, 0xe9, 0x6d, 0x59, 0x7c, 0x2f, 0x4c, 0x6a, 0x5d, - 0x18, 0x66, 0x87, 0x2c, 0x3e, 0x03, 0xb3, 0x23, 0xed, 0xb0, 0x0f, 0xc0, 0xb0, 0xb9, 0xe3, 0xa8, - 0xc2, 0xba, 0xa5, 0x3f, 0x3e, 0x56, 0x23, 0x2e, 0x5e, 0x1f, 0x0b, 0xa8, 0xb9, 0x05, 0xb3, 0xf1, - 0xc3, 0x55, 0xea, 0xf7, 0xd6, 0xef, 0x86, 0x21, 0xb3, 0xbd, 0x99, 0xdf, 0xce, 0xc0, 0x84, 0x78, - 0x5d, 0x77, 0x17, 0x62, 0x77, 0x6f, 0x46, 0x2e, 0x75, 0xd6, 0x52, 0x79, 0x14, 0xd8, 0x37, 0x70, - 0xd7, 0x8f, 0x05, 0xee, 0x3e, 0x97, 0x0e, 0xbb, 0x83, 0xa3, 0x76, 0xdf, 0x18, 0x83, 0x99, 0xd8, - 0x6b, 0x45, 0x6a, 0xaa, 0xf4, 0x04, 0xab, 0x5d, 0x4d, 0xf5, 0x41, 0xa4, 0x8a, 0x2b, 0x3f, 0x38, - 0x6e, 0xcd, 0x8f, 0x24, 0xd5, 0xbc, 0x92, 0x5a, 0x3e, 0xee, 0x9f, 0xe7, 0xd7, 0x1c, 0x36, 0x0e, - 0xeb, 0x1f, 0x0d, 0xb8, 0xb7, 0xef, 0xa3, 0x56, 0x96, 0x13, 0xc5, 0x8b, 0x42, 0xc5, 0x86, 0x4c, - 0xf9, 0xe9, 0xbe, 0xba, 0x61, 0x89, 0xa7, 0xb1, 0x88, 0xb3, 0x47, 0x8f, 0xc3, 0x14, 0x53, 0xad, - 0x54, 0xa6, 0x04, 0xa4, 0x2d, 0x1c, 0xc4, 0xcc, 0x55, 0x58, 0xd5, 0xca, 0x71, 0x04, 0xcb, 0xfc, - 0x92, 0x01, 0x0b, 0xfd, 0x32, 0x64, 0x0c, 0x70, 0x30, 0xfc, 0x3f, 0xb1, 0xe0, 0xe2, 0x62, 0x4f, - 0x70, 0x71, 0xec, 0x68, 0x28, 0xe3, 0x88, 0xb5, 0x53, 0x59, 0xf6, 0x90, 0xd8, 0xd9, 0xcf, 0x1a, - 0x70, 0xba, 0xcf, 0x6e, 0xea, 0x09, 0x32, 0x37, 0x8e, 0x1c, 0x64, 0x9e, 0x19, 0x34, 0xc8, 0xdc, - 0xfc, 0x6e, 0x16, 0x66, 0x45, 0x7b, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, - 0xda, 0xf3, 0x71, 0xfc, 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, - 0x89, 0x3b, 0xd0, 0xa7, 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, - 0x6a, 0xfe, 0x82, 0x1e, 0x4c, 0xcc, 0x45, 0xfd, 0xf6, 0x31, 0xe4, 0x3a, 0x19, 0x32, 0xae, 0xd8, - 0xfc, 0xa5, 0x2c, 0x3c, 0x3c, 0x28, 0xa1, 0xb7, 0xe8, 0xbb, 0x13, 0x3f, 0xf2, 0xee, 0xe4, 0x2e, - 0xa9, 0xed, 0x63, 0x79, 0x82, 0xf2, 0xdb, 0x63, 0x4a, 0xed, 0xf5, 0xae, 0xcf, 0x81, 0x6e, 0x13, - 0x27, 0xa8, 0x69, 0x27, 0xd3, 0x79, 0x86, 0xa2, 0x70, 0xa2, 0xca, 0x8b, 0xef, 0x74, 0x8b, 0x73, - 0x22, 0xc5, 0x5f, 0x95, 0x04, 0xa2, 0x10, 0xcb, 0x4a, 0xe8, 0x61, 0xc8, 0x7b, 0x1c, 0x2a, 0x23, - 0xed, 0xc5, 0x95, 0x2c, 0x2f, 0xc3, 0x0a, 0x8a, 0x3e, 0xa9, 0xd9, 0xc2, 0x63, 0xc7, 0x95, 0x25, - 0xe1, 0xa0, 0x9b, 0xe6, 0x17, 0x20, 0xef, 0xcb, 0xc4, 0x9c, 0xfc, 0x3a, 0xe0, 0xb1, 0x01, 0x1f, - 0x70, 0xd0, 0xa3, 0x93, 0xcc, 0xd2, 0xc9, 0xfb, 0xa7, 0x72, 0x78, 0x2a, 0x92, 0xc8, 0x54, 0xa7, - 0x16, 0xee, 0x63, 0x84, 0xde, 0x13, 0x0b, 0x0a, 0x60, 0x42, 0x7c, 0xcf, 0x49, 0xb8, 0xe8, 0x37, - 0x52, 0x0a, 0xd6, 0x16, 0xa1, 0x7c, 0xec, 0x22, 0x44, 0x9e, 0x9e, 0x25, 0x2b, 0xf3, 0x7b, 0x06, - 0x4c, 0x8a, 0x35, 0x72, 0x17, 0x5e, 0xb2, 0xdc, 0x88, 0xbe, 0x64, 0x39, 0x97, 0x8a, 0xc4, 0xea, - 0xf3, 0x8c, 0xe5, 0x06, 0x4c, 0xe9, 0x19, 0xa3, 0xd0, 0xf3, 0x9a, 0xc4, 0x35, 0x46, 0xc9, 0xc1, - 0x22, 0x65, 0x72, 0x28, 0x8d, 0xcd, 0xdf, 0xcc, 0xab, 0x51, 0x64, 0xde, 0x0f, 0x7d, 0xe5, 0x1b, - 0x07, 0xae, 0x7c, 0x7d, 0xe1, 0x65, 0xd2, 0x5f, 0x78, 0x57, 0x20, 0x2f, 0xc5, 0xa2, 0x30, 0x1e, - 0x1e, 0xd4, 0x63, 0xfb, 0xa8, 0x05, 0x42, 0x89, 0x69, 0xdb, 0x85, 0x1d, 0xf0, 0xd4, 0x1c, 0x2a, - 0x71, 0xad, 0xc8, 0xa0, 0x17, 0x61, 0xf2, 0x96, 0xeb, 0xdd, 0x6c, 0xba, 0x16, 0x4b, 0xf4, 0x0b, - 0x69, 0x5c, 0x27, 0x29, 0x37, 0x1b, 0x0f, 0xb0, 0xbe, 0x1e, 0xd2, 0xc7, 0x3a, 0x33, 0x54, 0x82, - 0x99, 0x96, 0xed, 0x60, 0x62, 0xd5, 0xd5, 0x83, 0x95, 0x31, 0x9e, 0x89, 0x54, 0x9a, 0xd6, 0x1b, - 0x51, 0x30, 0x8e, 0xe3, 0xa3, 0x8f, 0x43, 0xde, 0x17, 0xf9, 0x97, 0xd2, 0xb9, 0xf8, 0x53, 0x27, - 0x55, 0x4e, 0x34, 0x1c, 0x3b, 0x59, 0x82, 0x15, 0x43, 0xb4, 0x0e, 0xf3, 0x9e, 0xc8, 0x70, 0x12, - 0xf9, 0x4c, 0x08, 0x97, 0x0a, 0x2c, 0xe1, 0x25, 0x4e, 0x80, 0xe3, 0xc4, 0x5a, 0xd4, 0x76, 0x62, - 0xa9, 0xcf, 0xf8, 0x4d, 0x84, 0xe6, 0xbc, 0x67, 0x0b, 0xbe, 0x8e, 0x05, 0xf4, 0xa0, 0x07, 0x50, - 0xf9, 0x11, 0x1e, 0x40, 0x55, 0xe1, 0x54, 0x1c, 0xc4, 0xf2, 0xb0, 0xb0, 0xd4, 0x2f, 0x9a, 0xce, - 0xaa, 0x24, 0x21, 0xe1, 0xe4, 0xba, 0xe8, 0x3a, 0x14, 0x3c, 0xc2, 0x4e, 0x35, 0x25, 0x19, 0x6a, - 0x30, 0x74, 0x50, 0x15, 0x96, 0x04, 0x70, 0x48, 0x8b, 0xce, 0xbb, 0x15, 0x4d, 0xc6, 0x79, 0x25, - 0xc5, 0x0f, 0x9d, 0x89, 0xb9, 0xef, 0x93, 0x1f, 0xc9, 0x7c, 0x73, 0x1a, 0x4e, 0x44, 0x3c, 0x1a, - 0xe8, 0x41, 0xc8, 0xb1, 0xc4, 0x34, 0x4c, 0x3c, 0xe4, 0x43, 0x11, 0xc6, 0x07, 0x87, 0xc3, 0xd0, - 0xe7, 0x0c, 0x98, 0x69, 0x47, 0x7c, 0xbf, 0x52, 0x72, 0x8e, 0x78, 0xbb, 0x18, 0x75, 0x28, 0x6b, - 0x69, 0xac, 0xa3, 0xcc, 0x70, 0x9c, 0x3b, 0xdd, 0x80, 0x22, 0x32, 0xb1, 0x49, 0x3c, 0x86, 0x2d, - 0x2c, 0x2b, 0x45, 0x62, 0x25, 0x0a, 0xc6, 0x71, 0x7c, 0x3a, 0xc3, 0xac, 0x77, 0xa3, 0x7c, 0x01, - 0xa9, 0x24, 0x09, 0xe0, 0x90, 0x16, 0x7a, 0x06, 0xa6, 0x45, 0x0e, 0xc6, 0x8a, 0x5b, 0xbf, 0x60, - 0xf9, 0x3b, 0xe2, 0x48, 0xa1, 0x8e, 0x40, 0x2b, 0x11, 0x28, 0x8e, 0x61, 0xb3, 0xbe, 0x85, 0x89, - 0x2e, 0x19, 0x81, 0xf1, 0x68, 0x96, 0xef, 0x95, 0x28, 0x18, 0xc7, 0xf1, 0xd1, 0x23, 0x9a, 0xdc, - 0xe7, 0xb7, 0x83, 0x4a, 0x1a, 0x24, 0xc8, 0xfe, 0x12, 0xcc, 0x74, 0xd8, 0x09, 0xac, 0x2e, 0x81, - 0x62, 0x3f, 0x2a, 0x86, 0x57, 0xa3, 0x60, 0x1c, 0xc7, 0x47, 0x4f, 0xc1, 0x09, 0x8f, 0x4a, 0x37, - 0x45, 0x80, 0x5f, 0x19, 0xaa, 0x1b, 0x21, 0xac, 0x03, 0x71, 0x14, 0x17, 0x3d, 0x0b, 0x73, 0x61, - 0xca, 0x32, 0x49, 0x80, 0xdf, 0x21, 0xaa, 0x6c, 0x3c, 0xa5, 0x38, 0x02, 0xee, 0xad, 0x83, 0xfe, - 0x1f, 0xcc, 0x6a, 0x23, 0xb1, 0xe6, 0xd4, 0xc9, 0x6d, 0x91, 0x56, 0x8a, 0x7d, 0x90, 0x61, 0x25, - 0x06, 0xc3, 0x3d, 0xd8, 0xe8, 0x7d, 0x30, 0x5d, 0x73, 0x9b, 0x4d, 0x26, 0xe3, 0x78, 0x86, 0x69, - 0x9e, 0x3f, 0x8a, 0x67, 0xda, 0x8a, 0x40, 0x70, 0x0c, 0x13, 0x5d, 0x04, 0xe4, 0x6e, 0x51, 0x7b, - 0x86, 0xd4, 0x9f, 0xe5, 0xdf, 0x54, 0xa5, 0x2a, 0xfe, 0x44, 0x34, 0x2e, 0xfa, 0x72, 0x0f, 0x06, - 0x4e, 0xa8, 0xc5, 0x92, 0xf9, 0x68, 0xef, 0xc8, 0xa6, 0xd3, 0xf8, 0x1a, 0x50, 0xdc, 0x5f, 0x70, - 0xe8, 0x23, 0x32, 0x0f, 0xc6, 0x79, 0x98, 0x7a, 0x3a, 0x89, 0xa4, 0xf4, 0x64, 0xb3, 0xa1, 0x8e, - 0xe0, 0xa5, 0x58, 0x70, 0x42, 0x9f, 0x80, 0xc2, 0x96, 0xcc, 0x3c, 0xbe, 0x30, 0x9b, 0x86, 0x5e, - 0x8c, 0x25, 0xd1, 0x0f, 0xcf, 0xc3, 0x0a, 0x80, 0x43, 0x96, 0xe8, 0x21, 0x98, 0xbc, 0x50, 0x29, - 0xa9, 0x55, 0x38, 0xc7, 0x66, 0x7f, 0x8c, 0x56, 0xc1, 0x3a, 0x80, 0xee, 0x30, 0x65, 0x2f, 0x21, - 0x36, 0xc5, 0xa1, 0xbe, 0xed, 0x35, 0x7f, 0x28, 0x36, 0xbb, 0x04, 0xc5, 0xd5, 0x85, 0x93, 0x31, - 0x6c, 0x51, 0x8e, 0x15, 0x06, 0x7a, 0x01, 0x26, 0x85, 0xbe, 0x60, 0xb2, 0x69, 0xfe, 0x68, 0x6f, - 0x14, 0x71, 0x48, 0x02, 0xeb, 0xf4, 0xd8, 0xdd, 0x16, 0x4b, 0xc8, 0x4c, 0xce, 0x77, 0x9a, 0xcd, - 0x85, 0x53, 0x4c, 0x6e, 0x86, 0x77, 0x5b, 0x21, 0x08, 0xeb, 0x78, 0xe8, 0x31, 0x19, 0xaf, 0xf1, - 0xb6, 0xc8, 0x65, 0x9f, 0x8a, 0xd7, 0x50, 0x56, 0x6e, 0x9f, 0x30, 0xe6, 0xd3, 0x87, 0x04, 0x4a, - 0x6c, 0xc1, 0xa2, 0x34, 0xb1, 0x7a, 0x37, 0xc9, 0xc2, 0x42, 0xc4, 0x37, 0xb1, 0x78, 0xbd, 0x2f, - 0x26, 0x3e, 0x80, 0x0a, 0xda, 0x82, 0xac, 0xd5, 0xdc, 0x5a, 0xb8, 0x37, 0x0d, 0x5b, 0x51, 0x7d, - 0x23, 0x99, 0x87, 0x1e, 0x95, 0xd6, 0xcb, 0x98, 0x12, 0x37, 0x5f, 0xc9, 0xa8, 0xbb, 0x00, 0x95, - 0x60, 0xf3, 0x25, 0x7d, 0x55, 0x1b, 0x69, 0x7c, 0x03, 0xb4, 0x27, 0x3d, 0x3f, 0x57, 0x48, 0x89, - 0x6b, 0xba, 0xad, 0xf6, 0x71, 0x2a, 0xd9, 0x53, 0xa2, 0xc9, 0x43, 0xf9, 0x19, 0x32, 0xba, 0x8b, - 0xcd, 0xfd, 0x09, 0xe5, 0xfa, 0x8a, 0x05, 0x20, 0x78, 0x90, 0xb3, 0xfd, 0xc0, 0x76, 0x53, 0x7c, - 0x4f, 0x17, 0xcb, 0xba, 0xc9, 0xc2, 0x75, 0x19, 0x00, 0x73, 0x56, 0x94, 0xa7, 0xd3, 0xb0, 0x9d, - 0xdb, 0xa2, 0xfb, 0x57, 0x52, 0x8f, 0x2c, 0xe0, 0x3c, 0x19, 0x00, 0x73, 0x56, 0xe8, 0x06, 0x5f, - 0x69, 0xe9, 0x7c, 0xef, 0x35, 0xfe, 0x19, 0xe7, 0xe8, 0x8a, 0xa3, 0xbc, 0xfc, 0x96, 0x2d, 0x6c, - 0x98, 0x11, 0x79, 0x55, 0x37, 0xd6, 0x92, 0x78, 0x55, 0x37, 0xd6, 0x30, 0x65, 0x82, 0x5e, 0x33, - 0x00, 0x2c, 0xf5, 0x3d, 0xe3, 0x74, 0xbe, 0x65, 0xd1, 0xef, 0xfb, 0xc8, 0x3c, 0xc2, 0x2e, 0x84, - 0x62, 0x8d, 0x33, 0x7a, 0x11, 0x26, 0x2c, 0xfe, 0x25, 0x1e, 0x11, 0xbc, 0x98, 0xce, 0xe7, 0xa5, - 0x62, 0x2d, 0x60, 0xce, 0x0a, 0x01, 0xc2, 0x92, 0x21, 0xe5, 0x1d, 0x78, 0x16, 0xd9, 0xb6, 0x6f, - 0x0a, 0x17, 0x49, 0x75, 0xe4, 0x84, 0xda, 0x94, 0x58, 0x12, 0x6f, 0x01, 0xc2, 0x92, 0x21, 0xff, - 0x84, 0xa8, 0xe5, 0x58, 0xea, 0x49, 0x4a, 0x3a, 0x0f, 0x97, 0xf4, 0x47, 0x2e, 0xda, 0x27, 0x44, - 0x75, 0x46, 0x38, 0xca, 0xd7, 0xfc, 0x71, 0x16, 0x80, 0xfd, 0xe4, 0xcf, 0xa4, 0x5b, 0x2c, 0xb5, - 0xde, 0x8e, 0x5b, 0x17, 0x5b, 0x3b, 0xc5, 0xd7, 0xce, 0x20, 0xf2, 0xe8, 0xed, 0xb8, 0x75, 0x2c, - 0x98, 0xa0, 0x06, 0x8c, 0xb5, 0xad, 0x60, 0x27, 0xfd, 0xa7, 0xd5, 0x79, 0xfe, 0x5e, 0x28, 0xd8, - 0xc1, 0x8c, 0x01, 0x7a, 0xd9, 0x80, 0x09, 0xfe, 0xb8, 0x5a, 0x3a, 0xb8, 0x47, 0xbe, 0xc5, 0x95, - 0x63, 0xb6, 0xc4, 0x5f, 0x70, 0x8b, 0x10, 0x09, 0xa5, 0x1a, 0x45, 0x29, 0x96, 0x6c, 0x17, 0x5f, - 0x35, 0x60, 0x4a, 0x47, 0x4d, 0x08, 0x6e, 0xf8, 0x88, 0x1e, 0xdc, 0x90, 0xe6, 0x78, 0xe8, 0x71, - 0x12, 0xff, 0x62, 0x80, 0xf6, 0xe1, 0xd5, 0x30, 0xb4, 0xd1, 0x18, 0x38, 0xb4, 0x31, 0x33, 0x64, - 0x68, 0x63, 0x76, 0xa8, 0xd0, 0xc6, 0xb1, 0xe1, 0x43, 0x1b, 0x73, 0xfd, 0x43, 0x1b, 0xcd, 0xd7, - 0x0d, 0x98, 0xeb, 0x91, 0x87, 0xf1, 0x0f, 0xdc, 0x1b, 0x03, 0x7e, 0xe0, 0x7e, 0x15, 0x66, 0x45, - 0xea, 0xe7, 0x6a, 0xbb, 0x69, 0x27, 0x3e, 0x7b, 0xdf, 0x8c, 0xc1, 0x71, 0x4f, 0x0d, 0xf3, 0xcf, - 0x0c, 0x98, 0xd4, 0x1e, 0xcb, 0xd1, 0x7e, 0xb0, 0x47, 0x85, 0xa2, 0x19, 0x61, 0xd6, 0x6b, 0x76, - 0xa1, 0xc0, 0x61, 0xfc, 0x6e, 0xab, 0xa1, 0xa5, 0x19, 0x0d, 0xef, 0xb6, 0x68, 0x29, 0x16, 0x50, - 0x9e, 0x40, 0x92, 0xb4, 0xd9, 0xa0, 0x67, 0xf5, 0x04, 0x92, 0xa4, 0x8d, 0x19, 0x84, 0xb1, 0xa3, - 0x76, 0xa4, 0x88, 0x7a, 0xd5, 0x92, 0x6c, 0x5b, 0x5e, 0x80, 0x39, 0x0c, 0x9d, 0x81, 0x2c, 0x71, - 0xea, 0xe2, 0xd0, 0xab, 0x3e, 0x6c, 0x75, 0xce, 0xa9, 0x63, 0x5a, 0x6e, 0x5e, 0x86, 0xa9, 0x2a, - 0xa9, 0x79, 0x24, 0x78, 0x8e, 0xec, 0x0d, 0xfc, 0xa5, 0x2c, 0xba, 0xda, 0x63, 0x5f, 0xca, 0xa2, - 0xd5, 0x69, 0xb9, 0xf9, 0x07, 0x06, 0xc4, 0x32, 0xc1, 0x6b, 0x7e, 0x6e, 0xa3, 0xaf, 0x9f, 0x5b, - 0xf7, 0x8d, 0x66, 0x0e, 0xf4, 0x8d, 0x5e, 0x04, 0xd4, 0xa2, 0x5b, 0x21, 0xf2, 0xdd, 0x03, 0xe1, - 0x6f, 0x08, 0x9f, 0xe6, 0xf6, 0x60, 0xe0, 0x84, 0x5a, 0xe6, 0xef, 0xf3, 0xc6, 0xea, 0xb9, 0xe1, - 0x0f, 0x1f, 0x80, 0x0e, 0xe4, 0x18, 0x29, 0xe1, 0x74, 0xa9, 0x8c, 0xb6, 0xb9, 0x7b, 0x53, 0x5c, - 0x84, 0x13, 0x29, 0xb6, 0x3c, 0xe3, 0x66, 0x7e, 0x97, 0xb7, 0x55, 0x4b, 0x1e, 0x3f, 0x40, 0x5b, - 0x5b, 0xd1, 0xb6, 0x5e, 0x48, 0x4b, 0x56, 0x26, 0xb7, 0x11, 0x2d, 0x01, 0xb4, 0x89, 0x57, 0x23, - 0x4e, 0x20, 0x83, 0xb1, 0x73, 0xe2, 0xf1, 0x8a, 0x2a, 0xc5, 0x1a, 0x86, 0xf9, 0xb2, 0x01, 0xb3, - 0xd5, 0xc0, 0xae, 0xdd, 0xb4, 0x1d, 0xfe, 0x18, 0x6b, 0xdb, 0x6e, 0xd0, 0x53, 0x0a, 0x11, 0x1f, - 0x81, 0xe2, 0x6e, 0x30, 0x25, 0x8a, 0xe5, 0xb7, 0x9f, 0x24, 0x1c, 0x95, 0x60, 0x46, 0x7a, 0xdb, - 0xa5, 0xef, 0x92, 0x3f, 0x22, 0x55, 0xbe, 0x92, 0xd5, 0x28, 0x18, 0xc7, 0xf1, 0xcd, 0x4f, 0xc2, - 0xa4, 0x26, 0x5f, 0x99, 0x28, 0xba, 0x6d, 0xd5, 0x82, 0xf8, 0x16, 0x3e, 0x47, 0x0b, 0x31, 0x87, - 0x31, 0x17, 0x2b, 0x8f, 0xd6, 0x8d, 0x6d, 0x61, 0x11, 0xa3, 0x2b, 0xa0, 0x94, 0x98, 0x47, 0x1a, - 0xe4, 0xb6, 0x4c, 0x68, 0x2a, 0x89, 0x61, 0x5a, 0x88, 0x39, 0xcc, 0x7c, 0x04, 0xf2, 0xf2, 0xa9, - 0x3f, 0x7b, 0x2f, 0x2b, 0xdd, 0x7f, 0xfa, 0x7b, 0x59, 0xd7, 0x0b, 0x30, 0x83, 0x98, 0xd7, 0x20, - 0x2f, 0x33, 0x12, 0x1c, 0x8e, 0x4d, 0x77, 0x95, 0xef, 0xd8, 0x17, 0x5c, 0x3f, 0x90, 0x69, 0x14, - 0xf8, 0x95, 0xc0, 0xa5, 0x35, 0x56, 0x86, 0x15, 0xd4, 0xfc, 0x65, 0x03, 0x66, 0x62, 0x77, 0x43, - 0x03, 0x2c, 0xaf, 0x6b, 0x30, 0x29, 0xae, 0x8c, 0xaa, 0x61, 0x48, 0x59, 0x31, 0xe9, 0x2e, 0xa1, - 0x1a, 0xa2, 0x85, 0xe2, 0x59, 0x2b, 0xc4, 0x3a, 0x21, 0xf3, 0x1b, 0x59, 0x98, 0x8a, 0x7c, 0xfb, - 0xf8, 0xf0, 0xa6, 0x0c, 0x2e, 0x40, 0x12, 0xae, 0x0b, 0xb2, 0x43, 0x5e, 0x17, 0xe8, 0xf7, 0x33, - 0x63, 0xc7, 0x7b, 0x3f, 0x93, 0x4b, 0xe7, 0x7e, 0x46, 0xbb, 0x47, 0x1c, 0xbf, 0x7b, 0xf7, 0x88, - 0x5f, 0xcd, 0xc1, 0x74, 0x34, 0x0d, 0xd4, 0x00, 0x33, 0xf9, 0x48, 0xcf, 0x4c, 0x0e, 0xe9, 0x2e, - 0xcd, 0x8e, 0xea, 0x2e, 0x1d, 0x1b, 0xd5, 0x5d, 0x9a, 0x3b, 0x82, 0xbb, 0xb4, 0xd7, 0xd9, 0x39, - 0x3e, 0xb0, 0xb3, 0xf3, 0x69, 0x15, 0x61, 0x34, 0x11, 0xb9, 0x92, 0x0f, 0x23, 0x8c, 0x50, 0x74, - 0x1a, 0x56, 0xdc, 0x7a, 0x62, 0xa4, 0x56, 0xfe, 0x10, 0xb7, 0x90, 0x97, 0x18, 0x10, 0x34, 0xfc, - 0x8d, 0xcc, 0xdb, 0x86, 0x08, 0x06, 0x7a, 0x42, 0x09, 0x19, 0x66, 0xa6, 0x41, 0xd4, 0xc4, 0xab, - 0x86, 0x20, 0xac, 0xe3, 0xb1, 0xcf, 0x73, 0x46, 0xbf, 0x47, 0xca, 0xbc, 0xcf, 0xfa, 0xe7, 0x39, - 0x63, 0xdf, 0x2f, 0x8d, 0xe3, 0x9b, 0x1f, 0x87, 0x53, 0x89, 0x87, 0x41, 0xe6, 0x1d, 0x63, 0x16, - 0x04, 0xa9, 0x0b, 0x04, 0xad, 0x19, 0xb1, 0x2c, 0xc1, 0x8b, 0xd7, 0xfb, 0x62, 0xe2, 0x03, 0xa8, - 0x98, 0x5f, 0xc9, 0xc2, 0x74, 0xf4, 0xdb, 0x4e, 0xe8, 0x96, 0x72, 0x1d, 0xa5, 0xe2, 0xb5, 0xe2, - 0x64, 0xb5, 0xd4, 0x42, 0x7d, 0xfd, 0xc0, 0xb7, 0xd8, 0xfa, 0xda, 0x52, 0x79, 0x8e, 0x8e, 0x8f, - 0xb1, 0x70, 0xc0, 0x0a, 0x76, 0xec, 0xf3, 0x4d, 0xe1, 0xfb, 0x0e, 0x71, 0xe2, 0x4b, 0x9d, 0x7b, - 0xf8, 0x62, 0x43, 0xb1, 0xc2, 0x1a, 0x5b, 0xaa, 0x5b, 0x76, 0x89, 0x67, 0x6f, 0xdb, 0xea, 0xbb, - 0x94, 0x4c, 0x72, 0x5f, 0x13, 0x65, 0x58, 0x41, 0xcd, 0x97, 0x33, 0x10, 0x7e, 0x85, 0x97, 0x7d, - 0x00, 0xc5, 0xd7, 0xac, 0x6b, 0x31, 0x6d, 0x17, 0x47, 0xfd, 0xca, 0x50, 0x48, 0x51, 0x44, 0x7f, - 0x6a, 0x25, 0x38, 0xc2, 0xf1, 0x67, 0xf0, 0xf5, 0x5d, 0x0b, 0x66, 0x62, 0xaf, 0x5e, 0x53, 0x0f, - 0xb1, 0xff, 0x51, 0x16, 0x0a, 0xea, 0xdd, 0x30, 0x7a, 0x6f, 0xc4, 0xd5, 0x51, 0x28, 0xbf, 0x5d, - 0xcb, 0xf5, 0xbf, 0xe3, 0xd6, 0xef, 0x74, 0x8b, 0x33, 0x0a, 0x39, 0xe6, 0xb6, 0x38, 0x03, 0xd9, - 0x8e, 0xd7, 0x8c, 0x9f, 0x65, 0xae, 0xe2, 0x75, 0x4c, 0xcb, 0xd1, 0xed, 0xb8, 0xaf, 0x61, 0x23, - 0xa5, 0xb7, 0xce, 0xdc, 0xe8, 0xef, 0xef, 0x63, 0xa0, 0x5a, 0x72, 0xcb, 0xad, 0xef, 0xc5, 0xbf, - 0x0d, 0x50, 0x76, 0xeb, 0x7b, 0x98, 0x41, 0xd0, 0x33, 0x30, 0x1d, 0xd8, 0x2d, 0xe2, 0x76, 0x02, - 0xfd, 0x1b, 0xa7, 0xd9, 0xf0, 0x5e, 0x73, 0x33, 0x02, 0xc5, 0x31, 0x6c, 0xaa, 0x65, 0x6f, 0xf8, - 0xae, 0xc3, 0x12, 0xfe, 0x8d, 0x47, 0x2f, 0x41, 0x2e, 0x56, 0x2f, 0x5f, 0x62, 0x2e, 0x17, 0x85, - 0x41, 0xb1, 0x6d, 0xf6, 0x48, 0xd0, 0x23, 0x22, 0xac, 0x60, 0x36, 0x4c, 0x21, 0xc1, 0xcb, 0xb1, - 0xc2, 0x40, 0xab, 0x9c, 0x36, 0x6d, 0x2d, 0xd3, 0x28, 0x53, 0xe5, 0x87, 0x25, 0x5d, 0x5a, 0x76, - 0xa7, 0x5b, 0x5c, 0x20, 0x4e, 0xcd, 0xad, 0xdb, 0x4e, 0x63, 0x99, 0x22, 0x2e, 0x61, 0xeb, 0x96, - 0x54, 0x35, 0xaa, 0xa6, 0x79, 0x15, 0x66, 0x62, 0x03, 0x26, 0xcf, 0x9e, 0x46, 0xf2, 0xd9, 0x73, - 0xb0, 0x74, 0xfe, 0x7f, 0x6c, 0xc0, 0x5c, 0x8f, 0x08, 0x18, 0xf4, 0x05, 0x49, 0x5c, 0x19, 0x65, - 0x8e, 0xae, 0x8c, 0xb2, 0xc3, 0x29, 0xa3, 0xf2, 0xd6, 0xb7, 0xde, 0x3c, 0x7b, 0xcf, 0x77, 0xde, - 0x3c, 0x7b, 0xcf, 0xf7, 0xdf, 0x3c, 0x7b, 0xcf, 0xcb, 0xfb, 0x67, 0x8d, 0x6f, 0xed, 0x9f, 0x35, - 0xbe, 0xb3, 0x7f, 0xd6, 0xf8, 0xfe, 0xfe, 0x59, 0xe3, 0x1f, 0xf6, 0xcf, 0x1a, 0xaf, 0xff, 0xe8, - 0xec, 0x3d, 0xcf, 0x3f, 0x1d, 0x2e, 0xd0, 0x65, 0xb9, 0x40, 0xd9, 0x8f, 0x77, 0xc9, 0xe5, 0xb8, - 0xdc, 0xbe, 0xd9, 0x58, 0xa6, 0x0b, 0x74, 0x59, 0x95, 0xc8, 0x05, 0xfa, 0x9f, 0x01, 0x00, 0x00, - 0xff, 0xff, 0xb8, 0x5a, 0x3c, 0xd3, 0x46, 0x94, 0x00, 0x00, + // 7605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xd7, + 0x75, 0xb0, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x9f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, + 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0xea, 0xc4, 0x86, 0x5b, 0x52, 0xda, 0xf5, + 0x6a, 0x2d, 0xed, 0x72, 0x2f, 0xb5, 0xbb, 0x89, 0x13, 0x27, 0x19, 0x91, 0x57, 0xd4, 0xec, 0x92, + 0x33, 0xcc, 0xcc, 0x50, 0xbb, 0x72, 0x8c, 0xc4, 0x6e, 0x60, 0x37, 0x2d, 0x12, 0xc4, 0x6d, 0x12, + 0x14, 0x45, 0xd1, 0x22, 0x28, 0x0c, 0xf4, 0x27, 0x7d, 0x0a, 0x5a, 0xf4, 0x25, 0x40, 0x8b, 0xe6, + 0xa7, 0xe9, 0x43, 0x8a, 0xa4, 0x40, 0x9b, 0xa4, 0x40, 0xd8, 0x5a, 0xe9, 0x4b, 0x8b, 0x16, 0x41, + 0x81, 0x14, 0x45, 0xf6, 0xa9, 0xb8, 0xbf, 0x73, 0x67, 0x38, 0x94, 0x48, 0x71, 0xb4, 0x31, 0xda, + 0xbc, 0x91, 0xf7, 0x9c, 0x7b, 0xce, 0xb9, 0xbf, 0xe7, 0xdc, 0x73, 0xcf, 0x3d, 0x03, 0xeb, 0x0d, + 0x3b, 0xd8, 0xe9, 0x6c, 0x2d, 0xd5, 0xdc, 0xd6, 0xb2, 0xe5, 0x35, 0xdc, 0xb6, 0xe7, 0xde, 0x60, + 0x3f, 0xde, 0xe5, 0xb9, 0xcd, 0xa6, 0xdb, 0x09, 0xfc, 0xe5, 0xf6, 0xcd, 0xc6, 0xb2, 0xd5, 0xb6, + 0xfd, 0x65, 0x55, 0xb2, 0xfb, 0x1e, 0xab, 0xd9, 0xde, 0xb1, 0xde, 0xb3, 0xdc, 0x20, 0x0e, 0xf1, + 0xac, 0x80, 0xd4, 0x97, 0xda, 0x9e, 0x1b, 0xb8, 0xe8, 0xe9, 0x90, 0xda, 0x92, 0xa4, 0xc6, 0x7e, + 0x7c, 0x44, 0xd6, 0x5d, 0x6a, 0xdf, 0x6c, 0x2c, 0x51, 0x6a, 0x4b, 0xaa, 0x44, 0x52, 0x5b, 0x7c, + 0x97, 0x26, 0x4b, 0xc3, 0x6d, 0xb8, 0xcb, 0x8c, 0xe8, 0x56, 0x67, 0x9b, 0xfd, 0x63, 0x7f, 0xd8, + 0x2f, 0xce, 0x6c, 0xf1, 0xc1, 0x9b, 0x4f, 0xfa, 0x4b, 0xb6, 0x4b, 0x65, 0x5b, 0xde, 0xb2, 0x82, + 0xda, 0xce, 0xf2, 0x6e, 0x8f, 0x44, 0x8b, 0xa6, 0x86, 0x54, 0x73, 0x3d, 0x92, 0x84, 0xf3, 0x78, + 0x88, 0xd3, 0xb2, 0x6a, 0x3b, 0xb6, 0x43, 0xbc, 0xbd, 0xb0, 0xd5, 0x2d, 0x12, 0x58, 0x49, 0xb5, + 0x96, 0xfb, 0xd5, 0xf2, 0x3a, 0x4e, 0x60, 0xb7, 0x48, 0x4f, 0x85, 0xff, 0x7f, 0x58, 0x05, 0xbf, + 0xb6, 0x43, 0x5a, 0x56, 0x4f, 0xbd, 0xc7, 0xfa, 0xd5, 0xeb, 0x04, 0x76, 0x73, 0xd9, 0x76, 0x02, + 0x3f, 0xf0, 0xe2, 0x95, 0xcc, 0xaf, 0x67, 0xa1, 0x50, 0x5a, 0x2f, 0x57, 0x03, 0x2b, 0xe8, 0xf8, + 0xe8, 0x35, 0x03, 0xa6, 0x9a, 0xae, 0x55, 0x2f, 0x5b, 0x4d, 0xcb, 0xa9, 0x11, 0x6f, 0xc1, 0x78, + 0xc0, 0x78, 0x78, 0xf2, 0xd1, 0xf5, 0xa5, 0x51, 0xc6, 0x6b, 0xa9, 0x74, 0xcb, 0xc7, 0xc4, 0x77, + 0x3b, 0x5e, 0x8d, 0x60, 0xb2, 0x5d, 0x9e, 0xff, 0x56, 0xb7, 0x78, 0xcf, 0x7e, 0xb7, 0x38, 0xb5, + 0xae, 0x71, 0xc2, 0x11, 0xbe, 0xe8, 0x8b, 0x06, 0xcc, 0xd5, 0x2c, 0xc7, 0xf2, 0xf6, 0x36, 0x2d, + 0xaf, 0x41, 0x82, 0x67, 0x3d, 0xb7, 0xd3, 0x5e, 0xc8, 0x1c, 0x83, 0x34, 0xf7, 0x0a, 0x69, 0xe6, + 0x56, 0xe2, 0xec, 0x70, 0xaf, 0x04, 0x4c, 0x2e, 0x3f, 0xb0, 0xb6, 0x9a, 0x44, 0x97, 0x2b, 0x7b, + 0x9c, 0x72, 0x55, 0xe3, 0xec, 0x70, 0xaf, 0x04, 0xe6, 0xab, 0x59, 0x98, 0x2b, 0xad, 0x97, 0x37, + 0x3d, 0x6b, 0x7b, 0xdb, 0xae, 0x61, 0xb7, 0x13, 0xd8, 0x4e, 0x03, 0xbd, 0x13, 0x26, 0x6c, 0xa7, + 0xe1, 0x11, 0xdf, 0x67, 0x03, 0x59, 0x28, 0xcf, 0x08, 0xa2, 0x13, 0x6b, 0xbc, 0x18, 0x4b, 0x38, + 0x7a, 0x02, 0x26, 0x7d, 0xe2, 0xed, 0xda, 0x35, 0x52, 0x71, 0xbd, 0x80, 0xf5, 0x74, 0xae, 0x7c, + 0x52, 0xa0, 0x4f, 0x56, 0x43, 0x10, 0xd6, 0xf1, 0x68, 0x35, 0xcf, 0x75, 0x03, 0x01, 0x67, 0x1d, + 0x51, 0x08, 0xab, 0xe1, 0x10, 0x84, 0x75, 0x3c, 0xf4, 0xba, 0x01, 0xb3, 0x7e, 0x60, 0xd7, 0x6e, + 0xda, 0x0e, 0xf1, 0xfd, 0x15, 0xd7, 0xd9, 0xb6, 0x1b, 0x0b, 0x39, 0xd6, 0x8b, 0x97, 0x46, 0xeb, + 0xc5, 0x6a, 0x8c, 0x6a, 0x79, 0x7e, 0xbf, 0x5b, 0x9c, 0x8d, 0x97, 0xe2, 0x1e, 0xee, 0x68, 0x15, + 0x66, 0x2d, 0xc7, 0x71, 0x03, 0x2b, 0xb0, 0x5d, 0xa7, 0xe2, 0x91, 0x6d, 0xfb, 0xf6, 0xc2, 0x18, + 0x6b, 0xce, 0x82, 0x68, 0xce, 0x6c, 0x29, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x55, 0x58, 0x28, 0xb5, + 0xb6, 0x2c, 0xdf, 0xb7, 0xea, 0xae, 0x17, 0x1b, 0x8d, 0x87, 0x21, 0xdf, 0xb2, 0xda, 0x6d, 0xdb, + 0x69, 0xd0, 0xe1, 0xc8, 0x3e, 0x5c, 0x28, 0x4f, 0xed, 0x77, 0x8b, 0xf9, 0x0d, 0x51, 0x86, 0x15, + 0xd4, 0xfc, 0x41, 0x06, 0x26, 0x4b, 0x8e, 0xd5, 0xdc, 0xf3, 0x6d, 0x1f, 0x77, 0x1c, 0xf4, 0x51, + 0xc8, 0xd3, 0xdd, 0xa5, 0x6e, 0x05, 0x96, 0x58, 0x91, 0xef, 0x5e, 0xe2, 0x8b, 0x7d, 0x49, 0x5f, + 0xec, 0x61, 0xbf, 0x50, 0xec, 0xa5, 0xdd, 0xf7, 0x2c, 0x5d, 0xde, 0xba, 0x41, 0x6a, 0xc1, 0x06, + 0x09, 0xac, 0x32, 0x12, 0xad, 0x80, 0xb0, 0x0c, 0x2b, 0xaa, 0xc8, 0x85, 0x31, 0xbf, 0x4d, 0x6a, + 0x62, 0x85, 0x6d, 0x8c, 0x38, 0x93, 0x43, 0xd1, 0xab, 0x6d, 0x52, 0x2b, 0x4f, 0x09, 0xd6, 0x63, + 0xf4, 0x1f, 0x66, 0x8c, 0xd0, 0x2d, 0x18, 0xf7, 0xd9, 0x9e, 0x23, 0x16, 0xcf, 0xe5, 0xf4, 0x58, + 0x32, 0xb2, 0xe5, 0x69, 0xc1, 0x74, 0x9c, 0xff, 0xc7, 0x82, 0x9d, 0xf9, 0x0f, 0x06, 0x9c, 0xd4, + 0xb0, 0x4b, 0x5e, 0xa3, 0xd3, 0x22, 0x4e, 0x80, 0x1e, 0x80, 0x31, 0xc7, 0x6a, 0x11, 0xb1, 0x50, + 0x94, 0xc8, 0x97, 0xac, 0x16, 0xc1, 0x0c, 0x82, 0x1e, 0x84, 0xdc, 0xae, 0xd5, 0xec, 0x10, 0xd6, + 0x49, 0x85, 0xf2, 0x09, 0x81, 0x92, 0xbb, 0x46, 0x0b, 0x31, 0x87, 0xa1, 0x97, 0xa0, 0xc0, 0x7e, + 0x9c, 0xf7, 0xdc, 0x56, 0x4a, 0x4d, 0x13, 0x12, 0x5e, 0x93, 0x64, 0xcb, 0x27, 0xf6, 0xbb, 0xc5, + 0x82, 0xfa, 0x8b, 0x43, 0x86, 0xe6, 0x3f, 0x1a, 0x30, 0xa3, 0x35, 0x6e, 0xdd, 0xf6, 0x03, 0xf4, + 0xa1, 0x9e, 0xc9, 0xb3, 0x34, 0xd8, 0xe4, 0xa1, 0xb5, 0xd9, 0xd4, 0x99, 0x15, 0x2d, 0xcd, 0xcb, + 0x12, 0x6d, 0xe2, 0x38, 0x90, 0xb3, 0x03, 0xd2, 0xf2, 0x17, 0x32, 0x0f, 0x64, 0x1f, 0x9e, 0x7c, + 0x74, 0x2d, 0xb5, 0x61, 0x0c, 0xfb, 0x77, 0x8d, 0xd2, 0xc7, 0x9c, 0x8d, 0xf9, 0x95, 0xb1, 0x48, + 0x0b, 0xe9, 0x8c, 0x42, 0x2e, 0x4c, 0xb4, 0x48, 0xe0, 0xd9, 0x35, 0xbe, 0xae, 0x26, 0x1f, 0x5d, + 0x1d, 0x4d, 0x8a, 0x0d, 0x46, 0x2c, 0xdc, 0x2c, 0xf9, 0x7f, 0x1f, 0x4b, 0x2e, 0x68, 0x07, 0xc6, + 0x2c, 0xaf, 0x21, 0xdb, 0x7c, 0x3e, 0x9d, 0xf1, 0x0d, 0xe7, 0x5c, 0xc9, 0x6b, 0xf8, 0x98, 0x71, + 0x40, 0xcb, 0x50, 0x08, 0x88, 0xd7, 0xb2, 0x1d, 0x2b, 0xe0, 0xbb, 0x6b, 0xbe, 0x3c, 0x27, 0xd0, + 0x0a, 0x9b, 0x12, 0x80, 0x43, 0x1c, 0xd4, 0x84, 0xf1, 0xba, 0xb7, 0x87, 0x3b, 0xce, 0xc2, 0x58, + 0x1a, 0x5d, 0xb1, 0xca, 0x68, 0x85, 0x8b, 0x89, 0xff, 0xc7, 0x82, 0x07, 0x7a, 0xc3, 0x80, 0xf9, + 0x16, 0xb1, 0xfc, 0x8e, 0x47, 0x68, 0x13, 0x30, 0x09, 0x88, 0x43, 0x77, 0xc3, 0x85, 0x1c, 0x63, + 0x8e, 0x47, 0x1d, 0x87, 0x5e, 0xca, 0xe5, 0xfb, 0x85, 0x28, 0xf3, 0x49, 0x50, 0x9c, 0x28, 0x8d, + 0xf9, 0x83, 0x31, 0x98, 0xeb, 0xd9, 0x21, 0xd0, 0xe3, 0x90, 0x6b, 0xef, 0x58, 0xbe, 0x5c, 0xf2, + 0x67, 0xe5, 0x7c, 0xab, 0xd0, 0xc2, 0x3b, 0xdd, 0xe2, 0x09, 0x59, 0x85, 0x15, 0x60, 0x8e, 0x4c, + 0x75, 0x6a, 0x8b, 0xf8, 0xbe, 0xd5, 0x90, 0xfb, 0x80, 0x36, 0x4d, 0x58, 0x31, 0x96, 0x70, 0xf4, + 0x2b, 0x06, 0x9c, 0xe0, 0x53, 0x06, 0x13, 0xbf, 0xd3, 0x0c, 0xe8, 0x5e, 0x47, 0xbb, 0xe5, 0x62, + 0x1a, 0xd3, 0x93, 0x93, 0x2c, 0x9f, 0x12, 0xdc, 0x4f, 0xe8, 0xa5, 0x3e, 0x8e, 0xf2, 0x45, 0xd7, + 0xa1, 0xe0, 0x07, 0x96, 0x17, 0x90, 0x7a, 0x29, 0x60, 0x5a, 0x6d, 0xf2, 0xd1, 0xff, 0x3b, 0xd8, + 0x26, 0xb0, 0x69, 0xb7, 0x08, 0xdf, 0x70, 0xaa, 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x97, 0x00, 0xbc, + 0x8e, 0x53, 0xed, 0xb4, 0x5a, 0x96, 0xb7, 0x27, 0x34, 0xf8, 0x85, 0xd1, 0x9a, 0x87, 0x15, 0xbd, + 0x50, 0x67, 0x85, 0x65, 0x58, 0xe3, 0x87, 0x5e, 0x31, 0xe0, 0x04, 0x9f, 0x89, 0x52, 0x82, 0xf1, + 0x94, 0x25, 0x98, 0xa3, 0x5d, 0xbb, 0xaa, 0xb3, 0xc0, 0x51, 0x8e, 0xe6, 0xdf, 0x45, 0xf5, 0x49, + 0x35, 0xa0, 0xd6, 0x75, 0x63, 0x0f, 0x7d, 0x10, 0xee, 0xf5, 0x3b, 0xb5, 0x1a, 0xf1, 0xfd, 0xed, + 0x4e, 0x13, 0x77, 0x9c, 0x0b, 0xb6, 0x1f, 0xb8, 0xde, 0xde, 0xba, 0xdd, 0xb2, 0x03, 0x36, 0xe3, + 0x72, 0xe5, 0x33, 0xfb, 0xdd, 0xe2, 0xbd, 0xd5, 0x7e, 0x48, 0xb8, 0x7f, 0x7d, 0x64, 0xc1, 0x7d, + 0x1d, 0xa7, 0x3f, 0x79, 0x6e, 0xbd, 0x15, 0xf7, 0xbb, 0xc5, 0xfb, 0xae, 0xf6, 0x47, 0xc3, 0x07, + 0xd1, 0x30, 0xff, 0xd5, 0x80, 0x59, 0xd9, 0xae, 0x4d, 0xd2, 0x6a, 0x37, 0xe9, 0xee, 0x72, 0xfc, + 0x86, 0x48, 0x10, 0x31, 0x44, 0x70, 0x3a, 0xea, 0x44, 0xca, 0xdf, 0xcf, 0x1a, 0x31, 0xff, 0xc5, + 0x80, 0xf9, 0x38, 0xf2, 0x5d, 0x50, 0x9e, 0x7e, 0x54, 0x79, 0x5e, 0x4a, 0xb7, 0xb5, 0x7d, 0x34, + 0xe8, 0x6b, 0x63, 0xbd, 0x6d, 0xfd, 0x9f, 0xae, 0x46, 0x43, 0xad, 0x98, 0xfd, 0x59, 0x6a, 0xc5, + 0xb1, 0xb7, 0x94, 0x56, 0xfc, 0x83, 0x31, 0x98, 0x2a, 0x39, 0x81, 0x5d, 0xda, 0xde, 0xb6, 0x1d, + 0x3b, 0xd8, 0x43, 0x9f, 0xc9, 0xc0, 0x72, 0xdb, 0x23, 0xdb, 0xc4, 0xf3, 0x48, 0x7d, 0xb5, 0xe3, + 0xd9, 0x4e, 0xa3, 0x5a, 0xdb, 0x21, 0xf5, 0x4e, 0xd3, 0x76, 0x1a, 0x6b, 0x0d, 0xc7, 0x55, 0xc5, + 0xe7, 0x6e, 0x93, 0x5a, 0x87, 0x35, 0x89, 0x2f, 0x8a, 0xd6, 0x68, 0x4d, 0xaa, 0x0c, 0xc7, 0xb4, + 0xfc, 0xd8, 0x7e, 0xb7, 0xb8, 0x3c, 0x64, 0x25, 0x3c, 0x6c, 0xd3, 0xd0, 0xa7, 0x33, 0xb0, 0xe4, + 0x91, 0x8f, 0x75, 0xec, 0xc1, 0x7b, 0x83, 0xef, 0x5a, 0xcd, 0x11, 0xd5, 0xcf, 0x50, 0x3c, 0xcb, + 0x8f, 0xee, 0x77, 0x8b, 0x43, 0xd6, 0xc1, 0x43, 0xb6, 0xcb, 0xfc, 0x5a, 0x06, 0x4e, 0x95, 0xda, + 0xed, 0x0d, 0xe2, 0xef, 0xc4, 0x0e, 0xb5, 0x9f, 0x33, 0x60, 0x7a, 0xd7, 0xf6, 0x82, 0x8e, 0xd5, + 0x94, 0x4e, 0x00, 0x3e, 0x25, 0xaa, 0x23, 0x2e, 0x67, 0xce, 0xed, 0x5a, 0x84, 0x74, 0x19, 0xed, + 0x77, 0x8b, 0xd3, 0xd1, 0x32, 0x1c, 0x63, 0x8f, 0x7e, 0xd3, 0x80, 0x59, 0x51, 0x74, 0xc9, 0xad, + 0x13, 0xdd, 0x73, 0x74, 0x35, 0x4d, 0x99, 0x14, 0x71, 0xee, 0x62, 0x88, 0x97, 0xe2, 0x1e, 0x21, + 0xcc, 0x7f, 0xcf, 0xc0, 0xe9, 0x3e, 0x34, 0xd0, 0xef, 0x1b, 0x30, 0xcf, 0xdd, 0x4d, 0x1a, 0x08, + 0x93, 0x6d, 0xd1, 0x9b, 0x1f, 0x48, 0x5b, 0x72, 0x4c, 0xd7, 0x02, 0x71, 0x6a, 0xa4, 0xbc, 0x40, + 0xb7, 0x8d, 0x95, 0x04, 0xd6, 0x38, 0x51, 0x20, 0x26, 0x29, 0x77, 0x40, 0xc5, 0x24, 0xcd, 0xdc, + 0x15, 0x49, 0xab, 0x09, 0xac, 0x71, 0xa2, 0x40, 0xe6, 0x2f, 0xc2, 0x7d, 0x07, 0x90, 0x3b, 0xfc, + 0xc4, 0x6f, 0xbe, 0xa0, 0x66, 0x7d, 0x74, 0xce, 0x0d, 0xe0, 0x2c, 0x30, 0x61, 0xdc, 0x73, 0x3b, + 0x01, 0xe1, 0xda, 0xad, 0x50, 0x06, 0xaa, 0x27, 0x30, 0x2b, 0xc1, 0x02, 0x62, 0x7e, 0xcd, 0x80, + 0xfc, 0x10, 0xfe, 0x87, 0x62, 0xd4, 0xff, 0x50, 0xe8, 0xf1, 0x3d, 0x04, 0xbd, 0xbe, 0x87, 0x67, + 0x47, 0x1b, 0x8d, 0x41, 0x7c, 0x0e, 0x3f, 0x36, 0x60, 0xae, 0xc7, 0x47, 0x81, 0x76, 0x60, 0xbe, + 0xed, 0xd6, 0xa5, 0x7d, 0x71, 0xc1, 0xf2, 0x77, 0x18, 0x4c, 0x34, 0xef, 0x71, 0x3a, 0x92, 0x95, + 0x04, 0xf8, 0x9d, 0x6e, 0x71, 0x41, 0x11, 0x89, 0x21, 0xe0, 0x44, 0x8a, 0xa8, 0x0d, 0xf9, 0x6d, + 0x9b, 0x34, 0xeb, 0xe1, 0x14, 0x1c, 0xd1, 0x92, 0x38, 0x2f, 0xa8, 0x71, 0xf7, 0x9c, 0xfc, 0x87, + 0x15, 0x17, 0xf3, 0x0a, 0x4c, 0x47, 0x9d, 0xb5, 0x03, 0x0c, 0xde, 0x19, 0xc8, 0x5a, 0x9e, 0x23, + 0x86, 0x6e, 0x52, 0x20, 0x64, 0x4b, 0xf8, 0x12, 0xa6, 0xe5, 0xe6, 0x4f, 0xc7, 0x60, 0xa6, 0xdc, + 0xec, 0x90, 0x67, 0x3d, 0x42, 0xe4, 0xf9, 0xb4, 0x04, 0x33, 0x6d, 0x8f, 0xec, 0xda, 0xe4, 0x56, + 0x95, 0x34, 0x49, 0x2d, 0x70, 0x3d, 0x41, 0xff, 0xb4, 0xa8, 0x3e, 0x53, 0x89, 0x82, 0x71, 0x1c, + 0x1f, 0x3d, 0x03, 0xd3, 0x56, 0x2d, 0xb0, 0x77, 0x89, 0xa2, 0xc0, 0x05, 0x78, 0x9b, 0xa0, 0x30, + 0x5d, 0x8a, 0x40, 0x71, 0x0c, 0x1b, 0x7d, 0x08, 0x16, 0xfc, 0x9a, 0xd5, 0x24, 0x57, 0xdb, 0x82, + 0xd5, 0xca, 0x0e, 0xa9, 0xdd, 0xac, 0xb8, 0xb6, 0x13, 0x08, 0x6f, 0xc4, 0x03, 0x82, 0xd2, 0x42, + 0xb5, 0x0f, 0x1e, 0xee, 0x4b, 0x01, 0xfd, 0xb9, 0x01, 0x67, 0xda, 0x1e, 0xa9, 0x78, 0x6e, 0xcb, + 0xa5, 0x6a, 0xa6, 0xe7, 0x88, 0x2e, 0x8e, 0xaa, 0xd7, 0x46, 0xd4, 0xa7, 0xbc, 0xa4, 0xd7, 0x45, + 0xf8, 0xf6, 0xfd, 0x6e, 0xf1, 0x4c, 0xe5, 0x20, 0x01, 0xf0, 0xc1, 0xf2, 0xa1, 0xbf, 0x34, 0xe0, + 0x6c, 0xdb, 0xf5, 0x83, 0x03, 0x9a, 0x90, 0x3b, 0xd6, 0x26, 0x98, 0xfb, 0xdd, 0xe2, 0xd9, 0xca, + 0x81, 0x12, 0xe0, 0x43, 0x24, 0x34, 0xf7, 0x27, 0x61, 0x4e, 0x9b, 0x7b, 0xe2, 0xfc, 0xfa, 0x14, + 0x9c, 0x90, 0x93, 0x21, 0x54, 0xeb, 0x85, 0xd0, 0xdf, 0x50, 0xd2, 0x81, 0x38, 0x8a, 0x4b, 0xe7, + 0x9d, 0x9a, 0x8a, 0xbc, 0x76, 0x6c, 0xde, 0x55, 0x22, 0x50, 0x1c, 0xc3, 0x46, 0x6b, 0x70, 0x52, + 0x94, 0x60, 0xd2, 0x6e, 0xda, 0x35, 0x6b, 0xc5, 0xed, 0x88, 0x29, 0x97, 0x2b, 0x9f, 0xde, 0xef, + 0x16, 0x4f, 0x56, 0x7a, 0xc1, 0x38, 0xa9, 0x0e, 0x5a, 0x87, 0x79, 0xab, 0x13, 0xb8, 0xaa, 0xfd, + 0xe7, 0x1c, 0xaa, 0x29, 0xea, 0x6c, 0x6a, 0xe5, 0xb9, 0x4a, 0x29, 0x25, 0xc0, 0x71, 0x62, 0x2d, + 0x54, 0x89, 0x51, 0xab, 0x92, 0x9a, 0xeb, 0xd4, 0xf9, 0x28, 0xe7, 0x42, 0x2b, 0xbc, 0x94, 0x80, + 0x83, 0x13, 0x6b, 0xa2, 0x26, 0x4c, 0xb7, 0xac, 0xdb, 0x57, 0x1d, 0x6b, 0xd7, 0xb2, 0x9b, 0x94, + 0x89, 0xf0, 0x61, 0xf4, 0x3f, 0x58, 0x77, 0x02, 0xbb, 0xb9, 0xc4, 0xaf, 0xf3, 0x96, 0xd6, 0x9c, + 0xe0, 0xb2, 0x57, 0x0d, 0xa8, 0xb5, 0xc6, 0x8d, 0xa3, 0x8d, 0x08, 0x2d, 0x1c, 0xa3, 0x8d, 0x2e, + 0xc3, 0x29, 0xb6, 0x1c, 0x57, 0xdd, 0x5b, 0xce, 0x2a, 0x69, 0x5a, 0x7b, 0xb2, 0x01, 0x13, 0xac, + 0x01, 0xf7, 0xee, 0x77, 0x8b, 0xa7, 0xaa, 0x49, 0x08, 0x38, 0xb9, 0x1e, 0xb2, 0xe0, 0xbe, 0x28, + 0x00, 0x93, 0x5d, 0xdb, 0xb7, 0x5d, 0x87, 0x7b, 0x22, 0xf2, 0xa1, 0x27, 0xa2, 0xda, 0x1f, 0x0d, + 0x1f, 0x44, 0x03, 0xfd, 0xb6, 0x01, 0xf3, 0x49, 0xcb, 0x70, 0xa1, 0x90, 0xc6, 0x65, 0x45, 0x6c, + 0x69, 0xf1, 0x19, 0x91, 0xb8, 0x29, 0x24, 0x0a, 0x81, 0x5e, 0x36, 0x60, 0xca, 0xd2, 0x4e, 0x51, + 0x0b, 0xc0, 0xa4, 0xba, 0x38, 0xea, 0x59, 0x3e, 0xa4, 0x58, 0x9e, 0xdd, 0xef, 0x16, 0x23, 0x27, + 0x35, 0x1c, 0xe1, 0x88, 0x7e, 0xd7, 0x80, 0x53, 0x89, 0x6b, 0x7c, 0x61, 0xf2, 0x38, 0x7a, 0x88, + 0x4d, 0x92, 0xe4, 0x3d, 0x27, 0x59, 0x0c, 0xf4, 0xba, 0xa1, 0x54, 0xd9, 0x86, 0xf4, 0xa6, 0x4c, + 0x31, 0xd1, 0xae, 0x8c, 0x78, 0x70, 0x0c, 0x0d, 0x02, 0x49, 0xb8, 0x7c, 0x52, 0xd3, 0x8c, 0xb2, + 0x10, 0xc7, 0xd9, 0xa3, 0xcf, 0x1a, 0x52, 0x35, 0x2a, 0x89, 0x4e, 0x1c, 0x97, 0x44, 0x28, 0xd4, + 0xb4, 0x4a, 0xa0, 0x18, 0x73, 0xf4, 0x61, 0x58, 0xb4, 0xb6, 0x5c, 0x2f, 0x48, 0x5c, 0x7c, 0x0b, + 0xd3, 0x6c, 0x19, 0x9d, 0xdd, 0xef, 0x16, 0x17, 0x4b, 0x7d, 0xb1, 0xf0, 0x01, 0x14, 0xcc, 0x3f, + 0xce, 0xc1, 0x14, 0x37, 0xf2, 0x85, 0xea, 0xfa, 0xaa, 0x01, 0xf7, 0xd7, 0x3a, 0x9e, 0x47, 0x9c, + 0xa0, 0x1a, 0x90, 0x76, 0xaf, 0xe2, 0x32, 0x8e, 0x55, 0x71, 0x3d, 0xb0, 0xdf, 0x2d, 0xde, 0xbf, + 0x72, 0x00, 0x7f, 0x7c, 0xa0, 0x74, 0xe8, 0x6f, 0x0c, 0x30, 0x05, 0x42, 0xd9, 0xaa, 0xdd, 0x6c, + 0x78, 0x6e, 0xc7, 0xa9, 0xf7, 0x36, 0x22, 0x73, 0xac, 0x8d, 0x78, 0x68, 0xbf, 0x5b, 0x34, 0x57, + 0x0e, 0x95, 0x02, 0x0f, 0x20, 0x29, 0x7a, 0x16, 0xe6, 0x04, 0xd6, 0xb9, 0xdb, 0x6d, 0xe2, 0xd9, + 0xd4, 0x9c, 0x16, 0xf7, 0xe9, 0x61, 0x88, 0x42, 0x1c, 0x01, 0xf7, 0xd6, 0x41, 0x3e, 0x4c, 0xdc, + 0x22, 0x76, 0x63, 0x27, 0x90, 0xe6, 0xd3, 0x88, 0x71, 0x09, 0xe2, 0xc0, 0x7f, 0x9d, 0xd3, 0x2c, + 0x4f, 0xee, 0x77, 0x8b, 0x13, 0xe2, 0x0f, 0x96, 0x9c, 0xd0, 0x25, 0x98, 0xe6, 0x47, 0xb0, 0x8a, + 0xed, 0x34, 0x2a, 0xae, 0xc3, 0x6f, 0xf3, 0x0b, 0xe5, 0x87, 0xa4, 0xc2, 0xaf, 0x46, 0xa0, 0x77, + 0xba, 0xc5, 0x29, 0xf9, 0x7b, 0x73, 0xaf, 0x4d, 0x70, 0xac, 0xb6, 0xf9, 0xcd, 0x71, 0x00, 0x39, + 0x5d, 0x49, 0x1b, 0xfd, 0x3f, 0x28, 0xf8, 0x24, 0xe0, 0x5c, 0x85, 0xf3, 0x9c, 0xdf, 0x49, 0xc8, + 0x42, 0x1c, 0xc2, 0xd1, 0x4d, 0xc8, 0xb5, 0xad, 0x8e, 0x4f, 0xc4, 0xe0, 0x5f, 0x4c, 0x65, 0xf0, + 0x2b, 0x94, 0x22, 0x3f, 0x73, 0xb1, 0x9f, 0x98, 0xf3, 0x40, 0x9f, 0x32, 0x00, 0x48, 0x74, 0xc0, + 0x46, 0xf6, 0x7d, 0x08, 0x96, 0xe1, 0x98, 0xd2, 0x3e, 0x28, 0x4f, 0xef, 0x77, 0x8b, 0xa0, 0x0d, + 0xbd, 0xc6, 0x16, 0xdd, 0x82, 0xbc, 0x25, 0xf7, 0xfc, 0xb1, 0xe3, 0xd8, 0xf3, 0xd9, 0x51, 0x48, + 0x4d, 0x5a, 0xc5, 0x0c, 0x7d, 0xda, 0x80, 0x69, 0x9f, 0x04, 0x62, 0xa8, 0xe8, 0xce, 0x23, 0x0c, + 0xde, 0x11, 0x27, 0x5d, 0x35, 0x42, 0x93, 0xef, 0xa0, 0xd1, 0x32, 0x1c, 0xe3, 0x2b, 0x45, 0xb9, + 0x40, 0xac, 0x3a, 0xf1, 0xd8, 0x49, 0x5b, 0x58, 0x52, 0xa3, 0x8b, 0xa2, 0xd1, 0x54, 0xa2, 0x68, + 0x65, 0x38, 0xc6, 0x57, 0x8a, 0xb2, 0x61, 0x7b, 0x9e, 0x2b, 0x44, 0xc9, 0xa7, 0x24, 0x8a, 0x46, + 0x53, 0x89, 0xa2, 0x95, 0xe1, 0x18, 0x5f, 0xf3, 0x6f, 0xa7, 0x60, 0x5a, 0x2e, 0xa4, 0xd0, 0xb2, + 0xe7, 0x8e, 0x9d, 0x3e, 0x96, 0xfd, 0x8a, 0x0e, 0xc4, 0x51, 0x5c, 0x5a, 0x99, 0x2f, 0xd5, 0xa8, + 0x61, 0xaf, 0x2a, 0x57, 0x75, 0x20, 0x8e, 0xe2, 0xa2, 0x16, 0xe4, 0xfc, 0x80, 0xb4, 0xe5, 0x3d, + 0xe8, 0x88, 0xd7, 0x74, 0xe1, 0xfe, 0x10, 0xde, 0x74, 0xd0, 0x7f, 0x3e, 0xe6, 0x5c, 0x98, 0x6f, + 0x32, 0x88, 0xb8, 0x2b, 0xc5, 0xe2, 0x48, 0x67, 0x7d, 0x46, 0x3d, 0xa1, 0x7c, 0x34, 0xa2, 0x65, + 0x38, 0xc6, 0x3e, 0xc1, 0xd8, 0xcf, 0x1d, 0xa3, 0xb1, 0xff, 0x3c, 0xe4, 0x5b, 0xd6, 0xed, 0x6a, + 0xc7, 0x6b, 0x1c, 0xfd, 0x50, 0x21, 0x42, 0x94, 0x38, 0x15, 0xac, 0xe8, 0xa1, 0x57, 0x0c, 0x6d, + 0xcb, 0x99, 0x60, 0xc4, 0xaf, 0xa7, 0xbb, 0xe5, 0x28, 0x5d, 0xd9, 0x77, 0xf3, 0xe9, 0x31, 0xbd, + 0xf3, 0x77, 0xdd, 0xf4, 0xa6, 0x66, 0x24, 0x5f, 0x20, 0xca, 0x8c, 0x2c, 0x1c, 0xab, 0x19, 0xb9, + 0x12, 0x61, 0x86, 0x63, 0xcc, 0x99, 0x3c, 0x7c, 0xcd, 0x29, 0x79, 0xe0, 0x58, 0xe5, 0xa9, 0x46, + 0x98, 0xe1, 0x18, 0xf3, 0xfe, 0xe7, 0xcd, 0xc9, 0xe3, 0x39, 0x6f, 0x4e, 0xa5, 0x70, 0xde, 0x3c, + 0xd8, 0x14, 0x3f, 0x31, 0xaa, 0x29, 0x8e, 0x2e, 0x02, 0xaa, 0xef, 0x39, 0x56, 0xcb, 0xae, 0x89, + 0xcd, 0x92, 0xa9, 0xcd, 0x69, 0xe6, 0x8f, 0x58, 0x14, 0x1b, 0x19, 0x5a, 0xed, 0xc1, 0xc0, 0x09, + 0xb5, 0x50, 0x00, 0xf9, 0xb6, 0xb4, 0xb8, 0x66, 0xd2, 0x98, 0xfd, 0xd2, 0x02, 0xe3, 0x57, 0xe5, + 0x74, 0xe1, 0xc9, 0x12, 0xac, 0x38, 0x99, 0xff, 0x69, 0xc0, 0xec, 0x4a, 0xd3, 0xed, 0xd4, 0xaf, + 0x5b, 0x41, 0x6d, 0x87, 0xdf, 0xeb, 0xa2, 0x67, 0x20, 0x6f, 0x3b, 0x01, 0xf1, 0x76, 0xad, 0xa6, + 0xd0, 0x28, 0xa6, 0xbc, 0xfa, 0x5e, 0x13, 0xe5, 0x77, 0xba, 0xc5, 0xe9, 0xd5, 0x8e, 0xc7, 0x02, + 0x26, 0xf9, 0xfe, 0x82, 0x55, 0x1d, 0xf4, 0x25, 0x03, 0xe6, 0xf8, 0xcd, 0xf0, 0xaa, 0x15, 0x58, + 0x57, 0x3a, 0xc4, 0xb3, 0x89, 0xbc, 0x1b, 0x1e, 0x71, 0x6b, 0x89, 0xcb, 0x2a, 0x19, 0xec, 0x85, + 0xa6, 0xf5, 0x46, 0x9c, 0x33, 0xee, 0x15, 0xc6, 0xfc, 0x7c, 0x16, 0xee, 0xed, 0x4b, 0x0b, 0x2d, + 0x42, 0xc6, 0xae, 0x8b, 0xa6, 0x83, 0xa0, 0x9b, 0x59, 0xab, 0xe3, 0x8c, 0x5d, 0x47, 0x4b, 0xcc, + 0x4a, 0xf4, 0x88, 0xef, 0xcb, 0x6b, 0xc2, 0x82, 0x32, 0xe8, 0x44, 0x29, 0xd6, 0x30, 0x50, 0x11, + 0x72, 0x4d, 0x6b, 0x8b, 0x34, 0xc5, 0x09, 0x80, 0xd9, 0x9d, 0xeb, 0xb4, 0x00, 0xf3, 0x72, 0xf4, + 0xcb, 0x06, 0x00, 0x17, 0x90, 0x9e, 0x1f, 0x84, 0x5e, 0xc3, 0xe9, 0x76, 0x13, 0xa5, 0xcc, 0xa5, + 0x0c, 0xff, 0x63, 0x8d, 0x2b, 0xda, 0x84, 0x71, 0x6a, 0x82, 0xba, 0xf5, 0x23, 0xab, 0x31, 0x76, + 0x2d, 0x52, 0x61, 0x34, 0xb0, 0xa0, 0x45, 0xfb, 0xca, 0x23, 0x41, 0xc7, 0x73, 0x68, 0xd7, 0x32, + 0xc5, 0x95, 0xe7, 0x52, 0x60, 0x55, 0x8a, 0x35, 0x0c, 0xf3, 0xcf, 0x32, 0x30, 0x9f, 0x24, 0x3a, + 0xd5, 0x0f, 0xe3, 0x5c, 0x5a, 0x71, 0x98, 0x7d, 0x7f, 0xfa, 0xfd, 0x23, 0x82, 0x1c, 0x54, 0x28, + 0x80, 0x08, 0xc3, 0x12, 0x7c, 0xd1, 0xfb, 0x55, 0x0f, 0x65, 0x8e, 0xd8, 0x43, 0x8a, 0x72, 0xac, + 0x97, 0x1e, 0x80, 0x31, 0x9f, 0x8e, 0x7c, 0x36, 0x7a, 0xe5, 0xc0, 0xc6, 0x88, 0x41, 0x28, 0x46, + 0xc7, 0xb1, 0x03, 0x11, 0xc5, 0xac, 0x30, 0xae, 0x3a, 0x76, 0x80, 0x19, 0xc4, 0xfc, 0x62, 0x06, + 0x16, 0xfb, 0x37, 0x0a, 0x7d, 0xd1, 0x00, 0xa8, 0xd3, 0x03, 0x06, 0x9d, 0x92, 0x32, 0x28, 0xc4, + 0x3a, 0xae, 0x3e, 0x5c, 0x95, 0x9c, 0xc2, 0x08, 0x21, 0x55, 0xe4, 0x63, 0x4d, 0x10, 0xf4, 0xa8, + 0x9c, 0xfa, 0x97, 0xac, 0x96, 0x34, 0x40, 0x55, 0x9d, 0x0d, 0x05, 0xc1, 0x1a, 0x16, 0x3d, 0x41, + 0x3a, 0x56, 0x8b, 0xf8, 0x6d, 0x4b, 0x85, 0xa9, 0xb3, 0x13, 0xe4, 0x25, 0x59, 0x88, 0x43, 0xb8, + 0xd9, 0x84, 0x07, 0x07, 0x90, 0x33, 0xa5, 0x90, 0x61, 0xf3, 0x3f, 0x0c, 0x38, 0xbd, 0xd2, 0xec, + 0xf8, 0x01, 0xf1, 0xfe, 0xd7, 0x04, 0x5c, 0xfd, 0x97, 0x01, 0xf7, 0xf5, 0x69, 0xf3, 0x5d, 0x88, + 0xbb, 0x7a, 0x31, 0x1a, 0x77, 0x75, 0x75, 0xd4, 0x29, 0x9d, 0xd8, 0x8e, 0x3e, 0xe1, 0x57, 0x01, + 0x9c, 0xa0, 0xbb, 0x56, 0xdd, 0x6d, 0xa4, 0xa4, 0x37, 0x1f, 0x84, 0xdc, 0xc7, 0xa8, 0xfe, 0x89, + 0xcf, 0x31, 0xa6, 0x94, 0x30, 0x87, 0x99, 0x4f, 0x83, 0x08, 0x52, 0x8a, 0x2d, 0x1e, 0x63, 0x90, + 0xc5, 0x63, 0xfe, 0x7d, 0x06, 0x34, 0xcf, 0xc3, 0x5d, 0x98, 0x94, 0x4e, 0x64, 0x52, 0x8e, 0x78, + 0x6a, 0xd6, 0xfc, 0x28, 0xfd, 0x5e, 0x23, 0xec, 0xc6, 0x5e, 0x23, 0x5c, 0x4a, 0x8d, 0xe3, 0xc1, + 0x8f, 0x11, 0xbe, 0x67, 0xc0, 0x7d, 0x21, 0x72, 0xaf, 0x53, 0xf0, 0xf0, 0x1d, 0xe6, 0x09, 0x98, + 0xb4, 0xc2, 0x6a, 0x62, 0x0e, 0xa8, 0x07, 0x38, 0x1a, 0x45, 0xac, 0xe3, 0x85, 0xb1, 0xcf, 0xd9, + 0x23, 0xc6, 0x3e, 0x8f, 0x1d, 0x1c, 0xfb, 0x6c, 0xfe, 0x24, 0x03, 0x67, 0x7a, 0x5b, 0x26, 0xd7, + 0xc6, 0x60, 0x77, 0xe6, 0x4f, 0xc2, 0x54, 0x20, 0x2a, 0x68, 0x3b, 0xbd, 0x7a, 0x3e, 0xb6, 0xa9, + 0xc1, 0x70, 0x04, 0x93, 0xd6, 0xac, 0xf1, 0x55, 0x59, 0xad, 0xb9, 0x6d, 0x19, 0x39, 0xaf, 0x6a, + 0xae, 0x68, 0x30, 0x1c, 0xc1, 0x54, 0x31, 0x89, 0x63, 0xc7, 0x1e, 0x93, 0x58, 0x85, 0x53, 0x32, + 0x0a, 0xeb, 0xbc, 0xeb, 0xad, 0xb8, 0xad, 0x76, 0x93, 0x88, 0xd8, 0x79, 0x2a, 0xec, 0x19, 0x51, + 0xe5, 0x14, 0x4e, 0x42, 0xc2, 0xc9, 0x75, 0xcd, 0xef, 0x65, 0xe1, 0x64, 0xd8, 0xed, 0x2b, 0xae, + 0x53, 0xb7, 0x59, 0x2c, 0xdb, 0x53, 0x30, 0x16, 0xec, 0xb5, 0x65, 0x67, 0xff, 0x1f, 0x29, 0xce, + 0xe6, 0x5e, 0x9b, 0x8e, 0xf6, 0xe9, 0x84, 0x2a, 0xcc, 0x2d, 0xcb, 0x2a, 0xa1, 0x75, 0xb5, 0x3a, + 0xf8, 0x08, 0x3c, 0x1e, 0x9d, 0xcd, 0x77, 0xba, 0xc5, 0x84, 0xd7, 0x93, 0x4b, 0x8a, 0x52, 0x74, + 0xce, 0xa3, 0x1b, 0x30, 0xdd, 0xb4, 0xfc, 0xe0, 0x6a, 0xbb, 0x6e, 0x05, 0x64, 0xd3, 0x6e, 0x11, + 0xb1, 0xe6, 0x86, 0x09, 0x48, 0x57, 0xf7, 0xc8, 0xeb, 0x11, 0x4a, 0x38, 0x46, 0x19, 0xed, 0x02, + 0xa2, 0x25, 0x9b, 0x9e, 0xe5, 0xf8, 0xbc, 0x55, 0x94, 0xdf, 0xf0, 0x01, 0xf0, 0xea, 0x58, 0xb6, + 0xde, 0x43, 0x0d, 0x27, 0x70, 0x40, 0x0f, 0xc1, 0xb8, 0x47, 0x2c, 0x5f, 0x0c, 0x66, 0x21, 0x5c, + 0xff, 0x98, 0x95, 0x62, 0x01, 0xd5, 0x17, 0xd4, 0xf8, 0x21, 0x0b, 0xea, 0x87, 0x06, 0x4c, 0x87, + 0xc3, 0x74, 0x17, 0x94, 0x64, 0x2b, 0xaa, 0x24, 0x2f, 0xa4, 0xb5, 0x25, 0xf6, 0xd1, 0x8b, 0x7f, + 0x35, 0xae, 0xb7, 0x8f, 0x05, 0x24, 0x7f, 0x1c, 0x0a, 0x72, 0x55, 0x4b, 0xeb, 0x73, 0xc4, 0xd3, + 0x6d, 0xc4, 0x2e, 0xd1, 0x1e, 0xd2, 0x08, 0x26, 0x38, 0xe4, 0x47, 0xd5, 0x72, 0x5d, 0xa8, 0x5c, + 0x31, 0xed, 0x95, 0x5a, 0x96, 0xaa, 0x38, 0x49, 0x2d, 0xcb, 0x3a, 0xe8, 0x2a, 0x9c, 0x6e, 0x7b, + 0x2e, 0x7b, 0x5c, 0xb9, 0x4a, 0xac, 0x7a, 0xd3, 0x76, 0x88, 0x74, 0x21, 0xf0, 0x30, 0x86, 0xfb, + 0xf6, 0xbb, 0xc5, 0xd3, 0x95, 0x64, 0x14, 0xdc, 0xaf, 0x6e, 0xf4, 0x41, 0xd0, 0xd8, 0x00, 0x0f, + 0x82, 0x7e, 0x55, 0x39, 0xea, 0x88, 0x2f, 0x9e, 0xe5, 0x7c, 0x30, 0xad, 0xa1, 0x4c, 0xd8, 0xd6, + 0xc3, 0x29, 0x55, 0x12, 0x4c, 0xb1, 0x62, 0xdf, 0xdf, 0x1b, 0x34, 0x7e, 0x44, 0x6f, 0x50, 0x18, + 0xd7, 0x3d, 0xf1, 0xb3, 0x8c, 0xeb, 0xce, 0xbf, 0xa5, 0xe2, 0xba, 0x5f, 0xcd, 0xc1, 0x6c, 0xdc, + 0x02, 0x39, 0xfe, 0xc7, 0x4e, 0xbf, 0x61, 0xc0, 0xac, 0x5c, 0x3d, 0x9c, 0x27, 0x91, 0x7e, 0xfe, + 0xf5, 0x94, 0x16, 0x2d, 0xb7, 0xa5, 0xd4, 0x73, 0xdc, 0xcd, 0x18, 0x37, 0xdc, 0xc3, 0x1f, 0xbd, + 0x00, 0x93, 0xca, 0x1d, 0x7e, 0xa4, 0x97, 0x4f, 0x33, 0xcc, 0x8a, 0x0a, 0x49, 0x60, 0x9d, 0x1e, + 0x7a, 0xd5, 0x00, 0xa8, 0x49, 0x35, 0x27, 0x57, 0xd7, 0x95, 0xb4, 0x56, 0x97, 0x52, 0xa0, 0xa1, + 0xb1, 0xac, 0x8a, 0x7c, 0xac, 0x31, 0x46, 0x9f, 0x67, 0x8e, 0x70, 0x65, 0xdd, 0xd1, 0xf5, 0x94, + 0x1d, 0x3d, 0x14, 0xf7, 0x00, 0xc3, 0x34, 0x34, 0xa5, 0x34, 0x90, 0x8f, 0x23, 0x42, 0x98, 0x4f, + 0x81, 0x0a, 0x9e, 0xa4, 0xdb, 0x16, 0x0b, 0x9f, 0xac, 0x58, 0xc1, 0x8e, 0x98, 0x82, 0x6a, 0xdb, + 0x3a, 0x2f, 0x01, 0x38, 0xc4, 0x31, 0x3f, 0x0a, 0xd3, 0xcf, 0x7a, 0x56, 0x7b, 0xc7, 0x66, 0x0e, + 0x67, 0x7a, 0x4e, 0x7a, 0x27, 0x4c, 0x58, 0xf5, 0x7a, 0xd2, 0x63, 0xf6, 0x12, 0x2f, 0xc6, 0x12, + 0x3e, 0xd8, 0x91, 0xe8, 0x9b, 0x06, 0xa0, 0xf0, 0xd2, 0xce, 0x76, 0x1a, 0x1b, 0xf4, 0xb4, 0x4f, + 0xcf, 0x47, 0x3b, 0xac, 0x34, 0xe9, 0x7c, 0x74, 0x41, 0x41, 0xb0, 0x86, 0x85, 0x5e, 0x82, 0x49, + 0xfe, 0xef, 0x9a, 0x3a, 0xec, 0x8f, 0xfc, 0x14, 0x96, 0x2b, 0x14, 0x26, 0x13, 0x9f, 0x85, 0x17, + 0x42, 0x0e, 0x58, 0x67, 0x47, 0xbb, 0x6a, 0xcd, 0xd9, 0x6e, 0x76, 0x6e, 0xd7, 0xb7, 0xc2, 0xae, + 0x6a, 0x7b, 0xee, 0xb6, 0xdd, 0x24, 0xf1, 0xae, 0xaa, 0xf0, 0x62, 0x2c, 0xe1, 0x83, 0x75, 0xd5, + 0xd7, 0x0d, 0x98, 0x5f, 0xf3, 0x03, 0xdb, 0x5d, 0x25, 0x7e, 0x40, 0xd5, 0x0a, 0xdd, 0x7c, 0x3a, + 0xcd, 0x41, 0xe2, 0xa0, 0x57, 0x61, 0x56, 0x5c, 0x20, 0x76, 0xb6, 0x7c, 0x12, 0x68, 0x76, 0xbc, + 0x5a, 0xc7, 0x2b, 0x31, 0x38, 0xee, 0xa9, 0x41, 0xa9, 0x88, 0x9b, 0xc4, 0x90, 0x4a, 0x36, 0x4a, + 0xa5, 0x1a, 0x83, 0xe3, 0x9e, 0x1a, 0xe6, 0x77, 0xb2, 0x70, 0x92, 0x35, 0x23, 0xf6, 0x86, 0xe1, + 0xb3, 0xfd, 0xde, 0x30, 0x8c, 0xb8, 0x94, 0x19, 0xaf, 0x23, 0xbc, 0x60, 0xf8, 0x75, 0x03, 0x66, + 0xea, 0xd1, 0x9e, 0x4e, 0xc7, 0x3d, 0x93, 0x34, 0x86, 0x3c, 0x5e, 0x2a, 0x56, 0x88, 0xe3, 0xfc, + 0xd1, 0x17, 0x0c, 0x98, 0x89, 0x8a, 0x29, 0x77, 0xf7, 0x63, 0xe8, 0x24, 0x15, 0xe0, 0x1c, 0x2d, + 0xf7, 0x71, 0x5c, 0x04, 0xf3, 0xdb, 0x19, 0x31, 0xa4, 0xc7, 0x11, 0xa0, 0x8f, 0x6e, 0x41, 0x21, + 0x68, 0xfa, 0xbc, 0x50, 0xb4, 0x76, 0xc4, 0x13, 0xe1, 0xe6, 0x7a, 0x95, 0xdf, 0xdd, 0x87, 0x46, + 0x9b, 0x28, 0xa1, 0xc6, 0xa7, 0xe4, 0xc5, 0x18, 0xd7, 0xda, 0x82, 0x71, 0x2a, 0x47, 0xd1, 0xcd, + 0x95, 0x4a, 0x9c, 0xb1, 0x28, 0xa1, 0x8c, 0x25, 0x2f, 0xf3, 0xcb, 0x06, 0x14, 0x2e, 0xba, 0x72, + 0x1f, 0xf9, 0x70, 0x0a, 0x8e, 0x1e, 0x65, 0x0f, 0xaa, 0x3b, 0xc2, 0xf0, 0x88, 0xf1, 0x4c, 0xc4, + 0xcd, 0x73, 0xbf, 0x46, 0x7b, 0x89, 0x25, 0xea, 0xa1, 0xa4, 0x2e, 0xba, 0x5b, 0x7d, 0xbd, 0x88, + 0xbf, 0x97, 0x83, 0x13, 0xcf, 0x59, 0x7b, 0xc4, 0x09, 0xac, 0xe1, 0x95, 0xc4, 0x13, 0x30, 0x69, + 0xb5, 0x59, 0xa0, 0xb0, 0x66, 0xe3, 0x87, 0x9e, 0x93, 0x10, 0x84, 0x75, 0xbc, 0x70, 0x43, 0xe3, + 0x79, 0x43, 0x92, 0xb6, 0xa2, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0x40, 0x17, 0x01, 0x89, 0x57, 0x90, + 0xa5, 0x5a, 0xcd, 0xed, 0x38, 0x7c, 0x4b, 0xe3, 0x4e, 0x15, 0x75, 0xd8, 0xdc, 0xe8, 0xc1, 0xc0, + 0x09, 0xb5, 0xd0, 0x87, 0x60, 0xa1, 0xc6, 0x28, 0x8b, 0xa3, 0x87, 0x4e, 0x91, 0x1f, 0x3f, 0x55, + 0x90, 0xfe, 0x4a, 0x1f, 0x3c, 0xdc, 0x97, 0x02, 0x95, 0xd4, 0x0f, 0x5c, 0xcf, 0x6a, 0x10, 0x9d, + 0xee, 0x78, 0x54, 0xd2, 0x6a, 0x0f, 0x06, 0x4e, 0xa8, 0x85, 0x3e, 0x09, 0x85, 0x60, 0xc7, 0x23, + 0xfe, 0x8e, 0xdb, 0xac, 0x8b, 0xa0, 0x81, 0x11, 0x3d, 0x6d, 0x62, 0xf4, 0x37, 0x25, 0x55, 0x6d, + 0x7a, 0xcb, 0x22, 0x1c, 0xf2, 0x44, 0x1e, 0x8c, 0xfb, 0x35, 0xb7, 0x4d, 0x7c, 0x61, 0xb2, 0x5f, + 0x4c, 0x85, 0x3b, 0xf3, 0x1c, 0x69, 0x3e, 0x3e, 0xc6, 0x01, 0x0b, 0x4e, 0xe6, 0x37, 0x32, 0x30, + 0xa5, 0x23, 0x0e, 0xb0, 0x37, 0x7d, 0xca, 0x80, 0xa9, 0x9a, 0xeb, 0x04, 0x9e, 0xdb, 0xe4, 0xfe, + 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd4, 0x5c, 0x61, 0x1a, 0x1b, 0x1c, + 0x61, 0x8a, 0x3e, 0x63, 0xc0, 0x4c, 0x18, 0x63, 0x16, 0x3a, 0xd2, 0x52, 0x15, 0x44, 0x6d, 0xf5, + 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x05, 0xb3, 0xf1, 0xd1, 0xa6, 0x5d, 0xd9, 0xb6, 0xc4, + 0x5a, 0xcf, 0x86, 0x5d, 0x59, 0xb1, 0x7c, 0x1f, 0x33, 0x08, 0x7a, 0x04, 0xf2, 0x2d, 0xcb, 0x6b, + 0xd8, 0x8e, 0xd5, 0x64, 0xbd, 0x98, 0xd5, 0x36, 0x24, 0x51, 0x8e, 0x15, 0x86, 0xf9, 0x6e, 0x98, + 0xda, 0xb0, 0x9c, 0x06, 0xa9, 0x8b, 0x7d, 0xf8, 0xf0, 0x27, 0x62, 0x3f, 0x1a, 0x83, 0x49, 0xed, + 0x6c, 0x76, 0xfc, 0xe7, 0xac, 0x48, 0x2a, 0x87, 0x6c, 0x8a, 0xa9, 0x1c, 0x9e, 0x07, 0xd8, 0xb6, + 0x1d, 0xdb, 0xdf, 0x39, 0x62, 0x92, 0x08, 0x76, 0x45, 0x7b, 0x5e, 0x51, 0xc0, 0x1a, 0xb5, 0xf0, + 0x1e, 0x2c, 0x77, 0x40, 0xea, 0x9c, 0x57, 0x0d, 0x4d, 0xdd, 0x8c, 0xa7, 0x71, 0xef, 0xaf, 0x0d, + 0xcc, 0x92, 0x54, 0x3f, 0xe7, 0x9c, 0xc0, 0xdb, 0x3b, 0x50, 0x2b, 0x6d, 0x42, 0xde, 0x23, 0x7e, + 0xa7, 0x45, 0x4f, 0x8c, 0x13, 0x43, 0x77, 0x03, 0x8b, 0x99, 0xc0, 0xa2, 0x3e, 0x56, 0x94, 0x16, + 0x9f, 0x82, 0x13, 0x11, 0x11, 0xd0, 0x2c, 0x64, 0x6f, 0x92, 0x3d, 0x3e, 0x4f, 0x30, 0xfd, 0x89, + 0xe6, 0x23, 0xb7, 0x85, 0xa2, 0x5b, 0xde, 0x97, 0x79, 0xd2, 0x30, 0x5d, 0x48, 0x74, 0x00, 0x1c, + 0xe5, 0x32, 0x87, 0x8e, 0x45, 0x53, 0xcb, 0x12, 0xa1, 0xc6, 0x82, 0x47, 0xc6, 0x70, 0x98, 0xf9, + 0x93, 0x71, 0x10, 0x57, 0xd9, 0x03, 0x6c, 0x57, 0xfa, 0x0d, 0x56, 0xe6, 0x08, 0x37, 0x58, 0x17, + 0x61, 0xca, 0x76, 0xec, 0xc0, 0xb6, 0x9a, 0xcc, 0xb9, 0x23, 0xd4, 0xa9, 0x0c, 0x1d, 0x9e, 0x5a, + 0xd3, 0x60, 0x09, 0x74, 0x22, 0x75, 0xd1, 0x15, 0xc8, 0x31, 0x7d, 0x23, 0x26, 0xf0, 0xf0, 0xf7, + 0xed, 0x2c, 0xd4, 0x82, 0xbf, 0x27, 0xe2, 0x94, 0xd8, 0xe1, 0x83, 0xa7, 0xc9, 0x50, 0xc7, 0x6f, + 0x31, 0x8f, 0xc3, 0xc3, 0x47, 0x0c, 0x8e, 0x7b, 0x6a, 0x50, 0x2a, 0xdb, 0x96, 0xdd, 0xec, 0x78, + 0x24, 0xa4, 0x32, 0x1e, 0xa5, 0x72, 0x3e, 0x06, 0xc7, 0x3d, 0x35, 0xd0, 0x36, 0x4c, 0x89, 0x32, + 0x1e, 0xef, 0x34, 0x71, 0xc4, 0x56, 0xb2, 0xb8, 0xb6, 0xf3, 0x1a, 0x25, 0x1c, 0xa1, 0x8b, 0x3a, + 0x30, 0x67, 0x3b, 0x35, 0xd7, 0xa9, 0x35, 0x3b, 0xbe, 0xbd, 0x4b, 0xc2, 0xc7, 0x3c, 0x47, 0x61, + 0x76, 0x6a, 0xbf, 0x5b, 0x9c, 0x5b, 0x8b, 0x93, 0xc3, 0xbd, 0x1c, 0xd0, 0x2b, 0x06, 0x9c, 0xaa, + 0xb9, 0x8e, 0xcf, 0xde, 0x9d, 0xef, 0x92, 0x73, 0x9e, 0xe7, 0x7a, 0x9c, 0x77, 0xe1, 0x88, 0xbc, + 0x99, 0x4f, 0x71, 0x25, 0x89, 0x24, 0x4e, 0xe6, 0x84, 0x5e, 0x84, 0x7c, 0xdb, 0x73, 0x77, 0xed, + 0x3a, 0xf1, 0x44, 0xec, 0xdc, 0x7a, 0x1a, 0x79, 0x30, 0x2a, 0x82, 0x66, 0xb8, 0xf5, 0xc8, 0x12, + 0xac, 0xf8, 0x99, 0x6f, 0x14, 0x60, 0x3a, 0x8a, 0x8e, 0x3e, 0x01, 0xd0, 0xf6, 0xdc, 0x16, 0x09, + 0x76, 0x88, 0x7a, 0x94, 0x71, 0x69, 0xd4, 0x74, 0x0b, 0x92, 0x9e, 0x8c, 0x5e, 0xa1, 0xdb, 0x45, + 0x58, 0x8a, 0x35, 0x8e, 0xc8, 0x83, 0x89, 0x9b, 0x5c, 0xed, 0x0a, 0x2b, 0xe4, 0xb9, 0x54, 0x6c, + 0x26, 0xc1, 0x99, 0xbd, 0x26, 0x10, 0x45, 0x58, 0x32, 0x42, 0x5b, 0x90, 0xbd, 0x45, 0xb6, 0xd2, + 0x79, 0xc2, 0x7c, 0x9d, 0x88, 0xd3, 0x4c, 0x79, 0x62, 0xbf, 0x5b, 0xcc, 0x5e, 0x27, 0x5b, 0x98, + 0x12, 0xa7, 0xed, 0xaa, 0xf3, 0x7b, 0x78, 0xb1, 0x55, 0x8c, 0xd8, 0xae, 0xc8, 0xa5, 0x3e, 0x6f, + 0x97, 0x28, 0xc2, 0x92, 0x11, 0x7a, 0x11, 0x0a, 0xb7, 0xac, 0x5d, 0xb2, 0xed, 0xb9, 0x4e, 0x20, + 0x42, 0xa6, 0x46, 0x8c, 0xd3, 0xbf, 0x2e, 0xc9, 0x09, 0xbe, 0x4c, 0xbd, 0xab, 0x42, 0x1c, 0xb2, + 0x43, 0xbb, 0x90, 0x77, 0xc8, 0x2d, 0x4c, 0x9a, 0x76, 0x2d, 0x9d, 0xb8, 0xf8, 0x4b, 0x82, 0x9a, + 0xe0, 0xcc, 0xf4, 0x9e, 0x2c, 0xc3, 0x8a, 0x17, 0x1d, 0xcb, 0x1b, 0xee, 0x96, 0xd8, 0xa8, 0x46, + 0x1c, 0x4b, 0x75, 0x32, 0xe5, 0x63, 0x79, 0xd1, 0xdd, 0xc2, 0x94, 0x38, 0x5d, 0x23, 0x35, 0x15, + 0xaf, 0x23, 0xb6, 0xa9, 0x4b, 0xe9, 0xc6, 0x29, 0xf1, 0x35, 0x12, 0x96, 0x62, 0x8d, 0x23, 0xed, + 0xdb, 0x86, 0x70, 0x56, 0x8a, 0x8d, 0x6a, 0xc4, 0xbe, 0x8d, 0xba, 0x3e, 0x79, 0xdf, 0xca, 0x32, + 0xac, 0x78, 0x51, 0xbe, 0xb6, 0xf0, 0xfc, 0xa5, 0xb3, 0x55, 0x45, 0xfd, 0x88, 0x9c, 0xaf, 0x2c, + 0xc3, 0x8a, 0x97, 0xf9, 0xe5, 0x71, 0x98, 0xd2, 0xf3, 0x8d, 0x0d, 0x60, 0x23, 0x28, 0xbb, 0x38, + 0x33, 0x8c, 0x5d, 0x4c, 0x0f, 0x42, 0xda, 0x1d, 0x87, 0x74, 0xc2, 0xac, 0xa5, 0x66, 0x16, 0x86, + 0x07, 0x21, 0xad, 0xd0, 0xc7, 0x11, 0xa6, 0x43, 0x84, 0x3d, 0x50, 0xe3, 0x8a, 0x9b, 0x1f, 0xb9, + 0xa8, 0x71, 0x15, 0x31, 0x28, 0x1e, 0x05, 0x08, 0xf3, 0x6e, 0x89, 0xbb, 0x2f, 0x65, 0xb5, 0x69, + 0xf9, 0xc0, 0x34, 0x2c, 0xf4, 0x10, 0x8c, 0x53, 0x05, 0x4d, 0xea, 0xe2, 0xa5, 0xae, 0x3a, 0x6d, + 0x9e, 0x67, 0xa5, 0x58, 0x40, 0xd1, 0x93, 0xd4, 0x96, 0x0a, 0xd5, 0xaa, 0x78, 0x80, 0x3b, 0x1f, + 0xda, 0x52, 0x21, 0x0c, 0x47, 0x30, 0xa9, 0xe8, 0x84, 0x6a, 0x41, 0x36, 0x83, 0x35, 0xd1, 0x99, + 0x6a, 0xc4, 0x1c, 0xc6, 0xbc, 0x1f, 0x31, 0xad, 0xc9, 0x66, 0x5e, 0x4e, 0xf3, 0x7e, 0xc4, 0xe0, + 0xb8, 0xa7, 0x06, 0x6d, 0x8c, 0xb8, 0xb6, 0x9b, 0xe4, 0xd1, 0x9d, 0x7d, 0x2e, 0xdc, 0x5e, 0xd3, + 0x4f, 0x04, 0x53, 0x6c, 0xe8, 0xdf, 0x9f, 0x5e, 0xee, 0xbc, 0xc1, 0x8f, 0x04, 0xa3, 0x19, 0xef, + 0x1f, 0x85, 0xe9, 0xe8, 0x5e, 0x99, 0xba, 0x7f, 0xfe, 0xaf, 0xb3, 0x70, 0xf2, 0x52, 0xc3, 0x76, + 0x6e, 0xc7, 0x1c, 0xdb, 0x49, 0x39, 0x6d, 0x8d, 0x61, 0x73, 0xda, 0x86, 0x4f, 0x7e, 0x44, 0xd2, + 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, 0xfb, 0xad, 0x3a, 0xb7, + 0x5e, 0xad, 0xa6, 0x28, 0x0d, 0x99, 0xca, 0x15, 0xed, 0x8f, 0xa8, 0x8b, 0x7a, 0x1b, 0xbf, 0x54, + 0x3a, 0x80, 0x2b, 0x1f, 0xf1, 0x77, 0x88, 0x16, 0xdc, 0x7f, 0x10, 0x2a, 0x3e, 0x50, 0xfc, 0xc5, + 0xcb, 0xf0, 0xf6, 0x43, 0x19, 0x0d, 0x35, 0x5b, 0x3e, 0x65, 0x40, 0x81, 0xbb, 0x4f, 0x31, 0xd9, + 0xa6, 0x5b, 0x85, 0xd5, 0xb6, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, 0x03, 0x5e, 0xa9, 0xb2, + 0x26, 0x20, 0x58, 0xc3, 0xa2, 0x9b, 0xf1, 0x4d, 0xdb, 0xa9, 0x8b, 0x61, 0x52, 0x9b, 0xf1, 0x73, + 0xb6, 0x53, 0xc7, 0x0c, 0xa2, 0xb6, 0xeb, 0x6c, 0x5f, 0xb7, 0xc6, 0x1b, 0x06, 0x4c, 0xb3, 0x77, + 0x8e, 0xe1, 0xd1, 0xe3, 0x09, 0x15, 0xd3, 0xc2, 0xc5, 0x38, 0x13, 0x8d, 0x69, 0xb9, 0xd3, 0x2d, + 0x4e, 0xf2, 0x97, 0x91, 0xd1, 0x10, 0x97, 0x0f, 0x0a, 0x7f, 0x05, 0x8b, 0xbc, 0xc9, 0x0c, 0x7d, + 0x9c, 0x56, 0xfe, 0xbc, 0xaa, 0x24, 0x82, 0x43, 0x7a, 0xe6, 0x4b, 0x30, 0xa5, 0x3f, 0x58, 0x40, + 0x4f, 0xc0, 0x64, 0xdb, 0x76, 0x1a, 0xd1, 0x87, 0x6d, 0xca, 0xa7, 0x5b, 0x09, 0x41, 0x58, 0xc7, + 0x63, 0xd5, 0xdc, 0xb0, 0x5a, 0xcc, 0x15, 0x5c, 0x71, 0xf5, 0x6a, 0xe1, 0x1f, 0xf3, 0x4f, 0xb2, + 0x70, 0x32, 0xe1, 0x61, 0x0c, 0x7a, 0xd5, 0x80, 0x71, 0x16, 0xa5, 0x2f, 0xa3, 0x56, 0x5e, 0x48, + 0xfd, 0xf1, 0xcd, 0x12, 0x7b, 0x0c, 0x20, 0xe6, 0xb1, 0xda, 0x3e, 0x79, 0x21, 0x16, 0xcc, 0xd1, + 0x6f, 0x19, 0x30, 0x69, 0x69, 0x4b, 0x8d, 0x07, 0xf2, 0x6c, 0xa5, 0x2f, 0x4c, 0xcf, 0xca, 0xd2, + 0x02, 0x10, 0xc3, 0x85, 0xa4, 0xcb, 0xb2, 0xf8, 0x5e, 0x98, 0xd4, 0x9a, 0x30, 0xcc, 0x0a, 0x59, + 0x7c, 0x06, 0x66, 0x47, 0x5a, 0x61, 0x1f, 0x80, 0x61, 0x73, 0xc7, 0x51, 0x85, 0x75, 0x4b, 0x7f, + 0x7c, 0xac, 0x7a, 0x5c, 0xbc, 0x3e, 0x16, 0x50, 0x73, 0x0b, 0x66, 0xe3, 0x87, 0xab, 0xd4, 0xef, + 0xad, 0xdf, 0x0d, 0x43, 0x66, 0x7b, 0x33, 0xbf, 0x9d, 0x81, 0x09, 0xf1, 0xba, 0xee, 0x2e, 0xc4, + 0xee, 0xde, 0x8c, 0x5c, 0xea, 0xac, 0xa5, 0xf2, 0x28, 0xb0, 0x6f, 0xe0, 0xae, 0x1f, 0x0b, 0xdc, + 0x7d, 0x2e, 0x1d, 0x76, 0x07, 0x47, 0xed, 0xbe, 0x31, 0x06, 0x33, 0xb1, 0xd7, 0x8a, 0xd4, 0x54, + 0xe9, 0x09, 0x56, 0xbb, 0x9a, 0xea, 0x83, 0x48, 0x15, 0x57, 0x7e, 0x70, 0xdc, 0x9a, 0x1f, 0x49, + 0xaa, 0x79, 0x25, 0xb5, 0x7c, 0xdc, 0x3f, 0xcf, 0xaf, 0x39, 0x6c, 0x1c, 0xd6, 0x3f, 0x1b, 0x70, + 0x6f, 0xdf, 0x47, 0xad, 0x2c, 0x27, 0x8a, 0x17, 0x85, 0x8a, 0x05, 0x99, 0xf2, 0xd3, 0x7d, 0x75, + 0xc3, 0x12, 0x4f, 0x63, 0x11, 0x67, 0x8f, 0x1e, 0x87, 0x29, 0xa6, 0x5a, 0xe9, 0x9e, 0x12, 0x90, + 0xb6, 0x70, 0x10, 0x33, 0x57, 0x61, 0x55, 0x2b, 0xc7, 0x11, 0x2c, 0xf3, 0x4b, 0x06, 0x2c, 0xf4, + 0xcb, 0x90, 0x31, 0xc0, 0xc1, 0xf0, 0x17, 0x62, 0xc1, 0xc5, 0xc5, 0x9e, 0xe0, 0xe2, 0xd8, 0xd1, + 0x50, 0xc6, 0x11, 0x6b, 0xa7, 0xb2, 0xec, 0x21, 0xb1, 0xb3, 0x9f, 0x35, 0xe0, 0x74, 0x9f, 0xd5, + 0xd4, 0x13, 0x64, 0x6e, 0x1c, 0x39, 0xc8, 0x3c, 0x33, 0x68, 0x90, 0xb9, 0xf9, 0xdd, 0x2c, 0xcc, + 0x0a, 0x79, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, 0xda, 0xf3, 0x71, 0xfc, + 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, 0x89, 0x3b, 0xd0, 0xa7, + 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, 0x6a, 0xfe, 0x82, 0x1e, + 0x4c, 0xcc, 0xb7, 0xfa, 0xed, 0x63, 0xc8, 0x75, 0x32, 0x64, 0x5c, 0xb1, 0xf9, 0x6b, 0x59, 0x78, + 0x78, 0x50, 0x42, 0x6f, 0xd1, 0x77, 0x27, 0x7e, 0xe4, 0xdd, 0xc9, 0x5d, 0x52, 0xdb, 0xc7, 0xf2, + 0x04, 0xe5, 0xcb, 0x59, 0xa5, 0xf6, 0x7a, 0xe7, 0xe7, 0x40, 0xb7, 0x89, 0x13, 0xd4, 0xb4, 0x93, + 0xe9, 0x3c, 0xc3, 0xad, 0x70, 0xa2, 0xca, 0x8b, 0xef, 0x74, 0x8b, 0x73, 0x22, 0xc5, 0x5f, 0x95, + 0x04, 0xa2, 0x10, 0xcb, 0x4a, 0xe8, 0x61, 0xc8, 0x7b, 0x1c, 0x2a, 0x23, 0xed, 0xc5, 0x95, 0x2c, + 0x2f, 0xc3, 0x0a, 0x8a, 0x3e, 0xa9, 0xd9, 0xc2, 0x63, 0xc7, 0x95, 0x25, 0xe1, 0xa0, 0x9b, 0xe6, + 0x17, 0x20, 0xef, 0xcb, 0xc4, 0x9c, 0xfc, 0x3a, 0xe0, 0xb1, 0x01, 0x1f, 0x70, 0xd0, 0xa3, 0x93, + 0xcc, 0xd2, 0xc9, 0xdb, 0xa7, 0x72, 0x78, 0x2a, 0x92, 0xc8, 0x54, 0xa7, 0x16, 0xee, 0x63, 0x84, + 0x84, 0x13, 0xcb, 0xf7, 0x0c, 0x98, 0x14, 0xa3, 0x75, 0x17, 0xde, 0x94, 0xdc, 0x88, 0xbe, 0x29, + 0x39, 0x97, 0xca, 0xde, 0xd1, 0xe7, 0x41, 0xc9, 0x0d, 0x98, 0xd2, 0x73, 0x37, 0xa1, 0xe7, 0xb5, + 0xbd, 0xcf, 0x18, 0x25, 0x1b, 0x8a, 0xdc, 0x1d, 0xc3, 0x7d, 0xd1, 0xfc, 0x9d, 0xbc, 0xea, 0x45, + 0xe6, 0x87, 0xd0, 0xe7, 0xa0, 0x71, 0xe0, 0x1c, 0xd4, 0xa7, 0x40, 0x26, 0xfd, 0x29, 0x70, 0x05, + 0xf2, 0x72, 0x83, 0x12, 0x6a, 0xfc, 0x41, 0x3d, 0xca, 0x8e, 0xda, 0x02, 0x94, 0x98, 0x36, 0x71, + 0xd9, 0x51, 0x4b, 0x8d, 0xa1, 0xda, 0x38, 0x15, 0x19, 0xf4, 0x22, 0x4c, 0xde, 0x72, 0xbd, 0x9b, + 0x4d, 0xd7, 0x62, 0x29, 0x77, 0x21, 0x8d, 0x8b, 0x1d, 0xe5, 0xf0, 0xe2, 0xa1, 0xce, 0xd7, 0x43, + 0xfa, 0x58, 0x67, 0x86, 0x4a, 0x30, 0xd3, 0xb2, 0x1d, 0x4c, 0xac, 0xba, 0x7a, 0x3a, 0x32, 0xc6, + 0x73, 0x82, 0x4a, 0x23, 0x77, 0x23, 0x0a, 0xc6, 0x71, 0x7c, 0xf4, 0x71, 0xc8, 0xfb, 0x22, 0x13, + 0x52, 0x3a, 0x57, 0x70, 0xea, 0xcc, 0xc8, 0x89, 0x86, 0x7d, 0x27, 0x4b, 0xb0, 0x62, 0x88, 0xd6, + 0x61, 0xde, 0x13, 0xb9, 0x46, 0x22, 0x1f, 0xec, 0xe0, 0xeb, 0x93, 0xa5, 0x9e, 0xc4, 0x09, 0x70, + 0x9c, 0x58, 0x8b, 0x5a, 0x31, 0x2c, 0x09, 0x19, 0xbf, 0x13, 0xd0, 0xdc, 0xe8, 0x6c, 0xc2, 0xd7, + 0xb1, 0x80, 0x1e, 0xf4, 0x14, 0x29, 0x3f, 0xc2, 0x53, 0xa4, 0x2a, 0x9c, 0x8a, 0x83, 0x58, 0x46, + 0x14, 0x96, 0x84, 0x45, 0xd3, 0x1e, 0x95, 0x24, 0x24, 0x9c, 0x5c, 0x17, 0x5d, 0x87, 0x82, 0x47, + 0xd8, 0xf9, 0xa2, 0x24, 0x2f, 0xfd, 0x87, 0x0e, 0x6f, 0xc2, 0x92, 0x00, 0x0e, 0x69, 0xd1, 0x71, + 0xb7, 0xa2, 0x69, 0x31, 0xaf, 0xa4, 0xf8, 0xc9, 0x31, 0x31, 0xf6, 0x7d, 0x32, 0x15, 0x99, 0x6f, + 0x4e, 0xc3, 0x89, 0x88, 0x6f, 0x01, 0x3d, 0x08, 0x39, 0x96, 0x22, 0x86, 0x6d, 0x0f, 0xf9, 0x70, + 0x0b, 0xe3, 0x9d, 0xc3, 0x61, 0xe8, 0x73, 0x06, 0xcc, 0xb4, 0x23, 0x5e, 0x58, 0xb9, 0x73, 0x8e, + 0x78, 0xcf, 0x17, 0x75, 0xed, 0x6a, 0x09, 0xa5, 0xa3, 0xcc, 0x70, 0x9c, 0x3b, 0x5d, 0x80, 0x22, + 0x46, 0xb0, 0x49, 0x3c, 0x86, 0x2d, 0x6c, 0x1c, 0x45, 0x62, 0x25, 0x0a, 0xc6, 0x71, 0x7c, 0x3a, + 0xc2, 0xac, 0x75, 0xa3, 0x7c, 0x8b, 0xa8, 0x24, 0x09, 0xe0, 0x90, 0x16, 0x7a, 0x06, 0xa6, 0x45, + 0x36, 0xc4, 0x8a, 0x5b, 0xbf, 0x60, 0xf9, 0x3b, 0xc2, 0xb8, 0x57, 0x87, 0x91, 0x95, 0x08, 0x14, + 0xc7, 0xb0, 0x59, 0xdb, 0xc2, 0x94, 0x93, 0x8c, 0xc0, 0x78, 0x34, 0xdf, 0xf6, 0x4a, 0x14, 0x8c, + 0xe3, 0xf8, 0xe8, 0x11, 0x6d, 0xdf, 0xe7, 0xf7, 0x74, 0x6a, 0x37, 0x48, 0xd8, 0xfb, 0x4b, 0x30, + 0xd3, 0x61, 0x67, 0xa1, 0xba, 0x04, 0x8a, 0xf5, 0xa8, 0x18, 0x5e, 0x8d, 0x82, 0x71, 0x1c, 0x1f, + 0x3d, 0x05, 0x27, 0x3c, 0xba, 0xbb, 0x29, 0x02, 0xfc, 0xf2, 0x4e, 0xdd, 0xcd, 0x60, 0x1d, 0x88, + 0xa3, 0xb8, 0xe8, 0x59, 0x98, 0x0b, 0x93, 0x87, 0x49, 0x02, 0xfc, 0x36, 0x4f, 0xe5, 0xc5, 0x29, + 0xc5, 0x11, 0x70, 0x6f, 0x1d, 0xf4, 0x4b, 0x30, 0xab, 0xf5, 0xc4, 0x9a, 0x53, 0x27, 0xb7, 0x45, + 0x82, 0x27, 0xf6, 0x69, 0x84, 0x95, 0x18, 0x0c, 0xf7, 0x60, 0xa3, 0xf7, 0xc1, 0x74, 0xcd, 0x6d, + 0x36, 0xd9, 0x1e, 0xc7, 0x73, 0x3d, 0xf3, 0x4c, 0x4e, 0x3c, 0xe7, 0x55, 0x04, 0x82, 0x63, 0x98, + 0xe8, 0x22, 0x20, 0x77, 0xcb, 0x27, 0xde, 0x2e, 0xa9, 0x3f, 0xcb, 0xbf, 0x6e, 0x4a, 0x55, 0xfc, + 0x89, 0x68, 0x84, 0xf2, 0xe5, 0x1e, 0x0c, 0x9c, 0x50, 0x8b, 0xa5, 0xd5, 0xd1, 0x5e, 0x74, 0x4d, + 0xa7, 0xf1, 0x5d, 0x9e, 0xf8, 0xc9, 0xfd, 0xd0, 0xe7, 0x5c, 0x1e, 0x8c, 0xf3, 0x80, 0xf1, 0x74, + 0x52, 0x3a, 0xe9, 0x69, 0x5f, 0x43, 0x1d, 0xc1, 0x4b, 0xb1, 0xe0, 0x84, 0x3e, 0x01, 0x85, 0x2d, + 0x99, 0x03, 0x7c, 0x61, 0x36, 0x0d, 0xbd, 0x18, 0x4b, 0x67, 0x1f, 0x9e, 0x4c, 0x15, 0x00, 0x87, + 0x2c, 0xd1, 0x43, 0x30, 0x79, 0xa1, 0x52, 0x52, 0xb3, 0x70, 0x8e, 0x8d, 0xfe, 0x18, 0xad, 0x82, + 0x75, 0x00, 0x5d, 0x61, 0xca, 0x5e, 0x42, 0x6c, 0x88, 0x43, 0x7d, 0xdb, 0x6b, 0xfe, 0x50, 0x6c, + 0x76, 0x1d, 0x89, 0xab, 0x0b, 0x27, 0x63, 0xd8, 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x02, 0x4c, 0x0a, + 0x7d, 0xc1, 0xf6, 0xa6, 0xf9, 0xa3, 0xbd, 0x16, 0xc4, 0x21, 0x09, 0xac, 0xd3, 0x63, 0xb7, 0x4c, + 0x2c, 0x35, 0x32, 0x39, 0xdf, 0x69, 0x36, 0x17, 0x4e, 0xb1, 0x7d, 0x33, 0xbc, 0x65, 0x0a, 0x41, + 0x58, 0xc7, 0x43, 0x8f, 0xc9, 0xc8, 0x89, 0xb7, 0x45, 0xae, 0xdd, 0x54, 0xe4, 0x84, 0xb2, 0x72, + 0xfb, 0x04, 0x14, 0x9f, 0x3e, 0x24, 0x64, 0x61, 0x0b, 0x16, 0xa5, 0x89, 0xd5, 0xbb, 0x48, 0x16, + 0x16, 0x22, 0x5e, 0x82, 0xc5, 0xeb, 0x7d, 0x31, 0xf1, 0x01, 0x54, 0xd0, 0x16, 0x64, 0xad, 0xe6, + 0xd6, 0xc2, 0xbd, 0x69, 0xd8, 0x8a, 0xea, 0x6b, 0xc5, 0x3c, 0x08, 0xa8, 0xb4, 0x5e, 0xc6, 0x94, + 0xb8, 0xf9, 0x4a, 0x46, 0x79, 0xe5, 0x55, 0xaa, 0xcb, 0x97, 0xf4, 0x59, 0x6d, 0xa4, 0xf1, 0x35, + 0xce, 0x9e, 0x44, 0xf9, 0x5c, 0x21, 0x25, 0xce, 0xe9, 0xb6, 0x5a, 0xc7, 0xa9, 0xe4, 0x31, 0x89, + 0xa6, 0xf1, 0xe4, 0xa7, 0xb9, 0xe8, 0x2a, 0x36, 0xf7, 0x27, 0x94, 0x13, 0x2a, 0x16, 0x0a, 0xe0, + 0x41, 0xce, 0xf6, 0x03, 0xdb, 0x4d, 0xf1, 0x65, 0x5b, 0x2c, 0xff, 0x25, 0x0b, 0x9c, 0x65, 0x00, + 0xcc, 0x59, 0x51, 0x9e, 0x4e, 0xc3, 0x76, 0x6e, 0x8b, 0xe6, 0x5f, 0x49, 0xfd, 0x8e, 0x9f, 0xf3, + 0x64, 0x00, 0xcc, 0x59, 0xa1, 0x1b, 0x7c, 0xa6, 0xa5, 0xf3, 0xe5, 0xd5, 0xf8, 0x07, 0x95, 0xa3, + 0x33, 0x8e, 0xf2, 0xf2, 0x5b, 0xb6, 0xb0, 0x61, 0x46, 0xe4, 0x55, 0xdd, 0x58, 0x4b, 0xe2, 0x55, + 0xdd, 0x58, 0xc3, 0x94, 0x09, 0x7a, 0xcd, 0x00, 0xb0, 0xd4, 0x97, 0x85, 0xd3, 0xf9, 0xaa, 0x44, + 0xbf, 0x2f, 0x15, 0xf3, 0x58, 0xb7, 0x10, 0x8a, 0x35, 0xce, 0xe8, 0x45, 0x98, 0xb0, 0xf8, 0x37, + 0x71, 0x44, 0x18, 0x61, 0x3a, 0x1f, 0x7a, 0x8a, 0x49, 0xc0, 0xe2, 0x27, 0x05, 0x08, 0x4b, 0x86, + 0x94, 0x77, 0xe0, 0x59, 0x64, 0xdb, 0xbe, 0x29, 0xe2, 0x09, 0xab, 0x23, 0xa7, 0xb6, 0xa6, 0xc4, + 0x92, 0x78, 0x0b, 0x10, 0x96, 0x0c, 0xf9, 0xc7, 0x3c, 0x2d, 0xc7, 0x52, 0x8f, 0x43, 0xd2, 0x79, + 0x42, 0xa4, 0x3f, 0x37, 0xd1, 0x3e, 0xe6, 0xa9, 0x33, 0xc2, 0x51, 0xbe, 0xe6, 0x8f, 0xb3, 0x00, + 0xec, 0x27, 0x7f, 0xb0, 0xdc, 0x62, 0x49, 0xee, 0x76, 0xdc, 0xba, 0x58, 0xda, 0x29, 0xbe, 0x3b, + 0x06, 0x91, 0xd1, 0x6e, 0xc7, 0xad, 0x63, 0xc1, 0x04, 0x35, 0x60, 0xac, 0x6d, 0x05, 0x3b, 0xe9, + 0x3f, 0x72, 0xce, 0xf3, 0x97, 0x3b, 0xc1, 0x0e, 0x66, 0x0c, 0xd0, 0xcb, 0x06, 0x4c, 0xf0, 0x67, + 0xce, 0xd2, 0xd5, 0x3c, 0xf2, 0x7d, 0xaa, 0xec, 0xb3, 0x25, 0xfe, 0x96, 0x5a, 0x04, 0x2b, 0x28, + 0xd5, 0x28, 0x4a, 0xb1, 0x64, 0xbb, 0xf8, 0xaa, 0x01, 0x53, 0x3a, 0x6a, 0x42, 0x98, 0xc1, 0x47, + 0xf4, 0x30, 0x83, 0x34, 0xfb, 0x43, 0x8f, 0x58, 0xf8, 0x37, 0x03, 0xb4, 0x4f, 0xa0, 0x86, 0x41, + 0x86, 0xc6, 0xc0, 0x41, 0x86, 0x99, 0x21, 0x83, 0x0c, 0xb3, 0x43, 0x05, 0x19, 0x8e, 0x0d, 0x1f, + 0x64, 0x98, 0xeb, 0x1f, 0x64, 0x68, 0xbe, 0x6e, 0xc0, 0x5c, 0xcf, 0x7e, 0x18, 0xff, 0xd4, 0xbc, + 0x31, 0xe0, 0xa7, 0xe6, 0x57, 0x61, 0x56, 0x24, 0x61, 0xae, 0xb6, 0x9b, 0x76, 0xe2, 0x03, 0xf4, + 0xcd, 0x18, 0x1c, 0xf7, 0xd4, 0x30, 0xff, 0xc2, 0x80, 0x49, 0xed, 0xd9, 0x1a, 0x6d, 0x07, 0x7b, + 0xde, 0x27, 0xc4, 0x08, 0xf3, 0x4f, 0x33, 0xd7, 0x3e, 0x87, 0xf1, 0x5b, 0xa6, 0x86, 0x96, 0xf0, + 0x33, 0xbc, 0x65, 0xa2, 0xa5, 0x58, 0x40, 0x79, 0x2a, 0x47, 0xd2, 0x66, 0x9d, 0x9e, 0xd5, 0x53, + 0x39, 0x92, 0x36, 0x66, 0x10, 0xc6, 0x8e, 0xda, 0x91, 0x22, 0xfe, 0x54, 0x4b, 0x77, 0x6d, 0x79, + 0x01, 0xe6, 0x30, 0x74, 0x06, 0xb2, 0xc4, 0xa9, 0x8b, 0x43, 0xaf, 0xfa, 0xc4, 0xd4, 0x39, 0xa7, + 0x8e, 0x69, 0xb9, 0x79, 0x19, 0xa6, 0xaa, 0xa4, 0xe6, 0x91, 0xe0, 0x39, 0xb2, 0x37, 0xf0, 0x37, + 0xab, 0xe8, 0x6c, 0x8f, 0x7d, 0xb3, 0x8a, 0x56, 0xa7, 0xe5, 0xe6, 0x1f, 0x19, 0x10, 0xcb, 0xc9, + 0xae, 0x79, 0x9c, 0x8d, 0x7e, 0x1e, 0xe7, 0x88, 0x6f, 0x34, 0x73, 0xa0, 0x6f, 0xf4, 0x22, 0xa0, + 0x16, 0x5d, 0x0a, 0x91, 0x2f, 0x10, 0x08, 0x7f, 0x43, 0xf8, 0x48, 0xb6, 0x07, 0x03, 0x27, 0xd4, + 0x32, 0xff, 0x90, 0x0b, 0xab, 0x67, 0x69, 0x3f, 0xbc, 0x03, 0x3a, 0x90, 0x63, 0xa4, 0x84, 0xd3, + 0xa5, 0x32, 0xda, 0xe2, 0xee, 0x4d, 0x36, 0x11, 0x0e, 0xa4, 0x58, 0xf2, 0x8c, 0x9b, 0xf9, 0x5d, + 0x2e, 0xab, 0x96, 0xc6, 0x7d, 0x00, 0x59, 0x5b, 0x51, 0x59, 0x2f, 0xa4, 0xb5, 0x57, 0x26, 0xcb, + 0x88, 0x96, 0x00, 0xda, 0xc4, 0xab, 0x11, 0x27, 0x90, 0x61, 0xd1, 0x39, 0xf1, 0x8c, 0x44, 0x95, + 0x62, 0x0d, 0xc3, 0x7c, 0xd9, 0x80, 0xd9, 0x6a, 0x60, 0xd7, 0x6e, 0xda, 0x0e, 0x7f, 0x16, 0xb5, + 0x6d, 0x37, 0xe8, 0x29, 0x85, 0x88, 0xcf, 0x31, 0x71, 0x37, 0x98, 0xda, 0x8a, 0xe5, 0x57, 0x98, + 0x24, 0x1c, 0x95, 0x60, 0x46, 0x7a, 0xdb, 0xa5, 0xef, 0x92, 0x3f, 0xe7, 0x54, 0xbe, 0x92, 0xd5, + 0x28, 0x18, 0xc7, 0xf1, 0xcd, 0x4f, 0xc2, 0xa4, 0xb6, 0xbf, 0xb2, 0xad, 0xe8, 0xb6, 0x55, 0x0b, + 0xe2, 0x4b, 0xf8, 0x1c, 0x2d, 0xc4, 0x1c, 0xc6, 0x5c, 0xac, 0x3c, 0x6e, 0x36, 0xb6, 0x84, 0x45, + 0xb4, 0xac, 0x80, 0x52, 0x62, 0x1e, 0x69, 0x90, 0xdb, 0x32, 0xb5, 0xa8, 0x24, 0x86, 0x69, 0x21, + 0xe6, 0x30, 0xf3, 0x11, 0xc8, 0xcb, 0x47, 0xf7, 0xec, 0xe5, 0xaa, 0x74, 0xff, 0xe9, 0x2f, 0x57, + 0x5d, 0x2f, 0xc0, 0x0c, 0x62, 0x5e, 0x83, 0xbc, 0xcc, 0x0d, 0x70, 0x38, 0x36, 0x5d, 0x55, 0xbe, + 0x63, 0x5f, 0x70, 0xfd, 0x40, 0x26, 0x34, 0xe0, 0x57, 0x02, 0x97, 0xd6, 0x58, 0x19, 0x56, 0x50, + 0x73, 0x0e, 0x66, 0x94, 0xaf, 0x5f, 0x04, 0x32, 0x7e, 0x23, 0x0b, 0x53, 0x91, 0x4f, 0x01, 0x1f, + 0x3e, 0xdd, 0x06, 0x5f, 0xc5, 0x09, 0x3e, 0xfb, 0xec, 0x90, 0x3e, 0x7b, 0xfd, 0x92, 0x64, 0xec, + 0x78, 0x2f, 0x49, 0x72, 0xe9, 0x5c, 0x92, 0x04, 0x30, 0xe1, 0x0b, 0x45, 0x35, 0x9e, 0x86, 0x33, + 0x25, 0x36, 0x62, 0xdc, 0x46, 0x95, 0xfa, 0x4e, 0xb2, 0x32, 0xbf, 0x9a, 0x83, 0xe9, 0x68, 0x56, + 0xa4, 0x01, 0x46, 0xf2, 0x91, 0x9e, 0x91, 0x1c, 0xd2, 0x67, 0x99, 0x1d, 0xd5, 0x67, 0x39, 0x36, + 0xaa, 0xcf, 0x32, 0x77, 0x04, 0x9f, 0x65, 0xaf, 0xc7, 0x71, 0x7c, 0x60, 0x8f, 0xe3, 0xd3, 0x2a, + 0xe0, 0x66, 0x22, 0x72, 0x43, 0x1d, 0x06, 0xdc, 0xa0, 0xe8, 0x30, 0xac, 0xb8, 0xf5, 0xc4, 0xc0, + 0xa5, 0xfc, 0x21, 0xbe, 0x19, 0x2f, 0x31, 0x3e, 0x66, 0xf8, 0x6b, 0x91, 0xb7, 0x0d, 0x11, 0x1b, + 0xf3, 0x04, 0x4c, 0x8a, 0xf9, 0xc4, 0x6c, 0x25, 0x88, 0xda, 0x59, 0xd5, 0x10, 0x84, 0x75, 0x3c, + 0xf6, 0xb5, 0xca, 0xe8, 0xe7, 0x39, 0x99, 0x0b, 0x58, 0xff, 0x5a, 0x65, 0xec, 0x73, 0x9e, 0x71, + 0x7c, 0xf3, 0xe3, 0x70, 0x2a, 0xf1, 0x44, 0xc6, 0x5c, 0x54, 0x4c, 0x8d, 0x93, 0xba, 0x40, 0xd0, + 0xc4, 0x88, 0x25, 0xcd, 0x5d, 0xbc, 0xde, 0x17, 0x13, 0x1f, 0x40, 0xc5, 0xfc, 0x4a, 0x16, 0xa6, + 0xa3, 0x9f, 0x3a, 0x42, 0xb7, 0x94, 0xff, 0x26, 0x15, 0xd7, 0x11, 0x27, 0xab, 0x65, 0xda, 0xe9, + 0xeb, 0x8c, 0xbd, 0xc5, 0xe6, 0xd7, 0x96, 0x4a, 0xfb, 0x73, 0x7c, 0x8c, 0x85, 0x17, 0x54, 0xb0, + 0x63, 0x5f, 0x33, 0x0a, 0x9f, 0x3b, 0x88, 0x63, 0x57, 0xea, 0xdc, 0xc3, 0x07, 0x0c, 0x8a, 0x15, + 0xd6, 0xd8, 0x52, 0xdd, 0xb2, 0x4b, 0x3c, 0x7b, 0xdb, 0x56, 0x9f, 0x69, 0x64, 0x3b, 0xf7, 0x35, + 0x51, 0x86, 0x15, 0xd4, 0x7c, 0x39, 0x03, 0xe1, 0x47, 0x69, 0xd9, 0xf7, 0x40, 0x7c, 0xcd, 0xc4, + 0x15, 0xc3, 0x76, 0x71, 0xd4, 0x8f, 0xee, 0x84, 0x14, 0x45, 0x30, 0xa4, 0x56, 0x82, 0x23, 0x1c, + 0x7f, 0x06, 0x1f, 0xa3, 0xb5, 0x60, 0x26, 0xf6, 0x08, 0x34, 0xf5, 0x88, 0xf3, 0x1f, 0x65, 0xa1, + 0xa0, 0x9e, 0xd1, 0xa2, 0xf7, 0x46, 0xfc, 0x0d, 0x85, 0xf2, 0xdb, 0xb5, 0xd4, 0xf7, 0x3b, 0x6e, + 0xfd, 0x4e, 0xb7, 0x38, 0xa3, 0x90, 0x63, 0xbe, 0x83, 0x33, 0x90, 0xed, 0x78, 0xcd, 0xf8, 0x81, + 0xe2, 0x2a, 0x5e, 0xc7, 0xb4, 0x1c, 0xdd, 0x8e, 0x1f, 0xf8, 0x37, 0x52, 0x7a, 0xfa, 0xcb, 0x2d, + 0xef, 0xfe, 0x07, 0x7d, 0xaa, 0x25, 0xb7, 0xdc, 0xfa, 0x5e, 0x3c, 0x55, 0x7e, 0xd9, 0xad, 0xef, + 0x61, 0x06, 0x41, 0xcf, 0xc0, 0x74, 0x60, 0xb7, 0x88, 0xdb, 0x09, 0xf4, 0x4f, 0x7e, 0x66, 0xc3, + 0xcb, 0xc5, 0xcd, 0x08, 0x14, 0xc7, 0xb0, 0xa9, 0x96, 0xbd, 0xe1, 0xbb, 0x0e, 0xcb, 0x7f, 0x37, + 0x1e, 0xbd, 0x89, 0xb8, 0x58, 0xbd, 0x7c, 0x89, 0xf9, 0x3d, 0x14, 0x06, 0xc5, 0xb6, 0xd9, 0x9b, + 0x39, 0x8f, 0x88, 0xbb, 0xfd, 0xd9, 0x30, 0xa3, 0x02, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, + 0x54, 0x5a, 0xa6, 0x51, 0xa6, 0xca, 0x0f, 0x4b, 0xba, 0xb4, 0xec, 0x4e, 0xb7, 0xb8, 0x40, 0x9c, + 0x9a, 0x5b, 0xb7, 0x9d, 0xc6, 0x32, 0x45, 0x5c, 0xc2, 0xd6, 0x2d, 0xa9, 0x6a, 0x54, 0x4d, 0xf3, + 0x2a, 0xcc, 0xc4, 0x3a, 0x4c, 0x1e, 0x00, 0x8d, 0xe4, 0x03, 0xe0, 0x60, 0xd9, 0xed, 0xff, 0xd4, + 0x80, 0xb9, 0x9e, 0x2d, 0x60, 0xd0, 0x07, 0x15, 0x71, 0x65, 0x94, 0x39, 0xba, 0x32, 0xca, 0x0e, + 0xa7, 0x8c, 0xca, 0x5b, 0xdf, 0x7a, 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, + 0xf3, 0xec, 0x3d, 0x2f, 0xef, 0x9f, 0x35, 0xbe, 0xb5, 0x7f, 0xd6, 0xf8, 0xce, 0xfe, 0x59, 0xe3, + 0xfb, 0xfb, 0x67, 0x8d, 0x7f, 0xda, 0x3f, 0x6b, 0xbc, 0xfe, 0xa3, 0xb3, 0xf7, 0x3c, 0xff, 0x74, + 0x38, 0x41, 0x97, 0xe5, 0x04, 0x65, 0x3f, 0xde, 0x25, 0xa7, 0xe3, 0x72, 0xfb, 0x66, 0x63, 0x99, + 0x4e, 0xd0, 0x65, 0x55, 0x22, 0x27, 0xe8, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x2a, 0x23, + 0xab, 0x55, 0x93, 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -7747,18 +7745,6 @@ func (m *RolloutExperimentTemplate) MarshalToSizedBuffer(dAtA []byte) (int, erro _ = i var l int _ = l - if m.Service != nil { - { - size, err := m.Service.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } if m.Weight != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.Weight)) i-- @@ -8904,21 +8890,6 @@ func (m *TemplateService) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size, err := m.ServiceSpec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -10959,10 +10930,6 @@ func (m *RolloutExperimentTemplate) Size() (n int) { if m.Weight != nil { n += 1 + sovGenerated(uint64(*m.Weight)) } - if m.Service != nil { - l = m.Service.Size() - n += 1 + l + sovGenerated(uint64(l)) - } return n } @@ -11359,10 +11326,6 @@ func (m *TemplateService) Size() (n int) { } var l int _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.ServiceSpec.Size() - n += 1 + l + sovGenerated(uint64(l)) return n } @@ -12739,7 +12702,6 @@ func (this *RolloutExperimentTemplate) String() string { `Metadata:` + strings.Replace(strings.Replace(this.Metadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1), `&`, ``, 1) + `,`, `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, `Weight:` + valueToStringGenerated(this.Weight) + `,`, - `Service:` + strings.Replace(this.Service.String(), "TemplateService", "TemplateService", 1) + `,`, `}`, }, "") return s @@ -13034,8 +12996,6 @@ func (this *TemplateService) String() string { return "nil" } s := strings.Join([]string{`&TemplateService{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `ServiceSpec:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ServiceSpec), "ServiceSpec", "v12.ServiceSpec", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -26367,42 +26327,6 @@ func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { } } m.Weight = &v - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Service == nil { - m.Service = &TemplateService{} - } - if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -29824,71 +29748,6 @@ func (m *TemplateService) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: TemplateService: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceSpec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ServiceSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index 4fbb2abb8c..c90faf3a42 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -1223,9 +1223,6 @@ message RolloutExperimentTemplate { // Weight sets the percentage of traffic the template's replicas should receive optional int32 weight = 6; - - // Service controls the optionally generated service - optional TemplateService service = 7; } // RolloutList is a list of Rollout resources @@ -1581,9 +1578,6 @@ message TLSRoute { } message TemplateService { - optional string name = 1; - - optional k8s.io.api.core.v1.ServiceSpec serviceSpec = 2; } message TemplateSpec { diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index 232b590442..ac729e0107 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -3787,18 +3787,12 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe Format: "int32", }, }, - "service": { - SchemaProps: spec.SchemaProps{ - Description: "Service controls the optionally generated service", - Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService"), - }, - }, }, Required: []string{"name", "specRef"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, } } @@ -4691,224 +4685,8 @@ func schema_pkg_apis_rollouts_v1alpha1_TemplateService(ref common.ReferenceCallb Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "ports": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "port", - "protocol", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/api/core/v1.ServicePort"), - }, - }, - }, - }, - }, - "selector": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-map-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "clusterIP": { - SchemaProps: spec.SchemaProps{ - Description: "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - Type: []string{"string"}, - Format: "", - }, - }, - "clusterIPs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", - Type: []string{"string"}, - Format: "", - }, - }, - "externalIPs": { - SchemaProps: spec.SchemaProps{ - Description: "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "sessionAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - Type: []string{"string"}, - Format: "", - }, - }, - "loadBalancerIP": { - SchemaProps: spec.SchemaProps{ - Description: "Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations, and it cannot support dual-stack. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.", - Type: []string{"string"}, - Format: "", - }, - }, - "loadBalancerSourceRanges": { - SchemaProps: spec.SchemaProps{ - Description: "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "externalName": { - SchemaProps: spec.SchemaProps{ - Description: "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".", - Type: []string{"string"}, - Format: "", - }, - }, - "externalTrafficPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - Type: []string{"string"}, - Format: "", - }, - }, - "healthCheckNodePort": { - SchemaProps: spec.SchemaProps{ - Description: "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "publishNotReadyAddresses": { - SchemaProps: spec.SchemaProps{ - Description: "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "sessionAffinityConfig": { - SchemaProps: spec.SchemaProps{ - Description: "sessionAffinityConfig contains the configurations of session affinity.", - Ref: ref("k8s.io/api/core/v1.SessionAffinityConfig"), - }, - }, - "ipFamilies": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "ipFamilyPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", - Type: []string{"string"}, - Format: "", - }, - }, - "allocateLoadBalancerNodePorts": { - SchemaProps: spec.SchemaProps{ - Description: "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "loadBalancerClass": { - SchemaProps: spec.SchemaProps{ - Description: "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.", - Type: []string{"string"}, - Format: "", - }, - }, - "internalTrafficPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "InternalTrafficPolicy specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. \"Cluster\" routes internal traffic to a Service to all endpoints. \"Local\" routes traffic to node-local endpoints only, traffic is dropped if no node-local endpoints are ready. The default value is \"Cluster\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, }, }, - Dependencies: []string{ - "k8s.io/api/core/v1.ServicePort", "k8s.io/api/core/v1.SessionAffinityConfig"}, } } diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 718a3383bf..746758c60f 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -534,8 +534,6 @@ type RolloutExperimentTemplate struct { Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,5,opt,name=selector"` // Weight sets the percentage of traffic the template's replicas should receive Weight *int32 `json:"weight,omitempty" protobuf:"varint,6,opt,name=weight"` - // Service controls the optionally generated service - Service *TemplateService `json:"service,omitempty" protobuf:"bytes,7,opt,name=service"` } // PodTemplateMetadata extra labels to add to the template diff --git a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go index 102f59face..1a64ef2cca 100644 --- a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go @@ -2035,11 +2035,6 @@ func (in *RolloutExperimentTemplate) DeepCopyInto(out *RolloutExperimentTemplate *out = new(int32) **out = **in } - if in.Service != nil { - in, out := &in.Service, &out.Service - *out = new(TemplateService) - (*in).DeepCopyInto(*out) - } return } @@ -2542,7 +2537,6 @@ func (in *TLSRoute) DeepCopy() *TLSRoute { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TemplateService) DeepCopyInto(out *TemplateService) { *out = *in - in.ServiceSpec.DeepCopyInto(&out.ServiceSpec) return } @@ -2573,7 +2567,7 @@ func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec) { if in.Service != nil { in, out := &in.Service, &out.Service *out = new(TemplateService) - (*in).DeepCopyInto(*out) + **out = **in } return } diff --git a/rollout/experiment.go b/rollout/experiment.go index 4706e25e30..dfd181d395 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -64,13 +64,7 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Name: templateStep.Name, Replicas: templateStep.Replicas, } - if templateStep.Weight != nil || (templateStep.Service != nil && templateStep.Service.Name != "") { - if templateStep.Service != nil { - template.Service = templateStep.Service.DeepCopy() - } else { - template.Service = &v1alpha1.TemplateService{} - } - } + template.Service = &v1alpha1.TemplateService{} templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { case v1alpha1.CanarySpecRef: diff --git a/rollout/experiment_test.go b/rollout/experiment_test.go index 9ebb32f5a4..54cea95d2e 100644 --- a/rollout/experiment_test.go +++ b/rollout/experiment_test.go @@ -7,7 +7,6 @@ import ( "time" "github.com/stretchr/testify/assert" - corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/uuid" @@ -792,7 +791,7 @@ func TestRolloutCreateExperimentWithService(t *testing.T) { Replicas: pointer.Int32Ptr(1), Weight: pointer.Int32Ptr(5), }, - // Service should NOT be created for "canary-template" + // Service should also be created for "canary-template" { Name: "canary-template", SpecRef: v1alpha1.CanarySpecRef, @@ -819,7 +818,7 @@ func TestRolloutCreateExperimentWithService(t *testing.T) { assert.NotNil(t, ex.Spec.Templates[0].Service) assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) - assert.Nil(t, ex.Spec.Templates[1].Service) + assert.NotNil(t, ex.Spec.Templates[1].Service) } func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { @@ -832,26 +831,12 @@ func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { SpecRef: v1alpha1.StableSpecRef, Replicas: pointer.Int32Ptr(1), Weight: pointer.Int32Ptr(5), - Service: &v1alpha1.TemplateService{ - ServiceSpec: corev1.ServiceSpec{ - Ports: []corev1.ServicePort{{ - Name: "testport", - Port: 80, - TargetPort: intstr.FromInt(8080), - Protocol: "TCP", - }, - }, - }, - }, }, // Service should also be created for "canary-template" { Name: "canary-template", SpecRef: v1alpha1.CanarySpecRef, Replicas: pointer.Int32Ptr(1), - Service: &v1alpha1.TemplateService{ - Name: "custom-name", - }, }, }, }, @@ -873,11 +858,6 @@ func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { assert.Equal(t, "stable-template", ex.Spec.Templates[0].Name) assert.NotNil(t, ex.Spec.Templates[0].Service) - assert.Equal(t, int32(80), ex.Spec.Templates[0].Service.Ports[0].Port) - assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) assert.NotNil(t, ex.Spec.Templates[1].Service) - - assert.Equal(t, 0, len(ex.Spec.Templates[1].Service.Ports)) - assert.Equal(t, "custom-name", ex.Spec.Templates[1].Service.Name) } diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index 670d4ba0ad..a21a1bea6d 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -1185,12 +1185,6 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExpe * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate */ weight?: number; - /** - * - * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService} - * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate - */ - service?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService; } /** * @@ -1704,25 +1698,6 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TLSRoute { */ sniHosts?: Array; } -/** - * - * @export - * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService - */ -export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService { - /** - * - * @type {string} - * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService - */ - name?: string; - /** - * - * @type {K8sIoApiCoreV1ServiceSpec} - * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService - */ - serviceSpec?: K8sIoApiCoreV1ServiceSpec; -} /** * * @export @@ -2133,19 +2108,6 @@ export interface K8sIoApiCoreV1CinderVolumeSource { */ secretRef?: K8sIoApiCoreV1LocalObjectReference; } -/** - * ClientIPConfig represents the configurations of Client IP based session affinity. - * @export - * @interface K8sIoApiCoreV1ClientIPConfig - */ -export interface K8sIoApiCoreV1ClientIPConfig { - /** - * - * @type {number} - * @memberof K8sIoApiCoreV1ClientIPConfig - */ - timeoutSeconds?: number; -} /** * ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables. * @export @@ -4491,183 +4453,6 @@ export interface K8sIoApiCoreV1ServiceAccountTokenProjection { */ path?: string; } -/** - * ServicePort contains information on service's port. - * @export - * @interface K8sIoApiCoreV1ServicePort - */ -export interface K8sIoApiCoreV1ServicePort { - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServicePort - */ - name?: string; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServicePort - */ - protocol?: string; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServicePort - */ - appProtocol?: string; - /** - * The port that will be exposed by this service. - * @type {number} - * @memberof K8sIoApiCoreV1ServicePort - */ - port?: number; - /** - * - * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} - * @memberof K8sIoApiCoreV1ServicePort - */ - targetPort?: K8sIoApimachineryPkgUtilIntstrIntOrString; - /** - * - * @type {number} - * @memberof K8sIoApiCoreV1ServicePort - */ - nodePort?: number; -} -/** - * ServiceSpec describes the attributes that a user creates on a service. - * @export - * @interface K8sIoApiCoreV1ServiceSpec - */ -export interface K8sIoApiCoreV1ServiceSpec { - /** - * - * @type {Array} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - ports?: Array; - /** - * - * @type {{ [key: string]: string; }} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - selector?: { [key: string]: string; }; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - clusterIP?: string; - /** - * ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value. This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies +listType=atomic +optional - * @type {Array} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - clusterIPs?: Array; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - type?: string; - /** - * - * @type {Array} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - externalIPs?: Array; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - sessionAffinity?: string; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - loadBalancerIP?: string; - /** - * - * @type {Array} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - loadBalancerSourceRanges?: Array; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - externalName?: string; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - externalTrafficPolicy?: string; - /** - * - * @type {number} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - healthCheckNodePort?: number; - /** - * - * @type {boolean} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - publishNotReadyAddresses?: boolean; - /** - * - * @type {K8sIoApiCoreV1SessionAffinityConfig} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - sessionAffinityConfig?: K8sIoApiCoreV1SessionAffinityConfig; - /** - * IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName. This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. +listType=atomic +optional - * @type {Array} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - ipFamilies?: Array; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - ipFamilyPolicy?: string; - /** - * - * @type {boolean} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - allocateLoadBalancerNodePorts?: boolean; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - loadBalancerClass?: string; - /** - * - * @type {string} - * @memberof K8sIoApiCoreV1ServiceSpec - */ - internalTrafficPolicy?: string; -} -/** - * SessionAffinityConfig represents the configurations of session affinity. - * @export - * @interface K8sIoApiCoreV1SessionAffinityConfig - */ -export interface K8sIoApiCoreV1SessionAffinityConfig { - /** - * - * @type {K8sIoApiCoreV1ClientIPConfig} - * @memberof K8sIoApiCoreV1SessionAffinityConfig - */ - clientIP?: K8sIoApiCoreV1ClientIPConfig; -} /** * Represents a StorageOS persistent volume resource. * @export From b262cd1a0e631ff345a2efad5cabaaec74c2fccf Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 4 Nov 2022 17:10:17 +0100 Subject: [PATCH 21/28] Ran go fmt Signed-off-by: Alex Eftimie --- experiments/experiment.go | 22 +++++++++++----------- experiments/service.go | 4 ++-- rollout/experiment.go | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/experiments/experiment.go b/experiments/experiment.go index d8975d9d20..ad18a10357 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -286,17 +286,17 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp // Create service with has same name, podTemplateHash, and labels as RS podTemplateHash := rs.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] svc := ec.templateServices[template.Name] - var ports []corev1.ServicePort - for _, ctr := range rs.Spec.Template.Spec.Containers { - for _, port := range ctr.Ports { - servicePort := corev1.ServicePort{ - Protocol: port.Protocol, - Port: port.ContainerPort, - TargetPort: intstr.FromInt(int(port.ContainerPort)), - } - ports = append(ports, servicePort) - } - } + var ports []corev1.ServicePort + for _, ctr := range rs.Spec.Template.Spec.Containers { + for _, port := range ctr.Ports { + servicePort := corev1.ServicePort{ + Protocol: port.Protocol, + Port: port.ContainerPort, + TargetPort: intstr.FromInt(int(port.ContainerPort)), + } + ports = append(ports, servicePort) + } + } if svc == nil || svc.Name != rs.Name { newService, err := ec.CreateService(rs.Name, *template, rs.Labels, ports) if err != nil { diff --git a/experiments/service.go b/experiments/service.go index a43f797206..3f165e76a5 100644 --- a/experiments/service.go +++ b/experiments/service.go @@ -72,8 +72,8 @@ func (ec *experimentContext) CreateService(serviceName string, template v1alpha1 Annotations: serviceAnnotations, }, Spec: corev1.ServiceSpec{ - Selector: selector, - Ports: ports, + Selector: selector, + Ports: ports, }, } diff --git a/rollout/experiment.go b/rollout/experiment.go index dfd181d395..a6d3bdcd43 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -64,7 +64,7 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Name: templateStep.Name, Replicas: templateStep.Replicas, } - template.Service = &v1alpha1.TemplateService{} + template.Service = &v1alpha1.TemplateService{} templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { case v1alpha1.CanarySpecRef: From fcbb31a74600d8da7a19b2f3744ef1745dde4bf3 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 4 Nov 2022 19:52:35 +0100 Subject: [PATCH 22/28] revert changes. only enable service if weighted or template service not nil Signed-off-by: Alex Eftimie --- manifests/crds/rollout-crd.yaml | 3 + manifests/install.yaml | 3 + manifests/namespace-install.yaml | 3 + pkg/apiclient/rollout/rollout.swagger.json | 7 + pkg/apis/rollouts/v1alpha1/generated.pb.go | 1003 +++++++++-------- pkg/apis/rollouts/v1alpha1/generated.proto | 3 + .../rollouts/v1alpha1/openapi_generated.go | 10 +- pkg/apis/rollouts/v1alpha1/types.go | 2 + .../v1alpha1/zz_generated.deepcopy.go | 5 + rollout/experiment.go | 4 +- rollout/experiment_test.go | 4 +- .../experiment-dry-run-analysis.yaml | 1 + ...riment-measurement-retention-analysis.yaml | 1 + .../functional/experiment-with-service.yaml | 10 +- ui/src/models/rollout/generated/api.ts | 13 + 15 files changed, 587 insertions(+), 485 deletions(-) diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index c226789cf2..ad72f3dfcc 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -561,6 +561,8 @@ spec: type: string type: object type: object + service: + type: object specRef: type: string weight: @@ -568,6 +570,7 @@ spec: type: integer required: - name + - service - specRef type: object type: array diff --git a/manifests/install.yaml b/manifests/install.yaml index 04475b6a8a..fc2ed5ccbb 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -11571,6 +11571,8 @@ spec: type: string type: object type: object + service: + type: object specRef: type: string weight: @@ -11578,6 +11580,7 @@ spec: type: integer required: - name + - service - specRef type: object type: array diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index bfca8940be..33c490a478 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -11571,6 +11571,8 @@ spec: type: string type: object type: object + service: + type: object specRef: type: string weight: @@ -11578,6 +11580,7 @@ spec: type: integer required: - name + - service - specRef type: object type: array diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index e7ac9434b8..242622ba31 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -1329,6 +1329,10 @@ "type": "integer", "format": "int32", "title": "Weight sets the percentage of traffic the template's replicas should receive" + }, + "service": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService", + "title": "Service defines wether a service will be generated or not" } }, "title": "RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step" @@ -1725,6 +1729,9 @@ }, "description": "TLSRoute holds the information on the virtual service's TLS/HTTPS routes that are desired to be matched for changing weights." }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService": { + "type": "object" + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TraefikTrafficRouting": { "type": "object", "properties": { diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index 1b57b69024..a0b0c7e945 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -3084,483 +3084,483 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 7605 bytes of a gzipped FileDescriptorProto + // 7616 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xd7, 0x75, 0xb0, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x9f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, - 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0xea, 0xc4, 0x86, 0x5b, 0x52, 0xda, 0xf5, - 0x6a, 0x2d, 0xed, 0x72, 0x2f, 0xb5, 0xbb, 0x89, 0x13, 0x27, 0x19, 0x91, 0x57, 0xd4, 0xec, 0x92, - 0x33, 0xcc, 0xcc, 0x50, 0xbb, 0x72, 0x8c, 0xc4, 0x6e, 0x60, 0x37, 0x2d, 0x12, 0xc4, 0x6d, 0x12, - 0x14, 0x45, 0xd1, 0x22, 0x28, 0x0c, 0xf4, 0x27, 0x7d, 0x0a, 0x5a, 0xf4, 0x25, 0x40, 0x8b, 0xe6, - 0xa7, 0xe9, 0x43, 0x8a, 0xa4, 0x40, 0x9b, 0xa4, 0x40, 0xd8, 0x5a, 0xe9, 0x4b, 0x8b, 0x16, 0x41, - 0x81, 0x14, 0x45, 0xf6, 0xa9, 0xb8, 0xbf, 0x73, 0x67, 0x38, 0x94, 0x48, 0x71, 0xb4, 0x31, 0xda, - 0xbc, 0x91, 0xf7, 0x9c, 0x7b, 0xce, 0xb9, 0xbf, 0xe7, 0xdc, 0x73, 0xcf, 0x3d, 0x03, 0xeb, 0x0d, - 0x3b, 0xd8, 0xe9, 0x6c, 0x2d, 0xd5, 0xdc, 0xd6, 0xb2, 0xe5, 0x35, 0xdc, 0xb6, 0xe7, 0xde, 0x60, - 0x3f, 0xde, 0xe5, 0xb9, 0xcd, 0xa6, 0xdb, 0x09, 0xfc, 0xe5, 0xf6, 0xcd, 0xc6, 0xb2, 0xd5, 0xb6, - 0xfd, 0x65, 0x55, 0xb2, 0xfb, 0x1e, 0xab, 0xd9, 0xde, 0xb1, 0xde, 0xb3, 0xdc, 0x20, 0x0e, 0xf1, - 0xac, 0x80, 0xd4, 0x97, 0xda, 0x9e, 0x1b, 0xb8, 0xe8, 0xe9, 0x90, 0xda, 0x92, 0xa4, 0xc6, 0x7e, - 0x7c, 0x44, 0xd6, 0x5d, 0x6a, 0xdf, 0x6c, 0x2c, 0x51, 0x6a, 0x4b, 0xaa, 0x44, 0x52, 0x5b, 0x7c, - 0x97, 0x26, 0x4b, 0xc3, 0x6d, 0xb8, 0xcb, 0x8c, 0xe8, 0x56, 0x67, 0x9b, 0xfd, 0x63, 0x7f, 0xd8, - 0x2f, 0xce, 0x6c, 0xf1, 0xc1, 0x9b, 0x4f, 0xfa, 0x4b, 0xb6, 0x4b, 0x65, 0x5b, 0xde, 0xb2, 0x82, - 0xda, 0xce, 0xf2, 0x6e, 0x8f, 0x44, 0x8b, 0xa6, 0x86, 0x54, 0x73, 0x3d, 0x92, 0x84, 0xf3, 0x78, - 0x88, 0xd3, 0xb2, 0x6a, 0x3b, 0xb6, 0x43, 0xbc, 0xbd, 0xb0, 0xd5, 0x2d, 0x12, 0x58, 0x49, 0xb5, - 0x96, 0xfb, 0xd5, 0xf2, 0x3a, 0x4e, 0x60, 0xb7, 0x48, 0x4f, 0x85, 0xff, 0x7f, 0x58, 0x05, 0xbf, - 0xb6, 0x43, 0x5a, 0x56, 0x4f, 0xbd, 0xc7, 0xfa, 0xd5, 0xeb, 0x04, 0x76, 0x73, 0xd9, 0x76, 0x02, - 0x3f, 0xf0, 0xe2, 0x95, 0xcc, 0xaf, 0x67, 0xa1, 0x50, 0x5a, 0x2f, 0x57, 0x03, 0x2b, 0xe8, 0xf8, - 0xe8, 0x35, 0x03, 0xa6, 0x9a, 0xae, 0x55, 0x2f, 0x5b, 0x4d, 0xcb, 0xa9, 0x11, 0x6f, 0xc1, 0x78, - 0xc0, 0x78, 0x78, 0xf2, 0xd1, 0xf5, 0xa5, 0x51, 0xc6, 0x6b, 0xa9, 0x74, 0xcb, 0xc7, 0xc4, 0x77, - 0x3b, 0x5e, 0x8d, 0x60, 0xb2, 0x5d, 0x9e, 0xff, 0x56, 0xb7, 0x78, 0xcf, 0x7e, 0xb7, 0x38, 0xb5, - 0xae, 0x71, 0xc2, 0x11, 0xbe, 0xe8, 0x8b, 0x06, 0xcc, 0xd5, 0x2c, 0xc7, 0xf2, 0xf6, 0x36, 0x2d, - 0xaf, 0x41, 0x82, 0x67, 0x3d, 0xb7, 0xd3, 0x5e, 0xc8, 0x1c, 0x83, 0x34, 0xf7, 0x0a, 0x69, 0xe6, - 0x56, 0xe2, 0xec, 0x70, 0xaf, 0x04, 0x4c, 0x2e, 0x3f, 0xb0, 0xb6, 0x9a, 0x44, 0x97, 0x2b, 0x7b, - 0x9c, 0x72, 0x55, 0xe3, 0xec, 0x70, 0xaf, 0x04, 0xe6, 0xab, 0x59, 0x98, 0x2b, 0xad, 0x97, 0x37, - 0x3d, 0x6b, 0x7b, 0xdb, 0xae, 0x61, 0xb7, 0x13, 0xd8, 0x4e, 0x03, 0xbd, 0x13, 0x26, 0x6c, 0xa7, - 0xe1, 0x11, 0xdf, 0x67, 0x03, 0x59, 0x28, 0xcf, 0x08, 0xa2, 0x13, 0x6b, 0xbc, 0x18, 0x4b, 0x38, - 0x7a, 0x02, 0x26, 0x7d, 0xe2, 0xed, 0xda, 0x35, 0x52, 0x71, 0xbd, 0x80, 0xf5, 0x74, 0xae, 0x7c, - 0x52, 0xa0, 0x4f, 0x56, 0x43, 0x10, 0xd6, 0xf1, 0x68, 0x35, 0xcf, 0x75, 0x03, 0x01, 0x67, 0x1d, - 0x51, 0x08, 0xab, 0xe1, 0x10, 0x84, 0x75, 0x3c, 0xf4, 0xba, 0x01, 0xb3, 0x7e, 0x60, 0xd7, 0x6e, - 0xda, 0x0e, 0xf1, 0xfd, 0x15, 0xd7, 0xd9, 0xb6, 0x1b, 0x0b, 0x39, 0xd6, 0x8b, 0x97, 0x46, 0xeb, - 0xc5, 0x6a, 0x8c, 0x6a, 0x79, 0x7e, 0xbf, 0x5b, 0x9c, 0x8d, 0x97, 0xe2, 0x1e, 0xee, 0x68, 0x15, - 0x66, 0x2d, 0xc7, 0x71, 0x03, 0x2b, 0xb0, 0x5d, 0xa7, 0xe2, 0x91, 0x6d, 0xfb, 0xf6, 0xc2, 0x18, - 0x6b, 0xce, 0x82, 0x68, 0xce, 0x6c, 0x29, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x55, 0x58, 0x28, 0xb5, - 0xb6, 0x2c, 0xdf, 0xb7, 0xea, 0xae, 0x17, 0x1b, 0x8d, 0x87, 0x21, 0xdf, 0xb2, 0xda, 0x6d, 0xdb, - 0x69, 0xd0, 0xe1, 0xc8, 0x3e, 0x5c, 0x28, 0x4f, 0xed, 0x77, 0x8b, 0xf9, 0x0d, 0x51, 0x86, 0x15, - 0xd4, 0xfc, 0x41, 0x06, 0x26, 0x4b, 0x8e, 0xd5, 0xdc, 0xf3, 0x6d, 0x1f, 0x77, 0x1c, 0xf4, 0x51, - 0xc8, 0xd3, 0xdd, 0xa5, 0x6e, 0x05, 0x96, 0x58, 0x91, 0xef, 0x5e, 0xe2, 0x8b, 0x7d, 0x49, 0x5f, - 0xec, 0x61, 0xbf, 0x50, 0xec, 0xa5, 0xdd, 0xf7, 0x2c, 0x5d, 0xde, 0xba, 0x41, 0x6a, 0xc1, 0x06, - 0x09, 0xac, 0x32, 0x12, 0xad, 0x80, 0xb0, 0x0c, 0x2b, 0xaa, 0xc8, 0x85, 0x31, 0xbf, 0x4d, 0x6a, - 0x62, 0x85, 0x6d, 0x8c, 0x38, 0x93, 0x43, 0xd1, 0xab, 0x6d, 0x52, 0x2b, 0x4f, 0x09, 0xd6, 0x63, - 0xf4, 0x1f, 0x66, 0x8c, 0xd0, 0x2d, 0x18, 0xf7, 0xd9, 0x9e, 0x23, 0x16, 0xcf, 0xe5, 0xf4, 0x58, - 0x32, 0xb2, 0xe5, 0x69, 0xc1, 0x74, 0x9c, 0xff, 0xc7, 0x82, 0x9d, 0xf9, 0x0f, 0x06, 0x9c, 0xd4, - 0xb0, 0x4b, 0x5e, 0xa3, 0xd3, 0x22, 0x4e, 0x80, 0x1e, 0x80, 0x31, 0xc7, 0x6a, 0x11, 0xb1, 0x50, - 0x94, 0xc8, 0x97, 0xac, 0x16, 0xc1, 0x0c, 0x82, 0x1e, 0x84, 0xdc, 0xae, 0xd5, 0xec, 0x10, 0xd6, - 0x49, 0x85, 0xf2, 0x09, 0x81, 0x92, 0xbb, 0x46, 0x0b, 0x31, 0x87, 0xa1, 0x97, 0xa0, 0xc0, 0x7e, - 0x9c, 0xf7, 0xdc, 0x56, 0x4a, 0x4d, 0x13, 0x12, 0x5e, 0x93, 0x64, 0xcb, 0x27, 0xf6, 0xbb, 0xc5, - 0x82, 0xfa, 0x8b, 0x43, 0x86, 0xe6, 0x3f, 0x1a, 0x30, 0xa3, 0x35, 0x6e, 0xdd, 0xf6, 0x03, 0xf4, - 0xa1, 0x9e, 0xc9, 0xb3, 0x34, 0xd8, 0xe4, 0xa1, 0xb5, 0xd9, 0xd4, 0x99, 0x15, 0x2d, 0xcd, 0xcb, - 0x12, 0x6d, 0xe2, 0x38, 0x90, 0xb3, 0x03, 0xd2, 0xf2, 0x17, 0x32, 0x0f, 0x64, 0x1f, 0x9e, 0x7c, - 0x74, 0x2d, 0xb5, 0x61, 0x0c, 0xfb, 0x77, 0x8d, 0xd2, 0xc7, 0x9c, 0x8d, 0xf9, 0x95, 0xb1, 0x48, - 0x0b, 0xe9, 0x8c, 0x42, 0x2e, 0x4c, 0xb4, 0x48, 0xe0, 0xd9, 0x35, 0xbe, 0xae, 0x26, 0x1f, 0x5d, - 0x1d, 0x4d, 0x8a, 0x0d, 0x46, 0x2c, 0xdc, 0x2c, 0xf9, 0x7f, 0x1f, 0x4b, 0x2e, 0x68, 0x07, 0xc6, - 0x2c, 0xaf, 0x21, 0xdb, 0x7c, 0x3e, 0x9d, 0xf1, 0x0d, 0xe7, 0x5c, 0xc9, 0x6b, 0xf8, 0x98, 0x71, - 0x40, 0xcb, 0x50, 0x08, 0x88, 0xd7, 0xb2, 0x1d, 0x2b, 0xe0, 0xbb, 0x6b, 0xbe, 0x3c, 0x27, 0xd0, - 0x0a, 0x9b, 0x12, 0x80, 0x43, 0x1c, 0xd4, 0x84, 0xf1, 0xba, 0xb7, 0x87, 0x3b, 0xce, 0xc2, 0x58, - 0x1a, 0x5d, 0xb1, 0xca, 0x68, 0x85, 0x8b, 0x89, 0xff, 0xc7, 0x82, 0x07, 0x7a, 0xc3, 0x80, 0xf9, - 0x16, 0xb1, 0xfc, 0x8e, 0x47, 0x68, 0x13, 0x30, 0x09, 0x88, 0x43, 0x77, 0xc3, 0x85, 0x1c, 0x63, - 0x8e, 0x47, 0x1d, 0x87, 0x5e, 0xca, 0xe5, 0xfb, 0x85, 0x28, 0xf3, 0x49, 0x50, 0x9c, 0x28, 0x8d, - 0xf9, 0x83, 0x31, 0x98, 0xeb, 0xd9, 0x21, 0xd0, 0xe3, 0x90, 0x6b, 0xef, 0x58, 0xbe, 0x5c, 0xf2, - 0x67, 0xe5, 0x7c, 0xab, 0xd0, 0xc2, 0x3b, 0xdd, 0xe2, 0x09, 0x59, 0x85, 0x15, 0x60, 0x8e, 0x4c, - 0x75, 0x6a, 0x8b, 0xf8, 0xbe, 0xd5, 0x90, 0xfb, 0x80, 0x36, 0x4d, 0x58, 0x31, 0x96, 0x70, 0xf4, - 0x2b, 0x06, 0x9c, 0xe0, 0x53, 0x06, 0x13, 0xbf, 0xd3, 0x0c, 0xe8, 0x5e, 0x47, 0xbb, 0xe5, 0x62, - 0x1a, 0xd3, 0x93, 0x93, 0x2c, 0x9f, 0x12, 0xdc, 0x4f, 0xe8, 0xa5, 0x3e, 0x8e, 0xf2, 0x45, 0xd7, - 0xa1, 0xe0, 0x07, 0x96, 0x17, 0x90, 0x7a, 0x29, 0x60, 0x5a, 0x6d, 0xf2, 0xd1, 0xff, 0x3b, 0xd8, - 0x26, 0xb0, 0x69, 0xb7, 0x08, 0xdf, 0x70, 0xaa, 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x97, 0x00, 0xbc, - 0x8e, 0x53, 0xed, 0xb4, 0x5a, 0x96, 0xb7, 0x27, 0x34, 0xf8, 0x85, 0xd1, 0x9a, 0x87, 0x15, 0xbd, - 0x50, 0x67, 0x85, 0x65, 0x58, 0xe3, 0x87, 0x5e, 0x31, 0xe0, 0x04, 0x9f, 0x89, 0x52, 0x82, 0xf1, - 0x94, 0x25, 0x98, 0xa3, 0x5d, 0xbb, 0xaa, 0xb3, 0xc0, 0x51, 0x8e, 0xe6, 0xdf, 0x45, 0xf5, 0x49, - 0x35, 0xa0, 0xd6, 0x75, 0x63, 0x0f, 0x7d, 0x10, 0xee, 0xf5, 0x3b, 0xb5, 0x1a, 0xf1, 0xfd, 0xed, - 0x4e, 0x13, 0x77, 0x9c, 0x0b, 0xb6, 0x1f, 0xb8, 0xde, 0xde, 0xba, 0xdd, 0xb2, 0x03, 0x36, 0xe3, - 0x72, 0xe5, 0x33, 0xfb, 0xdd, 0xe2, 0xbd, 0xd5, 0x7e, 0x48, 0xb8, 0x7f, 0x7d, 0x64, 0xc1, 0x7d, - 0x1d, 0xa7, 0x3f, 0x79, 0x6e, 0xbd, 0x15, 0xf7, 0xbb, 0xc5, 0xfb, 0xae, 0xf6, 0x47, 0xc3, 0x07, - 0xd1, 0x30, 0xff, 0xd5, 0x80, 0x59, 0xd9, 0xae, 0x4d, 0xd2, 0x6a, 0x37, 0xe9, 0xee, 0x72, 0xfc, - 0x86, 0x48, 0x10, 0x31, 0x44, 0x70, 0x3a, 0xea, 0x44, 0xca, 0xdf, 0xcf, 0x1a, 0x31, 0xff, 0xc5, - 0x80, 0xf9, 0x38, 0xf2, 0x5d, 0x50, 0x9e, 0x7e, 0x54, 0x79, 0x5e, 0x4a, 0xb7, 0xb5, 0x7d, 0x34, - 0xe8, 0x6b, 0x63, 0xbd, 0x6d, 0xfd, 0x9f, 0xae, 0x46, 0x43, 0xad, 0x98, 0xfd, 0x59, 0x6a, 0xc5, - 0xb1, 0xb7, 0x94, 0x56, 0xfc, 0x83, 0x31, 0x98, 0x2a, 0x39, 0x81, 0x5d, 0xda, 0xde, 0xb6, 0x1d, - 0x3b, 0xd8, 0x43, 0x9f, 0xc9, 0xc0, 0x72, 0xdb, 0x23, 0xdb, 0xc4, 0xf3, 0x48, 0x7d, 0xb5, 0xe3, - 0xd9, 0x4e, 0xa3, 0x5a, 0xdb, 0x21, 0xf5, 0x4e, 0xd3, 0x76, 0x1a, 0x6b, 0x0d, 0xc7, 0x55, 0xc5, - 0xe7, 0x6e, 0x93, 0x5a, 0x87, 0x35, 0x89, 0x2f, 0x8a, 0xd6, 0x68, 0x4d, 0xaa, 0x0c, 0xc7, 0xb4, - 0xfc, 0xd8, 0x7e, 0xb7, 0xb8, 0x3c, 0x64, 0x25, 0x3c, 0x6c, 0xd3, 0xd0, 0xa7, 0x33, 0xb0, 0xe4, - 0x91, 0x8f, 0x75, 0xec, 0xc1, 0x7b, 0x83, 0xef, 0x5a, 0xcd, 0x11, 0xd5, 0xcf, 0x50, 0x3c, 0xcb, - 0x8f, 0xee, 0x77, 0x8b, 0x43, 0xd6, 0xc1, 0x43, 0xb6, 0xcb, 0xfc, 0x5a, 0x06, 0x4e, 0x95, 0xda, - 0xed, 0x0d, 0xe2, 0xef, 0xc4, 0x0e, 0xb5, 0x9f, 0x33, 0x60, 0x7a, 0xd7, 0xf6, 0x82, 0x8e, 0xd5, - 0x94, 0x4e, 0x00, 0x3e, 0x25, 0xaa, 0x23, 0x2e, 0x67, 0xce, 0xed, 0x5a, 0x84, 0x74, 0x19, 0xed, - 0x77, 0x8b, 0xd3, 0xd1, 0x32, 0x1c, 0x63, 0x8f, 0x7e, 0xd3, 0x80, 0x59, 0x51, 0x74, 0xc9, 0xad, - 0x13, 0xdd, 0x73, 0x74, 0x35, 0x4d, 0x99, 0x14, 0x71, 0xee, 0x62, 0x88, 0x97, 0xe2, 0x1e, 0x21, - 0xcc, 0x7f, 0xcf, 0xc0, 0xe9, 0x3e, 0x34, 0xd0, 0xef, 0x1b, 0x30, 0xcf, 0xdd, 0x4d, 0x1a, 0x08, - 0x93, 0x6d, 0xd1, 0x9b, 0x1f, 0x48, 0x5b, 0x72, 0x4c, 0xd7, 0x02, 0x71, 0x6a, 0xa4, 0xbc, 0x40, - 0xb7, 0x8d, 0x95, 0x04, 0xd6, 0x38, 0x51, 0x20, 0x26, 0x29, 0x77, 0x40, 0xc5, 0x24, 0xcd, 0xdc, - 0x15, 0x49, 0xab, 0x09, 0xac, 0x71, 0xa2, 0x40, 0xe6, 0x2f, 0xc2, 0x7d, 0x07, 0x90, 0x3b, 0xfc, - 0xc4, 0x6f, 0xbe, 0xa0, 0x66, 0x7d, 0x74, 0xce, 0x0d, 0xe0, 0x2c, 0x30, 0x61, 0xdc, 0x73, 0x3b, - 0x01, 0xe1, 0xda, 0xad, 0x50, 0x06, 0xaa, 0x27, 0x30, 0x2b, 0xc1, 0x02, 0x62, 0x7e, 0xcd, 0x80, - 0xfc, 0x10, 0xfe, 0x87, 0x62, 0xd4, 0xff, 0x50, 0xe8, 0xf1, 0x3d, 0x04, 0xbd, 0xbe, 0x87, 0x67, - 0x47, 0x1b, 0x8d, 0x41, 0x7c, 0x0e, 0x3f, 0x36, 0x60, 0xae, 0xc7, 0x47, 0x81, 0x76, 0x60, 0xbe, - 0xed, 0xd6, 0xa5, 0x7d, 0x71, 0xc1, 0xf2, 0x77, 0x18, 0x4c, 0x34, 0xef, 0x71, 0x3a, 0x92, 0x95, - 0x04, 0xf8, 0x9d, 0x6e, 0x71, 0x41, 0x11, 0x89, 0x21, 0xe0, 0x44, 0x8a, 0xa8, 0x0d, 0xf9, 0x6d, - 0x9b, 0x34, 0xeb, 0xe1, 0x14, 0x1c, 0xd1, 0x92, 0x38, 0x2f, 0xa8, 0x71, 0xf7, 0x9c, 0xfc, 0x87, - 0x15, 0x17, 0xf3, 0x0a, 0x4c, 0x47, 0x9d, 0xb5, 0x03, 0x0c, 0xde, 0x19, 0xc8, 0x5a, 0x9e, 0x23, - 0x86, 0x6e, 0x52, 0x20, 0x64, 0x4b, 0xf8, 0x12, 0xa6, 0xe5, 0xe6, 0x4f, 0xc7, 0x60, 0xa6, 0xdc, - 0xec, 0x90, 0x67, 0x3d, 0x42, 0xe4, 0xf9, 0xb4, 0x04, 0x33, 0x6d, 0x8f, 0xec, 0xda, 0xe4, 0x56, - 0x95, 0x34, 0x49, 0x2d, 0x70, 0x3d, 0x41, 0xff, 0xb4, 0xa8, 0x3e, 0x53, 0x89, 0x82, 0x71, 0x1c, - 0x1f, 0x3d, 0x03, 0xd3, 0x56, 0x2d, 0xb0, 0x77, 0x89, 0xa2, 0xc0, 0x05, 0x78, 0x9b, 0xa0, 0x30, - 0x5d, 0x8a, 0x40, 0x71, 0x0c, 0x1b, 0x7d, 0x08, 0x16, 0xfc, 0x9a, 0xd5, 0x24, 0x57, 0xdb, 0x82, - 0xd5, 0xca, 0x0e, 0xa9, 0xdd, 0xac, 0xb8, 0xb6, 0x13, 0x08, 0x6f, 0xc4, 0x03, 0x82, 0xd2, 0x42, - 0xb5, 0x0f, 0x1e, 0xee, 0x4b, 0x01, 0xfd, 0xb9, 0x01, 0x67, 0xda, 0x1e, 0xa9, 0x78, 0x6e, 0xcb, - 0xa5, 0x6a, 0xa6, 0xe7, 0x88, 0x2e, 0x8e, 0xaa, 0xd7, 0x46, 0xd4, 0xa7, 0xbc, 0xa4, 0xd7, 0x45, - 0xf8, 0xf6, 0xfd, 0x6e, 0xf1, 0x4c, 0xe5, 0x20, 0x01, 0xf0, 0xc1, 0xf2, 0xa1, 0xbf, 0x34, 0xe0, - 0x6c, 0xdb, 0xf5, 0x83, 0x03, 0x9a, 0x90, 0x3b, 0xd6, 0x26, 0x98, 0xfb, 0xdd, 0xe2, 0xd9, 0xca, - 0x81, 0x12, 0xe0, 0x43, 0x24, 0x34, 0xf7, 0x27, 0x61, 0x4e, 0x9b, 0x7b, 0xe2, 0xfc, 0xfa, 0x14, - 0x9c, 0x90, 0x93, 0x21, 0x54, 0xeb, 0x85, 0xd0, 0xdf, 0x50, 0xd2, 0x81, 0x38, 0x8a, 0x4b, 0xe7, - 0x9d, 0x9a, 0x8a, 0xbc, 0x76, 0x6c, 0xde, 0x55, 0x22, 0x50, 0x1c, 0xc3, 0x46, 0x6b, 0x70, 0x52, - 0x94, 0x60, 0xd2, 0x6e, 0xda, 0x35, 0x6b, 0xc5, 0xed, 0x88, 0x29, 0x97, 0x2b, 0x9f, 0xde, 0xef, - 0x16, 0x4f, 0x56, 0x7a, 0xc1, 0x38, 0xa9, 0x0e, 0x5a, 0x87, 0x79, 0xab, 0x13, 0xb8, 0xaa, 0xfd, - 0xe7, 0x1c, 0xaa, 0x29, 0xea, 0x6c, 0x6a, 0xe5, 0xb9, 0x4a, 0x29, 0x25, 0xc0, 0x71, 0x62, 0x2d, - 0x54, 0x89, 0x51, 0xab, 0x92, 0x9a, 0xeb, 0xd4, 0xf9, 0x28, 0xe7, 0x42, 0x2b, 0xbc, 0x94, 0x80, - 0x83, 0x13, 0x6b, 0xa2, 0x26, 0x4c, 0xb7, 0xac, 0xdb, 0x57, 0x1d, 0x6b, 0xd7, 0xb2, 0x9b, 0x94, - 0x89, 0xf0, 0x61, 0xf4, 0x3f, 0x58, 0x77, 0x02, 0xbb, 0xb9, 0xc4, 0xaf, 0xf3, 0x96, 0xd6, 0x9c, - 0xe0, 0xb2, 0x57, 0x0d, 0xa8, 0xb5, 0xc6, 0x8d, 0xa3, 0x8d, 0x08, 0x2d, 0x1c, 0xa3, 0x8d, 0x2e, - 0xc3, 0x29, 0xb6, 0x1c, 0x57, 0xdd, 0x5b, 0xce, 0x2a, 0x69, 0x5a, 0x7b, 0xb2, 0x01, 0x13, 0xac, - 0x01, 0xf7, 0xee, 0x77, 0x8b, 0xa7, 0xaa, 0x49, 0x08, 0x38, 0xb9, 0x1e, 0xb2, 0xe0, 0xbe, 0x28, - 0x00, 0x93, 0x5d, 0xdb, 0xb7, 0x5d, 0x87, 0x7b, 0x22, 0xf2, 0xa1, 0x27, 0xa2, 0xda, 0x1f, 0x0d, - 0x1f, 0x44, 0x03, 0xfd, 0xb6, 0x01, 0xf3, 0x49, 0xcb, 0x70, 0xa1, 0x90, 0xc6, 0x65, 0x45, 0x6c, - 0x69, 0xf1, 0x19, 0x91, 0xb8, 0x29, 0x24, 0x0a, 0x81, 0x5e, 0x36, 0x60, 0xca, 0xd2, 0x4e, 0x51, - 0x0b, 0xc0, 0xa4, 0xba, 0x38, 0xea, 0x59, 0x3e, 0xa4, 0x58, 0x9e, 0xdd, 0xef, 0x16, 0x23, 0x27, - 0x35, 0x1c, 0xe1, 0x88, 0x7e, 0xd7, 0x80, 0x53, 0x89, 0x6b, 0x7c, 0x61, 0xf2, 0x38, 0x7a, 0x88, - 0x4d, 0x92, 0xe4, 0x3d, 0x27, 0x59, 0x0c, 0xf4, 0xba, 0xa1, 0x54, 0xd9, 0x86, 0xf4, 0xa6, 0x4c, - 0x31, 0xd1, 0xae, 0x8c, 0x78, 0x70, 0x0c, 0x0d, 0x02, 0x49, 0xb8, 0x7c, 0x52, 0xd3, 0x8c, 0xb2, - 0x10, 0xc7, 0xd9, 0xa3, 0xcf, 0x1a, 0x52, 0x35, 0x2a, 0x89, 0x4e, 0x1c, 0x97, 0x44, 0x28, 0xd4, - 0xb4, 0x4a, 0xa0, 0x18, 0x73, 0xf4, 0x61, 0x58, 0xb4, 0xb6, 0x5c, 0x2f, 0x48, 0x5c, 0x7c, 0x0b, - 0xd3, 0x6c, 0x19, 0x9d, 0xdd, 0xef, 0x16, 0x17, 0x4b, 0x7d, 0xb1, 0xf0, 0x01, 0x14, 0xcc, 0x3f, - 0xce, 0xc1, 0x14, 0x37, 0xf2, 0x85, 0xea, 0xfa, 0xaa, 0x01, 0xf7, 0xd7, 0x3a, 0x9e, 0x47, 0x9c, - 0xa0, 0x1a, 0x90, 0x76, 0xaf, 0xe2, 0x32, 0x8e, 0x55, 0x71, 0x3d, 0xb0, 0xdf, 0x2d, 0xde, 0xbf, - 0x72, 0x00, 0x7f, 0x7c, 0xa0, 0x74, 0xe8, 0x6f, 0x0c, 0x30, 0x05, 0x42, 0xd9, 0xaa, 0xdd, 0x6c, - 0x78, 0x6e, 0xc7, 0xa9, 0xf7, 0x36, 0x22, 0x73, 0xac, 0x8d, 0x78, 0x68, 0xbf, 0x5b, 0x34, 0x57, - 0x0e, 0x95, 0x02, 0x0f, 0x20, 0x29, 0x7a, 0x16, 0xe6, 0x04, 0xd6, 0xb9, 0xdb, 0x6d, 0xe2, 0xd9, - 0xd4, 0x9c, 0x16, 0xf7, 0xe9, 0x61, 0x88, 0x42, 0x1c, 0x01, 0xf7, 0xd6, 0x41, 0x3e, 0x4c, 0xdc, - 0x22, 0x76, 0x63, 0x27, 0x90, 0xe6, 0xd3, 0x88, 0x71, 0x09, 0xe2, 0xc0, 0x7f, 0x9d, 0xd3, 0x2c, - 0x4f, 0xee, 0x77, 0x8b, 0x13, 0xe2, 0x0f, 0x96, 0x9c, 0xd0, 0x25, 0x98, 0xe6, 0x47, 0xb0, 0x8a, - 0xed, 0x34, 0x2a, 0xae, 0xc3, 0x6f, 0xf3, 0x0b, 0xe5, 0x87, 0xa4, 0xc2, 0xaf, 0x46, 0xa0, 0x77, - 0xba, 0xc5, 0x29, 0xf9, 0x7b, 0x73, 0xaf, 0x4d, 0x70, 0xac, 0xb6, 0xf9, 0xcd, 0x71, 0x00, 0x39, - 0x5d, 0x49, 0x1b, 0xfd, 0x3f, 0x28, 0xf8, 0x24, 0xe0, 0x5c, 0x85, 0xf3, 0x9c, 0xdf, 0x49, 0xc8, - 0x42, 0x1c, 0xc2, 0xd1, 0x4d, 0xc8, 0xb5, 0xad, 0x8e, 0x4f, 0xc4, 0xe0, 0x5f, 0x4c, 0x65, 0xf0, - 0x2b, 0x94, 0x22, 0x3f, 0x73, 0xb1, 0x9f, 0x98, 0xf3, 0x40, 0x9f, 0x32, 0x00, 0x48, 0x74, 0xc0, - 0x46, 0xf6, 0x7d, 0x08, 0x96, 0xe1, 0x98, 0xd2, 0x3e, 0x28, 0x4f, 0xef, 0x77, 0x8b, 0xa0, 0x0d, - 0xbd, 0xc6, 0x16, 0xdd, 0x82, 0xbc, 0x25, 0xf7, 0xfc, 0xb1, 0xe3, 0xd8, 0xf3, 0xd9, 0x51, 0x48, - 0x4d, 0x5a, 0xc5, 0x0c, 0x7d, 0xda, 0x80, 0x69, 0x9f, 0x04, 0x62, 0xa8, 0xe8, 0xce, 0x23, 0x0c, - 0xde, 0x11, 0x27, 0x5d, 0x35, 0x42, 0x93, 0xef, 0xa0, 0xd1, 0x32, 0x1c, 0xe3, 0x2b, 0x45, 0xb9, - 0x40, 0xac, 0x3a, 0xf1, 0xd8, 0x49, 0x5b, 0x58, 0x52, 0xa3, 0x8b, 0xa2, 0xd1, 0x54, 0xa2, 0x68, - 0x65, 0x38, 0xc6, 0x57, 0x8a, 0xb2, 0x61, 0x7b, 0x9e, 0x2b, 0x44, 0xc9, 0xa7, 0x24, 0x8a, 0x46, - 0x53, 0x89, 0xa2, 0x95, 0xe1, 0x18, 0x5f, 0xf3, 0x6f, 0xa7, 0x60, 0x5a, 0x2e, 0xa4, 0xd0, 0xb2, - 0xe7, 0x8e, 0x9d, 0x3e, 0x96, 0xfd, 0x8a, 0x0e, 0xc4, 0x51, 0x5c, 0x5a, 0x99, 0x2f, 0xd5, 0xa8, - 0x61, 0xaf, 0x2a, 0x57, 0x75, 0x20, 0x8e, 0xe2, 0xa2, 0x16, 0xe4, 0xfc, 0x80, 0xb4, 0xe5, 0x3d, - 0xe8, 0x88, 0xd7, 0x74, 0xe1, 0xfe, 0x10, 0xde, 0x74, 0xd0, 0x7f, 0x3e, 0xe6, 0x5c, 0x98, 0x6f, - 0x32, 0x88, 0xb8, 0x2b, 0xc5, 0xe2, 0x48, 0x67, 0x7d, 0x46, 0x3d, 0xa1, 0x7c, 0x34, 0xa2, 0x65, - 0x38, 0xc6, 0x3e, 0xc1, 0xd8, 0xcf, 0x1d, 0xa3, 0xb1, 0xff, 0x3c, 0xe4, 0x5b, 0xd6, 0xed, 0x6a, - 0xc7, 0x6b, 0x1c, 0xfd, 0x50, 0x21, 0x42, 0x94, 0x38, 0x15, 0xac, 0xe8, 0xa1, 0x57, 0x0c, 0x6d, - 0xcb, 0x99, 0x60, 0xc4, 0xaf, 0xa7, 0xbb, 0xe5, 0x28, 0x5d, 0xd9, 0x77, 0xf3, 0xe9, 0x31, 0xbd, - 0xf3, 0x77, 0xdd, 0xf4, 0xa6, 0x66, 0x24, 0x5f, 0x20, 0xca, 0x8c, 0x2c, 0x1c, 0xab, 0x19, 0xb9, - 0x12, 0x61, 0x86, 0x63, 0xcc, 0x99, 0x3c, 0x7c, 0xcd, 0x29, 0x79, 0xe0, 0x58, 0xe5, 0xa9, 0x46, - 0x98, 0xe1, 0x18, 0xf3, 0xfe, 0xe7, 0xcd, 0xc9, 0xe3, 0x39, 0x6f, 0x4e, 0xa5, 0x70, 0xde, 0x3c, - 0xd8, 0x14, 0x3f, 0x31, 0xaa, 0x29, 0x8e, 0x2e, 0x02, 0xaa, 0xef, 0x39, 0x56, 0xcb, 0xae, 0x89, - 0xcd, 0x92, 0xa9, 0xcd, 0x69, 0xe6, 0x8f, 0x58, 0x14, 0x1b, 0x19, 0x5a, 0xed, 0xc1, 0xc0, 0x09, - 0xb5, 0x50, 0x00, 0xf9, 0xb6, 0xb4, 0xb8, 0x66, 0xd2, 0x98, 0xfd, 0xd2, 0x02, 0xe3, 0x57, 0xe5, - 0x74, 0xe1, 0xc9, 0x12, 0xac, 0x38, 0x99, 0xff, 0x69, 0xc0, 0xec, 0x4a, 0xd3, 0xed, 0xd4, 0xaf, - 0x5b, 0x41, 0x6d, 0x87, 0xdf, 0xeb, 0xa2, 0x67, 0x20, 0x6f, 0x3b, 0x01, 0xf1, 0x76, 0xad, 0xa6, - 0xd0, 0x28, 0xa6, 0xbc, 0xfa, 0x5e, 0x13, 0xe5, 0x77, 0xba, 0xc5, 0xe9, 0xd5, 0x8e, 0xc7, 0x02, - 0x26, 0xf9, 0xfe, 0x82, 0x55, 0x1d, 0xf4, 0x25, 0x03, 0xe6, 0xf8, 0xcd, 0xf0, 0xaa, 0x15, 0x58, - 0x57, 0x3a, 0xc4, 0xb3, 0x89, 0xbc, 0x1b, 0x1e, 0x71, 0x6b, 0x89, 0xcb, 0x2a, 0x19, 0xec, 0x85, - 0xa6, 0xf5, 0x46, 0x9c, 0x33, 0xee, 0x15, 0xc6, 0xfc, 0x7c, 0x16, 0xee, 0xed, 0x4b, 0x0b, 0x2d, - 0x42, 0xc6, 0xae, 0x8b, 0xa6, 0x83, 0xa0, 0x9b, 0x59, 0xab, 0xe3, 0x8c, 0x5d, 0x47, 0x4b, 0xcc, - 0x4a, 0xf4, 0x88, 0xef, 0xcb, 0x6b, 0xc2, 0x82, 0x32, 0xe8, 0x44, 0x29, 0xd6, 0x30, 0x50, 0x11, - 0x72, 0x4d, 0x6b, 0x8b, 0x34, 0xc5, 0x09, 0x80, 0xd9, 0x9d, 0xeb, 0xb4, 0x00, 0xf3, 0x72, 0xf4, - 0xcb, 0x06, 0x00, 0x17, 0x90, 0x9e, 0x1f, 0x84, 0x5e, 0xc3, 0xe9, 0x76, 0x13, 0xa5, 0xcc, 0xa5, - 0x0c, 0xff, 0x63, 0x8d, 0x2b, 0xda, 0x84, 0x71, 0x6a, 0x82, 0xba, 0xf5, 0x23, 0xab, 0x31, 0x76, - 0x2d, 0x52, 0x61, 0x34, 0xb0, 0xa0, 0x45, 0xfb, 0xca, 0x23, 0x41, 0xc7, 0x73, 0x68, 0xd7, 0x32, - 0xc5, 0x95, 0xe7, 0x52, 0x60, 0x55, 0x8a, 0x35, 0x0c, 0xf3, 0xcf, 0x32, 0x30, 0x9f, 0x24, 0x3a, - 0xd5, 0x0f, 0xe3, 0x5c, 0x5a, 0x71, 0x98, 0x7d, 0x7f, 0xfa, 0xfd, 0x23, 0x82, 0x1c, 0x54, 0x28, - 0x80, 0x08, 0xc3, 0x12, 0x7c, 0xd1, 0xfb, 0x55, 0x0f, 0x65, 0x8e, 0xd8, 0x43, 0x8a, 0x72, 0xac, - 0x97, 0x1e, 0x80, 0x31, 0x9f, 0x8e, 0x7c, 0x36, 0x7a, 0xe5, 0xc0, 0xc6, 0x88, 0x41, 0x28, 0x46, - 0xc7, 0xb1, 0x03, 0x11, 0xc5, 0xac, 0x30, 0xae, 0x3a, 0x76, 0x80, 0x19, 0xc4, 0xfc, 0x62, 0x06, - 0x16, 0xfb, 0x37, 0x0a, 0x7d, 0xd1, 0x00, 0xa8, 0xd3, 0x03, 0x06, 0x9d, 0x92, 0x32, 0x28, 0xc4, - 0x3a, 0xae, 0x3e, 0x5c, 0x95, 0x9c, 0xc2, 0x08, 0x21, 0x55, 0xe4, 0x63, 0x4d, 0x10, 0xf4, 0xa8, - 0x9c, 0xfa, 0x97, 0xac, 0x96, 0x34, 0x40, 0x55, 0x9d, 0x0d, 0x05, 0xc1, 0x1a, 0x16, 0x3d, 0x41, - 0x3a, 0x56, 0x8b, 0xf8, 0x6d, 0x4b, 0x85, 0xa9, 0xb3, 0x13, 0xe4, 0x25, 0x59, 0x88, 0x43, 0xb8, - 0xd9, 0x84, 0x07, 0x07, 0x90, 0x33, 0xa5, 0x90, 0x61, 0xf3, 0x3f, 0x0c, 0x38, 0xbd, 0xd2, 0xec, - 0xf8, 0x01, 0xf1, 0xfe, 0xd7, 0x04, 0x5c, 0xfd, 0x97, 0x01, 0xf7, 0xf5, 0x69, 0xf3, 0x5d, 0x88, - 0xbb, 0x7a, 0x31, 0x1a, 0x77, 0x75, 0x75, 0xd4, 0x29, 0x9d, 0xd8, 0x8e, 0x3e, 0xe1, 0x57, 0x01, - 0x9c, 0xa0, 0xbb, 0x56, 0xdd, 0x6d, 0xa4, 0xa4, 0x37, 0x1f, 0x84, 0xdc, 0xc7, 0xa8, 0xfe, 0x89, - 0xcf, 0x31, 0xa6, 0x94, 0x30, 0x87, 0x99, 0x4f, 0x83, 0x08, 0x52, 0x8a, 0x2d, 0x1e, 0x63, 0x90, - 0xc5, 0x63, 0xfe, 0x7d, 0x06, 0x34, 0xcf, 0xc3, 0x5d, 0x98, 0x94, 0x4e, 0x64, 0x52, 0x8e, 0x78, - 0x6a, 0xd6, 0xfc, 0x28, 0xfd, 0x5e, 0x23, 0xec, 0xc6, 0x5e, 0x23, 0x5c, 0x4a, 0x8d, 0xe3, 0xc1, - 0x8f, 0x11, 0xbe, 0x67, 0xc0, 0x7d, 0x21, 0x72, 0xaf, 0x53, 0xf0, 0xf0, 0x1d, 0xe6, 0x09, 0x98, - 0xb4, 0xc2, 0x6a, 0x62, 0x0e, 0xa8, 0x07, 0x38, 0x1a, 0x45, 0xac, 0xe3, 0x85, 0xb1, 0xcf, 0xd9, - 0x23, 0xc6, 0x3e, 0x8f, 0x1d, 0x1c, 0xfb, 0x6c, 0xfe, 0x24, 0x03, 0x67, 0x7a, 0x5b, 0x26, 0xd7, - 0xc6, 0x60, 0x77, 0xe6, 0x4f, 0xc2, 0x54, 0x20, 0x2a, 0x68, 0x3b, 0xbd, 0x7a, 0x3e, 0xb6, 0xa9, - 0xc1, 0x70, 0x04, 0x93, 0xd6, 0xac, 0xf1, 0x55, 0x59, 0xad, 0xb9, 0x6d, 0x19, 0x39, 0xaf, 0x6a, - 0xae, 0x68, 0x30, 0x1c, 0xc1, 0x54, 0x31, 0x89, 0x63, 0xc7, 0x1e, 0x93, 0x58, 0x85, 0x53, 0x32, - 0x0a, 0xeb, 0xbc, 0xeb, 0xad, 0xb8, 0xad, 0x76, 0x93, 0x88, 0xd8, 0x79, 0x2a, 0xec, 0x19, 0x51, - 0xe5, 0x14, 0x4e, 0x42, 0xc2, 0xc9, 0x75, 0xcd, 0xef, 0x65, 0xe1, 0x64, 0xd8, 0xed, 0x2b, 0xae, - 0x53, 0xb7, 0x59, 0x2c, 0xdb, 0x53, 0x30, 0x16, 0xec, 0xb5, 0x65, 0x67, 0xff, 0x1f, 0x29, 0xce, - 0xe6, 0x5e, 0x9b, 0x8e, 0xf6, 0xe9, 0x84, 0x2a, 0xcc, 0x2d, 0xcb, 0x2a, 0xa1, 0x75, 0xb5, 0x3a, - 0xf8, 0x08, 0x3c, 0x1e, 0x9d, 0xcd, 0x77, 0xba, 0xc5, 0x84, 0xd7, 0x93, 0x4b, 0x8a, 0x52, 0x74, - 0xce, 0xa3, 0x1b, 0x30, 0xdd, 0xb4, 0xfc, 0xe0, 0x6a, 0xbb, 0x6e, 0x05, 0x64, 0xd3, 0x6e, 0x11, - 0xb1, 0xe6, 0x86, 0x09, 0x48, 0x57, 0xf7, 0xc8, 0xeb, 0x11, 0x4a, 0x38, 0x46, 0x19, 0xed, 0x02, - 0xa2, 0x25, 0x9b, 0x9e, 0xe5, 0xf8, 0xbc, 0x55, 0x94, 0xdf, 0xf0, 0x01, 0xf0, 0xea, 0x58, 0xb6, - 0xde, 0x43, 0x0d, 0x27, 0x70, 0x40, 0x0f, 0xc1, 0xb8, 0x47, 0x2c, 0x5f, 0x0c, 0x66, 0x21, 0x5c, - 0xff, 0x98, 0x95, 0x62, 0x01, 0xd5, 0x17, 0xd4, 0xf8, 0x21, 0x0b, 0xea, 0x87, 0x06, 0x4c, 0x87, - 0xc3, 0x74, 0x17, 0x94, 0x64, 0x2b, 0xaa, 0x24, 0x2f, 0xa4, 0xb5, 0x25, 0xf6, 0xd1, 0x8b, 0x7f, - 0x35, 0xae, 0xb7, 0x8f, 0x05, 0x24, 0x7f, 0x1c, 0x0a, 0x72, 0x55, 0x4b, 0xeb, 0x73, 0xc4, 0xd3, - 0x6d, 0xc4, 0x2e, 0xd1, 0x1e, 0xd2, 0x08, 0x26, 0x38, 0xe4, 0x47, 0xd5, 0x72, 0x5d, 0xa8, 0x5c, - 0x31, 0xed, 0x95, 0x5a, 0x96, 0xaa, 0x38, 0x49, 0x2d, 0xcb, 0x3a, 0xe8, 0x2a, 0x9c, 0x6e, 0x7b, - 0x2e, 0x7b, 0x5c, 0xb9, 0x4a, 0xac, 0x7a, 0xd3, 0x76, 0x88, 0x74, 0x21, 0xf0, 0x30, 0x86, 0xfb, - 0xf6, 0xbb, 0xc5, 0xd3, 0x95, 0x64, 0x14, 0xdc, 0xaf, 0x6e, 0xf4, 0x41, 0xd0, 0xd8, 0x00, 0x0f, - 0x82, 0x7e, 0x55, 0x39, 0xea, 0x88, 0x2f, 0x9e, 0xe5, 0x7c, 0x30, 0xad, 0xa1, 0x4c, 0xd8, 0xd6, - 0xc3, 0x29, 0x55, 0x12, 0x4c, 0xb1, 0x62, 0xdf, 0xdf, 0x1b, 0x34, 0x7e, 0x44, 0x6f, 0x50, 0x18, - 0xd7, 0x3d, 0xf1, 0xb3, 0x8c, 0xeb, 0xce, 0xbf, 0xa5, 0xe2, 0xba, 0x5f, 0xcd, 0xc1, 0x6c, 0xdc, - 0x02, 0x39, 0xfe, 0xc7, 0x4e, 0xbf, 0x61, 0xc0, 0xac, 0x5c, 0x3d, 0x9c, 0x27, 0x91, 0x7e, 0xfe, - 0xf5, 0x94, 0x16, 0x2d, 0xb7, 0xa5, 0xd4, 0x73, 0xdc, 0xcd, 0x18, 0x37, 0xdc, 0xc3, 0x1f, 0xbd, - 0x00, 0x93, 0xca, 0x1d, 0x7e, 0xa4, 0x97, 0x4f, 0x33, 0xcc, 0x8a, 0x0a, 0x49, 0x60, 0x9d, 0x1e, - 0x7a, 0xd5, 0x00, 0xa8, 0x49, 0x35, 0x27, 0x57, 0xd7, 0x95, 0xb4, 0x56, 0x97, 0x52, 0xa0, 0xa1, - 0xb1, 0xac, 0x8a, 0x7c, 0xac, 0x31, 0x46, 0x9f, 0x67, 0x8e, 0x70, 0x65, 0xdd, 0xd1, 0xf5, 0x94, - 0x1d, 0x3d, 0x14, 0xf7, 0x00, 0xc3, 0x34, 0x34, 0xa5, 0x34, 0x90, 0x8f, 0x23, 0x42, 0x98, 0x4f, - 0x81, 0x0a, 0x9e, 0xa4, 0xdb, 0x16, 0x0b, 0x9f, 0xac, 0x58, 0xc1, 0x8e, 0x98, 0x82, 0x6a, 0xdb, - 0x3a, 0x2f, 0x01, 0x38, 0xc4, 0x31, 0x3f, 0x0a, 0xd3, 0xcf, 0x7a, 0x56, 0x7b, 0xc7, 0x66, 0x0e, - 0x67, 0x7a, 0x4e, 0x7a, 0x27, 0x4c, 0x58, 0xf5, 0x7a, 0xd2, 0x63, 0xf6, 0x12, 0x2f, 0xc6, 0x12, - 0x3e, 0xd8, 0x91, 0xe8, 0x9b, 0x06, 0xa0, 0xf0, 0xd2, 0xce, 0x76, 0x1a, 0x1b, 0xf4, 0xb4, 0x4f, - 0xcf, 0x47, 0x3b, 0xac, 0x34, 0xe9, 0x7c, 0x74, 0x41, 0x41, 0xb0, 0x86, 0x85, 0x5e, 0x82, 0x49, - 0xfe, 0xef, 0x9a, 0x3a, 0xec, 0x8f, 0xfc, 0x14, 0x96, 0x2b, 0x14, 0x26, 0x13, 0x9f, 0x85, 0x17, - 0x42, 0x0e, 0x58, 0x67, 0x47, 0xbb, 0x6a, 0xcd, 0xd9, 0x6e, 0x76, 0x6e, 0xd7, 0xb7, 0xc2, 0xae, - 0x6a, 0x7b, 0xee, 0xb6, 0xdd, 0x24, 0xf1, 0xae, 0xaa, 0xf0, 0x62, 0x2c, 0xe1, 0x83, 0x75, 0xd5, - 0xd7, 0x0d, 0x98, 0x5f, 0xf3, 0x03, 0xdb, 0x5d, 0x25, 0x7e, 0x40, 0xd5, 0x0a, 0xdd, 0x7c, 0x3a, - 0xcd, 0x41, 0xe2, 0xa0, 0x57, 0x61, 0x56, 0x5c, 0x20, 0x76, 0xb6, 0x7c, 0x12, 0x68, 0x76, 0xbc, - 0x5a, 0xc7, 0x2b, 0x31, 0x38, 0xee, 0xa9, 0x41, 0xa9, 0x88, 0x9b, 0xc4, 0x90, 0x4a, 0x36, 0x4a, - 0xa5, 0x1a, 0x83, 0xe3, 0x9e, 0x1a, 0xe6, 0x77, 0xb2, 0x70, 0x92, 0x35, 0x23, 0xf6, 0x86, 0xe1, - 0xb3, 0xfd, 0xde, 0x30, 0x8c, 0xb8, 0x94, 0x19, 0xaf, 0x23, 0xbc, 0x60, 0xf8, 0x75, 0x03, 0x66, - 0xea, 0xd1, 0x9e, 0x4e, 0xc7, 0x3d, 0x93, 0x34, 0x86, 0x3c, 0x5e, 0x2a, 0x56, 0x88, 0xe3, 0xfc, - 0xd1, 0x17, 0x0c, 0x98, 0x89, 0x8a, 0x29, 0x77, 0xf7, 0x63, 0xe8, 0x24, 0x15, 0xe0, 0x1c, 0x2d, - 0xf7, 0x71, 0x5c, 0x04, 0xf3, 0xdb, 0x19, 0x31, 0xa4, 0xc7, 0x11, 0xa0, 0x8f, 0x6e, 0x41, 0x21, - 0x68, 0xfa, 0xbc, 0x50, 0xb4, 0x76, 0xc4, 0x13, 0xe1, 0xe6, 0x7a, 0x95, 0xdf, 0xdd, 0x87, 0x46, - 0x9b, 0x28, 0xa1, 0xc6, 0xa7, 0xe4, 0xc5, 0x18, 0xd7, 0xda, 0x82, 0x71, 0x2a, 0x47, 0xd1, 0xcd, - 0x95, 0x4a, 0x9c, 0xb1, 0x28, 0xa1, 0x8c, 0x25, 0x2f, 0xf3, 0xcb, 0x06, 0x14, 0x2e, 0xba, 0x72, - 0x1f, 0xf9, 0x70, 0x0a, 0x8e, 0x1e, 0x65, 0x0f, 0xaa, 0x3b, 0xc2, 0xf0, 0x88, 0xf1, 0x4c, 0xc4, - 0xcd, 0x73, 0xbf, 0x46, 0x7b, 0x89, 0x25, 0xea, 0xa1, 0xa4, 0x2e, 0xba, 0x5b, 0x7d, 0xbd, 0x88, - 0xbf, 0x97, 0x83, 0x13, 0xcf, 0x59, 0x7b, 0xc4, 0x09, 0xac, 0xe1, 0x95, 0xc4, 0x13, 0x30, 0x69, - 0xb5, 0x59, 0xa0, 0xb0, 0x66, 0xe3, 0x87, 0x9e, 0x93, 0x10, 0x84, 0x75, 0xbc, 0x70, 0x43, 0xe3, - 0x79, 0x43, 0x92, 0xb6, 0xa2, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0x40, 0x17, 0x01, 0x89, 0x57, 0x90, - 0xa5, 0x5a, 0xcd, 0xed, 0x38, 0x7c, 0x4b, 0xe3, 0x4e, 0x15, 0x75, 0xd8, 0xdc, 0xe8, 0xc1, 0xc0, - 0x09, 0xb5, 0xd0, 0x87, 0x60, 0xa1, 0xc6, 0x28, 0x8b, 0xa3, 0x87, 0x4e, 0x91, 0x1f, 0x3f, 0x55, - 0x90, 0xfe, 0x4a, 0x1f, 0x3c, 0xdc, 0x97, 0x02, 0x95, 0xd4, 0x0f, 0x5c, 0xcf, 0x6a, 0x10, 0x9d, - 0xee, 0x78, 0x54, 0xd2, 0x6a, 0x0f, 0x06, 0x4e, 0xa8, 0x85, 0x3e, 0x09, 0x85, 0x60, 0xc7, 0x23, - 0xfe, 0x8e, 0xdb, 0xac, 0x8b, 0xa0, 0x81, 0x11, 0x3d, 0x6d, 0x62, 0xf4, 0x37, 0x25, 0x55, 0x6d, - 0x7a, 0xcb, 0x22, 0x1c, 0xf2, 0x44, 0x1e, 0x8c, 0xfb, 0x35, 0xb7, 0x4d, 0x7c, 0x61, 0xb2, 0x5f, - 0x4c, 0x85, 0x3b, 0xf3, 0x1c, 0x69, 0x3e, 0x3e, 0xc6, 0x01, 0x0b, 0x4e, 0xe6, 0x37, 0x32, 0x30, - 0xa5, 0x23, 0x0e, 0xb0, 0x37, 0x7d, 0xca, 0x80, 0xa9, 0x9a, 0xeb, 0x04, 0x9e, 0xdb, 0xe4, 0xfe, - 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd4, 0x5c, 0x61, 0x1a, 0x1b, 0x1c, - 0x61, 0x8a, 0x3e, 0x63, 0xc0, 0x4c, 0x18, 0x63, 0x16, 0x3a, 0xd2, 0x52, 0x15, 0x44, 0x6d, 0xf5, - 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x05, 0xb3, 0xf1, 0xd1, 0xa6, 0x5d, 0xd9, 0xb6, 0xc4, - 0x5a, 0xcf, 0x86, 0x5d, 0x59, 0xb1, 0x7c, 0x1f, 0x33, 0x08, 0x7a, 0x04, 0xf2, 0x2d, 0xcb, 0x6b, - 0xd8, 0x8e, 0xd5, 0x64, 0xbd, 0x98, 0xd5, 0x36, 0x24, 0x51, 0x8e, 0x15, 0x86, 0xf9, 0x6e, 0x98, - 0xda, 0xb0, 0x9c, 0x06, 0xa9, 0x8b, 0x7d, 0xf8, 0xf0, 0x27, 0x62, 0x3f, 0x1a, 0x83, 0x49, 0xed, - 0x6c, 0x76, 0xfc, 0xe7, 0xac, 0x48, 0x2a, 0x87, 0x6c, 0x8a, 0xa9, 0x1c, 0x9e, 0x07, 0xd8, 0xb6, - 0x1d, 0xdb, 0xdf, 0x39, 0x62, 0x92, 0x08, 0x76, 0x45, 0x7b, 0x5e, 0x51, 0xc0, 0x1a, 0xb5, 0xf0, - 0x1e, 0x2c, 0x77, 0x40, 0xea, 0x9c, 0x57, 0x0d, 0x4d, 0xdd, 0x8c, 0xa7, 0x71, 0xef, 0xaf, 0x0d, - 0xcc, 0x92, 0x54, 0x3f, 0xe7, 0x9c, 0xc0, 0xdb, 0x3b, 0x50, 0x2b, 0x6d, 0x42, 0xde, 0x23, 0x7e, - 0xa7, 0x45, 0x4f, 0x8c, 0x13, 0x43, 0x77, 0x03, 0x8b, 0x99, 0xc0, 0xa2, 0x3e, 0x56, 0x94, 0x16, - 0x9f, 0x82, 0x13, 0x11, 0x11, 0xd0, 0x2c, 0x64, 0x6f, 0x92, 0x3d, 0x3e, 0x4f, 0x30, 0xfd, 0x89, - 0xe6, 0x23, 0xb7, 0x85, 0xa2, 0x5b, 0xde, 0x97, 0x79, 0xd2, 0x30, 0x5d, 0x48, 0x74, 0x00, 0x1c, - 0xe5, 0x32, 0x87, 0x8e, 0x45, 0x53, 0xcb, 0x12, 0xa1, 0xc6, 0x82, 0x47, 0xc6, 0x70, 0x98, 0xf9, - 0x93, 0x71, 0x10, 0x57, 0xd9, 0x03, 0x6c, 0x57, 0xfa, 0x0d, 0x56, 0xe6, 0x08, 0x37, 0x58, 0x17, - 0x61, 0xca, 0x76, 0xec, 0xc0, 0xb6, 0x9a, 0xcc, 0xb9, 0x23, 0xd4, 0xa9, 0x0c, 0x1d, 0x9e, 0x5a, - 0xd3, 0x60, 0x09, 0x74, 0x22, 0x75, 0xd1, 0x15, 0xc8, 0x31, 0x7d, 0x23, 0x26, 0xf0, 0xf0, 0xf7, - 0xed, 0x2c, 0xd4, 0x82, 0xbf, 0x27, 0xe2, 0x94, 0xd8, 0xe1, 0x83, 0xa7, 0xc9, 0x50, 0xc7, 0x6f, - 0x31, 0x8f, 0xc3, 0xc3, 0x47, 0x0c, 0x8e, 0x7b, 0x6a, 0x50, 0x2a, 0xdb, 0x96, 0xdd, 0xec, 0x78, - 0x24, 0xa4, 0x32, 0x1e, 0xa5, 0x72, 0x3e, 0x06, 0xc7, 0x3d, 0x35, 0xd0, 0x36, 0x4c, 0x89, 0x32, - 0x1e, 0xef, 0x34, 0x71, 0xc4, 0x56, 0xb2, 0xb8, 0xb6, 0xf3, 0x1a, 0x25, 0x1c, 0xa1, 0x8b, 0x3a, - 0x30, 0x67, 0x3b, 0x35, 0xd7, 0xa9, 0x35, 0x3b, 0xbe, 0xbd, 0x4b, 0xc2, 0xc7, 0x3c, 0x47, 0x61, - 0x76, 0x6a, 0xbf, 0x5b, 0x9c, 0x5b, 0x8b, 0x93, 0xc3, 0xbd, 0x1c, 0xd0, 0x2b, 0x06, 0x9c, 0xaa, - 0xb9, 0x8e, 0xcf, 0xde, 0x9d, 0xef, 0x92, 0x73, 0x9e, 0xe7, 0x7a, 0x9c, 0x77, 0xe1, 0x88, 0xbc, - 0x99, 0x4f, 0x71, 0x25, 0x89, 0x24, 0x4e, 0xe6, 0x84, 0x5e, 0x84, 0x7c, 0xdb, 0x73, 0x77, 0xed, - 0x3a, 0xf1, 0x44, 0xec, 0xdc, 0x7a, 0x1a, 0x79, 0x30, 0x2a, 0x82, 0x66, 0xb8, 0xf5, 0xc8, 0x12, - 0xac, 0xf8, 0x99, 0x6f, 0x14, 0x60, 0x3a, 0x8a, 0x8e, 0x3e, 0x01, 0xd0, 0xf6, 0xdc, 0x16, 0x09, - 0x76, 0x88, 0x7a, 0x94, 0x71, 0x69, 0xd4, 0x74, 0x0b, 0x92, 0x9e, 0x8c, 0x5e, 0xa1, 0xdb, 0x45, - 0x58, 0x8a, 0x35, 0x8e, 0xc8, 0x83, 0x89, 0x9b, 0x5c, 0xed, 0x0a, 0x2b, 0xe4, 0xb9, 0x54, 0x6c, - 0x26, 0xc1, 0x99, 0xbd, 0x26, 0x10, 0x45, 0x58, 0x32, 0x42, 0x5b, 0x90, 0xbd, 0x45, 0xb6, 0xd2, - 0x79, 0xc2, 0x7c, 0x9d, 0x88, 0xd3, 0x4c, 0x79, 0x62, 0xbf, 0x5b, 0xcc, 0x5e, 0x27, 0x5b, 0x98, - 0x12, 0xa7, 0xed, 0xaa, 0xf3, 0x7b, 0x78, 0xb1, 0x55, 0x8c, 0xd8, 0xae, 0xc8, 0xa5, 0x3e, 0x6f, - 0x97, 0x28, 0xc2, 0x92, 0x11, 0x7a, 0x11, 0x0a, 0xb7, 0xac, 0x5d, 0xb2, 0xed, 0xb9, 0x4e, 0x20, - 0x42, 0xa6, 0x46, 0x8c, 0xd3, 0xbf, 0x2e, 0xc9, 0x09, 0xbe, 0x4c, 0xbd, 0xab, 0x42, 0x1c, 0xb2, - 0x43, 0xbb, 0x90, 0x77, 0xc8, 0x2d, 0x4c, 0x9a, 0x76, 0x2d, 0x9d, 0xb8, 0xf8, 0x4b, 0x82, 0x9a, - 0xe0, 0xcc, 0xf4, 0x9e, 0x2c, 0xc3, 0x8a, 0x17, 0x1d, 0xcb, 0x1b, 0xee, 0x96, 0xd8, 0xa8, 0x46, - 0x1c, 0x4b, 0x75, 0x32, 0xe5, 0x63, 0x79, 0xd1, 0xdd, 0xc2, 0x94, 0x38, 0x5d, 0x23, 0x35, 0x15, - 0xaf, 0x23, 0xb6, 0xa9, 0x4b, 0xe9, 0xc6, 0x29, 0xf1, 0x35, 0x12, 0x96, 0x62, 0x8d, 0x23, 0xed, - 0xdb, 0x86, 0x70, 0x56, 0x8a, 0x8d, 0x6a, 0xc4, 0xbe, 0x8d, 0xba, 0x3e, 0x79, 0xdf, 0xca, 0x32, - 0xac, 0x78, 0x51, 0xbe, 0xb6, 0xf0, 0xfc, 0xa5, 0xb3, 0x55, 0x45, 0xfd, 0x88, 0x9c, 0xaf, 0x2c, - 0xc3, 0x8a, 0x97, 0xf9, 0xe5, 0x71, 0x98, 0xd2, 0xf3, 0x8d, 0x0d, 0x60, 0x23, 0x28, 0xbb, 0x38, - 0x33, 0x8c, 0x5d, 0x4c, 0x0f, 0x42, 0xda, 0x1d, 0x87, 0x74, 0xc2, 0xac, 0xa5, 0x66, 0x16, 0x86, - 0x07, 0x21, 0xad, 0xd0, 0xc7, 0x11, 0xa6, 0x43, 0x84, 0x3d, 0x50, 0xe3, 0x8a, 0x9b, 0x1f, 0xb9, - 0xa8, 0x71, 0x15, 0x31, 0x28, 0x1e, 0x05, 0x08, 0xf3, 0x6e, 0x89, 0xbb, 0x2f, 0x65, 0xb5, 0x69, - 0xf9, 0xc0, 0x34, 0x2c, 0xf4, 0x10, 0x8c, 0x53, 0x05, 0x4d, 0xea, 0xe2, 0xa5, 0xae, 0x3a, 0x6d, - 0x9e, 0x67, 0xa5, 0x58, 0x40, 0xd1, 0x93, 0xd4, 0x96, 0x0a, 0xd5, 0xaa, 0x78, 0x80, 0x3b, 0x1f, - 0xda, 0x52, 0x21, 0x0c, 0x47, 0x30, 0xa9, 0xe8, 0x84, 0x6a, 0x41, 0x36, 0x83, 0x35, 0xd1, 0x99, - 0x6a, 0xc4, 0x1c, 0xc6, 0xbc, 0x1f, 0x31, 0xad, 0xc9, 0x66, 0x5e, 0x4e, 0xf3, 0x7e, 0xc4, 0xe0, - 0xb8, 0xa7, 0x06, 0x6d, 0x8c, 0xb8, 0xb6, 0x9b, 0xe4, 0xd1, 0x9d, 0x7d, 0x2e, 0xdc, 0x5e, 0xd3, - 0x4f, 0x04, 0x53, 0x6c, 0xe8, 0xdf, 0x9f, 0x5e, 0xee, 0xbc, 0xc1, 0x8f, 0x04, 0xa3, 0x19, 0xef, - 0x1f, 0x85, 0xe9, 0xe8, 0x5e, 0x99, 0xba, 0x7f, 0xfe, 0xaf, 0xb3, 0x70, 0xf2, 0x52, 0xc3, 0x76, - 0x6e, 0xc7, 0x1c, 0xdb, 0x49, 0x39, 0x6d, 0x8d, 0x61, 0x73, 0xda, 0x86, 0x4f, 0x7e, 0x44, 0xd2, - 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, 0xfb, 0xad, 0x3a, 0xb7, - 0x5e, 0xad, 0xa6, 0x28, 0x0d, 0x99, 0xca, 0x15, 0xed, 0x8f, 0xa8, 0x8b, 0x7a, 0x1b, 0xbf, 0x54, - 0x3a, 0x80, 0x2b, 0x1f, 0xf1, 0x77, 0x88, 0x16, 0xdc, 0x7f, 0x10, 0x2a, 0x3e, 0x50, 0xfc, 0xc5, - 0xcb, 0xf0, 0xf6, 0x43, 0x19, 0x0d, 0x35, 0x5b, 0x3e, 0x65, 0x40, 0x81, 0xbb, 0x4f, 0x31, 0xd9, - 0xa6, 0x5b, 0x85, 0xd5, 0xb6, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, 0x03, 0x5e, 0xa9, 0xb2, - 0x26, 0x20, 0x58, 0xc3, 0xa2, 0x9b, 0xf1, 0x4d, 0xdb, 0xa9, 0x8b, 0x61, 0x52, 0x9b, 0xf1, 0x73, - 0xb6, 0x53, 0xc7, 0x0c, 0xa2, 0xb6, 0xeb, 0x6c, 0x5f, 0xb7, 0xc6, 0x1b, 0x06, 0x4c, 0xb3, 0x77, - 0x8e, 0xe1, 0xd1, 0xe3, 0x09, 0x15, 0xd3, 0xc2, 0xc5, 0x38, 0x13, 0x8d, 0x69, 0xb9, 0xd3, 0x2d, - 0x4e, 0xf2, 0x97, 0x91, 0xd1, 0x10, 0x97, 0x0f, 0x0a, 0x7f, 0x05, 0x8b, 0xbc, 0xc9, 0x0c, 0x7d, - 0x9c, 0x56, 0xfe, 0xbc, 0xaa, 0x24, 0x82, 0x43, 0x7a, 0xe6, 0x4b, 0x30, 0xa5, 0x3f, 0x58, 0x40, - 0x4f, 0xc0, 0x64, 0xdb, 0x76, 0x1a, 0xd1, 0x87, 0x6d, 0xca, 0xa7, 0x5b, 0x09, 0x41, 0x58, 0xc7, - 0x63, 0xd5, 0xdc, 0xb0, 0x5a, 0xcc, 0x15, 0x5c, 0x71, 0xf5, 0x6a, 0xe1, 0x1f, 0xf3, 0x4f, 0xb2, - 0x70, 0x32, 0xe1, 0x61, 0x0c, 0x7a, 0xd5, 0x80, 0x71, 0x16, 0xa5, 0x2f, 0xa3, 0x56, 0x5e, 0x48, - 0xfd, 0xf1, 0xcd, 0x12, 0x7b, 0x0c, 0x20, 0xe6, 0xb1, 0xda, 0x3e, 0x79, 0x21, 0x16, 0xcc, 0xd1, - 0x6f, 0x19, 0x30, 0x69, 0x69, 0x4b, 0x8d, 0x07, 0xf2, 0x6c, 0xa5, 0x2f, 0x4c, 0xcf, 0xca, 0xd2, - 0x02, 0x10, 0xc3, 0x85, 0xa4, 0xcb, 0xb2, 0xf8, 0x5e, 0x98, 0xd4, 0x9a, 0x30, 0xcc, 0x0a, 0x59, - 0x7c, 0x06, 0x66, 0x47, 0x5a, 0x61, 0x1f, 0x80, 0x61, 0x73, 0xc7, 0x51, 0x85, 0x75, 0x4b, 0x7f, - 0x7c, 0xac, 0x7a, 0x5c, 0xbc, 0x3e, 0x16, 0x50, 0x73, 0x0b, 0x66, 0xe3, 0x87, 0xab, 0xd4, 0xef, - 0xad, 0xdf, 0x0d, 0x43, 0x66, 0x7b, 0x33, 0xbf, 0x9d, 0x81, 0x09, 0xf1, 0xba, 0xee, 0x2e, 0xc4, - 0xee, 0xde, 0x8c, 0x5c, 0xea, 0xac, 0xa5, 0xf2, 0x28, 0xb0, 0x6f, 0xe0, 0xae, 0x1f, 0x0b, 0xdc, - 0x7d, 0x2e, 0x1d, 0x76, 0x07, 0x47, 0xed, 0xbe, 0x31, 0x06, 0x33, 0xb1, 0xd7, 0x8a, 0xd4, 0x54, - 0xe9, 0x09, 0x56, 0xbb, 0x9a, 0xea, 0x83, 0x48, 0x15, 0x57, 0x7e, 0x70, 0xdc, 0x9a, 0x1f, 0x49, - 0xaa, 0x79, 0x25, 0xb5, 0x7c, 0xdc, 0x3f, 0xcf, 0xaf, 0x39, 0x6c, 0x1c, 0xd6, 0x3f, 0x1b, 0x70, - 0x6f, 0xdf, 0x47, 0xad, 0x2c, 0x27, 0x8a, 0x17, 0x85, 0x8a, 0x05, 0x99, 0xf2, 0xd3, 0x7d, 0x75, - 0xc3, 0x12, 0x4f, 0x63, 0x11, 0x67, 0x8f, 0x1e, 0x87, 0x29, 0xa6, 0x5a, 0xe9, 0x9e, 0x12, 0x90, - 0xb6, 0x70, 0x10, 0x33, 0x57, 0x61, 0x55, 0x2b, 0xc7, 0x11, 0x2c, 0xf3, 0x4b, 0x06, 0x2c, 0xf4, - 0xcb, 0x90, 0x31, 0xc0, 0xc1, 0xf0, 0x17, 0x62, 0xc1, 0xc5, 0xc5, 0x9e, 0xe0, 0xe2, 0xd8, 0xd1, - 0x50, 0xc6, 0x11, 0x6b, 0xa7, 0xb2, 0xec, 0x21, 0xb1, 0xb3, 0x9f, 0x35, 0xe0, 0x74, 0x9f, 0xd5, - 0xd4, 0x13, 0x64, 0x6e, 0x1c, 0x39, 0xc8, 0x3c, 0x33, 0x68, 0x90, 0xb9, 0xf9, 0xdd, 0x2c, 0xcc, - 0x0a, 0x79, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, 0xda, 0xf3, 0x71, 0xfc, - 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, 0x89, 0x3b, 0xd0, 0xa7, - 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, 0x6a, 0xfe, 0x82, 0x1e, - 0x4c, 0xcc, 0xb7, 0xfa, 0xed, 0x63, 0xc8, 0x75, 0x32, 0x64, 0x5c, 0xb1, 0xf9, 0x6b, 0x59, 0x78, - 0x78, 0x50, 0x42, 0x6f, 0xd1, 0x77, 0x27, 0x7e, 0xe4, 0xdd, 0xc9, 0x5d, 0x52, 0xdb, 0xc7, 0xf2, - 0x04, 0xe5, 0xcb, 0x59, 0xa5, 0xf6, 0x7a, 0xe7, 0xe7, 0x40, 0xb7, 0x89, 0x13, 0xd4, 0xb4, 0x93, - 0xe9, 0x3c, 0xc3, 0xad, 0x70, 0xa2, 0xca, 0x8b, 0xef, 0x74, 0x8b, 0x73, 0x22, 0xc5, 0x5f, 0x95, - 0x04, 0xa2, 0x10, 0xcb, 0x4a, 0xe8, 0x61, 0xc8, 0x7b, 0x1c, 0x2a, 0x23, 0xed, 0xc5, 0x95, 0x2c, - 0x2f, 0xc3, 0x0a, 0x8a, 0x3e, 0xa9, 0xd9, 0xc2, 0x63, 0xc7, 0x95, 0x25, 0xe1, 0xa0, 0x9b, 0xe6, - 0x17, 0x20, 0xef, 0xcb, 0xc4, 0x9c, 0xfc, 0x3a, 0xe0, 0xb1, 0x01, 0x1f, 0x70, 0xd0, 0xa3, 0x93, - 0xcc, 0xd2, 0xc9, 0xdb, 0xa7, 0x72, 0x78, 0x2a, 0x92, 0xc8, 0x54, 0xa7, 0x16, 0xee, 0x63, 0x84, - 0x84, 0x13, 0xcb, 0xf7, 0x0c, 0x98, 0x14, 0xa3, 0x75, 0x17, 0xde, 0x94, 0xdc, 0x88, 0xbe, 0x29, - 0x39, 0x97, 0xca, 0xde, 0xd1, 0xe7, 0x41, 0xc9, 0x0d, 0x98, 0xd2, 0x73, 0x37, 0xa1, 0xe7, 0xb5, - 0xbd, 0xcf, 0x18, 0x25, 0x1b, 0x8a, 0xdc, 0x1d, 0xc3, 0x7d, 0xd1, 0xfc, 0x9d, 0xbc, 0xea, 0x45, - 0xe6, 0x87, 0xd0, 0xe7, 0xa0, 0x71, 0xe0, 0x1c, 0xd4, 0xa7, 0x40, 0x26, 0xfd, 0x29, 0x70, 0x05, - 0xf2, 0x72, 0x83, 0x12, 0x6a, 0xfc, 0x41, 0x3d, 0xca, 0x8e, 0xda, 0x02, 0x94, 0x98, 0x36, 0x71, - 0xd9, 0x51, 0x4b, 0x8d, 0xa1, 0xda, 0x38, 0x15, 0x19, 0xf4, 0x22, 0x4c, 0xde, 0x72, 0xbd, 0x9b, - 0x4d, 0xd7, 0x62, 0x29, 0x77, 0x21, 0x8d, 0x8b, 0x1d, 0xe5, 0xf0, 0xe2, 0xa1, 0xce, 0xd7, 0x43, - 0xfa, 0x58, 0x67, 0x86, 0x4a, 0x30, 0xd3, 0xb2, 0x1d, 0x4c, 0xac, 0xba, 0x7a, 0x3a, 0x32, 0xc6, - 0x73, 0x82, 0x4a, 0x23, 0x77, 0x23, 0x0a, 0xc6, 0x71, 0x7c, 0xf4, 0x71, 0xc8, 0xfb, 0x22, 0x13, - 0x52, 0x3a, 0x57, 0x70, 0xea, 0xcc, 0xc8, 0x89, 0x86, 0x7d, 0x27, 0x4b, 0xb0, 0x62, 0x88, 0xd6, - 0x61, 0xde, 0x13, 0xb9, 0x46, 0x22, 0x1f, 0xec, 0xe0, 0xeb, 0x93, 0xa5, 0x9e, 0xc4, 0x09, 0x70, - 0x9c, 0x58, 0x8b, 0x5a, 0x31, 0x2c, 0x09, 0x19, 0xbf, 0x13, 0xd0, 0xdc, 0xe8, 0x6c, 0xc2, 0xd7, - 0xb1, 0x80, 0x1e, 0xf4, 0x14, 0x29, 0x3f, 0xc2, 0x53, 0xa4, 0x2a, 0x9c, 0x8a, 0x83, 0x58, 0x46, - 0x14, 0x96, 0x84, 0x45, 0xd3, 0x1e, 0x95, 0x24, 0x24, 0x9c, 0x5c, 0x17, 0x5d, 0x87, 0x82, 0x47, - 0xd8, 0xf9, 0xa2, 0x24, 0x2f, 0xfd, 0x87, 0x0e, 0x6f, 0xc2, 0x92, 0x00, 0x0e, 0x69, 0xd1, 0x71, - 0xb7, 0xa2, 0x69, 0x31, 0xaf, 0xa4, 0xf8, 0xc9, 0x31, 0x31, 0xf6, 0x7d, 0x32, 0x15, 0x99, 0x6f, - 0x4e, 0xc3, 0x89, 0x88, 0x6f, 0x01, 0x3d, 0x08, 0x39, 0x96, 0x22, 0x86, 0x6d, 0x0f, 0xf9, 0x70, - 0x0b, 0xe3, 0x9d, 0xc3, 0x61, 0xe8, 0x73, 0x06, 0xcc, 0xb4, 0x23, 0x5e, 0x58, 0xb9, 0x73, 0x8e, - 0x78, 0xcf, 0x17, 0x75, 0xed, 0x6a, 0x09, 0xa5, 0xa3, 0xcc, 0x70, 0x9c, 0x3b, 0x5d, 0x80, 0x22, - 0x46, 0xb0, 0x49, 0x3c, 0x86, 0x2d, 0x6c, 0x1c, 0x45, 0x62, 0x25, 0x0a, 0xc6, 0x71, 0x7c, 0x3a, - 0xc2, 0xac, 0x75, 0xa3, 0x7c, 0x8b, 0xa8, 0x24, 0x09, 0xe0, 0x90, 0x16, 0x7a, 0x06, 0xa6, 0x45, - 0x36, 0xc4, 0x8a, 0x5b, 0xbf, 0x60, 0xf9, 0x3b, 0xc2, 0xb8, 0x57, 0x87, 0x91, 0x95, 0x08, 0x14, - 0xc7, 0xb0, 0x59, 0xdb, 0xc2, 0x94, 0x93, 0x8c, 0xc0, 0x78, 0x34, 0xdf, 0xf6, 0x4a, 0x14, 0x8c, - 0xe3, 0xf8, 0xe8, 0x11, 0x6d, 0xdf, 0xe7, 0xf7, 0x74, 0x6a, 0x37, 0x48, 0xd8, 0xfb, 0x4b, 0x30, - 0xd3, 0x61, 0x67, 0xa1, 0xba, 0x04, 0x8a, 0xf5, 0xa8, 0x18, 0x5e, 0x8d, 0x82, 0x71, 0x1c, 0x1f, - 0x3d, 0x05, 0x27, 0x3c, 0xba, 0xbb, 0x29, 0x02, 0xfc, 0xf2, 0x4e, 0xdd, 0xcd, 0x60, 0x1d, 0x88, - 0xa3, 0xb8, 0xe8, 0x59, 0x98, 0x0b, 0x93, 0x87, 0x49, 0x02, 0xfc, 0x36, 0x4f, 0xe5, 0xc5, 0x29, - 0xc5, 0x11, 0x70, 0x6f, 0x1d, 0xf4, 0x4b, 0x30, 0xab, 0xf5, 0xc4, 0x9a, 0x53, 0x27, 0xb7, 0x45, - 0x82, 0x27, 0xf6, 0x69, 0x84, 0x95, 0x18, 0x0c, 0xf7, 0x60, 0xa3, 0xf7, 0xc1, 0x74, 0xcd, 0x6d, - 0x36, 0xd9, 0x1e, 0xc7, 0x73, 0x3d, 0xf3, 0x4c, 0x4e, 0x3c, 0xe7, 0x55, 0x04, 0x82, 0x63, 0x98, - 0xe8, 0x22, 0x20, 0x77, 0xcb, 0x27, 0xde, 0x2e, 0xa9, 0x3f, 0xcb, 0xbf, 0x6e, 0x4a, 0x55, 0xfc, - 0x89, 0x68, 0x84, 0xf2, 0xe5, 0x1e, 0x0c, 0x9c, 0x50, 0x8b, 0xa5, 0xd5, 0xd1, 0x5e, 0x74, 0x4d, - 0xa7, 0xf1, 0x5d, 0x9e, 0xf8, 0xc9, 0xfd, 0xd0, 0xe7, 0x5c, 0x1e, 0x8c, 0xf3, 0x80, 0xf1, 0x74, - 0x52, 0x3a, 0xe9, 0x69, 0x5f, 0x43, 0x1d, 0xc1, 0x4b, 0xb1, 0xe0, 0x84, 0x3e, 0x01, 0x85, 0x2d, - 0x99, 0x03, 0x7c, 0x61, 0x36, 0x0d, 0xbd, 0x18, 0x4b, 0x67, 0x1f, 0x9e, 0x4c, 0x15, 0x00, 0x87, - 0x2c, 0xd1, 0x43, 0x30, 0x79, 0xa1, 0x52, 0x52, 0xb3, 0x70, 0x8e, 0x8d, 0xfe, 0x18, 0xad, 0x82, - 0x75, 0x00, 0x5d, 0x61, 0xca, 0x5e, 0x42, 0x6c, 0x88, 0x43, 0x7d, 0xdb, 0x6b, 0xfe, 0x50, 0x6c, - 0x76, 0x1d, 0x89, 0xab, 0x0b, 0x27, 0x63, 0xd8, 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x02, 0x4c, 0x0a, - 0x7d, 0xc1, 0xf6, 0xa6, 0xf9, 0xa3, 0xbd, 0x16, 0xc4, 0x21, 0x09, 0xac, 0xd3, 0x63, 0xb7, 0x4c, - 0x2c, 0x35, 0x32, 0x39, 0xdf, 0x69, 0x36, 0x17, 0x4e, 0xb1, 0x7d, 0x33, 0xbc, 0x65, 0x0a, 0x41, - 0x58, 0xc7, 0x43, 0x8f, 0xc9, 0xc8, 0x89, 0xb7, 0x45, 0xae, 0xdd, 0x54, 0xe4, 0x84, 0xb2, 0x72, - 0xfb, 0x04, 0x14, 0x9f, 0x3e, 0x24, 0x64, 0x61, 0x0b, 0x16, 0xa5, 0x89, 0xd5, 0xbb, 0x48, 0x16, - 0x16, 0x22, 0x5e, 0x82, 0xc5, 0xeb, 0x7d, 0x31, 0xf1, 0x01, 0x54, 0xd0, 0x16, 0x64, 0xad, 0xe6, - 0xd6, 0xc2, 0xbd, 0x69, 0xd8, 0x8a, 0xea, 0x6b, 0xc5, 0x3c, 0x08, 0xa8, 0xb4, 0x5e, 0xc6, 0x94, - 0xb8, 0xf9, 0x4a, 0x46, 0x79, 0xe5, 0x55, 0xaa, 0xcb, 0x97, 0xf4, 0x59, 0x6d, 0xa4, 0xf1, 0x35, - 0xce, 0x9e, 0x44, 0xf9, 0x5c, 0x21, 0x25, 0xce, 0xe9, 0xb6, 0x5a, 0xc7, 0xa9, 0xe4, 0x31, 0x89, - 0xa6, 0xf1, 0xe4, 0xa7, 0xb9, 0xe8, 0x2a, 0x36, 0xf7, 0x27, 0x94, 0x13, 0x2a, 0x16, 0x0a, 0xe0, - 0x41, 0xce, 0xf6, 0x03, 0xdb, 0x4d, 0xf1, 0x65, 0x5b, 0x2c, 0xff, 0x25, 0x0b, 0x9c, 0x65, 0x00, - 0xcc, 0x59, 0x51, 0x9e, 0x4e, 0xc3, 0x76, 0x6e, 0x8b, 0xe6, 0x5f, 0x49, 0xfd, 0x8e, 0x9f, 0xf3, - 0x64, 0x00, 0xcc, 0x59, 0xa1, 0x1b, 0x7c, 0xa6, 0xa5, 0xf3, 0xe5, 0xd5, 0xf8, 0x07, 0x95, 0xa3, - 0x33, 0x8e, 0xf2, 0xf2, 0x5b, 0xb6, 0xb0, 0x61, 0x46, 0xe4, 0x55, 0xdd, 0x58, 0x4b, 0xe2, 0x55, - 0xdd, 0x58, 0xc3, 0x94, 0x09, 0x7a, 0xcd, 0x00, 0xb0, 0xd4, 0x97, 0x85, 0xd3, 0xf9, 0xaa, 0x44, - 0xbf, 0x2f, 0x15, 0xf3, 0x58, 0xb7, 0x10, 0x8a, 0x35, 0xce, 0xe8, 0x45, 0x98, 0xb0, 0xf8, 0x37, - 0x71, 0x44, 0x18, 0x61, 0x3a, 0x1f, 0x7a, 0x8a, 0x49, 0xc0, 0xe2, 0x27, 0x05, 0x08, 0x4b, 0x86, - 0x94, 0x77, 0xe0, 0x59, 0x64, 0xdb, 0xbe, 0x29, 0xe2, 0x09, 0xab, 0x23, 0xa7, 0xb6, 0xa6, 0xc4, - 0x92, 0x78, 0x0b, 0x10, 0x96, 0x0c, 0xf9, 0xc7, 0x3c, 0x2d, 0xc7, 0x52, 0x8f, 0x43, 0xd2, 0x79, - 0x42, 0xa4, 0x3f, 0x37, 0xd1, 0x3e, 0xe6, 0xa9, 0x33, 0xc2, 0x51, 0xbe, 0xe6, 0x8f, 0xb3, 0x00, - 0xec, 0x27, 0x7f, 0xb0, 0xdc, 0x62, 0x49, 0xee, 0x76, 0xdc, 0xba, 0x58, 0xda, 0x29, 0xbe, 0x3b, - 0x06, 0x91, 0xd1, 0x6e, 0xc7, 0xad, 0x63, 0xc1, 0x04, 0x35, 0x60, 0xac, 0x6d, 0x05, 0x3b, 0xe9, - 0x3f, 0x72, 0xce, 0xf3, 0x97, 0x3b, 0xc1, 0x0e, 0x66, 0x0c, 0xd0, 0xcb, 0x06, 0x4c, 0xf0, 0x67, - 0xce, 0xd2, 0xd5, 0x3c, 0xf2, 0x7d, 0xaa, 0xec, 0xb3, 0x25, 0xfe, 0x96, 0x5a, 0x04, 0x2b, 0x28, - 0xd5, 0x28, 0x4a, 0xb1, 0x64, 0xbb, 0xf8, 0xaa, 0x01, 0x53, 0x3a, 0x6a, 0x42, 0x98, 0xc1, 0x47, - 0xf4, 0x30, 0x83, 0x34, 0xfb, 0x43, 0x8f, 0x58, 0xf8, 0x37, 0x03, 0xb4, 0x4f, 0xa0, 0x86, 0x41, - 0x86, 0xc6, 0xc0, 0x41, 0x86, 0x99, 0x21, 0x83, 0x0c, 0xb3, 0x43, 0x05, 0x19, 0x8e, 0x0d, 0x1f, - 0x64, 0x98, 0xeb, 0x1f, 0x64, 0x68, 0xbe, 0x6e, 0xc0, 0x5c, 0xcf, 0x7e, 0x18, 0xff, 0xd4, 0xbc, - 0x31, 0xe0, 0xa7, 0xe6, 0x57, 0x61, 0x56, 0x24, 0x61, 0xae, 0xb6, 0x9b, 0x76, 0xe2, 0x03, 0xf4, - 0xcd, 0x18, 0x1c, 0xf7, 0xd4, 0x30, 0xff, 0xc2, 0x80, 0x49, 0xed, 0xd9, 0x1a, 0x6d, 0x07, 0x7b, - 0xde, 0x27, 0xc4, 0x08, 0xf3, 0x4f, 0x33, 0xd7, 0x3e, 0x87, 0xf1, 0x5b, 0xa6, 0x86, 0x96, 0xf0, - 0x33, 0xbc, 0x65, 0xa2, 0xa5, 0x58, 0x40, 0x79, 0x2a, 0x47, 0xd2, 0x66, 0x9d, 0x9e, 0xd5, 0x53, - 0x39, 0x92, 0x36, 0x66, 0x10, 0xc6, 0x8e, 0xda, 0x91, 0x22, 0xfe, 0x54, 0x4b, 0x77, 0x6d, 0x79, - 0x01, 0xe6, 0x30, 0x74, 0x06, 0xb2, 0xc4, 0xa9, 0x8b, 0x43, 0xaf, 0xfa, 0xc4, 0xd4, 0x39, 0xa7, - 0x8e, 0x69, 0xb9, 0x79, 0x19, 0xa6, 0xaa, 0xa4, 0xe6, 0x91, 0xe0, 0x39, 0xb2, 0x37, 0xf0, 0x37, - 0xab, 0xe8, 0x6c, 0x8f, 0x7d, 0xb3, 0x8a, 0x56, 0xa7, 0xe5, 0xe6, 0x1f, 0x19, 0x10, 0xcb, 0xc9, - 0xae, 0x79, 0x9c, 0x8d, 0x7e, 0x1e, 0xe7, 0x88, 0x6f, 0x34, 0x73, 0xa0, 0x6f, 0xf4, 0x22, 0xa0, - 0x16, 0x5d, 0x0a, 0x91, 0x2f, 0x10, 0x08, 0x7f, 0x43, 0xf8, 0x48, 0xb6, 0x07, 0x03, 0x27, 0xd4, - 0x32, 0xff, 0x90, 0x0b, 0xab, 0x67, 0x69, 0x3f, 0xbc, 0x03, 0x3a, 0x90, 0x63, 0xa4, 0x84, 0xd3, - 0xa5, 0x32, 0xda, 0xe2, 0xee, 0x4d, 0x36, 0x11, 0x0e, 0xa4, 0x58, 0xf2, 0x8c, 0x9b, 0xf9, 0x5d, - 0x2e, 0xab, 0x96, 0xc6, 0x7d, 0x00, 0x59, 0x5b, 0x51, 0x59, 0x2f, 0xa4, 0xb5, 0x57, 0x26, 0xcb, - 0x88, 0x96, 0x00, 0xda, 0xc4, 0xab, 0x11, 0x27, 0x90, 0x61, 0xd1, 0x39, 0xf1, 0x8c, 0x44, 0x95, - 0x62, 0x0d, 0xc3, 0x7c, 0xd9, 0x80, 0xd9, 0x6a, 0x60, 0xd7, 0x6e, 0xda, 0x0e, 0x7f, 0x16, 0xb5, - 0x6d, 0x37, 0xe8, 0x29, 0x85, 0x88, 0xcf, 0x31, 0x71, 0x37, 0x98, 0xda, 0x8a, 0xe5, 0x57, 0x98, - 0x24, 0x1c, 0x95, 0x60, 0x46, 0x7a, 0xdb, 0xa5, 0xef, 0x92, 0x3f, 0xe7, 0x54, 0xbe, 0x92, 0xd5, - 0x28, 0x18, 0xc7, 0xf1, 0xcd, 0x4f, 0xc2, 0xa4, 0xb6, 0xbf, 0xb2, 0xad, 0xe8, 0xb6, 0x55, 0x0b, - 0xe2, 0x4b, 0xf8, 0x1c, 0x2d, 0xc4, 0x1c, 0xc6, 0x5c, 0xac, 0x3c, 0x6e, 0x36, 0xb6, 0x84, 0x45, - 0xb4, 0xac, 0x80, 0x52, 0x62, 0x1e, 0x69, 0x90, 0xdb, 0x32, 0xb5, 0xa8, 0x24, 0x86, 0x69, 0x21, - 0xe6, 0x30, 0xf3, 0x11, 0xc8, 0xcb, 0x47, 0xf7, 0xec, 0xe5, 0xaa, 0x74, 0xff, 0xe9, 0x2f, 0x57, - 0x5d, 0x2f, 0xc0, 0x0c, 0x62, 0x5e, 0x83, 0xbc, 0xcc, 0x0d, 0x70, 0x38, 0x36, 0x5d, 0x55, 0xbe, - 0x63, 0x5f, 0x70, 0xfd, 0x40, 0x26, 0x34, 0xe0, 0x57, 0x02, 0x97, 0xd6, 0x58, 0x19, 0x56, 0x50, - 0x73, 0x0e, 0x66, 0x94, 0xaf, 0x5f, 0x04, 0x32, 0x7e, 0x23, 0x0b, 0x53, 0x91, 0x4f, 0x01, 0x1f, - 0x3e, 0xdd, 0x06, 0x5f, 0xc5, 0x09, 0x3e, 0xfb, 0xec, 0x90, 0x3e, 0x7b, 0xfd, 0x92, 0x64, 0xec, - 0x78, 0x2f, 0x49, 0x72, 0xe9, 0x5c, 0x92, 0x04, 0x30, 0xe1, 0x0b, 0x45, 0x35, 0x9e, 0x86, 0x33, - 0x25, 0x36, 0x62, 0xdc, 0x46, 0x95, 0xfa, 0x4e, 0xb2, 0x32, 0xbf, 0x9a, 0x83, 0xe9, 0x68, 0x56, - 0xa4, 0x01, 0x46, 0xf2, 0x91, 0x9e, 0x91, 0x1c, 0xd2, 0x67, 0x99, 0x1d, 0xd5, 0x67, 0x39, 0x36, - 0xaa, 0xcf, 0x32, 0x77, 0x04, 0x9f, 0x65, 0xaf, 0xc7, 0x71, 0x7c, 0x60, 0x8f, 0xe3, 0xd3, 0x2a, - 0xe0, 0x66, 0x22, 0x72, 0x43, 0x1d, 0x06, 0xdc, 0xa0, 0xe8, 0x30, 0xac, 0xb8, 0xf5, 0xc4, 0xc0, - 0xa5, 0xfc, 0x21, 0xbe, 0x19, 0x2f, 0x31, 0x3e, 0x66, 0xf8, 0x6b, 0x91, 0xb7, 0x0d, 0x11, 0x1b, - 0xf3, 0x04, 0x4c, 0x8a, 0xf9, 0xc4, 0x6c, 0x25, 0x88, 0xda, 0x59, 0xd5, 0x10, 0x84, 0x75, 0x3c, - 0xf6, 0xb5, 0xca, 0xe8, 0xe7, 0x39, 0x99, 0x0b, 0x58, 0xff, 0x5a, 0x65, 0xec, 0x73, 0x9e, 0x71, - 0x7c, 0xf3, 0xe3, 0x70, 0x2a, 0xf1, 0x44, 0xc6, 0x5c, 0x54, 0x4c, 0x8d, 0x93, 0xba, 0x40, 0xd0, - 0xc4, 0x88, 0x25, 0xcd, 0x5d, 0xbc, 0xde, 0x17, 0x13, 0x1f, 0x40, 0xc5, 0xfc, 0x4a, 0x16, 0xa6, - 0xa3, 0x9f, 0x3a, 0x42, 0xb7, 0x94, 0xff, 0x26, 0x15, 0xd7, 0x11, 0x27, 0xab, 0x65, 0xda, 0xe9, - 0xeb, 0x8c, 0xbd, 0xc5, 0xe6, 0xd7, 0x96, 0x4a, 0xfb, 0x73, 0x7c, 0x8c, 0x85, 0x17, 0x54, 0xb0, - 0x63, 0x5f, 0x33, 0x0a, 0x9f, 0x3b, 0x88, 0x63, 0x57, 0xea, 0xdc, 0xc3, 0x07, 0x0c, 0x8a, 0x15, - 0xd6, 0xd8, 0x52, 0xdd, 0xb2, 0x4b, 0x3c, 0x7b, 0xdb, 0x56, 0x9f, 0x69, 0x64, 0x3b, 0xf7, 0x35, - 0x51, 0x86, 0x15, 0xd4, 0x7c, 0x39, 0x03, 0xe1, 0x47, 0x69, 0xd9, 0xf7, 0x40, 0x7c, 0xcd, 0xc4, - 0x15, 0xc3, 0x76, 0x71, 0xd4, 0x8f, 0xee, 0x84, 0x14, 0x45, 0x30, 0xa4, 0x56, 0x82, 0x23, 0x1c, - 0x7f, 0x06, 0x1f, 0xa3, 0xb5, 0x60, 0x26, 0xf6, 0x08, 0x34, 0xf5, 0x88, 0xf3, 0x1f, 0x65, 0xa1, - 0xa0, 0x9e, 0xd1, 0xa2, 0xf7, 0x46, 0xfc, 0x0d, 0x85, 0xf2, 0xdb, 0xb5, 0xd4, 0xf7, 0x3b, 0x6e, - 0xfd, 0x4e, 0xb7, 0x38, 0xa3, 0x90, 0x63, 0xbe, 0x83, 0x33, 0x90, 0xed, 0x78, 0xcd, 0xf8, 0x81, - 0xe2, 0x2a, 0x5e, 0xc7, 0xb4, 0x1c, 0xdd, 0x8e, 0x1f, 0xf8, 0x37, 0x52, 0x7a, 0xfa, 0xcb, 0x2d, - 0xef, 0xfe, 0x07, 0x7d, 0xaa, 0x25, 0xb7, 0xdc, 0xfa, 0x5e, 0x3c, 0x55, 0x7e, 0xd9, 0xad, 0xef, - 0x61, 0x06, 0x41, 0xcf, 0xc0, 0x74, 0x60, 0xb7, 0x88, 0xdb, 0x09, 0xf4, 0x4f, 0x7e, 0x66, 0xc3, - 0xcb, 0xc5, 0xcd, 0x08, 0x14, 0xc7, 0xb0, 0xa9, 0x96, 0xbd, 0xe1, 0xbb, 0x0e, 0xcb, 0x7f, 0x37, - 0x1e, 0xbd, 0x89, 0xb8, 0x58, 0xbd, 0x7c, 0x89, 0xf9, 0x3d, 0x14, 0x06, 0xc5, 0xb6, 0xd9, 0x9b, - 0x39, 0x8f, 0x88, 0xbb, 0xfd, 0xd9, 0x30, 0xa3, 0x02, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, - 0x54, 0x5a, 0xa6, 0x51, 0xa6, 0xca, 0x0f, 0x4b, 0xba, 0xb4, 0xec, 0x4e, 0xb7, 0xb8, 0x40, 0x9c, - 0x9a, 0x5b, 0xb7, 0x9d, 0xc6, 0x32, 0x45, 0x5c, 0xc2, 0xd6, 0x2d, 0xa9, 0x6a, 0x54, 0x4d, 0xf3, - 0x2a, 0xcc, 0xc4, 0x3a, 0x4c, 0x1e, 0x00, 0x8d, 0xe4, 0x03, 0xe0, 0x60, 0xd9, 0xed, 0xff, 0xd4, - 0x80, 0xb9, 0x9e, 0x2d, 0x60, 0xd0, 0x07, 0x15, 0x71, 0x65, 0x94, 0x39, 0xba, 0x32, 0xca, 0x0e, - 0xa7, 0x8c, 0xca, 0x5b, 0xdf, 0x7a, 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, - 0xf3, 0xec, 0x3d, 0x2f, 0xef, 0x9f, 0x35, 0xbe, 0xb5, 0x7f, 0xd6, 0xf8, 0xce, 0xfe, 0x59, 0xe3, - 0xfb, 0xfb, 0x67, 0x8d, 0x7f, 0xda, 0x3f, 0x6b, 0xbc, 0xfe, 0xa3, 0xb3, 0xf7, 0x3c, 0xff, 0x74, - 0x38, 0x41, 0x97, 0xe5, 0x04, 0x65, 0x3f, 0xde, 0x25, 0xa7, 0xe3, 0x72, 0xfb, 0x66, 0x63, 0x99, - 0x4e, 0xd0, 0x65, 0x55, 0x22, 0x27, 0xe8, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x2a, 0x23, - 0xab, 0x55, 0x93, 0x00, 0x00, + 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0x3e, 0x27, 0x36, 0xfc, 0x95, 0x94, 0x76, + 0xbd, 0x5a, 0x4b, 0xbb, 0xdc, 0x4b, 0xed, 0x6e, 0xe2, 0xc4, 0x49, 0x46, 0xe4, 0x15, 0x35, 0xbb, + 0xe4, 0x0c, 0x33, 0x33, 0xd4, 0xae, 0x1c, 0x23, 0xb1, 0x1b, 0xd8, 0x4d, 0x8b, 0x04, 0x71, 0x9b, + 0x04, 0x45, 0x51, 0xb4, 0x48, 0x0b, 0x03, 0xfd, 0x49, 0x9f, 0x82, 0x16, 0x7d, 0x09, 0xd0, 0xa2, + 0xf9, 0x69, 0xfa, 0x90, 0x22, 0x29, 0xd0, 0x26, 0x29, 0x10, 0xb6, 0x56, 0xfa, 0xd2, 0xa2, 0x45, + 0x50, 0x20, 0x45, 0x91, 0x7d, 0x2a, 0xee, 0xef, 0xdc, 0x19, 0x0e, 0x25, 0x52, 0x1c, 0x6d, 0x8c, + 0x36, 0x6f, 0xe4, 0x3d, 0xe7, 0x9e, 0x73, 0xee, 0xef, 0x39, 0xf7, 0xdc, 0x73, 0xcf, 0xc0, 0x7a, + 0xc3, 0x0e, 0x76, 0x3a, 0x5b, 0x4b, 0x35, 0xb7, 0xb5, 0x6c, 0x79, 0x0d, 0xb7, 0xed, 0xb9, 0x37, + 0xd8, 0x8f, 0x77, 0x79, 0x6e, 0xb3, 0xe9, 0x76, 0x02, 0x7f, 0xb9, 0x7d, 0xb3, 0xb1, 0x6c, 0xb5, + 0x6d, 0x7f, 0x59, 0x95, 0xec, 0xbe, 0xc7, 0x6a, 0xb6, 0x77, 0xac, 0xf7, 0x2c, 0x37, 0x88, 0x43, + 0x3c, 0x2b, 0x20, 0xf5, 0xa5, 0xb6, 0xe7, 0x06, 0x2e, 0x7a, 0x3a, 0xa4, 0xb6, 0x24, 0xa9, 0xb1, + 0x1f, 0x1f, 0x91, 0x75, 0x97, 0xda, 0x37, 0x1b, 0x4b, 0x94, 0xda, 0x92, 0x2a, 0x91, 0xd4, 0x16, + 0xdf, 0xa5, 0xc9, 0xd2, 0x70, 0x1b, 0xee, 0x32, 0x23, 0xba, 0xd5, 0xd9, 0x66, 0xff, 0xd8, 0x1f, + 0xf6, 0x8b, 0x33, 0x5b, 0x7c, 0xf0, 0xe6, 0x93, 0xfe, 0x92, 0xed, 0x52, 0xd9, 0x96, 0xb7, 0xac, + 0xa0, 0xb6, 0xb3, 0xbc, 0xdb, 0x23, 0xd1, 0xa2, 0xa9, 0x21, 0xd5, 0x5c, 0x8f, 0x24, 0xe1, 0x3c, + 0x1e, 0xe2, 0xb4, 0xac, 0xda, 0x8e, 0xed, 0x10, 0x6f, 0x2f, 0x6c, 0x75, 0x8b, 0x04, 0x56, 0x52, + 0xad, 0xe5, 0x7e, 0xb5, 0xbc, 0x8e, 0x13, 0xd8, 0x2d, 0xd2, 0x53, 0xe1, 0xff, 0x1e, 0x56, 0xc1, + 0xaf, 0xed, 0x90, 0x96, 0xd5, 0x53, 0xef, 0xb1, 0x7e, 0xf5, 0x3a, 0x81, 0xdd, 0x5c, 0xb6, 0x9d, + 0xc0, 0x0f, 0xbc, 0x78, 0x25, 0xf3, 0xeb, 0x59, 0x28, 0x94, 0xd6, 0xcb, 0xd5, 0xc0, 0x0a, 0x3a, + 0x3e, 0x7a, 0xcd, 0x80, 0xa9, 0xa6, 0x6b, 0xd5, 0xcb, 0x56, 0xd3, 0x72, 0x6a, 0xc4, 0x5b, 0x30, + 0x1e, 0x30, 0x1e, 0x9e, 0x7c, 0x74, 0x7d, 0x69, 0x94, 0xf1, 0x5a, 0x2a, 0xdd, 0xf2, 0x31, 0xf1, + 0xdd, 0x8e, 0x57, 0x23, 0x98, 0x6c, 0x97, 0xe7, 0xbf, 0xd5, 0x2d, 0xde, 0xb3, 0xdf, 0x2d, 0x4e, + 0xad, 0x6b, 0x9c, 0x70, 0x84, 0x2f, 0xfa, 0xa2, 0x01, 0x73, 0x35, 0xcb, 0xb1, 0xbc, 0xbd, 0x4d, + 0xcb, 0x6b, 0x90, 0xe0, 0x59, 0xcf, 0xed, 0xb4, 0x17, 0x32, 0xc7, 0x20, 0xcd, 0xbd, 0x42, 0x9a, + 0xb9, 0x95, 0x38, 0x3b, 0xdc, 0x2b, 0x01, 0x93, 0xcb, 0x0f, 0xac, 0xad, 0x26, 0xd1, 0xe5, 0xca, + 0x1e, 0xa7, 0x5c, 0xd5, 0x38, 0x3b, 0xdc, 0x2b, 0x81, 0xf9, 0x6a, 0x16, 0xe6, 0x4a, 0xeb, 0xe5, + 0x4d, 0xcf, 0xda, 0xde, 0xb6, 0x6b, 0xd8, 0xed, 0x04, 0xb6, 0xd3, 0x40, 0xef, 0x84, 0x09, 0xdb, + 0x69, 0x78, 0xc4, 0xf7, 0xd9, 0x40, 0x16, 0xca, 0x33, 0x82, 0xe8, 0xc4, 0x1a, 0x2f, 0xc6, 0x12, + 0x8e, 0x9e, 0x80, 0x49, 0x9f, 0x78, 0xbb, 0x76, 0x8d, 0x54, 0x5c, 0x2f, 0x60, 0x3d, 0x9d, 0x2b, + 0x9f, 0x14, 0xe8, 0x93, 0xd5, 0x10, 0x84, 0x75, 0x3c, 0x5a, 0xcd, 0x73, 0xdd, 0x40, 0xc0, 0x59, + 0x47, 0x14, 0xc2, 0x6a, 0x38, 0x04, 0x61, 0x1d, 0x0f, 0xbd, 0x6e, 0xc0, 0xac, 0x1f, 0xd8, 0xb5, + 0x9b, 0xb6, 0x43, 0x7c, 0x7f, 0xc5, 0x75, 0xb6, 0xed, 0xc6, 0x42, 0x8e, 0xf5, 0xe2, 0xa5, 0xd1, + 0x7a, 0xb1, 0x1a, 0xa3, 0x5a, 0x9e, 0xdf, 0xef, 0x16, 0x67, 0xe3, 0xa5, 0xb8, 0x87, 0x3b, 0x5a, + 0x85, 0x59, 0xcb, 0x71, 0xdc, 0xc0, 0x0a, 0x6c, 0xd7, 0xa9, 0x78, 0x64, 0xdb, 0xbe, 0xbd, 0x30, + 0xc6, 0x9a, 0xb3, 0x20, 0x9a, 0x33, 0x5b, 0x8a, 0xc1, 0x71, 0x4f, 0x0d, 0x73, 0x15, 0x16, 0x4a, + 0xad, 0x2d, 0xcb, 0xf7, 0xad, 0xba, 0xeb, 0xc5, 0x46, 0xe3, 0x61, 0xc8, 0xb7, 0xac, 0x76, 0xdb, + 0x76, 0x1a, 0x74, 0x38, 0xb2, 0x0f, 0x17, 0xca, 0x53, 0xfb, 0xdd, 0x62, 0x7e, 0x43, 0x94, 0x61, + 0x05, 0x35, 0x7f, 0x90, 0x81, 0xc9, 0x92, 0x63, 0x35, 0xf7, 0x7c, 0xdb, 0xc7, 0x1d, 0x07, 0x7d, + 0x14, 0xf2, 0x74, 0x77, 0xa9, 0x5b, 0x81, 0x25, 0x56, 0xe4, 0xbb, 0x97, 0xf8, 0x62, 0x5f, 0xd2, + 0x17, 0x7b, 0xd8, 0x2f, 0x14, 0x7b, 0x69, 0xf7, 0x3d, 0x4b, 0x97, 0xb7, 0x6e, 0x90, 0x5a, 0xb0, + 0x41, 0x02, 0xab, 0x8c, 0x44, 0x2b, 0x20, 0x2c, 0xc3, 0x8a, 0x2a, 0x72, 0x61, 0xcc, 0x6f, 0x93, + 0x9a, 0x58, 0x61, 0x1b, 0x23, 0xce, 0xe4, 0x50, 0xf4, 0x6a, 0x9b, 0xd4, 0xca, 0x53, 0x82, 0xf5, + 0x18, 0xfd, 0x87, 0x19, 0x23, 0x74, 0x0b, 0xc6, 0x7d, 0xb6, 0xe7, 0x88, 0xc5, 0x73, 0x39, 0x3d, + 0x96, 0x8c, 0x6c, 0x79, 0x5a, 0x30, 0x1d, 0xe7, 0xff, 0xb1, 0x60, 0x67, 0xfe, 0xbd, 0x01, 0x27, + 0x35, 0xec, 0x92, 0xd7, 0xe8, 0xb4, 0x88, 0x13, 0xa0, 0x07, 0x60, 0xcc, 0xb1, 0x5a, 0x44, 0x2c, + 0x14, 0x25, 0xf2, 0x25, 0xab, 0x45, 0x30, 0x83, 0xa0, 0x07, 0x21, 0xb7, 0x6b, 0x35, 0x3b, 0x84, + 0x75, 0x52, 0xa1, 0x7c, 0x42, 0xa0, 0xe4, 0xae, 0xd1, 0x42, 0xcc, 0x61, 0xe8, 0x25, 0x28, 0xb0, + 0x1f, 0xe7, 0x3d, 0xb7, 0x95, 0x52, 0xd3, 0x84, 0x84, 0xd7, 0x24, 0xd9, 0xf2, 0x89, 0xfd, 0x6e, + 0xb1, 0xa0, 0xfe, 0xe2, 0x90, 0xa1, 0xf9, 0x0f, 0x06, 0xcc, 0x68, 0x8d, 0x5b, 0xb7, 0xfd, 0x00, + 0x7d, 0xa8, 0x67, 0xf2, 0x2c, 0x0d, 0x36, 0x79, 0x68, 0x6d, 0x36, 0x75, 0x66, 0x45, 0x4b, 0xf3, + 0xb2, 0x44, 0x9b, 0x38, 0x0e, 0xe4, 0xec, 0x80, 0xb4, 0xfc, 0x85, 0xcc, 0x03, 0xd9, 0x87, 0x27, + 0x1f, 0x5d, 0x4b, 0x6d, 0x18, 0xc3, 0xfe, 0x5d, 0xa3, 0xf4, 0x31, 0x67, 0x63, 0x7e, 0x65, 0x2c, + 0xd2, 0x42, 0x3a, 0xa3, 0x90, 0x0b, 0x13, 0x2d, 0x12, 0x78, 0x76, 0x8d, 0xaf, 0xab, 0xc9, 0x47, + 0x57, 0x47, 0x93, 0x62, 0x83, 0x11, 0x0b, 0x37, 0x4b, 0xfe, 0xdf, 0xc7, 0x92, 0x0b, 0xda, 0x81, + 0x31, 0xcb, 0x6b, 0xc8, 0x36, 0x9f, 0x4f, 0x67, 0x7c, 0xc3, 0x39, 0x57, 0xf2, 0x1a, 0x3e, 0x66, + 0x1c, 0xd0, 0x32, 0x14, 0x02, 0xe2, 0xb5, 0x6c, 0xc7, 0x0a, 0xf8, 0xee, 0x9a, 0x2f, 0xcf, 0x09, + 0xb4, 0xc2, 0xa6, 0x04, 0xe0, 0x10, 0x07, 0x35, 0x61, 0xbc, 0xee, 0xed, 0xe1, 0x8e, 0xb3, 0x30, + 0x96, 0x46, 0x57, 0xac, 0x32, 0x5a, 0xe1, 0x62, 0xe2, 0xff, 0xb1, 0xe0, 0x81, 0xde, 0x30, 0x60, + 0xbe, 0x45, 0x2c, 0xbf, 0xe3, 0x11, 0xda, 0x04, 0x4c, 0x02, 0xe2, 0xd0, 0xdd, 0x70, 0x21, 0xc7, + 0x98, 0xe3, 0x51, 0xc7, 0xa1, 0x97, 0x72, 0xf9, 0x7e, 0x21, 0xca, 0x7c, 0x12, 0x14, 0x27, 0x4a, + 0x63, 0xfe, 0x60, 0x0c, 0xe6, 0x7a, 0x76, 0x08, 0xf4, 0x38, 0xe4, 0xda, 0x3b, 0x96, 0x2f, 0x97, + 0xfc, 0x59, 0x39, 0xdf, 0x2a, 0xb4, 0xf0, 0x4e, 0xb7, 0x78, 0x42, 0x56, 0x61, 0x05, 0x98, 0x23, + 0x53, 0x9d, 0xda, 0x22, 0xbe, 0x6f, 0x35, 0xe4, 0x3e, 0xa0, 0x4d, 0x13, 0x56, 0x8c, 0x25, 0x1c, + 0xfd, 0x92, 0x01, 0x27, 0xf8, 0x94, 0xc1, 0xc4, 0xef, 0x34, 0x03, 0xba, 0xd7, 0xd1, 0x6e, 0xb9, + 0x98, 0xc6, 0xf4, 0xe4, 0x24, 0xcb, 0xa7, 0x04, 0xf7, 0x13, 0x7a, 0xa9, 0x8f, 0xa3, 0x7c, 0xd1, + 0x75, 0x28, 0xf8, 0x81, 0xe5, 0x05, 0xa4, 0x5e, 0x0a, 0x98, 0x56, 0x9b, 0x7c, 0xf4, 0x7f, 0x0f, + 0xb6, 0x09, 0x6c, 0xda, 0x2d, 0xc2, 0x37, 0x9c, 0xaa, 0x24, 0x80, 0x43, 0x5a, 0xe8, 0x25, 0x00, + 0xaf, 0xe3, 0x54, 0x3b, 0xad, 0x96, 0xe5, 0xed, 0x09, 0x0d, 0x7e, 0x61, 0xb4, 0xe6, 0x61, 0x45, + 0x2f, 0xd4, 0x59, 0x61, 0x19, 0xd6, 0xf8, 0xa1, 0x57, 0x0c, 0x38, 0xc1, 0x67, 0xa2, 0x94, 0x60, + 0x3c, 0x65, 0x09, 0xe6, 0x68, 0xd7, 0xae, 0xea, 0x2c, 0x70, 0x94, 0xa3, 0xf9, 0xb7, 0x51, 0x7d, + 0x52, 0x0d, 0xa8, 0x75, 0xdd, 0xd8, 0x43, 0x1f, 0x84, 0x7b, 0xfd, 0x4e, 0xad, 0x46, 0x7c, 0x7f, + 0xbb, 0xd3, 0xc4, 0x1d, 0xe7, 0x82, 0xed, 0x07, 0xae, 0xb7, 0xb7, 0x6e, 0xb7, 0xec, 0x80, 0xcd, + 0xb8, 0x5c, 0xf9, 0xcc, 0x7e, 0xb7, 0x78, 0x6f, 0xb5, 0x1f, 0x12, 0xee, 0x5f, 0x1f, 0x59, 0x70, + 0x5f, 0xc7, 0xe9, 0x4f, 0x9e, 0x5b, 0x6f, 0xc5, 0xfd, 0x6e, 0xf1, 0xbe, 0xab, 0xfd, 0xd1, 0xf0, + 0x41, 0x34, 0xcc, 0x7f, 0x31, 0x60, 0x56, 0xb6, 0x6b, 0x93, 0xb4, 0xda, 0x4d, 0xba, 0xbb, 0x1c, + 0xbf, 0x21, 0x12, 0x44, 0x0c, 0x11, 0x9c, 0x8e, 0x3a, 0x91, 0xf2, 0xf7, 0xb3, 0x46, 0xcc, 0x7f, + 0x36, 0x60, 0x3e, 0x8e, 0x7c, 0x17, 0x94, 0xa7, 0x1f, 0x55, 0x9e, 0x97, 0xd2, 0x6d, 0x6d, 0x1f, + 0x0d, 0xfa, 0xda, 0x58, 0x6f, 0x5b, 0xff, 0xbb, 0xab, 0xd1, 0x50, 0x2b, 0x66, 0x7f, 0x96, 0x5a, + 0x71, 0xec, 0x2d, 0xa5, 0x15, 0x7f, 0x7f, 0x0c, 0xa6, 0x4a, 0x4e, 0x60, 0x97, 0xb6, 0xb7, 0x6d, + 0xc7, 0x0e, 0xf6, 0xd0, 0x67, 0x32, 0xb0, 0xdc, 0xf6, 0xc8, 0x36, 0xf1, 0x3c, 0x52, 0x5f, 0xed, + 0x78, 0xb6, 0xd3, 0xa8, 0xd6, 0x76, 0x48, 0xbd, 0xd3, 0xb4, 0x9d, 0xc6, 0x5a, 0xc3, 0x71, 0x55, + 0xf1, 0xb9, 0xdb, 0xa4, 0xd6, 0x61, 0x4d, 0xe2, 0x8b, 0xa2, 0x35, 0x5a, 0x93, 0x2a, 0xc3, 0x31, + 0x2d, 0x3f, 0xb6, 0xdf, 0x2d, 0x2e, 0x0f, 0x59, 0x09, 0x0f, 0xdb, 0x34, 0xf4, 0xe9, 0x0c, 0x2c, + 0x79, 0xe4, 0x63, 0x1d, 0x7b, 0xf0, 0xde, 0xe0, 0xbb, 0x56, 0x73, 0x44, 0xf5, 0x33, 0x14, 0xcf, + 0xf2, 0xa3, 0xfb, 0xdd, 0xe2, 0x90, 0x75, 0xf0, 0x90, 0xed, 0x32, 0xbf, 0x96, 0x81, 0x53, 0xa5, + 0x76, 0x7b, 0x83, 0xf8, 0x3b, 0xb1, 0x43, 0xed, 0xe7, 0x0c, 0x98, 0xde, 0xb5, 0xbd, 0xa0, 0x63, + 0x35, 0xa5, 0x13, 0x80, 0x4f, 0x89, 0xea, 0x88, 0xcb, 0x99, 0x73, 0xbb, 0x16, 0x21, 0x5d, 0x46, + 0xfb, 0xdd, 0xe2, 0x74, 0xb4, 0x0c, 0xc7, 0xd8, 0xa3, 0x5f, 0x37, 0x60, 0x56, 0x14, 0x5d, 0x72, + 0xeb, 0x44, 0xf7, 0x1c, 0x5d, 0x4d, 0x53, 0x26, 0x45, 0x9c, 0xbb, 0x18, 0xe2, 0xa5, 0xb8, 0x47, + 0x08, 0xf3, 0xdf, 0x32, 0x70, 0xba, 0x0f, 0x0d, 0xf4, 0x7b, 0x06, 0xcc, 0x73, 0x77, 0x93, 0x06, + 0xc2, 0x64, 0x5b, 0xf4, 0xe6, 0x07, 0xd2, 0x96, 0x1c, 0xd3, 0xb5, 0x40, 0x9c, 0x1a, 0x29, 0x2f, + 0xd0, 0x6d, 0x63, 0x25, 0x81, 0x35, 0x4e, 0x14, 0x88, 0x49, 0xca, 0x1d, 0x50, 0x31, 0x49, 0x33, + 0x77, 0x45, 0xd2, 0x6a, 0x02, 0x6b, 0x9c, 0x28, 0x90, 0xf9, 0xff, 0xe1, 0xbe, 0x03, 0xc8, 0x1d, + 0x7e, 0xe2, 0x37, 0x5f, 0x50, 0xb3, 0x3e, 0x3a, 0xe7, 0x06, 0x70, 0x16, 0x98, 0x30, 0xee, 0xb9, + 0x9d, 0x80, 0x70, 0xed, 0x56, 0x28, 0x03, 0xd5, 0x13, 0x98, 0x95, 0x60, 0x01, 0x31, 0xbf, 0x66, + 0x40, 0x7e, 0x08, 0xff, 0x43, 0x31, 0xea, 0x7f, 0x28, 0xf4, 0xf8, 0x1e, 0x82, 0x5e, 0xdf, 0xc3, + 0xb3, 0xa3, 0x8d, 0xc6, 0x20, 0x3e, 0x87, 0x1f, 0x1b, 0x30, 0xd7, 0xe3, 0xa3, 0x40, 0x3b, 0x30, + 0xdf, 0x76, 0xeb, 0xd2, 0xbe, 0xb8, 0x60, 0xf9, 0x3b, 0x0c, 0x26, 0x9a, 0xf7, 0x38, 0x1d, 0xc9, + 0x4a, 0x02, 0xfc, 0x4e, 0xb7, 0xb8, 0xa0, 0x88, 0xc4, 0x10, 0x70, 0x22, 0x45, 0xd4, 0x86, 0xfc, + 0xb6, 0x4d, 0x9a, 0xf5, 0x70, 0x0a, 0x8e, 0x68, 0x49, 0x9c, 0x17, 0xd4, 0xb8, 0x7b, 0x4e, 0xfe, + 0xc3, 0x8a, 0x8b, 0x79, 0x05, 0xa6, 0xa3, 0xce, 0xda, 0x01, 0x06, 0xef, 0x0c, 0x64, 0x2d, 0xcf, + 0x11, 0x43, 0x37, 0x29, 0x10, 0xb2, 0x25, 0x7c, 0x09, 0xd3, 0x72, 0xf3, 0xa7, 0x63, 0x30, 0x53, + 0x6e, 0x76, 0xc8, 0xb3, 0x1e, 0x21, 0xf2, 0x7c, 0x5a, 0x82, 0x99, 0xb6, 0x47, 0x76, 0x6d, 0x72, + 0xab, 0x4a, 0x9a, 0xa4, 0x16, 0xb8, 0x9e, 0xa0, 0x7f, 0x5a, 0x54, 0x9f, 0xa9, 0x44, 0xc1, 0x38, + 0x8e, 0x8f, 0x9e, 0x81, 0x69, 0xab, 0x16, 0xd8, 0xbb, 0x44, 0x51, 0xe0, 0x02, 0xbc, 0x4d, 0x50, + 0x98, 0x2e, 0x45, 0xa0, 0x38, 0x86, 0x8d, 0x3e, 0x04, 0x0b, 0x7e, 0xcd, 0x6a, 0x92, 0xab, 0x6d, + 0xc1, 0x6a, 0x65, 0x87, 0xd4, 0x6e, 0x56, 0x5c, 0xdb, 0x09, 0x84, 0x37, 0xe2, 0x01, 0x41, 0x69, + 0xa1, 0xda, 0x07, 0x0f, 0xf7, 0xa5, 0x80, 0xfe, 0xcc, 0x80, 0x33, 0x6d, 0x8f, 0x54, 0x3c, 0xb7, + 0xe5, 0x52, 0x35, 0xd3, 0x73, 0x44, 0x17, 0x47, 0xd5, 0x6b, 0x23, 0xea, 0x53, 0x5e, 0xd2, 0xeb, + 0x22, 0x7c, 0xfb, 0x7e, 0xb7, 0x78, 0xa6, 0x72, 0x90, 0x00, 0xf8, 0x60, 0xf9, 0xd0, 0x5f, 0x18, + 0x70, 0xb6, 0xed, 0xfa, 0xc1, 0x01, 0x4d, 0xc8, 0x1d, 0x6b, 0x13, 0xcc, 0xfd, 0x6e, 0xf1, 0x6c, + 0xe5, 0x40, 0x09, 0xf0, 0x21, 0x12, 0x9a, 0xfb, 0x93, 0x30, 0xa7, 0xcd, 0x3d, 0x71, 0x7e, 0x7d, + 0x0a, 0x4e, 0xc8, 0xc9, 0x10, 0xaa, 0xf5, 0x42, 0xe8, 0x6f, 0x28, 0xe9, 0x40, 0x1c, 0xc5, 0xa5, + 0xf3, 0x4e, 0x4d, 0x45, 0x5e, 0x3b, 0x36, 0xef, 0x2a, 0x11, 0x28, 0x8e, 0x61, 0xa3, 0x35, 0x38, + 0x29, 0x4a, 0x30, 0x69, 0x37, 0xed, 0x9a, 0xb5, 0xe2, 0x76, 0xc4, 0x94, 0xcb, 0x95, 0x4f, 0xef, + 0x77, 0x8b, 0x27, 0x2b, 0xbd, 0x60, 0x9c, 0x54, 0x07, 0xad, 0xc3, 0xbc, 0xd5, 0x09, 0x5c, 0xd5, + 0xfe, 0x73, 0x0e, 0xd5, 0x14, 0x75, 0x36, 0xb5, 0xf2, 0x5c, 0xa5, 0x94, 0x12, 0xe0, 0x38, 0xb1, + 0x16, 0xaa, 0xc4, 0xa8, 0x55, 0x49, 0xcd, 0x75, 0xea, 0x7c, 0x94, 0x73, 0xa1, 0x15, 0x5e, 0x4a, + 0xc0, 0xc1, 0x89, 0x35, 0x51, 0x13, 0xa6, 0x5b, 0xd6, 0xed, 0xab, 0x8e, 0xb5, 0x6b, 0xd9, 0x4d, + 0xca, 0x44, 0xf8, 0x30, 0xfa, 0x1f, 0xac, 0x3b, 0x81, 0xdd, 0x5c, 0xe2, 0xd7, 0x79, 0x4b, 0x6b, + 0x4e, 0x70, 0xd9, 0xab, 0x06, 0xd4, 0x5a, 0xe3, 0xc6, 0xd1, 0x46, 0x84, 0x16, 0x8e, 0xd1, 0x46, + 0x97, 0xe1, 0x14, 0x5b, 0x8e, 0xab, 0xee, 0x2d, 0x67, 0x95, 0x34, 0xad, 0x3d, 0xd9, 0x80, 0x09, + 0xd6, 0x80, 0x7b, 0xf7, 0xbb, 0xc5, 0x53, 0xd5, 0x24, 0x04, 0x9c, 0x5c, 0x0f, 0x59, 0x70, 0x5f, + 0x14, 0x80, 0xc9, 0xae, 0xed, 0xdb, 0xae, 0xc3, 0x3d, 0x11, 0xf9, 0xd0, 0x13, 0x51, 0xed, 0x8f, + 0x86, 0x0f, 0xa2, 0x81, 0x7e, 0xd3, 0x80, 0xf9, 0xa4, 0x65, 0xb8, 0x50, 0x48, 0xe3, 0xb2, 0x22, + 0xb6, 0xb4, 0xf8, 0x8c, 0x48, 0xdc, 0x14, 0x12, 0x85, 0x40, 0x2f, 0x1b, 0x30, 0x65, 0x69, 0xa7, + 0xa8, 0x05, 0x60, 0x52, 0x5d, 0x1c, 0xf5, 0x2c, 0x1f, 0x52, 0x2c, 0xcf, 0xee, 0x77, 0x8b, 0x91, + 0x93, 0x1a, 0x8e, 0x70, 0x44, 0xbf, 0x6d, 0xc0, 0xa9, 0xc4, 0x35, 0xbe, 0x30, 0x79, 0x1c, 0x3d, + 0xc4, 0x26, 0x49, 0xf2, 0x9e, 0x93, 0x2c, 0x06, 0x7a, 0xdd, 0x50, 0xaa, 0x6c, 0x43, 0x7a, 0x53, + 0xa6, 0x98, 0x68, 0x57, 0x46, 0x3c, 0x38, 0x86, 0x06, 0x81, 0x24, 0x5c, 0x3e, 0xa9, 0x69, 0x46, + 0x59, 0x88, 0xe3, 0xec, 0xd1, 0x67, 0x0d, 0xa9, 0x1a, 0x95, 0x44, 0x27, 0x8e, 0x4b, 0x22, 0x14, + 0x6a, 0x5a, 0x25, 0x50, 0x8c, 0x39, 0xfa, 0x30, 0x2c, 0x5a, 0x5b, 0xae, 0x17, 0x24, 0x2e, 0xbe, + 0x85, 0x69, 0xb6, 0x8c, 0xce, 0xee, 0x77, 0x8b, 0x8b, 0xa5, 0xbe, 0x58, 0xf8, 0x00, 0x0a, 0xe6, + 0x1f, 0xe5, 0x60, 0x8a, 0x1b, 0xf9, 0x42, 0x75, 0x7d, 0xd5, 0x80, 0xfb, 0x6b, 0x1d, 0xcf, 0x23, + 0x4e, 0x50, 0x0d, 0x48, 0xbb, 0x57, 0x71, 0x19, 0xc7, 0xaa, 0xb8, 0x1e, 0xd8, 0xef, 0x16, 0xef, + 0x5f, 0x39, 0x80, 0x3f, 0x3e, 0x50, 0x3a, 0xf4, 0xd7, 0x06, 0x98, 0x02, 0xa1, 0x6c, 0xd5, 0x6e, + 0x36, 0x3c, 0xb7, 0xe3, 0xd4, 0x7b, 0x1b, 0x91, 0x39, 0xd6, 0x46, 0x3c, 0xb4, 0xdf, 0x2d, 0x9a, + 0x2b, 0x87, 0x4a, 0x81, 0x07, 0x90, 0x14, 0x3d, 0x0b, 0x73, 0x02, 0xeb, 0xdc, 0xed, 0x36, 0xf1, + 0x6c, 0x6a, 0x4e, 0x8b, 0xfb, 0xf4, 0x30, 0x44, 0x21, 0x8e, 0x80, 0x7b, 0xeb, 0x20, 0x1f, 0x26, + 0x6e, 0x11, 0xbb, 0xb1, 0x13, 0x48, 0xf3, 0x69, 0xc4, 0xb8, 0x04, 0x71, 0xe0, 0xbf, 0xce, 0x69, + 0x96, 0x27, 0xf7, 0xbb, 0xc5, 0x09, 0xf1, 0x07, 0x4b, 0x4e, 0xe8, 0x12, 0x4c, 0xf3, 0x23, 0x58, + 0xc5, 0x76, 0x1a, 0x15, 0xd7, 0xe1, 0xb7, 0xf9, 0x85, 0xf2, 0x43, 0x52, 0xe1, 0x57, 0x23, 0xd0, + 0x3b, 0xdd, 0xe2, 0x94, 0xfc, 0xbd, 0xb9, 0xd7, 0x26, 0x38, 0x56, 0xdb, 0xfc, 0xe6, 0x38, 0x80, + 0x9c, 0xae, 0xa4, 0x8d, 0xfe, 0x0f, 0x14, 0x7c, 0x12, 0x70, 0xae, 0xc2, 0x79, 0xce, 0xef, 0x24, + 0x64, 0x21, 0x0e, 0xe1, 0xe8, 0x26, 0xe4, 0xda, 0x56, 0xc7, 0x27, 0x62, 0xf0, 0x2f, 0xa6, 0x32, + 0xf8, 0x15, 0x4a, 0x91, 0x9f, 0xb9, 0xd8, 0x4f, 0xcc, 0x79, 0xa0, 0x4f, 0x19, 0x00, 0x24, 0x3a, + 0x60, 0x23, 0xfb, 0x3e, 0x04, 0xcb, 0x70, 0x4c, 0x69, 0x1f, 0x94, 0xa7, 0xf7, 0xbb, 0x45, 0xd0, + 0x86, 0x5e, 0x63, 0x8b, 0x6e, 0x41, 0xde, 0x92, 0x7b, 0xfe, 0xd8, 0x71, 0xec, 0xf9, 0xec, 0x28, + 0xa4, 0x26, 0xad, 0x62, 0x86, 0x3e, 0x6d, 0xc0, 0xb4, 0x4f, 0x02, 0x31, 0x54, 0x74, 0xe7, 0x11, + 0x06, 0xef, 0x88, 0x93, 0xae, 0x1a, 0xa1, 0xc9, 0x77, 0xd0, 0x68, 0x19, 0x8e, 0xf1, 0x95, 0xa2, + 0x5c, 0x20, 0x56, 0x9d, 0x78, 0xec, 0xa4, 0x2d, 0x2c, 0xa9, 0xd1, 0x45, 0xd1, 0x68, 0x2a, 0x51, + 0xb4, 0x32, 0x1c, 0xe3, 0x2b, 0x45, 0xd9, 0xb0, 0x3d, 0xcf, 0x15, 0xa2, 0xe4, 0x53, 0x12, 0x45, + 0xa3, 0xa9, 0x44, 0xd1, 0xca, 0x70, 0x8c, 0xaf, 0xf9, 0x37, 0x53, 0x30, 0x2d, 0x17, 0x52, 0x68, + 0xd9, 0x73, 0xc7, 0x4e, 0x1f, 0xcb, 0x7e, 0x45, 0x07, 0xe2, 0x28, 0x2e, 0xad, 0xcc, 0x97, 0x6a, + 0xd4, 0xb0, 0x57, 0x95, 0xab, 0x3a, 0x10, 0x47, 0x71, 0x51, 0x0b, 0x72, 0x7e, 0x40, 0xda, 0xf2, + 0x1e, 0x74, 0xc4, 0x6b, 0xba, 0x70, 0x7f, 0x08, 0x6f, 0x3a, 0xe8, 0x3f, 0x1f, 0x73, 0x2e, 0xcc, + 0x37, 0x19, 0x44, 0xdc, 0x95, 0x62, 0x71, 0xa4, 0xb3, 0x3e, 0xa3, 0x9e, 0x50, 0x3e, 0x1a, 0xd1, + 0x32, 0x1c, 0x63, 0x9f, 0x60, 0xec, 0xe7, 0x8e, 0xd1, 0xd8, 0x7f, 0x1e, 0xf2, 0x2d, 0xeb, 0x76, + 0xb5, 0xe3, 0x35, 0x8e, 0x7e, 0xa8, 0x10, 0x21, 0x4a, 0x9c, 0x0a, 0x56, 0xf4, 0xd0, 0x2b, 0x86, + 0xb6, 0xe5, 0x4c, 0x30, 0xe2, 0xd7, 0xd3, 0xdd, 0x72, 0x94, 0xae, 0xec, 0xbb, 0xf9, 0xf4, 0x98, + 0xde, 0xf9, 0xbb, 0x6e, 0x7a, 0x53, 0x33, 0x92, 0x2f, 0x10, 0x65, 0x46, 0x16, 0x8e, 0xd5, 0x8c, + 0x5c, 0x89, 0x30, 0xc3, 0x31, 0xe6, 0x4c, 0x1e, 0xbe, 0xe6, 0x94, 0x3c, 0x70, 0xac, 0xf2, 0x54, + 0x23, 0xcc, 0x70, 0x8c, 0x79, 0xff, 0xf3, 0xe6, 0xe4, 0xf1, 0x9c, 0x37, 0xa7, 0x52, 0x38, 0x6f, + 0x1e, 0x6c, 0x8a, 0x9f, 0x18, 0xd5, 0x14, 0x47, 0x17, 0x01, 0xd5, 0xf7, 0x1c, 0xab, 0x65, 0xd7, + 0xc4, 0x66, 0xc9, 0xd4, 0xe6, 0x34, 0xf3, 0x47, 0x2c, 0x8a, 0x8d, 0x0c, 0xad, 0xf6, 0x60, 0xe0, + 0x84, 0x5a, 0x28, 0x80, 0x7c, 0x5b, 0x5a, 0x5c, 0x33, 0x69, 0xcc, 0x7e, 0x69, 0x81, 0xf1, 0xab, + 0x72, 0xba, 0xf0, 0x64, 0x09, 0x56, 0x9c, 0xcc, 0xff, 0x30, 0x60, 0x76, 0xa5, 0xe9, 0x76, 0xea, + 0xd7, 0xad, 0xa0, 0xb6, 0xc3, 0xef, 0x75, 0xd1, 0x33, 0x90, 0xb7, 0x9d, 0x80, 0x78, 0xbb, 0x56, + 0x53, 0x68, 0x14, 0x53, 0x5e, 0x7d, 0xaf, 0x89, 0xf2, 0x3b, 0xdd, 0xe2, 0xf4, 0x6a, 0xc7, 0x63, + 0x01, 0x93, 0x7c, 0x7f, 0xc1, 0xaa, 0x0e, 0xfa, 0x92, 0x01, 0x73, 0xfc, 0x66, 0x78, 0xd5, 0x0a, + 0xac, 0x2b, 0x1d, 0xe2, 0xd9, 0x44, 0xde, 0x0d, 0x8f, 0xb8, 0xb5, 0xc4, 0x65, 0x95, 0x0c, 0xf6, + 0x42, 0xd3, 0x7a, 0x23, 0xce, 0x19, 0xf7, 0x0a, 0x63, 0x7e, 0x3e, 0x0b, 0xf7, 0xf6, 0xa5, 0x85, + 0x16, 0x21, 0x63, 0xd7, 0x45, 0xd3, 0x41, 0xd0, 0xcd, 0xac, 0xd5, 0x71, 0xc6, 0xae, 0xa3, 0x25, + 0x66, 0x25, 0x7a, 0xc4, 0xf7, 0xe5, 0x35, 0x61, 0x41, 0x19, 0x74, 0xa2, 0x14, 0x6b, 0x18, 0xa8, + 0x08, 0xb9, 0xa6, 0xb5, 0x45, 0x9a, 0xe2, 0x04, 0xc0, 0xec, 0xce, 0x75, 0x5a, 0x80, 0x79, 0x39, + 0xfa, 0x45, 0x03, 0x80, 0x0b, 0x48, 0xcf, 0x0f, 0x42, 0xaf, 0xe1, 0x74, 0xbb, 0x89, 0x52, 0xe6, + 0x52, 0x86, 0xff, 0xb1, 0xc6, 0x15, 0x6d, 0xc2, 0x38, 0x35, 0x41, 0xdd, 0xfa, 0x91, 0xd5, 0x18, + 0xbb, 0x16, 0xa9, 0x30, 0x1a, 0x58, 0xd0, 0xa2, 0x7d, 0xe5, 0x91, 0xa0, 0xe3, 0x39, 0xb4, 0x6b, + 0x99, 0xe2, 0xca, 0x73, 0x29, 0xb0, 0x2a, 0xc5, 0x1a, 0x86, 0xf9, 0xa7, 0x19, 0x98, 0x4f, 0x12, + 0x9d, 0xea, 0x87, 0x71, 0x2e, 0xad, 0x38, 0xcc, 0xbe, 0x3f, 0xfd, 0xfe, 0x11, 0x41, 0x0e, 0x2a, + 0x14, 0x40, 0x84, 0x61, 0x09, 0xbe, 0xe8, 0xfd, 0xaa, 0x87, 0x32, 0x47, 0xec, 0x21, 0x45, 0x39, + 0xd6, 0x4b, 0x0f, 0xc0, 0x98, 0x4f, 0x47, 0x3e, 0x1b, 0xbd, 0x72, 0x60, 0x63, 0xc4, 0x20, 0x14, + 0xa3, 0xe3, 0xd8, 0x81, 0x88, 0x62, 0x56, 0x18, 0x57, 0x1d, 0x3b, 0xc0, 0x0c, 0x62, 0x7e, 0x31, + 0x03, 0x8b, 0xfd, 0x1b, 0x85, 0xbe, 0x68, 0x00, 0xd4, 0xe9, 0x01, 0x83, 0x4e, 0x49, 0x19, 0x14, + 0x62, 0x1d, 0x57, 0x1f, 0xae, 0x4a, 0x4e, 0x61, 0x84, 0x90, 0x2a, 0xf2, 0xb1, 0x26, 0x08, 0x7a, + 0x54, 0x4e, 0xfd, 0x4b, 0x56, 0x4b, 0x1a, 0xa0, 0xaa, 0xce, 0x86, 0x82, 0x60, 0x0d, 0x8b, 0x9e, + 0x20, 0x1d, 0xab, 0x45, 0xfc, 0xb6, 0xa5, 0xc2, 0xd4, 0xd9, 0x09, 0xf2, 0x92, 0x2c, 0xc4, 0x21, + 0xdc, 0x6c, 0xc2, 0x83, 0x03, 0xc8, 0x99, 0x52, 0xc8, 0xb0, 0xf9, 0xef, 0x06, 0x9c, 0x5e, 0x69, + 0x76, 0xfc, 0x80, 0x78, 0xff, 0x63, 0x02, 0xae, 0xfe, 0xd3, 0x80, 0xfb, 0xfa, 0xb4, 0xf9, 0x2e, + 0xc4, 0x5d, 0xbd, 0x18, 0x8d, 0xbb, 0xba, 0x3a, 0xea, 0x94, 0x4e, 0x6c, 0x47, 0x9f, 0xf0, 0xab, + 0x00, 0x4e, 0xd0, 0x5d, 0xab, 0xee, 0x36, 0x52, 0xd2, 0x9b, 0x0f, 0x42, 0xee, 0x63, 0x54, 0xff, + 0xc4, 0xe7, 0x18, 0x53, 0x4a, 0x98, 0xc3, 0xcc, 0xa7, 0x41, 0x04, 0x29, 0xc5, 0x16, 0x8f, 0x31, + 0xc8, 0xe2, 0x31, 0xff, 0x2e, 0x03, 0x9a, 0xe7, 0xe1, 0x2e, 0x4c, 0x4a, 0x27, 0x32, 0x29, 0x47, + 0x3c, 0x35, 0x6b, 0x7e, 0x94, 0x7e, 0xaf, 0x11, 0x76, 0x63, 0xaf, 0x11, 0x2e, 0xa5, 0xc6, 0xf1, + 0xe0, 0xc7, 0x08, 0xdf, 0x33, 0xe0, 0xbe, 0x10, 0xb9, 0xd7, 0x29, 0x78, 0xf8, 0x0e, 0xf3, 0x04, + 0x4c, 0x5a, 0x61, 0x35, 0x31, 0x07, 0xd4, 0x03, 0x1c, 0x8d, 0x22, 0xd6, 0xf1, 0xc2, 0xd8, 0xe7, + 0xec, 0x11, 0x63, 0x9f, 0xc7, 0x0e, 0x8e, 0x7d, 0x36, 0x7f, 0x92, 0x81, 0x33, 0xbd, 0x2d, 0x93, + 0x6b, 0x63, 0xb0, 0x3b, 0xf3, 0x27, 0x61, 0x2a, 0x10, 0x15, 0xb4, 0x9d, 0x5e, 0x3d, 0x1f, 0xdb, + 0xd4, 0x60, 0x38, 0x82, 0x49, 0x6b, 0xd6, 0xf8, 0xaa, 0xac, 0xd6, 0xdc, 0xb6, 0x8c, 0x9c, 0x57, + 0x35, 0x57, 0x34, 0x18, 0x8e, 0x60, 0xaa, 0x98, 0xc4, 0xb1, 0x63, 0x8f, 0x49, 0xac, 0xc2, 0x29, + 0x19, 0x85, 0x75, 0xde, 0xf5, 0x56, 0xdc, 0x56, 0xbb, 0x49, 0x44, 0xec, 0x3c, 0x15, 0xf6, 0x8c, + 0xa8, 0x72, 0x0a, 0x27, 0x21, 0xe1, 0xe4, 0xba, 0xe6, 0xf7, 0xb2, 0x70, 0x32, 0xec, 0xf6, 0x15, + 0xd7, 0xa9, 0xdb, 0x2c, 0x96, 0xed, 0x29, 0x18, 0x0b, 0xf6, 0xda, 0xb2, 0xb3, 0xff, 0x97, 0x14, + 0x67, 0x73, 0xaf, 0x4d, 0x47, 0xfb, 0x74, 0x42, 0x15, 0xe6, 0x96, 0x65, 0x95, 0xd0, 0xba, 0x5a, + 0x1d, 0x7c, 0x04, 0x1e, 0x8f, 0xce, 0xe6, 0x3b, 0xdd, 0x62, 0xc2, 0xeb, 0xc9, 0x25, 0x45, 0x29, + 0x3a, 0xe7, 0xd1, 0x0d, 0x98, 0x6e, 0x5a, 0x7e, 0x70, 0xb5, 0x5d, 0xb7, 0x02, 0xb2, 0x69, 0xb7, + 0x88, 0x58, 0x73, 0xc3, 0x04, 0xa4, 0xab, 0x7b, 0xe4, 0xf5, 0x08, 0x25, 0x1c, 0xa3, 0x8c, 0x76, + 0x01, 0xd1, 0x92, 0x4d, 0xcf, 0x72, 0x7c, 0xde, 0x2a, 0xca, 0x6f, 0xf8, 0x00, 0x78, 0x75, 0x2c, + 0x5b, 0xef, 0xa1, 0x86, 0x13, 0x38, 0xa0, 0x87, 0x60, 0xdc, 0x23, 0x96, 0x2f, 0x06, 0xb3, 0x10, + 0xae, 0x7f, 0xcc, 0x4a, 0xb1, 0x80, 0xea, 0x0b, 0x6a, 0xfc, 0x90, 0x05, 0xf5, 0x43, 0x03, 0xa6, + 0xc3, 0x61, 0xba, 0x0b, 0x4a, 0xb2, 0x15, 0x55, 0x92, 0x17, 0xd2, 0xda, 0x12, 0xfb, 0xe8, 0xc5, + 0xbf, 0x1c, 0xd7, 0xdb, 0xc7, 0x02, 0x92, 0x3f, 0x0e, 0x05, 0xb9, 0xaa, 0xa5, 0xf5, 0x39, 0xe2, + 0xe9, 0x36, 0x62, 0x97, 0x68, 0x0f, 0x69, 0x04, 0x13, 0x1c, 0xf2, 0xa3, 0x6a, 0xb9, 0x2e, 0x54, + 0xae, 0x98, 0xf6, 0x4a, 0x2d, 0x4b, 0x55, 0x9c, 0xa4, 0x96, 0x65, 0x1d, 0x74, 0x15, 0x4e, 0xb7, + 0x3d, 0x97, 0x3d, 0xae, 0x5c, 0x25, 0x56, 0xbd, 0x69, 0x3b, 0x44, 0xba, 0x10, 0x78, 0x18, 0xc3, + 0x7d, 0xfb, 0xdd, 0xe2, 0xe9, 0x4a, 0x32, 0x0a, 0xee, 0x57, 0x37, 0xfa, 0x20, 0x68, 0x6c, 0x80, + 0x07, 0x41, 0xbf, 0xac, 0x1c, 0x75, 0xc4, 0x17, 0xcf, 0x72, 0x3e, 0x98, 0xd6, 0x50, 0x26, 0x6c, + 0xeb, 0xe1, 0x94, 0x2a, 0x09, 0xa6, 0x58, 0xb1, 0xef, 0xef, 0x0d, 0x1a, 0x3f, 0xa2, 0x37, 0x28, + 0x8c, 0xeb, 0x9e, 0xf8, 0x59, 0xc6, 0x75, 0xe7, 0xdf, 0x52, 0x71, 0xdd, 0xaf, 0xe6, 0x60, 0x36, + 0x6e, 0x81, 0x1c, 0xff, 0x63, 0xa7, 0x5f, 0x33, 0x60, 0x56, 0xae, 0x1e, 0xce, 0x93, 0x48, 0x3f, + 0xff, 0x7a, 0x4a, 0x8b, 0x96, 0xdb, 0x52, 0xea, 0x39, 0xee, 0x66, 0x8c, 0x1b, 0xee, 0xe1, 0x8f, + 0x5e, 0x80, 0x49, 0xe5, 0x0e, 0x3f, 0xd2, 0xcb, 0xa7, 0x19, 0x66, 0x45, 0x85, 0x24, 0xb0, 0x4e, + 0x0f, 0xbd, 0x6a, 0x00, 0xd4, 0xa4, 0x9a, 0x93, 0xab, 0xeb, 0x4a, 0x5a, 0xab, 0x4b, 0x29, 0xd0, + 0xd0, 0x58, 0x56, 0x45, 0x3e, 0xd6, 0x18, 0xa3, 0xcf, 0x33, 0x47, 0xb8, 0xb2, 0xee, 0xe8, 0x7a, + 0xca, 0x8e, 0x1e, 0x8a, 0x7b, 0x80, 0x61, 0x1a, 0x9a, 0x52, 0x1a, 0xc8, 0xc7, 0x11, 0x21, 0xcc, + 0xa7, 0x40, 0x05, 0x4f, 0xd2, 0x6d, 0x8b, 0x85, 0x4f, 0x56, 0xac, 0x60, 0x47, 0x4c, 0x41, 0xb5, + 0x6d, 0x9d, 0x97, 0x00, 0x1c, 0xe2, 0x98, 0x1f, 0x85, 0xe9, 0x67, 0x3d, 0xab, 0xbd, 0x63, 0x33, + 0x87, 0x33, 0x3d, 0x27, 0xbd, 0x13, 0x26, 0xac, 0x7a, 0x3d, 0xe9, 0x31, 0x7b, 0x89, 0x17, 0x63, + 0x09, 0x1f, 0xec, 0x48, 0xf4, 0x4d, 0x03, 0x50, 0x78, 0x69, 0x67, 0x3b, 0x8d, 0x0d, 0x7a, 0xda, + 0xa7, 0xe7, 0xa3, 0x1d, 0x56, 0x9a, 0x74, 0x3e, 0xba, 0xa0, 0x20, 0x58, 0xc3, 0x42, 0x2f, 0xc1, + 0x24, 0xff, 0x77, 0x4d, 0x1d, 0xf6, 0x47, 0x7e, 0x0a, 0xcb, 0x15, 0x0a, 0x93, 0x89, 0xcf, 0xc2, + 0x0b, 0x21, 0x07, 0xac, 0xb3, 0xa3, 0x5d, 0xb5, 0xe6, 0x6c, 0x37, 0x3b, 0xb7, 0xeb, 0x5b, 0x61, + 0x57, 0xb5, 0x3d, 0x77, 0xdb, 0x6e, 0x92, 0x78, 0x57, 0x55, 0x78, 0x31, 0x96, 0xf0, 0xc1, 0xba, + 0xea, 0xeb, 0x06, 0xcc, 0xaf, 0xf9, 0x81, 0xed, 0xae, 0x12, 0x3f, 0xa0, 0x6a, 0x85, 0x6e, 0x3e, + 0x9d, 0xe6, 0x20, 0x71, 0xd0, 0xab, 0x30, 0x2b, 0x2e, 0x10, 0x3b, 0x5b, 0x3e, 0x09, 0x34, 0x3b, + 0x5e, 0xad, 0xe3, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0xa0, 0x54, 0xc4, 0x4d, 0x62, 0x48, 0x25, 0x1b, + 0xa5, 0x52, 0x8d, 0xc1, 0x71, 0x4f, 0x0d, 0xf3, 0x3b, 0x59, 0x38, 0xc9, 0x9a, 0x11, 0x7b, 0xc3, + 0xf0, 0xd9, 0x7e, 0x6f, 0x18, 0x46, 0x5c, 0xca, 0x8c, 0xd7, 0x11, 0x5e, 0x30, 0xfc, 0xaa, 0x01, + 0x33, 0xf5, 0x68, 0x4f, 0xa7, 0xe3, 0x9e, 0x49, 0x1a, 0x43, 0x1e, 0x2f, 0x15, 0x2b, 0xc4, 0x71, + 0xfe, 0xe8, 0x0b, 0x06, 0xcc, 0x44, 0xc5, 0x94, 0xbb, 0xfb, 0x31, 0x74, 0x92, 0x0a, 0x70, 0x8e, + 0x96, 0xfb, 0x38, 0x2e, 0x82, 0xf9, 0xed, 0x8c, 0x18, 0xd2, 0xe3, 0x08, 0xd0, 0x47, 0xb7, 0xa0, + 0x10, 0x34, 0x7d, 0x5e, 0x28, 0x5a, 0x3b, 0xe2, 0x89, 0x70, 0x73, 0xbd, 0xca, 0xef, 0xee, 0x43, + 0xa3, 0x4d, 0x94, 0x50, 0xe3, 0x53, 0xf2, 0x62, 0x8c, 0x6b, 0x6d, 0xc1, 0x38, 0x95, 0xa3, 0xe8, + 0xe6, 0x4a, 0x25, 0xce, 0x58, 0x94, 0x50, 0xc6, 0x92, 0x97, 0xf9, 0x65, 0x03, 0x0a, 0x17, 0x5d, + 0xb9, 0x8f, 0x7c, 0x38, 0x05, 0x47, 0x8f, 0xb2, 0x07, 0xd5, 0x1d, 0x61, 0x78, 0xc4, 0x78, 0x26, + 0xe2, 0xe6, 0xb9, 0x5f, 0xa3, 0xbd, 0xc4, 0x12, 0xf5, 0x50, 0x52, 0x17, 0xdd, 0xad, 0xbe, 0x5e, + 0xc4, 0xdf, 0xcd, 0xc1, 0x89, 0xe7, 0xac, 0x3d, 0xe2, 0x04, 0xd6, 0xf0, 0x4a, 0xe2, 0x09, 0x98, + 0xb4, 0xda, 0x2c, 0x50, 0x58, 0xb3, 0xf1, 0x43, 0xcf, 0x49, 0x08, 0xc2, 0x3a, 0x5e, 0xb8, 0xa1, + 0xf1, 0xbc, 0x21, 0x49, 0x5b, 0xd1, 0x4a, 0x0c, 0x8e, 0x7b, 0x6a, 0xa0, 0x8b, 0x80, 0xc4, 0x2b, + 0xc8, 0x52, 0xad, 0xe6, 0x76, 0x1c, 0xbe, 0xa5, 0x71, 0xa7, 0x8a, 0x3a, 0x6c, 0x6e, 0xf4, 0x60, + 0xe0, 0x84, 0x5a, 0xe8, 0x43, 0xb0, 0x50, 0x63, 0x94, 0xc5, 0xd1, 0x43, 0xa7, 0xc8, 0x8f, 0x9f, + 0x2a, 0x48, 0x7f, 0xa5, 0x0f, 0x1e, 0xee, 0x4b, 0x81, 0x4a, 0xea, 0x07, 0xae, 0x67, 0x35, 0x88, + 0x4e, 0x77, 0x3c, 0x2a, 0x69, 0xb5, 0x07, 0x03, 0x27, 0xd4, 0x42, 0x9f, 0x84, 0x42, 0xb0, 0xe3, + 0x11, 0x7f, 0xc7, 0x6d, 0xd6, 0x45, 0xd0, 0xc0, 0x88, 0x9e, 0x36, 0x31, 0xfa, 0x9b, 0x92, 0xaa, + 0x36, 0xbd, 0x65, 0x11, 0x0e, 0x79, 0x22, 0x0f, 0xc6, 0xfd, 0x9a, 0xdb, 0x26, 0xbe, 0x30, 0xd9, + 0x2f, 0xa6, 0xc2, 0x9d, 0x79, 0x8e, 0x34, 0x1f, 0x1f, 0xe3, 0x80, 0x05, 0x27, 0xf3, 0x1b, 0x19, + 0x98, 0xd2, 0x11, 0x07, 0xd8, 0x9b, 0x3e, 0x65, 0xc0, 0x54, 0xcd, 0x75, 0x02, 0xcf, 0x6d, 0x72, + 0xff, 0x55, 0x3a, 0x16, 0x05, 0x25, 0xb5, 0x4a, 0x02, 0xcb, 0x6e, 0x6a, 0xae, 0x30, 0x8d, 0x0d, + 0x8e, 0x30, 0x45, 0x9f, 0x31, 0x60, 0x26, 0x8c, 0x31, 0x0b, 0x1d, 0x69, 0xa9, 0x0a, 0xa2, 0xb6, + 0xfa, 0x73, 0x51, 0x4e, 0x38, 0xce, 0xda, 0xdc, 0x82, 0xd9, 0xf8, 0x68, 0xd3, 0xae, 0x6c, 0x5b, + 0x62, 0xad, 0x67, 0xc3, 0xae, 0xac, 0x58, 0xbe, 0x8f, 0x19, 0x04, 0x3d, 0x02, 0xf9, 0x96, 0xe5, + 0x35, 0x6c, 0xc7, 0x6a, 0xb2, 0x5e, 0xcc, 0x6a, 0x1b, 0x92, 0x28, 0xc7, 0x0a, 0xc3, 0x7c, 0x37, + 0x4c, 0x6d, 0x58, 0x4e, 0x83, 0xd4, 0xc5, 0x3e, 0x7c, 0xf8, 0x13, 0xb1, 0x1f, 0x8d, 0xc1, 0xa4, + 0x76, 0x36, 0x3b, 0xfe, 0x73, 0x56, 0x24, 0x95, 0x43, 0x36, 0xc5, 0x54, 0x0e, 0xcf, 0x03, 0x6c, + 0xdb, 0x8e, 0xed, 0xef, 0x1c, 0x31, 0x49, 0x04, 0xbb, 0xa2, 0x3d, 0xaf, 0x28, 0x60, 0x8d, 0x5a, + 0x78, 0x0f, 0x96, 0x3b, 0x20, 0x75, 0xce, 0xab, 0x86, 0xa6, 0x6e, 0xc6, 0xd3, 0xb8, 0xf7, 0xd7, + 0x06, 0x66, 0x49, 0xaa, 0x9f, 0x73, 0x4e, 0xe0, 0xed, 0x1d, 0xa8, 0x95, 0x36, 0x21, 0xef, 0x11, + 0xbf, 0xd3, 0xa2, 0x27, 0xc6, 0x89, 0xa1, 0xbb, 0x81, 0xc5, 0x4c, 0x60, 0x51, 0x1f, 0x2b, 0x4a, + 0x8b, 0x4f, 0xc1, 0x89, 0x88, 0x08, 0x68, 0x16, 0xb2, 0x37, 0xc9, 0x1e, 0x9f, 0x27, 0x98, 0xfe, + 0x44, 0xf3, 0x91, 0xdb, 0x42, 0xd1, 0x2d, 0xef, 0xcb, 0x3c, 0x69, 0x98, 0x2e, 0x24, 0x3a, 0x00, + 0x8e, 0x72, 0x99, 0x43, 0xc7, 0xa2, 0xa9, 0x65, 0x89, 0x50, 0x63, 0xc1, 0x23, 0x63, 0x38, 0xcc, + 0xfc, 0xc9, 0x38, 0x88, 0xab, 0xec, 0x01, 0xb6, 0x2b, 0xfd, 0x06, 0x2b, 0x73, 0x84, 0x1b, 0xac, + 0x8b, 0x30, 0x65, 0x3b, 0x76, 0x60, 0x5b, 0x4d, 0xe6, 0xdc, 0x11, 0xea, 0x54, 0x86, 0x0e, 0x4f, + 0xad, 0x69, 0xb0, 0x04, 0x3a, 0x91, 0xba, 0xe8, 0x0a, 0xe4, 0x98, 0xbe, 0x11, 0x13, 0x78, 0xf8, + 0xfb, 0x76, 0x16, 0x6a, 0xc1, 0xdf, 0x13, 0x71, 0x4a, 0xec, 0xf0, 0xc1, 0xd3, 0x64, 0xa8, 0xe3, + 0xb7, 0x98, 0xc7, 0xe1, 0xe1, 0x23, 0x06, 0xc7, 0x3d, 0x35, 0x28, 0x95, 0x6d, 0xcb, 0x6e, 0x76, + 0x3c, 0x12, 0x52, 0x19, 0x8f, 0x52, 0x39, 0x1f, 0x83, 0xe3, 0x9e, 0x1a, 0x68, 0x1b, 0xa6, 0x44, + 0x19, 0x8f, 0x77, 0x9a, 0x38, 0x62, 0x2b, 0x59, 0x5c, 0xdb, 0x79, 0x8d, 0x12, 0x8e, 0xd0, 0x45, + 0x1d, 0x98, 0xb3, 0x9d, 0x9a, 0xeb, 0xd4, 0x9a, 0x1d, 0xdf, 0xde, 0x25, 0xe1, 0x63, 0x9e, 0xa3, + 0x30, 0x3b, 0xb5, 0xdf, 0x2d, 0xce, 0xad, 0xc5, 0xc9, 0xe1, 0x5e, 0x0e, 0xe8, 0x15, 0x03, 0x4e, + 0xd5, 0x5c, 0xc7, 0x67, 0xef, 0xce, 0x77, 0xc9, 0x39, 0xcf, 0x73, 0x3d, 0xce, 0xbb, 0x70, 0x44, + 0xde, 0xcc, 0xa7, 0xb8, 0x92, 0x44, 0x12, 0x27, 0x73, 0x42, 0x2f, 0x42, 0xbe, 0xed, 0xb9, 0xbb, + 0x76, 0x9d, 0x78, 0x22, 0x76, 0x6e, 0x3d, 0x8d, 0x3c, 0x18, 0x15, 0x41, 0x33, 0xdc, 0x7a, 0x64, + 0x09, 0x56, 0xfc, 0xcc, 0x37, 0x0a, 0x30, 0x1d, 0x45, 0x47, 0x9f, 0x00, 0x68, 0x7b, 0x6e, 0x8b, + 0x04, 0x3b, 0x44, 0x3d, 0xca, 0xb8, 0x34, 0x6a, 0xba, 0x05, 0x49, 0x4f, 0x46, 0xaf, 0xd0, 0xed, + 0x22, 0x2c, 0xc5, 0x1a, 0x47, 0xe4, 0xc1, 0xc4, 0x4d, 0xae, 0x76, 0x85, 0x15, 0xf2, 0x5c, 0x2a, + 0x36, 0x93, 0xe0, 0xcc, 0x5e, 0x13, 0x88, 0x22, 0x2c, 0x19, 0xa1, 0x2d, 0xc8, 0xde, 0x22, 0x5b, + 0xe9, 0x3c, 0x61, 0xbe, 0x4e, 0xc4, 0x69, 0xa6, 0x3c, 0xb1, 0xdf, 0x2d, 0x66, 0xaf, 0x93, 0x2d, + 0x4c, 0x89, 0xd3, 0x76, 0xd5, 0xf9, 0x3d, 0xbc, 0xd8, 0x2a, 0x46, 0x6c, 0x57, 0xe4, 0x52, 0x9f, + 0xb7, 0x4b, 0x14, 0x61, 0xc9, 0x08, 0xbd, 0x08, 0x85, 0x5b, 0xd6, 0x2e, 0xd9, 0xf6, 0x5c, 0x27, + 0x10, 0x21, 0x53, 0x23, 0xc6, 0xe9, 0x5f, 0x97, 0xe4, 0x04, 0x5f, 0xa6, 0xde, 0x55, 0x21, 0x0e, + 0xd9, 0xa1, 0x5d, 0xc8, 0x3b, 0xe4, 0x16, 0x26, 0x4d, 0xbb, 0x96, 0x4e, 0x5c, 0xfc, 0x25, 0x41, + 0x4d, 0x70, 0x66, 0x7a, 0x4f, 0x96, 0x61, 0xc5, 0x8b, 0x8e, 0xe5, 0x0d, 0x77, 0x4b, 0x6c, 0x54, + 0x23, 0x8e, 0xa5, 0x3a, 0x99, 0xf2, 0xb1, 0xbc, 0xe8, 0x6e, 0x61, 0x4a, 0x9c, 0xae, 0x91, 0x9a, + 0x8a, 0xd7, 0x11, 0xdb, 0xd4, 0xa5, 0x74, 0xe3, 0x94, 0xf8, 0x1a, 0x09, 0x4b, 0xb1, 0xc6, 0x91, + 0xf6, 0x6d, 0x43, 0x38, 0x2b, 0xc5, 0x46, 0x35, 0x62, 0xdf, 0x46, 0x5d, 0x9f, 0xbc, 0x6f, 0x65, + 0x19, 0x56, 0xbc, 0x28, 0x5f, 0x5b, 0x78, 0xfe, 0xd2, 0xd9, 0xaa, 0xa2, 0x7e, 0x44, 0xce, 0x57, + 0x96, 0x61, 0xc5, 0xcb, 0xfc, 0xf2, 0x38, 0x4c, 0xe9, 0xf9, 0xc6, 0x06, 0xb0, 0x11, 0x94, 0x5d, + 0x9c, 0x19, 0xc6, 0x2e, 0xa6, 0x07, 0x21, 0xed, 0x8e, 0x43, 0x3a, 0x61, 0xd6, 0x52, 0x33, 0x0b, + 0xc3, 0x83, 0x90, 0x56, 0xe8, 0xe3, 0x08, 0xd3, 0x21, 0xc2, 0x1e, 0xa8, 0x71, 0xc5, 0xcd, 0x8f, + 0x5c, 0xd4, 0xb8, 0x8a, 0x18, 0x14, 0x8f, 0x02, 0x84, 0x79, 0xb7, 0xc4, 0xdd, 0x97, 0xb2, 0xda, + 0xb4, 0x7c, 0x60, 0x1a, 0x16, 0x7a, 0x08, 0xc6, 0xa9, 0x82, 0x26, 0x75, 0xf1, 0x52, 0x57, 0x9d, + 0x36, 0xcf, 0xb3, 0x52, 0x2c, 0xa0, 0xe8, 0x49, 0x6a, 0x4b, 0x85, 0x6a, 0x55, 0x3c, 0xc0, 0x9d, + 0x0f, 0x6d, 0xa9, 0x10, 0x86, 0x23, 0x98, 0x54, 0x74, 0x42, 0xb5, 0x20, 0x9b, 0xc1, 0x9a, 0xe8, + 0x4c, 0x35, 0x62, 0x0e, 0x63, 0xde, 0x8f, 0x98, 0xd6, 0x64, 0x33, 0x2f, 0xa7, 0x79, 0x3f, 0x62, + 0x70, 0xdc, 0x53, 0x83, 0x36, 0x46, 0x5c, 0xdb, 0x4d, 0xf2, 0xe8, 0xce, 0x3e, 0x17, 0x6e, 0xaf, + 0xe9, 0x27, 0x82, 0x29, 0x36, 0xf4, 0xef, 0x4f, 0x2f, 0x77, 0xde, 0xe0, 0x47, 0x82, 0xd1, 0x8c, + 0xf7, 0x8f, 0xc2, 0x74, 0x74, 0xaf, 0x4c, 0xdd, 0x3f, 0xff, 0x57, 0x59, 0x38, 0x79, 0xa9, 0x61, + 0x3b, 0xb7, 0x63, 0x8e, 0xed, 0xa4, 0x9c, 0xb6, 0xc6, 0xb0, 0x39, 0x6d, 0xc3, 0x27, 0x3f, 0x22, + 0x69, 0x70, 0xf2, 0x93, 0x1f, 0x99, 0x51, 0x38, 0x8a, 0x8b, 0x7e, 0x68, 0xc0, 0xfd, 0x56, 0x9d, + 0x5b, 0xaf, 0x56, 0x53, 0x94, 0x86, 0x4c, 0xe5, 0x8a, 0xf6, 0x47, 0xd4, 0x45, 0xbd, 0x8d, 0x5f, + 0x2a, 0x1d, 0xc0, 0x95, 0x8f, 0xf8, 0x3b, 0x44, 0x0b, 0xee, 0x3f, 0x08, 0x15, 0x1f, 0x28, 0xfe, + 0xe2, 0x65, 0x78, 0xfb, 0xa1, 0x8c, 0x86, 0x9a, 0x2d, 0x9f, 0x32, 0xa0, 0xc0, 0xdd, 0xa7, 0x98, + 0x6c, 0xd3, 0xad, 0xc2, 0x6a, 0xdb, 0xd7, 0x88, 0xe7, 0xcb, 0x64, 0x5b, 0xda, 0x01, 0xaf, 0x54, + 0x59, 0x13, 0x10, 0xac, 0x61, 0xd1, 0xcd, 0xf8, 0xa6, 0xed, 0xd4, 0xc5, 0x30, 0xa9, 0xcd, 0xf8, + 0x39, 0xdb, 0xa9, 0x63, 0x06, 0x51, 0xdb, 0x75, 0xb6, 0xaf, 0x5b, 0xe3, 0x0d, 0x03, 0xa6, 0xd9, + 0x3b, 0xc7, 0xf0, 0xe8, 0xf1, 0x84, 0x8a, 0x69, 0xe1, 0x62, 0x9c, 0x89, 0xc6, 0xb4, 0xdc, 0xe9, + 0x16, 0x27, 0xf9, 0xcb, 0xc8, 0x68, 0x88, 0xcb, 0x07, 0x85, 0xbf, 0x82, 0x45, 0xde, 0x64, 0x86, + 0x3e, 0x4e, 0x2b, 0x7f, 0x5e, 0x55, 0x12, 0xc1, 0x21, 0x3d, 0xf3, 0x25, 0x98, 0xd2, 0x1f, 0x2c, + 0xa0, 0x27, 0x60, 0xb2, 0x6d, 0x3b, 0x8d, 0xe8, 0xc3, 0x36, 0xe5, 0xd3, 0xad, 0x84, 0x20, 0xac, + 0xe3, 0xb1, 0x6a, 0x6e, 0x58, 0x2d, 0xe6, 0x0a, 0xae, 0xb8, 0x7a, 0xb5, 0xf0, 0x8f, 0xf9, 0xc7, + 0x59, 0x38, 0x99, 0xf0, 0x30, 0x06, 0xbd, 0x6a, 0xc0, 0x38, 0x8b, 0xd2, 0x97, 0x51, 0x2b, 0x2f, + 0xa4, 0xfe, 0xf8, 0x66, 0x89, 0x3d, 0x06, 0x10, 0xf3, 0x58, 0x6d, 0x9f, 0xbc, 0x10, 0x0b, 0xe6, + 0xe8, 0x37, 0x0c, 0x98, 0xb4, 0xb4, 0xa5, 0xc6, 0x03, 0x79, 0xb6, 0xd2, 0x17, 0xa6, 0x67, 0x65, + 0x69, 0x01, 0x88, 0xe1, 0x42, 0xd2, 0x65, 0x59, 0x7c, 0x2f, 0x4c, 0x6a, 0x4d, 0x18, 0x66, 0x85, + 0x2c, 0x3e, 0x03, 0xb3, 0x23, 0xad, 0xb0, 0x0f, 0xc0, 0xb0, 0xb9, 0xe3, 0xa8, 0xc2, 0xba, 0xa5, + 0x3f, 0x3e, 0x56, 0x3d, 0x2e, 0x5e, 0x1f, 0x0b, 0xa8, 0xb9, 0x05, 0xb3, 0xf1, 0xc3, 0x55, 0xea, + 0xf7, 0xd6, 0xef, 0x86, 0x21, 0xb3, 0xbd, 0x99, 0xdf, 0xce, 0xc0, 0x84, 0x78, 0x5d, 0x77, 0x17, + 0x62, 0x77, 0x6f, 0x46, 0x2e, 0x75, 0xd6, 0x52, 0x79, 0x14, 0xd8, 0x37, 0x70, 0xd7, 0x8f, 0x05, + 0xee, 0x3e, 0x97, 0x0e, 0xbb, 0x83, 0xa3, 0x76, 0xdf, 0x18, 0x83, 0x99, 0xd8, 0x6b, 0x45, 0x6a, + 0xaa, 0xf4, 0x04, 0xab, 0x5d, 0x4d, 0xf5, 0x41, 0xa4, 0x8a, 0x2b, 0x3f, 0x38, 0x6e, 0xcd, 0x8f, + 0x24, 0xd5, 0xbc, 0x92, 0x5a, 0x3e, 0xee, 0x9f, 0xe7, 0xd7, 0x1c, 0x36, 0x0e, 0xeb, 0x9f, 0x0c, + 0xb8, 0xb7, 0xef, 0xa3, 0x56, 0x96, 0x13, 0xc5, 0x8b, 0x42, 0xc5, 0x82, 0x4c, 0xf9, 0xe9, 0xbe, + 0xba, 0x61, 0x89, 0xa7, 0xb1, 0x88, 0xb3, 0x47, 0x8f, 0xc3, 0x14, 0x53, 0xad, 0x74, 0x4f, 0x09, + 0x48, 0x5b, 0x38, 0x88, 0x99, 0xab, 0xb0, 0xaa, 0x95, 0xe3, 0x08, 0x96, 0xf9, 0x25, 0x03, 0x16, + 0xfa, 0x65, 0xc8, 0x18, 0xe0, 0x60, 0xf8, 0xff, 0x62, 0xc1, 0xc5, 0xc5, 0x9e, 0xe0, 0xe2, 0xd8, + 0xd1, 0x50, 0xc6, 0x11, 0x6b, 0xa7, 0xb2, 0xec, 0x21, 0xb1, 0xb3, 0x9f, 0x35, 0xe0, 0x74, 0x9f, + 0xd5, 0xd4, 0x13, 0x64, 0x6e, 0x1c, 0x39, 0xc8, 0x3c, 0x33, 0x68, 0x90, 0xb9, 0xf9, 0xdd, 0x2c, + 0xcc, 0x0a, 0x79, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, 0xda, 0xf3, 0x71, + 0xfc, 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, 0x89, 0x3b, 0xd0, + 0xa7, 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, 0x6a, 0xfe, 0x82, + 0x1e, 0x4c, 0xcc, 0xb7, 0xfa, 0xed, 0x63, 0xc8, 0x75, 0x32, 0x64, 0x5c, 0xb1, 0xf9, 0x2b, 0x59, + 0x78, 0x78, 0x50, 0x42, 0x6f, 0xd1, 0x77, 0x27, 0x7e, 0xe4, 0xdd, 0xc9, 0x5d, 0x52, 0xdb, 0xc7, + 0xf2, 0x04, 0xe5, 0x77, 0xc6, 0x94, 0xda, 0xeb, 0x9d, 0x9f, 0x03, 0xdd, 0x26, 0x4e, 0x50, 0xd3, + 0x4e, 0xa6, 0xf3, 0x0c, 0xb7, 0xc2, 0x89, 0x2a, 0x2f, 0xbe, 0xd3, 0x2d, 0xce, 0x89, 0x14, 0x7f, + 0x55, 0x12, 0x88, 0x42, 0x2c, 0x2b, 0xa1, 0x87, 0x21, 0xef, 0x71, 0xa8, 0x8c, 0xb4, 0x17, 0x57, + 0xb2, 0xbc, 0x0c, 0x2b, 0x28, 0xfa, 0xa4, 0x66, 0x0b, 0x8f, 0x1d, 0x57, 0x96, 0x84, 0x83, 0x6e, + 0x9a, 0x5f, 0x80, 0xbc, 0x2f, 0x13, 0x73, 0xf2, 0xeb, 0x80, 0xc7, 0x06, 0x7c, 0xc0, 0x41, 0x8f, + 0x4e, 0x32, 0x4b, 0x27, 0x6f, 0x9f, 0xca, 0xe1, 0xa9, 0x48, 0x22, 0x53, 0x9d, 0x5a, 0xb8, 0x8f, + 0x11, 0x7a, 0x4f, 0x2c, 0x28, 0x80, 0x09, 0xf1, 0x3d, 0x27, 0xe1, 0xa2, 0xdf, 0x48, 0x29, 0x58, + 0x5b, 0x84, 0xf2, 0xb1, 0x8b, 0x10, 0x79, 0x7a, 0x96, 0xac, 0xcc, 0xef, 0x19, 0x30, 0x29, 0xe6, + 0xc8, 0x5d, 0x78, 0xc9, 0x72, 0x23, 0xfa, 0x92, 0xe5, 0x5c, 0x2a, 0x3b, 0x56, 0x9f, 0x67, 0x2c, + 0x37, 0x60, 0x4a, 0xcf, 0x18, 0x85, 0x9e, 0xd7, 0x76, 0x5c, 0x63, 0x94, 0x1c, 0x2c, 0x72, 0x4f, + 0x0e, 0x77, 0x63, 0xf3, 0xb7, 0xf2, 0xaa, 0x17, 0x99, 0xf7, 0x43, 0x9f, 0xf9, 0xc6, 0x81, 0x33, + 0x5f, 0x9f, 0x78, 0x99, 0xf4, 0x27, 0xde, 0x15, 0xc8, 0xcb, 0x6d, 0x51, 0x18, 0x0f, 0x0f, 0xea, + 0xb1, 0x7d, 0xd4, 0x02, 0xa1, 0xc4, 0xb4, 0xe5, 0xc2, 0x0e, 0x78, 0x6a, 0x0c, 0xd5, 0x76, 0xad, + 0xc8, 0xa0, 0x17, 0x61, 0xf2, 0x96, 0xeb, 0xdd, 0x6c, 0xba, 0x16, 0x4b, 0xf4, 0x0b, 0x69, 0x5c, + 0x27, 0x29, 0x37, 0x1b, 0x0f, 0xb0, 0xbe, 0x1e, 0xd2, 0xc7, 0x3a, 0x33, 0x54, 0x82, 0x99, 0x96, + 0xed, 0x60, 0x62, 0xd5, 0xd5, 0x83, 0x95, 0x31, 0x9e, 0x89, 0x54, 0x9a, 0xd6, 0x1b, 0x51, 0x30, + 0x8e, 0xe3, 0xa3, 0x8f, 0x43, 0xde, 0x17, 0xf9, 0x97, 0xd2, 0xb9, 0xf8, 0x53, 0x27, 0x55, 0x4e, + 0x34, 0xec, 0x3b, 0x59, 0x82, 0x15, 0x43, 0xb4, 0x0e, 0xf3, 0x9e, 0xc8, 0x70, 0x12, 0xf9, 0x4c, + 0x08, 0xdf, 0x15, 0x58, 0xc2, 0x4b, 0x9c, 0x00, 0xc7, 0x89, 0xb5, 0xa8, 0xed, 0xc4, 0x52, 0x9f, + 0xf1, 0x9b, 0x08, 0xcd, 0x79, 0xcf, 0x26, 0x7c, 0x1d, 0x0b, 0xe8, 0x41, 0x0f, 0xa0, 0xf2, 0x23, + 0x3c, 0x80, 0xaa, 0xc2, 0xa9, 0x38, 0x88, 0xe5, 0x61, 0x61, 0xa9, 0x5f, 0x34, 0x9d, 0x55, 0x49, + 0x42, 0xc2, 0xc9, 0x75, 0xd1, 0x75, 0x28, 0x78, 0x84, 0x9d, 0x6a, 0x4a, 0x32, 0xd4, 0x60, 0xe8, + 0xa0, 0x2a, 0x2c, 0x09, 0xe0, 0x90, 0x16, 0x1d, 0x77, 0x2b, 0x9a, 0x8c, 0xf3, 0x4a, 0x8a, 0x1f, + 0x3a, 0x13, 0x63, 0xdf, 0x27, 0x3f, 0x92, 0xf9, 0xe6, 0x34, 0x9c, 0x88, 0x78, 0x34, 0xd0, 0x83, + 0x90, 0x63, 0x89, 0x69, 0xd8, 0xf6, 0x90, 0x0f, 0xb7, 0x30, 0xde, 0x39, 0x1c, 0x86, 0x3e, 0x67, + 0xc0, 0x4c, 0x3b, 0xe2, 0xfb, 0x95, 0x3b, 0xe7, 0x88, 0xb7, 0x8b, 0x51, 0x87, 0xb2, 0x96, 0xc6, + 0x3a, 0xca, 0x0c, 0xc7, 0xb9, 0xd3, 0x05, 0x28, 0x22, 0x13, 0x9b, 0xc4, 0x63, 0xd8, 0xc2, 0xb2, + 0x52, 0x24, 0x56, 0xa2, 0x60, 0x1c, 0xc7, 0xa7, 0x23, 0xcc, 0x5a, 0x37, 0xca, 0x17, 0x90, 0x4a, + 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x67, 0x60, 0x5a, 0xe4, 0x60, 0xac, 0xb8, 0xf5, 0x0b, 0x96, 0xbf, + 0x23, 0x8e, 0x14, 0xea, 0x08, 0xb4, 0x12, 0x81, 0xe2, 0x18, 0x36, 0x6b, 0x5b, 0x98, 0xe8, 0x92, + 0x11, 0x18, 0x8f, 0x66, 0xf9, 0x5e, 0x89, 0x82, 0x71, 0x1c, 0x1f, 0x3d, 0xa2, 0xed, 0xfb, 0xfc, + 0x76, 0x50, 0xed, 0x06, 0x09, 0x7b, 0x7f, 0x09, 0x66, 0x3a, 0xec, 0x04, 0x56, 0x97, 0x40, 0xb1, + 0x1e, 0x15, 0xc3, 0xab, 0x51, 0x30, 0x8e, 0xe3, 0xa3, 0xa7, 0xe0, 0x84, 0x47, 0x77, 0x37, 0x45, + 0x80, 0x5f, 0x19, 0xaa, 0x1b, 0x21, 0xac, 0x03, 0x71, 0x14, 0x17, 0x3d, 0x0b, 0x73, 0x61, 0xca, + 0x32, 0x49, 0x80, 0xdf, 0x21, 0xaa, 0x6c, 0x3c, 0xa5, 0x38, 0x02, 0xee, 0xad, 0x83, 0x7e, 0x01, + 0x66, 0xb5, 0x9e, 0x58, 0x73, 0xea, 0xe4, 0xb6, 0x48, 0x2b, 0xc5, 0x3e, 0xc8, 0xb0, 0x12, 0x83, + 0xe1, 0x1e, 0x6c, 0xf4, 0x3e, 0x98, 0xae, 0xb9, 0xcd, 0x26, 0xdb, 0xe3, 0x78, 0x86, 0x69, 0x9e, + 0x3f, 0x8a, 0x67, 0xda, 0x8a, 0x40, 0x70, 0x0c, 0x13, 0x5d, 0x04, 0xe4, 0x6e, 0x51, 0x7b, 0x86, + 0xd4, 0x9f, 0xe5, 0xdf, 0x54, 0xa5, 0x2a, 0xfe, 0x44, 0x34, 0x2e, 0xfa, 0x72, 0x0f, 0x06, 0x4e, + 0xa8, 0xc5, 0x92, 0xf9, 0x68, 0xef, 0xc8, 0xa6, 0xd3, 0xf8, 0x1a, 0x50, 0xdc, 0x5f, 0x70, 0xe8, + 0x23, 0x32, 0x0f, 0xc6, 0x79, 0x98, 0x7a, 0x3a, 0x89, 0xa4, 0xf4, 0x64, 0xb3, 0xa1, 0x8e, 0xe0, + 0xa5, 0x58, 0x70, 0x42, 0x9f, 0x80, 0xc2, 0x96, 0xcc, 0x3c, 0xbe, 0x30, 0x9b, 0x86, 0x5e, 0x8c, + 0x25, 0xd1, 0x0f, 0xcf, 0xc3, 0x0a, 0x80, 0x43, 0x96, 0xe8, 0x21, 0x98, 0xbc, 0x50, 0x29, 0xa9, + 0x59, 0x38, 0xc7, 0x46, 0x7f, 0x8c, 0x56, 0xc1, 0x3a, 0x80, 0xae, 0x30, 0x65, 0x2f, 0x21, 0x36, + 0xc4, 0xa1, 0xbe, 0xed, 0x35, 0x7f, 0x28, 0x36, 0xbb, 0x04, 0xc5, 0xd5, 0x85, 0x93, 0x31, 0x6c, + 0x51, 0x8e, 0x15, 0x06, 0x7a, 0x01, 0x26, 0x85, 0xbe, 0x60, 0x7b, 0xd3, 0xfc, 0xd1, 0xde, 0x28, + 0xe2, 0x90, 0x04, 0xd6, 0xe9, 0xb1, 0xbb, 0x2d, 0x96, 0x90, 0x99, 0x9c, 0xef, 0x34, 0x9b, 0x0b, + 0xa7, 0xd8, 0xbe, 0x19, 0xde, 0x6d, 0x85, 0x20, 0xac, 0xe3, 0xa1, 0xc7, 0x64, 0xbc, 0xc6, 0xdb, + 0x22, 0x97, 0x7d, 0x2a, 0x5e, 0x43, 0x59, 0xb9, 0x7d, 0xc2, 0x98, 0x4f, 0x1f, 0x12, 0x28, 0xb1, + 0x05, 0x8b, 0xd2, 0xc4, 0xea, 0x5d, 0x24, 0x0b, 0x0b, 0x11, 0xdf, 0xc4, 0xe2, 0xf5, 0xbe, 0x98, + 0xf8, 0x00, 0x2a, 0x68, 0x0b, 0xb2, 0x56, 0x73, 0x6b, 0xe1, 0xde, 0x34, 0x6c, 0x45, 0xf5, 0x8d, + 0x64, 0x1e, 0x7a, 0x54, 0x5a, 0x2f, 0x63, 0x4a, 0xdc, 0x7c, 0x25, 0xa3, 0xee, 0x02, 0x54, 0x82, + 0xcd, 0x97, 0xf4, 0x59, 0x6d, 0xa4, 0xf1, 0x0d, 0xd0, 0x9e, 0xf4, 0xfc, 0x5c, 0x21, 0x25, 0xce, + 0xe9, 0xb6, 0x5a, 0xc7, 0xa9, 0x64, 0x4f, 0x89, 0x26, 0x0f, 0xe5, 0x67, 0xc8, 0xe8, 0x2a, 0x36, + 0xf7, 0x27, 0x94, 0xeb, 0x2b, 0x16, 0x80, 0xe0, 0x41, 0xce, 0xf6, 0x03, 0xdb, 0x4d, 0xf1, 0x3d, + 0x5d, 0x2c, 0xeb, 0x26, 0x0b, 0xd7, 0x65, 0x00, 0xcc, 0x59, 0x51, 0x9e, 0x4e, 0xc3, 0x76, 0x6e, + 0x8b, 0xe6, 0x5f, 0x49, 0x3d, 0xb2, 0x80, 0xf3, 0x64, 0x00, 0xcc, 0x59, 0xa1, 0x1b, 0x7c, 0xa6, + 0xa5, 0xf3, 0xbd, 0xd7, 0xf8, 0x67, 0x9c, 0xa3, 0x33, 0x8e, 0xf2, 0xf2, 0x5b, 0xb6, 0xb0, 0x61, + 0x46, 0xe4, 0x55, 0xdd, 0x58, 0x4b, 0xe2, 0x55, 0xdd, 0x58, 0xc3, 0x94, 0x09, 0x7a, 0xcd, 0x00, + 0xb0, 0xd4, 0xf7, 0x8c, 0xd3, 0xf9, 0x96, 0x45, 0xbf, 0xef, 0x23, 0xf3, 0x08, 0xbb, 0x10, 0x8a, + 0x35, 0xce, 0xe8, 0x45, 0x98, 0xb0, 0xf8, 0x97, 0x78, 0x44, 0xf0, 0x62, 0x3a, 0x9f, 0x97, 0x8a, + 0x49, 0xc0, 0x9c, 0x15, 0x02, 0x84, 0x25, 0x43, 0xca, 0x3b, 0xf0, 0x2c, 0xb2, 0x6d, 0xdf, 0x14, + 0x2e, 0x92, 0xea, 0xc8, 0x09, 0xb5, 0x29, 0xb1, 0x24, 0xde, 0x02, 0x84, 0x25, 0x43, 0xfe, 0x09, + 0x51, 0xcb, 0xb1, 0xd4, 0x93, 0x94, 0x74, 0x1e, 0x2e, 0xe9, 0x8f, 0x5c, 0xb4, 0x4f, 0x88, 0xea, + 0x8c, 0x70, 0x94, 0xaf, 0xf9, 0xe3, 0x2c, 0x00, 0xfb, 0xc9, 0x9f, 0x49, 0xb7, 0x58, 0x6a, 0xbd, + 0x1d, 0xb7, 0x2e, 0x96, 0x76, 0x8a, 0xaf, 0x9d, 0x41, 0xe4, 0xd1, 0xdb, 0x71, 0xeb, 0x58, 0x30, + 0x41, 0x0d, 0x18, 0x6b, 0x5b, 0xc1, 0x4e, 0xfa, 0x4f, 0xab, 0xf3, 0xfc, 0xbd, 0x50, 0xb0, 0x83, + 0x19, 0x03, 0xf4, 0xb2, 0x01, 0x13, 0xfc, 0x71, 0xb5, 0x74, 0x70, 0x8f, 0x7c, 0x8b, 0x2b, 0xfb, + 0x6c, 0x89, 0xbf, 0xe0, 0x16, 0x21, 0x12, 0x4a, 0x35, 0x8a, 0x52, 0x2c, 0xd9, 0x2e, 0xbe, 0x6a, + 0xc0, 0x94, 0x8e, 0x9a, 0x10, 0xdc, 0xf0, 0x11, 0x3d, 0xb8, 0x21, 0xcd, 0xfe, 0xd0, 0xe3, 0x24, + 0xfe, 0xd5, 0x00, 0xed, 0xc3, 0xab, 0x61, 0x68, 0xa3, 0x31, 0x70, 0x68, 0x63, 0x66, 0xc8, 0xd0, + 0xc6, 0xec, 0x50, 0xa1, 0x8d, 0x63, 0xc3, 0x87, 0x36, 0xe6, 0xfa, 0x87, 0x36, 0x9a, 0xaf, 0x1b, + 0x30, 0xd7, 0xb3, 0x1f, 0xc6, 0x3f, 0x70, 0x6f, 0x0c, 0xf8, 0x81, 0xfb, 0x55, 0x98, 0x15, 0xa9, + 0x9f, 0xab, 0xed, 0xa6, 0x9d, 0xf8, 0xec, 0x7d, 0x33, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x3f, 0x37, + 0x60, 0x52, 0x7b, 0x2c, 0x47, 0xdb, 0xc1, 0x1e, 0x15, 0x0a, 0x31, 0xc2, 0xac, 0xd7, 0xec, 0x42, + 0x81, 0xc3, 0xf8, 0xdd, 0x56, 0x43, 0x4b, 0x33, 0x1a, 0xde, 0x6d, 0xd1, 0x52, 0x2c, 0xa0, 0x3c, + 0x81, 0x24, 0x69, 0xb3, 0x4e, 0xcf, 0xea, 0x09, 0x24, 0x49, 0x1b, 0x33, 0x08, 0x63, 0x47, 0xed, + 0x48, 0x11, 0xf5, 0xaa, 0x25, 0xd9, 0xb6, 0xbc, 0x00, 0x73, 0x18, 0x3a, 0x03, 0x59, 0xe2, 0xd4, + 0xc5, 0xa1, 0x57, 0x7d, 0xd8, 0xea, 0x9c, 0x53, 0xc7, 0xb4, 0xdc, 0xbc, 0x0c, 0x53, 0x55, 0x52, + 0xf3, 0x48, 0xf0, 0x1c, 0xd9, 0x1b, 0xf8, 0x4b, 0x59, 0x74, 0xb6, 0xc7, 0xbe, 0x94, 0x45, 0xab, + 0xd3, 0x72, 0xf3, 0x0f, 0x0d, 0x88, 0x65, 0x82, 0xd7, 0xfc, 0xdc, 0x46, 0x5f, 0x3f, 0xb7, 0xee, + 0x1b, 0xcd, 0x1c, 0xe8, 0x1b, 0xbd, 0x08, 0xa8, 0x45, 0x97, 0x42, 0xe4, 0xbb, 0x07, 0xc2, 0xdf, + 0x10, 0x3e, 0xcd, 0xed, 0xc1, 0xc0, 0x09, 0xb5, 0xcc, 0x3f, 0xe0, 0xc2, 0xea, 0xb9, 0xe1, 0x0f, + 0xef, 0x80, 0x0e, 0xe4, 0x18, 0x29, 0xe1, 0x74, 0xa9, 0x8c, 0xb6, 0xb8, 0x7b, 0x53, 0x5c, 0x84, + 0x03, 0x29, 0x96, 0x3c, 0xe3, 0x66, 0x7e, 0x97, 0xcb, 0xaa, 0x25, 0x8f, 0x1f, 0x40, 0xd6, 0x56, + 0x54, 0xd6, 0x0b, 0x69, 0xed, 0x95, 0xc9, 0x32, 0xa2, 0x25, 0x80, 0x36, 0xf1, 0x6a, 0xc4, 0x09, + 0x64, 0x30, 0x76, 0x4e, 0x3c, 0x5e, 0x51, 0xa5, 0x58, 0xc3, 0x30, 0x5f, 0x36, 0x60, 0xb6, 0x1a, + 0xd8, 0xb5, 0x9b, 0xb6, 0xc3, 0x1f, 0x63, 0x6d, 0xdb, 0x0d, 0x7a, 0x4a, 0x21, 0xe2, 0x23, 0x50, + 0xdc, 0x0d, 0xa6, 0xb6, 0x62, 0xf9, 0xed, 0x27, 0x09, 0x47, 0x25, 0x98, 0x91, 0xde, 0x76, 0xe9, + 0xbb, 0xe4, 0x8f, 0x48, 0x95, 0xaf, 0x64, 0x35, 0x0a, 0xc6, 0x71, 0x7c, 0xf3, 0x93, 0x30, 0xa9, + 0xed, 0xaf, 0x6c, 0x2b, 0xba, 0x6d, 0xd5, 0x82, 0xf8, 0x12, 0x3e, 0x47, 0x0b, 0x31, 0x87, 0x31, + 0x17, 0x2b, 0x8f, 0xd6, 0x8d, 0x2d, 0x61, 0x11, 0xa3, 0x2b, 0xa0, 0x94, 0x98, 0x47, 0x1a, 0xe4, + 0xb6, 0x4c, 0x68, 0x2a, 0x89, 0x61, 0x5a, 0x88, 0x39, 0xcc, 0x7c, 0x04, 0xf2, 0xf2, 0xa9, 0x3f, + 0x7b, 0x2f, 0x2b, 0xdd, 0x7f, 0xfa, 0x7b, 0x59, 0xd7, 0x0b, 0x30, 0x83, 0x98, 0xd7, 0x20, 0x2f, + 0x33, 0x12, 0x1c, 0x8e, 0x4d, 0x57, 0x95, 0xef, 0xd8, 0x17, 0x5c, 0x3f, 0x90, 0x69, 0x14, 0xf8, + 0x95, 0xc0, 0xa5, 0x35, 0x56, 0x86, 0x15, 0xd4, 0x9c, 0x83, 0x99, 0xd8, 0xd5, 0x90, 0xf9, 0x8d, + 0x2c, 0x4c, 0x45, 0x3e, 0x40, 0x7c, 0xf8, 0x74, 0x1b, 0x7c, 0x15, 0x27, 0xf8, 0xec, 0xb3, 0x43, + 0xfa, 0xec, 0xf5, 0x4b, 0x92, 0xb1, 0xe3, 0xbd, 0x24, 0xc9, 0xa5, 0x73, 0x49, 0xa2, 0x5d, 0xe6, + 0x8d, 0xdf, 0xbd, 0xcb, 0xbc, 0xaf, 0xe6, 0x60, 0x3a, 0x9a, 0x8b, 0x69, 0x80, 0x91, 0x7c, 0xa4, + 0x67, 0x24, 0x87, 0xf4, 0x59, 0x66, 0x47, 0xf5, 0x59, 0x8e, 0x8d, 0xea, 0xb3, 0xcc, 0x1d, 0xc1, + 0x67, 0xd9, 0xeb, 0x71, 0x1c, 0x1f, 0xd8, 0xe3, 0xf8, 0xb4, 0x0a, 0xf3, 0x99, 0x88, 0xdc, 0x8b, + 0x87, 0x61, 0x3e, 0x28, 0x3a, 0x0c, 0x2b, 0x6e, 0x3d, 0x31, 0x5c, 0x2a, 0x7f, 0x88, 0x6f, 0xc6, + 0x4b, 0x8c, 0xca, 0x19, 0xfe, 0x5a, 0xe4, 0x6d, 0x43, 0x44, 0xe4, 0x3c, 0x01, 0x93, 0x62, 0x3e, + 0x31, 0x5b, 0x09, 0xa2, 0x76, 0x56, 0x35, 0x04, 0x61, 0x1d, 0x8f, 0x7d, 0x23, 0x33, 0xfa, 0x51, + 0x50, 0xe6, 0x02, 0xd6, 0xbf, 0x91, 0x19, 0xfb, 0x88, 0x68, 0x1c, 0xdf, 0xfc, 0x38, 0x9c, 0x4a, + 0x3c, 0x91, 0x31, 0x17, 0x15, 0x53, 0xe3, 0xa4, 0x2e, 0x10, 0x34, 0x31, 0x62, 0xa9, 0x7a, 0x17, + 0xaf, 0xf7, 0xc5, 0xc4, 0x07, 0x50, 0x31, 0xbf, 0x92, 0x85, 0xe9, 0xe8, 0x07, 0x96, 0xd0, 0x2d, + 0xe5, 0xbf, 0x49, 0xc5, 0x75, 0xc4, 0xc9, 0x6a, 0xf9, 0x7d, 0xfa, 0x3a, 0x63, 0x6f, 0xb1, 0xf9, + 0xb5, 0xa5, 0x92, 0x0d, 0x1d, 0x1f, 0x63, 0xe1, 0x05, 0x15, 0xec, 0xd8, 0x37, 0x94, 0xc2, 0x47, + 0x16, 0xe2, 0xd8, 0x95, 0x3a, 0xf7, 0xf0, 0xd9, 0x84, 0x62, 0x85, 0x35, 0xb6, 0x54, 0xb7, 0xec, + 0x12, 0xcf, 0xde, 0xb6, 0xd5, 0xc7, 0x21, 0xd9, 0xce, 0x7d, 0x4d, 0x94, 0x61, 0x05, 0x35, 0x5f, + 0xce, 0x40, 0xf8, 0x29, 0x5c, 0xf6, 0x15, 0x12, 0x5f, 0x33, 0x71, 0xc5, 0xb0, 0x5d, 0x1c, 0xf5, + 0x53, 0x3f, 0x21, 0x45, 0x11, 0x82, 0xa9, 0x95, 0xe0, 0x08, 0xc7, 0x9f, 0xc1, 0x27, 0x70, 0x2d, + 0x98, 0x89, 0x3d, 0x3d, 0x4d, 0x3d, 0xce, 0xfd, 0x47, 0x59, 0x28, 0xa8, 0xc7, 0xbb, 0xe8, 0xbd, + 0x11, 0x7f, 0x43, 0xa1, 0xfc, 0x76, 0x2d, 0xe1, 0xfe, 0x8e, 0x5b, 0xbf, 0xd3, 0x2d, 0xce, 0x28, + 0xe4, 0x98, 0xef, 0xe0, 0x0c, 0x64, 0x3b, 0x5e, 0x33, 0x7e, 0xa0, 0xb8, 0x8a, 0xd7, 0x31, 0x2d, + 0x47, 0xb7, 0xe3, 0x07, 0xfe, 0x8d, 0x94, 0x1e, 0x1c, 0x73, 0xcb, 0xbb, 0xff, 0x41, 0x9f, 0x6a, + 0xc9, 0x2d, 0xb7, 0xbe, 0x17, 0x4f, 0xd0, 0x5f, 0x76, 0xeb, 0x7b, 0x98, 0x41, 0xd0, 0x33, 0x30, + 0x1d, 0xd8, 0x2d, 0xe2, 0x76, 0x02, 0xfd, 0x43, 0xa3, 0xd9, 0xf0, 0x72, 0x71, 0x33, 0x02, 0xc5, + 0x31, 0x6c, 0xaa, 0x65, 0x6f, 0xf8, 0xae, 0xc3, 0xb2, 0xee, 0x8d, 0x47, 0x6f, 0x22, 0x2e, 0x56, + 0x2f, 0x5f, 0x62, 0x7e, 0x0f, 0x85, 0x41, 0xb1, 0x6d, 0xf6, 0x52, 0xcf, 0x23, 0xe2, 0x6e, 0x7f, + 0x36, 0xcc, 0xe3, 0xc0, 0xcb, 0xb1, 0xc2, 0x40, 0xab, 0x9c, 0x36, 0x95, 0x96, 0x69, 0x94, 0xa9, + 0xf2, 0xc3, 0x92, 0x2e, 0x2d, 0xbb, 0xd3, 0x2d, 0x2e, 0x10, 0xa7, 0xe6, 0xd6, 0x6d, 0xa7, 0xb1, + 0x4c, 0x11, 0x97, 0xb0, 0x75, 0x4b, 0xaa, 0x1a, 0x55, 0xd3, 0xbc, 0x0a, 0x33, 0xb1, 0x0e, 0x93, + 0x07, 0x40, 0x23, 0xf9, 0x00, 0x38, 0x58, 0x4e, 0xfd, 0x3f, 0x31, 0x60, 0xae, 0x67, 0x0b, 0x18, + 0xf4, 0x19, 0x47, 0x5c, 0x19, 0x65, 0x8e, 0xae, 0x8c, 0xb2, 0xc3, 0x29, 0xa3, 0xf2, 0xd6, 0xb7, + 0xde, 0x3c, 0x7b, 0xcf, 0x77, 0xde, 0x3c, 0x7b, 0xcf, 0xf7, 0xdf, 0x3c, 0x7b, 0xcf, 0xcb, 0xfb, + 0x67, 0x8d, 0x6f, 0xed, 0x9f, 0x35, 0xbe, 0xb3, 0x7f, 0xd6, 0xf8, 0xfe, 0xfe, 0x59, 0xe3, 0x1f, + 0xf7, 0xcf, 0x1a, 0xaf, 0xff, 0xe8, 0xec, 0x3d, 0xcf, 0x3f, 0x1d, 0x4e, 0xd0, 0x65, 0x39, 0x41, + 0xd9, 0x8f, 0x77, 0xc9, 0xe9, 0xb8, 0xdc, 0xbe, 0xd9, 0x58, 0xa6, 0x13, 0x74, 0x59, 0x95, 0xc8, + 0x09, 0xfa, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x40, 0x0b, 0x31, 0xfb, 0xcb, 0x93, 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -7745,6 +7745,18 @@ func (m *RolloutExperimentTemplate) MarshalToSizedBuffer(dAtA []byte) (int, erro _ = i var l int _ = l + if m.Service != nil { + { + size, err := m.Service.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } if m.Weight != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.Weight)) i-- @@ -10930,6 +10942,10 @@ func (m *RolloutExperimentTemplate) Size() (n int) { if m.Weight != nil { n += 1 + sovGenerated(uint64(*m.Weight)) } + if m.Service != nil { + l = m.Service.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -12702,6 +12718,7 @@ func (this *RolloutExperimentTemplate) String() string { `Metadata:` + strings.Replace(strings.Replace(this.Metadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1), `&`, ``, 1) + `,`, `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, `Weight:` + valueToStringGenerated(this.Weight) + `,`, + `Service:` + strings.Replace(this.Service.String(), "TemplateService", "TemplateService", 1) + `,`, `}`, }, "") return s @@ -26327,6 +26344,42 @@ func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { } } m.Weight = &v + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Service == nil { + m.Service = &TemplateService{} + } + if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index c90faf3a42..f4c7b9cd2e 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -1223,6 +1223,9 @@ message RolloutExperimentTemplate { // Weight sets the percentage of traffic the template's replicas should receive optional int32 weight = 6; + + // Service defines wether a service will be generated or not + optional TemplateService service = 7; } // RolloutList is a list of Rollout resources diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index ac729e0107..f12fa49e4f 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -3787,12 +3787,18 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe Format: "int32", }, }, + "service": { + SchemaProps: spec.SchemaProps{ + Description: "Service defines wether a service will be generated or not", + Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService"), + }, + }, }, - Required: []string{"name", "specRef"}, + Required: []string{"name", "specRef", "service"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, } } diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 746758c60f..ad695b7240 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -534,6 +534,8 @@ type RolloutExperimentTemplate struct { Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,5,opt,name=selector"` // Weight sets the percentage of traffic the template's replicas should receive Weight *int32 `json:"weight,omitempty" protobuf:"varint,6,opt,name=weight"` + // Service defines wether a service will be generated or not + Service *TemplateService `json:"service,omitemepty" protobuf:"bytes,7,opt,name=service"` } // PodTemplateMetadata extra labels to add to the template diff --git a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go index 1a64ef2cca..faf528d849 100644 --- a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go @@ -2035,6 +2035,11 @@ func (in *RolloutExperimentTemplate) DeepCopyInto(out *RolloutExperimentTemplate *out = new(int32) **out = **in } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(TemplateService) + **out = **in + } return } diff --git a/rollout/experiment.go b/rollout/experiment.go index a6d3bdcd43..8a020c6246 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -64,7 +64,9 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Name: templateStep.Name, Replicas: templateStep.Replicas, } - template.Service = &v1alpha1.TemplateService{} + if templateStep.Weight != nil || templateStep.Service != nil { + template.Service = &v1alpha1.TemplateService{} + } templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { case v1alpha1.CanarySpecRef: diff --git a/rollout/experiment_test.go b/rollout/experiment_test.go index 54cea95d2e..7628515d39 100644 --- a/rollout/experiment_test.go +++ b/rollout/experiment_test.go @@ -818,7 +818,7 @@ func TestRolloutCreateExperimentWithService(t *testing.T) { assert.NotNil(t, ex.Spec.Templates[0].Service) assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) - assert.NotNil(t, ex.Spec.Templates[1].Service) + assert.Nil(t, ex.Spec.Templates[1].Service) } func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { @@ -859,5 +859,5 @@ func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { assert.NotNil(t, ex.Spec.Templates[0].Service) assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) - assert.NotNil(t, ex.Spec.Templates[1].Service) + assert.Nil(t, ex.Spec.Templates[1].Service) } diff --git a/test/e2e/functional/experiment-dry-run-analysis.yaml b/test/e2e/functional/experiment-dry-run-analysis.yaml index 181dff1531..466e38f612 100644 --- a/test/e2e/functional/experiment-dry-run-analysis.yaml +++ b/test/e2e/functional/experiment-dry-run-analysis.yaml @@ -28,6 +28,7 @@ spec: templates: - name: baseline replicas: 1 + service: {} selector: matchLabels: app: experiment-with-dry-run diff --git a/test/e2e/functional/experiment-measurement-retention-analysis.yaml b/test/e2e/functional/experiment-measurement-retention-analysis.yaml index 85c6d284f2..95da9274f7 100644 --- a/test/e2e/functional/experiment-measurement-retention-analysis.yaml +++ b/test/e2e/functional/experiment-measurement-retention-analysis.yaml @@ -31,6 +31,7 @@ spec: templates: - name: baseline replicas: 1 + service: {} selector: matchLabels: app: experiment-with-mr diff --git a/test/e2e/functional/experiment-with-service.yaml b/test/e2e/functional/experiment-with-service.yaml index af6ab5dee9..f1cd198708 100644 --- a/test/e2e/functional/experiment-with-service.yaml +++ b/test/e2e/functional/experiment-with-service.yaml @@ -9,11 +9,7 @@ spec: templates: - name: test replicas: 1 - service: - ports: - - protocol: TCP - port: 80 - targetPort: 8080 + service: {} selector: matchLabels: app: experiment-with-service @@ -29,3 +25,7 @@ spec: requests: memory: 16Mi cpu: 1m + ports: + - protocol: TCP + port: 80 + containerPort: 8080 diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index a21a1bea6d..7a00bba8ef 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -1185,6 +1185,12 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExpe * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate */ weight?: number; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ + service?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService; } /** * @@ -1698,6 +1704,13 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TLSRoute { */ sniHosts?: Array; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService { +} /** * * @export From 0c1984d77884f217afd80e5a0549517d74ece538 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 4 Nov 2022 19:55:20 +0100 Subject: [PATCH 23/28] typo in types Signed-off-by: Alex Eftimie --- manifests/crds/rollout-crd.yaml | 1 - manifests/install.yaml | 1 - manifests/namespace-install.yaml | 1 - pkg/apis/rollouts/v1alpha1/openapi_generated.go | 2 +- pkg/apis/rollouts/v1alpha1/types.go | 2 +- 5 files changed, 2 insertions(+), 5 deletions(-) diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index ad72f3dfcc..98f01e74a5 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -570,7 +570,6 @@ spec: type: integer required: - name - - service - specRef type: object type: array diff --git a/manifests/install.yaml b/manifests/install.yaml index fc2ed5ccbb..233bd19810 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -11580,7 +11580,6 @@ spec: type: integer required: - name - - service - specRef type: object type: array diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index 33c490a478..3a0e8489ba 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -11580,7 +11580,6 @@ spec: type: integer required: - name - - service - specRef type: object type: array diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index f12fa49e4f..8e11bec006 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -3794,7 +3794,7 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe }, }, }, - Required: []string{"name", "specRef", "service"}, + Required: []string{"name", "specRef"}, }, }, Dependencies: []string{ diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index ad695b7240..36dacc5ea1 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -535,7 +535,7 @@ type RolloutExperimentTemplate struct { // Weight sets the percentage of traffic the template's replicas should receive Weight *int32 `json:"weight,omitempty" protobuf:"varint,6,opt,name=weight"` // Service defines wether a service will be generated or not - Service *TemplateService `json:"service,omitemepty" protobuf:"bytes,7,opt,name=service"` + Service *TemplateService `json:"service,omitempty" protobuf:"bytes,7,opt,name=service"` } // PodTemplateMetadata extra labels to add to the template From 2a073c50fd9632ab4ff47cc24b8ec3b2eac52b69 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 4 Nov 2022 20:01:10 +0100 Subject: [PATCH 24/28] go fmt. need pre-commit hook Signed-off-by: Alex Eftimie --- rollout/experiment.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rollout/experiment.go b/rollout/experiment.go index 8a020c6246..420355d82b 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -65,7 +65,7 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Replicas: templateStep.Replicas, } if templateStep.Weight != nil || templateStep.Service != nil { - template.Service = &v1alpha1.TemplateService{} + template.Service = &v1alpha1.TemplateService{} } templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { From 9d2ce03b937da382525048ca25e5c04cec297711 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 4 Nov 2022 20:47:32 +0100 Subject: [PATCH 25/28] no more spec changes Signed-off-by: Alex Eftimie --- manifests/crds/rollout-crd.yaml | 2 - manifests/install.yaml | 2 - manifests/namespace-install.yaml | 2 - pkg/apiclient/rollout/rollout.swagger.json | 7 - pkg/apis/rollouts/v1alpha1/generated.pb.go | 1003 ++++++++--------- pkg/apis/rollouts/v1alpha1/generated.proto | 3 - .../rollouts/v1alpha1/openapi_generated.go | 8 +- pkg/apis/rollouts/v1alpha1/types.go | 2 - .../v1alpha1/zz_generated.deepcopy.go | 5 - rollout/experiment.go | 4 +- rollout/experiment_test.go | 4 +- ui/src/models/rollout/generated/api.ts | 13 - 12 files changed, 479 insertions(+), 576 deletions(-) diff --git a/manifests/crds/rollout-crd.yaml b/manifests/crds/rollout-crd.yaml index 98f01e74a5..c226789cf2 100644 --- a/manifests/crds/rollout-crd.yaml +++ b/manifests/crds/rollout-crd.yaml @@ -561,8 +561,6 @@ spec: type: string type: object type: object - service: - type: object specRef: type: string weight: diff --git a/manifests/install.yaml b/manifests/install.yaml index 233bd19810..04475b6a8a 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -11571,8 +11571,6 @@ spec: type: string type: object type: object - service: - type: object specRef: type: string weight: diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index 3a0e8489ba..bfca8940be 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -11571,8 +11571,6 @@ spec: type: string type: object type: object - service: - type: object specRef: type: string weight: diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index 242622ba31..e7ac9434b8 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -1329,10 +1329,6 @@ "type": "integer", "format": "int32", "title": "Weight sets the percentage of traffic the template's replicas should receive" - }, - "service": { - "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService", - "title": "Service defines wether a service will be generated or not" } }, "title": "RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step" @@ -1729,9 +1725,6 @@ }, "description": "TLSRoute holds the information on the virtual service's TLS/HTTPS routes that are desired to be matched for changing weights." }, - "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateService": { - "type": "object" - }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TraefikTrafficRouting": { "type": "object", "properties": { diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index a0b0c7e945..1b57b69024 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -3084,483 +3084,483 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 7616 bytes of a gzipped FileDescriptorProto + // 7605 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xd7, 0x75, 0xb0, 0x87, 0x14, 0x25, 0xf2, 0x48, 0xab, 0x9f, 0xbb, 0xda, 0xac, 0x2c, 0x7b, 0x97, 0xce, - 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0x3e, 0x27, 0x36, 0xfc, 0x95, 0x94, 0x76, - 0xbd, 0x5a, 0x4b, 0xbb, 0xdc, 0x4b, 0xed, 0x6e, 0xe2, 0xc4, 0x49, 0x46, 0xe4, 0x15, 0x35, 0xbb, - 0xe4, 0x0c, 0x33, 0x33, 0xd4, 0xae, 0x1c, 0x23, 0xb1, 0x1b, 0xd8, 0x4d, 0x8b, 0x04, 0x71, 0x9b, - 0x04, 0x45, 0x51, 0xb4, 0x48, 0x0b, 0x03, 0xfd, 0x49, 0x9f, 0x82, 0x16, 0x7d, 0x09, 0xd0, 0xa2, - 0xf9, 0x69, 0xfa, 0x90, 0x22, 0x29, 0xd0, 0x26, 0x29, 0x10, 0xb6, 0x56, 0xfa, 0xd2, 0xa2, 0x45, - 0x50, 0x20, 0x45, 0x91, 0x7d, 0x2a, 0xee, 0xef, 0xdc, 0x19, 0x0e, 0x25, 0x52, 0x1c, 0x6d, 0x8c, - 0x36, 0x6f, 0xe4, 0x3d, 0xe7, 0x9e, 0x73, 0xee, 0xef, 0x39, 0xf7, 0xdc, 0x73, 0xcf, 0xc0, 0x7a, - 0xc3, 0x0e, 0x76, 0x3a, 0x5b, 0x4b, 0x35, 0xb7, 0xb5, 0x6c, 0x79, 0x0d, 0xb7, 0xed, 0xb9, 0x37, - 0xd8, 0x8f, 0x77, 0x79, 0x6e, 0xb3, 0xe9, 0x76, 0x02, 0x7f, 0xb9, 0x7d, 0xb3, 0xb1, 0x6c, 0xb5, - 0x6d, 0x7f, 0x59, 0x95, 0xec, 0xbe, 0xc7, 0x6a, 0xb6, 0x77, 0xac, 0xf7, 0x2c, 0x37, 0x88, 0x43, - 0x3c, 0x2b, 0x20, 0xf5, 0xa5, 0xb6, 0xe7, 0x06, 0x2e, 0x7a, 0x3a, 0xa4, 0xb6, 0x24, 0xa9, 0xb1, - 0x1f, 0x1f, 0x91, 0x75, 0x97, 0xda, 0x37, 0x1b, 0x4b, 0x94, 0xda, 0x92, 0x2a, 0x91, 0xd4, 0x16, - 0xdf, 0xa5, 0xc9, 0xd2, 0x70, 0x1b, 0xee, 0x32, 0x23, 0xba, 0xd5, 0xd9, 0x66, 0xff, 0xd8, 0x1f, - 0xf6, 0x8b, 0x33, 0x5b, 0x7c, 0xf0, 0xe6, 0x93, 0xfe, 0x92, 0xed, 0x52, 0xd9, 0x96, 0xb7, 0xac, - 0xa0, 0xb6, 0xb3, 0xbc, 0xdb, 0x23, 0xd1, 0xa2, 0xa9, 0x21, 0xd5, 0x5c, 0x8f, 0x24, 0xe1, 0x3c, - 0x1e, 0xe2, 0xb4, 0xac, 0xda, 0x8e, 0xed, 0x10, 0x6f, 0x2f, 0x6c, 0x75, 0x8b, 0x04, 0x56, 0x52, - 0xad, 0xe5, 0x7e, 0xb5, 0xbc, 0x8e, 0x13, 0xd8, 0x2d, 0xd2, 0x53, 0xe1, 0xff, 0x1e, 0x56, 0xc1, - 0xaf, 0xed, 0x90, 0x96, 0xd5, 0x53, 0xef, 0xb1, 0x7e, 0xf5, 0x3a, 0x81, 0xdd, 0x5c, 0xb6, 0x9d, - 0xc0, 0x0f, 0xbc, 0x78, 0x25, 0xf3, 0xeb, 0x59, 0x28, 0x94, 0xd6, 0xcb, 0xd5, 0xc0, 0x0a, 0x3a, - 0x3e, 0x7a, 0xcd, 0x80, 0xa9, 0xa6, 0x6b, 0xd5, 0xcb, 0x56, 0xd3, 0x72, 0x6a, 0xc4, 0x5b, 0x30, - 0x1e, 0x30, 0x1e, 0x9e, 0x7c, 0x74, 0x7d, 0x69, 0x94, 0xf1, 0x5a, 0x2a, 0xdd, 0xf2, 0x31, 0xf1, - 0xdd, 0x8e, 0x57, 0x23, 0x98, 0x6c, 0x97, 0xe7, 0xbf, 0xd5, 0x2d, 0xde, 0xb3, 0xdf, 0x2d, 0x4e, - 0xad, 0x6b, 0x9c, 0x70, 0x84, 0x2f, 0xfa, 0xa2, 0x01, 0x73, 0x35, 0xcb, 0xb1, 0xbc, 0xbd, 0x4d, - 0xcb, 0x6b, 0x90, 0xe0, 0x59, 0xcf, 0xed, 0xb4, 0x17, 0x32, 0xc7, 0x20, 0xcd, 0xbd, 0x42, 0x9a, - 0xb9, 0x95, 0x38, 0x3b, 0xdc, 0x2b, 0x01, 0x93, 0xcb, 0x0f, 0xac, 0xad, 0x26, 0xd1, 0xe5, 0xca, - 0x1e, 0xa7, 0x5c, 0xd5, 0x38, 0x3b, 0xdc, 0x2b, 0x81, 0xf9, 0x6a, 0x16, 0xe6, 0x4a, 0xeb, 0xe5, - 0x4d, 0xcf, 0xda, 0xde, 0xb6, 0x6b, 0xd8, 0xed, 0x04, 0xb6, 0xd3, 0x40, 0xef, 0x84, 0x09, 0xdb, - 0x69, 0x78, 0xc4, 0xf7, 0xd9, 0x40, 0x16, 0xca, 0x33, 0x82, 0xe8, 0xc4, 0x1a, 0x2f, 0xc6, 0x12, - 0x8e, 0x9e, 0x80, 0x49, 0x9f, 0x78, 0xbb, 0x76, 0x8d, 0x54, 0x5c, 0x2f, 0x60, 0x3d, 0x9d, 0x2b, - 0x9f, 0x14, 0xe8, 0x93, 0xd5, 0x10, 0x84, 0x75, 0x3c, 0x5a, 0xcd, 0x73, 0xdd, 0x40, 0xc0, 0x59, - 0x47, 0x14, 0xc2, 0x6a, 0x38, 0x04, 0x61, 0x1d, 0x0f, 0xbd, 0x6e, 0xc0, 0xac, 0x1f, 0xd8, 0xb5, - 0x9b, 0xb6, 0x43, 0x7c, 0x7f, 0xc5, 0x75, 0xb6, 0xed, 0xc6, 0x42, 0x8e, 0xf5, 0xe2, 0xa5, 0xd1, - 0x7a, 0xb1, 0x1a, 0xa3, 0x5a, 0x9e, 0xdf, 0xef, 0x16, 0x67, 0xe3, 0xa5, 0xb8, 0x87, 0x3b, 0x5a, - 0x85, 0x59, 0xcb, 0x71, 0xdc, 0xc0, 0x0a, 0x6c, 0xd7, 0xa9, 0x78, 0x64, 0xdb, 0xbe, 0xbd, 0x30, - 0xc6, 0x9a, 0xb3, 0x20, 0x9a, 0x33, 0x5b, 0x8a, 0xc1, 0x71, 0x4f, 0x0d, 0x73, 0x15, 0x16, 0x4a, - 0xad, 0x2d, 0xcb, 0xf7, 0xad, 0xba, 0xeb, 0xc5, 0x46, 0xe3, 0x61, 0xc8, 0xb7, 0xac, 0x76, 0xdb, - 0x76, 0x1a, 0x74, 0x38, 0xb2, 0x0f, 0x17, 0xca, 0x53, 0xfb, 0xdd, 0x62, 0x7e, 0x43, 0x94, 0x61, - 0x05, 0x35, 0x7f, 0x90, 0x81, 0xc9, 0x92, 0x63, 0x35, 0xf7, 0x7c, 0xdb, 0xc7, 0x1d, 0x07, 0x7d, - 0x14, 0xf2, 0x74, 0x77, 0xa9, 0x5b, 0x81, 0x25, 0x56, 0xe4, 0xbb, 0x97, 0xf8, 0x62, 0x5f, 0xd2, - 0x17, 0x7b, 0xd8, 0x2f, 0x14, 0x7b, 0x69, 0xf7, 0x3d, 0x4b, 0x97, 0xb7, 0x6e, 0x90, 0x5a, 0xb0, - 0x41, 0x02, 0xab, 0x8c, 0x44, 0x2b, 0x20, 0x2c, 0xc3, 0x8a, 0x2a, 0x72, 0x61, 0xcc, 0x6f, 0x93, - 0x9a, 0x58, 0x61, 0x1b, 0x23, 0xce, 0xe4, 0x50, 0xf4, 0x6a, 0x9b, 0xd4, 0xca, 0x53, 0x82, 0xf5, - 0x18, 0xfd, 0x87, 0x19, 0x23, 0x74, 0x0b, 0xc6, 0x7d, 0xb6, 0xe7, 0x88, 0xc5, 0x73, 0x39, 0x3d, - 0x96, 0x8c, 0x6c, 0x79, 0x5a, 0x30, 0x1d, 0xe7, 0xff, 0xb1, 0x60, 0x67, 0xfe, 0xbd, 0x01, 0x27, - 0x35, 0xec, 0x92, 0xd7, 0xe8, 0xb4, 0x88, 0x13, 0xa0, 0x07, 0x60, 0xcc, 0xb1, 0x5a, 0x44, 0x2c, - 0x14, 0x25, 0xf2, 0x25, 0xab, 0x45, 0x30, 0x83, 0xa0, 0x07, 0x21, 0xb7, 0x6b, 0x35, 0x3b, 0x84, - 0x75, 0x52, 0xa1, 0x7c, 0x42, 0xa0, 0xe4, 0xae, 0xd1, 0x42, 0xcc, 0x61, 0xe8, 0x25, 0x28, 0xb0, - 0x1f, 0xe7, 0x3d, 0xb7, 0x95, 0x52, 0xd3, 0x84, 0x84, 0xd7, 0x24, 0xd9, 0xf2, 0x89, 0xfd, 0x6e, - 0xb1, 0xa0, 0xfe, 0xe2, 0x90, 0xa1, 0xf9, 0x0f, 0x06, 0xcc, 0x68, 0x8d, 0x5b, 0xb7, 0xfd, 0x00, - 0x7d, 0xa8, 0x67, 0xf2, 0x2c, 0x0d, 0x36, 0x79, 0x68, 0x6d, 0x36, 0x75, 0x66, 0x45, 0x4b, 0xf3, - 0xb2, 0x44, 0x9b, 0x38, 0x0e, 0xe4, 0xec, 0x80, 0xb4, 0xfc, 0x85, 0xcc, 0x03, 0xd9, 0x87, 0x27, - 0x1f, 0x5d, 0x4b, 0x6d, 0x18, 0xc3, 0xfe, 0x5d, 0xa3, 0xf4, 0x31, 0x67, 0x63, 0x7e, 0x65, 0x2c, - 0xd2, 0x42, 0x3a, 0xa3, 0x90, 0x0b, 0x13, 0x2d, 0x12, 0x78, 0x76, 0x8d, 0xaf, 0xab, 0xc9, 0x47, - 0x57, 0x47, 0x93, 0x62, 0x83, 0x11, 0x0b, 0x37, 0x4b, 0xfe, 0xdf, 0xc7, 0x92, 0x0b, 0xda, 0x81, - 0x31, 0xcb, 0x6b, 0xc8, 0x36, 0x9f, 0x4f, 0x67, 0x7c, 0xc3, 0x39, 0x57, 0xf2, 0x1a, 0x3e, 0x66, - 0x1c, 0xd0, 0x32, 0x14, 0x02, 0xe2, 0xb5, 0x6c, 0xc7, 0x0a, 0xf8, 0xee, 0x9a, 0x2f, 0xcf, 0x09, - 0xb4, 0xc2, 0xa6, 0x04, 0xe0, 0x10, 0x07, 0x35, 0x61, 0xbc, 0xee, 0xed, 0xe1, 0x8e, 0xb3, 0x30, - 0x96, 0x46, 0x57, 0xac, 0x32, 0x5a, 0xe1, 0x62, 0xe2, 0xff, 0xb1, 0xe0, 0x81, 0xde, 0x30, 0x60, - 0xbe, 0x45, 0x2c, 0xbf, 0xe3, 0x11, 0xda, 0x04, 0x4c, 0x02, 0xe2, 0xd0, 0xdd, 0x70, 0x21, 0xc7, - 0x98, 0xe3, 0x51, 0xc7, 0xa1, 0x97, 0x72, 0xf9, 0x7e, 0x21, 0xca, 0x7c, 0x12, 0x14, 0x27, 0x4a, - 0x63, 0xfe, 0x60, 0x0c, 0xe6, 0x7a, 0x76, 0x08, 0xf4, 0x38, 0xe4, 0xda, 0x3b, 0x96, 0x2f, 0x97, - 0xfc, 0x59, 0x39, 0xdf, 0x2a, 0xb4, 0xf0, 0x4e, 0xb7, 0x78, 0x42, 0x56, 0x61, 0x05, 0x98, 0x23, - 0x53, 0x9d, 0xda, 0x22, 0xbe, 0x6f, 0x35, 0xe4, 0x3e, 0xa0, 0x4d, 0x13, 0x56, 0x8c, 0x25, 0x1c, - 0xfd, 0x92, 0x01, 0x27, 0xf8, 0x94, 0xc1, 0xc4, 0xef, 0x34, 0x03, 0xba, 0xd7, 0xd1, 0x6e, 0xb9, - 0x98, 0xc6, 0xf4, 0xe4, 0x24, 0xcb, 0xa7, 0x04, 0xf7, 0x13, 0x7a, 0xa9, 0x8f, 0xa3, 0x7c, 0xd1, - 0x75, 0x28, 0xf8, 0x81, 0xe5, 0x05, 0xa4, 0x5e, 0x0a, 0x98, 0x56, 0x9b, 0x7c, 0xf4, 0x7f, 0x0f, - 0xb6, 0x09, 0x6c, 0xda, 0x2d, 0xc2, 0x37, 0x9c, 0xaa, 0x24, 0x80, 0x43, 0x5a, 0xe8, 0x25, 0x00, - 0xaf, 0xe3, 0x54, 0x3b, 0xad, 0x96, 0xe5, 0xed, 0x09, 0x0d, 0x7e, 0x61, 0xb4, 0xe6, 0x61, 0x45, - 0x2f, 0xd4, 0x59, 0x61, 0x19, 0xd6, 0xf8, 0xa1, 0x57, 0x0c, 0x38, 0xc1, 0x67, 0xa2, 0x94, 0x60, - 0x3c, 0x65, 0x09, 0xe6, 0x68, 0xd7, 0xae, 0xea, 0x2c, 0x70, 0x94, 0xa3, 0xf9, 0xb7, 0x51, 0x7d, - 0x52, 0x0d, 0xa8, 0x75, 0xdd, 0xd8, 0x43, 0x1f, 0x84, 0x7b, 0xfd, 0x4e, 0xad, 0x46, 0x7c, 0x7f, - 0xbb, 0xd3, 0xc4, 0x1d, 0xe7, 0x82, 0xed, 0x07, 0xae, 0xb7, 0xb7, 0x6e, 0xb7, 0xec, 0x80, 0xcd, - 0xb8, 0x5c, 0xf9, 0xcc, 0x7e, 0xb7, 0x78, 0x6f, 0xb5, 0x1f, 0x12, 0xee, 0x5f, 0x1f, 0x59, 0x70, - 0x5f, 0xc7, 0xe9, 0x4f, 0x9e, 0x5b, 0x6f, 0xc5, 0xfd, 0x6e, 0xf1, 0xbe, 0xab, 0xfd, 0xd1, 0xf0, - 0x41, 0x34, 0xcc, 0x7f, 0x31, 0x60, 0x56, 0xb6, 0x6b, 0x93, 0xb4, 0xda, 0x4d, 0xba, 0xbb, 0x1c, - 0xbf, 0x21, 0x12, 0x44, 0x0c, 0x11, 0x9c, 0x8e, 0x3a, 0x91, 0xf2, 0xf7, 0xb3, 0x46, 0xcc, 0x7f, - 0x36, 0x60, 0x3e, 0x8e, 0x7c, 0x17, 0x94, 0xa7, 0x1f, 0x55, 0x9e, 0x97, 0xd2, 0x6d, 0x6d, 0x1f, - 0x0d, 0xfa, 0xda, 0x58, 0x6f, 0x5b, 0xff, 0xbb, 0xab, 0xd1, 0x50, 0x2b, 0x66, 0x7f, 0x96, 0x5a, - 0x71, 0xec, 0x2d, 0xa5, 0x15, 0x7f, 0x7f, 0x0c, 0xa6, 0x4a, 0x4e, 0x60, 0x97, 0xb6, 0xb7, 0x6d, - 0xc7, 0x0e, 0xf6, 0xd0, 0x67, 0x32, 0xb0, 0xdc, 0xf6, 0xc8, 0x36, 0xf1, 0x3c, 0x52, 0x5f, 0xed, - 0x78, 0xb6, 0xd3, 0xa8, 0xd6, 0x76, 0x48, 0xbd, 0xd3, 0xb4, 0x9d, 0xc6, 0x5a, 0xc3, 0x71, 0x55, - 0xf1, 0xb9, 0xdb, 0xa4, 0xd6, 0x61, 0x4d, 0xe2, 0x8b, 0xa2, 0x35, 0x5a, 0x93, 0x2a, 0xc3, 0x31, - 0x2d, 0x3f, 0xb6, 0xdf, 0x2d, 0x2e, 0x0f, 0x59, 0x09, 0x0f, 0xdb, 0x34, 0xf4, 0xe9, 0x0c, 0x2c, - 0x79, 0xe4, 0x63, 0x1d, 0x7b, 0xf0, 0xde, 0xe0, 0xbb, 0x56, 0x73, 0x44, 0xf5, 0x33, 0x14, 0xcf, - 0xf2, 0xa3, 0xfb, 0xdd, 0xe2, 0x90, 0x75, 0xf0, 0x90, 0xed, 0x32, 0xbf, 0x96, 0x81, 0x53, 0xa5, - 0x76, 0x7b, 0x83, 0xf8, 0x3b, 0xb1, 0x43, 0xed, 0xe7, 0x0c, 0x98, 0xde, 0xb5, 0xbd, 0xa0, 0x63, - 0x35, 0xa5, 0x13, 0x80, 0x4f, 0x89, 0xea, 0x88, 0xcb, 0x99, 0x73, 0xbb, 0x16, 0x21, 0x5d, 0x46, - 0xfb, 0xdd, 0xe2, 0x74, 0xb4, 0x0c, 0xc7, 0xd8, 0xa3, 0x5f, 0x37, 0x60, 0x56, 0x14, 0x5d, 0x72, - 0xeb, 0x44, 0xf7, 0x1c, 0x5d, 0x4d, 0x53, 0x26, 0x45, 0x9c, 0xbb, 0x18, 0xe2, 0xa5, 0xb8, 0x47, - 0x08, 0xf3, 0xdf, 0x32, 0x70, 0xba, 0x0f, 0x0d, 0xf4, 0x7b, 0x06, 0xcc, 0x73, 0x77, 0x93, 0x06, - 0xc2, 0x64, 0x5b, 0xf4, 0xe6, 0x07, 0xd2, 0x96, 0x1c, 0xd3, 0xb5, 0x40, 0x9c, 0x1a, 0x29, 0x2f, - 0xd0, 0x6d, 0x63, 0x25, 0x81, 0x35, 0x4e, 0x14, 0x88, 0x49, 0xca, 0x1d, 0x50, 0x31, 0x49, 0x33, - 0x77, 0x45, 0xd2, 0x6a, 0x02, 0x6b, 0x9c, 0x28, 0x90, 0xf9, 0xff, 0xe1, 0xbe, 0x03, 0xc8, 0x1d, - 0x7e, 0xe2, 0x37, 0x5f, 0x50, 0xb3, 0x3e, 0x3a, 0xe7, 0x06, 0x70, 0x16, 0x98, 0x30, 0xee, 0xb9, - 0x9d, 0x80, 0x70, 0xed, 0x56, 0x28, 0x03, 0xd5, 0x13, 0x98, 0x95, 0x60, 0x01, 0x31, 0xbf, 0x66, - 0x40, 0x7e, 0x08, 0xff, 0x43, 0x31, 0xea, 0x7f, 0x28, 0xf4, 0xf8, 0x1e, 0x82, 0x5e, 0xdf, 0xc3, - 0xb3, 0xa3, 0x8d, 0xc6, 0x20, 0x3e, 0x87, 0x1f, 0x1b, 0x30, 0xd7, 0xe3, 0xa3, 0x40, 0x3b, 0x30, - 0xdf, 0x76, 0xeb, 0xd2, 0xbe, 0xb8, 0x60, 0xf9, 0x3b, 0x0c, 0x26, 0x9a, 0xf7, 0x38, 0x1d, 0xc9, - 0x4a, 0x02, 0xfc, 0x4e, 0xb7, 0xb8, 0xa0, 0x88, 0xc4, 0x10, 0x70, 0x22, 0x45, 0xd4, 0x86, 0xfc, - 0xb6, 0x4d, 0x9a, 0xf5, 0x70, 0x0a, 0x8e, 0x68, 0x49, 0x9c, 0x17, 0xd4, 0xb8, 0x7b, 0x4e, 0xfe, - 0xc3, 0x8a, 0x8b, 0x79, 0x05, 0xa6, 0xa3, 0xce, 0xda, 0x01, 0x06, 0xef, 0x0c, 0x64, 0x2d, 0xcf, - 0x11, 0x43, 0x37, 0x29, 0x10, 0xb2, 0x25, 0x7c, 0x09, 0xd3, 0x72, 0xf3, 0xa7, 0x63, 0x30, 0x53, - 0x6e, 0x76, 0xc8, 0xb3, 0x1e, 0x21, 0xf2, 0x7c, 0x5a, 0x82, 0x99, 0xb6, 0x47, 0x76, 0x6d, 0x72, - 0xab, 0x4a, 0x9a, 0xa4, 0x16, 0xb8, 0x9e, 0xa0, 0x7f, 0x5a, 0x54, 0x9f, 0xa9, 0x44, 0xc1, 0x38, - 0x8e, 0x8f, 0x9e, 0x81, 0x69, 0xab, 0x16, 0xd8, 0xbb, 0x44, 0x51, 0xe0, 0x02, 0xbc, 0x4d, 0x50, - 0x98, 0x2e, 0x45, 0xa0, 0x38, 0x86, 0x8d, 0x3e, 0x04, 0x0b, 0x7e, 0xcd, 0x6a, 0x92, 0xab, 0x6d, - 0xc1, 0x6a, 0x65, 0x87, 0xd4, 0x6e, 0x56, 0x5c, 0xdb, 0x09, 0x84, 0x37, 0xe2, 0x01, 0x41, 0x69, - 0xa1, 0xda, 0x07, 0x0f, 0xf7, 0xa5, 0x80, 0xfe, 0xcc, 0x80, 0x33, 0x6d, 0x8f, 0x54, 0x3c, 0xb7, - 0xe5, 0x52, 0x35, 0xd3, 0x73, 0x44, 0x17, 0x47, 0xd5, 0x6b, 0x23, 0xea, 0x53, 0x5e, 0xd2, 0xeb, - 0x22, 0x7c, 0xfb, 0x7e, 0xb7, 0x78, 0xa6, 0x72, 0x90, 0x00, 0xf8, 0x60, 0xf9, 0xd0, 0x5f, 0x18, - 0x70, 0xb6, 0xed, 0xfa, 0xc1, 0x01, 0x4d, 0xc8, 0x1d, 0x6b, 0x13, 0xcc, 0xfd, 0x6e, 0xf1, 0x6c, - 0xe5, 0x40, 0x09, 0xf0, 0x21, 0x12, 0x9a, 0xfb, 0x93, 0x30, 0xa7, 0xcd, 0x3d, 0x71, 0x7e, 0x7d, - 0x0a, 0x4e, 0xc8, 0xc9, 0x10, 0xaa, 0xf5, 0x42, 0xe8, 0x6f, 0x28, 0xe9, 0x40, 0x1c, 0xc5, 0xa5, - 0xf3, 0x4e, 0x4d, 0x45, 0x5e, 0x3b, 0x36, 0xef, 0x2a, 0x11, 0x28, 0x8e, 0x61, 0xa3, 0x35, 0x38, - 0x29, 0x4a, 0x30, 0x69, 0x37, 0xed, 0x9a, 0xb5, 0xe2, 0x76, 0xc4, 0x94, 0xcb, 0x95, 0x4f, 0xef, - 0x77, 0x8b, 0x27, 0x2b, 0xbd, 0x60, 0x9c, 0x54, 0x07, 0xad, 0xc3, 0xbc, 0xd5, 0x09, 0x5c, 0xd5, - 0xfe, 0x73, 0x0e, 0xd5, 0x14, 0x75, 0x36, 0xb5, 0xf2, 0x5c, 0xa5, 0x94, 0x12, 0xe0, 0x38, 0xb1, - 0x16, 0xaa, 0xc4, 0xa8, 0x55, 0x49, 0xcd, 0x75, 0xea, 0x7c, 0x94, 0x73, 0xa1, 0x15, 0x5e, 0x4a, - 0xc0, 0xc1, 0x89, 0x35, 0x51, 0x13, 0xa6, 0x5b, 0xd6, 0xed, 0xab, 0x8e, 0xb5, 0x6b, 0xd9, 0x4d, - 0xca, 0x44, 0xf8, 0x30, 0xfa, 0x1f, 0xac, 0x3b, 0x81, 0xdd, 0x5c, 0xe2, 0xd7, 0x79, 0x4b, 0x6b, - 0x4e, 0x70, 0xd9, 0xab, 0x06, 0xd4, 0x5a, 0xe3, 0xc6, 0xd1, 0x46, 0x84, 0x16, 0x8e, 0xd1, 0x46, - 0x97, 0xe1, 0x14, 0x5b, 0x8e, 0xab, 0xee, 0x2d, 0x67, 0x95, 0x34, 0xad, 0x3d, 0xd9, 0x80, 0x09, - 0xd6, 0x80, 0x7b, 0xf7, 0xbb, 0xc5, 0x53, 0xd5, 0x24, 0x04, 0x9c, 0x5c, 0x0f, 0x59, 0x70, 0x5f, - 0x14, 0x80, 0xc9, 0xae, 0xed, 0xdb, 0xae, 0xc3, 0x3d, 0x11, 0xf9, 0xd0, 0x13, 0x51, 0xed, 0x8f, - 0x86, 0x0f, 0xa2, 0x81, 0x7e, 0xd3, 0x80, 0xf9, 0xa4, 0x65, 0xb8, 0x50, 0x48, 0xe3, 0xb2, 0x22, - 0xb6, 0xb4, 0xf8, 0x8c, 0x48, 0xdc, 0x14, 0x12, 0x85, 0x40, 0x2f, 0x1b, 0x30, 0x65, 0x69, 0xa7, - 0xa8, 0x05, 0x60, 0x52, 0x5d, 0x1c, 0xf5, 0x2c, 0x1f, 0x52, 0x2c, 0xcf, 0xee, 0x77, 0x8b, 0x91, - 0x93, 0x1a, 0x8e, 0x70, 0x44, 0xbf, 0x6d, 0xc0, 0xa9, 0xc4, 0x35, 0xbe, 0x30, 0x79, 0x1c, 0x3d, - 0xc4, 0x26, 0x49, 0xf2, 0x9e, 0x93, 0x2c, 0x06, 0x7a, 0xdd, 0x50, 0xaa, 0x6c, 0x43, 0x7a, 0x53, - 0xa6, 0x98, 0x68, 0x57, 0x46, 0x3c, 0x38, 0x86, 0x06, 0x81, 0x24, 0x5c, 0x3e, 0xa9, 0x69, 0x46, - 0x59, 0x88, 0xe3, 0xec, 0xd1, 0x67, 0x0d, 0xa9, 0x1a, 0x95, 0x44, 0x27, 0x8e, 0x4b, 0x22, 0x14, - 0x6a, 0x5a, 0x25, 0x50, 0x8c, 0x39, 0xfa, 0x30, 0x2c, 0x5a, 0x5b, 0xae, 0x17, 0x24, 0x2e, 0xbe, - 0x85, 0x69, 0xb6, 0x8c, 0xce, 0xee, 0x77, 0x8b, 0x8b, 0xa5, 0xbe, 0x58, 0xf8, 0x00, 0x0a, 0xe6, - 0x1f, 0xe5, 0x60, 0x8a, 0x1b, 0xf9, 0x42, 0x75, 0x7d, 0xd5, 0x80, 0xfb, 0x6b, 0x1d, 0xcf, 0x23, - 0x4e, 0x50, 0x0d, 0x48, 0xbb, 0x57, 0x71, 0x19, 0xc7, 0xaa, 0xb8, 0x1e, 0xd8, 0xef, 0x16, 0xef, - 0x5f, 0x39, 0x80, 0x3f, 0x3e, 0x50, 0x3a, 0xf4, 0xd7, 0x06, 0x98, 0x02, 0xa1, 0x6c, 0xd5, 0x6e, - 0x36, 0x3c, 0xb7, 0xe3, 0xd4, 0x7b, 0x1b, 0x91, 0x39, 0xd6, 0x46, 0x3c, 0xb4, 0xdf, 0x2d, 0x9a, - 0x2b, 0x87, 0x4a, 0x81, 0x07, 0x90, 0x14, 0x3d, 0x0b, 0x73, 0x02, 0xeb, 0xdc, 0xed, 0x36, 0xf1, - 0x6c, 0x6a, 0x4e, 0x8b, 0xfb, 0xf4, 0x30, 0x44, 0x21, 0x8e, 0x80, 0x7b, 0xeb, 0x20, 0x1f, 0x26, - 0x6e, 0x11, 0xbb, 0xb1, 0x13, 0x48, 0xf3, 0x69, 0xc4, 0xb8, 0x04, 0x71, 0xe0, 0xbf, 0xce, 0x69, - 0x96, 0x27, 0xf7, 0xbb, 0xc5, 0x09, 0xf1, 0x07, 0x4b, 0x4e, 0xe8, 0x12, 0x4c, 0xf3, 0x23, 0x58, - 0xc5, 0x76, 0x1a, 0x15, 0xd7, 0xe1, 0xb7, 0xf9, 0x85, 0xf2, 0x43, 0x52, 0xe1, 0x57, 0x23, 0xd0, - 0x3b, 0xdd, 0xe2, 0x94, 0xfc, 0xbd, 0xb9, 0xd7, 0x26, 0x38, 0x56, 0xdb, 0xfc, 0xe6, 0x38, 0x80, - 0x9c, 0xae, 0xa4, 0x8d, 0xfe, 0x0f, 0x14, 0x7c, 0x12, 0x70, 0xae, 0xc2, 0x79, 0xce, 0xef, 0x24, - 0x64, 0x21, 0x0e, 0xe1, 0xe8, 0x26, 0xe4, 0xda, 0x56, 0xc7, 0x27, 0x62, 0xf0, 0x2f, 0xa6, 0x32, - 0xf8, 0x15, 0x4a, 0x91, 0x9f, 0xb9, 0xd8, 0x4f, 0xcc, 0x79, 0xa0, 0x4f, 0x19, 0x00, 0x24, 0x3a, - 0x60, 0x23, 0xfb, 0x3e, 0x04, 0xcb, 0x70, 0x4c, 0x69, 0x1f, 0x94, 0xa7, 0xf7, 0xbb, 0x45, 0xd0, - 0x86, 0x5e, 0x63, 0x8b, 0x6e, 0x41, 0xde, 0x92, 0x7b, 0xfe, 0xd8, 0x71, 0xec, 0xf9, 0xec, 0x28, - 0xa4, 0x26, 0xad, 0x62, 0x86, 0x3e, 0x6d, 0xc0, 0xb4, 0x4f, 0x02, 0x31, 0x54, 0x74, 0xe7, 0x11, - 0x06, 0xef, 0x88, 0x93, 0xae, 0x1a, 0xa1, 0xc9, 0x77, 0xd0, 0x68, 0x19, 0x8e, 0xf1, 0x95, 0xa2, - 0x5c, 0x20, 0x56, 0x9d, 0x78, 0xec, 0xa4, 0x2d, 0x2c, 0xa9, 0xd1, 0x45, 0xd1, 0x68, 0x2a, 0x51, - 0xb4, 0x32, 0x1c, 0xe3, 0x2b, 0x45, 0xd9, 0xb0, 0x3d, 0xcf, 0x15, 0xa2, 0xe4, 0x53, 0x12, 0x45, - 0xa3, 0xa9, 0x44, 0xd1, 0xca, 0x70, 0x8c, 0xaf, 0xf9, 0x37, 0x53, 0x30, 0x2d, 0x17, 0x52, 0x68, - 0xd9, 0x73, 0xc7, 0x4e, 0x1f, 0xcb, 0x7e, 0x45, 0x07, 0xe2, 0x28, 0x2e, 0xad, 0xcc, 0x97, 0x6a, - 0xd4, 0xb0, 0x57, 0x95, 0xab, 0x3a, 0x10, 0x47, 0x71, 0x51, 0x0b, 0x72, 0x7e, 0x40, 0xda, 0xf2, - 0x1e, 0x74, 0xc4, 0x6b, 0xba, 0x70, 0x7f, 0x08, 0x6f, 0x3a, 0xe8, 0x3f, 0x1f, 0x73, 0x2e, 0xcc, - 0x37, 0x19, 0x44, 0xdc, 0x95, 0x62, 0x71, 0xa4, 0xb3, 0x3e, 0xa3, 0x9e, 0x50, 0x3e, 0x1a, 0xd1, - 0x32, 0x1c, 0x63, 0x9f, 0x60, 0xec, 0xe7, 0x8e, 0xd1, 0xd8, 0x7f, 0x1e, 0xf2, 0x2d, 0xeb, 0x76, - 0xb5, 0xe3, 0x35, 0x8e, 0x7e, 0xa8, 0x10, 0x21, 0x4a, 0x9c, 0x0a, 0x56, 0xf4, 0xd0, 0x2b, 0x86, - 0xb6, 0xe5, 0x4c, 0x30, 0xe2, 0xd7, 0xd3, 0xdd, 0x72, 0x94, 0xae, 0xec, 0xbb, 0xf9, 0xf4, 0x98, - 0xde, 0xf9, 0xbb, 0x6e, 0x7a, 0x53, 0x33, 0x92, 0x2f, 0x10, 0x65, 0x46, 0x16, 0x8e, 0xd5, 0x8c, - 0x5c, 0x89, 0x30, 0xc3, 0x31, 0xe6, 0x4c, 0x1e, 0xbe, 0xe6, 0x94, 0x3c, 0x70, 0xac, 0xf2, 0x54, - 0x23, 0xcc, 0x70, 0x8c, 0x79, 0xff, 0xf3, 0xe6, 0xe4, 0xf1, 0x9c, 0x37, 0xa7, 0x52, 0x38, 0x6f, - 0x1e, 0x6c, 0x8a, 0x9f, 0x18, 0xd5, 0x14, 0x47, 0x17, 0x01, 0xd5, 0xf7, 0x1c, 0xab, 0x65, 0xd7, - 0xc4, 0x66, 0xc9, 0xd4, 0xe6, 0x34, 0xf3, 0x47, 0x2c, 0x8a, 0x8d, 0x0c, 0xad, 0xf6, 0x60, 0xe0, - 0x84, 0x5a, 0x28, 0x80, 0x7c, 0x5b, 0x5a, 0x5c, 0x33, 0x69, 0xcc, 0x7e, 0x69, 0x81, 0xf1, 0xab, - 0x72, 0xba, 0xf0, 0x64, 0x09, 0x56, 0x9c, 0xcc, 0xff, 0x30, 0x60, 0x76, 0xa5, 0xe9, 0x76, 0xea, - 0xd7, 0xad, 0xa0, 0xb6, 0xc3, 0xef, 0x75, 0xd1, 0x33, 0x90, 0xb7, 0x9d, 0x80, 0x78, 0xbb, 0x56, - 0x53, 0x68, 0x14, 0x53, 0x5e, 0x7d, 0xaf, 0x89, 0xf2, 0x3b, 0xdd, 0xe2, 0xf4, 0x6a, 0xc7, 0x63, - 0x01, 0x93, 0x7c, 0x7f, 0xc1, 0xaa, 0x0e, 0xfa, 0x92, 0x01, 0x73, 0xfc, 0x66, 0x78, 0xd5, 0x0a, - 0xac, 0x2b, 0x1d, 0xe2, 0xd9, 0x44, 0xde, 0x0d, 0x8f, 0xb8, 0xb5, 0xc4, 0x65, 0x95, 0x0c, 0xf6, - 0x42, 0xd3, 0x7a, 0x23, 0xce, 0x19, 0xf7, 0x0a, 0x63, 0x7e, 0x3e, 0x0b, 0xf7, 0xf6, 0xa5, 0x85, - 0x16, 0x21, 0x63, 0xd7, 0x45, 0xd3, 0x41, 0xd0, 0xcd, 0xac, 0xd5, 0x71, 0xc6, 0xae, 0xa3, 0x25, - 0x66, 0x25, 0x7a, 0xc4, 0xf7, 0xe5, 0x35, 0x61, 0x41, 0x19, 0x74, 0xa2, 0x14, 0x6b, 0x18, 0xa8, - 0x08, 0xb9, 0xa6, 0xb5, 0x45, 0x9a, 0xe2, 0x04, 0xc0, 0xec, 0xce, 0x75, 0x5a, 0x80, 0x79, 0x39, - 0xfa, 0x45, 0x03, 0x80, 0x0b, 0x48, 0xcf, 0x0f, 0x42, 0xaf, 0xe1, 0x74, 0xbb, 0x89, 0x52, 0xe6, - 0x52, 0x86, 0xff, 0xb1, 0xc6, 0x15, 0x6d, 0xc2, 0x38, 0x35, 0x41, 0xdd, 0xfa, 0x91, 0xd5, 0x18, - 0xbb, 0x16, 0xa9, 0x30, 0x1a, 0x58, 0xd0, 0xa2, 0x7d, 0xe5, 0x91, 0xa0, 0xe3, 0x39, 0xb4, 0x6b, - 0x99, 0xe2, 0xca, 0x73, 0x29, 0xb0, 0x2a, 0xc5, 0x1a, 0x86, 0xf9, 0xa7, 0x19, 0x98, 0x4f, 0x12, - 0x9d, 0xea, 0x87, 0x71, 0x2e, 0xad, 0x38, 0xcc, 0xbe, 0x3f, 0xfd, 0xfe, 0x11, 0x41, 0x0e, 0x2a, - 0x14, 0x40, 0x84, 0x61, 0x09, 0xbe, 0xe8, 0xfd, 0xaa, 0x87, 0x32, 0x47, 0xec, 0x21, 0x45, 0x39, - 0xd6, 0x4b, 0x0f, 0xc0, 0x98, 0x4f, 0x47, 0x3e, 0x1b, 0xbd, 0x72, 0x60, 0x63, 0xc4, 0x20, 0x14, - 0xa3, 0xe3, 0xd8, 0x81, 0x88, 0x62, 0x56, 0x18, 0x57, 0x1d, 0x3b, 0xc0, 0x0c, 0x62, 0x7e, 0x31, - 0x03, 0x8b, 0xfd, 0x1b, 0x85, 0xbe, 0x68, 0x00, 0xd4, 0xe9, 0x01, 0x83, 0x4e, 0x49, 0x19, 0x14, - 0x62, 0x1d, 0x57, 0x1f, 0xae, 0x4a, 0x4e, 0x61, 0x84, 0x90, 0x2a, 0xf2, 0xb1, 0x26, 0x08, 0x7a, - 0x54, 0x4e, 0xfd, 0x4b, 0x56, 0x4b, 0x1a, 0xa0, 0xaa, 0xce, 0x86, 0x82, 0x60, 0x0d, 0x8b, 0x9e, - 0x20, 0x1d, 0xab, 0x45, 0xfc, 0xb6, 0xa5, 0xc2, 0xd4, 0xd9, 0x09, 0xf2, 0x92, 0x2c, 0xc4, 0x21, - 0xdc, 0x6c, 0xc2, 0x83, 0x03, 0xc8, 0x99, 0x52, 0xc8, 0xb0, 0xf9, 0xef, 0x06, 0x9c, 0x5e, 0x69, - 0x76, 0xfc, 0x80, 0x78, 0xff, 0x63, 0x02, 0xae, 0xfe, 0xd3, 0x80, 0xfb, 0xfa, 0xb4, 0xf9, 0x2e, - 0xc4, 0x5d, 0xbd, 0x18, 0x8d, 0xbb, 0xba, 0x3a, 0xea, 0x94, 0x4e, 0x6c, 0x47, 0x9f, 0xf0, 0xab, - 0x00, 0x4e, 0xd0, 0x5d, 0xab, 0xee, 0x36, 0x52, 0xd2, 0x9b, 0x0f, 0x42, 0xee, 0x63, 0x54, 0xff, - 0xc4, 0xe7, 0x18, 0x53, 0x4a, 0x98, 0xc3, 0xcc, 0xa7, 0x41, 0x04, 0x29, 0xc5, 0x16, 0x8f, 0x31, - 0xc8, 0xe2, 0x31, 0xff, 0x2e, 0x03, 0x9a, 0xe7, 0xe1, 0x2e, 0x4c, 0x4a, 0x27, 0x32, 0x29, 0x47, - 0x3c, 0x35, 0x6b, 0x7e, 0x94, 0x7e, 0xaf, 0x11, 0x76, 0x63, 0xaf, 0x11, 0x2e, 0xa5, 0xc6, 0xf1, - 0xe0, 0xc7, 0x08, 0xdf, 0x33, 0xe0, 0xbe, 0x10, 0xb9, 0xd7, 0x29, 0x78, 0xf8, 0x0e, 0xf3, 0x04, - 0x4c, 0x5a, 0x61, 0x35, 0x31, 0x07, 0xd4, 0x03, 0x1c, 0x8d, 0x22, 0xd6, 0xf1, 0xc2, 0xd8, 0xe7, - 0xec, 0x11, 0x63, 0x9f, 0xc7, 0x0e, 0x8e, 0x7d, 0x36, 0x7f, 0x92, 0x81, 0x33, 0xbd, 0x2d, 0x93, - 0x6b, 0x63, 0xb0, 0x3b, 0xf3, 0x27, 0x61, 0x2a, 0x10, 0x15, 0xb4, 0x9d, 0x5e, 0x3d, 0x1f, 0xdb, - 0xd4, 0x60, 0x38, 0x82, 0x49, 0x6b, 0xd6, 0xf8, 0xaa, 0xac, 0xd6, 0xdc, 0xb6, 0x8c, 0x9c, 0x57, - 0x35, 0x57, 0x34, 0x18, 0x8e, 0x60, 0xaa, 0x98, 0xc4, 0xb1, 0x63, 0x8f, 0x49, 0xac, 0xc2, 0x29, - 0x19, 0x85, 0x75, 0xde, 0xf5, 0x56, 0xdc, 0x56, 0xbb, 0x49, 0x44, 0xec, 0x3c, 0x15, 0xf6, 0x8c, - 0xa8, 0x72, 0x0a, 0x27, 0x21, 0xe1, 0xe4, 0xba, 0xe6, 0xf7, 0xb2, 0x70, 0x32, 0xec, 0xf6, 0x15, - 0xd7, 0xa9, 0xdb, 0x2c, 0x96, 0xed, 0x29, 0x18, 0x0b, 0xf6, 0xda, 0xb2, 0xb3, 0xff, 0x97, 0x14, - 0x67, 0x73, 0xaf, 0x4d, 0x47, 0xfb, 0x74, 0x42, 0x15, 0xe6, 0x96, 0x65, 0x95, 0xd0, 0xba, 0x5a, - 0x1d, 0x7c, 0x04, 0x1e, 0x8f, 0xce, 0xe6, 0x3b, 0xdd, 0x62, 0xc2, 0xeb, 0xc9, 0x25, 0x45, 0x29, - 0x3a, 0xe7, 0xd1, 0x0d, 0x98, 0x6e, 0x5a, 0x7e, 0x70, 0xb5, 0x5d, 0xb7, 0x02, 0xb2, 0x69, 0xb7, - 0x88, 0x58, 0x73, 0xc3, 0x04, 0xa4, 0xab, 0x7b, 0xe4, 0xf5, 0x08, 0x25, 0x1c, 0xa3, 0x8c, 0x76, - 0x01, 0xd1, 0x92, 0x4d, 0xcf, 0x72, 0x7c, 0xde, 0x2a, 0xca, 0x6f, 0xf8, 0x00, 0x78, 0x75, 0x2c, - 0x5b, 0xef, 0xa1, 0x86, 0x13, 0x38, 0xa0, 0x87, 0x60, 0xdc, 0x23, 0x96, 0x2f, 0x06, 0xb3, 0x10, - 0xae, 0x7f, 0xcc, 0x4a, 0xb1, 0x80, 0xea, 0x0b, 0x6a, 0xfc, 0x90, 0x05, 0xf5, 0x43, 0x03, 0xa6, - 0xc3, 0x61, 0xba, 0x0b, 0x4a, 0xb2, 0x15, 0x55, 0x92, 0x17, 0xd2, 0xda, 0x12, 0xfb, 0xe8, 0xc5, - 0xbf, 0x1c, 0xd7, 0xdb, 0xc7, 0x02, 0x92, 0x3f, 0x0e, 0x05, 0xb9, 0xaa, 0xa5, 0xf5, 0x39, 0xe2, - 0xe9, 0x36, 0x62, 0x97, 0x68, 0x0f, 0x69, 0x04, 0x13, 0x1c, 0xf2, 0xa3, 0x6a, 0xb9, 0x2e, 0x54, - 0xae, 0x98, 0xf6, 0x4a, 0x2d, 0x4b, 0x55, 0x9c, 0xa4, 0x96, 0x65, 0x1d, 0x74, 0x15, 0x4e, 0xb7, - 0x3d, 0x97, 0x3d, 0xae, 0x5c, 0x25, 0x56, 0xbd, 0x69, 0x3b, 0x44, 0xba, 0x10, 0x78, 0x18, 0xc3, - 0x7d, 0xfb, 0xdd, 0xe2, 0xe9, 0x4a, 0x32, 0x0a, 0xee, 0x57, 0x37, 0xfa, 0x20, 0x68, 0x6c, 0x80, - 0x07, 0x41, 0xbf, 0xac, 0x1c, 0x75, 0xc4, 0x17, 0xcf, 0x72, 0x3e, 0x98, 0xd6, 0x50, 0x26, 0x6c, - 0xeb, 0xe1, 0x94, 0x2a, 0x09, 0xa6, 0x58, 0xb1, 0xef, 0xef, 0x0d, 0x1a, 0x3f, 0xa2, 0x37, 0x28, - 0x8c, 0xeb, 0x9e, 0xf8, 0x59, 0xc6, 0x75, 0xe7, 0xdf, 0x52, 0x71, 0xdd, 0xaf, 0xe6, 0x60, 0x36, - 0x6e, 0x81, 0x1c, 0xff, 0x63, 0xa7, 0x5f, 0x33, 0x60, 0x56, 0xae, 0x1e, 0xce, 0x93, 0x48, 0x3f, - 0xff, 0x7a, 0x4a, 0x8b, 0x96, 0xdb, 0x52, 0xea, 0x39, 0xee, 0x66, 0x8c, 0x1b, 0xee, 0xe1, 0x8f, - 0x5e, 0x80, 0x49, 0xe5, 0x0e, 0x3f, 0xd2, 0xcb, 0xa7, 0x19, 0x66, 0x45, 0x85, 0x24, 0xb0, 0x4e, - 0x0f, 0xbd, 0x6a, 0x00, 0xd4, 0xa4, 0x9a, 0x93, 0xab, 0xeb, 0x4a, 0x5a, 0xab, 0x4b, 0x29, 0xd0, - 0xd0, 0x58, 0x56, 0x45, 0x3e, 0xd6, 0x18, 0xa3, 0xcf, 0x33, 0x47, 0xb8, 0xb2, 0xee, 0xe8, 0x7a, - 0xca, 0x8e, 0x1e, 0x8a, 0x7b, 0x80, 0x61, 0x1a, 0x9a, 0x52, 0x1a, 0xc8, 0xc7, 0x11, 0x21, 0xcc, - 0xa7, 0x40, 0x05, 0x4f, 0xd2, 0x6d, 0x8b, 0x85, 0x4f, 0x56, 0xac, 0x60, 0x47, 0x4c, 0x41, 0xb5, - 0x6d, 0x9d, 0x97, 0x00, 0x1c, 0xe2, 0x98, 0x1f, 0x85, 0xe9, 0x67, 0x3d, 0xab, 0xbd, 0x63, 0x33, - 0x87, 0x33, 0x3d, 0x27, 0xbd, 0x13, 0x26, 0xac, 0x7a, 0x3d, 0xe9, 0x31, 0x7b, 0x89, 0x17, 0x63, - 0x09, 0x1f, 0xec, 0x48, 0xf4, 0x4d, 0x03, 0x50, 0x78, 0x69, 0x67, 0x3b, 0x8d, 0x0d, 0x7a, 0xda, - 0xa7, 0xe7, 0xa3, 0x1d, 0x56, 0x9a, 0x74, 0x3e, 0xba, 0xa0, 0x20, 0x58, 0xc3, 0x42, 0x2f, 0xc1, - 0x24, 0xff, 0x77, 0x4d, 0x1d, 0xf6, 0x47, 0x7e, 0x0a, 0xcb, 0x15, 0x0a, 0x93, 0x89, 0xcf, 0xc2, - 0x0b, 0x21, 0x07, 0xac, 0xb3, 0xa3, 0x5d, 0xb5, 0xe6, 0x6c, 0x37, 0x3b, 0xb7, 0xeb, 0x5b, 0x61, - 0x57, 0xb5, 0x3d, 0x77, 0xdb, 0x6e, 0x92, 0x78, 0x57, 0x55, 0x78, 0x31, 0x96, 0xf0, 0xc1, 0xba, - 0xea, 0xeb, 0x06, 0xcc, 0xaf, 0xf9, 0x81, 0xed, 0xae, 0x12, 0x3f, 0xa0, 0x6a, 0x85, 0x6e, 0x3e, - 0x9d, 0xe6, 0x20, 0x71, 0xd0, 0xab, 0x30, 0x2b, 0x2e, 0x10, 0x3b, 0x5b, 0x3e, 0x09, 0x34, 0x3b, - 0x5e, 0xad, 0xe3, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0xa0, 0x54, 0xc4, 0x4d, 0x62, 0x48, 0x25, 0x1b, - 0xa5, 0x52, 0x8d, 0xc1, 0x71, 0x4f, 0x0d, 0xf3, 0x3b, 0x59, 0x38, 0xc9, 0x9a, 0x11, 0x7b, 0xc3, - 0xf0, 0xd9, 0x7e, 0x6f, 0x18, 0x46, 0x5c, 0xca, 0x8c, 0xd7, 0x11, 0x5e, 0x30, 0xfc, 0xaa, 0x01, - 0x33, 0xf5, 0x68, 0x4f, 0xa7, 0xe3, 0x9e, 0x49, 0x1a, 0x43, 0x1e, 0x2f, 0x15, 0x2b, 0xc4, 0x71, - 0xfe, 0xe8, 0x0b, 0x06, 0xcc, 0x44, 0xc5, 0x94, 0xbb, 0xfb, 0x31, 0x74, 0x92, 0x0a, 0x70, 0x8e, - 0x96, 0xfb, 0x38, 0x2e, 0x82, 0xf9, 0xed, 0x8c, 0x18, 0xd2, 0xe3, 0x08, 0xd0, 0x47, 0xb7, 0xa0, - 0x10, 0x34, 0x7d, 0x5e, 0x28, 0x5a, 0x3b, 0xe2, 0x89, 0x70, 0x73, 0xbd, 0xca, 0xef, 0xee, 0x43, - 0xa3, 0x4d, 0x94, 0x50, 0xe3, 0x53, 0xf2, 0x62, 0x8c, 0x6b, 0x6d, 0xc1, 0x38, 0x95, 0xa3, 0xe8, - 0xe6, 0x4a, 0x25, 0xce, 0x58, 0x94, 0x50, 0xc6, 0x92, 0x97, 0xf9, 0x65, 0x03, 0x0a, 0x17, 0x5d, - 0xb9, 0x8f, 0x7c, 0x38, 0x05, 0x47, 0x8f, 0xb2, 0x07, 0xd5, 0x1d, 0x61, 0x78, 0xc4, 0x78, 0x26, - 0xe2, 0xe6, 0xb9, 0x5f, 0xa3, 0xbd, 0xc4, 0x12, 0xf5, 0x50, 0x52, 0x17, 0xdd, 0xad, 0xbe, 0x5e, - 0xc4, 0xdf, 0xcd, 0xc1, 0x89, 0xe7, 0xac, 0x3d, 0xe2, 0x04, 0xd6, 0xf0, 0x4a, 0xe2, 0x09, 0x98, - 0xb4, 0xda, 0x2c, 0x50, 0x58, 0xb3, 0xf1, 0x43, 0xcf, 0x49, 0x08, 0xc2, 0x3a, 0x5e, 0xb8, 0xa1, - 0xf1, 0xbc, 0x21, 0x49, 0x5b, 0xd1, 0x4a, 0x0c, 0x8e, 0x7b, 0x6a, 0xa0, 0x8b, 0x80, 0xc4, 0x2b, - 0xc8, 0x52, 0xad, 0xe6, 0x76, 0x1c, 0xbe, 0xa5, 0x71, 0xa7, 0x8a, 0x3a, 0x6c, 0x6e, 0xf4, 0x60, - 0xe0, 0x84, 0x5a, 0xe8, 0x43, 0xb0, 0x50, 0x63, 0x94, 0xc5, 0xd1, 0x43, 0xa7, 0xc8, 0x8f, 0x9f, - 0x2a, 0x48, 0x7f, 0xa5, 0x0f, 0x1e, 0xee, 0x4b, 0x81, 0x4a, 0xea, 0x07, 0xae, 0x67, 0x35, 0x88, - 0x4e, 0x77, 0x3c, 0x2a, 0x69, 0xb5, 0x07, 0x03, 0x27, 0xd4, 0x42, 0x9f, 0x84, 0x42, 0xb0, 0xe3, - 0x11, 0x7f, 0xc7, 0x6d, 0xd6, 0x45, 0xd0, 0xc0, 0x88, 0x9e, 0x36, 0x31, 0xfa, 0x9b, 0x92, 0xaa, - 0x36, 0xbd, 0x65, 0x11, 0x0e, 0x79, 0x22, 0x0f, 0xc6, 0xfd, 0x9a, 0xdb, 0x26, 0xbe, 0x30, 0xd9, - 0x2f, 0xa6, 0xc2, 0x9d, 0x79, 0x8e, 0x34, 0x1f, 0x1f, 0xe3, 0x80, 0x05, 0x27, 0xf3, 0x1b, 0x19, - 0x98, 0xd2, 0x11, 0x07, 0xd8, 0x9b, 0x3e, 0x65, 0xc0, 0x54, 0xcd, 0x75, 0x02, 0xcf, 0x6d, 0x72, - 0xff, 0x55, 0x3a, 0x16, 0x05, 0x25, 0xb5, 0x4a, 0x02, 0xcb, 0x6e, 0x6a, 0xae, 0x30, 0x8d, 0x0d, - 0x8e, 0x30, 0x45, 0x9f, 0x31, 0x60, 0x26, 0x8c, 0x31, 0x0b, 0x1d, 0x69, 0xa9, 0x0a, 0xa2, 0xb6, - 0xfa, 0x73, 0x51, 0x4e, 0x38, 0xce, 0xda, 0xdc, 0x82, 0xd9, 0xf8, 0x68, 0xd3, 0xae, 0x6c, 0x5b, - 0x62, 0xad, 0x67, 0xc3, 0xae, 0xac, 0x58, 0xbe, 0x8f, 0x19, 0x04, 0x3d, 0x02, 0xf9, 0x96, 0xe5, - 0x35, 0x6c, 0xc7, 0x6a, 0xb2, 0x5e, 0xcc, 0x6a, 0x1b, 0x92, 0x28, 0xc7, 0x0a, 0xc3, 0x7c, 0x37, - 0x4c, 0x6d, 0x58, 0x4e, 0x83, 0xd4, 0xc5, 0x3e, 0x7c, 0xf8, 0x13, 0xb1, 0x1f, 0x8d, 0xc1, 0xa4, - 0x76, 0x36, 0x3b, 0xfe, 0x73, 0x56, 0x24, 0x95, 0x43, 0x36, 0xc5, 0x54, 0x0e, 0xcf, 0x03, 0x6c, - 0xdb, 0x8e, 0xed, 0xef, 0x1c, 0x31, 0x49, 0x04, 0xbb, 0xa2, 0x3d, 0xaf, 0x28, 0x60, 0x8d, 0x5a, - 0x78, 0x0f, 0x96, 0x3b, 0x20, 0x75, 0xce, 0xab, 0x86, 0xa6, 0x6e, 0xc6, 0xd3, 0xb8, 0xf7, 0xd7, - 0x06, 0x66, 0x49, 0xaa, 0x9f, 0x73, 0x4e, 0xe0, 0xed, 0x1d, 0xa8, 0x95, 0x36, 0x21, 0xef, 0x11, - 0xbf, 0xd3, 0xa2, 0x27, 0xc6, 0x89, 0xa1, 0xbb, 0x81, 0xc5, 0x4c, 0x60, 0x51, 0x1f, 0x2b, 0x4a, - 0x8b, 0x4f, 0xc1, 0x89, 0x88, 0x08, 0x68, 0x16, 0xb2, 0x37, 0xc9, 0x1e, 0x9f, 0x27, 0x98, 0xfe, - 0x44, 0xf3, 0x91, 0xdb, 0x42, 0xd1, 0x2d, 0xef, 0xcb, 0x3c, 0x69, 0x98, 0x2e, 0x24, 0x3a, 0x00, - 0x8e, 0x72, 0x99, 0x43, 0xc7, 0xa2, 0xa9, 0x65, 0x89, 0x50, 0x63, 0xc1, 0x23, 0x63, 0x38, 0xcc, - 0xfc, 0xc9, 0x38, 0x88, 0xab, 0xec, 0x01, 0xb6, 0x2b, 0xfd, 0x06, 0x2b, 0x73, 0x84, 0x1b, 0xac, - 0x8b, 0x30, 0x65, 0x3b, 0x76, 0x60, 0x5b, 0x4d, 0xe6, 0xdc, 0x11, 0xea, 0x54, 0x86, 0x0e, 0x4f, - 0xad, 0x69, 0xb0, 0x04, 0x3a, 0x91, 0xba, 0xe8, 0x0a, 0xe4, 0x98, 0xbe, 0x11, 0x13, 0x78, 0xf8, - 0xfb, 0x76, 0x16, 0x6a, 0xc1, 0xdf, 0x13, 0x71, 0x4a, 0xec, 0xf0, 0xc1, 0xd3, 0x64, 0xa8, 0xe3, - 0xb7, 0x98, 0xc7, 0xe1, 0xe1, 0x23, 0x06, 0xc7, 0x3d, 0x35, 0x28, 0x95, 0x6d, 0xcb, 0x6e, 0x76, - 0x3c, 0x12, 0x52, 0x19, 0x8f, 0x52, 0x39, 0x1f, 0x83, 0xe3, 0x9e, 0x1a, 0x68, 0x1b, 0xa6, 0x44, - 0x19, 0x8f, 0x77, 0x9a, 0x38, 0x62, 0x2b, 0x59, 0x5c, 0xdb, 0x79, 0x8d, 0x12, 0x8e, 0xd0, 0x45, - 0x1d, 0x98, 0xb3, 0x9d, 0x9a, 0xeb, 0xd4, 0x9a, 0x1d, 0xdf, 0xde, 0x25, 0xe1, 0x63, 0x9e, 0xa3, - 0x30, 0x3b, 0xb5, 0xdf, 0x2d, 0xce, 0xad, 0xc5, 0xc9, 0xe1, 0x5e, 0x0e, 0xe8, 0x15, 0x03, 0x4e, - 0xd5, 0x5c, 0xc7, 0x67, 0xef, 0xce, 0x77, 0xc9, 0x39, 0xcf, 0x73, 0x3d, 0xce, 0xbb, 0x70, 0x44, - 0xde, 0xcc, 0xa7, 0xb8, 0x92, 0x44, 0x12, 0x27, 0x73, 0x42, 0x2f, 0x42, 0xbe, 0xed, 0xb9, 0xbb, - 0x76, 0x9d, 0x78, 0x22, 0x76, 0x6e, 0x3d, 0x8d, 0x3c, 0x18, 0x15, 0x41, 0x33, 0xdc, 0x7a, 0x64, - 0x09, 0x56, 0xfc, 0xcc, 0x37, 0x0a, 0x30, 0x1d, 0x45, 0x47, 0x9f, 0x00, 0x68, 0x7b, 0x6e, 0x8b, - 0x04, 0x3b, 0x44, 0x3d, 0xca, 0xb8, 0x34, 0x6a, 0xba, 0x05, 0x49, 0x4f, 0x46, 0xaf, 0xd0, 0xed, - 0x22, 0x2c, 0xc5, 0x1a, 0x47, 0xe4, 0xc1, 0xc4, 0x4d, 0xae, 0x76, 0x85, 0x15, 0xf2, 0x5c, 0x2a, - 0x36, 0x93, 0xe0, 0xcc, 0x5e, 0x13, 0x88, 0x22, 0x2c, 0x19, 0xa1, 0x2d, 0xc8, 0xde, 0x22, 0x5b, - 0xe9, 0x3c, 0x61, 0xbe, 0x4e, 0xc4, 0x69, 0xa6, 0x3c, 0xb1, 0xdf, 0x2d, 0x66, 0xaf, 0x93, 0x2d, - 0x4c, 0x89, 0xd3, 0x76, 0xd5, 0xf9, 0x3d, 0xbc, 0xd8, 0x2a, 0x46, 0x6c, 0x57, 0xe4, 0x52, 0x9f, - 0xb7, 0x4b, 0x14, 0x61, 0xc9, 0x08, 0xbd, 0x08, 0x85, 0x5b, 0xd6, 0x2e, 0xd9, 0xf6, 0x5c, 0x27, - 0x10, 0x21, 0x53, 0x23, 0xc6, 0xe9, 0x5f, 0x97, 0xe4, 0x04, 0x5f, 0xa6, 0xde, 0x55, 0x21, 0x0e, - 0xd9, 0xa1, 0x5d, 0xc8, 0x3b, 0xe4, 0x16, 0x26, 0x4d, 0xbb, 0x96, 0x4e, 0x5c, 0xfc, 0x25, 0x41, - 0x4d, 0x70, 0x66, 0x7a, 0x4f, 0x96, 0x61, 0xc5, 0x8b, 0x8e, 0xe5, 0x0d, 0x77, 0x4b, 0x6c, 0x54, - 0x23, 0x8e, 0xa5, 0x3a, 0x99, 0xf2, 0xb1, 0xbc, 0xe8, 0x6e, 0x61, 0x4a, 0x9c, 0xae, 0x91, 0x9a, - 0x8a, 0xd7, 0x11, 0xdb, 0xd4, 0xa5, 0x74, 0xe3, 0x94, 0xf8, 0x1a, 0x09, 0x4b, 0xb1, 0xc6, 0x91, - 0xf6, 0x6d, 0x43, 0x38, 0x2b, 0xc5, 0x46, 0x35, 0x62, 0xdf, 0x46, 0x5d, 0x9f, 0xbc, 0x6f, 0x65, - 0x19, 0x56, 0xbc, 0x28, 0x5f, 0x5b, 0x78, 0xfe, 0xd2, 0xd9, 0xaa, 0xa2, 0x7e, 0x44, 0xce, 0x57, - 0x96, 0x61, 0xc5, 0xcb, 0xfc, 0xf2, 0x38, 0x4c, 0xe9, 0xf9, 0xc6, 0x06, 0xb0, 0x11, 0x94, 0x5d, - 0x9c, 0x19, 0xc6, 0x2e, 0xa6, 0x07, 0x21, 0xed, 0x8e, 0x43, 0x3a, 0x61, 0xd6, 0x52, 0x33, 0x0b, - 0xc3, 0x83, 0x90, 0x56, 0xe8, 0xe3, 0x08, 0xd3, 0x21, 0xc2, 0x1e, 0xa8, 0x71, 0xc5, 0xcd, 0x8f, - 0x5c, 0xd4, 0xb8, 0x8a, 0x18, 0x14, 0x8f, 0x02, 0x84, 0x79, 0xb7, 0xc4, 0xdd, 0x97, 0xb2, 0xda, - 0xb4, 0x7c, 0x60, 0x1a, 0x16, 0x7a, 0x08, 0xc6, 0xa9, 0x82, 0x26, 0x75, 0xf1, 0x52, 0x57, 0x9d, - 0x36, 0xcf, 0xb3, 0x52, 0x2c, 0xa0, 0xe8, 0x49, 0x6a, 0x4b, 0x85, 0x6a, 0x55, 0x3c, 0xc0, 0x9d, - 0x0f, 0x6d, 0xa9, 0x10, 0x86, 0x23, 0x98, 0x54, 0x74, 0x42, 0xb5, 0x20, 0x9b, 0xc1, 0x9a, 0xe8, - 0x4c, 0x35, 0x62, 0x0e, 0x63, 0xde, 0x8f, 0x98, 0xd6, 0x64, 0x33, 0x2f, 0xa7, 0x79, 0x3f, 0x62, - 0x70, 0xdc, 0x53, 0x83, 0x36, 0x46, 0x5c, 0xdb, 0x4d, 0xf2, 0xe8, 0xce, 0x3e, 0x17, 0x6e, 0xaf, - 0xe9, 0x27, 0x82, 0x29, 0x36, 0xf4, 0xef, 0x4f, 0x2f, 0x77, 0xde, 0xe0, 0x47, 0x82, 0xd1, 0x8c, - 0xf7, 0x8f, 0xc2, 0x74, 0x74, 0xaf, 0x4c, 0xdd, 0x3f, 0xff, 0x57, 0x59, 0x38, 0x79, 0xa9, 0x61, - 0x3b, 0xb7, 0x63, 0x8e, 0xed, 0xa4, 0x9c, 0xb6, 0xc6, 0xb0, 0x39, 0x6d, 0xc3, 0x27, 0x3f, 0x22, - 0x69, 0x70, 0xf2, 0x93, 0x1f, 0x99, 0x51, 0x38, 0x8a, 0x8b, 0x7e, 0x68, 0xc0, 0xfd, 0x56, 0x9d, - 0x5b, 0xaf, 0x56, 0x53, 0x94, 0x86, 0x4c, 0xe5, 0x8a, 0xf6, 0x47, 0xd4, 0x45, 0xbd, 0x8d, 0x5f, - 0x2a, 0x1d, 0xc0, 0x95, 0x8f, 0xf8, 0x3b, 0x44, 0x0b, 0xee, 0x3f, 0x08, 0x15, 0x1f, 0x28, 0xfe, - 0xe2, 0x65, 0x78, 0xfb, 0xa1, 0x8c, 0x86, 0x9a, 0x2d, 0x9f, 0x32, 0xa0, 0xc0, 0xdd, 0xa7, 0x98, - 0x6c, 0xd3, 0xad, 0xc2, 0x6a, 0xdb, 0xd7, 0x88, 0xe7, 0xcb, 0x64, 0x5b, 0xda, 0x01, 0xaf, 0x54, - 0x59, 0x13, 0x10, 0xac, 0x61, 0xd1, 0xcd, 0xf8, 0xa6, 0xed, 0xd4, 0xc5, 0x30, 0xa9, 0xcd, 0xf8, - 0x39, 0xdb, 0xa9, 0x63, 0x06, 0x51, 0xdb, 0x75, 0xb6, 0xaf, 0x5b, 0xe3, 0x0d, 0x03, 0xa6, 0xd9, - 0x3b, 0xc7, 0xf0, 0xe8, 0xf1, 0x84, 0x8a, 0x69, 0xe1, 0x62, 0x9c, 0x89, 0xc6, 0xb4, 0xdc, 0xe9, - 0x16, 0x27, 0xf9, 0xcb, 0xc8, 0x68, 0x88, 0xcb, 0x07, 0x85, 0xbf, 0x82, 0x45, 0xde, 0x64, 0x86, - 0x3e, 0x4e, 0x2b, 0x7f, 0x5e, 0x55, 0x12, 0xc1, 0x21, 0x3d, 0xf3, 0x25, 0x98, 0xd2, 0x1f, 0x2c, - 0xa0, 0x27, 0x60, 0xb2, 0x6d, 0x3b, 0x8d, 0xe8, 0xc3, 0x36, 0xe5, 0xd3, 0xad, 0x84, 0x20, 0xac, - 0xe3, 0xb1, 0x6a, 0x6e, 0x58, 0x2d, 0xe6, 0x0a, 0xae, 0xb8, 0x7a, 0xb5, 0xf0, 0x8f, 0xf9, 0xc7, - 0x59, 0x38, 0x99, 0xf0, 0x30, 0x06, 0xbd, 0x6a, 0xc0, 0x38, 0x8b, 0xd2, 0x97, 0x51, 0x2b, 0x2f, - 0xa4, 0xfe, 0xf8, 0x66, 0x89, 0x3d, 0x06, 0x10, 0xf3, 0x58, 0x6d, 0x9f, 0xbc, 0x10, 0x0b, 0xe6, - 0xe8, 0x37, 0x0c, 0x98, 0xb4, 0xb4, 0xa5, 0xc6, 0x03, 0x79, 0xb6, 0xd2, 0x17, 0xa6, 0x67, 0x65, - 0x69, 0x01, 0x88, 0xe1, 0x42, 0xd2, 0x65, 0x59, 0x7c, 0x2f, 0x4c, 0x6a, 0x4d, 0x18, 0x66, 0x85, - 0x2c, 0x3e, 0x03, 0xb3, 0x23, 0xad, 0xb0, 0x0f, 0xc0, 0xb0, 0xb9, 0xe3, 0xa8, 0xc2, 0xba, 0xa5, - 0x3f, 0x3e, 0x56, 0x3d, 0x2e, 0x5e, 0x1f, 0x0b, 0xa8, 0xb9, 0x05, 0xb3, 0xf1, 0xc3, 0x55, 0xea, - 0xf7, 0xd6, 0xef, 0x86, 0x21, 0xb3, 0xbd, 0x99, 0xdf, 0xce, 0xc0, 0x84, 0x78, 0x5d, 0x77, 0x17, - 0x62, 0x77, 0x6f, 0x46, 0x2e, 0x75, 0xd6, 0x52, 0x79, 0x14, 0xd8, 0x37, 0x70, 0xd7, 0x8f, 0x05, - 0xee, 0x3e, 0x97, 0x0e, 0xbb, 0x83, 0xa3, 0x76, 0xdf, 0x18, 0x83, 0x99, 0xd8, 0x6b, 0x45, 0x6a, - 0xaa, 0xf4, 0x04, 0xab, 0x5d, 0x4d, 0xf5, 0x41, 0xa4, 0x8a, 0x2b, 0x3f, 0x38, 0x6e, 0xcd, 0x8f, - 0x24, 0xd5, 0xbc, 0x92, 0x5a, 0x3e, 0xee, 0x9f, 0xe7, 0xd7, 0x1c, 0x36, 0x0e, 0xeb, 0x9f, 0x0c, - 0xb8, 0xb7, 0xef, 0xa3, 0x56, 0x96, 0x13, 0xc5, 0x8b, 0x42, 0xc5, 0x82, 0x4c, 0xf9, 0xe9, 0xbe, - 0xba, 0x61, 0x89, 0xa7, 0xb1, 0x88, 0xb3, 0x47, 0x8f, 0xc3, 0x14, 0x53, 0xad, 0x74, 0x4f, 0x09, - 0x48, 0x5b, 0x38, 0x88, 0x99, 0xab, 0xb0, 0xaa, 0x95, 0xe3, 0x08, 0x96, 0xf9, 0x25, 0x03, 0x16, - 0xfa, 0x65, 0xc8, 0x18, 0xe0, 0x60, 0xf8, 0xff, 0x62, 0xc1, 0xc5, 0xc5, 0x9e, 0xe0, 0xe2, 0xd8, - 0xd1, 0x50, 0xc6, 0x11, 0x6b, 0xa7, 0xb2, 0xec, 0x21, 0xb1, 0xb3, 0x9f, 0x35, 0xe0, 0x74, 0x9f, - 0xd5, 0xd4, 0x13, 0x64, 0x6e, 0x1c, 0x39, 0xc8, 0x3c, 0x33, 0x68, 0x90, 0xb9, 0xf9, 0xdd, 0x2c, - 0xcc, 0x0a, 0x79, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, 0xda, 0xf3, 0x71, - 0xfc, 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, 0x89, 0x3b, 0xd0, - 0xa7, 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, 0x6a, 0xfe, 0x82, - 0x1e, 0x4c, 0xcc, 0xb7, 0xfa, 0xed, 0x63, 0xc8, 0x75, 0x32, 0x64, 0x5c, 0xb1, 0xf9, 0x2b, 0x59, - 0x78, 0x78, 0x50, 0x42, 0x6f, 0xd1, 0x77, 0x27, 0x7e, 0xe4, 0xdd, 0xc9, 0x5d, 0x52, 0xdb, 0xc7, - 0xf2, 0x04, 0xe5, 0x77, 0xc6, 0x94, 0xda, 0xeb, 0x9d, 0x9f, 0x03, 0xdd, 0x26, 0x4e, 0x50, 0xd3, - 0x4e, 0xa6, 0xf3, 0x0c, 0xb7, 0xc2, 0x89, 0x2a, 0x2f, 0xbe, 0xd3, 0x2d, 0xce, 0x89, 0x14, 0x7f, - 0x55, 0x12, 0x88, 0x42, 0x2c, 0x2b, 0xa1, 0x87, 0x21, 0xef, 0x71, 0xa8, 0x8c, 0xb4, 0x17, 0x57, - 0xb2, 0xbc, 0x0c, 0x2b, 0x28, 0xfa, 0xa4, 0x66, 0x0b, 0x8f, 0x1d, 0x57, 0x96, 0x84, 0x83, 0x6e, - 0x9a, 0x5f, 0x80, 0xbc, 0x2f, 0x13, 0x73, 0xf2, 0xeb, 0x80, 0xc7, 0x06, 0x7c, 0xc0, 0x41, 0x8f, - 0x4e, 0x32, 0x4b, 0x27, 0x6f, 0x9f, 0xca, 0xe1, 0xa9, 0x48, 0x22, 0x53, 0x9d, 0x5a, 0xb8, 0x8f, - 0x11, 0x7a, 0x4f, 0x2c, 0x28, 0x80, 0x09, 0xf1, 0x3d, 0x27, 0xe1, 0xa2, 0xdf, 0x48, 0x29, 0x58, - 0x5b, 0x84, 0xf2, 0xb1, 0x8b, 0x10, 0x79, 0x7a, 0x96, 0xac, 0xcc, 0xef, 0x19, 0x30, 0x29, 0xe6, - 0xc8, 0x5d, 0x78, 0xc9, 0x72, 0x23, 0xfa, 0x92, 0xe5, 0x5c, 0x2a, 0x3b, 0x56, 0x9f, 0x67, 0x2c, - 0x37, 0x60, 0x4a, 0xcf, 0x18, 0x85, 0x9e, 0xd7, 0x76, 0x5c, 0x63, 0x94, 0x1c, 0x2c, 0x72, 0x4f, - 0x0e, 0x77, 0x63, 0xf3, 0xb7, 0xf2, 0xaa, 0x17, 0x99, 0xf7, 0x43, 0x9f, 0xf9, 0xc6, 0x81, 0x33, - 0x5f, 0x9f, 0x78, 0x99, 0xf4, 0x27, 0xde, 0x15, 0xc8, 0xcb, 0x6d, 0x51, 0x18, 0x0f, 0x0f, 0xea, - 0xb1, 0x7d, 0xd4, 0x02, 0xa1, 0xc4, 0xb4, 0xe5, 0xc2, 0x0e, 0x78, 0x6a, 0x0c, 0xd5, 0x76, 0xad, - 0xc8, 0xa0, 0x17, 0x61, 0xf2, 0x96, 0xeb, 0xdd, 0x6c, 0xba, 0x16, 0x4b, 0xf4, 0x0b, 0x69, 0x5c, - 0x27, 0x29, 0x37, 0x1b, 0x0f, 0xb0, 0xbe, 0x1e, 0xd2, 0xc7, 0x3a, 0x33, 0x54, 0x82, 0x99, 0x96, - 0xed, 0x60, 0x62, 0xd5, 0xd5, 0x83, 0x95, 0x31, 0x9e, 0x89, 0x54, 0x9a, 0xd6, 0x1b, 0x51, 0x30, - 0x8e, 0xe3, 0xa3, 0x8f, 0x43, 0xde, 0x17, 0xf9, 0x97, 0xd2, 0xb9, 0xf8, 0x53, 0x27, 0x55, 0x4e, - 0x34, 0xec, 0x3b, 0x59, 0x82, 0x15, 0x43, 0xb4, 0x0e, 0xf3, 0x9e, 0xc8, 0x70, 0x12, 0xf9, 0x4c, - 0x08, 0xdf, 0x15, 0x58, 0xc2, 0x4b, 0x9c, 0x00, 0xc7, 0x89, 0xb5, 0xa8, 0xed, 0xc4, 0x52, 0x9f, - 0xf1, 0x9b, 0x08, 0xcd, 0x79, 0xcf, 0x26, 0x7c, 0x1d, 0x0b, 0xe8, 0x41, 0x0f, 0xa0, 0xf2, 0x23, - 0x3c, 0x80, 0xaa, 0xc2, 0xa9, 0x38, 0x88, 0xe5, 0x61, 0x61, 0xa9, 0x5f, 0x34, 0x9d, 0x55, 0x49, - 0x42, 0xc2, 0xc9, 0x75, 0xd1, 0x75, 0x28, 0x78, 0x84, 0x9d, 0x6a, 0x4a, 0x32, 0xd4, 0x60, 0xe8, - 0xa0, 0x2a, 0x2c, 0x09, 0xe0, 0x90, 0x16, 0x1d, 0x77, 0x2b, 0x9a, 0x8c, 0xf3, 0x4a, 0x8a, 0x1f, - 0x3a, 0x13, 0x63, 0xdf, 0x27, 0x3f, 0x92, 0xf9, 0xe6, 0x34, 0x9c, 0x88, 0x78, 0x34, 0xd0, 0x83, - 0x90, 0x63, 0x89, 0x69, 0xd8, 0xf6, 0x90, 0x0f, 0xb7, 0x30, 0xde, 0x39, 0x1c, 0x86, 0x3e, 0x67, - 0xc0, 0x4c, 0x3b, 0xe2, 0xfb, 0x95, 0x3b, 0xe7, 0x88, 0xb7, 0x8b, 0x51, 0x87, 0xb2, 0x96, 0xc6, - 0x3a, 0xca, 0x0c, 0xc7, 0xb9, 0xd3, 0x05, 0x28, 0x22, 0x13, 0x9b, 0xc4, 0x63, 0xd8, 0xc2, 0xb2, - 0x52, 0x24, 0x56, 0xa2, 0x60, 0x1c, 0xc7, 0xa7, 0x23, 0xcc, 0x5a, 0x37, 0xca, 0x17, 0x90, 0x4a, - 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x67, 0x60, 0x5a, 0xe4, 0x60, 0xac, 0xb8, 0xf5, 0x0b, 0x96, 0xbf, - 0x23, 0x8e, 0x14, 0xea, 0x08, 0xb4, 0x12, 0x81, 0xe2, 0x18, 0x36, 0x6b, 0x5b, 0x98, 0xe8, 0x92, - 0x11, 0x18, 0x8f, 0x66, 0xf9, 0x5e, 0x89, 0x82, 0x71, 0x1c, 0x1f, 0x3d, 0xa2, 0xed, 0xfb, 0xfc, - 0x76, 0x50, 0xed, 0x06, 0x09, 0x7b, 0x7f, 0x09, 0x66, 0x3a, 0xec, 0x04, 0x56, 0x97, 0x40, 0xb1, - 0x1e, 0x15, 0xc3, 0xab, 0x51, 0x30, 0x8e, 0xe3, 0xa3, 0xa7, 0xe0, 0x84, 0x47, 0x77, 0x37, 0x45, - 0x80, 0x5f, 0x19, 0xaa, 0x1b, 0x21, 0xac, 0x03, 0x71, 0x14, 0x17, 0x3d, 0x0b, 0x73, 0x61, 0xca, - 0x32, 0x49, 0x80, 0xdf, 0x21, 0xaa, 0x6c, 0x3c, 0xa5, 0x38, 0x02, 0xee, 0xad, 0x83, 0x7e, 0x01, - 0x66, 0xb5, 0x9e, 0x58, 0x73, 0xea, 0xe4, 0xb6, 0x48, 0x2b, 0xc5, 0x3e, 0xc8, 0xb0, 0x12, 0x83, - 0xe1, 0x1e, 0x6c, 0xf4, 0x3e, 0x98, 0xae, 0xb9, 0xcd, 0x26, 0xdb, 0xe3, 0x78, 0x86, 0x69, 0x9e, - 0x3f, 0x8a, 0x67, 0xda, 0x8a, 0x40, 0x70, 0x0c, 0x13, 0x5d, 0x04, 0xe4, 0x6e, 0x51, 0x7b, 0x86, - 0xd4, 0x9f, 0xe5, 0xdf, 0x54, 0xa5, 0x2a, 0xfe, 0x44, 0x34, 0x2e, 0xfa, 0x72, 0x0f, 0x06, 0x4e, - 0xa8, 0xc5, 0x92, 0xf9, 0x68, 0xef, 0xc8, 0xa6, 0xd3, 0xf8, 0x1a, 0x50, 0xdc, 0x5f, 0x70, 0xe8, - 0x23, 0x32, 0x0f, 0xc6, 0x79, 0x98, 0x7a, 0x3a, 0x89, 0xa4, 0xf4, 0x64, 0xb3, 0xa1, 0x8e, 0xe0, - 0xa5, 0x58, 0x70, 0x42, 0x9f, 0x80, 0xc2, 0x96, 0xcc, 0x3c, 0xbe, 0x30, 0x9b, 0x86, 0x5e, 0x8c, - 0x25, 0xd1, 0x0f, 0xcf, 0xc3, 0x0a, 0x80, 0x43, 0x96, 0xe8, 0x21, 0x98, 0xbc, 0x50, 0x29, 0xa9, - 0x59, 0x38, 0xc7, 0x46, 0x7f, 0x8c, 0x56, 0xc1, 0x3a, 0x80, 0xae, 0x30, 0x65, 0x2f, 0x21, 0x36, - 0xc4, 0xa1, 0xbe, 0xed, 0x35, 0x7f, 0x28, 0x36, 0xbb, 0x04, 0xc5, 0xd5, 0x85, 0x93, 0x31, 0x6c, - 0x51, 0x8e, 0x15, 0x06, 0x7a, 0x01, 0x26, 0x85, 0xbe, 0x60, 0x7b, 0xd3, 0xfc, 0xd1, 0xde, 0x28, - 0xe2, 0x90, 0x04, 0xd6, 0xe9, 0xb1, 0xbb, 0x2d, 0x96, 0x90, 0x99, 0x9c, 0xef, 0x34, 0x9b, 0x0b, - 0xa7, 0xd8, 0xbe, 0x19, 0xde, 0x6d, 0x85, 0x20, 0xac, 0xe3, 0xa1, 0xc7, 0x64, 0xbc, 0xc6, 0xdb, - 0x22, 0x97, 0x7d, 0x2a, 0x5e, 0x43, 0x59, 0xb9, 0x7d, 0xc2, 0x98, 0x4f, 0x1f, 0x12, 0x28, 0xb1, - 0x05, 0x8b, 0xd2, 0xc4, 0xea, 0x5d, 0x24, 0x0b, 0x0b, 0x11, 0xdf, 0xc4, 0xe2, 0xf5, 0xbe, 0x98, - 0xf8, 0x00, 0x2a, 0x68, 0x0b, 0xb2, 0x56, 0x73, 0x6b, 0xe1, 0xde, 0x34, 0x6c, 0x45, 0xf5, 0x8d, - 0x64, 0x1e, 0x7a, 0x54, 0x5a, 0x2f, 0x63, 0x4a, 0xdc, 0x7c, 0x25, 0xa3, 0xee, 0x02, 0x54, 0x82, - 0xcd, 0x97, 0xf4, 0x59, 0x6d, 0xa4, 0xf1, 0x0d, 0xd0, 0x9e, 0xf4, 0xfc, 0x5c, 0x21, 0x25, 0xce, - 0xe9, 0xb6, 0x5a, 0xc7, 0xa9, 0x64, 0x4f, 0x89, 0x26, 0x0f, 0xe5, 0x67, 0xc8, 0xe8, 0x2a, 0x36, - 0xf7, 0x27, 0x94, 0xeb, 0x2b, 0x16, 0x80, 0xe0, 0x41, 0xce, 0xf6, 0x03, 0xdb, 0x4d, 0xf1, 0x3d, - 0x5d, 0x2c, 0xeb, 0x26, 0x0b, 0xd7, 0x65, 0x00, 0xcc, 0x59, 0x51, 0x9e, 0x4e, 0xc3, 0x76, 0x6e, - 0x8b, 0xe6, 0x5f, 0x49, 0x3d, 0xb2, 0x80, 0xf3, 0x64, 0x00, 0xcc, 0x59, 0xa1, 0x1b, 0x7c, 0xa6, - 0xa5, 0xf3, 0xbd, 0xd7, 0xf8, 0x67, 0x9c, 0xa3, 0x33, 0x8e, 0xf2, 0xf2, 0x5b, 0xb6, 0xb0, 0x61, - 0x46, 0xe4, 0x55, 0xdd, 0x58, 0x4b, 0xe2, 0x55, 0xdd, 0x58, 0xc3, 0x94, 0x09, 0x7a, 0xcd, 0x00, - 0xb0, 0xd4, 0xf7, 0x8c, 0xd3, 0xf9, 0x96, 0x45, 0xbf, 0xef, 0x23, 0xf3, 0x08, 0xbb, 0x10, 0x8a, - 0x35, 0xce, 0xe8, 0x45, 0x98, 0xb0, 0xf8, 0x97, 0x78, 0x44, 0xf0, 0x62, 0x3a, 0x9f, 0x97, 0x8a, - 0x49, 0xc0, 0x9c, 0x15, 0x02, 0x84, 0x25, 0x43, 0xca, 0x3b, 0xf0, 0x2c, 0xb2, 0x6d, 0xdf, 0x14, - 0x2e, 0x92, 0xea, 0xc8, 0x09, 0xb5, 0x29, 0xb1, 0x24, 0xde, 0x02, 0x84, 0x25, 0x43, 0xfe, 0x09, - 0x51, 0xcb, 0xb1, 0xd4, 0x93, 0x94, 0x74, 0x1e, 0x2e, 0xe9, 0x8f, 0x5c, 0xb4, 0x4f, 0x88, 0xea, - 0x8c, 0x70, 0x94, 0xaf, 0xf9, 0xe3, 0x2c, 0x00, 0xfb, 0xc9, 0x9f, 0x49, 0xb7, 0x58, 0x6a, 0xbd, - 0x1d, 0xb7, 0x2e, 0x96, 0x76, 0x8a, 0xaf, 0x9d, 0x41, 0xe4, 0xd1, 0xdb, 0x71, 0xeb, 0x58, 0x30, - 0x41, 0x0d, 0x18, 0x6b, 0x5b, 0xc1, 0x4e, 0xfa, 0x4f, 0xab, 0xf3, 0xfc, 0xbd, 0x50, 0xb0, 0x83, - 0x19, 0x03, 0xf4, 0xb2, 0x01, 0x13, 0xfc, 0x71, 0xb5, 0x74, 0x70, 0x8f, 0x7c, 0x8b, 0x2b, 0xfb, - 0x6c, 0x89, 0xbf, 0xe0, 0x16, 0x21, 0x12, 0x4a, 0x35, 0x8a, 0x52, 0x2c, 0xd9, 0x2e, 0xbe, 0x6a, - 0xc0, 0x94, 0x8e, 0x9a, 0x10, 0xdc, 0xf0, 0x11, 0x3d, 0xb8, 0x21, 0xcd, 0xfe, 0xd0, 0xe3, 0x24, - 0xfe, 0xd5, 0x00, 0xed, 0xc3, 0xab, 0x61, 0x68, 0xa3, 0x31, 0x70, 0x68, 0x63, 0x66, 0xc8, 0xd0, - 0xc6, 0xec, 0x50, 0xa1, 0x8d, 0x63, 0xc3, 0x87, 0x36, 0xe6, 0xfa, 0x87, 0x36, 0x9a, 0xaf, 0x1b, - 0x30, 0xd7, 0xb3, 0x1f, 0xc6, 0x3f, 0x70, 0x6f, 0x0c, 0xf8, 0x81, 0xfb, 0x55, 0x98, 0x15, 0xa9, - 0x9f, 0xab, 0xed, 0xa6, 0x9d, 0xf8, 0xec, 0x7d, 0x33, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x3f, 0x37, - 0x60, 0x52, 0x7b, 0x2c, 0x47, 0xdb, 0xc1, 0x1e, 0x15, 0x0a, 0x31, 0xc2, 0xac, 0xd7, 0xec, 0x42, - 0x81, 0xc3, 0xf8, 0xdd, 0x56, 0x43, 0x4b, 0x33, 0x1a, 0xde, 0x6d, 0xd1, 0x52, 0x2c, 0xa0, 0x3c, - 0x81, 0x24, 0x69, 0xb3, 0x4e, 0xcf, 0xea, 0x09, 0x24, 0x49, 0x1b, 0x33, 0x08, 0x63, 0x47, 0xed, - 0x48, 0x11, 0xf5, 0xaa, 0x25, 0xd9, 0xb6, 0xbc, 0x00, 0x73, 0x18, 0x3a, 0x03, 0x59, 0xe2, 0xd4, - 0xc5, 0xa1, 0x57, 0x7d, 0xd8, 0xea, 0x9c, 0x53, 0xc7, 0xb4, 0xdc, 0xbc, 0x0c, 0x53, 0x55, 0x52, - 0xf3, 0x48, 0xf0, 0x1c, 0xd9, 0x1b, 0xf8, 0x4b, 0x59, 0x74, 0xb6, 0xc7, 0xbe, 0x94, 0x45, 0xab, - 0xd3, 0x72, 0xf3, 0x0f, 0x0d, 0x88, 0x65, 0x82, 0xd7, 0xfc, 0xdc, 0x46, 0x5f, 0x3f, 0xb7, 0xee, - 0x1b, 0xcd, 0x1c, 0xe8, 0x1b, 0xbd, 0x08, 0xa8, 0x45, 0x97, 0x42, 0xe4, 0xbb, 0x07, 0xc2, 0xdf, - 0x10, 0x3e, 0xcd, 0xed, 0xc1, 0xc0, 0x09, 0xb5, 0xcc, 0x3f, 0xe0, 0xc2, 0xea, 0xb9, 0xe1, 0x0f, - 0xef, 0x80, 0x0e, 0xe4, 0x18, 0x29, 0xe1, 0x74, 0xa9, 0x8c, 0xb6, 0xb8, 0x7b, 0x53, 0x5c, 0x84, - 0x03, 0x29, 0x96, 0x3c, 0xe3, 0x66, 0x7e, 0x97, 0xcb, 0xaa, 0x25, 0x8f, 0x1f, 0x40, 0xd6, 0x56, - 0x54, 0xd6, 0x0b, 0x69, 0xed, 0x95, 0xc9, 0x32, 0xa2, 0x25, 0x80, 0x36, 0xf1, 0x6a, 0xc4, 0x09, - 0x64, 0x30, 0x76, 0x4e, 0x3c, 0x5e, 0x51, 0xa5, 0x58, 0xc3, 0x30, 0x5f, 0x36, 0x60, 0xb6, 0x1a, - 0xd8, 0xb5, 0x9b, 0xb6, 0xc3, 0x1f, 0x63, 0x6d, 0xdb, 0x0d, 0x7a, 0x4a, 0x21, 0xe2, 0x23, 0x50, - 0xdc, 0x0d, 0xa6, 0xb6, 0x62, 0xf9, 0xed, 0x27, 0x09, 0x47, 0x25, 0x98, 0x91, 0xde, 0x76, 0xe9, - 0xbb, 0xe4, 0x8f, 0x48, 0x95, 0xaf, 0x64, 0x35, 0x0a, 0xc6, 0x71, 0x7c, 0xf3, 0x93, 0x30, 0xa9, - 0xed, 0xaf, 0x6c, 0x2b, 0xba, 0x6d, 0xd5, 0x82, 0xf8, 0x12, 0x3e, 0x47, 0x0b, 0x31, 0x87, 0x31, - 0x17, 0x2b, 0x8f, 0xd6, 0x8d, 0x2d, 0x61, 0x11, 0xa3, 0x2b, 0xa0, 0x94, 0x98, 0x47, 0x1a, 0xe4, - 0xb6, 0x4c, 0x68, 0x2a, 0x89, 0x61, 0x5a, 0x88, 0x39, 0xcc, 0x7c, 0x04, 0xf2, 0xf2, 0xa9, 0x3f, - 0x7b, 0x2f, 0x2b, 0xdd, 0x7f, 0xfa, 0x7b, 0x59, 0xd7, 0x0b, 0x30, 0x83, 0x98, 0xd7, 0x20, 0x2f, - 0x33, 0x12, 0x1c, 0x8e, 0x4d, 0x57, 0x95, 0xef, 0xd8, 0x17, 0x5c, 0x3f, 0x90, 0x69, 0x14, 0xf8, - 0x95, 0xc0, 0xa5, 0x35, 0x56, 0x86, 0x15, 0xd4, 0x9c, 0x83, 0x99, 0xd8, 0xd5, 0x90, 0xf9, 0x8d, - 0x2c, 0x4c, 0x45, 0x3e, 0x40, 0x7c, 0xf8, 0x74, 0x1b, 0x7c, 0x15, 0x27, 0xf8, 0xec, 0xb3, 0x43, - 0xfa, 0xec, 0xf5, 0x4b, 0x92, 0xb1, 0xe3, 0xbd, 0x24, 0xc9, 0xa5, 0x73, 0x49, 0xa2, 0x5d, 0xe6, - 0x8d, 0xdf, 0xbd, 0xcb, 0xbc, 0xaf, 0xe6, 0x60, 0x3a, 0x9a, 0x8b, 0x69, 0x80, 0x91, 0x7c, 0xa4, - 0x67, 0x24, 0x87, 0xf4, 0x59, 0x66, 0x47, 0xf5, 0x59, 0x8e, 0x8d, 0xea, 0xb3, 0xcc, 0x1d, 0xc1, - 0x67, 0xd9, 0xeb, 0x71, 0x1c, 0x1f, 0xd8, 0xe3, 0xf8, 0xb4, 0x0a, 0xf3, 0x99, 0x88, 0xdc, 0x8b, - 0x87, 0x61, 0x3e, 0x28, 0x3a, 0x0c, 0x2b, 0x6e, 0x3d, 0x31, 0x5c, 0x2a, 0x7f, 0x88, 0x6f, 0xc6, - 0x4b, 0x8c, 0xca, 0x19, 0xfe, 0x5a, 0xe4, 0x6d, 0x43, 0x44, 0xe4, 0x3c, 0x01, 0x93, 0x62, 0x3e, - 0x31, 0x5b, 0x09, 0xa2, 0x76, 0x56, 0x35, 0x04, 0x61, 0x1d, 0x8f, 0x7d, 0x23, 0x33, 0xfa, 0x51, - 0x50, 0xe6, 0x02, 0xd6, 0xbf, 0x91, 0x19, 0xfb, 0x88, 0x68, 0x1c, 0xdf, 0xfc, 0x38, 0x9c, 0x4a, - 0x3c, 0x91, 0x31, 0x17, 0x15, 0x53, 0xe3, 0xa4, 0x2e, 0x10, 0x34, 0x31, 0x62, 0xa9, 0x7a, 0x17, - 0xaf, 0xf7, 0xc5, 0xc4, 0x07, 0x50, 0x31, 0xbf, 0x92, 0x85, 0xe9, 0xe8, 0x07, 0x96, 0xd0, 0x2d, - 0xe5, 0xbf, 0x49, 0xc5, 0x75, 0xc4, 0xc9, 0x6a, 0xf9, 0x7d, 0xfa, 0x3a, 0x63, 0x6f, 0xb1, 0xf9, - 0xb5, 0xa5, 0x92, 0x0d, 0x1d, 0x1f, 0x63, 0xe1, 0x05, 0x15, 0xec, 0xd8, 0x37, 0x94, 0xc2, 0x47, - 0x16, 0xe2, 0xd8, 0x95, 0x3a, 0xf7, 0xf0, 0xd9, 0x84, 0x62, 0x85, 0x35, 0xb6, 0x54, 0xb7, 0xec, - 0x12, 0xcf, 0xde, 0xb6, 0xd5, 0xc7, 0x21, 0xd9, 0xce, 0x7d, 0x4d, 0x94, 0x61, 0x05, 0x35, 0x5f, - 0xce, 0x40, 0xf8, 0x29, 0x5c, 0xf6, 0x15, 0x12, 0x5f, 0x33, 0x71, 0xc5, 0xb0, 0x5d, 0x1c, 0xf5, - 0x53, 0x3f, 0x21, 0x45, 0x11, 0x82, 0xa9, 0x95, 0xe0, 0x08, 0xc7, 0x9f, 0xc1, 0x27, 0x70, 0x2d, - 0x98, 0x89, 0x3d, 0x3d, 0x4d, 0x3d, 0xce, 0xfd, 0x47, 0x59, 0x28, 0xa8, 0xc7, 0xbb, 0xe8, 0xbd, - 0x11, 0x7f, 0x43, 0xa1, 0xfc, 0x76, 0x2d, 0xe1, 0xfe, 0x8e, 0x5b, 0xbf, 0xd3, 0x2d, 0xce, 0x28, - 0xe4, 0x98, 0xef, 0xe0, 0x0c, 0x64, 0x3b, 0x5e, 0x33, 0x7e, 0xa0, 0xb8, 0x8a, 0xd7, 0x31, 0x2d, - 0x47, 0xb7, 0xe3, 0x07, 0xfe, 0x8d, 0x94, 0x1e, 0x1c, 0x73, 0xcb, 0xbb, 0xff, 0x41, 0x9f, 0x6a, - 0xc9, 0x2d, 0xb7, 0xbe, 0x17, 0x4f, 0xd0, 0x5f, 0x76, 0xeb, 0x7b, 0x98, 0x41, 0xd0, 0x33, 0x30, - 0x1d, 0xd8, 0x2d, 0xe2, 0x76, 0x02, 0xfd, 0x43, 0xa3, 0xd9, 0xf0, 0x72, 0x71, 0x33, 0x02, 0xc5, - 0x31, 0x6c, 0xaa, 0x65, 0x6f, 0xf8, 0xae, 0xc3, 0xb2, 0xee, 0x8d, 0x47, 0x6f, 0x22, 0x2e, 0x56, - 0x2f, 0x5f, 0x62, 0x7e, 0x0f, 0x85, 0x41, 0xb1, 0x6d, 0xf6, 0x52, 0xcf, 0x23, 0xe2, 0x6e, 0x7f, - 0x36, 0xcc, 0xe3, 0xc0, 0xcb, 0xb1, 0xc2, 0x40, 0xab, 0x9c, 0x36, 0x95, 0x96, 0x69, 0x94, 0xa9, - 0xf2, 0xc3, 0x92, 0x2e, 0x2d, 0xbb, 0xd3, 0x2d, 0x2e, 0x10, 0xa7, 0xe6, 0xd6, 0x6d, 0xa7, 0xb1, - 0x4c, 0x11, 0x97, 0xb0, 0x75, 0x4b, 0xaa, 0x1a, 0x55, 0xd3, 0xbc, 0x0a, 0x33, 0xb1, 0x0e, 0x93, - 0x07, 0x40, 0x23, 0xf9, 0x00, 0x38, 0x58, 0x4e, 0xfd, 0x3f, 0x31, 0x60, 0xae, 0x67, 0x0b, 0x18, - 0xf4, 0x19, 0x47, 0x5c, 0x19, 0x65, 0x8e, 0xae, 0x8c, 0xb2, 0xc3, 0x29, 0xa3, 0xf2, 0xd6, 0xb7, - 0xde, 0x3c, 0x7b, 0xcf, 0x77, 0xde, 0x3c, 0x7b, 0xcf, 0xf7, 0xdf, 0x3c, 0x7b, 0xcf, 0xcb, 0xfb, - 0x67, 0x8d, 0x6f, 0xed, 0x9f, 0x35, 0xbe, 0xb3, 0x7f, 0xd6, 0xf8, 0xfe, 0xfe, 0x59, 0xe3, 0x1f, - 0xf7, 0xcf, 0x1a, 0xaf, 0xff, 0xe8, 0xec, 0x3d, 0xcf, 0x3f, 0x1d, 0x4e, 0xd0, 0x65, 0x39, 0x41, - 0xd9, 0x8f, 0x77, 0xc9, 0xe9, 0xb8, 0xdc, 0xbe, 0xd9, 0x58, 0xa6, 0x13, 0x74, 0x59, 0x95, 0xc8, - 0x09, 0xfa, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x40, 0x0b, 0x31, 0xfb, 0xcb, 0x93, 0x00, 0x00, + 0x38, 0xf0, 0xe7, 0x7c, 0x9f, 0x23, 0x25, 0xfe, 0xf9, 0xea, 0xc4, 0x86, 0x5b, 0x52, 0xda, 0xf5, + 0x6a, 0x2d, 0xed, 0x72, 0x2f, 0xb5, 0xbb, 0x89, 0x13, 0x27, 0x19, 0x91, 0x57, 0xd4, 0xec, 0x92, + 0x33, 0xcc, 0xcc, 0x50, 0xbb, 0x72, 0x8c, 0xc4, 0x6e, 0x60, 0x37, 0x2d, 0x12, 0xc4, 0x6d, 0x12, + 0x14, 0x45, 0xd1, 0x22, 0x28, 0x0c, 0xf4, 0x27, 0x7d, 0x0a, 0x5a, 0xf4, 0x25, 0x40, 0x8b, 0xe6, + 0xa7, 0xe9, 0x43, 0x8a, 0xa4, 0x40, 0x9b, 0xa4, 0x40, 0xd8, 0x5a, 0xe9, 0x4b, 0x8b, 0x16, 0x41, + 0x81, 0x14, 0x45, 0xf6, 0xa9, 0xb8, 0xbf, 0x73, 0x67, 0x38, 0x94, 0x48, 0x71, 0xb4, 0x31, 0xda, + 0xbc, 0x91, 0xf7, 0x9c, 0x7b, 0xce, 0xb9, 0xbf, 0xe7, 0xdc, 0x73, 0xcf, 0x3d, 0x03, 0xeb, 0x0d, + 0x3b, 0xd8, 0xe9, 0x6c, 0x2d, 0xd5, 0xdc, 0xd6, 0xb2, 0xe5, 0x35, 0xdc, 0xb6, 0xe7, 0xde, 0x60, + 0x3f, 0xde, 0xe5, 0xb9, 0xcd, 0xa6, 0xdb, 0x09, 0xfc, 0xe5, 0xf6, 0xcd, 0xc6, 0xb2, 0xd5, 0xb6, + 0xfd, 0x65, 0x55, 0xb2, 0xfb, 0x1e, 0xab, 0xd9, 0xde, 0xb1, 0xde, 0xb3, 0xdc, 0x20, 0x0e, 0xf1, + 0xac, 0x80, 0xd4, 0x97, 0xda, 0x9e, 0x1b, 0xb8, 0xe8, 0xe9, 0x90, 0xda, 0x92, 0xa4, 0xc6, 0x7e, + 0x7c, 0x44, 0xd6, 0x5d, 0x6a, 0xdf, 0x6c, 0x2c, 0x51, 0x6a, 0x4b, 0xaa, 0x44, 0x52, 0x5b, 0x7c, + 0x97, 0x26, 0x4b, 0xc3, 0x6d, 0xb8, 0xcb, 0x8c, 0xe8, 0x56, 0x67, 0x9b, 0xfd, 0x63, 0x7f, 0xd8, + 0x2f, 0xce, 0x6c, 0xf1, 0xc1, 0x9b, 0x4f, 0xfa, 0x4b, 0xb6, 0x4b, 0x65, 0x5b, 0xde, 0xb2, 0x82, + 0xda, 0xce, 0xf2, 0x6e, 0x8f, 0x44, 0x8b, 0xa6, 0x86, 0x54, 0x73, 0x3d, 0x92, 0x84, 0xf3, 0x78, + 0x88, 0xd3, 0xb2, 0x6a, 0x3b, 0xb6, 0x43, 0xbc, 0xbd, 0xb0, 0xd5, 0x2d, 0x12, 0x58, 0x49, 0xb5, + 0x96, 0xfb, 0xd5, 0xf2, 0x3a, 0x4e, 0x60, 0xb7, 0x48, 0x4f, 0x85, 0xff, 0x7f, 0x58, 0x05, 0xbf, + 0xb6, 0x43, 0x5a, 0x56, 0x4f, 0xbd, 0xc7, 0xfa, 0xd5, 0xeb, 0x04, 0x76, 0x73, 0xd9, 0x76, 0x02, + 0x3f, 0xf0, 0xe2, 0x95, 0xcc, 0xaf, 0x67, 0xa1, 0x50, 0x5a, 0x2f, 0x57, 0x03, 0x2b, 0xe8, 0xf8, + 0xe8, 0x35, 0x03, 0xa6, 0x9a, 0xae, 0x55, 0x2f, 0x5b, 0x4d, 0xcb, 0xa9, 0x11, 0x6f, 0xc1, 0x78, + 0xc0, 0x78, 0x78, 0xf2, 0xd1, 0xf5, 0xa5, 0x51, 0xc6, 0x6b, 0xa9, 0x74, 0xcb, 0xc7, 0xc4, 0x77, + 0x3b, 0x5e, 0x8d, 0x60, 0xb2, 0x5d, 0x9e, 0xff, 0x56, 0xb7, 0x78, 0xcf, 0x7e, 0xb7, 0x38, 0xb5, + 0xae, 0x71, 0xc2, 0x11, 0xbe, 0xe8, 0x8b, 0x06, 0xcc, 0xd5, 0x2c, 0xc7, 0xf2, 0xf6, 0x36, 0x2d, + 0xaf, 0x41, 0x82, 0x67, 0x3d, 0xb7, 0xd3, 0x5e, 0xc8, 0x1c, 0x83, 0x34, 0xf7, 0x0a, 0x69, 0xe6, + 0x56, 0xe2, 0xec, 0x70, 0xaf, 0x04, 0x4c, 0x2e, 0x3f, 0xb0, 0xb6, 0x9a, 0x44, 0x97, 0x2b, 0x7b, + 0x9c, 0x72, 0x55, 0xe3, 0xec, 0x70, 0xaf, 0x04, 0xe6, 0xab, 0x59, 0x98, 0x2b, 0xad, 0x97, 0x37, + 0x3d, 0x6b, 0x7b, 0xdb, 0xae, 0x61, 0xb7, 0x13, 0xd8, 0x4e, 0x03, 0xbd, 0x13, 0x26, 0x6c, 0xa7, + 0xe1, 0x11, 0xdf, 0x67, 0x03, 0x59, 0x28, 0xcf, 0x08, 0xa2, 0x13, 0x6b, 0xbc, 0x18, 0x4b, 0x38, + 0x7a, 0x02, 0x26, 0x7d, 0xe2, 0xed, 0xda, 0x35, 0x52, 0x71, 0xbd, 0x80, 0xf5, 0x74, 0xae, 0x7c, + 0x52, 0xa0, 0x4f, 0x56, 0x43, 0x10, 0xd6, 0xf1, 0x68, 0x35, 0xcf, 0x75, 0x03, 0x01, 0x67, 0x1d, + 0x51, 0x08, 0xab, 0xe1, 0x10, 0x84, 0x75, 0x3c, 0xf4, 0xba, 0x01, 0xb3, 0x7e, 0x60, 0xd7, 0x6e, + 0xda, 0x0e, 0xf1, 0xfd, 0x15, 0xd7, 0xd9, 0xb6, 0x1b, 0x0b, 0x39, 0xd6, 0x8b, 0x97, 0x46, 0xeb, + 0xc5, 0x6a, 0x8c, 0x6a, 0x79, 0x7e, 0xbf, 0x5b, 0x9c, 0x8d, 0x97, 0xe2, 0x1e, 0xee, 0x68, 0x15, + 0x66, 0x2d, 0xc7, 0x71, 0x03, 0x2b, 0xb0, 0x5d, 0xa7, 0xe2, 0x91, 0x6d, 0xfb, 0xf6, 0xc2, 0x18, + 0x6b, 0xce, 0x82, 0x68, 0xce, 0x6c, 0x29, 0x06, 0xc7, 0x3d, 0x35, 0xcc, 0x55, 0x58, 0x28, 0xb5, + 0xb6, 0x2c, 0xdf, 0xb7, 0xea, 0xae, 0x17, 0x1b, 0x8d, 0x87, 0x21, 0xdf, 0xb2, 0xda, 0x6d, 0xdb, + 0x69, 0xd0, 0xe1, 0xc8, 0x3e, 0x5c, 0x28, 0x4f, 0xed, 0x77, 0x8b, 0xf9, 0x0d, 0x51, 0x86, 0x15, + 0xd4, 0xfc, 0x41, 0x06, 0x26, 0x4b, 0x8e, 0xd5, 0xdc, 0xf3, 0x6d, 0x1f, 0x77, 0x1c, 0xf4, 0x51, + 0xc8, 0xd3, 0xdd, 0xa5, 0x6e, 0x05, 0x96, 0x58, 0x91, 0xef, 0x5e, 0xe2, 0x8b, 0x7d, 0x49, 0x5f, + 0xec, 0x61, 0xbf, 0x50, 0xec, 0xa5, 0xdd, 0xf7, 0x2c, 0x5d, 0xde, 0xba, 0x41, 0x6a, 0xc1, 0x06, + 0x09, 0xac, 0x32, 0x12, 0xad, 0x80, 0xb0, 0x0c, 0x2b, 0xaa, 0xc8, 0x85, 0x31, 0xbf, 0x4d, 0x6a, + 0x62, 0x85, 0x6d, 0x8c, 0x38, 0x93, 0x43, 0xd1, 0xab, 0x6d, 0x52, 0x2b, 0x4f, 0x09, 0xd6, 0x63, + 0xf4, 0x1f, 0x66, 0x8c, 0xd0, 0x2d, 0x18, 0xf7, 0xd9, 0x9e, 0x23, 0x16, 0xcf, 0xe5, 0xf4, 0x58, + 0x32, 0xb2, 0xe5, 0x69, 0xc1, 0x74, 0x9c, 0xff, 0xc7, 0x82, 0x9d, 0xf9, 0x0f, 0x06, 0x9c, 0xd4, + 0xb0, 0x4b, 0x5e, 0xa3, 0xd3, 0x22, 0x4e, 0x80, 0x1e, 0x80, 0x31, 0xc7, 0x6a, 0x11, 0xb1, 0x50, + 0x94, 0xc8, 0x97, 0xac, 0x16, 0xc1, 0x0c, 0x82, 0x1e, 0x84, 0xdc, 0xae, 0xd5, 0xec, 0x10, 0xd6, + 0x49, 0x85, 0xf2, 0x09, 0x81, 0x92, 0xbb, 0x46, 0x0b, 0x31, 0x87, 0xa1, 0x97, 0xa0, 0xc0, 0x7e, + 0x9c, 0xf7, 0xdc, 0x56, 0x4a, 0x4d, 0x13, 0x12, 0x5e, 0x93, 0x64, 0xcb, 0x27, 0xf6, 0xbb, 0xc5, + 0x82, 0xfa, 0x8b, 0x43, 0x86, 0xe6, 0x3f, 0x1a, 0x30, 0xa3, 0x35, 0x6e, 0xdd, 0xf6, 0x03, 0xf4, + 0xa1, 0x9e, 0xc9, 0xb3, 0x34, 0xd8, 0xe4, 0xa1, 0xb5, 0xd9, 0xd4, 0x99, 0x15, 0x2d, 0xcd, 0xcb, + 0x12, 0x6d, 0xe2, 0x38, 0x90, 0xb3, 0x03, 0xd2, 0xf2, 0x17, 0x32, 0x0f, 0x64, 0x1f, 0x9e, 0x7c, + 0x74, 0x2d, 0xb5, 0x61, 0x0c, 0xfb, 0x77, 0x8d, 0xd2, 0xc7, 0x9c, 0x8d, 0xf9, 0x95, 0xb1, 0x48, + 0x0b, 0xe9, 0x8c, 0x42, 0x2e, 0x4c, 0xb4, 0x48, 0xe0, 0xd9, 0x35, 0xbe, 0xae, 0x26, 0x1f, 0x5d, + 0x1d, 0x4d, 0x8a, 0x0d, 0x46, 0x2c, 0xdc, 0x2c, 0xf9, 0x7f, 0x1f, 0x4b, 0x2e, 0x68, 0x07, 0xc6, + 0x2c, 0xaf, 0x21, 0xdb, 0x7c, 0x3e, 0x9d, 0xf1, 0x0d, 0xe7, 0x5c, 0xc9, 0x6b, 0xf8, 0x98, 0x71, + 0x40, 0xcb, 0x50, 0x08, 0x88, 0xd7, 0xb2, 0x1d, 0x2b, 0xe0, 0xbb, 0x6b, 0xbe, 0x3c, 0x27, 0xd0, + 0x0a, 0x9b, 0x12, 0x80, 0x43, 0x1c, 0xd4, 0x84, 0xf1, 0xba, 0xb7, 0x87, 0x3b, 0xce, 0xc2, 0x58, + 0x1a, 0x5d, 0xb1, 0xca, 0x68, 0x85, 0x8b, 0x89, 0xff, 0xc7, 0x82, 0x07, 0x7a, 0xc3, 0x80, 0xf9, + 0x16, 0xb1, 0xfc, 0x8e, 0x47, 0x68, 0x13, 0x30, 0x09, 0x88, 0x43, 0x77, 0xc3, 0x85, 0x1c, 0x63, + 0x8e, 0x47, 0x1d, 0x87, 0x5e, 0xca, 0xe5, 0xfb, 0x85, 0x28, 0xf3, 0x49, 0x50, 0x9c, 0x28, 0x8d, + 0xf9, 0x83, 0x31, 0x98, 0xeb, 0xd9, 0x21, 0xd0, 0xe3, 0x90, 0x6b, 0xef, 0x58, 0xbe, 0x5c, 0xf2, + 0x67, 0xe5, 0x7c, 0xab, 0xd0, 0xc2, 0x3b, 0xdd, 0xe2, 0x09, 0x59, 0x85, 0x15, 0x60, 0x8e, 0x4c, + 0x75, 0x6a, 0x8b, 0xf8, 0xbe, 0xd5, 0x90, 0xfb, 0x80, 0x36, 0x4d, 0x58, 0x31, 0x96, 0x70, 0xf4, + 0x2b, 0x06, 0x9c, 0xe0, 0x53, 0x06, 0x13, 0xbf, 0xd3, 0x0c, 0xe8, 0x5e, 0x47, 0xbb, 0xe5, 0x62, + 0x1a, 0xd3, 0x93, 0x93, 0x2c, 0x9f, 0x12, 0xdc, 0x4f, 0xe8, 0xa5, 0x3e, 0x8e, 0xf2, 0x45, 0xd7, + 0xa1, 0xe0, 0x07, 0x96, 0x17, 0x90, 0x7a, 0x29, 0x60, 0x5a, 0x6d, 0xf2, 0xd1, 0xff, 0x3b, 0xd8, + 0x26, 0xb0, 0x69, 0xb7, 0x08, 0xdf, 0x70, 0xaa, 0x92, 0x00, 0x0e, 0x69, 0xa1, 0x97, 0x00, 0xbc, + 0x8e, 0x53, 0xed, 0xb4, 0x5a, 0x96, 0xb7, 0x27, 0x34, 0xf8, 0x85, 0xd1, 0x9a, 0x87, 0x15, 0xbd, + 0x50, 0x67, 0x85, 0x65, 0x58, 0xe3, 0x87, 0x5e, 0x31, 0xe0, 0x04, 0x9f, 0x89, 0x52, 0x82, 0xf1, + 0x94, 0x25, 0x98, 0xa3, 0x5d, 0xbb, 0xaa, 0xb3, 0xc0, 0x51, 0x8e, 0xe6, 0xdf, 0x45, 0xf5, 0x49, + 0x35, 0xa0, 0xd6, 0x75, 0x63, 0x0f, 0x7d, 0x10, 0xee, 0xf5, 0x3b, 0xb5, 0x1a, 0xf1, 0xfd, 0xed, + 0x4e, 0x13, 0x77, 0x9c, 0x0b, 0xb6, 0x1f, 0xb8, 0xde, 0xde, 0xba, 0xdd, 0xb2, 0x03, 0x36, 0xe3, + 0x72, 0xe5, 0x33, 0xfb, 0xdd, 0xe2, 0xbd, 0xd5, 0x7e, 0x48, 0xb8, 0x7f, 0x7d, 0x64, 0xc1, 0x7d, + 0x1d, 0xa7, 0x3f, 0x79, 0x6e, 0xbd, 0x15, 0xf7, 0xbb, 0xc5, 0xfb, 0xae, 0xf6, 0x47, 0xc3, 0x07, + 0xd1, 0x30, 0xff, 0xd5, 0x80, 0x59, 0xd9, 0xae, 0x4d, 0xd2, 0x6a, 0x37, 0xe9, 0xee, 0x72, 0xfc, + 0x86, 0x48, 0x10, 0x31, 0x44, 0x70, 0x3a, 0xea, 0x44, 0xca, 0xdf, 0xcf, 0x1a, 0x31, 0xff, 0xc5, + 0x80, 0xf9, 0x38, 0xf2, 0x5d, 0x50, 0x9e, 0x7e, 0x54, 0x79, 0x5e, 0x4a, 0xb7, 0xb5, 0x7d, 0x34, + 0xe8, 0x6b, 0x63, 0xbd, 0x6d, 0xfd, 0x9f, 0xae, 0x46, 0x43, 0xad, 0x98, 0xfd, 0x59, 0x6a, 0xc5, + 0xb1, 0xb7, 0x94, 0x56, 0xfc, 0x83, 0x31, 0x98, 0x2a, 0x39, 0x81, 0x5d, 0xda, 0xde, 0xb6, 0x1d, + 0x3b, 0xd8, 0x43, 0x9f, 0xc9, 0xc0, 0x72, 0xdb, 0x23, 0xdb, 0xc4, 0xf3, 0x48, 0x7d, 0xb5, 0xe3, + 0xd9, 0x4e, 0xa3, 0x5a, 0xdb, 0x21, 0xf5, 0x4e, 0xd3, 0x76, 0x1a, 0x6b, 0x0d, 0xc7, 0x55, 0xc5, + 0xe7, 0x6e, 0x93, 0x5a, 0x87, 0x35, 0x89, 0x2f, 0x8a, 0xd6, 0x68, 0x4d, 0xaa, 0x0c, 0xc7, 0xb4, + 0xfc, 0xd8, 0x7e, 0xb7, 0xb8, 0x3c, 0x64, 0x25, 0x3c, 0x6c, 0xd3, 0xd0, 0xa7, 0x33, 0xb0, 0xe4, + 0x91, 0x8f, 0x75, 0xec, 0xc1, 0x7b, 0x83, 0xef, 0x5a, 0xcd, 0x11, 0xd5, 0xcf, 0x50, 0x3c, 0xcb, + 0x8f, 0xee, 0x77, 0x8b, 0x43, 0xd6, 0xc1, 0x43, 0xb6, 0xcb, 0xfc, 0x5a, 0x06, 0x4e, 0x95, 0xda, + 0xed, 0x0d, 0xe2, 0xef, 0xc4, 0x0e, 0xb5, 0x9f, 0x33, 0x60, 0x7a, 0xd7, 0xf6, 0x82, 0x8e, 0xd5, + 0x94, 0x4e, 0x00, 0x3e, 0x25, 0xaa, 0x23, 0x2e, 0x67, 0xce, 0xed, 0x5a, 0x84, 0x74, 0x19, 0xed, + 0x77, 0x8b, 0xd3, 0xd1, 0x32, 0x1c, 0x63, 0x8f, 0x7e, 0xd3, 0x80, 0x59, 0x51, 0x74, 0xc9, 0xad, + 0x13, 0xdd, 0x73, 0x74, 0x35, 0x4d, 0x99, 0x14, 0x71, 0xee, 0x62, 0x88, 0x97, 0xe2, 0x1e, 0x21, + 0xcc, 0x7f, 0xcf, 0xc0, 0xe9, 0x3e, 0x34, 0xd0, 0xef, 0x1b, 0x30, 0xcf, 0xdd, 0x4d, 0x1a, 0x08, + 0x93, 0x6d, 0xd1, 0x9b, 0x1f, 0x48, 0x5b, 0x72, 0x4c, 0xd7, 0x02, 0x71, 0x6a, 0xa4, 0xbc, 0x40, + 0xb7, 0x8d, 0x95, 0x04, 0xd6, 0x38, 0x51, 0x20, 0x26, 0x29, 0x77, 0x40, 0xc5, 0x24, 0xcd, 0xdc, + 0x15, 0x49, 0xab, 0x09, 0xac, 0x71, 0xa2, 0x40, 0xe6, 0x2f, 0xc2, 0x7d, 0x07, 0x90, 0x3b, 0xfc, + 0xc4, 0x6f, 0xbe, 0xa0, 0x66, 0x7d, 0x74, 0xce, 0x0d, 0xe0, 0x2c, 0x30, 0x61, 0xdc, 0x73, 0x3b, + 0x01, 0xe1, 0xda, 0xad, 0x50, 0x06, 0xaa, 0x27, 0x30, 0x2b, 0xc1, 0x02, 0x62, 0x7e, 0xcd, 0x80, + 0xfc, 0x10, 0xfe, 0x87, 0x62, 0xd4, 0xff, 0x50, 0xe8, 0xf1, 0x3d, 0x04, 0xbd, 0xbe, 0x87, 0x67, + 0x47, 0x1b, 0x8d, 0x41, 0x7c, 0x0e, 0x3f, 0x36, 0x60, 0xae, 0xc7, 0x47, 0x81, 0x76, 0x60, 0xbe, + 0xed, 0xd6, 0xa5, 0x7d, 0x71, 0xc1, 0xf2, 0x77, 0x18, 0x4c, 0x34, 0xef, 0x71, 0x3a, 0x92, 0x95, + 0x04, 0xf8, 0x9d, 0x6e, 0x71, 0x41, 0x11, 0x89, 0x21, 0xe0, 0x44, 0x8a, 0xa8, 0x0d, 0xf9, 0x6d, + 0x9b, 0x34, 0xeb, 0xe1, 0x14, 0x1c, 0xd1, 0x92, 0x38, 0x2f, 0xa8, 0x71, 0xf7, 0x9c, 0xfc, 0x87, + 0x15, 0x17, 0xf3, 0x0a, 0x4c, 0x47, 0x9d, 0xb5, 0x03, 0x0c, 0xde, 0x19, 0xc8, 0x5a, 0x9e, 0x23, + 0x86, 0x6e, 0x52, 0x20, 0x64, 0x4b, 0xf8, 0x12, 0xa6, 0xe5, 0xe6, 0x4f, 0xc7, 0x60, 0xa6, 0xdc, + 0xec, 0x90, 0x67, 0x3d, 0x42, 0xe4, 0xf9, 0xb4, 0x04, 0x33, 0x6d, 0x8f, 0xec, 0xda, 0xe4, 0x56, + 0x95, 0x34, 0x49, 0x2d, 0x70, 0x3d, 0x41, 0xff, 0xb4, 0xa8, 0x3e, 0x53, 0x89, 0x82, 0x71, 0x1c, + 0x1f, 0x3d, 0x03, 0xd3, 0x56, 0x2d, 0xb0, 0x77, 0x89, 0xa2, 0xc0, 0x05, 0x78, 0x9b, 0xa0, 0x30, + 0x5d, 0x8a, 0x40, 0x71, 0x0c, 0x1b, 0x7d, 0x08, 0x16, 0xfc, 0x9a, 0xd5, 0x24, 0x57, 0xdb, 0x82, + 0xd5, 0xca, 0x0e, 0xa9, 0xdd, 0xac, 0xb8, 0xb6, 0x13, 0x08, 0x6f, 0xc4, 0x03, 0x82, 0xd2, 0x42, + 0xb5, 0x0f, 0x1e, 0xee, 0x4b, 0x01, 0xfd, 0xb9, 0x01, 0x67, 0xda, 0x1e, 0xa9, 0x78, 0x6e, 0xcb, + 0xa5, 0x6a, 0xa6, 0xe7, 0x88, 0x2e, 0x8e, 0xaa, 0xd7, 0x46, 0xd4, 0xa7, 0xbc, 0xa4, 0xd7, 0x45, + 0xf8, 0xf6, 0xfd, 0x6e, 0xf1, 0x4c, 0xe5, 0x20, 0x01, 0xf0, 0xc1, 0xf2, 0xa1, 0xbf, 0x34, 0xe0, + 0x6c, 0xdb, 0xf5, 0x83, 0x03, 0x9a, 0x90, 0x3b, 0xd6, 0x26, 0x98, 0xfb, 0xdd, 0xe2, 0xd9, 0xca, + 0x81, 0x12, 0xe0, 0x43, 0x24, 0x34, 0xf7, 0x27, 0x61, 0x4e, 0x9b, 0x7b, 0xe2, 0xfc, 0xfa, 0x14, + 0x9c, 0x90, 0x93, 0x21, 0x54, 0xeb, 0x85, 0xd0, 0xdf, 0x50, 0xd2, 0x81, 0x38, 0x8a, 0x4b, 0xe7, + 0x9d, 0x9a, 0x8a, 0xbc, 0x76, 0x6c, 0xde, 0x55, 0x22, 0x50, 0x1c, 0xc3, 0x46, 0x6b, 0x70, 0x52, + 0x94, 0x60, 0xd2, 0x6e, 0xda, 0x35, 0x6b, 0xc5, 0xed, 0x88, 0x29, 0x97, 0x2b, 0x9f, 0xde, 0xef, + 0x16, 0x4f, 0x56, 0x7a, 0xc1, 0x38, 0xa9, 0x0e, 0x5a, 0x87, 0x79, 0xab, 0x13, 0xb8, 0xaa, 0xfd, + 0xe7, 0x1c, 0xaa, 0x29, 0xea, 0x6c, 0x6a, 0xe5, 0xb9, 0x4a, 0x29, 0x25, 0xc0, 0x71, 0x62, 0x2d, + 0x54, 0x89, 0x51, 0xab, 0x92, 0x9a, 0xeb, 0xd4, 0xf9, 0x28, 0xe7, 0x42, 0x2b, 0xbc, 0x94, 0x80, + 0x83, 0x13, 0x6b, 0xa2, 0x26, 0x4c, 0xb7, 0xac, 0xdb, 0x57, 0x1d, 0x6b, 0xd7, 0xb2, 0x9b, 0x94, + 0x89, 0xf0, 0x61, 0xf4, 0x3f, 0x58, 0x77, 0x02, 0xbb, 0xb9, 0xc4, 0xaf, 0xf3, 0x96, 0xd6, 0x9c, + 0xe0, 0xb2, 0x57, 0x0d, 0xa8, 0xb5, 0xc6, 0x8d, 0xa3, 0x8d, 0x08, 0x2d, 0x1c, 0xa3, 0x8d, 0x2e, + 0xc3, 0x29, 0xb6, 0x1c, 0x57, 0xdd, 0x5b, 0xce, 0x2a, 0x69, 0x5a, 0x7b, 0xb2, 0x01, 0x13, 0xac, + 0x01, 0xf7, 0xee, 0x77, 0x8b, 0xa7, 0xaa, 0x49, 0x08, 0x38, 0xb9, 0x1e, 0xb2, 0xe0, 0xbe, 0x28, + 0x00, 0x93, 0x5d, 0xdb, 0xb7, 0x5d, 0x87, 0x7b, 0x22, 0xf2, 0xa1, 0x27, 0xa2, 0xda, 0x1f, 0x0d, + 0x1f, 0x44, 0x03, 0xfd, 0xb6, 0x01, 0xf3, 0x49, 0xcb, 0x70, 0xa1, 0x90, 0xc6, 0x65, 0x45, 0x6c, + 0x69, 0xf1, 0x19, 0x91, 0xb8, 0x29, 0x24, 0x0a, 0x81, 0x5e, 0x36, 0x60, 0xca, 0xd2, 0x4e, 0x51, + 0x0b, 0xc0, 0xa4, 0xba, 0x38, 0xea, 0x59, 0x3e, 0xa4, 0x58, 0x9e, 0xdd, 0xef, 0x16, 0x23, 0x27, + 0x35, 0x1c, 0xe1, 0x88, 0x7e, 0xd7, 0x80, 0x53, 0x89, 0x6b, 0x7c, 0x61, 0xf2, 0x38, 0x7a, 0x88, + 0x4d, 0x92, 0xe4, 0x3d, 0x27, 0x59, 0x0c, 0xf4, 0xba, 0xa1, 0x54, 0xd9, 0x86, 0xf4, 0xa6, 0x4c, + 0x31, 0xd1, 0xae, 0x8c, 0x78, 0x70, 0x0c, 0x0d, 0x02, 0x49, 0xb8, 0x7c, 0x52, 0xd3, 0x8c, 0xb2, + 0x10, 0xc7, 0xd9, 0xa3, 0xcf, 0x1a, 0x52, 0x35, 0x2a, 0x89, 0x4e, 0x1c, 0x97, 0x44, 0x28, 0xd4, + 0xb4, 0x4a, 0xa0, 0x18, 0x73, 0xf4, 0x61, 0x58, 0xb4, 0xb6, 0x5c, 0x2f, 0x48, 0x5c, 0x7c, 0x0b, + 0xd3, 0x6c, 0x19, 0x9d, 0xdd, 0xef, 0x16, 0x17, 0x4b, 0x7d, 0xb1, 0xf0, 0x01, 0x14, 0xcc, 0x3f, + 0xce, 0xc1, 0x14, 0x37, 0xf2, 0x85, 0xea, 0xfa, 0xaa, 0x01, 0xf7, 0xd7, 0x3a, 0x9e, 0x47, 0x9c, + 0xa0, 0x1a, 0x90, 0x76, 0xaf, 0xe2, 0x32, 0x8e, 0x55, 0x71, 0x3d, 0xb0, 0xdf, 0x2d, 0xde, 0xbf, + 0x72, 0x00, 0x7f, 0x7c, 0xa0, 0x74, 0xe8, 0x6f, 0x0c, 0x30, 0x05, 0x42, 0xd9, 0xaa, 0xdd, 0x6c, + 0x78, 0x6e, 0xc7, 0xa9, 0xf7, 0x36, 0x22, 0x73, 0xac, 0x8d, 0x78, 0x68, 0xbf, 0x5b, 0x34, 0x57, + 0x0e, 0x95, 0x02, 0x0f, 0x20, 0x29, 0x7a, 0x16, 0xe6, 0x04, 0xd6, 0xb9, 0xdb, 0x6d, 0xe2, 0xd9, + 0xd4, 0x9c, 0x16, 0xf7, 0xe9, 0x61, 0x88, 0x42, 0x1c, 0x01, 0xf7, 0xd6, 0x41, 0x3e, 0x4c, 0xdc, + 0x22, 0x76, 0x63, 0x27, 0x90, 0xe6, 0xd3, 0x88, 0x71, 0x09, 0xe2, 0xc0, 0x7f, 0x9d, 0xd3, 0x2c, + 0x4f, 0xee, 0x77, 0x8b, 0x13, 0xe2, 0x0f, 0x96, 0x9c, 0xd0, 0x25, 0x98, 0xe6, 0x47, 0xb0, 0x8a, + 0xed, 0x34, 0x2a, 0xae, 0xc3, 0x6f, 0xf3, 0x0b, 0xe5, 0x87, 0xa4, 0xc2, 0xaf, 0x46, 0xa0, 0x77, + 0xba, 0xc5, 0x29, 0xf9, 0x7b, 0x73, 0xaf, 0x4d, 0x70, 0xac, 0xb6, 0xf9, 0xcd, 0x71, 0x00, 0x39, + 0x5d, 0x49, 0x1b, 0xfd, 0x3f, 0x28, 0xf8, 0x24, 0xe0, 0x5c, 0x85, 0xf3, 0x9c, 0xdf, 0x49, 0xc8, + 0x42, 0x1c, 0xc2, 0xd1, 0x4d, 0xc8, 0xb5, 0xad, 0x8e, 0x4f, 0xc4, 0xe0, 0x5f, 0x4c, 0x65, 0xf0, + 0x2b, 0x94, 0x22, 0x3f, 0x73, 0xb1, 0x9f, 0x98, 0xf3, 0x40, 0x9f, 0x32, 0x00, 0x48, 0x74, 0xc0, + 0x46, 0xf6, 0x7d, 0x08, 0x96, 0xe1, 0x98, 0xd2, 0x3e, 0x28, 0x4f, 0xef, 0x77, 0x8b, 0xa0, 0x0d, + 0xbd, 0xc6, 0x16, 0xdd, 0x82, 0xbc, 0x25, 0xf7, 0xfc, 0xb1, 0xe3, 0xd8, 0xf3, 0xd9, 0x51, 0x48, + 0x4d, 0x5a, 0xc5, 0x0c, 0x7d, 0xda, 0x80, 0x69, 0x9f, 0x04, 0x62, 0xa8, 0xe8, 0xce, 0x23, 0x0c, + 0xde, 0x11, 0x27, 0x5d, 0x35, 0x42, 0x93, 0xef, 0xa0, 0xd1, 0x32, 0x1c, 0xe3, 0x2b, 0x45, 0xb9, + 0x40, 0xac, 0x3a, 0xf1, 0xd8, 0x49, 0x5b, 0x58, 0x52, 0xa3, 0x8b, 0xa2, 0xd1, 0x54, 0xa2, 0x68, + 0x65, 0x38, 0xc6, 0x57, 0x8a, 0xb2, 0x61, 0x7b, 0x9e, 0x2b, 0x44, 0xc9, 0xa7, 0x24, 0x8a, 0x46, + 0x53, 0x89, 0xa2, 0x95, 0xe1, 0x18, 0x5f, 0xf3, 0x6f, 0xa7, 0x60, 0x5a, 0x2e, 0xa4, 0xd0, 0xb2, + 0xe7, 0x8e, 0x9d, 0x3e, 0x96, 0xfd, 0x8a, 0x0e, 0xc4, 0x51, 0x5c, 0x5a, 0x99, 0x2f, 0xd5, 0xa8, + 0x61, 0xaf, 0x2a, 0x57, 0x75, 0x20, 0x8e, 0xe2, 0xa2, 0x16, 0xe4, 0xfc, 0x80, 0xb4, 0xe5, 0x3d, + 0xe8, 0x88, 0xd7, 0x74, 0xe1, 0xfe, 0x10, 0xde, 0x74, 0xd0, 0x7f, 0x3e, 0xe6, 0x5c, 0x98, 0x6f, + 0x32, 0x88, 0xb8, 0x2b, 0xc5, 0xe2, 0x48, 0x67, 0x7d, 0x46, 0x3d, 0xa1, 0x7c, 0x34, 0xa2, 0x65, + 0x38, 0xc6, 0x3e, 0xc1, 0xd8, 0xcf, 0x1d, 0xa3, 0xb1, 0xff, 0x3c, 0xe4, 0x5b, 0xd6, 0xed, 0x6a, + 0xc7, 0x6b, 0x1c, 0xfd, 0x50, 0x21, 0x42, 0x94, 0x38, 0x15, 0xac, 0xe8, 0xa1, 0x57, 0x0c, 0x6d, + 0xcb, 0x99, 0x60, 0xc4, 0xaf, 0xa7, 0xbb, 0xe5, 0x28, 0x5d, 0xd9, 0x77, 0xf3, 0xe9, 0x31, 0xbd, + 0xf3, 0x77, 0xdd, 0xf4, 0xa6, 0x66, 0x24, 0x5f, 0x20, 0xca, 0x8c, 0x2c, 0x1c, 0xab, 0x19, 0xb9, + 0x12, 0x61, 0x86, 0x63, 0xcc, 0x99, 0x3c, 0x7c, 0xcd, 0x29, 0x79, 0xe0, 0x58, 0xe5, 0xa9, 0x46, + 0x98, 0xe1, 0x18, 0xf3, 0xfe, 0xe7, 0xcd, 0xc9, 0xe3, 0x39, 0x6f, 0x4e, 0xa5, 0x70, 0xde, 0x3c, + 0xd8, 0x14, 0x3f, 0x31, 0xaa, 0x29, 0x8e, 0x2e, 0x02, 0xaa, 0xef, 0x39, 0x56, 0xcb, 0xae, 0x89, + 0xcd, 0x92, 0xa9, 0xcd, 0x69, 0xe6, 0x8f, 0x58, 0x14, 0x1b, 0x19, 0x5a, 0xed, 0xc1, 0xc0, 0x09, + 0xb5, 0x50, 0x00, 0xf9, 0xb6, 0xb4, 0xb8, 0x66, 0xd2, 0x98, 0xfd, 0xd2, 0x02, 0xe3, 0x57, 0xe5, + 0x74, 0xe1, 0xc9, 0x12, 0xac, 0x38, 0x99, 0xff, 0x69, 0xc0, 0xec, 0x4a, 0xd3, 0xed, 0xd4, 0xaf, + 0x5b, 0x41, 0x6d, 0x87, 0xdf, 0xeb, 0xa2, 0x67, 0x20, 0x6f, 0x3b, 0x01, 0xf1, 0x76, 0xad, 0xa6, + 0xd0, 0x28, 0xa6, 0xbc, 0xfa, 0x5e, 0x13, 0xe5, 0x77, 0xba, 0xc5, 0xe9, 0xd5, 0x8e, 0xc7, 0x02, + 0x26, 0xf9, 0xfe, 0x82, 0x55, 0x1d, 0xf4, 0x25, 0x03, 0xe6, 0xf8, 0xcd, 0xf0, 0xaa, 0x15, 0x58, + 0x57, 0x3a, 0xc4, 0xb3, 0x89, 0xbc, 0x1b, 0x1e, 0x71, 0x6b, 0x89, 0xcb, 0x2a, 0x19, 0xec, 0x85, + 0xa6, 0xf5, 0x46, 0x9c, 0x33, 0xee, 0x15, 0xc6, 0xfc, 0x7c, 0x16, 0xee, 0xed, 0x4b, 0x0b, 0x2d, + 0x42, 0xc6, 0xae, 0x8b, 0xa6, 0x83, 0xa0, 0x9b, 0x59, 0xab, 0xe3, 0x8c, 0x5d, 0x47, 0x4b, 0xcc, + 0x4a, 0xf4, 0x88, 0xef, 0xcb, 0x6b, 0xc2, 0x82, 0x32, 0xe8, 0x44, 0x29, 0xd6, 0x30, 0x50, 0x11, + 0x72, 0x4d, 0x6b, 0x8b, 0x34, 0xc5, 0x09, 0x80, 0xd9, 0x9d, 0xeb, 0xb4, 0x00, 0xf3, 0x72, 0xf4, + 0xcb, 0x06, 0x00, 0x17, 0x90, 0x9e, 0x1f, 0x84, 0x5e, 0xc3, 0xe9, 0x76, 0x13, 0xa5, 0xcc, 0xa5, + 0x0c, 0xff, 0x63, 0x8d, 0x2b, 0xda, 0x84, 0x71, 0x6a, 0x82, 0xba, 0xf5, 0x23, 0xab, 0x31, 0x76, + 0x2d, 0x52, 0x61, 0x34, 0xb0, 0xa0, 0x45, 0xfb, 0xca, 0x23, 0x41, 0xc7, 0x73, 0x68, 0xd7, 0x32, + 0xc5, 0x95, 0xe7, 0x52, 0x60, 0x55, 0x8a, 0x35, 0x0c, 0xf3, 0xcf, 0x32, 0x30, 0x9f, 0x24, 0x3a, + 0xd5, 0x0f, 0xe3, 0x5c, 0x5a, 0x71, 0x98, 0x7d, 0x7f, 0xfa, 0xfd, 0x23, 0x82, 0x1c, 0x54, 0x28, + 0x80, 0x08, 0xc3, 0x12, 0x7c, 0xd1, 0xfb, 0x55, 0x0f, 0x65, 0x8e, 0xd8, 0x43, 0x8a, 0x72, 0xac, + 0x97, 0x1e, 0x80, 0x31, 0x9f, 0x8e, 0x7c, 0x36, 0x7a, 0xe5, 0xc0, 0xc6, 0x88, 0x41, 0x28, 0x46, + 0xc7, 0xb1, 0x03, 0x11, 0xc5, 0xac, 0x30, 0xae, 0x3a, 0x76, 0x80, 0x19, 0xc4, 0xfc, 0x62, 0x06, + 0x16, 0xfb, 0x37, 0x0a, 0x7d, 0xd1, 0x00, 0xa8, 0xd3, 0x03, 0x06, 0x9d, 0x92, 0x32, 0x28, 0xc4, + 0x3a, 0xae, 0x3e, 0x5c, 0x95, 0x9c, 0xc2, 0x08, 0x21, 0x55, 0xe4, 0x63, 0x4d, 0x10, 0xf4, 0xa8, + 0x9c, 0xfa, 0x97, 0xac, 0x96, 0x34, 0x40, 0x55, 0x9d, 0x0d, 0x05, 0xc1, 0x1a, 0x16, 0x3d, 0x41, + 0x3a, 0x56, 0x8b, 0xf8, 0x6d, 0x4b, 0x85, 0xa9, 0xb3, 0x13, 0xe4, 0x25, 0x59, 0x88, 0x43, 0xb8, + 0xd9, 0x84, 0x07, 0x07, 0x90, 0x33, 0xa5, 0x90, 0x61, 0xf3, 0x3f, 0x0c, 0x38, 0xbd, 0xd2, 0xec, + 0xf8, 0x01, 0xf1, 0xfe, 0xd7, 0x04, 0x5c, 0xfd, 0x97, 0x01, 0xf7, 0xf5, 0x69, 0xf3, 0x5d, 0x88, + 0xbb, 0x7a, 0x31, 0x1a, 0x77, 0x75, 0x75, 0xd4, 0x29, 0x9d, 0xd8, 0x8e, 0x3e, 0xe1, 0x57, 0x01, + 0x9c, 0xa0, 0xbb, 0x56, 0xdd, 0x6d, 0xa4, 0xa4, 0x37, 0x1f, 0x84, 0xdc, 0xc7, 0xa8, 0xfe, 0x89, + 0xcf, 0x31, 0xa6, 0x94, 0x30, 0x87, 0x99, 0x4f, 0x83, 0x08, 0x52, 0x8a, 0x2d, 0x1e, 0x63, 0x90, + 0xc5, 0x63, 0xfe, 0x7d, 0x06, 0x34, 0xcf, 0xc3, 0x5d, 0x98, 0x94, 0x4e, 0x64, 0x52, 0x8e, 0x78, + 0x6a, 0xd6, 0xfc, 0x28, 0xfd, 0x5e, 0x23, 0xec, 0xc6, 0x5e, 0x23, 0x5c, 0x4a, 0x8d, 0xe3, 0xc1, + 0x8f, 0x11, 0xbe, 0x67, 0xc0, 0x7d, 0x21, 0x72, 0xaf, 0x53, 0xf0, 0xf0, 0x1d, 0xe6, 0x09, 0x98, + 0xb4, 0xc2, 0x6a, 0x62, 0x0e, 0xa8, 0x07, 0x38, 0x1a, 0x45, 0xac, 0xe3, 0x85, 0xb1, 0xcf, 0xd9, + 0x23, 0xc6, 0x3e, 0x8f, 0x1d, 0x1c, 0xfb, 0x6c, 0xfe, 0x24, 0x03, 0x67, 0x7a, 0x5b, 0x26, 0xd7, + 0xc6, 0x60, 0x77, 0xe6, 0x4f, 0xc2, 0x54, 0x20, 0x2a, 0x68, 0x3b, 0xbd, 0x7a, 0x3e, 0xb6, 0xa9, + 0xc1, 0x70, 0x04, 0x93, 0xd6, 0xac, 0xf1, 0x55, 0x59, 0xad, 0xb9, 0x6d, 0x19, 0x39, 0xaf, 0x6a, + 0xae, 0x68, 0x30, 0x1c, 0xc1, 0x54, 0x31, 0x89, 0x63, 0xc7, 0x1e, 0x93, 0x58, 0x85, 0x53, 0x32, + 0x0a, 0xeb, 0xbc, 0xeb, 0xad, 0xb8, 0xad, 0x76, 0x93, 0x88, 0xd8, 0x79, 0x2a, 0xec, 0x19, 0x51, + 0xe5, 0x14, 0x4e, 0x42, 0xc2, 0xc9, 0x75, 0xcd, 0xef, 0x65, 0xe1, 0x64, 0xd8, 0xed, 0x2b, 0xae, + 0x53, 0xb7, 0x59, 0x2c, 0xdb, 0x53, 0x30, 0x16, 0xec, 0xb5, 0x65, 0x67, 0xff, 0x1f, 0x29, 0xce, + 0xe6, 0x5e, 0x9b, 0x8e, 0xf6, 0xe9, 0x84, 0x2a, 0xcc, 0x2d, 0xcb, 0x2a, 0xa1, 0x75, 0xb5, 0x3a, + 0xf8, 0x08, 0x3c, 0x1e, 0x9d, 0xcd, 0x77, 0xba, 0xc5, 0x84, 0xd7, 0x93, 0x4b, 0x8a, 0x52, 0x74, + 0xce, 0xa3, 0x1b, 0x30, 0xdd, 0xb4, 0xfc, 0xe0, 0x6a, 0xbb, 0x6e, 0x05, 0x64, 0xd3, 0x6e, 0x11, + 0xb1, 0xe6, 0x86, 0x09, 0x48, 0x57, 0xf7, 0xc8, 0xeb, 0x11, 0x4a, 0x38, 0x46, 0x19, 0xed, 0x02, + 0xa2, 0x25, 0x9b, 0x9e, 0xe5, 0xf8, 0xbc, 0x55, 0x94, 0xdf, 0xf0, 0x01, 0xf0, 0xea, 0x58, 0xb6, + 0xde, 0x43, 0x0d, 0x27, 0x70, 0x40, 0x0f, 0xc1, 0xb8, 0x47, 0x2c, 0x5f, 0x0c, 0x66, 0x21, 0x5c, + 0xff, 0x98, 0x95, 0x62, 0x01, 0xd5, 0x17, 0xd4, 0xf8, 0x21, 0x0b, 0xea, 0x87, 0x06, 0x4c, 0x87, + 0xc3, 0x74, 0x17, 0x94, 0x64, 0x2b, 0xaa, 0x24, 0x2f, 0xa4, 0xb5, 0x25, 0xf6, 0xd1, 0x8b, 0x7f, + 0x35, 0xae, 0xb7, 0x8f, 0x05, 0x24, 0x7f, 0x1c, 0x0a, 0x72, 0x55, 0x4b, 0xeb, 0x73, 0xc4, 0xd3, + 0x6d, 0xc4, 0x2e, 0xd1, 0x1e, 0xd2, 0x08, 0x26, 0x38, 0xe4, 0x47, 0xd5, 0x72, 0x5d, 0xa8, 0x5c, + 0x31, 0xed, 0x95, 0x5a, 0x96, 0xaa, 0x38, 0x49, 0x2d, 0xcb, 0x3a, 0xe8, 0x2a, 0x9c, 0x6e, 0x7b, + 0x2e, 0x7b, 0x5c, 0xb9, 0x4a, 0xac, 0x7a, 0xd3, 0x76, 0x88, 0x74, 0x21, 0xf0, 0x30, 0x86, 0xfb, + 0xf6, 0xbb, 0xc5, 0xd3, 0x95, 0x64, 0x14, 0xdc, 0xaf, 0x6e, 0xf4, 0x41, 0xd0, 0xd8, 0x00, 0x0f, + 0x82, 0x7e, 0x55, 0x39, 0xea, 0x88, 0x2f, 0x9e, 0xe5, 0x7c, 0x30, 0xad, 0xa1, 0x4c, 0xd8, 0xd6, + 0xc3, 0x29, 0x55, 0x12, 0x4c, 0xb1, 0x62, 0xdf, 0xdf, 0x1b, 0x34, 0x7e, 0x44, 0x6f, 0x50, 0x18, + 0xd7, 0x3d, 0xf1, 0xb3, 0x8c, 0xeb, 0xce, 0xbf, 0xa5, 0xe2, 0xba, 0x5f, 0xcd, 0xc1, 0x6c, 0xdc, + 0x02, 0x39, 0xfe, 0xc7, 0x4e, 0xbf, 0x61, 0xc0, 0xac, 0x5c, 0x3d, 0x9c, 0x27, 0x91, 0x7e, 0xfe, + 0xf5, 0x94, 0x16, 0x2d, 0xb7, 0xa5, 0xd4, 0x73, 0xdc, 0xcd, 0x18, 0x37, 0xdc, 0xc3, 0x1f, 0xbd, + 0x00, 0x93, 0xca, 0x1d, 0x7e, 0xa4, 0x97, 0x4f, 0x33, 0xcc, 0x8a, 0x0a, 0x49, 0x60, 0x9d, 0x1e, + 0x7a, 0xd5, 0x00, 0xa8, 0x49, 0x35, 0x27, 0x57, 0xd7, 0x95, 0xb4, 0x56, 0x97, 0x52, 0xa0, 0xa1, + 0xb1, 0xac, 0x8a, 0x7c, 0xac, 0x31, 0x46, 0x9f, 0x67, 0x8e, 0x70, 0x65, 0xdd, 0xd1, 0xf5, 0x94, + 0x1d, 0x3d, 0x14, 0xf7, 0x00, 0xc3, 0x34, 0x34, 0xa5, 0x34, 0x90, 0x8f, 0x23, 0x42, 0x98, 0x4f, + 0x81, 0x0a, 0x9e, 0xa4, 0xdb, 0x16, 0x0b, 0x9f, 0xac, 0x58, 0xc1, 0x8e, 0x98, 0x82, 0x6a, 0xdb, + 0x3a, 0x2f, 0x01, 0x38, 0xc4, 0x31, 0x3f, 0x0a, 0xd3, 0xcf, 0x7a, 0x56, 0x7b, 0xc7, 0x66, 0x0e, + 0x67, 0x7a, 0x4e, 0x7a, 0x27, 0x4c, 0x58, 0xf5, 0x7a, 0xd2, 0x63, 0xf6, 0x12, 0x2f, 0xc6, 0x12, + 0x3e, 0xd8, 0x91, 0xe8, 0x9b, 0x06, 0xa0, 0xf0, 0xd2, 0xce, 0x76, 0x1a, 0x1b, 0xf4, 0xb4, 0x4f, + 0xcf, 0x47, 0x3b, 0xac, 0x34, 0xe9, 0x7c, 0x74, 0x41, 0x41, 0xb0, 0x86, 0x85, 0x5e, 0x82, 0x49, + 0xfe, 0xef, 0x9a, 0x3a, 0xec, 0x8f, 0xfc, 0x14, 0x96, 0x2b, 0x14, 0x26, 0x13, 0x9f, 0x85, 0x17, + 0x42, 0x0e, 0x58, 0x67, 0x47, 0xbb, 0x6a, 0xcd, 0xd9, 0x6e, 0x76, 0x6e, 0xd7, 0xb7, 0xc2, 0xae, + 0x6a, 0x7b, 0xee, 0xb6, 0xdd, 0x24, 0xf1, 0xae, 0xaa, 0xf0, 0x62, 0x2c, 0xe1, 0x83, 0x75, 0xd5, + 0xd7, 0x0d, 0x98, 0x5f, 0xf3, 0x03, 0xdb, 0x5d, 0x25, 0x7e, 0x40, 0xd5, 0x0a, 0xdd, 0x7c, 0x3a, + 0xcd, 0x41, 0xe2, 0xa0, 0x57, 0x61, 0x56, 0x5c, 0x20, 0x76, 0xb6, 0x7c, 0x12, 0x68, 0x76, 0xbc, + 0x5a, 0xc7, 0x2b, 0x31, 0x38, 0xee, 0xa9, 0x41, 0xa9, 0x88, 0x9b, 0xc4, 0x90, 0x4a, 0x36, 0x4a, + 0xa5, 0x1a, 0x83, 0xe3, 0x9e, 0x1a, 0xe6, 0x77, 0xb2, 0x70, 0x92, 0x35, 0x23, 0xf6, 0x86, 0xe1, + 0xb3, 0xfd, 0xde, 0x30, 0x8c, 0xb8, 0x94, 0x19, 0xaf, 0x23, 0xbc, 0x60, 0xf8, 0x75, 0x03, 0x66, + 0xea, 0xd1, 0x9e, 0x4e, 0xc7, 0x3d, 0x93, 0x34, 0x86, 0x3c, 0x5e, 0x2a, 0x56, 0x88, 0xe3, 0xfc, + 0xd1, 0x17, 0x0c, 0x98, 0x89, 0x8a, 0x29, 0x77, 0xf7, 0x63, 0xe8, 0x24, 0x15, 0xe0, 0x1c, 0x2d, + 0xf7, 0x71, 0x5c, 0x04, 0xf3, 0xdb, 0x19, 0x31, 0xa4, 0xc7, 0x11, 0xa0, 0x8f, 0x6e, 0x41, 0x21, + 0x68, 0xfa, 0xbc, 0x50, 0xb4, 0x76, 0xc4, 0x13, 0xe1, 0xe6, 0x7a, 0x95, 0xdf, 0xdd, 0x87, 0x46, + 0x9b, 0x28, 0xa1, 0xc6, 0xa7, 0xe4, 0xc5, 0x18, 0xd7, 0xda, 0x82, 0x71, 0x2a, 0x47, 0xd1, 0xcd, + 0x95, 0x4a, 0x9c, 0xb1, 0x28, 0xa1, 0x8c, 0x25, 0x2f, 0xf3, 0xcb, 0x06, 0x14, 0x2e, 0xba, 0x72, + 0x1f, 0xf9, 0x70, 0x0a, 0x8e, 0x1e, 0x65, 0x0f, 0xaa, 0x3b, 0xc2, 0xf0, 0x88, 0xf1, 0x4c, 0xc4, + 0xcd, 0x73, 0xbf, 0x46, 0x7b, 0x89, 0x25, 0xea, 0xa1, 0xa4, 0x2e, 0xba, 0x5b, 0x7d, 0xbd, 0x88, + 0xbf, 0x97, 0x83, 0x13, 0xcf, 0x59, 0x7b, 0xc4, 0x09, 0xac, 0xe1, 0x95, 0xc4, 0x13, 0x30, 0x69, + 0xb5, 0x59, 0xa0, 0xb0, 0x66, 0xe3, 0x87, 0x9e, 0x93, 0x10, 0x84, 0x75, 0xbc, 0x70, 0x43, 0xe3, + 0x79, 0x43, 0x92, 0xb6, 0xa2, 0x95, 0x18, 0x1c, 0xf7, 0xd4, 0x40, 0x17, 0x01, 0x89, 0x57, 0x90, + 0xa5, 0x5a, 0xcd, 0xed, 0x38, 0x7c, 0x4b, 0xe3, 0x4e, 0x15, 0x75, 0xd8, 0xdc, 0xe8, 0xc1, 0xc0, + 0x09, 0xb5, 0xd0, 0x87, 0x60, 0xa1, 0xc6, 0x28, 0x8b, 0xa3, 0x87, 0x4e, 0x91, 0x1f, 0x3f, 0x55, + 0x90, 0xfe, 0x4a, 0x1f, 0x3c, 0xdc, 0x97, 0x02, 0x95, 0xd4, 0x0f, 0x5c, 0xcf, 0x6a, 0x10, 0x9d, + 0xee, 0x78, 0x54, 0xd2, 0x6a, 0x0f, 0x06, 0x4e, 0xa8, 0x85, 0x3e, 0x09, 0x85, 0x60, 0xc7, 0x23, + 0xfe, 0x8e, 0xdb, 0xac, 0x8b, 0xa0, 0x81, 0x11, 0x3d, 0x6d, 0x62, 0xf4, 0x37, 0x25, 0x55, 0x6d, + 0x7a, 0xcb, 0x22, 0x1c, 0xf2, 0x44, 0x1e, 0x8c, 0xfb, 0x35, 0xb7, 0x4d, 0x7c, 0x61, 0xb2, 0x5f, + 0x4c, 0x85, 0x3b, 0xf3, 0x1c, 0x69, 0x3e, 0x3e, 0xc6, 0x01, 0x0b, 0x4e, 0xe6, 0x37, 0x32, 0x30, + 0xa5, 0x23, 0x0e, 0xb0, 0x37, 0x7d, 0xca, 0x80, 0xa9, 0x9a, 0xeb, 0x04, 0x9e, 0xdb, 0xe4, 0xfe, + 0xab, 0x74, 0x2c, 0x0a, 0x4a, 0x6a, 0x95, 0x04, 0x96, 0xdd, 0xd4, 0x5c, 0x61, 0x1a, 0x1b, 0x1c, + 0x61, 0x8a, 0x3e, 0x63, 0xc0, 0x4c, 0x18, 0x63, 0x16, 0x3a, 0xd2, 0x52, 0x15, 0x44, 0x6d, 0xf5, + 0xe7, 0xa2, 0x9c, 0x70, 0x9c, 0xb5, 0xb9, 0x05, 0xb3, 0xf1, 0xd1, 0xa6, 0x5d, 0xd9, 0xb6, 0xc4, + 0x5a, 0xcf, 0x86, 0x5d, 0x59, 0xb1, 0x7c, 0x1f, 0x33, 0x08, 0x7a, 0x04, 0xf2, 0x2d, 0xcb, 0x6b, + 0xd8, 0x8e, 0xd5, 0x64, 0xbd, 0x98, 0xd5, 0x36, 0x24, 0x51, 0x8e, 0x15, 0x86, 0xf9, 0x6e, 0x98, + 0xda, 0xb0, 0x9c, 0x06, 0xa9, 0x8b, 0x7d, 0xf8, 0xf0, 0x27, 0x62, 0x3f, 0x1a, 0x83, 0x49, 0xed, + 0x6c, 0x76, 0xfc, 0xe7, 0xac, 0x48, 0x2a, 0x87, 0x6c, 0x8a, 0xa9, 0x1c, 0x9e, 0x07, 0xd8, 0xb6, + 0x1d, 0xdb, 0xdf, 0x39, 0x62, 0x92, 0x08, 0x76, 0x45, 0x7b, 0x5e, 0x51, 0xc0, 0x1a, 0xb5, 0xf0, + 0x1e, 0x2c, 0x77, 0x40, 0xea, 0x9c, 0x57, 0x0d, 0x4d, 0xdd, 0x8c, 0xa7, 0x71, 0xef, 0xaf, 0x0d, + 0xcc, 0x92, 0x54, 0x3f, 0xe7, 0x9c, 0xc0, 0xdb, 0x3b, 0x50, 0x2b, 0x6d, 0x42, 0xde, 0x23, 0x7e, + 0xa7, 0x45, 0x4f, 0x8c, 0x13, 0x43, 0x77, 0x03, 0x8b, 0x99, 0xc0, 0xa2, 0x3e, 0x56, 0x94, 0x16, + 0x9f, 0x82, 0x13, 0x11, 0x11, 0xd0, 0x2c, 0x64, 0x6f, 0x92, 0x3d, 0x3e, 0x4f, 0x30, 0xfd, 0x89, + 0xe6, 0x23, 0xb7, 0x85, 0xa2, 0x5b, 0xde, 0x97, 0x79, 0xd2, 0x30, 0x5d, 0x48, 0x74, 0x00, 0x1c, + 0xe5, 0x32, 0x87, 0x8e, 0x45, 0x53, 0xcb, 0x12, 0xa1, 0xc6, 0x82, 0x47, 0xc6, 0x70, 0x98, 0xf9, + 0x93, 0x71, 0x10, 0x57, 0xd9, 0x03, 0x6c, 0x57, 0xfa, 0x0d, 0x56, 0xe6, 0x08, 0x37, 0x58, 0x17, + 0x61, 0xca, 0x76, 0xec, 0xc0, 0xb6, 0x9a, 0xcc, 0xb9, 0x23, 0xd4, 0xa9, 0x0c, 0x1d, 0x9e, 0x5a, + 0xd3, 0x60, 0x09, 0x74, 0x22, 0x75, 0xd1, 0x15, 0xc8, 0x31, 0x7d, 0x23, 0x26, 0xf0, 0xf0, 0xf7, + 0xed, 0x2c, 0xd4, 0x82, 0xbf, 0x27, 0xe2, 0x94, 0xd8, 0xe1, 0x83, 0xa7, 0xc9, 0x50, 0xc7, 0x6f, + 0x31, 0x8f, 0xc3, 0xc3, 0x47, 0x0c, 0x8e, 0x7b, 0x6a, 0x50, 0x2a, 0xdb, 0x96, 0xdd, 0xec, 0x78, + 0x24, 0xa4, 0x32, 0x1e, 0xa5, 0x72, 0x3e, 0x06, 0xc7, 0x3d, 0x35, 0xd0, 0x36, 0x4c, 0x89, 0x32, + 0x1e, 0xef, 0x34, 0x71, 0xc4, 0x56, 0xb2, 0xb8, 0xb6, 0xf3, 0x1a, 0x25, 0x1c, 0xa1, 0x8b, 0x3a, + 0x30, 0x67, 0x3b, 0x35, 0xd7, 0xa9, 0x35, 0x3b, 0xbe, 0xbd, 0x4b, 0xc2, 0xc7, 0x3c, 0x47, 0x61, + 0x76, 0x6a, 0xbf, 0x5b, 0x9c, 0x5b, 0x8b, 0x93, 0xc3, 0xbd, 0x1c, 0xd0, 0x2b, 0x06, 0x9c, 0xaa, + 0xb9, 0x8e, 0xcf, 0xde, 0x9d, 0xef, 0x92, 0x73, 0x9e, 0xe7, 0x7a, 0x9c, 0x77, 0xe1, 0x88, 0xbc, + 0x99, 0x4f, 0x71, 0x25, 0x89, 0x24, 0x4e, 0xe6, 0x84, 0x5e, 0x84, 0x7c, 0xdb, 0x73, 0x77, 0xed, + 0x3a, 0xf1, 0x44, 0xec, 0xdc, 0x7a, 0x1a, 0x79, 0x30, 0x2a, 0x82, 0x66, 0xb8, 0xf5, 0xc8, 0x12, + 0xac, 0xf8, 0x99, 0x6f, 0x14, 0x60, 0x3a, 0x8a, 0x8e, 0x3e, 0x01, 0xd0, 0xf6, 0xdc, 0x16, 0x09, + 0x76, 0x88, 0x7a, 0x94, 0x71, 0x69, 0xd4, 0x74, 0x0b, 0x92, 0x9e, 0x8c, 0x5e, 0xa1, 0xdb, 0x45, + 0x58, 0x8a, 0x35, 0x8e, 0xc8, 0x83, 0x89, 0x9b, 0x5c, 0xed, 0x0a, 0x2b, 0xe4, 0xb9, 0x54, 0x6c, + 0x26, 0xc1, 0x99, 0xbd, 0x26, 0x10, 0x45, 0x58, 0x32, 0x42, 0x5b, 0x90, 0xbd, 0x45, 0xb6, 0xd2, + 0x79, 0xc2, 0x7c, 0x9d, 0x88, 0xd3, 0x4c, 0x79, 0x62, 0xbf, 0x5b, 0xcc, 0x5e, 0x27, 0x5b, 0x98, + 0x12, 0xa7, 0xed, 0xaa, 0xf3, 0x7b, 0x78, 0xb1, 0x55, 0x8c, 0xd8, 0xae, 0xc8, 0xa5, 0x3e, 0x6f, + 0x97, 0x28, 0xc2, 0x92, 0x11, 0x7a, 0x11, 0x0a, 0xb7, 0xac, 0x5d, 0xb2, 0xed, 0xb9, 0x4e, 0x20, + 0x42, 0xa6, 0x46, 0x8c, 0xd3, 0xbf, 0x2e, 0xc9, 0x09, 0xbe, 0x4c, 0xbd, 0xab, 0x42, 0x1c, 0xb2, + 0x43, 0xbb, 0x90, 0x77, 0xc8, 0x2d, 0x4c, 0x9a, 0x76, 0x2d, 0x9d, 0xb8, 0xf8, 0x4b, 0x82, 0x9a, + 0xe0, 0xcc, 0xf4, 0x9e, 0x2c, 0xc3, 0x8a, 0x17, 0x1d, 0xcb, 0x1b, 0xee, 0x96, 0xd8, 0xa8, 0x46, + 0x1c, 0x4b, 0x75, 0x32, 0xe5, 0x63, 0x79, 0xd1, 0xdd, 0xc2, 0x94, 0x38, 0x5d, 0x23, 0x35, 0x15, + 0xaf, 0x23, 0xb6, 0xa9, 0x4b, 0xe9, 0xc6, 0x29, 0xf1, 0x35, 0x12, 0x96, 0x62, 0x8d, 0x23, 0xed, + 0xdb, 0x86, 0x70, 0x56, 0x8a, 0x8d, 0x6a, 0xc4, 0xbe, 0x8d, 0xba, 0x3e, 0x79, 0xdf, 0xca, 0x32, + 0xac, 0x78, 0x51, 0xbe, 0xb6, 0xf0, 0xfc, 0xa5, 0xb3, 0x55, 0x45, 0xfd, 0x88, 0x9c, 0xaf, 0x2c, + 0xc3, 0x8a, 0x97, 0xf9, 0xe5, 0x71, 0x98, 0xd2, 0xf3, 0x8d, 0x0d, 0x60, 0x23, 0x28, 0xbb, 0x38, + 0x33, 0x8c, 0x5d, 0x4c, 0x0f, 0x42, 0xda, 0x1d, 0x87, 0x74, 0xc2, 0xac, 0xa5, 0x66, 0x16, 0x86, + 0x07, 0x21, 0xad, 0xd0, 0xc7, 0x11, 0xa6, 0x43, 0x84, 0x3d, 0x50, 0xe3, 0x8a, 0x9b, 0x1f, 0xb9, + 0xa8, 0x71, 0x15, 0x31, 0x28, 0x1e, 0x05, 0x08, 0xf3, 0x6e, 0x89, 0xbb, 0x2f, 0x65, 0xb5, 0x69, + 0xf9, 0xc0, 0x34, 0x2c, 0xf4, 0x10, 0x8c, 0x53, 0x05, 0x4d, 0xea, 0xe2, 0xa5, 0xae, 0x3a, 0x6d, + 0x9e, 0x67, 0xa5, 0x58, 0x40, 0xd1, 0x93, 0xd4, 0x96, 0x0a, 0xd5, 0xaa, 0x78, 0x80, 0x3b, 0x1f, + 0xda, 0x52, 0x21, 0x0c, 0x47, 0x30, 0xa9, 0xe8, 0x84, 0x6a, 0x41, 0x36, 0x83, 0x35, 0xd1, 0x99, + 0x6a, 0xc4, 0x1c, 0xc6, 0xbc, 0x1f, 0x31, 0xad, 0xc9, 0x66, 0x5e, 0x4e, 0xf3, 0x7e, 0xc4, 0xe0, + 0xb8, 0xa7, 0x06, 0x6d, 0x8c, 0xb8, 0xb6, 0x9b, 0xe4, 0xd1, 0x9d, 0x7d, 0x2e, 0xdc, 0x5e, 0xd3, + 0x4f, 0x04, 0x53, 0x6c, 0xe8, 0xdf, 0x9f, 0x5e, 0xee, 0xbc, 0xc1, 0x8f, 0x04, 0xa3, 0x19, 0xef, + 0x1f, 0x85, 0xe9, 0xe8, 0x5e, 0x99, 0xba, 0x7f, 0xfe, 0xaf, 0xb3, 0x70, 0xf2, 0x52, 0xc3, 0x76, + 0x6e, 0xc7, 0x1c, 0xdb, 0x49, 0x39, 0x6d, 0x8d, 0x61, 0x73, 0xda, 0x86, 0x4f, 0x7e, 0x44, 0xd2, + 0xe0, 0xe4, 0x27, 0x3f, 0x32, 0xa3, 0x70, 0x14, 0x17, 0xfd, 0xd0, 0x80, 0xfb, 0xad, 0x3a, 0xb7, + 0x5e, 0xad, 0xa6, 0x28, 0x0d, 0x99, 0xca, 0x15, 0xed, 0x8f, 0xa8, 0x8b, 0x7a, 0x1b, 0xbf, 0x54, + 0x3a, 0x80, 0x2b, 0x1f, 0xf1, 0x77, 0x88, 0x16, 0xdc, 0x7f, 0x10, 0x2a, 0x3e, 0x50, 0xfc, 0xc5, + 0xcb, 0xf0, 0xf6, 0x43, 0x19, 0x0d, 0x35, 0x5b, 0x3e, 0x65, 0x40, 0x81, 0xbb, 0x4f, 0x31, 0xd9, + 0xa6, 0x5b, 0x85, 0xd5, 0xb6, 0xaf, 0x11, 0xcf, 0x97, 0xc9, 0xb6, 0xb4, 0x03, 0x5e, 0xa9, 0xb2, + 0x26, 0x20, 0x58, 0xc3, 0xa2, 0x9b, 0xf1, 0x4d, 0xdb, 0xa9, 0x8b, 0x61, 0x52, 0x9b, 0xf1, 0x73, + 0xb6, 0x53, 0xc7, 0x0c, 0xa2, 0xb6, 0xeb, 0x6c, 0x5f, 0xb7, 0xc6, 0x1b, 0x06, 0x4c, 0xb3, 0x77, + 0x8e, 0xe1, 0xd1, 0xe3, 0x09, 0x15, 0xd3, 0xc2, 0xc5, 0x38, 0x13, 0x8d, 0x69, 0xb9, 0xd3, 0x2d, + 0x4e, 0xf2, 0x97, 0x91, 0xd1, 0x10, 0x97, 0x0f, 0x0a, 0x7f, 0x05, 0x8b, 0xbc, 0xc9, 0x0c, 0x7d, + 0x9c, 0x56, 0xfe, 0xbc, 0xaa, 0x24, 0x82, 0x43, 0x7a, 0xe6, 0x4b, 0x30, 0xa5, 0x3f, 0x58, 0x40, + 0x4f, 0xc0, 0x64, 0xdb, 0x76, 0x1a, 0xd1, 0x87, 0x6d, 0xca, 0xa7, 0x5b, 0x09, 0x41, 0x58, 0xc7, + 0x63, 0xd5, 0xdc, 0xb0, 0x5a, 0xcc, 0x15, 0x5c, 0x71, 0xf5, 0x6a, 0xe1, 0x1f, 0xf3, 0x4f, 0xb2, + 0x70, 0x32, 0xe1, 0x61, 0x0c, 0x7a, 0xd5, 0x80, 0x71, 0x16, 0xa5, 0x2f, 0xa3, 0x56, 0x5e, 0x48, + 0xfd, 0xf1, 0xcd, 0x12, 0x7b, 0x0c, 0x20, 0xe6, 0xb1, 0xda, 0x3e, 0x79, 0x21, 0x16, 0xcc, 0xd1, + 0x6f, 0x19, 0x30, 0x69, 0x69, 0x4b, 0x8d, 0x07, 0xf2, 0x6c, 0xa5, 0x2f, 0x4c, 0xcf, 0xca, 0xd2, + 0x02, 0x10, 0xc3, 0x85, 0xa4, 0xcb, 0xb2, 0xf8, 0x5e, 0x98, 0xd4, 0x9a, 0x30, 0xcc, 0x0a, 0x59, + 0x7c, 0x06, 0x66, 0x47, 0x5a, 0x61, 0x1f, 0x80, 0x61, 0x73, 0xc7, 0x51, 0x85, 0x75, 0x4b, 0x7f, + 0x7c, 0xac, 0x7a, 0x5c, 0xbc, 0x3e, 0x16, 0x50, 0x73, 0x0b, 0x66, 0xe3, 0x87, 0xab, 0xd4, 0xef, + 0xad, 0xdf, 0x0d, 0x43, 0x66, 0x7b, 0x33, 0xbf, 0x9d, 0x81, 0x09, 0xf1, 0xba, 0xee, 0x2e, 0xc4, + 0xee, 0xde, 0x8c, 0x5c, 0xea, 0xac, 0xa5, 0xf2, 0x28, 0xb0, 0x6f, 0xe0, 0xae, 0x1f, 0x0b, 0xdc, + 0x7d, 0x2e, 0x1d, 0x76, 0x07, 0x47, 0xed, 0xbe, 0x31, 0x06, 0x33, 0xb1, 0xd7, 0x8a, 0xd4, 0x54, + 0xe9, 0x09, 0x56, 0xbb, 0x9a, 0xea, 0x83, 0x48, 0x15, 0x57, 0x7e, 0x70, 0xdc, 0x9a, 0x1f, 0x49, + 0xaa, 0x79, 0x25, 0xb5, 0x7c, 0xdc, 0x3f, 0xcf, 0xaf, 0x39, 0x6c, 0x1c, 0xd6, 0x3f, 0x1b, 0x70, + 0x6f, 0xdf, 0x47, 0xad, 0x2c, 0x27, 0x8a, 0x17, 0x85, 0x8a, 0x05, 0x99, 0xf2, 0xd3, 0x7d, 0x75, + 0xc3, 0x12, 0x4f, 0x63, 0x11, 0x67, 0x8f, 0x1e, 0x87, 0x29, 0xa6, 0x5a, 0xe9, 0x9e, 0x12, 0x90, + 0xb6, 0x70, 0x10, 0x33, 0x57, 0x61, 0x55, 0x2b, 0xc7, 0x11, 0x2c, 0xf3, 0x4b, 0x06, 0x2c, 0xf4, + 0xcb, 0x90, 0x31, 0xc0, 0xc1, 0xf0, 0x17, 0x62, 0xc1, 0xc5, 0xc5, 0x9e, 0xe0, 0xe2, 0xd8, 0xd1, + 0x50, 0xc6, 0x11, 0x6b, 0xa7, 0xb2, 0xec, 0x21, 0xb1, 0xb3, 0x9f, 0x35, 0xe0, 0x74, 0x9f, 0xd5, + 0xd4, 0x13, 0x64, 0x6e, 0x1c, 0x39, 0xc8, 0x3c, 0x33, 0x68, 0x90, 0xb9, 0xf9, 0xdd, 0x2c, 0xcc, + 0x0a, 0x79, 0x42, 0xfb, 0xea, 0xc9, 0x48, 0x88, 0xf6, 0x3b, 0x62, 0x21, 0xda, 0xf3, 0x71, 0xfc, + 0x9f, 0xc7, 0x67, 0xbf, 0xb5, 0xe2, 0xb3, 0x7f, 0x9a, 0x81, 0x53, 0x89, 0x89, 0x3b, 0xd0, 0xa7, + 0x13, 0x54, 0xc3, 0xf5, 0x94, 0x33, 0x84, 0x0c, 0xa8, 0x1c, 0x46, 0x0d, 0x6a, 0xfe, 0x82, 0x1e, + 0x4c, 0xcc, 0xb7, 0xfa, 0xed, 0x63, 0xc8, 0x75, 0x32, 0x64, 0x5c, 0xb1, 0xf9, 0x6b, 0x59, 0x78, + 0x78, 0x50, 0x42, 0x6f, 0xd1, 0x77, 0x27, 0x7e, 0xe4, 0xdd, 0xc9, 0x5d, 0x52, 0xdb, 0xc7, 0xf2, + 0x04, 0xe5, 0xcb, 0x59, 0xa5, 0xf6, 0x7a, 0xe7, 0xe7, 0x40, 0xb7, 0x89, 0x13, 0xd4, 0xb4, 0x93, + 0xe9, 0x3c, 0xc3, 0xad, 0x70, 0xa2, 0xca, 0x8b, 0xef, 0x74, 0x8b, 0x73, 0x22, 0xc5, 0x5f, 0x95, + 0x04, 0xa2, 0x10, 0xcb, 0x4a, 0xe8, 0x61, 0xc8, 0x7b, 0x1c, 0x2a, 0x23, 0xed, 0xc5, 0x95, 0x2c, + 0x2f, 0xc3, 0x0a, 0x8a, 0x3e, 0xa9, 0xd9, 0xc2, 0x63, 0xc7, 0x95, 0x25, 0xe1, 0xa0, 0x9b, 0xe6, + 0x17, 0x20, 0xef, 0xcb, 0xc4, 0x9c, 0xfc, 0x3a, 0xe0, 0xb1, 0x01, 0x1f, 0x70, 0xd0, 0xa3, 0x93, + 0xcc, 0xd2, 0xc9, 0xdb, 0xa7, 0x72, 0x78, 0x2a, 0x92, 0xc8, 0x54, 0xa7, 0x16, 0xee, 0x63, 0x84, + 0x84, 0x13, 0xcb, 0xf7, 0x0c, 0x98, 0x14, 0xa3, 0x75, 0x17, 0xde, 0x94, 0xdc, 0x88, 0xbe, 0x29, + 0x39, 0x97, 0xca, 0xde, 0xd1, 0xe7, 0x41, 0xc9, 0x0d, 0x98, 0xd2, 0x73, 0x37, 0xa1, 0xe7, 0xb5, + 0xbd, 0xcf, 0x18, 0x25, 0x1b, 0x8a, 0xdc, 0x1d, 0xc3, 0x7d, 0xd1, 0xfc, 0x9d, 0xbc, 0xea, 0x45, + 0xe6, 0x87, 0xd0, 0xe7, 0xa0, 0x71, 0xe0, 0x1c, 0xd4, 0xa7, 0x40, 0x26, 0xfd, 0x29, 0x70, 0x05, + 0xf2, 0x72, 0x83, 0x12, 0x6a, 0xfc, 0x41, 0x3d, 0xca, 0x8e, 0xda, 0x02, 0x94, 0x98, 0x36, 0x71, + 0xd9, 0x51, 0x4b, 0x8d, 0xa1, 0xda, 0x38, 0x15, 0x19, 0xf4, 0x22, 0x4c, 0xde, 0x72, 0xbd, 0x9b, + 0x4d, 0xd7, 0x62, 0x29, 0x77, 0x21, 0x8d, 0x8b, 0x1d, 0xe5, 0xf0, 0xe2, 0xa1, 0xce, 0xd7, 0x43, + 0xfa, 0x58, 0x67, 0x86, 0x4a, 0x30, 0xd3, 0xb2, 0x1d, 0x4c, 0xac, 0xba, 0x7a, 0x3a, 0x32, 0xc6, + 0x73, 0x82, 0x4a, 0x23, 0x77, 0x23, 0x0a, 0xc6, 0x71, 0x7c, 0xf4, 0x71, 0xc8, 0xfb, 0x22, 0x13, + 0x52, 0x3a, 0x57, 0x70, 0xea, 0xcc, 0xc8, 0x89, 0x86, 0x7d, 0x27, 0x4b, 0xb0, 0x62, 0x88, 0xd6, + 0x61, 0xde, 0x13, 0xb9, 0x46, 0x22, 0x1f, 0xec, 0xe0, 0xeb, 0x93, 0xa5, 0x9e, 0xc4, 0x09, 0x70, + 0x9c, 0x58, 0x8b, 0x5a, 0x31, 0x2c, 0x09, 0x19, 0xbf, 0x13, 0xd0, 0xdc, 0xe8, 0x6c, 0xc2, 0xd7, + 0xb1, 0x80, 0x1e, 0xf4, 0x14, 0x29, 0x3f, 0xc2, 0x53, 0xa4, 0x2a, 0x9c, 0x8a, 0x83, 0x58, 0x46, + 0x14, 0x96, 0x84, 0x45, 0xd3, 0x1e, 0x95, 0x24, 0x24, 0x9c, 0x5c, 0x17, 0x5d, 0x87, 0x82, 0x47, + 0xd8, 0xf9, 0xa2, 0x24, 0x2f, 0xfd, 0x87, 0x0e, 0x6f, 0xc2, 0x92, 0x00, 0x0e, 0x69, 0xd1, 0x71, + 0xb7, 0xa2, 0x69, 0x31, 0xaf, 0xa4, 0xf8, 0xc9, 0x31, 0x31, 0xf6, 0x7d, 0x32, 0x15, 0x99, 0x6f, + 0x4e, 0xc3, 0x89, 0x88, 0x6f, 0x01, 0x3d, 0x08, 0x39, 0x96, 0x22, 0x86, 0x6d, 0x0f, 0xf9, 0x70, + 0x0b, 0xe3, 0x9d, 0xc3, 0x61, 0xe8, 0x73, 0x06, 0xcc, 0xb4, 0x23, 0x5e, 0x58, 0xb9, 0x73, 0x8e, + 0x78, 0xcf, 0x17, 0x75, 0xed, 0x6a, 0x09, 0xa5, 0xa3, 0xcc, 0x70, 0x9c, 0x3b, 0x5d, 0x80, 0x22, + 0x46, 0xb0, 0x49, 0x3c, 0x86, 0x2d, 0x6c, 0x1c, 0x45, 0x62, 0x25, 0x0a, 0xc6, 0x71, 0x7c, 0x3a, + 0xc2, 0xac, 0x75, 0xa3, 0x7c, 0x8b, 0xa8, 0x24, 0x09, 0xe0, 0x90, 0x16, 0x7a, 0x06, 0xa6, 0x45, + 0x36, 0xc4, 0x8a, 0x5b, 0xbf, 0x60, 0xf9, 0x3b, 0xc2, 0xb8, 0x57, 0x87, 0x91, 0x95, 0x08, 0x14, + 0xc7, 0xb0, 0x59, 0xdb, 0xc2, 0x94, 0x93, 0x8c, 0xc0, 0x78, 0x34, 0xdf, 0xf6, 0x4a, 0x14, 0x8c, + 0xe3, 0xf8, 0xe8, 0x11, 0x6d, 0xdf, 0xe7, 0xf7, 0x74, 0x6a, 0x37, 0x48, 0xd8, 0xfb, 0x4b, 0x30, + 0xd3, 0x61, 0x67, 0xa1, 0xba, 0x04, 0x8a, 0xf5, 0xa8, 0x18, 0x5e, 0x8d, 0x82, 0x71, 0x1c, 0x1f, + 0x3d, 0x05, 0x27, 0x3c, 0xba, 0xbb, 0x29, 0x02, 0xfc, 0xf2, 0x4e, 0xdd, 0xcd, 0x60, 0x1d, 0x88, + 0xa3, 0xb8, 0xe8, 0x59, 0x98, 0x0b, 0x93, 0x87, 0x49, 0x02, 0xfc, 0x36, 0x4f, 0xe5, 0xc5, 0x29, + 0xc5, 0x11, 0x70, 0x6f, 0x1d, 0xf4, 0x4b, 0x30, 0xab, 0xf5, 0xc4, 0x9a, 0x53, 0x27, 0xb7, 0x45, + 0x82, 0x27, 0xf6, 0x69, 0x84, 0x95, 0x18, 0x0c, 0xf7, 0x60, 0xa3, 0xf7, 0xc1, 0x74, 0xcd, 0x6d, + 0x36, 0xd9, 0x1e, 0xc7, 0x73, 0x3d, 0xf3, 0x4c, 0x4e, 0x3c, 0xe7, 0x55, 0x04, 0x82, 0x63, 0x98, + 0xe8, 0x22, 0x20, 0x77, 0xcb, 0x27, 0xde, 0x2e, 0xa9, 0x3f, 0xcb, 0xbf, 0x6e, 0x4a, 0x55, 0xfc, + 0x89, 0x68, 0x84, 0xf2, 0xe5, 0x1e, 0x0c, 0x9c, 0x50, 0x8b, 0xa5, 0xd5, 0xd1, 0x5e, 0x74, 0x4d, + 0xa7, 0xf1, 0x5d, 0x9e, 0xf8, 0xc9, 0xfd, 0xd0, 0xe7, 0x5c, 0x1e, 0x8c, 0xf3, 0x80, 0xf1, 0x74, + 0x52, 0x3a, 0xe9, 0x69, 0x5f, 0x43, 0x1d, 0xc1, 0x4b, 0xb1, 0xe0, 0x84, 0x3e, 0x01, 0x85, 0x2d, + 0x99, 0x03, 0x7c, 0x61, 0x36, 0x0d, 0xbd, 0x18, 0x4b, 0x67, 0x1f, 0x9e, 0x4c, 0x15, 0x00, 0x87, + 0x2c, 0xd1, 0x43, 0x30, 0x79, 0xa1, 0x52, 0x52, 0xb3, 0x70, 0x8e, 0x8d, 0xfe, 0x18, 0xad, 0x82, + 0x75, 0x00, 0x5d, 0x61, 0xca, 0x5e, 0x42, 0x6c, 0x88, 0x43, 0x7d, 0xdb, 0x6b, 0xfe, 0x50, 0x6c, + 0x76, 0x1d, 0x89, 0xab, 0x0b, 0x27, 0x63, 0xd8, 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x02, 0x4c, 0x0a, + 0x7d, 0xc1, 0xf6, 0xa6, 0xf9, 0xa3, 0xbd, 0x16, 0xc4, 0x21, 0x09, 0xac, 0xd3, 0x63, 0xb7, 0x4c, + 0x2c, 0x35, 0x32, 0x39, 0xdf, 0x69, 0x36, 0x17, 0x4e, 0xb1, 0x7d, 0x33, 0xbc, 0x65, 0x0a, 0x41, + 0x58, 0xc7, 0x43, 0x8f, 0xc9, 0xc8, 0x89, 0xb7, 0x45, 0xae, 0xdd, 0x54, 0xe4, 0x84, 0xb2, 0x72, + 0xfb, 0x04, 0x14, 0x9f, 0x3e, 0x24, 0x64, 0x61, 0x0b, 0x16, 0xa5, 0x89, 0xd5, 0xbb, 0x48, 0x16, + 0x16, 0x22, 0x5e, 0x82, 0xc5, 0xeb, 0x7d, 0x31, 0xf1, 0x01, 0x54, 0xd0, 0x16, 0x64, 0xad, 0xe6, + 0xd6, 0xc2, 0xbd, 0x69, 0xd8, 0x8a, 0xea, 0x6b, 0xc5, 0x3c, 0x08, 0xa8, 0xb4, 0x5e, 0xc6, 0x94, + 0xb8, 0xf9, 0x4a, 0x46, 0x79, 0xe5, 0x55, 0xaa, 0xcb, 0x97, 0xf4, 0x59, 0x6d, 0xa4, 0xf1, 0x35, + 0xce, 0x9e, 0x44, 0xf9, 0x5c, 0x21, 0x25, 0xce, 0xe9, 0xb6, 0x5a, 0xc7, 0xa9, 0xe4, 0x31, 0x89, + 0xa6, 0xf1, 0xe4, 0xa7, 0xb9, 0xe8, 0x2a, 0x36, 0xf7, 0x27, 0x94, 0x13, 0x2a, 0x16, 0x0a, 0xe0, + 0x41, 0xce, 0xf6, 0x03, 0xdb, 0x4d, 0xf1, 0x65, 0x5b, 0x2c, 0xff, 0x25, 0x0b, 0x9c, 0x65, 0x00, + 0xcc, 0x59, 0x51, 0x9e, 0x4e, 0xc3, 0x76, 0x6e, 0x8b, 0xe6, 0x5f, 0x49, 0xfd, 0x8e, 0x9f, 0xf3, + 0x64, 0x00, 0xcc, 0x59, 0xa1, 0x1b, 0x7c, 0xa6, 0xa5, 0xf3, 0xe5, 0xd5, 0xf8, 0x07, 0x95, 0xa3, + 0x33, 0x8e, 0xf2, 0xf2, 0x5b, 0xb6, 0xb0, 0x61, 0x46, 0xe4, 0x55, 0xdd, 0x58, 0x4b, 0xe2, 0x55, + 0xdd, 0x58, 0xc3, 0x94, 0x09, 0x7a, 0xcd, 0x00, 0xb0, 0xd4, 0x97, 0x85, 0xd3, 0xf9, 0xaa, 0x44, + 0xbf, 0x2f, 0x15, 0xf3, 0x58, 0xb7, 0x10, 0x8a, 0x35, 0xce, 0xe8, 0x45, 0x98, 0xb0, 0xf8, 0x37, + 0x71, 0x44, 0x18, 0x61, 0x3a, 0x1f, 0x7a, 0x8a, 0x49, 0xc0, 0xe2, 0x27, 0x05, 0x08, 0x4b, 0x86, + 0x94, 0x77, 0xe0, 0x59, 0x64, 0xdb, 0xbe, 0x29, 0xe2, 0x09, 0xab, 0x23, 0xa7, 0xb6, 0xa6, 0xc4, + 0x92, 0x78, 0x0b, 0x10, 0x96, 0x0c, 0xf9, 0xc7, 0x3c, 0x2d, 0xc7, 0x52, 0x8f, 0x43, 0xd2, 0x79, + 0x42, 0xa4, 0x3f, 0x37, 0xd1, 0x3e, 0xe6, 0xa9, 0x33, 0xc2, 0x51, 0xbe, 0xe6, 0x8f, 0xb3, 0x00, + 0xec, 0x27, 0x7f, 0xb0, 0xdc, 0x62, 0x49, 0xee, 0x76, 0xdc, 0xba, 0x58, 0xda, 0x29, 0xbe, 0x3b, + 0x06, 0x91, 0xd1, 0x6e, 0xc7, 0xad, 0x63, 0xc1, 0x04, 0x35, 0x60, 0xac, 0x6d, 0x05, 0x3b, 0xe9, + 0x3f, 0x72, 0xce, 0xf3, 0x97, 0x3b, 0xc1, 0x0e, 0x66, 0x0c, 0xd0, 0xcb, 0x06, 0x4c, 0xf0, 0x67, + 0xce, 0xd2, 0xd5, 0x3c, 0xf2, 0x7d, 0xaa, 0xec, 0xb3, 0x25, 0xfe, 0x96, 0x5a, 0x04, 0x2b, 0x28, + 0xd5, 0x28, 0x4a, 0xb1, 0x64, 0xbb, 0xf8, 0xaa, 0x01, 0x53, 0x3a, 0x6a, 0x42, 0x98, 0xc1, 0x47, + 0xf4, 0x30, 0x83, 0x34, 0xfb, 0x43, 0x8f, 0x58, 0xf8, 0x37, 0x03, 0xb4, 0x4f, 0xa0, 0x86, 0x41, + 0x86, 0xc6, 0xc0, 0x41, 0x86, 0x99, 0x21, 0x83, 0x0c, 0xb3, 0x43, 0x05, 0x19, 0x8e, 0x0d, 0x1f, + 0x64, 0x98, 0xeb, 0x1f, 0x64, 0x68, 0xbe, 0x6e, 0xc0, 0x5c, 0xcf, 0x7e, 0x18, 0xff, 0xd4, 0xbc, + 0x31, 0xe0, 0xa7, 0xe6, 0x57, 0x61, 0x56, 0x24, 0x61, 0xae, 0xb6, 0x9b, 0x76, 0xe2, 0x03, 0xf4, + 0xcd, 0x18, 0x1c, 0xf7, 0xd4, 0x30, 0xff, 0xc2, 0x80, 0x49, 0xed, 0xd9, 0x1a, 0x6d, 0x07, 0x7b, + 0xde, 0x27, 0xc4, 0x08, 0xf3, 0x4f, 0x33, 0xd7, 0x3e, 0x87, 0xf1, 0x5b, 0xa6, 0x86, 0x96, 0xf0, + 0x33, 0xbc, 0x65, 0xa2, 0xa5, 0x58, 0x40, 0x79, 0x2a, 0x47, 0xd2, 0x66, 0x9d, 0x9e, 0xd5, 0x53, + 0x39, 0x92, 0x36, 0x66, 0x10, 0xc6, 0x8e, 0xda, 0x91, 0x22, 0xfe, 0x54, 0x4b, 0x77, 0x6d, 0x79, + 0x01, 0xe6, 0x30, 0x74, 0x06, 0xb2, 0xc4, 0xa9, 0x8b, 0x43, 0xaf, 0xfa, 0xc4, 0xd4, 0x39, 0xa7, + 0x8e, 0x69, 0xb9, 0x79, 0x19, 0xa6, 0xaa, 0xa4, 0xe6, 0x91, 0xe0, 0x39, 0xb2, 0x37, 0xf0, 0x37, + 0xab, 0xe8, 0x6c, 0x8f, 0x7d, 0xb3, 0x8a, 0x56, 0xa7, 0xe5, 0xe6, 0x1f, 0x19, 0x10, 0xcb, 0xc9, + 0xae, 0x79, 0x9c, 0x8d, 0x7e, 0x1e, 0xe7, 0x88, 0x6f, 0x34, 0x73, 0xa0, 0x6f, 0xf4, 0x22, 0xa0, + 0x16, 0x5d, 0x0a, 0x91, 0x2f, 0x10, 0x08, 0x7f, 0x43, 0xf8, 0x48, 0xb6, 0x07, 0x03, 0x27, 0xd4, + 0x32, 0xff, 0x90, 0x0b, 0xab, 0x67, 0x69, 0x3f, 0xbc, 0x03, 0x3a, 0x90, 0x63, 0xa4, 0x84, 0xd3, + 0xa5, 0x32, 0xda, 0xe2, 0xee, 0x4d, 0x36, 0x11, 0x0e, 0xa4, 0x58, 0xf2, 0x8c, 0x9b, 0xf9, 0x5d, + 0x2e, 0xab, 0x96, 0xc6, 0x7d, 0x00, 0x59, 0x5b, 0x51, 0x59, 0x2f, 0xa4, 0xb5, 0x57, 0x26, 0xcb, + 0x88, 0x96, 0x00, 0xda, 0xc4, 0xab, 0x11, 0x27, 0x90, 0x61, 0xd1, 0x39, 0xf1, 0x8c, 0x44, 0x95, + 0x62, 0x0d, 0xc3, 0x7c, 0xd9, 0x80, 0xd9, 0x6a, 0x60, 0xd7, 0x6e, 0xda, 0x0e, 0x7f, 0x16, 0xb5, + 0x6d, 0x37, 0xe8, 0x29, 0x85, 0x88, 0xcf, 0x31, 0x71, 0x37, 0x98, 0xda, 0x8a, 0xe5, 0x57, 0x98, + 0x24, 0x1c, 0x95, 0x60, 0x46, 0x7a, 0xdb, 0xa5, 0xef, 0x92, 0x3f, 0xe7, 0x54, 0xbe, 0x92, 0xd5, + 0x28, 0x18, 0xc7, 0xf1, 0xcd, 0x4f, 0xc2, 0xa4, 0xb6, 0xbf, 0xb2, 0xad, 0xe8, 0xb6, 0x55, 0x0b, + 0xe2, 0x4b, 0xf8, 0x1c, 0x2d, 0xc4, 0x1c, 0xc6, 0x5c, 0xac, 0x3c, 0x6e, 0x36, 0xb6, 0x84, 0x45, + 0xb4, 0xac, 0x80, 0x52, 0x62, 0x1e, 0x69, 0x90, 0xdb, 0x32, 0xb5, 0xa8, 0x24, 0x86, 0x69, 0x21, + 0xe6, 0x30, 0xf3, 0x11, 0xc8, 0xcb, 0x47, 0xf7, 0xec, 0xe5, 0xaa, 0x74, 0xff, 0xe9, 0x2f, 0x57, + 0x5d, 0x2f, 0xc0, 0x0c, 0x62, 0x5e, 0x83, 0xbc, 0xcc, 0x0d, 0x70, 0x38, 0x36, 0x5d, 0x55, 0xbe, + 0x63, 0x5f, 0x70, 0xfd, 0x40, 0x26, 0x34, 0xe0, 0x57, 0x02, 0x97, 0xd6, 0x58, 0x19, 0x56, 0x50, + 0x73, 0x0e, 0x66, 0x94, 0xaf, 0x5f, 0x04, 0x32, 0x7e, 0x23, 0x0b, 0x53, 0x91, 0x4f, 0x01, 0x1f, + 0x3e, 0xdd, 0x06, 0x5f, 0xc5, 0x09, 0x3e, 0xfb, 0xec, 0x90, 0x3e, 0x7b, 0xfd, 0x92, 0x64, 0xec, + 0x78, 0x2f, 0x49, 0x72, 0xe9, 0x5c, 0x92, 0x04, 0x30, 0xe1, 0x0b, 0x45, 0x35, 0x9e, 0x86, 0x33, + 0x25, 0x36, 0x62, 0xdc, 0x46, 0x95, 0xfa, 0x4e, 0xb2, 0x32, 0xbf, 0x9a, 0x83, 0xe9, 0x68, 0x56, + 0xa4, 0x01, 0x46, 0xf2, 0x91, 0x9e, 0x91, 0x1c, 0xd2, 0x67, 0x99, 0x1d, 0xd5, 0x67, 0x39, 0x36, + 0xaa, 0xcf, 0x32, 0x77, 0x04, 0x9f, 0x65, 0xaf, 0xc7, 0x71, 0x7c, 0x60, 0x8f, 0xe3, 0xd3, 0x2a, + 0xe0, 0x66, 0x22, 0x72, 0x43, 0x1d, 0x06, 0xdc, 0xa0, 0xe8, 0x30, 0xac, 0xb8, 0xf5, 0xc4, 0xc0, + 0xa5, 0xfc, 0x21, 0xbe, 0x19, 0x2f, 0x31, 0x3e, 0x66, 0xf8, 0x6b, 0x91, 0xb7, 0x0d, 0x11, 0x1b, + 0xf3, 0x04, 0x4c, 0x8a, 0xf9, 0xc4, 0x6c, 0x25, 0x88, 0xda, 0x59, 0xd5, 0x10, 0x84, 0x75, 0x3c, + 0xf6, 0xb5, 0xca, 0xe8, 0xe7, 0x39, 0x99, 0x0b, 0x58, 0xff, 0x5a, 0x65, 0xec, 0x73, 0x9e, 0x71, + 0x7c, 0xf3, 0xe3, 0x70, 0x2a, 0xf1, 0x44, 0xc6, 0x5c, 0x54, 0x4c, 0x8d, 0x93, 0xba, 0x40, 0xd0, + 0xc4, 0x88, 0x25, 0xcd, 0x5d, 0xbc, 0xde, 0x17, 0x13, 0x1f, 0x40, 0xc5, 0xfc, 0x4a, 0x16, 0xa6, + 0xa3, 0x9f, 0x3a, 0x42, 0xb7, 0x94, 0xff, 0x26, 0x15, 0xd7, 0x11, 0x27, 0xab, 0x65, 0xda, 0xe9, + 0xeb, 0x8c, 0xbd, 0xc5, 0xe6, 0xd7, 0x96, 0x4a, 0xfb, 0x73, 0x7c, 0x8c, 0x85, 0x17, 0x54, 0xb0, + 0x63, 0x5f, 0x33, 0x0a, 0x9f, 0x3b, 0x88, 0x63, 0x57, 0xea, 0xdc, 0xc3, 0x07, 0x0c, 0x8a, 0x15, + 0xd6, 0xd8, 0x52, 0xdd, 0xb2, 0x4b, 0x3c, 0x7b, 0xdb, 0x56, 0x9f, 0x69, 0x64, 0x3b, 0xf7, 0x35, + 0x51, 0x86, 0x15, 0xd4, 0x7c, 0x39, 0x03, 0xe1, 0x47, 0x69, 0xd9, 0xf7, 0x40, 0x7c, 0xcd, 0xc4, + 0x15, 0xc3, 0x76, 0x71, 0xd4, 0x8f, 0xee, 0x84, 0x14, 0x45, 0x30, 0xa4, 0x56, 0x82, 0x23, 0x1c, + 0x7f, 0x06, 0x1f, 0xa3, 0xb5, 0x60, 0x26, 0xf6, 0x08, 0x34, 0xf5, 0x88, 0xf3, 0x1f, 0x65, 0xa1, + 0xa0, 0x9e, 0xd1, 0xa2, 0xf7, 0x46, 0xfc, 0x0d, 0x85, 0xf2, 0xdb, 0xb5, 0xd4, 0xf7, 0x3b, 0x6e, + 0xfd, 0x4e, 0xb7, 0x38, 0xa3, 0x90, 0x63, 0xbe, 0x83, 0x33, 0x90, 0xed, 0x78, 0xcd, 0xf8, 0x81, + 0xe2, 0x2a, 0x5e, 0xc7, 0xb4, 0x1c, 0xdd, 0x8e, 0x1f, 0xf8, 0x37, 0x52, 0x7a, 0xfa, 0xcb, 0x2d, + 0xef, 0xfe, 0x07, 0x7d, 0xaa, 0x25, 0xb7, 0xdc, 0xfa, 0x5e, 0x3c, 0x55, 0x7e, 0xd9, 0xad, 0xef, + 0x61, 0x06, 0x41, 0xcf, 0xc0, 0x74, 0x60, 0xb7, 0x88, 0xdb, 0x09, 0xf4, 0x4f, 0x7e, 0x66, 0xc3, + 0xcb, 0xc5, 0xcd, 0x08, 0x14, 0xc7, 0xb0, 0xa9, 0x96, 0xbd, 0xe1, 0xbb, 0x0e, 0xcb, 0x7f, 0x37, + 0x1e, 0xbd, 0x89, 0xb8, 0x58, 0xbd, 0x7c, 0x89, 0xf9, 0x3d, 0x14, 0x06, 0xc5, 0xb6, 0xd9, 0x9b, + 0x39, 0x8f, 0x88, 0xbb, 0xfd, 0xd9, 0x30, 0xa3, 0x02, 0x2f, 0xc7, 0x0a, 0x03, 0xad, 0x72, 0xda, + 0x54, 0x5a, 0xa6, 0x51, 0xa6, 0xca, 0x0f, 0x4b, 0xba, 0xb4, 0xec, 0x4e, 0xb7, 0xb8, 0x40, 0x9c, + 0x9a, 0x5b, 0xb7, 0x9d, 0xc6, 0x32, 0x45, 0x5c, 0xc2, 0xd6, 0x2d, 0xa9, 0x6a, 0x54, 0x4d, 0xf3, + 0x2a, 0xcc, 0xc4, 0x3a, 0x4c, 0x1e, 0x00, 0x8d, 0xe4, 0x03, 0xe0, 0x60, 0xd9, 0xed, 0xff, 0xd4, + 0x80, 0xb9, 0x9e, 0x2d, 0x60, 0xd0, 0x07, 0x15, 0x71, 0x65, 0x94, 0x39, 0xba, 0x32, 0xca, 0x0e, + 0xa7, 0x8c, 0xca, 0x5b, 0xdf, 0x7a, 0xf3, 0xec, 0x3d, 0xdf, 0x79, 0xf3, 0xec, 0x3d, 0xdf, 0x7f, + 0xf3, 0xec, 0x3d, 0x2f, 0xef, 0x9f, 0x35, 0xbe, 0xb5, 0x7f, 0xd6, 0xf8, 0xce, 0xfe, 0x59, 0xe3, + 0xfb, 0xfb, 0x67, 0x8d, 0x7f, 0xda, 0x3f, 0x6b, 0xbc, 0xfe, 0xa3, 0xb3, 0xf7, 0x3c, 0xff, 0x74, + 0x38, 0x41, 0x97, 0xe5, 0x04, 0x65, 0x3f, 0xde, 0x25, 0xa7, 0xe3, 0x72, 0xfb, 0x66, 0x63, 0x99, + 0x4e, 0xd0, 0x65, 0x55, 0x22, 0x27, 0xe8, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x2a, 0x23, + 0xab, 0x55, 0x93, 0x00, 0x00, } func (m *ALBStatus) Marshal() (dAtA []byte, err error) { @@ -7745,18 +7745,6 @@ func (m *RolloutExperimentTemplate) MarshalToSizedBuffer(dAtA []byte) (int, erro _ = i var l int _ = l - if m.Service != nil { - { - size, err := m.Service.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } if m.Weight != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.Weight)) i-- @@ -10942,10 +10930,6 @@ func (m *RolloutExperimentTemplate) Size() (n int) { if m.Weight != nil { n += 1 + sovGenerated(uint64(*m.Weight)) } - if m.Service != nil { - l = m.Service.Size() - n += 1 + l + sovGenerated(uint64(l)) - } return n } @@ -12718,7 +12702,6 @@ func (this *RolloutExperimentTemplate) String() string { `Metadata:` + strings.Replace(strings.Replace(this.Metadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1), `&`, ``, 1) + `,`, `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, `Weight:` + valueToStringGenerated(this.Weight) + `,`, - `Service:` + strings.Replace(this.Service.String(), "TemplateService", "TemplateService", 1) + `,`, `}`, }, "") return s @@ -26344,42 +26327,6 @@ func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { } } m.Weight = &v - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Service == nil { - m.Service = &TemplateService{} - } - if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index f4c7b9cd2e..c90faf3a42 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -1223,9 +1223,6 @@ message RolloutExperimentTemplate { // Weight sets the percentage of traffic the template's replicas should receive optional int32 weight = 6; - - // Service defines wether a service will be generated or not - optional TemplateService service = 7; } // RolloutList is a list of Rollout resources diff --git a/pkg/apis/rollouts/v1alpha1/openapi_generated.go b/pkg/apis/rollouts/v1alpha1/openapi_generated.go index 8e11bec006..ac729e0107 100644 --- a/pkg/apis/rollouts/v1alpha1/openapi_generated.go +++ b/pkg/apis/rollouts/v1alpha1/openapi_generated.go @@ -3787,18 +3787,12 @@ func schema_pkg_apis_rollouts_v1alpha1_RolloutExperimentTemplate(ref common.Refe Format: "int32", }, }, - "service": { - SchemaProps: spec.SchemaProps{ - Description: "Service defines wether a service will be generated or not", - Ref: ref("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService"), - }, - }, }, Required: []string{"name", "specRef"}, }, }, Dependencies: []string{ - "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.TemplateService", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1.PodTemplateMetadata", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, } } diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 36dacc5ea1..746758c60f 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -534,8 +534,6 @@ type RolloutExperimentTemplate struct { Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,5,opt,name=selector"` // Weight sets the percentage of traffic the template's replicas should receive Weight *int32 `json:"weight,omitempty" protobuf:"varint,6,opt,name=weight"` - // Service defines wether a service will be generated or not - Service *TemplateService `json:"service,omitempty" protobuf:"bytes,7,opt,name=service"` } // PodTemplateMetadata extra labels to add to the template diff --git a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go index faf528d849..1a64ef2cca 100644 --- a/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/rollouts/v1alpha1/zz_generated.deepcopy.go @@ -2035,11 +2035,6 @@ func (in *RolloutExperimentTemplate) DeepCopyInto(out *RolloutExperimentTemplate *out = new(int32) **out = **in } - if in.Service != nil { - in, out := &in.Service, &out.Service - *out = new(TemplateService) - **out = **in - } return } diff --git a/rollout/experiment.go b/rollout/experiment.go index 420355d82b..a6d3bdcd43 100644 --- a/rollout/experiment.go +++ b/rollout/experiment.go @@ -64,9 +64,7 @@ func GetExperimentFromTemplate(r *v1alpha1.Rollout, stableRS, newRS *appsv1.Repl Name: templateStep.Name, Replicas: templateStep.Replicas, } - if templateStep.Weight != nil || templateStep.Service != nil { - template.Service = &v1alpha1.TemplateService{} - } + template.Service = &v1alpha1.TemplateService{} templateRS := &appsv1.ReplicaSet{} switch templateStep.SpecRef { case v1alpha1.CanarySpecRef: diff --git a/rollout/experiment_test.go b/rollout/experiment_test.go index 7628515d39..54cea95d2e 100644 --- a/rollout/experiment_test.go +++ b/rollout/experiment_test.go @@ -818,7 +818,7 @@ func TestRolloutCreateExperimentWithService(t *testing.T) { assert.NotNil(t, ex.Spec.Templates[0].Service) assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) - assert.Nil(t, ex.Spec.Templates[1].Service) + assert.NotNil(t, ex.Spec.Templates[1].Service) } func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { @@ -859,5 +859,5 @@ func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { assert.NotNil(t, ex.Spec.Templates[0].Service) assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) - assert.Nil(t, ex.Spec.Templates[1].Service) + assert.NotNil(t, ex.Spec.Templates[1].Service) } diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index 7a00bba8ef..a21a1bea6d 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -1185,12 +1185,6 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExpe * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate */ weight?: number; - /** - * - * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService} - * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate - */ - service?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService; } /** * @@ -1704,13 +1698,6 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TLSRoute { */ sniHosts?: Array; } -/** - * - * @export - * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService - */ -export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService { -} /** * * @export From 80eea63bf120048e191f61966f1bc0f7e212e01b Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Fri, 4 Nov 2022 20:57:26 +0100 Subject: [PATCH 26/28] drop test which is not relevant any more Signed-off-by: Alex Eftimie --- rollout/experiment_test.go | 41 -------------------------------------- 1 file changed, 41 deletions(-) diff --git a/rollout/experiment_test.go b/rollout/experiment_test.go index 54cea95d2e..1c60e9f7c7 100644 --- a/rollout/experiment_test.go +++ b/rollout/experiment_test.go @@ -820,44 +820,3 @@ func TestRolloutCreateExperimentWithService(t *testing.T) { assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) assert.NotNil(t, ex.Spec.Templates[1].Service) } - -func TestRolloutCreateExperimentWithServicePorts(t *testing.T) { - steps := []v1alpha1.CanaryStep{{ - Experiment: &v1alpha1.RolloutExperimentStep{ - Templates: []v1alpha1.RolloutExperimentTemplate{ - // Service should be created for "stable-template" - { - Name: "stable-template", - SpecRef: v1alpha1.StableSpecRef, - Replicas: pointer.Int32Ptr(1), - Weight: pointer.Int32Ptr(5), - }, - // Service should also be created for "canary-template" - { - Name: "canary-template", - SpecRef: v1alpha1.CanarySpecRef, - Replicas: pointer.Int32Ptr(1), - }, - }, - }, - }} - - r1 := newCanaryRollout("foo", 1, nil, steps, pointer.Int32Ptr(0), intstr.FromInt(0), intstr.FromInt(1)) - r2 := bumpVersion(r1) - - rs1 := newReplicaSetWithStatus(r1, 1, 1) - rs2 := newReplicaSetWithStatus(r2, 1, 1) - rs1PodHash := rs1.Labels[v1alpha1.DefaultRolloutUniqueLabelKey] - - r2.Status.CurrentStepIndex = pointer.Int32Ptr(0) - r2.Status.StableRS = rs1PodHash - - ex, err := GetExperimentFromTemplate(r2, rs1, rs2) - assert.Nil(t, err) - - assert.Equal(t, "stable-template", ex.Spec.Templates[0].Name) - assert.NotNil(t, ex.Spec.Templates[0].Service) - - assert.Equal(t, "canary-template", ex.Spec.Templates[1].Name) - assert.NotNil(t, ex.Spec.Templates[1].Service) -} From 8771a9629d68b4500accf2fe89d4a9dd0ea547c5 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sat, 5 Nov 2022 16:35:02 +0100 Subject: [PATCH 27/28] fix e2e - only generate service if RS has ports Signed-off-by: Alex Eftimie --- experiments/experiment.go | 2 +- experiments/experiment_test.go | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/experiments/experiment.go b/experiments/experiment.go index ad18a10357..0ab5d3bb8a 100644 --- a/experiments/experiment.go +++ b/experiments/experiment.go @@ -297,7 +297,7 @@ func (ec *experimentContext) createTemplateService(template *v1alpha1.TemplateSp ports = append(ports, servicePort) } } - if svc == nil || svc.Name != rs.Name { + if (svc == nil || svc.Name != rs.Name) && len(ports) > 0 { newService, err := ec.CreateService(rs.Name, *template, rs.Labels, ports) if err != nil { templateStatus.Status = v1alpha1.TemplateStatusError diff --git a/experiments/experiment_test.go b/experiments/experiment_test.go index 2343038ef5..0860188f65 100644 --- a/experiments/experiment_test.go +++ b/experiments/experiment_test.go @@ -65,6 +65,17 @@ func newTestContext(ex *v1alpha1.Experiment, objects ...runtime.Object) *experim func(obj interface{}, duration time.Duration) {}, ) } + +func setExperimentService(template *v1alpha1.TemplateSpec) { + template.Service = &v1alpha1.TemplateService{} + template.Template.Spec.Containers[0].Ports = []corev1.ContainerPort{ + { + ContainerPort: 80, + Protocol: "TCP", + }, + } +} + func TestSetExperimentToPending(t *testing.T) { templates := generateTemplates("bar") e := newExperiment("foo", templates, "") @@ -375,7 +386,7 @@ func TestFailReplicaSetCreation(t *testing.T) { func TestFailServiceCreation(t *testing.T) { templates := generateTemplates("bad") - templates[0].Service = &v1alpha1.TemplateService{} + setExperimentService(&templates[0]) e := newExperiment("foo", templates, "") exCtx := newTestContext(e) @@ -444,7 +455,7 @@ func TestFailAddScaleDownDelayIsConflict(t *testing.T) { // TestDeleteOutdatedService verifies that outdated service for Template in templateServices map is deleted and new service is created func TestDeleteOutdatedService(t *testing.T) { templates := generateTemplates("bar") - templates[0].Service = &v1alpha1.TemplateService{} + setExperimentService(&templates[0]) ex := newExperiment("foo", templates, "") wrongService := &corev1.Service{ObjectMeta: metav1.ObjectMeta{Name: "wrong-service"}} From 31cf3d52097a8abaa307d18f3f12ea5e1329960f Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sat, 5 Nov 2022 17:12:08 +0100 Subject: [PATCH 28/28] fix e2e Signed-off-by: Alex Eftimie --- test/e2e/functional/experiment-with-service.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/test/e2e/functional/experiment-with-service.yaml b/test/e2e/functional/experiment-with-service.yaml index f1cd198708..76cbddaeed 100644 --- a/test/e2e/functional/experiment-with-service.yaml +++ b/test/e2e/functional/experiment-with-service.yaml @@ -27,5 +27,4 @@ spec: cpu: 1m ports: - protocol: TCP - port: 80 containerPort: 8080