diff --git a/pkg/api/service/testing/make.go b/pkg/api/service/testing/make.go index 177488266bf..1ba10c3338d 100644 --- a/pkg/api/service/testing/make.go +++ b/pkg/api/service/testing/make.go @@ -72,7 +72,7 @@ func SetTypeClusterIP(svc *api.Service) { // SetTypeNodePort sets the service type to NodePort and clears other fields. func SetTypeNodePort(svc *api.Service) { svc.Spec.Type = api.ServiceTypeNodePort - svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeCluster + svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyCluster svc.Spec.ExternalName = "" svc.Spec.AllocateLoadBalancerNodePorts = nil internalTrafficPolicy := api.ServiceInternalTrafficPolicyCluster @@ -82,7 +82,7 @@ func SetTypeNodePort(svc *api.Service) { // SetTypeLoadBalancer sets the service type to LoadBalancer and clears other fields. func SetTypeLoadBalancer(svc *api.Service) { svc.Spec.Type = api.ServiceTypeLoadBalancer - svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeCluster + svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyCluster svc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) svc.Spec.ExternalName = "" internalTrafficPolicy := api.ServiceInternalTrafficPolicyCluster @@ -177,14 +177,14 @@ func SetNodePorts(values ...int) Tweak { } // SetInternalTrafficPolicy sets the internalTrafficPolicy field for a Service. -func SetInternalTrafficPolicy(policy api.ServiceInternalTrafficPolicyType) Tweak { +func SetInternalTrafficPolicy(policy api.ServiceInternalTrafficPolicy) Tweak { return func(svc *api.Service) { svc.Spec.InternalTrafficPolicy = &policy } } // SetExternalTrafficPolicy sets the externalTrafficPolicy field for a Service. -func SetExternalTrafficPolicy(policy api.ServiceExternalTrafficPolicyType) Tweak { +func SetExternalTrafficPolicy(policy api.ServiceExternalTrafficPolicy) Tweak { return func(svc *api.Service) { svc.Spec.ExternalTrafficPolicy = policy } diff --git a/pkg/api/service/util.go b/pkg/api/service/util.go index a4262edad24..c73d96a6c4d 100644 --- a/pkg/api/service/util.go +++ b/pkg/api/service/util.go @@ -74,7 +74,7 @@ func RequestsOnlyLocalTraffic(service *api.Service) bool { return false } - return service.Spec.ExternalTrafficPolicy == api.ServiceExternalTrafficPolicyTypeLocal + return service.Spec.ExternalTrafficPolicy == api.ServiceExternalTrafficPolicyLocal } // NeedsHealthCheck checks if service needs health check. diff --git a/pkg/api/service/util_test.go b/pkg/api/service/util_test.go index 7006310e70e..5a308239c5c 100644 --- a/pkg/api/service/util_test.go +++ b/pkg/api/service/util_test.go @@ -152,25 +152,25 @@ func TestRequestsOnlyLocalTraffic(t *testing.T) { checkRequestsOnlyLocalTraffic(false, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeNodePort, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyCluster, }, }) checkRequestsOnlyLocalTraffic(true, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeNodePort, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyLocal, }, }) checkRequestsOnlyLocalTraffic(false, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyCluster, }, }) checkRequestsOnlyLocalTraffic(true, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyLocal, }, }) } @@ -192,25 +192,25 @@ func TestNeedsHealthCheck(t *testing.T) { checkNeedsHealthCheck(false, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeNodePort, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyCluster, }, }) checkNeedsHealthCheck(false, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeNodePort, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyLocal, }, }) checkNeedsHealthCheck(false, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyCluster, }, }) checkNeedsHealthCheck(true, &api.Service{ Spec: api.ServiceSpec{ Type: api.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyLocal, }, }) } diff --git a/pkg/api/v1/service/util.go b/pkg/api/v1/service/util.go index a88ead0d1e1..683b8ed1f7d 100644 --- a/pkg/api/v1/service/util.go +++ b/pkg/api/v1/service/util.go @@ -73,7 +73,7 @@ func ExternalPolicyLocal(service *v1.Service) bool { service.Spec.Type != v1.ServiceTypeNodePort { return false } - return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal + return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyLocal } // InternalPolicyLocal checks if service has ITP = Local. diff --git a/pkg/api/v1/service/util_test.go b/pkg/api/v1/service/util_test.go index 42510c28897..eead2cf26f3 100644 --- a/pkg/api/v1/service/util_test.go +++ b/pkg/api/v1/service/util_test.go @@ -152,25 +152,25 @@ func TestExternalPolicyLocal(t *testing.T) { checkExternalPolicyLocal(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkExternalPolicyLocal(true, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) checkExternalPolicyLocal(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkExternalPolicyLocal(true, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) } @@ -192,25 +192,25 @@ func TestNeedsHealthCheck(t *testing.T) { checkNeedsHealthCheck(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkNeedsHealthCheck(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) checkNeedsHealthCheck(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkNeedsHealthCheck(true, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) } diff --git a/pkg/apis/core/fuzzer/fuzzer.go b/pkg/apis/core/fuzzer/fuzzer.go index fbe6ab75ade..ae0ece2b8ff 100644 --- a/pkg/apis/core/fuzzer/fuzzer.go +++ b/pkg/apis/core/fuzzer/fuzzer.go @@ -293,12 +293,12 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { selected := types[c.Rand.Intn(len(types))] *p = selected }, - func(p *core.ServiceExternalTrafficPolicyType, c fuzz.Continue) { - types := []core.ServiceExternalTrafficPolicyType{core.ServiceExternalTrafficPolicyTypeCluster, core.ServiceExternalTrafficPolicyTypeLocal} + func(p *core.ServiceExternalTrafficPolicy, c fuzz.Continue) { + types := []core.ServiceExternalTrafficPolicy{core.ServiceExternalTrafficPolicyCluster, core.ServiceExternalTrafficPolicyLocal} *p = types[c.Rand.Intn(len(types))] }, - func(p *core.ServiceInternalTrafficPolicyType, c fuzz.Continue) { - types := []core.ServiceInternalTrafficPolicyType{core.ServiceInternalTrafficPolicyCluster, core.ServiceInternalTrafficPolicyLocal} + func(p *core.ServiceInternalTrafficPolicy, c fuzz.Continue) { + types := []core.ServiceInternalTrafficPolicy{core.ServiceInternalTrafficPolicyCluster, core.ServiceInternalTrafficPolicyLocal} *p = types[c.Rand.Intn(len(types))] }, func(ct *core.Container, c fuzz.Continue) { diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go index fbbecb00d58..c6bb2fb2bce 100644 --- a/pkg/apis/core/types.go +++ b/pkg/apis/core/types.go @@ -3781,33 +3781,33 @@ const ( ServiceTypeExternalName ServiceType = "ExternalName" ) -// ServiceInternalTrafficPolicyType describes the endpoint-selection policy for +// ServiceInternalTrafficPolicy describes the endpoint-selection policy for // traffic sent to the ClusterIP. -type ServiceInternalTrafficPolicyType string +type ServiceInternalTrafficPolicy string const ( // ServiceInternalTrafficPolicyCluster routes traffic to all endpoints. - ServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicyType = "Cluster" + ServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicy = "Cluster" // ServiceInternalTrafficPolicyLocal routes traffic only to endpoints on the same // node as the traffic was received on (dropping the traffic if there are no // local endpoints). - ServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicyType = "Local" + ServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicy = "Local" ) -// ServiceExternalTrafficPolicyType describes the endpoint-selection policy for +// ServiceExternalTrafficPolicy describes the endpoint-selection policy for // traffic to external service entrypoints (NodePorts, ExternalIPs, and // LoadBalancer IPs). -type ServiceExternalTrafficPolicyType string +type ServiceExternalTrafficPolicy string const ( - // ServiceExternalTrafficPolicyTypeCluster routes traffic to all endpoints. - ServiceExternalTrafficPolicyTypeCluster ServiceExternalTrafficPolicyType = "Cluster" + // ServiceExternalTrafficPolicyCluster routes traffic to all endpoints. + ServiceExternalTrafficPolicyCluster ServiceExternalTrafficPolicy = "Cluster" - // ServiceExternalTrafficPolicyTypeLocal preserves the source IP of the traffic by + // ServiceExternalTrafficPolicyLocal preserves the source IP of the traffic by // routing only to endpoints on the same node as the traffic was received on // (dropping the traffic if there are no local endpoints). - ServiceExternalTrafficPolicyTypeLocal ServiceExternalTrafficPolicyType = "Local" + ServiceExternalTrafficPolicyLocal ServiceExternalTrafficPolicy = "Local" ) // These are the valid conditions of a service. @@ -4013,7 +4013,7 @@ type ServiceSpec struct { // a NodePort from within the cluster may need to take traffic policy into account // when picking a node. // +optional - ExternalTrafficPolicy ServiceExternalTrafficPolicyType + ExternalTrafficPolicy ServiceExternalTrafficPolicy // healthCheckNodePort specifies the healthcheck nodePort for the service. // If not specified, HealthCheckNodePort is created by the service api @@ -4064,7 +4064,7 @@ type ServiceSpec struct { // "Cluster", uses the standard behavior of routing to all endpoints evenly // (possibly modified by topology and other features). // +optional - InternalTrafficPolicy *ServiceInternalTrafficPolicyType + InternalTrafficPolicy *ServiceInternalTrafficPolicy } // ServicePort represents the port on which the service is exposed diff --git a/pkg/apis/core/v1/defaults.go b/pkg/apis/core/v1/defaults.go index b42221691fa..06af99974e8 100644 --- a/pkg/apis/core/v1/defaults.go +++ b/pkg/apis/core/v1/defaults.go @@ -125,7 +125,7 @@ func SetDefaults_Service(obj *v1.Service) { if (obj.Spec.Type == v1.ServiceTypeNodePort || obj.Spec.Type == v1.ServiceTypeLoadBalancer) && obj.Spec.ExternalTrafficPolicy == "" { - obj.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster + obj.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyCluster } if obj.Spec.InternalTrafficPolicy == nil { diff --git a/pkg/apis/core/v1/defaults_test.go b/pkg/apis/core/v1/defaults_test.go index 3a93eff021b..c05cf8b9218 100644 --- a/pkg/apis/core/v1/defaults_test.go +++ b/pkg/apis/core/v1/defaults_test.go @@ -1431,15 +1431,15 @@ func TestSetDefaultServiceExternalTraffic(t *testing.T) { in = &v1.Service{Spec: v1.ServiceSpec{Type: v1.ServiceTypeNodePort}} obj = roundTrip(t, runtime.Object(in)) out = obj.(*v1.Service) - if out.Spec.ExternalTrafficPolicy != v1.ServiceExternalTrafficPolicyTypeCluster { - t.Errorf("Expected ExternalTrafficPolicy to be %v, got %v", v1.ServiceExternalTrafficPolicyTypeCluster, out.Spec.ExternalTrafficPolicy) + if out.Spec.ExternalTrafficPolicy != v1.ServiceExternalTrafficPolicyCluster { + t.Errorf("Expected ExternalTrafficPolicy to be %v, got %v", v1.ServiceExternalTrafficPolicyCluster, out.Spec.ExternalTrafficPolicy) } in = &v1.Service{Spec: v1.ServiceSpec{Type: v1.ServiceTypeLoadBalancer}} obj = roundTrip(t, runtime.Object(in)) out = obj.(*v1.Service) - if out.Spec.ExternalTrafficPolicy != v1.ServiceExternalTrafficPolicyTypeCluster { - t.Errorf("Expected ExternalTrafficPolicy to be %v, got %v", v1.ServiceExternalTrafficPolicyTypeCluster, out.Spec.ExternalTrafficPolicy) + if out.Spec.ExternalTrafficPolicy != v1.ServiceExternalTrafficPolicyCluster { + t.Errorf("Expected ExternalTrafficPolicy to be %v, got %v", v1.ServiceExternalTrafficPolicyCluster, out.Spec.ExternalTrafficPolicy) } } @@ -1859,7 +1859,7 @@ func TestSetDefaultServiceInternalTrafficPolicy(t *testing.T) { local := v1.ServiceInternalTrafficPolicyLocal testCases := []struct { name string - expectedInternalTrafficPolicy *v1.ServiceInternalTrafficPolicyType + expectedInternalTrafficPolicy *v1.ServiceInternalTrafficPolicy svc v1.Service }{ { diff --git a/pkg/apis/core/v1/zz_generated.conversion.go b/pkg/apis/core/v1/zz_generated.conversion.go index c27a86783ba..fcea1fe5db0 100644 --- a/pkg/apis/core/v1/zz_generated.conversion.go +++ b/pkg/apis/core/v1/zz_generated.conversion.go @@ -7850,7 +7850,7 @@ func autoConvert_v1_ServiceSpec_To_core_ServiceSpec(in *v1.ServiceSpec, out *cor out.LoadBalancerIP = in.LoadBalancerIP out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges)) out.ExternalName = in.ExternalName - out.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) + out.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicy(in.ExternalTrafficPolicy) out.HealthCheckNodePort = in.HealthCheckNodePort out.PublishNotReadyAddresses = in.PublishNotReadyAddresses out.SessionAffinityConfig = (*core.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig)) @@ -7858,7 +7858,7 @@ func autoConvert_v1_ServiceSpec_To_core_ServiceSpec(in *v1.ServiceSpec, out *cor out.IPFamilyPolicy = (*core.IPFamilyPolicy)(unsafe.Pointer(in.IPFamilyPolicy)) out.AllocateLoadBalancerNodePorts = (*bool)(unsafe.Pointer(in.AllocateLoadBalancerNodePorts)) out.LoadBalancerClass = (*string)(unsafe.Pointer(in.LoadBalancerClass)) - out.InternalTrafficPolicy = (*core.ServiceInternalTrafficPolicyType)(unsafe.Pointer(in.InternalTrafficPolicy)) + out.InternalTrafficPolicy = (*core.ServiceInternalTrafficPolicy)(unsafe.Pointer(in.InternalTrafficPolicy)) return nil } @@ -7881,12 +7881,12 @@ func autoConvert_core_ServiceSpec_To_v1_ServiceSpec(in *core.ServiceSpec, out *v out.SessionAffinity = v1.ServiceAffinity(in.SessionAffinity) out.SessionAffinityConfig = (*v1.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig)) out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges)) - out.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) + out.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicy(in.ExternalTrafficPolicy) out.HealthCheckNodePort = in.HealthCheckNodePort out.PublishNotReadyAddresses = in.PublishNotReadyAddresses out.AllocateLoadBalancerNodePorts = (*bool)(unsafe.Pointer(in.AllocateLoadBalancerNodePorts)) out.LoadBalancerClass = (*string)(unsafe.Pointer(in.LoadBalancerClass)) - out.InternalTrafficPolicy = (*v1.ServiceInternalTrafficPolicyType)(unsafe.Pointer(in.InternalTrafficPolicy)) + out.InternalTrafficPolicy = (*v1.ServiceInternalTrafficPolicy)(unsafe.Pointer(in.InternalTrafficPolicy)) return nil } diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index d53339863b3..313769a98ab 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -4744,7 +4744,7 @@ var supportedSessionAffinityType = sets.NewString(string(core.ServiceAffinityCli var supportedServiceType = sets.NewString(string(core.ServiceTypeClusterIP), string(core.ServiceTypeNodePort), string(core.ServiceTypeLoadBalancer), string(core.ServiceTypeExternalName)) -var supportedServiceInternalTrafficPolicy = sets.NewString(string(core.ServiceInternalTrafficPolicyCluster), string(core.ServiceExternalTrafficPolicyTypeLocal)) +var supportedServiceInternalTrafficPolicy = sets.NewString(string(core.ServiceInternalTrafficPolicyCluster), string(core.ServiceExternalTrafficPolicyLocal)) var supportedServiceIPFamily = sets.NewString(string(core.IPv4Protocol), string(core.IPv6Protocol)) var supportedServiceIPFamilyPolicy = sets.NewString(string(core.IPFamilyPolicySingleStack), string(core.IPFamilyPolicyPreferDualStack), string(core.IPFamilyPolicyRequireDualStack)) @@ -4976,8 +4976,8 @@ func needsExternalTrafficPolicy(svc *core.Service) bool { } var validExternalTrafficPolicies = sets.NewString( - string(core.ServiceExternalTrafficPolicyTypeCluster), - string(core.ServiceExternalTrafficPolicyTypeLocal)) + string(core.ServiceExternalTrafficPolicyCluster), + string(core.ServiceExternalTrafficPolicyLocal)) func validateServiceExternalTrafficPolicy(service *core.Service) field.ErrorList { allErrs := field.ErrorList{} diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index bf669a7fbf3..a617f186dd4 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -13060,7 +13060,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid load balancer protocol UDP 1", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports[0].Protocol = "UDP" }, @@ -13070,7 +13070,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid load balancer protocol UDP 2", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports[0] = core.ServicePort{Name: "q", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(12345)} }, @@ -13080,7 +13080,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "load balancer with mix protocol", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(12345)}) }, @@ -13135,7 +13135,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type - loadbalancer", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) }, numErrs: 0, @@ -13144,7 +13144,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type - loadbalancer with allocateLoadBalancerNodePorts=false", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(false) }, numErrs: 0, @@ -13153,7 +13153,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "invalid type - missing AllocateLoadBalancerNodePorts for loadbalancer type", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster }, numErrs: 1, }, @@ -13161,7 +13161,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type loadbalancer 2 ports", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, @@ -13171,7 +13171,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid external load balancer 2 ports", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, @@ -13181,7 +13181,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "duplicate nodeports", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "r", Port: 2, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(2)}) }, @@ -13191,7 +13191,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "duplicate nodeports (different protocols)", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "r", Port: 2, Protocol: "UDP", NodePort: 1, TargetPort: intstr.FromInt(2)}) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "s", Port: 3, Protocol: "SCTP", NodePort: 1, TargetPort: intstr.FromInt(3)}) @@ -13228,7 +13228,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type - nodeport", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster }, numErrs: 0, }, @@ -13236,7 +13236,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type - loadbalancer with allocateLoadBalancerNodePorts=true", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) }, numErrs: 0, @@ -13245,7 +13245,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type loadbalancer 2 ports", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, @@ -13255,7 +13255,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type loadbalancer with NodePort", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) }, @@ -13265,7 +13265,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type=NodePort service with NodePort", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, @@ -13274,7 +13274,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type=NodePort service without NodePort", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, @@ -13299,7 +13299,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "invalid public service with duplicate NodePort", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "p1", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "p2", Port: 2, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(2)}) }, @@ -13309,7 +13309,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid type=LoadBalancer", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, @@ -13321,7 +13321,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "invalid port type=LoadBalancer", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "kubelet", Port: 10250, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, @@ -13331,7 +13331,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid LoadBalancer source range annotation", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Annotations[core.AnnotationLoadBalancerSourceRangesKey] = "1.2.3.4/8, 5.6.7.8/16" }, @@ -13341,7 +13341,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "empty LoadBalancer source range annotation", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Annotations[core.AnnotationLoadBalancerSourceRangesKey] = "" }, @@ -13358,7 +13358,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "invalid LoadBalancer source range annotation (invalid CIDR)", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Annotations[core.AnnotationLoadBalancerSourceRangesKey] = "1.2.3.4/33" }, @@ -13375,7 +13375,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid LoadBalancer source range", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.LoadBalancerSourceRanges = []string{"1.2.3.4/8", "5.6.7.8/16"} }, @@ -13385,7 +13385,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "empty LoadBalancer source range", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.LoadBalancerSourceRanges = []string{" "} }, @@ -13395,7 +13395,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "invalid LoadBalancer source range", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.LoadBalancerSourceRanges = []string{"foo.bar"} }, @@ -13451,7 +13451,7 @@ func TestValidateServiceCreate(t *testing.T) { s.Spec.ClusterIP = "None" s.Spec.ClusterIPs = []string{"None"} s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) }, numErrs: 1, @@ -13460,7 +13460,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "invalid node port with clusterIP None", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) s.Spec.ClusterIP = "None" s.Spec.ClusterIPs = []string{"None"} @@ -13510,7 +13510,7 @@ func TestValidateServiceCreate(t *testing.T) { { name: "invalid internalTraffic field", tweakSvc: func(s *core.Service) { - invalid := core.ServiceInternalTrafficPolicyType("invalid") + invalid := core.ServiceInternalTrafficPolicy("invalid") s.Spec.InternalTrafficPolicy = &invalid }, numErrs: 1, @@ -13536,7 +13536,7 @@ func TestValidateServiceCreate(t *testing.T) { tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyLocal s.Spec.HealthCheckNodePort = -1 }, numErrs: 1, @@ -13546,7 +13546,7 @@ func TestValidateServiceCreate(t *testing.T) { tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyLocal s.Spec.HealthCheckNodePort = 31100 }, numErrs: 0, @@ -13569,7 +13569,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "sessionAffinityConfig can't be set when session affinity is None", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.SessionAffinity = core.ServiceAffinityNone s.Spec.SessionAffinityConfig = &core.SessionAffinityConfig{ @@ -14023,7 +14023,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "valid LoadBalancerClass when type is LoadBalancer", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-load-balancer-class") }, @@ -14033,7 +14033,7 @@ func TestValidateServiceCreate(t *testing.T) { name: "invalid LoadBalancerClass", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) s.Spec.LoadBalancerClass = utilpointer.StringPtr("Bad/LoadBalancerClass") }, @@ -14075,7 +14075,7 @@ func TestValidateServiceExternalTrafficPolicy(t *testing.T) { tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyLocal s.Spec.HealthCheckNodePort = 34567 }, numErrs: 0, @@ -14084,7 +14084,7 @@ func TestValidateServiceExternalTrafficPolicy(t *testing.T) { name: "valid nodePort service with externalTrafficPolicy set", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyLocal }, numErrs: 0, }, @@ -14100,7 +14100,7 @@ func TestValidateServiceExternalTrafficPolicy(t *testing.T) { tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster s.Spec.HealthCheckNodePort = 34567 }, numErrs: 1, @@ -14109,7 +14109,7 @@ func TestValidateServiceExternalTrafficPolicy(t *testing.T) { name: "cannot set healthCheckNodePort field on nodePort service", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyLocal s.Spec.HealthCheckNodePort = 34567 }, numErrs: 1, @@ -14118,7 +14118,7 @@ func TestValidateServiceExternalTrafficPolicy(t *testing.T) { name: "cannot set externalTrafficPolicy or healthCheckNodePort fields on clusterIP service", tweakSvc: func(s *core.Service) { s.Spec.Type = core.ServiceTypeClusterIP - s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyLocal s.Spec.HealthCheckNodePort = 34567 }, numErrs: 2, @@ -15633,7 +15633,7 @@ func TestValidateServiceUpdate(t *testing.T) { name: "change type", tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) }, numErrs: 0, @@ -15649,7 +15649,7 @@ func TestValidateServiceUpdate(t *testing.T) { name: "change type -> nodeport", tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster }, numErrs: 0, }, @@ -15659,7 +15659,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerSourceRanges = []string{"10.0.0.0/8"} }, @@ -15672,7 +15672,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) oldSvc.Spec.LoadBalancerSourceRanges = []string{"10.0.0.0/8"} newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerSourceRanges = []string{"10.100.0.0/16"} }, @@ -15684,7 +15684,7 @@ func TestValidateServiceUpdate(t *testing.T) { newSvc.Spec.ClusterIP = "None" newSvc.Spec.ClusterIPs = []string{"None"} newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) }, numErrs: 1, @@ -15758,7 +15758,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeClusterIP newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster oldSvc.Spec.ClusterIP = "1.2.3.4" oldSvc.Spec.ClusterIPs = []string{"1.2.3.4"} @@ -15773,7 +15773,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeClusterIP newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster oldSvc.Spec.ClusterIP = "" oldSvc.Spec.ClusterIPs = nil @@ -15788,7 +15788,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeClusterIP newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) oldSvc.Spec.ClusterIP = "1.2.3.4" @@ -15804,7 +15804,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeClusterIP newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) oldSvc.Spec.ClusterIP = "" @@ -15821,7 +15821,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(false) }, numErrs: 0, @@ -15832,7 +15832,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(false) newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) }, numErrs: 0, @@ -15842,7 +15842,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeNodePort newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster oldSvc.Spec.ClusterIP = "1.2.3.4" oldSvc.Spec.ClusterIPs = []string{"1.2.3.4"} @@ -15857,7 +15857,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeNodePort newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster oldSvc.Spec.ClusterIP = "" oldSvc.Spec.ClusterIPs = nil @@ -15900,7 +15900,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeNodePort newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) oldSvc.Spec.ClusterIP = "1.2.3.4" @@ -15916,7 +15916,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeNodePort newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) oldSvc.Spec.ClusterIP = "" @@ -15933,7 +15933,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) oldSvc.Spec.ClusterIP = "1.2.3.4" @@ -15950,7 +15950,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) oldSvc.Spec.ClusterIP = "" @@ -15997,7 +15997,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster oldSvc.Spec.ClusterIP = "1.2.3.4" oldSvc.Spec.ClusterIPs = []string{"1.2.3.4"} @@ -16013,7 +16013,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster oldSvc.Spec.ClusterIP = "" oldSvc.Spec.ClusterIPs = nil @@ -16056,7 +16056,7 @@ func TestValidateServiceUpdate(t *testing.T) { tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.Type = core.ServiceTypeNodePort newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster oldSvc.Spec.Ports = append(oldSvc.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) newSvc.Spec.Ports = append(newSvc.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) @@ -16509,7 +16509,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-old") newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-old") }, @@ -16523,7 +16523,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-old") newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-new") }, @@ -16537,7 +16537,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-old") newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerClass = nil }, @@ -16551,7 +16551,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.LoadBalancerClass = nil newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-new") }, @@ -16563,7 +16563,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeClusterIP newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-load-balancer-class") }, @@ -16575,7 +16575,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeClusterIP newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerClass = nil }, @@ -16587,7 +16587,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeClusterIP newSvc.Spec.Type = core.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(true) newSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("Bad/LoadBalancerclass") }, @@ -16619,7 +16619,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.Type = core.ServiceTypeNodePort newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-load-balancer-class") }, numErrs: 2, @@ -16656,7 +16656,7 @@ func TestValidateServiceUpdate(t *testing.T) { oldSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-load-balancer-class") newSvc.Spec.Type = core.ServiceTypeNodePort - newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster + newSvc.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyCluster newSvc.Spec.LoadBalancerClass = utilpointer.StringPtr("test.com/test-load-balancer-class") }, numErrs: 2, diff --git a/pkg/apis/core/zz_generated.deepcopy.go b/pkg/apis/core/zz_generated.deepcopy.go index 857843371a3..919cf338f4e 100644 --- a/pkg/apis/core/zz_generated.deepcopy.go +++ b/pkg/apis/core/zz_generated.deepcopy.go @@ -5502,7 +5502,7 @@ func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { } if in.InternalTrafficPolicy != nil { in, out := &in.InternalTrafficPolicy, &out.InternalTrafficPolicy - *out = new(ServiceInternalTrafficPolicyType) + *out = new(ServiceInternalTrafficPolicy) **out = **in } return diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go index b1cde8477f3..3cea219b64b 100644 --- a/pkg/generated/openapi/zz_generated.openapi.go +++ b/pkg/generated/openapi/zz_generated.openapi.go @@ -26359,10 +26359,10 @@ func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.O }, "externalTrafficPolicy": { SchemaProps: spec.SchemaProps{ - Description: "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\n\nPossible enum values:\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"` preserves the source IP of the traffic by routing only to endpoints on the same node as the traffic was received on (dropping the traffic if there are no local endpoints).", + Description: "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\n\nPossible enum values:\n - `\"Cluster\"`\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"`\n - `\"Local\"` preserves the source IP of the traffic by routing only to endpoints on the same node as the traffic was received on (dropping the traffic if there are no local endpoints).", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Cluster", "Local"}}, + Enum: []interface{}{"Cluster", "Cluster", "Local", "Local"}}, }, "healthCheckNodePort": { SchemaProps: spec.SchemaProps{ diff --git a/pkg/proxy/iptables/proxier_test.go b/pkg/proxy/iptables/proxier_test.go index 963fc5a14de..61b89a05be9 100644 --- a/pkg/proxy/iptables/proxier_test.go +++ b/pkg/proxy/iptables/proxier_test.go @@ -158,7 +158,7 @@ func TestDeleteEndpointConnectionsIPv4(t *testing.T) { Port: tc.svcPort, Protocol: tc.protocol, }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -301,7 +301,7 @@ func TestDeleteEndpointConnectionsIPv6(t *testing.T) { Port: tc.svcPort, Protocol: tc.protocol, }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -1814,7 +1814,7 @@ func TestOverallIPTablesRulesWithMultipleServices(t *testing.T) { // create LoadBalancer service with Local traffic policy makeTestService("ns2", "svc2", func(svc *v1.Service) { svc.Spec.Type = "LoadBalancer" - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.ClusterIP = "172.30.0.42" svc.Spec.Ports = []v1.ServicePort{{ Name: "p80", @@ -1854,7 +1854,7 @@ func TestOverallIPTablesRulesWithMultipleServices(t *testing.T) { // create LoadBalancer service with Cluster traffic policy and source ranges makeTestService("ns5", "svc5", func(svc *v1.Service) { svc.Spec.Type = "LoadBalancer" - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyCluster svc.Spec.ClusterIP = "172.30.0.45" svc.Spec.Ports = []v1.ServicePort{{ Name: "p80", @@ -2559,7 +2559,7 @@ func TestHealthCheckNodePort(t *testing.T) { NodePort: int32(svcNodePort), }} svc.Spec.HealthCheckNodePort = int32(svcHealthCheckNodePort) - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }) makeServiceMap(fp, svc) fp.syncProxyRules() @@ -2743,7 +2743,7 @@ func TestOnlyLocalExternalIPs(t *testing.T) { makeServiceMap(fp, makeTestService(svcPortName.Namespace, svcPortName.Name, func(svc *v1.Service) { svc.Spec.Type = "NodePort" - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.ClusterIP = svcIP svc.Spec.ExternalIPs = []string{svcExternalIPs} svc.Spec.Ports = []v1.ServicePort{{ @@ -3054,7 +3054,7 @@ func TestLoadBalancerReject(t *testing.T) { svc.Status.LoadBalancer.Ingress = []v1.LoadBalancerIngress{{ IP: svcLBIP, }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP svc.Spec.SessionAffinityConfig = &v1.SessionAffinityConfig{ ClientIP: &v1.ClientIPConfig{TimeoutSeconds: &svcSessionAffinityTimeout}, @@ -3147,7 +3147,7 @@ func TestOnlyLocalLoadBalancing(t *testing.T) { svc.Status.LoadBalancer.Ingress = []v1.LoadBalancerIngress{{ IP: svcLBIP, }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP svc.Spec.SessionAffinityConfig = &v1.SessionAffinityConfig{ ClientIP: &v1.ClientIPConfig{TimeoutSeconds: &svcSessionAffinityTimeout}, @@ -3319,7 +3319,7 @@ func TestEnableLocalhostNodePortsIPv4(t *testing.T) { Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -3413,7 +3413,7 @@ func TestDisableLocalhostNodePortsIPv4(t *testing.T) { Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -3508,7 +3508,7 @@ func TestDisableLocalhostNodePortsIPv4WithNodeAddress(t *testing.T) { Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -3602,7 +3602,7 @@ func TestEnableLocalhostNodePortsIPv6(t *testing.T) { Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -3696,7 +3696,7 @@ func TestDisableLocalhostNodePortsIPv6(t *testing.T) { Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -3844,7 +3844,7 @@ func onlyLocalNodePorts(t *testing.T, fp *Proxier, ipt *iptablestest.FakeIPTable Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -4026,7 +4026,7 @@ func TestBuildServiceMapAddRemove(t *testing.T) { {IP: "5.6.7.8"}, }, } - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = 345 }), } @@ -4169,7 +4169,7 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { {IP: "1.2.3.4"}, }, } - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = 345 }) @@ -5620,7 +5620,7 @@ func TestInternalTrafficPolicyE2E(t *testing.T) { testCases := []struct { name string line int - internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType + internalTrafficPolicy *v1.ServiceInternalTrafficPolicy featureGateOn bool endpoints []endpoint expectEndpointRule bool @@ -5830,7 +5830,7 @@ func TestEndpointSliceWithTerminatingEndpointsTrafficPolicyLocal(t *testing.T) { Spec: v1.ServiceSpec{ ClusterIP: "172.30.1.1", Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, Selector: map[string]string{"foo": "bar"}, Ports: []v1.ServicePort{ { @@ -6615,7 +6615,7 @@ func TestEndpointSliceWithTerminatingEndpointsTrafficPolicyCluster(t *testing.T) Spec: v1.ServiceSpec{ ClusterIP: "172.30.1.1", Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, Selector: map[string]string{"foo": "bar"}, Ports: []v1.ServicePort{ { @@ -7383,7 +7383,7 @@ func TestInternalExternalMasquerade(t *testing.T) { NodePort: int32(3002), }} svc.Spec.HealthCheckNodePort = 30002 - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Status.LoadBalancer.Ingress = []v1.LoadBalancerIngress{{ IP: "5.6.7.8", }} @@ -8637,13 +8637,13 @@ func TestNoEndpointsMetric(t *testing.T) { } internalTrafficPolicyLocal := v1.ServiceInternalTrafficPolicyLocal - externalTrafficPolicyLocal := v1.ServiceExternalTrafficPolicyTypeLocal + externalTrafficPolicyLocal := v1.ServiceExternalTrafficPolicyLocal metrics.RegisterMetrics() testCases := []struct { name string - internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType - externalTrafficPolicy v1.ServiceExternalTrafficPolicyType + internalTrafficPolicy *v1.ServiceInternalTrafficPolicy + externalTrafficPolicy v1.ServiceExternalTrafficPolicy endpoints []endpoint expectedSyncProxyRulesNoLocalEndpointsTotalInternal int expectedSyncProxyRulesNoLocalEndpointsTotalExternal int diff --git a/pkg/proxy/ipvs/proxier_test.go b/pkg/proxy/ipvs/proxier_test.go index c486415dacf..87ffac52225 100644 --- a/pkg/proxy/ipvs/proxier_test.go +++ b/pkg/proxy/ipvs/proxier_test.go @@ -900,7 +900,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: v1.ProtocolSCTP, NodePort: int32(3001), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), }, endpoints: []*discovery.EndpointSlice{ @@ -1932,7 +1932,7 @@ func TestOnlyLocalExternalIPs(t *testing.T) { Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(svcPort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) epIP := "10.180.0.1" @@ -2098,7 +2098,7 @@ func TestOnlyLocalNodePorts(t *testing.T) { Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -2198,14 +2198,14 @@ func TestHealthCheckNodePort(t *testing.T) { Protocol: v1.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }) svc1, svc2, invalidSvc3 := *sampleSvc, *sampleSvc, *sampleSvc svc1.Name, svc1.Spec.HealthCheckNodePort = "valid-svc1", 30000 svc2.Name, svc2.Spec.HealthCheckNodePort = "valid-svc2", 30001 // make svc3 invalid by setting external traffic policy to cluster - invalidSvc3.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster + invalidSvc3.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyCluster invalidSvc3.Name, invalidSvc3.Spec.HealthCheckNodePort = "invalid-svc3", 30002 makeServiceMap(fp, @@ -2453,7 +2453,7 @@ func TestOnlyLocalLoadBalancing(t *testing.T) { svc.Status.LoadBalancer.Ingress = []v1.LoadBalancerIngress{{ IP: svcLBIP, }} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }), ) @@ -2591,7 +2591,7 @@ func TestBuildServiceMapAddRemove(t *testing.T) { {IP: "10.1.2.3"}, }, } - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = 345 }), } @@ -2745,7 +2745,7 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { {IP: "10.1.2.3"}, }, } - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = 345 }) @@ -4593,7 +4593,7 @@ func TestHealthCheckNodePortE2E(t *testing.T) { Ports: []v1.ServicePort{{Name: "", TargetPort: intstr.FromInt(80), Protocol: v1.ProtocolTCP}}, Type: "LoadBalancer", HealthCheckNodePort: 30000, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, } fp.OnServiceAdd(&svc) @@ -4805,7 +4805,7 @@ func TestTestInternalTrafficPolicyE2E(t *testing.T) { testCases := []struct { name string - internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType + internalTrafficPolicy *v1.ServiceInternalTrafficPolicy endpoints []endpoint expectVirtualServer bool expectLocalEntries bool @@ -4994,7 +4994,7 @@ func Test_EndpointSliceReadyAndTerminatingCluster(t *testing.T) { ClusterIP: "172.20.1.1", Selector: map[string]string{"foo": "bar"}, Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, InternalTrafficPolicy: &clusterInternalTrafficPolicy, ExternalIPs: []string{ "1.2.3.4", @@ -5171,7 +5171,7 @@ func Test_EndpointSliceReadyAndTerminatingLocal(t *testing.T) { ClusterIP: "172.20.1.1", Selector: map[string]string{"foo": "bar"}, Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, InternalTrafficPolicy: &clusterInternalTrafficPolicy, ExternalIPs: []string{ "1.2.3.4", @@ -5347,7 +5347,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingCluster(t *testing.T) { ClusterIP: "172.20.1.1", Selector: map[string]string{"foo": "bar"}, Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, InternalTrafficPolicy: &clusterInternalTrafficPolicy, ExternalIPs: []string{ "1.2.3.4", @@ -5523,7 +5523,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocal(t *testing.T) { ClusterIP: "172.20.1.1", Selector: map[string]string{"foo": "bar"}, Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, InternalTrafficPolicy: &clusterInternalTrafficPolicy, ExternalIPs: []string{ "1.2.3.4", @@ -5696,7 +5696,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocalWithFeatureGateDisabled(t *te ClusterIP: "172.20.1.1", Selector: map[string]string{"foo": "bar"}, Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, InternalTrafficPolicy: &clusterInternalTrafficPolicy, ExternalIPs: []string{ "1.2.3.4", @@ -5942,13 +5942,13 @@ func TestNoEndpointsMetric(t *testing.T) { } internalTrafficPolicyLocal := v1.ServiceInternalTrafficPolicyLocal - externalTrafficPolicyLocal := v1.ServiceExternalTrafficPolicyTypeLocal + externalTrafficPolicyLocal := v1.ServiceExternalTrafficPolicyLocal metrics.RegisterMetrics() testCases := []struct { name string - internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType - externalTrafficPolicy v1.ServiceExternalTrafficPolicyType + internalTrafficPolicy *v1.ServiceInternalTrafficPolicy + externalTrafficPolicy v1.ServiceExternalTrafficPolicy endpoints []endpoint expectedSyncProxyRulesNoLocalEndpointsTotalInternal int expectedSyncProxyRulesNoLocalEndpointsTotalExternal int diff --git a/pkg/proxy/service.go b/pkg/proxy/service.go index a53a299f548..ba22d0cf8db 100644 --- a/pkg/proxy/service.go +++ b/pkg/proxy/service.go @@ -52,7 +52,7 @@ type BaseServicePortInfo struct { healthCheckNodePort int externalPolicyLocal bool internalPolicyLocal bool - internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType + internalTrafficPolicy *v1.ServiceInternalTrafficPolicy hintsAnnotation string } @@ -128,7 +128,7 @@ func (bsvcPortInfo *BaseServicePortInfo) InternalPolicyLocal() bool { } // InternalTrafficPolicy is part of ServicePort interface -func (bsvcPortInfo *BaseServicePortInfo) InternalTrafficPolicy() *v1.ServiceInternalTrafficPolicyType { +func (bsvcPortInfo *BaseServicePortInfo) InternalTrafficPolicy() *v1.ServiceInternalTrafficPolicy { return bsvcPortInfo.internalTrafficPolicy } diff --git a/pkg/proxy/service_test.go b/pkg/proxy/service_test.go index 885d8de7db2..8e3222eac29 100644 --- a/pkg/proxy/service_test.go +++ b/pkg/proxy/service_test.go @@ -200,7 +200,7 @@ func TestServiceToServiceMap(t *testing.T) { svc.Spec.Ports = addTestPort(svc.Spec.Ports, "portx", "UDP", 8677, 30063, 7002) svc.Spec.Ports = addTestPort(svc.Spec.Ports, "porty", "UDP", 8678, 30064, 7003) svc.Status.LoadBalancer.Ingress = []v1.LoadBalancerIngress{{IP: "10.1.2.3"}} - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = 345 }), expected: map[ServicePortName]*BaseServicePortInfo{ @@ -651,7 +651,7 @@ func TestBuildServiceMapAddRemove(t *testing.T) { {IP: "10.1.2.3"}, }, } - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = 345 }), } @@ -751,7 +751,7 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { {IP: "10.1.2.3"}, }, } - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = 345 }) diff --git a/pkg/proxy/types.go b/pkg/proxy/types.go index 956447dc808..30e035a6e63 100644 --- a/pkg/proxy/types.go +++ b/pkg/proxy/types.go @@ -88,7 +88,7 @@ type ServicePort interface { // InternalPolicyLocal returns if a service has only node local endpoints for internal traffic. InternalPolicyLocal() bool // InternalTrafficPolicy returns service InternalTrafficPolicy - InternalTrafficPolicy() *v1.ServiceInternalTrafficPolicyType + InternalTrafficPolicy() *v1.ServiceInternalTrafficPolicy // HintsAnnotation returns the value of the v1.AnnotationTopologyAwareHints annotation. HintsAnnotation() string // ExternallyAccessible returns true if the service port is reachable via something diff --git a/pkg/proxy/winkernel/proxier.go b/pkg/proxy/winkernel/proxier.go index 2efc6f0cd44..236fcf0897f 100644 --- a/pkg/proxy/winkernel/proxier.go +++ b/pkg/proxy/winkernel/proxier.go @@ -462,7 +462,7 @@ func (refCountMap endPointsReferenceCountMap) getRefCount(hnsID string) *uint16 func (proxier *Proxier) newServiceInfo(port *v1.ServicePort, service *v1.Service, bsvcPortInfo *proxy.BaseServicePortInfo) proxy.ServicePort { info := &serviceInfo{BaseServicePortInfo: bsvcPortInfo} preserveDIP := service.Annotations["preserve-destination"] == "true" - localTrafficDSR := service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal + localTrafficDSR := service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyLocal err := hcn.DSRSupported() if err != nil { preserveDIP = false diff --git a/pkg/proxy/winkernel/proxier_test.go b/pkg/proxy/winkernel/proxier_test.go index 46a3d4fba81..b5677d995f7 100644 --- a/pkg/proxy/winkernel/proxier_test.go +++ b/pkg/proxy/winkernel/proxier_test.go @@ -740,7 +740,7 @@ func TestCreateDsrLoadBalancer(t *testing.T) { makeTestService(svcPortName.Namespace, svcPortName.Name, func(svc *v1.Service) { svc.Spec.Type = "NodePort" svc.Spec.ClusterIP = svcIP - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.Ports = []v1.ServicePort{{ Name: svcPortName.Port, Port: int32(svcPort), diff --git a/pkg/registry/core/service/storage/storage.go b/pkg/registry/core/service/storage/storage.go index 4ee5428e819..12d44aaf834 100644 --- a/pkg/registry/core/service/storage/storage.go +++ b/pkg/registry/core/service/storage/storage.go @@ -652,7 +652,7 @@ func needsHCNodePort(svc *api.Service) bool { if svc.Spec.Type != api.ServiceTypeLoadBalancer { return false } - if svc.Spec.ExternalTrafficPolicy != api.ServiceExternalTrafficPolicyTypeLocal { + if svc.Spec.ExternalTrafficPolicy != api.ServiceExternalTrafficPolicyLocal { return false } return true diff --git a/pkg/registry/core/service/storage/storage_test.go b/pkg/registry/core/service/storage/storage_test.go index 1345ed519fa..b9cb164d00c 100644 --- a/pkg/registry/core/service/storage/storage_test.go +++ b/pkg/registry/core/service/storage/storage_test.go @@ -436,13 +436,13 @@ func TestPatchAllocatedValues(t *testing.T) { name: "all_patched", before: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetClusterIPs("10.0.0.93", "2000::76"), svctest.SetUniqueNodePorts, svctest.SetHealthCheckNodePort(31234)), update: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectSameClusterIPs: true, expectSameNodePort: true, expectSameHCNP: true, @@ -474,13 +474,13 @@ func TestPatchAllocatedValues(t *testing.T) { name: "HCNP_patched", before: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetClusterIPs("10.0.0.93", "2000::76"), svctest.SetUniqueNodePorts, svctest.SetHealthCheckNodePort(31234)), update: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetClusterIPs("10.0.0.93", "2000::76"), svctest.SetUniqueNodePorts), expectSameClusterIPs: true, @@ -491,13 +491,13 @@ func TestPatchAllocatedValues(t *testing.T) { before: svctest.MakeService("foo", svctest.SetTypeExternalName, // these are not valid, but prove the test - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetClusterIPs("10.0.0.93", "2000::76"), svctest.SetUniqueNodePorts, svctest.SetHealthCheckNodePort(31234)), update: svctest.MakeService("foo", svctest.SetTypeExternalName, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), }} for _, tc := range testCases { @@ -973,41 +973,41 @@ func TestVerifyEquiv(t *testing.T) { name: "HealthCheckNodePort_unspecified", input: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: true, }, output: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(93)), expect: true, }, { name: "HealthCheckNodePort_specified", input: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(93)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: true, }, output: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(93)), expect: true, }, { name: "HealthCheckNodePort_wrong", input: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(93)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: true, }, output: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(76)), expect: false, }} @@ -1243,7 +1243,7 @@ func fmtIPFamilyPolicy(pol *api.IPFamilyPolicy) string { return string(*pol) } -func fmtInternalTrafficPolicy(pol *api.ServiceInternalTrafficPolicyType) string { +func fmtInternalTrafficPolicy(pol *api.ServiceInternalTrafficPolicy) string { if pol == nil { return "" } @@ -6538,7 +6538,7 @@ func TestDeleteWithFinalizer(t *testing.T) { // This will allocate cluster IPs, NodePort, and HealthCheckNodePort. svc := svctest.MakeService(svcName, svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), func(s *api.Service) { s.Finalizers = []string{"example.com/test"} }) @@ -6613,7 +6613,7 @@ func TestDeleteDryRun(t *testing.T) { svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, svctest.SetIPFamilies(api.IPv4Protocol), - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), }, { name: "v4v6", @@ -6621,7 +6621,7 @@ func TestDeleteDryRun(t *testing.T) { svctest.SetTypeLoadBalancer, svctest.SetIPFamilyPolicy(api.IPFamilyPolicyRequireDualStack), svctest.SetIPFamilies(api.IPv4Protocol, api.IPv6Protocol), - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), }} for _, tc := range testCases { @@ -6669,13 +6669,13 @@ func TestUpdateDryRun(t *testing.T) { clusterFamilies: []api.IPFamily{api.IPv4Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeExternalName), update: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), verifyDryAllocs: true, // make sure values were not allocated. }, { name: "singlestack:v4_Allocs-NoAllocs", clusterFamilies: []api.IPFamily{api.IPv4Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), update: svctest.MakeService("foo", svctest.SetTypeExternalName), verifyDryAllocs: false, // make sure values were not released. }, { @@ -6683,13 +6683,13 @@ func TestUpdateDryRun(t *testing.T) { clusterFamilies: []api.IPFamily{api.IPv6Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeExternalName), update: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), verifyDryAllocs: true, // make sure values were not allocated. }, { name: "singlestack:v6_Allocs-NoAllocs", clusterFamilies: []api.IPFamily{api.IPv6Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), update: svctest.MakeService("foo", svctest.SetTypeExternalName), verifyDryAllocs: false, // make sure values were not released. }, { @@ -6697,13 +6697,13 @@ func TestUpdateDryRun(t *testing.T) { clusterFamilies: []api.IPFamily{api.IPv4Protocol, api.IPv6Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeExternalName), update: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), verifyDryAllocs: true, // make sure values were not allocated. }, { name: "dualstack:v4v6_Allocs-NoAllocs", clusterFamilies: []api.IPFamily{api.IPv4Protocol, api.IPv6Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), update: svctest.MakeService("foo", svctest.SetTypeExternalName), verifyDryAllocs: false, // make sure values were not released. }, { @@ -6711,13 +6711,13 @@ func TestUpdateDryRun(t *testing.T) { clusterFamilies: []api.IPFamily{api.IPv6Protocol, api.IPv4Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeExternalName), update: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), verifyDryAllocs: true, // make sure values were not allocated. }, { name: "dualstack:v6v4_Allocs-NoAllocs", clusterFamilies: []api.IPFamily{api.IPv6Protocol, api.IPv4Protocol}, svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), update: svctest.MakeService("foo", svctest.SetTypeExternalName), verifyDryAllocs: false, // make sure values were not released. }} @@ -6860,7 +6860,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetClusterIPs("10.0.0.1"), svctest.SetNodePorts(30093), svctest.SetHealthCheckNodePort(30118)), @@ -6871,7 +6871,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: true, @@ -6885,7 +6885,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetIPFamilyPolicy(api.IPFamilyPolicyPreferDualStack), svctest.SetClusterIPs("10.0.0.1", "2000::1"), svctest.SetPorts( @@ -6900,7 +6900,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP))), @@ -6919,7 +6919,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetIPFamilyPolicy(api.IPFamilyPolicyPreferDualStack), svctest.SetClusterIPs("10.0.0.1", "2000::1"), svctest.SetPorts( @@ -6934,7 +6934,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetClusterIPs("10.0.0.1")), expectError: true, }, @@ -6943,7 +6943,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -6956,7 +6956,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -6974,7 +6974,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -6987,7 +6987,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( // swapped from above svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP), @@ -7005,7 +7005,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -7018,7 +7018,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -7037,7 +7037,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -7050,7 +7050,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -7062,7 +7062,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -7075,7 +7075,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -7087,7 +7087,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -7100,7 +7100,7 @@ func TestUpdatePatchAllocatedValues(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetPorts( svctest.MakeServicePort("p", 867, intstr.FromInt(867), api.ProtocolTCP), svctest.MakeServicePort("q", 5309, intstr.FromInt(5309), api.ProtocolTCP)), @@ -11047,7 +11047,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeExternalName, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectError: true, }, }, { @@ -11055,7 +11055,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeExternalName, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster), svctest.SetHealthCheckNodePort(30000)), expectError: true, }, @@ -11064,7 +11064,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeExternalName, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectError: true, }, }, { @@ -11072,7 +11072,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeExternalName, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(30000)), expectError: true, }, @@ -11087,7 +11087,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeClusterIP, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectError: true, }, }, { @@ -11104,7 +11104,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeClusterIP, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectError: true, }, }, { @@ -11112,7 +11112,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeClusterIP, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster), svctest.SetHealthCheckNodePort(30000)), expectError: true, }, @@ -11121,7 +11121,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeClusterIP, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectError: true, }, }, { @@ -11129,7 +11129,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeClusterIP, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(30000)), expectError: true, }, @@ -11155,7 +11155,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeNodePort, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11163,7 +11163,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeNodePort, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11173,7 +11173,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeNodePort, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster), svctest.SetHealthCheckNodePort(30000)), expectError: true, }, @@ -11182,7 +11182,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeNodePort, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11190,7 +11190,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeNodePort, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11200,7 +11200,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeNodePort, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(30000)), expectError: true, }, @@ -11226,7 +11226,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11234,7 +11234,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: true, @@ -11244,7 +11244,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11252,7 +11252,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(30000)), expectClusterIPs: true, expectNodePorts: true, @@ -11263,7 +11263,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster), svctest.SetHealthCheckNodePort(30000)), expectError: true, }, @@ -11272,7 +11272,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: true, @@ -11280,7 +11280,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11290,7 +11290,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(30000)), expectClusterIPs: true, expectNodePorts: true, @@ -11299,7 +11299,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyCluster)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: false, @@ -11309,7 +11309,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(30000)), expectClusterIPs: true, expectNodePorts: true, @@ -11318,7 +11318,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { update: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(30001)), expectError: true, }, @@ -11327,7 +11327,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal)), expectClusterIPs: true, expectNodePorts: true, expectHealthCheckNodePort: true, @@ -11343,7 +11343,7 @@ func TestFeatureExternalTrafficPolicy(t *testing.T) { create: svcTestCase{ svc: svctest.MakeService("foo", svctest.SetTypeLoadBalancer, - svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal), + svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyLocal), svctest.SetHealthCheckNodePort(-1)), expectError: true, }, @@ -11356,7 +11356,7 @@ func TestFeatureInternalTrafficPolicy(t *testing.T) { prove := func(proofs ...svcTestProof) []svcTestProof { return proofs } - proveITP := func(want api.ServiceInternalTrafficPolicyType) svcTestProof { + proveITP := func(want api.ServiceInternalTrafficPolicy) svcTestProof { return func(t *testing.T, storage *wrapperRESTForTests, before, after *api.Service) { t.Helper() if got := after.Spec.InternalTrafficPolicy; got == nil { diff --git a/pkg/registry/core/service/strategy.go b/pkg/registry/core/service/strategy.go index fbbf7ce7a73..e7e4e21e36a 100644 --- a/pkg/registry/core/service/strategy.go +++ b/pkg/registry/core/service/strategy.go @@ -243,7 +243,7 @@ func dropTypeDependentFields(newSvc *api.Service, oldSvc *api.Service) { // If a user is switching to a type that doesn't need ExternalTrafficPolicy // AND they did not change this field, it is safe to drop it. if needsExternalTrafficPolicy(oldSvc) && !needsExternalTrafficPolicy(newSvc) && sameExternalTrafficPolicy(oldSvc, newSvc) { - newSvc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyType("") + newSvc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicy("") } // NOTE: there are other fields like `selector` which we could wipe. @@ -317,7 +317,7 @@ func needsHCNodePort(svc *api.Service) bool { if svc.Spec.Type != api.ServiceTypeLoadBalancer { return false } - if svc.Spec.ExternalTrafficPolicy != api.ServiceExternalTrafficPolicyTypeLocal { + if svc.Spec.ExternalTrafficPolicy != api.ServiceExternalTrafficPolicyLocal { return false } return true diff --git a/pkg/registry/core/service/strategy_test.go b/pkg/registry/core/service/strategy_test.go index 20abb014d48..76197d8b4de 100644 --- a/pkg/registry/core/service/strategy_test.go +++ b/pkg/registry/core/service/strategy_test.go @@ -285,7 +285,7 @@ func TestDropTypeDependentFields(t *testing.T) { svc.Spec.Ports[0].Protocol = "UDP" } setHCNodePort := func(svc *api.Service) { - svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = int32(32000) } changeHCNodePort := func(svc *api.Service) { diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index a8df2b222e9..c7cc7ee78c6 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -6321,915 +6321,915 @@ func init() { var fileDescriptor_83c10c24ec417dc9 = []byte{ // 14547 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x69, 0x8c, 0x24, 0xd7, - 0x79, 0x98, 0xaa, 0x7b, 0xae, 0xfe, 0xe6, 0x7e, 0xb3, 0xbb, 0x9c, 0x1d, 0x72, 0x77, 0x96, 0x45, - 0x72, 0xb9, 0x14, 0xc9, 0x19, 0x2d, 0x0f, 0x89, 0x26, 0x25, 0x5a, 0x73, 0xee, 0x36, 0x77, 0x67, - 0xb6, 0xf9, 0x7a, 0x76, 0x57, 0x07, 0x25, 0xa8, 0xa6, 0xfb, 0xcd, 0x4c, 0x69, 0xba, 0xab, 0x9a, - 0x55, 0xd5, 0xb3, 0x3b, 0x8c, 0x84, 0x38, 0xf2, 0x29, 0xdb, 0x09, 0x84, 0xc0, 0x39, 0x20, 0x1b, - 0x46, 0xe0, 0x38, 0xb6, 0x15, 0xe5, 0x52, 0xe4, 0xd8, 0x8e, 0xe5, 0xd8, 0xce, 0xed, 0x04, 0x81, - 0xe3, 0x18, 0x88, 0x65, 0xc0, 0xc8, 0xc4, 0x5e, 0x07, 0x30, 0x04, 0x24, 0xb6, 0x73, 0x01, 0xc9, - 0xc4, 0x89, 0x83, 0x77, 0xd6, 0x7b, 0x75, 0x74, 0xf7, 0x2c, 0x67, 0x47, 0x94, 0xc0, 0x7f, 0xdd, - 0xdf, 0xf7, 0xbd, 0xef, 0xbd, 0x7a, 0xe7, 0xf7, 0xbe, 0xef, 0x7b, 0xdf, 0x07, 0xaf, 0xec, 0xbe, - 0x14, 0xce, 0xb9, 0xfe, 0xfc, 0x6e, 0x7b, 0x93, 0x04, 0x1e, 0x89, 0x48, 0x38, 0xbf, 0x47, 0xbc, - 0xba, 0x1f, 0xcc, 0x0b, 0x84, 0xd3, 0x72, 0xe7, 0x6b, 0x7e, 0x40, 0xe6, 0xf7, 0x2e, 0xcf, 0x6f, - 0x13, 0x8f, 0x04, 0x4e, 0x44, 0xea, 0x73, 0xad, 0xc0, 0x8f, 0x7c, 0x84, 0x38, 0xcd, 0x9c, 0xd3, - 0x72, 0xe7, 0x28, 0xcd, 0xdc, 0xde, 0xe5, 0x99, 0x67, 0xb7, 0xdd, 0x68, 0xa7, 0xbd, 0x39, 0x57, - 0xf3, 0x9b, 0xf3, 0xdb, 0xfe, 0xb6, 0x3f, 0xcf, 0x48, 0x37, 0xdb, 0x5b, 0xec, 0x1f, 0xfb, 0xc3, - 0x7e, 0x71, 0x16, 0x33, 0x2f, 0xc4, 0xd5, 0x34, 0x9d, 0xda, 0x8e, 0xeb, 0x91, 0x60, 0x7f, 0xbe, - 0xb5, 0xbb, 0xcd, 0xea, 0x0d, 0x48, 0xe8, 0xb7, 0x83, 0x1a, 0x49, 0x56, 0xdc, 0xb1, 0x54, 0x38, - 0xdf, 0x24, 0x91, 0x93, 0xd1, 0xdc, 0x99, 0xf9, 0xbc, 0x52, 0x41, 0xdb, 0x8b, 0xdc, 0x66, 0xba, - 0x9a, 0xf7, 0x77, 0x2b, 0x10, 0xd6, 0x76, 0x48, 0xd3, 0x49, 0x95, 0x7b, 0x3e, 0xaf, 0x5c, 0x3b, - 0x72, 0x1b, 0xf3, 0xae, 0x17, 0x85, 0x51, 0x90, 0x2c, 0x64, 0x7f, 0xdd, 0x82, 0x0b, 0x0b, 0xb7, - 0xab, 0x2b, 0x0d, 0x27, 0x8c, 0xdc, 0xda, 0x62, 0xc3, 0xaf, 0xed, 0x56, 0x23, 0x3f, 0x20, 0xb7, - 0xfc, 0x46, 0xbb, 0x49, 0xaa, 0xac, 0x23, 0xd0, 0x33, 0x30, 0xb4, 0xc7, 0xfe, 0x97, 0x97, 0xa7, - 0xad, 0x0b, 0xd6, 0xa5, 0xd2, 0xe2, 0xc4, 0xaf, 0x1d, 0xcc, 0xbe, 0xe7, 0xde, 0xc1, 0xec, 0xd0, - 0x2d, 0x01, 0xc7, 0x8a, 0x02, 0x5d, 0x84, 0x81, 0xad, 0x70, 0x63, 0xbf, 0x45, 0xa6, 0x0b, 0x8c, - 0x76, 0x4c, 0xd0, 0x0e, 0xac, 0x56, 0x29, 0x14, 0x0b, 0x2c, 0x9a, 0x87, 0x52, 0xcb, 0x09, 0x22, - 0x37, 0x72, 0x7d, 0x6f, 0xba, 0x78, 0xc1, 0xba, 0xd4, 0xbf, 0x38, 0x29, 0x48, 0x4b, 0x15, 0x89, - 0xc0, 0x31, 0x0d, 0x6d, 0x46, 0x40, 0x9c, 0xfa, 0x0d, 0xaf, 0xb1, 0x3f, 0xdd, 0x77, 0xc1, 0xba, - 0x34, 0x14, 0x37, 0x03, 0x0b, 0x38, 0x56, 0x14, 0xf6, 0x17, 0x0b, 0x30, 0xb4, 0xb0, 0xb5, 0xe5, - 0x7a, 0x6e, 0xb4, 0x8f, 0x6e, 0xc1, 0x88, 0xe7, 0xd7, 0x89, 0xfc, 0xcf, 0xbe, 0x62, 0xf8, 0xb9, - 0x0b, 0x73, 0xe9, 0xa9, 0x34, 0xb7, 0xae, 0xd1, 0x2d, 0x4e, 0xdc, 0x3b, 0x98, 0x1d, 0xd1, 0x21, - 0xd8, 0xe0, 0x83, 0x30, 0x0c, 0xb7, 0xfc, 0xba, 0x62, 0x5b, 0x60, 0x6c, 0x67, 0xb3, 0xd8, 0x56, - 0x62, 0xb2, 0xc5, 0xf1, 0x7b, 0x07, 0xb3, 0xc3, 0x1a, 0x00, 0xeb, 0x4c, 0xd0, 0x26, 0x8c, 0xd3, - 0xbf, 0x5e, 0xe4, 0x2a, 0xbe, 0x45, 0xc6, 0xf7, 0xb1, 0x3c, 0xbe, 0x1a, 0xe9, 0xe2, 0xd4, 0xbd, - 0x83, 0xd9, 0xf1, 0x04, 0x10, 0x27, 0x19, 0xda, 0x6f, 0xc1, 0xd8, 0x42, 0x14, 0x39, 0xb5, 0x1d, - 0x52, 0xe7, 0x23, 0x88, 0x5e, 0x80, 0x3e, 0xcf, 0x69, 0x12, 0x31, 0xbe, 0x17, 0x44, 0xc7, 0xf6, - 0xad, 0x3b, 0x4d, 0x72, 0x78, 0x30, 0x3b, 0x71, 0xd3, 0x73, 0xdf, 0x6c, 0x8b, 0x59, 0x41, 0x61, - 0x98, 0x51, 0xa3, 0xe7, 0x00, 0xea, 0x64, 0xcf, 0xad, 0x91, 0x8a, 0x13, 0xed, 0x88, 0xf1, 0x46, - 0xa2, 0x2c, 0x2c, 0x2b, 0x0c, 0xd6, 0xa8, 0xec, 0xbb, 0x50, 0x5a, 0xd8, 0xf3, 0xdd, 0x7a, 0xc5, - 0xaf, 0x87, 0x68, 0x17, 0xc6, 0x5b, 0x01, 0xd9, 0x22, 0x81, 0x02, 0x4d, 0x5b, 0x17, 0x8a, 0x97, - 0x86, 0x9f, 0xbb, 0x94, 0xf9, 0xb1, 0x26, 0xe9, 0x8a, 0x17, 0x05, 0xfb, 0x8b, 0x0f, 0x89, 0xfa, - 0xc6, 0x13, 0x58, 0x9c, 0xe4, 0x6c, 0xff, 0xb3, 0x02, 0x9c, 0x5e, 0x78, 0xab, 0x1d, 0x90, 0x65, - 0x37, 0xdc, 0x4d, 0xce, 0xf0, 0xba, 0x1b, 0xee, 0xae, 0xc7, 0x3d, 0xa0, 0xa6, 0xd6, 0xb2, 0x80, - 0x63, 0x45, 0x81, 0x9e, 0x85, 0x41, 0xfa, 0xfb, 0x26, 0x2e, 0x8b, 0x4f, 0x9e, 0x12, 0xc4, 0xc3, - 0xcb, 0x4e, 0xe4, 0x2c, 0x73, 0x14, 0x96, 0x34, 0x68, 0x0d, 0x86, 0x6b, 0x6c, 0x41, 0x6e, 0xaf, - 0xf9, 0x75, 0xc2, 0x06, 0xb3, 0xb4, 0xf8, 0x34, 0x25, 0x5f, 0x8a, 0xc1, 0x87, 0x07, 0xb3, 0xd3, - 0xbc, 0x6d, 0x82, 0x85, 0x86, 0xc3, 0x7a, 0x79, 0x64, 0xab, 0xf5, 0xd5, 0xc7, 0x38, 0x41, 0xc6, - 0xda, 0xba, 0xa4, 0x2d, 0x95, 0x7e, 0xb6, 0x54, 0x46, 0xb2, 0x97, 0x09, 0xba, 0x0c, 0x7d, 0xbb, - 0xae, 0x57, 0x9f, 0x1e, 0x60, 0xbc, 0xce, 0xd1, 0x31, 0xbf, 0xe6, 0x7a, 0xf5, 0xc3, 0x83, 0xd9, - 0x49, 0xa3, 0x39, 0x14, 0x88, 0x19, 0xa9, 0xfd, 0xdf, 0x2d, 0x98, 0x65, 0xb8, 0x55, 0xb7, 0x41, - 0x2a, 0x24, 0x08, 0xdd, 0x30, 0x22, 0x5e, 0x64, 0x74, 0xe8, 0x73, 0x00, 0x21, 0xa9, 0x05, 0x24, - 0xd2, 0xba, 0x54, 0x4d, 0x8c, 0xaa, 0xc2, 0x60, 0x8d, 0x8a, 0x6e, 0x08, 0xe1, 0x8e, 0x13, 0xb0, - 0xf9, 0x25, 0x3a, 0x56, 0x6d, 0x08, 0x55, 0x89, 0xc0, 0x31, 0x8d, 0xb1, 0x21, 0x14, 0xbb, 0x6d, - 0x08, 0xe8, 0x43, 0x30, 0x1e, 0x57, 0x16, 0xb6, 0x9c, 0x9a, 0xec, 0x40, 0xb6, 0x64, 0xaa, 0x26, - 0x0a, 0x27, 0x69, 0xed, 0xbf, 0x69, 0x89, 0xc9, 0x43, 0xbf, 0xfa, 0x1d, 0xfe, 0xad, 0xf6, 0x2f, - 0x58, 0x30, 0xb8, 0xe8, 0x7a, 0x75, 0xd7, 0xdb, 0x46, 0x9f, 0x82, 0x21, 0x7a, 0x36, 0xd5, 0x9d, - 0xc8, 0x11, 0xfb, 0xde, 0xfb, 0xb4, 0xb5, 0xa5, 0x8e, 0x8a, 0xb9, 0xd6, 0xee, 0x36, 0x05, 0x84, - 0x73, 0x94, 0x9a, 0xae, 0xb6, 0x1b, 0x9b, 0x9f, 0x26, 0xb5, 0x68, 0x8d, 0x44, 0x4e, 0xfc, 0x39, - 0x31, 0x0c, 0x2b, 0xae, 0xe8, 0x1a, 0x0c, 0x44, 0x4e, 0xb0, 0x4d, 0x22, 0xb1, 0x01, 0x66, 0x6e, - 0x54, 0xbc, 0x24, 0xa6, 0x2b, 0x92, 0x78, 0x35, 0x12, 0x1f, 0x0b, 0x1b, 0xac, 0x28, 0x16, 0x2c, - 0xec, 0xff, 0x3b, 0x08, 0x67, 0x97, 0xaa, 0xe5, 0x9c, 0x79, 0x75, 0x11, 0x06, 0xea, 0x81, 0xbb, - 0x47, 0x02, 0xd1, 0xcf, 0x8a, 0xcb, 0x32, 0x83, 0x62, 0x81, 0x45, 0x2f, 0xc1, 0x08, 0x3f, 0x90, - 0xae, 0x3a, 0x5e, 0xbd, 0x21, 0xbb, 0xf8, 0x94, 0xa0, 0x1e, 0xb9, 0xa5, 0xe1, 0xb0, 0x41, 0x79, - 0xc4, 0x49, 0x75, 0x31, 0xb1, 0x18, 0xf3, 0x0e, 0xbb, 0xcf, 0x5b, 0x30, 0xc1, 0xab, 0x59, 0x88, - 0xa2, 0xc0, 0xdd, 0x6c, 0x47, 0x24, 0x9c, 0xee, 0x67, 0x3b, 0xdd, 0x52, 0x56, 0x6f, 0xe5, 0xf6, - 0xc0, 0xdc, 0xad, 0x04, 0x17, 0xbe, 0x09, 0x4e, 0x8b, 0x7a, 0x27, 0x92, 0x68, 0x9c, 0xaa, 0x16, - 0x7d, 0xb7, 0x05, 0x33, 0x35, 0xdf, 0x8b, 0x02, 0xbf, 0xd1, 0x20, 0x41, 0xa5, 0xbd, 0xd9, 0x70, - 0xc3, 0x1d, 0x3e, 0x4f, 0x31, 0xd9, 0x62, 0x3b, 0x41, 0xce, 0x18, 0x2a, 0x22, 0x31, 0x86, 0xe7, - 0xef, 0x1d, 0xcc, 0xce, 0x2c, 0xe5, 0xb2, 0xc2, 0x1d, 0xaa, 0x41, 0xbb, 0x80, 0xe8, 0x51, 0x5a, - 0x8d, 0x9c, 0x6d, 0x12, 0x57, 0x3e, 0xd8, 0x7b, 0xe5, 0x67, 0xee, 0x1d, 0xcc, 0xa2, 0xf5, 0x14, - 0x0b, 0x9c, 0xc1, 0x16, 0xbd, 0x09, 0xa7, 0x28, 0x34, 0xf5, 0xad, 0x43, 0xbd, 0x57, 0x37, 0x7d, - 0xef, 0x60, 0xf6, 0xd4, 0x7a, 0x06, 0x13, 0x9c, 0xc9, 0x1a, 0x7d, 0x97, 0x05, 0x67, 0xe3, 0xcf, - 0x5f, 0xb9, 0xdb, 0x72, 0xbc, 0x7a, 0x5c, 0x71, 0xa9, 0xf7, 0x8a, 0xe9, 0x9e, 0x7c, 0x76, 0x29, - 0x8f, 0x13, 0xce, 0xaf, 0x04, 0x79, 0x30, 0x45, 0x9b, 0x96, 0xac, 0x1b, 0x7a, 0xaf, 0xfb, 0xa1, - 0x7b, 0x07, 0xb3, 0x53, 0xeb, 0x69, 0x1e, 0x38, 0x8b, 0xf1, 0xcc, 0x12, 0x9c, 0xce, 0x9c, 0x9d, - 0x68, 0x02, 0x8a, 0xbb, 0x84, 0x4b, 0x5d, 0x25, 0x4c, 0x7f, 0xa2, 0x53, 0xd0, 0xbf, 0xe7, 0x34, - 0xda, 0x62, 0x61, 0x62, 0xfe, 0xe7, 0xe5, 0xc2, 0x4b, 0x96, 0xfd, 0xcf, 0x8b, 0x30, 0xbe, 0x54, - 0x2d, 0xdf, 0xd7, 0xaa, 0xd7, 0x8f, 0xbd, 0x42, 0xc7, 0x63, 0x2f, 0x3e, 0x44, 0x8b, 0xb9, 0x87, - 0xe8, 0x9f, 0xcd, 0x58, 0xb2, 0x7d, 0x6c, 0xc9, 0x7e, 0x47, 0xce, 0x92, 0x3d, 0xe6, 0x85, 0xba, - 0x97, 0x33, 0x6b, 0xfb, 0xd9, 0x00, 0x66, 0x4a, 0x48, 0xd7, 0xfd, 0x9a, 0xd3, 0x48, 0x6e, 0xb5, - 0x47, 0x9c, 0xba, 0xc7, 0x33, 0x8e, 0x35, 0x18, 0x59, 0x72, 0x5a, 0xce, 0xa6, 0xdb, 0x70, 0x23, - 0x97, 0x84, 0xe8, 0x49, 0x28, 0x3a, 0xf5, 0x3a, 0x93, 0xee, 0x4a, 0x8b, 0xa7, 0xef, 0x1d, 0xcc, - 0x16, 0x17, 0xea, 0x54, 0xcc, 0x00, 0x45, 0xb5, 0x8f, 0x29, 0x05, 0x7a, 0x2f, 0xf4, 0xd5, 0x03, - 0xbf, 0x35, 0x5d, 0x60, 0x94, 0x74, 0x95, 0xf7, 0x2d, 0x07, 0x7e, 0x2b, 0x41, 0xca, 0x68, 0xec, - 0x5f, 0x2d, 0xc0, 0x23, 0x4b, 0xa4, 0xb5, 0xb3, 0x5a, 0xcd, 0x39, 0x2f, 0x2e, 0xc1, 0x50, 0xd3, - 0xf7, 0xdc, 0xc8, 0x0f, 0x42, 0x51, 0x35, 0x9b, 0x11, 0x6b, 0x02, 0x86, 0x15, 0x16, 0x5d, 0x80, - 0xbe, 0x56, 0x2c, 0xc4, 0x8e, 0x48, 0x01, 0x98, 0x89, 0xaf, 0x0c, 0x43, 0x29, 0xda, 0x21, 0x09, - 0xc4, 0x8c, 0x51, 0x14, 0x37, 0x43, 0x12, 0x60, 0x86, 0x89, 0x25, 0x01, 0x2a, 0x23, 0x88, 0x13, - 0x21, 0x21, 0x09, 0x50, 0x0c, 0xd6, 0xa8, 0x50, 0x05, 0x4a, 0x61, 0x62, 0x64, 0x7b, 0x5a, 0x9a, - 0xa3, 0x4c, 0x54, 0x50, 0x23, 0x19, 0x33, 0x31, 0x4e, 0xb0, 0x81, 0xae, 0xa2, 0xc2, 0xd7, 0x0a, - 0x80, 0x78, 0x17, 0x7e, 0x8b, 0x75, 0xdc, 0xcd, 0x74, 0xc7, 0xf5, 0xbe, 0x24, 0x8e, 0xab, 0xf7, - 0xfe, 0x87, 0x05, 0x8f, 0x2c, 0xb9, 0x5e, 0x9d, 0x04, 0x39, 0x13, 0xf0, 0xc1, 0xdc, 0x9d, 0x8f, - 0x26, 0xa4, 0x18, 0x53, 0xac, 0xef, 0x18, 0xa6, 0x98, 0xfd, 0x47, 0x16, 0x20, 0xfe, 0xd9, 0xef, - 0xb8, 0x8f, 0xbd, 0x99, 0xfe, 0xd8, 0x63, 0x98, 0x16, 0xf6, 0xdf, 0xb5, 0x60, 0x78, 0xa9, 0xe1, - 0xb8, 0x4d, 0xf1, 0xa9, 0x4b, 0x30, 0x29, 0x15, 0x45, 0x0c, 0xac, 0xc9, 0xfe, 0x74, 0x73, 0x9b, - 0xc4, 0x49, 0x24, 0x4e, 0xd3, 0xa3, 0x8f, 0xc3, 0x59, 0x03, 0xb8, 0x41, 0x9a, 0xad, 0x86, 0x13, - 0xe9, 0xb7, 0x02, 0x76, 0xfa, 0xe3, 0x3c, 0x22, 0x9c, 0x5f, 0xde, 0xbe, 0x0e, 0x63, 0x4b, 0x0d, - 0x97, 0x78, 0x51, 0xb9, 0xb2, 0xe4, 0x7b, 0x5b, 0xee, 0x36, 0x7a, 0x19, 0xc6, 0x22, 0xb7, 0x49, - 0xfc, 0x76, 0x54, 0x25, 0x35, 0xdf, 0x63, 0x77, 0x6d, 0xeb, 0x52, 0xff, 0x22, 0xba, 0x77, 0x30, - 0x3b, 0xb6, 0x61, 0x60, 0x70, 0x82, 0xd2, 0xfe, 0x1d, 0x3a, 0xe2, 0x7e, 0xb3, 0xe5, 0x7b, 0xc4, - 0x8b, 0x96, 0x7c, 0xaf, 0xce, 0x75, 0x32, 0x2f, 0x43, 0x5f, 0x44, 0x47, 0x90, 0x7f, 0xf9, 0x45, - 0xb9, 0xb4, 0xe9, 0xb8, 0x1d, 0x1e, 0xcc, 0x9e, 0x49, 0x97, 0x60, 0x23, 0xcb, 0xca, 0xa0, 0xef, - 0x80, 0x81, 0x30, 0x72, 0xa2, 0x76, 0x28, 0x3e, 0xf5, 0x51, 0x39, 0xfe, 0x55, 0x06, 0x3d, 0x3c, - 0x98, 0x1d, 0x57, 0xc5, 0x38, 0x08, 0x8b, 0x02, 0xe8, 0x29, 0x18, 0x6c, 0x92, 0x30, 0x74, 0xb6, - 0xe5, 0xf9, 0x3d, 0x2e, 0xca, 0x0e, 0xae, 0x71, 0x30, 0x96, 0x78, 0xf4, 0x18, 0xf4, 0x93, 0x20, - 0xf0, 0x03, 0xb1, 0xab, 0x8c, 0x0a, 0xc2, 0xfe, 0x15, 0x0a, 0xc4, 0x1c, 0x67, 0xff, 0x5b, 0x0b, - 0xc6, 0x55, 0x5b, 0x79, 0x5d, 0x27, 0x70, 0x6f, 0xfa, 0x18, 0x40, 0x4d, 0x7e, 0x60, 0xc8, 0xce, - 0xbb, 0xe1, 0xe7, 0x2e, 0x66, 0x8a, 0x16, 0xa9, 0x6e, 0x8c, 0x39, 0x2b, 0x50, 0x88, 0x35, 0x6e, - 0xf6, 0x3f, 0xb2, 0x60, 0x2a, 0xf1, 0x45, 0xd7, 0xdd, 0x30, 0x42, 0x6f, 0xa4, 0xbe, 0x6a, 0xae, - 0xb7, 0xaf, 0xa2, 0xa5, 0xd9, 0x37, 0xa9, 0xc5, 0x27, 0x21, 0xda, 0x17, 0x5d, 0x85, 0x7e, 0x37, - 0x22, 0x4d, 0xf9, 0x31, 0x8f, 0x75, 0xfc, 0x18, 0xde, 0xaa, 0x78, 0x44, 0xca, 0xb4, 0x24, 0xe6, - 0x0c, 0xec, 0x5f, 0x2d, 0x42, 0x89, 0x4f, 0xdb, 0x35, 0xa7, 0x75, 0x02, 0x63, 0xf1, 0x34, 0x94, - 0xdc, 0x66, 0xb3, 0x1d, 0x39, 0x9b, 0xe2, 0x00, 0x1a, 0xe2, 0x9b, 0x41, 0x59, 0x02, 0x71, 0x8c, - 0x47, 0x65, 0xe8, 0x63, 0x4d, 0xe1, 0x5f, 0xf9, 0x64, 0xf6, 0x57, 0x8a, 0xb6, 0xcf, 0x2d, 0x3b, - 0x91, 0xc3, 0x65, 0x3f, 0x75, 0xf2, 0x51, 0x10, 0x66, 0x2c, 0x90, 0x03, 0xb0, 0xe9, 0x7a, 0x4e, - 0xb0, 0x4f, 0x61, 0xd3, 0x45, 0xc6, 0xf0, 0xd9, 0xce, 0x0c, 0x17, 0x15, 0x3d, 0x67, 0xab, 0x3e, - 0x2c, 0x46, 0x60, 0x8d, 0xe9, 0xcc, 0x07, 0xa0, 0xa4, 0x88, 0x8f, 0x22, 0xc2, 0xcd, 0x7c, 0x08, - 0xc6, 0x13, 0x75, 0x75, 0x2b, 0x3e, 0xa2, 0x4b, 0x80, 0xbf, 0xc8, 0xb6, 0x0c, 0xd1, 0xea, 0x15, - 0x6f, 0x4f, 0xec, 0x9c, 0x6f, 0xc1, 0xa9, 0x46, 0xc6, 0xde, 0x2b, 0xc6, 0xb5, 0xf7, 0xbd, 0xfa, - 0x11, 0xf1, 0xd9, 0xa7, 0xb2, 0xb0, 0x38, 0xb3, 0x0e, 0x2a, 0xd5, 0xf8, 0x2d, 0xba, 0x40, 0x9c, - 0x86, 0x7e, 0x41, 0xb8, 0x21, 0x60, 0x58, 0x61, 0xe9, 0x7e, 0x77, 0x4a, 0x35, 0xfe, 0x1a, 0xd9, - 0xaf, 0x92, 0x06, 0xa9, 0x45, 0x7e, 0xf0, 0x4d, 0x6d, 0xfe, 0x39, 0xde, 0xfb, 0x7c, 0xbb, 0x1c, - 0x16, 0x0c, 0x8a, 0xd7, 0xc8, 0x3e, 0x1f, 0x0a, 0xfd, 0xeb, 0x8a, 0x1d, 0xbf, 0xee, 0x2b, 0x16, - 0x8c, 0xaa, 0xaf, 0x3b, 0x81, 0x7d, 0x61, 0xd1, 0xdc, 0x17, 0xce, 0x75, 0x9c, 0xe0, 0x39, 0x3b, - 0xc2, 0xd7, 0x0a, 0x70, 0x56, 0xd1, 0xd0, 0xdb, 0x0c, 0xff, 0x23, 0x66, 0xd5, 0x3c, 0x94, 0x3c, - 0xa5, 0xd7, 0xb3, 0x4c, 0x85, 0x5a, 0xac, 0xd5, 0x8b, 0x69, 0xa8, 0x50, 0xea, 0xc5, 0xc7, 0xec, - 0x88, 0xae, 0xf0, 0x16, 0xca, 0xed, 0x45, 0x28, 0xb6, 0xdd, 0xba, 0x38, 0x60, 0xde, 0x27, 0x7b, - 0xfb, 0x66, 0x79, 0xf9, 0xf0, 0x60, 0xf6, 0xd1, 0x3c, 0x63, 0x0b, 0x3d, 0xd9, 0xc2, 0xb9, 0x9b, - 0xe5, 0x65, 0x4c, 0x0b, 0xa3, 0x05, 0x18, 0x97, 0x27, 0xf4, 0x2d, 0x2a, 0x20, 0xfa, 0x9e, 0x38, - 0x87, 0x94, 0xd6, 0x1a, 0x9b, 0x68, 0x9c, 0xa4, 0x47, 0xcb, 0x30, 0xb1, 0xdb, 0xde, 0x24, 0x0d, - 0x12, 0xf1, 0x0f, 0xbe, 0x46, 0xb8, 0x4e, 0xb7, 0x14, 0xdf, 0x25, 0xaf, 0x25, 0xf0, 0x38, 0x55, - 0xc2, 0xfe, 0x53, 0x76, 0x1e, 0x88, 0xde, 0xab, 0x04, 0x3e, 0x9d, 0x58, 0x94, 0xfb, 0x37, 0x73, - 0x3a, 0xf7, 0x32, 0x2b, 0xae, 0x91, 0xfd, 0x0d, 0x9f, 0xde, 0x25, 0xb2, 0x67, 0x85, 0x31, 0xe7, - 0xfb, 0x3a, 0xce, 0xf9, 0x9f, 0x2d, 0xc0, 0x69, 0xd5, 0x03, 0x86, 0xd8, 0xfa, 0xad, 0xde, 0x07, - 0x97, 0x61, 0xb8, 0x4e, 0xb6, 0x9c, 0x76, 0x23, 0x52, 0x06, 0x86, 0x7e, 0x6e, 0x64, 0x5a, 0x8e, - 0xc1, 0x58, 0xa7, 0x39, 0x42, 0xb7, 0xfd, 0xcf, 0x61, 0x76, 0x10, 0x47, 0x0e, 0x9d, 0xe3, 0x6a, - 0xd5, 0x58, 0xb9, 0xab, 0xe6, 0x31, 0xe8, 0x77, 0x9b, 0x54, 0x30, 0x2b, 0x98, 0xf2, 0x56, 0x99, - 0x02, 0x31, 0xc7, 0xa1, 0x27, 0x60, 0xb0, 0xe6, 0x37, 0x9b, 0x8e, 0x57, 0x67, 0x47, 0x5e, 0x69, - 0x71, 0x98, 0xca, 0x6e, 0x4b, 0x1c, 0x84, 0x25, 0x0e, 0x3d, 0x02, 0x7d, 0x4e, 0xb0, 0xcd, 0xb5, - 0x2e, 0xa5, 0xc5, 0x21, 0x5a, 0xd3, 0x42, 0xb0, 0x1d, 0x62, 0x06, 0xa5, 0x97, 0xc6, 0x3b, 0x7e, - 0xb0, 0xeb, 0x7a, 0xdb, 0xcb, 0x6e, 0x20, 0x96, 0x84, 0x3a, 0x0b, 0x6f, 0x2b, 0x0c, 0xd6, 0xa8, - 0xd0, 0x2a, 0xf4, 0xb7, 0xfc, 0x20, 0x0a, 0xa7, 0x07, 0x58, 0x77, 0x3f, 0x9a, 0xb3, 0x11, 0xf1, - 0xaf, 0xad, 0xf8, 0x41, 0x14, 0x7f, 0x00, 0xfd, 0x17, 0x62, 0x5e, 0x1c, 0x5d, 0x87, 0x41, 0xe2, - 0xed, 0xad, 0x06, 0x7e, 0x73, 0x7a, 0x2a, 0x9f, 0xd3, 0x0a, 0x27, 0xe1, 0xd3, 0x2c, 0x96, 0x51, - 0x05, 0x18, 0x4b, 0x16, 0xe8, 0x3b, 0xa0, 0x48, 0xbc, 0xbd, 0xe9, 0x41, 0xc6, 0x69, 0x26, 0x87, - 0xd3, 0x2d, 0x27, 0x88, 0xf7, 0xfc, 0x15, 0x6f, 0x0f, 0xd3, 0x32, 0xe8, 0xa3, 0x50, 0x92, 0x1b, - 0x46, 0x28, 0xd4, 0x99, 0x99, 0x13, 0x56, 0x6e, 0x33, 0x98, 0xbc, 0xd9, 0x76, 0x03, 0xd2, 0x24, - 0x5e, 0x14, 0xc6, 0x3b, 0xa4, 0xc4, 0x86, 0x38, 0xe6, 0x86, 0x3e, 0x2a, 0x75, 0xe8, 0x6b, 0x7e, - 0xdb, 0x8b, 0xc2, 0xe9, 0x12, 0x6b, 0x5e, 0xa6, 0x75, 0xf3, 0x56, 0x4c, 0x97, 0x54, 0xb2, 0xf3, - 0xc2, 0xd8, 0x60, 0x85, 0x3e, 0x01, 0xa3, 0xfc, 0x3f, 0xb7, 0x11, 0x86, 0xd3, 0xa7, 0x19, 0xef, - 0x0b, 0xf9, 0xbc, 0x39, 0xe1, 0xe2, 0x69, 0xc1, 0x7c, 0x54, 0x87, 0x86, 0xd8, 0xe4, 0x86, 0x30, - 0x8c, 0x36, 0xdc, 0x3d, 0xe2, 0x91, 0x30, 0xac, 0x04, 0xfe, 0x26, 0x11, 0x2a, 0xcf, 0xb3, 0xd9, - 0x36, 0x45, 0x7f, 0x93, 0x2c, 0x4e, 0x52, 0x9e, 0xd7, 0xf5, 0x32, 0xd8, 0x64, 0x81, 0x6e, 0xc2, - 0x18, 0xbd, 0x63, 0xba, 0x31, 0xd3, 0xe1, 0x6e, 0x4c, 0xd9, 0xbd, 0x0a, 0x1b, 0x85, 0x70, 0x82, - 0x09, 0xba, 0x01, 0x23, 0x61, 0xe4, 0x04, 0x51, 0xbb, 0xc5, 0x99, 0x9e, 0xe9, 0xc6, 0x94, 0x99, - 0xa4, 0xab, 0x5a, 0x11, 0x6c, 0x30, 0x40, 0xaf, 0x41, 0xa9, 0xe1, 0x6e, 0x91, 0xda, 0x7e, 0xad, - 0x41, 0xa6, 0x47, 0x18, 0xb7, 0xcc, 0x4d, 0xe5, 0xba, 0x24, 0xe2, 0x72, 0xae, 0xfa, 0x8b, 0xe3, - 0xe2, 0xe8, 0x16, 0x9c, 0x89, 0x48, 0xd0, 0x74, 0x3d, 0x87, 0x6e, 0x06, 0xe2, 0x6a, 0xc5, 0x4c, - 0xbd, 0xa3, 0x6c, 0xb5, 0x9d, 0x17, 0xa3, 0x71, 0x66, 0x23, 0x93, 0x0a, 0xe7, 0x94, 0x46, 0x77, - 0x61, 0x3a, 0x03, 0xe3, 0x37, 0xdc, 0xda, 0xfe, 0xf4, 0x29, 0xc6, 0xf9, 0x83, 0x82, 0xf3, 0xf4, - 0x46, 0x0e, 0xdd, 0x61, 0x07, 0x1c, 0xce, 0xe5, 0x8e, 0x6e, 0xc0, 0x38, 0xdb, 0x81, 0x2a, 0xed, - 0x46, 0x43, 0x54, 0x38, 0xc6, 0x2a, 0x7c, 0x42, 0x9e, 0xc7, 0x65, 0x13, 0x7d, 0x78, 0x30, 0x0b, - 0xf1, 0x3f, 0x9c, 0x2c, 0x8d, 0x36, 0x99, 0x55, 0xb1, 0x1d, 0xb8, 0xd1, 0x3e, 0xdd, 0x37, 0xc8, - 0xdd, 0x68, 0x7a, 0xbc, 0xa3, 0x86, 0x45, 0x27, 0x55, 0xa6, 0x47, 0x1d, 0x88, 0x93, 0x0c, 0xe9, - 0x96, 0x1a, 0x46, 0x75, 0xd7, 0x9b, 0x9e, 0xe0, 0xf7, 0x12, 0xb9, 0x23, 0x55, 0x29, 0x10, 0x73, - 0x1c, 0xb3, 0x28, 0xd2, 0x1f, 0x37, 0xe8, 0xc9, 0x35, 0xc9, 0x08, 0x63, 0x8b, 0xa2, 0x44, 0xe0, - 0x98, 0x86, 0x0a, 0x93, 0x51, 0xb4, 0x3f, 0x8d, 0x18, 0xa9, 0xda, 0x58, 0x36, 0x36, 0x3e, 0x8a, - 0x29, 0xdc, 0xde, 0x84, 0x31, 0xb5, 0x11, 0xb2, 0x3e, 0x41, 0xb3, 0xd0, 0xcf, 0xc4, 0x27, 0xa1, - 0x0f, 0x2c, 0xd1, 0x26, 0x30, 0xd1, 0x0a, 0x73, 0x38, 0x6b, 0x82, 0xfb, 0x16, 0x59, 0xdc, 0x8f, - 0x08, 0xbf, 0xd3, 0x17, 0xb5, 0x26, 0x48, 0x04, 0x8e, 0x69, 0xec, 0xff, 0xc7, 0xc5, 0xd0, 0x78, - 0xb7, 0xed, 0xe1, 0x7c, 0x79, 0x06, 0x86, 0x76, 0xfc, 0x30, 0xa2, 0xd4, 0xac, 0x8e, 0xfe, 0x58, - 0xf0, 0xbc, 0x2a, 0xe0, 0x58, 0x51, 0xa0, 0x57, 0x60, 0xb4, 0xa6, 0x57, 0x20, 0x0e, 0x47, 0xb5, - 0x8d, 0x18, 0xb5, 0x63, 0x93, 0x16, 0xbd, 0x04, 0x43, 0xcc, 0x4b, 0xa6, 0xe6, 0x37, 0x84, 0xd4, - 0x26, 0x4f, 0xf8, 0xa1, 0x8a, 0x80, 0x1f, 0x6a, 0xbf, 0xb1, 0xa2, 0x46, 0x17, 0x61, 0x80, 0x36, - 0xa1, 0x5c, 0x11, 0xc7, 0x92, 0x52, 0x6d, 0x5d, 0x65, 0x50, 0x2c, 0xb0, 0xf6, 0x5f, 0x2c, 0x68, - 0xbd, 0x4c, 0xef, 0xc3, 0x04, 0x55, 0x60, 0xf0, 0x8e, 0xe3, 0x46, 0xae, 0xb7, 0x2d, 0xe4, 0x8f, - 0xa7, 0x3a, 0x9e, 0x51, 0xac, 0xd0, 0x6d, 0x5e, 0x80, 0x9f, 0xa2, 0xe2, 0x0f, 0x96, 0x6c, 0x28, - 0xc7, 0xa0, 0xed, 0x79, 0x94, 0x63, 0xa1, 0x57, 0x8e, 0x98, 0x17, 0xe0, 0x1c, 0xc5, 0x1f, 0x2c, - 0xd9, 0xa0, 0x37, 0x00, 0xe4, 0x0a, 0x23, 0x75, 0xe1, 0x9d, 0xf2, 0x4c, 0x77, 0xa6, 0x1b, 0xaa, - 0xcc, 0xe2, 0x18, 0x3d, 0xa3, 0xe3, 0xff, 0x58, 0xe3, 0x67, 0x47, 0x4c, 0x4e, 0x4b, 0x37, 0x06, - 0x7d, 0x9c, 0x4e, 0x71, 0x27, 0x88, 0x48, 0x7d, 0x21, 0x12, 0x9d, 0xf3, 0xde, 0xde, 0x2e, 0x29, - 0x1b, 0x6e, 0x93, 0xe8, 0xcb, 0x41, 0x30, 0xc1, 0x31, 0x3f, 0xfb, 0xe7, 0x8b, 0x30, 0x9d, 0xd7, - 0x5c, 0x3a, 0xe9, 0xc8, 0x5d, 0x37, 0x5a, 0xa2, 0xe2, 0x95, 0x65, 0x4e, 0xba, 0x15, 0x01, 0xc7, - 0x8a, 0x82, 0x8e, 0x7e, 0xe8, 0x6e, 0xcb, 0x3b, 0x66, 0x7f, 0x3c, 0xfa, 0x55, 0x06, 0xc5, 0x02, - 0x4b, 0xe9, 0x02, 0xe2, 0x84, 0xc2, 0xfd, 0x49, 0x9b, 0x25, 0x98, 0x41, 0xb1, 0xc0, 0xea, 0xda, - 0xae, 0xbe, 0x2e, 0xda, 0x2e, 0xa3, 0x8b, 0xfa, 0x8f, 0xb7, 0x8b, 0xd0, 0x27, 0x01, 0xb6, 0x5c, - 0xcf, 0x0d, 0x77, 0x18, 0xf7, 0x81, 0x23, 0x73, 0x57, 0xc2, 0xd9, 0xaa, 0xe2, 0x82, 0x35, 0x8e, - 0xe8, 0x45, 0x18, 0x56, 0x0b, 0xb0, 0xbc, 0xcc, 0x6c, 0xc1, 0x9a, 0x6f, 0x4d, 0xbc, 0x1b, 0x2d, - 0x63, 0x9d, 0xce, 0xfe, 0x74, 0x72, 0xbe, 0x88, 0x15, 0xa0, 0xf5, 0xaf, 0xd5, 0x6b, 0xff, 0x16, - 0x3a, 0xf7, 0xaf, 0xfd, 0x8d, 0x22, 0x8c, 0x1b, 0x95, 0xb5, 0xc3, 0x1e, 0xf6, 0xac, 0x2b, 0x74, - 0x03, 0x77, 0x22, 0x22, 0xd6, 0x9f, 0xdd, 0x7d, 0xa9, 0xe8, 0x9b, 0x3c, 0x5d, 0x01, 0xbc, 0x3c, - 0xfa, 0x24, 0x94, 0x1a, 0x4e, 0xc8, 0x34, 0x67, 0x44, 0xac, 0xbb, 0x5e, 0x98, 0xc5, 0x17, 0x13, - 0x27, 0x8c, 0xb4, 0x53, 0x93, 0xf3, 0x8e, 0x59, 0xd2, 0x93, 0x86, 0xca, 0x27, 0xd2, 0xbf, 0x4e, - 0x35, 0x82, 0x0a, 0x31, 0xfb, 0x98, 0xe3, 0xd0, 0x4b, 0x30, 0x12, 0x10, 0x36, 0x2b, 0x96, 0xa8, - 0x34, 0xc7, 0xa6, 0x59, 0x7f, 0x2c, 0xf6, 0x61, 0x0d, 0x87, 0x0d, 0xca, 0xf8, 0x6e, 0x30, 0xd0, - 0xe1, 0x6e, 0xf0, 0x14, 0x0c, 0xb2, 0x1f, 0x6a, 0x06, 0xa8, 0xd1, 0x28, 0x73, 0x30, 0x96, 0xf8, - 0xe4, 0x84, 0x19, 0xea, 0x6d, 0xc2, 0xd0, 0xdb, 0x87, 0x98, 0xd4, 0xcc, 0x0e, 0x3f, 0xc4, 0x77, - 0x39, 0x31, 0xe5, 0xb1, 0xc4, 0xd9, 0xef, 0x85, 0xb1, 0x65, 0x87, 0x34, 0x7d, 0x6f, 0xc5, 0xab, - 0xb7, 0x7c, 0xd7, 0x8b, 0xd0, 0x34, 0xf4, 0xb1, 0x43, 0x84, 0x6f, 0x01, 0x7d, 0xb4, 0x22, 0xcc, - 0x20, 0xf6, 0x36, 0x9c, 0x5e, 0xf6, 0xef, 0x78, 0x77, 0x9c, 0xa0, 0xbe, 0x50, 0x29, 0x6b, 0xf7, - 0xeb, 0x75, 0x79, 0xbf, 0xe3, 0x6e, 0x6d, 0x99, 0x5b, 0xaf, 0x56, 0x92, 0x8b, 0xb5, 0xab, 0x6e, - 0x83, 0xe4, 0x68, 0x41, 0xfe, 0x4a, 0xc1, 0xa8, 0x29, 0xa6, 0x57, 0x76, 0x38, 0x2b, 0xd7, 0x0e, - 0xf7, 0x3a, 0x0c, 0x6d, 0xb9, 0xa4, 0x51, 0xc7, 0x64, 0x4b, 0xcc, 0xc4, 0x27, 0xf3, 0x3d, 0x75, - 0x56, 0x29, 0xa5, 0xd4, 0x7a, 0xf1, 0xdb, 0xe1, 0xaa, 0x28, 0x8c, 0x15, 0x1b, 0xb4, 0x0b, 0x13, - 0xf2, 0xc2, 0x20, 0xb1, 0x62, 0x5e, 0x3e, 0xd5, 0xe9, 0x16, 0x62, 0x32, 0x3f, 0x75, 0xef, 0x60, - 0x76, 0x02, 0x27, 0xd8, 0xe0, 0x14, 0x63, 0x7a, 0x1d, 0x6c, 0xd2, 0x1d, 0xb8, 0x8f, 0x75, 0x3f, - 0xbb, 0x0e, 0xb2, 0x9b, 0x2d, 0x83, 0xda, 0x3f, 0x66, 0xc1, 0x43, 0xa9, 0x9e, 0x11, 0x37, 0xfc, - 0x63, 0x1e, 0x85, 0xe4, 0x8d, 0xbb, 0xd0, 0xfd, 0xc6, 0x6d, 0xff, 0x2d, 0x0b, 0x4e, 0xad, 0x34, - 0x5b, 0xd1, 0xfe, 0xb2, 0x6b, 0x1a, 0xcd, 0x3e, 0x00, 0x03, 0x4d, 0x52, 0x77, 0xdb, 0x4d, 0x31, - 0x72, 0xb3, 0x72, 0x97, 0x5a, 0x63, 0xd0, 0xc3, 0x83, 0xd9, 0xd1, 0x6a, 0xe4, 0x07, 0xce, 0x36, - 0xe1, 0x00, 0x2c, 0xc8, 0xd9, 0x5e, 0xef, 0xbe, 0x45, 0xae, 0xbb, 0x4d, 0x57, 0x7a, 0x5e, 0x75, - 0xd4, 0xd9, 0xcd, 0xc9, 0x0e, 0x9d, 0x7b, 0xbd, 0xed, 0x78, 0x91, 0x1b, 0xed, 0x0b, 0x7b, 0x97, - 0x64, 0x82, 0x63, 0x7e, 0xf6, 0xd7, 0x2d, 0x18, 0x97, 0xf3, 0x7e, 0xa1, 0x5e, 0x0f, 0x48, 0x18, - 0xa2, 0x19, 0x28, 0xb8, 0x2d, 0xd1, 0x4a, 0x10, 0xad, 0x2c, 0x94, 0x2b, 0xb8, 0xe0, 0xb6, 0xa4, - 0x58, 0xc6, 0x36, 0xc2, 0xa2, 0x69, 0xfa, 0xbb, 0x2a, 0xe0, 0x58, 0x51, 0xa0, 0x4b, 0x30, 0xe4, - 0xf9, 0x75, 0x6e, 0xe7, 0xe2, 0x47, 0x1a, 0x9b, 0x60, 0xeb, 0x02, 0x86, 0x15, 0x16, 0x55, 0xa0, - 0xc4, 0x1d, 0xc3, 0xe2, 0x49, 0xdb, 0x93, 0x7b, 0x19, 0xfb, 0xb2, 0x0d, 0x59, 0x12, 0xc7, 0x4c, - 0xec, 0x5f, 0xb1, 0x60, 0x44, 0x7e, 0x59, 0x8f, 0x32, 0x27, 0x5d, 0x5a, 0xb1, 0xbc, 0x19, 0x2f, - 0x2d, 0x2a, 0x33, 0x32, 0x8c, 0x21, 0x2a, 0x16, 0x8f, 0x24, 0x2a, 0x5e, 0x86, 0x61, 0xa7, 0xd5, - 0xaa, 0x98, 0x72, 0x26, 0x9b, 0x4a, 0x0b, 0x31, 0x18, 0xeb, 0x34, 0xf6, 0x8f, 0x16, 0x60, 0x4c, - 0x7e, 0x41, 0xb5, 0xbd, 0x19, 0x92, 0x08, 0x6d, 0x40, 0xc9, 0xe1, 0xa3, 0x44, 0xe4, 0x24, 0x7f, - 0x2c, 0x5b, 0x8f, 0x60, 0x0c, 0x69, 0x7c, 0xe0, 0x2f, 0xc8, 0xd2, 0x38, 0x66, 0x84, 0x1a, 0x30, - 0xe9, 0xf9, 0x11, 0xdb, 0xfc, 0x15, 0xbe, 0x93, 0x69, 0x27, 0xc9, 0xfd, 0xac, 0xe0, 0x3e, 0xb9, - 0x9e, 0xe4, 0x82, 0xd3, 0x8c, 0xd1, 0x8a, 0xd4, 0xcd, 0x14, 0xf3, 0x95, 0x01, 0xfa, 0xc0, 0x65, - 0xab, 0x66, 0xec, 0x5f, 0xb2, 0xa0, 0x24, 0xc9, 0x4e, 0xc2, 0x8a, 0xb7, 0x06, 0x83, 0x21, 0x1b, - 0x04, 0xd9, 0x35, 0x76, 0xa7, 0x86, 0xf3, 0xf1, 0x8a, 0xcf, 0x34, 0xfe, 0x3f, 0xc4, 0x92, 0x07, - 0x53, 0xcd, 0xab, 0xe6, 0xbf, 0x43, 0x54, 0xf3, 0xaa, 0x3d, 0x39, 0x87, 0xd2, 0x1f, 0xb0, 0x36, - 0x6b, 0xba, 0x2e, 0x2a, 0x7a, 0xb5, 0x02, 0xb2, 0xe5, 0xde, 0x4d, 0x8a, 0x5e, 0x15, 0x06, 0xc5, - 0x02, 0x8b, 0xde, 0x80, 0x91, 0x9a, 0xd4, 0xc9, 0xc6, 0x2b, 0xfc, 0x62, 0x47, 0xfb, 0x80, 0x32, - 0x25, 0x71, 0x5d, 0xc8, 0x92, 0x56, 0x1e, 0x1b, 0xdc, 0x4c, 0xc7, 0x87, 0x62, 0x37, 0xc7, 0x87, - 0x98, 0x6f, 0xbe, 0x1b, 0xc0, 0x8f, 0x5b, 0x30, 0xc0, 0x75, 0x71, 0xbd, 0xa9, 0x42, 0x35, 0xcb, - 0x5a, 0xdc, 0x77, 0xb7, 0x28, 0x50, 0x58, 0xca, 0xd0, 0x1a, 0x94, 0xd8, 0x0f, 0xa6, 0x4b, 0x2c, - 0xe6, 0xbf, 0x4b, 0xe0, 0xb5, 0xea, 0x0d, 0xbc, 0x25, 0x8b, 0xe1, 0x98, 0x83, 0xfd, 0x23, 0x45, - 0xba, 0xbb, 0xc5, 0xa4, 0xc6, 0xa1, 0x6f, 0x3d, 0xb8, 0x43, 0xbf, 0xf0, 0xa0, 0x0e, 0xfd, 0x6d, - 0x18, 0xaf, 0x69, 0x76, 0xb8, 0x78, 0x24, 0x2f, 0x75, 0x9c, 0x24, 0x9a, 0xc9, 0x8e, 0x6b, 0x59, - 0x96, 0x4c, 0x26, 0x38, 0xc9, 0x15, 0x7d, 0x1c, 0x46, 0xf8, 0x38, 0x8b, 0x5a, 0xb8, 0xef, 0xc8, - 0x13, 0xf9, 0xf3, 0x45, 0xaf, 0x82, 0x6b, 0xe5, 0xb4, 0xe2, 0xd8, 0x60, 0x66, 0xff, 0xb1, 0x05, - 0x68, 0xa5, 0xb5, 0x43, 0x9a, 0x24, 0x70, 0x1a, 0xb1, 0x3a, 0xfd, 0x07, 0x2d, 0x98, 0x26, 0x29, - 0xf0, 0x92, 0xdf, 0x6c, 0x8a, 0x4b, 0x4b, 0xce, 0xbd, 0x7a, 0x25, 0xa7, 0x8c, 0x7a, 0xb8, 0x31, - 0x9d, 0x47, 0x81, 0x73, 0xeb, 0x43, 0x6b, 0x30, 0xc5, 0x4f, 0x49, 0x85, 0xd0, 0xfc, 0x50, 0x1e, - 0x16, 0x8c, 0xa7, 0x36, 0xd2, 0x24, 0x38, 0xab, 0x9c, 0xfd, 0x3d, 0x23, 0x90, 0xdb, 0x8a, 0x77, - 0xed, 0x08, 0xef, 0xda, 0x11, 0xde, 0xb5, 0x23, 0xbc, 0x6b, 0x47, 0x78, 0xd7, 0x8e, 0xf0, 0x6d, - 0x6f, 0x47, 0xf8, 0x4b, 0x16, 0x9c, 0x56, 0xc7, 0x80, 0x71, 0xf1, 0xfd, 0x0c, 0x4c, 0xf1, 0xe5, - 0x66, 0xf8, 0x2e, 0x8a, 0x63, 0xef, 0x72, 0xe6, 0xcc, 0x4d, 0xf8, 0xd8, 0x1a, 0x05, 0xf9, 0x63, - 0x85, 0x0c, 0x04, 0xce, 0xaa, 0xc6, 0xfe, 0xf9, 0x21, 0xe8, 0x5f, 0xd9, 0x23, 0x5e, 0x74, 0x02, - 0x57, 0x84, 0x1a, 0x8c, 0xb9, 0xde, 0x9e, 0xdf, 0xd8, 0x23, 0x75, 0x8e, 0x3f, 0xca, 0x4d, 0xf6, - 0x8c, 0x60, 0x3d, 0x56, 0x36, 0x58, 0xe0, 0x04, 0xcb, 0x07, 0xa1, 0x4d, 0xbe, 0x02, 0x03, 0x7c, - 0x13, 0x17, 0xaa, 0xe4, 0xcc, 0x3d, 0x9b, 0x75, 0xa2, 0x38, 0x9a, 0x62, 0x4d, 0x37, 0x3f, 0x24, - 0x44, 0x71, 0xf4, 0x69, 0x18, 0xdb, 0x72, 0x83, 0x30, 0xda, 0x70, 0x9b, 0x24, 0x8c, 0x9c, 0x66, - 0xeb, 0x3e, 0xb4, 0xc7, 0xaa, 0x1f, 0x56, 0x0d, 0x4e, 0x38, 0xc1, 0x19, 0x6d, 0xc3, 0x68, 0xc3, - 0xd1, 0xab, 0x1a, 0x3c, 0x72, 0x55, 0xea, 0x74, 0xb8, 0xae, 0x33, 0xc2, 0x26, 0x5f, 0xba, 0x9c, - 0x6a, 0x4c, 0x01, 0x3a, 0xc4, 0xd4, 0x02, 0x6a, 0x39, 0x71, 0xcd, 0x27, 0xc7, 0x51, 0x41, 0x87, - 0x39, 0xc8, 0x96, 0x4c, 0x41, 0x47, 0x73, 0x83, 0xfd, 0x14, 0x94, 0x08, 0xed, 0x42, 0xca, 0x58, - 0x1c, 0x30, 0xf3, 0xbd, 0xb5, 0x75, 0xcd, 0xad, 0x05, 0xbe, 0xa9, 0xb7, 0x5f, 0x91, 0x9c, 0x70, - 0xcc, 0x14, 0x2d, 0xc1, 0x40, 0x48, 0x02, 0x97, 0x84, 0xe2, 0xa8, 0xe9, 0x30, 0x8c, 0x8c, 0x8c, - 0xbf, 0x86, 0xe1, 0xbf, 0xb1, 0x28, 0x4a, 0xa7, 0x97, 0xc3, 0x54, 0x9a, 0xec, 0x30, 0xd0, 0xa6, - 0xd7, 0x02, 0x83, 0x62, 0x81, 0x45, 0xaf, 0xc1, 0x60, 0x40, 0x1a, 0xcc, 0x30, 0x34, 0xda, 0xfb, - 0x24, 0xe7, 0x76, 0x26, 0x5e, 0x0e, 0x4b, 0x06, 0xe8, 0x1a, 0xa0, 0x80, 0x50, 0x41, 0xc9, 0xf5, - 0xb6, 0x95, 0xdb, 0xa8, 0xd8, 0x68, 0x95, 0x40, 0x8a, 0x63, 0x0a, 0xf9, 0x10, 0x0a, 0x67, 0x14, - 0x43, 0x57, 0x60, 0x52, 0x41, 0xcb, 0x5e, 0x18, 0x39, 0x74, 0x83, 0x1b, 0x67, 0xbc, 0x94, 0x9e, - 0x02, 0x27, 0x09, 0x70, 0xba, 0x8c, 0xfd, 0x25, 0x0b, 0x78, 0x3f, 0x9f, 0xc0, 0xed, 0xfc, 0x55, - 0xf3, 0x76, 0x7e, 0x36, 0x77, 0xe4, 0x72, 0x6e, 0xe6, 0x5f, 0xb2, 0x60, 0x58, 0x1b, 0xd9, 0x78, - 0xce, 0x5a, 0x1d, 0xe6, 0x6c, 0x1b, 0x26, 0xe8, 0x4c, 0xbf, 0xb1, 0x19, 0x92, 0x60, 0x8f, 0xd4, - 0xd9, 0xc4, 0x2c, 0xdc, 0xdf, 0xc4, 0x54, 0x2e, 0x6a, 0xd7, 0x13, 0x0c, 0x71, 0xaa, 0x0a, 0xfb, - 0x53, 0xb2, 0xa9, 0xca, 0xa3, 0xaf, 0xa6, 0xc6, 0x3c, 0xe1, 0xd1, 0xa7, 0x46, 0x15, 0xc7, 0x34, - 0x74, 0xa9, 0xed, 0xf8, 0x61, 0x94, 0xf4, 0xe8, 0xbb, 0xea, 0x87, 0x11, 0x66, 0x18, 0xfb, 0x79, - 0x80, 0x95, 0xbb, 0xa4, 0xc6, 0x67, 0xac, 0x7e, 0x79, 0xb0, 0xf2, 0x2f, 0x0f, 0xf6, 0x6f, 0x5a, - 0x30, 0xb6, 0xba, 0x64, 0x9c, 0x5c, 0x73, 0x00, 0xfc, 0xc6, 0x73, 0xfb, 0xf6, 0xba, 0x34, 0x87, - 0x73, 0x8b, 0xa6, 0x82, 0x62, 0x8d, 0x02, 0x9d, 0x85, 0x62, 0xa3, 0xed, 0x09, 0xf5, 0xe1, 0x20, - 0x3d, 0x1e, 0xaf, 0xb7, 0x3d, 0x4c, 0x61, 0xda, 0x23, 0x88, 0x62, 0xcf, 0x8f, 0x20, 0xba, 0x06, - 0x3f, 0x40, 0xb3, 0xd0, 0x7f, 0xe7, 0x8e, 0x5b, 0xe7, 0x4f, 0x4c, 0x85, 0xa9, 0xfe, 0xf6, 0xed, - 0xf2, 0x72, 0x88, 0x39, 0xdc, 0xfe, 0x42, 0x11, 0x66, 0x56, 0x1b, 0xe4, 0xee, 0xdb, 0x7c, 0x66, - 0xdb, 0xeb, 0x13, 0x8e, 0xa3, 0x29, 0x62, 0x8e, 0xfa, 0x4c, 0xa7, 0x7b, 0x7f, 0x6c, 0xc1, 0x20, - 0x77, 0x68, 0x93, 0x8f, 0x6e, 0x5f, 0xc9, 0xaa, 0x3d, 0xbf, 0x43, 0xe6, 0xb8, 0x63, 0x9c, 0x78, - 0xc3, 0xa7, 0x0e, 0x4c, 0x01, 0xc5, 0x92, 0xf9, 0xcc, 0xcb, 0x30, 0xa2, 0x53, 0x1e, 0xe9, 0xc1, - 0xdc, 0x9f, 0x2b, 0xc2, 0x04, 0x6d, 0xc1, 0x03, 0x1d, 0x88, 0x9b, 0xe9, 0x81, 0x38, 0xee, 0x47, - 0x53, 0xdd, 0x47, 0xe3, 0x8d, 0xe4, 0x68, 0x5c, 0xce, 0x1b, 0x8d, 0x93, 0x1e, 0x83, 0xef, 0xb6, - 0x60, 0x6a, 0xb5, 0xe1, 0xd7, 0x76, 0x13, 0x0f, 0x9b, 0x5e, 0x84, 0x61, 0xba, 0x1d, 0x87, 0xc6, - 0x1b, 0x7f, 0x23, 0xea, 0x83, 0x40, 0x61, 0x9d, 0x4e, 0x2b, 0x76, 0xf3, 0x66, 0x79, 0x39, 0x2b, - 0x58, 0x84, 0x40, 0x61, 0x9d, 0xce, 0xfe, 0x75, 0x0b, 0xce, 0x5d, 0x59, 0x5a, 0x89, 0xa7, 0x62, - 0x2a, 0x5e, 0xc5, 0x45, 0x18, 0x68, 0xd5, 0xb5, 0xa6, 0xc4, 0xea, 0xd5, 0x65, 0xd6, 0x0a, 0x81, - 0x7d, 0xa7, 0xc4, 0x62, 0xb9, 0x09, 0x70, 0x05, 0x57, 0x96, 0xc4, 0xbe, 0x2b, 0xad, 0x29, 0x56, - 0xae, 0x35, 0xe5, 0x09, 0x18, 0xa4, 0xe7, 0x82, 0x5b, 0x93, 0xed, 0xe6, 0x06, 0x5a, 0x0e, 0xc2, - 0x12, 0x67, 0xff, 0x8c, 0x05, 0x53, 0x57, 0xdc, 0x88, 0x1e, 0xda, 0xc9, 0x80, 0x0c, 0xf4, 0xd4, - 0x0e, 0xdd, 0xc8, 0x0f, 0xf6, 0x93, 0x01, 0x19, 0xb0, 0xc2, 0x60, 0x8d, 0x8a, 0x7f, 0xd0, 0x9e, - 0xcb, 0x3c, 0xb4, 0x0b, 0xa6, 0xfd, 0x0a, 0x0b, 0x38, 0x56, 0x14, 0xb4, 0xbf, 0xea, 0x6e, 0xc0, - 0x54, 0x7f, 0xfb, 0x62, 0xe3, 0x56, 0xfd, 0xb5, 0x2c, 0x11, 0x38, 0xa6, 0xb1, 0xff, 0xd0, 0x82, - 0xd9, 0x2b, 0x8d, 0x76, 0x18, 0x91, 0x60, 0x2b, 0xcc, 0xd9, 0x74, 0x9f, 0x87, 0x12, 0x91, 0x8a, - 0x76, 0xf9, 0x94, 0x4c, 0x0a, 0xa2, 0x4a, 0x03, 0xcf, 0xe3, 0x42, 0x28, 0xba, 0x1e, 0x5e, 0x5f, - 0x1e, 0xed, 0xf9, 0xdc, 0x2a, 0x20, 0xa2, 0xd7, 0xa5, 0x07, 0xca, 0x60, 0x2f, 0xee, 0x57, 0x52, - 0x58, 0x9c, 0x51, 0xc2, 0xfe, 0x31, 0x0b, 0x4e, 0xab, 0x0f, 0x7e, 0xc7, 0x7d, 0xa6, 0xfd, 0xd5, - 0x02, 0x8c, 0x5e, 0xdd, 0xd8, 0xa8, 0x5c, 0x21, 0x91, 0x36, 0x2b, 0x3b, 0x9b, 0xcf, 0xb1, 0x66, - 0x05, 0xec, 0x74, 0x47, 0x6c, 0x47, 0x6e, 0x63, 0x8e, 0xc7, 0x5b, 0x9a, 0x2b, 0x7b, 0xd1, 0x8d, - 0xa0, 0x1a, 0x05, 0xae, 0xb7, 0x9d, 0x39, 0xd3, 0xa5, 0xcc, 0x52, 0xcc, 0x93, 0x59, 0xd0, 0xf3, - 0x30, 0xc0, 0x02, 0x3e, 0xc9, 0x41, 0x78, 0x58, 0x5d, 0xb1, 0x18, 0xf4, 0xf0, 0x60, 0xb6, 0x74, - 0x13, 0x97, 0xf9, 0x1f, 0x2c, 0x48, 0xd1, 0x4d, 0x18, 0xde, 0x89, 0xa2, 0xd6, 0x55, 0xe2, 0xd4, - 0x49, 0x20, 0x77, 0xd9, 0xf3, 0x59, 0xbb, 0x2c, 0xed, 0x04, 0x4e, 0x16, 0x6f, 0x4c, 0x31, 0x2c, - 0xc4, 0x3a, 0x1f, 0xbb, 0x0a, 0x10, 0xe3, 0x8e, 0xc9, 0x00, 0x62, 0x6f, 0x40, 0x89, 0x7e, 0xee, - 0x42, 0xc3, 0x75, 0x3a, 0x9b, 0x98, 0x9f, 0x86, 0x92, 0x34, 0x20, 0x87, 0xe2, 0x75, 0x38, 0x3b, - 0x91, 0xa4, 0x7d, 0x39, 0xc4, 0x31, 0xde, 0xde, 0x82, 0x53, 0xcc, 0x1d, 0xd0, 0x89, 0x76, 0x8c, - 0xd9, 0xd7, 0x7d, 0x98, 0x9f, 0x11, 0x37, 0x36, 0xde, 0xe6, 0x69, 0xed, 0x39, 0xe3, 0x88, 0xe4, - 0x18, 0xdf, 0xde, 0xec, 0x6f, 0xf4, 0xc1, 0xc3, 0xe5, 0x6a, 0x7e, 0xc0, 0x92, 0x97, 0x60, 0x84, - 0x0b, 0x82, 0x74, 0xd0, 0x9d, 0x86, 0xa8, 0x57, 0xe9, 0x36, 0x37, 0x34, 0x1c, 0x36, 0x28, 0xd1, - 0x39, 0x28, 0xba, 0x6f, 0x7a, 0xc9, 0xc7, 0x3e, 0xe5, 0xd7, 0xd7, 0x31, 0x85, 0x53, 0x34, 0x95, - 0x29, 0xf9, 0x66, 0xad, 0xd0, 0x4a, 0xae, 0x7c, 0x15, 0xc6, 0xdc, 0xb0, 0x16, 0xba, 0x65, 0x8f, - 0xae, 0x40, 0x6d, 0x0d, 0x2b, 0x6d, 0x02, 0x6d, 0xb4, 0xc2, 0xe2, 0x04, 0xb5, 0x76, 0x72, 0xf4, - 0xf7, 0x2c, 0x97, 0x76, 0x7d, 0x2e, 0x4d, 0x37, 0xf6, 0x16, 0xfb, 0xba, 0x90, 0x29, 0xa9, 0xc5, - 0xc6, 0xce, 0x3f, 0x38, 0xc4, 0x12, 0x47, 0xaf, 0x6a, 0xb5, 0x1d, 0xa7, 0xb5, 0xd0, 0x8e, 0x76, - 0x96, 0xdd, 0xb0, 0xe6, 0xef, 0x91, 0x60, 0x9f, 0xdd, 0xb2, 0x87, 0xe2, 0xab, 0x9a, 0x42, 0x2c, - 0x5d, 0x5d, 0xa8, 0x50, 0x4a, 0x9c, 0x2e, 0x83, 0x16, 0x60, 0x5c, 0x02, 0xab, 0x24, 0x64, 0x9b, - 0xfb, 0x30, 0x63, 0xa3, 0x9e, 0xdf, 0x08, 0xb0, 0x62, 0x92, 0xa4, 0x37, 0x45, 0x57, 0x38, 0x0e, - 0xd1, 0xf5, 0x03, 0x30, 0xea, 0x7a, 0x6e, 0xe4, 0x3a, 0x91, 0xcf, 0x2d, 0x2c, 0xfc, 0x42, 0xcd, - 0x54, 0xc7, 0x65, 0x1d, 0x81, 0x4d, 0x3a, 0xfb, 0x3f, 0xf5, 0xc1, 0x24, 0x1b, 0xb6, 0x77, 0x67, - 0xd8, 0xb7, 0xd3, 0x0c, 0xbb, 0x99, 0x9e, 0x61, 0xc7, 0x21, 0x93, 0xdf, 0xf7, 0x34, 0xfb, 0x34, - 0x94, 0xd4, 0x8b, 0x23, 0xf9, 0xe4, 0xd0, 0xca, 0x79, 0x72, 0xd8, 0xfd, 0x5c, 0x96, 0x4e, 0x5b, - 0xc5, 0x4c, 0xa7, 0xad, 0x2f, 0x5b, 0x10, 0x9b, 0x0c, 0xd0, 0xeb, 0x50, 0x6a, 0xf9, 0xcc, 0x17, - 0x31, 0x90, 0x0e, 0xbe, 0x8f, 0x77, 0xb4, 0x39, 0xf0, 0x98, 0x4d, 0x01, 0xef, 0x85, 0x8a, 0x2c, - 0x8a, 0x63, 0x2e, 0xe8, 0x1a, 0x0c, 0xb6, 0x02, 0x52, 0x8d, 0x58, 0x40, 0x91, 0xde, 0x19, 0xf2, - 0x59, 0xc3, 0x0b, 0x62, 0xc9, 0xc1, 0xfe, 0xcf, 0x16, 0x4c, 0x24, 0x49, 0xd1, 0x07, 0xa1, 0x8f, - 0xdc, 0x25, 0x35, 0xd1, 0xde, 0xcc, 0x43, 0x36, 0x56, 0x3a, 0xf0, 0x0e, 0xa0, 0xff, 0x31, 0x2b, - 0x85, 0xae, 0xc2, 0x20, 0x3d, 0x61, 0xaf, 0xa8, 0xe0, 0x59, 0x8f, 0xe6, 0x9d, 0xd2, 0x4a, 0x54, - 0xe1, 0x8d, 0x13, 0x20, 0x2c, 0x8b, 0x33, 0x4f, 0xa9, 0x5a, 0xab, 0x4a, 0x2f, 0x2f, 0x51, 0xa7, - 0x3b, 0xf6, 0xc6, 0x52, 0x85, 0x13, 0x09, 0x6e, 0xdc, 0x53, 0x4a, 0x02, 0x71, 0xcc, 0xc4, 0xfe, - 0x59, 0x0b, 0x80, 0x3b, 0x86, 0x39, 0xde, 0x36, 0x39, 0x01, 0x3d, 0xf9, 0x32, 0xf4, 0x85, 0x2d, - 0x52, 0xeb, 0xe4, 0x26, 0x1b, 0xb7, 0xa7, 0xda, 0x22, 0xb5, 0x78, 0xc6, 0xd1, 0x7f, 0x98, 0x95, - 0xb6, 0xbf, 0x17, 0x60, 0x2c, 0x26, 0x2b, 0x47, 0xa4, 0x89, 0x9e, 0x35, 0xc2, 0x14, 0x9c, 0x4d, - 0x84, 0x29, 0x28, 0x31, 0x6a, 0x4d, 0x25, 0xfb, 0x69, 0x28, 0x36, 0x9d, 0xbb, 0x42, 0xe7, 0xf6, - 0x74, 0xe7, 0x66, 0x50, 0xfe, 0x73, 0x6b, 0xce, 0x5d, 0x7e, 0x2d, 0x7d, 0x5a, 0xae, 0x90, 0x35, - 0xe7, 0xee, 0x21, 0x77, 0x86, 0x65, 0xbb, 0xf4, 0x75, 0x37, 0x8c, 0x3e, 0xf7, 0x1f, 0xe3, 0xff, - 0x6c, 0xdd, 0xd1, 0x4a, 0x58, 0x5d, 0xae, 0x27, 0x7c, 0x9e, 0x7a, 0xaa, 0xcb, 0xf5, 0x92, 0x75, - 0xb9, 0x5e, 0x0f, 0x75, 0xb9, 0x1e, 0x7a, 0x0b, 0x06, 0x85, 0x4b, 0xa2, 0x08, 0x64, 0x34, 0xdf, - 0x43, 0x7d, 0xc2, 0xa3, 0x91, 0xd7, 0x39, 0x2f, 0xaf, 0xdd, 0x02, 0xda, 0xb5, 0x5e, 0x59, 0x21, - 0xfa, 0xcb, 0x16, 0x8c, 0x89, 0xdf, 0x98, 0xbc, 0xd9, 0x26, 0x61, 0x24, 0xc4, 0xd2, 0xf7, 0xf7, - 0xde, 0x06, 0x51, 0x90, 0x37, 0xe5, 0xfd, 0xf2, 0x9c, 0x31, 0x91, 0x5d, 0x5b, 0x94, 0x68, 0x05, - 0xfa, 0x3b, 0x16, 0x9c, 0x6a, 0x3a, 0x77, 0x79, 0x8d, 0x1c, 0x86, 0x9d, 0xc8, 0xf5, 0x85, 0x69, - 0xff, 0x83, 0xbd, 0x0d, 0x7f, 0xaa, 0x38, 0x6f, 0xa4, 0xb4, 0x3f, 0x9e, 0xca, 0x22, 0xe9, 0xda, - 0xd4, 0xcc, 0x76, 0xcd, 0x6c, 0xc1, 0x90, 0x9c, 0x6f, 0x19, 0xca, 0x8d, 0x65, 0x5d, 0xe6, 0x3e, - 0xb2, 0x47, 0xa8, 0xfe, 0xfc, 0x9f, 0xd6, 0x23, 0xe6, 0xda, 0x03, 0xad, 0xe7, 0xd3, 0x30, 0xa2, - 0xcf, 0xb1, 0x07, 0x5a, 0xd7, 0x9b, 0x30, 0x95, 0x31, 0x97, 0x1e, 0x68, 0x95, 0x77, 0xe0, 0x6c, - 0xee, 0xfc, 0x78, 0x90, 0x15, 0xdb, 0x5f, 0xb5, 0xf4, 0x7d, 0xf0, 0x04, 0x8c, 0x15, 0x4b, 0xa6, - 0xb1, 0xe2, 0x7c, 0xe7, 0x95, 0x93, 0x63, 0xb1, 0x78, 0x43, 0x6f, 0x34, 0xdd, 0xd5, 0xd1, 0x6b, - 0x30, 0xd0, 0xa0, 0x10, 0xe9, 0xd8, 0x6a, 0x77, 0x5f, 0x91, 0xb1, 0x30, 0xc9, 0xe0, 0x21, 0x16, - 0x1c, 0xec, 0x5f, 0xb0, 0xa0, 0xef, 0x04, 0x7a, 0x02, 0x9b, 0x3d, 0xf1, 0x6c, 0x2e, 0x6b, 0x11, - 0xd3, 0x79, 0x0e, 0x3b, 0x77, 0x56, 0xee, 0x46, 0xc4, 0x0b, 0xd9, 0x89, 0x9c, 0xd9, 0x31, 0x3f, - 0x69, 0xc1, 0xd4, 0x75, 0xdf, 0xa9, 0x2f, 0x3a, 0x0d, 0xc7, 0xab, 0x91, 0xa0, 0xec, 0x6d, 0x1f, - 0xc9, 0x2b, 0xbb, 0xd0, 0xd5, 0x2b, 0x7b, 0x49, 0x3a, 0x35, 0xf5, 0xe5, 0x8f, 0x1f, 0x95, 0xa4, - 0x93, 0x81, 0x5b, 0x0c, 0xf7, 0xdb, 0x1d, 0x40, 0x7a, 0x2b, 0xc5, 0x1b, 0x19, 0x0c, 0x83, 0x2e, - 0x6f, 0xaf, 0x18, 0xc4, 0x27, 0xb3, 0x25, 0xdc, 0xd4, 0xe7, 0x69, 0xaf, 0x3f, 0x38, 0x00, 0x4b, - 0x46, 0xf6, 0x4b, 0x90, 0xf9, 0xd0, 0xbe, 0xbb, 0x5e, 0xc2, 0xfe, 0x28, 0x4c, 0xb2, 0x92, 0x47, - 0xd4, 0x0c, 0xd8, 0x09, 0x6d, 0x6a, 0x46, 0xd0, 0x40, 0xfb, 0xf3, 0x16, 0x8c, 0xaf, 0x27, 0x62, - 0xa9, 0x5d, 0x64, 0xf6, 0xd7, 0x0c, 0x25, 0x7e, 0x95, 0x41, 0xb1, 0xc0, 0x1e, 0xbb, 0x92, 0xeb, - 0x4f, 0x2d, 0x88, 0x63, 0x5f, 0x9c, 0x80, 0xf8, 0xb6, 0x64, 0x88, 0x6f, 0x99, 0x82, 0xac, 0x6a, - 0x4e, 0x9e, 0xf4, 0x86, 0xae, 0xa9, 0xa8, 0x50, 0x1d, 0x64, 0xd8, 0x98, 0x0d, 0x9f, 0x8a, 0x63, - 0x66, 0xe8, 0x28, 0x19, 0x27, 0xca, 0xfe, 0xad, 0x02, 0x20, 0x45, 0xdb, 0x73, 0xd4, 0xaa, 0x74, - 0x89, 0xe3, 0x89, 0x5a, 0xb5, 0x07, 0x88, 0x79, 0x10, 0x04, 0x8e, 0x17, 0x72, 0xb6, 0xae, 0x50, - 0xeb, 0x1d, 0xcd, 0x3d, 0x61, 0x46, 0x54, 0x89, 0xae, 0xa7, 0xb8, 0xe1, 0x8c, 0x1a, 0x34, 0xcf, - 0x90, 0xfe, 0x5e, 0x3d, 0x43, 0x06, 0xba, 0xbc, 0x83, 0xfb, 0x8a, 0x05, 0xa3, 0xaa, 0x9b, 0xde, - 0x21, 0x5e, 0xea, 0xaa, 0x3d, 0x39, 0x1b, 0x68, 0x45, 0x6b, 0x32, 0x3b, 0x58, 0xbe, 0x93, 0xbd, - 0x67, 0x74, 0x1a, 0xee, 0x5b, 0x44, 0x45, 0x39, 0x9c, 0x15, 0xef, 0x13, 0x05, 0xf4, 0xf0, 0x60, - 0x76, 0x54, 0xfd, 0xe3, 0x51, 0x9c, 0xe3, 0x22, 0x74, 0x4b, 0x1e, 0x4f, 0x4c, 0x45, 0xf4, 0x22, - 0xf4, 0xb7, 0x76, 0x9c, 0x90, 0x24, 0x5e, 0xf3, 0xf4, 0x57, 0x28, 0xf0, 0xf0, 0x60, 0x76, 0x4c, - 0x15, 0x60, 0x10, 0xcc, 0xa9, 0x7b, 0x8f, 0x05, 0x96, 0x9e, 0x9c, 0x5d, 0x63, 0x81, 0xfd, 0xb1, - 0x05, 0x7d, 0xeb, 0x7e, 0xfd, 0x24, 0xb6, 0x80, 0x57, 0x8d, 0x2d, 0xe0, 0x91, 0xbc, 0x00, 0xfb, - 0xb9, 0xab, 0x7f, 0x35, 0xb1, 0xfa, 0xcf, 0xe7, 0x72, 0xe8, 0xbc, 0xf0, 0x9b, 0x30, 0xcc, 0xc2, - 0xf6, 0x8b, 0x97, 0x4b, 0xcf, 0x1b, 0x0b, 0x7e, 0x36, 0xb1, 0xe0, 0xc7, 0x35, 0x52, 0x6d, 0xa5, - 0x3f, 0x05, 0x83, 0xe2, 0x29, 0x4c, 0xf2, 0x59, 0xa8, 0xa0, 0xc5, 0x12, 0x6f, 0xff, 0x78, 0x11, - 0x8c, 0x34, 0x01, 0xe8, 0x97, 0x2c, 0x98, 0x0b, 0xb8, 0x8b, 0x6c, 0x7d, 0xb9, 0x1d, 0xb8, 0xde, - 0x76, 0xb5, 0xb6, 0x43, 0xea, 0xed, 0x86, 0xeb, 0x6d, 0x97, 0xb7, 0x3d, 0x5f, 0x81, 0x57, 0xee, - 0x92, 0x5a, 0x9b, 0x99, 0xdd, 0xba, 0xe4, 0x24, 0x50, 0xae, 0xe6, 0xcf, 0xdd, 0x3b, 0x98, 0x9d, - 0xc3, 0x47, 0xe2, 0x8d, 0x8f, 0xd8, 0x16, 0xf4, 0xeb, 0x16, 0xcc, 0xf3, 0xe8, 0xf9, 0xbd, 0xb7, - 0xbf, 0xc3, 0x6d, 0xb9, 0x22, 0x59, 0xc5, 0x4c, 0x36, 0x48, 0xd0, 0x5c, 0xfc, 0x80, 0xe8, 0xd0, - 0xf9, 0xca, 0xd1, 0xea, 0xc2, 0x47, 0x6d, 0x9c, 0xfd, 0x8f, 0x8b, 0x30, 0x2a, 0x62, 0x46, 0x89, - 0x33, 0xe0, 0x45, 0x63, 0x4a, 0x3c, 0x9a, 0x98, 0x12, 0x93, 0x06, 0xf1, 0xf1, 0x6c, 0xff, 0x21, - 0x4c, 0xd2, 0xcd, 0xf9, 0x2a, 0x71, 0x82, 0x68, 0x93, 0x38, 0xdc, 0xe1, 0xab, 0x78, 0xe4, 0xdd, - 0x5f, 0xe9, 0x27, 0xaf, 0x27, 0x99, 0xe1, 0x34, 0xff, 0x6f, 0xa7, 0x33, 0xc7, 0x83, 0x89, 0x54, - 0xd8, 0xaf, 0x8f, 0x41, 0x49, 0xbd, 0xe3, 0x10, 0x9b, 0x4e, 0xe7, 0xe8, 0x79, 0x49, 0x0e, 0x5c, - 0xfd, 0x15, 0xbf, 0x21, 0x8a, 0xd9, 0xd9, 0x7f, 0xaf, 0x60, 0x54, 0xc8, 0x07, 0x71, 0x1d, 0x86, - 0x9c, 0x30, 0x74, 0xb7, 0x3d, 0x52, 0xef, 0xa4, 0xa1, 0x4c, 0x55, 0xc3, 0xde, 0xd2, 0x2c, 0x88, - 0x92, 0x58, 0xf1, 0x40, 0x57, 0xb9, 0x5b, 0xdd, 0x1e, 0xe9, 0xa4, 0x9e, 0x4c, 0x71, 0x03, 0xe9, - 0x78, 0xb7, 0x47, 0xb0, 0x28, 0x8f, 0x3e, 0xc1, 0xfd, 0x1e, 0xaf, 0x79, 0xfe, 0x1d, 0xef, 0x8a, - 0xef, 0xcb, 0xb8, 0x0c, 0xbd, 0x31, 0x9c, 0x94, 0xde, 0x8e, 0xaa, 0x38, 0x36, 0xb9, 0xf5, 0x16, - 0x47, 0xf3, 0x33, 0xc0, 0xa2, 0x85, 0x9b, 0xcf, 0xa6, 0x43, 0x44, 0x60, 0x5c, 0x04, 0x24, 0x93, - 0x30, 0xd1, 0x77, 0x99, 0x57, 0x39, 0xb3, 0x74, 0xac, 0x48, 0xbf, 0x66, 0xb2, 0xc0, 0x49, 0x9e, - 0xf6, 0x4f, 0x5b, 0xc0, 0x9e, 0x90, 0x9e, 0x80, 0x3c, 0xf2, 0x21, 0x53, 0x1e, 0x99, 0xce, 0xeb, - 0xe4, 0x1c, 0x51, 0xe4, 0x05, 0x3e, 0xb3, 0x2a, 0x81, 0x7f, 0x77, 0x5f, 0x38, 0xab, 0x74, 0xbf, - 0x7f, 0xd8, 0xff, 0xc7, 0xe2, 0x9b, 0x98, 0x7a, 0x65, 0x81, 0x3e, 0x0b, 0x43, 0x35, 0xa7, 0xe5, - 0xd4, 0x78, 0x4e, 0x9b, 0x5c, 0x8d, 0x9e, 0x51, 0x68, 0x6e, 0x49, 0x94, 0xe0, 0x1a, 0x2a, 0x19, - 0xd8, 0x6e, 0x48, 0x82, 0xbb, 0x6a, 0xa5, 0x54, 0x95, 0x33, 0xbb, 0x30, 0x6a, 0x30, 0x7b, 0xa0, - 0xea, 0x8c, 0xcf, 0xf2, 0x23, 0x56, 0x05, 0x62, 0x6c, 0xc2, 0xa4, 0xa7, 0xfd, 0xa7, 0x07, 0x8a, - 0xbc, 0x5c, 0x3e, 0xde, 0xed, 0x10, 0x65, 0xa7, 0x8f, 0xf6, 0x3a, 0x35, 0xc1, 0x06, 0xa7, 0x39, - 0xdb, 0x3f, 0x61, 0xc1, 0x43, 0x3a, 0xa1, 0xf6, 0x00, 0xa6, 0x9b, 0x91, 0x64, 0x19, 0x86, 0xfc, - 0x16, 0x09, 0x9c, 0xc8, 0x0f, 0xc4, 0xa9, 0x71, 0x49, 0x76, 0xfa, 0x0d, 0x01, 0x3f, 0x14, 0x11, - 0xda, 0x25, 0x77, 0x09, 0xc7, 0xaa, 0x24, 0xbd, 0x7d, 0xb2, 0xce, 0x08, 0xc5, 0x53, 0x27, 0xb6, - 0x07, 0x30, 0x4b, 0x7a, 0x88, 0x05, 0xc6, 0xfe, 0x86, 0xc5, 0x27, 0x96, 0xde, 0x74, 0xf4, 0x26, - 0x4c, 0x34, 0x9d, 0xa8, 0xb6, 0xb3, 0x72, 0xb7, 0x15, 0x70, 0x93, 0x93, 0xec, 0xa7, 0xa7, 0xbb, - 0xf5, 0x93, 0xf6, 0x91, 0xb1, 0x2b, 0xe7, 0x5a, 0x82, 0x19, 0x4e, 0xb1, 0x47, 0x9b, 0x30, 0xcc, - 0x60, 0xec, 0x15, 0x5f, 0xd8, 0x49, 0x34, 0xc8, 0xab, 0x4d, 0x39, 0x23, 0xac, 0xc5, 0x7c, 0xb0, - 0xce, 0xd4, 0xfe, 0x72, 0x91, 0xaf, 0x76, 0x26, 0xca, 0x3f, 0x05, 0x83, 0x2d, 0xbf, 0xbe, 0x54, - 0x5e, 0xc6, 0x62, 0x14, 0xd4, 0x31, 0x52, 0xe1, 0x60, 0x2c, 0xf1, 0xe8, 0x12, 0x0c, 0x89, 0x9f, - 0xd2, 0x44, 0xc8, 0xf6, 0x66, 0x41, 0x17, 0x62, 0x85, 0x45, 0xcf, 0x01, 0xb4, 0x02, 0x7f, 0xcf, - 0xad, 0xb3, 0xe8, 0x12, 0x45, 0xd3, 0x8f, 0xa8, 0xa2, 0x30, 0x58, 0xa3, 0x42, 0xaf, 0xc0, 0x68, - 0xdb, 0x0b, 0xb9, 0x38, 0xa2, 0xc5, 0x92, 0x55, 0x1e, 0x2e, 0x37, 0x75, 0x24, 0x36, 0x69, 0xd1, - 0x02, 0x0c, 0x44, 0x0e, 0xf3, 0x8b, 0xe9, 0xcf, 0x77, 0xf7, 0xdd, 0xa0, 0x14, 0x7a, 0xfa, 0x14, - 0x5a, 0x00, 0x8b, 0x82, 0xe8, 0x63, 0xf2, 0x41, 0x2d, 0xdf, 0xd8, 0x85, 0x9f, 0x7d, 0x6f, 0x87, - 0x80, 0xf6, 0x9c, 0x56, 0xf8, 0xef, 0x1b, 0xbc, 0xd0, 0xcb, 0x00, 0xe4, 0x6e, 0x44, 0x02, 0xcf, - 0x69, 0x28, 0x6f, 0x36, 0x25, 0x17, 0x2c, 0xfb, 0xeb, 0x7e, 0x74, 0x33, 0x24, 0x2b, 0x8a, 0x02, - 0x6b, 0xd4, 0xf6, 0xaf, 0x97, 0x00, 0x62, 0xb9, 0x1d, 0xbd, 0x95, 0xda, 0xb8, 0x9e, 0xe9, 0x2c, - 0xe9, 0x1f, 0xdf, 0xae, 0x85, 0xbe, 0xcf, 0x82, 0x61, 0xa7, 0xd1, 0xf0, 0x6b, 0x0e, 0x8f, 0xf6, - 0x5b, 0xe8, 0xbc, 0x71, 0x8a, 0xfa, 0x17, 0xe2, 0x12, 0xbc, 0x09, 0xcf, 0xcb, 0x19, 0xaa, 0x61, - 0xba, 0xb6, 0x42, 0xaf, 0x18, 0xbd, 0x4f, 0x5e, 0x15, 0x8b, 0x46, 0x57, 0xaa, 0xab, 0x62, 0x89, - 0x9d, 0x11, 0xfa, 0x2d, 0xf1, 0xa6, 0x71, 0x4b, 0xec, 0xcb, 0x7f, 0x31, 0x68, 0x88, 0xaf, 0xdd, - 0x2e, 0x88, 0xa8, 0xa2, 0x47, 0x0f, 0xe8, 0xcf, 0x7f, 0x9e, 0xa7, 0xdd, 0x93, 0xba, 0x44, 0x0e, - 0xf8, 0x34, 0x8c, 0xd7, 0x4d, 0x21, 0x40, 0xcc, 0xc4, 0x27, 0xf3, 0xf8, 0x26, 0x64, 0x86, 0xf8, - 0xd8, 0x4f, 0x20, 0x70, 0x92, 0x31, 0xaa, 0xf0, 0x60, 0x12, 0x65, 0x6f, 0xcb, 0x17, 0x6f, 0x3d, - 0xec, 0xdc, 0xb1, 0xdc, 0x0f, 0x23, 0xd2, 0xa4, 0x94, 0xf1, 0xe9, 0xbe, 0x2e, 0xca, 0x62, 0xc5, - 0x05, 0xbd, 0x06, 0x03, 0xec, 0x7d, 0x56, 0x38, 0x3d, 0x94, 0xaf, 0x71, 0x36, 0xa3, 0xa3, 0xc5, - 0x0b, 0x92, 0xfd, 0x0d, 0xb1, 0xe0, 0x80, 0xae, 0xca, 0xd7, 0x8f, 0x61, 0xd9, 0xbb, 0x19, 0x12, - 0xf6, 0xfa, 0xb1, 0xb4, 0xf8, 0x78, 0xfc, 0xb0, 0x91, 0xc3, 0x33, 0x93, 0xac, 0x19, 0x25, 0xa9, - 0x14, 0x25, 0xfe, 0xcb, 0xdc, 0x6d, 0xd3, 0x90, 0xdf, 0x3c, 0x33, 0xbf, 0x5b, 0xdc, 0x9d, 0xb7, - 0x4c, 0x16, 0x38, 0xc9, 0x93, 0x4a, 0xa4, 0x7c, 0xd5, 0x8b, 0xd7, 0x22, 0xdd, 0xf6, 0x0e, 0x7e, - 0x11, 0x67, 0xa7, 0x11, 0x87, 0x60, 0x51, 0xfe, 0x44, 0xc5, 0x83, 0x19, 0x0f, 0x26, 0x92, 0x4b, - 0xf4, 0x81, 0x8a, 0x23, 0xbf, 0xdf, 0x07, 0x63, 0xe6, 0x94, 0x42, 0xf3, 0x50, 0x12, 0x4c, 0x54, - 0xfe, 0x03, 0xb5, 0x4a, 0xd6, 0x24, 0x02, 0xc7, 0x34, 0x2c, 0xed, 0x05, 0x2b, 0xae, 0xb9, 0x07, - 0xc7, 0x69, 0x2f, 0x14, 0x06, 0x6b, 0x54, 0xf4, 0x62, 0xb5, 0xe9, 0xfb, 0x91, 0x3a, 0x90, 0xd4, - 0xbc, 0x5b, 0x64, 0x50, 0x2c, 0xb0, 0xf4, 0x20, 0xda, 0x25, 0x81, 0x47, 0x1a, 0x66, 0xdc, 0x61, - 0x75, 0x10, 0x5d, 0xd3, 0x91, 0xd8, 0xa4, 0xa5, 0xc7, 0xa9, 0x1f, 0xb2, 0x89, 0x2c, 0xae, 0x6f, - 0xb1, 0xbb, 0x75, 0x95, 0x3f, 0xc0, 0x96, 0x78, 0xf4, 0x51, 0x78, 0x48, 0xc5, 0x56, 0xc2, 0xdc, - 0x9a, 0x21, 0x6b, 0x1c, 0x30, 0xb4, 0x2d, 0x0f, 0x2d, 0x65, 0x93, 0xe1, 0xbc, 0xf2, 0xe8, 0x55, - 0x18, 0x13, 0x22, 0xbe, 0xe4, 0x38, 0x68, 0x7a, 0x18, 0x5d, 0x33, 0xb0, 0x38, 0x41, 0x2d, 0x23, - 0x27, 0x33, 0x29, 0x5b, 0x72, 0x18, 0x4a, 0x47, 0x4e, 0xd6, 0xf1, 0x38, 0x55, 0x02, 0x2d, 0xc0, - 0x38, 0x97, 0xc1, 0x5c, 0x6f, 0x9b, 0x8f, 0x89, 0x78, 0xcc, 0xa5, 0x96, 0xd4, 0x0d, 0x13, 0x8d, - 0x93, 0xf4, 0xe8, 0x25, 0x18, 0x71, 0x82, 0xda, 0x8e, 0x1b, 0x91, 0x5a, 0xd4, 0x0e, 0xf8, 0x2b, - 0x2f, 0xcd, 0x45, 0x6b, 0x41, 0xc3, 0x61, 0x83, 0xd2, 0x7e, 0x0b, 0xa6, 0x32, 0x22, 0x33, 0xd0, - 0x89, 0xe3, 0xb4, 0x5c, 0xf9, 0x4d, 0x09, 0x0f, 0xe7, 0x85, 0x4a, 0x59, 0x7e, 0x8d, 0x46, 0x45, - 0x67, 0x27, 0x8b, 0xe0, 0xa0, 0xa5, 0x6a, 0x54, 0xb3, 0x73, 0x55, 0x22, 0x70, 0x4c, 0x63, 0xff, - 0xb7, 0x02, 0x8c, 0x67, 0xd8, 0x56, 0x58, 0xba, 0xc0, 0xc4, 0x25, 0x25, 0xce, 0x0e, 0x68, 0x06, - 0xe2, 0x2e, 0x1c, 0x21, 0x10, 0x77, 0xb1, 0x5b, 0x20, 0xee, 0xbe, 0xb7, 0x13, 0x88, 0xdb, 0xec, - 0xb1, 0xfe, 0x9e, 0x7a, 0x2c, 0x23, 0x78, 0xf7, 0xc0, 0x11, 0x83, 0x77, 0x1b, 0x9d, 0x3e, 0xd8, - 0x43, 0xa7, 0xff, 0x48, 0x01, 0x26, 0x92, 0xae, 0xa4, 0x27, 0xa0, 0xb7, 0x7d, 0xcd, 0xd0, 0xdb, - 0x5e, 0xea, 0xe5, 0xf1, 0x6d, 0xae, 0x0e, 0x17, 0x27, 0x74, 0xb8, 0xef, 0xed, 0x89, 0x5b, 0x67, - 0x7d, 0xee, 0x5f, 0x2f, 0xc0, 0xe9, 0xcc, 0xd7, 0xbf, 0x27, 0xd0, 0x37, 0x37, 0x8c, 0xbe, 0x79, - 0xb6, 0xe7, 0x87, 0xc9, 0xb9, 0x1d, 0x74, 0x3b, 0xd1, 0x41, 0xf3, 0xbd, 0xb3, 0xec, 0xdc, 0x4b, - 0x5f, 0x2f, 0xc2, 0xf9, 0xcc, 0x72, 0xb1, 0xda, 0x73, 0xd5, 0x50, 0x7b, 0x3e, 0x97, 0x50, 0x7b, - 0xda, 0x9d, 0x4b, 0x1f, 0x8f, 0x1e, 0x54, 0x3c, 0xd0, 0x65, 0x61, 0x06, 0xee, 0x53, 0x07, 0x6a, - 0x3c, 0xd0, 0x55, 0x8c, 0xb0, 0xc9, 0xf7, 0xdb, 0x49, 0xf7, 0xf9, 0xaf, 0x2c, 0x38, 0x9b, 0x39, - 0x36, 0x27, 0xa0, 0xeb, 0x5a, 0x37, 0x75, 0x5d, 0x4f, 0xf5, 0x3c, 0x5b, 0x73, 0x94, 0x5f, 0x3f, - 0xd5, 0x9f, 0xf3, 0x2d, 0xec, 0x26, 0x7f, 0x03, 0x86, 0x9d, 0x5a, 0x8d, 0x84, 0xe1, 0x9a, 0x5f, - 0x57, 0xb1, 0x86, 0x9f, 0x65, 0xf7, 0xac, 0x18, 0x7c, 0x78, 0x30, 0x3b, 0x93, 0x64, 0x11, 0xa3, - 0xb1, 0xce, 0x01, 0x7d, 0x02, 0x86, 0x42, 0x71, 0x6e, 0x8a, 0xb1, 0x7f, 0xbe, 0xc7, 0xce, 0x71, - 0x36, 0x49, 0xc3, 0x0c, 0x86, 0xa4, 0x34, 0x15, 0x8a, 0xa5, 0x19, 0x38, 0xa5, 0x70, 0xac, 0x81, - 0x53, 0x9e, 0x03, 0xd8, 0x53, 0x97, 0x81, 0xa4, 0xfe, 0x41, 0xbb, 0x26, 0x68, 0x54, 0xe8, 0xc3, - 0x30, 0x11, 0xf2, 0x68, 0x81, 0x4b, 0x0d, 0x27, 0x64, 0xef, 0x68, 0xc4, 0x2c, 0x64, 0x01, 0x97, - 0xaa, 0x09, 0x1c, 0x4e, 0x51, 0xa3, 0x55, 0x59, 0x2b, 0x0b, 0x6d, 0xc8, 0x27, 0xe6, 0xc5, 0xb8, - 0x46, 0x91, 0xac, 0xf8, 0x54, 0xb2, 0xfb, 0x59, 0xc7, 0x6b, 0x25, 0xd1, 0x27, 0x00, 0xe8, 0xf4, - 0x11, 0x7a, 0x88, 0xc1, 0xfc, 0xcd, 0x93, 0xee, 0x2a, 0xf5, 0x4c, 0xe7, 0x66, 0xf6, 0xa6, 0x76, - 0x59, 0x31, 0xc1, 0x1a, 0x43, 0xe4, 0xc0, 0x68, 0xfc, 0x2f, 0xce, 0xe5, 0x79, 0x29, 0xb7, 0x86, - 0x24, 0x73, 0xa6, 0xf2, 0x5e, 0xd6, 0x59, 0x60, 0x93, 0xa3, 0xfd, 0x63, 0x83, 0xf0, 0x70, 0x87, - 0x6d, 0x18, 0x2d, 0x98, 0xa6, 0xde, 0xa7, 0x93, 0xf7, 0xf7, 0x99, 0xcc, 0xc2, 0xc6, 0x85, 0x3e, - 0x31, 0xdb, 0x0b, 0x6f, 0x7b, 0xb6, 0xff, 0x90, 0xa5, 0x69, 0x56, 0xb8, 0x53, 0xe9, 0x87, 0x8e, - 0x78, 0xbc, 0x1c, 0xa3, 0xaa, 0x65, 0x2b, 0x43, 0x5f, 0xf1, 0x5c, 0xcf, 0xcd, 0xe9, 0x5d, 0x81, - 0xf1, 0x55, 0x0b, 0x90, 0xd0, 0xac, 0x90, 0xba, 0x5a, 0x4b, 0x42, 0x95, 0x71, 0xe5, 0xa8, 0xdf, - 0xbf, 0x90, 0xe2, 0xc4, 0x7b, 0xe2, 0x65, 0x79, 0x0e, 0xa4, 0x09, 0xba, 0xf6, 0x49, 0x46, 0xf3, - 0xd0, 0x47, 0x59, 0x20, 0x5d, 0xf7, 0x2d, 0x21, 0xfc, 0x88, 0xb5, 0xf6, 0xa2, 0x08, 0xa2, 0xab, - 0xe0, 0x54, 0xca, 0xcd, 0x6c, 0xae, 0x4e, 0x84, 0x0d, 0x56, 0x27, 0x7b, 0xf5, 0x6e, 0xc3, 0x43, - 0x39, 0x5d, 0xf6, 0x40, 0x6f, 0xe0, 0xbf, 0x69, 0xc1, 0xb9, 0x8e, 0x11, 0x61, 0xbe, 0x05, 0x65, - 0x43, 0xfb, 0x73, 0x16, 0x64, 0x0f, 0xb6, 0xe1, 0x51, 0x36, 0x0f, 0xa5, 0x5a, 0x22, 0xeb, 0x60, - 0x1c, 0x1b, 0x41, 0x65, 0x1c, 0x8c, 0x69, 0x0c, 0xc7, 0xb1, 0x42, 0x57, 0xc7, 0xb1, 0x5f, 0xb1, - 0x20, 0xb5, 0xbf, 0x9f, 0x80, 0xa0, 0x51, 0x36, 0x05, 0x8d, 0xc7, 0x7b, 0xe9, 0xcd, 0x1c, 0x19, - 0xe3, 0x8f, 0xc6, 0xe1, 0x4c, 0xce, 0x8b, 0xbc, 0x3d, 0x98, 0xdc, 0xae, 0x11, 0xf3, 0x71, 0x75, - 0xa7, 0xa0, 0x43, 0x1d, 0x5f, 0x62, 0xf3, 0x64, 0x8f, 0x29, 0x12, 0x9c, 0xae, 0x02, 0x7d, 0xce, - 0x82, 0x53, 0xce, 0x9d, 0x70, 0x85, 0x0a, 0x8c, 0x6e, 0x6d, 0xb1, 0xe1, 0xd7, 0x76, 0xe9, 0x69, - 0x2c, 0x17, 0xc2, 0x0b, 0x99, 0x4a, 0xbc, 0xdb, 0xd5, 0x14, 0xbd, 0x51, 0x3d, 0x4b, 0xed, 0x9b, - 0x45, 0x85, 0x33, 0xeb, 0x42, 0x58, 0x64, 0x4f, 0xa0, 0xd7, 0xd1, 0x0e, 0xcf, 0xff, 0xb3, 0x9e, - 0x4e, 0x72, 0x09, 0x48, 0x62, 0xb0, 0xe2, 0x83, 0x3e, 0x05, 0xa5, 0x6d, 0xf9, 0xd2, 0x37, 0x43, - 0xc2, 0x8a, 0x3b, 0xb2, 0xf3, 0xfb, 0x67, 0x6e, 0x89, 0x57, 0x44, 0x38, 0x66, 0x8a, 0x5e, 0x85, - 0xa2, 0xb7, 0x15, 0x76, 0xca, 0x8e, 0x9b, 0x70, 0xb9, 0xe4, 0x41, 0x36, 0xd6, 0x57, 0xab, 0x98, - 0x16, 0x44, 0x57, 0xa1, 0x18, 0x6c, 0xd6, 0x85, 0x06, 0x3a, 0x73, 0x91, 0xe2, 0xc5, 0xe5, 0x9c, - 0x56, 0x31, 0x4e, 0x78, 0x71, 0x19, 0x53, 0x16, 0xa8, 0x02, 0xfd, 0xec, 0x19, 0x9b, 0x90, 0x67, - 0x32, 0x6f, 0x6e, 0x1d, 0x9e, 0x83, 0xf2, 0x48, 0x1c, 0x8c, 0x00, 0x73, 0x46, 0x68, 0x03, 0x06, - 0x6a, 0x2c, 0x93, 0xaa, 0x10, 0x60, 0xde, 0x97, 0xa9, 0x6b, 0xee, 0x90, 0x62, 0x56, 0xa8, 0x5e, - 0x19, 0x05, 0x16, 0xbc, 0x18, 0x57, 0xd2, 0xda, 0xd9, 0x0a, 0x45, 0xa6, 0xf1, 0x6c, 0xae, 0x1d, - 0x32, 0x27, 0x0b, 0xae, 0x8c, 0x02, 0x0b, 0x5e, 0xe8, 0x65, 0x28, 0x6c, 0xd5, 0xc4, 0x13, 0xb5, - 0x4c, 0xa5, 0xb3, 0x19, 0x27, 0x65, 0x71, 0xe0, 0xde, 0xc1, 0x6c, 0x61, 0x75, 0x09, 0x17, 0xb6, - 0x6a, 0x68, 0x1d, 0x06, 0xb7, 0x78, 0x64, 0x05, 0xa1, 0x57, 0x7e, 0x32, 0x3b, 0xe8, 0x43, 0x2a, - 0xf8, 0x02, 0x7f, 0xee, 0x24, 0x10, 0x58, 0x32, 0x61, 0xc9, 0x08, 0x54, 0x84, 0x08, 0x11, 0xa0, - 0x6e, 0xee, 0x68, 0x51, 0x3d, 0xb8, 0x7c, 0x19, 0xc7, 0x99, 0xc0, 0x1a, 0x47, 0x3a, 0xab, 0x9d, - 0xb7, 0xda, 0x01, 0x8b, 0x02, 0x2e, 0x22, 0x19, 0x65, 0xce, 0xea, 0x05, 0x49, 0xd4, 0x69, 0x56, - 0x2b, 0x22, 0x1c, 0x33, 0x45, 0xbb, 0x30, 0xba, 0x17, 0xb6, 0x76, 0x88, 0x5c, 0xd2, 0x2c, 0xb0, - 0x51, 0x8e, 0x7c, 0x74, 0x4b, 0x10, 0xba, 0x41, 0xd4, 0x76, 0x1a, 0xa9, 0x5d, 0x88, 0xc9, 0xb2, - 0xb7, 0x74, 0x66, 0xd8, 0xe4, 0x4d, 0xbb, 0xff, 0xcd, 0xb6, 0xbf, 0xb9, 0x1f, 0x11, 0x11, 0x57, - 0x2e, 0xb3, 0xfb, 0x5f, 0xe7, 0x24, 0xe9, 0xee, 0x17, 0x08, 0x2c, 0x99, 0xa0, 0x5b, 0xa2, 0x7b, - 0xd8, 0xee, 0x39, 0x91, 0x1f, 0xfc, 0x75, 0x41, 0x12, 0xe5, 0x74, 0x0a, 0xdb, 0x2d, 0x63, 0x56, - 0x6c, 0x97, 0x6c, 0xed, 0xf8, 0x91, 0xef, 0x25, 0x76, 0xe8, 0xc9, 0xfc, 0x5d, 0xb2, 0x92, 0x41, - 0x9f, 0xde, 0x25, 0xb3, 0xa8, 0x70, 0x66, 0x5d, 0xa8, 0x0e, 0x63, 0x2d, 0x3f, 0x88, 0xee, 0xf8, - 0x81, 0x9c, 0x5f, 0xa8, 0x83, 0x5e, 0xcc, 0xa0, 0x14, 0x35, 0xb2, 0x90, 0x8d, 0x26, 0x06, 0x27, - 0x78, 0xa2, 0x8f, 0xc0, 0x60, 0x58, 0x73, 0x1a, 0xa4, 0x7c, 0x63, 0x7a, 0x2a, 0xff, 0xf8, 0xa9, - 0x72, 0x92, 0x9c, 0xd9, 0xc5, 0x03, 0x63, 0x70, 0x12, 0x2c, 0xd9, 0xa1, 0x55, 0xe8, 0x67, 0xc9, - 0xe6, 0x58, 0x10, 0xc4, 0x9c, 0x18, 0xb6, 0x29, 0x07, 0x78, 0xbe, 0x37, 0x31, 0x30, 0xe6, 0xc5, - 0xe9, 0x1a, 0x10, 0xd7, 0x43, 0x3f, 0x9c, 0x3e, 0x9d, 0xbf, 0x06, 0xc4, 0xad, 0xf2, 0x46, 0xb5, - 0xd3, 0x1a, 0x50, 0x44, 0x38, 0x66, 0x4a, 0x77, 0x66, 0xba, 0x9b, 0x9e, 0xe9, 0xe0, 0xb9, 0x95, - 0xbb, 0x97, 0xb2, 0x9d, 0x99, 0xee, 0xa4, 0x94, 0x85, 0xfd, 0xbb, 0x83, 0x69, 0x99, 0x85, 0x29, - 0x14, 0xbe, 0xc7, 0x4a, 0xd9, 0x9a, 0xdf, 0xdf, 0xab, 0x7e, 0xf3, 0x18, 0xaf, 0x42, 0x9f, 0xb3, - 0xe0, 0x4c, 0x2b, 0xf3, 0x43, 0x84, 0x00, 0xd0, 0x9b, 0x9a, 0x94, 0x7f, 0xba, 0x0a, 0x98, 0x99, - 0x8d, 0xc7, 0x39, 0x35, 0x25, 0xaf, 0x9b, 0xc5, 0xb7, 0x7d, 0xdd, 0x5c, 0x83, 0xa1, 0x1a, 0xbf, - 0x8a, 0x74, 0xcc, 0x2c, 0x9e, 0xbc, 0x7b, 0x33, 0x51, 0x42, 0xdc, 0x61, 0xb6, 0xb0, 0x62, 0x81, - 0x7e, 0xd8, 0x82, 0x73, 0xc9, 0xa6, 0x63, 0xc2, 0xd0, 0x22, 0xca, 0x26, 0xd7, 0x65, 0xac, 0x8a, - 0xef, 0x4f, 0xc9, 0xff, 0x06, 0xf1, 0x61, 0x37, 0x02, 0xdc, 0xb9, 0x32, 0xb4, 0x9c, 0xa1, 0x4c, - 0x19, 0x30, 0x0d, 0x48, 0x3d, 0x28, 0x54, 0x5e, 0x80, 0x91, 0xa6, 0xdf, 0xf6, 0x22, 0xe1, 0xe8, - 0x25, 0x9c, 0x4e, 0x98, 0xb3, 0xc5, 0x9a, 0x06, 0xc7, 0x06, 0x55, 0x42, 0x0d, 0x33, 0x74, 0xdf, - 0x6a, 0x98, 0x37, 0x60, 0xc4, 0xd3, 0x3c, 0x93, 0x85, 0x3c, 0x70, 0x31, 0x3f, 0x42, 0xae, 0xee, - 0xc7, 0xcc, 0x5b, 0xa9, 0x43, 0xb0, 0xc1, 0xed, 0x64, 0x3d, 0xc0, 0xbe, 0x64, 0x65, 0x08, 0xf5, - 0x5c, 0x15, 0xf3, 0x41, 0x53, 0x15, 0x73, 0x31, 0xa9, 0x8a, 0x49, 0x19, 0x0f, 0x0c, 0x2d, 0x4c, - 0xef, 0x09, 0x80, 0x7a, 0x8d, 0xb2, 0x69, 0x37, 0xe0, 0x42, 0xb7, 0x63, 0x89, 0x79, 0xfc, 0xd5, - 0x95, 0xa9, 0x38, 0xf6, 0xf8, 0xab, 0x97, 0x97, 0x31, 0xc3, 0xf4, 0x1a, 0xbf, 0xc9, 0xfe, 0x2f, - 0x16, 0x14, 0x2b, 0x7e, 0xfd, 0x04, 0x2e, 0xbc, 0x1f, 0x32, 0x2e, 0xbc, 0x0f, 0x67, 0x1f, 0x88, - 0xf5, 0x5c, 0xd3, 0xc7, 0x4a, 0xc2, 0xf4, 0x71, 0x2e, 0x8f, 0x41, 0x67, 0x43, 0xc7, 0x4f, 0x16, - 0x61, 0xb8, 0xe2, 0xd7, 0x95, 0xbb, 0xfd, 0x3f, 0xbd, 0x1f, 0x77, 0xfb, 0xdc, 0x34, 0x16, 0x1a, - 0x67, 0xe6, 0x28, 0x28, 0x5f, 0x1a, 0x7f, 0x8b, 0x79, 0xdd, 0xdf, 0x26, 0xee, 0xf6, 0x4e, 0x44, - 0xea, 0xc9, 0xcf, 0x39, 0x39, 0xaf, 0xfb, 0xdf, 0x2d, 0xc0, 0x78, 0xa2, 0x76, 0xd4, 0x80, 0xd1, - 0x86, 0xae, 0x58, 0x17, 0xf3, 0xf4, 0xbe, 0x74, 0xf2, 0xc2, 0x6b, 0x59, 0x03, 0x61, 0x93, 0x39, - 0x9a, 0x03, 0x50, 0x96, 0x66, 0xa9, 0x5e, 0x65, 0x52, 0xbf, 0x32, 0x45, 0x87, 0x58, 0xa3, 0x40, - 0x2f, 0xc2, 0x70, 0xe4, 0xb7, 0xfc, 0x86, 0xbf, 0xbd, 0x7f, 0x8d, 0xc8, 0xd0, 0x5e, 0xca, 0x17, - 0x71, 0x23, 0x46, 0x61, 0x9d, 0x0e, 0xdd, 0x85, 0x49, 0xc5, 0xa4, 0x7a, 0x0c, 0xc6, 0x06, 0xa6, - 0x55, 0x58, 0x4f, 0x72, 0xc4, 0xe9, 0x4a, 0xec, 0x9f, 0x29, 0xf2, 0x2e, 0xf6, 0x22, 0xf7, 0xdd, - 0xd5, 0xf0, 0xce, 0x5e, 0x0d, 0x5f, 0xb7, 0x60, 0x82, 0xd6, 0xce, 0x1c, 0xad, 0xe4, 0x31, 0xaf, - 0x62, 0x72, 0x5b, 0x1d, 0x62, 0x72, 0x5f, 0xa4, 0xbb, 0x66, 0xdd, 0x6f, 0x47, 0x42, 0x77, 0xa7, - 0x6d, 0x8b, 0x14, 0x8a, 0x05, 0x56, 0xd0, 0x91, 0x20, 0x10, 0x8f, 0x43, 0x75, 0x3a, 0x12, 0x04, - 0x58, 0x60, 0x65, 0xc8, 0xee, 0xbe, 0xec, 0x90, 0xdd, 0x3c, 0xf2, 0xaa, 0x70, 0xc9, 0x11, 0x02, - 0x97, 0x16, 0x79, 0x55, 0xfa, 0xea, 0xc4, 0x34, 0xf6, 0x57, 0x8b, 0x30, 0x52, 0xf1, 0xeb, 0xb1, - 0x95, 0xf9, 0x05, 0xc3, 0xca, 0x7c, 0x21, 0x61, 0x65, 0x9e, 0xd0, 0x69, 0xdf, 0xb5, 0x29, 0x7f, - 0xb3, 0x6c, 0xca, 0xbf, 0x6c, 0xb1, 0x51, 0x5b, 0x5e, 0xaf, 0x72, 0xbf, 0x3d, 0x74, 0x19, 0x86, - 0xd9, 0x06, 0xc3, 0x5e, 0x23, 0x4b, 0xd3, 0x2b, 0x4b, 0x45, 0xb5, 0x1e, 0x83, 0xb1, 0x4e, 0x83, - 0x2e, 0xc1, 0x50, 0x48, 0x9c, 0xa0, 0xb6, 0xa3, 0x76, 0x57, 0x61, 0x27, 0xe5, 0x30, 0xac, 0xb0, - 0xe8, 0xf5, 0x38, 0xe8, 0x67, 0x31, 0xff, 0x75, 0xa3, 0xde, 0x1e, 0xbe, 0x44, 0xf2, 0x23, 0x7d, - 0xda, 0xb7, 0x01, 0xa5, 0xe9, 0x7b, 0x08, 0x4b, 0x37, 0x6b, 0x86, 0xa5, 0x2b, 0xa5, 0x42, 0xd2, - 0xfd, 0x89, 0x05, 0x63, 0x15, 0xbf, 0x4e, 0x97, 0xee, 0xb7, 0xd3, 0x3a, 0xd5, 0x23, 0x1e, 0x0f, - 0x74, 0x88, 0x78, 0xfc, 0x18, 0xf4, 0x57, 0xfc, 0x7a, 0xb9, 0xd2, 0x29, 0xb4, 0x80, 0xfd, 0x37, - 0x2c, 0x18, 0xac, 0xf8, 0xf5, 0x13, 0x30, 0x0b, 0x7c, 0xd0, 0x34, 0x0b, 0x3c, 0x94, 0x33, 0x6f, - 0x72, 0x2c, 0x01, 0x7f, 0xad, 0x0f, 0x46, 0x69, 0x3b, 0xfd, 0x6d, 0x39, 0x94, 0x46, 0xb7, 0x59, - 0x3d, 0x74, 0x1b, 0x95, 0xc2, 0xfd, 0x46, 0xc3, 0xbf, 0x93, 0x1c, 0xd6, 0x55, 0x06, 0xc5, 0x02, - 0x8b, 0x9e, 0x81, 0xa1, 0x56, 0x40, 0xf6, 0x5c, 0x5f, 0x88, 0xb7, 0x9a, 0x91, 0xa5, 0x22, 0xe0, - 0x58, 0x51, 0xd0, 0x6b, 0x61, 0xe8, 0x7a, 0xf4, 0x28, 0xaf, 0xf9, 0x5e, 0x9d, 0x6b, 0xce, 0x8b, - 0x22, 0x2d, 0x87, 0x06, 0xc7, 0x06, 0x15, 0xba, 0x0d, 0x25, 0xf6, 0x9f, 0x6d, 0x3b, 0x47, 0x4f, - 0xf0, 0x2a, 0x12, 0xfe, 0x09, 0x06, 0x38, 0xe6, 0x85, 0x9e, 0x03, 0x88, 0x64, 0x68, 0xfb, 0x50, - 0x04, 0x5a, 0x53, 0x57, 0x01, 0x15, 0xf4, 0x3e, 0xc4, 0x1a, 0x15, 0x7a, 0x1a, 0x4a, 0x91, 0xe3, - 0x36, 0xae, 0xbb, 0x1e, 0x09, 0x99, 0x46, 0xbc, 0x28, 0xf3, 0xee, 0x09, 0x20, 0x8e, 0xf1, 0x54, - 0x14, 0x63, 0x41, 0x38, 0x78, 0x7a, 0xe8, 0x21, 0x46, 0xcd, 0x44, 0xb1, 0xeb, 0x0a, 0x8a, 0x35, - 0x0a, 0xb4, 0x03, 0x8f, 0xb8, 0x1e, 0x4b, 0x61, 0x41, 0xaa, 0xbb, 0x6e, 0x6b, 0xe3, 0x7a, 0xf5, - 0x16, 0x09, 0xdc, 0xad, 0xfd, 0x45, 0xa7, 0xb6, 0x4b, 0x3c, 0x99, 0xba, 0xf3, 0x71, 0xd1, 0xc4, - 0x47, 0xca, 0x1d, 0x68, 0x71, 0x47, 0x4e, 0xf6, 0xf3, 0x6c, 0xbe, 0xdf, 0xa8, 0xa2, 0xf7, 0x1a, - 0x5b, 0xc7, 0x19, 0x7d, 0xeb, 0x38, 0x3c, 0x98, 0x1d, 0xb8, 0x51, 0xd5, 0x62, 0x48, 0xbc, 0x04, - 0xa7, 0x2b, 0x7e, 0xbd, 0xe2, 0x07, 0xd1, 0xaa, 0x1f, 0xdc, 0x71, 0x82, 0xba, 0x9c, 0x5e, 0xb3, - 0x32, 0x8a, 0x06, 0xdd, 0x3f, 0xfb, 0xf9, 0xee, 0x62, 0x44, 0xc8, 0x78, 0x9e, 0x49, 0x6c, 0x47, - 0x7c, 0xfb, 0x55, 0x63, 0xb2, 0x83, 0x4a, 0x02, 0x73, 0xc5, 0x89, 0x08, 0xba, 0xc1, 0x92, 0x5b, - 0xc7, 0xc7, 0xa8, 0x28, 0xfe, 0x94, 0x96, 0xdc, 0x3a, 0x46, 0x66, 0x9e, 0xbb, 0x66, 0x79, 0xfb, - 0xb3, 0xa2, 0x12, 0x7e, 0x07, 0xe7, 0xfe, 0x75, 0xbd, 0x64, 0xb7, 0x95, 0x59, 0x22, 0x0a, 0xf9, - 0xe9, 0x05, 0xb8, 0xd5, 0xb3, 0x63, 0x96, 0x08, 0xfb, 0x45, 0x98, 0xa4, 0x57, 0x3f, 0x25, 0x47, - 0xb1, 0x8f, 0xec, 0x1e, 0xcd, 0xe3, 0xbf, 0xf6, 0xb3, 0x73, 0x20, 0x91, 0xfe, 0x04, 0x7d, 0x12, - 0xc6, 0x42, 0x72, 0xdd, 0xf5, 0xda, 0x77, 0xa5, 0xe2, 0xa5, 0xc3, 0x9b, 0xc3, 0xea, 0x8a, 0x4e, - 0xc9, 0xd5, 0xb7, 0x26, 0x0c, 0x27, 0xb8, 0xa1, 0x26, 0x8c, 0xdd, 0x71, 0xbd, 0xba, 0x7f, 0x27, - 0x94, 0xfc, 0x87, 0xf2, 0xb5, 0xb8, 0xb7, 0x39, 0x65, 0xa2, 0x8d, 0x46, 0x75, 0xb7, 0x0d, 0x66, - 0x38, 0xc1, 0x9c, 0xae, 0xb5, 0xa0, 0xed, 0x2d, 0x84, 0x37, 0x43, 0x12, 0x88, 0xe4, 0xea, 0x6c, - 0xad, 0x61, 0x09, 0xc4, 0x31, 0x9e, 0xae, 0x35, 0xf6, 0xe7, 0x4a, 0xe0, 0xb7, 0x79, 0xae, 0x0d, - 0xb1, 0xd6, 0xb0, 0x82, 0x62, 0x8d, 0x82, 0xee, 0x45, 0xec, 0xdf, 0xba, 0xef, 0x61, 0xdf, 0x8f, - 0xe4, 0xee, 0xc5, 0x3c, 0x11, 0x34, 0x38, 0x36, 0xa8, 0xd0, 0x2a, 0xa0, 0xb0, 0xdd, 0x6a, 0x35, - 0x98, 0x33, 0x93, 0xd3, 0x60, 0xac, 0xb8, 0x97, 0x47, 0x91, 0xc7, 0x0a, 0xae, 0xa6, 0xb0, 0x38, - 0xa3, 0x04, 0x3d, 0x96, 0xb6, 0x44, 0x53, 0xfb, 0x59, 0x53, 0xb9, 0xc5, 0xa7, 0xca, 0xdb, 0x29, - 0x71, 0x68, 0x05, 0x06, 0xc3, 0xfd, 0xb0, 0x16, 0x89, 0xd0, 0x8e, 0x39, 0x19, 0xae, 0xaa, 0x8c, - 0x44, 0x4b, 0xb0, 0xc8, 0x8b, 0x60, 0x59, 0x16, 0xd5, 0x60, 0x4a, 0x70, 0x5c, 0xda, 0x71, 0x3c, - 0x95, 0x2f, 0x88, 0xfb, 0x74, 0x5f, 0xbe, 0x77, 0x30, 0x3b, 0x25, 0x6a, 0xd6, 0xd1, 0x87, 0x07, - 0xb3, 0x67, 0x2a, 0x7e, 0x3d, 0x03, 0x83, 0xb3, 0xb8, 0xf1, 0xc9, 0x57, 0xab, 0xf9, 0xcd, 0x56, - 0x25, 0xf0, 0xb7, 0xdc, 0x06, 0xe9, 0x64, 0x35, 0xab, 0x1a, 0x94, 0x62, 0xf2, 0x19, 0x30, 0x9c, - 0xe0, 0x66, 0x7f, 0x96, 0x89, 0x6e, 0x2c, 0x9f, 0x78, 0xd4, 0x0e, 0x08, 0x6a, 0xc2, 0x68, 0x8b, - 0x2d, 0x6e, 0x91, 0x01, 0x43, 0xcc, 0xf5, 0x17, 0x7a, 0xd4, 0xfe, 0xdc, 0xa1, 0x27, 0x9e, 0xe9, - 0x19, 0x55, 0xd1, 0xd9, 0x61, 0x93, 0xbb, 0xfd, 0x6f, 0xce, 0xb2, 0xc3, 0xbf, 0xca, 0x55, 0x3a, - 0x83, 0xe2, 0x09, 0x89, 0xb8, 0x45, 0xce, 0xe4, 0xeb, 0x16, 0xe3, 0x61, 0x11, 0xcf, 0x50, 0xb0, - 0x2c, 0x8b, 0x3e, 0x01, 0x63, 0xf4, 0x52, 0xa6, 0x0e, 0xe0, 0x70, 0xfa, 0x54, 0x7e, 0xa8, 0x0f, - 0x45, 0xa5, 0x67, 0xc7, 0xd1, 0x0b, 0xe3, 0x04, 0x33, 0xf4, 0x3a, 0xf3, 0x44, 0x92, 0xac, 0x0b, - 0xbd, 0xb0, 0xd6, 0x9d, 0x8e, 0x24, 0x5b, 0x8d, 0x09, 0x6a, 0xc3, 0x54, 0x3a, 0x97, 0x5e, 0x38, - 0x6d, 0xe7, 0x4b, 0xb7, 0xe9, 0x74, 0x78, 0x71, 0x1a, 0x93, 0x34, 0x2e, 0xc4, 0x59, 0xfc, 0xd1, - 0x75, 0x18, 0x15, 0x49, 0xb5, 0xc5, 0xcc, 0x2d, 0x1a, 0x2a, 0xcf, 0x51, 0xac, 0x23, 0x0f, 0x93, - 0x00, 0x6c, 0x16, 0x46, 0xdb, 0x70, 0x4e, 0x4b, 0x72, 0x75, 0x25, 0x70, 0x98, 0xdf, 0x82, 0xcb, - 0xb6, 0x53, 0x4d, 0x2c, 0x79, 0xf4, 0xde, 0xc1, 0xec, 0xb9, 0x8d, 0x4e, 0x84, 0xb8, 0x33, 0x1f, - 0x74, 0x03, 0x4e, 0xf3, 0x87, 0xea, 0xcb, 0xc4, 0xa9, 0x37, 0x5c, 0x4f, 0xc9, 0x3d, 0x7c, 0xc9, - 0x9f, 0xbd, 0x77, 0x30, 0x7b, 0x7a, 0x21, 0x8b, 0x00, 0x67, 0x97, 0x43, 0x1f, 0x84, 0x52, 0xdd, - 0x0b, 0x45, 0x1f, 0x0c, 0x18, 0x79, 0xc4, 0x4a, 0xcb, 0xeb, 0x55, 0xf5, 0xfd, 0xf1, 0x1f, 0x1c, - 0x17, 0x40, 0xdb, 0x5c, 0x2d, 0xae, 0x94, 0x35, 0x83, 0xa9, 0x40, 0x5d, 0x49, 0x7d, 0xa6, 0xf1, - 0x54, 0x95, 0xdb, 0x83, 0xd4, 0x0b, 0x0e, 0xe3, 0x15, 0xab, 0xc1, 0x18, 0xbd, 0x06, 0x48, 0xc4, - 0xab, 0x5f, 0xa8, 0xb1, 0xf4, 0x2a, 0xcc, 0x8a, 0x30, 0x64, 0x3e, 0x9e, 0xac, 0xa6, 0x28, 0x70, - 0x46, 0x29, 0x74, 0x95, 0xee, 0x2a, 0x3a, 0x54, 0xec, 0x5a, 0x2a, 0xeb, 0xe3, 0x32, 0x69, 0x05, - 0x84, 0xf9, 0x61, 0x99, 0x1c, 0x71, 0xa2, 0x1c, 0xaa, 0xc3, 0x23, 0x4e, 0x3b, 0xf2, 0x99, 0xc5, - 0xc1, 0x24, 0xdd, 0xf0, 0x77, 0x89, 0xc7, 0x8c, 0x7d, 0x43, 0x8b, 0x17, 0xa8, 0x60, 0xb5, 0xd0, - 0x81, 0x0e, 0x77, 0xe4, 0x42, 0x05, 0x62, 0x95, 0xe6, 0x19, 0xcc, 0xf0, 0x63, 0x19, 0xa9, 0x9e, - 0x5f, 0x84, 0xe1, 0x1d, 0x3f, 0x8c, 0xd6, 0x49, 0x74, 0xc7, 0x0f, 0x76, 0x45, 0x18, 0xdd, 0x38, - 0x28, 0x79, 0x8c, 0xc2, 0x3a, 0x1d, 0xbd, 0xf1, 0x32, 0x57, 0x94, 0xf2, 0x32, 0xf3, 0x02, 0x18, - 0x8a, 0xf7, 0x98, 0xab, 0x1c, 0x8c, 0x25, 0x5e, 0x92, 0x96, 0x2b, 0x4b, 0xcc, 0xa2, 0x9f, 0x20, - 0x2d, 0x57, 0x96, 0xb0, 0xc4, 0xd3, 0xe9, 0x1a, 0xee, 0x38, 0x01, 0xa9, 0x04, 0x7e, 0x8d, 0x84, - 0x5a, 0x28, 0xfc, 0x87, 0x79, 0x90, 0x60, 0x3a, 0x5d, 0xab, 0x59, 0x04, 0x38, 0xbb, 0x1c, 0x22, - 0xe9, 0x04, 0x6f, 0x63, 0xf9, 0xa6, 0x98, 0xb4, 0x3c, 0xd3, 0x63, 0x8e, 0x37, 0x0f, 0x26, 0x54, - 0x6a, 0x39, 0x1e, 0x16, 0x38, 0x9c, 0x1e, 0x67, 0x73, 0xbb, 0xf7, 0x98, 0xc2, 0xca, 0xb8, 0x55, - 0x4e, 0x70, 0xc2, 0x29, 0xde, 0x46, 0x84, 0xb9, 0x89, 0xae, 0x11, 0xe6, 0xe6, 0xa1, 0x14, 0xb6, - 0x37, 0xeb, 0x7e, 0xd3, 0x71, 0x3d, 0x66, 0xd1, 0xd7, 0xae, 0x5e, 0x55, 0x89, 0xc0, 0x31, 0x0d, - 0x5a, 0x85, 0x21, 0x47, 0x5a, 0xae, 0x50, 0x7e, 0x4c, 0x21, 0x65, 0xaf, 0xe2, 0x61, 0x36, 0xa4, - 0xad, 0x4a, 0x95, 0x45, 0xaf, 0xc0, 0xa8, 0x78, 0x68, 0x2d, 0xb2, 0x9a, 0x4e, 0x99, 0xaf, 0xe1, - 0xaa, 0x3a, 0x12, 0x9b, 0xb4, 0xe8, 0x26, 0x0c, 0x47, 0x7e, 0x83, 0x3d, 0xe9, 0xa2, 0x62, 0xde, - 0x99, 0xfc, 0xe8, 0x78, 0x1b, 0x8a, 0x4c, 0x57, 0x1a, 0xab, 0xa2, 0x58, 0xe7, 0x83, 0x36, 0xf8, - 0x7c, 0x67, 0x81, 0xef, 0x49, 0x38, 0xfd, 0x50, 0xfe, 0x99, 0xa4, 0xe2, 0xe3, 0x9b, 0xcb, 0x41, - 0x94, 0xc4, 0x3a, 0x1b, 0x74, 0x05, 0x26, 0x5b, 0x81, 0xeb, 0xb3, 0x39, 0xa1, 0x8c, 0x96, 0xd3, - 0x66, 0x9a, 0xab, 0x4a, 0x92, 0x00, 0xa7, 0xcb, 0xb0, 0x77, 0xf2, 0x02, 0x38, 0x7d, 0x96, 0xa7, - 0xea, 0xe0, 0x37, 0x59, 0x0e, 0xc3, 0x0a, 0x8b, 0xd6, 0xd8, 0x4e, 0xcc, 0x95, 0x30, 0xd3, 0x33, - 0xf9, 0x61, 0x8c, 0x74, 0x65, 0x0d, 0x17, 0x5e, 0xd5, 0x5f, 0x1c, 0x73, 0x40, 0x75, 0x2d, 0x43, - 0x26, 0xbd, 0x02, 0x84, 0xd3, 0x8f, 0x74, 0xf0, 0x07, 0x4c, 0x5c, 0x8a, 0x62, 0x81, 0xc0, 0x00, - 0x87, 0x38, 0xc1, 0x13, 0x7d, 0x18, 0x26, 0x44, 0xf0, 0xc5, 0xb8, 0x9b, 0xce, 0xc5, 0x8e, 0xf2, - 0x38, 0x81, 0xc3, 0x29, 0x6a, 0x9e, 0x2a, 0xc3, 0xd9, 0x6c, 0x10, 0xb1, 0xf5, 0x5d, 0x77, 0xbd, - 0xdd, 0x70, 0xfa, 0x3c, 0xdb, 0x1f, 0x44, 0xaa, 0x8c, 0x24, 0x16, 0x67, 0x94, 0x40, 0x1b, 0x30, - 0xd1, 0x0a, 0x08, 0x69, 0x32, 0x41, 0x5f, 0x9c, 0x67, 0xb3, 0x3c, 0x4c, 0x04, 0x6d, 0x49, 0x25, - 0x81, 0x3b, 0xcc, 0x80, 0xe1, 0x14, 0x07, 0x74, 0x07, 0x86, 0xfc, 0x3d, 0x12, 0xec, 0x10, 0xa7, - 0x3e, 0x7d, 0xa1, 0xc3, 0xc3, 0x0d, 0x71, 0xb8, 0xdd, 0x10, 0xb4, 0x09, 0x47, 0x07, 0x09, 0xee, - 0xee, 0xe8, 0x20, 0x2b, 0x43, 0x7f, 0xde, 0x82, 0xb3, 0xd2, 0x36, 0x52, 0x6d, 0xd1, 0x5e, 0x5f, - 0xf2, 0xbd, 0x30, 0x0a, 0x78, 0x60, 0x83, 0x47, 0xf3, 0x1f, 0xfb, 0x6f, 0xe4, 0x14, 0x52, 0x7a, - 0xe0, 0xb3, 0x79, 0x14, 0x21, 0xce, 0xaf, 0x11, 0x2d, 0xc1, 0x64, 0x48, 0x22, 0xb9, 0x19, 0x2d, - 0x84, 0xab, 0xaf, 0x2f, 0xaf, 0x4f, 0x3f, 0xc6, 0xa3, 0x32, 0xd0, 0xc5, 0x50, 0x4d, 0x22, 0x71, - 0x9a, 0x1e, 0x5d, 0x86, 0x82, 0x1f, 0x4e, 0x3f, 0xde, 0x21, 0xa9, 0xaa, 0x5f, 0xbf, 0x51, 0xe5, - 0x0e, 0x6f, 0x37, 0xaa, 0xb8, 0xe0, 0x87, 0x32, 0x5d, 0x05, 0xbd, 0x8f, 0x85, 0xd3, 0x4f, 0x70, - 0xad, 0xa1, 0x4c, 0x57, 0xc1, 0x80, 0x38, 0xc6, 0xa3, 0x1d, 0x18, 0x0f, 0x8d, 0x7b, 0x6f, 0x38, - 0x7d, 0x91, 0xf5, 0xd4, 0x13, 0x79, 0x83, 0x66, 0x50, 0x6b, 0xd1, 0xe6, 0x4d, 0x2e, 0x38, 0xc9, - 0x96, 0xaf, 0x2e, 0xed, 0x82, 0x1f, 0x4e, 0x3f, 0xd9, 0x65, 0x75, 0x69, 0xc4, 0xfa, 0xea, 0xd2, - 0x79, 0xe0, 0x04, 0xcf, 0x99, 0xef, 0x84, 0xc9, 0x94, 0xb8, 0x74, 0x94, 0x4c, 0x4c, 0x33, 0xbb, - 0x30, 0x6a, 0x4c, 0xc9, 0x07, 0xea, 0x58, 0xf0, 0x2f, 0x06, 0xa1, 0xa4, 0x8c, 0xce, 0x68, 0xde, - 0xf4, 0x25, 0x38, 0x9b, 0xf4, 0x25, 0x18, 0xaa, 0xf8, 0x75, 0xc3, 0x7d, 0x60, 0x23, 0x23, 0x76, - 0x5f, 0xde, 0x06, 0xd8, 0xfb, 0x9b, 0x06, 0x4d, 0x93, 0x5f, 0xec, 0xd9, 0x29, 0xa1, 0xaf, 0xa3, - 0x71, 0xe0, 0x0a, 0x4c, 0x7a, 0x3e, 0x93, 0xd1, 0x49, 0x5d, 0x0a, 0x60, 0x4c, 0xce, 0x2a, 0xe9, - 0xc1, 0x70, 0x12, 0x04, 0x38, 0x5d, 0x86, 0x56, 0xc8, 0x05, 0xa5, 0xa4, 0x35, 0x82, 0xcb, 0x51, - 0x58, 0x60, 0xd1, 0x63, 0xd0, 0xdf, 0xf2, 0xeb, 0xe5, 0x8a, 0x90, 0xcf, 0xb5, 0x88, 0xb1, 0xf5, - 0x72, 0x05, 0x73, 0x1c, 0x5a, 0x80, 0x01, 0xf6, 0x23, 0x9c, 0x1e, 0xc9, 0x8f, 0x7a, 0xc2, 0x4a, - 0x68, 0x79, 0xae, 0x58, 0x01, 0x2c, 0x0a, 0x32, 0xad, 0x28, 0xbd, 0xd4, 0x30, 0xad, 0xe8, 0xe0, - 0x7d, 0x6a, 0x45, 0x25, 0x03, 0x1c, 0xf3, 0x42, 0x77, 0xe1, 0xb4, 0x71, 0x91, 0xe4, 0x53, 0x84, - 0x84, 0x22, 0xf2, 0xc2, 0x63, 0x1d, 0x6f, 0x90, 0xc2, 0x89, 0xe1, 0x9c, 0x68, 0xf4, 0xe9, 0x72, - 0x16, 0x27, 0x9c, 0x5d, 0x01, 0x6a, 0xc0, 0x64, 0x2d, 0x55, 0xeb, 0x50, 0xef, 0xb5, 0xaa, 0x01, - 0x4d, 0xd7, 0x98, 0x66, 0x8c, 0x5e, 0x81, 0xa1, 0x37, 0xfd, 0x90, 0x9d, 0x6d, 0xe2, 0x4e, 0x21, - 0x9f, 0xed, 0x0f, 0xbd, 0x7e, 0xa3, 0xca, 0xe0, 0x87, 0x07, 0xb3, 0xc3, 0x15, 0xbf, 0x2e, 0xff, - 0x62, 0x55, 0x00, 0x7d, 0xbf, 0x05, 0x33, 0xe9, 0x9b, 0xaa, 0x6a, 0xf4, 0x68, 0xef, 0x8d, 0xb6, - 0x45, 0xa5, 0x33, 0x2b, 0xb9, 0xec, 0x70, 0x87, 0xaa, 0xec, 0x5f, 0xb4, 0x98, 0x6e, 0x55, 0x18, - 0x07, 0x49, 0xd8, 0x6e, 0x9c, 0x44, 0x7a, 0xdf, 0x15, 0xc3, 0x6e, 0x79, 0xdf, 0x4e, 0x2d, 0xff, - 0xc4, 0x62, 0x4e, 0x2d, 0x27, 0xf8, 0x7a, 0xe5, 0x75, 0x18, 0x8a, 0x64, 0xda, 0xe5, 0x0e, 0x19, - 0x89, 0xb5, 0x46, 0x31, 0xc7, 0x1e, 0x25, 0xe1, 0xab, 0x0c, 0xcb, 0x8a, 0x8d, 0xfd, 0x0f, 0xf8, - 0x08, 0x48, 0xcc, 0x09, 0x98, 0x87, 0x96, 0x4d, 0xf3, 0xd0, 0x6c, 0x97, 0x2f, 0xc8, 0x31, 0x13, - 0xfd, 0x7d, 0xb3, 0xdd, 0x4c, 0xb3, 0xf5, 0x4e, 0xf7, 0xa6, 0xb2, 0x3f, 0x6f, 0x01, 0xc4, 0x01, - 0xb9, 0x7b, 0x48, 0xac, 0xf7, 0x12, 0x95, 0xe9, 0xfd, 0xc8, 0xaf, 0xf9, 0x0d, 0x61, 0xfc, 0x7c, - 0x24, 0xb6, 0x50, 0x71, 0xf8, 0xa1, 0xf6, 0x1b, 0x2b, 0x6a, 0x34, 0x2b, 0xc3, 0xff, 0x15, 0x63, - 0x9b, 0xa9, 0x11, 0xfa, 0xef, 0x8b, 0x16, 0x9c, 0xca, 0x72, 0x85, 0xa6, 0x37, 0x44, 0xae, 0xe3, - 0x53, 0x9e, 0x6e, 0x6a, 0x34, 0x6f, 0x09, 0x38, 0x56, 0x14, 0x3d, 0x67, 0x2c, 0x3c, 0x5a, 0x24, - 0xec, 0x1b, 0x30, 0x5a, 0x09, 0x88, 0x76, 0xb8, 0xbe, 0xca, 0x43, 0x4a, 0xf0, 0xf6, 0x3c, 0x73, - 0xe4, 0x70, 0x12, 0xf6, 0x97, 0x0b, 0x70, 0x8a, 0x3b, 0x8c, 0x2c, 0xec, 0xf9, 0x6e, 0xbd, 0xe2, - 0xd7, 0xc5, 0x83, 0xb7, 0x8f, 0xc1, 0x48, 0x4b, 0x53, 0xcc, 0x76, 0x8a, 0xea, 0xaa, 0x2b, 0x70, - 0x63, 0x55, 0x92, 0x0e, 0xc5, 0x06, 0x2f, 0x54, 0x87, 0x11, 0xb2, 0xe7, 0xd6, 0x94, 0xd7, 0x41, - 0xe1, 0xc8, 0x07, 0x9d, 0xaa, 0x65, 0x45, 0xe3, 0x83, 0x0d, 0xae, 0x0f, 0x20, 0x8f, 0xb8, 0xfd, - 0xa3, 0x16, 0x3c, 0x94, 0x13, 0x03, 0x96, 0x56, 0x77, 0x87, 0xb9, 0xe6, 0x88, 0x69, 0xab, 0xaa, - 0xe3, 0x0e, 0x3b, 0x58, 0x60, 0xd1, 0x47, 0x00, 0xb8, 0xc3, 0x0d, 0xf1, 0x6a, 0x5d, 0x83, 0x65, - 0x1a, 0x71, 0xfe, 0xb4, 0x90, 0x6d, 0xb2, 0x3c, 0xd6, 0x78, 0xd9, 0x5f, 0xec, 0x83, 0x7e, 0xe6, - 0xe0, 0x81, 0x2a, 0x30, 0xb8, 0xc3, 0xb3, 0xfa, 0x74, 0x1c, 0x37, 0x4a, 0x2b, 0x13, 0x05, 0xc5, - 0xe3, 0xa6, 0x41, 0xb1, 0x64, 0x83, 0xd6, 0x60, 0x8a, 0x27, 0x57, 0x6a, 0x2c, 0x93, 0x86, 0xb3, - 0x2f, 0x75, 0x9e, 0x3c, 0x13, 0xb0, 0xd2, 0xfd, 0x96, 0xd3, 0x24, 0x38, 0xab, 0x1c, 0x7a, 0x15, - 0xc6, 0xe8, 0x1d, 0xd4, 0x6f, 0x47, 0x92, 0x13, 0x4f, 0xab, 0xa4, 0xc4, 0xf2, 0x0d, 0x03, 0x8b, - 0x13, 0xd4, 0xe8, 0x15, 0x18, 0x6d, 0xa5, 0xb4, 0xbb, 0xfd, 0xb1, 0x1a, 0xc4, 0xd4, 0xe8, 0x9a, - 0xb4, 0xcc, 0x1b, 0xba, 0xcd, 0x7c, 0xbf, 0x37, 0x76, 0x02, 0x12, 0xee, 0xf8, 0x8d, 0x3a, 0x13, - 0xff, 0xfa, 0x35, 0x6f, 0xe8, 0x04, 0x1e, 0xa7, 0x4a, 0x50, 0x2e, 0x5b, 0x8e, 0xdb, 0x68, 0x07, - 0x24, 0xe6, 0x32, 0x60, 0x72, 0x59, 0x4d, 0xe0, 0x71, 0xaa, 0x44, 0x77, 0xb5, 0xf5, 0xe0, 0xf1, - 0xa8, 0xad, 0xed, 0x9f, 0x2a, 0x80, 0x31, 0xb4, 0xdf, 0xbe, 0xe9, 0x9e, 0xe8, 0x97, 0x6d, 0x07, - 0xad, 0x9a, 0x70, 0x66, 0xca, 0xfc, 0xb2, 0x38, 0x8b, 0x2b, 0xff, 0x32, 0xfa, 0x1f, 0xb3, 0x52, - 0x74, 0x8d, 0x9f, 0xae, 0x04, 0x3e, 0x3d, 0xe4, 0x64, 0xd0, 0x31, 0xf5, 0xe8, 0x60, 0x50, 0x3e, - 0xc8, 0xee, 0x10, 0x9e, 0x53, 0xb8, 0x65, 0x73, 0x0e, 0x86, 0xdf, 0x4f, 0x55, 0x44, 0x46, 0x90, - 0x5c, 0xd0, 0x65, 0x18, 0x16, 0x39, 0x7c, 0x98, 0x6f, 0x3c, 0x5f, 0x4c, 0xcc, 0x4f, 0x69, 0x39, - 0x06, 0x63, 0x9d, 0xc6, 0xfe, 0x81, 0x02, 0x4c, 0x65, 0x3c, 0x6e, 0xe2, 0xc7, 0xc8, 0xb6, 0x1b, - 0x46, 0x2a, 0x51, 0xac, 0x76, 0x8c, 0x70, 0x38, 0x56, 0x14, 0x74, 0xaf, 0xe2, 0x07, 0x55, 0xf2, - 0x70, 0x12, 0x8f, 0x07, 0x04, 0xf6, 0x88, 0x29, 0x57, 0x2f, 0x40, 0x5f, 0x3b, 0x24, 0x32, 0xb0, - 0xae, 0x3a, 0xb6, 0x99, 0x4d, 0x97, 0x61, 0xe8, 0x35, 0x6a, 0x5b, 0x99, 0x47, 0xb5, 0x6b, 0x14, - 0x37, 0x90, 0x72, 0x1c, 0x6d, 0x5c, 0x44, 0x3c, 0xc7, 0x8b, 0xc4, 0x65, 0x2b, 0x8e, 0x10, 0xc9, - 0xa0, 0x58, 0x60, 0xed, 0x2f, 0x14, 0xe1, 0x6c, 0xee, 0x73, 0x47, 0xda, 0xf4, 0xa6, 0xef, 0xb9, - 0x91, 0xaf, 0x1c, 0xc0, 0x78, 0x54, 0x48, 0xd2, 0xda, 0x59, 0x13, 0x70, 0xac, 0x28, 0xd0, 0x45, - 0xe8, 0x67, 0x1a, 0xe1, 0x54, 0xca, 0xdc, 0xc5, 0x65, 0x1e, 0x26, 0x8c, 0xa3, 0x7b, 0xce, 0x72, - 0xfe, 0x18, 0x95, 0x60, 0xfc, 0x46, 0xf2, 0x40, 0xa1, 0xcd, 0xf5, 0xfd, 0x06, 0x66, 0x48, 0xf4, - 0x84, 0xe8, 0xaf, 0x84, 0xc7, 0x13, 0x76, 0xea, 0x7e, 0xa8, 0x75, 0xda, 0x53, 0x30, 0xb8, 0x4b, - 0xf6, 0x03, 0xd7, 0xdb, 0x4e, 0x7a, 0xc2, 0x5d, 0xe3, 0x60, 0x2c, 0xf1, 0x66, 0x8e, 0xc7, 0xc1, - 0xe3, 0x4e, 0x4f, 0x3e, 0xd4, 0x55, 0x3c, 0xf9, 0xa1, 0x22, 0x8c, 0xe3, 0xc5, 0xe5, 0x77, 0x07, - 0xe2, 0x66, 0x7a, 0x20, 0x8e, 0x3b, 0x3d, 0x79, 0xf7, 0xd1, 0xf8, 0x39, 0x0b, 0xc6, 0x59, 0x26, - 0x21, 0x11, 0xd4, 0xc0, 0xf5, 0xbd, 0x13, 0xb8, 0x0a, 0x3c, 0x06, 0xfd, 0x01, 0xad, 0x34, 0x99, - 0x2b, 0x97, 0xb5, 0x04, 0x73, 0x1c, 0x7a, 0x04, 0xfa, 0x58, 0x13, 0xe8, 0xe0, 0x8d, 0xf0, 0x2d, - 0x78, 0xd9, 0x89, 0x1c, 0xcc, 0xa0, 0x2c, 0x48, 0x16, 0x26, 0xad, 0x86, 0xcb, 0x1b, 0x1d, 0xdb, - 0xeb, 0xdf, 0x19, 0x81, 0x10, 0x32, 0x9b, 0xf6, 0xf6, 0x82, 0x64, 0x65, 0xb3, 0xec, 0x7c, 0xcd, - 0xfe, 0xc3, 0x02, 0x9c, 0xcf, 0x2c, 0xd7, 0x73, 0x90, 0xac, 0xce, 0xa5, 0x1f, 0x64, 0xae, 0x98, - 0xe2, 0x09, 0xfa, 0x19, 0xf7, 0xf5, 0x2a, 0xfd, 0xf7, 0xf7, 0x10, 0xbb, 0x2a, 0xb3, 0xcb, 0xde, - 0x21, 0xb1, 0xab, 0x32, 0xdb, 0x96, 0xa3, 0x26, 0xf8, 0xd3, 0x42, 0xce, 0xb7, 0x30, 0x85, 0xc1, - 0x25, 0xba, 0xcf, 0x30, 0x64, 0x28, 0x2f, 0xe1, 0x7c, 0x8f, 0xe1, 0x30, 0xac, 0xb0, 0x68, 0x01, - 0xc6, 0x9b, 0xae, 0x47, 0x37, 0x9f, 0x7d, 0x53, 0x14, 0x57, 0x8a, 0xfc, 0x35, 0x13, 0x8d, 0x93, - 0xf4, 0xc8, 0xd5, 0xe2, 0x5a, 0xf1, 0xaf, 0x7b, 0xe5, 0x48, 0xab, 0x6e, 0xce, 0xf4, 0x65, 0x50, - 0xbd, 0x98, 0x11, 0xe3, 0x6a, 0x4d, 0xd3, 0x13, 0x15, 0x7b, 0xd7, 0x13, 0x8d, 0x64, 0xeb, 0x88, - 0x66, 0x5e, 0x81, 0xd1, 0xfb, 0x36, 0x0c, 0xd8, 0x5f, 0x2f, 0xc2, 0xc3, 0x1d, 0x96, 0x3d, 0xdf, - 0xeb, 0x8d, 0x31, 0xd0, 0xf6, 0xfa, 0xd4, 0x38, 0x54, 0xe0, 0xd4, 0x56, 0xbb, 0xd1, 0xd8, 0x67, - 0xcf, 0x6f, 0x48, 0x5d, 0x52, 0x08, 0x99, 0x52, 0x2a, 0x47, 0x4e, 0xad, 0x66, 0xd0, 0xe0, 0xcc, - 0x92, 0xf4, 0x8a, 0x45, 0x4f, 0x92, 0x7d, 0xc5, 0x2a, 0x71, 0xc5, 0xc2, 0x3a, 0x12, 0x9b, 0xb4, - 0xe8, 0x0a, 0x4c, 0x3a, 0x7b, 0x8e, 0xcb, 0x83, 0x83, 0x4b, 0x06, 0xfc, 0x8e, 0xa5, 0xf4, 0xb9, - 0x0b, 0x49, 0x02, 0x9c, 0x2e, 0x83, 0x5e, 0x03, 0xe4, 0x6f, 0x32, 0x27, 0xfd, 0xfa, 0x15, 0xe2, - 0x09, 0x93, 0x33, 0x1b, 0xbb, 0x62, 0xbc, 0x25, 0xdc, 0x48, 0x51, 0xe0, 0x8c, 0x52, 0x89, 0x20, - 0x4e, 0x03, 0xf9, 0x41, 0x9c, 0x3a, 0xef, 0x8b, 0x5d, 0xd3, 0x14, 0x5d, 0x86, 0xd1, 0x23, 0xba, - 0x9e, 0xda, 0xff, 0xc1, 0xa2, 0x27, 0x1e, 0x2f, 0x63, 0x46, 0x48, 0x7d, 0x85, 0xf9, 0xc6, 0x72, - 0xf5, 0xb0, 0x16, 0x25, 0xe7, 0xb4, 0xe6, 0x1b, 0x1b, 0x23, 0xb1, 0x49, 0xcb, 0xe7, 0x90, 0xe6, - 0xd3, 0x6a, 0xdc, 0x0a, 0x44, 0x18, 0x37, 0x45, 0x81, 0x3e, 0x0a, 0x83, 0x75, 0x77, 0xcf, 0x0d, - 0x85, 0x72, 0xec, 0xc8, 0x96, 0xa8, 0x78, 0xeb, 0x5c, 0xe6, 0x6c, 0xb0, 0xe4, 0x67, 0xff, 0x50, - 0x21, 0xee, 0x93, 0xd7, 0xdb, 0x7e, 0xe4, 0x9c, 0xc0, 0x49, 0x7e, 0xc5, 0x38, 0xc9, 0x9f, 0xe8, - 0x14, 0xcb, 0x8e, 0x35, 0x29, 0xf7, 0x04, 0xbf, 0x91, 0x38, 0xc1, 0x9f, 0xec, 0xce, 0xaa, 0xf3, - 0xc9, 0xfd, 0x0f, 0x2d, 0x98, 0x34, 0xe8, 0x4f, 0xe0, 0x00, 0x59, 0x35, 0x0f, 0x90, 0x47, 0xbb, - 0x7e, 0x43, 0xce, 0xc1, 0xf1, 0xbd, 0xc5, 0x44, 0xdb, 0xd9, 0x81, 0xf1, 0x26, 0xf4, 0xed, 0x38, - 0x41, 0xbd, 0x53, 0xee, 0x8e, 0x54, 0xa1, 0xb9, 0xab, 0x4e, 0x20, 0xcc, 0xf4, 0xcf, 0xc8, 0x5e, - 0xa7, 0xa0, 0xae, 0x26, 0x7a, 0x56, 0x15, 0x7a, 0x09, 0x06, 0xc2, 0x9a, 0xdf, 0x52, 0xef, 0x75, - 0x2e, 0xb0, 0x8e, 0x66, 0x90, 0xc3, 0x83, 0x59, 0x64, 0x56, 0x47, 0xc1, 0x58, 0xd0, 0xa3, 0x8f, - 0xc1, 0x28, 0xfb, 0xa5, 0x7c, 0xe6, 0x8a, 0xf9, 0x1a, 0x8c, 0xaa, 0x4e, 0xc8, 0x1d, 0x4a, 0x0d, - 0x10, 0x36, 0x59, 0xcd, 0x6c, 0x43, 0x49, 0x7d, 0xd6, 0x03, 0x35, 0xf5, 0xfe, 0xbb, 0x22, 0x4c, - 0x65, 0xcc, 0x39, 0x14, 0x1a, 0x23, 0x71, 0xb9, 0xc7, 0xa9, 0xfa, 0x36, 0xc7, 0x22, 0x64, 0x17, - 0xa8, 0xba, 0x98, 0x5b, 0x3d, 0x57, 0x7a, 0x33, 0x24, 0xc9, 0x4a, 0x29, 0xa8, 0x7b, 0xa5, 0xb4, - 0xb2, 0x13, 0xeb, 0x6a, 0x5a, 0x91, 0x6a, 0xe9, 0x03, 0x1d, 0xd3, 0x5f, 0xee, 0x83, 0x53, 0x59, - 0xe1, 0x35, 0xd1, 0x67, 0x12, 0x99, 0x63, 0x5f, 0xe8, 0x35, 0x30, 0x27, 0x4f, 0x27, 0x2b, 0xc2, - 0xfe, 0xcd, 0x99, 0xb9, 0x64, 0xbb, 0x76, 0xb3, 0xa8, 0x93, 0x05, 0x1e, 0x09, 0x78, 0xc6, 0x5f, - 0xb9, 0x7d, 0xbc, 0xbf, 0xe7, 0x06, 0x88, 0x54, 0xc1, 0x61, 0xc2, 0x1f, 0x47, 0x82, 0xbb, 0xfb, - 0xe3, 0xc8, 0x9a, 0x51, 0x19, 0x06, 0x6a, 0xdc, 0xd1, 0xa3, 0xd8, 0x7d, 0x0b, 0xe3, 0x5e, 0x1e, - 0x6a, 0x03, 0x16, 0xde, 0x1d, 0x82, 0xc1, 0x8c, 0x0b, 0xc3, 0x5a, 0xc7, 0x3c, 0xd0, 0xc9, 0xb3, - 0x4b, 0x0f, 0x3e, 0xad, 0x0b, 0x1e, 0xe8, 0x04, 0xfa, 0x51, 0x0b, 0x12, 0xaf, 0x3d, 0x94, 0x52, - 0xce, 0xca, 0x55, 0xca, 0x5d, 0x80, 0xbe, 0xc0, 0x6f, 0x90, 0x64, 0xb6, 0x56, 0xec, 0x37, 0x08, - 0x66, 0x18, 0x4a, 0x11, 0xc5, 0xaa, 0x96, 0x11, 0xfd, 0x1a, 0x29, 0x2e, 0x88, 0x8f, 0x41, 0x7f, - 0x83, 0xec, 0x91, 0x46, 0x32, 0xa9, 0xd6, 0x75, 0x0a, 0xc4, 0x1c, 0x67, 0xff, 0x5c, 0x1f, 0x9c, - 0xeb, 0x18, 0x05, 0x88, 0x5e, 0xc6, 0xb6, 0x9d, 0x88, 0xdc, 0x71, 0xf6, 0x93, 0xd9, 0x6f, 0xae, - 0x70, 0x30, 0x96, 0x78, 0xf6, 0xf4, 0x90, 0x07, 0xb1, 0x4f, 0xa8, 0x30, 0x45, 0xec, 0x7a, 0x81, - 0x35, 0x55, 0x62, 0xc5, 0xe3, 0x50, 0x89, 0x3d, 0x07, 0x10, 0x86, 0x0d, 0xee, 0x13, 0x57, 0x17, - 0x6f, 0x1a, 0xe3, 0x64, 0x07, 0xd5, 0xeb, 0x02, 0x83, 0x35, 0x2a, 0xb4, 0x0c, 0x13, 0xad, 0xc0, - 0x8f, 0xb8, 0x46, 0x78, 0x99, 0xbb, 0x8d, 0xf6, 0x9b, 0x01, 0x58, 0x2a, 0x09, 0x3c, 0x4e, 0x95, - 0x40, 0x2f, 0xc2, 0xb0, 0x08, 0xca, 0x52, 0xf1, 0xfd, 0x86, 0x50, 0x42, 0x29, 0x4f, 0xca, 0x6a, - 0x8c, 0xc2, 0x3a, 0x9d, 0x56, 0x8c, 0xa9, 0x99, 0x07, 0x33, 0x8b, 0x71, 0x55, 0xb3, 0x46, 0x97, - 0x88, 0xda, 0x3b, 0xd4, 0x53, 0xd4, 0xde, 0x58, 0x2d, 0x57, 0xea, 0xd9, 0xea, 0x09, 0x5d, 0x15, - 0x59, 0x5f, 0xe9, 0x83, 0x29, 0x31, 0x71, 0x1e, 0xf4, 0x74, 0xb9, 0x99, 0x9e, 0x2e, 0xc7, 0xa1, - 0xb8, 0x7b, 0x77, 0xce, 0x9c, 0xf4, 0x9c, 0xf9, 0x61, 0x0b, 0x4c, 0x49, 0x0d, 0xfd, 0x99, 0xdc, - 0xf4, 0x61, 0x2f, 0xe6, 0x4a, 0x7e, 0xca, 0x6b, 0xf0, 0x6d, 0x26, 0x12, 0xb3, 0xff, 0xbd, 0x05, - 0x8f, 0x76, 0xe5, 0x88, 0x56, 0xa0, 0xc4, 0xc4, 0x49, 0xed, 0xa2, 0xf7, 0xa4, 0x72, 0x2b, 0x97, - 0x88, 0x1c, 0xe9, 0x36, 0x2e, 0x89, 0x56, 0x52, 0x79, 0xda, 0x9e, 0xca, 0xc8, 0xd3, 0x76, 0xda, - 0xe8, 0x9e, 0xfb, 0x4c, 0xd4, 0xf6, 0x83, 0xf4, 0xc4, 0x31, 0x9e, 0x74, 0xa1, 0xf7, 0x1b, 0x4a, - 0x47, 0x3b, 0xa1, 0x74, 0x44, 0x26, 0xb5, 0x76, 0x86, 0x7c, 0x18, 0x26, 0x58, 0xb4, 0x36, 0xf6, - 0xc8, 0x41, 0x3c, 0x36, 0x2b, 0xc4, 0x8e, 0xcc, 0xd7, 0x13, 0x38, 0x9c, 0xa2, 0xb6, 0xff, 0xa0, - 0x08, 0x03, 0x7c, 0xf9, 0x9d, 0xc0, 0xf5, 0xf2, 0x69, 0x28, 0xb9, 0xcd, 0x66, 0x9b, 0xa7, 0xde, - 0xea, 0x8f, 0xdd, 0x62, 0xcb, 0x12, 0x88, 0x63, 0x3c, 0x5a, 0x15, 0xfa, 0xee, 0x0e, 0x01, 0x61, - 0x79, 0xc3, 0xe7, 0x96, 0x9d, 0xc8, 0xe1, 0xb2, 0x92, 0x3a, 0x67, 0x63, 0xcd, 0x38, 0xfa, 0x24, - 0x40, 0x18, 0x05, 0xae, 0xb7, 0x4d, 0x61, 0x22, 0x0e, 0xf5, 0x7b, 0x3b, 0x70, 0xab, 0x2a, 0x62, - 0xce, 0x33, 0xde, 0x73, 0x14, 0x02, 0x6b, 0x1c, 0xd1, 0x9c, 0x71, 0xd2, 0xcf, 0x24, 0xc6, 0x0e, - 0x38, 0xd7, 0x78, 0xcc, 0x66, 0x3e, 0x00, 0x25, 0xc5, 0xbc, 0x9b, 0xf6, 0x6b, 0x44, 0x17, 0x8b, - 0x3e, 0x04, 0xe3, 0x89, 0xb6, 0x1d, 0x49, 0x79, 0xf6, 0xf3, 0x16, 0x8c, 0xf3, 0xc6, 0xac, 0x78, - 0x7b, 0xe2, 0x34, 0x78, 0x0b, 0x4e, 0x35, 0x32, 0x76, 0x65, 0x31, 0xfc, 0xbd, 0xef, 0xe2, 0x4a, - 0x59, 0x96, 0x85, 0xc5, 0x99, 0x75, 0xa0, 0x4b, 0x74, 0xc5, 0xd1, 0x5d, 0xd7, 0x69, 0x88, 0xb7, - 0xf5, 0x23, 0x7c, 0xb5, 0x71, 0x18, 0x56, 0x58, 0xfb, 0xb7, 0x2d, 0x98, 0xe4, 0x2d, 0xbf, 0x46, - 0xf6, 0xd5, 0xde, 0xf4, 0xcd, 0x6c, 0xbb, 0x48, 0xfa, 0x58, 0xc8, 0x49, 0xfa, 0xa8, 0x7f, 0x5a, - 0xb1, 0xe3, 0xa7, 0x7d, 0xd9, 0x02, 0x31, 0x43, 0x4e, 0x40, 0x9f, 0xf1, 0x9d, 0xa6, 0x3e, 0x63, - 0x26, 0x7f, 0x11, 0xe4, 0x28, 0x32, 0xfe, 0xc4, 0x82, 0x09, 0x4e, 0x10, 0xdb, 0xea, 0xbf, 0xa9, - 0xe3, 0xd0, 0x4b, 0x6a, 0xf8, 0x6b, 0x64, 0x7f, 0xc3, 0xaf, 0x38, 0xd1, 0x4e, 0xf6, 0x47, 0x19, - 0x83, 0xd5, 0xd7, 0x71, 0xb0, 0xea, 0x72, 0x01, 0x19, 0x39, 0x91, 0xba, 0xbc, 0x90, 0x3f, 0x6a, - 0x4e, 0x24, 0xfb, 0x1b, 0x16, 0x20, 0x5e, 0x8d, 0x21, 0xb8, 0x51, 0x71, 0x88, 0x41, 0xb5, 0x83, - 0x2e, 0xde, 0x9a, 0x14, 0x06, 0x6b, 0x54, 0xc7, 0xd2, 0x3d, 0x09, 0x87, 0x8b, 0x62, 0x77, 0x87, - 0x8b, 0x23, 0xf4, 0xe8, 0xbf, 0x1c, 0x80, 0xe4, 0xb3, 0x36, 0x74, 0x0b, 0x46, 0x6a, 0x4e, 0xcb, - 0xd9, 0x74, 0x1b, 0x6e, 0xe4, 0x92, 0xb0, 0x93, 0x37, 0xd6, 0x92, 0x46, 0x27, 0x4c, 0xe4, 0x1a, - 0x04, 0x1b, 0x7c, 0xd0, 0x1c, 0x40, 0x2b, 0x70, 0xf7, 0xdc, 0x06, 0xd9, 0x66, 0x6a, 0x17, 0x16, - 0xcd, 0x83, 0xbb, 0x86, 0x49, 0x28, 0xd6, 0x28, 0x32, 0x62, 0x08, 0x14, 0x1f, 0x70, 0x0c, 0x01, - 0x38, 0xb1, 0x18, 0x02, 0x7d, 0x47, 0x8a, 0x21, 0x30, 0x74, 0xe4, 0x18, 0x02, 0xfd, 0x3d, 0xc5, - 0x10, 0xc0, 0x70, 0x46, 0xca, 0x9e, 0xf4, 0xff, 0xaa, 0xdb, 0x20, 0xe2, 0xc2, 0xc1, 0x43, 0x90, - 0xcc, 0xdc, 0x3b, 0x98, 0x3d, 0x83, 0x33, 0x29, 0x70, 0x4e, 0x49, 0xf4, 0x11, 0x98, 0x76, 0x1a, - 0x0d, 0xff, 0x8e, 0x1a, 0xd4, 0x95, 0xb0, 0xe6, 0x34, 0xb8, 0x09, 0x64, 0x90, 0x71, 0x7d, 0xe4, - 0xde, 0xc1, 0xec, 0xf4, 0x42, 0x0e, 0x0d, 0xce, 0x2d, 0x8d, 0x3e, 0x08, 0xa5, 0x56, 0xe0, 0xd7, - 0xd6, 0xb4, 0xb7, 0xb7, 0xe7, 0x69, 0x07, 0x56, 0x24, 0xf0, 0xf0, 0x60, 0x76, 0x54, 0xfd, 0x61, - 0x07, 0x7e, 0x5c, 0x20, 0x23, 0x28, 0xc0, 0xf0, 0xb1, 0x06, 0x05, 0xd8, 0x85, 0xa9, 0x2a, 0x09, - 0x5c, 0xa7, 0xe1, 0xbe, 0x45, 0xe5, 0x65, 0xb9, 0x3f, 0x6d, 0x40, 0x29, 0x48, 0xec, 0xc8, 0x3d, - 0x05, 0x69, 0xd5, 0x92, 0xd3, 0xc8, 0x1d, 0x38, 0x66, 0x64, 0xff, 0x6f, 0x0b, 0x06, 0xc5, 0x33, - 0xb6, 0x13, 0x90, 0x1a, 0x17, 0x0c, 0xa3, 0xc4, 0x6c, 0x76, 0x87, 0xb1, 0xc6, 0xe4, 0x9a, 0x23, - 0xca, 0x09, 0x73, 0xc4, 0xa3, 0x9d, 0x98, 0x74, 0x36, 0x44, 0xfc, 0xd5, 0x22, 0x95, 0xde, 0x8d, - 0x07, 0xd5, 0x0f, 0xbe, 0x0b, 0xd6, 0x61, 0x30, 0x14, 0x0f, 0x7a, 0x0b, 0xf9, 0x2f, 0x2a, 0x92, - 0x83, 0x18, 0x7b, 0xd1, 0x89, 0x27, 0xbc, 0x92, 0x49, 0xe6, 0x4b, 0xe1, 0xe2, 0x03, 0x7c, 0x29, - 0xdc, 0xed, 0xc9, 0x79, 0xdf, 0x71, 0x3c, 0x39, 0xb7, 0xbf, 0xc6, 0x4e, 0x4e, 0x1d, 0x7e, 0x02, - 0x42, 0xd5, 0x15, 0xf3, 0x8c, 0xb5, 0x3b, 0xcc, 0x2c, 0xd1, 0xa8, 0x1c, 0xe1, 0xea, 0x67, 0x2d, - 0x38, 0x97, 0xf1, 0x55, 0x9a, 0xa4, 0xf5, 0x0c, 0x0c, 0x39, 0xed, 0xba, 0xab, 0xd6, 0xb2, 0x66, - 0x9a, 0x5c, 0x10, 0x70, 0xac, 0x28, 0xd0, 0x12, 0x4c, 0x92, 0xbb, 0x2d, 0x97, 0x1b, 0x72, 0x75, - 0xe7, 0xe3, 0x22, 0x7f, 0xfb, 0xb8, 0x92, 0x44, 0xe2, 0x34, 0xbd, 0x0a, 0x4e, 0x54, 0xcc, 0x0d, - 0x4e, 0xf4, 0xb7, 0x2d, 0x18, 0x56, 0x4f, 0x5a, 0x1f, 0x78, 0x6f, 0x7f, 0xd8, 0xec, 0xed, 0x87, - 0x3b, 0xf4, 0x76, 0x4e, 0x37, 0xff, 0x66, 0x41, 0xb5, 0xb7, 0xe2, 0x07, 0x51, 0x0f, 0x12, 0xdc, - 0xfd, 0x3f, 0x9c, 0xb8, 0x0c, 0xc3, 0x4e, 0xab, 0x25, 0x11, 0xd2, 0x03, 0x8e, 0x85, 0xdc, 0x8e, - 0xc1, 0x58, 0xa7, 0x51, 0xef, 0x38, 0x8a, 0xb9, 0xef, 0x38, 0xea, 0x00, 0x91, 0x13, 0x6c, 0x93, - 0x88, 0xc2, 0x84, 0xc3, 0x6e, 0xfe, 0x7e, 0xd3, 0x8e, 0xdc, 0xc6, 0x9c, 0xeb, 0x45, 0x61, 0x14, - 0xcc, 0x95, 0xbd, 0xe8, 0x46, 0xc0, 0xaf, 0x90, 0x5a, 0x78, 0x2f, 0xc5, 0x0b, 0x6b, 0x7c, 0x65, - 0xf8, 0x06, 0x56, 0x47, 0xbf, 0xe9, 0x4a, 0xb1, 0x2e, 0xe0, 0x58, 0x51, 0xd8, 0x1f, 0x60, 0xa7, - 0x0f, 0xeb, 0xd3, 0xa3, 0x85, 0xb6, 0xfa, 0xf2, 0x88, 0x1a, 0x0d, 0x66, 0x14, 0x5d, 0xd6, 0x03, - 0x68, 0x75, 0xde, 0xec, 0x69, 0xc5, 0xfa, 0xab, 0xc2, 0x38, 0xca, 0x16, 0xfa, 0x78, 0xca, 0x3d, - 0xe6, 0xd9, 0x2e, 0xa7, 0xc6, 0x11, 0x1c, 0x62, 0x58, 0xfe, 0x1d, 0x96, 0x9d, 0xa4, 0x5c, 0x11, - 0xeb, 0x42, 0xcb, 0xbf, 0x23, 0x10, 0x38, 0xa6, 0xa1, 0xc2, 0x94, 0xfa, 0x13, 0x4e, 0xa3, 0x38, - 0x0e, 0xad, 0xa2, 0x0e, 0xb1, 0x46, 0x81, 0xe6, 0x85, 0x42, 0x81, 0xdb, 0x05, 0x1e, 0x4e, 0x28, - 0x14, 0x64, 0x77, 0x69, 0x5a, 0xa0, 0xcb, 0x30, 0xac, 0xb2, 0xad, 0x57, 0x78, 0xe6, 0x2b, 0x31, - 0xcd, 0x56, 0x62, 0x30, 0xd6, 0x69, 0xd0, 0x06, 0x8c, 0x87, 0x5c, 0xcf, 0xa6, 0x82, 0x83, 0x73, - 0x7d, 0xe5, 0x7b, 0xd5, 0x63, 0x62, 0x13, 0x7d, 0xc8, 0x40, 0x7c, 0x77, 0x92, 0x21, 0x16, 0x92, - 0x2c, 0xd0, 0xab, 0x30, 0xd6, 0xf0, 0x9d, 0xfa, 0xa2, 0xd3, 0x70, 0xbc, 0x1a, 0xeb, 0x9f, 0x21, - 0x33, 0x69, 0xef, 0x75, 0x03, 0x8b, 0x13, 0xd4, 0x54, 0x78, 0xd3, 0x21, 0x22, 0x44, 0x98, 0xe3, - 0x6d, 0x93, 0x50, 0xe4, 0xce, 0x66, 0xc2, 0xdb, 0xf5, 0x1c, 0x1a, 0x9c, 0x5b, 0x1a, 0xbd, 0x04, - 0x23, 0xf2, 0xf3, 0xb5, 0x88, 0x24, 0xf1, 0x93, 0x18, 0x0d, 0x87, 0x0d, 0x4a, 0x74, 0x07, 0x4e, - 0xcb, 0xff, 0x1b, 0x81, 0xb3, 0xb5, 0xe5, 0xd6, 0xc4, 0x33, 0x7d, 0xfe, 0x76, 0x76, 0x41, 0x3e, - 0xf0, 0x5c, 0xc9, 0x22, 0x3a, 0x3c, 0x98, 0xbd, 0x20, 0x7a, 0x2d, 0x13, 0xcf, 0x06, 0x31, 0x9b, - 0x3f, 0x5a, 0x83, 0xa9, 0x1d, 0xe2, 0x34, 0xa2, 0x9d, 0xa5, 0x1d, 0x52, 0xdb, 0x95, 0x8b, 0x8e, - 0xc5, 0x39, 0xd1, 0x9e, 0x8f, 0x5c, 0x4d, 0x93, 0xe0, 0xac, 0x72, 0xe8, 0x0d, 0x98, 0x6e, 0xb5, - 0x37, 0x1b, 0x6e, 0xb8, 0xb3, 0xee, 0x47, 0xcc, 0x11, 0x49, 0x25, 0x6f, 0x17, 0x01, 0x51, 0x54, - 0x24, 0x99, 0x4a, 0x0e, 0x1d, 0xce, 0xe5, 0x80, 0xde, 0x82, 0xd3, 0x89, 0xc9, 0x20, 0x42, 0x42, - 0x8c, 0xe5, 0xa7, 0x07, 0xa9, 0x66, 0x15, 0x10, 0xd1, 0x55, 0xb2, 0x50, 0x38, 0xbb, 0x0a, 0xf4, - 0x32, 0x80, 0xdb, 0x5a, 0x75, 0x9a, 0x6e, 0x83, 0x5e, 0x17, 0xa7, 0xd8, 0x3c, 0xa1, 0x57, 0x07, - 0x28, 0x57, 0x24, 0x94, 0xee, 0xcf, 0xe2, 0xdf, 0x3e, 0xd6, 0xa8, 0xd1, 0x75, 0x18, 0x13, 0xff, - 0xf6, 0xc5, 0xb0, 0xf2, 0xc8, 0x24, 0x8f, 0xb3, 0xb0, 0x52, 0x15, 0x1d, 0x73, 0x98, 0x82, 0xe0, - 0x44, 0x59, 0xb4, 0x0d, 0xe7, 0x64, 0xaa, 0x37, 0x7d, 0x8e, 0xca, 0x31, 0x08, 0x59, 0x4e, 0x8e, - 0x21, 0xfe, 0x32, 0x65, 0xa1, 0x13, 0x21, 0xee, 0xcc, 0x87, 0x9e, 0xed, 0xfa, 0x54, 0xe7, 0x6f, - 0x77, 0x4f, 0x73, 0x2f, 0x27, 0x7a, 0xb6, 0x5f, 0x4f, 0x22, 0x71, 0x9a, 0x1e, 0x85, 0x70, 0xda, - 0xf5, 0xb2, 0x66, 0xf6, 0x19, 0xc6, 0xe8, 0x43, 0xfc, 0xd9, 0x72, 0xe7, 0x59, 0x9d, 0x89, 0xe7, - 0xb3, 0x3a, 0x93, 0xf7, 0xdb, 0xf3, 0xff, 0xfb, 0x2d, 0x8b, 0x96, 0xd6, 0xa4, 0x74, 0xf4, 0x29, - 0x18, 0xd1, 0x3f, 0x4c, 0x48, 0x1c, 0x17, 0xb3, 0x85, 0x58, 0x6d, 0x6f, 0xe0, 0x32, 0xbe, 0x5a, - 0xff, 0x3a, 0x0e, 0x1b, 0x1c, 0x51, 0x2d, 0xe3, 0x81, 0xff, 0x7c, 0x6f, 0x12, 0x4d, 0xef, 0xee, - 0x6f, 0x04, 0xb2, 0xa7, 0x3c, 0xba, 0x0e, 0x43, 0xb5, 0x86, 0x4b, 0xbc, 0xa8, 0x5c, 0xe9, 0x14, - 0xc2, 0x70, 0x49, 0xd0, 0x88, 0x35, 0x24, 0x52, 0x6c, 0x70, 0x18, 0x56, 0x1c, 0xec, 0x5f, 0x2d, - 0xc0, 0x6c, 0x97, 0x7c, 0x2d, 0x09, 0x73, 0x94, 0xd5, 0x93, 0x39, 0x6a, 0x01, 0xc6, 0xe3, 0x7f, - 0xba, 0xa6, 0x4b, 0x79, 0xb4, 0xde, 0x32, 0xd1, 0x38, 0x49, 0xdf, 0xf3, 0xe3, 0x04, 0xdd, 0xa2, - 0xd5, 0xd7, 0xf5, 0x79, 0x8d, 0x61, 0xc9, 0xee, 0xef, 0xfd, 0xfa, 0x9b, 0x6b, 0x95, 0xb4, 0xbf, - 0x56, 0x80, 0xd3, 0xaa, 0x0b, 0xbf, 0x7d, 0x3b, 0xee, 0x66, 0xba, 0xe3, 0x8e, 0xc1, 0xa6, 0x6b, - 0xdf, 0x80, 0x01, 0x1e, 0x93, 0xb1, 0x07, 0xb1, 0xfb, 0x31, 0x33, 0x52, 0xb3, 0x92, 0xf4, 0x8c, - 0x68, 0xcd, 0xdf, 0x6f, 0xc1, 0x78, 0xe2, 0x95, 0x1b, 0xc2, 0xda, 0x53, 0xe8, 0xfb, 0x11, 0x8d, - 0xb3, 0x84, 0xee, 0x0b, 0xd0, 0xb7, 0xe3, 0x87, 0x51, 0xd2, 0xe1, 0xe3, 0xaa, 0x1f, 0x46, 0x98, - 0x61, 0xec, 0xdf, 0xb1, 0xa0, 0x7f, 0xc3, 0x71, 0xbd, 0x48, 0x1a, 0x07, 0xac, 0x1c, 0xe3, 0x40, - 0x2f, 0xdf, 0x85, 0x5e, 0x84, 0x01, 0xb2, 0xb5, 0x45, 0x6a, 0x91, 0x18, 0x55, 0x19, 0x47, 0x62, - 0x60, 0x85, 0x41, 0xa9, 0x1c, 0xc8, 0x2a, 0xe3, 0x7f, 0xb1, 0x20, 0x46, 0xb7, 0xa1, 0x14, 0xb9, - 0x4d, 0xb2, 0x50, 0xaf, 0x0b, 0x93, 0xf9, 0x7d, 0xc4, 0xc2, 0xd8, 0x90, 0x0c, 0x70, 0xcc, 0xcb, - 0xfe, 0x42, 0x01, 0x20, 0x0e, 0x66, 0xd5, 0xed, 0x13, 0x17, 0x53, 0xc6, 0xd4, 0x8b, 0x19, 0xc6, - 0x54, 0x14, 0x33, 0xcc, 0xb0, 0xa4, 0xaa, 0x6e, 0x2a, 0xf6, 0xd4, 0x4d, 0x7d, 0x47, 0xe9, 0xa6, - 0x25, 0x98, 0x8c, 0x83, 0x71, 0x99, 0xb1, 0x08, 0xd9, 0xf1, 0xb9, 0x91, 0x44, 0xe2, 0x34, 0xbd, - 0x4d, 0xe0, 0x82, 0x8a, 0x49, 0x24, 0x4e, 0x34, 0xe6, 0x0f, 0xae, 0x1b, 0xa7, 0xbb, 0xf4, 0x53, - 0x6c, 0x2d, 0x2e, 0xe4, 0x5a, 0x8b, 0x7f, 0xc2, 0x82, 0x53, 0xc9, 0x7a, 0xd8, 0xe3, 0xe9, 0xcf, - 0x5b, 0x70, 0x9a, 0xd9, 0xcc, 0x59, 0xad, 0x69, 0x0b, 0xfd, 0x0b, 0x1d, 0xe3, 0x2c, 0xe5, 0xb4, - 0x38, 0x0e, 0x58, 0xb2, 0x96, 0xc5, 0x1a, 0x67, 0xd7, 0x68, 0xff, 0xaf, 0x3e, 0x98, 0xce, 0x0b, - 0xd0, 0xc4, 0x9e, 0x8b, 0x38, 0x77, 0xab, 0xbb, 0xe4, 0x8e, 0x70, 0xca, 0x8f, 0x9f, 0x8b, 0x70, - 0x30, 0x96, 0xf8, 0x64, 0x0a, 0x8e, 0x42, 0x8f, 0x29, 0x38, 0x76, 0x60, 0xf2, 0xce, 0x0e, 0xf1, - 0x6e, 0x7a, 0xa1, 0x13, 0xb9, 0xe1, 0x96, 0xcb, 0xec, 0xcb, 0x7c, 0xde, 0xc8, 0xbc, 0xbd, 0x93, - 0xb7, 0x93, 0x04, 0x87, 0x07, 0xb3, 0xe7, 0x0c, 0x40, 0xdc, 0x64, 0xbe, 0x91, 0xe0, 0x34, 0xd3, - 0x74, 0x06, 0x93, 0xbe, 0x07, 0x9c, 0xc1, 0xa4, 0xe9, 0x0a, 0xaf, 0x14, 0xf9, 0x16, 0x80, 0xdd, - 0x1c, 0xd7, 0x14, 0x14, 0x6b, 0x14, 0xe8, 0x13, 0x80, 0xf4, 0x0c, 0x4d, 0x46, 0x7c, 0xcc, 0x67, - 0xef, 0x1d, 0xcc, 0xa2, 0xf5, 0x14, 0xf6, 0xf0, 0x60, 0x76, 0x8a, 0x42, 0xcb, 0x1e, 0xbd, 0x81, - 0xc6, 0x41, 0xc5, 0x32, 0x18, 0xa1, 0xdb, 0x30, 0x41, 0xa1, 0x6c, 0x45, 0xc9, 0xe0, 0x9b, 0xfc, - 0xd6, 0xf8, 0xf4, 0xbd, 0x83, 0xd9, 0x89, 0xf5, 0x04, 0x2e, 0x8f, 0x75, 0x8a, 0x09, 0x7a, 0x19, - 0xc6, 0xe2, 0x79, 0x75, 0x8d, 0xec, 0xf3, 0x60, 0x37, 0x25, 0xae, 0xf8, 0x5e, 0x33, 0x30, 0x38, - 0x41, 0x69, 0x7f, 0xde, 0x82, 0xb3, 0xb9, 0x59, 0xc4, 0xd1, 0x25, 0x18, 0x72, 0x5a, 0x2e, 0x37, - 0x63, 0x88, 0xa3, 0x86, 0xa9, 0xcb, 0x2a, 0x65, 0x6e, 0xc4, 0x50, 0x58, 0xba, 0xc3, 0xef, 0xba, - 0x5e, 0x3d, 0xb9, 0xc3, 0x5f, 0x73, 0xbd, 0x3a, 0x66, 0x18, 0x75, 0x64, 0x15, 0x73, 0x9f, 0x24, - 0x7c, 0x85, 0xae, 0xd5, 0x8c, 0x7c, 0xe3, 0x27, 0xdb, 0x0c, 0xf4, 0xb4, 0x6e, 0x72, 0x14, 0xde, - 0x85, 0xb9, 0xe6, 0xc6, 0xef, 0xb3, 0x40, 0x3c, 0x61, 0xee, 0xe1, 0x4c, 0xfe, 0x18, 0x8c, 0xec, - 0xa5, 0xb3, 0xd7, 0x5d, 0xc8, 0x7f, 0xd3, 0x2d, 0xa2, 0x7e, 0x2b, 0x41, 0xdb, 0xc8, 0x54, 0x67, - 0xf0, 0xb2, 0xeb, 0x20, 0xb0, 0xcb, 0x84, 0x19, 0x16, 0xba, 0xb7, 0xe6, 0x39, 0x80, 0x3a, 0xa3, - 0x65, 0x29, 0x6d, 0x0b, 0xa6, 0xc4, 0xb5, 0xac, 0x30, 0x58, 0xa3, 0xb2, 0xff, 0x75, 0x01, 0x86, - 0x65, 0xb6, 0xb4, 0xb6, 0xd7, 0x8b, 0xfa, 0xef, 0x48, 0xe9, 0x93, 0xd1, 0x3c, 0x94, 0x98, 0x7e, - 0xba, 0x12, 0x6b, 0x4d, 0x95, 0x76, 0x68, 0x4d, 0x22, 0x70, 0x4c, 0x43, 0x77, 0xc7, 0xb0, 0xbd, - 0xc9, 0xc8, 0x13, 0x0f, 0x6e, 0xab, 0x1c, 0x8c, 0x25, 0x1e, 0x7d, 0x04, 0x26, 0x78, 0xb9, 0xc0, - 0x6f, 0x39, 0xdb, 0xdc, 0xa6, 0xd5, 0xaf, 0xa2, 0x98, 0x4c, 0xac, 0x25, 0x70, 0x87, 0x07, 0xb3, - 0xa7, 0x92, 0x30, 0x66, 0xac, 0x4d, 0x71, 0x61, 0xae, 0x6b, 0xbc, 0x12, 0xba, 0xab, 0xa7, 0x3c, - 0xde, 0x62, 0x14, 0xd6, 0xe9, 0xec, 0x4f, 0x01, 0x4a, 0xe7, 0x8d, 0x43, 0xaf, 0x71, 0xd7, 0x67, - 0x37, 0x20, 0xf5, 0x4e, 0xc6, 0x5b, 0x3d, 0x56, 0x87, 0x7c, 0x2b, 0xc7, 0x4b, 0x61, 0x55, 0xde, - 0xfe, 0x0b, 0x45, 0x98, 0x48, 0x46, 0x07, 0x40, 0x57, 0x61, 0x80, 0x8b, 0x94, 0x82, 0x7d, 0x07, - 0xdf, 0x20, 0x2d, 0xa6, 0x00, 0x3b, 0x5c, 0x85, 0x54, 0x2a, 0xca, 0xa3, 0x37, 0x60, 0xb8, 0xee, - 0xdf, 0xf1, 0xee, 0x38, 0x41, 0x7d, 0xa1, 0x52, 0x16, 0xd3, 0x39, 0x53, 0x59, 0xb1, 0x1c, 0x93, - 0xe9, 0x71, 0x0a, 0x98, 0x1d, 0x3c, 0x46, 0x61, 0x9d, 0x1d, 0xda, 0x60, 0xc9, 0x26, 0xb6, 0xdc, - 0xed, 0x35, 0xa7, 0xd5, 0xe9, 0x1d, 0xcc, 0x92, 0x24, 0xd2, 0x38, 0x8f, 0x8a, 0x8c, 0x14, 0x1c, - 0x81, 0x63, 0x46, 0xe8, 0x33, 0x30, 0x15, 0xe6, 0x98, 0x50, 0xf2, 0xd2, 0x88, 0x76, 0xb2, 0x2a, - 0x2c, 0x3e, 0x74, 0xef, 0x60, 0x76, 0x2a, 0xcb, 0xd8, 0x92, 0x55, 0x8d, 0xfd, 0xc5, 0x53, 0x60, - 0x2c, 0x62, 0x23, 0xab, 0xb4, 0x75, 0x4c, 0x59, 0xa5, 0x31, 0x0c, 0x91, 0x66, 0x2b, 0xda, 0x5f, - 0x76, 0x03, 0x31, 0x26, 0x99, 0x3c, 0x57, 0x04, 0x4d, 0x9a, 0xa7, 0xc4, 0x60, 0xc5, 0x27, 0x3b, - 0xf5, 0x77, 0xf1, 0x9b, 0x98, 0xfa, 0xbb, 0xef, 0x04, 0x53, 0x7f, 0xaf, 0xc3, 0xe0, 0xb6, 0x1b, - 0x61, 0xd2, 0xf2, 0xc5, 0x65, 0x2e, 0x73, 0x1e, 0x5e, 0xe1, 0x24, 0xe9, 0x24, 0xb3, 0x02, 0x81, - 0x25, 0x13, 0xf4, 0x9a, 0x5a, 0x81, 0x03, 0xf9, 0x0a, 0x97, 0xb4, 0x13, 0x4b, 0xe6, 0x1a, 0x14, - 0x09, 0xbe, 0x07, 0xef, 0x37, 0xc1, 0xf7, 0xaa, 0x4c, 0xcb, 0x3d, 0x94, 0xff, 0x68, 0x8d, 0x65, - 0xdd, 0xee, 0x92, 0x8c, 0xfb, 0x96, 0x9e, 0xca, 0xbc, 0x94, 0xbf, 0x13, 0xa8, 0x2c, 0xe5, 0x3d, - 0x26, 0x30, 0xff, 0x3e, 0x0b, 0x4e, 0xb7, 0xb2, 0xb2, 0xfa, 0x0b, 0x7f, 0x8f, 0x17, 0x7b, 0xc9, - 0xfd, 0xca, 0x0a, 0x18, 0x15, 0x32, 0x3d, 0x69, 0x26, 0x19, 0xce, 0xae, 0x8e, 0x76, 0x74, 0xb0, - 0x59, 0x17, 0x7e, 0x07, 0x8f, 0xe5, 0x64, 0x42, 0xef, 0x90, 0xff, 0x7c, 0x23, 0x23, 0xeb, 0xf6, - 0xe3, 0x79, 0x59, 0xb7, 0x7b, 0xce, 0xb5, 0xfd, 0x9a, 0xca, 0x81, 0x3e, 0x9a, 0x3f, 0x95, 0x78, - 0x86, 0xf3, 0xae, 0x99, 0xcf, 0x5f, 0x53, 0x99, 0xcf, 0x3b, 0x84, 0xd7, 0xe6, 0x79, 0xcd, 0xbb, - 0xe6, 0x3b, 0xd7, 0x72, 0x96, 0x8f, 0x1f, 0x4f, 0xce, 0x72, 0xe3, 0xa8, 0xe1, 0x69, 0xb3, 0x9f, - 0xee, 0x72, 0xd4, 0x18, 0x7c, 0x3b, 0x1f, 0x36, 0x3c, 0x3f, 0xfb, 0xe4, 0x7d, 0xe5, 0x67, 0xbf, - 0xa5, 0xe7, 0x3b, 0x47, 0x5d, 0x12, 0x7a, 0x53, 0xa2, 0x1e, 0xb3, 0x9c, 0xdf, 0xd2, 0x0f, 0xc0, - 0xa9, 0x7c, 0xbe, 0xea, 0x9c, 0x4b, 0xf3, 0xcd, 0x3c, 0x02, 0x53, 0xd9, 0xd3, 0x4f, 0x9d, 0x4c, - 0xf6, 0xf4, 0xd3, 0xc7, 0x9e, 0x3d, 0xfd, 0xcc, 0x09, 0x64, 0x4f, 0x7f, 0xe8, 0x04, 0xb3, 0xa7, - 0xdf, 0x62, 0x4e, 0x52, 0x3c, 0x10, 0x94, 0x08, 0x07, 0xfe, 0x54, 0x4e, 0x1c, 0xb5, 0x74, 0xb4, - 0x28, 0xfe, 0x71, 0x0a, 0x85, 0x63, 0x56, 0x19, 0x59, 0xd9, 0xa7, 0x1f, 0x40, 0x56, 0xf6, 0xf5, - 0x38, 0x2b, 0xfb, 0xd9, 0xfc, 0xa1, 0xce, 0x78, 0x56, 0x93, 0x93, 0x8b, 0xfd, 0x96, 0x9e, 0x43, - 0xfd, 0xe1, 0x0e, 0x96, 0xb0, 0x2c, 0x85, 0x72, 0x87, 0xcc, 0xe9, 0xaf, 0xf2, 0xcc, 0xe9, 0x8f, - 0xe4, 0xef, 0xe4, 0xc9, 0xe3, 0xce, 0xc8, 0x97, 0x4e, 0xdb, 0xa5, 0x02, 0xa9, 0xb2, 0xc0, 0xe7, - 0x39, 0xed, 0x52, 0x91, 0x58, 0xd3, 0xed, 0x52, 0x28, 0x1c, 0xb3, 0xb2, 0x7f, 0xa0, 0x00, 0xe7, - 0x3b, 0xaf, 0xb7, 0x58, 0x4b, 0x5e, 0x89, 0x1d, 0x03, 0x12, 0x5a, 0x72, 0x7e, 0x67, 0x8b, 0xa9, - 0x7a, 0x8e, 0x0b, 0x79, 0x05, 0x26, 0xd5, 0x7b, 0x9c, 0x86, 0x5b, 0xdb, 0x5f, 0x8f, 0xaf, 0xc9, - 0x2a, 0x82, 0x42, 0x35, 0x49, 0x80, 0xd3, 0x65, 0xd0, 0x02, 0x8c, 0x1b, 0xc0, 0xf2, 0xb2, 0xb8, - 0x9b, 0xc5, 0xa1, 0xb6, 0x4d, 0x34, 0x4e, 0xd2, 0xdb, 0x5f, 0xb2, 0xe0, 0xa1, 0x9c, 0xb4, 0xa3, - 0x3d, 0x87, 0x3d, 0xdc, 0x82, 0xf1, 0x96, 0x59, 0xb4, 0x4b, 0xa4, 0x56, 0x23, 0xb9, 0xa9, 0x6a, - 0x6b, 0x02, 0x81, 0x93, 0x4c, 0xed, 0x9f, 0x2e, 0xc0, 0xb9, 0x8e, 0x0e, 0xa6, 0x08, 0xc3, 0x99, - 0xed, 0x66, 0xe8, 0x2c, 0x05, 0xa4, 0x4e, 0xbc, 0xc8, 0x75, 0x1a, 0xd5, 0x16, 0xa9, 0x69, 0x76, - 0x0e, 0xe6, 0xa9, 0x79, 0x65, 0xad, 0xba, 0x90, 0xa6, 0xc0, 0x39, 0x25, 0xd1, 0x2a, 0xa0, 0x34, - 0x46, 0x8c, 0x30, 0x0b, 0xa1, 0x9f, 0xe6, 0x87, 0x33, 0x4a, 0xa0, 0x0f, 0xc0, 0xa8, 0x72, 0x5c, - 0xd5, 0x46, 0x9c, 0x6d, 0xec, 0x58, 0x47, 0x60, 0x93, 0x0e, 0x5d, 0xe6, 0x39, 0x18, 0x44, 0xb6, - 0x0e, 0x61, 0x14, 0x19, 0x97, 0x09, 0x16, 0x04, 0x18, 0xeb, 0x34, 0x8b, 0x2f, 0xfd, 0xda, 0xef, - 0x9d, 0x7f, 0xcf, 0x6f, 0xfc, 0xde, 0xf9, 0xf7, 0xfc, 0xf6, 0xef, 0x9d, 0x7f, 0xcf, 0x77, 0xdd, - 0x3b, 0x6f, 0xfd, 0xda, 0xbd, 0xf3, 0xd6, 0x6f, 0xdc, 0x3b, 0x6f, 0xfd, 0xf6, 0xbd, 0xf3, 0xd6, - 0xef, 0xde, 0x3b, 0x6f, 0x7d, 0xe1, 0xf7, 0xcf, 0xbf, 0xe7, 0x63, 0x28, 0x0e, 0x24, 0x3a, 0x4f, - 0x47, 0x67, 0x7e, 0xef, 0xf2, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x52, 0x56, 0xa0, 0x3b, 0xf7, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x69, 0x8c, 0x64, 0xd7, + 0x75, 0x18, 0xac, 0x57, 0xd5, 0x5b, 0x9d, 0xde, 0x6f, 0xcf, 0x0c, 0x7b, 0x9a, 0x9c, 0xe9, 0xe1, + 0x23, 0x39, 0x1c, 0x8a, 0x64, 0xb7, 0x86, 0x8b, 0x44, 0x91, 0x12, 0xad, 0x5e, 0x67, 0x8a, 0x33, + 0xdd, 0x53, 0xbc, 0xd5, 0x33, 0xa3, 0x85, 0x12, 0xf4, 0xba, 0xea, 0x76, 0xf7, 0x53, 0x57, 0xbd, + 0x57, 0x7c, 0xef, 0x55, 0xcf, 0x34, 0x3f, 0x09, 0x9f, 0x3f, 0x79, 0x95, 0xed, 0xef, 0x83, 0xf0, + 0xc1, 0x59, 0x20, 0x1b, 0x46, 0x60, 0x3b, 0xb6, 0x15, 0x65, 0x53, 0xe4, 0xd8, 0x8e, 0xe5, 0xd8, + 0xce, 0xee, 0x04, 0x81, 0xe3, 0x18, 0x88, 0x65, 0xc0, 0x48, 0xc7, 0x1e, 0x07, 0x30, 0x04, 0x24, + 0xb6, 0xb3, 0x01, 0x49, 0xc7, 0x89, 0x83, 0xbb, 0xbe, 0x7b, 0xdf, 0x52, 0x55, 0x3d, 0xec, 0x69, + 0x51, 0x02, 0xff, 0x55, 0x9d, 0x73, 0xee, 0xb9, 0xf7, 0xdd, 0xf5, 0xdc, 0x73, 0xce, 0x3d, 0x07, + 0x5e, 0xd9, 0x7d, 0x29, 0x9c, 0x73, 0xfd, 0xf9, 0xdd, 0xf6, 0x26, 0x09, 0x3c, 0x12, 0x91, 0x70, + 0x7e, 0x8f, 0x78, 0x75, 0x3f, 0x98, 0x17, 0x08, 0xa7, 0xe5, 0xce, 0xd7, 0xfc, 0x80, 0xcc, 0xef, + 0x5d, 0x9e, 0xdf, 0x26, 0x1e, 0x09, 0x9c, 0x88, 0xd4, 0xe7, 0x5a, 0x81, 0x1f, 0xf9, 0x08, 0x71, + 0x9a, 0x39, 0xa7, 0xe5, 0xce, 0x51, 0x9a, 0xb9, 0xbd, 0xcb, 0x33, 0xcf, 0x6e, 0xbb, 0xd1, 0x4e, + 0x7b, 0x73, 0xae, 0xe6, 0x37, 0xe7, 0xb7, 0xfd, 0x6d, 0x7f, 0x9e, 0x91, 0x6e, 0xb6, 0xb7, 0xd8, + 0x3f, 0xf6, 0x87, 0xfd, 0xe2, 0x2c, 0x66, 0x5e, 0x88, 0xab, 0x69, 0x3a, 0xb5, 0x1d, 0xd7, 0x23, + 0xc1, 0xfe, 0x7c, 0x6b, 0x77, 0x9b, 0xd5, 0x1b, 0x90, 0xd0, 0x6f, 0x07, 0x35, 0x92, 0xac, 0xb8, + 0x63, 0xa9, 0x70, 0xbe, 0x49, 0x22, 0x27, 0xa3, 0xb9, 0x33, 0xf3, 0x79, 0xa5, 0x82, 0xb6, 0x17, + 0xb9, 0xcd, 0x74, 0x35, 0xef, 0xef, 0x56, 0x20, 0xac, 0xed, 0x90, 0xa6, 0x93, 0x2a, 0xf7, 0x7c, + 0x5e, 0xb9, 0x76, 0xe4, 0x36, 0xe6, 0x5d, 0x2f, 0x0a, 0xa3, 0x20, 0x59, 0xc8, 0xfe, 0x86, 0x05, + 0x17, 0x16, 0x6e, 0x57, 0x57, 0x1a, 0x4e, 0x18, 0xb9, 0xb5, 0xc5, 0x86, 0x5f, 0xdb, 0xad, 0x46, + 0x7e, 0x40, 0x6e, 0xf9, 0x8d, 0x76, 0x93, 0x54, 0x59, 0x47, 0xa0, 0x67, 0x60, 0x68, 0x8f, 0xfd, + 0x2f, 0x2f, 0x4f, 0x5b, 0x17, 0xac, 0x4b, 0xa5, 0xc5, 0x89, 0xdf, 0x38, 0x98, 0x7d, 0xcf, 0xbd, + 0x83, 0xd9, 0xa1, 0x5b, 0x02, 0x8e, 0x15, 0x05, 0xba, 0x08, 0x03, 0x5b, 0xe1, 0xc6, 0x7e, 0x8b, + 0x4c, 0x17, 0x18, 0xed, 0x98, 0xa0, 0x1d, 0x58, 0xad, 0x52, 0x28, 0x16, 0x58, 0x34, 0x0f, 0xa5, + 0x96, 0x13, 0x44, 0x6e, 0xe4, 0xfa, 0xde, 0x74, 0xf1, 0x82, 0x75, 0xa9, 0x7f, 0x71, 0x52, 0x90, + 0x96, 0x2a, 0x12, 0x81, 0x63, 0x1a, 0xda, 0x8c, 0x80, 0x38, 0xf5, 0x1b, 0x5e, 0x63, 0x7f, 0xba, + 0xef, 0x82, 0x75, 0x69, 0x28, 0x6e, 0x06, 0x16, 0x70, 0xac, 0x28, 0xec, 0x2f, 0x15, 0x60, 0x68, + 0x61, 0x6b, 0xcb, 0xf5, 0xdc, 0x68, 0x1f, 0xdd, 0x82, 0x11, 0xcf, 0xaf, 0x13, 0xf9, 0x9f, 0x7d, + 0xc5, 0xf0, 0x73, 0x17, 0xe6, 0xd2, 0x53, 0x69, 0x6e, 0x5d, 0xa3, 0x5b, 0x9c, 0xb8, 0x77, 0x30, + 0x3b, 0xa2, 0x43, 0xb0, 0xc1, 0x07, 0x61, 0x18, 0x6e, 0xf9, 0x75, 0xc5, 0xb6, 0xc0, 0xd8, 0xce, + 0x66, 0xb1, 0xad, 0xc4, 0x64, 0x8b, 0xe3, 0xf7, 0x0e, 0x66, 0x87, 0x35, 0x00, 0xd6, 0x99, 0xa0, + 0x4d, 0x18, 0xa7, 0x7f, 0xbd, 0xc8, 0x55, 0x7c, 0x8b, 0x8c, 0xef, 0x63, 0x79, 0x7c, 0x35, 0xd2, + 0xc5, 0xa9, 0x7b, 0x07, 0xb3, 0xe3, 0x09, 0x20, 0x4e, 0x32, 0xb4, 0xdf, 0x82, 0xb1, 0x85, 0x28, + 0x72, 0x6a, 0x3b, 0xa4, 0xce, 0x47, 0x10, 0xbd, 0x00, 0x7d, 0x9e, 0xd3, 0x24, 0x62, 0x7c, 0x2f, + 0x88, 0x8e, 0xed, 0x5b, 0x77, 0x9a, 0xe4, 0xf0, 0x60, 0x76, 0xe2, 0xa6, 0xe7, 0xbe, 0xd9, 0x16, + 0xb3, 0x82, 0xc2, 0x30, 0xa3, 0x46, 0xcf, 0x01, 0xd4, 0xc9, 0x9e, 0x5b, 0x23, 0x15, 0x27, 0xda, + 0x11, 0xe3, 0x8d, 0x44, 0x59, 0x58, 0x56, 0x18, 0xac, 0x51, 0xd9, 0x77, 0xa1, 0xb4, 0xb0, 0xe7, + 0xbb, 0xf5, 0x8a, 0x5f, 0x0f, 0xd1, 0x2e, 0x8c, 0xb7, 0x02, 0xb2, 0x45, 0x02, 0x05, 0x9a, 0xb6, + 0x2e, 0x14, 0x2f, 0x0d, 0x3f, 0x77, 0x29, 0xf3, 0x63, 0x4d, 0xd2, 0x15, 0x2f, 0x0a, 0xf6, 0x17, + 0x1f, 0x12, 0xf5, 0x8d, 0x27, 0xb0, 0x38, 0xc9, 0xd9, 0xfe, 0xc7, 0x05, 0x38, 0xbd, 0xf0, 0x56, + 0x3b, 0x20, 0xcb, 0x6e, 0xb8, 0x9b, 0x9c, 0xe1, 0x75, 0x37, 0xdc, 0x5d, 0x8f, 0x7b, 0x40, 0x4d, + 0xad, 0x65, 0x01, 0xc7, 0x8a, 0x02, 0x3d, 0x0b, 0x83, 0xf4, 0xf7, 0x4d, 0x5c, 0x16, 0x9f, 0x3c, + 0x25, 0x88, 0x87, 0x97, 0x9d, 0xc8, 0x59, 0xe6, 0x28, 0x2c, 0x69, 0xd0, 0x1a, 0x0c, 0xd7, 0xd8, + 0x82, 0xdc, 0x5e, 0xf3, 0xeb, 0x84, 0x0d, 0x66, 0x69, 0xf1, 0x69, 0x4a, 0xbe, 0x14, 0x83, 0x0f, + 0x0f, 0x66, 0xa7, 0x79, 0xdb, 0x04, 0x0b, 0x0d, 0x87, 0xf5, 0xf2, 0xc8, 0x56, 0xeb, 0xab, 0x8f, + 0x71, 0x82, 0x8c, 0xb5, 0x75, 0x49, 0x5b, 0x2a, 0xfd, 0x6c, 0xa9, 0x8c, 0x64, 0x2f, 0x13, 0x74, + 0x19, 0xfa, 0x76, 0x5d, 0xaf, 0x3e, 0x3d, 0xc0, 0x78, 0x9d, 0xa3, 0x63, 0x7e, 0xcd, 0xf5, 0xea, + 0x87, 0x07, 0xb3, 0x93, 0x46, 0x73, 0x28, 0x10, 0x33, 0x52, 0xfb, 0xbf, 0x58, 0x30, 0xcb, 0x70, + 0xab, 0x6e, 0x83, 0x54, 0x48, 0x10, 0xba, 0x61, 0x44, 0xbc, 0xc8, 0xe8, 0xd0, 0xe7, 0x00, 0x42, + 0x52, 0x0b, 0x48, 0xa4, 0x75, 0xa9, 0x9a, 0x18, 0x55, 0x85, 0xc1, 0x1a, 0x15, 0xdd, 0x10, 0xc2, + 0x1d, 0x27, 0x60, 0xf3, 0x4b, 0x74, 0xac, 0xda, 0x10, 0xaa, 0x12, 0x81, 0x63, 0x1a, 0x63, 0x43, + 0x28, 0x76, 0xdb, 0x10, 0xd0, 0x87, 0x61, 0x3c, 0xae, 0x2c, 0x6c, 0x39, 0x35, 0xd9, 0x81, 0x6c, + 0xc9, 0x54, 0x4d, 0x14, 0x4e, 0xd2, 0xda, 0x7f, 0xcd, 0x12, 0x93, 0x87, 0x7e, 0xf5, 0x3b, 0xfc, + 0x5b, 0xed, 0x5f, 0xb2, 0x60, 0x70, 0xd1, 0xf5, 0xea, 0xae, 0xb7, 0x8d, 0x3e, 0x0d, 0x43, 0xf4, + 0x6c, 0xaa, 0x3b, 0x91, 0x23, 0xf6, 0xbd, 0xf7, 0x69, 0x6b, 0x4b, 0x1d, 0x15, 0x73, 0xad, 0xdd, + 0x6d, 0x0a, 0x08, 0xe7, 0x28, 0x35, 0x5d, 0x6d, 0x37, 0x36, 0x3f, 0x43, 0x6a, 0xd1, 0x1a, 0x89, + 0x9c, 0xf8, 0x73, 0x62, 0x18, 0x56, 0x5c, 0xd1, 0x35, 0x18, 0x88, 0x9c, 0x60, 0x9b, 0x44, 0x62, + 0x03, 0xcc, 0xdc, 0xa8, 0x78, 0x49, 0x4c, 0x57, 0x24, 0xf1, 0x6a, 0x24, 0x3e, 0x16, 0x36, 0x58, + 0x51, 0x2c, 0x58, 0xd8, 0xff, 0x6b, 0x10, 0xce, 0x2e, 0x55, 0xcb, 0x39, 0xf3, 0xea, 0x22, 0x0c, + 0xd4, 0x03, 0x77, 0x8f, 0x04, 0xa2, 0x9f, 0x15, 0x97, 0x65, 0x06, 0xc5, 0x02, 0x8b, 0x5e, 0x82, + 0x11, 0x7e, 0x20, 0x5d, 0x75, 0xbc, 0x7a, 0x43, 0x76, 0xf1, 0x29, 0x41, 0x3d, 0x72, 0x4b, 0xc3, + 0x61, 0x83, 0xf2, 0x88, 0x93, 0xea, 0x62, 0x62, 0x31, 0xe6, 0x1d, 0x76, 0x5f, 0xb0, 0x60, 0x82, + 0x57, 0xb3, 0x10, 0x45, 0x81, 0xbb, 0xd9, 0x8e, 0x48, 0x38, 0xdd, 0xcf, 0x76, 0xba, 0xa5, 0xac, + 0xde, 0xca, 0xed, 0x81, 0xb9, 0x5b, 0x09, 0x2e, 0x7c, 0x13, 0x9c, 0x16, 0xf5, 0x4e, 0x24, 0xd1, + 0x38, 0x55, 0x2d, 0xfa, 0x1e, 0x0b, 0x66, 0x6a, 0xbe, 0x17, 0x05, 0x7e, 0xa3, 0x41, 0x82, 0x4a, + 0x7b, 0xb3, 0xe1, 0x86, 0x3b, 0x7c, 0x9e, 0x62, 0xb2, 0xc5, 0x76, 0x82, 0x9c, 0x31, 0x54, 0x44, + 0x62, 0x0c, 0xcf, 0xdf, 0x3b, 0x98, 0x9d, 0x59, 0xca, 0x65, 0x85, 0x3b, 0x54, 0x83, 0x76, 0x01, + 0xd1, 0xa3, 0xb4, 0x1a, 0x39, 0xdb, 0x24, 0xae, 0x7c, 0xb0, 0xf7, 0xca, 0xcf, 0xdc, 0x3b, 0x98, + 0x45, 0xeb, 0x29, 0x16, 0x38, 0x83, 0x2d, 0x7a, 0x13, 0x4e, 0x51, 0x68, 0xea, 0x5b, 0x87, 0x7a, + 0xaf, 0x6e, 0xfa, 0xde, 0xc1, 0xec, 0xa9, 0xf5, 0x0c, 0x26, 0x38, 0x93, 0x35, 0xfa, 0x6e, 0x0b, + 0xce, 0xc6, 0x9f, 0xbf, 0x72, 0xb7, 0xe5, 0x78, 0xf5, 0xb8, 0xe2, 0x52, 0xef, 0x15, 0xd3, 0x3d, + 0xf9, 0xec, 0x52, 0x1e, 0x27, 0x9c, 0x5f, 0x09, 0xf2, 0x60, 0x8a, 0x36, 0x2d, 0x59, 0x37, 0xf4, + 0x5e, 0xf7, 0x43, 0xf7, 0x0e, 0x66, 0xa7, 0xd6, 0xd3, 0x3c, 0x70, 0x16, 0xe3, 0x99, 0x25, 0x38, + 0x9d, 0x39, 0x3b, 0xd1, 0x04, 0x14, 0x77, 0x09, 0x97, 0xba, 0x4a, 0x98, 0xfe, 0x44, 0xa7, 0xa0, + 0x7f, 0xcf, 0x69, 0xb4, 0xc5, 0xc2, 0xc4, 0xfc, 0xcf, 0xcb, 0x85, 0x97, 0x2c, 0xfb, 0x9f, 0x14, + 0x61, 0x7c, 0xa9, 0x5a, 0xbe, 0xaf, 0x55, 0xaf, 0x1f, 0x7b, 0x85, 0x8e, 0xc7, 0x5e, 0x7c, 0x88, + 0x16, 0x73, 0x0f, 0xd1, 0xff, 0x3b, 0x63, 0xc9, 0xf6, 0xb1, 0x25, 0xfb, 0xc1, 0x9c, 0x25, 0x7b, + 0xcc, 0x0b, 0x75, 0x2f, 0x67, 0xd6, 0xf6, 0xb3, 0x01, 0xcc, 0x94, 0x90, 0xae, 0xfb, 0x35, 0xa7, + 0x91, 0xdc, 0x6a, 0x8f, 0x38, 0x75, 0x8f, 0x67, 0x1c, 0x6b, 0x30, 0xb2, 0xe4, 0xb4, 0x9c, 0x4d, + 0xb7, 0xe1, 0x46, 0x2e, 0x09, 0xd1, 0x93, 0x50, 0x74, 0xea, 0x75, 0x26, 0xdd, 0x95, 0x16, 0x4f, + 0xdf, 0x3b, 0x98, 0x2d, 0x2e, 0xd4, 0xa9, 0x98, 0x01, 0x8a, 0x6a, 0x1f, 0x53, 0x0a, 0xf4, 0x5e, + 0xe8, 0xab, 0x07, 0x7e, 0x6b, 0xba, 0xc0, 0x28, 0xe9, 0x2a, 0xef, 0x5b, 0x0e, 0xfc, 0x56, 0x82, + 0x94, 0xd1, 0xd8, 0xbf, 0x5e, 0x80, 0x47, 0x96, 0x48, 0x6b, 0x67, 0xb5, 0x9a, 0x73, 0x5e, 0x5c, + 0x82, 0xa1, 0xa6, 0xef, 0xb9, 0x91, 0x1f, 0x84, 0xa2, 0x6a, 0x36, 0x23, 0xd6, 0x04, 0x0c, 0x2b, + 0x2c, 0xba, 0x00, 0x7d, 0xad, 0x58, 0x88, 0x1d, 0x91, 0x02, 0x30, 0x13, 0x5f, 0x19, 0x86, 0x52, + 0xb4, 0x43, 0x12, 0x88, 0x19, 0xa3, 0x28, 0x6e, 0x86, 0x24, 0xc0, 0x0c, 0x13, 0x4b, 0x02, 0x54, + 0x46, 0x10, 0x27, 0x42, 0x42, 0x12, 0xa0, 0x18, 0xac, 0x51, 0xa1, 0x0a, 0x94, 0xc2, 0xc4, 0xc8, + 0xf6, 0xb4, 0x34, 0x47, 0x99, 0xa8, 0xa0, 0x46, 0x32, 0x66, 0x62, 0x9c, 0x60, 0x03, 0x5d, 0x45, + 0x85, 0xaf, 0x17, 0x00, 0xf1, 0x2e, 0xfc, 0x36, 0xeb, 0xb8, 0x9b, 0xe9, 0x8e, 0xeb, 0x7d, 0x49, + 0x1c, 0x57, 0xef, 0xfd, 0x57, 0x0b, 0x1e, 0x59, 0x72, 0xbd, 0x3a, 0x09, 0x72, 0x26, 0xe0, 0x83, + 0xb9, 0x3b, 0x1f, 0x4d, 0x48, 0x31, 0xa6, 0x58, 0xdf, 0x31, 0x4c, 0x31, 0xfb, 0x4f, 0x2c, 0x40, + 0xfc, 0xb3, 0xdf, 0x71, 0x1f, 0x7b, 0x33, 0xfd, 0xb1, 0xc7, 0x30, 0x2d, 0xec, 0xbf, 0x65, 0xc1, + 0xf0, 0x52, 0xc3, 0x71, 0x9b, 0xe2, 0x53, 0x97, 0x60, 0x52, 0x2a, 0x8a, 0x18, 0x58, 0x93, 0xfd, + 0xe9, 0xe6, 0x36, 0x89, 0x93, 0x48, 0x9c, 0xa6, 0x47, 0x9f, 0x80, 0xb3, 0x06, 0x70, 0x83, 0x34, + 0x5b, 0x0d, 0x27, 0xd2, 0x6f, 0x05, 0xec, 0xf4, 0xc7, 0x79, 0x44, 0x38, 0xbf, 0xbc, 0x7d, 0x1d, + 0xc6, 0x96, 0x1a, 0x2e, 0xf1, 0xa2, 0x72, 0x65, 0xc9, 0xf7, 0xb6, 0xdc, 0x6d, 0xf4, 0x32, 0x8c, + 0x45, 0x6e, 0x93, 0xf8, 0xed, 0xa8, 0x4a, 0x6a, 0xbe, 0xc7, 0xee, 0xda, 0xd6, 0xa5, 0xfe, 0x45, + 0x74, 0xef, 0x60, 0x76, 0x6c, 0xc3, 0xc0, 0xe0, 0x04, 0xa5, 0xfd, 0x7b, 0x74, 0xc4, 0xfd, 0x66, + 0xcb, 0xf7, 0x88, 0x17, 0x2d, 0xf9, 0x5e, 0x9d, 0xeb, 0x64, 0x5e, 0x86, 0xbe, 0x88, 0x8e, 0x20, + 0xff, 0xf2, 0x8b, 0x72, 0x69, 0xd3, 0x71, 0x3b, 0x3c, 0x98, 0x3d, 0x93, 0x2e, 0xc1, 0x46, 0x96, + 0x95, 0x41, 0x1f, 0x84, 0x81, 0x30, 0x72, 0xa2, 0x76, 0x28, 0x3e, 0xf5, 0x51, 0x39, 0xfe, 0x55, + 0x06, 0x3d, 0x3c, 0x98, 0x1d, 0x57, 0xc5, 0x38, 0x08, 0x8b, 0x02, 0xe8, 0x29, 0x18, 0x6c, 0x92, + 0x30, 0x74, 0xb6, 0xe5, 0xf9, 0x3d, 0x2e, 0xca, 0x0e, 0xae, 0x71, 0x30, 0x96, 0x78, 0xf4, 0x18, + 0xf4, 0x93, 0x20, 0xf0, 0x03, 0xb1, 0xab, 0x8c, 0x0a, 0xc2, 0xfe, 0x15, 0x0a, 0xc4, 0x1c, 0x67, + 0xff, 0x2b, 0x0b, 0xc6, 0x55, 0x5b, 0x79, 0x5d, 0x27, 0x70, 0x6f, 0xfa, 0x38, 0x40, 0x4d, 0x7e, + 0x60, 0xc8, 0xce, 0xbb, 0xe1, 0xe7, 0x2e, 0x66, 0x8a, 0x16, 0xa9, 0x6e, 0x8c, 0x39, 0x2b, 0x50, + 0x88, 0x35, 0x6e, 0xf6, 0xdf, 0xb7, 0x60, 0x2a, 0xf1, 0x45, 0xd7, 0xdd, 0x30, 0x42, 0x6f, 0xa4, + 0xbe, 0x6a, 0xae, 0xb7, 0xaf, 0xa2, 0xa5, 0xd9, 0x37, 0xa9, 0xc5, 0x27, 0x21, 0xda, 0x17, 0x5d, + 0x85, 0x7e, 0x37, 0x22, 0x4d, 0xf9, 0x31, 0x8f, 0x75, 0xfc, 0x18, 0xde, 0xaa, 0x78, 0x44, 0xca, + 0xb4, 0x24, 0xe6, 0x0c, 0xec, 0x5f, 0x2f, 0x42, 0x89, 0x4f, 0xdb, 0x35, 0xa7, 0x75, 0x02, 0x63, + 0xf1, 0x34, 0x94, 0xdc, 0x66, 0xb3, 0x1d, 0x39, 0x9b, 0xe2, 0x00, 0x1a, 0xe2, 0x9b, 0x41, 0x59, + 0x02, 0x71, 0x8c, 0x47, 0x65, 0xe8, 0x63, 0x4d, 0xe1, 0x5f, 0xf9, 0x64, 0xf6, 0x57, 0x8a, 0xb6, + 0xcf, 0x2d, 0x3b, 0x91, 0xc3, 0x65, 0x3f, 0x75, 0xf2, 0x51, 0x10, 0x66, 0x2c, 0x90, 0x03, 0xb0, + 0xe9, 0x7a, 0x4e, 0xb0, 0x4f, 0x61, 0xd3, 0x45, 0xc6, 0xf0, 0xd9, 0xce, 0x0c, 0x17, 0x15, 0x3d, + 0x67, 0xab, 0x3e, 0x2c, 0x46, 0x60, 0x8d, 0xe9, 0xcc, 0x07, 0xa0, 0xa4, 0x88, 0x8f, 0x22, 0xc2, + 0xcd, 0x7c, 0x18, 0xc6, 0x13, 0x75, 0x75, 0x2b, 0x3e, 0xa2, 0x4b, 0x80, 0xbf, 0xcc, 0xb6, 0x0c, + 0xd1, 0xea, 0x15, 0x6f, 0x4f, 0xec, 0x9c, 0x6f, 0xc1, 0xa9, 0x46, 0xc6, 0xde, 0x2b, 0xc6, 0xb5, + 0xf7, 0xbd, 0xfa, 0x11, 0xf1, 0xd9, 0xa7, 0xb2, 0xb0, 0x38, 0xb3, 0x0e, 0x2a, 0xd5, 0xf8, 0x2d, + 0xba, 0x40, 0x9c, 0x86, 0x7e, 0x41, 0xb8, 0x21, 0x60, 0x58, 0x61, 0xe9, 0x7e, 0x77, 0x4a, 0x35, + 0xfe, 0x1a, 0xd9, 0xaf, 0x92, 0x06, 0xa9, 0x45, 0x7e, 0xf0, 0x2d, 0x6d, 0xfe, 0x39, 0xde, 0xfb, + 0x7c, 0xbb, 0x1c, 0x16, 0x0c, 0x8a, 0xd7, 0xc8, 0x3e, 0x1f, 0x0a, 0xfd, 0xeb, 0x8a, 0x1d, 0xbf, + 0xee, 0xab, 0x16, 0x8c, 0xaa, 0xaf, 0x3b, 0x81, 0x7d, 0x61, 0xd1, 0xdc, 0x17, 0xce, 0x75, 0x9c, + 0xe0, 0x39, 0x3b, 0xc2, 0xd7, 0x0b, 0x70, 0x56, 0xd1, 0xd0, 0xdb, 0x0c, 0xff, 0x23, 0x66, 0xd5, + 0x3c, 0x94, 0x3c, 0xa5, 0xd7, 0xb3, 0x4c, 0x85, 0x5a, 0xac, 0xd5, 0x8b, 0x69, 0xa8, 0x50, 0xea, + 0xc5, 0xc7, 0xec, 0x88, 0xae, 0xf0, 0x16, 0xca, 0xed, 0x45, 0x28, 0xb6, 0xdd, 0xba, 0x38, 0x60, + 0xde, 0x27, 0x7b, 0xfb, 0x66, 0x79, 0xf9, 0xf0, 0x60, 0xf6, 0xd1, 0x3c, 0x63, 0x0b, 0x3d, 0xd9, + 0xc2, 0xb9, 0x9b, 0xe5, 0x65, 0x4c, 0x0b, 0xa3, 0x05, 0x18, 0x97, 0x27, 0xf4, 0x2d, 0x2a, 0x20, + 0xfa, 0x9e, 0x38, 0x87, 0x94, 0xd6, 0x1a, 0x9b, 0x68, 0x9c, 0xa4, 0x47, 0xcb, 0x30, 0xb1, 0xdb, + 0xde, 0x24, 0x0d, 0x12, 0xf1, 0x0f, 0xbe, 0x46, 0xb8, 0x4e, 0xb7, 0x14, 0xdf, 0x25, 0xaf, 0x25, + 0xf0, 0x38, 0x55, 0xc2, 0xfe, 0x73, 0x76, 0x1e, 0x88, 0xde, 0xab, 0x04, 0x3e, 0x9d, 0x58, 0x94, + 0xfb, 0xb7, 0x72, 0x3a, 0xf7, 0x32, 0x2b, 0xae, 0x91, 0xfd, 0x0d, 0x9f, 0xde, 0x25, 0xb2, 0x67, + 0x85, 0x31, 0xe7, 0xfb, 0x3a, 0xce, 0xf9, 0x9f, 0x2f, 0xc0, 0x69, 0xd5, 0x03, 0x86, 0xd8, 0xfa, + 0xed, 0xde, 0x07, 0x97, 0x61, 0xb8, 0x4e, 0xb6, 0x9c, 0x76, 0x23, 0x52, 0x06, 0x86, 0x7e, 0x6e, + 0x64, 0x5a, 0x8e, 0xc1, 0x58, 0xa7, 0x39, 0x42, 0xb7, 0xfd, 0xb7, 0x61, 0x76, 0x10, 0x47, 0x0e, + 0x9d, 0xe3, 0x6a, 0xd5, 0x58, 0xb9, 0xab, 0xe6, 0x31, 0xe8, 0x77, 0x9b, 0x54, 0x30, 0x2b, 0x98, + 0xf2, 0x56, 0x99, 0x02, 0x31, 0xc7, 0xa1, 0x27, 0x60, 0xb0, 0xe6, 0x37, 0x9b, 0x8e, 0x57, 0x67, + 0x47, 0x5e, 0x69, 0x71, 0x98, 0xca, 0x6e, 0x4b, 0x1c, 0x84, 0x25, 0x0e, 0x3d, 0x02, 0x7d, 0x4e, + 0xb0, 0xcd, 0xb5, 0x2e, 0xa5, 0xc5, 0x21, 0x5a, 0xd3, 0x42, 0xb0, 0x1d, 0x62, 0x06, 0xa5, 0x97, + 0xc6, 0x3b, 0x7e, 0xb0, 0xeb, 0x7a, 0xdb, 0xcb, 0x6e, 0x20, 0x96, 0x84, 0x3a, 0x0b, 0x6f, 0x2b, + 0x0c, 0xd6, 0xa8, 0xd0, 0x2a, 0xf4, 0xb7, 0xfc, 0x20, 0x0a, 0xa7, 0x07, 0x58, 0x77, 0x3f, 0x9a, + 0xb3, 0x11, 0xf1, 0xaf, 0xad, 0xf8, 0x41, 0x14, 0x7f, 0x00, 0xfd, 0x17, 0x62, 0x5e, 0x1c, 0x5d, + 0x87, 0x41, 0xe2, 0xed, 0xad, 0x06, 0x7e, 0x73, 0x7a, 0x2a, 0x9f, 0xd3, 0x0a, 0x27, 0xe1, 0xd3, + 0x2c, 0x96, 0x51, 0x05, 0x18, 0x4b, 0x16, 0xe8, 0x83, 0x50, 0x24, 0xde, 0xde, 0xf4, 0x20, 0xe3, + 0x34, 0x93, 0xc3, 0xe9, 0x96, 0x13, 0xc4, 0x7b, 0xfe, 0x8a, 0xb7, 0x87, 0x69, 0x19, 0xf4, 0x31, + 0x28, 0xc9, 0x0d, 0x23, 0x14, 0xea, 0xcc, 0xcc, 0x09, 0x2b, 0xb7, 0x19, 0x4c, 0xde, 0x6c, 0xbb, + 0x01, 0x69, 0x12, 0x2f, 0x0a, 0xe3, 0x1d, 0x52, 0x62, 0x43, 0x1c, 0x73, 0x43, 0x1f, 0x93, 0x3a, + 0xf4, 0x35, 0xbf, 0xed, 0x45, 0xe1, 0x74, 0x89, 0x35, 0x2f, 0xd3, 0xba, 0x79, 0x2b, 0xa6, 0x4b, + 0x2a, 0xd9, 0x79, 0x61, 0x6c, 0xb0, 0x42, 0x9f, 0x84, 0x51, 0xfe, 0x9f, 0xdb, 0x08, 0xc3, 0xe9, + 0xd3, 0x8c, 0xf7, 0x85, 0x7c, 0xde, 0x9c, 0x70, 0xf1, 0xb4, 0x60, 0x3e, 0xaa, 0x43, 0x43, 0x6c, + 0x72, 0x43, 0x18, 0x46, 0x1b, 0xee, 0x1e, 0xf1, 0x48, 0x18, 0x56, 0x02, 0x7f, 0x93, 0x08, 0x95, + 0xe7, 0xd9, 0x6c, 0x9b, 0xa2, 0xbf, 0x49, 0x16, 0x27, 0x29, 0xcf, 0xeb, 0x7a, 0x19, 0x6c, 0xb2, + 0x40, 0x37, 0x61, 0x8c, 0xde, 0x31, 0xdd, 0x98, 0xe9, 0x70, 0x37, 0xa6, 0xec, 0x5e, 0x85, 0x8d, + 0x42, 0x38, 0xc1, 0x04, 0xdd, 0x80, 0x91, 0x30, 0x72, 0x82, 0xa8, 0xdd, 0xe2, 0x4c, 0xcf, 0x74, + 0x63, 0xca, 0x4c, 0xd2, 0x55, 0xad, 0x08, 0x36, 0x18, 0xa0, 0xd7, 0xa0, 0xd4, 0x70, 0xb7, 0x48, + 0x6d, 0xbf, 0xd6, 0x20, 0xd3, 0x23, 0x8c, 0x5b, 0xe6, 0xa6, 0x72, 0x5d, 0x12, 0x71, 0x39, 0x57, + 0xfd, 0xc5, 0x71, 0x71, 0x74, 0x0b, 0xce, 0x44, 0x24, 0x68, 0xba, 0x9e, 0x43, 0x37, 0x03, 0x71, + 0xb5, 0x62, 0xa6, 0xde, 0x51, 0xb6, 0xda, 0xce, 0x8b, 0xd1, 0x38, 0xb3, 0x91, 0x49, 0x85, 0x73, + 0x4a, 0xa3, 0xbb, 0x30, 0x9d, 0x81, 0xf1, 0x1b, 0x6e, 0x6d, 0x7f, 0xfa, 0x14, 0xe3, 0xfc, 0x21, + 0xc1, 0x79, 0x7a, 0x23, 0x87, 0xee, 0xb0, 0x03, 0x0e, 0xe7, 0x72, 0x47, 0x37, 0x60, 0x9c, 0xed, + 0x40, 0x95, 0x76, 0xa3, 0x21, 0x2a, 0x1c, 0x63, 0x15, 0x3e, 0x21, 0xcf, 0xe3, 0xb2, 0x89, 0x3e, + 0x3c, 0x98, 0x85, 0xf8, 0x1f, 0x4e, 0x96, 0x46, 0x9b, 0xcc, 0xaa, 0xd8, 0x0e, 0xdc, 0x68, 0x9f, + 0xee, 0x1b, 0xe4, 0x6e, 0x34, 0x3d, 0xde, 0x51, 0xc3, 0xa2, 0x93, 0x2a, 0xd3, 0xa3, 0x0e, 0xc4, + 0x49, 0x86, 0x74, 0x4b, 0x0d, 0xa3, 0xba, 0xeb, 0x4d, 0x4f, 0xf0, 0x7b, 0x89, 0xdc, 0x91, 0xaa, + 0x14, 0x88, 0x39, 0x8e, 0x59, 0x14, 0xe9, 0x8f, 0x1b, 0xf4, 0xe4, 0x9a, 0x64, 0x84, 0xb1, 0x45, + 0x51, 0x22, 0x70, 0x4c, 0x43, 0x85, 0xc9, 0x28, 0xda, 0x9f, 0x46, 0x8c, 0x54, 0x6d, 0x2c, 0x1b, + 0x1b, 0x1f, 0xc3, 0x14, 0x6e, 0x6f, 0xc2, 0x98, 0xda, 0x08, 0x59, 0x9f, 0xa0, 0x59, 0xe8, 0x67, + 0xe2, 0x93, 0xd0, 0x07, 0x96, 0x68, 0x13, 0x98, 0x68, 0x85, 0x39, 0x9c, 0x35, 0xc1, 0x7d, 0x8b, + 0x2c, 0xee, 0x47, 0x84, 0xdf, 0xe9, 0x8b, 0x5a, 0x13, 0x24, 0x02, 0xc7, 0x34, 0xf6, 0xff, 0xe6, + 0x62, 0x68, 0xbc, 0xdb, 0xf6, 0x70, 0xbe, 0x3c, 0x03, 0x43, 0x3b, 0x7e, 0x18, 0x51, 0x6a, 0x56, + 0x47, 0x7f, 0x2c, 0x78, 0x5e, 0x15, 0x70, 0xac, 0x28, 0xd0, 0x2b, 0x30, 0x5a, 0xd3, 0x2b, 0x10, + 0x87, 0xa3, 0xda, 0x46, 0x8c, 0xda, 0xb1, 0x49, 0x8b, 0x5e, 0x82, 0x21, 0xe6, 0x25, 0x53, 0xf3, + 0x1b, 0x42, 0x6a, 0x93, 0x27, 0xfc, 0x50, 0x45, 0xc0, 0x0f, 0xb5, 0xdf, 0x58, 0x51, 0xa3, 0x8b, + 0x30, 0x40, 0x9b, 0x50, 0xae, 0x88, 0x63, 0x49, 0xa9, 0xb6, 0xae, 0x32, 0x28, 0x16, 0x58, 0xfb, + 0xff, 0x2f, 0x68, 0xbd, 0x4c, 0xef, 0xc3, 0x04, 0x55, 0x60, 0xf0, 0x8e, 0xe3, 0x46, 0xae, 0xb7, + 0x2d, 0xe4, 0x8f, 0xa7, 0x3a, 0x9e, 0x51, 0xac, 0xd0, 0x6d, 0x5e, 0x80, 0x9f, 0xa2, 0xe2, 0x0f, + 0x96, 0x6c, 0x28, 0xc7, 0xa0, 0xed, 0x79, 0x94, 0x63, 0xa1, 0x57, 0x8e, 0x98, 0x17, 0xe0, 0x1c, + 0xc5, 0x1f, 0x2c, 0xd9, 0xa0, 0x37, 0x00, 0xe4, 0x0a, 0x23, 0x75, 0xe1, 0x9d, 0xf2, 0x4c, 0x77, + 0xa6, 0x1b, 0xaa, 0xcc, 0xe2, 0x18, 0x3d, 0xa3, 0xe3, 0xff, 0x58, 0xe3, 0x67, 0x47, 0x4c, 0x4e, + 0x4b, 0x37, 0x06, 0x7d, 0x82, 0x4e, 0x71, 0x27, 0x88, 0x48, 0x7d, 0x21, 0x12, 0x9d, 0xf3, 0xde, + 0xde, 0x2e, 0x29, 0x1b, 0x6e, 0x93, 0xe8, 0xcb, 0x41, 0x30, 0xc1, 0x31, 0x3f, 0xfb, 0x17, 0x8b, + 0x30, 0x9d, 0xd7, 0x5c, 0x3a, 0xe9, 0xc8, 0x5d, 0x37, 0x5a, 0xa2, 0xe2, 0x95, 0x65, 0x4e, 0xba, + 0x15, 0x01, 0xc7, 0x8a, 0x82, 0x8e, 0x7e, 0xe8, 0x6e, 0xcb, 0x3b, 0x66, 0x7f, 0x3c, 0xfa, 0x55, + 0x06, 0xc5, 0x02, 0x4b, 0xe9, 0x02, 0xe2, 0x84, 0xc2, 0xfd, 0x49, 0x9b, 0x25, 0x98, 0x41, 0xb1, + 0xc0, 0xea, 0xda, 0xae, 0xbe, 0x2e, 0xda, 0x2e, 0xa3, 0x8b, 0xfa, 0x8f, 0xb7, 0x8b, 0xd0, 0xa7, + 0x00, 0xb6, 0x5c, 0xcf, 0x0d, 0x77, 0x18, 0xf7, 0x81, 0x23, 0x73, 0x57, 0xc2, 0xd9, 0xaa, 0xe2, + 0x82, 0x35, 0x8e, 0xe8, 0x45, 0x18, 0x56, 0x0b, 0xb0, 0xbc, 0xcc, 0x6c, 0xc1, 0x9a, 0x6f, 0x4d, + 0xbc, 0x1b, 0x2d, 0x63, 0x9d, 0xce, 0xfe, 0x4c, 0x72, 0xbe, 0x88, 0x15, 0xa0, 0xf5, 0xaf, 0xd5, + 0x6b, 0xff, 0x16, 0x3a, 0xf7, 0xaf, 0xfd, 0xcd, 0x22, 0x8c, 0x1b, 0x95, 0xb5, 0xc3, 0x1e, 0xf6, + 0xac, 0x2b, 0x74, 0x03, 0x77, 0x22, 0x22, 0xd6, 0x9f, 0xdd, 0x7d, 0xa9, 0xe8, 0x9b, 0x3c, 0x5d, + 0x01, 0xbc, 0x3c, 0xfa, 0x14, 0x94, 0x1a, 0x4e, 0xc8, 0x34, 0x67, 0x44, 0xac, 0xbb, 0x5e, 0x98, + 0xc5, 0x17, 0x13, 0x27, 0x8c, 0xb4, 0x53, 0x93, 0xf3, 0x8e, 0x59, 0xd2, 0x93, 0x86, 0xca, 0x27, + 0xd2, 0xbf, 0x4e, 0x35, 0x82, 0x0a, 0x31, 0xfb, 0x98, 0xe3, 0xd0, 0x4b, 0x30, 0x12, 0x10, 0x36, + 0x2b, 0x96, 0xa8, 0x34, 0xc7, 0xa6, 0x59, 0x7f, 0x2c, 0xf6, 0x61, 0x0d, 0x87, 0x0d, 0xca, 0xf8, + 0x6e, 0x30, 0xd0, 0xe1, 0x6e, 0xf0, 0x14, 0x0c, 0xb2, 0x1f, 0x6a, 0x06, 0xa8, 0xd1, 0x28, 0x73, + 0x30, 0x96, 0xf8, 0xe4, 0x84, 0x19, 0xea, 0x6d, 0xc2, 0xd0, 0xdb, 0x87, 0x98, 0xd4, 0xcc, 0x0e, + 0x3f, 0xc4, 0x77, 0x39, 0x31, 0xe5, 0xb1, 0xc4, 0xd9, 0xef, 0x85, 0xb1, 0x65, 0x87, 0x34, 0x7d, + 0x6f, 0xc5, 0xab, 0xb7, 0x7c, 0xd7, 0x8b, 0xd0, 0x34, 0xf4, 0xb1, 0x43, 0x84, 0x6f, 0x01, 0x7d, + 0xb4, 0x22, 0xcc, 0x20, 0xf6, 0x36, 0x9c, 0x5e, 0xf6, 0xef, 0x78, 0x77, 0x9c, 0xa0, 0xbe, 0x50, + 0x29, 0x6b, 0xf7, 0xeb, 0x75, 0x79, 0xbf, 0xe3, 0x6e, 0x6d, 0x99, 0x5b, 0xaf, 0x56, 0x92, 0x8b, + 0xb5, 0xab, 0x6e, 0x83, 0xe4, 0x68, 0x41, 0xfe, 0x52, 0xc1, 0xa8, 0x29, 0xa6, 0x57, 0x76, 0x38, + 0x2b, 0xd7, 0x0e, 0xf7, 0x3a, 0x0c, 0x6d, 0xb9, 0xa4, 0x51, 0xc7, 0x64, 0x4b, 0xcc, 0xc4, 0x27, + 0xf3, 0x3d, 0x75, 0x56, 0x29, 0xa5, 0xd4, 0x7a, 0xf1, 0xdb, 0xe1, 0xaa, 0x28, 0x8c, 0x15, 0x1b, + 0xb4, 0x0b, 0x13, 0xf2, 0xc2, 0x20, 0xb1, 0x62, 0x5e, 0x3e, 0xd5, 0xe9, 0x16, 0x62, 0x32, 0x3f, + 0x75, 0xef, 0x60, 0x76, 0x02, 0x27, 0xd8, 0xe0, 0x14, 0x63, 0x7a, 0x1d, 0x6c, 0xd2, 0x1d, 0xb8, + 0x8f, 0x75, 0x3f, 0xbb, 0x0e, 0xb2, 0x9b, 0x2d, 0x83, 0xda, 0x3f, 0x6e, 0xc1, 0x43, 0xa9, 0x9e, + 0x11, 0x37, 0xfc, 0x63, 0x1e, 0x85, 0xe4, 0x8d, 0xbb, 0xd0, 0xfd, 0xc6, 0x6d, 0xff, 0x75, 0x0b, + 0x4e, 0xad, 0x34, 0x5b, 0xd1, 0xfe, 0xb2, 0x6b, 0x1a, 0xcd, 0x3e, 0x00, 0x03, 0x4d, 0x52, 0x77, + 0xdb, 0x4d, 0x31, 0x72, 0xb3, 0x72, 0x97, 0x5a, 0x63, 0xd0, 0xc3, 0x83, 0xd9, 0xd1, 0x6a, 0xe4, + 0x07, 0xce, 0x36, 0xe1, 0x00, 0x2c, 0xc8, 0xd9, 0x5e, 0xef, 0xbe, 0x45, 0xae, 0xbb, 0x4d, 0x57, + 0x7a, 0x5e, 0x75, 0xd4, 0xd9, 0xcd, 0xc9, 0x0e, 0x9d, 0x7b, 0xbd, 0xed, 0x78, 0x91, 0x1b, 0xed, + 0x0b, 0x7b, 0x97, 0x64, 0x82, 0x63, 0x7e, 0xf6, 0x37, 0x2c, 0x18, 0x97, 0xf3, 0x7e, 0xa1, 0x5e, + 0x0f, 0x48, 0x18, 0xa2, 0x19, 0x28, 0xb8, 0x2d, 0xd1, 0x4a, 0x10, 0xad, 0x2c, 0x94, 0x2b, 0xb8, + 0xe0, 0xb6, 0xa4, 0x58, 0xc6, 0x36, 0xc2, 0xa2, 0x69, 0xfa, 0xbb, 0x2a, 0xe0, 0x58, 0x51, 0xa0, + 0x4b, 0x30, 0xe4, 0xf9, 0x75, 0x6e, 0xe7, 0xe2, 0x47, 0x1a, 0x9b, 0x60, 0xeb, 0x02, 0x86, 0x15, + 0x16, 0x55, 0xa0, 0xc4, 0x1d, 0xc3, 0xe2, 0x49, 0xdb, 0x93, 0x7b, 0x19, 0xfb, 0xb2, 0x0d, 0x59, + 0x12, 0xc7, 0x4c, 0xec, 0x5f, 0xb3, 0x60, 0x44, 0x7e, 0x59, 0x8f, 0x32, 0x27, 0x5d, 0x5a, 0xb1, + 0xbc, 0x19, 0x2f, 0x2d, 0x2a, 0x33, 0x32, 0x8c, 0x21, 0x2a, 0x16, 0x8f, 0x24, 0x2a, 0x5e, 0x86, + 0x61, 0xa7, 0xd5, 0xaa, 0x98, 0x72, 0x26, 0x9b, 0x4a, 0x0b, 0x31, 0x18, 0xeb, 0x34, 0xf6, 0x8f, + 0x15, 0x60, 0x4c, 0x7e, 0x41, 0xb5, 0xbd, 0x19, 0x92, 0x08, 0x6d, 0x40, 0xc9, 0xe1, 0xa3, 0x44, + 0xe4, 0x24, 0x7f, 0x2c, 0x5b, 0x8f, 0x60, 0x0c, 0x69, 0x7c, 0xe0, 0x2f, 0xc8, 0xd2, 0x38, 0x66, + 0x84, 0x1a, 0x30, 0xe9, 0xf9, 0x11, 0xdb, 0xfc, 0x15, 0xbe, 0x93, 0x69, 0x27, 0xc9, 0xfd, 0xac, + 0xe0, 0x3e, 0xb9, 0x9e, 0xe4, 0x82, 0xd3, 0x8c, 0xd1, 0x8a, 0xd4, 0xcd, 0x14, 0xf3, 0x95, 0x01, + 0xfa, 0xc0, 0x65, 0xab, 0x66, 0xec, 0x5f, 0xb1, 0xa0, 0x24, 0xc9, 0x4e, 0xc2, 0x8a, 0xb7, 0x06, + 0x83, 0x21, 0x1b, 0x04, 0xd9, 0x35, 0x76, 0xa7, 0x86, 0xf3, 0xf1, 0x8a, 0xcf, 0x34, 0xfe, 0x3f, + 0xc4, 0x92, 0x07, 0x53, 0xcd, 0xab, 0xe6, 0xbf, 0x43, 0x54, 0xf3, 0xaa, 0x3d, 0x39, 0x87, 0xd2, + 0x1f, 0xb1, 0x36, 0x6b, 0xba, 0x2e, 0x2a, 0x7a, 0xb5, 0x02, 0xb2, 0xe5, 0xde, 0x4d, 0x8a, 0x5e, + 0x15, 0x06, 0xc5, 0x02, 0x8b, 0xde, 0x80, 0x91, 0x9a, 0xd4, 0xc9, 0xc6, 0x2b, 0xfc, 0x62, 0x47, + 0xfb, 0x80, 0x32, 0x25, 0x71, 0x5d, 0xc8, 0x92, 0x56, 0x1e, 0x1b, 0xdc, 0x4c, 0xc7, 0x87, 0x62, + 0x37, 0xc7, 0x87, 0x98, 0x6f, 0xbe, 0x1b, 0xc0, 0x4f, 0x58, 0x30, 0xc0, 0x75, 0x71, 0xbd, 0xa9, + 0x42, 0x35, 0xcb, 0x5a, 0xdc, 0x77, 0xb7, 0x28, 0x50, 0x58, 0xca, 0xd0, 0x1a, 0x94, 0xd8, 0x0f, + 0xa6, 0x4b, 0x2c, 0xe6, 0xbf, 0x4b, 0xe0, 0xb5, 0xea, 0x0d, 0xbc, 0x25, 0x8b, 0xe1, 0x98, 0x83, + 0xfd, 0xa3, 0x45, 0xba, 0xbb, 0xc5, 0xa4, 0xc6, 0xa1, 0x6f, 0x3d, 0xb8, 0x43, 0xbf, 0xf0, 0xa0, + 0x0e, 0xfd, 0x6d, 0x18, 0xaf, 0x69, 0x76, 0xb8, 0x78, 0x24, 0x2f, 0x75, 0x9c, 0x24, 0x9a, 0xc9, + 0x8e, 0x6b, 0x59, 0x96, 0x4c, 0x26, 0x38, 0xc9, 0x15, 0x7d, 0x02, 0x46, 0xf8, 0x38, 0x8b, 0x5a, + 0xb8, 0xef, 0xc8, 0x13, 0xf9, 0xf3, 0x45, 0xaf, 0x82, 0x6b, 0xe5, 0xb4, 0xe2, 0xd8, 0x60, 0x66, + 0xff, 0xa9, 0x05, 0x68, 0xa5, 0xb5, 0x43, 0x9a, 0x24, 0x70, 0x1a, 0xb1, 0x3a, 0xfd, 0x87, 0x2c, + 0x98, 0x26, 0x29, 0xf0, 0x92, 0xdf, 0x6c, 0x8a, 0x4b, 0x4b, 0xce, 0xbd, 0x7a, 0x25, 0xa7, 0x8c, + 0x7a, 0xb8, 0x31, 0x9d, 0x47, 0x81, 0x73, 0xeb, 0x43, 0x6b, 0x30, 0xc5, 0x4f, 0x49, 0x85, 0xd0, + 0xfc, 0x50, 0x1e, 0x16, 0x8c, 0xa7, 0x36, 0xd2, 0x24, 0x38, 0xab, 0x9c, 0xfd, 0xbd, 0x23, 0x90, + 0xdb, 0x8a, 0x77, 0xed, 0x08, 0xef, 0xda, 0x11, 0xde, 0xb5, 0x23, 0xbc, 0x6b, 0x47, 0x78, 0xd7, + 0x8e, 0xf0, 0x1d, 0x6f, 0x47, 0xf8, 0x0b, 0x16, 0x9c, 0x56, 0xc7, 0x80, 0x71, 0xf1, 0xfd, 0x2c, + 0x4c, 0xf1, 0xe5, 0x66, 0xf8, 0x2e, 0x8a, 0x63, 0xef, 0x72, 0xe6, 0xcc, 0x4d, 0xf8, 0xd8, 0x1a, + 0x05, 0xf9, 0x63, 0x85, 0x0c, 0x04, 0xce, 0xaa, 0xc6, 0xfe, 0xc5, 0x21, 0xe8, 0x5f, 0xd9, 0x23, + 0x5e, 0x74, 0x02, 0x57, 0x84, 0x1a, 0x8c, 0xb9, 0xde, 0x9e, 0xdf, 0xd8, 0x23, 0x75, 0x8e, 0x3f, + 0xca, 0x4d, 0xf6, 0x8c, 0x60, 0x3d, 0x56, 0x36, 0x58, 0xe0, 0x04, 0xcb, 0x07, 0xa1, 0x4d, 0xbe, + 0x02, 0x03, 0x7c, 0x13, 0x17, 0xaa, 0xe4, 0xcc, 0x3d, 0x9b, 0x75, 0xa2, 0x38, 0x9a, 0x62, 0x4d, + 0x37, 0x3f, 0x24, 0x44, 0x71, 0xf4, 0x19, 0x18, 0xdb, 0x72, 0x83, 0x30, 0xda, 0x70, 0x9b, 0x24, + 0x8c, 0x9c, 0x66, 0xeb, 0x3e, 0xb4, 0xc7, 0xaa, 0x1f, 0x56, 0x0d, 0x4e, 0x38, 0xc1, 0x19, 0x6d, + 0xc3, 0x68, 0xc3, 0xd1, 0xab, 0x1a, 0x3c, 0x72, 0x55, 0xea, 0x74, 0xb8, 0xae, 0x33, 0xc2, 0x26, + 0x5f, 0xba, 0x9c, 0x6a, 0x4c, 0x01, 0x3a, 0xc4, 0xd4, 0x02, 0x6a, 0x39, 0x71, 0xcd, 0x27, 0xc7, + 0x51, 0x41, 0x87, 0x39, 0xc8, 0x96, 0x4c, 0x41, 0x47, 0x73, 0x83, 0xfd, 0x34, 0x94, 0x08, 0xed, + 0x42, 0xca, 0x58, 0x1c, 0x30, 0xf3, 0xbd, 0xb5, 0x75, 0xcd, 0xad, 0x05, 0xbe, 0xa9, 0xb7, 0x5f, + 0x91, 0x9c, 0x70, 0xcc, 0x14, 0x2d, 0xc1, 0x40, 0x48, 0x02, 0x97, 0x84, 0xe2, 0xa8, 0xe9, 0x30, + 0x8c, 0x8c, 0x8c, 0xbf, 0x86, 0xe1, 0xbf, 0xb1, 0x28, 0x4a, 0xa7, 0x97, 0xc3, 0x54, 0x9a, 0xec, + 0x30, 0xd0, 0xa6, 0xd7, 0x02, 0x83, 0x62, 0x81, 0x45, 0xaf, 0xc1, 0x60, 0x40, 0x1a, 0xcc, 0x30, + 0x34, 0xda, 0xfb, 0x24, 0xe7, 0x76, 0x26, 0x5e, 0x0e, 0x4b, 0x06, 0xe8, 0x1a, 0xa0, 0x80, 0x50, + 0x41, 0xc9, 0xf5, 0xb6, 0x95, 0xdb, 0xa8, 0xd8, 0x68, 0x95, 0x40, 0x8a, 0x63, 0x0a, 0xf9, 0x10, + 0x0a, 0x67, 0x14, 0x43, 0x57, 0x60, 0x52, 0x41, 0xcb, 0x5e, 0x18, 0x39, 0x74, 0x83, 0x1b, 0x67, + 0xbc, 0x94, 0x9e, 0x02, 0x27, 0x09, 0x70, 0xba, 0x8c, 0xfd, 0x65, 0x0b, 0x78, 0x3f, 0x9f, 0xc0, + 0xed, 0xfc, 0x55, 0xf3, 0x76, 0x7e, 0x36, 0x77, 0xe4, 0x72, 0x6e, 0xe6, 0x5f, 0xb6, 0x60, 0x58, + 0x1b, 0xd9, 0x78, 0xce, 0x5a, 0x1d, 0xe6, 0x6c, 0x1b, 0x26, 0xe8, 0x4c, 0xbf, 0xb1, 0x19, 0x92, + 0x60, 0x8f, 0xd4, 0xd9, 0xc4, 0x2c, 0xdc, 0xdf, 0xc4, 0x54, 0x2e, 0x6a, 0xd7, 0x13, 0x0c, 0x71, + 0xaa, 0x0a, 0xfb, 0xd3, 0xb2, 0xa9, 0xca, 0xa3, 0xaf, 0xa6, 0xc6, 0x3c, 0xe1, 0xd1, 0xa7, 0x46, + 0x15, 0xc7, 0x34, 0x74, 0xa9, 0xed, 0xf8, 0x61, 0x94, 0xf4, 0xe8, 0xbb, 0xea, 0x87, 0x11, 0x66, + 0x18, 0xfb, 0x79, 0x80, 0x95, 0xbb, 0xa4, 0xc6, 0x67, 0xac, 0x7e, 0x79, 0xb0, 0xf2, 0x2f, 0x0f, + 0xf6, 0x6f, 0x5b, 0x30, 0xb6, 0xba, 0x64, 0x9c, 0x5c, 0x73, 0x00, 0xfc, 0xc6, 0x73, 0xfb, 0xf6, + 0xba, 0x34, 0x87, 0x73, 0x8b, 0xa6, 0x82, 0x62, 0x8d, 0x02, 0x9d, 0x85, 0x62, 0xa3, 0xed, 0x09, + 0xf5, 0xe1, 0x20, 0x3d, 0x1e, 0xaf, 0xb7, 0x3d, 0x4c, 0x61, 0xda, 0x23, 0x88, 0x62, 0xcf, 0x8f, + 0x20, 0xba, 0x06, 0x3f, 0x40, 0xb3, 0xd0, 0x7f, 0xe7, 0x8e, 0x5b, 0xe7, 0x4f, 0x4c, 0x85, 0xa9, + 0xfe, 0xf6, 0xed, 0xf2, 0x72, 0x88, 0x39, 0xdc, 0xfe, 0x62, 0x11, 0x66, 0x56, 0x1b, 0xe4, 0xee, + 0xdb, 0x7c, 0x66, 0xdb, 0xeb, 0x13, 0x8e, 0xa3, 0x29, 0x62, 0x8e, 0xfa, 0x4c, 0xa7, 0x7b, 0x7f, + 0x6c, 0xc1, 0x20, 0x77, 0x68, 0x93, 0x8f, 0x6e, 0x5f, 0xc9, 0xaa, 0x3d, 0xbf, 0x43, 0xe6, 0xb8, + 0x63, 0x9c, 0x78, 0xc3, 0xa7, 0x0e, 0x4c, 0x01, 0xc5, 0x92, 0xf9, 0xcc, 0xcb, 0x30, 0xa2, 0x53, + 0x1e, 0xe9, 0xc1, 0xdc, 0xff, 0x53, 0x84, 0x09, 0xda, 0x82, 0x07, 0x3a, 0x10, 0x37, 0xd3, 0x03, + 0x71, 0xdc, 0x8f, 0xa6, 0xba, 0x8f, 0xc6, 0x1b, 0xc9, 0xd1, 0xb8, 0x9c, 0x37, 0x1a, 0x27, 0x3d, + 0x06, 0xdf, 0x63, 0xc1, 0xd4, 0x6a, 0xc3, 0xaf, 0xed, 0x26, 0x1e, 0x36, 0xbd, 0x08, 0xc3, 0x74, + 0x3b, 0x0e, 0x8d, 0x37, 0xfe, 0x46, 0xd4, 0x07, 0x81, 0xc2, 0x3a, 0x9d, 0x56, 0xec, 0xe6, 0xcd, + 0xf2, 0x72, 0x56, 0xb0, 0x08, 0x81, 0xc2, 0x3a, 0x9d, 0xfd, 0x9b, 0x16, 0x9c, 0xbb, 0xb2, 0xb4, + 0x12, 0x4f, 0xc5, 0x54, 0xbc, 0x8a, 0x8b, 0x30, 0xd0, 0xaa, 0x6b, 0x4d, 0x89, 0xd5, 0xab, 0xcb, + 0xac, 0x15, 0x02, 0xfb, 0x4e, 0x89, 0xc5, 0x72, 0x13, 0xe0, 0x0a, 0xae, 0x2c, 0x89, 0x7d, 0x57, + 0x5a, 0x53, 0xac, 0x5c, 0x6b, 0xca, 0x13, 0x30, 0x48, 0xcf, 0x05, 0xb7, 0x26, 0xdb, 0xcd, 0x0d, + 0xb4, 0x1c, 0x84, 0x25, 0xce, 0xfe, 0x39, 0x0b, 0xa6, 0xae, 0xb8, 0x11, 0x3d, 0xb4, 0x93, 0x01, + 0x19, 0xe8, 0xa9, 0x1d, 0xba, 0x91, 0x1f, 0xec, 0x27, 0x03, 0x32, 0x60, 0x85, 0xc1, 0x1a, 0x15, + 0xff, 0xa0, 0x3d, 0x97, 0x79, 0x68, 0x17, 0x4c, 0xfb, 0x15, 0x16, 0x70, 0xac, 0x28, 0x68, 0x7f, + 0xd5, 0xdd, 0x80, 0xa9, 0xfe, 0xf6, 0xc5, 0xc6, 0xad, 0xfa, 0x6b, 0x59, 0x22, 0x70, 0x4c, 0x63, + 0xff, 0xb1, 0x05, 0xb3, 0x57, 0x1a, 0xed, 0x30, 0x22, 0xc1, 0x56, 0x98, 0xb3, 0xe9, 0x3e, 0x0f, + 0x25, 0x22, 0x15, 0xed, 0xf2, 0x29, 0x99, 0x14, 0x44, 0x95, 0x06, 0x9e, 0xc7, 0x85, 0x50, 0x74, + 0x3d, 0xbc, 0xbe, 0x3c, 0xda, 0xf3, 0xb9, 0x55, 0x40, 0x44, 0xaf, 0x4b, 0x0f, 0x94, 0xc1, 0x5e, + 0xdc, 0xaf, 0xa4, 0xb0, 0x38, 0xa3, 0x84, 0xfd, 0xe3, 0x16, 0x9c, 0x56, 0x1f, 0xfc, 0x8e, 0xfb, + 0x4c, 0xfb, 0x6b, 0x05, 0x18, 0xbd, 0xba, 0xb1, 0x51, 0xb9, 0x42, 0x22, 0x6d, 0x56, 0x76, 0x36, + 0x9f, 0x63, 0xcd, 0x0a, 0xd8, 0xe9, 0x8e, 0xd8, 0x8e, 0xdc, 0xc6, 0x1c, 0x8f, 0xb7, 0x34, 0x57, + 0xf6, 0xa2, 0x1b, 0x41, 0x35, 0x0a, 0x5c, 0x6f, 0x3b, 0x73, 0xa6, 0x4b, 0x99, 0xa5, 0x98, 0x27, + 0xb3, 0xa0, 0xe7, 0x61, 0x80, 0x05, 0x7c, 0x92, 0x83, 0xf0, 0xb0, 0xba, 0x62, 0x31, 0xe8, 0xe1, + 0xc1, 0x6c, 0xe9, 0x26, 0x2e, 0xf3, 0x3f, 0x58, 0x90, 0xa2, 0x9b, 0x30, 0xbc, 0x13, 0x45, 0xad, + 0xab, 0xc4, 0xa9, 0x93, 0x40, 0xee, 0xb2, 0xe7, 0xb3, 0x76, 0x59, 0xda, 0x09, 0x9c, 0x2c, 0xde, + 0x98, 0x62, 0x58, 0x88, 0x75, 0x3e, 0x76, 0x15, 0x20, 0xc6, 0x1d, 0x93, 0x01, 0xc4, 0xde, 0x80, + 0x12, 0xfd, 0xdc, 0x85, 0x86, 0xeb, 0x74, 0x36, 0x31, 0x3f, 0x0d, 0x25, 0x69, 0x40, 0x0e, 0xc5, + 0xeb, 0x70, 0x76, 0x22, 0x49, 0xfb, 0x72, 0x88, 0x63, 0xbc, 0xbd, 0x05, 0xa7, 0x98, 0x3b, 0xa0, + 0x13, 0xed, 0x18, 0xb3, 0xaf, 0xfb, 0x30, 0x3f, 0x23, 0x6e, 0x6c, 0xbc, 0xcd, 0xd3, 0xda, 0x73, + 0xc6, 0x11, 0xc9, 0x31, 0xbe, 0xbd, 0xd9, 0xdf, 0xec, 0x83, 0x87, 0xcb, 0xd5, 0xfc, 0x80, 0x25, + 0x2f, 0xc1, 0x08, 0x17, 0x04, 0xe9, 0xa0, 0x3b, 0x0d, 0x51, 0xaf, 0xd2, 0x6d, 0x6e, 0x68, 0x38, + 0x6c, 0x50, 0xa2, 0x73, 0x50, 0x74, 0xdf, 0xf4, 0x92, 0x8f, 0x7d, 0xca, 0xaf, 0xaf, 0x63, 0x0a, + 0xa7, 0x68, 0x2a, 0x53, 0xf2, 0xcd, 0x5a, 0xa1, 0x95, 0x5c, 0xf9, 0x2a, 0x8c, 0xb9, 0x61, 0x2d, + 0x74, 0xcb, 0x1e, 0x5d, 0x81, 0xda, 0x1a, 0x56, 0xda, 0x04, 0xda, 0x68, 0x85, 0xc5, 0x09, 0x6a, + 0xed, 0xe4, 0xe8, 0xef, 0x59, 0x2e, 0xed, 0xfa, 0x5c, 0x9a, 0x6e, 0xec, 0x2d, 0xf6, 0x75, 0x21, + 0x53, 0x52, 0x8b, 0x8d, 0x9d, 0x7f, 0x70, 0x88, 0x25, 0x8e, 0x5e, 0xd5, 0x6a, 0x3b, 0x4e, 0x6b, + 0xa1, 0x1d, 0xed, 0x2c, 0xbb, 0x61, 0xcd, 0xdf, 0x23, 0xc1, 0x3e, 0xbb, 0x65, 0x0f, 0xc5, 0x57, + 0x35, 0x85, 0x58, 0xba, 0xba, 0x50, 0xa1, 0x94, 0x38, 0x5d, 0x06, 0x2d, 0xc0, 0xb8, 0x04, 0x56, + 0x49, 0xc8, 0x36, 0xf7, 0x61, 0xc6, 0x46, 0x3d, 0xbf, 0x11, 0x60, 0xc5, 0x24, 0x49, 0x6f, 0x8a, + 0xae, 0x70, 0x1c, 0xa2, 0xeb, 0x07, 0x60, 0xd4, 0xf5, 0xdc, 0xc8, 0x75, 0x22, 0x9f, 0x5b, 0x58, + 0xf8, 0x85, 0x9a, 0xa9, 0x8e, 0xcb, 0x3a, 0x02, 0x9b, 0x74, 0xf6, 0xbf, 0xef, 0x83, 0x49, 0x36, + 0x6c, 0xef, 0xce, 0xb0, 0xef, 0xa4, 0x19, 0x76, 0x33, 0x3d, 0xc3, 0x8e, 0x43, 0x26, 0xbf, 0xef, + 0x69, 0xf6, 0x19, 0x28, 0xa9, 0x17, 0x47, 0xf2, 0xc9, 0xa1, 0x95, 0xf3, 0xe4, 0xb0, 0xfb, 0xb9, + 0x2c, 0x9d, 0xb6, 0x8a, 0x99, 0x4e, 0x5b, 0x5f, 0xb1, 0x20, 0x36, 0x19, 0xa0, 0xd7, 0xa1, 0xd4, + 0xf2, 0x99, 0x2f, 0x62, 0x20, 0x1d, 0x7c, 0x1f, 0xef, 0x68, 0x73, 0xe0, 0x31, 0x9b, 0x02, 0xde, + 0x0b, 0x15, 0x59, 0x14, 0xc7, 0x5c, 0xd0, 0x35, 0x18, 0x6c, 0x05, 0xa4, 0x1a, 0xb1, 0x80, 0x22, + 0xbd, 0x33, 0xe4, 0xb3, 0x86, 0x17, 0xc4, 0x92, 0x83, 0xfd, 0x1f, 0x2c, 0x98, 0x48, 0x92, 0xa2, + 0x0f, 0x41, 0x1f, 0xb9, 0x4b, 0x6a, 0xa2, 0xbd, 0x99, 0x87, 0x6c, 0xac, 0x74, 0xe0, 0x1d, 0x40, + 0xff, 0x63, 0x56, 0x0a, 0x5d, 0x85, 0x41, 0x7a, 0xc2, 0x5e, 0x51, 0xc1, 0xb3, 0x1e, 0xcd, 0x3b, + 0xa5, 0x95, 0xa8, 0xc2, 0x1b, 0x27, 0x40, 0x58, 0x16, 0x67, 0x9e, 0x52, 0xb5, 0x56, 0x95, 0x5e, + 0x5e, 0xa2, 0x4e, 0x77, 0xec, 0x8d, 0xa5, 0x0a, 0x27, 0x12, 0xdc, 0xb8, 0xa7, 0x94, 0x04, 0xe2, + 0x98, 0x89, 0xfd, 0xf3, 0x16, 0x00, 0x77, 0x0c, 0x73, 0xbc, 0x6d, 0x72, 0x02, 0x7a, 0xf2, 0x65, + 0xe8, 0x0b, 0x5b, 0xa4, 0xd6, 0xc9, 0x4d, 0x36, 0x6e, 0x4f, 0xb5, 0x45, 0x6a, 0xf1, 0x8c, 0xa3, + 0xff, 0x30, 0x2b, 0x6d, 0x7f, 0x1f, 0xc0, 0x58, 0x4c, 0x56, 0x8e, 0x48, 0x13, 0x3d, 0x6b, 0x84, + 0x29, 0x38, 0x9b, 0x08, 0x53, 0x50, 0x62, 0xd4, 0x9a, 0x4a, 0xf6, 0x33, 0x50, 0x6c, 0x3a, 0x77, + 0x85, 0xce, 0xed, 0xe9, 0xce, 0xcd, 0xa0, 0xfc, 0xe7, 0xd6, 0x9c, 0xbb, 0xfc, 0x5a, 0xfa, 0xb4, + 0x5c, 0x21, 0x6b, 0xce, 0xdd, 0x43, 0xee, 0x0c, 0xcb, 0x76, 0xe9, 0xeb, 0x6e, 0x18, 0x7d, 0xfe, + 0xdf, 0xc5, 0xff, 0xd9, 0xba, 0xa3, 0x95, 0xb0, 0xba, 0x5c, 0x4f, 0xf8, 0x3c, 0xf5, 0x54, 0x97, + 0xeb, 0x25, 0xeb, 0x72, 0xbd, 0x1e, 0xea, 0x72, 0x3d, 0xf4, 0x16, 0x0c, 0x0a, 0x97, 0x44, 0x11, + 0xc8, 0x68, 0xbe, 0x87, 0xfa, 0x84, 0x47, 0x23, 0xaf, 0x73, 0x5e, 0x5e, 0xbb, 0x05, 0xb4, 0x6b, + 0xbd, 0xb2, 0x42, 0xf4, 0x17, 0x2d, 0x18, 0x13, 0xbf, 0x31, 0x79, 0xb3, 0x4d, 0xc2, 0x48, 0x88, + 0xa5, 0xef, 0xef, 0xbd, 0x0d, 0xa2, 0x20, 0x6f, 0xca, 0xfb, 0xe5, 0x39, 0x63, 0x22, 0xbb, 0xb6, + 0x28, 0xd1, 0x0a, 0xf4, 0x37, 0x2d, 0x38, 0xd5, 0x74, 0xee, 0xf2, 0x1a, 0x39, 0x0c, 0x3b, 0x91, + 0xeb, 0x0b, 0xd3, 0xfe, 0x87, 0x7a, 0x1b, 0xfe, 0x54, 0x71, 0xde, 0x48, 0x69, 0x7f, 0x3c, 0x95, + 0x45, 0xd2, 0xb5, 0xa9, 0x99, 0xed, 0x9a, 0xd9, 0x82, 0x21, 0x39, 0xdf, 0x32, 0x94, 0x1b, 0xcb, + 0xba, 0xcc, 0x7d, 0x64, 0x8f, 0x50, 0xfd, 0xf9, 0x3f, 0xad, 0x47, 0xcc, 0xb5, 0x07, 0x5a, 0xcf, + 0x67, 0x60, 0x44, 0x9f, 0x63, 0x0f, 0xb4, 0xae, 0x37, 0x61, 0x2a, 0x63, 0x2e, 0x3d, 0xd0, 0x2a, + 0xef, 0xc0, 0xd9, 0xdc, 0xf9, 0xf1, 0x20, 0x2b, 0xb6, 0xbf, 0x66, 0xe9, 0xfb, 0xe0, 0x09, 0x18, + 0x2b, 0x96, 0x4c, 0x63, 0xc5, 0xf9, 0xce, 0x2b, 0x27, 0xc7, 0x62, 0xf1, 0x86, 0xde, 0x68, 0xba, + 0xab, 0xa3, 0xd7, 0x60, 0xa0, 0x41, 0x21, 0xd2, 0xb1, 0xd5, 0xee, 0xbe, 0x22, 0x63, 0x61, 0x92, + 0xc1, 0x43, 0x2c, 0x38, 0xd8, 0xbf, 0x64, 0x41, 0xdf, 0x09, 0xf4, 0x04, 0x36, 0x7b, 0xe2, 0xd9, + 0x5c, 0xd6, 0x22, 0xa6, 0xf3, 0x1c, 0x76, 0xee, 0xac, 0xdc, 0x8d, 0x88, 0x17, 0xb2, 0x13, 0x39, + 0xb3, 0x63, 0x7e, 0xda, 0x82, 0xa9, 0xeb, 0xbe, 0x53, 0x5f, 0x74, 0x1a, 0x8e, 0x57, 0x23, 0x41, + 0xd9, 0xdb, 0x3e, 0x92, 0x57, 0x76, 0xa1, 0xab, 0x57, 0xf6, 0x92, 0x74, 0x6a, 0xea, 0xcb, 0x1f, + 0x3f, 0x2a, 0x49, 0x27, 0x03, 0xb7, 0x18, 0xee, 0xb7, 0x3b, 0x80, 0xf4, 0x56, 0x8a, 0x37, 0x32, + 0x18, 0x06, 0x5d, 0xde, 0x5e, 0x31, 0x88, 0x4f, 0x66, 0x4b, 0xb8, 0xa9, 0xcf, 0xd3, 0x5e, 0x7f, + 0x70, 0x00, 0x96, 0x8c, 0xec, 0x97, 0x20, 0xf3, 0xa1, 0x7d, 0x77, 0xbd, 0x84, 0xfd, 0x31, 0x98, + 0x64, 0x25, 0x8f, 0xa8, 0x19, 0xb0, 0x13, 0xda, 0xd4, 0x8c, 0xa0, 0x81, 0xf6, 0x17, 0x2c, 0x18, + 0x5f, 0x4f, 0xc4, 0x52, 0xbb, 0xc8, 0xec, 0xaf, 0x19, 0x4a, 0xfc, 0x2a, 0x83, 0x62, 0x81, 0x3d, + 0x76, 0x25, 0xd7, 0x9f, 0x5b, 0x10, 0xc7, 0xbe, 0x38, 0x01, 0xf1, 0x6d, 0xc9, 0x10, 0xdf, 0x32, + 0x05, 0x59, 0xd5, 0x9c, 0x3c, 0xe9, 0x0d, 0x5d, 0x53, 0x51, 0xa1, 0x3a, 0xc8, 0xb0, 0x31, 0x1b, + 0x3e, 0x15, 0xc7, 0xcc, 0xd0, 0x51, 0x32, 0x4e, 0x94, 0xfd, 0x3b, 0x05, 0x40, 0x8a, 0xb6, 0xe7, + 0xa8, 0x55, 0xe9, 0x12, 0xc7, 0x13, 0xb5, 0x6a, 0x0f, 0x10, 0xf3, 0x20, 0x08, 0x1c, 0x2f, 0xe4, + 0x6c, 0x5d, 0xa1, 0xd6, 0x3b, 0x9a, 0x7b, 0xc2, 0x8c, 0xa8, 0x12, 0x5d, 0x4f, 0x71, 0xc3, 0x19, + 0x35, 0x68, 0x9e, 0x21, 0xfd, 0xbd, 0x7a, 0x86, 0x0c, 0x74, 0x79, 0x07, 0xf7, 0x55, 0x0b, 0x46, + 0x55, 0x37, 0xbd, 0x43, 0xbc, 0xd4, 0x55, 0x7b, 0x72, 0x36, 0xd0, 0x8a, 0xd6, 0x64, 0x76, 0xb0, + 0x7c, 0x17, 0x7b, 0xcf, 0xe8, 0x34, 0xdc, 0xb7, 0x88, 0x8a, 0x72, 0x38, 0x2b, 0xde, 0x27, 0x0a, + 0xe8, 0xe1, 0xc1, 0xec, 0xa8, 0xfa, 0xc7, 0xa3, 0x38, 0xc7, 0x45, 0xe8, 0x96, 0x3c, 0x9e, 0x98, + 0x8a, 0xe8, 0x45, 0xe8, 0x6f, 0xed, 0x38, 0x21, 0x49, 0xbc, 0xe6, 0xe9, 0xaf, 0x50, 0xe0, 0xe1, + 0xc1, 0xec, 0x98, 0x2a, 0xc0, 0x20, 0x98, 0x53, 0xf7, 0x1e, 0x0b, 0x2c, 0x3d, 0x39, 0xbb, 0xc6, + 0x02, 0xfb, 0x53, 0x0b, 0xfa, 0xd6, 0xfd, 0xfa, 0x49, 0x6c, 0x01, 0xaf, 0x1a, 0x5b, 0xc0, 0x23, + 0x79, 0x01, 0xf6, 0x73, 0x57, 0xff, 0x6a, 0x62, 0xf5, 0x9f, 0xcf, 0xe5, 0xd0, 0x79, 0xe1, 0x37, + 0x61, 0x98, 0x85, 0xed, 0x17, 0x2f, 0x97, 0x9e, 0x37, 0x16, 0xfc, 0x6c, 0x62, 0xc1, 0x8f, 0x6b, + 0xa4, 0xda, 0x4a, 0x7f, 0x0a, 0x06, 0xc5, 0x53, 0x98, 0xe4, 0xb3, 0x50, 0x41, 0x8b, 0x25, 0xde, + 0xfe, 0x89, 0x22, 0x18, 0x69, 0x02, 0xd0, 0xaf, 0x58, 0x30, 0x17, 0x70, 0x17, 0xd9, 0xfa, 0x72, + 0x3b, 0x70, 0xbd, 0xed, 0x6a, 0x6d, 0x87, 0xd4, 0xdb, 0x0d, 0xd7, 0xdb, 0x2e, 0x6f, 0x7b, 0xbe, + 0x02, 0xaf, 0xdc, 0x25, 0xb5, 0x36, 0x33, 0xbb, 0x75, 0xc9, 0x49, 0xa0, 0x5c, 0xcd, 0x9f, 0xbb, + 0x77, 0x30, 0x3b, 0x87, 0x8f, 0xc4, 0x1b, 0x1f, 0xb1, 0x2d, 0xe8, 0x37, 0x2d, 0x98, 0xe7, 0xd1, + 0xf3, 0x7b, 0x6f, 0x7f, 0x87, 0xdb, 0x72, 0x45, 0xb2, 0x8a, 0x99, 0x6c, 0x90, 0xa0, 0xb9, 0xf8, + 0x01, 0xd1, 0xa1, 0xf3, 0x95, 0xa3, 0xd5, 0x85, 0x8f, 0xda, 0x38, 0xfb, 0x1f, 0x14, 0x61, 0x54, + 0xc4, 0x8c, 0x12, 0x67, 0xc0, 0x8b, 0xc6, 0x94, 0x78, 0x34, 0x31, 0x25, 0x26, 0x0d, 0xe2, 0xe3, + 0xd9, 0xfe, 0x43, 0x98, 0xa4, 0x9b, 0xf3, 0x55, 0xe2, 0x04, 0xd1, 0x26, 0x71, 0xb8, 0xc3, 0x57, + 0xf1, 0xc8, 0xbb, 0xbf, 0xd2, 0x4f, 0x5e, 0x4f, 0x32, 0xc3, 0x69, 0xfe, 0xdf, 0x49, 0x67, 0x8e, + 0x07, 0x13, 0xa9, 0xb0, 0x5f, 0x1f, 0x87, 0x92, 0x7a, 0xc7, 0x21, 0x36, 0x9d, 0xce, 0xd1, 0xf3, + 0x92, 0x1c, 0xb8, 0xfa, 0x2b, 0x7e, 0x43, 0x14, 0xb3, 0xb3, 0xff, 0x76, 0xc1, 0xa8, 0x90, 0x0f, + 0xe2, 0x3a, 0x0c, 0x39, 0x61, 0xe8, 0x6e, 0x7b, 0xa4, 0xde, 0x49, 0x43, 0x99, 0xaa, 0x86, 0xbd, + 0xa5, 0x59, 0x10, 0x25, 0xb1, 0xe2, 0x81, 0xae, 0x72, 0xb7, 0xba, 0x3d, 0xd2, 0x49, 0x3d, 0x99, + 0xe2, 0x06, 0xd2, 0xf1, 0x6e, 0x8f, 0x60, 0x51, 0x1e, 0x7d, 0x92, 0xfb, 0x3d, 0x5e, 0xf3, 0xfc, + 0x3b, 0xde, 0x15, 0xdf, 0x97, 0x71, 0x19, 0x7a, 0x63, 0x38, 0x29, 0xbd, 0x1d, 0x55, 0x71, 0x6c, + 0x72, 0xeb, 0x2d, 0x8e, 0xe6, 0x67, 0x81, 0x45, 0x0b, 0x37, 0x9f, 0x4d, 0x87, 0x88, 0xc0, 0xb8, + 0x08, 0x48, 0x26, 0x61, 0xa2, 0xef, 0x32, 0xaf, 0x72, 0x66, 0xe9, 0x58, 0x91, 0x7e, 0xcd, 0x64, + 0x81, 0x93, 0x3c, 0xed, 0x9f, 0xb5, 0x80, 0x3d, 0x21, 0x3d, 0x01, 0x79, 0xe4, 0xc3, 0xa6, 0x3c, + 0x32, 0x9d, 0xd7, 0xc9, 0x39, 0xa2, 0xc8, 0x0b, 0x7c, 0x66, 0x55, 0x02, 0xff, 0xee, 0xbe, 0x70, + 0x56, 0xe9, 0x7e, 0xff, 0xb0, 0xff, 0xa7, 0xc5, 0x37, 0x31, 0xf5, 0xca, 0x02, 0x7d, 0x0e, 0x86, + 0x6a, 0x4e, 0xcb, 0xa9, 0xf1, 0x9c, 0x36, 0xb9, 0x1a, 0x3d, 0xa3, 0xd0, 0xdc, 0x92, 0x28, 0xc1, + 0x35, 0x54, 0x32, 0xb0, 0xdd, 0x90, 0x04, 0x77, 0xd5, 0x4a, 0xa9, 0x2a, 0x67, 0x76, 0x61, 0xd4, + 0x60, 0xf6, 0x40, 0xd5, 0x19, 0x9f, 0xe3, 0x47, 0xac, 0x0a, 0xc4, 0xd8, 0x84, 0x49, 0x4f, 0xfb, + 0x4f, 0x0f, 0x14, 0x79, 0xb9, 0x7c, 0xbc, 0xdb, 0x21, 0xca, 0x4e, 0x1f, 0xed, 0x75, 0x6a, 0x82, + 0x0d, 0x4e, 0x73, 0xb6, 0x7f, 0xd2, 0x82, 0x87, 0x74, 0x42, 0xed, 0x01, 0x4c, 0x37, 0x23, 0xc9, + 0x32, 0x0c, 0xf9, 0x2d, 0x12, 0x38, 0x91, 0x1f, 0x88, 0x53, 0xe3, 0x92, 0xec, 0xf4, 0x1b, 0x02, + 0x7e, 0x28, 0x22, 0xb4, 0x4b, 0xee, 0x12, 0x8e, 0x55, 0x49, 0x7a, 0xfb, 0x64, 0x9d, 0x11, 0x8a, + 0xa7, 0x4e, 0x6c, 0x0f, 0x60, 0x96, 0xf4, 0x10, 0x0b, 0x8c, 0xfd, 0x4d, 0x8b, 0x4f, 0x2c, 0xbd, + 0xe9, 0xe8, 0x4d, 0x98, 0x68, 0x3a, 0x51, 0x6d, 0x67, 0xe5, 0x6e, 0x2b, 0xe0, 0x26, 0x27, 0xd9, + 0x4f, 0x4f, 0x77, 0xeb, 0x27, 0xed, 0x23, 0x63, 0x57, 0xce, 0xb5, 0x04, 0x33, 0x9c, 0x62, 0x8f, + 0x36, 0x61, 0x98, 0xc1, 0xd8, 0x2b, 0xbe, 0xb0, 0x93, 0x68, 0x90, 0x57, 0x9b, 0x72, 0x46, 0x58, + 0x8b, 0xf9, 0x60, 0x9d, 0xa9, 0xfd, 0x95, 0x22, 0x5f, 0xed, 0x4c, 0x94, 0x7f, 0x0a, 0x06, 0x5b, + 0x7e, 0x7d, 0xa9, 0xbc, 0x8c, 0xc5, 0x28, 0xa8, 0x63, 0xa4, 0xc2, 0xc1, 0x58, 0xe2, 0xd1, 0x25, + 0x18, 0x12, 0x3f, 0xa5, 0x89, 0x90, 0xed, 0xcd, 0x82, 0x2e, 0xc4, 0x0a, 0x8b, 0x9e, 0x03, 0x68, + 0x05, 0xfe, 0x9e, 0x5b, 0x67, 0xd1, 0x25, 0x8a, 0xa6, 0x1f, 0x51, 0x45, 0x61, 0xb0, 0x46, 0x85, + 0x5e, 0x81, 0xd1, 0xb6, 0x17, 0x72, 0x71, 0x44, 0x8b, 0x25, 0xab, 0x3c, 0x5c, 0x6e, 0xea, 0x48, + 0x6c, 0xd2, 0xa2, 0x05, 0x18, 0x88, 0x1c, 0xe6, 0x17, 0xd3, 0x9f, 0xef, 0xee, 0xbb, 0x41, 0x29, + 0xf4, 0xf4, 0x29, 0xb4, 0x00, 0x16, 0x05, 0xd1, 0xc7, 0xe5, 0x83, 0x5a, 0xbe, 0xb1, 0x0b, 0x3f, + 0xfb, 0xde, 0x0e, 0x01, 0xed, 0x39, 0xad, 0xf0, 0xdf, 0x37, 0x78, 0xa1, 0x97, 0x01, 0xc8, 0xdd, + 0x88, 0x04, 0x9e, 0xd3, 0x50, 0xde, 0x6c, 0x4a, 0x2e, 0x58, 0xf6, 0xd7, 0xfd, 0xe8, 0x66, 0x48, + 0x56, 0x14, 0x05, 0xd6, 0xa8, 0xed, 0xdf, 0x2c, 0x01, 0xc4, 0x72, 0x3b, 0x7a, 0x2b, 0xb5, 0x71, + 0x3d, 0xd3, 0x59, 0xd2, 0x3f, 0xbe, 0x5d, 0x0b, 0x7d, 0xbf, 0x05, 0xc3, 0x4e, 0xa3, 0xe1, 0xd7, + 0x1c, 0x1e, 0xed, 0xb7, 0xd0, 0x79, 0xe3, 0x14, 0xf5, 0x2f, 0xc4, 0x25, 0x78, 0x13, 0x9e, 0x97, + 0x33, 0x54, 0xc3, 0x74, 0x6d, 0x85, 0x5e, 0x31, 0x7a, 0x9f, 0xbc, 0x2a, 0x16, 0x8d, 0xae, 0x54, + 0x57, 0xc5, 0x12, 0x3b, 0x23, 0xf4, 0x5b, 0xe2, 0x4d, 0xe3, 0x96, 0xd8, 0x97, 0xff, 0x62, 0xd0, + 0x10, 0x5f, 0xbb, 0x5d, 0x10, 0x51, 0x45, 0x8f, 0x1e, 0xd0, 0x9f, 0xff, 0x3c, 0x4f, 0xbb, 0x27, + 0x75, 0x89, 0x1c, 0xf0, 0x19, 0x18, 0xaf, 0x9b, 0x42, 0x80, 0x98, 0x89, 0x4f, 0xe6, 0xf1, 0x4d, + 0xc8, 0x0c, 0xf1, 0xb1, 0x9f, 0x40, 0xe0, 0x24, 0x63, 0x54, 0xe1, 0xc1, 0x24, 0xca, 0xde, 0x96, + 0x2f, 0xde, 0x7a, 0xd8, 0xb9, 0x63, 0xb9, 0x1f, 0x46, 0xa4, 0x49, 0x29, 0xe3, 0xd3, 0x7d, 0x5d, + 0x94, 0xc5, 0x8a, 0x0b, 0x7a, 0x0d, 0x06, 0xd8, 0xfb, 0xac, 0x70, 0x7a, 0x28, 0x5f, 0xe3, 0x6c, + 0x46, 0x47, 0x8b, 0x17, 0x24, 0xfb, 0x1b, 0x62, 0xc1, 0x01, 0x5d, 0x95, 0xaf, 0x1f, 0xc3, 0xb2, + 0x77, 0x33, 0x24, 0xec, 0xf5, 0x63, 0x69, 0xf1, 0xf1, 0xf8, 0x61, 0x23, 0x87, 0x67, 0x26, 0x59, + 0x33, 0x4a, 0x52, 0x29, 0x4a, 0xfc, 0x97, 0xb9, 0xdb, 0xa6, 0x21, 0xbf, 0x79, 0x66, 0x7e, 0xb7, + 0xb8, 0x3b, 0x6f, 0x99, 0x2c, 0x70, 0x92, 0x27, 0x95, 0x48, 0xf9, 0xaa, 0x17, 0xaf, 0x45, 0xba, + 0xed, 0x1d, 0xfc, 0x22, 0xce, 0x4e, 0x23, 0x0e, 0xc1, 0xa2, 0xfc, 0x89, 0x8a, 0x07, 0x33, 0x1e, + 0x4c, 0x24, 0x97, 0xe8, 0x03, 0x15, 0x47, 0xfe, 0xb0, 0x0f, 0xc6, 0xcc, 0x29, 0x85, 0xe6, 0xa1, + 0x24, 0x98, 0xa8, 0xfc, 0x07, 0x6a, 0x95, 0xac, 0x49, 0x04, 0x8e, 0x69, 0x58, 0xda, 0x0b, 0x56, + 0x5c, 0x73, 0x0f, 0x8e, 0xd3, 0x5e, 0x28, 0x0c, 0xd6, 0xa8, 0xe8, 0xc5, 0x6a, 0xd3, 0xf7, 0x23, + 0x75, 0x20, 0xa9, 0x79, 0xb7, 0xc8, 0xa0, 0x58, 0x60, 0xe9, 0x41, 0xb4, 0x4b, 0x02, 0x8f, 0x34, + 0xcc, 0xb8, 0xc3, 0xea, 0x20, 0xba, 0xa6, 0x23, 0xb1, 0x49, 0x4b, 0x8f, 0x53, 0x3f, 0x64, 0x13, + 0x59, 0x5c, 0xdf, 0x62, 0x77, 0xeb, 0x2a, 0x7f, 0x80, 0x2d, 0xf1, 0xe8, 0x63, 0xf0, 0x90, 0x8a, + 0xad, 0x84, 0xb9, 0x35, 0x43, 0xd6, 0x38, 0x60, 0x68, 0x5b, 0x1e, 0x5a, 0xca, 0x26, 0xc3, 0x79, + 0xe5, 0xd1, 0xab, 0x30, 0x26, 0x44, 0x7c, 0xc9, 0x71, 0xd0, 0xf4, 0x30, 0xba, 0x66, 0x60, 0x71, + 0x82, 0x5a, 0x46, 0x4e, 0x66, 0x52, 0xb6, 0xe4, 0x30, 0x94, 0x8e, 0x9c, 0xac, 0xe3, 0x71, 0xaa, + 0x04, 0x5a, 0x80, 0x71, 0x2e, 0x83, 0xb9, 0xde, 0x36, 0x1f, 0x13, 0xf1, 0x98, 0x4b, 0x2d, 0xa9, + 0x1b, 0x26, 0x1a, 0x27, 0xe9, 0xd1, 0x4b, 0x30, 0xe2, 0x04, 0xb5, 0x1d, 0x37, 0x22, 0xb5, 0xa8, + 0x1d, 0xf0, 0x57, 0x5e, 0x9a, 0x8b, 0xd6, 0x82, 0x86, 0xc3, 0x06, 0xa5, 0xfd, 0x16, 0x4c, 0x65, + 0x44, 0x66, 0xa0, 0x13, 0xc7, 0x69, 0xb9, 0xf2, 0x9b, 0x12, 0x1e, 0xce, 0x0b, 0x95, 0xb2, 0xfc, + 0x1a, 0x8d, 0x8a, 0xce, 0x4e, 0x16, 0xc1, 0x41, 0x4b, 0xd5, 0xa8, 0x66, 0xe7, 0xaa, 0x44, 0xe0, + 0x98, 0xc6, 0xfe, 0xcf, 0x05, 0x18, 0xcf, 0xb0, 0xad, 0xb0, 0x74, 0x81, 0x89, 0x4b, 0x4a, 0x9c, + 0x1d, 0xd0, 0x0c, 0xc4, 0x5d, 0x38, 0x42, 0x20, 0xee, 0x62, 0xb7, 0x40, 0xdc, 0x7d, 0x6f, 0x27, + 0x10, 0xb7, 0xd9, 0x63, 0xfd, 0x3d, 0xf5, 0x58, 0x46, 0xf0, 0xee, 0x81, 0x23, 0x06, 0xef, 0x36, + 0x3a, 0x7d, 0xb0, 0x87, 0x4e, 0xff, 0xd1, 0x02, 0x4c, 0x24, 0x5d, 0x49, 0x4f, 0x40, 0x6f, 0xfb, + 0x9a, 0xa1, 0xb7, 0xbd, 0xd4, 0xcb, 0xe3, 0xdb, 0x5c, 0x1d, 0x2e, 0x4e, 0xe8, 0x70, 0xdf, 0xdb, + 0x13, 0xb7, 0xce, 0xfa, 0xdc, 0x9f, 0x2a, 0xc0, 0xe9, 0xcc, 0xd7, 0xbf, 0x27, 0xd0, 0x37, 0x37, + 0x8c, 0xbe, 0x79, 0xb6, 0xe7, 0x87, 0xc9, 0xb9, 0x1d, 0x74, 0x3b, 0xd1, 0x41, 0xf3, 0xbd, 0xb3, + 0xec, 0xdc, 0x4b, 0xdf, 0x28, 0xc2, 0xf9, 0xcc, 0x72, 0xb1, 0xda, 0x73, 0xd5, 0x50, 0x7b, 0x3e, + 0x97, 0x50, 0x7b, 0xda, 0x9d, 0x4b, 0x1f, 0x8f, 0x1e, 0x54, 0x3c, 0xd0, 0x65, 0x61, 0x06, 0xee, + 0x53, 0x07, 0x6a, 0x3c, 0xd0, 0x55, 0x8c, 0xb0, 0xc9, 0xf7, 0x3b, 0x49, 0xf7, 0xf9, 0xcf, 0x2d, + 0x38, 0x9b, 0x39, 0x36, 0x27, 0xa0, 0xeb, 0x5a, 0x37, 0x75, 0x5d, 0x4f, 0xf5, 0x3c, 0x5b, 0x73, + 0x94, 0x5f, 0x3f, 0xd3, 0x9f, 0xf3, 0x2d, 0xec, 0x26, 0x7f, 0x03, 0x86, 0x9d, 0x5a, 0x8d, 0x84, + 0xe1, 0x9a, 0x5f, 0x57, 0xb1, 0x86, 0x9f, 0x65, 0xf7, 0xac, 0x18, 0x7c, 0x78, 0x30, 0x3b, 0x93, + 0x64, 0x11, 0xa3, 0xb1, 0xce, 0x01, 0x7d, 0x12, 0x86, 0x42, 0x71, 0x6e, 0x8a, 0xb1, 0x7f, 0xbe, + 0xc7, 0xce, 0x71, 0x36, 0x49, 0xc3, 0x0c, 0x86, 0xa4, 0x34, 0x15, 0x8a, 0xa5, 0x19, 0x38, 0xa5, + 0x70, 0xac, 0x81, 0x53, 0x9e, 0x03, 0xd8, 0x53, 0x97, 0x81, 0xa4, 0xfe, 0x41, 0xbb, 0x26, 0x68, + 0x54, 0xe8, 0x23, 0x30, 0x11, 0xf2, 0x68, 0x81, 0x4b, 0x0d, 0x27, 0x64, 0xef, 0x68, 0xc4, 0x2c, + 0x64, 0x01, 0x97, 0xaa, 0x09, 0x1c, 0x4e, 0x51, 0xa3, 0x55, 0x59, 0x2b, 0x0b, 0x6d, 0xc8, 0x27, + 0xe6, 0xc5, 0xb8, 0x46, 0x91, 0xac, 0xf8, 0x54, 0xb2, 0xfb, 0x59, 0xc7, 0x6b, 0x25, 0xd1, 0x27, + 0x01, 0xe8, 0xf4, 0x11, 0x7a, 0x88, 0xc1, 0xfc, 0xcd, 0x93, 0xee, 0x2a, 0xf5, 0x4c, 0xe7, 0x66, + 0xf6, 0xa6, 0x76, 0x59, 0x31, 0xc1, 0x1a, 0x43, 0xe4, 0xc0, 0x68, 0xfc, 0x2f, 0xce, 0xe5, 0x79, + 0x29, 0xb7, 0x86, 0x24, 0x73, 0xa6, 0xf2, 0x5e, 0xd6, 0x59, 0x60, 0x93, 0xa3, 0xfd, 0xe3, 0x83, + 0xf0, 0x70, 0x87, 0x6d, 0x18, 0x2d, 0x98, 0xa6, 0xde, 0xa7, 0x93, 0xf7, 0xf7, 0x99, 0xcc, 0xc2, + 0xc6, 0x85, 0x3e, 0x31, 0xdb, 0x0b, 0x6f, 0x7b, 0xb6, 0xff, 0xb0, 0xa5, 0x69, 0x56, 0xb8, 0x53, + 0xe9, 0x87, 0x8f, 0x78, 0xbc, 0x1c, 0xa3, 0xaa, 0x65, 0x2b, 0x43, 0x5f, 0xf1, 0x5c, 0xcf, 0xcd, + 0xe9, 0x5d, 0x81, 0xf1, 0x35, 0x0b, 0x90, 0xd0, 0xac, 0x90, 0xba, 0x5a, 0x4b, 0x42, 0x95, 0x71, + 0xe5, 0xa8, 0xdf, 0xbf, 0x90, 0xe2, 0xc4, 0x7b, 0xe2, 0x65, 0x79, 0x0e, 0xa4, 0x09, 0xba, 0xf6, + 0x49, 0x46, 0xf3, 0xd0, 0xc7, 0x58, 0x20, 0x5d, 0xf7, 0x2d, 0x21, 0xfc, 0x88, 0xb5, 0xf6, 0xa2, + 0x08, 0xa2, 0xab, 0xe0, 0x54, 0xca, 0xcd, 0x6c, 0xae, 0x4e, 0x84, 0x0d, 0x56, 0x27, 0x7b, 0xf5, + 0x6e, 0xc3, 0x43, 0x39, 0x5d, 0xf6, 0x40, 0x6f, 0xe0, 0xbf, 0x6d, 0xc1, 0xb9, 0x8e, 0x11, 0x61, + 0xbe, 0x0d, 0x65, 0x43, 0xfb, 0xf3, 0x16, 0x64, 0x0f, 0xb6, 0xe1, 0x51, 0x36, 0x0f, 0xa5, 0x5a, + 0x22, 0xeb, 0x60, 0x1c, 0x1b, 0x41, 0x65, 0x1c, 0x8c, 0x69, 0x0c, 0xc7, 0xb1, 0x42, 0x57, 0xc7, + 0xb1, 0x5f, 0xb3, 0x20, 0xb5, 0xbf, 0x9f, 0x80, 0xa0, 0x51, 0x36, 0x05, 0x8d, 0xc7, 0x7b, 0xe9, + 0xcd, 0x1c, 0x19, 0xe3, 0x4f, 0xc6, 0xe1, 0x4c, 0xce, 0x8b, 0xbc, 0x3d, 0x98, 0xdc, 0xae, 0x11, + 0xf3, 0x71, 0x75, 0xa7, 0xa0, 0x43, 0x1d, 0x5f, 0x62, 0xf3, 0x64, 0x8f, 0x29, 0x12, 0x9c, 0xae, + 0x02, 0x7d, 0xde, 0x82, 0x53, 0xce, 0x9d, 0x70, 0x85, 0x0a, 0x8c, 0x6e, 0x6d, 0xb1, 0xe1, 0xd7, + 0x76, 0xe9, 0x69, 0x2c, 0x17, 0xc2, 0x0b, 0x99, 0x4a, 0xbc, 0xdb, 0xd5, 0x14, 0xbd, 0x51, 0x3d, + 0x4b, 0xed, 0x9b, 0x45, 0x85, 0x33, 0xeb, 0x42, 0x58, 0x64, 0x4f, 0xa0, 0xd7, 0xd1, 0x0e, 0xcf, + 0xff, 0xb3, 0x9e, 0x4e, 0x72, 0x09, 0x48, 0x62, 0xb0, 0xe2, 0x83, 0x3e, 0x0d, 0xa5, 0x6d, 0xf9, + 0xd2, 0x37, 0x43, 0xc2, 0x8a, 0x3b, 0xb2, 0xf3, 0xfb, 0x67, 0x6e, 0x89, 0x57, 0x44, 0x38, 0x66, + 0x8a, 0x5e, 0x85, 0xa2, 0xb7, 0x15, 0x76, 0xca, 0x8e, 0x9b, 0x70, 0xb9, 0xe4, 0x41, 0x36, 0xd6, + 0x57, 0xab, 0x98, 0x16, 0x44, 0x57, 0xa1, 0x18, 0x6c, 0xd6, 0x85, 0x06, 0x3a, 0x73, 0x91, 0xe2, + 0xc5, 0xe5, 0x9c, 0x56, 0x31, 0x4e, 0x78, 0x71, 0x19, 0x53, 0x16, 0xa8, 0x02, 0xfd, 0xec, 0x19, + 0x9b, 0x90, 0x67, 0x32, 0x6f, 0x6e, 0x1d, 0x9e, 0x83, 0xf2, 0x48, 0x1c, 0x8c, 0x00, 0x73, 0x46, + 0x68, 0x03, 0x06, 0x6a, 0x2c, 0x93, 0xaa, 0x10, 0x60, 0xde, 0x97, 0xa9, 0x6b, 0xee, 0x90, 0x62, + 0x56, 0xa8, 0x5e, 0x19, 0x05, 0x16, 0xbc, 0x18, 0x57, 0xd2, 0xda, 0xd9, 0x0a, 0x45, 0xa6, 0xf1, + 0x6c, 0xae, 0x1d, 0x32, 0x27, 0x0b, 0xae, 0x8c, 0x02, 0x0b, 0x5e, 0xe8, 0x65, 0x28, 0x6c, 0xd5, + 0xc4, 0x13, 0xb5, 0x4c, 0xa5, 0xb3, 0x19, 0x27, 0x65, 0x71, 0xe0, 0xde, 0xc1, 0x6c, 0x61, 0x75, + 0x09, 0x17, 0xb6, 0x6a, 0x68, 0x1d, 0x06, 0xb7, 0x78, 0x64, 0x05, 0xa1, 0x57, 0x7e, 0x32, 0x3b, + 0xe8, 0x43, 0x2a, 0xf8, 0x02, 0x7f, 0xee, 0x24, 0x10, 0x58, 0x32, 0x61, 0xc9, 0x08, 0x54, 0x84, + 0x08, 0x11, 0xa0, 0x6e, 0xee, 0x68, 0x51, 0x3d, 0xb8, 0x7c, 0x19, 0xc7, 0x99, 0xc0, 0x1a, 0x47, + 0x3a, 0xab, 0x9d, 0xb7, 0xda, 0x01, 0x8b, 0x02, 0x2e, 0x22, 0x19, 0x65, 0xce, 0xea, 0x05, 0x49, + 0xd4, 0x69, 0x56, 0x2b, 0x22, 0x1c, 0x33, 0x45, 0xbb, 0x30, 0xba, 0x17, 0xb6, 0x76, 0x88, 0x5c, + 0xd2, 0x2c, 0xb0, 0x51, 0x8e, 0x7c, 0x74, 0x4b, 0x10, 0xba, 0x41, 0xd4, 0x76, 0x1a, 0xa9, 0x5d, + 0x88, 0xc9, 0xb2, 0xb7, 0x74, 0x66, 0xd8, 0xe4, 0x4d, 0xbb, 0xff, 0xcd, 0xb6, 0xbf, 0xb9, 0x1f, + 0x11, 0x11, 0x57, 0x2e, 0xb3, 0xfb, 0x5f, 0xe7, 0x24, 0xe9, 0xee, 0x17, 0x08, 0x2c, 0x99, 0xa0, + 0x5b, 0xa2, 0x7b, 0xd8, 0xee, 0x39, 0x91, 0x1f, 0xfc, 0x75, 0x41, 0x12, 0xe5, 0x74, 0x0a, 0xdb, + 0x2d, 0x63, 0x56, 0x6c, 0x97, 0x6c, 0xed, 0xf8, 0x91, 0xef, 0x25, 0x76, 0xe8, 0xc9, 0xfc, 0x5d, + 0xb2, 0x92, 0x41, 0x9f, 0xde, 0x25, 0xb3, 0xa8, 0x70, 0x66, 0x5d, 0xa8, 0x0e, 0x63, 0x2d, 0x3f, + 0x88, 0xee, 0xf8, 0x81, 0x9c, 0x5f, 0xa8, 0x83, 0x5e, 0xcc, 0xa0, 0x14, 0x35, 0xb2, 0x90, 0x8d, + 0x26, 0x06, 0x27, 0x78, 0xa2, 0x8f, 0xc2, 0x60, 0x58, 0x73, 0x1a, 0xa4, 0x7c, 0x63, 0x7a, 0x2a, + 0xff, 0xf8, 0xa9, 0x72, 0x92, 0x9c, 0xd9, 0xc5, 0x03, 0x63, 0x70, 0x12, 0x2c, 0xd9, 0xa1, 0x55, + 0xe8, 0x67, 0xc9, 0xe6, 0x58, 0x10, 0xc4, 0x9c, 0x18, 0xb6, 0x29, 0x07, 0x78, 0xbe, 0x37, 0x31, + 0x30, 0xe6, 0xc5, 0xe9, 0x1a, 0x10, 0xd7, 0x43, 0x3f, 0x9c, 0x3e, 0x9d, 0xbf, 0x06, 0xc4, 0xad, + 0xf2, 0x46, 0xb5, 0xd3, 0x1a, 0x50, 0x44, 0x38, 0x66, 0x4a, 0x77, 0x66, 0xba, 0x9b, 0x9e, 0xe9, + 0xe0, 0xb9, 0x95, 0xbb, 0x97, 0xb2, 0x9d, 0x99, 0xee, 0xa4, 0x94, 0x85, 0xfd, 0xfb, 0x83, 0x69, + 0x99, 0x85, 0x29, 0x14, 0xbe, 0xd7, 0x4a, 0xd9, 0x9a, 0xdf, 0xdf, 0xab, 0x7e, 0xf3, 0x18, 0xaf, + 0x42, 0x9f, 0xb7, 0xe0, 0x4c, 0x2b, 0xf3, 0x43, 0x84, 0x00, 0xd0, 0x9b, 0x9a, 0x94, 0x7f, 0xba, + 0x0a, 0x98, 0x99, 0x8d, 0xc7, 0x39, 0x35, 0x25, 0xaf, 0x9b, 0xc5, 0xb7, 0x7d, 0xdd, 0x5c, 0x83, + 0xa1, 0x1a, 0xbf, 0x8a, 0x74, 0xcc, 0x2c, 0x9e, 0xbc, 0x7b, 0x33, 0x51, 0x42, 0xdc, 0x61, 0xb6, + 0xb0, 0x62, 0x81, 0x7e, 0xc4, 0x82, 0x73, 0xc9, 0xa6, 0x63, 0xc2, 0xd0, 0x22, 0xca, 0x26, 0xd7, + 0x65, 0xac, 0x8a, 0xef, 0x4f, 0xc9, 0xff, 0x06, 0xf1, 0x61, 0x37, 0x02, 0xdc, 0xb9, 0x32, 0xb4, + 0x9c, 0xa1, 0x4c, 0x19, 0x30, 0x0d, 0x48, 0x3d, 0x28, 0x54, 0x5e, 0x80, 0x91, 0xa6, 0xdf, 0xf6, + 0x22, 0xe1, 0xe8, 0x25, 0x9c, 0x4e, 0x98, 0xb3, 0xc5, 0x9a, 0x06, 0xc7, 0x06, 0x55, 0x42, 0x0d, + 0x33, 0x74, 0xdf, 0x6a, 0x98, 0x37, 0x60, 0xc4, 0xd3, 0x3c, 0x93, 0x85, 0x3c, 0x70, 0x31, 0x3f, + 0x42, 0xae, 0xee, 0xc7, 0xcc, 0x5b, 0xa9, 0x43, 0xb0, 0xc1, 0xed, 0x64, 0x3d, 0xc0, 0xbe, 0x6c, + 0x65, 0x08, 0xf5, 0x5c, 0x15, 0xf3, 0x21, 0x53, 0x15, 0x73, 0x31, 0xa9, 0x8a, 0x49, 0x19, 0x0f, + 0x0c, 0x2d, 0x4c, 0xef, 0x09, 0x80, 0x7a, 0x8d, 0xb2, 0x69, 0x37, 0xe0, 0x42, 0xb7, 0x63, 0x89, + 0x79, 0xfc, 0xd5, 0x95, 0xa9, 0x38, 0xf6, 0xf8, 0xab, 0x97, 0x97, 0x31, 0xc3, 0xf4, 0x1a, 0xbf, + 0xc9, 0xfe, 0x8f, 0x16, 0x14, 0x2b, 0x7e, 0xfd, 0x04, 0x2e, 0xbc, 0x1f, 0x36, 0x2e, 0xbc, 0x0f, + 0x67, 0x1f, 0x88, 0xf5, 0x5c, 0xd3, 0xc7, 0x4a, 0xc2, 0xf4, 0x71, 0x2e, 0x8f, 0x41, 0x67, 0x43, + 0xc7, 0x4f, 0x17, 0x61, 0xb8, 0xe2, 0xd7, 0x95, 0xbb, 0xfd, 0x3f, 0xba, 0x1f, 0x77, 0xfb, 0xdc, + 0x34, 0x16, 0x1a, 0x67, 0xe6, 0x28, 0x28, 0x5f, 0x1a, 0x7f, 0x9b, 0x79, 0xdd, 0xdf, 0x26, 0xee, + 0xf6, 0x4e, 0x44, 0xea, 0xc9, 0xcf, 0x39, 0x39, 0xaf, 0xfb, 0xdf, 0x2f, 0xc0, 0x78, 0xa2, 0x76, + 0xd4, 0x80, 0xd1, 0x86, 0xae, 0x58, 0x17, 0xf3, 0xf4, 0xbe, 0x74, 0xf2, 0xc2, 0x6b, 0x59, 0x03, + 0x61, 0x93, 0x39, 0x9a, 0x03, 0x50, 0x96, 0x66, 0xa9, 0x5e, 0x65, 0x52, 0xbf, 0x32, 0x45, 0x87, + 0x58, 0xa3, 0x40, 0x2f, 0xc2, 0x70, 0xe4, 0xb7, 0xfc, 0x86, 0xbf, 0xbd, 0x7f, 0x8d, 0xc8, 0xd0, + 0x5e, 0xca, 0x17, 0x71, 0x23, 0x46, 0x61, 0x9d, 0x0e, 0xdd, 0x85, 0x49, 0xc5, 0xa4, 0x7a, 0x0c, + 0xc6, 0x06, 0xa6, 0x55, 0x58, 0x4f, 0x72, 0xc4, 0xe9, 0x4a, 0xec, 0x9f, 0x2b, 0xf2, 0x2e, 0xf6, + 0x22, 0xf7, 0xdd, 0xd5, 0xf0, 0xce, 0x5e, 0x0d, 0xdf, 0xb0, 0x60, 0x82, 0xd6, 0xce, 0x1c, 0xad, + 0xe4, 0x31, 0xaf, 0x62, 0x72, 0x5b, 0x1d, 0x62, 0x72, 0x5f, 0xa4, 0xbb, 0x66, 0xdd, 0x6f, 0x47, + 0x42, 0x77, 0xa7, 0x6d, 0x8b, 0x14, 0x8a, 0x05, 0x56, 0xd0, 0x91, 0x20, 0x10, 0x8f, 0x43, 0x75, + 0x3a, 0x12, 0x04, 0x58, 0x60, 0x65, 0xc8, 0xee, 0xbe, 0xec, 0x90, 0xdd, 0x3c, 0xf2, 0xaa, 0x70, + 0xc9, 0x11, 0x02, 0x97, 0x16, 0x79, 0x55, 0xfa, 0xea, 0xc4, 0x34, 0xf6, 0xd7, 0x8a, 0x30, 0x52, + 0xf1, 0xeb, 0xb1, 0x95, 0xf9, 0x05, 0xc3, 0xca, 0x7c, 0x21, 0x61, 0x65, 0x9e, 0xd0, 0x69, 0xdf, + 0xb5, 0x29, 0x7f, 0xab, 0x6c, 0xca, 0xbf, 0x6a, 0xb1, 0x51, 0x5b, 0x5e, 0xaf, 0x72, 0xbf, 0x3d, + 0x74, 0x19, 0x86, 0xd9, 0x06, 0xc3, 0x5e, 0x23, 0x4b, 0xd3, 0x2b, 0x4b, 0x45, 0xb5, 0x1e, 0x83, + 0xb1, 0x4e, 0x83, 0x2e, 0xc1, 0x50, 0x48, 0x9c, 0xa0, 0xb6, 0xa3, 0x76, 0x57, 0x61, 0x27, 0xe5, + 0x30, 0xac, 0xb0, 0xe8, 0xf5, 0x38, 0xe8, 0x67, 0x31, 0xff, 0x75, 0xa3, 0xde, 0x1e, 0xbe, 0x44, + 0xf2, 0x23, 0x7d, 0xda, 0xb7, 0x01, 0xa5, 0xe9, 0x7b, 0x08, 0x4b, 0x37, 0x6b, 0x86, 0xa5, 0x2b, + 0xa5, 0x42, 0xd2, 0xfd, 0x99, 0x05, 0x63, 0x15, 0xbf, 0x4e, 0x97, 0xee, 0x77, 0xd2, 0x3a, 0xd5, + 0x23, 0x1e, 0x0f, 0x74, 0x88, 0x78, 0xfc, 0x18, 0xf4, 0x57, 0xfc, 0x7a, 0xb9, 0xd2, 0x29, 0xb4, + 0x80, 0xfd, 0x57, 0x2d, 0x18, 0xac, 0xf8, 0xf5, 0x13, 0x30, 0x0b, 0x7c, 0xc8, 0x34, 0x0b, 0x3c, + 0x94, 0x33, 0x6f, 0x72, 0x2c, 0x01, 0x7f, 0xa5, 0x0f, 0x46, 0x69, 0x3b, 0xfd, 0x6d, 0x39, 0x94, + 0x46, 0xb7, 0x59, 0x3d, 0x74, 0x1b, 0x95, 0xc2, 0xfd, 0x46, 0xc3, 0xbf, 0x93, 0x1c, 0xd6, 0x55, + 0x06, 0xc5, 0x02, 0x8b, 0x9e, 0x81, 0xa1, 0x56, 0x40, 0xf6, 0x5c, 0x5f, 0x88, 0xb7, 0x9a, 0x91, + 0xa5, 0x22, 0xe0, 0x58, 0x51, 0xd0, 0x6b, 0x61, 0xe8, 0x7a, 0xf4, 0x28, 0xaf, 0xf9, 0x5e, 0x9d, + 0x6b, 0xce, 0x8b, 0x22, 0x2d, 0x87, 0x06, 0xc7, 0x06, 0x15, 0xba, 0x0d, 0x25, 0xf6, 0x9f, 0x6d, + 0x3b, 0x47, 0x4f, 0xf0, 0x2a, 0x12, 0xfe, 0x09, 0x06, 0x38, 0xe6, 0x85, 0x9e, 0x03, 0x88, 0x64, + 0x68, 0xfb, 0x50, 0x04, 0x5a, 0x53, 0x57, 0x01, 0x15, 0xf4, 0x3e, 0xc4, 0x1a, 0x15, 0x7a, 0x1a, + 0x4a, 0x91, 0xe3, 0x36, 0xae, 0xbb, 0x1e, 0x09, 0x99, 0x46, 0xbc, 0x28, 0xf3, 0xee, 0x09, 0x20, + 0x8e, 0xf1, 0x54, 0x14, 0x63, 0x41, 0x38, 0x78, 0x7a, 0xe8, 0x21, 0x46, 0xcd, 0x44, 0xb1, 0xeb, + 0x0a, 0x8a, 0x35, 0x0a, 0xb4, 0x03, 0x8f, 0xb8, 0x1e, 0x4b, 0x61, 0x41, 0xaa, 0xbb, 0x6e, 0x6b, + 0xe3, 0x7a, 0xf5, 0x16, 0x09, 0xdc, 0xad, 0xfd, 0x45, 0xa7, 0xb6, 0x4b, 0x3c, 0x99, 0xba, 0xf3, + 0x71, 0xd1, 0xc4, 0x47, 0xca, 0x1d, 0x68, 0x71, 0x47, 0x4e, 0xf6, 0xf3, 0x6c, 0xbe, 0xdf, 0xa8, + 0xa2, 0xf7, 0x1a, 0x5b, 0xc7, 0x19, 0x7d, 0xeb, 0x38, 0x3c, 0x98, 0x1d, 0xb8, 0x51, 0xd5, 0x62, + 0x48, 0xbc, 0x04, 0xa7, 0x2b, 0x7e, 0xbd, 0xe2, 0x07, 0xd1, 0xaa, 0x1f, 0xdc, 0x71, 0x82, 0xba, + 0x9c, 0x5e, 0xb3, 0x32, 0x8a, 0x06, 0xdd, 0x3f, 0xfb, 0xf9, 0xee, 0x62, 0x44, 0xc8, 0x78, 0x9e, + 0x49, 0x6c, 0x47, 0x7c, 0xfb, 0x55, 0x63, 0xb2, 0x83, 0x4a, 0x02, 0x73, 0xc5, 0x89, 0x08, 0xba, + 0xc1, 0x92, 0x5b, 0xc7, 0xc7, 0xa8, 0x28, 0xfe, 0x94, 0x96, 0xdc, 0x3a, 0x46, 0x66, 0x9e, 0xbb, + 0x66, 0x79, 0xfb, 0x73, 0xa2, 0x12, 0x7e, 0x07, 0xe7, 0xfe, 0x75, 0xbd, 0x64, 0xb7, 0x95, 0x59, + 0x22, 0x0a, 0xf9, 0xe9, 0x05, 0xb8, 0xd5, 0xb3, 0x63, 0x96, 0x08, 0xfb, 0x45, 0x98, 0xa4, 0x57, + 0x3f, 0x25, 0x47, 0xb1, 0x8f, 0xec, 0x1e, 0xcd, 0xe3, 0x3f, 0xf5, 0xb3, 0x73, 0x20, 0x91, 0xfe, + 0x04, 0x7d, 0x0a, 0xc6, 0x42, 0x72, 0xdd, 0xf5, 0xda, 0x77, 0xa5, 0xe2, 0xa5, 0xc3, 0x9b, 0xc3, + 0xea, 0x8a, 0x4e, 0xc9, 0xd5, 0xb7, 0x26, 0x0c, 0x27, 0xb8, 0xa1, 0x26, 0x8c, 0xdd, 0x71, 0xbd, + 0xba, 0x7f, 0x27, 0x94, 0xfc, 0x87, 0xf2, 0xb5, 0xb8, 0xb7, 0x39, 0x65, 0xa2, 0x8d, 0x46, 0x75, + 0xb7, 0x0d, 0x66, 0x38, 0xc1, 0x9c, 0xae, 0xb5, 0xa0, 0xed, 0x2d, 0x84, 0x37, 0x43, 0x12, 0x88, + 0xe4, 0xea, 0x6c, 0xad, 0x61, 0x09, 0xc4, 0x31, 0x9e, 0xae, 0x35, 0xf6, 0xe7, 0x4a, 0xe0, 0xb7, + 0x79, 0xae, 0x0d, 0xb1, 0xd6, 0xb0, 0x82, 0x62, 0x8d, 0x82, 0xee, 0x45, 0xec, 0xdf, 0xba, 0xef, + 0x61, 0xdf, 0x8f, 0xe4, 0xee, 0xc5, 0x3c, 0x11, 0x34, 0x38, 0x36, 0xa8, 0xd0, 0x2a, 0xa0, 0xb0, + 0xdd, 0x6a, 0x35, 0x98, 0x33, 0x93, 0xd3, 0x60, 0xac, 0xb8, 0x97, 0x47, 0x91, 0xc7, 0x0a, 0xae, + 0xa6, 0xb0, 0x38, 0xa3, 0x04, 0x3d, 0x96, 0xb6, 0x44, 0x53, 0xfb, 0x59, 0x53, 0xb9, 0xc5, 0xa7, + 0xca, 0xdb, 0x29, 0x71, 0x68, 0x05, 0x06, 0xc3, 0xfd, 0xb0, 0x16, 0x89, 0xd0, 0x8e, 0x39, 0x19, + 0xae, 0xaa, 0x8c, 0x44, 0x4b, 0xb0, 0xc8, 0x8b, 0x60, 0x59, 0x16, 0xd5, 0x60, 0x4a, 0x70, 0x5c, + 0xda, 0x71, 0x3c, 0x95, 0x2f, 0x88, 0xfb, 0x74, 0x5f, 0xbe, 0x77, 0x30, 0x3b, 0x25, 0x6a, 0xd6, + 0xd1, 0x87, 0x07, 0xb3, 0x67, 0x2a, 0x7e, 0x3d, 0x03, 0x83, 0xb3, 0xb8, 0xf1, 0xc9, 0x57, 0xab, + 0xf9, 0xcd, 0x56, 0x25, 0xf0, 0xb7, 0xdc, 0x06, 0xe9, 0x64, 0x35, 0xab, 0x1a, 0x94, 0x62, 0xf2, + 0x19, 0x30, 0x9c, 0xe0, 0x66, 0x7f, 0x8e, 0x89, 0x6e, 0x2c, 0x9f, 0x78, 0xd4, 0x0e, 0x08, 0x6a, + 0xc2, 0x68, 0x8b, 0x2d, 0x6e, 0x91, 0x01, 0x43, 0xcc, 0xf5, 0x17, 0x7a, 0xd4, 0xfe, 0xdc, 0xa1, + 0x27, 0x9e, 0xe9, 0x19, 0x55, 0xd1, 0xd9, 0x61, 0x93, 0xbb, 0xfd, 0x2f, 0xcf, 0xb2, 0xc3, 0xbf, + 0xca, 0x55, 0x3a, 0x83, 0xe2, 0x09, 0x89, 0xb8, 0x45, 0xce, 0xe4, 0xeb, 0x16, 0xe3, 0x61, 0x11, + 0xcf, 0x50, 0xb0, 0x2c, 0x8b, 0x3e, 0x09, 0x63, 0xf4, 0x52, 0xa6, 0x0e, 0xe0, 0x70, 0xfa, 0x54, + 0x7e, 0xa8, 0x0f, 0x45, 0xa5, 0x67, 0xc7, 0xd1, 0x0b, 0xe3, 0x04, 0x33, 0xf4, 0x3a, 0xf3, 0x44, + 0x92, 0xac, 0x0b, 0xbd, 0xb0, 0xd6, 0x9d, 0x8e, 0x24, 0x5b, 0x8d, 0x09, 0x6a, 0xc3, 0x54, 0x3a, + 0x97, 0x5e, 0x38, 0x6d, 0xe7, 0x4b, 0xb7, 0xe9, 0x74, 0x78, 0x71, 0x1a, 0x93, 0x34, 0x2e, 0xc4, + 0x59, 0xfc, 0xd1, 0x75, 0x18, 0x15, 0x49, 0xb5, 0xc5, 0xcc, 0x2d, 0x1a, 0x2a, 0xcf, 0x51, 0xac, + 0x23, 0x0f, 0x93, 0x00, 0x6c, 0x16, 0x46, 0xdb, 0x70, 0x4e, 0x4b, 0x72, 0x75, 0x25, 0x70, 0x98, + 0xdf, 0x82, 0xcb, 0xb6, 0x53, 0x4d, 0x2c, 0x79, 0xf4, 0xde, 0xc1, 0xec, 0xb9, 0x8d, 0x4e, 0x84, + 0xb8, 0x33, 0x1f, 0x74, 0x03, 0x4e, 0xf3, 0x87, 0xea, 0xcb, 0xc4, 0xa9, 0x37, 0x5c, 0x4f, 0xc9, + 0x3d, 0x7c, 0xc9, 0x9f, 0xbd, 0x77, 0x30, 0x7b, 0x7a, 0x21, 0x8b, 0x00, 0x67, 0x97, 0x43, 0x1f, + 0x82, 0x52, 0xdd, 0x0b, 0x45, 0x1f, 0x0c, 0x18, 0x79, 0xc4, 0x4a, 0xcb, 0xeb, 0x55, 0xf5, 0xfd, + 0xf1, 0x1f, 0x1c, 0x17, 0x40, 0xdb, 0x5c, 0x2d, 0xae, 0x94, 0x35, 0x83, 0xa9, 0x40, 0x5d, 0x49, + 0x7d, 0xa6, 0xf1, 0x54, 0x95, 0xdb, 0x83, 0xd4, 0x0b, 0x0e, 0xe3, 0x15, 0xab, 0xc1, 0x18, 0xbd, + 0x06, 0x48, 0xc4, 0xab, 0x5f, 0xa8, 0xb1, 0xf4, 0x2a, 0xcc, 0x8a, 0x30, 0x64, 0x3e, 0x9e, 0xac, + 0xa6, 0x28, 0x70, 0x46, 0x29, 0x74, 0x95, 0xee, 0x2a, 0x3a, 0x54, 0xec, 0x5a, 0x2a, 0xeb, 0xe3, + 0x32, 0x69, 0x05, 0x84, 0xf9, 0x61, 0x99, 0x1c, 0x71, 0xa2, 0x1c, 0xaa, 0xc3, 0x23, 0x4e, 0x3b, + 0xf2, 0x99, 0xc5, 0xc1, 0x24, 0xdd, 0xf0, 0x77, 0x89, 0xc7, 0x8c, 0x7d, 0x43, 0x8b, 0x17, 0xa8, + 0x60, 0xb5, 0xd0, 0x81, 0x0e, 0x77, 0xe4, 0x42, 0x05, 0x62, 0x95, 0xe6, 0x19, 0xcc, 0xf0, 0x63, + 0x19, 0xa9, 0x9e, 0x5f, 0x84, 0xe1, 0x1d, 0x3f, 0x8c, 0xd6, 0x49, 0x74, 0xc7, 0x0f, 0x76, 0x45, + 0x18, 0xdd, 0x38, 0x28, 0x79, 0x8c, 0xc2, 0x3a, 0x1d, 0xbd, 0xf1, 0x32, 0x57, 0x94, 0xf2, 0x32, + 0xf3, 0x02, 0x18, 0x8a, 0xf7, 0x98, 0xab, 0x1c, 0x8c, 0x25, 0x5e, 0x92, 0x96, 0x2b, 0x4b, 0xcc, + 0xa2, 0x9f, 0x20, 0x2d, 0x57, 0x96, 0xb0, 0xc4, 0xd3, 0xe9, 0x1a, 0xee, 0x38, 0x01, 0xa9, 0x04, + 0x7e, 0x8d, 0x84, 0x5a, 0x28, 0xfc, 0x87, 0x79, 0x90, 0x60, 0x3a, 0x5d, 0xab, 0x59, 0x04, 0x38, + 0xbb, 0x1c, 0x22, 0xe9, 0x04, 0x6f, 0x63, 0xf9, 0xa6, 0x98, 0xb4, 0x3c, 0xd3, 0x63, 0x8e, 0x37, + 0x0f, 0x26, 0x54, 0x6a, 0x39, 0x1e, 0x16, 0x38, 0x9c, 0x1e, 0x67, 0x73, 0xbb, 0xf7, 0x98, 0xc2, + 0xca, 0xb8, 0x55, 0x4e, 0x70, 0xc2, 0x29, 0xde, 0x46, 0x84, 0xb9, 0x89, 0xae, 0x11, 0xe6, 0xe6, + 0xa1, 0x14, 0xb6, 0x37, 0xeb, 0x7e, 0xd3, 0x71, 0x3d, 0x66, 0xd1, 0xd7, 0xae, 0x5e, 0x55, 0x89, + 0xc0, 0x31, 0x0d, 0x5a, 0x85, 0x21, 0x47, 0x5a, 0xae, 0x50, 0x7e, 0x4c, 0x21, 0x65, 0xaf, 0xe2, + 0x61, 0x36, 0xa4, 0xad, 0x4a, 0x95, 0x45, 0xaf, 0xc0, 0xa8, 0x78, 0x68, 0x2d, 0xb2, 0x9a, 0x4e, + 0x99, 0xaf, 0xe1, 0xaa, 0x3a, 0x12, 0x9b, 0xb4, 0xe8, 0x26, 0x0c, 0x47, 0x7e, 0x83, 0x3d, 0xe9, + 0xa2, 0x62, 0xde, 0x99, 0xfc, 0xe8, 0x78, 0x1b, 0x8a, 0x4c, 0x57, 0x1a, 0xab, 0xa2, 0x58, 0xe7, + 0x83, 0x36, 0xf8, 0x7c, 0x67, 0x81, 0xef, 0x49, 0x38, 0xfd, 0x50, 0xfe, 0x99, 0xa4, 0xe2, 0xe3, + 0x9b, 0xcb, 0x41, 0x94, 0xc4, 0x3a, 0x1b, 0x74, 0x05, 0x26, 0x5b, 0x81, 0xeb, 0xb3, 0x39, 0xa1, + 0x8c, 0x96, 0xd3, 0x66, 0x9a, 0xab, 0x4a, 0x92, 0x00, 0xa7, 0xcb, 0xb0, 0x77, 0xf2, 0x02, 0x38, + 0x7d, 0x96, 0xa7, 0xea, 0xe0, 0x37, 0x59, 0x0e, 0xc3, 0x0a, 0x8b, 0xd6, 0xd8, 0x4e, 0xcc, 0x95, + 0x30, 0xd3, 0x33, 0xf9, 0x61, 0x8c, 0x74, 0x65, 0x0d, 0x17, 0x5e, 0xd5, 0x5f, 0x1c, 0x73, 0x40, + 0x75, 0x2d, 0x43, 0x26, 0xbd, 0x02, 0x84, 0xd3, 0x8f, 0x74, 0xf0, 0x07, 0x4c, 0x5c, 0x8a, 0x62, + 0x81, 0xc0, 0x00, 0x87, 0x38, 0xc1, 0x13, 0x7d, 0x04, 0x26, 0x44, 0xf0, 0xc5, 0xb8, 0x9b, 0xce, + 0xc5, 0x8e, 0xf2, 0x38, 0x81, 0xc3, 0x29, 0x6a, 0x9e, 0x2a, 0xc3, 0xd9, 0x6c, 0x10, 0xb1, 0xf5, + 0x5d, 0x77, 0xbd, 0xdd, 0x70, 0xfa, 0x3c, 0xdb, 0x1f, 0x44, 0xaa, 0x8c, 0x24, 0x16, 0x67, 0x94, + 0x40, 0x1b, 0x30, 0xd1, 0x0a, 0x08, 0x69, 0x32, 0x41, 0x5f, 0x9c, 0x67, 0xb3, 0x3c, 0x4c, 0x04, + 0x6d, 0x49, 0x25, 0x81, 0x3b, 0xcc, 0x80, 0xe1, 0x14, 0x07, 0x74, 0x07, 0x86, 0xfc, 0x3d, 0x12, + 0xec, 0x10, 0xa7, 0x3e, 0x7d, 0xa1, 0xc3, 0xc3, 0x0d, 0x71, 0xb8, 0xdd, 0x10, 0xb4, 0x09, 0x47, + 0x07, 0x09, 0xee, 0xee, 0xe8, 0x20, 0x2b, 0x43, 0xff, 0xaf, 0x05, 0x67, 0xa5, 0x6d, 0xa4, 0xda, + 0xa2, 0xbd, 0xbe, 0xe4, 0x7b, 0x61, 0x14, 0xf0, 0xc0, 0x06, 0x8f, 0xe6, 0x3f, 0xf6, 0xdf, 0xc8, + 0x29, 0xa4, 0xf4, 0xc0, 0x67, 0xf3, 0x28, 0x42, 0x9c, 0x5f, 0x23, 0x5a, 0x82, 0xc9, 0x90, 0x44, + 0x72, 0x33, 0x5a, 0x08, 0x57, 0x5f, 0x5f, 0x5e, 0x9f, 0x7e, 0x8c, 0x47, 0x65, 0xa0, 0x8b, 0xa1, + 0x9a, 0x44, 0xe2, 0x34, 0x3d, 0xba, 0x0c, 0x05, 0x3f, 0x9c, 0x7e, 0xbc, 0x43, 0x52, 0x55, 0xbf, + 0x7e, 0xa3, 0xca, 0x1d, 0xde, 0x6e, 0x54, 0x71, 0xc1, 0x0f, 0x65, 0xba, 0x0a, 0x7a, 0x1f, 0x0b, + 0xa7, 0x9f, 0xe0, 0x5a, 0x43, 0x99, 0xae, 0x82, 0x01, 0x71, 0x8c, 0x47, 0x3b, 0x30, 0x1e, 0x1a, + 0xf7, 0xde, 0x70, 0xfa, 0x22, 0xeb, 0xa9, 0x27, 0xf2, 0x06, 0xcd, 0xa0, 0xd6, 0xa2, 0xcd, 0x9b, + 0x5c, 0x70, 0x92, 0x2d, 0x5f, 0x5d, 0xda, 0x05, 0x3f, 0x9c, 0x7e, 0xb2, 0xcb, 0xea, 0xd2, 0x88, + 0xf5, 0xd5, 0xa5, 0xf3, 0xc0, 0x09, 0x9e, 0x33, 0xdf, 0x05, 0x93, 0x29, 0x71, 0xe9, 0x28, 0x99, + 0x98, 0x66, 0x76, 0x61, 0xd4, 0x98, 0x92, 0x0f, 0xd4, 0xb1, 0xe0, 0x9f, 0x0e, 0x42, 0x49, 0x19, + 0x9d, 0xd1, 0xbc, 0xe9, 0x4b, 0x70, 0x36, 0xe9, 0x4b, 0x30, 0x54, 0xf1, 0xeb, 0x86, 0xfb, 0xc0, + 0x46, 0x46, 0xec, 0xbe, 0xbc, 0x0d, 0xb0, 0xf7, 0x37, 0x0d, 0x9a, 0x26, 0xbf, 0xd8, 0xb3, 0x53, + 0x42, 0x5f, 0x47, 0xe3, 0xc0, 0x15, 0x98, 0xf4, 0x7c, 0x26, 0xa3, 0x93, 0xba, 0x14, 0xc0, 0x98, + 0x9c, 0x55, 0xd2, 0x83, 0xe1, 0x24, 0x08, 0x70, 0xba, 0x0c, 0xad, 0x90, 0x0b, 0x4a, 0x49, 0x6b, + 0x04, 0x97, 0xa3, 0xb0, 0xc0, 0xa2, 0xc7, 0xa0, 0xbf, 0xe5, 0xd7, 0xcb, 0x15, 0x21, 0x9f, 0x6b, + 0x11, 0x63, 0xeb, 0xe5, 0x0a, 0xe6, 0x38, 0xb4, 0x00, 0x03, 0xec, 0x47, 0x38, 0x3d, 0x92, 0x1f, + 0xf5, 0x84, 0x95, 0xd0, 0xf2, 0x5c, 0xb1, 0x02, 0x58, 0x14, 0x64, 0x5a, 0x51, 0x7a, 0xa9, 0x61, + 0x5a, 0xd1, 0xc1, 0xfb, 0xd4, 0x8a, 0x4a, 0x06, 0x38, 0xe6, 0x85, 0xee, 0xc2, 0x69, 0xe3, 0x22, + 0xc9, 0xa7, 0x08, 0x09, 0x45, 0xe4, 0x85, 0xc7, 0x3a, 0xde, 0x20, 0x85, 0x13, 0xc3, 0x39, 0xd1, + 0xe8, 0xd3, 0xe5, 0x2c, 0x4e, 0x38, 0xbb, 0x02, 0xd4, 0x80, 0xc9, 0x5a, 0xaa, 0xd6, 0xa1, 0xde, + 0x6b, 0x55, 0x03, 0x9a, 0xae, 0x31, 0xcd, 0x18, 0xbd, 0x02, 0x43, 0x6f, 0xfa, 0x21, 0x3b, 0xdb, + 0xc4, 0x9d, 0x42, 0x3e, 0xdb, 0x1f, 0x7a, 0xfd, 0x46, 0x95, 0xc1, 0x0f, 0x0f, 0x66, 0x87, 0x2b, + 0x7e, 0x5d, 0xfe, 0xc5, 0xaa, 0x00, 0xfa, 0x01, 0x0b, 0x66, 0xd2, 0x37, 0x55, 0xd5, 0xe8, 0xd1, + 0xde, 0x1b, 0x6d, 0x8b, 0x4a, 0x67, 0x56, 0x72, 0xd9, 0xe1, 0x0e, 0x55, 0xd9, 0xbf, 0x6c, 0x31, + 0xdd, 0xaa, 0x30, 0x0e, 0x92, 0xb0, 0xdd, 0x38, 0x89, 0xf4, 0xbe, 0x2b, 0x86, 0xdd, 0xf2, 0xbe, + 0x9d, 0x5a, 0xfe, 0xa1, 0xc5, 0x9c, 0x5a, 0x4e, 0xf0, 0xf5, 0xca, 0xeb, 0x30, 0x14, 0xc9, 0xb4, + 0xcb, 0x1d, 0x32, 0x12, 0x6b, 0x8d, 0x62, 0x8e, 0x3d, 0x4a, 0xc2, 0x57, 0x19, 0x96, 0x15, 0x1b, + 0xfb, 0xef, 0xf2, 0x11, 0x90, 0x98, 0x13, 0x30, 0x0f, 0x2d, 0x9b, 0xe6, 0xa1, 0xd9, 0x2e, 0x5f, + 0x90, 0x63, 0x26, 0xfa, 0x3b, 0x66, 0xbb, 0x99, 0x66, 0xeb, 0x9d, 0xee, 0x4d, 0x65, 0x7f, 0xc1, + 0x02, 0x88, 0x03, 0x72, 0xf7, 0x90, 0x58, 0xef, 0x25, 0x2a, 0xd3, 0xfb, 0x91, 0x5f, 0xf3, 0x1b, + 0xc2, 0xf8, 0xf9, 0x48, 0x6c, 0xa1, 0xe2, 0xf0, 0x43, 0xed, 0x37, 0x56, 0xd4, 0x68, 0x56, 0x86, + 0xff, 0x2b, 0xc6, 0x36, 0x53, 0x23, 0xf4, 0xdf, 0x97, 0x2c, 0x38, 0x95, 0xe5, 0x0a, 0x4d, 0x6f, + 0x88, 0x5c, 0xc7, 0xa7, 0x3c, 0xdd, 0xd4, 0x68, 0xde, 0x12, 0x70, 0xac, 0x28, 0x7a, 0xce, 0x58, + 0x78, 0xb4, 0x48, 0xd8, 0x37, 0x60, 0xb4, 0x12, 0x10, 0xed, 0x70, 0x7d, 0x95, 0x87, 0x94, 0xe0, + 0xed, 0x79, 0xe6, 0xc8, 0xe1, 0x24, 0xec, 0xaf, 0x14, 0xe0, 0x14, 0x77, 0x18, 0x59, 0xd8, 0xf3, + 0xdd, 0x7a, 0xc5, 0xaf, 0x8b, 0x07, 0x6f, 0x1f, 0x87, 0x91, 0x96, 0xa6, 0x98, 0xed, 0x14, 0xd5, + 0x55, 0x57, 0xe0, 0xc6, 0xaa, 0x24, 0x1d, 0x8a, 0x0d, 0x5e, 0xa8, 0x0e, 0x23, 0x64, 0xcf, 0xad, + 0x29, 0xaf, 0x83, 0xc2, 0x91, 0x0f, 0x3a, 0x55, 0xcb, 0x8a, 0xc6, 0x07, 0x1b, 0x5c, 0x1f, 0x40, + 0x1e, 0x71, 0xfb, 0xc7, 0x2c, 0x78, 0x28, 0x27, 0x06, 0x2c, 0xad, 0xee, 0x0e, 0x73, 0xcd, 0x11, + 0xd3, 0x56, 0x55, 0xc7, 0x1d, 0x76, 0xb0, 0xc0, 0xa2, 0x8f, 0x02, 0x70, 0x87, 0x1b, 0xe2, 0xd5, + 0xba, 0x06, 0xcb, 0x34, 0xe2, 0xfc, 0x69, 0x21, 0xdb, 0x64, 0x79, 0xac, 0xf1, 0xb2, 0xbf, 0xd4, + 0x07, 0xfd, 0xcc, 0xc1, 0x03, 0x55, 0x60, 0x70, 0x87, 0x67, 0xf5, 0xe9, 0x38, 0x6e, 0x94, 0x56, + 0x26, 0x0a, 0x8a, 0xc7, 0x4d, 0x83, 0x62, 0xc9, 0x06, 0xad, 0xc1, 0x14, 0x4f, 0xae, 0xd4, 0x58, + 0x26, 0x0d, 0x67, 0x5f, 0xea, 0x3c, 0x79, 0x26, 0x60, 0xa5, 0xfb, 0x2d, 0xa7, 0x49, 0x70, 0x56, + 0x39, 0xf4, 0x2a, 0x8c, 0xd1, 0x3b, 0xa8, 0xdf, 0x8e, 0x24, 0x27, 0x9e, 0x56, 0x49, 0x89, 0xe5, + 0x1b, 0x06, 0x16, 0x27, 0xa8, 0xd1, 0x2b, 0x30, 0xda, 0x4a, 0x69, 0x77, 0xfb, 0x63, 0x35, 0x88, + 0xa9, 0xd1, 0x35, 0x69, 0x99, 0x37, 0x74, 0x9b, 0xf9, 0x7e, 0x6f, 0xec, 0x04, 0x24, 0xdc, 0xf1, + 0x1b, 0x75, 0x26, 0xfe, 0xf5, 0x6b, 0xde, 0xd0, 0x09, 0x3c, 0x4e, 0x95, 0xa0, 0x5c, 0xb6, 0x1c, + 0xb7, 0xd1, 0x0e, 0x48, 0xcc, 0x65, 0xc0, 0xe4, 0xb2, 0x9a, 0xc0, 0xe3, 0x54, 0x89, 0xee, 0x6a, + 0xeb, 0xc1, 0xe3, 0x51, 0x5b, 0xdb, 0x3f, 0x53, 0x00, 0x63, 0x68, 0xbf, 0x73, 0xd3, 0x3d, 0xd1, + 0x2f, 0xdb, 0x0e, 0x5a, 0x35, 0xe1, 0xcc, 0x94, 0xf9, 0x65, 0x71, 0x16, 0x57, 0xfe, 0x65, 0xf4, + 0x3f, 0x66, 0xa5, 0xe8, 0x1a, 0x3f, 0x5d, 0x09, 0x7c, 0x7a, 0xc8, 0xc9, 0xa0, 0x63, 0xea, 0xd1, + 0xc1, 0xa0, 0x7c, 0x90, 0xdd, 0x21, 0x3c, 0xa7, 0x70, 0xcb, 0xe6, 0x1c, 0x0c, 0xbf, 0x9f, 0xaa, + 0x88, 0x8c, 0x20, 0xb9, 0xa0, 0xcb, 0x30, 0x2c, 0x72, 0xf8, 0x30, 0xdf, 0x78, 0xbe, 0x98, 0x98, + 0x9f, 0xd2, 0x72, 0x0c, 0xc6, 0x3a, 0x8d, 0xfd, 0x83, 0x05, 0x98, 0xca, 0x78, 0xdc, 0xc4, 0x8f, + 0x91, 0x6d, 0x37, 0x8c, 0x54, 0xa2, 0x58, 0xed, 0x18, 0xe1, 0x70, 0xac, 0x28, 0xe8, 0x5e, 0xc5, + 0x0f, 0xaa, 0xe4, 0xe1, 0x24, 0x1e, 0x0f, 0x08, 0xec, 0x11, 0x53, 0xae, 0x5e, 0x80, 0xbe, 0x76, + 0x48, 0x64, 0x60, 0x5d, 0x75, 0x6c, 0x33, 0x9b, 0x2e, 0xc3, 0xd0, 0x6b, 0xd4, 0xb6, 0x32, 0x8f, + 0x6a, 0xd7, 0x28, 0x6e, 0x20, 0xe5, 0x38, 0xda, 0xb8, 0x88, 0x78, 0x8e, 0x17, 0x89, 0xcb, 0x56, + 0x1c, 0x21, 0x92, 0x41, 0xb1, 0xc0, 0xda, 0x5f, 0x2c, 0xc2, 0xd9, 0xdc, 0xe7, 0x8e, 0xb4, 0xe9, + 0x4d, 0xdf, 0x73, 0x23, 0x5f, 0x39, 0x80, 0xf1, 0xa8, 0x90, 0xa4, 0xb5, 0xb3, 0x26, 0xe0, 0x58, + 0x51, 0xa0, 0x8b, 0xd0, 0xcf, 0x34, 0xc2, 0xa9, 0x94, 0xb9, 0x8b, 0xcb, 0x3c, 0x4c, 0x18, 0x47, + 0xf7, 0x9c, 0xe5, 0xfc, 0x31, 0x2a, 0xc1, 0xf8, 0x8d, 0xe4, 0x81, 0x42, 0x9b, 0xeb, 0xfb, 0x0d, + 0xcc, 0x90, 0xe8, 0x09, 0xd1, 0x5f, 0x09, 0x8f, 0x27, 0xec, 0xd4, 0xfd, 0x50, 0xeb, 0xb4, 0xa7, + 0x60, 0x70, 0x97, 0xec, 0x07, 0xae, 0xb7, 0x9d, 0xf4, 0x84, 0xbb, 0xc6, 0xc1, 0x58, 0xe2, 0xcd, + 0x1c, 0x8f, 0x83, 0xc7, 0x9d, 0x9e, 0x7c, 0xa8, 0xab, 0x78, 0xf2, 0xc3, 0x45, 0x18, 0xc7, 0x8b, + 0xcb, 0xef, 0x0e, 0xc4, 0xcd, 0xf4, 0x40, 0x1c, 0x77, 0x7a, 0xf2, 0xee, 0xa3, 0xf1, 0x0b, 0x16, + 0x8c, 0xb3, 0x4c, 0x42, 0x22, 0xa8, 0x81, 0xeb, 0x7b, 0x27, 0x70, 0x15, 0x78, 0x0c, 0xfa, 0x03, + 0x5a, 0x69, 0x32, 0x57, 0x2e, 0x6b, 0x09, 0xe6, 0x38, 0xf4, 0x08, 0xf4, 0xb1, 0x26, 0xd0, 0xc1, + 0x1b, 0xe1, 0x5b, 0xf0, 0xb2, 0x13, 0x39, 0x98, 0x41, 0x59, 0x90, 0x2c, 0x4c, 0x5a, 0x0d, 0x97, + 0x37, 0x3a, 0xb6, 0xd7, 0xbf, 0x33, 0x02, 0x21, 0x64, 0x36, 0xed, 0xed, 0x05, 0xc9, 0xca, 0x66, + 0xd9, 0xf9, 0x9a, 0xfd, 0xc7, 0x05, 0x38, 0x9f, 0x59, 0xae, 0xe7, 0x20, 0x59, 0x9d, 0x4b, 0x3f, + 0xc8, 0x5c, 0x31, 0xc5, 0x13, 0xf4, 0x33, 0xee, 0xeb, 0x55, 0xfa, 0xef, 0xef, 0x21, 0x76, 0x55, + 0x66, 0x97, 0xbd, 0x43, 0x62, 0x57, 0x65, 0xb6, 0x2d, 0x47, 0x4d, 0xf0, 0xe7, 0x85, 0x9c, 0x6f, + 0x61, 0x0a, 0x83, 0x4b, 0x74, 0x9f, 0x61, 0xc8, 0x50, 0x5e, 0xc2, 0xf9, 0x1e, 0xc3, 0x61, 0x58, + 0x61, 0xd1, 0x02, 0x8c, 0x37, 0x5d, 0x8f, 0x6e, 0x3e, 0xfb, 0xa6, 0x28, 0xae, 0x14, 0xf9, 0x6b, + 0x26, 0x1a, 0x27, 0xe9, 0x91, 0xab, 0xc5, 0xb5, 0xe2, 0x5f, 0xf7, 0xca, 0x91, 0x56, 0xdd, 0x9c, + 0xe9, 0xcb, 0xa0, 0x7a, 0x31, 0x23, 0xc6, 0xd5, 0x9a, 0xa6, 0x27, 0x2a, 0xf6, 0xae, 0x27, 0x1a, + 0xc9, 0xd6, 0x11, 0xcd, 0xbc, 0x02, 0xa3, 0xf7, 0x6d, 0x18, 0xb0, 0xbf, 0x51, 0x84, 0x87, 0x3b, + 0x2c, 0x7b, 0xbe, 0xd7, 0x1b, 0x63, 0xa0, 0xed, 0xf5, 0xa9, 0x71, 0xa8, 0xc0, 0xa9, 0xad, 0x76, + 0xa3, 0xb1, 0xcf, 0x9e, 0xdf, 0x90, 0xba, 0xa4, 0x10, 0x32, 0xa5, 0x54, 0x8e, 0x9c, 0x5a, 0xcd, + 0xa0, 0xc1, 0x99, 0x25, 0xe9, 0x15, 0x8b, 0x9e, 0x24, 0xfb, 0x8a, 0x55, 0xe2, 0x8a, 0x85, 0x75, + 0x24, 0x36, 0x69, 0xd1, 0x15, 0x98, 0x74, 0xf6, 0x1c, 0x97, 0x07, 0x07, 0x97, 0x0c, 0xf8, 0x1d, + 0x4b, 0xe9, 0x73, 0x17, 0x92, 0x04, 0x38, 0x5d, 0x06, 0xbd, 0x06, 0xc8, 0xdf, 0x64, 0x4e, 0xfa, + 0xf5, 0x2b, 0xc4, 0x13, 0x26, 0x67, 0x36, 0x76, 0xc5, 0x78, 0x4b, 0xb8, 0x91, 0xa2, 0xc0, 0x19, + 0xa5, 0x12, 0x41, 0x9c, 0x06, 0xf2, 0x83, 0x38, 0x75, 0xde, 0x17, 0xbb, 0xa6, 0x29, 0xba, 0x0c, + 0xa3, 0x47, 0x74, 0x3d, 0xb5, 0xff, 0xad, 0x45, 0x4f, 0x3c, 0x5e, 0xc6, 0x8c, 0x90, 0xfa, 0x0a, + 0xf3, 0x8d, 0xe5, 0xea, 0x61, 0x2d, 0x4a, 0xce, 0x69, 0xcd, 0x37, 0x36, 0x46, 0x62, 0x93, 0x96, + 0xcf, 0x21, 0xcd, 0xa7, 0xd5, 0xb8, 0x15, 0x88, 0x30, 0x6e, 0x8a, 0x02, 0x7d, 0x0c, 0x06, 0xeb, + 0xee, 0x9e, 0x1b, 0x0a, 0xe5, 0xd8, 0x91, 0x2d, 0x51, 0xf1, 0xd6, 0xb9, 0xcc, 0xd9, 0x60, 0xc9, + 0xcf, 0xfe, 0xe1, 0x42, 0xdc, 0x27, 0xaf, 0xb7, 0xfd, 0xc8, 0x39, 0x81, 0x93, 0xfc, 0x8a, 0x71, + 0x92, 0x3f, 0xd1, 0x29, 0x96, 0x1d, 0x6b, 0x52, 0xee, 0x09, 0x7e, 0x23, 0x71, 0x82, 0x3f, 0xd9, + 0x9d, 0x55, 0xe7, 0x93, 0xfb, 0xef, 0x59, 0x30, 0x69, 0xd0, 0x9f, 0xc0, 0x01, 0xb2, 0x6a, 0x1e, + 0x20, 0x8f, 0x76, 0xfd, 0x86, 0x9c, 0x83, 0xe3, 0xfb, 0x8a, 0x89, 0xb6, 0xb3, 0x03, 0xe3, 0x4d, + 0xe8, 0xdb, 0x71, 0x82, 0x7a, 0xa7, 0xdc, 0x1d, 0xa9, 0x42, 0x73, 0x57, 0x9d, 0x40, 0x98, 0xe9, + 0x9f, 0x91, 0xbd, 0x4e, 0x41, 0x5d, 0x4d, 0xf4, 0xac, 0x2a, 0xf4, 0x12, 0x0c, 0x84, 0x35, 0xbf, + 0xa5, 0xde, 0xeb, 0x5c, 0x60, 0x1d, 0xcd, 0x20, 0x87, 0x07, 0xb3, 0xc8, 0xac, 0x8e, 0x82, 0xb1, + 0xa0, 0x47, 0x1f, 0x87, 0x51, 0xf6, 0x4b, 0xf9, 0xcc, 0x15, 0xf3, 0x35, 0x18, 0x55, 0x9d, 0x90, + 0x3b, 0x94, 0x1a, 0x20, 0x6c, 0xb2, 0x9a, 0xd9, 0x86, 0x92, 0xfa, 0xac, 0x07, 0x6a, 0xea, 0xfd, + 0xd7, 0x45, 0x98, 0xca, 0x98, 0x73, 0x28, 0x34, 0x46, 0xe2, 0x72, 0x8f, 0x53, 0xf5, 0x6d, 0x8e, + 0x45, 0xc8, 0x2e, 0x50, 0x75, 0x31, 0xb7, 0x7a, 0xae, 0xf4, 0x66, 0x48, 0x92, 0x95, 0x52, 0x50, + 0xf7, 0x4a, 0x69, 0x65, 0x27, 0xd6, 0xd5, 0xb4, 0x22, 0xd5, 0xd2, 0x07, 0x3a, 0xa6, 0xbf, 0xda, + 0x07, 0xa7, 0xb2, 0xc2, 0x6b, 0xa2, 0xcf, 0x26, 0x32, 0xc7, 0xbe, 0xd0, 0x6b, 0x60, 0x4e, 0x9e, + 0x4e, 0x56, 0x84, 0xfd, 0x9b, 0x33, 0x73, 0xc9, 0x76, 0xed, 0x66, 0x51, 0x27, 0x0b, 0x3c, 0x12, + 0xf0, 0x8c, 0xbf, 0x72, 0xfb, 0x78, 0x7f, 0xcf, 0x0d, 0x10, 0xa9, 0x82, 0xc3, 0x84, 0x3f, 0x8e, + 0x04, 0x77, 0xf7, 0xc7, 0x91, 0x35, 0xa3, 0x32, 0x0c, 0xd4, 0xb8, 0xa3, 0x47, 0xb1, 0xfb, 0x16, + 0xc6, 0xbd, 0x3c, 0xd4, 0x06, 0x2c, 0xbc, 0x3b, 0x04, 0x83, 0x19, 0x17, 0x86, 0xb5, 0x8e, 0x79, + 0xa0, 0x93, 0x67, 0x97, 0x1e, 0x7c, 0x5a, 0x17, 0x3c, 0xd0, 0x09, 0xf4, 0x63, 0x16, 0x24, 0x5e, + 0x7b, 0x28, 0xa5, 0x9c, 0x95, 0xab, 0x94, 0xbb, 0x00, 0x7d, 0x81, 0xdf, 0x20, 0xc9, 0x6c, 0xad, + 0xd8, 0x6f, 0x10, 0xcc, 0x30, 0x94, 0x22, 0x8a, 0x55, 0x2d, 0x23, 0xfa, 0x35, 0x52, 0x5c, 0x10, + 0x1f, 0x83, 0xfe, 0x06, 0xd9, 0x23, 0x8d, 0x64, 0x52, 0xad, 0xeb, 0x14, 0x88, 0x39, 0xce, 0xfe, + 0x85, 0x3e, 0x38, 0xd7, 0x31, 0x0a, 0x10, 0xbd, 0x8c, 0x6d, 0x3b, 0x11, 0xb9, 0xe3, 0xec, 0x27, + 0xb3, 0xdf, 0x5c, 0xe1, 0x60, 0x2c, 0xf1, 0xec, 0xe9, 0x21, 0x0f, 0x62, 0x9f, 0x50, 0x61, 0x8a, + 0xd8, 0xf5, 0x02, 0x6b, 0xaa, 0xc4, 0x8a, 0xc7, 0xa1, 0x12, 0x7b, 0x0e, 0x20, 0x0c, 0x1b, 0xdc, + 0x27, 0xae, 0x2e, 0xde, 0x34, 0xc6, 0xc9, 0x0e, 0xaa, 0xd7, 0x05, 0x06, 0x6b, 0x54, 0x68, 0x19, + 0x26, 0x5a, 0x81, 0x1f, 0x71, 0x8d, 0xf0, 0x32, 0x77, 0x1b, 0xed, 0x37, 0x03, 0xb0, 0x54, 0x12, + 0x78, 0x9c, 0x2a, 0x81, 0x5e, 0x84, 0x61, 0x11, 0x94, 0xa5, 0xe2, 0xfb, 0x0d, 0xa1, 0x84, 0x52, + 0x9e, 0x94, 0xd5, 0x18, 0x85, 0x75, 0x3a, 0xad, 0x18, 0x53, 0x33, 0x0f, 0x66, 0x16, 0xe3, 0xaa, + 0x66, 0x8d, 0x2e, 0x11, 0xb5, 0x77, 0xa8, 0xa7, 0xa8, 0xbd, 0xb1, 0x5a, 0xae, 0xd4, 0xb3, 0xd5, + 0x13, 0xba, 0x2a, 0xb2, 0xbe, 0xda, 0x07, 0x53, 0x62, 0xe2, 0x3c, 0xe8, 0xe9, 0x72, 0x33, 0x3d, + 0x5d, 0x8e, 0x43, 0x71, 0xf7, 0xee, 0x9c, 0x39, 0xe9, 0x39, 0xf3, 0x23, 0x16, 0x98, 0x92, 0x1a, + 0xfa, 0xbf, 0x72, 0xd3, 0x87, 0xbd, 0x98, 0x2b, 0xf9, 0x29, 0xaf, 0xc1, 0xb7, 0x99, 0x48, 0xcc, + 0xfe, 0x37, 0x16, 0x3c, 0xda, 0x95, 0x23, 0x5a, 0x81, 0x12, 0x13, 0x27, 0xb5, 0x8b, 0xde, 0x93, + 0xca, 0xad, 0x5c, 0x22, 0x72, 0xa4, 0xdb, 0xb8, 0x24, 0x5a, 0x49, 0xe5, 0x69, 0x7b, 0x2a, 0x23, + 0x4f, 0xdb, 0x69, 0xa3, 0x7b, 0xee, 0x33, 0x51, 0xdb, 0x0f, 0xd1, 0x13, 0xc7, 0x78, 0xd2, 0x85, + 0xde, 0x6f, 0x28, 0x1d, 0xed, 0x84, 0xd2, 0x11, 0x99, 0xd4, 0xda, 0x19, 0xf2, 0x11, 0x98, 0x60, + 0xd1, 0xda, 0xd8, 0x23, 0x07, 0xf1, 0xd8, 0xac, 0x10, 0x3b, 0x32, 0x5f, 0x4f, 0xe0, 0x70, 0x8a, + 0xda, 0xfe, 0xa3, 0x22, 0x0c, 0xf0, 0xe5, 0x77, 0x02, 0xd7, 0xcb, 0xa7, 0xa1, 0xe4, 0x36, 0x9b, + 0x6d, 0x9e, 0x7a, 0xab, 0x3f, 0x76, 0x8b, 0x2d, 0x4b, 0x20, 0x8e, 0xf1, 0x68, 0x55, 0xe8, 0xbb, + 0x3b, 0x04, 0x84, 0xe5, 0x0d, 0x9f, 0x5b, 0x76, 0x22, 0x87, 0xcb, 0x4a, 0xea, 0x9c, 0x8d, 0x35, + 0xe3, 0xe8, 0x53, 0x00, 0x61, 0x14, 0xb8, 0xde, 0x36, 0x85, 0x89, 0x38, 0xd4, 0xef, 0xed, 0xc0, + 0xad, 0xaa, 0x88, 0x39, 0xcf, 0x78, 0xcf, 0x51, 0x08, 0xac, 0x71, 0x44, 0x73, 0xc6, 0x49, 0x3f, + 0x93, 0x18, 0x3b, 0xe0, 0x5c, 0xe3, 0x31, 0x9b, 0xf9, 0x00, 0x94, 0x14, 0xf3, 0x6e, 0xda, 0xaf, + 0x11, 0x5d, 0x2c, 0xfa, 0x30, 0x8c, 0x27, 0xda, 0x76, 0x24, 0xe5, 0xd9, 0x2f, 0x5a, 0x30, 0xce, + 0x1b, 0xb3, 0xe2, 0xed, 0x89, 0xd3, 0xe0, 0x2d, 0x38, 0xd5, 0xc8, 0xd8, 0x95, 0xc5, 0xf0, 0xf7, + 0xbe, 0x8b, 0x2b, 0x65, 0x59, 0x16, 0x16, 0x67, 0xd6, 0x81, 0x2e, 0xd1, 0x15, 0x47, 0x77, 0x5d, + 0xa7, 0x21, 0xde, 0xd6, 0x8f, 0xf0, 0xd5, 0xc6, 0x61, 0x58, 0x61, 0xed, 0xdf, 0xb5, 0x60, 0x92, + 0xb7, 0xfc, 0x1a, 0xd9, 0x57, 0x7b, 0xd3, 0xb7, 0xb2, 0xed, 0x22, 0xe9, 0x63, 0x21, 0x27, 0xe9, + 0xa3, 0xfe, 0x69, 0xc5, 0x8e, 0x9f, 0xf6, 0x15, 0x0b, 0xc4, 0x0c, 0x39, 0x01, 0x7d, 0xc6, 0x77, + 0x99, 0xfa, 0x8c, 0x99, 0xfc, 0x45, 0x90, 0xa3, 0xc8, 0xf8, 0x33, 0x0b, 0x26, 0x38, 0x41, 0x6c, + 0xab, 0xff, 0x96, 0x8e, 0x43, 0x2f, 0xa9, 0xe1, 0xaf, 0x91, 0xfd, 0x0d, 0xbf, 0xe2, 0x44, 0x3b, + 0xd9, 0x1f, 0x65, 0x0c, 0x56, 0x5f, 0xc7, 0xc1, 0xaa, 0xcb, 0x05, 0x64, 0xe4, 0x44, 0xea, 0xf2, + 0x42, 0xfe, 0xa8, 0x39, 0x91, 0xec, 0x6f, 0x5a, 0x80, 0x78, 0x35, 0x86, 0xe0, 0x46, 0xc5, 0x21, + 0x06, 0xd5, 0x0e, 0xba, 0x78, 0x6b, 0x52, 0x18, 0xac, 0x51, 0x1d, 0x4b, 0xf7, 0x24, 0x1c, 0x2e, + 0x8a, 0xdd, 0x1d, 0x2e, 0x8e, 0xd0, 0xa3, 0xff, 0x6c, 0x00, 0x92, 0xcf, 0xda, 0xd0, 0x2d, 0x18, + 0xa9, 0x39, 0x2d, 0x67, 0xd3, 0x6d, 0xb8, 0x91, 0x4b, 0xc2, 0x4e, 0xde, 0x58, 0x4b, 0x1a, 0x9d, + 0x30, 0x91, 0x6b, 0x10, 0x6c, 0xf0, 0x41, 0x73, 0x00, 0xad, 0xc0, 0xdd, 0x73, 0x1b, 0x64, 0x9b, + 0xa9, 0x5d, 0x58, 0x34, 0x0f, 0xee, 0x1a, 0x26, 0xa1, 0x58, 0xa3, 0xc8, 0x88, 0x21, 0x50, 0x7c, + 0xc0, 0x31, 0x04, 0xe0, 0xc4, 0x62, 0x08, 0xf4, 0x1d, 0x29, 0x86, 0xc0, 0xd0, 0x91, 0x63, 0x08, + 0xf4, 0xf7, 0x14, 0x43, 0x00, 0xc3, 0x19, 0x29, 0x7b, 0xd2, 0xff, 0xab, 0x6e, 0x83, 0x88, 0x0b, + 0x07, 0x0f, 0x41, 0x32, 0x73, 0xef, 0x60, 0xf6, 0x0c, 0xce, 0xa4, 0xc0, 0x39, 0x25, 0xd1, 0x47, + 0x61, 0xda, 0x69, 0x34, 0xfc, 0x3b, 0x6a, 0x50, 0x57, 0xc2, 0x9a, 0xd3, 0xe0, 0x26, 0x90, 0x41, + 0xc6, 0xf5, 0x91, 0x7b, 0x07, 0xb3, 0xd3, 0x0b, 0x39, 0x34, 0x38, 0xb7, 0x34, 0xfa, 0x10, 0x94, + 0x5a, 0x81, 0x5f, 0x5b, 0xd3, 0xde, 0xde, 0x9e, 0xa7, 0x1d, 0x58, 0x91, 0xc0, 0xc3, 0x83, 0xd9, + 0x51, 0xf5, 0x87, 0x1d, 0xf8, 0x71, 0x81, 0x8c, 0xa0, 0x00, 0xc3, 0xc7, 0x1a, 0x14, 0x60, 0x17, + 0xa6, 0xaa, 0x24, 0x70, 0x9d, 0x86, 0xfb, 0x16, 0x95, 0x97, 0xe5, 0xfe, 0xb4, 0x01, 0xa5, 0x20, + 0xb1, 0x23, 0xf7, 0x14, 0xa4, 0x55, 0x4b, 0x4e, 0x23, 0x77, 0xe0, 0x98, 0x91, 0xfd, 0x3f, 0x2c, + 0x18, 0x14, 0xcf, 0xd8, 0x4e, 0x40, 0x6a, 0x5c, 0x30, 0x8c, 0x12, 0xb3, 0xd9, 0x1d, 0xc6, 0x1a, + 0x93, 0x6b, 0x8e, 0x28, 0x27, 0xcc, 0x11, 0x8f, 0x76, 0x62, 0xd2, 0xd9, 0x10, 0xf1, 0x97, 0x8b, + 0x54, 0x7a, 0x37, 0x1e, 0x54, 0x3f, 0xf8, 0x2e, 0x58, 0x87, 0xc1, 0x50, 0x3c, 0xe8, 0x2d, 0xe4, + 0xbf, 0xa8, 0x48, 0x0e, 0x62, 0xec, 0x45, 0x27, 0x9e, 0xf0, 0x4a, 0x26, 0x99, 0x2f, 0x85, 0x8b, + 0x0f, 0xf0, 0xa5, 0x70, 0xb7, 0x27, 0xe7, 0x7d, 0xc7, 0xf1, 0xe4, 0xdc, 0xfe, 0x3a, 0x3b, 0x39, + 0x75, 0xf8, 0x09, 0x08, 0x55, 0x57, 0xcc, 0x33, 0xd6, 0xee, 0x30, 0xb3, 0x44, 0xa3, 0x72, 0x84, + 0xab, 0x9f, 0xb7, 0xe0, 0x5c, 0xc6, 0x57, 0x69, 0x92, 0xd6, 0x33, 0x30, 0xe4, 0xb4, 0xeb, 0xae, + 0x5a, 0xcb, 0x9a, 0x69, 0x72, 0x41, 0xc0, 0xb1, 0xa2, 0x40, 0x4b, 0x30, 0x49, 0xee, 0xb6, 0x5c, + 0x6e, 0xc8, 0xd5, 0x9d, 0x8f, 0x8b, 0xfc, 0xed, 0xe3, 0x4a, 0x12, 0x89, 0xd3, 0xf4, 0x2a, 0x38, + 0x51, 0x31, 0x37, 0x38, 0xd1, 0xdf, 0xb0, 0x60, 0x58, 0x3d, 0x69, 0x7d, 0xe0, 0xbd, 0xfd, 0x11, + 0xb3, 0xb7, 0x1f, 0xee, 0xd0, 0xdb, 0x39, 0xdd, 0xfc, 0xdb, 0x05, 0xd5, 0xde, 0x8a, 0x1f, 0x44, + 0x3d, 0x48, 0x70, 0xf7, 0xff, 0x70, 0xe2, 0x32, 0x0c, 0x3b, 0xad, 0x96, 0x44, 0x48, 0x0f, 0x38, + 0x16, 0x72, 0x3b, 0x06, 0x63, 0x9d, 0x46, 0xbd, 0xe3, 0x28, 0xe6, 0xbe, 0xe3, 0xa8, 0x03, 0x44, + 0x4e, 0xb0, 0x4d, 0x22, 0x0a, 0x13, 0x0e, 0xbb, 0xf9, 0xfb, 0x4d, 0x3b, 0x72, 0x1b, 0x73, 0xae, + 0x17, 0x85, 0x51, 0x30, 0x57, 0xf6, 0xa2, 0x1b, 0x01, 0xbf, 0x42, 0x6a, 0xe1, 0xbd, 0x14, 0x2f, + 0xac, 0xf1, 0x95, 0xe1, 0x1b, 0x58, 0x1d, 0xfd, 0xa6, 0x2b, 0xc5, 0xba, 0x80, 0x63, 0x45, 0x61, + 0x7f, 0x80, 0x9d, 0x3e, 0xac, 0x4f, 0x8f, 0x16, 0xda, 0xea, 0xa7, 0x46, 0xd4, 0x68, 0x30, 0xa3, + 0xe8, 0xb2, 0x1e, 0x40, 0xab, 0xf3, 0x66, 0x4f, 0x2b, 0xd6, 0x5f, 0x15, 0xc6, 0x51, 0xb6, 0xd0, + 0x27, 0x52, 0xee, 0x31, 0xcf, 0x76, 0x39, 0x35, 0x8e, 0xe0, 0x10, 0xc3, 0xf2, 0xef, 0xb0, 0xec, + 0x24, 0xe5, 0x8a, 0x58, 0x17, 0x5a, 0xfe, 0x1d, 0x81, 0xc0, 0x31, 0x0d, 0x15, 0xa6, 0xd4, 0x9f, + 0x70, 0x1a, 0xc5, 0x71, 0x68, 0x15, 0x75, 0x88, 0x35, 0x0a, 0x34, 0x2f, 0x14, 0x0a, 0xdc, 0x2e, + 0xf0, 0x70, 0x42, 0xa1, 0x20, 0xbb, 0x4b, 0xd3, 0x02, 0x5d, 0x86, 0x61, 0x95, 0x6d, 0xbd, 0xc2, + 0x33, 0x5f, 0x89, 0x69, 0xb6, 0x12, 0x83, 0xb1, 0x4e, 0x83, 0x36, 0x60, 0x3c, 0xe4, 0x7a, 0x36, + 0x15, 0x1c, 0x9c, 0xeb, 0x2b, 0xdf, 0xab, 0x1e, 0x13, 0x9b, 0xe8, 0x43, 0x06, 0xe2, 0xbb, 0x93, + 0x0c, 0xb1, 0x90, 0x64, 0x81, 0x5e, 0x85, 0xb1, 0x86, 0xef, 0xd4, 0x17, 0x9d, 0x86, 0xe3, 0xd5, + 0x58, 0xff, 0x0c, 0x99, 0x49, 0x7b, 0xaf, 0x1b, 0x58, 0x9c, 0xa0, 0xa6, 0xc2, 0x9b, 0x0e, 0x11, + 0x21, 0xc2, 0x1c, 0x6f, 0x9b, 0x84, 0x22, 0x77, 0x36, 0x13, 0xde, 0xae, 0xe7, 0xd0, 0xe0, 0xdc, + 0xd2, 0xe8, 0x25, 0x18, 0x91, 0x9f, 0xaf, 0x45, 0x24, 0x89, 0x9f, 0xc4, 0x68, 0x38, 0x6c, 0x50, + 0xa2, 0x10, 0x4e, 0xcb, 0xff, 0x1b, 0x81, 0xb3, 0xb5, 0xe5, 0xd6, 0xc4, 0x33, 0x7d, 0xfe, 0x76, + 0xf6, 0xc3, 0xf2, 0x81, 0xe7, 0x4a, 0x16, 0xd1, 0xe1, 0xc1, 0xec, 0x23, 0xa2, 0xd7, 0x32, 0xf1, + 0x38, 0x9b, 0x37, 0x5a, 0x83, 0xa9, 0x1d, 0xe2, 0x34, 0xa2, 0x9d, 0xa5, 0x1d, 0x52, 0xdb, 0x95, + 0x0b, 0x8e, 0xc5, 0x38, 0xd1, 0x9e, 0x8e, 0x5c, 0x4d, 0x93, 0xe0, 0xac, 0x72, 0xe8, 0x0d, 0x98, + 0x6e, 0xb5, 0x37, 0x1b, 0x6e, 0xb8, 0xb3, 0xee, 0x47, 0xcc, 0x09, 0x49, 0x25, 0x6e, 0x17, 0xc1, + 0x50, 0x54, 0x14, 0x99, 0x4a, 0x0e, 0x1d, 0xce, 0xe5, 0x80, 0xde, 0x82, 0xd3, 0x89, 0x89, 0x20, + 0xc2, 0x41, 0x8c, 0xe5, 0xa7, 0x06, 0xa9, 0x66, 0x15, 0x10, 0x91, 0x55, 0xb2, 0x50, 0x38, 0xbb, + 0x0a, 0xf4, 0x32, 0x80, 0xdb, 0x5a, 0x75, 0x9a, 0x6e, 0x83, 0x5e, 0x15, 0xa7, 0xd8, 0x1c, 0xa1, + 0xd7, 0x06, 0x28, 0x57, 0x24, 0x94, 0xee, 0xcd, 0xe2, 0xdf, 0x3e, 0xd6, 0xa8, 0xd1, 0x75, 0x18, + 0x13, 0xff, 0xf6, 0xc5, 0x90, 0xf2, 0xa8, 0x24, 0x8f, 0xb3, 0x90, 0x52, 0x15, 0x1d, 0x73, 0x98, + 0x82, 0xe0, 0x44, 0x59, 0xb4, 0x0d, 0xe7, 0x64, 0x9a, 0x37, 0x7d, 0x7e, 0xca, 0x31, 0x08, 0x59, + 0x3e, 0x8e, 0x21, 0xfe, 0x2a, 0x65, 0xa1, 0x13, 0x21, 0xee, 0xcc, 0x87, 0x9e, 0xeb, 0xfa, 0x34, + 0xe7, 0xef, 0x76, 0x4f, 0x73, 0x0f, 0x27, 0x7a, 0xae, 0x5f, 0x4f, 0x22, 0x71, 0x9a, 0x1e, 0xf9, + 0x70, 0xda, 0xf5, 0xb2, 0x66, 0xf5, 0x19, 0xc6, 0xe8, 0x83, 0xfc, 0xc9, 0x72, 0xe7, 0x19, 0x9d, + 0x89, 0xc7, 0xd9, 0x7c, 0xdf, 0x9e, 0xdf, 0xdf, 0xef, 0x58, 0xb4, 0xb4, 0x26, 0x9d, 0xa3, 0x4f, + 0xc3, 0x88, 0xfe, 0x51, 0x42, 0xd2, 0xb8, 0x98, 0x2d, 0xbc, 0x6a, 0x7b, 0x02, 0x97, 0xed, 0xd5, + 0xba, 0xd7, 0x71, 0xd8, 0xe0, 0x88, 0x6a, 0x19, 0x0f, 0xfb, 0xe7, 0x7b, 0x93, 0x64, 0x7a, 0x77, + 0x7b, 0x23, 0x90, 0x3d, 0xdd, 0xd1, 0x75, 0x18, 0xaa, 0x35, 0x5c, 0xe2, 0x45, 0xe5, 0x4a, 0xa7, + 0xd0, 0x85, 0x4b, 0x82, 0x46, 0xac, 0x1f, 0x91, 0x5a, 0x83, 0xc3, 0xb0, 0xe2, 0x60, 0xff, 0x7a, + 0x01, 0x66, 0xbb, 0xe4, 0x69, 0x49, 0x98, 0xa1, 0xac, 0x9e, 0xcc, 0x50, 0x0b, 0x30, 0x1e, 0xff, + 0xd3, 0x35, 0x5c, 0xca, 0x93, 0xf5, 0x96, 0x89, 0xc6, 0x49, 0xfa, 0x9e, 0x1f, 0x25, 0xe8, 0x96, + 0xac, 0xbe, 0xae, 0xcf, 0x6a, 0x0c, 0x0b, 0x76, 0x7f, 0xef, 0xd7, 0xde, 0x5c, 0x6b, 0xa4, 0xfd, + 0xf5, 0x02, 0x9c, 0x56, 0x5d, 0xf8, 0x9d, 0xdb, 0x71, 0x37, 0xd3, 0x1d, 0x77, 0x0c, 0xb6, 0x5c, + 0xfb, 0x06, 0x0c, 0xf0, 0x58, 0x8c, 0x3d, 0x88, 0xdb, 0x8f, 0x99, 0x11, 0x9a, 0x95, 0x84, 0x67, + 0x44, 0x69, 0xfe, 0x01, 0x0b, 0xc6, 0x13, 0xaf, 0xdb, 0x10, 0xd6, 0x9e, 0x40, 0xdf, 0x8f, 0x48, + 0x9c, 0x25, 0x6c, 0x5f, 0x80, 0xbe, 0x1d, 0x3f, 0x8c, 0x92, 0x8e, 0x1e, 0x57, 0xfd, 0x30, 0xc2, + 0x0c, 0x63, 0xff, 0x9e, 0x05, 0xfd, 0x1b, 0x8e, 0xeb, 0x45, 0xd2, 0x28, 0x60, 0xe5, 0x18, 0x05, + 0x7a, 0xf9, 0x2e, 0xf4, 0x22, 0x0c, 0x90, 0xad, 0x2d, 0x52, 0x8b, 0xc4, 0xa8, 0xca, 0xf8, 0x11, + 0x03, 0x2b, 0x0c, 0x4a, 0xe5, 0x3f, 0x56, 0x19, 0xff, 0x8b, 0x05, 0x31, 0xba, 0x0d, 0xa5, 0xc8, + 0x6d, 0x92, 0x85, 0x7a, 0x5d, 0x98, 0xca, 0xef, 0x23, 0x06, 0xc6, 0x86, 0x64, 0x80, 0x63, 0x5e, + 0xf6, 0x17, 0x0b, 0x00, 0x71, 0x10, 0xab, 0x6e, 0x9f, 0xb8, 0x98, 0x32, 0xa2, 0x5e, 0xcc, 0x30, + 0xa2, 0xa2, 0x98, 0x61, 0x86, 0x05, 0x55, 0x75, 0x53, 0xb1, 0xa7, 0x6e, 0xea, 0x3b, 0x4a, 0x37, + 0x2d, 0xc1, 0x64, 0x1c, 0x84, 0xcb, 0x8c, 0x41, 0xc8, 0x8e, 0xce, 0x8d, 0x24, 0x12, 0xa7, 0xe9, + 0x6d, 0x02, 0x17, 0x54, 0x2c, 0x22, 0x71, 0xa2, 0x31, 0x3f, 0x70, 0xdd, 0x28, 0xdd, 0xa5, 0x9f, + 0x62, 0x2b, 0x71, 0x21, 0xd7, 0x4a, 0xfc, 0x93, 0x16, 0x9c, 0x4a, 0xd6, 0xc3, 0x1e, 0x4d, 0x7f, + 0xc1, 0x82, 0xd3, 0xcc, 0x56, 0xce, 0x6a, 0x4d, 0x5b, 0xe6, 0x5f, 0xe8, 0x18, 0x5f, 0x29, 0xa7, + 0xc5, 0x71, 0xa0, 0x92, 0xb5, 0x2c, 0xd6, 0x38, 0xbb, 0x46, 0xfb, 0xbf, 0xf7, 0xc1, 0x74, 0x5e, + 0x60, 0x26, 0xf6, 0x4c, 0xc4, 0xb9, 0x5b, 0xdd, 0x25, 0x77, 0x84, 0x33, 0x7e, 0xfc, 0x4c, 0x84, + 0x83, 0xb1, 0xc4, 0x27, 0x53, 0x6f, 0x14, 0x7a, 0x4c, 0xbd, 0xb1, 0x03, 0x93, 0x77, 0x76, 0x88, + 0x77, 0xd3, 0x0b, 0x9d, 0xc8, 0x0d, 0xb7, 0x5c, 0x66, 0x57, 0xe6, 0xf3, 0x46, 0xe6, 0xeb, 0x9d, + 0xbc, 0x9d, 0x24, 0x38, 0x3c, 0x98, 0x3d, 0x67, 0x00, 0xe2, 0x26, 0xf3, 0x8d, 0x04, 0xa7, 0x99, + 0xa6, 0x33, 0x97, 0xf4, 0x3d, 0xe0, 0xcc, 0x25, 0x4d, 0x57, 0x78, 0xa3, 0xc8, 0x37, 0x00, 0xec, + 0xc6, 0xb8, 0xa6, 0xa0, 0x58, 0xa3, 0x40, 0x9f, 0x04, 0xa4, 0x67, 0x66, 0x32, 0xe2, 0x62, 0x3e, + 0x7b, 0xef, 0x60, 0x16, 0xad, 0xa7, 0xb0, 0x87, 0x07, 0xb3, 0x53, 0x14, 0x5a, 0xf6, 0xe8, 0xcd, + 0x33, 0x0e, 0x26, 0x96, 0xc1, 0x08, 0xdd, 0x86, 0x09, 0x0a, 0x65, 0x2b, 0x4a, 0x06, 0xdd, 0xe4, + 0xb7, 0xc5, 0xa7, 0xef, 0x1d, 0xcc, 0x4e, 0xac, 0x27, 0x70, 0x79, 0xac, 0x53, 0x4c, 0xd0, 0xcb, + 0x30, 0x16, 0xcf, 0xab, 0x6b, 0x64, 0x9f, 0x07, 0xb9, 0x29, 0x71, 0x85, 0xf7, 0x9a, 0x81, 0xc1, + 0x09, 0x4a, 0xfb, 0x0b, 0x16, 0x9c, 0xcd, 0xcd, 0x1e, 0x8e, 0x2e, 0xc1, 0x90, 0xd3, 0x72, 0xb9, + 0xf9, 0x42, 0x1c, 0x35, 0x4c, 0x4d, 0x56, 0x29, 0x73, 0xe3, 0x85, 0xc2, 0xd2, 0x1d, 0x7e, 0xd7, + 0xf5, 0xea, 0xc9, 0x1d, 0xfe, 0x9a, 0xeb, 0xd5, 0x31, 0xc3, 0xa8, 0x23, 0xab, 0x98, 0xfb, 0x14, + 0xe1, 0xab, 0x74, 0xad, 0x66, 0xe4, 0x19, 0x3f, 0xd9, 0x66, 0xa0, 0xa7, 0x75, 0x53, 0xa3, 0xf0, + 0x2a, 0xcc, 0x35, 0x33, 0x7e, 0xbf, 0x05, 0xe2, 0xe9, 0x72, 0x0f, 0x67, 0xf2, 0xc7, 0x61, 0x64, + 0x2f, 0x9d, 0xb5, 0xee, 0x42, 0xfe, 0x5b, 0x6e, 0x11, 0xed, 0x5b, 0x09, 0xda, 0x46, 0x86, 0x3a, + 0x83, 0x97, 0x5d, 0x07, 0x81, 0x5d, 0x26, 0xcc, 0xa0, 0xd0, 0xbd, 0x35, 0xcf, 0x01, 0xd4, 0x19, + 0x2d, 0x4b, 0x65, 0x5b, 0x30, 0x25, 0xae, 0x65, 0x85, 0xc1, 0x1a, 0x95, 0xfd, 0x2f, 0x0a, 0x30, + 0x2c, 0xb3, 0xa4, 0xb5, 0xbd, 0x5e, 0xd4, 0x7e, 0x47, 0x4a, 0x9b, 0x8c, 0xe6, 0xa1, 0xc4, 0xf4, + 0xd2, 0x95, 0x58, 0x5b, 0xaa, 0xb4, 0x42, 0x6b, 0x12, 0x81, 0x63, 0x1a, 0xba, 0x3b, 0x86, 0xed, + 0x4d, 0x46, 0x9e, 0x78, 0x68, 0x5b, 0xe5, 0x60, 0x2c, 0xf1, 0xe8, 0xa3, 0x30, 0xc1, 0xcb, 0x05, + 0x7e, 0xcb, 0xd9, 0xe6, 0xb6, 0xac, 0x7e, 0x15, 0xbd, 0x64, 0x62, 0x2d, 0x81, 0x3b, 0x3c, 0x98, + 0x3d, 0x95, 0x84, 0x31, 0x23, 0x6d, 0x8a, 0x0b, 0x73, 0x59, 0xe3, 0x95, 0xd0, 0x5d, 0x3d, 0xe5, + 0xe9, 0x16, 0xa3, 0xb0, 0x4e, 0x67, 0x7f, 0x1a, 0x50, 0x3a, 0x5f, 0x1c, 0x7a, 0x8d, 0xbb, 0x3c, + 0xbb, 0x01, 0xa9, 0x77, 0x32, 0xda, 0xea, 0x31, 0x3a, 0xe4, 0x1b, 0x39, 0x5e, 0x0a, 0xab, 0xf2, + 0xf6, 0xff, 0x57, 0x84, 0x89, 0x64, 0x54, 0x00, 0x74, 0x15, 0x06, 0xb8, 0x48, 0x29, 0xd8, 0x77, + 0xf0, 0x09, 0xd2, 0x62, 0x09, 0xb0, 0xc3, 0x55, 0x48, 0xa5, 0xa2, 0x3c, 0x7a, 0x03, 0x86, 0xeb, + 0xfe, 0x1d, 0xef, 0x8e, 0x13, 0xd4, 0x17, 0x2a, 0x65, 0x31, 0x9d, 0x33, 0x15, 0x15, 0xcb, 0x31, + 0x99, 0x1e, 0x9f, 0x80, 0xd9, 0xbf, 0x63, 0x14, 0xd6, 0xd9, 0xa1, 0x0d, 0x96, 0x64, 0x62, 0xcb, + 0xdd, 0x5e, 0x73, 0x5a, 0x9d, 0xde, 0xbf, 0x2c, 0x49, 0x22, 0x8d, 0xf3, 0xa8, 0xc8, 0x44, 0xc1, + 0x11, 0x38, 0x66, 0x84, 0x3e, 0x0b, 0x53, 0x61, 0x8e, 0xe9, 0x24, 0x2f, 0x7d, 0x68, 0x27, 0x6b, + 0xc2, 0xe2, 0x43, 0xf7, 0x0e, 0x66, 0xa7, 0xb2, 0x8c, 0x2c, 0x59, 0xd5, 0xd8, 0x5f, 0x3a, 0x05, + 0xc6, 0x22, 0x36, 0xb2, 0x49, 0x5b, 0xc7, 0x94, 0x4d, 0x1a, 0xc3, 0x10, 0x69, 0xb6, 0xa2, 0xfd, + 0x65, 0x37, 0x10, 0x63, 0x92, 0xc9, 0x73, 0x45, 0xd0, 0xa4, 0x79, 0x4a, 0x0c, 0x56, 0x7c, 0xb2, + 0x53, 0x7e, 0x17, 0xbf, 0x85, 0x29, 0xbf, 0xfb, 0x4e, 0x30, 0xe5, 0xf7, 0x3a, 0x0c, 0x6e, 0xbb, + 0x11, 0x26, 0x2d, 0x5f, 0x5c, 0xe6, 0x32, 0xe7, 0xe1, 0x15, 0x4e, 0x92, 0x4e, 0x2e, 0x2b, 0x10, + 0x58, 0x32, 0x41, 0xaf, 0xa9, 0x15, 0x38, 0x90, 0xaf, 0x70, 0x49, 0x3b, 0xaf, 0x64, 0xae, 0x41, + 0x91, 0xd8, 0x7b, 0xf0, 0x7e, 0x13, 0x7b, 0xaf, 0xca, 0x74, 0xdc, 0x43, 0xf9, 0x8f, 0xd5, 0x58, + 0xb6, 0xed, 0x2e, 0x49, 0xb8, 0x6f, 0xe9, 0x29, 0xcc, 0x4b, 0xf9, 0x3b, 0x81, 0xca, 0x4e, 0xde, + 0x63, 0xe2, 0xf2, 0xef, 0xb7, 0xe0, 0x74, 0x2b, 0x2b, 0x9b, 0xbf, 0xf0, 0xf3, 0x78, 0xb1, 0x97, + 0x9c, 0xaf, 0xa9, 0xf4, 0xff, 0x5c, 0x47, 0x9a, 0x49, 0x86, 0xb3, 0xab, 0xa3, 0x1d, 0x1d, 0x6c, + 0xd6, 0x85, 0xbf, 0xc1, 0x63, 0x39, 0x19, 0xd0, 0x3b, 0xe4, 0x3d, 0xdf, 0xc8, 0xc8, 0xb6, 0xfd, + 0x78, 0x5e, 0xb6, 0xed, 0x9e, 0x73, 0x6c, 0xbf, 0xa6, 0x72, 0x9f, 0x8f, 0xe6, 0x4f, 0x25, 0x9e, + 0xd9, 0xbc, 0x6b, 0xc6, 0xf3, 0xd7, 0x54, 0xc6, 0xf3, 0x0e, 0x61, 0xb5, 0x79, 0x3e, 0xf3, 0xae, + 0x79, 0xce, 0xb5, 0x5c, 0xe5, 0xe3, 0xc7, 0x93, 0xab, 0xdc, 0x38, 0x6a, 0x78, 0xba, 0xec, 0xa7, + 0xbb, 0x1c, 0x35, 0x06, 0xdf, 0xce, 0x87, 0x0d, 0xcf, 0xcb, 0x3e, 0x79, 0x5f, 0x79, 0xd9, 0x6f, + 0xe9, 0x79, 0xce, 0x51, 0x97, 0x44, 0xde, 0x94, 0xa8, 0xc7, 0xec, 0xe6, 0xb7, 0xf4, 0x03, 0x70, + 0x2a, 0x9f, 0xaf, 0x3a, 0xe7, 0xd2, 0x7c, 0x33, 0x8f, 0xc0, 0x54, 0xd6, 0xf4, 0x53, 0x27, 0x93, + 0x35, 0xfd, 0xf4, 0xb1, 0x67, 0x4d, 0x3f, 0x73, 0x02, 0x59, 0xd3, 0x1f, 0x3a, 0xc1, 0xac, 0xe9, + 0xb7, 0x98, 0x73, 0x14, 0x0f, 0x00, 0x25, 0xc2, 0x80, 0x3f, 0x95, 0x13, 0x3f, 0x2d, 0x1d, 0x25, + 0x8a, 0x7f, 0x9c, 0x42, 0xe1, 0x98, 0x55, 0x46, 0x36, 0xf6, 0xe9, 0x07, 0x90, 0x8d, 0x7d, 0x3d, + 0xce, 0xc6, 0x7e, 0x36, 0x7f, 0xa8, 0x33, 0x9e, 0xd3, 0xe4, 0xe4, 0x60, 0xbf, 0xa5, 0xe7, 0x4e, + 0x7f, 0xb8, 0x83, 0x15, 0x2c, 0x4b, 0xa1, 0xdc, 0x21, 0x63, 0xfa, 0xab, 0x3c, 0x63, 0xfa, 0x23, + 0xf9, 0x3b, 0x79, 0xf2, 0xb8, 0x33, 0xf2, 0xa4, 0xd3, 0x76, 0xa9, 0x00, 0xaa, 0x2c, 0xe0, 0x79, + 0x4e, 0xbb, 0x54, 0x04, 0xd6, 0x74, 0xbb, 0x14, 0x0a, 0xc7, 0xac, 0xec, 0x1f, 0x2c, 0xc0, 0xf9, + 0xce, 0xeb, 0x2d, 0xd6, 0x92, 0x57, 0x62, 0x87, 0x80, 0x84, 0x96, 0x9c, 0xdf, 0xd9, 0x62, 0xaa, + 0x9e, 0xe3, 0x41, 0x5e, 0x81, 0x49, 0xf5, 0x0e, 0xa7, 0xe1, 0xd6, 0xf6, 0xd7, 0xe3, 0x6b, 0xb2, + 0x8a, 0x9c, 0x50, 0x4d, 0x12, 0xe0, 0x74, 0x19, 0xb4, 0x00, 0xe3, 0x06, 0xb0, 0xbc, 0x2c, 0xee, + 0x66, 0x71, 0x88, 0x6d, 0x13, 0x8d, 0x93, 0xf4, 0xf6, 0x97, 0x2d, 0x78, 0x28, 0x27, 0xdd, 0x68, + 0xcf, 0xe1, 0x0e, 0xb7, 0x60, 0xbc, 0x65, 0x16, 0xed, 0x12, 0xa1, 0xd5, 0x48, 0x6a, 0xaa, 0xda, + 0x9a, 0x40, 0xe0, 0x24, 0x53, 0xfb, 0x67, 0x0b, 0x70, 0xae, 0xa3, 0x63, 0x29, 0xc2, 0x70, 0x66, + 0xbb, 0x19, 0x3a, 0x4b, 0x01, 0xa9, 0x13, 0x2f, 0x72, 0x9d, 0x46, 0xb5, 0x45, 0x6a, 0x9a, 0x9d, + 0x83, 0x79, 0x68, 0x5e, 0x59, 0xab, 0x2e, 0xa4, 0x29, 0x70, 0x4e, 0x49, 0xb4, 0x0a, 0x28, 0x8d, + 0x11, 0x23, 0xcc, 0x42, 0xe7, 0xa7, 0xf9, 0xe1, 0x8c, 0x12, 0xe8, 0x03, 0x30, 0xaa, 0x1c, 0x56, + 0xb5, 0x11, 0x67, 0x1b, 0x3b, 0xd6, 0x11, 0xd8, 0xa4, 0x43, 0x97, 0x79, 0xee, 0x05, 0x91, 0xa5, + 0x43, 0x18, 0x45, 0xc6, 0x65, 0x62, 0x05, 0x01, 0xc6, 0x3a, 0xcd, 0xe2, 0x4b, 0xbf, 0xf1, 0x07, + 0xe7, 0xdf, 0xf3, 0x5b, 0x7f, 0x70, 0xfe, 0x3d, 0xbf, 0xfb, 0x07, 0xe7, 0xdf, 0xf3, 0xdd, 0xf7, + 0xce, 0x5b, 0xbf, 0x71, 0xef, 0xbc, 0xf5, 0x5b, 0xf7, 0xce, 0x5b, 0xbf, 0x7b, 0xef, 0xbc, 0xf5, + 0xfb, 0xf7, 0xce, 0x5b, 0x5f, 0xfc, 0xc3, 0xf3, 0xef, 0xf9, 0x38, 0x8a, 0x03, 0x88, 0xce, 0xd3, + 0xd1, 0x99, 0xdf, 0xbb, 0xfc, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xc2, 0xee, 0x75, 0x5f, 0xef, 0x0c, 0x01, 0x00, } @@ -65016,7 +65016,7 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ExternalTrafficPolicy = ServiceExternalTrafficPolicyType(dAtA[iNdEx:postIndex]) + m.ExternalTrafficPolicy = ServiceExternalTrafficPolicy(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 12: if wireType != 0 { @@ -65274,7 +65274,7 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := ServiceInternalTrafficPolicyType(dAtA[iNdEx:postIndex]) + s := ServiceInternalTrafficPolicy(dAtA[iNdEx:postIndex]) m.InternalTrafficPolicy = &s iNdEx = postIndex default: diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index 0d491bdf84f..8e1ce73fa0c 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -4368,34 +4368,47 @@ const ( ServiceTypeExternalName ServiceType = "ExternalName" ) -// ServiceInternalTrafficPolicyType describes how nodes distribute service traffic they +// ServiceInternalTrafficPolicy describes how nodes distribute service traffic they // receive on the ClusterIP. // +enum -type ServiceInternalTrafficPolicyType string +type ServiceInternalTrafficPolicy string const ( // ServiceInternalTrafficPolicyCluster routes traffic to all endpoints. - ServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicyType = "Cluster" + ServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicy = "Cluster" // ServiceInternalTrafficPolicyLocal routes traffic only to endpoints on the same // node as the client pod (dropping the traffic if there are no local endpoints). - ServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicyType = "Local" + ServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicy = "Local" ) -// ServiceExternalTrafficPolicyType describes how nodes distribute service traffic they -// receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, -// and LoadBalancer IPs). +// for backwards compat // +enum -type ServiceExternalTrafficPolicyType string +type ServiceInternalTrafficPolicyType = ServiceInternalTrafficPolicy + +// ServiceExternalTrafficPolicy describes how nodes distribute service traffic they +// receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, +// and LoadBalancer IPs. +// +enum +type ServiceExternalTrafficPolicy string const ( - // ServiceExternalTrafficPolicyTypeCluster routes traffic to all endpoints. - ServiceExternalTrafficPolicyTypeCluster ServiceExternalTrafficPolicyType = "Cluster" + // ServiceExternalTrafficPolicyCluster routes traffic to all endpoints. + ServiceExternalTrafficPolicyCluster ServiceExternalTrafficPolicy = "Cluster" - // ServiceExternalTrafficPolicyTypeLocal preserves the source IP of the traffic by + // ServiceExternalTrafficPolicyLocal preserves the source IP of the traffic by // routing only to endpoints on the same node as the traffic was received on // (dropping the traffic if there are no local endpoints). - ServiceExternalTrafficPolicyTypeLocal ServiceExternalTrafficPolicyType = "Local" + ServiceExternalTrafficPolicyLocal ServiceExternalTrafficPolicy = "Local" +) + +// for backwards compat +// +enum +type ServiceExternalTrafficPolicyType = ServiceExternalTrafficPolicy + +const ( + ServiceExternalTrafficPolicyTypeLocal = ServiceExternalTrafficPolicyLocal + ServiceExternalTrafficPolicyTypeCluster = ServiceExternalTrafficPolicyCluster ) // These are the valid conditions of a service. @@ -4628,7 +4641,7 @@ type ServiceSpec struct { // a NodePort from within the cluster may need to take traffic policy into account // when picking a node. // +optional - ExternalTrafficPolicy ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty" protobuf:"bytes,11,opt,name=externalTrafficPolicy"` + ExternalTrafficPolicy ServiceExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty" protobuf:"bytes,11,opt,name=externalTrafficPolicy"` // healthCheckNodePort specifies the healthcheck nodePort for the service. // This only applies when type is set to LoadBalancer and @@ -4725,7 +4738,7 @@ type ServiceSpec struct { // "Cluster", uses the standard behavior of routing to all endpoints evenly // (possibly modified by topology and other features). // +optional - InternalTrafficPolicy *ServiceInternalTrafficPolicyType `json:"internalTrafficPolicy,omitempty" protobuf:"bytes,22,opt,name=internalTrafficPolicy"` + InternalTrafficPolicy *ServiceInternalTrafficPolicy `json:"internalTrafficPolicy,omitempty" protobuf:"bytes,22,opt,name=internalTrafficPolicy"` } // ServicePort contains information on service's port. diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index 2bf1c8ad648..9a3b46fdc35 100644 --- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -5517,7 +5517,7 @@ func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { } if in.InternalTrafficPolicy != nil { in, out := &in.InternalTrafficPolicy, &out.InternalTrafficPolicy - *out = new(ServiceInternalTrafficPolicyType) + *out = new(ServiceInternalTrafficPolicy) **out = **in } return diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go index db376b941bb..493af6fb3c1 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go @@ -35,7 +35,7 @@ type ServiceSpecApplyConfiguration struct { LoadBalancerIP *string `json:"loadBalancerIP,omitempty"` LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"` ExternalName *string `json:"externalName,omitempty"` - ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"` + ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty"` HealthCheckNodePort *int32 `json:"healthCheckNodePort,omitempty"` PublishNotReadyAddresses *bool `json:"publishNotReadyAddresses,omitempty"` SessionAffinityConfig *SessionAffinityConfigApplyConfiguration `json:"sessionAffinityConfig,omitempty"` @@ -43,7 +43,7 @@ type ServiceSpecApplyConfiguration struct { IPFamilyPolicy *corev1.IPFamilyPolicy `json:"ipFamilyPolicy,omitempty"` AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"` LoadBalancerClass *string `json:"loadBalancerClass,omitempty"` - InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicyType `json:"internalTrafficPolicy,omitempty"` + InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicy `json:"internalTrafficPolicy,omitempty"` } // ServiceSpecApplyConfiguration constructs an declarative configuration of the ServiceSpec type for use with @@ -152,7 +152,7 @@ func (b *ServiceSpecApplyConfiguration) WithExternalName(value string) *ServiceS // WithExternalTrafficPolicy sets the ExternalTrafficPolicy field in the declarative configuration to the given value // and returns the receiver, so that objects can be built by chaining "With" function invocations. // If called multiple times, the ExternalTrafficPolicy field is set to the value of the last call. -func (b *ServiceSpecApplyConfiguration) WithExternalTrafficPolicy(value corev1.ServiceExternalTrafficPolicyType) *ServiceSpecApplyConfiguration { +func (b *ServiceSpecApplyConfiguration) WithExternalTrafficPolicy(value corev1.ServiceExternalTrafficPolicy) *ServiceSpecApplyConfiguration { b.ExternalTrafficPolicy = &value return b } @@ -218,7 +218,7 @@ func (b *ServiceSpecApplyConfiguration) WithLoadBalancerClass(value string) *Ser // WithInternalTrafficPolicy sets the InternalTrafficPolicy field in the declarative configuration to the given value // and returns the receiver, so that objects can be built by chaining "With" function invocations. // If called multiple times, the InternalTrafficPolicy field is set to the value of the last call. -func (b *ServiceSpecApplyConfiguration) WithInternalTrafficPolicy(value corev1.ServiceInternalTrafficPolicyType) *ServiceSpecApplyConfiguration { +func (b *ServiceSpecApplyConfiguration) WithInternalTrafficPolicy(value corev1.ServiceInternalTrafficPolicy) *ServiceSpecApplyConfiguration { b.InternalTrafficPolicy = &value return b } diff --git a/staging/src/k8s.io/cloud-provider/controllers/service/controller.go b/staging/src/k8s.io/cloud-provider/controllers/service/controller.go index 2a67e5f7162..0640494612e 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/service/controller.go +++ b/staging/src/k8s.io/cloud-provider/controllers/service/controller.go @@ -935,7 +935,7 @@ var ( ) func getNodePredicatesForService(service *v1.Service) []NodeConditionPredicate { - if service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal { + if service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyLocal { return etpLocalNodePredicates } return allNodePredicates diff --git a/staging/src/k8s.io/cloud-provider/controllers/service/controller_test.go b/staging/src/k8s.io/cloud-provider/controllers/service/controller_test.go index e389642addd..1896cee9ead 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/service/controller_test.go +++ b/staging/src/k8s.io/cloud-provider/controllers/service/controller_test.go @@ -73,7 +73,7 @@ func newETPLocalService(name string, serviceType v1.ServiceType) *v1.Service { }, Spec: v1.ServiceSpec{ Type: serviceType, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, } } @@ -1334,7 +1334,7 @@ func TestNeedsUpdate(t *testing.T) { updateFn: func() { oldSvc = defaultExternalService() newSvc = defaultExternalService() - newSvc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + newSvc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }, expectedNeedsUpdate: true, }, diff --git a/staging/src/k8s.io/cloud-provider/service/helpers/helper.go b/staging/src/k8s.io/cloud-provider/service/helpers/helper.go index 0609361762b..e363c7db2c5 100644 --- a/staging/src/k8s.io/cloud-provider/service/helpers/helper.go +++ b/staging/src/k8s.io/cloud-provider/service/helpers/helper.go @@ -101,7 +101,7 @@ func RequestsOnlyLocalTraffic(service *v1.Service) bool { service.Spec.Type != v1.ServiceTypeNodePort { return false } - return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal + return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyLocal } // NeedsHealthCheck checks if service needs health check. diff --git a/staging/src/k8s.io/cloud-provider/service/helpers/helper_test.go b/staging/src/k8s.io/cloud-provider/service/helpers/helper_test.go index f29a1ff2e96..58c0be8831b 100644 --- a/staging/src/k8s.io/cloud-provider/service/helpers/helper_test.go +++ b/staging/src/k8s.io/cloud-provider/service/helpers/helper_test.go @@ -161,25 +161,25 @@ func TestRequestsOnlyLocalTraffic(t *testing.T) { checkRequestsOnlyLocalTraffic(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkRequestsOnlyLocalTraffic(true, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) checkRequestsOnlyLocalTraffic(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkRequestsOnlyLocalTraffic(true, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) } @@ -201,25 +201,25 @@ func TestNeedsHealthCheck(t *testing.T) { checkNeedsHealthCheck(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkNeedsHealthCheck(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) checkNeedsHealthCheck(false, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyCluster, }, }) checkNeedsHealthCheck(true, &v1.Service{ Spec: v1.ServiceSpec{ Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, }, }) } diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go index 2aceff30890..5b9cfeea86d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go @@ -3899,7 +3899,7 @@ func (c *Cloud) buildNLBHealthCheckConfiguration(svc *v1.Service) (healthCheckCo HealthyThreshold: defaultNlbHealthCheckThreshold, UnhealthyThreshold: defaultNlbHealthCheckThreshold, } - if svc.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal { + if svc.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyLocal { path, port := servicehelpers.GetServiceHealthCheckPathPort(svc) hc = healthCheckConfig{ Port: strconv.Itoa(int(port)), diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go index 8330df2919d..9b7a172c499 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go @@ -3293,7 +3293,7 @@ func TestCloud_buildNLBHealthCheckConfiguration(t *testing.T) { NodePort: 32205, }, }, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, HealthCheckNodePort: 32213, }, }, @@ -3335,7 +3335,7 @@ func TestCloud_buildNLBHealthCheckConfiguration(t *testing.T) { NodePort: 32205, }, }, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, + ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyLocal, HealthCheckNodePort: 32213, }, }, diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go index a8a60e16770..c408b205a95 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go @@ -2102,7 +2102,7 @@ func TestReconcileLoadBalancer(t *testing.T) { service7 := getTestService("service1", v1.ProtocolUDP, nil, false, 80) service7.Spec.HealthCheckNodePort = 10081 - service7.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + service7.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal lb7 := getTestLoadBalancer(pointer.String("testCluster"), pointer.String("rg"), pointer.String("testCluster"), pointer.String("aservice1"), service7, "basic") lb7.FrontendIPConfigurations = &[]network.FrontendIPConfiguration{} lb7.Probes = &[]network.Probe{} diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go index 22e40a1fc34..1d651f34ca5 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go @@ -783,7 +783,7 @@ func TestReconcileLoadBalancerNodeHealth(t *testing.T) { setMockEnv(az, ctrl, expectedInterfaces, expectedVirtualMachines, 1) svc := getTestService("service1", v1.ProtocolTCP, nil, false, 80) - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.HealthCheckNodePort = int32(32456) expectedLBs := make([]network.LoadBalancer, 0) diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go index ca398d98e34..e656d9e7261 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go @@ -608,7 +608,7 @@ func TestEnsureInternalLoadBalancerWithSpecialHealthCheck(t *testing.T) { svc := fakeLoadbalancerService(string(LBTypeInternal)) svc.Spec.HealthCheckNodePort = healthCheckNodePort svc.Spec.Type = v1.ServiceTypeLoadBalancer - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc, err = gce.client.CoreV1().Services(svc.Namespace).Create(context.TODO(), svc, metav1.CreateOptions{}) require.NoError(t, err) status, err := createInternalLoadBalancer(gce, svc, nil, []string{nodeName}, vals.ClusterName, vals.ClusterID, vals.ZoneName) diff --git a/test/e2e/apps/deployment.go b/test/e2e/apps/deployment.go index cb987e185a5..6de1a98837f 100644 --- a/test/e2e/apps/deployment.go +++ b/test/e2e/apps/deployment.go @@ -1381,7 +1381,7 @@ func testRollingUpdateDeploymentWithLocalTrafficLoadBalancer(f *framework.Framew jig := e2eservice.NewTestJig(c, ns, name) jig.Labels = podLabels service, err := jig.CreateLoadBalancerService(e2eservice.GetServiceLoadBalancerCreationTimeout(c), func(svc *v1.Service) { - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }) framework.ExpectNoError(err) diff --git a/test/e2e/framework/service/jig.go b/test/e2e/framework/service/jig.go index 202c872ae12..c49321febe8 100644 --- a/test/e2e/framework/service/jig.go +++ b/test/e2e/framework/service/jig.go @@ -196,7 +196,7 @@ func (j *TestJig) CreateOnlyLocalNodePortService(createPod bool) (*v1.Service, e ginkgo.By("creating a service " + j.Namespace + "/" + j.Name + " with type=NodePort and ExternalTrafficPolicy=Local") svc, err := j.CreateTCPService(func(svc *v1.Service) { svc.Spec.Type = v1.ServiceTypeNodePort - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal svc.Spec.Ports = []v1.ServicePort{{Protocol: v1.ProtocolTCP, Port: 80}} }) if err != nil { @@ -221,7 +221,7 @@ func (j *TestJig) CreateOnlyLocalLoadBalancerService(timeout time.Duration, crea tweak func(svc *v1.Service)) (*v1.Service, error) { _, err := j.CreateLoadBalancerService(timeout, func(svc *v1.Service) { ginkgo.By("setting ExternalTrafficPolicy=Local") - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal if tweak != nil { tweak(svc) } diff --git a/test/e2e/network/firewall.go b/test/e2e/network/firewall.go index d8a00acedaa..a4b05823de0 100644 --- a/test/e2e/network/firewall.go +++ b/test/e2e/network/firewall.go @@ -130,7 +130,7 @@ var _ = common.SIGDescribe("Firewall rule", func() { // OnlyLocal service is needed to examine which exact nodes the requests are being forwarded to by the Load Balancer on GCE ginkgo.By("Updating LoadBalancer service to ExternalTrafficPolicy=Local") svc, err = jig.UpdateService(func(svc *v1.Service) { - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }) framework.ExpectNoError(err) diff --git a/test/e2e/network/loadbalancer.go b/test/e2e/network/loadbalancer.go index 869f9cdd4e7..a1041ac8ad5 100644 --- a/test/e2e/network/loadbalancer.go +++ b/test/e2e/network/loadbalancer.go @@ -835,7 +835,7 @@ var _ = common.SIGDescribe("LoadBalancers", func() { svc := getServeHostnameService("affinity-lb-esipp") svc.Spec.Type = v1.ServiceTypeLoadBalancer - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal execAffinityTestForLBService(f, cs, svc) }) @@ -846,7 +846,7 @@ var _ = common.SIGDescribe("LoadBalancers", func() { svc := getServeHostnameService("affinity-lb-esipp-transition") svc.Spec.Type = v1.ServiceTypeLoadBalancer - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal execAffinityTestForLBServiceWithTransition(f, cs, svc) }) @@ -857,7 +857,7 @@ var _ = common.SIGDescribe("LoadBalancers", func() { svc := getServeHostnameService("affinity-lb") svc.Spec.Type = v1.ServiceTypeLoadBalancer - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyCluster execAffinityTestForLBService(f, cs, svc) }) @@ -868,7 +868,7 @@ var _ = common.SIGDescribe("LoadBalancers", func() { svc := getServeHostnameService("affinity-lb-transition") svc.Spec.Type = v1.ServiceTypeLoadBalancer - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyCluster execAffinityTestForLBServiceWithTransition(f, cs, svc) }) @@ -1574,7 +1574,7 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() { ginkgo.By("turning ESIPP off") svc, err = jig.UpdateService(func(svc *v1.Service) { - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyCluster }) framework.ExpectNoError(err) if svc.Spec.HealthCheckNodePort > 0 { @@ -1685,7 +1685,7 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() { ginkgo.By("setting ExternalTraffic field back to OnlyLocal") svc, err = jig.UpdateService(func(svc *v1.Service) { - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal // Request the same healthCheckNodePort as before, to test the user-requested allocation path svc.Spec.HealthCheckNodePort = int32(healthCheckNodePort) }) diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go index 05bef333d0e..2f68ca7e409 100644 --- a/test/e2e/network/service.go +++ b/test/e2e/network/service.go @@ -2794,7 +2794,7 @@ var _ = common.SIGDescribe("Services", func() { {Port: 80, Name: "http", Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(80)}, } svc.Spec.Type = v1.ServiceTypeLoadBalancer - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }) framework.ExpectNoError(err) @@ -3150,7 +3150,7 @@ var _ = common.SIGDescribe("Services", func() { {Port: 80, Name: "http", Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(80)}, } svc.Spec.Type = v1.ServiceTypeNodePort - svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyLocal }) framework.ExpectNoError(err)