From 62c5fbe619846d9947c9ae1805653d215d21ce3c Mon Sep 17 00:00:00 2001 From: Maciek Pytel Date: Mon, 9 May 2022 17:24:31 +0200 Subject: [PATCH 1/3] Update to go 1.18.1 This follows go update in kubernetes: https://github.com/kubernetes/kubernetes/pull/109461 --- builder/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/Dockerfile b/builder/Dockerfile index 7016f9207713..2ac2f4c3c563 100644 --- a/builder/Dockerfile +++ b/builder/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM golang:1.17.5 +FROM golang:1.18.1 LABEL maintainer="Marcin Wielgus " ENV GOPATH /gopath/ From 658e50d702b86cf0f8c2ab1a9f86b5d39c3fce62 Mon Sep 17 00:00:00 2001 From: Maciek Pytel Date: Wed, 11 May 2022 14:53:41 +0200 Subject: [PATCH 2/3] Update dependencies for Cluster Autoscaler 1.24.0 Manually removed the update to vendor/sigs.k8s.io/cloud-provider-azure/pkg/provider/doc.go as per discussion in https://github.com/kubernetes/autoscaler/issues/4875. --- cluster-autoscaler/go.mod | 71 +- cluster-autoscaler/go.sum | 88 +- .../cadvisor/container/containerd/client.go | 9 + .../cadvisor/container/containerd/handler.go | 9 +- .../vendor/k8s.io/api/apps/v1/generated.proto | 1 + .../vendor/k8s.io/api/apps/v1/types.go | 1 + .../k8s.io/api/apps/v1beta1/generated.proto | 1 + .../vendor/k8s.io/api/apps/v1beta1/types.go | 1 + .../k8s.io/api/apps/v1beta2/generated.proto | 1 + .../vendor/k8s.io/api/apps/v1beta2/types.go | 1 + .../k8s.io/api/certificates/v1/types.go | 1 - .../vendor/k8s.io/api/core/v1/generated.pb.go | 2293 ++++++++--------- .../vendor/k8s.io/api/core/v1/generated.proto | 29 +- .../vendor/k8s.io/api/core/v1/types.go | 30 +- .../core/v1/types_swagger_doc_generated.go | 18 +- .../api/core/v1/zz_generated.deepcopy.go | 21 - .../k8s.io/api/networking/v1alpha1/doc.go | 23 - .../api/networking/v1alpha1/generated.pb.go | 1082 -------- .../api/networking/v1alpha1/generated.proto | 92 - .../api/networking/v1alpha1/register.go | 56 - .../k8s.io/api/networking/v1alpha1/types.go | 93 - .../v1alpha1/types_swagger_doc_generated.go | 71 - .../v1alpha1/zz_generated.deepcopy.go | 125 - .../zz_generated.prerelease-lifecycle.go | 58 - .../pkg/util/managedfields/gvkparser.go | 3 +- .../k8s.io/apiserver/pkg/audit/context.go | 9 +- .../apiserver/pkg/features/kube_features.go | 11 +- .../pkg/registry/generic/registry/store.go | 5 - .../apiserver/pkg/util/dryrun/dryrun.go | 34 - .../pkg/util/flowcontrol/apf_filter.go | 5 +- .../request/list_work_estimator.go | 16 +- .../applyconfigurations/core/v1/hostip.go | 39 - .../applyconfigurations/core/v1/podstatus.go | 14 - .../applyconfigurations/internal/internal.go | 63 - .../applyconfigurations/meta/v1/listmeta.go | 66 - .../networking/v1alpha1/cidrconfig.go | 48 - .../networking/v1alpha1/clustercidrconfig.go | 256 -- .../v1alpha1/clustercidrconfigspec.go | 70 - .../v1alpha1/clustercidrconfigstatus.go | 48 - .../k8s.io/client-go/informers/generic.go | 5 - .../informers/networking/interface.go | 8 - .../networking/v1alpha1/clustercidrconfig.go | 89 - .../networking/v1alpha1/interface.go | 45 - .../k8s.io/client-go/kubernetes/clientset.go | 13 - .../kubernetes/fake/clientset_generated.go | 7 - .../client-go/kubernetes/fake/register.go | 2 - .../client-go/kubernetes/scheme/register.go | 2 - .../networking/v1alpha1/clustercidrconfig.go | 243 -- .../typed/networking/v1alpha1/doc.go | 20 - .../typed/networking/v1alpha1/fake/doc.go | 20 - .../v1alpha1/fake/fake_clustercidrconfig.go | 179 -- .../v1alpha1/fake/fake_networking_client.go | 40 - .../v1alpha1/generated_expansion.go | 21 - .../networking/v1alpha1/networking_client.go | 107 - .../networking/v1alpha1/clustercidrconfig.go | 68 - .../v1alpha1/expansion_generated.go | 23 - .../vendor/k8s.io/client-go/rest/request.go | 65 +- .../k8s.io/client-go/rest/with_retry.go | 66 +- .../vendor/k8s.io/cloud-provider/go.mod | 28 +- .../vendor/k8s.io/cloud-provider/go.sum | 28 +- .../k8s.io/component-base/metrics/counter.go | 4 +- .../k8s.io/component-base/metrics/gauge.go | 10 +- .../component-base/metrics/histogram.go | 4 +- .../k8s.io/component-base/metrics/metric.go | 4 +- .../metrics/prometheus/restclient/metrics.go | 2 +- .../k8s.io/component-base/metrics/summary.go | 4 +- .../vendor/k8s.io/csi-translation-lib/go.mod | 8 +- .../vendor/k8s.io/csi-translation-lib/go.sum | 8 +- .../csi-translation-lib/plugins/azure_disk.go | 33 + .../kubernetes/cmd/kubelet/app/server.go | 2 +- .../k8s.io/kubernetes/pkg/api/pod/util.go | 76 - .../kubernetes/pkg/api/v1/service/util.go | 11 +- .../k8s.io/kubernetes/pkg/apis/apps/types.go | 1 + .../kubernetes/pkg/apis/core/pods/helpers.go | 1 - .../k8s.io/kubernetes/pkg/apis/core/types.go | 23 +- .../kubernetes/pkg/apis/core/v1/conversion.go | 16 - .../pkg/apis/core/v1/helper/helpers.go | 59 - .../apis/core/v1/zz_generated.conversion.go | 32 - .../pkg/apis/core/validation/validation.go | 18 +- .../pkg/apis/core/zz_generated.deepcopy.go | 21 - .../pkg/apis/networking/register.go | 2 - .../kubernetes/pkg/apis/networking/types.go | 58 - .../apis/networking/zz_generated.deepcopy.go | 98 - .../pkg/credentialprovider/keyring.go | 2 +- .../kubernetes/pkg/features/kube_features.go | 28 +- .../pkg/kubelet/certificate/kubelet.go | 2 +- .../kubernetes/pkg/kubelet/kubelet_pods.go | 20 - .../desired_state_of_world_populator.go | 2 +- .../kubernetes/pkg/proxy/iptables/proxier.go | 413 +-- .../kubernetes/pkg/proxy/ipvs/proxier.go | 41 +- .../kubernetes/pkg/proxy/metrics/metrics.go | 14 + .../k8s.io/kubernetes/pkg/proxy/service.go | 34 +- .../k8s.io/kubernetes/pkg/proxy/types.go | 8 +- .../plugins/nodeaffinity/node_affinity.go | 2 +- .../framework/plugins/nodename/node_name.go | 2 +- .../framework/plugins/nodeports/node_ports.go | 2 +- .../framework/plugins/noderesources/fit.go | 2 +- .../tainttoleration/taint_toleration.go | 5 +- .../internal/queue/scheduling_queue.go | 11 +- .../operationexecutor/operation_generator.go | 2 +- cluster-autoscaler/vendor/modules.txt | 95 +- cluster-autoscaler/version/version.go | 2 +- 102 files changed, 1688 insertions(+), 5435 deletions(-) delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.pb.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.proto delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/register.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types_swagger_doc_generated.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.deepcopy.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.prerelease-lifecycle.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostip.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/meta/v1/listmeta.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/cidrconfig.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfig.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigspec.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigstatus.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/clustercidrconfig.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/clustercidrconfig.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_clustercidrconfig.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_networking_client.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/generated_expansion.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/networking_client.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/clustercidrconfig.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/expansion_generated.go diff --git a/cluster-autoscaler/go.mod b/cluster-autoscaler/go.mod index 52195251c8d2..6b5431ed05ef 100644 --- a/cluster-autoscaler/go.mod +++ b/cluster-autoscaler/go.mod @@ -14,6 +14,7 @@ require ( github.com/aws/aws-sdk-go v1.38.49 github.com/digitalocean/godo v1.27.0 github.com/ghodss/yaml v1.0.0 + github.com/gofrs/uuid v4.0.0+incompatible github.com/golang/mock v1.6.0 github.com/google/go-querystring v1.0.0 github.com/google/uuid v1.1.2 @@ -31,16 +32,16 @@ require ( google.golang.org/protobuf v1.27.1 gopkg.in/gcfg.v1 v1.2.0 gopkg.in/yaml.v2 v2.4.0 - k8s.io/api v0.24.0-beta.0 - k8s.io/apimachinery v0.24.0-beta.0 - k8s.io/apiserver v0.24.0-beta.0 - k8s.io/client-go v0.24.0-beta.0 - k8s.io/cloud-provider v0.24.0-beta.0 - k8s.io/component-base v0.24.0-beta.0 - k8s.io/component-helpers v0.24.0-beta.0 + k8s.io/api v0.24.0 + k8s.io/apimachinery v0.24.0 + k8s.io/apiserver v0.24.0 + k8s.io/client-go v0.24.0 + k8s.io/cloud-provider v0.24.0 + k8s.io/component-base v0.24.0 + k8s.io/component-helpers v0.24.0 k8s.io/klog/v2 v2.60.1 k8s.io/kubelet v0.23.0 - k8s.io/kubernetes v1.24.0-beta.0 + k8s.io/kubernetes v1.24.0 k8s.io/legacy-cloud-providers v0.0.0 k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 sigs.k8s.io/cloud-provider-azure v1.23.2 @@ -52,56 +53,56 @@ replace github.com/digitalocean/godo => github.com/digitalocean/godo v1.27.0 replace github.com/rancher/go-rancher => github.com/rancher/go-rancher v0.1.0 -replace k8s.io/api => k8s.io/api v0.24.0-beta.0 +replace k8s.io/api => k8s.io/api v0.24.0 -replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.24.0-beta.0 +replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.24.0 -replace k8s.io/apimachinery => k8s.io/apimachinery v0.24.0-beta.0 +replace k8s.io/apimachinery => k8s.io/apimachinery v0.24.1-rc.0 -replace k8s.io/apiserver => k8s.io/apiserver v0.24.0-beta.0 +replace k8s.io/apiserver => k8s.io/apiserver v0.24.0 -replace k8s.io/cli-runtime => k8s.io/cli-runtime v0.24.0-beta.0 +replace k8s.io/cli-runtime => k8s.io/cli-runtime v0.24.0 -replace k8s.io/client-go => k8s.io/client-go v0.24.0-beta.0 +replace k8s.io/client-go => k8s.io/client-go v0.24.0 -replace k8s.io/cloud-provider => k8s.io/cloud-provider v0.24.0-beta.0 +replace k8s.io/cloud-provider => k8s.io/cloud-provider v0.24.0 -replace k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.24.0-beta.0 +replace k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.24.0 -replace k8s.io/code-generator => k8s.io/code-generator v0.24.0-beta.0 +replace k8s.io/code-generator => k8s.io/code-generator v0.24.1-rc.0 -replace k8s.io/component-base => k8s.io/component-base v0.24.0-beta.0 +replace k8s.io/component-base => k8s.io/component-base v0.24.0 -replace k8s.io/component-helpers => k8s.io/component-helpers v0.24.0-beta.0 +replace k8s.io/component-helpers => k8s.io/component-helpers v0.24.0 -replace k8s.io/controller-manager => k8s.io/controller-manager v0.24.0-beta.0 +replace k8s.io/controller-manager => k8s.io/controller-manager v0.24.0 -replace k8s.io/cri-api => k8s.io/cri-api v0.24.0-beta.0 +replace k8s.io/cri-api => k8s.io/cri-api v0.25.0-alpha.0 -replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.24.0-beta.0 +replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.24.0 -replace k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.24.0-beta.0 +replace k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.24.0 -replace k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.24.0-beta.0 +replace k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.24.0 -replace k8s.io/kube-proxy => k8s.io/kube-proxy v0.24.0-beta.0 +replace k8s.io/kube-proxy => k8s.io/kube-proxy v0.24.0 -replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.24.0-beta.0 +replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.24.0 -replace k8s.io/kubectl => k8s.io/kubectl v0.24.0-beta.0 +replace k8s.io/kubectl => k8s.io/kubectl v0.24.0 -replace k8s.io/kubelet => k8s.io/kubelet v0.24.0-beta.0 +replace k8s.io/kubelet => k8s.io/kubelet v0.24.0 -replace k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.24.0-beta.0 +replace k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.24.0 -replace k8s.io/metrics => k8s.io/metrics v0.24.0-beta.0 +replace k8s.io/metrics => k8s.io/metrics v0.24.0 -replace k8s.io/mount-utils => k8s.io/mount-utils v0.24.0-beta.0 +replace k8s.io/mount-utils => k8s.io/mount-utils v0.24.1-rc.0 -replace k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.24.0-beta.0 +replace k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.24.0 -replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.24.0-beta.0 +replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.24.0 -replace k8s.io/sample-controller => k8s.io/sample-controller v0.24.0-beta.0 +replace k8s.io/sample-controller => k8s.io/sample-controller v0.24.0 -replace k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.24.0-beta.0 +replace k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.24.0 diff --git a/cluster-autoscaler/go.sum b/cluster-autoscaler/go.sum index af07263b2cc4..f01815ab5b1e 100644 --- a/cluster-autoscaler/go.sum +++ b/cluster-autoscaler/go.sum @@ -357,8 +357,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/cadvisor v0.44.0 h1:523mBK94XHKAsU1TIQl/tYoPyYpWQdalf2CQ8Gv2Xek= -github.com/google/cadvisor v0.44.0/go.mod h1:GQ9KQfz0iNHQk3D6ftzJWK4TXabfIgM10Oy3FkR+Gzg= +github.com/google/cadvisor v0.44.1 h1:hsAxDZOY+5xSCXH12d/G9cxYTfP+32cMT3J7aatrgDY= +github.com/google/cadvisor v0.44.1/go.mod h1:GQ9KQfz0iNHQk3D6ftzJWK4TXabfIgM10Oy3FkR+Gzg= github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w= github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA= github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= @@ -1288,29 +1288,29 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.24.0-beta.0 h1:7knNqNYI1Az5hWcebdyUff4ETyCZkvmUT1N2hi/qS/Y= -k8s.io/api v0.24.0-beta.0/go.mod h1:D7w5dDA57yCeRJnl0vPuRj6KBAwWYxea4Dwo5kgJGIY= -k8s.io/apiextensions-apiserver v0.24.0-beta.0/go.mod h1:ERUuw7ISzBmCN83YB0FXXEAAbZr8PnwhNrB+C4w/YAA= -k8s.io/apimachinery v0.24.0-beta.0 h1:69KiS/m3i2oi3FaCVX6whePxOelsJkhIfO0J5fGDYv8= -k8s.io/apimachinery v0.24.0-beta.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= -k8s.io/apiserver v0.24.0-beta.0 h1:alwKvg2qKXvXZbjP0v/Ozfagaygh/shCmvNMZW/arg8= -k8s.io/apiserver v0.24.0-beta.0/go.mod h1:pPF5/dEQukQjwauSxjW8IHKn8W1r8u2nERGojwFFlj4= -k8s.io/cli-runtime v0.24.0-beta.0/go.mod h1:Qo9l/V7GEFJKl3fHmeCiMXFcCj4ozLM75/NJgOuHxW0= -k8s.io/client-go v0.24.0-beta.0 h1:ISWwVXNtOr2f1O5afJGi66vxAzC6Gb/3+VWlz4WseFc= -k8s.io/client-go v0.24.0-beta.0/go.mod h1:D4rgRqnNPdFCFMMrcCqCOAouzIwJkPuKXr3zWThEExM= -k8s.io/cloud-provider v0.24.0-beta.0 h1:zSoovn8wYbx0ySlRklRuN7qOVZP91V1Ogpuq70Vscrk= -k8s.io/cloud-provider v0.24.0-beta.0/go.mod h1:fP4ztbWi5wMddhhU+9bS2kXEbG8PqvUFIH0AUlbSeQY= -k8s.io/cluster-bootstrap v0.24.0-beta.0/go.mod h1:orf4hvmecsz5goDJkUm9tdrqvvRGBYw+VV5aA5fPjJ0= -k8s.io/code-generator v0.24.0-beta.0/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= -k8s.io/component-base v0.24.0-beta.0 h1:Qh9X14PLVX9YfVXEdsWeYVbN/ssm18pkf7RwPX8fCSg= -k8s.io/component-base v0.24.0-beta.0/go.mod h1:UrgHIn7am00FE1rRmr0GHCiNZg7oZO+Oh6iXROJt2oU= -k8s.io/component-helpers v0.24.0-beta.0 h1:ZUd0qDgMzL1gFGz8giE8+TKvnClrRyNtTRJ3BO4cUDc= -k8s.io/component-helpers v0.24.0-beta.0/go.mod h1:dTw0PfziOO6g9Wj3+6nNN3VBfDvEOfYADXxVcmCWWe4= -k8s.io/controller-manager v0.24.0-beta.0/go.mod h1:wqi0opKDUj7GhktwzN+s6VUYMT5BGn4QSQjkRZO31Q4= -k8s.io/cri-api v0.24.0-beta.0 h1:UfxwI/NmxIQ++FrzHNS4w5M6LgGeJYusMHVNlduZuyw= -k8s.io/cri-api v0.24.0-beta.0/go.mod h1:t3tImFtGeStN+ES69bQUX9sFg67ek38BM9YIJhMmuig= -k8s.io/csi-translation-lib v0.24.0-beta.0 h1:H2ABvFWwQqLSzhfruE47hqcYtnrNydDGDmZ4NLOVD7U= -k8s.io/csi-translation-lib v0.24.0-beta.0/go.mod h1:4MDWtoJ54b5OEwqNBC6bywtSgiiTB7wqEeAvYVu1tNk= +k8s.io/api v0.24.0 h1:J0hann2hfxWr1hinZIDefw7Q96wmCBx6SSB8IY0MdDg= +k8s.io/api v0.24.0/go.mod h1:5Jl90IUrJHUJYEMANRURMiVvJ0g7Ax7r3R1bqO8zx8I= +k8s.io/apiextensions-apiserver v0.24.0/go.mod h1:iuVe4aEpe6827lvO6yWQVxiPSpPoSKVjkq+MIdg84cM= +k8s.io/apimachinery v0.24.1-rc.0 h1:mjcDse2fEbUbiSZYU83NxdLUXlCSprcMlQVgNWn6tGk= +k8s.io/apimachinery v0.24.1-rc.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/apiserver v0.24.0 h1:GR7kGsjOMfilRvlG3Stxv/3uz/ryvJ/aZXc5pqdsNV0= +k8s.io/apiserver v0.24.0/go.mod h1:WFx2yiOMawnogNToVvUYT9nn1jaIkMKj41ZYCVycsBA= +k8s.io/cli-runtime v0.24.0/go.mod h1:9XxoZDsEkRFUThnwqNviqzljtT/LdHtNWvcNFrAXl0A= +k8s.io/client-go v0.24.0 h1:lbE4aB1gTHvYFSwm6eD3OF14NhFDKCejlnsGYlSJe5U= +k8s.io/client-go v0.24.0/go.mod h1:VFPQET+cAFpYxh6Bq6f4xyMY80G6jKKktU6G0m00VDw= +k8s.io/cloud-provider v0.24.0 h1:kQ6zB2oy0VDl+6vdRAKEbtwDM1MmuhNCyA/v+Fk2g30= +k8s.io/cloud-provider v0.24.0/go.mod h1:cqkEWJWzToaqtS5ti8KQJQcL2IWssWGXHzicxZyaC6s= +k8s.io/cluster-bootstrap v0.24.0/go.mod h1:xw+IfoaUweMCAoi+VYhmqkcjii2G7gNg59dmGn7hi0g= +k8s.io/code-generator v0.24.1-rc.0/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= +k8s.io/component-base v0.24.0 h1:h5jieHZQoHrY/lHG+HyrSbJeyfuitheBvqvKwKHVC0g= +k8s.io/component-base v0.24.0/go.mod h1:Dgazgon0i7KYUsS8krG8muGiMVtUZxG037l1MKyXgrA= +k8s.io/component-helpers v0.24.0 h1:hZIHGfdd55thhqd9oxjDTw68OAPauDMJ+8hC69aNw1I= +k8s.io/component-helpers v0.24.0/go.mod h1:Q2SlLm4h6g6lPTC9GMMfzdywfLSvJT2f1hOnnjaWD8c= +k8s.io/controller-manager v0.24.0/go.mod h1:ageMNQZc7cNH0FF1oarm7wZs6XyJj/V82nNVmgPaeDU= +k8s.io/cri-api v0.25.0-alpha.0 h1:cGTy/e2rO3oVyEMTG80epYhysmFL73CH6Xjvk1P6VTo= +k8s.io/cri-api v0.25.0-alpha.0/go.mod h1:t3tImFtGeStN+ES69bQUX9sFg67ek38BM9YIJhMmuig= +k8s.io/csi-translation-lib v0.24.0 h1:U56SfLSjpaSkrbR0PdEZXOAKbUKDQP80KV/LwFbix/g= +k8s.io/csi-translation-lib v0.24.0/go.mod h1:jJaC3a1tI3IShByiAQmOOCl5PKpiZ51Vh70c9Eg2msM= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= @@ -1320,29 +1320,29 @@ k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc= k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-aggregator v0.24.0-beta.0/go.mod h1:i9SRRGwxhXwuNuArHlkfy/EuWSrrbUEsIah/7OROTZU= -k8s.io/kube-controller-manager v0.24.0-beta.0/go.mod h1:fWFSeGBCqt9jVAapezVfla3RmuXCaWM5SAnRzTz+eeI= +k8s.io/kube-aggregator v0.24.0/go.mod h1:ftfs6Fi46z3cKzeF2kvNBPLbMlSKuqZbesJGNp/cQnw= +k8s.io/kube-controller-manager v0.24.0/go.mod h1:s0pbwI8UuBEDdXQbTUpQdNIyU4rQ7jOxaXAcRBoWpJQ= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 h1:Gii5eqf+GmIEwGNKQYQClCayuJCe2/4fZUvF7VG99sU= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= -k8s.io/kube-proxy v0.24.0-beta.0 h1:9Vd29agEbwrWyXupqQm7/FNBG49dG3pECqjbtfjYoWU= -k8s.io/kube-proxy v0.24.0-beta.0/go.mod h1:Ue+brgmG9hJTAwhy/bIFWiy3st+Qwlz3fdgAXPTxyyE= -k8s.io/kube-scheduler v0.24.0-beta.0 h1:F5bIF3ybZt/y03BHDxYEkaL+gSsVm0m9O6hn051j2fs= -k8s.io/kube-scheduler v0.24.0-beta.0/go.mod h1:+y0WvSi1G/r+QjwL8V0KZSO6ag6yoxYG3Ia4YiMp/54= -k8s.io/kubectl v0.24.0-beta.0 h1:JkSxllEVf+wUoKOLizOlqPb/0LuyJBY7k783h5PZau4= -k8s.io/kubectl v0.24.0-beta.0/go.mod h1:PYylwYjci95A9BA6AJ9vHBH6KIVxmTm6q0khy2KQ0To= -k8s.io/kubelet v0.24.0-beta.0 h1:0OC8zrg90TCCAOMuG1tqA/k2bcJUmPhb8FMyV98nFyo= -k8s.io/kubelet v0.24.0-beta.0/go.mod h1:KCSt2570pwktXJQRIbYKMXiZLBKXXuvso8rbKXGNT1I= -k8s.io/kubernetes v1.24.0-beta.0 h1:toH3x4G1Sxng5SP+cOwdaP+7G4DQ4T0IiL8YQX6MEVk= -k8s.io/kubernetes v1.24.0-beta.0/go.mod h1:LF4JSC9A2UFkMghQojsO8AjwT/TJhJfLhLezMpBQo2Q= -k8s.io/legacy-cloud-providers v0.24.0-beta.0 h1:5hBAZXbN4s0ltfSuzsrjBh824oQgJsQwaYBLRp3gsa0= -k8s.io/legacy-cloud-providers v0.24.0-beta.0/go.mod h1:NTneotEav3QcOzctkWNOlKjTAbo933F+1AIzYyJV1Fc= -k8s.io/metrics v0.24.0-beta.0/go.mod h1:GHGniJ7wpgbOV8qNOo70NRqNa5LzBl4paA9TAhwVTWM= -k8s.io/mount-utils v0.24.0-beta.0 h1:nZlBHKq8V5oPa8/zZWJ/cKXCMS7qqNx47GZhGeR4q0M= -k8s.io/mount-utils v0.24.0-beta.0/go.mod h1:XrSqB3a2e8sq+aU+rlbcBtQ3EgcuDk5RP9ZsGxjoDrI= -k8s.io/pod-security-admission v0.24.0-beta.0/go.mod h1:tc8LHwlROrmBQuDwJYWe41s/3/xi5K6hHMQlvfkW+tU= -k8s.io/sample-apiserver v0.24.0-beta.0/go.mod h1:TQRzja5dg0ocU8zQqjx8puKu91aOmIj2LxiZfnmzjAU= +k8s.io/kube-proxy v0.24.0 h1:p8KNQT+OrCU1T2xQAdmVl/+2YJOHyUD6IZc+h+Jjjho= +k8s.io/kube-proxy v0.24.0/go.mod h1:OZ1k9jSwW94Rmj5hepCFea7qlGvvU+bfcosc6+dcFKA= +k8s.io/kube-scheduler v0.24.0 h1:YGw6ILB2NRoTDfY2I5iqMz+CAVRqYrgySZZzhgEWA2c= +k8s.io/kube-scheduler v0.24.0/go.mod h1:DUq+fXaC51N1kl2YnT2EZSxOph6JOmIJe/pQe5keZPc= +k8s.io/kubectl v0.24.0 h1:nA+WtMLVdXUs4wLogGd1mPTAesnLdBpCVgCmz3I7dXo= +k8s.io/kubectl v0.24.0/go.mod h1:pdXkmCyHiRTqjYfyUJiXtbVNURhv0/Q1TyRhy2d5ic0= +k8s.io/kubelet v0.24.0 h1:fH+D6mSr4DGIeHp/O2+mCEJhkVq3Gpgv9BVOHI+GrWY= +k8s.io/kubelet v0.24.0/go.mod h1:p3BBacmHTCMpUf+nluhlyzuGHmONKAspqCvpu9oPAyA= +k8s.io/kubernetes v1.24.0 h1:9qRjlCuMjooyFTXLxduMBT+MZSdROWa3idI1AXZirVs= +k8s.io/kubernetes v1.24.0/go.mod h1:8e8maMiZzBR2/8Po5Uulx+MXZUYJuN3vtKwD4Ct1Xi0= +k8s.io/legacy-cloud-providers v0.24.0 h1:fk5EC+/TWHyJWGE1N8y4W5RPQ1vhPlPAB55WvCSTtbc= +k8s.io/legacy-cloud-providers v0.24.0/go.mod h1:j2gujMUYBEtbYfJaL8JUOgInzERm9fxJwEaOkZcnEUk= +k8s.io/metrics v0.24.0/go.mod h1:jrLlFGdKl3X+szubOXPG0Lf2aVxuV3QJcbsgVRAM6fI= +k8s.io/mount-utils v0.24.1-rc.0 h1:ngwZvo7suzq1F7IAkIllHO1mOuC53loLTGNWAQuIYrM= +k8s.io/mount-utils v0.24.1-rc.0/go.mod h1:XrSqB3a2e8sq+aU+rlbcBtQ3EgcuDk5RP9ZsGxjoDrI= +k8s.io/pod-security-admission v0.24.0/go.mod h1:YBS4mAdoba2qMvLPE3S7eMIxGlqUf4amHH26jUUqXX4= +k8s.io/sample-apiserver v0.24.0/go.mod h1:6YGSatoHMHIac/2dTtARwYH8PVWY5qq1L9ZYbxZ9lHY= k8s.io/system-validators v1.7.0/go.mod h1:gP1Ky+R9wtrSiFbrpEPwWMeYz9yqyy1S/KOh0Vci7WI= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= diff --git a/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/client.go b/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/client.go index 02fd8ce782d2..c4921a5b7a5c 100644 --- a/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/client.go +++ b/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/client.go @@ -16,6 +16,7 @@ package containerd import ( "context" + "errors" "fmt" "net" "sync" @@ -24,6 +25,7 @@ import ( containersapi "github.com/containerd/containerd/api/services/containers/v1" tasksapi "github.com/containerd/containerd/api/services/tasks/v1" versionapi "github.com/containerd/containerd/api/services/version/v1" + tasktypes "github.com/containerd/containerd/api/types/task" ptypes "github.com/gogo/protobuf/types" "github.com/google/cadvisor/container/containerd/containers" "github.com/google/cadvisor/container/containerd/errdefs" @@ -44,6 +46,10 @@ type ContainerdClient interface { Version(ctx context.Context) (string, error) } +var ( + ErrTaskIsInUnknownState = errors.New("containerd task is in unknown state") // used when process reported in containerd task is in Unknown State +) + var once sync.Once var ctrdClient ContainerdClient = nil @@ -114,6 +120,9 @@ func (c *client) TaskPid(ctx context.Context, id string) (uint32, error) { if err != nil { return 0, errdefs.FromGRPC(err) } + if response.Process.Status == tasktypes.StatusUnknown { + return 0, ErrTaskIsInUnknownState + } return response.Process.Pid, nil } diff --git a/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/handler.go b/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/handler.go index 0fc880354203..848550ec6ebe 100644 --- a/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/handler.go +++ b/cluster-autoscaler/vendor/github.com/google/cadvisor/container/containerd/handler.go @@ -17,6 +17,7 @@ package containerd import ( "encoding/json" + "errors" "fmt" "strings" "time" @@ -101,10 +102,14 @@ func newContainerdContainerHandler( if err == nil { break } - retry-- - if !errdefs.IsNotFound(err) || retry == 0 { + + // Retry when task is not created yet or task is in unknown state (likely in process of initializing) + isRetriableError := errdefs.IsNotFound(err) || errors.Is(err, ErrTaskIsInUnknownState) + if !isRetriableError || retry == 0 { return nil, err } + + retry-- time.Sleep(backoff) backoff *= 2 } diff --git a/cluster-autoscaler/vendor/k8s.io/api/apps/v1/generated.proto b/cluster-autoscaler/vendor/k8s.io/api/apps/v1/generated.proto index d46373d92dcf..1bdc400b9d20 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/apps/v1/generated.proto +++ b/cluster-autoscaler/vendor/k8s.io/api/apps/v1/generated.proto @@ -759,6 +759,7 @@ message StatefulSetStatus { // Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset. // This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate. + // +optional optional int32 availableReplicas = 11; } diff --git a/cluster-autoscaler/vendor/k8s.io/api/apps/v1/types.go b/cluster-autoscaler/vendor/k8s.io/api/apps/v1/types.go index 74c0ad66d85d..28474be7f4fd 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/apps/v1/types.go +++ b/cluster-autoscaler/vendor/k8s.io/api/apps/v1/types.go @@ -282,6 +282,7 @@ type StatefulSetStatus struct { // Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset. // This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate. + // +optional AvailableReplicas int32 `json:"availableReplicas" protobuf:"varint,11,opt,name=availableReplicas"` } diff --git a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/generated.proto b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/generated.proto index 7f49e3eb543d..53df96ee4de3 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/generated.proto +++ b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/generated.proto @@ -514,6 +514,7 @@ message StatefulSetStatus { // Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet. // This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate. + // +optional optional int32 availableReplicas = 11; } diff --git a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/types.go b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/types.go index 08a36f5182d4..cdc81c956a3c 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/types.go +++ b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta1/types.go @@ -321,6 +321,7 @@ type StatefulSetStatus struct { // Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet. // This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate. + // +optional AvailableReplicas int32 `json:"availableReplicas" protobuf:"varint,11,opt,name=availableReplicas"` } diff --git a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/generated.proto b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/generated.proto index f9e3ef7ef512..b5bc8c0cab51 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/generated.proto +++ b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/generated.proto @@ -801,6 +801,7 @@ message StatefulSetStatus { // Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet. // This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate. + // +optional optional int32 availableReplicas = 11; } diff --git a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/types.go b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/types.go index a93ef4f95468..6c2448869e71 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/types.go +++ b/cluster-autoscaler/vendor/k8s.io/api/apps/v1beta2/types.go @@ -330,6 +330,7 @@ type StatefulSetStatus struct { // Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet. // This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate. + // +optional AvailableReplicas int32 `json:"availableReplicas" protobuf:"varint,11,opt,name=availableReplicas"` } diff --git a/cluster-autoscaler/vendor/k8s.io/api/certificates/v1/types.go b/cluster-autoscaler/vendor/k8s.io/api/certificates/v1/types.go index 317d1d9be31a..752c66973476 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/certificates/v1/types.go +++ b/cluster-autoscaler/vendor/k8s.io/api/certificates/v1/types.go @@ -212,7 +212,6 @@ type CertificateSigningRequestStatus struct { } // RequestConditionType is the type of a CertificateSigningRequestCondition -// +enum type RequestConditionType string // Well-known condition types for certificate requests. diff --git a/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.pb.go b/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.pb.go index 3e12b7caffd8..3f8aaf1006b7 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.pb.go +++ b/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.pb.go @@ -1925,38 +1925,10 @@ func (m *HostAlias) XXX_DiscardUnknown() { var xxx_messageInfo_HostAlias proto.InternalMessageInfo -func (m *HostIP) Reset() { *m = HostIP{} } -func (*HostIP) ProtoMessage() {} -func (*HostIP) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{67} -} -func (m *HostIP) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *HostIP) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *HostIP) XXX_Merge(src proto.Message) { - xxx_messageInfo_HostIP.Merge(m, src) -} -func (m *HostIP) XXX_Size() int { - return m.Size() -} -func (m *HostIP) XXX_DiscardUnknown() { - xxx_messageInfo_HostIP.DiscardUnknown(m) -} - -var xxx_messageInfo_HostIP proto.InternalMessageInfo - func (m *HostPathVolumeSource) Reset() { *m = HostPathVolumeSource{} } func (*HostPathVolumeSource) ProtoMessage() {} func (*HostPathVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{68} + return fileDescriptor_83c10c24ec417dc9, []int{67} } func (m *HostPathVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1984,7 +1956,7 @@ var xxx_messageInfo_HostPathVolumeSource proto.InternalMessageInfo func (m *ISCSIPersistentVolumeSource) Reset() { *m = ISCSIPersistentVolumeSource{} } func (*ISCSIPersistentVolumeSource) ProtoMessage() {} func (*ISCSIPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{69} + return fileDescriptor_83c10c24ec417dc9, []int{68} } func (m *ISCSIPersistentVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2012,7 +1984,7 @@ var xxx_messageInfo_ISCSIPersistentVolumeSource proto.InternalMessageInfo func (m *ISCSIVolumeSource) Reset() { *m = ISCSIVolumeSource{} } func (*ISCSIVolumeSource) ProtoMessage() {} func (*ISCSIVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{70} + return fileDescriptor_83c10c24ec417dc9, []int{69} } func (m *ISCSIVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2040,7 +2012,7 @@ var xxx_messageInfo_ISCSIVolumeSource proto.InternalMessageInfo func (m *KeyToPath) Reset() { *m = KeyToPath{} } func (*KeyToPath) ProtoMessage() {} func (*KeyToPath) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{71} + return fileDescriptor_83c10c24ec417dc9, []int{70} } func (m *KeyToPath) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2068,7 +2040,7 @@ var xxx_messageInfo_KeyToPath proto.InternalMessageInfo func (m *Lifecycle) Reset() { *m = Lifecycle{} } func (*Lifecycle) ProtoMessage() {} func (*Lifecycle) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{72} + return fileDescriptor_83c10c24ec417dc9, []int{71} } func (m *Lifecycle) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2096,7 +2068,7 @@ var xxx_messageInfo_Lifecycle proto.InternalMessageInfo func (m *LifecycleHandler) Reset() { *m = LifecycleHandler{} } func (*LifecycleHandler) ProtoMessage() {} func (*LifecycleHandler) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{73} + return fileDescriptor_83c10c24ec417dc9, []int{72} } func (m *LifecycleHandler) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2124,7 +2096,7 @@ var xxx_messageInfo_LifecycleHandler proto.InternalMessageInfo func (m *LimitRange) Reset() { *m = LimitRange{} } func (*LimitRange) ProtoMessage() {} func (*LimitRange) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{74} + return fileDescriptor_83c10c24ec417dc9, []int{73} } func (m *LimitRange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2152,7 +2124,7 @@ var xxx_messageInfo_LimitRange proto.InternalMessageInfo func (m *LimitRangeItem) Reset() { *m = LimitRangeItem{} } func (*LimitRangeItem) ProtoMessage() {} func (*LimitRangeItem) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{75} + return fileDescriptor_83c10c24ec417dc9, []int{74} } func (m *LimitRangeItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2180,7 +2152,7 @@ var xxx_messageInfo_LimitRangeItem proto.InternalMessageInfo func (m *LimitRangeList) Reset() { *m = LimitRangeList{} } func (*LimitRangeList) ProtoMessage() {} func (*LimitRangeList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{76} + return fileDescriptor_83c10c24ec417dc9, []int{75} } func (m *LimitRangeList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2208,7 +2180,7 @@ var xxx_messageInfo_LimitRangeList proto.InternalMessageInfo func (m *LimitRangeSpec) Reset() { *m = LimitRangeSpec{} } func (*LimitRangeSpec) ProtoMessage() {} func (*LimitRangeSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{77} + return fileDescriptor_83c10c24ec417dc9, []int{76} } func (m *LimitRangeSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2236,7 +2208,7 @@ var xxx_messageInfo_LimitRangeSpec proto.InternalMessageInfo func (m *List) Reset() { *m = List{} } func (*List) ProtoMessage() {} func (*List) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{78} + return fileDescriptor_83c10c24ec417dc9, []int{77} } func (m *List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2264,7 +2236,7 @@ var xxx_messageInfo_List proto.InternalMessageInfo func (m *LoadBalancerIngress) Reset() { *m = LoadBalancerIngress{} } func (*LoadBalancerIngress) ProtoMessage() {} func (*LoadBalancerIngress) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{79} + return fileDescriptor_83c10c24ec417dc9, []int{78} } func (m *LoadBalancerIngress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2292,7 +2264,7 @@ var xxx_messageInfo_LoadBalancerIngress proto.InternalMessageInfo func (m *LoadBalancerStatus) Reset() { *m = LoadBalancerStatus{} } func (*LoadBalancerStatus) ProtoMessage() {} func (*LoadBalancerStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{80} + return fileDescriptor_83c10c24ec417dc9, []int{79} } func (m *LoadBalancerStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2320,7 +2292,7 @@ var xxx_messageInfo_LoadBalancerStatus proto.InternalMessageInfo func (m *LocalObjectReference) Reset() { *m = LocalObjectReference{} } func (*LocalObjectReference) ProtoMessage() {} func (*LocalObjectReference) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{81} + return fileDescriptor_83c10c24ec417dc9, []int{80} } func (m *LocalObjectReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2348,7 +2320,7 @@ var xxx_messageInfo_LocalObjectReference proto.InternalMessageInfo func (m *LocalVolumeSource) Reset() { *m = LocalVolumeSource{} } func (*LocalVolumeSource) ProtoMessage() {} func (*LocalVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{82} + return fileDescriptor_83c10c24ec417dc9, []int{81} } func (m *LocalVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2376,7 +2348,7 @@ var xxx_messageInfo_LocalVolumeSource proto.InternalMessageInfo func (m *NFSVolumeSource) Reset() { *m = NFSVolumeSource{} } func (*NFSVolumeSource) ProtoMessage() {} func (*NFSVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{83} + return fileDescriptor_83c10c24ec417dc9, []int{82} } func (m *NFSVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2404,7 +2376,7 @@ var xxx_messageInfo_NFSVolumeSource proto.InternalMessageInfo func (m *Namespace) Reset() { *m = Namespace{} } func (*Namespace) ProtoMessage() {} func (*Namespace) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{84} + return fileDescriptor_83c10c24ec417dc9, []int{83} } func (m *Namespace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2432,7 +2404,7 @@ var xxx_messageInfo_Namespace proto.InternalMessageInfo func (m *NamespaceCondition) Reset() { *m = NamespaceCondition{} } func (*NamespaceCondition) ProtoMessage() {} func (*NamespaceCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{85} + return fileDescriptor_83c10c24ec417dc9, []int{84} } func (m *NamespaceCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2460,7 +2432,7 @@ var xxx_messageInfo_NamespaceCondition proto.InternalMessageInfo func (m *NamespaceList) Reset() { *m = NamespaceList{} } func (*NamespaceList) ProtoMessage() {} func (*NamespaceList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{86} + return fileDescriptor_83c10c24ec417dc9, []int{85} } func (m *NamespaceList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2488,7 +2460,7 @@ var xxx_messageInfo_NamespaceList proto.InternalMessageInfo func (m *NamespaceSpec) Reset() { *m = NamespaceSpec{} } func (*NamespaceSpec) ProtoMessage() {} func (*NamespaceSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{87} + return fileDescriptor_83c10c24ec417dc9, []int{86} } func (m *NamespaceSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2516,7 +2488,7 @@ var xxx_messageInfo_NamespaceSpec proto.InternalMessageInfo func (m *NamespaceStatus) Reset() { *m = NamespaceStatus{} } func (*NamespaceStatus) ProtoMessage() {} func (*NamespaceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{88} + return fileDescriptor_83c10c24ec417dc9, []int{87} } func (m *NamespaceStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2544,7 +2516,7 @@ var xxx_messageInfo_NamespaceStatus proto.InternalMessageInfo func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{89} + return fileDescriptor_83c10c24ec417dc9, []int{88} } func (m *Node) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2572,7 +2544,7 @@ var xxx_messageInfo_Node proto.InternalMessageInfo func (m *NodeAddress) Reset() { *m = NodeAddress{} } func (*NodeAddress) ProtoMessage() {} func (*NodeAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{90} + return fileDescriptor_83c10c24ec417dc9, []int{89} } func (m *NodeAddress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2600,7 +2572,7 @@ var xxx_messageInfo_NodeAddress proto.InternalMessageInfo func (m *NodeAffinity) Reset() { *m = NodeAffinity{} } func (*NodeAffinity) ProtoMessage() {} func (*NodeAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{91} + return fileDescriptor_83c10c24ec417dc9, []int{90} } func (m *NodeAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2628,7 +2600,7 @@ var xxx_messageInfo_NodeAffinity proto.InternalMessageInfo func (m *NodeCondition) Reset() { *m = NodeCondition{} } func (*NodeCondition) ProtoMessage() {} func (*NodeCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{92} + return fileDescriptor_83c10c24ec417dc9, []int{91} } func (m *NodeCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2656,7 +2628,7 @@ var xxx_messageInfo_NodeCondition proto.InternalMessageInfo func (m *NodeConfigSource) Reset() { *m = NodeConfigSource{} } func (*NodeConfigSource) ProtoMessage() {} func (*NodeConfigSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{93} + return fileDescriptor_83c10c24ec417dc9, []int{92} } func (m *NodeConfigSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2684,7 +2656,7 @@ var xxx_messageInfo_NodeConfigSource proto.InternalMessageInfo func (m *NodeConfigStatus) Reset() { *m = NodeConfigStatus{} } func (*NodeConfigStatus) ProtoMessage() {} func (*NodeConfigStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{94} + return fileDescriptor_83c10c24ec417dc9, []int{93} } func (m *NodeConfigStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2712,7 +2684,7 @@ var xxx_messageInfo_NodeConfigStatus proto.InternalMessageInfo func (m *NodeDaemonEndpoints) Reset() { *m = NodeDaemonEndpoints{} } func (*NodeDaemonEndpoints) ProtoMessage() {} func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{95} + return fileDescriptor_83c10c24ec417dc9, []int{94} } func (m *NodeDaemonEndpoints) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2740,7 +2712,7 @@ var xxx_messageInfo_NodeDaemonEndpoints proto.InternalMessageInfo func (m *NodeList) Reset() { *m = NodeList{} } func (*NodeList) ProtoMessage() {} func (*NodeList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{96} + return fileDescriptor_83c10c24ec417dc9, []int{95} } func (m *NodeList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2768,7 +2740,7 @@ var xxx_messageInfo_NodeList proto.InternalMessageInfo func (m *NodeProxyOptions) Reset() { *m = NodeProxyOptions{} } func (*NodeProxyOptions) ProtoMessage() {} func (*NodeProxyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{97} + return fileDescriptor_83c10c24ec417dc9, []int{96} } func (m *NodeProxyOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2796,7 +2768,7 @@ var xxx_messageInfo_NodeProxyOptions proto.InternalMessageInfo func (m *NodeResources) Reset() { *m = NodeResources{} } func (*NodeResources) ProtoMessage() {} func (*NodeResources) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{98} + return fileDescriptor_83c10c24ec417dc9, []int{97} } func (m *NodeResources) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2824,7 +2796,7 @@ var xxx_messageInfo_NodeResources proto.InternalMessageInfo func (m *NodeSelector) Reset() { *m = NodeSelector{} } func (*NodeSelector) ProtoMessage() {} func (*NodeSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{99} + return fileDescriptor_83c10c24ec417dc9, []int{98} } func (m *NodeSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2852,7 +2824,7 @@ var xxx_messageInfo_NodeSelector proto.InternalMessageInfo func (m *NodeSelectorRequirement) Reset() { *m = NodeSelectorRequirement{} } func (*NodeSelectorRequirement) ProtoMessage() {} func (*NodeSelectorRequirement) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{100} + return fileDescriptor_83c10c24ec417dc9, []int{99} } func (m *NodeSelectorRequirement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2880,7 +2852,7 @@ var xxx_messageInfo_NodeSelectorRequirement proto.InternalMessageInfo func (m *NodeSelectorTerm) Reset() { *m = NodeSelectorTerm{} } func (*NodeSelectorTerm) ProtoMessage() {} func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{101} + return fileDescriptor_83c10c24ec417dc9, []int{100} } func (m *NodeSelectorTerm) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2908,7 +2880,7 @@ var xxx_messageInfo_NodeSelectorTerm proto.InternalMessageInfo func (m *NodeSpec) Reset() { *m = NodeSpec{} } func (*NodeSpec) ProtoMessage() {} func (*NodeSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{102} + return fileDescriptor_83c10c24ec417dc9, []int{101} } func (m *NodeSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2936,7 +2908,7 @@ var xxx_messageInfo_NodeSpec proto.InternalMessageInfo func (m *NodeStatus) Reset() { *m = NodeStatus{} } func (*NodeStatus) ProtoMessage() {} func (*NodeStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{103} + return fileDescriptor_83c10c24ec417dc9, []int{102} } func (m *NodeStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2964,7 +2936,7 @@ var xxx_messageInfo_NodeStatus proto.InternalMessageInfo func (m *NodeSystemInfo) Reset() { *m = NodeSystemInfo{} } func (*NodeSystemInfo) ProtoMessage() {} func (*NodeSystemInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{104} + return fileDescriptor_83c10c24ec417dc9, []int{103} } func (m *NodeSystemInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2992,7 +2964,7 @@ var xxx_messageInfo_NodeSystemInfo proto.InternalMessageInfo func (m *ObjectFieldSelector) Reset() { *m = ObjectFieldSelector{} } func (*ObjectFieldSelector) ProtoMessage() {} func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{105} + return fileDescriptor_83c10c24ec417dc9, []int{104} } func (m *ObjectFieldSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3020,7 +2992,7 @@ var xxx_messageInfo_ObjectFieldSelector proto.InternalMessageInfo func (m *ObjectReference) Reset() { *m = ObjectReference{} } func (*ObjectReference) ProtoMessage() {} func (*ObjectReference) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{106} + return fileDescriptor_83c10c24ec417dc9, []int{105} } func (m *ObjectReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3048,7 +3020,7 @@ var xxx_messageInfo_ObjectReference proto.InternalMessageInfo func (m *PersistentVolume) Reset() { *m = PersistentVolume{} } func (*PersistentVolume) ProtoMessage() {} func (*PersistentVolume) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{107} + return fileDescriptor_83c10c24ec417dc9, []int{106} } func (m *PersistentVolume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3076,7 +3048,7 @@ var xxx_messageInfo_PersistentVolume proto.InternalMessageInfo func (m *PersistentVolumeClaim) Reset() { *m = PersistentVolumeClaim{} } func (*PersistentVolumeClaim) ProtoMessage() {} func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{108} + return fileDescriptor_83c10c24ec417dc9, []int{107} } func (m *PersistentVolumeClaim) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3104,7 +3076,7 @@ var xxx_messageInfo_PersistentVolumeClaim proto.InternalMessageInfo func (m *PersistentVolumeClaimCondition) Reset() { *m = PersistentVolumeClaimCondition{} } func (*PersistentVolumeClaimCondition) ProtoMessage() {} func (*PersistentVolumeClaimCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{109} + return fileDescriptor_83c10c24ec417dc9, []int{108} } func (m *PersistentVolumeClaimCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3132,7 +3104,7 @@ var xxx_messageInfo_PersistentVolumeClaimCondition proto.InternalMessageInfo func (m *PersistentVolumeClaimList) Reset() { *m = PersistentVolumeClaimList{} } func (*PersistentVolumeClaimList) ProtoMessage() {} func (*PersistentVolumeClaimList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{110} + return fileDescriptor_83c10c24ec417dc9, []int{109} } func (m *PersistentVolumeClaimList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3160,7 +3132,7 @@ var xxx_messageInfo_PersistentVolumeClaimList proto.InternalMessageInfo func (m *PersistentVolumeClaimSpec) Reset() { *m = PersistentVolumeClaimSpec{} } func (*PersistentVolumeClaimSpec) ProtoMessage() {} func (*PersistentVolumeClaimSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{111} + return fileDescriptor_83c10c24ec417dc9, []int{110} } func (m *PersistentVolumeClaimSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3188,7 +3160,7 @@ var xxx_messageInfo_PersistentVolumeClaimSpec proto.InternalMessageInfo func (m *PersistentVolumeClaimStatus) Reset() { *m = PersistentVolumeClaimStatus{} } func (*PersistentVolumeClaimStatus) ProtoMessage() {} func (*PersistentVolumeClaimStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{112} + return fileDescriptor_83c10c24ec417dc9, []int{111} } func (m *PersistentVolumeClaimStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3216,7 +3188,7 @@ var xxx_messageInfo_PersistentVolumeClaimStatus proto.InternalMessageInfo func (m *PersistentVolumeClaimTemplate) Reset() { *m = PersistentVolumeClaimTemplate{} } func (*PersistentVolumeClaimTemplate) ProtoMessage() {} func (*PersistentVolumeClaimTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{113} + return fileDescriptor_83c10c24ec417dc9, []int{112} } func (m *PersistentVolumeClaimTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3244,7 +3216,7 @@ var xxx_messageInfo_PersistentVolumeClaimTemplate proto.InternalMessageInfo func (m *PersistentVolumeClaimVolumeSource) Reset() { *m = PersistentVolumeClaimVolumeSource{} } func (*PersistentVolumeClaimVolumeSource) ProtoMessage() {} func (*PersistentVolumeClaimVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{114} + return fileDescriptor_83c10c24ec417dc9, []int{113} } func (m *PersistentVolumeClaimVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3272,7 +3244,7 @@ var xxx_messageInfo_PersistentVolumeClaimVolumeSource proto.InternalMessageInfo func (m *PersistentVolumeList) Reset() { *m = PersistentVolumeList{} } func (*PersistentVolumeList) ProtoMessage() {} func (*PersistentVolumeList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{115} + return fileDescriptor_83c10c24ec417dc9, []int{114} } func (m *PersistentVolumeList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3300,7 +3272,7 @@ var xxx_messageInfo_PersistentVolumeList proto.InternalMessageInfo func (m *PersistentVolumeSource) Reset() { *m = PersistentVolumeSource{} } func (*PersistentVolumeSource) ProtoMessage() {} func (*PersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{116} + return fileDescriptor_83c10c24ec417dc9, []int{115} } func (m *PersistentVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3328,7 +3300,7 @@ var xxx_messageInfo_PersistentVolumeSource proto.InternalMessageInfo func (m *PersistentVolumeSpec) Reset() { *m = PersistentVolumeSpec{} } func (*PersistentVolumeSpec) ProtoMessage() {} func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{117} + return fileDescriptor_83c10c24ec417dc9, []int{116} } func (m *PersistentVolumeSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3356,7 +3328,7 @@ var xxx_messageInfo_PersistentVolumeSpec proto.InternalMessageInfo func (m *PersistentVolumeStatus) Reset() { *m = PersistentVolumeStatus{} } func (*PersistentVolumeStatus) ProtoMessage() {} func (*PersistentVolumeStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{118} + return fileDescriptor_83c10c24ec417dc9, []int{117} } func (m *PersistentVolumeStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3384,7 +3356,7 @@ var xxx_messageInfo_PersistentVolumeStatus proto.InternalMessageInfo func (m *PhotonPersistentDiskVolumeSource) Reset() { *m = PhotonPersistentDiskVolumeSource{} } func (*PhotonPersistentDiskVolumeSource) ProtoMessage() {} func (*PhotonPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{119} + return fileDescriptor_83c10c24ec417dc9, []int{118} } func (m *PhotonPersistentDiskVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3412,7 +3384,7 @@ var xxx_messageInfo_PhotonPersistentDiskVolumeSource proto.InternalMessageInfo func (m *Pod) Reset() { *m = Pod{} } func (*Pod) ProtoMessage() {} func (*Pod) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{120} + return fileDescriptor_83c10c24ec417dc9, []int{119} } func (m *Pod) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3440,7 +3412,7 @@ var xxx_messageInfo_Pod proto.InternalMessageInfo func (m *PodAffinity) Reset() { *m = PodAffinity{} } func (*PodAffinity) ProtoMessage() {} func (*PodAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{121} + return fileDescriptor_83c10c24ec417dc9, []int{120} } func (m *PodAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3468,7 +3440,7 @@ var xxx_messageInfo_PodAffinity proto.InternalMessageInfo func (m *PodAffinityTerm) Reset() { *m = PodAffinityTerm{} } func (*PodAffinityTerm) ProtoMessage() {} func (*PodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{122} + return fileDescriptor_83c10c24ec417dc9, []int{121} } func (m *PodAffinityTerm) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3496,7 +3468,7 @@ var xxx_messageInfo_PodAffinityTerm proto.InternalMessageInfo func (m *PodAntiAffinity) Reset() { *m = PodAntiAffinity{} } func (*PodAntiAffinity) ProtoMessage() {} func (*PodAntiAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{123} + return fileDescriptor_83c10c24ec417dc9, []int{122} } func (m *PodAntiAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3524,7 +3496,7 @@ var xxx_messageInfo_PodAntiAffinity proto.InternalMessageInfo func (m *PodAttachOptions) Reset() { *m = PodAttachOptions{} } func (*PodAttachOptions) ProtoMessage() {} func (*PodAttachOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{124} + return fileDescriptor_83c10c24ec417dc9, []int{123} } func (m *PodAttachOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3552,7 +3524,7 @@ var xxx_messageInfo_PodAttachOptions proto.InternalMessageInfo func (m *PodCondition) Reset() { *m = PodCondition{} } func (*PodCondition) ProtoMessage() {} func (*PodCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{125} + return fileDescriptor_83c10c24ec417dc9, []int{124} } func (m *PodCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3580,7 +3552,7 @@ var xxx_messageInfo_PodCondition proto.InternalMessageInfo func (m *PodDNSConfig) Reset() { *m = PodDNSConfig{} } func (*PodDNSConfig) ProtoMessage() {} func (*PodDNSConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{126} + return fileDescriptor_83c10c24ec417dc9, []int{125} } func (m *PodDNSConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3608,7 +3580,7 @@ var xxx_messageInfo_PodDNSConfig proto.InternalMessageInfo func (m *PodDNSConfigOption) Reset() { *m = PodDNSConfigOption{} } func (*PodDNSConfigOption) ProtoMessage() {} func (*PodDNSConfigOption) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{127} + return fileDescriptor_83c10c24ec417dc9, []int{126} } func (m *PodDNSConfigOption) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3636,7 +3608,7 @@ var xxx_messageInfo_PodDNSConfigOption proto.InternalMessageInfo func (m *PodExecOptions) Reset() { *m = PodExecOptions{} } func (*PodExecOptions) ProtoMessage() {} func (*PodExecOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{128} + return fileDescriptor_83c10c24ec417dc9, []int{127} } func (m *PodExecOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3664,7 +3636,7 @@ var xxx_messageInfo_PodExecOptions proto.InternalMessageInfo func (m *PodIP) Reset() { *m = PodIP{} } func (*PodIP) ProtoMessage() {} func (*PodIP) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{129} + return fileDescriptor_83c10c24ec417dc9, []int{128} } func (m *PodIP) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3692,7 +3664,7 @@ var xxx_messageInfo_PodIP proto.InternalMessageInfo func (m *PodList) Reset() { *m = PodList{} } func (*PodList) ProtoMessage() {} func (*PodList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{130} + return fileDescriptor_83c10c24ec417dc9, []int{129} } func (m *PodList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3720,7 +3692,7 @@ var xxx_messageInfo_PodList proto.InternalMessageInfo func (m *PodLogOptions) Reset() { *m = PodLogOptions{} } func (*PodLogOptions) ProtoMessage() {} func (*PodLogOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{131} + return fileDescriptor_83c10c24ec417dc9, []int{130} } func (m *PodLogOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3748,7 +3720,7 @@ var xxx_messageInfo_PodLogOptions proto.InternalMessageInfo func (m *PodOS) Reset() { *m = PodOS{} } func (*PodOS) ProtoMessage() {} func (*PodOS) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{132} + return fileDescriptor_83c10c24ec417dc9, []int{131} } func (m *PodOS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3776,7 +3748,7 @@ var xxx_messageInfo_PodOS proto.InternalMessageInfo func (m *PodPortForwardOptions) Reset() { *m = PodPortForwardOptions{} } func (*PodPortForwardOptions) ProtoMessage() {} func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{133} + return fileDescriptor_83c10c24ec417dc9, []int{132} } func (m *PodPortForwardOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3804,7 +3776,7 @@ var xxx_messageInfo_PodPortForwardOptions proto.InternalMessageInfo func (m *PodProxyOptions) Reset() { *m = PodProxyOptions{} } func (*PodProxyOptions) ProtoMessage() {} func (*PodProxyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{134} + return fileDescriptor_83c10c24ec417dc9, []int{133} } func (m *PodProxyOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3832,7 +3804,7 @@ var xxx_messageInfo_PodProxyOptions proto.InternalMessageInfo func (m *PodReadinessGate) Reset() { *m = PodReadinessGate{} } func (*PodReadinessGate) ProtoMessage() {} func (*PodReadinessGate) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{135} + return fileDescriptor_83c10c24ec417dc9, []int{134} } func (m *PodReadinessGate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3860,7 +3832,7 @@ var xxx_messageInfo_PodReadinessGate proto.InternalMessageInfo func (m *PodSecurityContext) Reset() { *m = PodSecurityContext{} } func (*PodSecurityContext) ProtoMessage() {} func (*PodSecurityContext) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{136} + return fileDescriptor_83c10c24ec417dc9, []int{135} } func (m *PodSecurityContext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3888,7 +3860,7 @@ var xxx_messageInfo_PodSecurityContext proto.InternalMessageInfo func (m *PodSignature) Reset() { *m = PodSignature{} } func (*PodSignature) ProtoMessage() {} func (*PodSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{137} + return fileDescriptor_83c10c24ec417dc9, []int{136} } func (m *PodSignature) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3916,7 +3888,7 @@ var xxx_messageInfo_PodSignature proto.InternalMessageInfo func (m *PodSpec) Reset() { *m = PodSpec{} } func (*PodSpec) ProtoMessage() {} func (*PodSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{138} + return fileDescriptor_83c10c24ec417dc9, []int{137} } func (m *PodSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3944,7 +3916,7 @@ var xxx_messageInfo_PodSpec proto.InternalMessageInfo func (m *PodStatus) Reset() { *m = PodStatus{} } func (*PodStatus) ProtoMessage() {} func (*PodStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{139} + return fileDescriptor_83c10c24ec417dc9, []int{138} } func (m *PodStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3972,7 +3944,7 @@ var xxx_messageInfo_PodStatus proto.InternalMessageInfo func (m *PodStatusResult) Reset() { *m = PodStatusResult{} } func (*PodStatusResult) ProtoMessage() {} func (*PodStatusResult) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{140} + return fileDescriptor_83c10c24ec417dc9, []int{139} } func (m *PodStatusResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4000,7 +3972,7 @@ var xxx_messageInfo_PodStatusResult proto.InternalMessageInfo func (m *PodTemplate) Reset() { *m = PodTemplate{} } func (*PodTemplate) ProtoMessage() {} func (*PodTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{141} + return fileDescriptor_83c10c24ec417dc9, []int{140} } func (m *PodTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4028,7 +4000,7 @@ var xxx_messageInfo_PodTemplate proto.InternalMessageInfo func (m *PodTemplateList) Reset() { *m = PodTemplateList{} } func (*PodTemplateList) ProtoMessage() {} func (*PodTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{142} + return fileDescriptor_83c10c24ec417dc9, []int{141} } func (m *PodTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4056,7 +4028,7 @@ var xxx_messageInfo_PodTemplateList proto.InternalMessageInfo func (m *PodTemplateSpec) Reset() { *m = PodTemplateSpec{} } func (*PodTemplateSpec) ProtoMessage() {} func (*PodTemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{143} + return fileDescriptor_83c10c24ec417dc9, []int{142} } func (m *PodTemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4084,7 +4056,7 @@ var xxx_messageInfo_PodTemplateSpec proto.InternalMessageInfo func (m *PortStatus) Reset() { *m = PortStatus{} } func (*PortStatus) ProtoMessage() {} func (*PortStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{144} + return fileDescriptor_83c10c24ec417dc9, []int{143} } func (m *PortStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4112,7 +4084,7 @@ var xxx_messageInfo_PortStatus proto.InternalMessageInfo func (m *PortworxVolumeSource) Reset() { *m = PortworxVolumeSource{} } func (*PortworxVolumeSource) ProtoMessage() {} func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{145} + return fileDescriptor_83c10c24ec417dc9, []int{144} } func (m *PortworxVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4140,7 +4112,7 @@ var xxx_messageInfo_PortworxVolumeSource proto.InternalMessageInfo func (m *Preconditions) Reset() { *m = Preconditions{} } func (*Preconditions) ProtoMessage() {} func (*Preconditions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{146} + return fileDescriptor_83c10c24ec417dc9, []int{145} } func (m *Preconditions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4168,7 +4140,7 @@ var xxx_messageInfo_Preconditions proto.InternalMessageInfo func (m *PreferAvoidPodsEntry) Reset() { *m = PreferAvoidPodsEntry{} } func (*PreferAvoidPodsEntry) ProtoMessage() {} func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{147} + return fileDescriptor_83c10c24ec417dc9, []int{146} } func (m *PreferAvoidPodsEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4196,7 +4168,7 @@ var xxx_messageInfo_PreferAvoidPodsEntry proto.InternalMessageInfo func (m *PreferredSchedulingTerm) Reset() { *m = PreferredSchedulingTerm{} } func (*PreferredSchedulingTerm) ProtoMessage() {} func (*PreferredSchedulingTerm) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{148} + return fileDescriptor_83c10c24ec417dc9, []int{147} } func (m *PreferredSchedulingTerm) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4224,7 +4196,7 @@ var xxx_messageInfo_PreferredSchedulingTerm proto.InternalMessageInfo func (m *Probe) Reset() { *m = Probe{} } func (*Probe) ProtoMessage() {} func (*Probe) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{149} + return fileDescriptor_83c10c24ec417dc9, []int{148} } func (m *Probe) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4252,7 +4224,7 @@ var xxx_messageInfo_Probe proto.InternalMessageInfo func (m *ProbeHandler) Reset() { *m = ProbeHandler{} } func (*ProbeHandler) ProtoMessage() {} func (*ProbeHandler) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{150} + return fileDescriptor_83c10c24ec417dc9, []int{149} } func (m *ProbeHandler) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4280,7 +4252,7 @@ var xxx_messageInfo_ProbeHandler proto.InternalMessageInfo func (m *ProjectedVolumeSource) Reset() { *m = ProjectedVolumeSource{} } func (*ProjectedVolumeSource) ProtoMessage() {} func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{151} + return fileDescriptor_83c10c24ec417dc9, []int{150} } func (m *ProjectedVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4308,7 +4280,7 @@ var xxx_messageInfo_ProjectedVolumeSource proto.InternalMessageInfo func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSource{} } func (*QuobyteVolumeSource) ProtoMessage() {} func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{152} + return fileDescriptor_83c10c24ec417dc9, []int{151} } func (m *QuobyteVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4336,7 +4308,7 @@ var xxx_messageInfo_QuobyteVolumeSource proto.InternalMessageInfo func (m *RBDPersistentVolumeSource) Reset() { *m = RBDPersistentVolumeSource{} } func (*RBDPersistentVolumeSource) ProtoMessage() {} func (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{153} + return fileDescriptor_83c10c24ec417dc9, []int{152} } func (m *RBDPersistentVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4364,7 +4336,7 @@ var xxx_messageInfo_RBDPersistentVolumeSource proto.InternalMessageInfo func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} func (*RBDVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{154} + return fileDescriptor_83c10c24ec417dc9, []int{153} } func (m *RBDVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4392,7 +4364,7 @@ var xxx_messageInfo_RBDVolumeSource proto.InternalMessageInfo func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} func (*RangeAllocation) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{155} + return fileDescriptor_83c10c24ec417dc9, []int{154} } func (m *RangeAllocation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4420,7 +4392,7 @@ var xxx_messageInfo_RangeAllocation proto.InternalMessageInfo func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} func (*ReplicationController) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{156} + return fileDescriptor_83c10c24ec417dc9, []int{155} } func (m *ReplicationController) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4448,7 +4420,7 @@ var xxx_messageInfo_ReplicationController proto.InternalMessageInfo func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{157} + return fileDescriptor_83c10c24ec417dc9, []int{156} } func (m *ReplicationControllerCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4476,7 +4448,7 @@ var xxx_messageInfo_ReplicationControllerCondition proto.InternalMessageInfo func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{158} + return fileDescriptor_83c10c24ec417dc9, []int{157} } func (m *ReplicationControllerList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4504,7 +4476,7 @@ var xxx_messageInfo_ReplicationControllerList proto.InternalMessageInfo func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{159} + return fileDescriptor_83c10c24ec417dc9, []int{158} } func (m *ReplicationControllerSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4532,7 +4504,7 @@ var xxx_messageInfo_ReplicationControllerSpec proto.InternalMessageInfo func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{160} + return fileDescriptor_83c10c24ec417dc9, []int{159} } func (m *ReplicationControllerStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4560,7 +4532,7 @@ var xxx_messageInfo_ReplicationControllerStatus proto.InternalMessageInfo func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{161} + return fileDescriptor_83c10c24ec417dc9, []int{160} } func (m *ResourceFieldSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4588,7 +4560,7 @@ var xxx_messageInfo_ResourceFieldSelector proto.InternalMessageInfo func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} func (*ResourceQuota) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{162} + return fileDescriptor_83c10c24ec417dc9, []int{161} } func (m *ResourceQuota) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4616,7 +4588,7 @@ var xxx_messageInfo_ResourceQuota proto.InternalMessageInfo func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} func (*ResourceQuotaList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{163} + return fileDescriptor_83c10c24ec417dc9, []int{162} } func (m *ResourceQuotaList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4644,7 +4616,7 @@ var xxx_messageInfo_ResourceQuotaList proto.InternalMessageInfo func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{164} + return fileDescriptor_83c10c24ec417dc9, []int{163} } func (m *ResourceQuotaSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4672,7 +4644,7 @@ var xxx_messageInfo_ResourceQuotaSpec proto.InternalMessageInfo func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{165} + return fileDescriptor_83c10c24ec417dc9, []int{164} } func (m *ResourceQuotaStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4700,7 +4672,7 @@ var xxx_messageInfo_ResourceQuotaStatus proto.InternalMessageInfo func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} func (*ResourceRequirements) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{166} + return fileDescriptor_83c10c24ec417dc9, []int{165} } func (m *ResourceRequirements) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4728,7 +4700,7 @@ var xxx_messageInfo_ResourceRequirements proto.InternalMessageInfo func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} func (*SELinuxOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{167} + return fileDescriptor_83c10c24ec417dc9, []int{166} } func (m *SELinuxOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4756,7 +4728,7 @@ var xxx_messageInfo_SELinuxOptions proto.InternalMessageInfo func (m *ScaleIOPersistentVolumeSource) Reset() { *m = ScaleIOPersistentVolumeSource{} } func (*ScaleIOPersistentVolumeSource) ProtoMessage() {} func (*ScaleIOPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{168} + return fileDescriptor_83c10c24ec417dc9, []int{167} } func (m *ScaleIOPersistentVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4784,7 +4756,7 @@ var xxx_messageInfo_ScaleIOPersistentVolumeSource proto.InternalMessageInfo func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{169} + return fileDescriptor_83c10c24ec417dc9, []int{168} } func (m *ScaleIOVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4812,7 +4784,7 @@ var xxx_messageInfo_ScaleIOVolumeSource proto.InternalMessageInfo func (m *ScopeSelector) Reset() { *m = ScopeSelector{} } func (*ScopeSelector) ProtoMessage() {} func (*ScopeSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{170} + return fileDescriptor_83c10c24ec417dc9, []int{169} } func (m *ScopeSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4840,7 +4812,7 @@ var xxx_messageInfo_ScopeSelector proto.InternalMessageInfo func (m *ScopedResourceSelectorRequirement) Reset() { *m = ScopedResourceSelectorRequirement{} } func (*ScopedResourceSelectorRequirement) ProtoMessage() {} func (*ScopedResourceSelectorRequirement) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{171} + return fileDescriptor_83c10c24ec417dc9, []int{170} } func (m *ScopedResourceSelectorRequirement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4868,7 +4840,7 @@ var xxx_messageInfo_ScopedResourceSelectorRequirement proto.InternalMessageInfo func (m *SeccompProfile) Reset() { *m = SeccompProfile{} } func (*SeccompProfile) ProtoMessage() {} func (*SeccompProfile) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{172} + return fileDescriptor_83c10c24ec417dc9, []int{171} } func (m *SeccompProfile) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4896,7 +4868,7 @@ var xxx_messageInfo_SeccompProfile proto.InternalMessageInfo func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} func (*Secret) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{173} + return fileDescriptor_83c10c24ec417dc9, []int{172} } func (m *Secret) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4924,7 +4896,7 @@ var xxx_messageInfo_Secret proto.InternalMessageInfo func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} func (*SecretEnvSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{174} + return fileDescriptor_83c10c24ec417dc9, []int{173} } func (m *SecretEnvSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4952,7 +4924,7 @@ var xxx_messageInfo_SecretEnvSource proto.InternalMessageInfo func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} func (*SecretKeySelector) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{175} + return fileDescriptor_83c10c24ec417dc9, []int{174} } func (m *SecretKeySelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4980,7 +4952,7 @@ var xxx_messageInfo_SecretKeySelector proto.InternalMessageInfo func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} func (*SecretList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{176} + return fileDescriptor_83c10c24ec417dc9, []int{175} } func (m *SecretList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5008,7 +4980,7 @@ var xxx_messageInfo_SecretList proto.InternalMessageInfo func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} func (*SecretProjection) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{177} + return fileDescriptor_83c10c24ec417dc9, []int{176} } func (m *SecretProjection) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5036,7 +5008,7 @@ var xxx_messageInfo_SecretProjection proto.InternalMessageInfo func (m *SecretReference) Reset() { *m = SecretReference{} } func (*SecretReference) ProtoMessage() {} func (*SecretReference) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{178} + return fileDescriptor_83c10c24ec417dc9, []int{177} } func (m *SecretReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5064,7 +5036,7 @@ var xxx_messageInfo_SecretReference proto.InternalMessageInfo func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} func (*SecretVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{179} + return fileDescriptor_83c10c24ec417dc9, []int{178} } func (m *SecretVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5092,7 +5064,7 @@ var xxx_messageInfo_SecretVolumeSource proto.InternalMessageInfo func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} func (*SecurityContext) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{180} + return fileDescriptor_83c10c24ec417dc9, []int{179} } func (m *SecurityContext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5120,7 +5092,7 @@ var xxx_messageInfo_SecurityContext proto.InternalMessageInfo func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} func (*SerializedReference) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{181} + return fileDescriptor_83c10c24ec417dc9, []int{180} } func (m *SerializedReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5148,7 +5120,7 @@ var xxx_messageInfo_SerializedReference proto.InternalMessageInfo func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} func (*Service) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{182} + return fileDescriptor_83c10c24ec417dc9, []int{181} } func (m *Service) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5176,7 +5148,7 @@ var xxx_messageInfo_Service proto.InternalMessageInfo func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} func (*ServiceAccount) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{183} + return fileDescriptor_83c10c24ec417dc9, []int{182} } func (m *ServiceAccount) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5204,7 +5176,7 @@ var xxx_messageInfo_ServiceAccount proto.InternalMessageInfo func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} func (*ServiceAccountList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{184} + return fileDescriptor_83c10c24ec417dc9, []int{183} } func (m *ServiceAccountList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5232,7 +5204,7 @@ var xxx_messageInfo_ServiceAccountList proto.InternalMessageInfo func (m *ServiceAccountTokenProjection) Reset() { *m = ServiceAccountTokenProjection{} } func (*ServiceAccountTokenProjection) ProtoMessage() {} func (*ServiceAccountTokenProjection) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{185} + return fileDescriptor_83c10c24ec417dc9, []int{184} } func (m *ServiceAccountTokenProjection) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5260,7 +5232,7 @@ var xxx_messageInfo_ServiceAccountTokenProjection proto.InternalMessageInfo func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} func (*ServiceList) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{186} + return fileDescriptor_83c10c24ec417dc9, []int{185} } func (m *ServiceList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5288,7 +5260,7 @@ var xxx_messageInfo_ServiceList proto.InternalMessageInfo func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} func (*ServicePort) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{187} + return fileDescriptor_83c10c24ec417dc9, []int{186} } func (m *ServicePort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5316,7 +5288,7 @@ var xxx_messageInfo_ServicePort proto.InternalMessageInfo func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{188} + return fileDescriptor_83c10c24ec417dc9, []int{187} } func (m *ServiceProxyOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5344,7 +5316,7 @@ var xxx_messageInfo_ServiceProxyOptions proto.InternalMessageInfo func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} func (*ServiceSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{189} + return fileDescriptor_83c10c24ec417dc9, []int{188} } func (m *ServiceSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5372,7 +5344,7 @@ var xxx_messageInfo_ServiceSpec proto.InternalMessageInfo func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} func (*ServiceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{190} + return fileDescriptor_83c10c24ec417dc9, []int{189} } func (m *ServiceStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5400,7 +5372,7 @@ var xxx_messageInfo_ServiceStatus proto.InternalMessageInfo func (m *SessionAffinityConfig) Reset() { *m = SessionAffinityConfig{} } func (*SessionAffinityConfig) ProtoMessage() {} func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{191} + return fileDescriptor_83c10c24ec417dc9, []int{190} } func (m *SessionAffinityConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5428,7 +5400,7 @@ var xxx_messageInfo_SessionAffinityConfig proto.InternalMessageInfo func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{192} + return fileDescriptor_83c10c24ec417dc9, []int{191} } func (m *StorageOSPersistentVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5456,7 +5428,7 @@ var xxx_messageInfo_StorageOSPersistentVolumeSource proto.InternalMessageInfo func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{193} + return fileDescriptor_83c10c24ec417dc9, []int{192} } func (m *StorageOSVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5484,7 +5456,7 @@ var xxx_messageInfo_StorageOSVolumeSource proto.InternalMessageInfo func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} func (*Sysctl) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{194} + return fileDescriptor_83c10c24ec417dc9, []int{193} } func (m *Sysctl) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5512,7 +5484,7 @@ var xxx_messageInfo_Sysctl proto.InternalMessageInfo func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} func (*TCPSocketAction) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{195} + return fileDescriptor_83c10c24ec417dc9, []int{194} } func (m *TCPSocketAction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5540,7 +5512,7 @@ var xxx_messageInfo_TCPSocketAction proto.InternalMessageInfo func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} func (*Taint) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{196} + return fileDescriptor_83c10c24ec417dc9, []int{195} } func (m *Taint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5568,7 +5540,7 @@ var xxx_messageInfo_Taint proto.InternalMessageInfo func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} func (*Toleration) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{197} + return fileDescriptor_83c10c24ec417dc9, []int{196} } func (m *Toleration) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5596,7 +5568,7 @@ var xxx_messageInfo_Toleration proto.InternalMessageInfo func (m *TopologySelectorLabelRequirement) Reset() { *m = TopologySelectorLabelRequirement{} } func (*TopologySelectorLabelRequirement) ProtoMessage() {} func (*TopologySelectorLabelRequirement) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{198} + return fileDescriptor_83c10c24ec417dc9, []int{197} } func (m *TopologySelectorLabelRequirement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5624,7 +5596,7 @@ var xxx_messageInfo_TopologySelectorLabelRequirement proto.InternalMessageInfo func (m *TopologySelectorTerm) Reset() { *m = TopologySelectorTerm{} } func (*TopologySelectorTerm) ProtoMessage() {} func (*TopologySelectorTerm) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{199} + return fileDescriptor_83c10c24ec417dc9, []int{198} } func (m *TopologySelectorTerm) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5652,7 +5624,7 @@ var xxx_messageInfo_TopologySelectorTerm proto.InternalMessageInfo func (m *TopologySpreadConstraint) Reset() { *m = TopologySpreadConstraint{} } func (*TopologySpreadConstraint) ProtoMessage() {} func (*TopologySpreadConstraint) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{200} + return fileDescriptor_83c10c24ec417dc9, []int{199} } func (m *TopologySpreadConstraint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5680,7 +5652,7 @@ var xxx_messageInfo_TopologySpreadConstraint proto.InternalMessageInfo func (m *TypedLocalObjectReference) Reset() { *m = TypedLocalObjectReference{} } func (*TypedLocalObjectReference) ProtoMessage() {} func (*TypedLocalObjectReference) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{201} + return fileDescriptor_83c10c24ec417dc9, []int{200} } func (m *TypedLocalObjectReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5708,7 +5680,7 @@ var xxx_messageInfo_TypedLocalObjectReference proto.InternalMessageInfo func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} func (*Volume) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{202} + return fileDescriptor_83c10c24ec417dc9, []int{201} } func (m *Volume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5736,7 +5708,7 @@ var xxx_messageInfo_Volume proto.InternalMessageInfo func (m *VolumeDevice) Reset() { *m = VolumeDevice{} } func (*VolumeDevice) ProtoMessage() {} func (*VolumeDevice) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{203} + return fileDescriptor_83c10c24ec417dc9, []int{202} } func (m *VolumeDevice) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5764,7 +5736,7 @@ var xxx_messageInfo_VolumeDevice proto.InternalMessageInfo func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} func (*VolumeMount) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{204} + return fileDescriptor_83c10c24ec417dc9, []int{203} } func (m *VolumeMount) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5792,7 +5764,7 @@ var xxx_messageInfo_VolumeMount proto.InternalMessageInfo func (m *VolumeNodeAffinity) Reset() { *m = VolumeNodeAffinity{} } func (*VolumeNodeAffinity) ProtoMessage() {} func (*VolumeNodeAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{205} + return fileDescriptor_83c10c24ec417dc9, []int{204} } func (m *VolumeNodeAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5820,7 +5792,7 @@ var xxx_messageInfo_VolumeNodeAffinity proto.InternalMessageInfo func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} func (*VolumeProjection) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{206} + return fileDescriptor_83c10c24ec417dc9, []int{205} } func (m *VolumeProjection) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5848,7 +5820,7 @@ var xxx_messageInfo_VolumeProjection proto.InternalMessageInfo func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} func (*VolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{207} + return fileDescriptor_83c10c24ec417dc9, []int{206} } func (m *VolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5876,7 +5848,7 @@ var xxx_messageInfo_VolumeSource proto.InternalMessageInfo func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{208} + return fileDescriptor_83c10c24ec417dc9, []int{207} } func (m *VsphereVirtualDiskVolumeSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5904,7 +5876,7 @@ var xxx_messageInfo_VsphereVirtualDiskVolumeSource proto.InternalMessageInfo func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{209} + return fileDescriptor_83c10c24ec417dc9, []int{208} } func (m *WeightedPodAffinityTerm) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5932,7 +5904,7 @@ var xxx_messageInfo_WeightedPodAffinityTerm proto.InternalMessageInfo func (m *WindowsSecurityContextOptions) Reset() { *m = WindowsSecurityContextOptions{} } func (*WindowsSecurityContextOptions) ProtoMessage() {} func (*WindowsSecurityContextOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_83c10c24ec417dc9, []int{210} + return fileDescriptor_83c10c24ec417dc9, []int{209} } func (m *WindowsSecurityContextOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6031,7 +6003,6 @@ func init() { proto.RegisterType((*HTTPGetAction)(nil), "k8s.io.api.core.v1.HTTPGetAction") proto.RegisterType((*HTTPHeader)(nil), "k8s.io.api.core.v1.HTTPHeader") proto.RegisterType((*HostAlias)(nil), "k8s.io.api.core.v1.HostAlias") - proto.RegisterType((*HostIP)(nil), "k8s.io.api.core.v1.HostIP") proto.RegisterType((*HostPathVolumeSource)(nil), "k8s.io.api.core.v1.HostPathVolumeSource") proto.RegisterType((*ISCSIPersistentVolumeSource)(nil), "k8s.io.api.core.v1.ISCSIPersistentVolumeSource") proto.RegisterType((*ISCSIVolumeSource)(nil), "k8s.io.api.core.v1.ISCSIVolumeSource") @@ -6204,900 +6175,899 @@ func init() { } var fileDescriptor_83c10c24ec417dc9 = []byte{ - // 14287 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x69, 0x70, 0x64, 0xd7, - 0x79, 0x18, 0xaa, 0xdb, 0x8d, 0xad, 0x3f, 0xec, 0x67, 0x16, 0x62, 0x40, 0xce, 0x60, 0x78, 0x49, - 0x0d, 0x87, 0x22, 0x89, 0xd1, 0x70, 0x91, 0x68, 0x52, 0xa2, 0x05, 0xa0, 0x81, 0x19, 0x70, 0x06, - 0x98, 0xe6, 0x69, 0xcc, 0x8c, 0x24, 0x53, 0x2a, 0x5d, 0x74, 0x1f, 0x00, 0x57, 0xe8, 0xbe, 0xb7, - 0x79, 0xef, 0x6d, 0xcc, 0x80, 0x4f, 0xae, 0xe7, 0x27, 0xaf, 0xf2, 0xf2, 0x4a, 0xf5, 0xca, 0x2f, - 0x49, 0xc9, 0x2e, 0x57, 0xca, 0x71, 0x62, 0x2b, 0xca, 0xe6, 0xc8, 0xb1, 0x1d, 0xcb, 0x89, 0x9d, - 0xad, 0xe2, 0xe4, 0x87, 0xed, 0xb8, 0x2a, 0x96, 0xab, 0x5c, 0x41, 0xec, 0x71, 0xaa, 0x5c, 0xaa, - 0x4a, 0x6c, 0x27, 0x4e, 0x7e, 0x64, 0xe2, 0x8a, 0x53, 0x67, 0xbd, 0xe7, 0xdc, 0xad, 0x1b, 0x43, - 0x0c, 0x44, 0xa9, 0xf8, 0xaf, 0xfb, 0x7c, 0xdf, 0xf9, 0xce, 0xb9, 0x67, 0xfd, 0xce, 0xb7, 0xc2, - 0xab, 0xbb, 0x2f, 0x87, 0xf3, 0xae, 0x7f, 0x69, 0xb7, 0xbb, 0x49, 0x02, 0x8f, 0x44, 0x24, 0xbc, - 0xb4, 0x47, 0xbc, 0xa6, 0x1f, 0x5c, 0x12, 0x00, 0xa7, 0xe3, 0x5e, 0x6a, 0xf8, 0x01, 0xb9, 0xb4, - 0x77, 0xf9, 0xd2, 0x36, 0xf1, 0x48, 0xe0, 0x44, 0xa4, 0x39, 0xdf, 0x09, 0xfc, 0xc8, 0x47, 0x88, - 0xe3, 0xcc, 0x3b, 0x1d, 0x77, 0x9e, 0xe2, 0xcc, 0xef, 0x5d, 0x9e, 0x7d, 0x6e, 0xdb, 0x8d, 0x76, - 0xba, 0x9b, 0xf3, 0x0d, 0xbf, 0x7d, 0x69, 0xdb, 0xdf, 0xf6, 0x2f, 0x31, 0xd4, 0xcd, 0xee, 0x16, - 0xfb, 0xc7, 0xfe, 0xb0, 0x5f, 0x9c, 0xc4, 0xec, 0x8b, 0x71, 0x33, 0x6d, 0xa7, 0xb1, 0xe3, 0x7a, - 0x24, 0xd8, 0xbf, 0xd4, 0xd9, 0xdd, 0x66, 0xed, 0x06, 0x24, 0xf4, 0xbb, 0x41, 0x83, 0x24, 0x1b, - 0x2e, 0xac, 0x15, 0x5e, 0x6a, 0x93, 0xc8, 0xc9, 0xe8, 0xee, 0xec, 0xa5, 0xbc, 0x5a, 0x41, 0xd7, - 0x8b, 0xdc, 0x76, 0xba, 0x99, 0x0f, 0xf5, 0xaa, 0x10, 0x36, 0x76, 0x48, 0xdb, 0x49, 0xd5, 0x7b, - 0x21, 0xaf, 0x5e, 0x37, 0x72, 0x5b, 0x97, 0x5c, 0x2f, 0x0a, 0xa3, 0x20, 0x59, 0xc9, 0xfe, 0xba, - 0x05, 0xe7, 0x17, 0x6e, 0xd7, 0x97, 0x5b, 0x4e, 0x18, 0xb9, 0x8d, 0xc5, 0x96, 0xdf, 0xd8, 0xad, - 0x47, 0x7e, 0x40, 0x6e, 0xf9, 0xad, 0x6e, 0x9b, 0xd4, 0xd9, 0x40, 0xa0, 0x67, 0x61, 0x64, 0x8f, - 0xfd, 0x5f, 0xad, 0xce, 0x58, 0xe7, 0xad, 0x8b, 0x95, 0xc5, 0xa9, 0xdf, 0x38, 0x98, 0x7b, 0xdf, - 0xbd, 0x83, 0xb9, 0x91, 0x5b, 0xa2, 0x1c, 0x2b, 0x0c, 0x74, 0x01, 0x86, 0xb6, 0xc2, 0x8d, 0xfd, - 0x0e, 0x99, 0x29, 0x31, 0xdc, 0x09, 0x81, 0x3b, 0xb4, 0x52, 0xa7, 0xa5, 0x58, 0x40, 0xd1, 0x25, - 0xa8, 0x74, 0x9c, 0x20, 0x72, 0x23, 0xd7, 0xf7, 0x66, 0xca, 0xe7, 0xad, 0x8b, 0x83, 0x8b, 0xd3, - 0x02, 0xb5, 0x52, 0x93, 0x00, 0x1c, 0xe3, 0xd0, 0x6e, 0x04, 0xc4, 0x69, 0xde, 0xf0, 0x5a, 0xfb, - 0x33, 0x03, 0xe7, 0xad, 0x8b, 0x23, 0x71, 0x37, 0xb0, 0x28, 0xc7, 0x0a, 0xc3, 0xfe, 0x52, 0x09, - 0x46, 0x16, 0xb6, 0xb6, 0x5c, 0xcf, 0x8d, 0xf6, 0xd1, 0x2d, 0x18, 0xf3, 0xfc, 0x26, 0x91, 0xff, - 0xd9, 0x57, 0x8c, 0x3e, 0x7f, 0x7e, 0x3e, 0xbd, 0x94, 0xe6, 0xd7, 0x35, 0xbc, 0xc5, 0xa9, 0x7b, - 0x07, 0x73, 0x63, 0x7a, 0x09, 0x36, 0xe8, 0x20, 0x0c, 0xa3, 0x1d, 0xbf, 0xa9, 0xc8, 0x96, 0x18, - 0xd9, 0xb9, 0x2c, 0xb2, 0xb5, 0x18, 0x6d, 0x71, 0xf2, 0xde, 0xc1, 0xdc, 0xa8, 0x56, 0x80, 0x75, - 0x22, 0x68, 0x13, 0x26, 0xe9, 0x5f, 0x2f, 0x72, 0x15, 0xdd, 0x32, 0xa3, 0xfb, 0x44, 0x1e, 0x5d, - 0x0d, 0x75, 0xf1, 0xc4, 0xbd, 0x83, 0xb9, 0xc9, 0x44, 0x21, 0x4e, 0x12, 0xb4, 0xdf, 0x86, 0x89, - 0x85, 0x28, 0x72, 0x1a, 0x3b, 0xa4, 0xc9, 0x67, 0x10, 0xbd, 0x08, 0x03, 0x9e, 0xd3, 0x26, 0x62, - 0x7e, 0xcf, 0x8b, 0x81, 0x1d, 0x58, 0x77, 0xda, 0xe4, 0xfe, 0xc1, 0xdc, 0xd4, 0x4d, 0xcf, 0x7d, - 0xab, 0x2b, 0x56, 0x05, 0x2d, 0xc3, 0x0c, 0x1b, 0x3d, 0x0f, 0xd0, 0x24, 0x7b, 0x6e, 0x83, 0xd4, - 0x9c, 0x68, 0x47, 0xcc, 0x37, 0x12, 0x75, 0xa1, 0xaa, 0x20, 0x58, 0xc3, 0xb2, 0xef, 0x42, 0x65, - 0x61, 0xcf, 0x77, 0x9b, 0x35, 0xbf, 0x19, 0xa2, 0x5d, 0x98, 0xec, 0x04, 0x64, 0x8b, 0x04, 0xaa, - 0x68, 0xc6, 0x3a, 0x5f, 0xbe, 0x38, 0xfa, 0xfc, 0xc5, 0xcc, 0x8f, 0x35, 0x51, 0x97, 0xbd, 0x28, - 0xd8, 0x5f, 0x7c, 0x44, 0xb4, 0x37, 0x99, 0x80, 0xe2, 0x24, 0x65, 0xfb, 0x5f, 0x96, 0xe0, 0xd4, - 0xc2, 0xdb, 0xdd, 0x80, 0x54, 0xdd, 0x70, 0x37, 0xb9, 0xc2, 0x9b, 0x6e, 0xb8, 0xbb, 0x1e, 0x8f, - 0x80, 0x5a, 0x5a, 0x55, 0x51, 0x8e, 0x15, 0x06, 0x7a, 0x0e, 0x86, 0xe9, 0xef, 0x9b, 0x78, 0x55, - 0x7c, 0xf2, 0x09, 0x81, 0x3c, 0x5a, 0x75, 0x22, 0xa7, 0xca, 0x41, 0x58, 0xe2, 0xa0, 0x35, 0x18, - 0x6d, 0xb0, 0x0d, 0xb9, 0xbd, 0xe6, 0x37, 0x09, 0x9b, 0xcc, 0xca, 0xe2, 0x33, 0x14, 0x7d, 0x29, - 0x2e, 0xbe, 0x7f, 0x30, 0x37, 0xc3, 0xfb, 0x26, 0x48, 0x68, 0x30, 0xac, 0xd7, 0x47, 0xb6, 0xda, - 0x5f, 0x03, 0x8c, 0x12, 0x64, 0xec, 0xad, 0x8b, 0xda, 0x56, 0x19, 0x64, 0x5b, 0x65, 0x2c, 0x7b, - 0x9b, 0xa0, 0xcb, 0x30, 0xb0, 0xeb, 0x7a, 0xcd, 0x99, 0x21, 0x46, 0xeb, 0x2c, 0x9d, 0xf3, 0x6b, - 0xae, 0xd7, 0xbc, 0x7f, 0x30, 0x37, 0x6d, 0x74, 0x87, 0x16, 0x62, 0x86, 0x6a, 0xff, 0xb9, 0x05, - 0x73, 0x0c, 0xb6, 0xe2, 0xb6, 0x48, 0x8d, 0x04, 0xa1, 0x1b, 0x46, 0xc4, 0x8b, 0x8c, 0x01, 0x7d, - 0x1e, 0x20, 0x24, 0x8d, 0x80, 0x44, 0xda, 0x90, 0xaa, 0x85, 0x51, 0x57, 0x10, 0xac, 0x61, 0xd1, - 0x03, 0x21, 0xdc, 0x71, 0x02, 0xb6, 0xbe, 0xc4, 0xc0, 0xaa, 0x03, 0xa1, 0x2e, 0x01, 0x38, 0xc6, - 0x31, 0x0e, 0x84, 0x72, 0xaf, 0x03, 0x01, 0x7d, 0x14, 0x26, 0xe3, 0xc6, 0xc2, 0x8e, 0xd3, 0x90, - 0x03, 0xc8, 0xb6, 0x4c, 0xdd, 0x04, 0xe1, 0x24, 0xae, 0xfd, 0xb7, 0x2d, 0xb1, 0x78, 0xe8, 0x57, - 0xbf, 0xcb, 0xbf, 0xd5, 0xfe, 0x65, 0x0b, 0x86, 0x17, 0x5d, 0xaf, 0xe9, 0x7a, 0xdb, 0xe8, 0x33, - 0x30, 0x42, 0xef, 0xa6, 0xa6, 0x13, 0x39, 0xe2, 0xdc, 0xfb, 0xa0, 0xb6, 0xb7, 0xd4, 0x55, 0x31, - 0xdf, 0xd9, 0xdd, 0xa6, 0x05, 0xe1, 0x3c, 0xc5, 0xa6, 0xbb, 0xed, 0xc6, 0xe6, 0x67, 0x49, 0x23, - 0x5a, 0x23, 0x91, 0x13, 0x7f, 0x4e, 0x5c, 0x86, 0x15, 0x55, 0x74, 0x0d, 0x86, 0x22, 0x27, 0xd8, - 0x26, 0x91, 0x38, 0x00, 0x33, 0x0f, 0x2a, 0x5e, 0x13, 0xd3, 0x1d, 0x49, 0xbc, 0x06, 0x89, 0xaf, - 0x85, 0x0d, 0x56, 0x15, 0x0b, 0x12, 0xf6, 0x8f, 0x0d, 0xc3, 0x99, 0xa5, 0xfa, 0x6a, 0xce, 0xba, - 0xba, 0x00, 0x43, 0xcd, 0xc0, 0xdd, 0x23, 0x81, 0x18, 0x67, 0x45, 0xa5, 0xca, 0x4a, 0xb1, 0x80, - 0xa2, 0x97, 0x61, 0x8c, 0x5f, 0x48, 0x57, 0x1d, 0xaf, 0xd9, 0x92, 0x43, 0x7c, 0x52, 0x60, 0x8f, - 0xdd, 0xd2, 0x60, 0xd8, 0xc0, 0x3c, 0xe4, 0xa2, 0xba, 0x90, 0xd8, 0x8c, 0x79, 0x97, 0xdd, 0x17, - 0x2c, 0x98, 0xe2, 0xcd, 0x2c, 0x44, 0x51, 0xe0, 0x6e, 0x76, 0x23, 0x12, 0xce, 0x0c, 0xb2, 0x93, - 0x6e, 0x29, 0x6b, 0xb4, 0x72, 0x47, 0x60, 0xfe, 0x56, 0x82, 0x0a, 0x3f, 0x04, 0x67, 0x44, 0xbb, - 0x53, 0x49, 0x30, 0x4e, 0x35, 0x8b, 0xbe, 0xd7, 0x82, 0xd9, 0x86, 0xef, 0x45, 0x81, 0xdf, 0x6a, - 0x91, 0xa0, 0xd6, 0xdd, 0x6c, 0xb9, 0xe1, 0x0e, 0x5f, 0xa7, 0x98, 0x6c, 0xb1, 0x93, 0x20, 0x67, - 0x0e, 0x15, 0x92, 0x98, 0xc3, 0x73, 0xf7, 0x0e, 0xe6, 0x66, 0x97, 0x72, 0x49, 0xe1, 0x82, 0x66, - 0xd0, 0x2e, 0x20, 0x7a, 0x95, 0xd6, 0x23, 0x67, 0x9b, 0xc4, 0x8d, 0x0f, 0xf7, 0xdf, 0xf8, 0xe9, - 0x7b, 0x07, 0x73, 0x68, 0x3d, 0x45, 0x02, 0x67, 0x90, 0x45, 0x6f, 0xc1, 0x49, 0x5a, 0x9a, 0xfa, - 0xd6, 0x91, 0xfe, 0x9b, 0x9b, 0xb9, 0x77, 0x30, 0x77, 0x72, 0x3d, 0x83, 0x08, 0xce, 0x24, 0x8d, - 0xbe, 0xc7, 0x82, 0x33, 0xf1, 0xe7, 0x2f, 0xdf, 0xed, 0x38, 0x5e, 0x33, 0x6e, 0xb8, 0xd2, 0x7f, - 0xc3, 0xf4, 0x4c, 0x3e, 0xb3, 0x94, 0x47, 0x09, 0xe7, 0x37, 0x32, 0xbb, 0x04, 0xa7, 0x32, 0x57, - 0x0b, 0x9a, 0x82, 0xf2, 0x2e, 0xe1, 0x5c, 0x50, 0x05, 0xd3, 0x9f, 0xe8, 0x24, 0x0c, 0xee, 0x39, - 0xad, 0xae, 0xd8, 0x28, 0x98, 0xff, 0x79, 0xa5, 0xf4, 0xb2, 0x65, 0xff, 0xab, 0x32, 0x4c, 0x2e, - 0xd5, 0x57, 0x1f, 0x68, 0x17, 0xea, 0xd7, 0x50, 0xa9, 0xf0, 0x1a, 0x8a, 0x2f, 0xb5, 0x72, 0xee, - 0xa5, 0xf6, 0x7f, 0x67, 0x6c, 0xa1, 0x01, 0xb6, 0x85, 0xbe, 0x23, 0x67, 0x0b, 0x1d, 0xf1, 0xc6, - 0xd9, 0xcb, 0x59, 0x45, 0x83, 0x6c, 0x32, 0x33, 0x39, 0x96, 0xeb, 0x7e, 0xc3, 0x69, 0x25, 0x8f, - 0xbe, 0x43, 0x2e, 0xa5, 0xa3, 0x99, 0xc7, 0x06, 0x8c, 0x2d, 0x39, 0x1d, 0x67, 0xd3, 0x6d, 0xb9, - 0x91, 0x4b, 0x42, 0xf4, 0x14, 0x94, 0x9d, 0x66, 0x93, 0x71, 0x5b, 0x95, 0xc5, 0x53, 0xf7, 0x0e, - 0xe6, 0xca, 0x0b, 0x4d, 0x7a, 0xed, 0x83, 0xc2, 0xda, 0xc7, 0x14, 0x03, 0x7d, 0x00, 0x06, 0x9a, - 0x81, 0xdf, 0x99, 0x29, 0x31, 0x4c, 0xba, 0xeb, 0x06, 0xaa, 0x81, 0xdf, 0x49, 0xa0, 0x32, 0x1c, - 0xfb, 0xd7, 0x4b, 0xf0, 0xd8, 0x12, 0xe9, 0xec, 0xac, 0xd4, 0x73, 0xce, 0xef, 0x8b, 0x30, 0xd2, - 0xf6, 0x3d, 0x37, 0xf2, 0x83, 0x50, 0x34, 0xcd, 0x56, 0xc4, 0x9a, 0x28, 0xc3, 0x0a, 0x8a, 0xce, - 0xc3, 0x40, 0x27, 0x66, 0x2a, 0xc7, 0x24, 0x43, 0xca, 0xd8, 0x49, 0x06, 0xa1, 0x18, 0xdd, 0x90, - 0x04, 0x62, 0xc5, 0x28, 0x8c, 0x9b, 0x21, 0x09, 0x30, 0x83, 0xc4, 0x37, 0x33, 0xbd, 0xb3, 0xc5, - 0x09, 0x9d, 0xb8, 0x99, 0x29, 0x04, 0x6b, 0x58, 0xa8, 0x06, 0x95, 0x30, 0x31, 0xb3, 0x7d, 0x6d, - 0xd3, 0x71, 0x76, 0x75, 0xab, 0x99, 0x8c, 0x89, 0x18, 0x37, 0xca, 0x50, 0xcf, 0xab, 0xfb, 0x6b, - 0x25, 0x40, 0x7c, 0x08, 0xbf, 0xc5, 0x06, 0xee, 0x66, 0x7a, 0xe0, 0xfa, 0xdf, 0x12, 0x47, 0x35, - 0x7a, 0xff, 0xdd, 0x82, 0xc7, 0x96, 0x5c, 0xaf, 0x49, 0x82, 0x9c, 0x05, 0xf8, 0x70, 0xde, 0xb2, - 0x87, 0x63, 0x1a, 0x8c, 0x25, 0x36, 0x70, 0x04, 0x4b, 0xcc, 0xfe, 0x53, 0x0b, 0x10, 0xff, 0xec, - 0x77, 0xdd, 0xc7, 0xde, 0x4c, 0x7f, 0xec, 0x11, 0x2c, 0x0b, 0xfb, 0x3a, 0x4c, 0x2c, 0xb5, 0x5c, - 0xe2, 0x45, 0xab, 0xb5, 0x25, 0xdf, 0xdb, 0x72, 0xb7, 0xd1, 0x2b, 0x30, 0x11, 0xb9, 0x6d, 0xe2, - 0x77, 0xa3, 0x3a, 0x69, 0xf8, 0x1e, 0x7b, 0x49, 0x5a, 0x17, 0x07, 0x17, 0xd1, 0xbd, 0x83, 0xb9, - 0x89, 0x0d, 0x03, 0x82, 0x13, 0x98, 0xf6, 0xef, 0xd3, 0xf1, 0xf3, 0xdb, 0x1d, 0xdf, 0x23, 0x5e, - 0xb4, 0xe4, 0x7b, 0x4d, 0x2e, 0x71, 0x78, 0x05, 0x06, 0x22, 0x3a, 0x1e, 0x7c, 0xec, 0x2e, 0xc8, - 0x8d, 0x42, 0x47, 0xe1, 0xfe, 0xc1, 0xdc, 0xe9, 0x74, 0x0d, 0x36, 0x4e, 0xac, 0x0e, 0xfa, 0x0e, - 0x18, 0x0a, 0x23, 0x27, 0xea, 0x86, 0x62, 0x34, 0x1f, 0x97, 0xa3, 0x59, 0x67, 0xa5, 0xf7, 0x0f, - 0xe6, 0x26, 0x55, 0x35, 0x5e, 0x84, 0x45, 0x05, 0xf4, 0x34, 0x0c, 0xb7, 0x49, 0x18, 0x3a, 0xdb, - 0xf2, 0x36, 0x9c, 0x14, 0x75, 0x87, 0xd7, 0x78, 0x31, 0x96, 0x70, 0xf4, 0x04, 0x0c, 0x92, 0x20, - 0xf0, 0x03, 0xb1, 0x47, 0xc7, 0x05, 0xe2, 0xe0, 0x32, 0x2d, 0xc4, 0x1c, 0x66, 0xff, 0x96, 0x05, - 0x93, 0xaa, 0xaf, 0xbc, 0xad, 0x63, 0x78, 0x15, 0x7c, 0x12, 0xa0, 0x21, 0x3f, 0x30, 0x64, 0xb7, - 0xc7, 0xe8, 0xf3, 0x17, 0x32, 0x2f, 0xea, 0xd4, 0x30, 0xc6, 0x94, 0x55, 0x51, 0x88, 0x35, 0x6a, - 0xf6, 0x3f, 0xb1, 0xe0, 0x44, 0xe2, 0x8b, 0xae, 0xbb, 0x61, 0x84, 0xde, 0x4c, 0x7d, 0xd5, 0x7c, - 0x7f, 0x5f, 0x45, 0x6b, 0xb3, 0x6f, 0x52, 0x4b, 0x59, 0x96, 0x68, 0x5f, 0x74, 0x15, 0x06, 0xdd, - 0x88, 0xb4, 0xe5, 0xc7, 0x3c, 0x51, 0xf8, 0x31, 0xbc, 0x57, 0xf1, 0x8c, 0xac, 0xd2, 0x9a, 0x98, - 0x13, 0xb0, 0x7f, 0xbd, 0x0c, 0x15, 0xbe, 0x6c, 0xd7, 0x9c, 0xce, 0x31, 0xcc, 0xc5, 0x33, 0x50, - 0x71, 0xdb, 0xed, 0x6e, 0xe4, 0x6c, 0x8a, 0xe3, 0x7c, 0x84, 0x6f, 0xad, 0x55, 0x59, 0x88, 0x63, - 0x38, 0x5a, 0x85, 0x01, 0xd6, 0x15, 0xfe, 0x95, 0x4f, 0x65, 0x7f, 0xa5, 0xe8, 0xfb, 0x7c, 0xd5, - 0x89, 0x1c, 0xce, 0x49, 0xa9, 0x7b, 0x84, 0x16, 0x61, 0x46, 0x02, 0x39, 0x00, 0x9b, 0xae, 0xe7, - 0x04, 0xfb, 0xb4, 0x6c, 0xa6, 0xcc, 0x08, 0x3e, 0x57, 0x4c, 0x70, 0x51, 0xe1, 0x73, 0xb2, 0xea, - 0xc3, 0x62, 0x00, 0xd6, 0x88, 0xce, 0x7e, 0x18, 0x2a, 0x0a, 0xf9, 0x30, 0x0c, 0xd1, 0xec, 0x47, - 0x61, 0x32, 0xd1, 0x56, 0xaf, 0xea, 0x63, 0x3a, 0x3f, 0xf5, 0x2b, 0xec, 0xc8, 0x10, 0xbd, 0x5e, - 0xf6, 0xf6, 0xc4, 0x91, 0xfb, 0x36, 0x9c, 0x6c, 0x65, 0x9c, 0x64, 0x62, 0x5e, 0xfb, 0x3f, 0xf9, - 0x1e, 0x13, 0x9f, 0x7d, 0x32, 0x0b, 0x8a, 0x33, 0xdb, 0xa0, 0x3c, 0x82, 0xdf, 0xa1, 0x1b, 0xc4, - 0x69, 0xe9, 0xec, 0xf6, 0x0d, 0x51, 0x86, 0x15, 0x94, 0x9e, 0x77, 0x27, 0x55, 0xe7, 0xaf, 0x91, - 0xfd, 0x3a, 0x69, 0x91, 0x46, 0xe4, 0x07, 0xdf, 0xd4, 0xee, 0x9f, 0xe5, 0xa3, 0xcf, 0x8f, 0xcb, - 0x51, 0x41, 0xa0, 0x7c, 0x8d, 0xec, 0xf3, 0xa9, 0xd0, 0xbf, 0xae, 0x5c, 0xf8, 0x75, 0x3f, 0x6f, - 0xc1, 0xb8, 0xfa, 0xba, 0x63, 0x38, 0x17, 0x16, 0xcd, 0x73, 0xe1, 0x6c, 0xe1, 0x02, 0xcf, 0x39, - 0x11, 0xbe, 0x56, 0x82, 0x33, 0x0a, 0x87, 0xbe, 0x0d, 0xf8, 0x1f, 0xb1, 0xaa, 0x2e, 0x41, 0xc5, - 0x53, 0x52, 0x2b, 0xcb, 0x14, 0x17, 0xc5, 0x32, 0xab, 0x18, 0x87, 0xb2, 0x78, 0x5e, 0x2c, 0x5a, - 0x1a, 0xd3, 0xc5, 0xb9, 0x42, 0x74, 0xbb, 0x08, 0xe5, 0xae, 0xdb, 0x14, 0x17, 0xcc, 0x07, 0xe5, - 0x68, 0xdf, 0x5c, 0xad, 0xde, 0x3f, 0x98, 0x7b, 0x3c, 0x4f, 0x95, 0x40, 0x6f, 0xb6, 0x70, 0xfe, - 0xe6, 0x6a, 0x15, 0xd3, 0xca, 0x68, 0x01, 0x26, 0xa5, 0xb6, 0xe4, 0x16, 0x65, 0xb7, 0x7c, 0x4f, - 0xdc, 0x43, 0x4a, 0x26, 0x8b, 0x4d, 0x30, 0x4e, 0xe2, 0xa3, 0x2a, 0x4c, 0xed, 0x76, 0x37, 0x49, - 0x8b, 0x44, 0xfc, 0x83, 0xaf, 0x11, 0x2e, 0xb1, 0xac, 0xc4, 0x2f, 0xb3, 0x6b, 0x09, 0x38, 0x4e, - 0xd5, 0xb0, 0xff, 0x92, 0xdd, 0x07, 0x62, 0xf4, 0x6a, 0x81, 0x4f, 0x17, 0x16, 0xa5, 0xfe, 0xcd, - 0x5c, 0xce, 0xfd, 0xac, 0x8a, 0x6b, 0x64, 0x7f, 0xc3, 0xa7, 0x9c, 0x79, 0xf6, 0xaa, 0x30, 0xd6, - 0xfc, 0x40, 0xe1, 0x9a, 0xff, 0x85, 0x12, 0x9c, 0x52, 0x23, 0x60, 0x30, 0x81, 0xdf, 0xea, 0x63, - 0x70, 0x19, 0x46, 0x9b, 0x64, 0xcb, 0xe9, 0xb6, 0x22, 0x25, 0x3e, 0x1f, 0xe4, 0x2a, 0x94, 0x6a, - 0x5c, 0x8c, 0x75, 0x9c, 0x43, 0x0c, 0xdb, 0xff, 0x18, 0x65, 0x17, 0x71, 0xe4, 0xd0, 0x35, 0xae, - 0x76, 0x8d, 0x95, 0xbb, 0x6b, 0x9e, 0x80, 0x41, 0xb7, 0x4d, 0x19, 0xb3, 0x92, 0xc9, 0x6f, 0xad, - 0xd2, 0x42, 0xcc, 0x61, 0xe8, 0xfd, 0x30, 0xdc, 0xf0, 0xdb, 0x6d, 0xc7, 0x6b, 0xb2, 0x2b, 0xaf, - 0xb2, 0x38, 0x4a, 0x79, 0xb7, 0x25, 0x5e, 0x84, 0x25, 0x0c, 0x3d, 0x06, 0x03, 0x4e, 0xb0, 0xcd, - 0x65, 0x18, 0x95, 0xc5, 0x11, 0xda, 0xd2, 0x42, 0xb0, 0x1d, 0x62, 0x56, 0x4a, 0x9f, 0x60, 0x77, - 0xfc, 0x60, 0xd7, 0xf5, 0xb6, 0xab, 0x6e, 0x20, 0xb6, 0x84, 0xba, 0x0b, 0x6f, 0x2b, 0x08, 0xd6, - 0xb0, 0xd0, 0x0a, 0x0c, 0x76, 0xfc, 0x20, 0x0a, 0x67, 0x86, 0xd8, 0x70, 0x3f, 0x9e, 0x73, 0x10, - 0xf1, 0xaf, 0xad, 0xf9, 0x41, 0x14, 0x7f, 0x00, 0xfd, 0x17, 0x62, 0x5e, 0x1d, 0x5d, 0x87, 0x61, - 0xe2, 0xed, 0xad, 0x04, 0x7e, 0x7b, 0xe6, 0x44, 0x3e, 0xa5, 0x65, 0x8e, 0xc2, 0x97, 0x59, 0xcc, - 0xa3, 0x8a, 0x62, 0x2c, 0x49, 0xa0, 0xef, 0x80, 0x32, 0xf1, 0xf6, 0x66, 0x86, 0x19, 0xa5, 0xd9, - 0x1c, 0x4a, 0xb7, 0x9c, 0x20, 0x3e, 0xf3, 0x97, 0xbd, 0x3d, 0x4c, 0xeb, 0xa0, 0x4f, 0x40, 0x45, - 0x1e, 0x18, 0xa1, 0x10, 0xd6, 0x65, 0x2e, 0x58, 0x79, 0xcc, 0x60, 0xf2, 0x56, 0xd7, 0x0d, 0x48, - 0x9b, 0x78, 0x51, 0x18, 0x9f, 0x90, 0x12, 0x1a, 0xe2, 0x98, 0x1a, 0xfa, 0x84, 0x94, 0x10, 0xaf, - 0xf9, 0x5d, 0x2f, 0x0a, 0x67, 0x2a, 0xac, 0x7b, 0x99, 0xba, 0xbb, 0x5b, 0x31, 0x5e, 0x52, 0x84, - 0xcc, 0x2b, 0x63, 0x83, 0x14, 0xfa, 0x14, 0x8c, 0xf3, 0xff, 0x5c, 0x03, 0x16, 0xce, 0x9c, 0x62, - 0xb4, 0xcf, 0xe7, 0xd3, 0xe6, 0x88, 0x8b, 0xa7, 0x04, 0xf1, 0x71, 0xbd, 0x34, 0xc4, 0x26, 0x35, - 0x84, 0x61, 0xbc, 0xe5, 0xee, 0x11, 0x8f, 0x84, 0x61, 0x2d, 0xf0, 0x37, 0xc9, 0x0c, 0xb0, 0x81, - 0x39, 0x93, 0xad, 0x31, 0xf3, 0x37, 0xc9, 0xe2, 0x34, 0xa5, 0x79, 0x5d, 0xaf, 0x83, 0x4d, 0x12, - 0xe8, 0x26, 0x4c, 0xd0, 0x17, 0x9b, 0x1b, 0x13, 0x1d, 0xed, 0x45, 0x94, 0xbd, 0xab, 0xb0, 0x51, - 0x09, 0x27, 0x88, 0xa0, 0x1b, 0x30, 0x16, 0x46, 0x4e, 0x10, 0x75, 0x3b, 0x9c, 0xe8, 0xe9, 0x5e, - 0x44, 0x99, 0xc2, 0xb5, 0xae, 0x55, 0xc1, 0x06, 0x01, 0xf4, 0x3a, 0x54, 0x5a, 0xee, 0x16, 0x69, - 0xec, 0x37, 0x5a, 0x64, 0x66, 0x8c, 0x51, 0xcb, 0x3c, 0x54, 0xae, 0x4b, 0x24, 0xce, 0xe7, 0xaa, - 0xbf, 0x38, 0xae, 0x8e, 0x6e, 0xc1, 0xe9, 0x88, 0x04, 0x6d, 0xd7, 0x73, 0xe8, 0x61, 0x20, 0x9e, - 0x56, 0x4c, 0x91, 0x39, 0xce, 0x76, 0xdb, 0x39, 0x31, 0x1b, 0xa7, 0x37, 0x32, 0xb1, 0x70, 0x4e, - 0x6d, 0x74, 0x17, 0x66, 0x32, 0x20, 0x7e, 0xcb, 0x6d, 0xec, 0xcf, 0x9c, 0x64, 0x94, 0x3f, 0x22, - 0x28, 0xcf, 0x6c, 0xe4, 0xe0, 0xdd, 0x2f, 0x80, 0xe1, 0x5c, 0xea, 0xe8, 0x06, 0x4c, 0xb2, 0x13, - 0xa8, 0xd6, 0x6d, 0xb5, 0x44, 0x83, 0x13, 0xac, 0xc1, 0xf7, 0xcb, 0xfb, 0x78, 0xd5, 0x04, 0xdf, - 0x3f, 0x98, 0x83, 0xf8, 0x1f, 0x4e, 0xd6, 0x46, 0x9b, 0x4c, 0x67, 0xd6, 0x0d, 0xdc, 0x68, 0x9f, - 0x9e, 0x1b, 0xe4, 0x6e, 0x34, 0x33, 0x59, 0x28, 0xaf, 0xd0, 0x51, 0x95, 0x62, 0x4d, 0x2f, 0xc4, - 0x49, 0x82, 0xf4, 0x48, 0x0d, 0xa3, 0xa6, 0xeb, 0xcd, 0x4c, 0xf1, 0x77, 0x89, 0x3c, 0x91, 0xea, - 0xb4, 0x10, 0x73, 0x18, 0xd3, 0x97, 0xd1, 0x1f, 0x37, 0xe8, 0xcd, 0x35, 0xcd, 0x10, 0x63, 0x7d, - 0x99, 0x04, 0xe0, 0x18, 0x87, 0x32, 0x93, 0x51, 0xb4, 0x3f, 0x83, 0x18, 0xaa, 0x3a, 0x58, 0x36, - 0x36, 0x3e, 0x81, 0x69, 0xb9, 0xbd, 0x09, 0x13, 0xea, 0x20, 0x64, 0x63, 0x82, 0xe6, 0x60, 0x90, - 0xb1, 0x4f, 0x42, 0xba, 0x56, 0xa1, 0x5d, 0x60, 0xac, 0x15, 0xe6, 0xe5, 0xac, 0x0b, 0xee, 0xdb, - 0x64, 0x71, 0x3f, 0x22, 0xfc, 0x4d, 0x5f, 0xd6, 0xba, 0x20, 0x01, 0x38, 0xc6, 0xb1, 0xff, 0x37, - 0x67, 0x43, 0xe3, 0xd3, 0xb6, 0x8f, 0xfb, 0xe5, 0x59, 0x18, 0xd9, 0xf1, 0xc3, 0x88, 0x62, 0xb3, - 0x36, 0x06, 0x63, 0xc6, 0xf3, 0xaa, 0x28, 0xc7, 0x0a, 0x03, 0xbd, 0x0a, 0xe3, 0x0d, 0xbd, 0x01, - 0x71, 0x39, 0xaa, 0x63, 0xc4, 0x68, 0x1d, 0x9b, 0xb8, 0xe8, 0x65, 0x18, 0x61, 0x36, 0x20, 0x0d, - 0xbf, 0x25, 0xb8, 0x36, 0x79, 0xc3, 0x8f, 0xd4, 0x44, 0xf9, 0x7d, 0xed, 0x37, 0x56, 0xd8, 0xe8, - 0x02, 0x0c, 0xd1, 0x2e, 0xac, 0xd6, 0xc4, 0xb5, 0xa4, 0x04, 0x45, 0x57, 0x59, 0x29, 0x16, 0x50, - 0xfb, 0xff, 0x2b, 0x69, 0xa3, 0x4c, 0xdf, 0xc3, 0x04, 0xd5, 0x60, 0xf8, 0x8e, 0xe3, 0x46, 0xae, - 0xb7, 0x2d, 0xf8, 0x8f, 0xa7, 0x0b, 0xef, 0x28, 0x56, 0xe9, 0x36, 0xaf, 0xc0, 0x6f, 0x51, 0xf1, - 0x07, 0x4b, 0x32, 0x94, 0x62, 0xd0, 0xf5, 0x3c, 0x4a, 0xb1, 0xd4, 0x2f, 0x45, 0xcc, 0x2b, 0x70, - 0x8a, 0xe2, 0x0f, 0x96, 0x64, 0xd0, 0x9b, 0x00, 0x72, 0x87, 0x91, 0xa6, 0xb0, 0xbd, 0x78, 0xb6, - 0x37, 0xd1, 0x0d, 0x55, 0x67, 0x71, 0x82, 0xde, 0xd1, 0xf1, 0x7f, 0xac, 0xd1, 0xb3, 0x23, 0xc6, - 0xa7, 0xa5, 0x3b, 0x83, 0xbe, 0x8b, 0x2e, 0x71, 0x27, 0x88, 0x48, 0x73, 0x21, 0x12, 0x83, 0xf3, - 0x81, 0xfe, 0x1e, 0x29, 0x1b, 0x6e, 0x9b, 0xe8, 0xdb, 0x41, 0x10, 0xc1, 0x31, 0x3d, 0xfb, 0x97, - 0xca, 0x30, 0x93, 0xd7, 0x5d, 0xba, 0xe8, 0xc8, 0x5d, 0x37, 0x5a, 0xa2, 0xec, 0x95, 0x65, 0x2e, - 0xba, 0x65, 0x51, 0x8e, 0x15, 0x06, 0x9d, 0xfd, 0xd0, 0xdd, 0x96, 0x6f, 0xcc, 0xc1, 0x78, 0xf6, - 0xeb, 0xac, 0x14, 0x0b, 0x28, 0xc5, 0x0b, 0x88, 0x13, 0x0a, 0xe3, 0x1e, 0x6d, 0x95, 0x60, 0x56, - 0x8a, 0x05, 0x54, 0x97, 0x76, 0x0d, 0xf4, 0x90, 0x76, 0x19, 0x43, 0x34, 0x78, 0xb4, 0x43, 0x84, - 0x3e, 0x0d, 0xb0, 0xe5, 0x7a, 0x6e, 0xb8, 0xc3, 0xa8, 0x0f, 0x1d, 0x9a, 0xba, 0x62, 0xce, 0x56, - 0x14, 0x15, 0xac, 0x51, 0x44, 0x2f, 0xc1, 0xa8, 0xda, 0x80, 0xab, 0x55, 0xa6, 0xe9, 0xd4, 0x2c, - 0x47, 0xe2, 0xd3, 0xa8, 0x8a, 0x75, 0x3c, 0xfb, 0xb3, 0xc9, 0xf5, 0x22, 0x76, 0x80, 0x36, 0xbe, - 0x56, 0xbf, 0xe3, 0x5b, 0x2a, 0x1e, 0x5f, 0xfb, 0x1b, 0x65, 0x98, 0x34, 0x1a, 0xeb, 0x86, 0x7d, - 0x9c, 0x59, 0x57, 0xe8, 0x01, 0xee, 0x44, 0x44, 0xec, 0x3f, 0xbb, 0xf7, 0x56, 0xd1, 0x0f, 0x79, - 0xba, 0x03, 0x78, 0x7d, 0xf4, 0x69, 0xa8, 0xb4, 0x9c, 0x90, 0x49, 0xce, 0x88, 0xd8, 0x77, 0xfd, - 0x10, 0x8b, 0x1f, 0x26, 0x4e, 0x18, 0x69, 0xb7, 0x26, 0xa7, 0x1d, 0x93, 0xa4, 0x37, 0x0d, 0xe5, - 0x4f, 0xa4, 0xf5, 0x98, 0xea, 0x04, 0x65, 0x62, 0xf6, 0x31, 0x87, 0xa1, 0x97, 0x61, 0x2c, 0x20, - 0x6c, 0x55, 0x2c, 0x51, 0x6e, 0x8e, 0x2d, 0xb3, 0xc1, 0x98, 0xed, 0xc3, 0x1a, 0x0c, 0x1b, 0x98, - 0xf1, 0xdb, 0x60, 0xa8, 0xe0, 0x6d, 0xf0, 0x34, 0x0c, 0xb3, 0x1f, 0x6a, 0x05, 0xa8, 0xd9, 0x58, - 0xe5, 0xc5, 0x58, 0xc2, 0x93, 0x0b, 0x66, 0xa4, 0xbf, 0x05, 0x43, 0x5f, 0x1f, 0x62, 0x51, 0x33, - 0x2d, 0xf3, 0x08, 0x3f, 0xe5, 0xc4, 0x92, 0xc7, 0x12, 0x66, 0x7f, 0x00, 0x26, 0xaa, 0x0e, 0x69, - 0xfb, 0xde, 0xb2, 0xd7, 0xec, 0xf8, 0xae, 0x17, 0xa1, 0x19, 0x18, 0x60, 0x97, 0x08, 0x3f, 0x02, - 0x06, 0x68, 0x43, 0x98, 0x95, 0xd8, 0xdb, 0x70, 0xaa, 0xea, 0xdf, 0xf1, 0xee, 0x38, 0x41, 0x73, - 0xa1, 0xb6, 0xaa, 0xbd, 0xaf, 0xd7, 0xe5, 0xfb, 0x8e, 0x1b, 0x6d, 0x65, 0x1e, 0xbd, 0x5a, 0x4d, - 0xce, 0xd6, 0xae, 0xb8, 0x2d, 0x92, 0x23, 0x05, 0xf9, 0xab, 0x25, 0xa3, 0xa5, 0x18, 0x5f, 0x69, - 0xb5, 0xac, 0x5c, 0xad, 0xd6, 0x1b, 0x30, 0xb2, 0xe5, 0x92, 0x56, 0x13, 0x93, 0x2d, 0xb1, 0x12, - 0x9f, 0xca, 0xb7, 0x43, 0x59, 0xa1, 0x98, 0x52, 0xea, 0xc5, 0x5f, 0x87, 0x2b, 0xa2, 0x32, 0x56, - 0x64, 0xd0, 0x2e, 0x4c, 0xc9, 0x07, 0x83, 0x84, 0x8a, 0x75, 0xf9, 0x74, 0xd1, 0x2b, 0xc4, 0x24, - 0x7e, 0xf2, 0xde, 0xc1, 0xdc, 0x14, 0x4e, 0x90, 0xc1, 0x29, 0xc2, 0xf4, 0x39, 0xd8, 0xa6, 0x27, - 0xf0, 0x00, 0x1b, 0x7e, 0xf6, 0x1c, 0x64, 0x2f, 0x5b, 0x56, 0x6a, 0xff, 0xa4, 0x05, 0x8f, 0xa4, - 0x46, 0x46, 0xbc, 0xf0, 0x8f, 0x78, 0x16, 0x92, 0x2f, 0xee, 0x52, 0xef, 0x17, 0xb7, 0xfd, 0x77, - 0x2c, 0x38, 0xb9, 0xdc, 0xee, 0x44, 0xfb, 0x55, 0xd7, 0x54, 0x41, 0x7d, 0x18, 0x86, 0xda, 0xa4, - 0xe9, 0x76, 0xdb, 0x62, 0xe6, 0xe6, 0xe4, 0x29, 0xb5, 0xc6, 0x4a, 0xef, 0x1f, 0xcc, 0x8d, 0xd7, - 0x23, 0x3f, 0x70, 0xb6, 0x09, 0x2f, 0xc0, 0x02, 0x9d, 0x9d, 0xf5, 0xee, 0xdb, 0xe4, 0xba, 0xdb, - 0x76, 0xa5, 0x5d, 0x51, 0xa1, 0xcc, 0x6e, 0x5e, 0x0e, 0xe8, 0xfc, 0x1b, 0x5d, 0xc7, 0x8b, 0xdc, - 0x68, 0x5f, 0x68, 0x8f, 0x24, 0x11, 0x1c, 0xd3, 0xb3, 0xbf, 0x6e, 0xc1, 0xa4, 0x5c, 0xf7, 0x0b, - 0xcd, 0x66, 0x40, 0xc2, 0x10, 0xcd, 0x42, 0xc9, 0xed, 0x88, 0x5e, 0x82, 0xe8, 0x65, 0x69, 0xb5, - 0x86, 0x4b, 0x6e, 0x47, 0xb2, 0x65, 0xec, 0x20, 0x2c, 0x9b, 0x8a, 0xb4, 0xab, 0xa2, 0x1c, 0x2b, - 0x0c, 0x74, 0x11, 0x46, 0x3c, 0xbf, 0xc9, 0x6d, 0xbb, 0xf8, 0x95, 0xc6, 0x16, 0xd8, 0xba, 0x28, - 0xc3, 0x0a, 0x8a, 0x6a, 0x50, 0xe1, 0x66, 0x4f, 0xf1, 0xa2, 0xed, 0xcb, 0x78, 0x8a, 0x7d, 0xd9, - 0x86, 0xac, 0x89, 0x63, 0x22, 0xf6, 0xaf, 0x59, 0x30, 0x26, 0xbf, 0xac, 0x4f, 0x9e, 0x93, 0x6e, - 0xad, 0x98, 0xdf, 0x8c, 0xb7, 0x16, 0xe5, 0x19, 0x19, 0xc4, 0x60, 0x15, 0xcb, 0x87, 0x62, 0x15, - 0x2f, 0xc3, 0xa8, 0xd3, 0xe9, 0xd4, 0x4c, 0x3e, 0x93, 0x2d, 0xa5, 0x85, 0xb8, 0x18, 0xeb, 0x38, - 0xf6, 0x4f, 0x94, 0x60, 0x42, 0x7e, 0x41, 0xbd, 0xbb, 0x19, 0x92, 0x08, 0x6d, 0x40, 0xc5, 0xe1, - 0xb3, 0x44, 0xe4, 0x22, 0x7f, 0x22, 0x5b, 0x8e, 0x60, 0x4c, 0x69, 0x7c, 0xe1, 0x2f, 0xc8, 0xda, - 0x38, 0x26, 0x84, 0x5a, 0x30, 0xed, 0xf9, 0x11, 0x3b, 0xfc, 0x15, 0xbc, 0x48, 0xb5, 0x93, 0xa4, - 0x7e, 0x46, 0x50, 0x9f, 0x5e, 0x4f, 0x52, 0xc1, 0x69, 0xc2, 0x68, 0x59, 0xca, 0x66, 0xca, 0xf9, - 0xc2, 0x00, 0x7d, 0xe2, 0xb2, 0x45, 0x33, 0xf6, 0xaf, 0x5a, 0x50, 0x91, 0x68, 0xc7, 0xa1, 0xc5, - 0x5b, 0x83, 0xe1, 0x90, 0x4d, 0x82, 0x1c, 0x1a, 0xbb, 0xa8, 0xe3, 0x7c, 0xbe, 0xe2, 0x3b, 0x8d, - 0xff, 0x0f, 0xb1, 0xa4, 0xc1, 0x44, 0xf3, 0xaa, 0xfb, 0xef, 0x12, 0xd1, 0xbc, 0xea, 0x4f, 0xce, - 0xa5, 0xf4, 0xc7, 0xac, 0xcf, 0x9a, 0xac, 0x8b, 0xb2, 0x5e, 0x9d, 0x80, 0x6c, 0xb9, 0x77, 0x93, - 0xac, 0x57, 0x8d, 0x95, 0x62, 0x01, 0x45, 0x6f, 0xc2, 0x58, 0x43, 0xca, 0x64, 0xe3, 0x1d, 0x7e, - 0xa1, 0x50, 0x3f, 0xa0, 0x54, 0x49, 0x5c, 0x16, 0xb2, 0xa4, 0xd5, 0xc7, 0x06, 0x35, 0xd3, 0x8c, - 0xa0, 0xdc, 0xcb, 0x8c, 0x20, 0xa6, 0x9b, 0xaf, 0x54, 0xff, 0x29, 0x0b, 0x86, 0xb8, 0x2c, 0xae, - 0x3f, 0x51, 0xa8, 0xa6, 0x59, 0x8b, 0xc7, 0xee, 0x16, 0x2d, 0x14, 0x9a, 0x32, 0xb4, 0x06, 0x15, - 0xf6, 0x83, 0xc9, 0x12, 0xcb, 0xf9, 0x56, 0xf7, 0xbc, 0x55, 0xbd, 0x83, 0xb7, 0x64, 0x35, 0x1c, - 0x53, 0xb0, 0x7f, 0xbc, 0x4c, 0x4f, 0xb7, 0x18, 0xd5, 0xb8, 0xf4, 0xad, 0x87, 0x77, 0xe9, 0x97, - 0x1e, 0xd6, 0xa5, 0xbf, 0x0d, 0x93, 0x0d, 0x4d, 0x0f, 0x17, 0xcf, 0xe4, 0xc5, 0xc2, 0x45, 0xa2, - 0xa9, 0xec, 0xb8, 0x94, 0x65, 0xc9, 0x24, 0x82, 0x93, 0x54, 0xd1, 0x77, 0xc1, 0x18, 0x9f, 0x67, - 0xd1, 0x0a, 0xb7, 0xc4, 0x78, 0x7f, 0xfe, 0x7a, 0xd1, 0x9b, 0xe0, 0x52, 0x39, 0xad, 0x3a, 0x36, - 0x88, 0xd9, 0x7f, 0x66, 0x01, 0x5a, 0xee, 0xec, 0x90, 0x36, 0x09, 0x9c, 0x56, 0x2c, 0x4e, 0xff, - 0x61, 0x0b, 0x66, 0x48, 0xaa, 0x78, 0xc9, 0x6f, 0xb7, 0xc5, 0xa3, 0x25, 0xe7, 0x5d, 0xbd, 0x9c, - 0x53, 0x47, 0xb9, 0x25, 0xcc, 0xe4, 0x61, 0xe0, 0xdc, 0xf6, 0xd0, 0x1a, 0x9c, 0xe0, 0xb7, 0xa4, - 0x02, 0x68, 0xb6, 0xd7, 0x8f, 0x0a, 0xc2, 0x27, 0x36, 0xd2, 0x28, 0x38, 0xab, 0x9e, 0xfd, 0x7d, - 0x63, 0x90, 0xdb, 0x8b, 0xf7, 0xf4, 0x08, 0xef, 0xe9, 0x11, 0xde, 0xd3, 0x23, 0xbc, 0xa7, 0x47, - 0x78, 0x4f, 0x8f, 0xf0, 0x6d, 0xaf, 0x47, 0xf8, 0xff, 0x2d, 0x38, 0xa5, 0xae, 0x01, 0xe3, 0xe1, - 0xfb, 0x39, 0x38, 0xc1, 0xb7, 0xdb, 0x52, 0xcb, 0x71, 0xdb, 0x1b, 0xa4, 0xdd, 0x69, 0x39, 0x91, - 0xd4, 0xba, 0x5f, 0xce, 0x5c, 0xb9, 0x09, 0x8b, 0x55, 0xa3, 0xe2, 0xe2, 0x23, 0xf4, 0x7a, 0xca, - 0x00, 0xe0, 0xac, 0x66, 0xec, 0x5f, 0x1a, 0x81, 0xc1, 0xe5, 0x3d, 0xe2, 0x45, 0xc7, 0xf0, 0x44, - 0x68, 0xc0, 0x84, 0xeb, 0xed, 0xf9, 0xad, 0x3d, 0xd2, 0xe4, 0xf0, 0xc3, 0xbc, 0x64, 0x4f, 0x0b, - 0xd2, 0x13, 0xab, 0x06, 0x09, 0x9c, 0x20, 0xf9, 0x30, 0xa4, 0xc9, 0x57, 0x60, 0x88, 0x1f, 0xe2, - 0x42, 0x94, 0x9c, 0x79, 0x66, 0xb3, 0x41, 0x14, 0x57, 0x53, 0x2c, 0xe9, 0xe6, 0x97, 0x84, 0xa8, - 0x8e, 0x3e, 0x0b, 0x13, 0x5b, 0x6e, 0x10, 0x46, 0x1b, 0x6e, 0x9b, 0x84, 0x91, 0xd3, 0xee, 0x3c, - 0x80, 0xf4, 0x58, 0x8d, 0xc3, 0x8a, 0x41, 0x09, 0x27, 0x28, 0xa3, 0x6d, 0x18, 0x6f, 0x39, 0x7a, - 0x53, 0xc3, 0x87, 0x6e, 0x4a, 0xdd, 0x0e, 0xd7, 0x75, 0x42, 0xd8, 0xa4, 0x4b, 0xb7, 0x53, 0x83, - 0x09, 0x40, 0x47, 0x98, 0x58, 0x40, 0x6d, 0x27, 0x2e, 0xf9, 0xe4, 0x30, 0xca, 0xe8, 0x30, 0x03, - 0xd9, 0x8a, 0xc9, 0xe8, 0x68, 0x66, 0xb0, 0x9f, 0x81, 0x0a, 0xa1, 0x43, 0x48, 0x09, 0x8b, 0x0b, - 0xe6, 0x52, 0x7f, 0x7d, 0x5d, 0x73, 0x1b, 0x81, 0x6f, 0xca, 0xed, 0x97, 0x25, 0x25, 0x1c, 0x13, - 0x45, 0x4b, 0x30, 0x14, 0x92, 0xc0, 0x25, 0xa1, 0xb8, 0x6a, 0x0a, 0xa6, 0x91, 0xa1, 0x71, 0xdf, - 0x12, 0xfe, 0x1b, 0x8b, 0xaa, 0x74, 0x79, 0x39, 0x4c, 0xa4, 0xc9, 0x2e, 0x03, 0x6d, 0x79, 0x2d, - 0xb0, 0x52, 0x2c, 0xa0, 0xe8, 0x75, 0x18, 0x0e, 0x48, 0x8b, 0x29, 0x86, 0xc6, 0xfb, 0x5f, 0xe4, - 0x5c, 0xcf, 0xc4, 0xeb, 0x61, 0x49, 0x00, 0x5d, 0x03, 0x14, 0x10, 0xca, 0x28, 0xb9, 0xde, 0xb6, - 0x32, 0x1b, 0x15, 0x07, 0xad, 0x62, 0x48, 0x71, 0x8c, 0x21, 0xdd, 0x7c, 0x70, 0x46, 0x35, 0x74, - 0x05, 0xa6, 0x55, 0xe9, 0xaa, 0x17, 0x46, 0x0e, 0x3d, 0xe0, 0x26, 0x19, 0x2d, 0x25, 0xa7, 0xc0, - 0x49, 0x04, 0x9c, 0xae, 0x63, 0x7f, 0xd9, 0x02, 0x3e, 0xce, 0xc7, 0xf0, 0x3a, 0x7f, 0xcd, 0x7c, - 0x9d, 0x9f, 0xc9, 0x9d, 0xb9, 0x9c, 0x97, 0xf9, 0x97, 0x2d, 0x18, 0xd5, 0x66, 0x36, 0x5e, 0xb3, - 0x56, 0xc1, 0x9a, 0xed, 0xc2, 0x14, 0x5d, 0xe9, 0x37, 0x36, 0x43, 0x12, 0xec, 0x91, 0x26, 0x5b, - 0x98, 0xa5, 0x07, 0x5b, 0x98, 0xca, 0x44, 0xed, 0x7a, 0x82, 0x20, 0x4e, 0x35, 0x61, 0x7f, 0x46, - 0x76, 0x55, 0x59, 0xf4, 0x35, 0xd4, 0x9c, 0x27, 0x2c, 0xfa, 0xd4, 0xac, 0xe2, 0x18, 0x87, 0x6e, - 0xb5, 0x1d, 0x3f, 0x8c, 0x92, 0x16, 0x7d, 0x57, 0xfd, 0x30, 0xc2, 0x0c, 0x62, 0xbf, 0x00, 0xb0, - 0x7c, 0x97, 0x34, 0xf8, 0x8a, 0xd5, 0x1f, 0x0f, 0x56, 0xfe, 0xe3, 0xc1, 0xfe, 0x1d, 0x0b, 0x26, - 0x56, 0x96, 0x8c, 0x9b, 0x6b, 0x1e, 0x80, 0xbf, 0x78, 0x6e, 0xdf, 0x5e, 0x97, 0xea, 0x70, 0xae, - 0xd1, 0x54, 0xa5, 0x58, 0xc3, 0x40, 0x67, 0xa0, 0xdc, 0xea, 0x7a, 0x42, 0x7c, 0x38, 0x4c, 0xaf, - 0xc7, 0xeb, 0x5d, 0x0f, 0xd3, 0x32, 0xcd, 0xa5, 0xa0, 0xdc, 0xb7, 0x4b, 0x41, 0x4f, 0xd7, 0x7e, - 0x34, 0x07, 0x83, 0x77, 0xee, 0xb8, 0x4d, 0xee, 0x40, 0x29, 0x54, 0xf5, 0xb7, 0x6f, 0xaf, 0x56, - 0x43, 0xcc, 0xcb, 0xed, 0x2f, 0x96, 0x61, 0x76, 0xa5, 0x45, 0xee, 0xbe, 0x43, 0x27, 0xd2, 0x7e, - 0x1d, 0x22, 0x0e, 0x27, 0x88, 0x39, 0xac, 0xd3, 0x4b, 0xef, 0xf1, 0xd8, 0x82, 0x61, 0x6e, 0xd0, - 0x26, 0x5d, 0x4a, 0x5f, 0xcd, 0x6a, 0x3d, 0x7f, 0x40, 0xe6, 0xb9, 0x61, 0x9c, 0xf0, 0x88, 0x53, - 0x17, 0xa6, 0x28, 0xc5, 0x92, 0xf8, 0xec, 0x2b, 0x30, 0xa6, 0x63, 0x1e, 0xca, 0xfd, 0xec, 0xff, - 0x29, 0xc3, 0x14, 0xed, 0xc1, 0x43, 0x9d, 0x88, 0x9b, 0xe9, 0x89, 0x38, 0x6a, 0x17, 0xa4, 0xde, - 0xb3, 0xf1, 0x66, 0x72, 0x36, 0x2e, 0xe7, 0xcd, 0xc6, 0x71, 0xcf, 0xc1, 0xf7, 0x5a, 0x70, 0x62, - 0xa5, 0xe5, 0x37, 0x76, 0x13, 0x6e, 0x42, 0x2f, 0xc1, 0x28, 0x3d, 0x8e, 0x43, 0xc3, 0x83, 0xdd, - 0x88, 0x69, 0x20, 0x40, 0x58, 0xc7, 0xd3, 0xaa, 0xdd, 0xbc, 0xb9, 0x5a, 0xcd, 0x0a, 0x85, 0x20, - 0x40, 0x58, 0xc7, 0xb3, 0x7f, 0xd3, 0x82, 0xb3, 0x57, 0x96, 0x96, 0xe3, 0xa5, 0x98, 0x8a, 0xc6, - 0x70, 0x01, 0x86, 0x3a, 0x4d, 0xad, 0x2b, 0xb1, 0x78, 0xb5, 0xca, 0x7a, 0x21, 0xa0, 0xef, 0x96, - 0x48, 0x23, 0x37, 0x01, 0xae, 0xe0, 0xda, 0x92, 0x38, 0x77, 0xa5, 0x36, 0xc5, 0xca, 0xd5, 0xa6, - 0xbc, 0x1f, 0x86, 0xe9, 0xbd, 0xe0, 0x36, 0x64, 0xbf, 0xb9, 0x82, 0x96, 0x17, 0x61, 0x09, 0xb3, - 0x7f, 0xce, 0x82, 0x13, 0x57, 0xdc, 0x88, 0x5e, 0xda, 0xc9, 0x70, 0x03, 0xf4, 0xd6, 0x0e, 0xdd, - 0xc8, 0x0f, 0xf6, 0x93, 0xe1, 0x06, 0xb0, 0x82, 0x60, 0x0d, 0x8b, 0x7f, 0xd0, 0x9e, 0xcb, 0x2c, - 0xb4, 0x4b, 0xa6, 0xfe, 0x0a, 0x8b, 0x72, 0xac, 0x30, 0xe8, 0x78, 0x35, 0xdd, 0x80, 0x89, 0xfe, - 0xf6, 0xc5, 0xc1, 0xad, 0xc6, 0xab, 0x2a, 0x01, 0x38, 0xc6, 0xb1, 0xff, 0xc4, 0x82, 0xb9, 0x2b, - 0xad, 0x6e, 0x18, 0x91, 0x60, 0x2b, 0xcc, 0x39, 0x74, 0x5f, 0x80, 0x0a, 0x91, 0x82, 0x76, 0xd1, - 0x6b, 0xc5, 0x88, 0x2a, 0x09, 0x3c, 0x8f, 0x7a, 0xa0, 0xf0, 0xfa, 0xf0, 0x65, 0x3c, 0x9c, 0x33, - 0xda, 0x0a, 0x20, 0xa2, 0xb7, 0xa5, 0x87, 0x81, 0x60, 0xfe, 0xe4, 0xcb, 0x29, 0x28, 0xce, 0xa8, - 0x61, 0xff, 0xa4, 0x05, 0xa7, 0xd4, 0x07, 0xbf, 0xeb, 0x3e, 0xd3, 0xfe, 0x6a, 0x09, 0xc6, 0xaf, - 0x6e, 0x6c, 0xd4, 0xae, 0x90, 0x48, 0x5b, 0x95, 0xc5, 0xea, 0x73, 0xac, 0x69, 0x01, 0x8b, 0xde, - 0x88, 0xdd, 0xc8, 0x6d, 0xcd, 0xf3, 0x68, 0x42, 0xf3, 0xab, 0x5e, 0x74, 0x23, 0xa8, 0x47, 0x81, - 0xeb, 0x6d, 0x67, 0xae, 0x74, 0xc9, 0xb3, 0x94, 0xf3, 0x78, 0x16, 0xf4, 0x02, 0x0c, 0xb1, 0x70, - 0x46, 0x72, 0x12, 0x1e, 0x55, 0x4f, 0x2c, 0x56, 0x7a, 0xff, 0x60, 0xae, 0x72, 0x13, 0xaf, 0xf2, - 0x3f, 0x58, 0xa0, 0xa2, 0x9b, 0x30, 0xba, 0x13, 0x45, 0x9d, 0xab, 0xc4, 0x69, 0x92, 0x40, 0x9e, - 0xb2, 0xe7, 0xb2, 0x4e, 0x59, 0x3a, 0x08, 0x1c, 0x2d, 0x3e, 0x98, 0xe2, 0xb2, 0x10, 0xeb, 0x74, - 0xec, 0x3a, 0x40, 0x0c, 0x3b, 0x22, 0x05, 0x88, 0xbd, 0x01, 0x15, 0xfa, 0xb9, 0x0b, 0x2d, 0xd7, - 0x29, 0x56, 0x31, 0x3f, 0x03, 0x15, 0xa9, 0x40, 0x0e, 0x85, 0xaf, 0x35, 0xbb, 0x91, 0xa4, 0x7e, - 0x39, 0xc4, 0x31, 0xdc, 0x7e, 0x12, 0x84, 0xad, 0x5d, 0x11, 0x49, 0x7b, 0x0b, 0x4e, 0x32, 0xa3, - 0x41, 0x27, 0xda, 0x31, 0xd6, 0x68, 0xef, 0xc5, 0xf0, 0xac, 0x78, 0xd7, 0xf1, 0x2f, 0x9b, 0xd1, - 0x9c, 0x1e, 0xc7, 0x24, 0xc5, 0xf8, 0x8d, 0x67, 0x7f, 0x63, 0x00, 0x1e, 0x5d, 0xad, 0xe7, 0x07, - 0xed, 0x78, 0x19, 0xc6, 0x38, 0xbb, 0x48, 0x97, 0x86, 0xd3, 0x12, 0xed, 0x2a, 0x09, 0xe8, 0x86, - 0x06, 0xc3, 0x06, 0x26, 0x3a, 0x0b, 0x65, 0xf7, 0x2d, 0x2f, 0xe9, 0x12, 0xb4, 0xfa, 0xc6, 0x3a, - 0xa6, 0xe5, 0x14, 0x4c, 0x39, 0x4f, 0x7e, 0xa4, 0x2b, 0xb0, 0xe2, 0x3e, 0x5f, 0x83, 0x09, 0x37, - 0x6c, 0x84, 0xee, 0xaa, 0x47, 0xf7, 0xa9, 0xb6, 0xd3, 0x95, 0xcc, 0x81, 0x76, 0x5a, 0x41, 0x71, - 0x02, 0x5b, 0xbb, 0x5f, 0x06, 0xfb, 0xe6, 0x5e, 0x7b, 0xba, 0x28, 0xd3, 0xe3, 0xbf, 0xc3, 0xbe, - 0x2e, 0x64, 0xa2, 0x6c, 0x71, 0xfc, 0xf3, 0x0f, 0x0e, 0xb1, 0x84, 0xd1, 0x07, 0x5d, 0x63, 0xc7, - 0xe9, 0x2c, 0x74, 0xa3, 0x9d, 0xaa, 0x1b, 0x36, 0xfc, 0x3d, 0x12, 0xec, 0xb3, 0xb7, 0xf8, 0x48, - 0xfc, 0xa0, 0x53, 0x80, 0xa5, 0xab, 0x0b, 0x35, 0x8a, 0x89, 0xd3, 0x75, 0xd0, 0x02, 0x4c, 0xca, - 0xc2, 0x3a, 0x09, 0xd9, 0x15, 0x30, 0xca, 0xc8, 0x28, 0x27, 0x1d, 0x51, 0xac, 0x88, 0x24, 0xf1, - 0x4d, 0x06, 0x17, 0x8e, 0x82, 0xc1, 0xfd, 0x30, 0x8c, 0xbb, 0x9e, 0x1b, 0xb9, 0x4e, 0xe4, 0x73, - 0x3d, 0x0c, 0x7f, 0x76, 0x33, 0x01, 0xf3, 0xaa, 0x0e, 0xc0, 0x26, 0x9e, 0xfd, 0x9f, 0x06, 0x60, - 0x9a, 0x4d, 0xdb, 0x7b, 0x2b, 0xec, 0xdb, 0x69, 0x85, 0xdd, 0x4c, 0xaf, 0xb0, 0xa3, 0xe0, 0xdc, - 0x1f, 0x78, 0x99, 0x7d, 0x16, 0x2a, 0xca, 0x2f, 0x49, 0x3a, 0x26, 0x5a, 0x39, 0x8e, 0x89, 0xbd, - 0x6f, 0x6f, 0x69, 0xda, 0x55, 0xce, 0x34, 0xed, 0xfa, 0x8a, 0x05, 0xb1, 0x62, 0x01, 0xbd, 0x01, - 0x95, 0x8e, 0xcf, 0x2c, 0x16, 0x03, 0x69, 0x06, 0xfc, 0x64, 0xa1, 0x66, 0x82, 0xc7, 0x2d, 0x0a, - 0xf8, 0x28, 0xd4, 0x64, 0x55, 0x1c, 0x53, 0x41, 0xd7, 0x60, 0xb8, 0x13, 0x90, 0x7a, 0xc4, 0x82, - 0x78, 0xf4, 0x4f, 0x90, 0xaf, 0x1a, 0x5e, 0x11, 0x4b, 0x0a, 0xf6, 0x7f, 0xb6, 0x60, 0x2a, 0x89, - 0x8a, 0x3e, 0x02, 0x03, 0xe4, 0x2e, 0x69, 0x88, 0xfe, 0x66, 0x5e, 0xc5, 0xb1, 0x68, 0x82, 0x0f, - 0x00, 0xfd, 0x8f, 0x59, 0x2d, 0x74, 0x15, 0x86, 0xe9, 0x3d, 0x7c, 0x45, 0x05, 0x90, 0x7a, 0x3c, - 0xef, 0x2e, 0x57, 0x0c, 0x0d, 0xef, 0x9c, 0x28, 0xc2, 0xb2, 0x3a, 0xb3, 0xa7, 0x6a, 0x74, 0xea, - 0xf4, 0x89, 0x13, 0x15, 0xbd, 0xc4, 0x37, 0x96, 0x6a, 0x1c, 0x49, 0x50, 0xe3, 0xf6, 0x54, 0xb2, - 0x10, 0xc7, 0x44, 0xec, 0x5f, 0xb0, 0x00, 0xb8, 0xf9, 0x98, 0xe3, 0x6d, 0x93, 0x63, 0x90, 0xa6, - 0x57, 0x61, 0x20, 0xec, 0x90, 0x46, 0x91, 0x31, 0x6d, 0xdc, 0x9f, 0x7a, 0x87, 0x34, 0xe2, 0x15, - 0x47, 0xff, 0x61, 0x56, 0xdb, 0xfe, 0x7e, 0x80, 0x89, 0x18, 0x6d, 0x35, 0x22, 0x6d, 0xf4, 0x9c, - 0x11, 0xcc, 0xe0, 0x4c, 0x22, 0x98, 0x41, 0x85, 0x61, 0x6b, 0x82, 0xdb, 0xcf, 0x42, 0xb9, 0xed, - 0xdc, 0x15, 0x92, 0xb9, 0x67, 0x8a, 0xbb, 0x41, 0xe9, 0xcf, 0xaf, 0x39, 0x77, 0xf9, 0xe3, 0xf5, - 0x19, 0xb9, 0x43, 0xd6, 0x9c, 0xbb, 0xf7, 0xb9, 0xc9, 0x2c, 0x3b, 0xa5, 0xaf, 0xbb, 0x61, 0xf4, - 0xf9, 0xff, 0x18, 0xff, 0x67, 0xfb, 0x8e, 0x36, 0xc2, 0xda, 0x72, 0x3d, 0x61, 0x19, 0xd5, 0x57, - 0x5b, 0xae, 0x97, 0x6c, 0xcb, 0xf5, 0xfa, 0x68, 0xcb, 0xf5, 0xd0, 0xdb, 0x30, 0x2c, 0x0c, 0x17, - 0x45, 0xf0, 0xa0, 0x4b, 0x7d, 0xb4, 0x27, 0xec, 0x1e, 0x79, 0x9b, 0x97, 0xe4, 0xe3, 0x5c, 0x94, - 0xf6, 0x6c, 0x57, 0x36, 0x88, 0xfe, 0x8a, 0x05, 0x13, 0xe2, 0x37, 0x26, 0x6f, 0x75, 0x49, 0x18, - 0x09, 0xe6, 0xf5, 0x43, 0xfd, 0xf7, 0x41, 0x54, 0xe4, 0x5d, 0xf9, 0x90, 0xbc, 0x67, 0x4c, 0x60, - 0xcf, 0x1e, 0x25, 0x7a, 0x81, 0xfe, 0x9e, 0x05, 0x27, 0xdb, 0xce, 0x5d, 0xde, 0x22, 0x2f, 0xc3, - 0x4e, 0xe4, 0xfa, 0xc2, 0x00, 0xe0, 0x23, 0xfd, 0x4d, 0x7f, 0xaa, 0x3a, 0xef, 0xa4, 0xd4, 0x52, - 0x9e, 0xcc, 0x42, 0xe9, 0xd9, 0xd5, 0xcc, 0x7e, 0xcd, 0x6e, 0xc1, 0x88, 0x5c, 0x6f, 0x19, 0x22, - 0x90, 0xaa, 0xce, 0x99, 0x1f, 0xda, 0x6e, 0x54, 0x0f, 0x12, 0x40, 0xdb, 0x11, 0x6b, 0xed, 0xa1, - 0xb6, 0xf3, 0x59, 0x18, 0xd3, 0xd7, 0xd8, 0x43, 0x6d, 0xeb, 0x2d, 0x38, 0x91, 0xb1, 0x96, 0x1e, - 0x6a, 0x93, 0x77, 0xe0, 0x4c, 0xee, 0xfa, 0x78, 0x98, 0x0d, 0xdb, 0x5f, 0xb5, 0xf4, 0x73, 0xf0, - 0x18, 0x54, 0x1a, 0x4b, 0xa6, 0x4a, 0xe3, 0x5c, 0xf1, 0xce, 0xc9, 0xd1, 0x6b, 0xbc, 0xa9, 0x77, - 0x9a, 0x9e, 0xea, 0xe8, 0x75, 0x18, 0x6a, 0xd1, 0x12, 0x69, 0xfe, 0x6a, 0xf7, 0xde, 0x91, 0x31, - 0x33, 0xc9, 0xca, 0x43, 0x2c, 0x28, 0xd8, 0xbf, 0x6c, 0xc1, 0xc0, 0x31, 0x8c, 0x04, 0x36, 0x47, - 0xe2, 0xb9, 0x5c, 0xd2, 0x22, 0xae, 0xf1, 0x3c, 0x76, 0xee, 0x2c, 0xdf, 0x8d, 0x88, 0x17, 0xb2, - 0x1b, 0x39, 0x73, 0x60, 0x7e, 0xc6, 0x82, 0x13, 0xd7, 0x7d, 0xa7, 0xb9, 0xe8, 0xb4, 0x1c, 0xaf, - 0x41, 0x82, 0x55, 0x6f, 0xfb, 0x50, 0xb6, 0xdb, 0xa5, 0x9e, 0xb6, 0xdb, 0x4b, 0xd2, 0xf4, 0x69, - 0x20, 0x7f, 0xfe, 0x28, 0x27, 0x9d, 0x0c, 0xef, 0x62, 0x18, 0xe9, 0xee, 0x00, 0xd2, 0x7b, 0x29, - 0x3c, 0x69, 0x30, 0x0c, 0xbb, 0xbc, 0xbf, 0x62, 0x12, 0x9f, 0xca, 0xe6, 0x70, 0x53, 0x9f, 0xa7, - 0xf9, 0x88, 0xf0, 0x02, 0x2c, 0x09, 0xd9, 0x2f, 0x43, 0xa6, 0x3b, 0x7e, 0x6f, 0xe9, 0x85, 0xfd, - 0x09, 0x98, 0x66, 0x35, 0x0f, 0x29, 0x19, 0xb0, 0x13, 0x32, 0xd7, 0x8c, 0x40, 0x7d, 0xf6, 0x17, - 0x2c, 0x98, 0x5c, 0x4f, 0xc4, 0x2f, 0xbb, 0xc0, 0xb4, 0xb4, 0x19, 0xa2, 0xfe, 0x3a, 0x2b, 0xc5, - 0x02, 0x7a, 0xe4, 0xa2, 0xb0, 0xbf, 0xb4, 0x20, 0x8e, 0x90, 0x71, 0x0c, 0xec, 0xdb, 0x92, 0xc1, - 0xbe, 0x65, 0x32, 0xb2, 0xaa, 0x3b, 0x79, 0xdc, 0x1b, 0xba, 0xa6, 0x62, 0x47, 0x15, 0xf0, 0xb0, - 0x31, 0x19, 0xbe, 0x14, 0x27, 0xcc, 0x00, 0x53, 0x32, 0x9a, 0x94, 0xfd, 0xbb, 0x25, 0x40, 0x0a, - 0xb7, 0xef, 0xd8, 0x56, 0xe9, 0x1a, 0x47, 0x13, 0xdb, 0x6a, 0x0f, 0x10, 0xb3, 0x33, 0x08, 0x1c, - 0x2f, 0xe4, 0x64, 0x5d, 0x21, 0xfc, 0x3b, 0x9c, 0x11, 0xc3, 0xac, 0x68, 0x12, 0x5d, 0x4f, 0x51, - 0xc3, 0x19, 0x2d, 0x68, 0xf6, 0x23, 0x83, 0xfd, 0xda, 0x8f, 0x0c, 0xf5, 0xf0, 0x96, 0xfb, 0x79, - 0x0b, 0xc6, 0xd5, 0x30, 0xbd, 0x4b, 0x6c, 0xd9, 0x55, 0x7f, 0x72, 0x0e, 0xd0, 0x9a, 0xd6, 0x65, - 0x76, 0xb1, 0x7c, 0x27, 0xf3, 0x7a, 0x74, 0x5a, 0xee, 0xdb, 0x44, 0x45, 0x16, 0x9c, 0x13, 0x5e, - 0x8c, 0xa2, 0xf4, 0xfe, 0xc1, 0xdc, 0xb8, 0xfa, 0xc7, 0x23, 0x19, 0xc7, 0x55, 0xe8, 0x91, 0x3c, - 0x99, 0x58, 0x8a, 0xe8, 0x25, 0x18, 0xec, 0xec, 0x38, 0x21, 0x49, 0xf8, 0xfc, 0x0c, 0xd6, 0x68, - 0xe1, 0xfd, 0x83, 0xb9, 0x09, 0x55, 0x81, 0x95, 0x60, 0x8e, 0xdd, 0x7f, 0xc4, 0xb0, 0xf4, 0xe2, - 0xec, 0x19, 0x31, 0xec, 0xcf, 0x2c, 0x18, 0x58, 0xf7, 0x9b, 0xc7, 0x71, 0x04, 0xbc, 0x66, 0x1c, - 0x01, 0x8f, 0xe5, 0x05, 0x99, 0xcf, 0xdd, 0xfd, 0x2b, 0x89, 0xdd, 0x7f, 0x2e, 0x97, 0x42, 0xf1, - 0xc6, 0x6f, 0xc3, 0x28, 0x0b, 0x5d, 0x2f, 0xfc, 0x9b, 0x5e, 0x30, 0x36, 0xfc, 0x5c, 0x62, 0xc3, - 0x4f, 0x6a, 0xa8, 0xda, 0x4e, 0x7f, 0x1a, 0x86, 0x85, 0xc3, 0x4c, 0xd2, 0x79, 0x54, 0xe0, 0x62, - 0x09, 0xb7, 0x7f, 0xaa, 0x0c, 0x46, 0xa8, 0x7c, 0xf4, 0xab, 0x16, 0xcc, 0x07, 0xdc, 0x90, 0xb6, - 0x59, 0xed, 0x06, 0xae, 0xb7, 0x5d, 0x6f, 0xec, 0x90, 0x66, 0xb7, 0xe5, 0x7a, 0xdb, 0xab, 0xdb, - 0x9e, 0xaf, 0x8a, 0x97, 0xef, 0x92, 0x46, 0x97, 0x29, 0xe7, 0x7a, 0xc4, 0xe5, 0x57, 0x06, 0xe9, - 0xcf, 0xdf, 0x3b, 0x98, 0x9b, 0xc7, 0x87, 0xa2, 0x8d, 0x0f, 0xd9, 0x17, 0xf4, 0x9b, 0x16, 0x5c, - 0xe2, 0x11, 0xe4, 0xfb, 0xef, 0x7f, 0xc1, 0x6b, 0xb9, 0x26, 0x49, 0xc5, 0x44, 0x36, 0x48, 0xd0, - 0x5e, 0xfc, 0xb0, 0x18, 0xd0, 0x4b, 0xb5, 0xc3, 0xb5, 0x85, 0x0f, 0xdb, 0x39, 0xfb, 0x9f, 0x95, - 0x61, 0x5c, 0x44, 0x96, 0x12, 0x77, 0xc0, 0x4b, 0xc6, 0x92, 0x78, 0x3c, 0xb1, 0x24, 0xa6, 0x0d, - 0xe4, 0xa3, 0x39, 0xfe, 0x43, 0x98, 0xa6, 0x87, 0xf3, 0x55, 0xe2, 0x04, 0xd1, 0x26, 0x71, 0xb8, - 0x59, 0x58, 0xf9, 0xd0, 0xa7, 0xbf, 0x92, 0x4f, 0x5e, 0x4f, 0x12, 0xc3, 0x69, 0xfa, 0xdf, 0x4e, - 0x77, 0x8e, 0x07, 0x53, 0xa9, 0xe0, 0x60, 0x9f, 0x84, 0x8a, 0xf2, 0xf6, 0x10, 0x87, 0x4e, 0x71, - 0x8c, 0xbd, 0x24, 0x05, 0x2e, 0xfe, 0x8a, 0x3d, 0x8d, 0x62, 0x72, 0xf6, 0x3f, 0x28, 0x19, 0x0d, - 0xf2, 0x49, 0x5c, 0x87, 0x11, 0x27, 0x0c, 0xdd, 0x6d, 0x8f, 0x34, 0x8b, 0x24, 0x94, 0xa9, 0x66, - 0x98, 0xc7, 0xcd, 0x82, 0xa8, 0x89, 0x15, 0x0d, 0x74, 0x95, 0x1b, 0xdf, 0xed, 0x91, 0x22, 0xf1, - 0x64, 0x8a, 0x1a, 0x48, 0xf3, 0xbc, 0x3d, 0x82, 0x45, 0x7d, 0xf4, 0x29, 0x6e, 0x1d, 0x79, 0xcd, - 0xf3, 0xef, 0x78, 0x57, 0x7c, 0x5f, 0x46, 0x6f, 0xe8, 0x8f, 0xe0, 0xb4, 0xb4, 0x89, 0x54, 0xd5, - 0xb1, 0x49, 0xad, 0xbf, 0x68, 0x9b, 0x9f, 0x83, 0x13, 0x94, 0xb4, 0xe9, 0x5c, 0x1d, 0x22, 0x02, - 0x93, 0x22, 0x6c, 0x99, 0x2c, 0x13, 0x63, 0x97, 0xf9, 0x94, 0x33, 0x6b, 0xc7, 0x82, 0xf4, 0x6b, - 0x26, 0x09, 0x9c, 0xa4, 0x69, 0xff, 0xac, 0x05, 0xcc, 0xd1, 0xf4, 0x18, 0xf8, 0x91, 0x8f, 0x9a, - 0xfc, 0xc8, 0x4c, 0xde, 0x20, 0xe7, 0xb0, 0x22, 0x2f, 0xf2, 0x95, 0x55, 0x0b, 0xfc, 0xbb, 0xfb, - 0xc2, 0xa4, 0xa5, 0xf7, 0xfb, 0xc3, 0xfe, 0x5f, 0x16, 0x3f, 0xc4, 0x94, 0x2f, 0x06, 0xfa, 0x6e, - 0x18, 0x69, 0x38, 0x1d, 0xa7, 0xc1, 0xf3, 0xba, 0xe4, 0x4a, 0xf4, 0x8c, 0x4a, 0xf3, 0x4b, 0xa2, - 0x06, 0x97, 0x50, 0xc9, 0xf0, 0x77, 0x23, 0xb2, 0xb8, 0xa7, 0x54, 0x4a, 0x35, 0x39, 0xbb, 0x0b, - 0xe3, 0x06, 0xb1, 0x87, 0x2a, 0xce, 0xf8, 0x6e, 0x7e, 0xc5, 0xaa, 0x70, 0x8d, 0x6d, 0x98, 0xf6, - 0xb4, 0xff, 0xf4, 0x42, 0x91, 0x8f, 0xcb, 0x27, 0x7b, 0x5d, 0xa2, 0xec, 0xf6, 0xd1, 0x7c, 0x58, - 0x13, 0x64, 0x70, 0x9a, 0xb2, 0xfd, 0xd3, 0x16, 0x3c, 0xa2, 0x23, 0x6a, 0x6e, 0x32, 0xbd, 0x94, - 0x24, 0x55, 0x18, 0xf1, 0x3b, 0x24, 0x70, 0x22, 0x3f, 0x10, 0xb7, 0xc6, 0x45, 0x39, 0xe8, 0x37, - 0x44, 0xf9, 0x7d, 0x11, 0x15, 0x5d, 0x52, 0x97, 0xe5, 0x58, 0xd5, 0xa4, 0xaf, 0x4f, 0x36, 0x18, - 0xa1, 0x70, 0x88, 0x62, 0x67, 0x00, 0xd3, 0xb7, 0x87, 0x58, 0x40, 0xec, 0x6f, 0x58, 0x7c, 0x61, - 0xe9, 0x5d, 0x47, 0x6f, 0xc1, 0x54, 0xdb, 0x89, 0x1a, 0x3b, 0xcb, 0x77, 0x3b, 0x01, 0x57, 0x39, - 0xc9, 0x71, 0x7a, 0xa6, 0xd7, 0x38, 0x69, 0x1f, 0x19, 0x1b, 0x7c, 0xae, 0x25, 0x88, 0xe1, 0x14, - 0x79, 0xb4, 0x09, 0xa3, 0xac, 0x8c, 0xf9, 0xfa, 0x85, 0x45, 0xac, 0x41, 0x5e, 0x6b, 0xca, 0x64, - 0x61, 0x2d, 0xa6, 0x83, 0x75, 0xa2, 0xf6, 0x57, 0xca, 0x7c, 0xb7, 0x33, 0x56, 0xfe, 0x69, 0x18, - 0xee, 0xf8, 0xcd, 0xa5, 0xd5, 0x2a, 0x16, 0xb3, 0xa0, 0xae, 0x91, 0x1a, 0x2f, 0xc6, 0x12, 0x8e, - 0x2e, 0xc2, 0x88, 0xf8, 0x29, 0x55, 0x84, 0xec, 0x6c, 0x16, 0x78, 0x21, 0x56, 0x50, 0xf4, 0x3c, - 0x40, 0x27, 0xf0, 0xf7, 0xdc, 0x26, 0x8b, 0x41, 0x51, 0x36, 0xad, 0x8d, 0x6a, 0x0a, 0x82, 0x35, - 0x2c, 0xf4, 0x2a, 0x8c, 0x77, 0xbd, 0x90, 0xb3, 0x23, 0x5a, 0xc4, 0x59, 0x65, 0x07, 0x73, 0x53, - 0x07, 0x62, 0x13, 0x17, 0x2d, 0xc0, 0x50, 0xe4, 0x30, 0xeb, 0x99, 0xc1, 0x7c, 0xa3, 0xe0, 0x0d, - 0x8a, 0xa1, 0xa7, 0x10, 0xa1, 0x15, 0xb0, 0xa8, 0x88, 0x3e, 0x29, 0xdd, 0x6e, 0xf9, 0xc1, 0x2e, - 0xac, 0xf1, 0xfb, 0xbb, 0x04, 0x34, 0xa7, 0x5b, 0x61, 0xe5, 0x6f, 0xd0, 0x42, 0xaf, 0x00, 0x90, - 0xbb, 0x11, 0x09, 0x3c, 0xa7, 0xa5, 0x6c, 0xde, 0x14, 0x5f, 0x50, 0xf5, 0xd7, 0xfd, 0xe8, 0x66, - 0x48, 0x96, 0x15, 0x06, 0xd6, 0xb0, 0xed, 0xdf, 0xac, 0x00, 0xc4, 0x7c, 0x3b, 0x7a, 0x3b, 0x75, - 0x70, 0x3d, 0x5b, 0xcc, 0xe9, 0x1f, 0xdd, 0xa9, 0x85, 0x7e, 0xc0, 0x82, 0x51, 0xa7, 0xd5, 0xf2, - 0x1b, 0x0e, 0x8f, 0x09, 0x5c, 0x2a, 0x3e, 0x38, 0x45, 0xfb, 0x0b, 0x71, 0x0d, 0xde, 0x85, 0x17, - 0xe4, 0x0a, 0xd5, 0x20, 0x3d, 0x7b, 0xa1, 0x37, 0x8c, 0x3e, 0x28, 0x9f, 0x8a, 0x65, 0x63, 0x28, - 0xd5, 0x53, 0xb1, 0xc2, 0xee, 0x08, 0xfd, 0x95, 0x78, 0xd3, 0x78, 0x25, 0x0e, 0xe4, 0xfb, 0x15, - 0x1a, 0xec, 0x6b, 0xaf, 0x07, 0x22, 0xaa, 0xe9, 0x31, 0x06, 0x06, 0xf3, 0x9d, 0xf8, 0xb4, 0x77, - 0x52, 0x8f, 0xf8, 0x02, 0x9f, 0x85, 0xc9, 0xa6, 0xc9, 0x04, 0x88, 0x95, 0xf8, 0x54, 0x1e, 0xdd, - 0x04, 0xcf, 0x10, 0x5f, 0xfb, 0x09, 0x00, 0x4e, 0x12, 0x46, 0x35, 0x1e, 0x72, 0x62, 0xd5, 0xdb, - 0xf2, 0x85, 0x47, 0x88, 0x9d, 0x3b, 0x97, 0xfb, 0x61, 0x44, 0xda, 0x14, 0x33, 0xbe, 0xdd, 0xd7, - 0x45, 0x5d, 0xac, 0xa8, 0xa0, 0xd7, 0x61, 0x88, 0x79, 0x71, 0x85, 0x33, 0x23, 0xf9, 0x12, 0x67, - 0x33, 0x86, 0x5a, 0xbc, 0x21, 0xd9, 0xdf, 0x10, 0x0b, 0x0a, 0xe8, 0xaa, 0xf4, 0x91, 0x0c, 0x57, - 0xbd, 0x9b, 0x21, 0x61, 0x3e, 0x92, 0x95, 0xc5, 0x27, 0x63, 0xf7, 0x47, 0x5e, 0x9e, 0x99, 0x68, - 0xcc, 0xa8, 0x49, 0xb9, 0x28, 0xf1, 0x5f, 0xe6, 0x2f, 0x9b, 0x81, 0xfc, 0xee, 0x99, 0x39, 0xce, - 0xe2, 0xe1, 0xbc, 0x65, 0x92, 0xc0, 0x49, 0x9a, 0x94, 0x23, 0xe5, 0xbb, 0x5e, 0xf8, 0x94, 0xf4, - 0x3a, 0x3b, 0xf8, 0x43, 0x9c, 0xdd, 0x46, 0xbc, 0x04, 0x8b, 0xfa, 0xc7, 0xca, 0x1e, 0xcc, 0x7a, - 0x30, 0x95, 0xdc, 0xa2, 0x0f, 0x95, 0x1d, 0xf9, 0xa3, 0x01, 0x98, 0x30, 0x97, 0x14, 0xba, 0x04, - 0x15, 0x41, 0x44, 0xe5, 0x1c, 0x50, 0xbb, 0x64, 0x4d, 0x02, 0x70, 0x8c, 0xc3, 0x52, 0x4d, 0xb0, - 0xea, 0x9a, 0x11, 0x71, 0x9c, 0x6a, 0x42, 0x41, 0xb0, 0x86, 0x45, 0x1f, 0x56, 0x9b, 0xbe, 0x1f, - 0xa9, 0x0b, 0x49, 0xad, 0xbb, 0x45, 0x56, 0x8a, 0x05, 0x94, 0x5e, 0x44, 0xbb, 0x24, 0xf0, 0x48, - 0xcb, 0x8c, 0x4e, 0xac, 0x2e, 0xa2, 0x6b, 0x3a, 0x10, 0x9b, 0xb8, 0xf4, 0x3a, 0xf5, 0x43, 0xb6, - 0x90, 0xc5, 0xf3, 0x2d, 0x36, 0xca, 0xae, 0x73, 0x37, 0x6d, 0x09, 0x47, 0x9f, 0x80, 0x47, 0x54, - 0x04, 0x26, 0xcc, 0xb5, 0x19, 0xb2, 0xc5, 0x21, 0x43, 0xda, 0xf2, 0xc8, 0x52, 0x36, 0x1a, 0xce, - 0xab, 0x8f, 0x5e, 0x83, 0x09, 0xc1, 0xe2, 0x4b, 0x8a, 0xc3, 0xa6, 0x85, 0xd1, 0x35, 0x03, 0x8a, - 0x13, 0xd8, 0x32, 0xbe, 0x32, 0xe3, 0xb2, 0x25, 0x85, 0x91, 0x74, 0x7c, 0x65, 0x1d, 0x8e, 0x53, - 0x35, 0xd0, 0x02, 0x4c, 0x72, 0x1e, 0xcc, 0xf5, 0xb6, 0xf9, 0x9c, 0x08, 0x97, 0x2f, 0xb5, 0xa5, - 0x6e, 0x98, 0x60, 0x9c, 0xc4, 0x47, 0x2f, 0xc3, 0x98, 0x13, 0x34, 0x76, 0xdc, 0x88, 0x34, 0xa2, - 0x6e, 0xc0, 0x7d, 0xc1, 0x34, 0x13, 0xad, 0x05, 0x0d, 0x86, 0x0d, 0x4c, 0xfb, 0x6d, 0x38, 0x91, - 0x11, 0xbf, 0x81, 0x2e, 0x1c, 0xa7, 0xe3, 0xca, 0x6f, 0x4a, 0xd8, 0x41, 0x2f, 0xd4, 0x56, 0xe5, - 0xd7, 0x68, 0x58, 0x74, 0x75, 0xb2, 0x38, 0x0f, 0x5a, 0xba, 0x42, 0xb5, 0x3a, 0x57, 0x24, 0x00, - 0xc7, 0x38, 0xf6, 0x7f, 0x2b, 0xc1, 0x64, 0x86, 0x6e, 0x85, 0xa5, 0xcc, 0x4b, 0x3c, 0x52, 0xe2, - 0x0c, 0x79, 0x66, 0xb8, 0xee, 0xd2, 0x21, 0xc2, 0x75, 0x97, 0x7b, 0x85, 0xeb, 0x1e, 0x78, 0x27, - 0xe1, 0xba, 0xcd, 0x11, 0x1b, 0xec, 0x6b, 0xc4, 0x32, 0x42, 0x7c, 0x0f, 0x1d, 0x32, 0xc4, 0xb7, - 0x31, 0xe8, 0xc3, 0x7d, 0x0c, 0xfa, 0x8f, 0x97, 0x60, 0x2a, 0x69, 0x4a, 0x7a, 0x0c, 0x72, 0xdb, - 0xd7, 0x0d, 0xb9, 0xed, 0xc5, 0x7e, 0x5c, 0x74, 0x73, 0x65, 0xb8, 0x38, 0x21, 0xc3, 0xfd, 0x40, - 0x5f, 0xd4, 0x8a, 0xe5, 0xb9, 0x7f, 0xa3, 0x04, 0xa7, 0x32, 0x7d, 0x84, 0x8f, 0x61, 0x6c, 0x6e, - 0x18, 0x63, 0xf3, 0x5c, 0xdf, 0xee, 0xcb, 0xb9, 0x03, 0x74, 0x3b, 0x31, 0x40, 0x97, 0xfa, 0x27, - 0x59, 0x3c, 0x4a, 0x5f, 0x2f, 0xc3, 0xb9, 0xcc, 0x7a, 0xb1, 0xd8, 0x73, 0xc5, 0x10, 0x7b, 0x3e, - 0x9f, 0x10, 0x7b, 0xda, 0xc5, 0xb5, 0x8f, 0x46, 0x0e, 0x2a, 0xdc, 0x78, 0x59, 0x30, 0x82, 0x07, - 0x94, 0x81, 0x1a, 0x6e, 0xbc, 0x8a, 0x10, 0x36, 0xe9, 0x7e, 0x3b, 0xc9, 0x3e, 0xff, 0x8d, 0x05, - 0x67, 0x32, 0xe7, 0xe6, 0x18, 0x64, 0x5d, 0xeb, 0xa6, 0xac, 0xeb, 0xe9, 0xbe, 0x57, 0x6b, 0x8e, - 0xf0, 0xeb, 0x2b, 0x83, 0x39, 0xdf, 0xc2, 0x5e, 0xf2, 0x37, 0x60, 0xd4, 0x69, 0x34, 0x48, 0x18, - 0xae, 0xf9, 0x4d, 0x15, 0x91, 0xf8, 0x39, 0xf6, 0xce, 0x8a, 0x8b, 0xef, 0x1f, 0xcc, 0xcd, 0x26, - 0x49, 0xc4, 0x60, 0xac, 0x53, 0x40, 0x9f, 0x82, 0x91, 0x50, 0xdc, 0x9b, 0x62, 0xee, 0x5f, 0xe8, - 0x73, 0x70, 0x9c, 0x4d, 0xd2, 0x32, 0x43, 0x26, 0x29, 0x49, 0x85, 0x22, 0x69, 0x86, 0x57, 0x29, - 0x1d, 0x69, 0x78, 0x95, 0xe7, 0x01, 0xf6, 0xd4, 0x63, 0x20, 0x29, 0x7f, 0xd0, 0x9e, 0x09, 0x1a, - 0x16, 0xfa, 0x18, 0x4c, 0x85, 0x3c, 0xa6, 0xe0, 0x52, 0xcb, 0x09, 0x99, 0xb7, 0x8d, 0x58, 0x85, - 0x2c, 0x2c, 0x53, 0x3d, 0x01, 0xc3, 0x29, 0x6c, 0xb4, 0x22, 0x5b, 0x65, 0x01, 0x10, 0xf9, 0xc2, - 0xbc, 0x10, 0xb7, 0x28, 0x12, 0xf6, 0x9e, 0x4c, 0x0e, 0x3f, 0x1b, 0x78, 0xad, 0x26, 0xfa, 0x14, - 0x00, 0x5d, 0x3e, 0x42, 0x0e, 0x31, 0x9c, 0x7f, 0x78, 0xd2, 0x53, 0xa5, 0x99, 0x69, 0xdc, 0xcc, - 0x3c, 0x6f, 0xab, 0x8a, 0x08, 0xd6, 0x08, 0xa2, 0x2d, 0x18, 0x8f, 0xff, 0xc5, 0xf9, 0x2c, 0x0f, - 0xd9, 0x02, 0x93, 0x7b, 0x57, 0x75, 0x3a, 0xd8, 0x24, 0x6b, 0xff, 0xe4, 0x30, 0x3c, 0x5a, 0x70, - 0x16, 0xa3, 0x05, 0x53, 0xdf, 0xfb, 0x4c, 0xf2, 0x11, 0x3f, 0x9b, 0x59, 0xd9, 0x78, 0xd5, 0x27, - 0x96, 0x7c, 0xe9, 0x1d, 0x2f, 0xf9, 0x1f, 0xb1, 0x34, 0xf1, 0x0a, 0xb7, 0x2c, 0xfd, 0xe8, 0x21, - 0xef, 0x98, 0x23, 0x94, 0xb7, 0x6c, 0x65, 0x08, 0x2d, 0x9e, 0xef, 0xbb, 0x3b, 0xfd, 0x4b, 0x31, - 0xbe, 0x6a, 0x01, 0x12, 0xe2, 0x15, 0xd2, 0x54, 0x1b, 0x4a, 0xc8, 0x33, 0xae, 0x1c, 0xf6, 0xfb, - 0x17, 0x52, 0x94, 0xf8, 0x48, 0xbc, 0x22, 0x2f, 0x83, 0x34, 0x42, 0xcf, 0x31, 0xc9, 0xe8, 0x1e, - 0xfa, 0x04, 0x8b, 0xb9, 0xeb, 0xbe, 0x2d, 0x38, 0x20, 0xb1, 0xe1, 0x5e, 0x12, 0xf1, 0x76, 0x55, - 0x39, 0x65, 0x75, 0x33, 0xbb, 0xab, 0x23, 0x61, 0x83, 0xd4, 0xf1, 0xbe, 0xbf, 0xbb, 0xf0, 0x48, - 0xce, 0x90, 0x3d, 0xd4, 0x67, 0xf8, 0xef, 0x58, 0x70, 0xb6, 0x30, 0x78, 0xcc, 0xb7, 0x20, 0x83, - 0x68, 0x7f, 0xde, 0x82, 0xec, 0xc9, 0x36, 0xcc, 0xca, 0x2e, 0x41, 0xa5, 0x41, 0x0b, 0x35, 0x6f, - 0xe1, 0x38, 0x8c, 0x82, 0x04, 0xe0, 0x18, 0xc7, 0xb0, 0x1e, 0x2b, 0xf5, 0xb4, 0x1e, 0xfb, 0x35, - 0x0b, 0x52, 0x87, 0xfc, 0x31, 0x70, 0x1b, 0xab, 0x26, 0xb7, 0xf1, 0x64, 0x3f, 0xa3, 0x99, 0xc3, - 0x68, 0xfc, 0xe9, 0x24, 0x9c, 0xce, 0x71, 0xcb, 0xdb, 0x83, 0xe9, 0xed, 0x06, 0x31, 0xfd, 0xb0, - 0x8b, 0xe2, 0x13, 0x15, 0x3a, 0x6d, 0xb3, 0x14, 0xb2, 0xd3, 0x29, 0x14, 0x9c, 0x6e, 0x02, 0x7d, - 0xde, 0x82, 0x93, 0xce, 0x9d, 0x70, 0x99, 0x72, 0x8d, 0x6e, 0x63, 0xb1, 0xe5, 0x37, 0x76, 0xe9, - 0x95, 0x2c, 0x37, 0xc2, 0x8b, 0x99, 0x92, 0xbc, 0xdb, 0xf5, 0x14, 0xbe, 0xd1, 0x3c, 0xcb, 0xa9, - 0x9b, 0x85, 0x85, 0x33, 0xdb, 0x42, 0x58, 0x24, 0x5a, 0xa0, 0x6f, 0xd2, 0x82, 0x48, 0x01, 0x59, - 0xfe, 0x93, 0x9c, 0x0d, 0x92, 0x10, 0xac, 0xe8, 0xa0, 0xcf, 0x40, 0x65, 0x5b, 0x3a, 0x05, 0x67, - 0xb0, 0x59, 0xf1, 0x40, 0x16, 0xbb, 0x4a, 0x73, 0x75, 0xbc, 0x42, 0xc2, 0x31, 0x51, 0xf4, 0x1a, - 0x94, 0xbd, 0xad, 0xb0, 0x28, 0x2d, 0x6d, 0xc2, 0xee, 0x92, 0xc7, 0xe3, 0x58, 0x5f, 0xa9, 0x63, - 0x5a, 0x11, 0x5d, 0x85, 0x72, 0xb0, 0xd9, 0x14, 0x62, 0xe8, 0xcc, 0x4d, 0x8a, 0x17, 0xab, 0x39, - 0xbd, 0x62, 0x94, 0xf0, 0x62, 0x15, 0x53, 0x12, 0xa8, 0x06, 0x83, 0xcc, 0x97, 0x4d, 0x30, 0x35, - 0x99, 0xcf, 0xb7, 0x02, 0x9f, 0x50, 0x1e, 0xb4, 0x83, 0x21, 0x60, 0x4e, 0x08, 0x6d, 0xc0, 0x50, - 0x83, 0xa5, 0x30, 0x15, 0x5c, 0xcc, 0x07, 0x33, 0x05, 0xce, 0x05, 0xb9, 0x5d, 0x85, 0xfc, 0x95, - 0x61, 0x60, 0x41, 0x8b, 0x51, 0x25, 0x9d, 0x9d, 0xad, 0x50, 0xa4, 0xdc, 0xce, 0xa6, 0x5a, 0x90, - 0xb2, 0x58, 0x50, 0x65, 0x18, 0x58, 0xd0, 0x42, 0xaf, 0x40, 0x69, 0xab, 0x21, 0xfc, 0xd4, 0x32, - 0x25, 0xcf, 0x66, 0x48, 0x95, 0xc5, 0xa1, 0x7b, 0x07, 0x73, 0xa5, 0x95, 0x25, 0x5c, 0xda, 0x6a, - 0xa0, 0x75, 0x18, 0xde, 0xe2, 0x41, 0x18, 0x84, 0x70, 0xf9, 0xa9, 0xec, 0xf8, 0x10, 0xa9, 0x38, - 0x0d, 0xdc, 0xe7, 0x49, 0x00, 0xb0, 0x24, 0xc2, 0xf2, 0x16, 0xa8, 0x60, 0x12, 0x22, 0x96, 0xdd, - 0xfc, 0xe1, 0x02, 0x80, 0x70, 0x26, 0x33, 0x0e, 0x49, 0x81, 0x35, 0x8a, 0x74, 0x55, 0x3b, 0x6f, - 0x77, 0x03, 0x16, 0x30, 0x5c, 0x04, 0x3d, 0xca, 0x5c, 0xd5, 0x0b, 0x12, 0xa9, 0x68, 0x55, 0x2b, - 0x24, 0x1c, 0x13, 0x45, 0xbb, 0x30, 0xbe, 0x17, 0x76, 0x76, 0x88, 0xdc, 0xd2, 0x2c, 0x06, 0x52, - 0x0e, 0x7f, 0x74, 0x4b, 0x20, 0xba, 0x41, 0xd4, 0x75, 0x5a, 0xa9, 0x53, 0x88, 0xf1, 0xb2, 0xb7, - 0x74, 0x62, 0xd8, 0xa4, 0x4d, 0x87, 0xff, 0xad, 0xae, 0xbf, 0xb9, 0x1f, 0x11, 0x11, 0x82, 0x2e, - 0x73, 0xf8, 0xdf, 0xe0, 0x28, 0xe9, 0xe1, 0x17, 0x00, 0x2c, 0x89, 0xa0, 0x5b, 0x62, 0x78, 0xd8, - 0xe9, 0x39, 0x95, 0x1f, 0x27, 0x76, 0x41, 0x22, 0xe5, 0x0c, 0x0a, 0x3b, 0x2d, 0x63, 0x52, 0xec, - 0x94, 0xec, 0xec, 0xf8, 0x91, 0xef, 0x25, 0x4e, 0xe8, 0xe9, 0xfc, 0x53, 0xb2, 0x96, 0x81, 0x9f, - 0x3e, 0x25, 0xb3, 0xb0, 0x70, 0x66, 0x5b, 0xa8, 0x09, 0x13, 0x1d, 0x3f, 0x88, 0xee, 0xf8, 0x81, - 0x5c, 0x5f, 0xa8, 0x40, 0x38, 0x66, 0x60, 0x8a, 0x16, 0x59, 0x74, 0x47, 0x13, 0x82, 0x13, 0x34, - 0xd1, 0xc7, 0x61, 0x38, 0x6c, 0x38, 0x2d, 0xb2, 0x7a, 0x63, 0xe6, 0x44, 0xfe, 0xf5, 0x53, 0xe7, - 0x28, 0x39, 0xab, 0x8b, 0xc7, 0xd0, 0xe0, 0x28, 0x58, 0x92, 0x43, 0x2b, 0x30, 0xc8, 0xf2, 0xd2, - 0xb1, 0x78, 0x89, 0x39, 0xe1, 0x6e, 0x53, 0x56, 0xf0, 0xfc, 0x6c, 0x62, 0xc5, 0x98, 0x57, 0xa7, - 0x7b, 0x40, 0xbc, 0x11, 0xfd, 0x70, 0xe6, 0x54, 0xfe, 0x1e, 0x10, 0x4f, 0xcb, 0x1b, 0xf5, 0xa2, - 0x3d, 0xa0, 0x90, 0x70, 0x4c, 0x94, 0x9e, 0xcc, 0xf4, 0x34, 0x3d, 0x5d, 0x60, 0xbe, 0x95, 0x7b, - 0x96, 0xb2, 0x93, 0x99, 0x9e, 0xa4, 0x94, 0x84, 0xfd, 0x07, 0xc3, 0x69, 0x9e, 0x85, 0x49, 0x15, - 0xbe, 0xcf, 0x4a, 0x29, 0x9c, 0x3f, 0xd4, 0xaf, 0x90, 0xf3, 0x08, 0x9f, 0x42, 0x9f, 0xb7, 0xe0, - 0x74, 0x27, 0xf3, 0x43, 0x04, 0x03, 0xd0, 0x9f, 0xac, 0x94, 0x7f, 0xba, 0x8a, 0xad, 0x99, 0x0d, - 0xc7, 0x39, 0x2d, 0x25, 0x9f, 0x9b, 0xe5, 0x77, 0xfc, 0xdc, 0x5c, 0x83, 0x91, 0x06, 0x7f, 0x8a, - 0x14, 0xa6, 0xf4, 0x4e, 0xbe, 0xbd, 0x19, 0x2b, 0x21, 0xde, 0x30, 0x5b, 0x58, 0x91, 0x40, 0x3f, - 0x6a, 0xc1, 0xd9, 0x64, 0xd7, 0x31, 0x61, 0x60, 0x11, 0x90, 0x93, 0x0b, 0x34, 0x56, 0xc4, 0xf7, - 0xa7, 0xf8, 0x7f, 0x03, 0xf9, 0x7e, 0x2f, 0x04, 0x5c, 0xdc, 0x18, 0xaa, 0x66, 0x48, 0x54, 0x86, - 0x4c, 0x2d, 0x52, 0x1f, 0x52, 0x95, 0x17, 0x61, 0xac, 0xed, 0x77, 0xbd, 0x48, 0x58, 0x7b, 0x09, - 0xcb, 0x13, 0x66, 0x71, 0xb1, 0xa6, 0x95, 0x63, 0x03, 0x2b, 0x21, 0x8b, 0x19, 0x79, 0x60, 0x59, - 0xcc, 0x9b, 0x30, 0xe6, 0x69, 0xe6, 0xc9, 0x82, 0x1f, 0xb8, 0x90, 0x1f, 0x4c, 0x57, 0x37, 0x66, - 0xe6, 0xbd, 0xd4, 0x4b, 0xb0, 0x41, 0xed, 0x78, 0xcd, 0xc0, 0xbe, 0x6c, 0x65, 0x30, 0xf5, 0x5c, - 0x14, 0xf3, 0x11, 0x53, 0x14, 0x73, 0x21, 0x29, 0x8a, 0x49, 0x69, 0x10, 0x0c, 0x29, 0x4c, 0xff, - 0xb9, 0x82, 0xfa, 0x0d, 0xc8, 0x69, 0xb7, 0xe0, 0x7c, 0xaf, 0x6b, 0x89, 0x99, 0xfd, 0x35, 0x95, - 0xbe, 0x38, 0x36, 0xfb, 0x6b, 0xae, 0x56, 0x31, 0x83, 0xf4, 0x1b, 0xea, 0xc9, 0xfe, 0x2f, 0x16, - 0x94, 0x6b, 0x7e, 0xf3, 0x18, 0x1e, 0xbc, 0x1f, 0x35, 0x1e, 0xbc, 0x8f, 0x66, 0x5f, 0x88, 0xcd, - 0x5c, 0xfd, 0xc7, 0x72, 0x42, 0xff, 0x71, 0x36, 0x8f, 0x40, 0xb1, 0xb6, 0xe3, 0x67, 0xca, 0x30, - 0x5a, 0xf3, 0x9b, 0xca, 0xe6, 0xfe, 0x5f, 0x3c, 0x88, 0xcd, 0x7d, 0x6e, 0xc6, 0x0b, 0x8d, 0x32, - 0xb3, 0x16, 0x94, 0xee, 0xc6, 0xdf, 0x62, 0xa6, 0xf7, 0xb7, 0x89, 0xbb, 0xbd, 0x13, 0x91, 0x66, - 0xf2, 0x73, 0x8e, 0xcf, 0xf4, 0xfe, 0x0f, 0x4a, 0x30, 0x99, 0x68, 0x1d, 0xb5, 0x60, 0xbc, 0xa5, - 0x4b, 0xd7, 0xc5, 0x3a, 0x7d, 0x20, 0xc1, 0xbc, 0x30, 0x5d, 0xd6, 0x8a, 0xb0, 0x49, 0x1c, 0xcd, - 0x03, 0x28, 0x75, 0xb3, 0x14, 0xaf, 0x32, 0xae, 0x5f, 0xe9, 0xa3, 0x43, 0xac, 0x61, 0xa0, 0x97, - 0x60, 0x34, 0xf2, 0x3b, 0x7e, 0xcb, 0xdf, 0xde, 0xbf, 0x46, 0x64, 0x14, 0x30, 0x65, 0x90, 0xb8, - 0x11, 0x83, 0xb0, 0x8e, 0x87, 0xee, 0xc2, 0xb4, 0x22, 0x52, 0x3f, 0x02, 0x8d, 0x03, 0x93, 0x2a, - 0xac, 0x27, 0x29, 0xe2, 0x74, 0x23, 0xf6, 0xcf, 0x95, 0xf9, 0x10, 0x7b, 0x91, 0xfb, 0xde, 0x6e, - 0x78, 0x77, 0xef, 0x86, 0xaf, 0x5b, 0x30, 0x45, 0x5b, 0x67, 0xd6, 0x56, 0xf2, 0x9a, 0x57, 0xe1, - 0xbb, 0xad, 0x82, 0xf0, 0xdd, 0x17, 0xe8, 0xa9, 0xd9, 0xf4, 0xbb, 0x91, 0x90, 0xdd, 0x69, 0xc7, - 0x22, 0x2d, 0xc5, 0x02, 0x2a, 0xf0, 0x48, 0x10, 0x08, 0x0f, 0x51, 0x1d, 0x8f, 0x04, 0x01, 0x16, - 0x50, 0x19, 0xdd, 0x7b, 0x20, 0x3b, 0xba, 0x37, 0x0f, 0xd2, 0x2a, 0xec, 0x72, 0x04, 0xc3, 0xa5, - 0x05, 0x69, 0x95, 0x06, 0x3b, 0x31, 0x8e, 0xfd, 0xd5, 0x32, 0x8c, 0xd5, 0xfc, 0x66, 0xac, 0x6a, - 0x7e, 0xd1, 0x50, 0x35, 0x9f, 0x4f, 0xa8, 0x9a, 0xa7, 0x74, 0xdc, 0xf7, 0x14, 0xcb, 0xdf, 0x2c, - 0xc5, 0xf2, 0x3f, 0xb5, 0xd8, 0xac, 0x55, 0xd7, 0xeb, 0xdc, 0x78, 0x0f, 0x5d, 0x86, 0x51, 0x76, - 0xc0, 0x30, 0x97, 0x64, 0xa9, 0x7f, 0x65, 0x59, 0xab, 0xd6, 0xe3, 0x62, 0xac, 0xe3, 0xa0, 0x8b, - 0x30, 0x12, 0x12, 0x27, 0x68, 0xec, 0xa8, 0xd3, 0x55, 0x28, 0x4b, 0x79, 0x19, 0x56, 0x50, 0xf4, - 0x46, 0x1c, 0x1f, 0xb4, 0x9c, 0xef, 0xe2, 0xa8, 0xf7, 0x87, 0x6f, 0x91, 0xfc, 0xa0, 0xa0, 0xf6, - 0x6d, 0x40, 0x69, 0xfc, 0x3e, 0x22, 0xd8, 0xcd, 0x99, 0x11, 0xec, 0x2a, 0xa9, 0xe8, 0x75, 0x7f, - 0x61, 0xc1, 0x44, 0xcd, 0x6f, 0xd2, 0xad, 0xfb, 0xed, 0xb4, 0x4f, 0xf5, 0xe0, 0xc8, 0x43, 0x05, - 0xc1, 0x91, 0x9f, 0x80, 0xc1, 0x9a, 0xdf, 0xec, 0x11, 0x65, 0xef, 0x6f, 0x5a, 0x30, 0x5c, 0xf3, - 0x9b, 0xc7, 0xa0, 0x16, 0xf8, 0x88, 0xa9, 0x16, 0x78, 0x24, 0x67, 0xdd, 0xe4, 0x68, 0x02, 0xfe, - 0xfa, 0x00, 0x8c, 0xd3, 0x7e, 0xfa, 0xdb, 0x72, 0x2a, 0x8d, 0x61, 0xb3, 0xfa, 0x18, 0x36, 0xca, - 0x85, 0xfb, 0xad, 0x96, 0x7f, 0x27, 0x39, 0xad, 0x2b, 0xac, 0x14, 0x0b, 0x28, 0x7a, 0x16, 0x46, - 0x3a, 0x01, 0xd9, 0x73, 0x7d, 0xc1, 0xde, 0x6a, 0x4a, 0x96, 0x9a, 0x28, 0xc7, 0x0a, 0x83, 0x3e, - 0x0b, 0x43, 0xd7, 0xa3, 0x57, 0x79, 0xc3, 0xf7, 0x9a, 0x5c, 0x72, 0x5e, 0x16, 0x19, 0x3c, 0xb4, - 0x72, 0x6c, 0x60, 0xa1, 0xdb, 0x50, 0x61, 0xff, 0xd9, 0xb1, 0x73, 0xf8, 0x5c, 0xb0, 0x22, 0x37, - 0xa0, 0x20, 0x80, 0x63, 0x5a, 0xe8, 0x79, 0x80, 0x48, 0x46, 0xc1, 0x0f, 0x45, 0xb4, 0x35, 0xf5, - 0x14, 0x50, 0xf1, 0xf1, 0x43, 0xac, 0x61, 0xa1, 0x67, 0xa0, 0x12, 0x39, 0x6e, 0xeb, 0xba, 0xeb, - 0x91, 0x90, 0x49, 0xc4, 0xcb, 0x32, 0x45, 0x9f, 0x28, 0xc4, 0x31, 0x9c, 0xb2, 0x62, 0x2c, 0x12, - 0x07, 0xcf, 0x24, 0x3d, 0xc2, 0xb0, 0x19, 0x2b, 0x76, 0x5d, 0x95, 0x62, 0x0d, 0x03, 0xed, 0xc0, - 0x63, 0xae, 0xc7, 0xb2, 0x5d, 0x90, 0xfa, 0xae, 0xdb, 0xd9, 0xb8, 0x5e, 0xbf, 0x45, 0x02, 0x77, - 0x6b, 0x7f, 0xd1, 0x69, 0xec, 0x12, 0x4f, 0x66, 0xf9, 0x7c, 0x52, 0x74, 0xf1, 0xb1, 0xd5, 0x02, - 0x5c, 0x5c, 0x48, 0xc9, 0x7e, 0x81, 0xad, 0xf7, 0x1b, 0x75, 0xf4, 0x01, 0xe3, 0xe8, 0x38, 0xad, - 0x1f, 0x1d, 0xf7, 0x0f, 0xe6, 0x86, 0x6e, 0xd4, 0xb5, 0x40, 0x12, 0x2f, 0xc3, 0xa9, 0x9a, 0xdf, - 0xac, 0xf9, 0x41, 0xb4, 0xe2, 0x07, 0x77, 0x9c, 0xa0, 0x29, 0x97, 0xd7, 0x9c, 0x0c, 0xa5, 0x41, - 0xcf, 0xcf, 0x41, 0x7e, 0xba, 0x18, 0x61, 0x32, 0x5e, 0x60, 0x1c, 0xdb, 0x21, 0x1d, 0xc0, 0x1a, - 0x8c, 0x77, 0x50, 0xf9, 0x62, 0xae, 0x38, 0x11, 0x41, 0x37, 0x58, 0x1e, 0xec, 0xf8, 0x1a, 0x15, - 0xd5, 0x9f, 0xd6, 0xf2, 0x60, 0xc7, 0xc0, 0xcc, 0x7b, 0xd7, 0xac, 0x6f, 0xff, 0xd7, 0x41, 0x76, - 0xa2, 0x26, 0x72, 0x8e, 0xa0, 0x4f, 0xc3, 0x44, 0x48, 0xae, 0xbb, 0x5e, 0xf7, 0xae, 0x14, 0x61, - 0x14, 0xb8, 0xf0, 0xd5, 0x97, 0x75, 0x4c, 0x2e, 0x08, 0x35, 0xcb, 0x70, 0x82, 0x1a, 0x6a, 0xc3, - 0xc4, 0x1d, 0xd7, 0x6b, 0xfa, 0x77, 0x42, 0x49, 0x7f, 0x24, 0x5f, 0x1e, 0x7a, 0x9b, 0x63, 0x26, - 0xfa, 0x68, 0x34, 0x77, 0xdb, 0x20, 0x86, 0x13, 0xc4, 0xe9, 0xaa, 0x0d, 0xba, 0xde, 0x42, 0x78, - 0x33, 0x24, 0x81, 0xc8, 0x68, 0xce, 0x56, 0x2d, 0x96, 0x85, 0x38, 0x86, 0xd3, 0x55, 0xcb, 0xfe, - 0x5c, 0x09, 0xfc, 0x2e, 0x4f, 0x70, 0x21, 0x56, 0x2d, 0x56, 0xa5, 0x58, 0xc3, 0xa0, 0xbb, 0x9a, - 0xfd, 0x5b, 0xf7, 0x3d, 0xec, 0xfb, 0x91, 0x3c, 0x07, 0x98, 0x4e, 0x5f, 0x2b, 0xc7, 0x06, 0x16, - 0x5a, 0x01, 0x14, 0x76, 0x3b, 0x9d, 0x16, 0xb3, 0x0d, 0x72, 0x5a, 0x8c, 0x14, 0xb7, 0x97, 0x28, - 0xf3, 0x00, 0xbd, 0xf5, 0x14, 0x14, 0x67, 0xd4, 0xa0, 0x07, 0xfc, 0x96, 0xe8, 0xea, 0x20, 0xeb, - 0x2a, 0xd7, 0x9d, 0xd4, 0x79, 0x3f, 0x25, 0x0c, 0x2d, 0xc3, 0x70, 0xb8, 0x1f, 0x36, 0x22, 0x11, - 0x29, 0x31, 0x27, 0xad, 0x54, 0x9d, 0xa1, 0x68, 0x59, 0x0d, 0x79, 0x15, 0x2c, 0xeb, 0xa2, 0x06, - 0x9c, 0x10, 0x14, 0x97, 0x76, 0x1c, 0x4f, 0x25, 0xe9, 0xe1, 0x26, 0xd2, 0x97, 0xef, 0x1d, 0xcc, - 0x9d, 0x10, 0x2d, 0xeb, 0xe0, 0xfb, 0x07, 0x73, 0xa7, 0x6b, 0x7e, 0x33, 0x03, 0x82, 0xb3, 0xa8, - 0xf1, 0xc5, 0xd7, 0x68, 0xf8, 0xed, 0x4e, 0x2d, 0xf0, 0xb7, 0xdc, 0x16, 0x29, 0xd2, 0x3f, 0xd5, - 0x0d, 0x4c, 0xb1, 0xf8, 0x8c, 0x32, 0x9c, 0xa0, 0x66, 0x7f, 0x37, 0x63, 0x82, 0x58, 0x12, 0xef, - 0xa8, 0x1b, 0x10, 0xd4, 0x86, 0xf1, 0x0e, 0xdb, 0x26, 0x22, 0xed, 0x84, 0x58, 0xeb, 0x2f, 0xf6, - 0x29, 0x47, 0xb9, 0x43, 0xef, 0x0e, 0xd3, 0xc6, 0xa8, 0xa6, 0x93, 0xc3, 0x26, 0x75, 0xfb, 0xb7, - 0x1e, 0x61, 0xd7, 0x68, 0x9d, 0x0b, 0x47, 0x86, 0x85, 0x47, 0x86, 0x78, 0x8f, 0xcd, 0xe6, 0x4b, - 0xe9, 0xe2, 0x69, 0x11, 0x5e, 0x1d, 0x58, 0xd6, 0x45, 0x9f, 0x82, 0x09, 0xfa, 0xbc, 0x51, 0x57, - 0x59, 0x38, 0x73, 0x32, 0x3f, 0x72, 0x86, 0xc2, 0xd2, 0x53, 0xd2, 0xe8, 0x95, 0x71, 0x82, 0x18, - 0x7a, 0x83, 0xd9, 0xf4, 0x48, 0xd2, 0xa5, 0x7e, 0x48, 0xeb, 0xe6, 0x3b, 0x92, 0xac, 0x46, 0x04, - 0x75, 0xe1, 0x44, 0x3a, 0x81, 0x5d, 0x38, 0x63, 0xe7, 0xf3, 0x89, 0xe9, 0x1c, 0x74, 0x71, 0xee, - 0x90, 0x34, 0x2c, 0xc4, 0x59, 0xf4, 0xd1, 0x75, 0x18, 0x17, 0x99, 0xac, 0xc5, 0xca, 0x2d, 0x1b, - 0xc2, 0xc3, 0x71, 0xac, 0x03, 0xef, 0x27, 0x0b, 0xb0, 0x59, 0x19, 0x6d, 0xc3, 0x59, 0x2d, 0xb3, - 0xd4, 0x95, 0xc0, 0x61, 0x16, 0x00, 0x2e, 0x3b, 0x4e, 0xb5, 0x0b, 0xfe, 0xf1, 0x7b, 0x07, 0x73, - 0x67, 0x37, 0x8a, 0x10, 0x71, 0x31, 0x1d, 0x74, 0x03, 0x4e, 0x71, 0xbf, 0xef, 0x2a, 0x71, 0x9a, - 0x2d, 0xd7, 0x53, 0x1c, 0x04, 0xdf, 0xf2, 0x67, 0xee, 0x1d, 0xcc, 0x9d, 0x5a, 0xc8, 0x42, 0xc0, - 0xd9, 0xf5, 0xd0, 0x47, 0xa0, 0xd2, 0xf4, 0x42, 0x31, 0x06, 0x43, 0x46, 0xf2, 0xae, 0x4a, 0x75, - 0xbd, 0xae, 0xbe, 0x3f, 0xfe, 0x83, 0xe3, 0x0a, 0x68, 0x9b, 0x0b, 0x98, 0x95, 0xd8, 0x63, 0x38, - 0x15, 0xf7, 0x2a, 0x29, 0x19, 0x34, 0x3c, 0x3f, 0xb9, 0x66, 0x45, 0x39, 0x44, 0x18, 0x4e, 0xa1, - 0x06, 0x61, 0xf4, 0x3a, 0x20, 0x11, 0x24, 0x7e, 0xa1, 0xc1, 0x72, 0x9a, 0x30, 0x79, 0xfc, 0x88, - 0xe9, 0x8b, 0x58, 0x4f, 0x61, 0xe0, 0x8c, 0x5a, 0xe8, 0x2a, 0x3d, 0x55, 0xf4, 0x52, 0x71, 0x6a, - 0xa9, 0x54, 0x8b, 0x55, 0xd2, 0x09, 0x08, 0xb3, 0x68, 0x32, 0x29, 0xe2, 0x44, 0x3d, 0xd4, 0x84, - 0xc7, 0x9c, 0x6e, 0xe4, 0x33, 0xd9, 0xbd, 0x89, 0xba, 0xe1, 0xef, 0x12, 0x8f, 0xa9, 0xcd, 0x46, - 0x16, 0xcf, 0x53, 0x16, 0x65, 0xa1, 0x00, 0x0f, 0x17, 0x52, 0xa1, 0xac, 0xa5, 0xca, 0xad, 0x0c, - 0x66, 0x34, 0xaf, 0x8c, 0xfc, 0xca, 0x2f, 0xc1, 0xe8, 0x8e, 0x1f, 0x46, 0xeb, 0x24, 0xba, 0xe3, - 0x07, 0xbb, 0x22, 0x2a, 0x6d, 0x1c, 0x09, 0x3c, 0x06, 0x61, 0x1d, 0x8f, 0xbe, 0x1d, 0x99, 0x51, - 0xc7, 0x6a, 0x95, 0xe9, 0xd3, 0x47, 0xe2, 0x33, 0xe6, 0x2a, 0x2f, 0xc6, 0x12, 0x2e, 0x51, 0x57, - 0x6b, 0x4b, 0x4c, 0x37, 0x9e, 0x40, 0x5d, 0xad, 0x2d, 0x61, 0x09, 0xa7, 0xcb, 0x35, 0xdc, 0x71, - 0x02, 0x52, 0x0b, 0xfc, 0x06, 0x09, 0xb5, 0xf8, 0xf3, 0x8f, 0xf2, 0x98, 0xbb, 0x74, 0xb9, 0xd6, - 0xb3, 0x10, 0x70, 0x76, 0x3d, 0x44, 0xd2, 0x59, 0xd5, 0x26, 0xf2, 0x95, 0x1a, 0x69, 0x7e, 0xa6, - 0xcf, 0xc4, 0x6a, 0x1e, 0x4c, 0xa9, 0x7c, 0x6e, 0x3c, 0xca, 0x6e, 0x38, 0x33, 0xc9, 0xd6, 0x76, - 0xff, 0x21, 0x7a, 0x95, 0x9a, 0x68, 0x35, 0x41, 0x09, 0xa7, 0x68, 0x1b, 0x01, 0xdb, 0xa6, 0x7a, - 0x06, 0x6c, 0xbb, 0x04, 0x95, 0xb0, 0xbb, 0xd9, 0xf4, 0xdb, 0x8e, 0xeb, 0x31, 0xdd, 0xb8, 0xf6, - 0x88, 0xa9, 0x4b, 0x00, 0x8e, 0x71, 0xd0, 0x0a, 0x8c, 0x38, 0x52, 0x07, 0x84, 0xf2, 0x43, 0xf4, - 0x28, 0xcd, 0x0f, 0x8f, 0x5a, 0x21, 0xb5, 0x3e, 0xaa, 0x2e, 0x7a, 0x15, 0xc6, 0x85, 0xdf, 0xb2, - 0x48, 0x25, 0x7a, 0xc2, 0x74, 0x2e, 0xab, 0xeb, 0x40, 0x6c, 0xe2, 0xa2, 0x9b, 0x30, 0x1a, 0xf9, - 0x2d, 0xe6, 0x21, 0x45, 0xd9, 0xbc, 0xd3, 0xf9, 0xc1, 0xe6, 0x36, 0x14, 0x9a, 0x2e, 0x7e, 0x55, - 0x55, 0xb1, 0x4e, 0x07, 0x6d, 0xf0, 0xf5, 0xce, 0xa2, 0xcd, 0x93, 0x70, 0xe6, 0x91, 0xfc, 0x3b, - 0x49, 0x05, 0xa5, 0x37, 0xb7, 0x83, 0xa8, 0x89, 0x75, 0x32, 0xe8, 0x0a, 0x4c, 0x77, 0x02, 0xd7, - 0x67, 0x6b, 0x42, 0xa9, 0xff, 0x66, 0xcc, 0xdc, 0x52, 0xb5, 0x24, 0x02, 0x4e, 0xd7, 0x61, 0x6e, - 0xe7, 0xa2, 0x70, 0xe6, 0x0c, 0xcf, 0x8f, 0xc1, 0xdf, 0x84, 0xbc, 0x0c, 0x2b, 0x28, 0x5a, 0x63, - 0x27, 0x31, 0x17, 0x67, 0xcc, 0xcc, 0xe6, 0x47, 0x05, 0xd2, 0xc5, 0x1e, 0x9c, 0x79, 0x55, 0x7f, - 0x71, 0x4c, 0x01, 0x35, 0xb5, 0xb4, 0x94, 0xf4, 0xc5, 0x10, 0xce, 0x3c, 0x56, 0x60, 0x59, 0x97, - 0x78, 0x5e, 0xc4, 0x0c, 0x81, 0x51, 0x1c, 0xe2, 0x04, 0x4d, 0xf4, 0x31, 0x98, 0x12, 0xb1, 0x0c, - 0xe3, 0x61, 0x3a, 0x1b, 0xdb, 0x9d, 0xe3, 0x04, 0x0c, 0xa7, 0xb0, 0x79, 0x7e, 0x0a, 0x67, 0xb3, - 0x45, 0xc4, 0xd1, 0x77, 0xdd, 0xf5, 0x76, 0xc3, 0x99, 0x73, 0xec, 0x7c, 0x10, 0xf9, 0x29, 0x92, - 0x50, 0x9c, 0x51, 0x03, 0x6d, 0xc0, 0x54, 0x27, 0x20, 0xa4, 0xcd, 0x18, 0x7d, 0x71, 0x9f, 0xcd, - 0xf1, 0xa8, 0x0b, 0xb4, 0x27, 0xb5, 0x04, 0xec, 0x7e, 0x46, 0x19, 0x4e, 0x51, 0x40, 0x77, 0x60, - 0xc4, 0xdf, 0x23, 0xc1, 0x0e, 0x71, 0x9a, 0x33, 0xe7, 0x0b, 0xfc, 0x20, 0xc4, 0xe5, 0x76, 0x43, - 0xe0, 0x26, 0x4c, 0x06, 0x64, 0x71, 0x6f, 0x93, 0x01, 0xd9, 0x18, 0xfa, 0x31, 0x0b, 0xce, 0x48, - 0x2d, 0x43, 0xbd, 0x43, 0x47, 0x7d, 0xc9, 0xf7, 0xc2, 0x28, 0xe0, 0x71, 0x02, 0x1e, 0xcf, 0xf7, - 0x9d, 0xdf, 0xc8, 0xa9, 0xa4, 0x24, 0xaa, 0x67, 0xf2, 0x30, 0x42, 0x9c, 0xdf, 0x22, 0x5a, 0x82, - 0xe9, 0x90, 0x44, 0xf2, 0x30, 0x5a, 0x08, 0x57, 0xde, 0xa8, 0xae, 0xcf, 0x3c, 0xc1, 0x83, 0x1c, - 0xd0, 0xcd, 0x50, 0x4f, 0x02, 0x71, 0x1a, 0x1f, 0x5d, 0x86, 0x92, 0x1f, 0xce, 0x3c, 0x59, 0x90, - 0xc9, 0x94, 0x3e, 0xc5, 0xb9, 0xe9, 0xd8, 0x8d, 0x3a, 0x2e, 0xf9, 0xe1, 0xec, 0x77, 0xc2, 0x74, - 0x8a, 0x63, 0x38, 0x4c, 0x06, 0xa0, 0xd9, 0x5d, 0x18, 0x37, 0x66, 0xe5, 0xa1, 0x6a, 0xa9, 0x7f, - 0x6c, 0x04, 0x2a, 0x4a, 0x83, 0x89, 0x2e, 0x99, 0x8a, 0xe9, 0x33, 0x49, 0xc5, 0xf4, 0x48, 0xcd, - 0x6f, 0x1a, 0xba, 0xe8, 0x8d, 0x8c, 0x68, 0x70, 0x79, 0x67, 0x40, 0xff, 0x06, 0xf2, 0x9a, 0x58, - 0xb8, 0xdc, 0xb7, 0x86, 0x7b, 0xa0, 0x50, 0xd2, 0x7c, 0x05, 0xa6, 0x3d, 0x9f, 0xb1, 0xa9, 0xa4, - 0x29, 0x79, 0x10, 0xc6, 0x6a, 0x54, 0xf4, 0xf0, 0x2a, 0x09, 0x04, 0x9c, 0xae, 0x43, 0x1b, 0xe4, - 0xbc, 0x42, 0x52, 0xb4, 0xcd, 0x59, 0x09, 0x2c, 0xa0, 0xf4, 0x79, 0xc4, 0x7f, 0x85, 0x33, 0x13, - 0xf9, 0xcf, 0x23, 0x5e, 0x29, 0xc9, 0x8f, 0x84, 0x92, 0x1f, 0x61, 0x92, 0xdc, 0x8e, 0xdf, 0x5c, - 0xad, 0x09, 0x4e, 0x57, 0x0b, 0x65, 0xda, 0x5c, 0xad, 0x61, 0x0e, 0x43, 0x0b, 0x30, 0xc4, 0x7e, - 0x84, 0x33, 0x63, 0xf9, 0xe1, 0x38, 0x58, 0x0d, 0x2d, 0x4d, 0x13, 0xab, 0x80, 0x45, 0x45, 0x26, - 0xa9, 0xa3, 0xcf, 0x03, 0x26, 0xa9, 0x1b, 0x7e, 0x40, 0x49, 0x9d, 0x24, 0x80, 0x63, 0x5a, 0xe8, - 0x2e, 0x9c, 0x32, 0x9e, 0x64, 0x7c, 0xa5, 0x91, 0x50, 0x84, 0x04, 0x78, 0xa2, 0xf0, 0x2d, 0x26, - 0x14, 0xeb, 0x67, 0x45, 0xa7, 0x4f, 0xad, 0x66, 0x51, 0xc2, 0xd9, 0x0d, 0xa0, 0x16, 0x4c, 0x37, - 0x52, 0xad, 0x8e, 0xf4, 0xdf, 0xaa, 0x5a, 0x17, 0xe9, 0x16, 0xd3, 0x84, 0xd1, 0xab, 0x30, 0xf2, - 0x96, 0x1f, 0xb2, 0x5b, 0x42, 0x70, 0xe7, 0xd2, 0x9f, 0x7c, 0xe4, 0x8d, 0x1b, 0x75, 0x56, 0x7e, - 0xff, 0x60, 0x6e, 0xb4, 0xe6, 0x37, 0xe5, 0x5f, 0xac, 0x2a, 0xa0, 0x1f, 0xb4, 0x60, 0x36, 0xfd, - 0xe6, 0x53, 0x9d, 0x1e, 0xef, 0xbf, 0xd3, 0xb6, 0x68, 0x74, 0x76, 0x39, 0x97, 0x1c, 0x2e, 0x68, - 0xca, 0xfe, 0x15, 0x8b, 0xc9, 0xfb, 0x84, 0xc2, 0x8a, 0x84, 0xdd, 0xd6, 0x71, 0x64, 0xa7, 0x5d, - 0x36, 0x74, 0x69, 0x0f, 0x6c, 0x68, 0xf1, 0xcf, 0x2d, 0x66, 0x68, 0x71, 0x8c, 0x1e, 0x15, 0x6f, - 0xc0, 0x48, 0x24, 0xb3, 0x06, 0x17, 0x24, 0xd4, 0xd5, 0x3a, 0xc5, 0x8c, 0x4d, 0x14, 0xaf, 0xac, - 0x12, 0x04, 0x2b, 0x32, 0xf6, 0x3f, 0xe2, 0x33, 0x20, 0x21, 0xc7, 0xa0, 0xb2, 0xa8, 0x9a, 0x2a, - 0x8b, 0xb9, 0x1e, 0x5f, 0x90, 0xa3, 0xba, 0xf8, 0x87, 0x66, 0xbf, 0x99, 0x8c, 0xe8, 0xdd, 0x6e, - 0xe1, 0x63, 0x7f, 0xc1, 0x02, 0x88, 0x23, 0x45, 0xf7, 0x91, 0x17, 0xee, 0x65, 0xca, 0x1d, 0xfb, - 0x91, 0xdf, 0xf0, 0x5b, 0x42, 0x21, 0xf7, 0x58, 0xac, 0x35, 0xe1, 0xe5, 0xf7, 0xb5, 0xdf, 0x58, - 0x61, 0xa3, 0x39, 0x19, 0x97, 0xae, 0x1c, 0xeb, 0xf1, 0x8c, 0x98, 0x74, 0x5f, 0xb2, 0xe0, 0x64, - 0x96, 0x79, 0x2e, 0x7d, 0x6b, 0x71, 0x69, 0x99, 0xb2, 0xbe, 0x52, 0xb3, 0x79, 0x4b, 0x94, 0x63, - 0x85, 0xd1, 0x77, 0xc2, 0xbd, 0xc3, 0x85, 0x68, 0xbe, 0x01, 0xe3, 0xb5, 0x80, 0x68, 0x77, 0xf4, - 0x6b, 0x3c, 0xd6, 0x01, 0xef, 0xcf, 0xb3, 0x87, 0x8e, 0x73, 0x60, 0x7f, 0xa5, 0x04, 0x27, 0xb9, - 0x11, 0xc3, 0xc2, 0x9e, 0xef, 0x36, 0x6b, 0x7e, 0x53, 0x38, 0x61, 0x7d, 0x12, 0xc6, 0x3a, 0x9a, - 0x88, 0xb3, 0x28, 0xdc, 0xa8, 0x2e, 0x0a, 0x8d, 0x85, 0x32, 0x7a, 0x29, 0x36, 0x68, 0xa1, 0x26, - 0x8c, 0x91, 0x3d, 0xb7, 0xa1, 0x34, 0xe1, 0xa5, 0x43, 0x5f, 0x74, 0xaa, 0x95, 0x65, 0x8d, 0x0e, - 0x36, 0xa8, 0x3e, 0x84, 0x34, 0xd8, 0xf6, 0x4f, 0x58, 0xf0, 0x48, 0x4e, 0x70, 0x52, 0xda, 0xdc, - 0x1d, 0x66, 0x2e, 0x22, 0x96, 0xad, 0x6a, 0x8e, 0x1b, 0x91, 0x60, 0x01, 0x45, 0x1f, 0x07, 0xe0, - 0x46, 0x20, 0xf4, 0xb1, 0xdf, 0x2b, 0x8a, 0xa3, 0x11, 0x80, 0x4e, 0x8b, 0x25, 0x26, 0xeb, 0x63, - 0x8d, 0x96, 0xfd, 0xa5, 0x01, 0x18, 0xe4, 0x29, 0xfb, 0x6b, 0x30, 0xbc, 0xc3, 0xd3, 0xcd, 0x14, - 0xce, 0x1b, 0xc5, 0x95, 0x19, 0x6c, 0xe2, 0x79, 0xd3, 0x4a, 0xb1, 0x24, 0x83, 0xd6, 0xe0, 0x04, - 0xcf, 0xfa, 0xd3, 0xaa, 0x92, 0x96, 0xb3, 0x2f, 0xa5, 0x87, 0x3c, 0x91, 0xad, 0x92, 0xa2, 0xae, - 0xa6, 0x51, 0x70, 0x56, 0x3d, 0xf4, 0x1a, 0x4c, 0xd0, 0xd7, 0x9c, 0xdf, 0x8d, 0x24, 0x25, 0x9e, - 0xef, 0x47, 0x3d, 0x1f, 0x37, 0x0c, 0x28, 0x4e, 0x60, 0xa3, 0x57, 0x61, 0xbc, 0x93, 0x92, 0x93, - 0x0e, 0xc6, 0x02, 0x05, 0x53, 0x36, 0x6a, 0xe2, 0x32, 0x0b, 0xdd, 0x2e, 0xb3, 0x47, 0xde, 0xd8, - 0x09, 0x48, 0xb8, 0xe3, 0xb7, 0x9a, 0x8c, 0x8b, 0x1c, 0xd4, 0x2c, 0x74, 0x13, 0x70, 0x9c, 0xaa, - 0x41, 0xa9, 0x6c, 0x39, 0x6e, 0xab, 0x1b, 0x90, 0x98, 0xca, 0x90, 0x49, 0x65, 0x25, 0x01, 0xc7, - 0xa9, 0x1a, 0xbd, 0x05, 0xc0, 0xc3, 0x47, 0x23, 0x00, 0xb6, 0xff, 0x56, 0x09, 0x8c, 0xa9, 0xfd, - 0xf6, 0xcd, 0x43, 0x44, 0xbf, 0x6c, 0x3b, 0xe8, 0x34, 0x84, 0x81, 0x4d, 0xe6, 0x97, 0xc5, 0x49, - 0x48, 0xf9, 0x97, 0xd1, 0xff, 0x98, 0xd5, 0xa2, 0x7b, 0xfc, 0x54, 0x2d, 0xf0, 0xe9, 0x25, 0x27, - 0xa3, 0x61, 0x29, 0x43, 0xf8, 0x61, 0xe9, 0x24, 0x5c, 0x10, 0x37, 0x52, 0x98, 0x0a, 0x73, 0x0a, - 0x86, 0x2d, 0x4a, 0x5d, 0xb8, 0xec, 0x4b, 0x2a, 0xe8, 0x32, 0x8c, 0x8a, 0xe4, 0x32, 0xcc, 0x5e, - 0x9b, 0x6f, 0x26, 0x66, 0x3b, 0x53, 0x8d, 0x8b, 0xb1, 0x8e, 0x63, 0xff, 0x50, 0x09, 0x4e, 0x64, - 0x38, 0xdc, 0xf0, 0x6b, 0x64, 0xdb, 0x0d, 0x23, 0x95, 0xe7, 0x54, 0xbb, 0x46, 0x78, 0x39, 0x56, - 0x18, 0xf4, 0xac, 0xe2, 0x17, 0x55, 0xf2, 0x72, 0x12, 0x06, 0xed, 0x02, 0x7a, 0xc8, 0x8c, 0xa1, - 0xe7, 0x61, 0xa0, 0x1b, 0x12, 0x19, 0xf1, 0x55, 0x5d, 0xdb, 0x4c, 0x3b, 0xca, 0x20, 0xf4, 0x19, - 0xb5, 0xad, 0x14, 0x8d, 0xda, 0x33, 0x8a, 0xab, 0x1a, 0x39, 0x8c, 0x76, 0x2e, 0x22, 0x9e, 0xe3, - 0x45, 0xe2, 0xb1, 0x15, 0x87, 0x2e, 0x64, 0xa5, 0x58, 0x40, 0xed, 0x2f, 0x96, 0xe1, 0x4c, 0xae, - 0x0b, 0x1e, 0xed, 0x7a, 0xdb, 0xf7, 0xdc, 0xc8, 0x57, 0x46, 0x49, 0x3c, 0x5c, 0x21, 0xe9, 0xec, - 0xac, 0x89, 0x72, 0xac, 0x30, 0xd0, 0x05, 0x18, 0x64, 0xb2, 0xd5, 0x54, 0xc6, 0xd7, 0xc5, 0x2a, - 0x8f, 0x5f, 0xc5, 0xc1, 0x7d, 0x27, 0xe9, 0x7e, 0x82, 0x72, 0x30, 0x7e, 0x2b, 0x79, 0xa1, 0xd0, - 0xee, 0xfa, 0x7e, 0x0b, 0x33, 0x20, 0x7a, 0xbf, 0x18, 0xaf, 0x84, 0x15, 0x0e, 0x76, 0x9a, 0x7e, - 0xa8, 0x0d, 0xda, 0xd3, 0x30, 0xbc, 0x4b, 0xf6, 0x03, 0xd7, 0xdb, 0x4e, 0x5a, 0x67, 0x5d, 0xe3, - 0xc5, 0x58, 0xc2, 0xcd, 0xe4, 0x83, 0xc3, 0x47, 0x9d, 0x5d, 0x7b, 0xa4, 0x27, 0x7b, 0xf2, 0x23, - 0x65, 0x98, 0xc4, 0x8b, 0xd5, 0xf7, 0x26, 0xe2, 0x66, 0x7a, 0x22, 0x8e, 0x3a, 0xbb, 0x76, 0xef, - 0xd9, 0xf8, 0x45, 0x0b, 0x26, 0x59, 0x8a, 0x1b, 0xe1, 0x68, 0xef, 0xfa, 0xde, 0x31, 0x3c, 0x05, - 0x9e, 0x80, 0xc1, 0x80, 0x36, 0x9a, 0x4c, 0xf5, 0xca, 0x7a, 0x82, 0x39, 0x0c, 0x3d, 0x06, 0x03, - 0xac, 0x0b, 0x74, 0xf2, 0xc6, 0xf8, 0x11, 0x5c, 0x75, 0x22, 0x07, 0xb3, 0x52, 0x16, 0xbd, 0x09, - 0x93, 0x4e, 0xcb, 0xe5, 0x9d, 0x8e, 0x35, 0xdf, 0xef, 0x0e, 0xe7, 0xfc, 0xcc, 0xae, 0xbd, 0xb3, - 0xe8, 0x4d, 0xd9, 0x24, 0x8b, 0x9f, 0xd9, 0x7f, 0x52, 0x82, 0x73, 0x99, 0xf5, 0xfa, 0x8e, 0xde, - 0x54, 0x5c, 0xfb, 0x61, 0x26, 0x31, 0x29, 0x1f, 0xa3, 0xed, 0xeb, 0x40, 0xbf, 0xdc, 0xff, 0x60, - 0x1f, 0x41, 0x95, 0x32, 0x87, 0xec, 0x5d, 0x12, 0x54, 0x29, 0xb3, 0x6f, 0x39, 0x62, 0x82, 0xbf, - 0x2c, 0xe5, 0x7c, 0x0b, 0x13, 0x18, 0x5c, 0xa4, 0xe7, 0x0c, 0x03, 0x86, 0xf2, 0x11, 0xce, 0xcf, - 0x18, 0x5e, 0x86, 0x15, 0x14, 0x2d, 0xc0, 0x64, 0xdb, 0xf5, 0xe8, 0xe1, 0xb3, 0x6f, 0xb2, 0xe2, - 0x2a, 0xe6, 0xdd, 0x9a, 0x09, 0xc6, 0x49, 0x7c, 0xe4, 0x6a, 0x01, 0x97, 0xf8, 0xd7, 0xbd, 0x7a, - 0xa8, 0x5d, 0x37, 0x6f, 0x5a, 0x05, 0xa8, 0x51, 0xcc, 0x08, 0xbe, 0xb4, 0xa6, 0xc9, 0x89, 0xca, - 0xfd, 0xcb, 0x89, 0xc6, 0xb2, 0x65, 0x44, 0xb3, 0xaf, 0xc2, 0xf8, 0x03, 0xeb, 0x17, 0xec, 0xaf, - 0x97, 0xe1, 0xd1, 0x82, 0x6d, 0xcf, 0xcf, 0x7a, 0x63, 0x0e, 0xb4, 0xb3, 0x3e, 0x35, 0x0f, 0x35, - 0x38, 0xb9, 0xd5, 0x6d, 0xb5, 0xf6, 0x99, 0x4b, 0x08, 0x69, 0x4a, 0x0c, 0xc1, 0x53, 0x4a, 0xe1, - 0xc8, 0xc9, 0x95, 0x0c, 0x1c, 0x9c, 0x59, 0x93, 0x3e, 0xb1, 0xe8, 0x4d, 0xb2, 0xaf, 0x48, 0x25, - 0x9e, 0x58, 0x58, 0x07, 0x62, 0x13, 0x17, 0x5d, 0x81, 0x69, 0x67, 0xcf, 0x71, 0x79, 0xd4, 0x6a, - 0x49, 0x80, 0xbf, 0xb1, 0x94, 0x3c, 0x77, 0x21, 0x89, 0x80, 0xd3, 0x75, 0xd0, 0xeb, 0x80, 0xfc, - 0x4d, 0x66, 0x38, 0xde, 0xbc, 0x42, 0x3c, 0xa1, 0xbc, 0x65, 0x73, 0x57, 0x8e, 0x8f, 0x84, 0x1b, - 0x29, 0x0c, 0x9c, 0x51, 0x2b, 0x11, 0x58, 0x68, 0x28, 0x3f, 0xb0, 0x50, 0xf1, 0xb9, 0xd8, 0x33, - 0x7f, 0xce, 0x7f, 0xb0, 0xe8, 0xf5, 0xc5, 0x99, 0x7c, 0x33, 0x0e, 0xe7, 0xab, 0xcc, 0xf8, 0x92, - 0xcb, 0x7a, 0xb5, 0x30, 0x2c, 0xa7, 0x34, 0xe3, 0xcb, 0x18, 0x88, 0x4d, 0x5c, 0xbe, 0x20, 0xc2, - 0xd8, 0xfb, 0xd7, 0x60, 0xf1, 0x45, 0xb0, 0x30, 0x85, 0x81, 0x3e, 0x01, 0xc3, 0x4d, 0x77, 0xcf, - 0x0d, 0x85, 0xa4, 0xeb, 0xd0, 0xda, 0xa9, 0xf8, 0x1c, 0xac, 0x72, 0x32, 0x58, 0xd2, 0xb3, 0x7f, - 0xa4, 0x04, 0xe3, 0xb2, 0xc5, 0x37, 0xba, 0x7e, 0xe4, 0x1c, 0xc3, 0xb5, 0x7c, 0xc5, 0xb8, 0x96, - 0xdf, 0x5f, 0x14, 0x31, 0x8d, 0x75, 0x29, 0xf7, 0x3a, 0xbe, 0x91, 0xb8, 0x8e, 0x9f, 0xea, 0x4d, - 0xaa, 0xf8, 0x1a, 0xfe, 0xc7, 0x16, 0x4c, 0x1b, 0xf8, 0xc7, 0x70, 0x1b, 0xac, 0x98, 0xb7, 0xc1, - 0xe3, 0x3d, 0xbf, 0x21, 0xe7, 0x16, 0xf8, 0xfe, 0x72, 0xa2, 0xef, 0xec, 0xf4, 0x7f, 0x0b, 0x06, - 0x76, 0x9c, 0xa0, 0x59, 0x94, 0x21, 0x22, 0x55, 0x69, 0xfe, 0xaa, 0x13, 0x08, 0xed, 0xf5, 0xb3, - 0x72, 0xd4, 0x69, 0x51, 0x4f, 0xcd, 0x35, 0x6b, 0x0a, 0xbd, 0x0c, 0x43, 0x61, 0xc3, 0xef, 0x28, - 0x87, 0x90, 0xf3, 0x6c, 0xa0, 0x59, 0xc9, 0xfd, 0x83, 0x39, 0x64, 0x36, 0x47, 0x8b, 0xb1, 0xc0, - 0x47, 0x9f, 0x84, 0x71, 0xf6, 0x4b, 0x99, 0x92, 0x95, 0xf3, 0xc5, 0x11, 0x75, 0x1d, 0x91, 0xdb, - 0x59, 0x1a, 0x45, 0xd8, 0x24, 0x35, 0xbb, 0x0d, 0x15, 0xf5, 0x59, 0x0f, 0x55, 0xfd, 0xfb, 0xef, - 0xca, 0x70, 0x22, 0x63, 0xcd, 0xa1, 0xd0, 0x98, 0x89, 0xcb, 0x7d, 0x2e, 0xd5, 0x77, 0x38, 0x17, - 0x21, 0x7b, 0x0d, 0x35, 0xc5, 0xda, 0xea, 0xbb, 0xd1, 0x9b, 0x21, 0x49, 0x36, 0x4a, 0x8b, 0x7a, - 0x37, 0x4a, 0x1b, 0x3b, 0xb6, 0xa1, 0xa6, 0x0d, 0xa9, 0x9e, 0x3e, 0xd4, 0x39, 0xfd, 0xf3, 0x32, - 0x9c, 0xcc, 0x0a, 0xe2, 0x88, 0x3e, 0x97, 0xc8, 0x4f, 0xfa, 0x62, 0xbf, 0xe1, 0x1f, 0x79, 0xd2, - 0x52, 0x11, 0x57, 0x6e, 0xde, 0xcc, 0x58, 0xda, 0x73, 0x98, 0x45, 0x9b, 0x2c, 0xb2, 0x45, 0xc0, - 0xf3, 0xca, 0xca, 0xe3, 0xe3, 0x43, 0x7d, 0x77, 0x40, 0x24, 0xa4, 0x0d, 0x13, 0x66, 0x2a, 0xb2, - 0xb8, 0xb7, 0x99, 0x8a, 0x6c, 0x79, 0xd6, 0x85, 0x51, 0xed, 0x6b, 0x1e, 0xea, 0x8c, 0xef, 0xd2, - 0xdb, 0x4a, 0xeb, 0xf7, 0x43, 0x9d, 0xf5, 0x9f, 0xb0, 0x20, 0xe1, 0xb9, 0xa0, 0xc4, 0x62, 0x56, - 0xae, 0x58, 0xec, 0x3c, 0x0c, 0x04, 0x7e, 0x8b, 0x24, 0x13, 0x79, 0x62, 0xbf, 0x45, 0x30, 0x83, - 0x50, 0x8c, 0x28, 0x16, 0x76, 0x8c, 0xe9, 0x0f, 0x39, 0xf1, 0x44, 0x7b, 0x02, 0x06, 0x5b, 0x64, - 0x8f, 0xb4, 0x92, 0xf9, 0x96, 0xae, 0xd3, 0x42, 0xcc, 0x61, 0xf6, 0x2f, 0x0e, 0xc0, 0xd9, 0xc2, - 0xd8, 0x30, 0xf4, 0x39, 0xb4, 0xed, 0x44, 0xe4, 0x8e, 0xb3, 0x9f, 0x4c, 0x8c, 0x72, 0x85, 0x17, - 0x63, 0x09, 0x67, 0x0e, 0x69, 0x3c, 0xbe, 0x79, 0x42, 0x88, 0x28, 0xc2, 0x9a, 0x0b, 0xa8, 0x29, - 0x94, 0x2a, 0x1f, 0x85, 0x50, 0xea, 0x79, 0x80, 0x30, 0x6c, 0x71, 0xfb, 0xae, 0xa6, 0xf0, 0x74, - 0x8b, 0xe3, 0xe0, 0xd7, 0xaf, 0x0b, 0x08, 0xd6, 0xb0, 0x50, 0x15, 0xa6, 0x3a, 0x81, 0x1f, 0x71, - 0x99, 0x6c, 0x95, 0x9b, 0x40, 0x0e, 0x9a, 0x61, 0x39, 0x6a, 0x09, 0x38, 0x4e, 0xd5, 0x40, 0x2f, - 0xc1, 0xa8, 0x08, 0xd5, 0x51, 0xf3, 0xfd, 0x96, 0x10, 0x03, 0x29, 0xab, 0xc0, 0x7a, 0x0c, 0xc2, - 0x3a, 0x9e, 0x56, 0x8d, 0x09, 0x7a, 0x87, 0x33, 0xab, 0x71, 0x61, 0xaf, 0x86, 0x97, 0x08, 0xe8, - 0x3a, 0xd2, 0x57, 0x40, 0xd7, 0x58, 0x30, 0x56, 0xe9, 0x5b, 0xef, 0x08, 0x3d, 0x45, 0x49, 0x3f, - 0x3f, 0x00, 0x27, 0xc4, 0xc2, 0x79, 0xd8, 0xcb, 0xe5, 0x66, 0x7a, 0xb9, 0x1c, 0x85, 0xe8, 0xec, - 0xbd, 0x35, 0x73, 0xdc, 0x6b, 0xe6, 0x47, 0x2d, 0x30, 0xd9, 0x2b, 0xf4, 0x7f, 0xe5, 0x66, 0x96, - 0x7a, 0x29, 0x97, 0x5d, 0x53, 0xc1, 0x41, 0xdf, 0x61, 0x8e, 0x29, 0xfb, 0xdf, 0x5b, 0xf0, 0x78, - 0x4f, 0x8a, 0x68, 0x19, 0x2a, 0x8c, 0x07, 0xd4, 0x5e, 0x67, 0x4f, 0x29, 0x13, 0x69, 0x09, 0xc8, - 0x61, 0x49, 0xe3, 0x9a, 0x68, 0x39, 0x95, 0xc2, 0xeb, 0xe9, 0x8c, 0x14, 0x5e, 0xa7, 0x8c, 0xe1, - 0x79, 0xc0, 0x1c, 0x5e, 0x3f, 0x4c, 0x6f, 0x1c, 0xc3, 0x3d, 0x09, 0x7d, 0xc8, 0x10, 0xfb, 0xd9, - 0x09, 0xb1, 0x1f, 0x32, 0xb1, 0xb5, 0x3b, 0xe4, 0x63, 0x30, 0xc5, 0x62, 0x78, 0x31, 0x83, 0x7d, - 0xe1, 0x38, 0x55, 0x8a, 0x8d, 0x72, 0xaf, 0x27, 0x60, 0x38, 0x85, 0x6d, 0xff, 0x71, 0x19, 0x86, - 0xf8, 0xf6, 0x3b, 0x86, 0x37, 0xe1, 0x33, 0x50, 0x71, 0xdb, 0xed, 0x2e, 0xcf, 0xca, 0x34, 0xc8, - 0x5d, 0xac, 0xe9, 0x3c, 0xad, 0xca, 0x42, 0x1c, 0xc3, 0xd1, 0x8a, 0x90, 0x38, 0x17, 0x84, 0x09, - 0xe5, 0x1d, 0x9f, 0xaf, 0x3a, 0x91, 0xc3, 0x19, 0x1c, 0x75, 0xcf, 0xc6, 0xb2, 0x69, 0xf4, 0x69, - 0x80, 0x30, 0x0a, 0x5c, 0x6f, 0x9b, 0x96, 0x89, 0xe8, 0xc4, 0x1f, 0x28, 0xa0, 0x56, 0x57, 0xc8, - 0x9c, 0x66, 0x7c, 0xe6, 0x28, 0x00, 0xd6, 0x28, 0xa2, 0x79, 0xe3, 0xa6, 0x9f, 0x4d, 0xcc, 0x1d, - 0x70, 0xaa, 0xf1, 0x9c, 0xcd, 0x7e, 0x18, 0x2a, 0x8a, 0x78, 0x2f, 0xf9, 0xd3, 0x98, 0xce, 0x16, - 0x7d, 0x14, 0x26, 0x13, 0x7d, 0x3b, 0x94, 0xf8, 0xea, 0x97, 0x2c, 0x98, 0xe4, 0x9d, 0x59, 0xf6, - 0xf6, 0xc4, 0x6d, 0xf0, 0x36, 0x9c, 0x6c, 0x65, 0x9c, 0xca, 0x62, 0xfa, 0xfb, 0x3f, 0xc5, 0x95, - 0xb8, 0x2a, 0x0b, 0x8a, 0x33, 0xdb, 0x40, 0x17, 0xe9, 0x8e, 0xa3, 0xa7, 0xae, 0xd3, 0x12, 0x1e, - 0xd7, 0x63, 0x7c, 0xb7, 0xf1, 0x32, 0xac, 0xa0, 0xf6, 0xef, 0x59, 0x30, 0xcd, 0x7b, 0x7e, 0x8d, - 0xec, 0xab, 0xb3, 0xe9, 0x9b, 0xd9, 0x77, 0x91, 0x0f, 0xb0, 0x94, 0x93, 0x0f, 0x50, 0xff, 0xb4, - 0x72, 0xe1, 0xa7, 0x7d, 0xc5, 0x02, 0xb1, 0x42, 0x8e, 0x41, 0x08, 0xf1, 0x9d, 0xa6, 0x10, 0x62, - 0x36, 0x7f, 0x13, 0xe4, 0x48, 0x1f, 0xfe, 0xc2, 0x82, 0x29, 0x8e, 0x10, 0x6b, 0xcb, 0xbf, 0xa9, - 0xf3, 0xd0, 0x4f, 0xd6, 0xf0, 0x6b, 0x64, 0x7f, 0xc3, 0xaf, 0x39, 0xd1, 0x4e, 0xf6, 0x47, 0x19, - 0x93, 0x35, 0x50, 0x38, 0x59, 0x4d, 0xb9, 0x81, 0x8c, 0x74, 0x39, 0x3d, 0xc2, 0x50, 0x1c, 0x36, - 0x5d, 0x8e, 0xfd, 0x0d, 0x0b, 0x10, 0x6f, 0xc6, 0x60, 0xdc, 0x28, 0x3b, 0xc4, 0x4a, 0xb5, 0x8b, - 0x2e, 0x3e, 0x9a, 0x14, 0x04, 0x6b, 0x58, 0x47, 0x32, 0x3c, 0x09, 0x93, 0x87, 0x72, 0x6f, 0x93, - 0x87, 0x43, 0x8c, 0xe8, 0xbf, 0x1e, 0x82, 0xa4, 0x8b, 0x16, 0xba, 0x05, 0x63, 0x0d, 0xa7, 0xe3, - 0x6c, 0xba, 0x2d, 0x37, 0x72, 0x49, 0x58, 0x64, 0x0f, 0xb5, 0xa4, 0xe1, 0x09, 0x25, 0xb5, 0x56, - 0x82, 0x0d, 0x3a, 0x68, 0x1e, 0xa0, 0x13, 0xb8, 0x7b, 0x6e, 0x8b, 0x6c, 0x33, 0x59, 0x09, 0x8b, - 0xf1, 0xc0, 0x8d, 0xb3, 0x64, 0x29, 0xd6, 0x30, 0x32, 0xfc, 0xe1, 0xcb, 0x0f, 0xd9, 0x1f, 0x1e, - 0x8e, 0xcd, 0x1f, 0x7e, 0xe0, 0x50, 0xfe, 0xf0, 0x23, 0x87, 0xf6, 0x87, 0x1f, 0xec, 0xcb, 0x1f, - 0x1e, 0xc3, 0x69, 0xc9, 0x7b, 0xd2, 0xff, 0x2b, 0x6e, 0x8b, 0x88, 0x07, 0x07, 0x0f, 0x4c, 0x31, - 0x7b, 0xef, 0x60, 0xee, 0x34, 0xce, 0xc4, 0xc0, 0x39, 0x35, 0xd1, 0xc7, 0x61, 0xc6, 0x69, 0xb5, - 0xfc, 0x3b, 0x6a, 0x52, 0x97, 0xc3, 0x86, 0xd3, 0xe2, 0x4a, 0x88, 0x61, 0x46, 0xf5, 0xb1, 0x7b, - 0x07, 0x73, 0x33, 0x0b, 0x39, 0x38, 0x38, 0xb7, 0x36, 0xfa, 0x08, 0x54, 0x3a, 0x81, 0xdf, 0x58, - 0xd3, 0xfc, 0x48, 0xcf, 0xd1, 0x01, 0xac, 0xc9, 0xc2, 0xfb, 0x07, 0x73, 0xe3, 0xea, 0x0f, 0xbb, - 0xf0, 0xe3, 0x0a, 0x19, 0x0e, 0xee, 0xa3, 0x47, 0xea, 0xe0, 0xbe, 0x0b, 0x27, 0xea, 0x24, 0x70, - 0x9d, 0x96, 0xfb, 0x36, 0xe5, 0x97, 0xe5, 0xf9, 0xb4, 0x01, 0x95, 0x20, 0x71, 0x22, 0xf7, 0x15, - 0xba, 0x53, 0xcb, 0x5b, 0x22, 0x4f, 0xe0, 0x98, 0x90, 0xfd, 0x3f, 0x2d, 0x18, 0x16, 0x2e, 0x59, - 0xc7, 0xc0, 0x35, 0x2e, 0x18, 0x9a, 0x84, 0xb9, 0xec, 0x01, 0x63, 0x9d, 0xc9, 0xd5, 0x21, 0xac, - 0x26, 0x74, 0x08, 0x8f, 0x17, 0x11, 0x29, 0xd6, 0x1e, 0xfc, 0xb5, 0x32, 0xe5, 0xde, 0x0d, 0xe7, - 0xe0, 0x87, 0x3f, 0x04, 0xeb, 0x30, 0x1c, 0x0a, 0xe7, 0xd4, 0x52, 0xbe, 0x4f, 0x43, 0x72, 0x12, - 0x63, 0x3b, 0x36, 0xe1, 0x8e, 0x2a, 0x89, 0x64, 0x7a, 0xbd, 0x96, 0x1f, 0xa2, 0xd7, 0x6b, 0x2f, - 0xf7, 0xe9, 0x81, 0xa3, 0x70, 0x9f, 0xb6, 0xbf, 0xc6, 0x6e, 0x4e, 0xbd, 0xfc, 0x18, 0x98, 0xaa, - 0x2b, 0xe6, 0x1d, 0x6b, 0x17, 0xac, 0x2c, 0xd1, 0xa9, 0x1c, 0xe6, 0xea, 0x17, 0x2c, 0x38, 0x9b, - 0xf1, 0x55, 0x1a, 0xa7, 0xf5, 0x2c, 0x8c, 0x38, 0xdd, 0xa6, 0xab, 0xf6, 0xb2, 0xa6, 0x4f, 0x5c, - 0x10, 0xe5, 0x58, 0x61, 0xa0, 0x25, 0x98, 0x26, 0x77, 0x3b, 0x2e, 0x57, 0xa5, 0xea, 0xe6, 0xbf, - 0x65, 0xee, 0xc7, 0xb7, 0x9c, 0x04, 0xe2, 0x34, 0xbe, 0x0a, 0x59, 0x53, 0xce, 0x0d, 0x59, 0xf3, - 0x77, 0x2d, 0x18, 0x55, 0xee, 0x99, 0x0f, 0x7d, 0xb4, 0x3f, 0x66, 0x8e, 0xf6, 0xa3, 0x05, 0xa3, - 0x9d, 0x33, 0xcc, 0xbf, 0x53, 0x52, 0xfd, 0xad, 0xf9, 0x41, 0xd4, 0x07, 0x07, 0xf7, 0xe0, 0xae, - 0x0b, 0x97, 0x61, 0xd4, 0xe9, 0x74, 0x24, 0x40, 0xda, 0xa0, 0xb1, 0x40, 0xcc, 0x71, 0x31, 0xd6, - 0x71, 0x94, 0x27, 0x45, 0x39, 0xd7, 0x93, 0xa2, 0x09, 0x10, 0x39, 0xc1, 0x36, 0x89, 0x68, 0x99, - 0x30, 0x99, 0xcd, 0x3f, 0x6f, 0xba, 0x91, 0xdb, 0x9a, 0x77, 0xbd, 0x28, 0x8c, 0x82, 0xf9, 0x55, - 0x2f, 0xba, 0x11, 0xf0, 0x27, 0xa4, 0x16, 0xf4, 0x49, 0xd1, 0xc2, 0x1a, 0x5d, 0x19, 0x8a, 0x80, - 0xb5, 0x31, 0x68, 0x1a, 0x33, 0xac, 0x8b, 0x72, 0xac, 0x30, 0xec, 0x0f, 0xb3, 0xdb, 0x87, 0x8d, - 0xe9, 0xe1, 0x02, 0x1e, 0xfd, 0xfd, 0x31, 0x35, 0x1b, 0x4c, 0x93, 0x59, 0xd5, 0xc3, 0x2a, 0x15, - 0x1f, 0xf6, 0xb4, 0x61, 0xdd, 0xaf, 0x2f, 0x8e, 0xbd, 0x84, 0xbe, 0x2b, 0x65, 0xa0, 0xf2, 0x5c, - 0x8f, 0x5b, 0xe3, 0x10, 0x26, 0x29, 0x2c, 0x2b, 0x0b, 0xcb, 0x59, 0xb1, 0x5a, 0x13, 0xfb, 0x42, - 0xcb, 0xca, 0x22, 0x00, 0x38, 0xc6, 0xa1, 0xcc, 0x94, 0xfa, 0x13, 0xce, 0xa0, 0x38, 0x3a, 0xa9, - 0xc2, 0x0e, 0xb1, 0x86, 0x81, 0x2e, 0x09, 0x81, 0x02, 0xd7, 0x0b, 0x3c, 0x9a, 0x10, 0x28, 0xc8, - 0xe1, 0xd2, 0xa4, 0x40, 0x97, 0x61, 0x54, 0x25, 0xe2, 0xae, 0xf1, 0x7c, 0x48, 0x62, 0x99, 0x2d, - 0xc7, 0xc5, 0x58, 0xc7, 0x41, 0x1b, 0x30, 0x19, 0x72, 0x39, 0x9b, 0x0a, 0x19, 0xcd, 0xe5, 0x95, - 0x1f, 0x90, 0x56, 0x40, 0x75, 0x13, 0x7c, 0x9f, 0x15, 0xf1, 0xd3, 0x49, 0x86, 0x0b, 0x48, 0x92, - 0x40, 0xaf, 0xc1, 0x44, 0xcb, 0x77, 0x9a, 0x8b, 0x4e, 0xcb, 0xf1, 0x1a, 0x6c, 0x7c, 0x46, 0xcc, - 0x7c, 0xae, 0xd7, 0x0d, 0x28, 0x4e, 0x60, 0x53, 0xe6, 0x4d, 0x2f, 0x11, 0x61, 0xce, 0x1d, 0x6f, - 0x9b, 0x84, 0x22, 0xad, 0x32, 0x63, 0xde, 0xae, 0xe7, 0xe0, 0xe0, 0xdc, 0xda, 0xe8, 0x65, 0x18, - 0x93, 0x9f, 0xaf, 0x45, 0xd7, 0x88, 0x9d, 0x52, 0x34, 0x18, 0x36, 0x30, 0xd1, 0x1d, 0x38, 0x25, - 0xff, 0x6f, 0x04, 0xce, 0xd6, 0x96, 0xdb, 0x10, 0x2e, 0xe7, 0xdc, 0x09, 0x76, 0x41, 0xba, 0x58, - 0x2e, 0x67, 0x21, 0xdd, 0x3f, 0x98, 0x3b, 0x2f, 0x46, 0x2d, 0x13, 0xce, 0x26, 0x31, 0x9b, 0x3e, - 0x5a, 0x83, 0x13, 0x3b, 0xc4, 0x69, 0x45, 0x3b, 0x4b, 0x3b, 0xa4, 0xb1, 0x2b, 0x37, 0x1d, 0x8b, - 0xd9, 0xa1, 0x39, 0x70, 0x5c, 0x4d, 0xa3, 0xe0, 0xac, 0x7a, 0xe8, 0x4d, 0x98, 0xe9, 0x74, 0x37, - 0x5b, 0x6e, 0xb8, 0xb3, 0xee, 0x47, 0xcc, 0x14, 0x48, 0xe5, 0xf5, 0x16, 0xc1, 0x3d, 0x54, 0x54, - 0x94, 0x5a, 0x0e, 0x1e, 0xce, 0xa5, 0x80, 0xde, 0x86, 0x53, 0x89, 0xc5, 0x20, 0xc2, 0x1b, 0x4c, - 0xe4, 0x27, 0x8d, 0xa8, 0x67, 0x55, 0x10, 0x91, 0x42, 0xb2, 0x40, 0x38, 0xbb, 0x09, 0xf4, 0x0a, - 0x80, 0xdb, 0x59, 0x71, 0xda, 0x6e, 0x8b, 0x3e, 0x17, 0x4f, 0xb0, 0x75, 0x42, 0x9f, 0x0e, 0xb0, - 0x5a, 0x93, 0xa5, 0xf4, 0x7c, 0x16, 0xff, 0xf6, 0xb1, 0x86, 0x8d, 0x6a, 0x30, 0x21, 0xfe, 0xed, - 0x8b, 0x69, 0x9d, 0x56, 0x91, 0x04, 0x26, 0x64, 0x0d, 0x35, 0x97, 0xc8, 0x2c, 0x61, 0xb3, 0x97, - 0xa8, 0x8f, 0xb6, 0xe1, 0xac, 0x4c, 0x02, 0xa6, 0xaf, 0x53, 0x39, 0x0f, 0x21, 0xcb, 0xd6, 0x30, - 0xc2, 0xfd, 0x43, 0x16, 0x8a, 0x10, 0x71, 0x31, 0x1d, 0x7a, 0xbf, 0xeb, 0xcb, 0x9d, 0x7b, 0xd0, - 0x9e, 0xe2, 0xe6, 0x49, 0xf4, 0x7e, 0xbf, 0x9e, 0x04, 0xe2, 0x34, 0x3e, 0x0a, 0xe1, 0x94, 0xeb, - 0x65, 0xad, 0xee, 0xd3, 0x8c, 0xd0, 0x47, 0xb9, 0xf3, 0x70, 0xf1, 0xca, 0xce, 0x84, 0xf3, 0x95, - 0x9d, 0x49, 0xfb, 0x9d, 0x59, 0xe1, 0xfd, 0xae, 0x45, 0x6b, 0x6b, 0x9c, 0x3a, 0xfa, 0x0c, 0x8c, - 0xe9, 0x1f, 0x26, 0xb8, 0x8e, 0x0b, 0xd9, 0x8c, 0xac, 0x76, 0x3e, 0x70, 0x3e, 0x5f, 0x9d, 0x01, - 0x3a, 0x0c, 0x1b, 0x14, 0x51, 0x23, 0xc3, 0x5b, 0xff, 0x52, 0x7f, 0x5c, 0x4d, 0xff, 0x46, 0x68, - 0x04, 0xb2, 0x97, 0x3d, 0xba, 0x0e, 0x23, 0x8d, 0x96, 0x4b, 0xbc, 0x68, 0xb5, 0x56, 0x14, 0x92, - 0x6f, 0x49, 0xe0, 0x88, 0x7d, 0x24, 0x92, 0x2f, 0xf0, 0x32, 0xac, 0x28, 0xd8, 0xbf, 0x5e, 0x82, - 0xb9, 0x1e, 0x99, 0x3c, 0x12, 0x2a, 0x29, 0xab, 0x2f, 0x95, 0xd4, 0x82, 0x4c, 0x5e, 0xbf, 0x9e, - 0x90, 0x76, 0x25, 0x12, 0xd3, 0xc7, 0x32, 0xaf, 0x24, 0x7e, 0xdf, 0x2e, 0x02, 0xba, 0x56, 0x6b, - 0xa0, 0xa7, 0x93, 0x8b, 0xa1, 0xcd, 0x1e, 0xec, 0xff, 0x09, 0x9c, 0xab, 0x99, 0xb4, 0xbf, 0x56, - 0x82, 0x53, 0x6a, 0x08, 0xbf, 0x7d, 0x07, 0xee, 0x66, 0x7a, 0xe0, 0x8e, 0x40, 0xaf, 0x6b, 0xdf, - 0x80, 0x21, 0x1e, 0x63, 0xb0, 0x0f, 0xd6, 0xfb, 0x09, 0x33, 0x86, 0xaf, 0xe2, 0xf6, 0x8c, 0x38, - 0xbe, 0x3f, 0x68, 0xc1, 0x64, 0xc2, 0xd7, 0x0c, 0x61, 0xcd, 0x21, 0xf9, 0x41, 0xd8, 0xe3, 0x2c, - 0xc6, 0xfb, 0x3c, 0x0c, 0xec, 0xf8, 0x61, 0x94, 0x34, 0xfa, 0xb8, 0xea, 0x87, 0x11, 0x66, 0x10, - 0xfb, 0xf7, 0x2d, 0x18, 0xdc, 0x70, 0x5c, 0x2f, 0x92, 0x0a, 0x02, 0x2b, 0x47, 0x41, 0xd0, 0xcf, - 0x77, 0xa1, 0x97, 0x60, 0x88, 0x6c, 0x6d, 0x91, 0x46, 0x24, 0x66, 0x55, 0x46, 0x73, 0x18, 0x5a, - 0x66, 0xa5, 0x94, 0x17, 0x64, 0x8d, 0xf1, 0xbf, 0x58, 0x20, 0xa3, 0xdb, 0x50, 0x89, 0xdc, 0x36, - 0x59, 0x68, 0x36, 0x85, 0xda, 0xfc, 0x01, 0x22, 0x52, 0x6c, 0x48, 0x02, 0x38, 0xa6, 0x65, 0x7f, - 0xb1, 0x04, 0x10, 0x07, 0x67, 0xea, 0xf5, 0x89, 0x8b, 0x29, 0x85, 0xea, 0x85, 0x0c, 0x85, 0x2a, - 0x8a, 0x09, 0x66, 0x68, 0x53, 0xd5, 0x30, 0x95, 0xfb, 0x1a, 0xa6, 0x81, 0xc3, 0x0c, 0xd3, 0x12, - 0x4c, 0xc7, 0xc1, 0xa5, 0xcc, 0xd8, 0x7a, 0xec, 0xfa, 0xdc, 0x48, 0x02, 0x71, 0x1a, 0xdf, 0x26, - 0x70, 0x5e, 0xc5, 0xd8, 0x11, 0x37, 0x1a, 0xb3, 0xca, 0xd6, 0x15, 0xd4, 0x3d, 0xc6, 0x29, 0xd6, - 0x18, 0x97, 0x72, 0x35, 0xc6, 0x3f, 0x6d, 0xc1, 0xc9, 0x64, 0x3b, 0xcc, 0x85, 0xf9, 0x0b, 0x16, - 0x9c, 0x62, 0x7a, 0x73, 0xd6, 0x6a, 0x5a, 0x4b, 0xff, 0x62, 0x61, 0xdc, 0xa0, 0x9c, 0x1e, 0xc7, - 0x61, 0x43, 0xd6, 0xb2, 0x48, 0xe3, 0xec, 0x16, 0xed, 0xef, 0x2b, 0xc3, 0x4c, 0x5e, 0xc0, 0x21, - 0xe6, 0xb4, 0xe1, 0xdc, 0xad, 0xef, 0x92, 0x3b, 0xc2, 0x34, 0x3e, 0x76, 0xda, 0xe0, 0xc5, 0x58, - 0xc2, 0x93, 0xc9, 0x19, 0x4a, 0x7d, 0x26, 0x67, 0xd8, 0x81, 0xe9, 0x3b, 0x3b, 0xc4, 0xbb, 0xe9, - 0x85, 0x4e, 0xe4, 0x86, 0x5b, 0x2e, 0xd3, 0x31, 0xf3, 0x75, 0x23, 0x33, 0xba, 0x4e, 0xdf, 0x4e, - 0x22, 0xdc, 0x3f, 0x98, 0x3b, 0x6b, 0x14, 0xc4, 0x5d, 0xe6, 0x07, 0x09, 0x4e, 0x13, 0x4d, 0xe7, - 0xb6, 0x18, 0x78, 0xc8, 0xb9, 0x2d, 0xda, 0xae, 0xb0, 0x4c, 0x91, 0x16, 0xf9, 0xec, 0xf5, 0xb8, - 0xa6, 0x4a, 0xb1, 0x86, 0x61, 0x7f, 0xc1, 0x82, 0x33, 0xb9, 0xe9, 0x90, 0xd1, 0x45, 0x18, 0x71, - 0x3a, 0x2e, 0x17, 0xeb, 0x8b, 0x63, 0x97, 0x89, 0x8f, 0x6a, 0xab, 0x5c, 0xa8, 0xaf, 0xa0, 0xf4, - 0xb4, 0xdb, 0x75, 0xbd, 0x66, 0xf2, 0xb4, 0xbb, 0xe6, 0x7a, 0x4d, 0xcc, 0x20, 0xea, 0xf8, 0x2e, - 0xe7, 0x1d, 0xdf, 0xf6, 0x0f, 0x58, 0x20, 0x1c, 0x54, 0xfb, 0x38, 0xeb, 0x3f, 0x09, 0x63, 0x7b, - 0xe9, 0x7c, 0x59, 0xe7, 0xf3, 0x3d, 0x76, 0x45, 0x96, 0x2c, 0xc5, 0xc0, 0x19, 0xb9, 0xb1, 0x0c, - 0x5a, 0x76, 0x13, 0x04, 0xb4, 0x4a, 0x98, 0xd0, 0xba, 0x77, 0x6f, 0x9e, 0x07, 0x68, 0x32, 0x5c, - 0x96, 0x44, 0xb3, 0x64, 0xde, 0xe4, 0x55, 0x05, 0xc1, 0x1a, 0x96, 0xfd, 0x6f, 0x4b, 0x30, 0x2a, - 0xf3, 0x33, 0x75, 0xbd, 0x7e, 0x44, 0x4b, 0x87, 0x4a, 0xd8, 0x8a, 0x2e, 0x41, 0x85, 0xc9, 0x3e, - 0x6b, 0xb1, 0x44, 0x4e, 0x49, 0x1e, 0xd6, 0x24, 0x00, 0xc7, 0x38, 0x74, 0xd7, 0x85, 0xdd, 0x4d, - 0x86, 0x9e, 0x70, 0xa7, 0xac, 0xf3, 0x62, 0x2c, 0xe1, 0xe8, 0xe3, 0x30, 0xc5, 0xeb, 0x05, 0x7e, - 0xc7, 0xd9, 0xe6, 0xfa, 0x92, 0x41, 0x15, 0xa3, 0x62, 0x6a, 0x2d, 0x01, 0xbb, 0x7f, 0x30, 0x77, - 0x32, 0x59, 0xc6, 0x14, 0x81, 0x29, 0x2a, 0xcc, 0x2c, 0x8a, 0x37, 0x42, 0x4f, 0x8b, 0x94, 0x35, - 0x55, 0x0c, 0xc2, 0x3a, 0x9e, 0xfd, 0x19, 0x40, 0xe9, 0x4c, 0x55, 0xe8, 0x75, 0x6e, 0x0b, 0xeb, - 0x06, 0xa4, 0x59, 0xa4, 0x18, 0xd4, 0x23, 0x31, 0x48, 0x4f, 0x28, 0x5e, 0x0b, 0xab, 0xfa, 0xf6, - 0xff, 0x5b, 0x86, 0xa9, 0xa4, 0xef, 0x37, 0xba, 0x0a, 0x43, 0x9c, 0x55, 0x11, 0xe4, 0x0b, 0xec, - 0x4e, 0x34, 0x8f, 0x71, 0x76, 0x68, 0x0b, 0x6e, 0x47, 0xd4, 0x47, 0x6f, 0xc2, 0x68, 0xd3, 0xbf, - 0xe3, 0xdd, 0x71, 0x82, 0xe6, 0x42, 0x6d, 0x55, 0x2c, 0xe7, 0xcc, 0x87, 0x70, 0x35, 0x46, 0xd3, - 0xbd, 0xd0, 0x99, 0x8e, 0x35, 0x06, 0x61, 0x9d, 0x1c, 0xda, 0x60, 0xe1, 0xed, 0xb7, 0xdc, 0xed, - 0x35, 0xa7, 0x53, 0xe4, 0x18, 0xb1, 0x24, 0x91, 0x34, 0xca, 0xe3, 0x22, 0x06, 0x3e, 0x07, 0xe0, - 0x98, 0x10, 0xfa, 0x1c, 0x9c, 0x08, 0x73, 0xc4, 0xf3, 0x79, 0x89, 0x0b, 0x8b, 0x24, 0xd6, 0x8b, - 0x8f, 0xdc, 0x3b, 0x98, 0x3b, 0x91, 0x25, 0xc8, 0xcf, 0x6a, 0xc6, 0xfe, 0xd2, 0x49, 0x30, 0x36, - 0xb1, 0x91, 0xc7, 0xd6, 0x3a, 0xa2, 0x3c, 0xb6, 0x18, 0x46, 0x48, 0xbb, 0x13, 0xed, 0x57, 0xdd, - 0xa0, 0x28, 0x9b, 0xff, 0xb2, 0xc0, 0x49, 0xd3, 0x94, 0x10, 0xac, 0xe8, 0x64, 0x27, 0x1b, 0x2e, - 0x7f, 0x13, 0x93, 0x0d, 0x0f, 0x1c, 0x63, 0xb2, 0xe1, 0x75, 0x18, 0xde, 0x76, 0x23, 0x4c, 0x3a, - 0xbe, 0x78, 0x24, 0x64, 0xae, 0xc3, 0x2b, 0x1c, 0x25, 0x9d, 0xd6, 0x52, 0x00, 0xb0, 0x24, 0x82, - 0x5e, 0x57, 0x3b, 0x70, 0x28, 0xff, 0x21, 0x9f, 0x36, 0x90, 0xc8, 0xdc, 0x83, 0x22, 0xa5, 0xf0, - 0xf0, 0x83, 0xa6, 0x14, 0x5e, 0x91, 0x89, 0x80, 0x47, 0xf2, 0xbd, 0x98, 0x58, 0x9e, 0xdf, 0x1e, - 0xe9, 0x7f, 0x6f, 0xe9, 0xc9, 0x93, 0x2b, 0xf9, 0x27, 0x81, 0xca, 0x8b, 0xdc, 0x67, 0xca, 0xe4, - 0x1f, 0xb0, 0xe0, 0x54, 0x27, 0x2b, 0x8f, 0xb8, 0xb0, 0x25, 0x78, 0xa9, 0xef, 0x54, 0xe5, 0x46, - 0x83, 0x4c, 0x06, 0x97, 0x9d, 0x8c, 0x3e, 0xbb, 0x39, 0x3a, 0xd0, 0xc1, 0x66, 0x53, 0xe8, 0xb4, - 0x9f, 0xc8, 0xc9, 0xbd, 0x5c, 0x90, 0x71, 0x79, 0x23, 0x23, 0xcf, 0xef, 0x93, 0x79, 0x79, 0x7e, - 0xfb, 0xce, 0xee, 0xfb, 0xba, 0xca, 0xba, 0x3c, 0x9e, 0xbf, 0x94, 0x78, 0x4e, 0xe5, 0x9e, 0xb9, - 0x96, 0x5f, 0x57, 0xb9, 0x96, 0x0b, 0xc2, 0x10, 0xf3, 0x4c, 0xca, 0x3d, 0x33, 0x2c, 0x6b, 0x59, - 0x92, 0x27, 0x8f, 0x26, 0x4b, 0xb2, 0x71, 0xd5, 0xf0, 0x44, 0xbd, 0xcf, 0xf4, 0xb8, 0x6a, 0x0c, - 0xba, 0xc5, 0x97, 0x0d, 0xcf, 0x08, 0x3d, 0xfd, 0x40, 0x19, 0xa1, 0x6f, 0xe9, 0x19, 0x96, 0x51, - 0x8f, 0x14, 0xc2, 0x14, 0xa9, 0xcf, 0xbc, 0xca, 0xb7, 0xf4, 0x0b, 0xf0, 0x44, 0x3e, 0x5d, 0x75, - 0xcf, 0xa5, 0xe9, 0x66, 0x5e, 0x81, 0xa9, 0x7c, 0xcd, 0x27, 0x8f, 0x27, 0x5f, 0xf3, 0xa9, 0x23, - 0xcf, 0xd7, 0x7c, 0xfa, 0x18, 0xf2, 0x35, 0x3f, 0x72, 0x8c, 0xf9, 0x9a, 0x6f, 0x31, 0x03, 0x1c, - 0x1e, 0xe6, 0x47, 0x84, 0x4d, 0x7e, 0x3a, 0x27, 0x4a, 0x56, 0x3a, 0x16, 0x10, 0xff, 0x38, 0x05, - 0xc2, 0x31, 0xa9, 0x8c, 0x3c, 0xd0, 0x33, 0x0f, 0x21, 0x0f, 0xf4, 0x7a, 0x9c, 0x07, 0xfa, 0x4c, - 0xfe, 0x54, 0x67, 0xb8, 0x6c, 0xe4, 0x64, 0x7f, 0xbe, 0xa5, 0x67, 0x6d, 0x7e, 0xb4, 0x40, 0xcb, - 0x92, 0x25, 0xa8, 0x2c, 0xc8, 0xd5, 0xfc, 0x1a, 0xcf, 0xd5, 0xfc, 0x58, 0xfe, 0x49, 0x9e, 0xbc, - 0xee, 0x8c, 0x0c, 0xcd, 0xb4, 0x5f, 0x2a, 0x4c, 0x26, 0x0b, 0x10, 0x9d, 0xd3, 0x2f, 0x15, 0x67, - 0x33, 0xdd, 0x2f, 0x05, 0xc2, 0x31, 0x29, 0xfb, 0x87, 0x4a, 0x70, 0xae, 0x78, 0xbf, 0xc5, 0xd2, - 0xd7, 0x5a, 0xac, 0x74, 0x4e, 0x48, 0x5f, 0xf9, 0x9b, 0x2d, 0xc6, 0xea, 0x3b, 0xea, 0xdf, 0x15, - 0x98, 0x56, 0xbe, 0x1e, 0x2d, 0xb7, 0xb1, 0xbf, 0x1e, 0xbf, 0x7c, 0x95, 0x7f, 0x7c, 0x3d, 0x89, - 0x80, 0xd3, 0x75, 0xd0, 0x02, 0x4c, 0x1a, 0x85, 0xab, 0x55, 0xf1, 0x36, 0x53, 0xe2, 0xde, 0xba, - 0x09, 0xc6, 0x49, 0x7c, 0xfb, 0xcb, 0x16, 0x3c, 0x92, 0x93, 0xe8, 0xb0, 0xef, 0xa0, 0x76, 0x5b, - 0x30, 0xd9, 0x31, 0xab, 0xf6, 0x88, 0xc3, 0x69, 0xa4, 0x53, 0x54, 0x7d, 0x4d, 0x00, 0x70, 0x92, - 0xa8, 0xfd, 0xb3, 0x25, 0x38, 0x5b, 0x68, 0xbc, 0x88, 0x30, 0x9c, 0xde, 0x6e, 0x87, 0xce, 0x52, - 0x40, 0x9a, 0xc4, 0x8b, 0x5c, 0xa7, 0x55, 0xef, 0x90, 0x86, 0x26, 0x3f, 0x67, 0x56, 0x80, 0x57, - 0xd6, 0xea, 0x0b, 0x69, 0x0c, 0x9c, 0x53, 0x13, 0xad, 0x00, 0x4a, 0x43, 0xc4, 0x0c, 0xb3, 0x50, - 0xe3, 0x69, 0x7a, 0x38, 0xa3, 0x06, 0xfa, 0x30, 0x8c, 0x2b, 0xa3, 0x48, 0x6d, 0xc6, 0xd9, 0xc1, - 0x8e, 0x75, 0x00, 0x36, 0xf1, 0xd0, 0x65, 0x1e, 0xab, 0x5e, 0x64, 0x35, 0x10, 0xc2, 0xf6, 0x49, - 0x19, 0x88, 0x5e, 0x14, 0x63, 0x1d, 0x67, 0xf1, 0xe5, 0xdf, 0xf8, 0xc3, 0x73, 0xef, 0xfb, 0xed, - 0x3f, 0x3c, 0xf7, 0xbe, 0xdf, 0xfb, 0xc3, 0x73, 0xef, 0xfb, 0x9e, 0x7b, 0xe7, 0xac, 0xdf, 0xb8, - 0x77, 0xce, 0xfa, 0xed, 0x7b, 0xe7, 0xac, 0xdf, 0xbb, 0x77, 0xce, 0xfa, 0x83, 0x7b, 0xe7, 0xac, - 0x2f, 0xfe, 0xd1, 0xb9, 0xf7, 0x7d, 0x12, 0xc5, 0x61, 0x22, 0x2f, 0xd1, 0xd9, 0xb9, 0xb4, 0x77, - 0xf9, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x90, 0xf7, 0xba, 0xa3, 0x72, 0x08, 0x01, 0x00, + // 14260 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x69, 0x70, 0x24, 0xd7, + 0x79, 0x98, 0x7a, 0x06, 0xd7, 0x7c, 0xb8, 0xdf, 0x1e, 0xc4, 0x82, 0xdc, 0xc5, 0xb2, 0x29, 0x2d, + 0x97, 0x22, 0x89, 0xd5, 0xf2, 0x90, 0x68, 0x52, 0xa2, 0x05, 0x60, 0x80, 0x5d, 0x70, 0x17, 0xd8, + 0xe1, 0x1b, 0xec, 0xae, 0x24, 0x53, 0x2a, 0x35, 0x66, 0x1e, 0x80, 0x16, 0x66, 0xba, 0x87, 0xdd, + 0x3d, 0xd8, 0x05, 0x23, 0x57, 0x1c, 0xf9, 0x94, 0x8f, 0x94, 0x2a, 0xe5, 0x1c, 0x25, 0xbb, 0x5c, + 0x29, 0xc7, 0x89, 0xad, 0x28, 0x97, 0x23, 0xc7, 0x76, 0x2c, 0x27, 0x76, 0x6e, 0x27, 0x3f, 0x6c, + 0xc7, 0x55, 0xb1, 0x5c, 0xe5, 0x0a, 0x62, 0xaf, 0x53, 0xe5, 0x52, 0x55, 0x62, 0x3b, 0x71, 0xf2, + 0x23, 0x1b, 0x57, 0x9c, 0x7a, 0x67, 0xbf, 0xd7, 0xd7, 0x0c, 0x96, 0x58, 0x88, 0x52, 0xf1, 0xdf, + 0xcc, 0xfb, 0xbe, 0xf7, 0xbd, 0xd7, 0xef, 0xfc, 0xde, 0x77, 0xc2, 0x2b, 0xbb, 0x2f, 0x85, 0xf3, + 0xae, 0x7f, 0x69, 0xb7, 0xbb, 0x49, 0x02, 0x8f, 0x44, 0x24, 0xbc, 0xb4, 0x47, 0xbc, 0xa6, 0x1f, + 0x5c, 0x12, 0x00, 0xa7, 0xe3, 0x5e, 0x6a, 0xf8, 0x01, 0xb9, 0xb4, 0x77, 0xf9, 0xd2, 0x36, 0xf1, + 0x48, 0xe0, 0x44, 0xa4, 0x39, 0xdf, 0x09, 0xfc, 0xc8, 0x47, 0x88, 0xe3, 0xcc, 0x3b, 0x1d, 0x77, + 0x9e, 0xe2, 0xcc, 0xef, 0x5d, 0x9e, 0x7d, 0x76, 0xdb, 0x8d, 0x76, 0xba, 0x9b, 0xf3, 0x0d, 0xbf, + 0x7d, 0x69, 0xdb, 0xdf, 0xf6, 0x2f, 0x31, 0xd4, 0xcd, 0xee, 0x16, 0xfb, 0xc7, 0xfe, 0xb0, 0x5f, + 0x9c, 0xc4, 0xec, 0x0b, 0x71, 0x33, 0x6d, 0xa7, 0xb1, 0xe3, 0x7a, 0x24, 0xd8, 0xbf, 0xd4, 0xd9, + 0xdd, 0x66, 0xed, 0x06, 0x24, 0xf4, 0xbb, 0x41, 0x83, 0x24, 0x1b, 0x2e, 0xac, 0x15, 0x5e, 0x6a, + 0x93, 0xc8, 0xc9, 0xe8, 0xee, 0xec, 0xa5, 0xbc, 0x5a, 0x41, 0xd7, 0x8b, 0xdc, 0x76, 0xba, 0x99, + 0x0f, 0xf6, 0xaa, 0x10, 0x36, 0x76, 0x48, 0xdb, 0x49, 0xd5, 0x7b, 0x3e, 0xaf, 0x5e, 0x37, 0x72, + 0x5b, 0x97, 0x5c, 0x2f, 0x0a, 0xa3, 0x20, 0x59, 0xc9, 0xfe, 0x9a, 0x05, 0xe7, 0x17, 0x6e, 0xd7, + 0x97, 0x5b, 0x4e, 0x18, 0xb9, 0x8d, 0xc5, 0x96, 0xdf, 0xd8, 0xad, 0x47, 0x7e, 0x40, 0x6e, 0xf9, + 0xad, 0x6e, 0x9b, 0xd4, 0xd9, 0x40, 0xa0, 0x67, 0x60, 0x64, 0x8f, 0xfd, 0x5f, 0xad, 0xce, 0x58, + 0xe7, 0xad, 0x8b, 0x95, 0xc5, 0xa9, 0x5f, 0x3b, 0x98, 0x7b, 0xcf, 0xbd, 0x83, 0xb9, 0x91, 0x5b, + 0xa2, 0x1c, 0x2b, 0x0c, 0x74, 0x01, 0x86, 0xb6, 0xc2, 0x8d, 0xfd, 0x0e, 0x99, 0x29, 0x31, 0xdc, + 0x09, 0x81, 0x3b, 0xb4, 0x52, 0xa7, 0xa5, 0x58, 0x40, 0xd1, 0x25, 0xa8, 0x74, 0x9c, 0x20, 0x72, + 0x23, 0xd7, 0xf7, 0x66, 0xca, 0xe7, 0xad, 0x8b, 0x83, 0x8b, 0xd3, 0x02, 0xb5, 0x52, 0x93, 0x00, + 0x1c, 0xe3, 0xd0, 0x6e, 0x04, 0xc4, 0x69, 0xde, 0xf0, 0x5a, 0xfb, 0x33, 0x03, 0xe7, 0xad, 0x8b, + 0x23, 0x71, 0x37, 0xb0, 0x28, 0xc7, 0x0a, 0xc3, 0xfe, 0x62, 0x09, 0x46, 0x16, 0xb6, 0xb6, 0x5c, + 0xcf, 0x8d, 0xf6, 0xd1, 0x2d, 0x18, 0xf3, 0xfc, 0x26, 0x91, 0xff, 0xd9, 0x57, 0x8c, 0x3e, 0x77, + 0x7e, 0x3e, 0xbd, 0x94, 0xe6, 0xd7, 0x35, 0xbc, 0xc5, 0xa9, 0x7b, 0x07, 0x73, 0x63, 0x7a, 0x09, + 0x36, 0xe8, 0x20, 0x0c, 0xa3, 0x1d, 0xbf, 0xa9, 0xc8, 0x96, 0x18, 0xd9, 0xb9, 0x2c, 0xb2, 0xb5, + 0x18, 0x6d, 0x71, 0xf2, 0xde, 0xc1, 0xdc, 0xa8, 0x56, 0x80, 0x75, 0x22, 0x68, 0x13, 0x26, 0xe9, + 0x5f, 0x2f, 0x72, 0x15, 0xdd, 0x32, 0xa3, 0xfb, 0x44, 0x1e, 0x5d, 0x0d, 0x75, 0xf1, 0xc4, 0xbd, + 0x83, 0xb9, 0xc9, 0x44, 0x21, 0x4e, 0x12, 0xb4, 0xdf, 0x82, 0x89, 0x85, 0x28, 0x72, 0x1a, 0x3b, + 0xa4, 0xc9, 0x67, 0x10, 0xbd, 0x00, 0x03, 0x9e, 0xd3, 0x26, 0x62, 0x7e, 0xcf, 0x8b, 0x81, 0x1d, + 0x58, 0x77, 0xda, 0xe4, 0xfe, 0xc1, 0xdc, 0xd4, 0x4d, 0xcf, 0x7d, 0xb3, 0x2b, 0x56, 0x05, 0x2d, + 0xc3, 0x0c, 0x1b, 0x3d, 0x07, 0xd0, 0x24, 0x7b, 0x6e, 0x83, 0xd4, 0x9c, 0x68, 0x47, 0xcc, 0x37, + 0x12, 0x75, 0xa1, 0xaa, 0x20, 0x58, 0xc3, 0xb2, 0xef, 0x42, 0x65, 0x61, 0xcf, 0x77, 0x9b, 0x35, + 0xbf, 0x19, 0xa2, 0x5d, 0x98, 0xec, 0x04, 0x64, 0x8b, 0x04, 0xaa, 0x68, 0xc6, 0x3a, 0x5f, 0xbe, + 0x38, 0xfa, 0xdc, 0xc5, 0xcc, 0x8f, 0x35, 0x51, 0x97, 0xbd, 0x28, 0xd8, 0x5f, 0x7c, 0x44, 0xb4, + 0x37, 0x99, 0x80, 0xe2, 0x24, 0x65, 0xfb, 0x5f, 0x97, 0xe0, 0xd4, 0xc2, 0x5b, 0xdd, 0x80, 0x54, + 0xdd, 0x70, 0x37, 0xb9, 0xc2, 0x9b, 0x6e, 0xb8, 0xbb, 0x1e, 0x8f, 0x80, 0x5a, 0x5a, 0x55, 0x51, + 0x8e, 0x15, 0x06, 0x7a, 0x16, 0x86, 0xe9, 0xef, 0x9b, 0x78, 0x55, 0x7c, 0xf2, 0x09, 0x81, 0x3c, + 0x5a, 0x75, 0x22, 0xa7, 0xca, 0x41, 0x58, 0xe2, 0xa0, 0x35, 0x18, 0x6d, 0xb0, 0x0d, 0xb9, 0xbd, + 0xe6, 0x37, 0x09, 0x9b, 0xcc, 0xca, 0xe2, 0xd3, 0x14, 0x7d, 0x29, 0x2e, 0xbe, 0x7f, 0x30, 0x37, + 0xc3, 0xfb, 0x26, 0x48, 0x68, 0x30, 0xac, 0xd7, 0x47, 0xb6, 0xda, 0x5f, 0x03, 0x8c, 0x12, 0x64, + 0xec, 0xad, 0x8b, 0xda, 0x56, 0x19, 0x64, 0x5b, 0x65, 0x2c, 0x7b, 0x9b, 0xa0, 0xcb, 0x30, 0xb0, + 0xeb, 0x7a, 0xcd, 0x99, 0x21, 0x46, 0xeb, 0x2c, 0x9d, 0xf3, 0x6b, 0xae, 0xd7, 0xbc, 0x7f, 0x30, + 0x37, 0x6d, 0x74, 0x87, 0x16, 0x62, 0x86, 0x6a, 0xff, 0xa9, 0x05, 0x73, 0x0c, 0xb6, 0xe2, 0xb6, + 0x48, 0x8d, 0x04, 0xa1, 0x1b, 0x46, 0xc4, 0x8b, 0x8c, 0x01, 0x7d, 0x0e, 0x20, 0x24, 0x8d, 0x80, + 0x44, 0xda, 0x90, 0xaa, 0x85, 0x51, 0x57, 0x10, 0xac, 0x61, 0xd1, 0x03, 0x21, 0xdc, 0x71, 0x02, + 0xb6, 0xbe, 0xc4, 0xc0, 0xaa, 0x03, 0xa1, 0x2e, 0x01, 0x38, 0xc6, 0x31, 0x0e, 0x84, 0x72, 0xaf, + 0x03, 0x01, 0x7d, 0x04, 0x26, 0xe3, 0xc6, 0xc2, 0x8e, 0xd3, 0x90, 0x03, 0xc8, 0xb6, 0x4c, 0xdd, + 0x04, 0xe1, 0x24, 0xae, 0xfd, 0x77, 0x2d, 0xb1, 0x78, 0xe8, 0x57, 0xbf, 0xc3, 0xbf, 0xd5, 0xfe, + 0x45, 0x0b, 0x86, 0x17, 0x5d, 0xaf, 0xe9, 0x7a, 0xdb, 0xe8, 0xd3, 0x30, 0x42, 0xef, 0xa6, 0xa6, + 0x13, 0x39, 0xe2, 0xdc, 0xfb, 0x80, 0xb6, 0xb7, 0xd4, 0x55, 0x31, 0xdf, 0xd9, 0xdd, 0xa6, 0x05, + 0xe1, 0x3c, 0xc5, 0xa6, 0xbb, 0xed, 0xc6, 0xe6, 0x67, 0x48, 0x23, 0x5a, 0x23, 0x91, 0x13, 0x7f, + 0x4e, 0x5c, 0x86, 0x15, 0x55, 0x74, 0x0d, 0x86, 0x22, 0x27, 0xd8, 0x26, 0x91, 0x38, 0x00, 0x33, + 0x0f, 0x2a, 0x5e, 0x13, 0xd3, 0x1d, 0x49, 0xbc, 0x06, 0x89, 0xaf, 0x85, 0x0d, 0x56, 0x15, 0x0b, + 0x12, 0xf6, 0x8f, 0x0c, 0xc3, 0x99, 0xa5, 0xfa, 0x6a, 0xce, 0xba, 0xba, 0x00, 0x43, 0xcd, 0xc0, + 0xdd, 0x23, 0x81, 0x18, 0x67, 0x45, 0xa5, 0xca, 0x4a, 0xb1, 0x80, 0xa2, 0x97, 0x60, 0x8c, 0x5f, + 0x48, 0x57, 0x1d, 0xaf, 0xd9, 0x92, 0x43, 0x7c, 0x52, 0x60, 0x8f, 0xdd, 0xd2, 0x60, 0xd8, 0xc0, + 0x3c, 0xe4, 0xa2, 0xba, 0x90, 0xd8, 0x8c, 0x79, 0x97, 0xdd, 0xe7, 0x2d, 0x98, 0xe2, 0xcd, 0x2c, + 0x44, 0x51, 0xe0, 0x6e, 0x76, 0x23, 0x12, 0xce, 0x0c, 0xb2, 0x93, 0x6e, 0x29, 0x6b, 0xb4, 0x72, + 0x47, 0x60, 0xfe, 0x56, 0x82, 0x0a, 0x3f, 0x04, 0x67, 0x44, 0xbb, 0x53, 0x49, 0x30, 0x4e, 0x35, + 0x8b, 0xbe, 0xdb, 0x82, 0xd9, 0x86, 0xef, 0x45, 0x81, 0xdf, 0x6a, 0x91, 0xa0, 0xd6, 0xdd, 0x6c, + 0xb9, 0xe1, 0x0e, 0x5f, 0xa7, 0x98, 0x6c, 0xb1, 0x93, 0x20, 0x67, 0x0e, 0x15, 0x92, 0x98, 0xc3, + 0x73, 0xf7, 0x0e, 0xe6, 0x66, 0x97, 0x72, 0x49, 0xe1, 0x82, 0x66, 0xd0, 0x2e, 0x20, 0x7a, 0x95, + 0xd6, 0x23, 0x67, 0x9b, 0xc4, 0x8d, 0x0f, 0xf7, 0xdf, 0xf8, 0xe9, 0x7b, 0x07, 0x73, 0x68, 0x3d, + 0x45, 0x02, 0x67, 0x90, 0x45, 0x6f, 0xc2, 0x49, 0x5a, 0x9a, 0xfa, 0xd6, 0x91, 0xfe, 0x9b, 0x9b, + 0xb9, 0x77, 0x30, 0x77, 0x72, 0x3d, 0x83, 0x08, 0xce, 0x24, 0x8d, 0xbe, 0xcb, 0x82, 0x33, 0xf1, + 0xe7, 0x2f, 0xdf, 0xed, 0x38, 0x5e, 0x33, 0x6e, 0xb8, 0xd2, 0x7f, 0xc3, 0xf4, 0x4c, 0x3e, 0xb3, + 0x94, 0x47, 0x09, 0xe7, 0x37, 0x32, 0xbb, 0x04, 0xa7, 0x32, 0x57, 0x0b, 0x9a, 0x82, 0xf2, 0x2e, + 0xe1, 0x5c, 0x50, 0x05, 0xd3, 0x9f, 0xe8, 0x24, 0x0c, 0xee, 0x39, 0xad, 0xae, 0xd8, 0x28, 0x98, + 0xff, 0x79, 0xb9, 0xf4, 0x92, 0x65, 0xff, 0x9b, 0x32, 0x4c, 0x2e, 0xd5, 0x57, 0x1f, 0x68, 0x17, + 0xea, 0xd7, 0x50, 0xa9, 0xf0, 0x1a, 0x8a, 0x2f, 0xb5, 0x72, 0xee, 0xa5, 0xf6, 0x17, 0x33, 0xb6, + 0xd0, 0x00, 0xdb, 0x42, 0xdf, 0x96, 0xb3, 0x85, 0x8e, 0x78, 0xe3, 0xec, 0xe5, 0xac, 0xa2, 0x41, + 0x36, 0x99, 0x99, 0x1c, 0xcb, 0x75, 0xbf, 0xe1, 0xb4, 0x92, 0x47, 0xdf, 0x21, 0x97, 0xd2, 0xd1, + 0xcc, 0x63, 0x03, 0xc6, 0x96, 0x9c, 0x8e, 0xb3, 0xe9, 0xb6, 0xdc, 0xc8, 0x25, 0x21, 0x7a, 0x12, + 0xca, 0x4e, 0xb3, 0xc9, 0xb8, 0xad, 0xca, 0xe2, 0xa9, 0x7b, 0x07, 0x73, 0xe5, 0x85, 0x26, 0xbd, + 0xf6, 0x41, 0x61, 0xed, 0x63, 0x8a, 0x81, 0xde, 0x0f, 0x03, 0xcd, 0xc0, 0xef, 0xcc, 0x94, 0x18, + 0x26, 0xdd, 0x75, 0x03, 0xd5, 0xc0, 0xef, 0x24, 0x50, 0x19, 0x8e, 0xfd, 0xab, 0x25, 0x78, 0x6c, + 0x89, 0x74, 0x76, 0x56, 0xea, 0x39, 0xe7, 0xf7, 0x45, 0x18, 0x69, 0xfb, 0x9e, 0x1b, 0xf9, 0x41, + 0x28, 0x9a, 0x66, 0x2b, 0x62, 0x4d, 0x94, 0x61, 0x05, 0x45, 0xe7, 0x61, 0xa0, 0x13, 0x33, 0x95, + 0x63, 0x92, 0x21, 0x65, 0xec, 0x24, 0x83, 0x50, 0x8c, 0x6e, 0x48, 0x02, 0xb1, 0x62, 0x14, 0xc6, + 0xcd, 0x90, 0x04, 0x98, 0x41, 0xe2, 0x9b, 0x99, 0xde, 0xd9, 0xe2, 0x84, 0x4e, 0xdc, 0xcc, 0x14, + 0x82, 0x35, 0x2c, 0x54, 0x83, 0x4a, 0x98, 0x98, 0xd9, 0xbe, 0xb6, 0xe9, 0x38, 0xbb, 0xba, 0xd5, + 0x4c, 0xc6, 0x44, 0x8c, 0x1b, 0x65, 0xa8, 0xe7, 0xd5, 0xfd, 0xd5, 0x12, 0x20, 0x3e, 0x84, 0xdf, + 0x64, 0x03, 0x77, 0x33, 0x3d, 0x70, 0xfd, 0x6f, 0x89, 0xa3, 0x1a, 0xbd, 0xff, 0x65, 0xc1, 0x63, + 0x4b, 0xae, 0xd7, 0x24, 0x41, 0xce, 0x02, 0x7c, 0x38, 0x6f, 0xd9, 0xc3, 0x31, 0x0d, 0xc6, 0x12, + 0x1b, 0x38, 0x82, 0x25, 0x66, 0xff, 0xb1, 0x05, 0x88, 0x7f, 0xf6, 0x3b, 0xee, 0x63, 0x6f, 0xa6, + 0x3f, 0xf6, 0x08, 0x96, 0x85, 0x7d, 0x1d, 0x26, 0x96, 0x5a, 0x2e, 0xf1, 0xa2, 0xd5, 0xda, 0x92, + 0xef, 0x6d, 0xb9, 0xdb, 0xe8, 0x65, 0x98, 0x88, 0xdc, 0x36, 0xf1, 0xbb, 0x51, 0x9d, 0x34, 0x7c, + 0x8f, 0xbd, 0x24, 0xad, 0x8b, 0x83, 0x8b, 0xe8, 0xde, 0xc1, 0xdc, 0xc4, 0x86, 0x01, 0xc1, 0x09, + 0x4c, 0xfb, 0x77, 0xe9, 0xf8, 0xf9, 0xed, 0x8e, 0xef, 0x11, 0x2f, 0x5a, 0xf2, 0xbd, 0x26, 0x97, + 0x38, 0xbc, 0x0c, 0x03, 0x11, 0x1d, 0x0f, 0x3e, 0x76, 0x17, 0xe4, 0x46, 0xa1, 0xa3, 0x70, 0xff, + 0x60, 0xee, 0x74, 0xba, 0x06, 0x1b, 0x27, 0x56, 0x07, 0x7d, 0x1b, 0x0c, 0x85, 0x91, 0x13, 0x75, + 0x43, 0x31, 0x9a, 0x8f, 0xcb, 0xd1, 0xac, 0xb3, 0xd2, 0xfb, 0x07, 0x73, 0x93, 0xaa, 0x1a, 0x2f, + 0xc2, 0xa2, 0x02, 0x7a, 0x0a, 0x86, 0xdb, 0x24, 0x0c, 0x9d, 0x6d, 0x79, 0x1b, 0x4e, 0x8a, 0xba, + 0xc3, 0x6b, 0xbc, 0x18, 0x4b, 0x38, 0x7a, 0x02, 0x06, 0x49, 0x10, 0xf8, 0x81, 0xd8, 0xa3, 0xe3, + 0x02, 0x71, 0x70, 0x99, 0x16, 0x62, 0x0e, 0xb3, 0x7f, 0xc3, 0x82, 0x49, 0xd5, 0x57, 0xde, 0xd6, + 0x31, 0xbc, 0x0a, 0x3e, 0x01, 0xd0, 0x90, 0x1f, 0x18, 0xb2, 0xdb, 0x63, 0xf4, 0xb9, 0x0b, 0x99, + 0x17, 0x75, 0x6a, 0x18, 0x63, 0xca, 0xaa, 0x28, 0xc4, 0x1a, 0x35, 0xfb, 0x9f, 0x59, 0x70, 0x22, + 0xf1, 0x45, 0xd7, 0xdd, 0x30, 0x42, 0x6f, 0xa4, 0xbe, 0x6a, 0xbe, 0xbf, 0xaf, 0xa2, 0xb5, 0xd9, + 0x37, 0xa9, 0xa5, 0x2c, 0x4b, 0xb4, 0x2f, 0xba, 0x0a, 0x83, 0x6e, 0x44, 0xda, 0xf2, 0x63, 0x9e, + 0x28, 0xfc, 0x18, 0xde, 0xab, 0x78, 0x46, 0x56, 0x69, 0x4d, 0xcc, 0x09, 0xd8, 0xbf, 0x5a, 0x86, + 0x0a, 0x5f, 0xb6, 0x6b, 0x4e, 0xe7, 0x18, 0xe6, 0xe2, 0x69, 0xa8, 0xb8, 0xed, 0x76, 0x37, 0x72, + 0x36, 0xc5, 0x71, 0x3e, 0xc2, 0xb7, 0xd6, 0xaa, 0x2c, 0xc4, 0x31, 0x1c, 0xad, 0xc2, 0x00, 0xeb, + 0x0a, 0xff, 0xca, 0x27, 0xb3, 0xbf, 0x52, 0xf4, 0x7d, 0xbe, 0xea, 0x44, 0x0e, 0xe7, 0xa4, 0xd4, + 0x3d, 0x42, 0x8b, 0x30, 0x23, 0x81, 0x1c, 0x80, 0x4d, 0xd7, 0x73, 0x82, 0x7d, 0x5a, 0x36, 0x53, + 0x66, 0x04, 0x9f, 0x2d, 0x26, 0xb8, 0xa8, 0xf0, 0x39, 0x59, 0xf5, 0x61, 0x31, 0x00, 0x6b, 0x44, + 0x67, 0x3f, 0x04, 0x15, 0x85, 0x7c, 0x18, 0x86, 0x68, 0xf6, 0x23, 0x30, 0x99, 0x68, 0xab, 0x57, + 0xf5, 0x31, 0x9d, 0x9f, 0xfa, 0x25, 0x76, 0x64, 0x88, 0x5e, 0x2f, 0x7b, 0x7b, 0xe2, 0xc8, 0x7d, + 0x0b, 0x4e, 0xb6, 0x32, 0x4e, 0x32, 0x31, 0xaf, 0xfd, 0x9f, 0x7c, 0x8f, 0x89, 0xcf, 0x3e, 0x99, + 0x05, 0xc5, 0x99, 0x6d, 0x50, 0x1e, 0xc1, 0xef, 0xd0, 0x0d, 0xe2, 0xb4, 0x74, 0x76, 0xfb, 0x86, + 0x28, 0xc3, 0x0a, 0x4a, 0xcf, 0xbb, 0x93, 0xaa, 0xf3, 0xd7, 0xc8, 0x7e, 0x9d, 0xb4, 0x48, 0x23, + 0xf2, 0x83, 0x6f, 0x68, 0xf7, 0xcf, 0xf2, 0xd1, 0xe7, 0xc7, 0xe5, 0xa8, 0x20, 0x50, 0xbe, 0x46, + 0xf6, 0xf9, 0x54, 0xe8, 0x5f, 0x57, 0x2e, 0xfc, 0xba, 0x9f, 0xb5, 0x60, 0x5c, 0x7d, 0xdd, 0x31, + 0x9c, 0x0b, 0x8b, 0xe6, 0xb9, 0x70, 0xb6, 0x70, 0x81, 0xe7, 0x9c, 0x08, 0x5f, 0x2d, 0xc1, 0x19, + 0x85, 0x43, 0xdf, 0x06, 0xfc, 0x8f, 0x58, 0x55, 0x97, 0xa0, 0xe2, 0x29, 0xa9, 0x95, 0x65, 0x8a, + 0x8b, 0x62, 0x99, 0x55, 0x8c, 0x43, 0x59, 0x3c, 0x2f, 0x16, 0x2d, 0x8d, 0xe9, 0xe2, 0x5c, 0x21, + 0xba, 0x5d, 0x84, 0x72, 0xd7, 0x6d, 0x8a, 0x0b, 0xe6, 0x03, 0x72, 0xb4, 0x6f, 0xae, 0x56, 0xef, + 0x1f, 0xcc, 0x3d, 0x9e, 0xa7, 0x4a, 0xa0, 0x37, 0x5b, 0x38, 0x7f, 0x73, 0xb5, 0x8a, 0x69, 0x65, + 0xb4, 0x00, 0x93, 0x52, 0x5b, 0x72, 0x8b, 0xb2, 0x5b, 0xbe, 0x27, 0xee, 0x21, 0x25, 0x93, 0xc5, + 0x26, 0x18, 0x27, 0xf1, 0x51, 0x15, 0xa6, 0x76, 0xbb, 0x9b, 0xa4, 0x45, 0x22, 0xfe, 0xc1, 0xd7, + 0x08, 0x97, 0x58, 0x56, 0xe2, 0x97, 0xd9, 0xb5, 0x04, 0x1c, 0xa7, 0x6a, 0xd8, 0x7f, 0xce, 0xee, + 0x03, 0x31, 0x7a, 0xb5, 0xc0, 0xa7, 0x0b, 0x8b, 0x52, 0xff, 0x46, 0x2e, 0xe7, 0x7e, 0x56, 0xc5, + 0x35, 0xb2, 0xbf, 0xe1, 0x53, 0xce, 0x3c, 0x7b, 0x55, 0x18, 0x6b, 0x7e, 0xa0, 0x70, 0xcd, 0xff, + 0x5c, 0x09, 0x4e, 0xa9, 0x11, 0x30, 0x98, 0xc0, 0x6f, 0xf6, 0x31, 0xb8, 0x0c, 0xa3, 0x4d, 0xb2, + 0xe5, 0x74, 0x5b, 0x91, 0x12, 0x9f, 0x0f, 0x72, 0x15, 0x4a, 0x35, 0x2e, 0xc6, 0x3a, 0xce, 0x21, + 0x86, 0xed, 0x7f, 0x8f, 0xb2, 0x8b, 0x38, 0x72, 0xe8, 0x1a, 0x57, 0xbb, 0xc6, 0xca, 0xdd, 0x35, + 0x4f, 0xc0, 0xa0, 0xdb, 0xa6, 0x8c, 0x59, 0xc9, 0xe4, 0xb7, 0x56, 0x69, 0x21, 0xe6, 0x30, 0xf4, + 0x3e, 0x18, 0x6e, 0xf8, 0xed, 0xb6, 0xe3, 0x35, 0xd9, 0x95, 0x57, 0x59, 0x1c, 0xa5, 0xbc, 0xdb, + 0x12, 0x2f, 0xc2, 0x12, 0x86, 0x1e, 0x83, 0x01, 0x27, 0xd8, 0xe6, 0x32, 0x8c, 0xca, 0xe2, 0x08, + 0x6d, 0x69, 0x21, 0xd8, 0x0e, 0x31, 0x2b, 0xa5, 0x4f, 0xb0, 0x3b, 0x7e, 0xb0, 0xeb, 0x7a, 0xdb, + 0x55, 0x37, 0x10, 0x5b, 0x42, 0xdd, 0x85, 0xb7, 0x15, 0x04, 0x6b, 0x58, 0x68, 0x05, 0x06, 0x3b, + 0x7e, 0x10, 0x85, 0x33, 0x43, 0x6c, 0xb8, 0x1f, 0xcf, 0x39, 0x88, 0xf8, 0xd7, 0xd6, 0xfc, 0x20, + 0x8a, 0x3f, 0x80, 0xfe, 0x0b, 0x31, 0xaf, 0x8e, 0xae, 0xc3, 0x30, 0xf1, 0xf6, 0x56, 0x02, 0xbf, + 0x3d, 0x73, 0x22, 0x9f, 0xd2, 0x32, 0x47, 0xe1, 0xcb, 0x2c, 0xe6, 0x51, 0x45, 0x31, 0x96, 0x24, + 0xd0, 0xb7, 0x41, 0x99, 0x78, 0x7b, 0x33, 0xc3, 0x8c, 0xd2, 0x6c, 0x0e, 0xa5, 0x5b, 0x4e, 0x10, + 0x9f, 0xf9, 0xcb, 0xde, 0x1e, 0xa6, 0x75, 0xd0, 0xc7, 0xa1, 0x22, 0x0f, 0x8c, 0x50, 0x08, 0xeb, + 0x32, 0x17, 0xac, 0x3c, 0x66, 0x30, 0x79, 0xb3, 0xeb, 0x06, 0xa4, 0x4d, 0xbc, 0x28, 0x8c, 0x4f, + 0x48, 0x09, 0x0d, 0x71, 0x4c, 0x0d, 0x7d, 0x5c, 0x4a, 0x88, 0xd7, 0xfc, 0xae, 0x17, 0x85, 0x33, + 0x15, 0xd6, 0xbd, 0x4c, 0xdd, 0xdd, 0xad, 0x18, 0x2f, 0x29, 0x42, 0xe6, 0x95, 0xb1, 0x41, 0x0a, + 0x7d, 0x12, 0xc6, 0xf9, 0x7f, 0xae, 0x01, 0x0b, 0x67, 0x4e, 0x31, 0xda, 0xe7, 0xf3, 0x69, 0x73, + 0xc4, 0xc5, 0x53, 0x82, 0xf8, 0xb8, 0x5e, 0x1a, 0x62, 0x93, 0x1a, 0xc2, 0x30, 0xde, 0x72, 0xf7, + 0x88, 0x47, 0xc2, 0xb0, 0x16, 0xf8, 0x9b, 0x64, 0x06, 0xd8, 0xc0, 0x9c, 0xc9, 0xd6, 0x98, 0xf9, + 0x9b, 0x64, 0x71, 0x9a, 0xd2, 0xbc, 0xae, 0xd7, 0xc1, 0x26, 0x09, 0x74, 0x13, 0x26, 0xe8, 0x8b, + 0xcd, 0x8d, 0x89, 0x8e, 0xf6, 0x22, 0xca, 0xde, 0x55, 0xd8, 0xa8, 0x84, 0x13, 0x44, 0xd0, 0x0d, + 0x18, 0x0b, 0x23, 0x27, 0x88, 0xba, 0x1d, 0x4e, 0xf4, 0x74, 0x2f, 0xa2, 0x4c, 0xe1, 0x5a, 0xd7, + 0xaa, 0x60, 0x83, 0x00, 0x7a, 0x0d, 0x2a, 0x2d, 0x77, 0x8b, 0x34, 0xf6, 0x1b, 0x2d, 0x32, 0x33, + 0xc6, 0xa8, 0x65, 0x1e, 0x2a, 0xd7, 0x25, 0x12, 0xe7, 0x73, 0xd5, 0x5f, 0x1c, 0x57, 0x47, 0xb7, + 0xe0, 0x74, 0x44, 0x82, 0xb6, 0xeb, 0x39, 0xf4, 0x30, 0x10, 0x4f, 0x2b, 0xa6, 0xc8, 0x1c, 0x67, + 0xbb, 0xed, 0x9c, 0x98, 0x8d, 0xd3, 0x1b, 0x99, 0x58, 0x38, 0xa7, 0x36, 0xba, 0x0b, 0x33, 0x19, + 0x10, 0xbf, 0xe5, 0x36, 0xf6, 0x67, 0x4e, 0x32, 0xca, 0x1f, 0x16, 0x94, 0x67, 0x36, 0x72, 0xf0, + 0xee, 0x17, 0xc0, 0x70, 0x2e, 0x75, 0x74, 0x03, 0x26, 0xd9, 0x09, 0x54, 0xeb, 0xb6, 0x5a, 0xa2, + 0xc1, 0x09, 0xd6, 0xe0, 0xfb, 0xe4, 0x7d, 0xbc, 0x6a, 0x82, 0xef, 0x1f, 0xcc, 0x41, 0xfc, 0x0f, + 0x27, 0x6b, 0xa3, 0x4d, 0xa6, 0x33, 0xeb, 0x06, 0x6e, 0xb4, 0x4f, 0xcf, 0x0d, 0x72, 0x37, 0x9a, + 0x99, 0x2c, 0x94, 0x57, 0xe8, 0xa8, 0x4a, 0xb1, 0xa6, 0x17, 0xe2, 0x24, 0x41, 0x7a, 0xa4, 0x86, + 0x51, 0xd3, 0xf5, 0x66, 0xa6, 0xf8, 0xbb, 0x44, 0x9e, 0x48, 0x75, 0x5a, 0x88, 0x39, 0x8c, 0xe9, + 0xcb, 0xe8, 0x8f, 0x1b, 0xf4, 0xe6, 0x9a, 0x66, 0x88, 0xb1, 0xbe, 0x4c, 0x02, 0x70, 0x8c, 0x43, + 0x99, 0xc9, 0x28, 0xda, 0x9f, 0x41, 0x0c, 0x55, 0x1d, 0x2c, 0x1b, 0x1b, 0x1f, 0xc7, 0xb4, 0xdc, + 0xde, 0x84, 0x09, 0x75, 0x10, 0xb2, 0x31, 0x41, 0x73, 0x30, 0xc8, 0xd8, 0x27, 0x21, 0x5d, 0xab, + 0xd0, 0x2e, 0x30, 0xd6, 0x0a, 0xf3, 0x72, 0xd6, 0x05, 0xf7, 0x2d, 0xb2, 0xb8, 0x1f, 0x11, 0xfe, + 0xa6, 0x2f, 0x6b, 0x5d, 0x90, 0x00, 0x1c, 0xe3, 0xd8, 0xff, 0x8f, 0xb3, 0xa1, 0xf1, 0x69, 0xdb, + 0xc7, 0xfd, 0xf2, 0x0c, 0x8c, 0xec, 0xf8, 0x61, 0x44, 0xb1, 0x59, 0x1b, 0x83, 0x31, 0xe3, 0x79, + 0x55, 0x94, 0x63, 0x85, 0x81, 0x5e, 0x81, 0xf1, 0x86, 0xde, 0x80, 0xb8, 0x1c, 0xd5, 0x31, 0x62, + 0xb4, 0x8e, 0x4d, 0x5c, 0xf4, 0x12, 0x8c, 0x30, 0x1b, 0x90, 0x86, 0xdf, 0x12, 0x5c, 0x9b, 0xbc, + 0xe1, 0x47, 0x6a, 0xa2, 0xfc, 0xbe, 0xf6, 0x1b, 0x2b, 0x6c, 0x74, 0x01, 0x86, 0x68, 0x17, 0x56, + 0x6b, 0xe2, 0x5a, 0x52, 0x82, 0xa2, 0xab, 0xac, 0x14, 0x0b, 0xa8, 0xfd, 0x57, 0x4a, 0xda, 0x28, + 0xd3, 0xf7, 0x30, 0x41, 0x35, 0x18, 0xbe, 0xe3, 0xb8, 0x91, 0xeb, 0x6d, 0x0b, 0xfe, 0xe3, 0xa9, + 0xc2, 0x3b, 0x8a, 0x55, 0xba, 0xcd, 0x2b, 0xf0, 0x5b, 0x54, 0xfc, 0xc1, 0x92, 0x0c, 0xa5, 0x18, + 0x74, 0x3d, 0x8f, 0x52, 0x2c, 0xf5, 0x4b, 0x11, 0xf3, 0x0a, 0x9c, 0xa2, 0xf8, 0x83, 0x25, 0x19, + 0xf4, 0x06, 0x80, 0xdc, 0x61, 0xa4, 0x29, 0x6c, 0x2f, 0x9e, 0xe9, 0x4d, 0x74, 0x43, 0xd5, 0x59, + 0x9c, 0xa0, 0x77, 0x74, 0xfc, 0x1f, 0x6b, 0xf4, 0xec, 0x88, 0xf1, 0x69, 0xe9, 0xce, 0xa0, 0xef, + 0xa0, 0x4b, 0xdc, 0x09, 0x22, 0xd2, 0x5c, 0x88, 0xc4, 0xe0, 0xbc, 0xbf, 0xbf, 0x47, 0xca, 0x86, + 0xdb, 0x26, 0xfa, 0x76, 0x10, 0x44, 0x70, 0x4c, 0xcf, 0xfe, 0x85, 0x32, 0xcc, 0xe4, 0x75, 0x97, + 0x2e, 0x3a, 0x72, 0xd7, 0x8d, 0x96, 0x28, 0x7b, 0x65, 0x99, 0x8b, 0x6e, 0x59, 0x94, 0x63, 0x85, + 0x41, 0x67, 0x3f, 0x74, 0xb7, 0xe5, 0x1b, 0x73, 0x30, 0x9e, 0xfd, 0x3a, 0x2b, 0xc5, 0x02, 0x4a, + 0xf1, 0x02, 0xe2, 0x84, 0xc2, 0xb8, 0x47, 0x5b, 0x25, 0x98, 0x95, 0x62, 0x01, 0xd5, 0xa5, 0x5d, + 0x03, 0x3d, 0xa4, 0x5d, 0xc6, 0x10, 0x0d, 0x1e, 0xed, 0x10, 0xa1, 0x4f, 0x01, 0x6c, 0xb9, 0x9e, + 0x1b, 0xee, 0x30, 0xea, 0x43, 0x87, 0xa6, 0xae, 0x98, 0xb3, 0x15, 0x45, 0x05, 0x6b, 0x14, 0xd1, + 0x8b, 0x30, 0xaa, 0x36, 0xe0, 0x6a, 0x95, 0x69, 0x3a, 0x35, 0xcb, 0x91, 0xf8, 0x34, 0xaa, 0x62, + 0x1d, 0xcf, 0xfe, 0x4c, 0x72, 0xbd, 0x88, 0x1d, 0xa0, 0x8d, 0xaf, 0xd5, 0xef, 0xf8, 0x96, 0x8a, + 0xc7, 0xd7, 0xfe, 0x7a, 0x19, 0x26, 0x8d, 0xc6, 0xba, 0x61, 0x1f, 0x67, 0xd6, 0x15, 0x7a, 0x80, + 0x3b, 0x11, 0x11, 0xfb, 0xcf, 0xee, 0xbd, 0x55, 0xf4, 0x43, 0x9e, 0xee, 0x00, 0x5e, 0x1f, 0x7d, + 0x0a, 0x2a, 0x2d, 0x27, 0x64, 0x92, 0x33, 0x22, 0xf6, 0x5d, 0x3f, 0xc4, 0xe2, 0x87, 0x89, 0x13, + 0x46, 0xda, 0xad, 0xc9, 0x69, 0xc7, 0x24, 0xe9, 0x4d, 0x43, 0xf9, 0x13, 0x69, 0x3d, 0xa6, 0x3a, + 0x41, 0x99, 0x98, 0x7d, 0xcc, 0x61, 0xe8, 0x25, 0x18, 0x0b, 0x08, 0x5b, 0x15, 0x4b, 0x94, 0x9b, + 0x63, 0xcb, 0x6c, 0x30, 0x66, 0xfb, 0xb0, 0x06, 0xc3, 0x06, 0x66, 0xfc, 0x36, 0x18, 0x2a, 0x78, + 0x1b, 0x3c, 0x05, 0xc3, 0xec, 0x87, 0x5a, 0x01, 0x6a, 0x36, 0x56, 0x79, 0x31, 0x96, 0xf0, 0xe4, + 0x82, 0x19, 0xe9, 0x6f, 0xc1, 0xd0, 0xd7, 0x87, 0x58, 0xd4, 0x4c, 0xcb, 0x3c, 0xc2, 0x4f, 0x39, + 0xb1, 0xe4, 0xb1, 0x84, 0xd9, 0xef, 0x87, 0x89, 0xaa, 0x43, 0xda, 0xbe, 0xb7, 0xec, 0x35, 0x3b, + 0xbe, 0xeb, 0x45, 0x68, 0x06, 0x06, 0xd8, 0x25, 0xc2, 0x8f, 0x80, 0x01, 0xda, 0x10, 0x66, 0x25, + 0xf6, 0x36, 0x9c, 0xaa, 0xfa, 0x77, 0xbc, 0x3b, 0x4e, 0xd0, 0x5c, 0xa8, 0xad, 0x6a, 0xef, 0xeb, + 0x75, 0xf9, 0xbe, 0xe3, 0x46, 0x5b, 0x99, 0x47, 0xaf, 0x56, 0x93, 0xb3, 0xb5, 0x2b, 0x6e, 0x8b, + 0xe4, 0x48, 0x41, 0xfe, 0x7a, 0xc9, 0x68, 0x29, 0xc6, 0x57, 0x5a, 0x2d, 0x2b, 0x57, 0xab, 0xf5, + 0x3a, 0x8c, 0x6c, 0xb9, 0xa4, 0xd5, 0xc4, 0x64, 0x4b, 0xac, 0xc4, 0x27, 0xf3, 0xed, 0x50, 0x56, + 0x28, 0xa6, 0x94, 0x7a, 0xf1, 0xd7, 0xe1, 0x8a, 0xa8, 0x8c, 0x15, 0x19, 0xb4, 0x0b, 0x53, 0xf2, + 0xc1, 0x20, 0xa1, 0x62, 0x5d, 0x3e, 0x55, 0xf4, 0x0a, 0x31, 0x89, 0x9f, 0xbc, 0x77, 0x30, 0x37, + 0x85, 0x13, 0x64, 0x70, 0x8a, 0x30, 0x7d, 0x0e, 0xb6, 0xe9, 0x09, 0x3c, 0xc0, 0x86, 0x9f, 0x3d, + 0x07, 0xd9, 0xcb, 0x96, 0x95, 0xda, 0x3f, 0x6e, 0xc1, 0x23, 0xa9, 0x91, 0x11, 0x2f, 0xfc, 0x23, + 0x9e, 0x85, 0xe4, 0x8b, 0xbb, 0xd4, 0xfb, 0xc5, 0x6d, 0xff, 0x3d, 0x0b, 0x4e, 0x2e, 0xb7, 0x3b, + 0xd1, 0x7e, 0xd5, 0x35, 0x55, 0x50, 0x1f, 0x82, 0xa1, 0x36, 0x69, 0xba, 0xdd, 0xb6, 0x98, 0xb9, + 0x39, 0x79, 0x4a, 0xad, 0xb1, 0xd2, 0xfb, 0x07, 0x73, 0xe3, 0xf5, 0xc8, 0x0f, 0x9c, 0x6d, 0xc2, + 0x0b, 0xb0, 0x40, 0x67, 0x67, 0xbd, 0xfb, 0x16, 0xb9, 0xee, 0xb6, 0x5d, 0x69, 0x57, 0x54, 0x28, + 0xb3, 0x9b, 0x97, 0x03, 0x3a, 0xff, 0x7a, 0xd7, 0xf1, 0x22, 0x37, 0xda, 0x17, 0xda, 0x23, 0x49, + 0x04, 0xc7, 0xf4, 0xec, 0xaf, 0x59, 0x30, 0x29, 0xd7, 0xfd, 0x42, 0xb3, 0x19, 0x90, 0x30, 0x44, + 0xb3, 0x50, 0x72, 0x3b, 0xa2, 0x97, 0x20, 0x7a, 0x59, 0x5a, 0xad, 0xe1, 0x92, 0xdb, 0x91, 0x6c, + 0x19, 0x3b, 0x08, 0xcb, 0xa6, 0x22, 0xed, 0xaa, 0x28, 0xc7, 0x0a, 0x03, 0x5d, 0x84, 0x11, 0xcf, + 0x6f, 0x72, 0xdb, 0x2e, 0x7e, 0xa5, 0xb1, 0x05, 0xb6, 0x2e, 0xca, 0xb0, 0x82, 0xa2, 0x1a, 0x54, + 0xb8, 0xd9, 0x53, 0xbc, 0x68, 0xfb, 0x32, 0x9e, 0x62, 0x5f, 0xb6, 0x21, 0x6b, 0xe2, 0x98, 0x88, + 0xfd, 0x2b, 0x16, 0x8c, 0xc9, 0x2f, 0xeb, 0x93, 0xe7, 0xa4, 0x5b, 0x2b, 0xe6, 0x37, 0xe3, 0xad, + 0x45, 0x79, 0x46, 0x06, 0x31, 0x58, 0xc5, 0xf2, 0xa1, 0x58, 0xc5, 0xcb, 0x30, 0xea, 0x74, 0x3a, + 0x35, 0x93, 0xcf, 0x64, 0x4b, 0x69, 0x21, 0x2e, 0xc6, 0x3a, 0x8e, 0xfd, 0x63, 0x25, 0x98, 0x90, + 0x5f, 0x50, 0xef, 0x6e, 0x86, 0x24, 0x42, 0x1b, 0x50, 0x71, 0xf8, 0x2c, 0x11, 0xb9, 0xc8, 0x9f, + 0xc8, 0x96, 0x23, 0x18, 0x53, 0x1a, 0x5f, 0xf8, 0x0b, 0xb2, 0x36, 0x8e, 0x09, 0xa1, 0x16, 0x4c, + 0x7b, 0x7e, 0xc4, 0x0e, 0x7f, 0x05, 0x2f, 0x52, 0xed, 0x24, 0xa9, 0x9f, 0x11, 0xd4, 0xa7, 0xd7, + 0x93, 0x54, 0x70, 0x9a, 0x30, 0x5a, 0x96, 0xb2, 0x99, 0x72, 0xbe, 0x30, 0x40, 0x9f, 0xb8, 0x6c, + 0xd1, 0x8c, 0xfd, 0xcb, 0x16, 0x54, 0x24, 0xda, 0x71, 0x68, 0xf1, 0xd6, 0x60, 0x38, 0x64, 0x93, + 0x20, 0x87, 0xc6, 0x2e, 0xea, 0x38, 0x9f, 0xaf, 0xf8, 0x4e, 0xe3, 0xff, 0x43, 0x2c, 0x69, 0x30, + 0xd1, 0xbc, 0xea, 0xfe, 0x3b, 0x44, 0x34, 0xaf, 0xfa, 0x93, 0x73, 0x29, 0xfd, 0x21, 0xeb, 0xb3, + 0x26, 0xeb, 0xa2, 0xac, 0x57, 0x27, 0x20, 0x5b, 0xee, 0xdd, 0x24, 0xeb, 0x55, 0x63, 0xa5, 0x58, + 0x40, 0xd1, 0x1b, 0x30, 0xd6, 0x90, 0x32, 0xd9, 0x78, 0x87, 0x5f, 0x28, 0xd4, 0x0f, 0x28, 0x55, + 0x12, 0x97, 0x85, 0x2c, 0x69, 0xf5, 0xb1, 0x41, 0xcd, 0x34, 0x23, 0x28, 0xf7, 0x32, 0x23, 0x88, + 0xe9, 0xe6, 0x2b, 0xd5, 0x7f, 0xc2, 0x82, 0x21, 0x2e, 0x8b, 0xeb, 0x4f, 0x14, 0xaa, 0x69, 0xd6, + 0xe2, 0xb1, 0xbb, 0x45, 0x0b, 0x85, 0xa6, 0x0c, 0xad, 0x41, 0x85, 0xfd, 0x60, 0xb2, 0xc4, 0x72, + 0xbe, 0xd5, 0x3d, 0x6f, 0x55, 0xef, 0xe0, 0x2d, 0x59, 0x0d, 0xc7, 0x14, 0xec, 0x1f, 0x2d, 0xd3, + 0xd3, 0x2d, 0x46, 0x35, 0x2e, 0x7d, 0xeb, 0xe1, 0x5d, 0xfa, 0xa5, 0x87, 0x75, 0xe9, 0x6f, 0xc3, + 0x64, 0x43, 0xd3, 0xc3, 0xc5, 0x33, 0x79, 0xb1, 0x70, 0x91, 0x68, 0x2a, 0x3b, 0x2e, 0x65, 0x59, + 0x32, 0x89, 0xe0, 0x24, 0x55, 0xf4, 0x1d, 0x30, 0xc6, 0xe7, 0x59, 0xb4, 0xc2, 0x2d, 0x31, 0xde, + 0x97, 0xbf, 0x5e, 0xf4, 0x26, 0xb8, 0x54, 0x4e, 0xab, 0x8e, 0x0d, 0x62, 0xf6, 0x9f, 0x58, 0x80, + 0x96, 0x3b, 0x3b, 0xa4, 0x4d, 0x02, 0xa7, 0x15, 0x8b, 0xd3, 0x7f, 0xd0, 0x82, 0x19, 0x92, 0x2a, + 0x5e, 0xf2, 0xdb, 0x6d, 0xf1, 0x68, 0xc9, 0x79, 0x57, 0x2f, 0xe7, 0xd4, 0x51, 0x6e, 0x09, 0x33, + 0x79, 0x18, 0x38, 0xb7, 0x3d, 0xb4, 0x06, 0x27, 0xf8, 0x2d, 0xa9, 0x00, 0x9a, 0xed, 0xf5, 0xa3, + 0x82, 0xf0, 0x89, 0x8d, 0x34, 0x0a, 0xce, 0xaa, 0x67, 0x7f, 0xcf, 0x18, 0xe4, 0xf6, 0xe2, 0x5d, + 0x3d, 0xc2, 0xbb, 0x7a, 0x84, 0x77, 0xf5, 0x08, 0xef, 0xea, 0x11, 0xde, 0xd5, 0x23, 0x7c, 0xcb, + 0xeb, 0x11, 0xfe, 0xaa, 0x05, 0xa7, 0xd4, 0x35, 0x60, 0x3c, 0x7c, 0x3f, 0x0b, 0x27, 0xf8, 0x76, + 0x5b, 0x6a, 0x39, 0x6e, 0x7b, 0x83, 0xb4, 0x3b, 0x2d, 0x27, 0x92, 0x5a, 0xf7, 0xcb, 0x99, 0x2b, + 0x37, 0x61, 0xb1, 0x6a, 0x54, 0x5c, 0x7c, 0x84, 0x5e, 0x4f, 0x19, 0x00, 0x9c, 0xd5, 0x8c, 0xfd, + 0x0b, 0x23, 0x30, 0xb8, 0xbc, 0x47, 0xbc, 0xe8, 0x18, 0x9e, 0x08, 0x0d, 0x98, 0x70, 0xbd, 0x3d, + 0xbf, 0xb5, 0x47, 0x9a, 0x1c, 0x7e, 0x98, 0x97, 0xec, 0x69, 0x41, 0x7a, 0x62, 0xd5, 0x20, 0x81, + 0x13, 0x24, 0x1f, 0x86, 0x34, 0xf9, 0x0a, 0x0c, 0xf1, 0x43, 0x5c, 0x88, 0x92, 0x33, 0xcf, 0x6c, + 0x36, 0x88, 0xe2, 0x6a, 0x8a, 0x25, 0xdd, 0xfc, 0x92, 0x10, 0xd5, 0xd1, 0x67, 0x60, 0x62, 0xcb, + 0x0d, 0xc2, 0x68, 0xc3, 0x6d, 0x93, 0x30, 0x72, 0xda, 0x9d, 0x07, 0x90, 0x1e, 0xab, 0x71, 0x58, + 0x31, 0x28, 0xe1, 0x04, 0x65, 0xb4, 0x0d, 0xe3, 0x2d, 0x47, 0x6f, 0x6a, 0xf8, 0xd0, 0x4d, 0xa9, + 0xdb, 0xe1, 0xba, 0x4e, 0x08, 0x9b, 0x74, 0xe9, 0x76, 0x6a, 0x30, 0x01, 0xe8, 0x08, 0x13, 0x0b, + 0xa8, 0xed, 0xc4, 0x25, 0x9f, 0x1c, 0x46, 0x19, 0x1d, 0x66, 0x20, 0x5b, 0x31, 0x19, 0x1d, 0xcd, + 0x0c, 0xf6, 0xd3, 0x50, 0x21, 0x74, 0x08, 0x29, 0x61, 0x71, 0xc1, 0x5c, 0xea, 0xaf, 0xaf, 0x6b, + 0x6e, 0x23, 0xf0, 0x4d, 0xb9, 0xfd, 0xb2, 0xa4, 0x84, 0x63, 0xa2, 0x68, 0x09, 0x86, 0x42, 0x12, + 0xb8, 0x24, 0x14, 0x57, 0x4d, 0xc1, 0x34, 0x32, 0x34, 0xee, 0x5b, 0xc2, 0x7f, 0x63, 0x51, 0x95, + 0x2e, 0x2f, 0x87, 0x89, 0x34, 0xd9, 0x65, 0xa0, 0x2d, 0xaf, 0x05, 0x56, 0x8a, 0x05, 0x14, 0xbd, + 0x06, 0xc3, 0x01, 0x69, 0x31, 0xc5, 0xd0, 0x78, 0xff, 0x8b, 0x9c, 0xeb, 0x99, 0x78, 0x3d, 0x2c, + 0x09, 0xa0, 0x6b, 0x80, 0x02, 0x42, 0x19, 0x25, 0xd7, 0xdb, 0x56, 0x66, 0xa3, 0xe2, 0xa0, 0x55, + 0x0c, 0x29, 0x8e, 0x31, 0xa4, 0x9b, 0x0f, 0xce, 0xa8, 0x86, 0xae, 0xc0, 0xb4, 0x2a, 0x5d, 0xf5, + 0xc2, 0xc8, 0xa1, 0x07, 0xdc, 0x24, 0xa3, 0xa5, 0xe4, 0x14, 0x38, 0x89, 0x80, 0xd3, 0x75, 0xec, + 0x2f, 0x59, 0xc0, 0xc7, 0xf9, 0x18, 0x5e, 0xe7, 0xaf, 0x9a, 0xaf, 0xf3, 0x33, 0xb9, 0x33, 0x97, + 0xf3, 0x32, 0xff, 0x92, 0x05, 0xa3, 0xda, 0xcc, 0xc6, 0x6b, 0xd6, 0x2a, 0x58, 0xb3, 0x5d, 0x98, + 0xa2, 0x2b, 0xfd, 0xc6, 0x66, 0x48, 0x82, 0x3d, 0xd2, 0x64, 0x0b, 0xb3, 0xf4, 0x60, 0x0b, 0x53, + 0x99, 0xa8, 0x5d, 0x4f, 0x10, 0xc4, 0xa9, 0x26, 0xec, 0x4f, 0xcb, 0xae, 0x2a, 0x8b, 0xbe, 0x86, + 0x9a, 0xf3, 0x84, 0x45, 0x9f, 0x9a, 0x55, 0x1c, 0xe3, 0xd0, 0xad, 0xb6, 0xe3, 0x87, 0x51, 0xd2, + 0xa2, 0xef, 0xaa, 0x1f, 0x46, 0x98, 0x41, 0xec, 0xe7, 0x01, 0x96, 0xef, 0x92, 0x06, 0x5f, 0xb1, + 0xfa, 0xe3, 0xc1, 0xca, 0x7f, 0x3c, 0xd8, 0xbf, 0x65, 0xc1, 0xc4, 0xca, 0x92, 0x71, 0x73, 0xcd, + 0x03, 0xf0, 0x17, 0xcf, 0xed, 0xdb, 0xeb, 0x52, 0x1d, 0xce, 0x35, 0x9a, 0xaa, 0x14, 0x6b, 0x18, + 0xe8, 0x0c, 0x94, 0x5b, 0x5d, 0x4f, 0x88, 0x0f, 0x87, 0xe9, 0xf5, 0x78, 0xbd, 0xeb, 0x61, 0x5a, + 0xa6, 0xb9, 0x14, 0x94, 0xfb, 0x76, 0x29, 0xe8, 0xe9, 0xda, 0x8f, 0xe6, 0x60, 0xf0, 0xce, 0x1d, + 0xb7, 0xc9, 0x1d, 0x28, 0x85, 0xaa, 0xfe, 0xf6, 0xed, 0xd5, 0x6a, 0x88, 0x79, 0xb9, 0xfd, 0x85, + 0x32, 0xcc, 0xae, 0xb4, 0xc8, 0xdd, 0xb7, 0xe9, 0x44, 0xda, 0xaf, 0x43, 0xc4, 0xe1, 0x04, 0x31, + 0x87, 0x75, 0x7a, 0xe9, 0x3d, 0x1e, 0x5b, 0x30, 0xcc, 0x0d, 0xda, 0xa4, 0x4b, 0xe9, 0x2b, 0x59, + 0xad, 0xe7, 0x0f, 0xc8, 0x3c, 0x37, 0x8c, 0x13, 0x1e, 0x71, 0xea, 0xc2, 0x14, 0xa5, 0x58, 0x12, + 0x9f, 0x7d, 0x19, 0xc6, 0x74, 0xcc, 0x43, 0xb9, 0x9f, 0xfd, 0xa5, 0x32, 0x4c, 0xd1, 0x1e, 0x3c, + 0xd4, 0x89, 0xb8, 0x99, 0x9e, 0x88, 0xa3, 0x76, 0x41, 0xea, 0x3d, 0x1b, 0x6f, 0x24, 0x67, 0xe3, + 0x72, 0xde, 0x6c, 0x1c, 0xf7, 0x1c, 0x7c, 0xb7, 0x05, 0x27, 0x56, 0x5a, 0x7e, 0x63, 0x37, 0xe1, + 0x26, 0xf4, 0x22, 0x8c, 0xd2, 0xe3, 0x38, 0x34, 0x3c, 0xd8, 0x8d, 0x98, 0x06, 0x02, 0x84, 0x75, + 0x3c, 0xad, 0xda, 0xcd, 0x9b, 0xab, 0xd5, 0xac, 0x50, 0x08, 0x02, 0x84, 0x75, 0x3c, 0xfb, 0xd7, + 0x2d, 0x38, 0x7b, 0x65, 0x69, 0x39, 0x5e, 0x8a, 0xa9, 0x68, 0x0c, 0x17, 0x60, 0xa8, 0xd3, 0xd4, + 0xba, 0x12, 0x8b, 0x57, 0xab, 0xac, 0x17, 0x02, 0xfa, 0x4e, 0x89, 0x34, 0x72, 0x13, 0xe0, 0x0a, + 0xae, 0x2d, 0x89, 0x73, 0x57, 0x6a, 0x53, 0xac, 0x5c, 0x6d, 0xca, 0xfb, 0x60, 0x98, 0xde, 0x0b, + 0x6e, 0x43, 0xf6, 0x9b, 0x2b, 0x68, 0x79, 0x11, 0x96, 0x30, 0xfb, 0x67, 0x2c, 0x38, 0x71, 0xc5, + 0x8d, 0xe8, 0xa5, 0x9d, 0x0c, 0x37, 0x40, 0x6f, 0xed, 0xd0, 0x8d, 0xfc, 0x60, 0x3f, 0x19, 0x6e, + 0x00, 0x2b, 0x08, 0xd6, 0xb0, 0xf8, 0x07, 0xed, 0xb9, 0xcc, 0x42, 0xbb, 0x64, 0xea, 0xaf, 0xb0, + 0x28, 0xc7, 0x0a, 0x83, 0x8e, 0x57, 0xd3, 0x0d, 0x98, 0xe8, 0x6f, 0x5f, 0x1c, 0xdc, 0x6a, 0xbc, + 0xaa, 0x12, 0x80, 0x63, 0x1c, 0xfb, 0x8f, 0x2c, 0x98, 0xbb, 0xd2, 0xea, 0x86, 0x11, 0x09, 0xb6, + 0xc2, 0x9c, 0x43, 0xf7, 0x79, 0xa8, 0x10, 0x29, 0x68, 0x17, 0xbd, 0x56, 0x8c, 0xa8, 0x92, 0xc0, + 0xf3, 0xa8, 0x07, 0x0a, 0xaf, 0x0f, 0x5f, 0xc6, 0xc3, 0x39, 0xa3, 0xad, 0x00, 0x22, 0x7a, 0x5b, + 0x7a, 0x18, 0x08, 0xe6, 0x4f, 0xbe, 0x9c, 0x82, 0xe2, 0x8c, 0x1a, 0xf6, 0x8f, 0x5b, 0x70, 0x4a, + 0x7d, 0xf0, 0x3b, 0xee, 0x33, 0xed, 0xaf, 0x94, 0x60, 0xfc, 0xea, 0xc6, 0x46, 0xed, 0x0a, 0x89, + 0xb4, 0x55, 0x59, 0xac, 0x3e, 0xc7, 0x9a, 0x16, 0xb0, 0xe8, 0x8d, 0xd8, 0x8d, 0xdc, 0xd6, 0x3c, + 0x8f, 0x26, 0x34, 0xbf, 0xea, 0x45, 0x37, 0x82, 0x7a, 0x14, 0xb8, 0xde, 0x76, 0xe6, 0x4a, 0x97, + 0x3c, 0x4b, 0x39, 0x8f, 0x67, 0x41, 0xcf, 0xc3, 0x10, 0x0b, 0x67, 0x24, 0x27, 0xe1, 0x51, 0xf5, + 0xc4, 0x62, 0xa5, 0xf7, 0x0f, 0xe6, 0x2a, 0x37, 0xf1, 0x2a, 0xff, 0x83, 0x05, 0x2a, 0xba, 0x09, + 0xa3, 0x3b, 0x51, 0xd4, 0xb9, 0x4a, 0x9c, 0x26, 0x09, 0xe4, 0x29, 0x7b, 0x2e, 0xeb, 0x94, 0xa5, + 0x83, 0xc0, 0xd1, 0xe2, 0x83, 0x29, 0x2e, 0x0b, 0xb1, 0x4e, 0xc7, 0xae, 0x03, 0xc4, 0xb0, 0x23, + 0x52, 0x80, 0xd8, 0x1b, 0x50, 0xa1, 0x9f, 0xbb, 0xd0, 0x72, 0x9d, 0x62, 0x15, 0xf3, 0xd3, 0x50, + 0x91, 0x0a, 0xe4, 0x50, 0xf8, 0x5a, 0xb3, 0x1b, 0x49, 0xea, 0x97, 0x43, 0x1c, 0xc3, 0xed, 0x2d, + 0x38, 0xc9, 0xcc, 0x01, 0x9d, 0x68, 0xc7, 0x58, 0x7d, 0xbd, 0xa7, 0xf9, 0x19, 0xf1, 0x62, 0xe3, + 0x7d, 0x9e, 0xd1, 0xdc, 0x19, 0xc7, 0x24, 0xc5, 0xf8, 0xf5, 0x66, 0x7f, 0x7d, 0x00, 0x1e, 0x5d, + 0xad, 0xe7, 0x87, 0xe3, 0x78, 0x09, 0xc6, 0x38, 0x23, 0x48, 0x27, 0xdd, 0x69, 0x89, 0x76, 0x95, + 0x6c, 0x73, 0x43, 0x83, 0x61, 0x03, 0x13, 0x9d, 0x85, 0xb2, 0xfb, 0xa6, 0x97, 0x74, 0xf6, 0x59, + 0x7d, 0x7d, 0x1d, 0xd3, 0x72, 0x0a, 0xa6, 0x3c, 0x25, 0x3f, 0xac, 0x15, 0x58, 0xf1, 0x95, 0xaf, + 0xc2, 0x84, 0x1b, 0x36, 0x42, 0x77, 0xd5, 0xa3, 0x3b, 0x50, 0xdb, 0xc3, 0x4a, 0x9a, 0x40, 0x3b, + 0xad, 0xa0, 0x38, 0x81, 0xad, 0xdd, 0x1c, 0x83, 0x7d, 0xf3, 0xa5, 0x3d, 0x9d, 0x8f, 0xe9, 0xc1, + 0xde, 0x61, 0x5f, 0x17, 0x32, 0x21, 0xb5, 0x38, 0xd8, 0xf9, 0x07, 0x87, 0x58, 0xc2, 0xe8, 0x53, + 0xad, 0xb1, 0xe3, 0x74, 0x16, 0xba, 0xd1, 0x4e, 0xd5, 0x0d, 0x1b, 0xfe, 0x1e, 0x09, 0xf6, 0xd9, + 0x2b, 0x7b, 0x24, 0x7e, 0xaa, 0x29, 0xc0, 0xd2, 0xd5, 0x85, 0x1a, 0xc5, 0xc4, 0xe9, 0x3a, 0x68, + 0x01, 0x26, 0x65, 0x61, 0x9d, 0x84, 0xec, 0x70, 0x1f, 0x65, 0x64, 0x94, 0xfb, 0x8d, 0x28, 0x56, + 0x44, 0x92, 0xf8, 0x26, 0xeb, 0x0a, 0x47, 0xc1, 0xba, 0x7e, 0x08, 0xc6, 0x5d, 0xcf, 0x8d, 0x5c, + 0x27, 0xf2, 0xb9, 0x86, 0x85, 0x3f, 0xa8, 0x99, 0xe8, 0x78, 0x55, 0x07, 0x60, 0x13, 0xcf, 0xfe, + 0xaf, 0x03, 0x30, 0xcd, 0xa6, 0xed, 0xdd, 0x15, 0xf6, 0xad, 0xb4, 0xc2, 0x6e, 0xa6, 0x57, 0xd8, + 0x51, 0xf0, 0xe4, 0x0f, 0xbc, 0xcc, 0x3e, 0x03, 0x15, 0xe5, 0x71, 0x24, 0x5d, 0x0e, 0xad, 0x1c, + 0x97, 0xc3, 0xde, 0xf7, 0xb2, 0x34, 0xda, 0x2a, 0x67, 0x1a, 0x6d, 0x7d, 0xd9, 0x82, 0x58, 0x65, + 0x80, 0x5e, 0x87, 0x4a, 0xc7, 0x67, 0xb6, 0x88, 0x81, 0x34, 0xf0, 0x7d, 0x6f, 0xa1, 0xce, 0x81, + 0x47, 0x24, 0x0a, 0xf8, 0x28, 0xd4, 0x64, 0x55, 0x1c, 0x53, 0x41, 0xd7, 0x60, 0xb8, 0x13, 0x90, + 0x7a, 0xc4, 0xc2, 0x73, 0xf4, 0x4f, 0x90, 0xaf, 0x1a, 0x5e, 0x11, 0x4b, 0x0a, 0xf6, 0x7f, 0xb3, + 0x60, 0x2a, 0x89, 0x8a, 0x3e, 0x0c, 0x03, 0xe4, 0x2e, 0x69, 0x88, 0xfe, 0x66, 0x5e, 0xb2, 0xb1, + 0xd0, 0x81, 0x0f, 0x00, 0xfd, 0x8f, 0x59, 0x2d, 0x74, 0x15, 0x86, 0xe9, 0x0d, 0x7b, 0x45, 0x85, + 0x86, 0x7a, 0x3c, 0xef, 0x96, 0x56, 0xac, 0x0a, 0xef, 0x9c, 0x28, 0xc2, 0xb2, 0x3a, 0xb3, 0x94, + 0x6a, 0x74, 0xea, 0xf4, 0xf1, 0x12, 0x15, 0xbd, 0xb1, 0x37, 0x96, 0x6a, 0x1c, 0x49, 0x50, 0xe3, + 0x96, 0x52, 0xb2, 0x10, 0xc7, 0x44, 0xec, 0x9f, 0xb3, 0x00, 0xb8, 0x61, 0x98, 0xe3, 0x6d, 0x93, + 0x63, 0x90, 0x93, 0x57, 0x61, 0x20, 0xec, 0x90, 0x46, 0x91, 0x99, 0x6c, 0xdc, 0x9f, 0x7a, 0x87, + 0x34, 0xe2, 0x15, 0x47, 0xff, 0x61, 0x56, 0xdb, 0xfe, 0x5e, 0x80, 0x89, 0x18, 0x6d, 0x35, 0x22, + 0x6d, 0xf4, 0xac, 0x11, 0xa6, 0xe0, 0x4c, 0x22, 0x4c, 0x41, 0x85, 0x61, 0x6b, 0x22, 0xd9, 0xcf, + 0x40, 0xb9, 0xed, 0xdc, 0x15, 0x32, 0xb7, 0xa7, 0x8b, 0xbb, 0x41, 0xe9, 0xcf, 0xaf, 0x39, 0x77, + 0xf9, 0xb3, 0xf4, 0x69, 0xb9, 0x43, 0xd6, 0x9c, 0xbb, 0xf7, 0xb9, 0x31, 0x2c, 0x3b, 0xa5, 0xaf, + 0xbb, 0x61, 0xf4, 0xb9, 0xff, 0x12, 0xff, 0x67, 0xfb, 0x8e, 0x36, 0xc2, 0xda, 0x72, 0x3d, 0x61, + 0xf3, 0xd4, 0x57, 0x5b, 0xae, 0x97, 0x6c, 0xcb, 0xf5, 0xfa, 0x68, 0xcb, 0xf5, 0xd0, 0x5b, 0x30, + 0x2c, 0x4c, 0x12, 0x45, 0x58, 0xa0, 0x4b, 0x7d, 0xb4, 0x27, 0x2c, 0x1a, 0x79, 0x9b, 0x97, 0xe4, + 0xb3, 0x5b, 0x94, 0xf6, 0x6c, 0x57, 0x36, 0x88, 0xfe, 0x9a, 0x05, 0x13, 0xe2, 0x37, 0x26, 0x6f, + 0x76, 0x49, 0x18, 0x09, 0xb6, 0xf4, 0x83, 0xfd, 0xf7, 0x41, 0x54, 0xe4, 0x5d, 0xf9, 0xa0, 0xbc, + 0x67, 0x4c, 0x60, 0xcf, 0x1e, 0x25, 0x7a, 0x81, 0xfe, 0x81, 0x05, 0x27, 0xdb, 0xce, 0x5d, 0xde, + 0x22, 0x2f, 0xc3, 0x4e, 0xe4, 0xfa, 0x42, 0xb5, 0xff, 0xe1, 0xfe, 0xa6, 0x3f, 0x55, 0x9d, 0x77, + 0x52, 0xea, 0x1f, 0x4f, 0x66, 0xa1, 0xf4, 0xec, 0x6a, 0x66, 0xbf, 0x66, 0xb7, 0x60, 0x44, 0xae, + 0xb7, 0x0c, 0xe1, 0x46, 0x55, 0xe7, 0xb9, 0x0f, 0x6d, 0x11, 0xaa, 0xbb, 0xff, 0xd3, 0x76, 0xc4, + 0x5a, 0x7b, 0xa8, 0xed, 0x7c, 0x06, 0xc6, 0xf4, 0x35, 0xf6, 0x50, 0xdb, 0x7a, 0x13, 0x4e, 0x64, + 0xac, 0xa5, 0x87, 0xda, 0xe4, 0x1d, 0x38, 0x93, 0xbb, 0x3e, 0x1e, 0x66, 0xc3, 0xf6, 0x57, 0x2c, + 0xfd, 0x1c, 0x3c, 0x06, 0x65, 0xc5, 0x92, 0xa9, 0xac, 0x38, 0x57, 0xbc, 0x73, 0x72, 0x34, 0x16, + 0x6f, 0xe8, 0x9d, 0xa6, 0xa7, 0x3a, 0x7a, 0x0d, 0x86, 0x5a, 0xb4, 0x44, 0x1a, 0xb6, 0xda, 0xbd, + 0x77, 0x64, 0xcc, 0x4c, 0xb2, 0xf2, 0x10, 0x0b, 0x0a, 0xf6, 0x2f, 0x5a, 0x30, 0x70, 0x0c, 0x23, + 0x81, 0xcd, 0x91, 0x78, 0x36, 0x97, 0xb4, 0x88, 0x58, 0x3c, 0x8f, 0x9d, 0x3b, 0xcb, 0x77, 0x23, + 0xe2, 0x85, 0xec, 0x46, 0xce, 0x1c, 0x98, 0x9f, 0xb2, 0xe0, 0xc4, 0x75, 0xdf, 0x69, 0x2e, 0x3a, + 0x2d, 0xc7, 0x6b, 0x90, 0x60, 0xd5, 0xdb, 0x3e, 0x94, 0x55, 0x76, 0xa9, 0xa7, 0x55, 0xf6, 0x92, + 0x34, 0x6a, 0x1a, 0xc8, 0x9f, 0x3f, 0xca, 0x49, 0x27, 0x03, 0xb7, 0x18, 0xe6, 0xb7, 0x3b, 0x80, + 0xf4, 0x5e, 0x0a, 0x1f, 0x19, 0x0c, 0xc3, 0x2e, 0xef, 0xaf, 0x98, 0xc4, 0x27, 0xb3, 0x39, 0xdc, + 0xd4, 0xe7, 0x69, 0xde, 0x1f, 0xbc, 0x00, 0x4b, 0x42, 0xf6, 0x4b, 0x90, 0xe9, 0x68, 0xdf, 0x5b, + 0x2e, 0x61, 0x7f, 0x1c, 0xa6, 0x59, 0xcd, 0x43, 0x4a, 0x06, 0xec, 0x84, 0x34, 0x35, 0x23, 0x04, + 0x9f, 0xfd, 0x79, 0x0b, 0x26, 0xd7, 0x13, 0x91, 0xc9, 0x2e, 0x30, 0xfd, 0x6b, 0x86, 0x10, 0xbf, + 0xce, 0x4a, 0xb1, 0x80, 0x1e, 0xb9, 0x90, 0xeb, 0xcf, 0x2d, 0x88, 0x63, 0x5f, 0x1c, 0x03, 0xfb, + 0xb6, 0x64, 0xb0, 0x6f, 0x99, 0x8c, 0xac, 0xea, 0x4e, 0x1e, 0xf7, 0x86, 0xae, 0xa9, 0xa8, 0x50, + 0x05, 0x3c, 0x6c, 0x4c, 0x86, 0x2f, 0xc5, 0x09, 0x33, 0x74, 0x94, 0x8c, 0x13, 0x65, 0xff, 0x76, + 0x09, 0x90, 0xc2, 0xed, 0x3b, 0x6a, 0x55, 0xba, 0xc6, 0xd1, 0x44, 0xad, 0xda, 0x03, 0xc4, 0x2c, + 0x08, 0x02, 0xc7, 0x0b, 0x39, 0x59, 0x57, 0x88, 0xf5, 0x0e, 0x67, 0x9e, 0x30, 0x2b, 0x9a, 0x44, + 0xd7, 0x53, 0xd4, 0x70, 0x46, 0x0b, 0x9a, 0x65, 0xc8, 0x60, 0xbf, 0x96, 0x21, 0x43, 0x3d, 0xfc, + 0xe0, 0x7e, 0xd6, 0x82, 0x71, 0x35, 0x4c, 0xef, 0x10, 0x2b, 0x75, 0xd5, 0x9f, 0x9c, 0x03, 0xb4, + 0xa6, 0x75, 0x99, 0x5d, 0x2c, 0xdf, 0xce, 0xfc, 0x19, 0x9d, 0x96, 0xfb, 0x16, 0x51, 0x31, 0x03, + 0xe7, 0x84, 0x7f, 0xa2, 0x28, 0xbd, 0x7f, 0x30, 0x37, 0xae, 0xfe, 0xf1, 0x18, 0xc5, 0x71, 0x15, + 0x7a, 0x24, 0x4f, 0x26, 0x96, 0x22, 0x7a, 0x11, 0x06, 0x3b, 0x3b, 0x4e, 0x48, 0x12, 0xde, 0x3c, + 0x83, 0x35, 0x5a, 0x78, 0xff, 0x60, 0x6e, 0x42, 0x55, 0x60, 0x25, 0x98, 0x63, 0xf7, 0x1f, 0x0b, + 0x2c, 0xbd, 0x38, 0x7b, 0xc6, 0x02, 0xfb, 0x13, 0x0b, 0x06, 0xd6, 0xfd, 0xe6, 0x71, 0x1c, 0x01, + 0xaf, 0x1a, 0x47, 0xc0, 0x63, 0x79, 0xe1, 0xe3, 0x73, 0x77, 0xff, 0x4a, 0x62, 0xf7, 0x9f, 0xcb, + 0xa5, 0x50, 0xbc, 0xf1, 0xdb, 0x30, 0xca, 0x82, 0xd2, 0x0b, 0xcf, 0xa5, 0xe7, 0x8d, 0x0d, 0x3f, + 0x97, 0xd8, 0xf0, 0x93, 0x1a, 0xaa, 0xb6, 0xd3, 0x9f, 0x82, 0x61, 0xe1, 0x0a, 0x93, 0x74, 0x0b, + 0x15, 0xb8, 0x58, 0xc2, 0xed, 0x9f, 0x28, 0x83, 0x11, 0x04, 0x1f, 0xfd, 0xb2, 0x05, 0xf3, 0x01, + 0x37, 0x91, 0x6d, 0x56, 0xbb, 0x81, 0xeb, 0x6d, 0xd7, 0x1b, 0x3b, 0xa4, 0xd9, 0x6d, 0xb9, 0xde, + 0xf6, 0xea, 0xb6, 0xe7, 0xab, 0xe2, 0xe5, 0xbb, 0xa4, 0xd1, 0x65, 0x6a, 0xb7, 0x1e, 0x11, 0xf7, + 0x95, 0xa9, 0xf9, 0x73, 0xf7, 0x0e, 0xe6, 0xe6, 0xf1, 0xa1, 0x68, 0xe3, 0x43, 0xf6, 0x05, 0xfd, + 0xba, 0x05, 0x97, 0x78, 0x6c, 0xf8, 0xfe, 0xfb, 0x5f, 0xf0, 0x5a, 0xae, 0x49, 0x52, 0x31, 0x91, + 0x0d, 0x12, 0xb4, 0x17, 0x3f, 0x24, 0x06, 0xf4, 0x52, 0xed, 0x70, 0x6d, 0xe1, 0xc3, 0x76, 0xce, + 0xfe, 0x17, 0x65, 0x18, 0x17, 0x31, 0xa3, 0xc4, 0x1d, 0xf0, 0xa2, 0xb1, 0x24, 0x1e, 0x4f, 0x2c, + 0x89, 0x69, 0x03, 0xf9, 0x68, 0x8e, 0xff, 0x10, 0xa6, 0xe9, 0xe1, 0x7c, 0x95, 0x38, 0x41, 0xb4, + 0x49, 0x1c, 0x6e, 0xf0, 0x55, 0x3e, 0xf4, 0xe9, 0xaf, 0xe4, 0x93, 0xd7, 0x93, 0xc4, 0x70, 0x9a, + 0xfe, 0xb7, 0xd2, 0x9d, 0xe3, 0xc1, 0x54, 0x2a, 0xec, 0xd7, 0x27, 0xa0, 0xa2, 0xfc, 0x38, 0xc4, + 0xa1, 0x53, 0x1c, 0x3d, 0x2f, 0x49, 0x81, 0x8b, 0xbf, 0x62, 0x1f, 0xa2, 0x98, 0x9c, 0xfd, 0x8f, + 0x4a, 0x46, 0x83, 0x7c, 0x12, 0xd7, 0x61, 0xc4, 0x09, 0x43, 0x77, 0xdb, 0x23, 0xcd, 0x22, 0x09, + 0x65, 0xaa, 0x19, 0xe6, 0x4b, 0xb3, 0x20, 0x6a, 0x62, 0x45, 0x03, 0x5d, 0xe5, 0x66, 0x75, 0x7b, + 0xa4, 0x48, 0x3c, 0x99, 0xa2, 0x06, 0xd2, 0xf0, 0x6e, 0x8f, 0x60, 0x51, 0x1f, 0x7d, 0x92, 0xdb, + 0x3d, 0x5e, 0xf3, 0xfc, 0x3b, 0xde, 0x15, 0xdf, 0x97, 0x71, 0x19, 0xfa, 0x23, 0x38, 0x2d, 0xad, + 0x1d, 0x55, 0x75, 0x6c, 0x52, 0xeb, 0x2f, 0x8e, 0xe6, 0x67, 0xe1, 0x04, 0x25, 0x6d, 0xba, 0x4d, + 0x87, 0x88, 0xc0, 0xa4, 0x08, 0x48, 0x26, 0xcb, 0xc4, 0xd8, 0x65, 0x3e, 0xe5, 0xcc, 0xda, 0xb1, + 0x20, 0xfd, 0x9a, 0x49, 0x02, 0x27, 0x69, 0xda, 0x3f, 0x6d, 0x01, 0x73, 0x21, 0x3d, 0x06, 0x7e, + 0xe4, 0x23, 0x26, 0x3f, 0x32, 0x93, 0x37, 0xc8, 0x39, 0xac, 0xc8, 0x0b, 0x7c, 0x65, 0xd5, 0x02, + 0xff, 0xee, 0xbe, 0x30, 0x56, 0xe9, 0xfd, 0xfe, 0xb0, 0xff, 0xaf, 0xc5, 0x0f, 0x31, 0xe5, 0x65, + 0x81, 0xbe, 0x13, 0x46, 0x1a, 0x4e, 0xc7, 0x69, 0xf0, 0x8c, 0x2d, 0xb9, 0x12, 0x3d, 0xa3, 0xd2, + 0xfc, 0x92, 0xa8, 0xc1, 0x25, 0x54, 0x32, 0xb0, 0xdd, 0x88, 0x2c, 0xee, 0x29, 0x95, 0x52, 0x4d, + 0xce, 0xee, 0xc2, 0xb8, 0x41, 0xec, 0xa1, 0x8a, 0x33, 0xbe, 0x93, 0x5f, 0xb1, 0x2a, 0x10, 0x63, + 0x1b, 0xa6, 0x3d, 0xed, 0x3f, 0xbd, 0x50, 0xe4, 0xe3, 0xf2, 0xbd, 0xbd, 0x2e, 0x51, 0x76, 0xfb, + 0x68, 0xde, 0xa9, 0x09, 0x32, 0x38, 0x4d, 0xd9, 0xfe, 0x49, 0x0b, 0x1e, 0xd1, 0x11, 0x35, 0x07, + 0x98, 0x5e, 0x4a, 0x92, 0x2a, 0x8c, 0xf8, 0x1d, 0x12, 0x38, 0x91, 0x1f, 0x88, 0x5b, 0xe3, 0xa2, + 0x1c, 0xf4, 0x1b, 0xa2, 0xfc, 0xbe, 0x88, 0x77, 0x2e, 0xa9, 0xcb, 0x72, 0xac, 0x6a, 0xd2, 0xd7, + 0x27, 0x1b, 0x8c, 0x50, 0xb8, 0x3a, 0xb1, 0x33, 0x80, 0x69, 0xd2, 0x43, 0x2c, 0x20, 0xf6, 0xd7, + 0x2d, 0xbe, 0xb0, 0xf4, 0xae, 0xa3, 0x37, 0x61, 0xaa, 0xed, 0x44, 0x8d, 0x9d, 0xe5, 0xbb, 0x9d, + 0x80, 0xab, 0x9c, 0xe4, 0x38, 0x3d, 0xdd, 0x6b, 0x9c, 0xb4, 0x8f, 0x8c, 0x4d, 0x39, 0xd7, 0x12, + 0xc4, 0x70, 0x8a, 0x3c, 0xda, 0x84, 0x51, 0x56, 0xc6, 0xbc, 0xf8, 0xc2, 0x22, 0xd6, 0x20, 0xaf, + 0x35, 0x65, 0x8c, 0xb0, 0x16, 0xd3, 0xc1, 0x3a, 0x51, 0xfb, 0xcb, 0x65, 0xbe, 0xdb, 0x19, 0x2b, + 0xff, 0x14, 0x0c, 0x77, 0xfc, 0xe6, 0xd2, 0x6a, 0x15, 0x8b, 0x59, 0x50, 0xd7, 0x48, 0x8d, 0x17, + 0x63, 0x09, 0x47, 0x17, 0x61, 0x44, 0xfc, 0x94, 0x2a, 0x42, 0x76, 0x36, 0x0b, 0xbc, 0x10, 0x2b, + 0x28, 0x7a, 0x0e, 0xa0, 0x13, 0xf8, 0x7b, 0x6e, 0x93, 0x45, 0x97, 0x28, 0x9b, 0x76, 0x44, 0x35, + 0x05, 0xc1, 0x1a, 0x16, 0x7a, 0x05, 0xc6, 0xbb, 0x5e, 0xc8, 0xd9, 0x11, 0x2d, 0x96, 0xac, 0xb2, + 0x70, 0xb9, 0xa9, 0x03, 0xb1, 0x89, 0x8b, 0x16, 0x60, 0x28, 0x72, 0x98, 0x5d, 0xcc, 0x60, 0xbe, + 0xb9, 0xef, 0x06, 0xc5, 0xd0, 0x93, 0x83, 0xd0, 0x0a, 0x58, 0x54, 0x44, 0x9f, 0x90, 0x0e, 0xb5, + 0xfc, 0x60, 0x17, 0x76, 0xf6, 0xfd, 0x5d, 0x02, 0x9a, 0x3b, 0xad, 0xb0, 0xdf, 0x37, 0x68, 0xa1, + 0x97, 0x01, 0xc8, 0xdd, 0x88, 0x04, 0x9e, 0xd3, 0x52, 0xd6, 0x6c, 0x8a, 0x2f, 0xa8, 0xfa, 0xeb, + 0x7e, 0x74, 0x33, 0x24, 0xcb, 0x0a, 0x03, 0x6b, 0xd8, 0xf6, 0xaf, 0x57, 0x00, 0x62, 0xbe, 0x1d, + 0xbd, 0x95, 0x3a, 0xb8, 0x9e, 0x29, 0xe6, 0xf4, 0x8f, 0xee, 0xd4, 0x42, 0xdf, 0x67, 0xc1, 0xa8, + 0xd3, 0x6a, 0xf9, 0x0d, 0x87, 0x47, 0xfb, 0x2d, 0x15, 0x1f, 0x9c, 0xa2, 0xfd, 0x85, 0xb8, 0x06, + 0xef, 0xc2, 0xf3, 0x72, 0x85, 0x6a, 0x90, 0x9e, 0xbd, 0xd0, 0x1b, 0x46, 0x1f, 0x90, 0x4f, 0xc5, + 0xb2, 0x31, 0x94, 0xea, 0xa9, 0x58, 0x61, 0x77, 0x84, 0xfe, 0x4a, 0xbc, 0x69, 0xbc, 0x12, 0x07, + 0xf2, 0x3d, 0x06, 0x0d, 0xf6, 0xb5, 0xd7, 0x03, 0x11, 0xd5, 0xf4, 0xe8, 0x01, 0x83, 0xf9, 0xee, + 0x79, 0xda, 0x3b, 0xa9, 0x47, 0xe4, 0x80, 0xcf, 0xc0, 0x64, 0xd3, 0x64, 0x02, 0xc4, 0x4a, 0x7c, + 0x32, 0x8f, 0x6e, 0x82, 0x67, 0x88, 0xaf, 0xfd, 0x04, 0x00, 0x27, 0x09, 0xa3, 0x1a, 0x0f, 0x26, + 0xb1, 0xea, 0x6d, 0xf9, 0xc2, 0xd7, 0xc3, 0xce, 0x9d, 0xcb, 0xfd, 0x30, 0x22, 0x6d, 0x8a, 0x19, + 0xdf, 0xee, 0xeb, 0xa2, 0x2e, 0x56, 0x54, 0xd0, 0x6b, 0x30, 0xc4, 0xfc, 0xb3, 0xc2, 0x99, 0x91, + 0x7c, 0x89, 0xb3, 0x19, 0x1d, 0x2d, 0xde, 0x90, 0xec, 0x6f, 0x88, 0x05, 0x05, 0x74, 0x55, 0x7a, + 0x3f, 0x86, 0xab, 0xde, 0xcd, 0x90, 0x30, 0xef, 0xc7, 0xca, 0xe2, 0x7b, 0x63, 0xc7, 0x46, 0x5e, + 0x9e, 0x99, 0x42, 0xcc, 0xa8, 0x49, 0xb9, 0x28, 0xf1, 0x5f, 0x66, 0x26, 0x9b, 0x81, 0xfc, 0xee, + 0x99, 0xd9, 0xcb, 0xe2, 0xe1, 0xbc, 0x65, 0x92, 0xc0, 0x49, 0x9a, 0x94, 0x23, 0xe5, 0xbb, 0x5e, + 0x78, 0x8b, 0xf4, 0x3a, 0x3b, 0xf8, 0x43, 0x9c, 0xdd, 0x46, 0xbc, 0x04, 0x8b, 0xfa, 0xc7, 0xca, + 0x1e, 0xcc, 0x7a, 0x30, 0x95, 0xdc, 0xa2, 0x0f, 0x95, 0x1d, 0xf9, 0x83, 0x01, 0x98, 0x30, 0x97, + 0x14, 0xba, 0x04, 0x15, 0x41, 0x44, 0x65, 0x13, 0x50, 0xbb, 0x64, 0x4d, 0x02, 0x70, 0x8c, 0xc3, + 0x92, 0x48, 0xb0, 0xea, 0x9a, 0x79, 0x70, 0x9c, 0x44, 0x42, 0x41, 0xb0, 0x86, 0x45, 0x1f, 0x56, + 0x9b, 0xbe, 0x1f, 0xa9, 0x0b, 0x49, 0xad, 0xbb, 0x45, 0x56, 0x8a, 0x05, 0x94, 0x5e, 0x44, 0xbb, + 0x24, 0xf0, 0x48, 0xcb, 0x8c, 0x3b, 0xac, 0x2e, 0xa2, 0x6b, 0x3a, 0x10, 0x9b, 0xb8, 0xf4, 0x3a, + 0xf5, 0x43, 0xb6, 0x90, 0xc5, 0xf3, 0x2d, 0x36, 0xb7, 0xae, 0x73, 0x07, 0x6c, 0x09, 0x47, 0x1f, + 0x87, 0x47, 0x54, 0x6c, 0x25, 0xcc, 0xb5, 0x19, 0xb2, 0xc5, 0x21, 0x43, 0xda, 0xf2, 0xc8, 0x52, + 0x36, 0x1a, 0xce, 0xab, 0x8f, 0x5e, 0x85, 0x09, 0xc1, 0xe2, 0x4b, 0x8a, 0xc3, 0xa6, 0x85, 0xd1, + 0x35, 0x03, 0x8a, 0x13, 0xd8, 0x32, 0x72, 0x32, 0xe3, 0xb2, 0x25, 0x85, 0x91, 0x74, 0xe4, 0x64, + 0x1d, 0x8e, 0x53, 0x35, 0xd0, 0x02, 0x4c, 0x72, 0x1e, 0xcc, 0xf5, 0xb6, 0xf9, 0x9c, 0x08, 0x67, + 0x2e, 0xb5, 0xa5, 0x6e, 0x98, 0x60, 0x9c, 0xc4, 0x47, 0x2f, 0xc1, 0x98, 0x13, 0x34, 0x76, 0xdc, + 0x88, 0x34, 0xa2, 0x6e, 0xc0, 0xbd, 0xbc, 0x34, 0x13, 0xad, 0x05, 0x0d, 0x86, 0x0d, 0x4c, 0xfb, + 0x2d, 0x38, 0x91, 0x11, 0x99, 0x81, 0x2e, 0x1c, 0xa7, 0xe3, 0xca, 0x6f, 0x4a, 0x58, 0x38, 0x2f, + 0xd4, 0x56, 0xe5, 0xd7, 0x68, 0x58, 0x74, 0x75, 0xb2, 0x08, 0x0e, 0x5a, 0x22, 0x42, 0xb5, 0x3a, + 0x57, 0x24, 0x00, 0xc7, 0x38, 0xf6, 0xff, 0x2c, 0xc1, 0x64, 0x86, 0x6e, 0x85, 0x25, 0xc3, 0x4b, + 0x3c, 0x52, 0xe2, 0xdc, 0x77, 0x66, 0x20, 0xee, 0xd2, 0x21, 0x02, 0x71, 0x97, 0x7b, 0x05, 0xe2, + 0x1e, 0x78, 0x3b, 0x81, 0xb8, 0xcd, 0x11, 0x1b, 0xec, 0x6b, 0xc4, 0x32, 0x82, 0x77, 0x0f, 0x1d, + 0x32, 0x78, 0xb7, 0x31, 0xe8, 0xc3, 0x7d, 0x0c, 0xfa, 0x8f, 0x96, 0x60, 0x2a, 0x69, 0x4a, 0x7a, + 0x0c, 0x72, 0xdb, 0xd7, 0x0c, 0xb9, 0xed, 0xc5, 0x7e, 0x9c, 0x6f, 0x73, 0x65, 0xb8, 0x38, 0x21, + 0xc3, 0x7d, 0x7f, 0x5f, 0xd4, 0x8a, 0xe5, 0xb9, 0x7f, 0xab, 0x04, 0xa7, 0x32, 0xbd, 0x7f, 0x8f, + 0x61, 0x6c, 0x6e, 0x18, 0x63, 0xf3, 0x6c, 0xdf, 0x8e, 0xc9, 0xb9, 0x03, 0x74, 0x3b, 0x31, 0x40, + 0x97, 0xfa, 0x27, 0x59, 0x3c, 0x4a, 0x5f, 0x2b, 0xc3, 0xb9, 0xcc, 0x7a, 0xb1, 0xd8, 0x73, 0xc5, + 0x10, 0x7b, 0x3e, 0x97, 0x10, 0x7b, 0xda, 0xc5, 0xb5, 0x8f, 0x46, 0x0e, 0x2a, 0x1c, 0x74, 0x59, + 0x98, 0x81, 0x07, 0x94, 0x81, 0x1a, 0x0e, 0xba, 0x8a, 0x10, 0x36, 0xe9, 0x7e, 0x2b, 0xc9, 0x3e, + 0xff, 0xbd, 0x05, 0x67, 0x32, 0xe7, 0xe6, 0x18, 0x64, 0x5d, 0xeb, 0xa6, 0xac, 0xeb, 0xa9, 0xbe, + 0x57, 0x6b, 0x8e, 0xf0, 0xeb, 0xcb, 0x83, 0x39, 0xdf, 0xc2, 0x5e, 0xf2, 0x37, 0x60, 0xd4, 0x69, + 0x34, 0x48, 0x18, 0xae, 0xf9, 0x4d, 0x15, 0x6b, 0xf8, 0x59, 0xf6, 0xce, 0x8a, 0x8b, 0xef, 0x1f, + 0xcc, 0xcd, 0x26, 0x49, 0xc4, 0x60, 0xac, 0x53, 0x40, 0x9f, 0x84, 0x91, 0x50, 0xdc, 0x9b, 0x62, + 0xee, 0x9f, 0xef, 0x73, 0x70, 0x9c, 0x4d, 0xd2, 0x32, 0x83, 0x21, 0x29, 0x49, 0x85, 0x22, 0x69, + 0x06, 0x4e, 0x29, 0x1d, 0x69, 0xe0, 0x94, 0xe7, 0x00, 0xf6, 0xd4, 0x63, 0x20, 0x29, 0x7f, 0xd0, + 0x9e, 0x09, 0x1a, 0x16, 0xfa, 0x28, 0x4c, 0x85, 0x3c, 0x5a, 0xe0, 0x52, 0xcb, 0x09, 0x99, 0x1f, + 0x8d, 0x58, 0x85, 0x2c, 0xe0, 0x52, 0x3d, 0x01, 0xc3, 0x29, 0x6c, 0xb4, 0x22, 0x5b, 0x65, 0xa1, + 0x0d, 0xf9, 0xc2, 0xbc, 0x10, 0xb7, 0x28, 0x52, 0xf1, 0x9e, 0x4c, 0x0e, 0x3f, 0x1b, 0x78, 0xad, + 0x26, 0xfa, 0x24, 0x00, 0x5d, 0x3e, 0x42, 0x0e, 0x31, 0x9c, 0x7f, 0x78, 0xd2, 0x53, 0xa5, 0x99, + 0x69, 0xdc, 0xcc, 0x7c, 0x6a, 0xab, 0x8a, 0x08, 0xd6, 0x08, 0xa2, 0x2d, 0x18, 0x8f, 0xff, 0xc5, + 0x99, 0x2a, 0x0f, 0xd9, 0x02, 0x93, 0x7b, 0x57, 0x75, 0x3a, 0xd8, 0x24, 0x6b, 0xff, 0xf8, 0x30, + 0x3c, 0x5a, 0x70, 0x16, 0xa3, 0x05, 0x53, 0xdf, 0xfb, 0x74, 0xf2, 0x11, 0x3f, 0x9b, 0x59, 0xd9, + 0x78, 0xd5, 0x27, 0x96, 0x7c, 0xe9, 0x6d, 0x2f, 0xf9, 0x1f, 0xb2, 0x34, 0xf1, 0x0a, 0xb7, 0x2c, + 0xfd, 0xc8, 0x21, 0xef, 0x98, 0x23, 0x94, 0xb7, 0x6c, 0x65, 0x08, 0x2d, 0x9e, 0xeb, 0xbb, 0x3b, + 0xfd, 0x4b, 0x31, 0xbe, 0x62, 0x01, 0x12, 0xe2, 0x15, 0xd2, 0x54, 0x1b, 0x4a, 0xc8, 0x33, 0xae, + 0x1c, 0xf6, 0xfb, 0x17, 0x52, 0x94, 0xf8, 0x48, 0xbc, 0x2c, 0x2f, 0x83, 0x34, 0x42, 0xcf, 0x31, + 0xc9, 0xe8, 0x1e, 0xfa, 0x38, 0x8b, 0xa6, 0xeb, 0xbe, 0x25, 0x38, 0x20, 0xb1, 0xe1, 0x5e, 0x14, + 0x91, 0x74, 0x55, 0x39, 0x65, 0x75, 0x33, 0xbb, 0xab, 0x23, 0x61, 0x83, 0xd4, 0xf1, 0xbe, 0xbf, + 0xbb, 0xf0, 0x48, 0xce, 0x90, 0x3d, 0xd4, 0x67, 0xf8, 0x6f, 0x59, 0x70, 0xb6, 0x30, 0x2c, 0xcc, + 0x37, 0x21, 0x83, 0x68, 0x7f, 0xce, 0x82, 0xec, 0xc9, 0x36, 0xcc, 0xca, 0x2e, 0x41, 0xa5, 0x41, + 0x0b, 0x35, 0x3f, 0xe0, 0x38, 0x40, 0x82, 0x04, 0xe0, 0x18, 0xc7, 0xb0, 0x1e, 0x2b, 0xf5, 0xb4, + 0x1e, 0xfb, 0x15, 0x0b, 0x52, 0x87, 0xfc, 0x31, 0x70, 0x1b, 0xab, 0x26, 0xb7, 0xf1, 0xde, 0x7e, + 0x46, 0x33, 0x87, 0xd1, 0xf8, 0xe3, 0x49, 0x38, 0x9d, 0xe3, 0x96, 0xb7, 0x07, 0xd3, 0xdb, 0x0d, + 0x62, 0x7a, 0x58, 0x17, 0x45, 0x1e, 0x2a, 0x74, 0xc7, 0x66, 0xc9, 0x61, 0xa7, 0x53, 0x28, 0x38, + 0xdd, 0x04, 0xfa, 0x9c, 0x05, 0x27, 0x9d, 0x3b, 0xe1, 0x32, 0xe5, 0x1a, 0xdd, 0xc6, 0x62, 0xcb, + 0x6f, 0xec, 0xd2, 0x2b, 0x59, 0x6e, 0x84, 0x17, 0x32, 0x25, 0x79, 0xb7, 0xeb, 0x29, 0x7c, 0xa3, + 0x79, 0x96, 0x2d, 0x37, 0x0b, 0x0b, 0x67, 0xb6, 0x85, 0xb0, 0x48, 0xa1, 0x40, 0xdf, 0xa4, 0x05, + 0x31, 0x00, 0xb2, 0xfc, 0x27, 0x39, 0x1b, 0x24, 0x21, 0x58, 0xd1, 0x41, 0x9f, 0x86, 0xca, 0xb6, + 0x74, 0xf7, 0xcd, 0x60, 0xb3, 0xe2, 0x81, 0x2c, 0x76, 0x82, 0xe6, 0xea, 0x78, 0x85, 0x84, 0x63, + 0xa2, 0xe8, 0x55, 0x28, 0x7b, 0x5b, 0x61, 0x51, 0xc2, 0xd9, 0x84, 0xdd, 0x25, 0x8f, 0xb4, 0xb1, + 0xbe, 0x52, 0xc7, 0xb4, 0x22, 0xba, 0x0a, 0xe5, 0x60, 0xb3, 0x29, 0xc4, 0xd0, 0x99, 0x9b, 0x14, + 0x2f, 0x56, 0x73, 0x7a, 0xc5, 0x28, 0xe1, 0xc5, 0x2a, 0xa6, 0x24, 0x50, 0x0d, 0x06, 0x99, 0x2f, + 0x9b, 0x60, 0x6a, 0x32, 0x9f, 0x6f, 0x05, 0x3e, 0xa1, 0x3c, 0x1c, 0x07, 0x43, 0xc0, 0x9c, 0x10, + 0xda, 0x80, 0xa1, 0x06, 0x4b, 0x4e, 0x2a, 0xb8, 0x98, 0x0f, 0x64, 0x0a, 0x9c, 0x0b, 0xb2, 0xb6, + 0x0a, 0xf9, 0x2b, 0xc3, 0xc0, 0x82, 0x16, 0xa3, 0x4a, 0x3a, 0x3b, 0x5b, 0xa1, 0x48, 0xa6, 0x9d, + 0x4d, 0xb5, 0x20, 0x19, 0xb1, 0xa0, 0xca, 0x30, 0xb0, 0xa0, 0x85, 0x5e, 0x86, 0xd2, 0x56, 0x43, + 0xf8, 0xa9, 0x65, 0x4a, 0x9e, 0xcd, 0x60, 0x29, 0x8b, 0x43, 0xf7, 0x0e, 0xe6, 0x4a, 0x2b, 0x4b, + 0xb8, 0xb4, 0xd5, 0x40, 0xeb, 0x30, 0xbc, 0xc5, 0xc3, 0x2b, 0x08, 0xe1, 0xf2, 0x93, 0xd9, 0x91, + 0x1f, 0x52, 0x11, 0x18, 0xb8, 0xcf, 0x93, 0x00, 0x60, 0x49, 0x84, 0x65, 0x24, 0x50, 0x61, 0x22, + 0x44, 0x94, 0xba, 0xf9, 0xc3, 0x85, 0xf6, 0xe0, 0x4c, 0x66, 0x1c, 0x6c, 0x02, 0x6b, 0x14, 0xe9, + 0xaa, 0x76, 0xde, 0xea, 0x06, 0x2c, 0x14, 0xb8, 0x08, 0x67, 0x94, 0xb9, 0xaa, 0x17, 0x24, 0x52, + 0xd1, 0xaa, 0x56, 0x48, 0x38, 0x26, 0x8a, 0x76, 0x61, 0x7c, 0x2f, 0xec, 0xec, 0x10, 0xb9, 0xa5, + 0x59, 0x74, 0xa3, 0x1c, 0xfe, 0xe8, 0x96, 0x40, 0x74, 0x83, 0xa8, 0xeb, 0xb4, 0x52, 0xa7, 0x10, + 0xe3, 0x65, 0x6f, 0xe9, 0xc4, 0xb0, 0x49, 0x9b, 0x0e, 0xff, 0x9b, 0x5d, 0x7f, 0x73, 0x3f, 0x22, + 0x22, 0xb8, 0x5c, 0xe6, 0xf0, 0xbf, 0xce, 0x51, 0xd2, 0xc3, 0x2f, 0x00, 0x58, 0x12, 0x41, 0xb7, + 0xc4, 0xf0, 0xb0, 0xd3, 0x73, 0x2a, 0x3f, 0x02, 0xec, 0x82, 0x44, 0xca, 0x19, 0x14, 0x76, 0x5a, + 0xc6, 0xa4, 0xd8, 0x29, 0xd9, 0xd9, 0xf1, 0x23, 0xdf, 0x4b, 0x9c, 0xd0, 0xd3, 0xf9, 0xa7, 0x64, + 0x2d, 0x03, 0x3f, 0x7d, 0x4a, 0x66, 0x61, 0xe1, 0xcc, 0xb6, 0x50, 0x13, 0x26, 0x3a, 0x7e, 0x10, + 0xdd, 0xf1, 0x03, 0xb9, 0xbe, 0x50, 0x81, 0x70, 0xcc, 0xc0, 0x14, 0x2d, 0xb2, 0xb8, 0x8d, 0x26, + 0x04, 0x27, 0x68, 0xa2, 0x8f, 0xc1, 0x70, 0xd8, 0x70, 0x5a, 0x64, 0xf5, 0xc6, 0xcc, 0x89, 0xfc, + 0xeb, 0xa7, 0xce, 0x51, 0x72, 0x56, 0x17, 0x8f, 0x8e, 0xc1, 0x51, 0xb0, 0x24, 0x87, 0x56, 0x60, + 0x90, 0x65, 0x9c, 0x63, 0x91, 0x10, 0x73, 0x02, 0xd9, 0xa6, 0xac, 0xe0, 0xf9, 0xd9, 0xc4, 0x8a, + 0x31, 0xaf, 0x4e, 0xf7, 0x80, 0x78, 0x23, 0xfa, 0xe1, 0xcc, 0xa9, 0xfc, 0x3d, 0x20, 0x9e, 0x96, + 0x37, 0xea, 0x45, 0x7b, 0x40, 0x21, 0xe1, 0x98, 0x28, 0x3d, 0x99, 0xe9, 0x69, 0x7a, 0xba, 0xc0, + 0x7c, 0x2b, 0xf7, 0x2c, 0x65, 0x27, 0x33, 0x3d, 0x49, 0x29, 0x09, 0xfb, 0xf7, 0x86, 0xd3, 0x3c, + 0x0b, 0x93, 0x2a, 0x7c, 0x8f, 0x95, 0x52, 0x38, 0x7f, 0xb0, 0x5f, 0x21, 0xe7, 0x11, 0x3e, 0x85, + 0x3e, 0x67, 0xc1, 0xe9, 0x4e, 0xe6, 0x87, 0x08, 0x06, 0xa0, 0x3f, 0x59, 0x29, 0xff, 0x74, 0x15, + 0x35, 0x33, 0x1b, 0x8e, 0x73, 0x5a, 0x4a, 0x3e, 0x37, 0xcb, 0x6f, 0xfb, 0xb9, 0xb9, 0x06, 0x23, + 0x0d, 0xfe, 0x14, 0x29, 0x4c, 0xd6, 0x9d, 0x7c, 0x7b, 0x33, 0x56, 0x42, 0xbc, 0x61, 0xb6, 0xb0, + 0x22, 0x81, 0x7e, 0xd8, 0x82, 0xb3, 0xc9, 0xae, 0x63, 0xc2, 0xc0, 0x22, 0xd4, 0x26, 0x17, 0x68, + 0xac, 0x88, 0xef, 0x4f, 0xf1, 0xff, 0x06, 0xf2, 0xfd, 0x5e, 0x08, 0xb8, 0xb8, 0x31, 0x54, 0xcd, + 0x90, 0xa8, 0x0c, 0x99, 0x5a, 0xa4, 0x3e, 0xa4, 0x2a, 0x2f, 0xc0, 0x58, 0xdb, 0xef, 0x7a, 0x91, + 0xb0, 0xf6, 0x12, 0x96, 0x27, 0xcc, 0xe2, 0x62, 0x4d, 0x2b, 0xc7, 0x06, 0x56, 0x42, 0x16, 0x33, + 0xf2, 0xc0, 0xb2, 0x98, 0x37, 0x60, 0xcc, 0xd3, 0xcc, 0x93, 0x05, 0x3f, 0x70, 0x21, 0x3f, 0x4c, + 0xae, 0x6e, 0xcc, 0xcc, 0x7b, 0xa9, 0x97, 0x60, 0x83, 0xda, 0xf1, 0x9a, 0x81, 0x7d, 0xc9, 0xca, + 0x60, 0xea, 0xb9, 0x28, 0xe6, 0xc3, 0xa6, 0x28, 0xe6, 0x42, 0x52, 0x14, 0x93, 0xd2, 0x20, 0x18, + 0x52, 0x98, 0xfe, 0xb3, 0x00, 0xf5, 0x1b, 0x6a, 0xd3, 0x6e, 0xc1, 0xf9, 0x5e, 0xd7, 0x12, 0x33, + 0xfb, 0x6b, 0x2a, 0x7d, 0x71, 0x6c, 0xf6, 0xd7, 0x5c, 0xad, 0x62, 0x06, 0xe9, 0x37, 0x88, 0x93, + 0xfd, 0xdf, 0x2d, 0x28, 0xd7, 0xfc, 0xe6, 0x31, 0x3c, 0x78, 0x3f, 0x62, 0x3c, 0x78, 0x1f, 0xcd, + 0xbe, 0x10, 0x9b, 0xb9, 0xfa, 0x8f, 0xe5, 0x84, 0xfe, 0xe3, 0x6c, 0x1e, 0x81, 0x62, 0x6d, 0xc7, + 0x4f, 0x95, 0x61, 0xb4, 0xe6, 0x37, 0x95, 0xcd, 0xfd, 0xbf, 0x7a, 0x10, 0x9b, 0xfb, 0xdc, 0x5c, + 0x16, 0x1a, 0x65, 0x66, 0x2d, 0x28, 0xdd, 0x8d, 0xbf, 0xc9, 0x4c, 0xef, 0x6f, 0x13, 0x77, 0x7b, + 0x27, 0x22, 0xcd, 0xe4, 0xe7, 0x1c, 0x9f, 0xe9, 0xfd, 0xef, 0x95, 0x60, 0x32, 0xd1, 0x3a, 0x6a, + 0xc1, 0x78, 0x4b, 0x97, 0xae, 0x8b, 0x75, 0xfa, 0x40, 0x82, 0x79, 0x61, 0xba, 0xac, 0x15, 0x61, + 0x93, 0x38, 0x9a, 0x07, 0x50, 0xea, 0x66, 0x29, 0x5e, 0x65, 0x5c, 0xbf, 0xd2, 0x47, 0x87, 0x58, + 0xc3, 0x40, 0x2f, 0xc2, 0x68, 0xe4, 0x77, 0xfc, 0x96, 0xbf, 0xbd, 0x7f, 0x8d, 0xc8, 0xf8, 0x5e, + 0xca, 0x20, 0x71, 0x23, 0x06, 0x61, 0x1d, 0x0f, 0xdd, 0x85, 0x69, 0x45, 0xa4, 0x7e, 0x04, 0x1a, + 0x07, 0x26, 0x55, 0x58, 0x4f, 0x52, 0xc4, 0xe9, 0x46, 0xec, 0x9f, 0x29, 0xf3, 0x21, 0xf6, 0x22, + 0xf7, 0xdd, 0xdd, 0xf0, 0xce, 0xde, 0x0d, 0x5f, 0xb3, 0x60, 0x8a, 0xb6, 0xce, 0xac, 0xad, 0xe4, + 0x35, 0xaf, 0x02, 0x73, 0x5b, 0x05, 0x81, 0xb9, 0x2f, 0xd0, 0x53, 0xb3, 0xe9, 0x77, 0x23, 0x21, + 0xbb, 0xd3, 0x8e, 0x45, 0x5a, 0x8a, 0x05, 0x54, 0xe0, 0x91, 0x20, 0x10, 0x1e, 0xa2, 0x3a, 0x1e, + 0x09, 0x02, 0x2c, 0xa0, 0x32, 0x6e, 0xf7, 0x40, 0x76, 0xdc, 0x6e, 0x1e, 0x7e, 0x55, 0xd8, 0xe5, + 0x08, 0x86, 0x4b, 0x0b, 0xbf, 0x2a, 0x0d, 0x76, 0x62, 0x1c, 0xfb, 0x2b, 0x65, 0x18, 0xab, 0xf9, + 0xcd, 0x58, 0xd5, 0xfc, 0x82, 0xa1, 0x6a, 0x3e, 0x9f, 0x50, 0x35, 0x4f, 0xe9, 0xb8, 0xef, 0x2a, + 0x96, 0xbf, 0x51, 0x8a, 0xe5, 0x7f, 0x6e, 0xb1, 0x59, 0xab, 0xae, 0xd7, 0xb9, 0xf1, 0x1e, 0xba, + 0x0c, 0xa3, 0xec, 0x80, 0x61, 0x2e, 0xc9, 0x52, 0xff, 0xca, 0xf2, 0x51, 0xad, 0xc7, 0xc5, 0x58, + 0xc7, 0x41, 0x17, 0x61, 0x24, 0x24, 0x4e, 0xd0, 0xd8, 0x51, 0xa7, 0xab, 0x50, 0x96, 0xf2, 0x32, + 0xac, 0xa0, 0xe8, 0xf5, 0x38, 0xf2, 0x67, 0x39, 0xdf, 0xc5, 0x51, 0xef, 0x0f, 0xdf, 0x22, 0xf9, + 0xe1, 0x3e, 0xed, 0xdb, 0x80, 0xd2, 0xf8, 0x7d, 0xc4, 0xa6, 0x9b, 0x33, 0x63, 0xd3, 0x55, 0x52, + 0x71, 0xe9, 0xfe, 0xcc, 0x82, 0x89, 0x9a, 0xdf, 0xa4, 0x5b, 0xf7, 0x5b, 0x69, 0x9f, 0xea, 0x61, + 0x8f, 0x87, 0x0a, 0xc2, 0x1e, 0x3f, 0x01, 0x83, 0x35, 0xbf, 0xb9, 0x5a, 0x2b, 0x8a, 0x2f, 0x60, + 0xff, 0x6d, 0x0b, 0x86, 0x6b, 0x7e, 0xf3, 0x18, 0xd4, 0x02, 0x1f, 0x36, 0xd5, 0x02, 0x8f, 0xe4, + 0xac, 0x9b, 0x1c, 0x4d, 0xc0, 0xdf, 0x1c, 0x80, 0x71, 0xda, 0x4f, 0x7f, 0x5b, 0x4e, 0xa5, 0x31, + 0x6c, 0x56, 0x1f, 0xc3, 0x46, 0xb9, 0x70, 0xbf, 0xd5, 0xf2, 0xef, 0x24, 0xa7, 0x75, 0x85, 0x95, + 0x62, 0x01, 0x45, 0xcf, 0xc0, 0x48, 0x27, 0x20, 0x7b, 0xae, 0x2f, 0xd8, 0x5b, 0x4d, 0xc9, 0x52, + 0x13, 0xe5, 0x58, 0x61, 0xd0, 0x67, 0x61, 0xe8, 0x7a, 0xf4, 0x2a, 0x6f, 0xf8, 0x5e, 0x93, 0x4b, + 0xce, 0xcb, 0x22, 0x37, 0x87, 0x56, 0x8e, 0x0d, 0x2c, 0x74, 0x1b, 0x2a, 0xec, 0x3f, 0x3b, 0x76, + 0x0e, 0x9f, 0xe5, 0x55, 0x64, 0xfd, 0x13, 0x04, 0x70, 0x4c, 0x0b, 0x3d, 0x07, 0x10, 0xc9, 0xf8, + 0xf6, 0xa1, 0x88, 0xb6, 0xa6, 0x9e, 0x02, 0x2a, 0xf2, 0x7d, 0x88, 0x35, 0x2c, 0xf4, 0x34, 0x54, + 0x22, 0xc7, 0x6d, 0x5d, 0x77, 0x3d, 0x12, 0x32, 0x89, 0x78, 0x59, 0x26, 0xdf, 0x13, 0x85, 0x38, + 0x86, 0x53, 0x56, 0x8c, 0x45, 0xe2, 0xe0, 0x39, 0xa2, 0x47, 0x18, 0x36, 0x63, 0xc5, 0xae, 0xab, + 0x52, 0xac, 0x61, 0xa0, 0x1d, 0x78, 0xcc, 0xf5, 0x58, 0x1e, 0x0b, 0x52, 0xdf, 0x75, 0x3b, 0x1b, + 0xd7, 0xeb, 0xb7, 0x48, 0xe0, 0x6e, 0xed, 0x2f, 0x3a, 0x8d, 0x5d, 0xe2, 0xc9, 0xfc, 0x9d, 0xef, + 0x15, 0x5d, 0x7c, 0x6c, 0xb5, 0x00, 0x17, 0x17, 0x52, 0xb2, 0x9f, 0x67, 0xeb, 0xfd, 0x46, 0x1d, + 0xbd, 0xdf, 0x38, 0x3a, 0x4e, 0xeb, 0x47, 0xc7, 0xfd, 0x83, 0xb9, 0xa1, 0x1b, 0x75, 0x2d, 0x90, + 0xc4, 0x4b, 0x70, 0xaa, 0xe6, 0x37, 0x6b, 0x7e, 0x10, 0xad, 0xf8, 0xc1, 0x1d, 0x27, 0x68, 0xca, + 0xe5, 0x35, 0x27, 0x43, 0x69, 0xd0, 0xf3, 0x73, 0x90, 0x9f, 0x2e, 0x46, 0x98, 0x8c, 0xe7, 0x19, + 0xc7, 0x76, 0x48, 0x07, 0xb0, 0x06, 0xe3, 0x1d, 0x54, 0x26, 0x98, 0x2b, 0x4e, 0x44, 0xd0, 0x0d, + 0x96, 0xe1, 0x3a, 0xbe, 0x46, 0x45, 0xf5, 0xa7, 0xb4, 0x0c, 0xd7, 0x31, 0x30, 0xf3, 0xde, 0x35, + 0xeb, 0xdb, 0xff, 0x63, 0x90, 0x9d, 0xa8, 0x89, 0x6c, 0x22, 0xe8, 0x53, 0x30, 0x11, 0x92, 0xeb, + 0xae, 0xd7, 0xbd, 0x2b, 0x45, 0x18, 0x05, 0x2e, 0x7c, 0xf5, 0x65, 0x1d, 0x93, 0x0b, 0x42, 0xcd, + 0x32, 0x9c, 0xa0, 0x86, 0xda, 0x30, 0x71, 0xc7, 0xf5, 0x9a, 0xfe, 0x9d, 0x50, 0xd2, 0x1f, 0xc9, + 0x97, 0x87, 0xde, 0xe6, 0x98, 0x89, 0x3e, 0x1a, 0xcd, 0xdd, 0x36, 0x88, 0xe1, 0x04, 0x71, 0xba, + 0x6a, 0x83, 0xae, 0xb7, 0x10, 0xde, 0x0c, 0x49, 0x20, 0x72, 0x95, 0xb3, 0x55, 0x8b, 0x65, 0x21, + 0x8e, 0xe1, 0x74, 0xd5, 0xb2, 0x3f, 0x57, 0x02, 0xbf, 0xcb, 0x53, 0x57, 0x88, 0x55, 0x8b, 0x55, + 0x29, 0xd6, 0x30, 0xe8, 0xae, 0x66, 0xff, 0xd6, 0x7d, 0x0f, 0xfb, 0x7e, 0x24, 0xcf, 0x01, 0xa6, + 0xd3, 0xd7, 0xca, 0xb1, 0x81, 0x85, 0x56, 0x00, 0x85, 0xdd, 0x4e, 0xa7, 0xc5, 0x6c, 0x83, 0x9c, + 0x16, 0x23, 0xc5, 0xed, 0x25, 0xca, 0x3c, 0xf4, 0x6e, 0x3d, 0x05, 0xc5, 0x19, 0x35, 0xe8, 0x01, + 0xbf, 0x25, 0xba, 0x3a, 0xc8, 0xba, 0xca, 0x75, 0x27, 0x75, 0xde, 0x4f, 0x09, 0x43, 0xcb, 0x30, + 0x1c, 0xee, 0x87, 0x8d, 0x48, 0x44, 0x4a, 0xcc, 0x49, 0x18, 0x55, 0x67, 0x28, 0x5a, 0xbe, 0x42, + 0x5e, 0x05, 0xcb, 0xba, 0xa8, 0x01, 0x27, 0x04, 0xc5, 0xa5, 0x1d, 0xc7, 0x53, 0xe9, 0x77, 0xb8, + 0x89, 0xf4, 0xe5, 0x7b, 0x07, 0x73, 0x27, 0x44, 0xcb, 0x3a, 0xf8, 0xfe, 0xc1, 0xdc, 0xe9, 0x9a, + 0xdf, 0xcc, 0x80, 0xe0, 0x2c, 0x6a, 0x7c, 0xf1, 0x35, 0x1a, 0x7e, 0xbb, 0x53, 0x0b, 0xfc, 0x2d, + 0xb7, 0x45, 0x8a, 0xf4, 0x4f, 0x75, 0x03, 0x53, 0x2c, 0x3e, 0xa3, 0x0c, 0x27, 0xa8, 0xd9, 0xdf, + 0xc9, 0x98, 0x20, 0x96, 0x9e, 0x3b, 0xea, 0x06, 0x04, 0xb5, 0x61, 0xbc, 0xc3, 0xb6, 0x89, 0x48, + 0x28, 0x21, 0xd6, 0xfa, 0x0b, 0x7d, 0xca, 0x51, 0xee, 0xd0, 0xbb, 0xc3, 0xb4, 0x31, 0xaa, 0xe9, + 0xe4, 0xb0, 0x49, 0xdd, 0xfe, 0x8d, 0x47, 0xd8, 0x35, 0x5a, 0xe7, 0xc2, 0x91, 0x61, 0xe1, 0x91, + 0x21, 0xde, 0x63, 0xb3, 0xf9, 0x52, 0xba, 0x78, 0x5a, 0x84, 0x57, 0x07, 0x96, 0x75, 0xd1, 0x27, + 0x61, 0x82, 0x3e, 0x6f, 0xd4, 0x55, 0x16, 0xce, 0x9c, 0xcc, 0x8f, 0x9c, 0xa1, 0xb0, 0xf4, 0x64, + 0x33, 0x7a, 0x65, 0x9c, 0x20, 0x86, 0x5e, 0x67, 0x36, 0x3d, 0x92, 0x74, 0xa9, 0x1f, 0xd2, 0xba, + 0xf9, 0x8e, 0x24, 0xab, 0x11, 0x41, 0x5d, 0x38, 0x91, 0x4e, 0x4d, 0x17, 0xce, 0xd8, 0xf9, 0x7c, + 0x62, 0x3a, 0xbb, 0x5c, 0x9c, 0x15, 0x24, 0x0d, 0x0b, 0x71, 0x16, 0x7d, 0x74, 0x1d, 0xc6, 0x45, + 0x8e, 0x6a, 0xb1, 0x72, 0xcb, 0x86, 0xf0, 0x70, 0x1c, 0xeb, 0xc0, 0xfb, 0xc9, 0x02, 0x6c, 0x56, + 0x46, 0xdb, 0x70, 0x56, 0xcb, 0x19, 0x75, 0x25, 0x70, 0x98, 0x05, 0x80, 0xcb, 0x8e, 0x53, 0xed, + 0x82, 0x7f, 0xfc, 0xde, 0xc1, 0xdc, 0xd9, 0x8d, 0x22, 0x44, 0x5c, 0x4c, 0x07, 0xdd, 0x80, 0x53, + 0xdc, 0xef, 0xbb, 0x4a, 0x9c, 0x66, 0xcb, 0xf5, 0x14, 0x07, 0xc1, 0xb7, 0xfc, 0x99, 0x7b, 0x07, + 0x73, 0xa7, 0x16, 0xb2, 0x10, 0x70, 0x76, 0x3d, 0xf4, 0x61, 0xa8, 0x34, 0xbd, 0x50, 0x8c, 0xc1, + 0x90, 0x91, 0x96, 0xab, 0x52, 0x5d, 0xaf, 0xab, 0xef, 0x8f, 0xff, 0xe0, 0xb8, 0x02, 0xda, 0xe6, + 0x02, 0x66, 0x25, 0xf6, 0x18, 0x4e, 0xc5, 0xbd, 0x4a, 0x4a, 0x06, 0x0d, 0xcf, 0x4f, 0xae, 0x59, + 0x51, 0x0e, 0x11, 0x86, 0x53, 0xa8, 0x41, 0x18, 0xbd, 0x06, 0x48, 0x84, 0x7f, 0x5f, 0x68, 0xb0, + 0x6c, 0x25, 0x4c, 0x1e, 0x3f, 0x62, 0xfa, 0x22, 0xd6, 0x53, 0x18, 0x38, 0xa3, 0x16, 0xba, 0x4a, + 0x4f, 0x15, 0xbd, 0x54, 0x9c, 0x5a, 0x2a, 0x89, 0x62, 0x95, 0x74, 0x02, 0xc2, 0x2c, 0x9a, 0x4c, + 0x8a, 0x38, 0x51, 0x0f, 0x35, 0xe1, 0x31, 0xa7, 0x1b, 0xf9, 0x4c, 0x76, 0x6f, 0xa2, 0x6e, 0xf8, + 0xbb, 0xc4, 0x63, 0x6a, 0xb3, 0x91, 0xc5, 0xf3, 0x94, 0x45, 0x59, 0x28, 0xc0, 0xc3, 0x85, 0x54, + 0x28, 0x6b, 0xa9, 0xb2, 0x26, 0x83, 0x19, 0xcd, 0x2b, 0x23, 0x73, 0xf2, 0x8b, 0x30, 0xba, 0xe3, + 0x87, 0xd1, 0x3a, 0x89, 0xee, 0xf8, 0xc1, 0xae, 0x88, 0x4a, 0x1b, 0xc7, 0xf8, 0x8e, 0x41, 0x58, + 0xc7, 0xa3, 0x6f, 0x47, 0x66, 0xd4, 0xb1, 0x5a, 0x65, 0xfa, 0xf4, 0x91, 0xf8, 0x8c, 0xb9, 0xca, + 0x8b, 0xb1, 0x84, 0x4b, 0xd4, 0xd5, 0xda, 0x12, 0xd3, 0x8d, 0x27, 0x50, 0x57, 0x6b, 0x4b, 0x58, + 0xc2, 0xe9, 0x72, 0x0d, 0x77, 0x9c, 0x80, 0xd4, 0x02, 0xbf, 0x41, 0x42, 0x2d, 0xb2, 0xfc, 0xa3, + 0x3c, 0xe6, 0x2e, 0x5d, 0xae, 0xf5, 0x2c, 0x04, 0x9c, 0x5d, 0x0f, 0x91, 0x74, 0xbe, 0xb4, 0x89, + 0x7c, 0xa5, 0x46, 0x9a, 0x9f, 0xe9, 0x33, 0x65, 0x9a, 0x07, 0x53, 0x2a, 0x53, 0x1b, 0x8f, 0xb2, + 0x1b, 0xce, 0x4c, 0xb2, 0xb5, 0xdd, 0x7f, 0x88, 0x5e, 0xa5, 0x26, 0x5a, 0x4d, 0x50, 0xc2, 0x29, + 0xda, 0x46, 0xc0, 0xb6, 0xa9, 0x9e, 0x01, 0xdb, 0x2e, 0x41, 0x25, 0xec, 0x6e, 0x36, 0xfd, 0xb6, + 0xe3, 0x7a, 0x4c, 0x37, 0xae, 0x3d, 0x62, 0xea, 0x12, 0x80, 0x63, 0x1c, 0xb4, 0x02, 0x23, 0x8e, + 0xd4, 0x01, 0xa1, 0xfc, 0x10, 0x3d, 0x4a, 0xf3, 0xc3, 0xa3, 0x56, 0x48, 0xad, 0x8f, 0xaa, 0x8b, + 0x5e, 0x81, 0x71, 0xe1, 0xb7, 0x2c, 0x92, 0x84, 0x9e, 0x30, 0x9d, 0xcb, 0xea, 0x3a, 0x10, 0x9b, + 0xb8, 0xe8, 0x26, 0x8c, 0x46, 0x7e, 0x8b, 0x79, 0x48, 0x51, 0x36, 0xef, 0x74, 0x7e, 0xb0, 0xb9, + 0x0d, 0x85, 0xa6, 0x8b, 0x5f, 0x55, 0x55, 0xac, 0xd3, 0x41, 0x1b, 0x7c, 0xbd, 0xb3, 0x38, 0xf2, + 0x24, 0x9c, 0x79, 0x24, 0xff, 0x4e, 0x52, 0xe1, 0xe6, 0xcd, 0xed, 0x20, 0x6a, 0x62, 0x9d, 0x0c, + 0xba, 0x02, 0xd3, 0x9d, 0xc0, 0xf5, 0xd9, 0x9a, 0x50, 0xea, 0xbf, 0x19, 0x33, 0x6b, 0x54, 0x2d, + 0x89, 0x80, 0xd3, 0x75, 0x98, 0xdb, 0xb9, 0x28, 0x9c, 0x39, 0xc3, 0x33, 0x5f, 0xf0, 0x37, 0x21, + 0x2f, 0xc3, 0x0a, 0x8a, 0xd6, 0xd8, 0x49, 0xcc, 0xc5, 0x19, 0x33, 0xb3, 0xf9, 0x51, 0x81, 0x74, + 0xb1, 0x07, 0x67, 0x5e, 0xd5, 0x5f, 0x1c, 0x53, 0x40, 0x4d, 0x2d, 0xe1, 0x24, 0x7d, 0x31, 0x84, + 0x33, 0x8f, 0x15, 0x58, 0xd6, 0x25, 0x9e, 0x17, 0x31, 0x43, 0x60, 0x14, 0x87, 0x38, 0x41, 0x13, + 0x7d, 0x14, 0xa6, 0x44, 0x2c, 0xc3, 0x78, 0x98, 0xce, 0xc6, 0x76, 0xe7, 0x38, 0x01, 0xc3, 0x29, + 0x6c, 0x9e, 0x79, 0xc2, 0xd9, 0x6c, 0x11, 0x71, 0xf4, 0x5d, 0x77, 0xbd, 0xdd, 0x70, 0xe6, 0x1c, + 0x3b, 0x1f, 0x44, 0xe6, 0x89, 0x24, 0x14, 0x67, 0xd4, 0x40, 0x1b, 0x30, 0xd5, 0x09, 0x08, 0x69, + 0x33, 0x46, 0x5f, 0xdc, 0x67, 0x73, 0x3c, 0xea, 0x02, 0xed, 0x49, 0x2d, 0x01, 0xbb, 0x9f, 0x51, + 0x86, 0x53, 0x14, 0xd0, 0x1d, 0x18, 0xf1, 0xf7, 0x48, 0xb0, 0x43, 0x9c, 0xe6, 0xcc, 0xf9, 0x02, + 0x3f, 0x08, 0x71, 0xb9, 0xdd, 0x10, 0xb8, 0x09, 0x93, 0x01, 0x59, 0xdc, 0xdb, 0x64, 0x40, 0x36, + 0x86, 0x7e, 0xc4, 0x82, 0x33, 0x52, 0xcb, 0x50, 0xef, 0xd0, 0x51, 0x5f, 0xf2, 0xbd, 0x30, 0x0a, + 0x78, 0x9c, 0x80, 0xc7, 0xf3, 0x7d, 0xe7, 0x37, 0x72, 0x2a, 0x29, 0x89, 0xea, 0x99, 0x3c, 0x8c, + 0x10, 0xe7, 0xb7, 0x88, 0x96, 0x60, 0x3a, 0x24, 0x91, 0x3c, 0x8c, 0x16, 0xc2, 0x95, 0xd7, 0xab, + 0xeb, 0x33, 0x4f, 0xf0, 0x20, 0x07, 0x74, 0x33, 0xd4, 0x93, 0x40, 0x9c, 0xc6, 0x47, 0x97, 0xa1, + 0xe4, 0x87, 0x33, 0xef, 0x2d, 0xc8, 0x51, 0x4a, 0x9f, 0xe2, 0xdc, 0x74, 0xec, 0x46, 0x1d, 0x97, + 0xfc, 0x70, 0xf6, 0xdb, 0x61, 0x3a, 0xc5, 0x31, 0x1c, 0x26, 0xb7, 0xcf, 0xec, 0x2e, 0x8c, 0x1b, + 0xb3, 0xf2, 0x50, 0xb5, 0xd4, 0xff, 0x76, 0x18, 0x2a, 0x4a, 0x83, 0x89, 0x2e, 0x99, 0x8a, 0xe9, + 0x33, 0x49, 0xc5, 0xf4, 0x48, 0xcd, 0x6f, 0x1a, 0xba, 0xe8, 0x8d, 0x8c, 0x68, 0x70, 0x79, 0x67, + 0x40, 0xff, 0x06, 0xf2, 0x9a, 0x58, 0xb8, 0xdc, 0xb7, 0x86, 0x7b, 0xa0, 0x50, 0xd2, 0x7c, 0x05, + 0xa6, 0x3d, 0x9f, 0xb1, 0xa9, 0xa4, 0x29, 0x79, 0x10, 0xc6, 0x6a, 0x54, 0xf4, 0xf0, 0x2a, 0x09, + 0x04, 0x9c, 0xae, 0x43, 0x1b, 0xe4, 0xbc, 0x42, 0x52, 0xb4, 0xcd, 0x59, 0x09, 0x2c, 0xa0, 0xe8, + 0x09, 0x18, 0xec, 0xf8, 0xcd, 0xd5, 0x9a, 0x60, 0x51, 0xb5, 0x18, 0xa4, 0xcd, 0xd5, 0x1a, 0xe6, + 0x30, 0xb4, 0x00, 0x43, 0xec, 0x47, 0x38, 0x33, 0x96, 0x1f, 0x47, 0x83, 0xd5, 0xd0, 0x32, 0x27, + 0xb1, 0x0a, 0x58, 0x54, 0x64, 0x22, 0x36, 0xca, 0xd7, 0x33, 0x11, 0xdb, 0xf0, 0x03, 0x8a, 0xd8, + 0x24, 0x01, 0x1c, 0xd3, 0x42, 0x77, 0xe1, 0x94, 0xf1, 0x96, 0xe2, 0x4b, 0x84, 0x84, 0xc2, 0x97, + 0xff, 0x89, 0xc2, 0x47, 0x94, 0xd0, 0x88, 0x9f, 0x15, 0x9d, 0x3e, 0xb5, 0x9a, 0x45, 0x09, 0x67, + 0x37, 0x80, 0x5a, 0x30, 0xdd, 0x48, 0xb5, 0x3a, 0xd2, 0x7f, 0xab, 0x6a, 0x42, 0xd3, 0x2d, 0xa6, + 0x09, 0xa3, 0x57, 0x60, 0xe4, 0x4d, 0x3f, 0x64, 0xc7, 0xbb, 0x60, 0xab, 0xa5, 0x23, 0xf8, 0xc8, + 0xeb, 0x37, 0xea, 0xac, 0xfc, 0xfe, 0xc1, 0xdc, 0x68, 0xcd, 0x6f, 0xca, 0xbf, 0x58, 0x55, 0x40, + 0xdf, 0x6f, 0xc1, 0x6c, 0xfa, 0xb1, 0xa6, 0x3a, 0x3d, 0xde, 0x7f, 0xa7, 0x6d, 0xd1, 0xe8, 0xec, + 0x72, 0x2e, 0x39, 0x5c, 0xd0, 0x94, 0xfd, 0x4b, 0x16, 0x13, 0xd4, 0x09, 0x4d, 0x13, 0x09, 0xbb, + 0xad, 0xe3, 0x48, 0x18, 0xbb, 0x6c, 0x28, 0xc1, 0x1e, 0xd8, 0x42, 0xe2, 0x5f, 0x5a, 0xcc, 0x42, + 0xe2, 0x18, 0x5d, 0x21, 0x5e, 0x87, 0x91, 0x48, 0x26, 0xf2, 0x2d, 0xc8, 0x71, 0xab, 0x75, 0x8a, + 0x59, 0x89, 0x28, 0x26, 0x57, 0xe5, 0xec, 0x55, 0x64, 0xec, 0x7f, 0xc2, 0x67, 0x40, 0x42, 0x8e, + 0x41, 0xd7, 0x50, 0x35, 0x75, 0x0d, 0x73, 0x3d, 0xbe, 0x20, 0x47, 0xe7, 0xf0, 0x8f, 0xcd, 0x7e, + 0x33, 0xe1, 0xce, 0x3b, 0xdd, 0x34, 0xc7, 0xfe, 0xbc, 0x05, 0x10, 0x87, 0x78, 0xee, 0x23, 0x55, + 0xdb, 0x4b, 0x94, 0xad, 0xf5, 0x23, 0xbf, 0xe1, 0xb7, 0x84, 0x26, 0xed, 0xb1, 0x58, 0xdd, 0xc1, + 0xcb, 0xef, 0x6b, 0xbf, 0xb1, 0xc2, 0x46, 0x73, 0x32, 0xa0, 0x5c, 0x39, 0x56, 0xc0, 0x19, 0xc1, + 0xe4, 0xbe, 0x68, 0xc1, 0xc9, 0x2c, 0xbb, 0x5a, 0xfa, 0x48, 0xe2, 0x62, 0x2e, 0x65, 0x36, 0xa5, + 0x66, 0xf3, 0x96, 0x28, 0xc7, 0x0a, 0xa3, 0xef, 0x1c, 0x78, 0x87, 0x8b, 0xad, 0x7c, 0x03, 0xc6, + 0x6b, 0x01, 0xd1, 0x2e, 0xd7, 0x57, 0x79, 0x90, 0x02, 0xde, 0x9f, 0x67, 0x0e, 0x1d, 0xa0, 0xc0, + 0xfe, 0x72, 0x09, 0x4e, 0x72, 0xeb, 0x83, 0x85, 0x3d, 0xdf, 0x6d, 0xd6, 0xfc, 0xa6, 0xf0, 0x9e, + 0xfa, 0x04, 0x8c, 0x75, 0x34, 0xd9, 0x64, 0x51, 0x9c, 0x50, 0x5d, 0x86, 0x19, 0x4b, 0x53, 0xf4, + 0x52, 0x6c, 0xd0, 0x42, 0x4d, 0x18, 0x23, 0x7b, 0x6e, 0x43, 0xa9, 0xb0, 0x4b, 0x87, 0xbe, 0xe8, + 0x54, 0x2b, 0xcb, 0x1a, 0x1d, 0x6c, 0x50, 0x7d, 0x08, 0x99, 0xa9, 0xed, 0x1f, 0xb3, 0xe0, 0x91, + 0x9c, 0xa8, 0xa2, 0xb4, 0xb9, 0x3b, 0xcc, 0xce, 0x43, 0x2c, 0x5b, 0xd5, 0x1c, 0xb7, 0xfe, 0xc0, + 0x02, 0x8a, 0x3e, 0x06, 0xc0, 0xad, 0x37, 0xe8, 0x2b, 0xbd, 0x57, 0xf8, 0x45, 0x23, 0x72, 0x9c, + 0x16, 0x04, 0x4c, 0xd6, 0xc7, 0x1a, 0x2d, 0xfb, 0x8b, 0x03, 0x30, 0xc8, 0xb3, 0xe8, 0xd7, 0x60, + 0x78, 0x87, 0xe7, 0x89, 0x29, 0x9c, 0x37, 0x8a, 0x2b, 0x53, 0xcf, 0xc4, 0xf3, 0xa6, 0x95, 0x62, + 0x49, 0x06, 0xad, 0xc1, 0x09, 0x9e, 0xae, 0xa7, 0x55, 0x25, 0x2d, 0x67, 0x5f, 0x8a, 0xfd, 0x78, + 0x6e, 0x59, 0x25, 0xfe, 0x5c, 0x4d, 0xa3, 0xe0, 0xac, 0x7a, 0xe8, 0x55, 0x98, 0xa0, 0xcf, 0x30, + 0xbf, 0x1b, 0x49, 0x4a, 0x3c, 0x51, 0x8f, 0x7a, 0xf7, 0x6d, 0x18, 0x50, 0x9c, 0xc0, 0x46, 0xaf, + 0xc0, 0x78, 0x27, 0x25, 0xe0, 0x1c, 0x8c, 0x25, 0x01, 0xa6, 0x50, 0xd3, 0xc4, 0x65, 0xa6, 0xb5, + 0x5d, 0x66, 0x48, 0xbc, 0xb1, 0x13, 0x90, 0x70, 0xc7, 0x6f, 0x35, 0x19, 0xfb, 0x37, 0xa8, 0x99, + 0xd6, 0x26, 0xe0, 0x38, 0x55, 0x83, 0x52, 0xd9, 0x72, 0xdc, 0x56, 0x37, 0x20, 0x31, 0x95, 0x21, + 0x93, 0xca, 0x4a, 0x02, 0x8e, 0x53, 0x35, 0x7a, 0x4b, 0x6e, 0x87, 0x8f, 0x46, 0x72, 0x6b, 0xff, + 0x9d, 0x12, 0x18, 0x53, 0xfb, 0xad, 0x9b, 0x40, 0x88, 0x7e, 0xd9, 0x76, 0xd0, 0x69, 0x08, 0xcb, + 0x98, 0xcc, 0x2f, 0x8b, 0xf3, 0x82, 0xf2, 0x2f, 0xa3, 0xff, 0x31, 0xab, 0x45, 0xf7, 0xf8, 0xa9, + 0x5a, 0xe0, 0xd3, 0x4b, 0x4e, 0x86, 0xb1, 0x52, 0x16, 0xec, 0xc3, 0xd2, 0xbb, 0xb7, 0x20, 0xe0, + 0xa3, 0xb0, 0xf1, 0xe5, 0x14, 0x0c, 0x23, 0x92, 0xba, 0xf0, 0xb5, 0x97, 0x54, 0xd0, 0x65, 0x18, + 0x15, 0x59, 0x61, 0x98, 0xa1, 0x35, 0xdf, 0x4c, 0xcc, 0xe8, 0xa5, 0x1a, 0x17, 0x63, 0x1d, 0xc7, + 0xfe, 0x81, 0x12, 0x9c, 0xc8, 0xf0, 0x94, 0xe1, 0xd7, 0xc8, 0xb6, 0x1b, 0x46, 0x2a, 0xf5, 0xa8, + 0x76, 0x8d, 0xf0, 0x72, 0xac, 0x30, 0xe8, 0x59, 0xc5, 0x2f, 0xaa, 0xe4, 0xe5, 0x24, 0x2c, 0xd1, + 0x05, 0xf4, 0x90, 0x49, 0x3c, 0xcf, 0xc3, 0x40, 0x37, 0x24, 0x32, 0x54, 0xab, 0xba, 0xb6, 0x99, + 0x5a, 0x93, 0x41, 0xe8, 0x33, 0x6a, 0x5b, 0x69, 0x08, 0xb5, 0x67, 0x14, 0xd7, 0x11, 0x72, 0x18, + 0xed, 0x5c, 0x44, 0x3c, 0xc7, 0x8b, 0xc4, 0x63, 0x2b, 0x8e, 0x39, 0xc8, 0x4a, 0xb1, 0x80, 0xda, + 0x5f, 0x28, 0xc3, 0x99, 0x5c, 0xdf, 0x39, 0xda, 0xf5, 0xb6, 0xef, 0xb9, 0x91, 0xaf, 0xac, 0x89, + 0x78, 0x9c, 0x41, 0xd2, 0xd9, 0x59, 0x13, 0xe5, 0x58, 0x61, 0xa0, 0x0b, 0x30, 0xc8, 0x84, 0xa2, + 0xa9, 0x24, 0xac, 0x8b, 0x55, 0x1e, 0x78, 0x8a, 0x83, 0xfb, 0xce, 0x9b, 0xfd, 0x04, 0xe5, 0x60, + 0xfc, 0x56, 0xf2, 0x42, 0xa1, 0xdd, 0xf5, 0xfd, 0x16, 0x66, 0x40, 0xf4, 0x3e, 0x31, 0x5e, 0x09, + 0xf3, 0x19, 0xec, 0x34, 0xfd, 0x50, 0x1b, 0xb4, 0xa7, 0x60, 0x78, 0x97, 0xec, 0x07, 0xae, 0xb7, + 0x9d, 0x34, 0xab, 0xba, 0xc6, 0x8b, 0xb1, 0x84, 0x9b, 0x59, 0x03, 0x87, 0x8f, 0x3a, 0xe1, 0xf5, + 0x48, 0x4f, 0xf6, 0xe4, 0x87, 0xca, 0x30, 0x89, 0x17, 0xab, 0xef, 0x4e, 0xc4, 0xcd, 0xf4, 0x44, + 0x1c, 0x75, 0xc2, 0xeb, 0xde, 0xb3, 0xf1, 0xf3, 0x16, 0x4c, 0xb2, 0xdc, 0x34, 0xc2, 0x43, 0xde, + 0xf5, 0xbd, 0x63, 0x78, 0x0a, 0x3c, 0x01, 0x83, 0x01, 0x6d, 0x34, 0x99, 0x7d, 0x95, 0xf5, 0x04, + 0x73, 0x18, 0x7a, 0x0c, 0x06, 0x58, 0x17, 0xe8, 0xe4, 0x8d, 0xf1, 0x23, 0xb8, 0xea, 0x44, 0x0e, + 0x66, 0xa5, 0x2c, 0xec, 0x12, 0x26, 0x9d, 0x96, 0xcb, 0x3b, 0x1d, 0xab, 0xac, 0xdf, 0x19, 0x5e, + 0xf5, 0x99, 0x5d, 0x7b, 0x7b, 0x61, 0x97, 0xb2, 0x49, 0x16, 0x3f, 0xb3, 0xff, 0xa8, 0x04, 0xe7, + 0x32, 0xeb, 0xf5, 0x1d, 0x76, 0xa9, 0xb8, 0xf6, 0xc3, 0xcc, 0x3e, 0x52, 0x3e, 0x46, 0xa3, 0xd5, + 0x81, 0x7e, 0xb9, 0xff, 0xc1, 0x3e, 0xa2, 0x21, 0x65, 0x0e, 0xd9, 0x3b, 0x24, 0x1a, 0x52, 0x66, + 0xdf, 0x72, 0xc4, 0x04, 0x7f, 0x5e, 0xca, 0xf9, 0x16, 0x26, 0x30, 0xb8, 0x48, 0xcf, 0x19, 0x06, + 0x0c, 0xe5, 0x23, 0x9c, 0x9f, 0x31, 0xbc, 0x0c, 0x2b, 0x28, 0x5a, 0x80, 0xc9, 0xb6, 0xeb, 0xd1, + 0xc3, 0x67, 0xdf, 0x64, 0xc5, 0x55, 0xb0, 0xba, 0x35, 0x13, 0x8c, 0x93, 0xf8, 0xc8, 0xd5, 0x22, + 0x25, 0xf1, 0xaf, 0x7b, 0xe5, 0x50, 0xbb, 0x6e, 0xde, 0x54, 0xe7, 0xab, 0x51, 0xcc, 0x88, 0x9a, + 0xb4, 0xa6, 0xc9, 0x89, 0xca, 0xfd, 0xcb, 0x89, 0xc6, 0xb2, 0x65, 0x44, 0xb3, 0xaf, 0xc0, 0xf8, + 0x03, 0x2b, 0x06, 0xec, 0xaf, 0x95, 0xe1, 0xd1, 0x82, 0x6d, 0xcf, 0xcf, 0x7a, 0x63, 0x0e, 0xb4, + 0xb3, 0x3e, 0x35, 0x0f, 0x35, 0x38, 0xb9, 0xd5, 0x6d, 0xb5, 0xf6, 0x99, 0x2f, 0x07, 0x69, 0x4a, + 0x0c, 0xc1, 0x53, 0x4a, 0xe1, 0xc8, 0xc9, 0x95, 0x0c, 0x1c, 0x9c, 0x59, 0x93, 0x3e, 0xb1, 0xe8, + 0x4d, 0xb2, 0xaf, 0x48, 0x25, 0x9e, 0x58, 0x58, 0x07, 0x62, 0x13, 0x17, 0x5d, 0x81, 0x69, 0x67, + 0xcf, 0x71, 0x79, 0xb8, 0x69, 0x49, 0x80, 0xbf, 0xb1, 0x94, 0x3c, 0x77, 0x21, 0x89, 0x80, 0xd3, + 0x75, 0xd0, 0x6b, 0x80, 0xfc, 0x4d, 0x66, 0xf1, 0xdd, 0xbc, 0x42, 0x3c, 0xa1, 0x75, 0x65, 0x73, + 0x57, 0x8e, 0x8f, 0x84, 0x1b, 0x29, 0x0c, 0x9c, 0x51, 0x2b, 0x11, 0x11, 0x68, 0x28, 0x3f, 0x22, + 0x50, 0xf1, 0xb9, 0xd8, 0x33, 0xf1, 0xcd, 0x7f, 0xb6, 0xe8, 0xf5, 0xc5, 0x99, 0x7c, 0x33, 0x80, + 0xe6, 0x2b, 0xcc, 0x6a, 0x92, 0xcb, 0x7a, 0xb5, 0xf8, 0x29, 0xa7, 0x34, 0xab, 0xc9, 0x18, 0x88, + 0x4d, 0x5c, 0xbe, 0x20, 0xc2, 0xd8, 0x6d, 0xd7, 0x60, 0xf1, 0x45, 0x94, 0x2f, 0x85, 0x81, 0x3e, + 0x0e, 0xc3, 0x4d, 0x77, 0xcf, 0x0d, 0x85, 0xa4, 0xeb, 0xd0, 0x6a, 0xa5, 0xf8, 0x1c, 0xac, 0x72, + 0x32, 0x58, 0xd2, 0xb3, 0x7f, 0xa8, 0x04, 0xe3, 0xb2, 0xc5, 0xd7, 0xbb, 0x7e, 0xe4, 0x1c, 0xc3, + 0xb5, 0x7c, 0xc5, 0xb8, 0x96, 0xdf, 0x57, 0x14, 0xea, 0x8c, 0x75, 0x29, 0xf7, 0x3a, 0xbe, 0x91, + 0xb8, 0x8e, 0x9f, 0xec, 0x4d, 0xaa, 0xf8, 0x1a, 0xfe, 0xa7, 0x16, 0x4c, 0x1b, 0xf8, 0xc7, 0x70, + 0x1b, 0xac, 0x98, 0xb7, 0xc1, 0xe3, 0x3d, 0xbf, 0x21, 0xe7, 0x16, 0xf8, 0xde, 0x72, 0xa2, 0xef, + 0xec, 0xf4, 0x7f, 0x13, 0x06, 0x76, 0x9c, 0xa0, 0x59, 0x94, 0xda, 0x21, 0x55, 0x69, 0xfe, 0xaa, + 0x13, 0x08, 0xb5, 0xf3, 0x33, 0x72, 0xd4, 0x69, 0x51, 0x4f, 0x95, 0x33, 0x6b, 0x0a, 0xbd, 0x04, + 0x43, 0x61, 0xc3, 0xef, 0x28, 0x4f, 0x8e, 0xf3, 0x6c, 0xa0, 0x59, 0xc9, 0xfd, 0x83, 0x39, 0x64, + 0x36, 0x47, 0x8b, 0xb1, 0xc0, 0x47, 0x9f, 0x80, 0x71, 0xf6, 0x4b, 0xd9, 0x80, 0x95, 0xf3, 0xc5, + 0x11, 0x75, 0x1d, 0x91, 0x1b, 0x48, 0x1a, 0x45, 0xd8, 0x24, 0x35, 0xbb, 0x0d, 0x15, 0xf5, 0x59, + 0x0f, 0x55, 0x6f, 0xfb, 0x1f, 0xcb, 0x70, 0x22, 0x63, 0xcd, 0xa1, 0xd0, 0x98, 0x89, 0xcb, 0x7d, + 0x2e, 0xd5, 0xb7, 0x39, 0x17, 0x21, 0x7b, 0x0d, 0x35, 0xc5, 0xda, 0xea, 0xbb, 0xd1, 0x9b, 0x21, + 0x49, 0x36, 0x4a, 0x8b, 0x7a, 0x37, 0x4a, 0x1b, 0x3b, 0xb6, 0xa1, 0xa6, 0x0d, 0xa9, 0x9e, 0x3e, + 0xd4, 0x39, 0xfd, 0xd3, 0x32, 0x9c, 0xcc, 0x8a, 0xbe, 0x88, 0x3e, 0x9b, 0x48, 0x2c, 0xfa, 0x42, + 0xbf, 0x71, 0x1b, 0x79, 0xb6, 0x51, 0x11, 0x10, 0x6e, 0xde, 0x4c, 0x35, 0xda, 0x73, 0x98, 0x45, + 0x9b, 0x2c, 0x24, 0x45, 0xc0, 0x13, 0xc2, 0xca, 0xe3, 0xe3, 0x83, 0x7d, 0x77, 0x40, 0x64, 0x92, + 0x0d, 0x13, 0xf6, 0x25, 0xb2, 0xb8, 0xb7, 0x7d, 0x89, 0x6c, 0x79, 0xd6, 0x85, 0x51, 0xed, 0x6b, + 0x1e, 0xea, 0x8c, 0xef, 0xd2, 0xdb, 0x4a, 0xeb, 0xf7, 0x43, 0x9d, 0xf5, 0x1f, 0xb3, 0x20, 0xe1, + 0x72, 0xa0, 0xc4, 0x62, 0x56, 0xae, 0x58, 0xec, 0x3c, 0x0c, 0x04, 0x7e, 0x8b, 0x24, 0x33, 0x70, + 0x62, 0xbf, 0x45, 0x30, 0x83, 0x50, 0x8c, 0x28, 0x16, 0x76, 0x8c, 0xe9, 0x0f, 0x39, 0xf1, 0x44, + 0x7b, 0x02, 0x06, 0x5b, 0x64, 0x8f, 0xb4, 0x92, 0x89, 0x92, 0xae, 0xd3, 0x42, 0xcc, 0x61, 0xf6, + 0xcf, 0x0f, 0xc0, 0xd9, 0xc2, 0xa0, 0x2e, 0xf4, 0x39, 0xb4, 0xed, 0x44, 0xe4, 0x8e, 0xb3, 0x9f, + 0xcc, 0x68, 0x72, 0x85, 0x17, 0x63, 0x09, 0x67, 0x9e, 0x64, 0x3c, 0x30, 0x79, 0x42, 0x88, 0x28, + 0xe2, 0x91, 0x0b, 0xa8, 0x29, 0x94, 0x2a, 0x1f, 0x85, 0x50, 0xea, 0x39, 0x80, 0x30, 0x6c, 0x71, + 0xc3, 0xac, 0xa6, 0x70, 0x51, 0x8b, 0x03, 0xd8, 0xd7, 0xaf, 0x0b, 0x08, 0xd6, 0xb0, 0x50, 0x15, + 0xa6, 0x3a, 0x81, 0x1f, 0x71, 0x99, 0x6c, 0x95, 0xdb, 0x2e, 0x0e, 0x9a, 0xf1, 0x34, 0x6a, 0x09, + 0x38, 0x4e, 0xd5, 0x40, 0x2f, 0xc2, 0xa8, 0x88, 0xb1, 0x51, 0xf3, 0xfd, 0x96, 0x10, 0x03, 0x29, + 0x73, 0xbe, 0x7a, 0x0c, 0xc2, 0x3a, 0x9e, 0x56, 0x8d, 0x09, 0x7a, 0x87, 0x33, 0xab, 0x71, 0x61, + 0xaf, 0x86, 0x97, 0x88, 0xc4, 0x3a, 0xd2, 0x57, 0x24, 0xd6, 0x58, 0x30, 0x56, 0xe9, 0x5b, 0xef, + 0x08, 0x3d, 0x45, 0x49, 0x3f, 0x3b, 0x00, 0x27, 0xc4, 0xc2, 0x79, 0xd8, 0xcb, 0xe5, 0x66, 0x7a, + 0xb9, 0x1c, 0x85, 0xe8, 0xec, 0xdd, 0x35, 0x73, 0xdc, 0x6b, 0xe6, 0x87, 0x2d, 0x30, 0xd9, 0x2b, + 0xf4, 0x17, 0x72, 0x53, 0x42, 0xbd, 0x98, 0xcb, 0xae, 0xa9, 0xa8, 0x9e, 0x6f, 0x33, 0x39, 0x94, + 0xfd, 0x9f, 0x2c, 0x78, 0xbc, 0x27, 0x45, 0xb4, 0x0c, 0x15, 0xc6, 0x03, 0x6a, 0xaf, 0xb3, 0x27, + 0x95, 0x6d, 0xb3, 0x04, 0xe4, 0xb0, 0xa4, 0x71, 0x4d, 0xb4, 0x9c, 0xca, 0xbd, 0xf5, 0x54, 0x46, + 0xee, 0xad, 0x53, 0xc6, 0xf0, 0x3c, 0x60, 0xf2, 0xad, 0x1f, 0xa4, 0x37, 0x8e, 0xe1, 0x57, 0x84, + 0x3e, 0x68, 0x88, 0xfd, 0xec, 0x84, 0xd8, 0x0f, 0x99, 0xd8, 0xda, 0x1d, 0xf2, 0x51, 0x98, 0x62, + 0xc1, 0xb7, 0x98, 0xa5, 0xbd, 0xf0, 0x78, 0x2a, 0xc5, 0xd6, 0xb4, 0xd7, 0x13, 0x30, 0x9c, 0xc2, + 0xb6, 0xff, 0xb0, 0x0c, 0x43, 0x7c, 0xfb, 0x1d, 0xc3, 0x9b, 0xf0, 0x69, 0xa8, 0xb8, 0xed, 0x76, + 0x97, 0xa7, 0x53, 0x1a, 0xe4, 0xbe, 0xd1, 0x74, 0x9e, 0x56, 0x65, 0x21, 0x8e, 0xe1, 0x68, 0x45, + 0x48, 0x9c, 0x0b, 0xe2, 0x7b, 0xf2, 0x8e, 0xcf, 0x57, 0x9d, 0xc8, 0xe1, 0x0c, 0x8e, 0xba, 0x67, + 0x63, 0xd9, 0x34, 0xfa, 0x14, 0x40, 0x18, 0x05, 0xae, 0xb7, 0x4d, 0xcb, 0x44, 0x58, 0xe1, 0xf7, + 0x17, 0x50, 0xab, 0x2b, 0x64, 0x4e, 0x33, 0x3e, 0x73, 0x14, 0x00, 0x6b, 0x14, 0xd1, 0xbc, 0x71, + 0xd3, 0xcf, 0x26, 0xe6, 0x0e, 0x38, 0xd5, 0x78, 0xce, 0x66, 0x3f, 0x04, 0x15, 0x45, 0xbc, 0x97, + 0xfc, 0x69, 0x4c, 0x67, 0x8b, 0x3e, 0x02, 0x93, 0x89, 0xbe, 0x1d, 0x4a, 0x7c, 0xf5, 0x0b, 0x16, + 0x4c, 0xf2, 0xce, 0x2c, 0x7b, 0x7b, 0xe2, 0x36, 0x78, 0x0b, 0x4e, 0xb6, 0x32, 0x4e, 0x65, 0x31, + 0xfd, 0xfd, 0x9f, 0xe2, 0x4a, 0x5c, 0x95, 0x05, 0xc5, 0x99, 0x6d, 0xa0, 0x8b, 0x74, 0xc7, 0xd1, + 0x53, 0xd7, 0x69, 0x09, 0x57, 0xe9, 0x31, 0xbe, 0xdb, 0x78, 0x19, 0x56, 0x50, 0xfb, 0x77, 0x2c, + 0x98, 0xe6, 0x3d, 0xbf, 0x46, 0xf6, 0xd5, 0xd9, 0xf4, 0x8d, 0xec, 0xbb, 0x48, 0xe4, 0x57, 0xca, + 0x49, 0xe4, 0xa7, 0x7f, 0x5a, 0xb9, 0xf0, 0xd3, 0xbe, 0x6c, 0x81, 0x58, 0x21, 0xc7, 0x20, 0x84, + 0xf8, 0x76, 0x53, 0x08, 0x31, 0x9b, 0xbf, 0x09, 0x72, 0xa4, 0x0f, 0x7f, 0x66, 0xc1, 0x14, 0x47, + 0x88, 0xb5, 0xe5, 0xdf, 0xd0, 0x79, 0xe8, 0x27, 0xdd, 0xf7, 0x35, 0xb2, 0xbf, 0xe1, 0xd7, 0x9c, + 0x68, 0x27, 0xfb, 0xa3, 0x8c, 0xc9, 0x1a, 0x28, 0x9c, 0xac, 0xa6, 0xdc, 0x40, 0x46, 0x9e, 0x9b, + 0x1e, 0xf1, 0x23, 0x0e, 0x9b, 0xe7, 0xc6, 0xfe, 0xba, 0x05, 0x88, 0x37, 0x63, 0x30, 0x6e, 0x94, + 0x1d, 0x62, 0xa5, 0xda, 0x45, 0x17, 0x1f, 0x4d, 0x0a, 0x82, 0x35, 0xac, 0x23, 0x19, 0x9e, 0x84, + 0xc9, 0x43, 0xb9, 0xb7, 0xc9, 0xc3, 0x21, 0x46, 0xf4, 0xdf, 0x0d, 0x41, 0xd2, 0xb7, 0x0a, 0xdd, + 0x82, 0xb1, 0x86, 0xd3, 0x71, 0x36, 0xdd, 0x96, 0x1b, 0xb9, 0x24, 0x2c, 0xb2, 0x87, 0x5a, 0xd2, + 0xf0, 0x84, 0x92, 0x5a, 0x2b, 0xc1, 0x06, 0x1d, 0x34, 0x0f, 0xd0, 0x09, 0xdc, 0x3d, 0xb7, 0x45, + 0xb6, 0x99, 0xac, 0x84, 0x05, 0x67, 0xe0, 0xc6, 0x59, 0xb2, 0x14, 0x6b, 0x18, 0x19, 0x8e, 0xec, + 0xe5, 0x87, 0xec, 0xc8, 0x0e, 0xc7, 0xe6, 0xc8, 0x3e, 0x70, 0x28, 0x47, 0xf6, 0x91, 0x43, 0x3b, + 0xb2, 0x0f, 0xf6, 0xe5, 0xc8, 0x8e, 0xe1, 0xb4, 0xe4, 0x3d, 0xe9, 0xff, 0x15, 0xb7, 0x45, 0xc4, + 0x83, 0x83, 0x47, 0x94, 0x98, 0xbd, 0x77, 0x30, 0x77, 0x1a, 0x67, 0x62, 0xe0, 0x9c, 0x9a, 0xe8, + 0x63, 0x30, 0xe3, 0xb4, 0x5a, 0xfe, 0x1d, 0x35, 0xa9, 0xcb, 0x61, 0xc3, 0x69, 0x71, 0x25, 0xc4, + 0x30, 0xa3, 0xfa, 0xd8, 0xbd, 0x83, 0xb9, 0x99, 0x85, 0x1c, 0x1c, 0x9c, 0x5b, 0x1b, 0x7d, 0x18, + 0x2a, 0x9d, 0xc0, 0x6f, 0xac, 0x69, 0x0e, 0xa0, 0xe7, 0xe8, 0x00, 0xd6, 0x64, 0xe1, 0xfd, 0x83, + 0xb9, 0x71, 0xf5, 0x87, 0x5d, 0xf8, 0x71, 0x85, 0x0c, 0xcf, 0xf4, 0xd1, 0x23, 0xf5, 0x4c, 0xdf, + 0x85, 0x13, 0x75, 0x12, 0xb8, 0x4e, 0xcb, 0x7d, 0x8b, 0xf2, 0xcb, 0xf2, 0x7c, 0xda, 0x80, 0x4a, + 0x90, 0x38, 0x91, 0xfb, 0x8a, 0xb9, 0xa9, 0x25, 0x1c, 0x91, 0x27, 0x70, 0x4c, 0xc8, 0xfe, 0x3f, + 0x16, 0x0c, 0x0b, 0x5f, 0xaa, 0x63, 0xe0, 0x1a, 0x17, 0x0c, 0x4d, 0xc2, 0x5c, 0xf6, 0x80, 0xb1, + 0xce, 0xe4, 0xea, 0x10, 0x56, 0x13, 0x3a, 0x84, 0xc7, 0x8b, 0x88, 0x14, 0x6b, 0x0f, 0xfe, 0x46, + 0x99, 0x72, 0xef, 0x86, 0x57, 0xef, 0xc3, 0x1f, 0x82, 0x75, 0x18, 0x0e, 0x85, 0x57, 0x69, 0x29, + 0xdf, 0xa7, 0x21, 0x39, 0x89, 0xb1, 0x1d, 0x9b, 0xf0, 0x23, 0x95, 0x44, 0x32, 0xdd, 0x55, 0xcb, + 0x0f, 0xd1, 0x5d, 0xb5, 0x97, 0xdf, 0xf3, 0xc0, 0x51, 0xf8, 0x3d, 0xdb, 0x5f, 0x65, 0x37, 0xa7, + 0x5e, 0x7e, 0x0c, 0x4c, 0xd5, 0x15, 0xf3, 0x8e, 0xb5, 0x0b, 0x56, 0x96, 0xe8, 0x54, 0x0e, 0x73, + 0xf5, 0x73, 0x16, 0x9c, 0xcd, 0xf8, 0x2a, 0x8d, 0xd3, 0x7a, 0x06, 0x46, 0x9c, 0x6e, 0xd3, 0x55, + 0x7b, 0x59, 0xd3, 0x27, 0x2e, 0x88, 0x72, 0xac, 0x30, 0xd0, 0x12, 0x4c, 0x93, 0xbb, 0x1d, 0x97, + 0xab, 0x52, 0x75, 0xf3, 0xdf, 0x32, 0x77, 0xc0, 0x5b, 0x4e, 0x02, 0x71, 0x1a, 0x5f, 0xc5, 0x9a, + 0x29, 0xe7, 0xc6, 0x9a, 0xf9, 0xfb, 0x16, 0x8c, 0x2a, 0xbf, 0xca, 0x87, 0x3e, 0xda, 0x1f, 0x35, + 0x47, 0xfb, 0xd1, 0x82, 0xd1, 0xce, 0x19, 0xe6, 0xdf, 0x2a, 0xa9, 0xfe, 0xd6, 0xfc, 0x20, 0xea, + 0x83, 0x83, 0x7b, 0x70, 0xd7, 0x85, 0xcb, 0x30, 0xea, 0x74, 0x3a, 0x12, 0x20, 0x6d, 0xd0, 0x58, + 0x04, 0xe5, 0xb8, 0x18, 0xeb, 0x38, 0xca, 0x93, 0xa2, 0x9c, 0xeb, 0x49, 0xd1, 0x04, 0x88, 0x9c, + 0x60, 0x9b, 0x44, 0xb4, 0x4c, 0x98, 0xcc, 0xe6, 0x9f, 0x37, 0xdd, 0xc8, 0x6d, 0xcd, 0xbb, 0x5e, + 0x14, 0x46, 0xc1, 0xfc, 0xaa, 0x17, 0xdd, 0x08, 0xf8, 0x13, 0x52, 0x8b, 0xd6, 0xa4, 0x68, 0x61, + 0x8d, 0xae, 0x8c, 0x21, 0xc0, 0xda, 0x18, 0x34, 0x8d, 0x19, 0xd6, 0x45, 0x39, 0x56, 0x18, 0xf6, + 0x87, 0xd8, 0xed, 0xc3, 0xc6, 0xf4, 0x70, 0x91, 0x8a, 0xfe, 0xe1, 0x98, 0x9a, 0x0d, 0xa6, 0xc9, + 0xac, 0xea, 0xf1, 0x90, 0x8a, 0x0f, 0x7b, 0xda, 0xb0, 0xee, 0xd7, 0x17, 0x07, 0x4d, 0x42, 0xdf, + 0x91, 0x32, 0x50, 0x79, 0xb6, 0xc7, 0xad, 0x71, 0x08, 0x93, 0x14, 0x96, 0x4e, 0x85, 0x25, 0x9b, + 0x58, 0xad, 0x89, 0x7d, 0xa1, 0xa5, 0x53, 0x11, 0x00, 0x1c, 0xe3, 0x50, 0x66, 0x4a, 0xfd, 0x09, + 0x67, 0x50, 0x1c, 0x56, 0x54, 0x61, 0x87, 0x58, 0xc3, 0x40, 0x97, 0x84, 0x40, 0x81, 0xeb, 0x05, + 0x1e, 0x4d, 0x08, 0x14, 0xe4, 0x70, 0x69, 0x52, 0xa0, 0xcb, 0x30, 0xaa, 0x32, 0x68, 0xd7, 0x78, + 0x22, 0x23, 0xb1, 0xcc, 0x96, 0xe3, 0x62, 0xac, 0xe3, 0xa0, 0x0d, 0x98, 0x0c, 0xb9, 0x9c, 0x4d, + 0xc5, 0x7a, 0xe6, 0xf2, 0xca, 0xf7, 0x4b, 0x2b, 0xa0, 0xba, 0x09, 0xbe, 0xcf, 0x8a, 0xf8, 0xe9, + 0x24, 0xfd, 0xfc, 0x93, 0x24, 0xd0, 0xab, 0x30, 0xd1, 0xf2, 0x9d, 0xe6, 0xa2, 0xd3, 0x72, 0xbc, + 0x06, 0x1b, 0x9f, 0x11, 0x33, 0x11, 0xeb, 0x75, 0x03, 0x8a, 0x13, 0xd8, 0x94, 0x79, 0xd3, 0x4b, + 0x44, 0x7c, 0x72, 0xc7, 0xdb, 0x26, 0xa1, 0xc8, 0x87, 0xcc, 0x98, 0xb7, 0xeb, 0x39, 0x38, 0x38, + 0xb7, 0x36, 0x7a, 0x09, 0xc6, 0xe4, 0xe7, 0x6b, 0x61, 0x31, 0x62, 0xa7, 0x14, 0x0d, 0x86, 0x0d, + 0x4c, 0x74, 0x07, 0x4e, 0xc9, 0xff, 0x1b, 0x81, 0xb3, 0xb5, 0xe5, 0x36, 0x84, 0xaf, 0x38, 0xf7, + 0x5e, 0x5d, 0x90, 0x2e, 0x96, 0xcb, 0x59, 0x48, 0xf7, 0x0f, 0xe6, 0xce, 0x8b, 0x51, 0xcb, 0x84, + 0xb3, 0x49, 0xcc, 0xa6, 0x8f, 0xd6, 0xe0, 0xc4, 0x0e, 0x71, 0x5a, 0xd1, 0xce, 0xd2, 0x0e, 0x69, + 0xec, 0xca, 0x4d, 0xc7, 0x82, 0x6d, 0x68, 0x0e, 0x1c, 0x57, 0xd3, 0x28, 0x38, 0xab, 0x1e, 0x7a, + 0x03, 0x66, 0x3a, 0xdd, 0xcd, 0x96, 0x1b, 0xee, 0xac, 0xfb, 0x11, 0x33, 0x05, 0x52, 0x09, 0xb9, + 0x45, 0x54, 0x0e, 0x15, 0xce, 0xa4, 0x96, 0x83, 0x87, 0x73, 0x29, 0xa0, 0xb7, 0xe0, 0x54, 0x62, + 0x31, 0x88, 0xb8, 0x04, 0x13, 0xf9, 0xd9, 0x1e, 0xea, 0x59, 0x15, 0x44, 0x88, 0x8f, 0x2c, 0x10, + 0xce, 0x6e, 0x02, 0xbd, 0x0c, 0xe0, 0x76, 0x56, 0x9c, 0xb6, 0xdb, 0xa2, 0xcf, 0xc5, 0x13, 0x6c, + 0x9d, 0xd0, 0xa7, 0x03, 0xac, 0xd6, 0x64, 0x29, 0x3d, 0x9f, 0xc5, 0xbf, 0x7d, 0xac, 0x61, 0xa3, + 0x1a, 0x4c, 0x88, 0x7f, 0xfb, 0x62, 0x5a, 0xa7, 0x55, 0x08, 0x80, 0x09, 0x59, 0x43, 0xcd, 0x25, + 0x32, 0x4b, 0xd8, 0xec, 0x25, 0xea, 0xa3, 0x6d, 0x38, 0x2b, 0xb3, 0x77, 0xe9, 0xeb, 0x54, 0xce, + 0x43, 0xc8, 0xd2, 0x2c, 0x8c, 0x70, 0xff, 0x90, 0x85, 0x22, 0x44, 0x5c, 0x4c, 0x87, 0xde, 0xef, + 0xfa, 0x72, 0xe7, 0x1e, 0xb4, 0xa7, 0xb8, 0x79, 0x12, 0xbd, 0xdf, 0xaf, 0x27, 0x81, 0x38, 0x8d, + 0x8f, 0x42, 0x38, 0xe5, 0x7a, 0x59, 0xab, 0xfb, 0x34, 0x23, 0xf4, 0x11, 0xee, 0x3c, 0x5c, 0xbc, + 0xb2, 0x33, 0xe1, 0x7c, 0x65, 0x67, 0xd2, 0x7e, 0x7b, 0x56, 0x78, 0xbf, 0x6d, 0xd1, 0xda, 0x1a, + 0xa7, 0x8e, 0x3e, 0x0d, 0x63, 0xfa, 0x87, 0x09, 0xae, 0xe3, 0x42, 0x36, 0x23, 0xab, 0x9d, 0x0f, + 0x9c, 0xcf, 0x57, 0x67, 0x80, 0x0e, 0xc3, 0x06, 0x45, 0xd4, 0xc8, 0x70, 0xb3, 0xbf, 0xd4, 0x1f, + 0x57, 0xd3, 0xbf, 0x11, 0x1a, 0x81, 0xec, 0x65, 0x8f, 0xae, 0xc3, 0x48, 0xa3, 0xe5, 0x12, 0x2f, + 0x5a, 0xad, 0x15, 0xc5, 0xd2, 0x5b, 0x12, 0x38, 0x62, 0x1f, 0x89, 0xac, 0x09, 0xbc, 0x0c, 0x2b, + 0x0a, 0xf6, 0xaf, 0x96, 0x60, 0xae, 0x47, 0x0a, 0x8e, 0x84, 0x4a, 0xca, 0xea, 0x4b, 0x25, 0xb5, + 0x20, 0xb3, 0xce, 0xaf, 0x27, 0xa4, 0x5d, 0x89, 0x8c, 0xf2, 0xb1, 0xcc, 0x2b, 0x89, 0xdf, 0xb7, + 0x8b, 0x80, 0xae, 0xd5, 0x1a, 0xe8, 0xe9, 0xe4, 0x62, 0x68, 0xb3, 0x07, 0xfb, 0x7f, 0x02, 0xe7, + 0x6a, 0x26, 0xed, 0xaf, 0x96, 0xe0, 0x94, 0x1a, 0xc2, 0x6f, 0xdd, 0x81, 0xbb, 0x99, 0x1e, 0xb8, + 0x23, 0xd0, 0xeb, 0xda, 0x37, 0x60, 0x88, 0x07, 0x07, 0xec, 0x83, 0xf5, 0x7e, 0xc2, 0x0c, 0xbe, + 0xab, 0xb8, 0x3d, 0x23, 0x00, 0xef, 0xf7, 0x5b, 0x30, 0x99, 0xf0, 0x35, 0x43, 0x58, 0x73, 0x48, + 0x7e, 0x10, 0xf6, 0x38, 0x8b, 0xf1, 0x3e, 0x0f, 0x03, 0x3b, 0x7e, 0x18, 0x25, 0x8d, 0x3e, 0xae, + 0xfa, 0x61, 0x84, 0x19, 0xc4, 0xfe, 0x5d, 0x0b, 0x06, 0x37, 0x1c, 0xd7, 0x8b, 0xa4, 0x82, 0xc0, + 0xca, 0x51, 0x10, 0xf4, 0xf3, 0x5d, 0xe8, 0x45, 0x18, 0x22, 0x5b, 0x5b, 0xa4, 0x11, 0x89, 0x59, + 0x95, 0xd1, 0x1c, 0x86, 0x96, 0x59, 0x29, 0xe5, 0x05, 0x59, 0x63, 0xfc, 0x2f, 0x16, 0xc8, 0xe8, + 0x36, 0x54, 0x22, 0xb7, 0x4d, 0x16, 0x9a, 0x4d, 0xa1, 0x36, 0x7f, 0x80, 0x88, 0x14, 0x1b, 0x92, + 0x00, 0x8e, 0x69, 0xd9, 0x5f, 0x28, 0x01, 0xc4, 0x51, 0x95, 0x7a, 0x7d, 0xe2, 0x62, 0x4a, 0xa1, + 0x7a, 0x21, 0x43, 0xa1, 0x8a, 0x62, 0x82, 0x19, 0xda, 0x54, 0x35, 0x4c, 0xe5, 0xbe, 0x86, 0x69, + 0xe0, 0x30, 0xc3, 0xb4, 0x04, 0xd3, 0x71, 0x54, 0x28, 0x33, 0x28, 0x1e, 0xbb, 0x3e, 0x37, 0x92, + 0x40, 0x9c, 0xc6, 0xb7, 0x09, 0x9c, 0x57, 0xc1, 0x71, 0xc4, 0x8d, 0xc6, 0xac, 0xb2, 0x75, 0x05, + 0x75, 0x8f, 0x71, 0x8a, 0x35, 0xc6, 0xa5, 0x5c, 0x8d, 0xf1, 0x4f, 0x5a, 0x70, 0x32, 0xd9, 0x0e, + 0x73, 0x61, 0xfe, 0xbc, 0x05, 0xa7, 0x98, 0xde, 0x9c, 0xb5, 0x9a, 0xd6, 0xd2, 0xbf, 0x50, 0x18, + 0xf0, 0x27, 0xa7, 0xc7, 0x71, 0xd8, 0x90, 0xb5, 0x2c, 0xd2, 0x38, 0xbb, 0x45, 0xfb, 0x7b, 0xca, + 0x30, 0x93, 0x17, 0x29, 0x88, 0x39, 0x6d, 0x38, 0x77, 0xeb, 0xbb, 0xe4, 0x8e, 0x30, 0x8d, 0x8f, + 0x9d, 0x36, 0x78, 0x31, 0x96, 0xf0, 0x64, 0x56, 0x85, 0x52, 0x9f, 0x59, 0x15, 0x76, 0x60, 0xfa, + 0xce, 0x0e, 0xf1, 0x6e, 0x7a, 0xa1, 0x13, 0xb9, 0xe1, 0x96, 0xcb, 0x74, 0xcc, 0x7c, 0xdd, 0xc8, + 0x54, 0xac, 0xd3, 0xb7, 0x93, 0x08, 0xf7, 0x0f, 0xe6, 0xce, 0x1a, 0x05, 0x71, 0x97, 0xf9, 0x41, + 0x82, 0xd3, 0x44, 0xd3, 0x49, 0x29, 0x06, 0x1e, 0x72, 0x52, 0x8a, 0xb6, 0x2b, 0x2c, 0x53, 0xa4, + 0x45, 0x3e, 0x7b, 0x3d, 0xae, 0xa9, 0x52, 0xac, 0x61, 0xd8, 0x9f, 0xb7, 0xe0, 0x4c, 0x6e, 0x1e, + 0x63, 0x74, 0x11, 0x46, 0x9c, 0x8e, 0xcb, 0xc5, 0xfa, 0xe2, 0xd8, 0x65, 0xe2, 0xa3, 0xda, 0x2a, + 0x17, 0xea, 0x2b, 0x28, 0x3d, 0xed, 0x76, 0x5d, 0xaf, 0x99, 0x3c, 0xed, 0xae, 0xb9, 0x5e, 0x13, + 0x33, 0x88, 0x3a, 0xbe, 0xcb, 0x79, 0xc7, 0xb7, 0xfd, 0x7d, 0x16, 0x08, 0x07, 0xd5, 0x3e, 0xce, + 0xfa, 0x4f, 0xc0, 0xd8, 0x5e, 0x3a, 0xd1, 0xd5, 0xf9, 0x7c, 0x8f, 0x5d, 0x91, 0xde, 0x4a, 0x31, + 0x70, 0x46, 0x52, 0x2b, 0x83, 0x96, 0xdd, 0x04, 0x01, 0xad, 0x12, 0x26, 0xb4, 0xee, 0xdd, 0x9b, + 0xe7, 0x00, 0x9a, 0x0c, 0x97, 0x65, 0xbf, 0x2c, 0x99, 0x37, 0x79, 0x55, 0x41, 0xb0, 0x86, 0x65, + 0xff, 0x87, 0x12, 0x8c, 0xca, 0xc4, 0x4a, 0x5d, 0xaf, 0x1f, 0xd1, 0xd2, 0xa1, 0x32, 0xad, 0xa2, + 0x4b, 0x50, 0x61, 0xb2, 0xcf, 0x5a, 0x2c, 0x91, 0x53, 0x92, 0x87, 0x35, 0x09, 0xc0, 0x31, 0x0e, + 0xdd, 0x75, 0x61, 0x77, 0x93, 0xa1, 0x27, 0xdc, 0x29, 0xeb, 0xbc, 0x18, 0x4b, 0x38, 0xfa, 0x18, + 0x4c, 0xf1, 0x7a, 0x81, 0xdf, 0x71, 0xb6, 0xb9, 0xbe, 0x64, 0x50, 0xc5, 0xa8, 0x98, 0x5a, 0x4b, + 0xc0, 0xee, 0x1f, 0xcc, 0x9d, 0x4c, 0x96, 0x31, 0x45, 0x60, 0x8a, 0x0a, 0x33, 0x8b, 0xe2, 0x8d, + 0xd0, 0xd3, 0x22, 0x65, 0x4d, 0x15, 0x83, 0xb0, 0x8e, 0x67, 0x7f, 0x1a, 0x50, 0x3a, 0xc5, 0x14, + 0x7a, 0x8d, 0xdb, 0xc2, 0xba, 0x01, 0x69, 0x16, 0x29, 0x06, 0xf5, 0x48, 0x0c, 0xd2, 0x13, 0x8a, + 0xd7, 0xc2, 0xaa, 0xbe, 0xfd, 0x97, 0xcb, 0x30, 0x95, 0xf4, 0xfd, 0x46, 0x57, 0x61, 0x88, 0xb3, + 0x2a, 0x82, 0x7c, 0x81, 0xdd, 0x89, 0xe6, 0x31, 0xce, 0x0e, 0x6d, 0xc1, 0xed, 0x88, 0xfa, 0xe8, + 0x0d, 0x18, 0x6d, 0xfa, 0x77, 0xbc, 0x3b, 0x4e, 0xd0, 0x5c, 0xa8, 0xad, 0x8a, 0xe5, 0x9c, 0xf9, + 0x10, 0xae, 0xc6, 0x68, 0xba, 0x17, 0x3a, 0xd3, 0xb1, 0xc6, 0x20, 0xac, 0x93, 0x43, 0x1b, 0x2c, + 0x2e, 0xfd, 0x96, 0xbb, 0xbd, 0xe6, 0x74, 0x8a, 0x1c, 0x23, 0x96, 0x24, 0x92, 0x46, 0x79, 0x5c, + 0x04, 0xaf, 0xe7, 0x00, 0x1c, 0x13, 0x42, 0x9f, 0x85, 0x13, 0x61, 0x8e, 0x78, 0x3e, 0x2f, 0xe3, + 0x60, 0x91, 0xc4, 0x7a, 0xf1, 0x91, 0x7b, 0x07, 0x73, 0x27, 0xb2, 0x04, 0xf9, 0x59, 0xcd, 0xd8, + 0x5f, 0x3c, 0x09, 0xc6, 0x26, 0x36, 0x12, 0xd0, 0x5a, 0x47, 0x94, 0x80, 0x16, 0xc3, 0x08, 0x69, + 0x77, 0xa2, 0xfd, 0xaa, 0x1b, 0x14, 0xa5, 0xe1, 0x5f, 0x16, 0x38, 0x69, 0x9a, 0x12, 0x82, 0x15, + 0x9d, 0xec, 0x2c, 0xc1, 0xe5, 0x6f, 0x60, 0x96, 0xe0, 0x81, 0x63, 0xcc, 0x12, 0xbc, 0x0e, 0xc3, + 0xdb, 0x6e, 0x84, 0x49, 0xc7, 0x17, 0x8f, 0x84, 0xcc, 0x75, 0x78, 0x85, 0xa3, 0xa4, 0xf3, 0x51, + 0x0a, 0x00, 0x96, 0x44, 0xd0, 0x6b, 0x6a, 0x07, 0x0e, 0xe5, 0x3f, 0xe4, 0xd3, 0x06, 0x12, 0x99, + 0x7b, 0x50, 0xe4, 0x02, 0x1e, 0x7e, 0xd0, 0x5c, 0xc0, 0x2b, 0x32, 0x83, 0xef, 0x48, 0xbe, 0x17, + 0x13, 0x4b, 0xd0, 0xdb, 0x23, 0x6f, 0xef, 0x2d, 0x3d, 0xeb, 0x71, 0x25, 0xff, 0x24, 0x50, 0x09, + 0x8d, 0xfb, 0xcc, 0x75, 0xfc, 0x7d, 0x16, 0x9c, 0xea, 0x64, 0x25, 0x00, 0x17, 0xb6, 0x04, 0x2f, + 0xf6, 0x9d, 0x63, 0xdc, 0x68, 0x90, 0xc9, 0xe0, 0xb2, 0xb3, 0xc8, 0x67, 0x37, 0x47, 0x07, 0x3a, + 0xd8, 0x6c, 0x0a, 0x9d, 0xf6, 0x13, 0x39, 0x49, 0x93, 0x0b, 0x52, 0x25, 0x6f, 0x64, 0x24, 0xe8, + 0x7d, 0x6f, 0x5e, 0x82, 0xde, 0xbe, 0xd3, 0xf2, 0xbe, 0xa6, 0xd2, 0x25, 0x8f, 0xe7, 0x2f, 0x25, + 0x9e, 0x0c, 0xb9, 0x67, 0x92, 0xe4, 0xd7, 0x54, 0x92, 0xe4, 0x82, 0xf8, 0xc1, 0x3c, 0x05, 0x72, + 0xcf, 0xd4, 0xc8, 0x5a, 0x7a, 0xe3, 0xc9, 0xa3, 0x49, 0x6f, 0x6c, 0x5c, 0x35, 0x3c, 0xc3, 0xee, + 0xd3, 0x3d, 0xae, 0x1a, 0x83, 0x6e, 0xf1, 0x65, 0xc3, 0x53, 0x39, 0x4f, 0x3f, 0x50, 0x2a, 0xe7, + 0x5b, 0x7a, 0x6a, 0x64, 0xd4, 0x23, 0xf7, 0x2f, 0x45, 0xea, 0x33, 0x21, 0xf2, 0x2d, 0xfd, 0x02, + 0x3c, 0x91, 0x4f, 0x57, 0xdd, 0x73, 0x69, 0xba, 0x99, 0x57, 0x60, 0x2a, 0xd1, 0xf2, 0xc9, 0xe3, + 0x49, 0xb4, 0x7c, 0xea, 0xc8, 0x13, 0x2d, 0x9f, 0x3e, 0x86, 0x44, 0xcb, 0x8f, 0x1c, 0x63, 0xa2, + 0xe5, 0x5b, 0xcc, 0x00, 0x87, 0x87, 0xf9, 0x11, 0xf1, 0x8e, 0x9f, 0xca, 0x89, 0x92, 0x95, 0x8e, + 0x05, 0xc4, 0x3f, 0x4e, 0x81, 0x70, 0x4c, 0x2a, 0x23, 0x81, 0xf3, 0xcc, 0x43, 0x48, 0xe0, 0xbc, + 0x1e, 0x27, 0x70, 0x3e, 0x93, 0x3f, 0xd5, 0x19, 0x2e, 0x1b, 0x39, 0x69, 0x9b, 0x6f, 0xe9, 0xe9, + 0x96, 0x1f, 0x2d, 0xd0, 0xb2, 0x64, 0x09, 0x2a, 0x0b, 0x92, 0x2c, 0xbf, 0xca, 0x93, 0x2c, 0x3f, + 0x96, 0x7f, 0x92, 0x27, 0xaf, 0x3b, 0x23, 0xb5, 0x32, 0xed, 0x97, 0x0a, 0x93, 0xc9, 0x22, 0x3b, + 0xe7, 0xf4, 0x4b, 0xc5, 0xd9, 0x4c, 0xf7, 0x4b, 0x81, 0x70, 0x4c, 0xca, 0xfe, 0x81, 0x12, 0x9c, + 0x2b, 0xde, 0x6f, 0xb1, 0xf4, 0xb5, 0x16, 0x2b, 0x9d, 0x13, 0xd2, 0x57, 0xfe, 0x66, 0x8b, 0xb1, + 0xfa, 0x8e, 0xfa, 0x77, 0x05, 0xa6, 0x95, 0xaf, 0x47, 0xcb, 0x6d, 0xec, 0xaf, 0xc7, 0x2f, 0x5f, + 0xe5, 0x1f, 0x5f, 0x4f, 0x22, 0xe0, 0x74, 0x1d, 0xb4, 0x00, 0x93, 0x46, 0xe1, 0x6a, 0x55, 0xbc, + 0xcd, 0x94, 0xb8, 0xb7, 0x6e, 0x82, 0x71, 0x12, 0xdf, 0xfe, 0x92, 0x05, 0x8f, 0xe4, 0x64, 0x28, + 0xec, 0x3b, 0xa8, 0xdd, 0x16, 0x4c, 0x76, 0xcc, 0xaa, 0x3d, 0xe2, 0x70, 0x1a, 0x79, 0x10, 0x55, + 0x5f, 0x13, 0x00, 0x9c, 0x24, 0x6a, 0xff, 0x74, 0x09, 0xce, 0x16, 0x1a, 0x2f, 0x22, 0x0c, 0xa7, + 0xb7, 0xdb, 0xa1, 0xb3, 0x14, 0x90, 0x26, 0xf1, 0x22, 0xd7, 0x69, 0xd5, 0x3b, 0xa4, 0xa1, 0xc9, + 0xcf, 0x99, 0x15, 0xe0, 0x95, 0xb5, 0xfa, 0x42, 0x1a, 0x03, 0xe7, 0xd4, 0x44, 0x2b, 0x80, 0xd2, + 0x10, 0x31, 0xc3, 0x2c, 0x46, 0x78, 0x9a, 0x1e, 0xce, 0xa8, 0x81, 0x3e, 0x04, 0xe3, 0xca, 0x28, + 0x52, 0x9b, 0x71, 0x76, 0xb0, 0x63, 0x1d, 0x80, 0x4d, 0x3c, 0x74, 0x99, 0x07, 0x99, 0x17, 0xe9, + 0x08, 0x84, 0xb0, 0x7d, 0x52, 0x46, 0x90, 0x17, 0xc5, 0x58, 0xc7, 0x59, 0x7c, 0xe9, 0xd7, 0x7e, + 0xff, 0xdc, 0x7b, 0x7e, 0xf3, 0xf7, 0xcf, 0xbd, 0xe7, 0x77, 0x7e, 0xff, 0xdc, 0x7b, 0xbe, 0xeb, + 0xde, 0x39, 0xeb, 0xd7, 0xee, 0x9d, 0xb3, 0x7e, 0xf3, 0xde, 0x39, 0xeb, 0x77, 0xee, 0x9d, 0xb3, + 0x7e, 0xef, 0xde, 0x39, 0xeb, 0x0b, 0x7f, 0x70, 0xee, 0x3d, 0x9f, 0x40, 0x71, 0x98, 0xc8, 0x4b, + 0x74, 0x76, 0x2e, 0xed, 0x5d, 0xfe, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x9e, 0xe7, 0x8d, + 0x05, 0x08, 0x01, 0x00, } func (m *AWSElasticBlockStoreVolumeSource) Marshal() (dAtA []byte, err error) { @@ -10929,34 +10899,6 @@ func (m *HostAlias) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *HostIP) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *HostIP) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *HostIP) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.IP) - copy(dAtA[i:], m.IP) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.IP))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - func (m *HostPathVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -15528,20 +15470,6 @@ func (m *PodStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.HostIPs) > 0 { - for iNdEx := len(m.HostIPs) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.HostIPs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x72 - } - } if len(m.EphemeralContainerStatuses) > 0 { for iNdEx := len(m.EphemeralContainerStatuses) - 1; iNdEx >= 0; iNdEx-- { { @@ -21235,17 +21163,6 @@ func (m *HostAlias) Size() (n int) { return n } -func (m *HostIP) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.IP) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - func (m *HostPathVolumeSource) Size() (n int) { if m == nil { return 0 @@ -22952,12 +22869,6 @@ func (m *PodStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } - if len(m.HostIPs) > 0 { - for _, e := range m.HostIPs { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } return n } @@ -25528,16 +25439,6 @@ func (this *HostAlias) String() string { }, "") return s } -func (this *HostIP) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&HostIP{`, - `IP:` + fmt.Sprintf("%v", this.IP) + `,`, - `}`, - }, "") - return s -} func (this *HostPathVolumeSource) String() string { if this == nil { return "nil" @@ -26816,11 +26717,6 @@ func (this *PodStatus) String() string { repeatedStringForEphemeralContainerStatuses += strings.Replace(strings.Replace(f.String(), "ContainerStatus", "ContainerStatus", 1), `&`, ``, 1) + "," } repeatedStringForEphemeralContainerStatuses += "}" - repeatedStringForHostIPs := "[]HostIP{" - for _, f := range this.HostIPs { - repeatedStringForHostIPs += strings.Replace(strings.Replace(f.String(), "HostIP", "HostIP", 1), `&`, ``, 1) + "," - } - repeatedStringForHostIPs += "}" s := strings.Join([]string{`&PodStatus{`, `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `Conditions:` + repeatedStringForConditions + `,`, @@ -26835,7 +26731,6 @@ func (this *PodStatus) String() string { `NominatedNodeName:` + fmt.Sprintf("%v", this.NominatedNodeName) + `,`, `PodIPs:` + repeatedStringForPodIPs + `,`, `EphemeralContainerStatuses:` + repeatedStringForEphemeralContainerStatuses + `,`, - `HostIPs:` + repeatedStringForHostIPs + `,`, `}`, }, "") return s @@ -40125,88 +40020,6 @@ func (m *HostAlias) Unmarshal(dAtA []byte) error { } return nil } -func (m *HostIP) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: HostIP: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: HostIP: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IP", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.IP = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *HostPathVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -55004,40 +54817,6 @@ func (m *PodStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field HostIPs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.HostIPs = append(m.HostIPs, HostIP{}) - if err := m.HostIPs[len(m.HostIPs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.proto b/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.proto index 9d6fbdb99ae5..41423f45f72d 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.proto +++ b/cluster-autoscaler/vendor/k8s.io/api/core/v1/generated.proto @@ -1767,12 +1767,6 @@ message HostAlias { repeated string hostnames = 2; } -// HostIP address information for entries in the (plural) HostIPs field. -message HostIP { - // IP is the IP address assigned to the host - optional string ip = 1; -} - // Represents a host path mapped into a pod. // Host path volumes do not support ownership management or SELinux relabeling. message HostPathVolumeSource { @@ -3236,9 +3230,11 @@ message PodExecOptions { repeated string command = 6; } -// PodIP address information for entries in the (plural) PodIPs field. +// IP address information for entries in the (plural) PodIPs field. +// Each entry includes: +// IP: An IP address allocated to the pod. Routable at least within the cluster. message PodIP { - // IP is the IP address assigned to the pod + // ip is an IP address (IPv4 or IPv6) assigned to the pod optional string ip = 1; } @@ -3778,24 +3774,11 @@ message PodStatus { // +optional optional string nominatedNodeName = 11; - // hostIP holds the IP address of the host to which the pod is assigned. - // Empty if the pod has not started yet. - // A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will - // not be updated even if there is node is assigned to pod + // IP address of the host to which the pod is assigned. Empty if not yet scheduled. // +optional optional string hostIP = 5; - // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must - // match the hostIP field. This list is empty if the pod has not started yet. - // A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will - // not be updated even if there is a node is assigned to this pod. - // +optional - // +patchStrategy=merge - // +patchMergeKey=ip - // +listType=set - repeated HostIP hostIPs = 14; - - // podIP address allocated to the pod. Routable at least within the cluster. + // IP address allocated to the pod. Routable at least within the cluster. // Empty if not yet allocated. // +optional optional string podIP = 6; diff --git a/cluster-autoscaler/vendor/k8s.io/api/core/v1/types.go b/cluster-autoscaler/vendor/k8s.io/api/core/v1/types.go index 63b673ca0957..c2a3c67b2054 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/core/v1/types.go +++ b/cluster-autoscaler/vendor/k8s.io/api/core/v1/types.go @@ -3605,15 +3605,11 @@ type PodDNSConfigOption struct { Value *string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` } -// PodIP address information for entries in the (plural) PodIPs field. +// IP address information for entries in the (plural) PodIPs field. +// Each entry includes: +// IP: An IP address allocated to the pod. Routable at least within the cluster. type PodIP struct { - // IP is the IP address assigned to the pod - IP string `json:"ip,omitempty" protobuf:"bytes,1,opt,name=ip"` -} - -// HostIP address information for entries in the (plural) HostIPs field. -type HostIP struct { - // IP is the IP address assigned to the host + // ip is an IP address (IPv4 or IPv6) assigned to the pod IP string `json:"ip,omitempty" protobuf:"bytes,1,opt,name=ip"` } @@ -3834,24 +3830,10 @@ type PodStatus struct { // +optional NominatedNodeName string `json:"nominatedNodeName,omitempty" protobuf:"bytes,11,opt,name=nominatedNodeName"` - // hostIP holds the IP address of the host to which the pod is assigned. - // Empty if the pod has not started yet. - // A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will - // not be updated even if there is node is assigned to pod + // IP address of the host to which the pod is assigned. Empty if not yet scheduled. // +optional HostIP string `json:"hostIP,omitempty" protobuf:"bytes,5,opt,name=hostIP"` - - // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must - // match the hostIP field. This list is empty if the pod has not started yet. - // A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will - // not be updated even if there is a node is assigned to this pod. - // +optional - // +patchStrategy=merge - // +patchMergeKey=ip - // +listType=set - HostIPs []HostIP `json:"hostIPs,omitempty" protobuf:"bytes,14,rep,name=hostIPs" patchStrategy:"merge" patchMergeKey:"ip"` - - // podIP address allocated to the pod. Routable at least within the cluster. + // IP address allocated to the pod. Routable at least within the cluster. // Empty if not yet allocated. // +optional PodIP string `json:"podIP,omitempty" protobuf:"bytes,6,opt,name=podIP"` diff --git a/cluster-autoscaler/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go b/cluster-autoscaler/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go index 337e1732ffbe..53a06b94528a 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/cluster-autoscaler/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -825,15 +825,6 @@ func (HostAlias) SwaggerDoc() map[string]string { return map_HostAlias } -var map_HostIP = map[string]string{ - "": "HostIP address information for entries in the (plural) HostIPs field.", - "ip": "IP is the IP address assigned to the host", -} - -func (HostIP) SwaggerDoc() map[string]string { - return map_HostIP -} - var map_HostPathVolumeSource = map[string]string{ "": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", "path": "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", @@ -1543,8 +1534,8 @@ func (PodExecOptions) SwaggerDoc() map[string]string { } var map_PodIP = map[string]string{ - "": "PodIP address information for entries in the (plural) PodIPs field.", - "ip": "IP is the IP address assigned to the pod", + "": "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", + "ip": "ip is an IP address (IPv4 or IPv6) assigned to the pod", } func (PodIP) SwaggerDoc() map[string]string { @@ -1692,9 +1683,8 @@ var map_PodStatus = map[string]string{ "message": "A human readable message indicating details about why the pod is in this condition.", "reason": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", "nominatedNodeName": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - "hostIP": "hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is node is assigned to pod", - "hostIPs": "hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod.", - "podIP": "podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", + "hostIP": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", + "podIP": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", "podIPs": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", "startTime": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.", "initContainerStatuses": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", diff --git a/cluster-autoscaler/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go b/cluster-autoscaler/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go index 50a1278a11bf..a3fbd14c6c59 100644 --- a/cluster-autoscaler/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/cluster-autoscaler/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -1802,22 +1802,6 @@ func (in *HostAlias) DeepCopy() *HostAlias { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HostIP) DeepCopyInto(out *HostIP) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostIP. -func (in *HostIP) DeepCopy() *HostIP { - if in == nil { - return nil - } - out := new(HostIP) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HostPathVolumeSource) DeepCopyInto(out *HostPathVolumeSource) { *out = *in @@ -3988,11 +3972,6 @@ func (in *PodStatus) DeepCopyInto(out *PodStatus) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.HostIPs != nil { - in, out := &in.HostIPs, &out.HostIPs - *out = make([]HostIP, len(*in)) - copy(*out, *in) - } if in.PodIPs != nil { in, out := &in.PodIPs, &out.PodIPs *out = make([]PodIP, len(*in)) diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/doc.go b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/doc.go deleted file mode 100644 index 3827b0418f90..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// +k8s:deepcopy-gen=package -// +k8s:protobuf-gen=package -// +k8s:openapi-gen=true -// +k8s:prerelease-lifecycle-gen=true -// +groupName=networking.k8s.io - -package v1alpha1 // import "k8s.io/api/networking/v1alpha1" diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.pb.go b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.pb.go deleted file mode 100644 index 1f9d64f5a90a..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.pb.go +++ /dev/null @@ -1,1082 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: k8s.io/kubernetes/vendor/k8s.io/api/networking/v1alpha1/generated.proto - -package v1alpha1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - v11 "k8s.io/api/core/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *ClusterCIDRConfig) Reset() { *m = ClusterCIDRConfig{} } -func (*ClusterCIDRConfig) ProtoMessage() {} -func (*ClusterCIDRConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_c1b7ac8d7d97acec, []int{0} -} -func (m *ClusterCIDRConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterCIDRConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterCIDRConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterCIDRConfig.Merge(m, src) -} -func (m *ClusterCIDRConfig) XXX_Size() int { - return m.Size() -} -func (m *ClusterCIDRConfig) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterCIDRConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterCIDRConfig proto.InternalMessageInfo - -func (m *ClusterCIDRConfigList) Reset() { *m = ClusterCIDRConfigList{} } -func (*ClusterCIDRConfigList) ProtoMessage() {} -func (*ClusterCIDRConfigList) Descriptor() ([]byte, []int) { - return fileDescriptor_c1b7ac8d7d97acec, []int{1} -} -func (m *ClusterCIDRConfigList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterCIDRConfigList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterCIDRConfigList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterCIDRConfigList.Merge(m, src) -} -func (m *ClusterCIDRConfigList) XXX_Size() int { - return m.Size() -} -func (m *ClusterCIDRConfigList) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterCIDRConfigList.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterCIDRConfigList proto.InternalMessageInfo - -func (m *ClusterCIDRConfigSpec) Reset() { *m = ClusterCIDRConfigSpec{} } -func (*ClusterCIDRConfigSpec) ProtoMessage() {} -func (*ClusterCIDRConfigSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_c1b7ac8d7d97acec, []int{2} -} -func (m *ClusterCIDRConfigSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterCIDRConfigSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterCIDRConfigSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterCIDRConfigSpec.Merge(m, src) -} -func (m *ClusterCIDRConfigSpec) XXX_Size() int { - return m.Size() -} -func (m *ClusterCIDRConfigSpec) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterCIDRConfigSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterCIDRConfigSpec proto.InternalMessageInfo - -func (m *ClusterCIDRConfigStatus) Reset() { *m = ClusterCIDRConfigStatus{} } -func (*ClusterCIDRConfigStatus) ProtoMessage() {} -func (*ClusterCIDRConfigStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c1b7ac8d7d97acec, []int{3} -} -func (m *ClusterCIDRConfigStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterCIDRConfigStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterCIDRConfigStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterCIDRConfigStatus.Merge(m, src) -} -func (m *ClusterCIDRConfigStatus) XXX_Size() int { - return m.Size() -} -func (m *ClusterCIDRConfigStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterCIDRConfigStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterCIDRConfigStatus proto.InternalMessageInfo - -func init() { - proto.RegisterType((*ClusterCIDRConfig)(nil), "k8s.io.api.networking.v1alpha1.ClusterCIDRConfig") - proto.RegisterType((*ClusterCIDRConfigList)(nil), "k8s.io.api.networking.v1alpha1.ClusterCIDRConfigList") - proto.RegisterType((*ClusterCIDRConfigSpec)(nil), "k8s.io.api.networking.v1alpha1.ClusterCIDRConfigSpec") - proto.RegisterType((*ClusterCIDRConfigStatus)(nil), "k8s.io.api.networking.v1alpha1.ClusterCIDRConfigStatus") -} - -func init() { - proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/networking/v1alpha1/generated.proto", fileDescriptor_c1b7ac8d7d97acec) -} - -var fileDescriptor_c1b7ac8d7d97acec = []byte{ - // 550 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xcd, 0x6e, 0xd3, 0x4c, - 0x14, 0x86, 0xe3, 0xb4, 0xa9, 0xf2, 0x4d, 0xf3, 0xd1, 0x62, 0x09, 0x35, 0x64, 0xe1, 0x44, 0x59, - 0x75, 0x01, 0x33, 0xa4, 0x2a, 0x81, 0x2d, 0x4e, 0x25, 0x88, 0xc4, 0x4f, 0xe5, 0x4a, 0x45, 0x42, - 0x48, 0x30, 0x71, 0x4e, 0x9d, 0x21, 0xb1, 0xc7, 0x9a, 0x19, 0x07, 0xb1, 0xe3, 0x0a, 0x10, 0x77, - 0xc2, 0x6d, 0x64, 0x83, 0xd4, 0x65, 0x57, 0x11, 0x31, 0x37, 0x82, 0x66, 0xe2, 0x26, 0x69, 0xdd, - 0x16, 0xba, 0xf3, 0x39, 0xf3, 0xbc, 0xef, 0xf9, 0x99, 0x91, 0xd1, 0xf3, 0xe1, 0x53, 0x89, 0x19, - 0x27, 0xc3, 0xa4, 0x07, 0x22, 0x02, 0x05, 0x92, 0x8c, 0x21, 0xea, 0x73, 0x41, 0xb2, 0x03, 0x1a, - 0x33, 0x12, 0x81, 0xfa, 0xcc, 0xc5, 0x90, 0x45, 0x01, 0x19, 0xb7, 0xe8, 0x28, 0x1e, 0xd0, 0x16, - 0x09, 0x20, 0x02, 0x41, 0x15, 0xf4, 0x71, 0x2c, 0xb8, 0xe2, 0xb6, 0x33, 0xe7, 0x31, 0x8d, 0x19, - 0x5e, 0xf2, 0xf8, 0x9c, 0xaf, 0x3d, 0x0c, 0x98, 0x1a, 0x24, 0x3d, 0xec, 0xf3, 0x90, 0x04, 0x3c, - 0xe0, 0xc4, 0xc8, 0x7a, 0xc9, 0x89, 0x89, 0x4c, 0x60, 0xbe, 0xe6, 0x76, 0xb5, 0xe6, 0x4a, 0x79, - 0x9f, 0x0b, 0x20, 0xe3, 0x5c, 0xc9, 0xda, 0xfe, 0x92, 0x09, 0xa9, 0x3f, 0x60, 0x11, 0x88, 0x2f, - 0x24, 0x1e, 0x06, 0x3a, 0x21, 0x49, 0x08, 0x8a, 0x5e, 0xa5, 0x22, 0xd7, 0xa9, 0x44, 0x12, 0x29, - 0x16, 0x42, 0x4e, 0xd0, 0xfe, 0x9b, 0x40, 0xfa, 0x03, 0x08, 0xe9, 0x65, 0x5d, 0xf3, 0x47, 0x11, - 0xdd, 0xed, 0x8c, 0x12, 0xa9, 0x40, 0x74, 0xba, 0x07, 0x5e, 0x87, 0x47, 0x27, 0x2c, 0xb0, 0x3f, - 0xa2, 0xb2, 0xee, 0xac, 0x4f, 0x15, 0xad, 0x5a, 0x0d, 0x6b, 0x77, 0x73, 0xef, 0x11, 0x5e, 0xae, - 0x6e, 0x51, 0x00, 0xc7, 0xc3, 0x40, 0x27, 0x24, 0xd6, 0x34, 0x1e, 0xb7, 0xf0, 0x9b, 0xde, 0x27, - 0xf0, 0xd5, 0x2b, 0x50, 0xd4, 0xb5, 0x27, 0xd3, 0x7a, 0x21, 0x9d, 0xd6, 0xd1, 0x32, 0xe7, 0x2d, - 0x5c, 0xed, 0xb7, 0x68, 0x5d, 0xc6, 0xe0, 0x57, 0x8b, 0xc6, 0xfd, 0x31, 0xbe, 0xf9, 0x62, 0x70, - 0xae, 0xc5, 0xa3, 0x18, 0x7c, 0xb7, 0x92, 0x95, 0x58, 0xd7, 0x91, 0x67, 0x0c, 0xed, 0x0f, 0x68, - 0x43, 0x2a, 0xaa, 0x12, 0x59, 0x5d, 0x33, 0xd6, 0x4f, 0x6e, 0x6f, 0x6d, 0xe4, 0xee, 0x9d, 0xcc, - 0x7c, 0x63, 0x1e, 0x7b, 0x99, 0x6d, 0xf3, 0xa7, 0x85, 0xee, 0xe5, 0x34, 0x2f, 0x99, 0x54, 0xf6, - 0xfb, 0xdc, 0xd6, 0xf0, 0xbf, 0x6d, 0x4d, 0xab, 0xcd, 0xce, 0xb6, 0xb3, 0x9a, 0xe5, 0xf3, 0xcc, - 0xca, 0xc6, 0x8e, 0x51, 0x89, 0x29, 0x08, 0x65, 0xb5, 0xd8, 0x58, 0xdb, 0xdd, 0xdc, 0x6b, 0xdd, - 0x7a, 0x2e, 0xf7, 0xff, 0xcc, 0xbd, 0xd4, 0xd5, 0x3e, 0xde, 0xdc, 0xae, 0xf9, 0xad, 0x78, 0xc5, - 0x3c, 0x7a, 0xa1, 0xf6, 0x31, 0xaa, 0x44, 0xbc, 0x0f, 0x47, 0x30, 0x02, 0x5f, 0x71, 0x91, 0xcd, - 0xd4, 0x58, 0x2d, 0xac, 0x5f, 0xbd, 0x9e, 0xe0, 0xf5, 0x0a, 0xe7, 0x6e, 0xa7, 0xd3, 0x7a, 0x65, - 0x35, 0xe3, 0x5d, 0xf0, 0xb1, 0x9f, 0xa1, 0xad, 0x18, 0x84, 0x06, 0x5e, 0x70, 0xa9, 0x5c, 0xa6, - 0xa4, 0x79, 0x06, 0x25, 0x77, 0x27, 0x6b, 0x70, 0xeb, 0xf0, 0xe2, 0xb1, 0x77, 0x99, 0xb7, 0x1f, - 0xa0, 0x32, 0x8b, 0xc7, 0xfb, 0xba, 0x61, 0x73, 0xcf, 0xff, 0x2d, 0x57, 0xd7, 0x3d, 0x9c, 0xe7, - 0xbd, 0x05, 0x91, 0xd1, 0x6d, 0x43, 0xaf, 0xe7, 0xe8, 0xf6, 0x82, 0x36, 0x5f, 0xcd, 0xfb, 0x68, - 0xe7, 0xba, 0x37, 0x71, 0x30, 0x99, 0x39, 0x85, 0xd3, 0x99, 0x53, 0x38, 0x9b, 0x39, 0x85, 0xaf, - 0xa9, 0x63, 0x4d, 0x52, 0xc7, 0x3a, 0x4d, 0x1d, 0xeb, 0x2c, 0x75, 0xac, 0x5f, 0xa9, 0x63, 0x7d, - 0xff, 0xed, 0x14, 0xde, 0x39, 0x37, 0xff, 0x95, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0x6c, 0x03, - 0xd9, 0x8f, 0xcf, 0x04, 0x00, 0x00, -} - -func (m *ClusterCIDRConfig) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterCIDRConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterCIDRConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterCIDRConfigList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterCIDRConfigList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterCIDRConfigList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterCIDRConfigSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterCIDRConfigSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterCIDRConfigSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.IPv6CIDR) - copy(dAtA[i:], m.IPv6CIDR) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.IPv6CIDR))) - i-- - dAtA[i] = 0x22 - i -= len(m.IPv4CIDR) - copy(dAtA[i:], m.IPv4CIDR) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.IPv4CIDR))) - i-- - dAtA[i] = 0x1a - i = encodeVarintGenerated(dAtA, i, uint64(m.PerNodeHostBits)) - i-- - dAtA[i] = 0x10 - if m.NodeSelector != nil { - { - size, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *ClusterCIDRConfigStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterCIDRConfigStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterCIDRConfigStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *ClusterCIDRConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ClusterCIDRConfigList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ClusterCIDRConfigSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NodeSelector != nil { - l = m.NodeSelector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 1 + sovGenerated(uint64(m.PerNodeHostBits)) - l = len(m.IPv4CIDR) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.IPv6CIDR) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ClusterCIDRConfigStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *ClusterCIDRConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterCIDRConfig{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ClusterCIDRConfigSpec", "ClusterCIDRConfigSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ClusterCIDRConfigStatus", "ClusterCIDRConfigStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterCIDRConfigList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ClusterCIDRConfig{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ClusterCIDRConfig", "ClusterCIDRConfig", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ClusterCIDRConfigList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ClusterCIDRConfigSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterCIDRConfigSpec{`, - `NodeSelector:` + strings.Replace(fmt.Sprintf("%v", this.NodeSelector), "NodeSelector", "v11.NodeSelector", 1) + `,`, - `PerNodeHostBits:` + fmt.Sprintf("%v", this.PerNodeHostBits) + `,`, - `IPv4CIDR:` + fmt.Sprintf("%v", this.IPv4CIDR) + `,`, - `IPv6CIDR:` + fmt.Sprintf("%v", this.IPv6CIDR) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterCIDRConfigStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterCIDRConfigStatus{`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *ClusterCIDRConfig) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterCIDRConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterCIDRConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterCIDRConfigList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterCIDRConfigList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterCIDRConfigList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ClusterCIDRConfig{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterCIDRConfigSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterCIDRConfigSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterCIDRConfigSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NodeSelector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NodeSelector == nil { - m.NodeSelector = &v11.NodeSelector{} - } - if err := m.NodeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PerNodeHostBits", wireType) - } - m.PerNodeHostBits = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PerNodeHostBits |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IPv4CIDR", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.IPv4CIDR = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IPv6CIDR", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.IPv6CIDR = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterCIDRConfigStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterCIDRConfigStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterCIDRConfigStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.proto b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.proto deleted file mode 100644 index 7b256b2114a3..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/generated.proto +++ /dev/null @@ -1,92 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = "proto2"; - -package k8s.io.api.networking.v1alpha1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "k8s.io/api/networking/v1alpha1"; - -// ClusterCIDRConfig is the Schema for the clustercidrconfigs API. -message ClusterCIDRConfig { - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec is the desired state of the ClusterCIDRConfig. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - optional ClusterCIDRConfigSpec spec = 2; - - // Status is the current state of the ClusterCIDRConfig. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - optional ClusterCIDRConfigStatus status = 3; -} - -// ClusterCIDRConfigList contains a list of ClusterCIDRConfig. -message ClusterCIDRConfigList { - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of ClusterCIDRConfigs. - repeated ClusterCIDRConfig items = 2; -} - -// ClusterCIDRConfigSpec defines the desired state of ClusterCIDRConfig. -message ClusterCIDRConfigSpec { - // NodeSelector defines which nodes the config is applicable to. - // An empty or nil NodeSelector functions as a default that applies to all nodes. - // This field is immutable. - // +optional - optional k8s.io.api.core.v1.NodeSelector nodeSelector = 1; - - // PerNodeHostBits defines the number of host bits to be configured per node. - // A subnet mask determines how much of the address is used for network bits - // and host bits. For example and IPv4 address of 192.168.0.0/24, splits the - // address into 24 bits for the network portion and 8 bits for the host portion. - // For a /24 mask for IPv4 or a /120 for IPv6, configure PerNodeHostBits=8 - // This field is immutable. - // +optional - optional int32 perNodeHostBits = 2; - - // IPv4CIDR defines an IPv4 IP block in CIDR notation(e.g. "10.0.0.0/8"). - // This field is immutable. - // +optional - optional string ipv4CIDR = 3; - - // IPv6CIDR defines an IPv6 IP block in CIDR notation(e.g. "fd12:3456:789a:1::/64"). - // This field is immutable. - // +optional - optional string ipv6CIDR = 4; -} - -// ClusterCIDRConfigStatus defines the observed state of ClusterCIDRConfig. -message ClusterCIDRConfigStatus { -} - diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/register.go b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/register.go deleted file mode 100644 index dcc20dc5d644..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/register.go +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright 2022 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// GroupName is the group name use in this package. -const GroupName = "networking.k8s.io" - -// SchemeGroupVersion is group version used to register these objects. -var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} - -// Resource takes an unqualified resource and returns a Group qualified GroupResource. -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - -var ( - // SchemeBuilder holds functions that add things to a scheme. - // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. - // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - localSchemeBuilder = &SchemeBuilder - - // AddToScheme adds the types of this group into the given scheme. - AddToScheme = localSchemeBuilder.AddToScheme -) - -// Adds the list of known types to the given scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &ClusterCIDRConfig{}, - &ClusterCIDRConfigList{}, - ) - // Add the watch version that applies. - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil -} diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types.go b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types.go deleted file mode 100644 index 777022f0b871..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types.go +++ /dev/null @@ -1,93 +0,0 @@ -/* -Copyright 2022 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1alpha1 - -import ( - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +k8s:prerelease-lifecycle-gen:introduced=1.24 - -// ClusterCIDRConfig is the Schema for the clustercidrconfigs API. -type ClusterCIDRConfig struct { - metav1.TypeMeta `json:",inline"` - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Spec is the desired state of the ClusterCIDRConfig. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - Spec ClusterCIDRConfigSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` - - // Status is the current state of the ClusterCIDRConfig. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - // +optional - Status ClusterCIDRConfigStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// ClusterCIDRConfigSpec defines the desired state of ClusterCIDRConfig. -type ClusterCIDRConfigSpec struct { - // NodeSelector defines which nodes the config is applicable to. - // An empty or nil NodeSelector functions as a default that applies to all nodes. - // This field is immutable. - // +optional - NodeSelector *v1.NodeSelector `json:"nodeSelector,omitempty" protobuf:"bytes,1,opt,name=nodeSelector"` - - // PerNodeHostBits defines the number of host bits to be configured per node. - // A subnet mask determines how much of the address is used for network bits - // and host bits. For example and IPv4 address of 192.168.0.0/24, splits the - // address into 24 bits for the network portion and 8 bits for the host portion. - // For a /24 mask for IPv4 or a /120 for IPv6, configure PerNodeHostBits=8 - // This field is immutable. - // +optional - PerNodeHostBits int32 `json:"perNodeHostBits" protobuf:"varint,2,opt,name=perNodeHostBits"` - - // IPv4CIDR defines an IPv4 IP block in CIDR notation(e.g. "10.0.0.0/8"). - // This field is immutable. - // +optional - IPv4CIDR string `json:"ipv4CIDR" protobuf:"bytes,3,opt,name=ipv4CIDR"` - - // IPv6CIDR defines an IPv6 IP block in CIDR notation(e.g. "fd12:3456:789a:1::/64"). - // This field is immutable. - // +optional - IPv6CIDR string `json:"ipv6CIDR" protobuf:"bytes,4,opt,name=ipv6CIDR"` -} - -// ClusterCIDRConfigStatus defines the observed state of ClusterCIDRConfig. -type ClusterCIDRConfigStatus struct { -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +k8s:prerelease-lifecycle-gen:introduced=1.24 - -// ClusterCIDRConfigList contains a list of ClusterCIDRConfig. -type ClusterCIDRConfigList struct { - metav1.TypeMeta `json:",inline"` - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of ClusterCIDRConfigs. - Items []ClusterCIDRConfig `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types_swagger_doc_generated.go b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types_swagger_doc_generated.go deleted file mode 100644 index 09368e6351e5..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/types_swagger_doc_generated.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1alpha1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-generated-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. -var map_ClusterCIDRConfig = map[string]string{ - "": "ClusterCIDRConfig is the Schema for the clustercidrconfigs API.", - "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "spec": "Spec is the desired state of the ClusterCIDRConfig. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - "status": "Status is the current state of the ClusterCIDRConfig. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", -} - -func (ClusterCIDRConfig) SwaggerDoc() map[string]string { - return map_ClusterCIDRConfig -} - -var map_ClusterCIDRConfigList = map[string]string{ - "": "ClusterCIDRConfigList contains a list of ClusterCIDRConfig.", - "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "items": "Items is the list of ClusterCIDRConfigs.", -} - -func (ClusterCIDRConfigList) SwaggerDoc() map[string]string { - return map_ClusterCIDRConfigList -} - -var map_ClusterCIDRConfigSpec = map[string]string{ - "": "ClusterCIDRConfigSpec defines the desired state of ClusterCIDRConfig.", - "nodeSelector": "NodeSelector defines which nodes the config is applicable to. An empty or nil NodeSelector functions as a default that applies to all nodes. This field is immutable.", - "perNodeHostBits": "PerNodeHostBits defines the number of host bits to be configured per node. A subnet mask determines how much of the address is used for network bits and host bits. For example and IPv4 address of 192.168.0.0/24, splits the address into 24 bits for the network portion and 8 bits for the host portion. For a /24 mask for IPv4 or a /120 for IPv6, configure PerNodeHostBits=8 This field is immutable.", - "ipv4CIDR": "IPv4CIDR defines an IPv4 IP block in CIDR notation(e.g. \"10.0.0.0/8\"). This field is immutable.", - "ipv6CIDR": "IPv6CIDR defines an IPv6 IP block in CIDR notation(e.g. \"fd12:3456:789a:1::/64\"). This field is immutable.", -} - -func (ClusterCIDRConfigSpec) SwaggerDoc() map[string]string { - return map_ClusterCIDRConfigSpec -} - -var map_ClusterCIDRConfigStatus = map[string]string{ - "": "ClusterCIDRConfigStatus defines the observed state of ClusterCIDRConfig.", -} - -func (ClusterCIDRConfigStatus) SwaggerDoc() map[string]string { - return map_ClusterCIDRConfigStatus -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.deepcopy.go b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.deepcopy.go deleted file mode 100644 index 8e0348aa80f7..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,125 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1 "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfig) DeepCopyInto(out *ClusterCIDRConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfig. -func (in *ClusterCIDRConfig) DeepCopy() *ClusterCIDRConfig { - if in == nil { - return nil - } - out := new(ClusterCIDRConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterCIDRConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfigList) DeepCopyInto(out *ClusterCIDRConfigList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterCIDRConfig, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfigList. -func (in *ClusterCIDRConfigList) DeepCopy() *ClusterCIDRConfigList { - if in == nil { - return nil - } - out := new(ClusterCIDRConfigList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterCIDRConfigList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfigSpec) DeepCopyInto(out *ClusterCIDRConfigSpec) { - *out = *in - if in.NodeSelector != nil { - in, out := &in.NodeSelector, &out.NodeSelector - *out = new(v1.NodeSelector) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfigSpec. -func (in *ClusterCIDRConfigSpec) DeepCopy() *ClusterCIDRConfigSpec { - if in == nil { - return nil - } - out := new(ClusterCIDRConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfigStatus) DeepCopyInto(out *ClusterCIDRConfigStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfigStatus. -func (in *ClusterCIDRConfigStatus) DeepCopy() *ClusterCIDRConfigStatus { - if in == nil { - return nil - } - out := new(ClusterCIDRConfigStatus) - in.DeepCopyInto(out) - return out -} diff --git a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.prerelease-lifecycle.go b/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.prerelease-lifecycle.go deleted file mode 100644 index 2e48788c84ba..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/api/networking/v1alpha1/zz_generated.prerelease-lifecycle.go +++ /dev/null @@ -1,58 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by prerelease-lifecycle-gen. DO NOT EDIT. - -package v1alpha1 - -// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. -// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. -func (in *ClusterCIDRConfig) APILifecycleIntroduced() (major, minor int) { - return 1, 24 -} - -// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. -// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. -func (in *ClusterCIDRConfig) APILifecycleDeprecated() (major, minor int) { - return 1, 27 -} - -// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. -// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. -func (in *ClusterCIDRConfig) APILifecycleRemoved() (major, minor int) { - return 1, 30 -} - -// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison. -// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go. -func (in *ClusterCIDRConfigList) APILifecycleIntroduced() (major, minor int) { - return 1, 24 -} - -// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison. -// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor. -func (in *ClusterCIDRConfigList) APILifecycleDeprecated() (major, minor int) { - return 1, 27 -} - -// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison. -// It is controlled by "k8s:prerelease-lifecycle-gen:removed" tags in types.go or "k8s:prerelease-lifecycle-gen:deprecated" plus three minor. -func (in *ClusterCIDRConfigList) APILifecycleRemoved() (major, minor int) { - return 1, 30 -} diff --git a/cluster-autoscaler/vendor/k8s.io/apimachinery/pkg/util/managedfields/gvkparser.go b/cluster-autoscaler/vendor/k8s.io/apimachinery/pkg/util/managedfields/gvkparser.go index 0cc228af936c..408739c50f97 100644 --- a/cluster-autoscaler/vendor/k8s.io/apimachinery/pkg/util/managedfields/gvkparser.go +++ b/cluster-autoscaler/vendor/k8s.io/apimachinery/pkg/util/managedfields/gvkparser.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kube-openapi/pkg/schemaconv" "k8s.io/kube-openapi/pkg/util/proto" + smdschema "sigs.k8s.io/structured-merge-diff/v4/schema" "sigs.k8s.io/structured-merge-diff/v4/typed" ) @@ -58,7 +59,7 @@ func NewGVKParser(models proto.Models, preserveUnknownFields bool) (*GvkParser, parser := GvkParser{ gvks: map[schema.GroupVersionKind]string{}, } - parser.parser = typed.Parser{Schema: *typeSchema} + parser.parser = typed.Parser{Schema: smdschema.Schema{Types: typeSchema.Types}} for _, modelName := range models.ListModels() { model := models.LookupModel(modelName) if model == nil { diff --git a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/audit/context.go b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/audit/context.go index 122666546fc6..df429af37d57 100644 --- a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/audit/context.go +++ b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/audit/context.go @@ -18,7 +18,6 @@ package audit import ( "context" - "fmt" "sync" auditinternal "k8s.io/apiserver/pkg/apis/audit" @@ -73,7 +72,7 @@ func WithAuditAnnotations(parent context.Context) context.Context { func AddAuditAnnotation(ctx context.Context, key, value string) { mutex, ok := auditAnnotationsMutex(ctx) if !ok { - klog.ErrorS(nil, "Attempted to add audit annotations from unsupported request chain", "annotation", fmt.Sprintf("%s=%s", key, value)) + // auditing is not enabled return } @@ -95,7 +94,7 @@ func AddAuditAnnotation(ctx context.Context, key, value string) { func AddAuditAnnotations(ctx context.Context, keysAndValues ...string) { mutex, ok := auditAnnotationsMutex(ctx) if !ok { - klog.ErrorS(nil, "Attempted to add audit annotations from unsupported request chain", "annotations", keysAndValues) + // auditing is not enabled return } @@ -121,7 +120,7 @@ func AddAuditAnnotations(ctx context.Context, keysAndValues ...string) { func AddAuditAnnotationsMap(ctx context.Context, annotations map[string]string) { mutex, ok := auditAnnotationsMutex(ctx) if !ok { - klog.ErrorS(nil, "Attempted to add audit annotations from unsupported request chain", "annotations", annotations) + // auditing is not enabled return } @@ -154,7 +153,7 @@ func addAuditAnnotationLocked(ae *auditinternal.Event, annotations *[]annotation func addAuditAnnotationsFrom(ctx context.Context, ev *auditinternal.Event) { mutex, ok := auditAnnotationsMutex(ctx) if !ok { - klog.Errorf("Attempted to copy audit annotations from unsupported request chain") + // auditing is not enabled return } diff --git a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/features/kube_features.go b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/features/kube_features.go index 8c95cacb5c17..01820d127afb 100644 --- a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/features/kube_features.go +++ b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/features/kube_features.go @@ -175,17 +175,9 @@ const ( // owner: @kevindelgado // kep: http://kep.k8s.io/2885 // alpha: v1.23 - // beta: v1.24 // // Enables server-side field validation. ServerSideFieldValidation featuregate.Feature = "ServerSideFieldValidation" - - // owner: @deejross - // kep: http://kep.k8s.io/3140 - // alpha: v1.24 - // - // Enables support for time zones in CronJobs. - CronJobTimeZone featuregate.Feature = "CronJobTimeZone" ) func init() { @@ -214,6 +206,5 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta}, CustomResourceValidationExpressions: {Default: false, PreRelease: featuregate.Alpha}, OpenAPIV3: {Default: true, PreRelease: featuregate.Beta}, - ServerSideFieldValidation: {Default: true, PreRelease: featuregate.Beta}, - CronJobTimeZone: {Default: false, PreRelease: featuregate.Alpha}, + ServerSideFieldValidation: {Default: false, PreRelease: featuregate.Alpha}, } diff --git a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go index 6a090ae7b60a..2d9a7599e88c 100644 --- a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go +++ b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go @@ -439,11 +439,6 @@ func (e *Store) Create(ctx context.Context, obj runtime.Object, createValidation if e.Decorator != nil { e.Decorator(out) } - if dryrun.IsDryRun(options.DryRun) { - if err := dryrun.ResetMetadata(obj, out); err != nil { - return nil, err - } - } return out, nil } diff --git a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/dryrun/dryrun.go b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/dryrun/dryrun.go index f94542b65dab..3e28c2934535 100644 --- a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/dryrun/dryrun.go +++ b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/dryrun/dryrun.go @@ -16,41 +16,7 @@ limitations under the License. package dryrun -import ( - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" -) - // IsDryRun returns true if the DryRun flag is an actual dry-run. func IsDryRun(flag []string) bool { return len(flag) > 0 } - -// ResetMetadata resets metadata fields that are not allowed to be set by dry-run. -func ResetMetadata(originalObj, newObj runtime.Object) error { - originalObjMeta, err := meta.Accessor(originalObj) - if err != nil { - return errors.NewInternalError(err) - } - newObjMeta, err := meta.Accessor(newObj) - if err != nil { - return errors.NewInternalError(err) - } - // If a resource is created with dry-run enabled where generateName is set, the - // store will set the name to the generated name. We need to reset the name and restore - // the generateName metadata fields in order for the returned object to match the intent - // of the original template. - if originalObjMeta.GetGenerateName() != "" { - newObjMeta.SetName("") - } - newObjMeta.SetGenerateName(originalObjMeta.GetGenerateName()) - // If UID is set in the dry-run output then that output cannot be used to create a resource. Reset - // the UID to allow the output to be used to create resources. - newObjMeta.SetUID("") - // If the resourceVersion is set in the dry-run output then that output cannot be used to create - // a resource. Reset the resourceVersion to allow the output to be used to create resources. - newObjMeta.SetResourceVersion("") - - return nil -} diff --git a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go index 005a95099be5..d8b17d27924f 100644 --- a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go +++ b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go @@ -21,6 +21,7 @@ import ( "strconv" "time" + "k8s.io/apiserver/pkg/server/httplog" "k8s.io/apiserver/pkg/server/mux" fq "k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing" "k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/eventclock" @@ -186,7 +187,9 @@ func (cfgCtlr *configController) Handle(ctx context.Context, requestDigest Reque executed = true startExecutionTime := time.Now() defer func() { - metrics.ObserveExecutionDuration(ctx, pl.Name, fs.Name, time.Since(startExecutionTime)) + executionTime := time.Since(startExecutionTime) + httplog.AddKeyValue(ctx, "apf_execution_time", executionTime) + metrics.ObserveExecutionDuration(ctx, pl.Name, fs.Name, executionTime) }() execFn() }) diff --git a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/request/list_work_estimator.go b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/request/list_work_estimator.go index 7fcc0903e83a..50125715c8a1 100644 --- a/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/request/list_work_estimator.go +++ b/cluster-autoscaler/vendor/k8s.io/apiserver/pkg/util/flowcontrol/request/list_work_estimator.go @@ -68,17 +68,23 @@ func (e *listWorkEstimator) estimate(r *http.Request, flowSchemaName, priorityLe // pruner will eventually remove the CRD from the cache. return WorkEstimate{InitialSeats: maximumSeats} case err == ObjectCountNotFoundErr: - // there are two scenarios in which we can see this error: + // there are multiple scenarios in which we can see this error: // a. the type is truly unknown, a typo on the caller's part. // b. the count has gone stale for too long and the pruner // has removed the type from the cache. - // we don't have a way to distinguish between a and b. b seems to indicate - // to a more severe case of degradation, although b can naturally trigger - // when a CRD is removed. let's be conservative and allocate maximum seats. - return WorkEstimate{InitialSeats: maximumSeats} + // c. the type is an aggregated resource that is served by a + // different apiserver (thus its object count is not updated) + // we don't have a way to distinguish between those situations. + // However, in case c, the request is delegated to a different apiserver, + // and thus its cost for our server is minimal. To avoid the situation + // when aggregated API calls are overestimated, we allocate the minimum + // possible seats (see #109106 as an example when being more conservative + // led to problems). + return WorkEstimate{InitialSeats: minimumSeats} case err != nil: // we should never be here since Get returns either ObjectCountStaleErr or // ObjectCountNotFoundErr, return maximumSeats to be on the safe side. + klog.ErrorS(err, "Unexpected error from object count tracker") return WorkEstimate{InitialSeats: maximumSeats} } diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostip.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostip.go deleted file mode 100644 index c2a42cf74714..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/hostip.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1 - -// HostIPApplyConfiguration represents an declarative configuration of the HostIP type for use -// with apply. -type HostIPApplyConfiguration struct { - IP *string `json:"ip,omitempty"` -} - -// HostIPApplyConfiguration constructs an declarative configuration of the HostIP type for use with -// apply. -func HostIP() *HostIPApplyConfiguration { - return &HostIPApplyConfiguration{} -} - -// WithIP sets the IP 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 IP field is set to the value of the last call. -func (b *HostIPApplyConfiguration) WithIP(value string) *HostIPApplyConfiguration { - b.IP = &value - return b -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go index 0fbfff3d40a1..7ee5b9955f66 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go @@ -32,7 +32,6 @@ type PodStatusApplyConfiguration struct { Reason *string `json:"reason,omitempty"` NominatedNodeName *string `json:"nominatedNodeName,omitempty"` HostIP *string `json:"hostIP,omitempty"` - HostIPs []HostIPApplyConfiguration `json:"hostIPs,omitempty"` PodIP *string `json:"podIP,omitempty"` PodIPs []PodIPApplyConfiguration `json:"podIPs,omitempty"` StartTime *metav1.Time `json:"startTime,omitempty"` @@ -101,19 +100,6 @@ func (b *PodStatusApplyConfiguration) WithHostIP(value string) *PodStatusApplyCo return b } -// WithHostIPs adds the given value to the HostIPs field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the HostIPs field. -func (b *PodStatusApplyConfiguration) WithHostIPs(values ...*HostIPApplyConfiguration) *PodStatusApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithHostIPs") - } - b.HostIPs = append(b.HostIPs, *values[i]) - } - return b -} - // WithPodIP sets the PodIP 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 PodIP field is set to the value of the last call. diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/internal/internal.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/internal/internal.go index 4d6112f30030..f8e9eec8ff91 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/internal/internal.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/internal/internal.go @@ -4629,12 +4629,6 @@ var schemaYAML = typed.YAMLObject(`types: - name: ip type: scalar: string -- name: io.k8s.api.core.v1.HostIP - map: - fields: - - name: ip - type: - scalar: string - name: io.k8s.api.core.v1.HostPathVolumeSource map: fields: @@ -5895,12 +5889,6 @@ var schemaYAML = typed.YAMLObject(`types: - name: hostIP type: scalar: string - - name: hostIPs - type: - list: - elementType: - namedType: io.k8s.api.core.v1.HostIP - elementRelationship: associative - name: initContainerStatuses type: list: @@ -9531,57 +9519,6 @@ var schemaYAML = typed.YAMLObject(`types: - name: number type: scalar: numeric -- name: io.k8s.api.networking.v1alpha1.ClusterCIDRConfig - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind - type: - scalar: string - - name: metadata - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta - default: {} - - name: spec - type: - namedType: io.k8s.api.networking.v1alpha1.ClusterCIDRConfigSpec - default: {} - - name: status - type: - namedType: io.k8s.api.networking.v1alpha1.ClusterCIDRConfigStatus - default: {} -- name: io.k8s.api.networking.v1alpha1.ClusterCIDRConfigSpec - map: - fields: - - name: ipv4CIDR - type: - scalar: string - default: "" - - name: ipv6CIDR - type: - scalar: string - default: "" - - name: nodeSelector - type: - namedType: io.k8s.api.core.v1.NodeSelector - - name: perNodeHostBits - type: - scalar: numeric - default: 0 -- name: io.k8s.api.networking.v1alpha1.ClusterCIDRConfigStatus - map: - elementType: - scalar: untyped - list: - elementType: - namedType: __untyped_atomic_ - elementRelationship: atomic - map: - elementType: - namedType: __untyped_deduced_ - elementRelationship: separable - name: io.k8s.api.networking.v1beta1.HTTPIngressPath map: fields: diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/meta/v1/listmeta.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/meta/v1/listmeta.go deleted file mode 100644 index 5cadee3353f7..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/meta/v1/listmeta.go +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1 - -// ListMetaApplyConfiguration represents an declarative configuration of the ListMeta type for use -// with apply. -type ListMetaApplyConfiguration struct { - SelfLink *string `json:"selfLink,omitempty"` - ResourceVersion *string `json:"resourceVersion,omitempty"` - Continue *string `json:"continue,omitempty"` - RemainingItemCount *int64 `json:"remainingItemCount,omitempty"` -} - -// ListMetaApplyConfiguration constructs an declarative configuration of the ListMeta type for use with -// apply. -func ListMeta() *ListMetaApplyConfiguration { - return &ListMetaApplyConfiguration{} -} - -// WithSelfLink sets the SelfLink 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 SelfLink field is set to the value of the last call. -func (b *ListMetaApplyConfiguration) WithSelfLink(value string) *ListMetaApplyConfiguration { - b.SelfLink = &value - return b -} - -// WithResourceVersion sets the ResourceVersion 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 ResourceVersion field is set to the value of the last call. -func (b *ListMetaApplyConfiguration) WithResourceVersion(value string) *ListMetaApplyConfiguration { - b.ResourceVersion = &value - return b -} - -// WithContinue sets the Continue 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 Continue field is set to the value of the last call. -func (b *ListMetaApplyConfiguration) WithContinue(value string) *ListMetaApplyConfiguration { - b.Continue = &value - return b -} - -// WithRemainingItemCount sets the RemainingItemCount 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 RemainingItemCount field is set to the value of the last call. -func (b *ListMetaApplyConfiguration) WithRemainingItemCount(value int64) *ListMetaApplyConfiguration { - b.RemainingItemCount = &value - return b -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/cidrconfig.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/cidrconfig.go deleted file mode 100644 index 2f792bb44229..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/cidrconfig.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// CIDRConfigApplyConfiguration represents an declarative configuration of the CIDRConfig type for use -// with apply. -type CIDRConfigApplyConfiguration struct { - CIDR *string `json:"cidr,omitempty"` - PerNodeMaskSize *int32 `json:"perNodeMaskSize,omitempty"` -} - -// CIDRConfigApplyConfiguration constructs an declarative configuration of the CIDRConfig type for use with -// apply. -func CIDRConfig() *CIDRConfigApplyConfiguration { - return &CIDRConfigApplyConfiguration{} -} - -// WithCIDR sets the CIDR 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 CIDR field is set to the value of the last call. -func (b *CIDRConfigApplyConfiguration) WithCIDR(value string) *CIDRConfigApplyConfiguration { - b.CIDR = &value - return b -} - -// WithPerNodeMaskSize sets the PerNodeMaskSize 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 PerNodeMaskSize field is set to the value of the last call. -func (b *CIDRConfigApplyConfiguration) WithPerNodeMaskSize(value int32) *CIDRConfigApplyConfiguration { - b.PerNodeMaskSize = &value - return b -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfig.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfig.go deleted file mode 100644 index ce7e4a7207c6..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfig.go +++ /dev/null @@ -1,256 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - networkingv1alpha1 "k8s.io/api/networking/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - managedfields "k8s.io/apimachinery/pkg/util/managedfields" - internal "k8s.io/client-go/applyconfigurations/internal" - v1 "k8s.io/client-go/applyconfigurations/meta/v1" -) - -// ClusterCIDRConfigApplyConfiguration represents an declarative configuration of the ClusterCIDRConfig type for use -// with apply. -type ClusterCIDRConfigApplyConfiguration struct { - v1.TypeMetaApplyConfiguration `json:",inline"` - *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *ClusterCIDRConfigSpecApplyConfiguration `json:"spec,omitempty"` - Status *networkingv1alpha1.ClusterCIDRConfigStatus `json:"status,omitempty"` -} - -// ClusterCIDRConfig constructs an declarative configuration of the ClusterCIDRConfig type for use with -// apply. -func ClusterCIDRConfig(name string) *ClusterCIDRConfigApplyConfiguration { - b := &ClusterCIDRConfigApplyConfiguration{} - b.WithName(name) - b.WithKind("ClusterCIDRConfig") - b.WithAPIVersion("networking.k8s.io/v1alpha1") - return b -} - -// ExtractClusterCIDRConfig extracts the applied configuration owned by fieldManager from -// clusterCIDRConfig. If no managedFields are found in clusterCIDRConfig for fieldManager, a -// ClusterCIDRConfigApplyConfiguration is returned with only the Name, Namespace (if applicable), -// APIVersion and Kind populated. It is possible that no managed fields were found for because other -// field managers have taken ownership of all the fields previously owned by fieldManager, or because -// the fieldManager never owned fields any fields. -// clusterCIDRConfig must be a unmodified ClusterCIDRConfig API object that was retrieved from the Kubernetes API. -// ExtractClusterCIDRConfig provides a way to perform a extract/modify-in-place/apply workflow. -// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously -// applied if another fieldManager has updated or force applied any of the previously applied fields. -// Experimental! -func ExtractClusterCIDRConfig(clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfig, fieldManager string) (*ClusterCIDRConfigApplyConfiguration, error) { - return extractClusterCIDRConfig(clusterCIDRConfig, fieldManager, "") -} - -// ExtractClusterCIDRConfigStatus is the same as ExtractClusterCIDRConfig except -// that it extracts the status subresource applied configuration. -// Experimental! -func ExtractClusterCIDRConfigStatus(clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfig, fieldManager string) (*ClusterCIDRConfigApplyConfiguration, error) { - return extractClusterCIDRConfig(clusterCIDRConfig, fieldManager, "status") -} - -func extractClusterCIDRConfig(clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfig, fieldManager string, subresource string) (*ClusterCIDRConfigApplyConfiguration, error) { - b := &ClusterCIDRConfigApplyConfiguration{} - err := managedfields.ExtractInto(clusterCIDRConfig, internal.Parser().Type("io.k8s.api.networking.v1alpha1.ClusterCIDRConfig"), fieldManager, b, subresource) - if err != nil { - return nil, err - } - b.WithName(clusterCIDRConfig.Name) - - b.WithKind("ClusterCIDRConfig") - b.WithAPIVersion("networking.k8s.io/v1alpha1") - return b, nil -} - -// WithKind sets the Kind 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 Kind field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithKind(value string) *ClusterCIDRConfigApplyConfiguration { - b.Kind = &value - return b -} - -// WithAPIVersion sets the APIVersion 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 APIVersion field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithAPIVersion(value string) *ClusterCIDRConfigApplyConfiguration { - b.APIVersion = &value - return b -} - -// WithName sets the Name 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 Name field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithName(value string) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Name = &value - return b -} - -// WithGenerateName sets the GenerateName 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 GenerateName field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithGenerateName(value string) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.GenerateName = &value - return b -} - -// WithNamespace sets the Namespace 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 Namespace field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithNamespace(value string) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Namespace = &value - return b -} - -// WithUID sets the UID 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 UID field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithUID(value types.UID) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.UID = &value - return b -} - -// WithResourceVersion sets the ResourceVersion 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 ResourceVersion field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithResourceVersion(value string) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ResourceVersion = &value - return b -} - -// WithGeneration sets the Generation 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 Generation field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithGeneration(value int64) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Generation = &value - return b -} - -// WithCreationTimestamp sets the CreationTimestamp 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 CreationTimestamp field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.CreationTimestamp = &value - return b -} - -// WithDeletionTimestamp sets the DeletionTimestamp 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 DeletionTimestamp field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.DeletionTimestamp = &value - return b -} - -// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds 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 DeletionGracePeriodSeconds field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.DeletionGracePeriodSeconds = &value - return b -} - -// WithLabels puts the entries into the Labels field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Labels field, -// overwriting an existing map entries in Labels field with the same key. -func (b *ClusterCIDRConfigApplyConfiguration) WithLabels(entries map[string]string) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.Labels == nil && len(entries) > 0 { - b.Labels = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.Labels[k] = v - } - return b -} - -// WithAnnotations puts the entries into the Annotations field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Annotations field, -// overwriting an existing map entries in Annotations field with the same key. -func (b *ClusterCIDRConfigApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.Annotations == nil && len(entries) > 0 { - b.Annotations = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.Annotations[k] = v - } - return b -} - -// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the OwnerReferences field. -func (b *ClusterCIDRConfigApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - if values[i] == nil { - panic("nil value passed to WithOwnerReferences") - } - b.OwnerReferences = append(b.OwnerReferences, *values[i]) - } - return b -} - -// WithFinalizers adds the given value to the Finalizers field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Finalizers field. -func (b *ClusterCIDRConfigApplyConfiguration) WithFinalizers(values ...string) *ClusterCIDRConfigApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - b.Finalizers = append(b.Finalizers, values[i]) - } - return b -} - -func (b *ClusterCIDRConfigApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { - if b.ObjectMetaApplyConfiguration == nil { - b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} - } -} - -// WithSpec sets the Spec 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 Spec field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithSpec(value *ClusterCIDRConfigSpecApplyConfiguration) *ClusterCIDRConfigApplyConfiguration { - b.Spec = value - return b -} - -// WithStatus sets the Status 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 Status field is set to the value of the last call. -func (b *ClusterCIDRConfigApplyConfiguration) WithStatus(value networkingv1alpha1.ClusterCIDRConfigStatus) *ClusterCIDRConfigApplyConfiguration { - b.Status = &value - return b -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigspec.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigspec.go deleted file mode 100644 index 8553a9180aa2..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigspec.go +++ /dev/null @@ -1,70 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1 "k8s.io/client-go/applyconfigurations/core/v1" -) - -// ClusterCIDRConfigSpecApplyConfiguration represents an declarative configuration of the ClusterCIDRConfigSpec type for use -// with apply. -type ClusterCIDRConfigSpecApplyConfiguration struct { - NodeSelector *v1.NodeSelectorApplyConfiguration `json:"nodeSelector,omitempty"` - PerNodeHostBits *int32 `json:"perNodeHostBits,omitempty"` - IPv4CIDR *string `json:"ipv4CIDR,omitempty"` - IPv6CIDR *string `json:"ipv6CIDR,omitempty"` -} - -// ClusterCIDRConfigSpecApplyConfiguration constructs an declarative configuration of the ClusterCIDRConfigSpec type for use with -// apply. -func ClusterCIDRConfigSpec() *ClusterCIDRConfigSpecApplyConfiguration { - return &ClusterCIDRConfigSpecApplyConfiguration{} -} - -// WithNodeSelector sets the NodeSelector 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 NodeSelector field is set to the value of the last call. -func (b *ClusterCIDRConfigSpecApplyConfiguration) WithNodeSelector(value *v1.NodeSelectorApplyConfiguration) *ClusterCIDRConfigSpecApplyConfiguration { - b.NodeSelector = value - return b -} - -// WithPerNodeHostBits sets the PerNodeHostBits 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 PerNodeHostBits field is set to the value of the last call. -func (b *ClusterCIDRConfigSpecApplyConfiguration) WithPerNodeHostBits(value int32) *ClusterCIDRConfigSpecApplyConfiguration { - b.PerNodeHostBits = &value - return b -} - -// WithIPv4CIDR sets the IPv4CIDR 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 IPv4CIDR field is set to the value of the last call. -func (b *ClusterCIDRConfigSpecApplyConfiguration) WithIPv4CIDR(value string) *ClusterCIDRConfigSpecApplyConfiguration { - b.IPv4CIDR = &value - return b -} - -// WithIPv6CIDR sets the IPv6CIDR 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 IPv6CIDR field is set to the value of the last call. -func (b *ClusterCIDRConfigSpecApplyConfiguration) WithIPv6CIDR(value string) *ClusterCIDRConfigSpecApplyConfiguration { - b.IPv6CIDR = &value - return b -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigstatus.go b/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigstatus.go deleted file mode 100644 index 4b0cda224f9b..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrconfigstatus.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1 "k8s.io/client-go/applyconfigurations/meta/v1" -) - -// ClusterCIDRConfigStatusApplyConfiguration represents an declarative configuration of the ClusterCIDRConfigStatus type for use -// with apply. -type ClusterCIDRConfigStatusApplyConfiguration struct { - Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` -} - -// ClusterCIDRConfigStatusApplyConfiguration constructs an declarative configuration of the ClusterCIDRConfigStatus type for use with -// apply. -func ClusterCIDRConfigStatus() *ClusterCIDRConfigStatusApplyConfiguration { - return &ClusterCIDRConfigStatusApplyConfiguration{} -} - -// WithConditions adds the given value to the Conditions field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *ClusterCIDRConfigStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *ClusterCIDRConfigStatusApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithConditions") - } - b.Conditions = append(b.Conditions, *values[i]) - } - return b -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/informers/generic.go b/cluster-autoscaler/vendor/k8s.io/client-go/informers/generic.go index 3785f17602a4..4c2e53c25759 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/informers/generic.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/informers/generic.go @@ -47,7 +47,6 @@ import ( flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1" flowcontrolv1beta2 "k8s.io/api/flowcontrol/v1beta2" networkingv1 "k8s.io/api/networking/v1" - networkingv1alpha1 "k8s.io/api/networking/v1alpha1" networkingv1beta1 "k8s.io/api/networking/v1beta1" nodev1 "k8s.io/api/node/v1" nodev1alpha1 "k8s.io/api/node/v1alpha1" @@ -273,10 +272,6 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case networkingv1.SchemeGroupVersion.WithResource("networkpolicies"): return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().NetworkPolicies().Informer()}, nil - // Group=networking.k8s.io, Version=v1alpha1 - case networkingv1alpha1.SchemeGroupVersion.WithResource("clustercidrconfigs"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1alpha1().ClusterCIDRConfigs().Informer()}, nil - // Group=networking.k8s.io, Version=v1beta1 case networkingv1beta1.SchemeGroupVersion.WithResource("ingresses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1beta1().Ingresses().Informer()}, nil diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/interface.go b/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/interface.go index 1c775c465b61..4a028d5d10e7 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/interface.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/interface.go @@ -21,7 +21,6 @@ package networking import ( internalinterfaces "k8s.io/client-go/informers/internalinterfaces" v1 "k8s.io/client-go/informers/networking/v1" - v1alpha1 "k8s.io/client-go/informers/networking/v1alpha1" v1beta1 "k8s.io/client-go/informers/networking/v1beta1" ) @@ -29,8 +28,6 @@ import ( type Interface interface { // V1 provides access to shared informers for resources in V1. V1() v1.Interface - // V1alpha1 provides access to shared informers for resources in V1alpha1. - V1alpha1() v1alpha1.Interface // V1beta1 provides access to shared informers for resources in V1beta1. V1beta1() v1beta1.Interface } @@ -51,11 +48,6 @@ func (g *group) V1() v1.Interface { return v1.New(g.factory, g.namespace, g.tweakListOptions) } -// V1alpha1 returns a new v1alpha1.Interface. -func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) -} - // V1beta1 returns a new v1beta1.Interface. func (g *group) V1beta1() v1beta1.Interface { return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/clustercidrconfig.go b/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/clustercidrconfig.go deleted file mode 100644 index 9e3e774c1c34..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/clustercidrconfig.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - time "time" - - networkingv1alpha1 "k8s.io/api/networking/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - internalinterfaces "k8s.io/client-go/informers/internalinterfaces" - kubernetes "k8s.io/client-go/kubernetes" - v1alpha1 "k8s.io/client-go/listers/networking/v1alpha1" - cache "k8s.io/client-go/tools/cache" -) - -// ClusterCIDRConfigInformer provides access to a shared informer and lister for -// ClusterCIDRConfigs. -type ClusterCIDRConfigInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1alpha1.ClusterCIDRConfigLister -} - -type clusterCIDRConfigInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewClusterCIDRConfigInformer constructs a new informer for ClusterCIDRConfig type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewClusterCIDRConfigInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredClusterCIDRConfigInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredClusterCIDRConfigInformer constructs a new informer for ClusterCIDRConfig type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredClusterCIDRConfigInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkingV1alpha1().ClusterCIDRConfigs().List(context.TODO(), options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkingV1alpha1().ClusterCIDRConfigs().Watch(context.TODO(), options) - }, - }, - &networkingv1alpha1.ClusterCIDRConfig{}, - resyncPeriod, - indexers, - ) -} - -func (f *clusterCIDRConfigInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredClusterCIDRConfigInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *clusterCIDRConfigInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networkingv1alpha1.ClusterCIDRConfig{}, f.defaultInformer) -} - -func (f *clusterCIDRConfigInformer) Lister() v1alpha1.ClusterCIDRConfigLister { - return v1alpha1.NewClusterCIDRConfigLister(f.Informer().GetIndexer()) -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/interface.go b/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/interface.go deleted file mode 100644 index da6eae1d9001..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/informers/networking/v1alpha1/interface.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - internalinterfaces "k8s.io/client-go/informers/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // ClusterCIDRConfigs returns a ClusterCIDRConfigInformer. - ClusterCIDRConfigs() ClusterCIDRConfigInformer -} - -type version struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// ClusterCIDRConfigs returns a ClusterCIDRConfigInformer. -func (v *version) ClusterCIDRConfigs() ClusterCIDRConfigInformer { - return &clusterCIDRConfigInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/clientset.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/clientset.go index 0ea0c3c4cd69..e46c0537f785 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/clientset.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/clientset.go @@ -53,7 +53,6 @@ import ( flowcontrolv1beta1 "k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1" flowcontrolv1beta2 "k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2" networkingv1 "k8s.io/client-go/kubernetes/typed/networking/v1" - networkingv1alpha1 "k8s.io/client-go/kubernetes/typed/networking/v1alpha1" networkingv1beta1 "k8s.io/client-go/kubernetes/typed/networking/v1beta1" nodev1 "k8s.io/client-go/kubernetes/typed/node/v1" nodev1alpha1 "k8s.io/client-go/kubernetes/typed/node/v1alpha1" @@ -105,7 +104,6 @@ type Interface interface { FlowcontrolV1beta1() flowcontrolv1beta1.FlowcontrolV1beta1Interface FlowcontrolV1beta2() flowcontrolv1beta2.FlowcontrolV1beta2Interface NetworkingV1() networkingv1.NetworkingV1Interface - NetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface NetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface NodeV1() nodev1.NodeV1Interface NodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface @@ -157,7 +155,6 @@ type Clientset struct { flowcontrolV1beta1 *flowcontrolv1beta1.FlowcontrolV1beta1Client flowcontrolV1beta2 *flowcontrolv1beta2.FlowcontrolV1beta2Client networkingV1 *networkingv1.NetworkingV1Client - networkingV1alpha1 *networkingv1alpha1.NetworkingV1alpha1Client networkingV1beta1 *networkingv1beta1.NetworkingV1beta1Client nodeV1 *nodev1.NodeV1Client nodeV1alpha1 *nodev1alpha1.NodeV1alpha1Client @@ -325,11 +322,6 @@ func (c *Clientset) NetworkingV1() networkingv1.NetworkingV1Interface { return c.networkingV1 } -// NetworkingV1alpha1 retrieves the NetworkingV1alpha1Client -func (c *Clientset) NetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface { - return c.networkingV1alpha1 -} - // NetworkingV1beta1 retrieves the NetworkingV1beta1Client func (c *Clientset) NetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface { return c.networkingV1beta1 @@ -569,10 +561,6 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, if err != nil { return nil, err } - cs.networkingV1alpha1, err = networkingv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) - if err != nil { - return nil, err - } cs.networkingV1beta1, err = networkingv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err @@ -684,7 +672,6 @@ func New(c rest.Interface) *Clientset { cs.flowcontrolV1beta1 = flowcontrolv1beta1.New(c) cs.flowcontrolV1beta2 = flowcontrolv1beta2.New(c) cs.networkingV1 = networkingv1.New(c) - cs.networkingV1alpha1 = networkingv1alpha1.New(c) cs.networkingV1beta1 = networkingv1beta1.New(c) cs.nodeV1 = nodev1.New(c) cs.nodeV1alpha1 = nodev1alpha1.New(c) diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go index 3e468bf90583..9ab84ff5dc30 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go @@ -84,8 +84,6 @@ import ( fakeflowcontrolv1beta2 "k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake" networkingv1 "k8s.io/client-go/kubernetes/typed/networking/v1" fakenetworkingv1 "k8s.io/client-go/kubernetes/typed/networking/v1/fake" - networkingv1alpha1 "k8s.io/client-go/kubernetes/typed/networking/v1alpha1" - fakenetworkingv1alpha1 "k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake" networkingv1beta1 "k8s.io/client-go/kubernetes/typed/networking/v1beta1" fakenetworkingv1beta1 "k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake" nodev1 "k8s.io/client-go/kubernetes/typed/node/v1" @@ -319,11 +317,6 @@ func (c *Clientset) NetworkingV1() networkingv1.NetworkingV1Interface { return &fakenetworkingv1.FakeNetworkingV1{Fake: &c.Fake} } -// NetworkingV1alpha1 retrieves the NetworkingV1alpha1Client -func (c *Clientset) NetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface { - return &fakenetworkingv1alpha1.FakeNetworkingV1alpha1{Fake: &c.Fake} -} - // NetworkingV1beta1 retrieves the NetworkingV1beta1Client func (c *Clientset) NetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface { return &fakenetworkingv1beta1.FakeNetworkingV1beta1{Fake: &c.Fake} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/register.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/register.go index 95c6b74d8da0..c3f0a3d52258 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/register.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/fake/register.go @@ -49,7 +49,6 @@ import ( flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1" flowcontrolv1beta2 "k8s.io/api/flowcontrol/v1beta2" networkingv1 "k8s.io/api/networking/v1" - networkingv1alpha1 "k8s.io/api/networking/v1alpha1" networkingv1beta1 "k8s.io/api/networking/v1beta1" nodev1 "k8s.io/api/node/v1" nodev1alpha1 "k8s.io/api/node/v1alpha1" @@ -106,7 +105,6 @@ var localSchemeBuilder = runtime.SchemeBuilder{ flowcontrolv1beta1.AddToScheme, flowcontrolv1beta2.AddToScheme, networkingv1.AddToScheme, - networkingv1alpha1.AddToScheme, networkingv1beta1.AddToScheme, nodev1.AddToScheme, nodev1alpha1.AddToScheme, diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/scheme/register.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/scheme/register.go index b4eaeccd0499..b41466151d4c 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/scheme/register.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/scheme/register.go @@ -49,7 +49,6 @@ import ( flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1" flowcontrolv1beta2 "k8s.io/api/flowcontrol/v1beta2" networkingv1 "k8s.io/api/networking/v1" - networkingv1alpha1 "k8s.io/api/networking/v1alpha1" networkingv1beta1 "k8s.io/api/networking/v1beta1" nodev1 "k8s.io/api/node/v1" nodev1alpha1 "k8s.io/api/node/v1alpha1" @@ -106,7 +105,6 @@ var localSchemeBuilder = runtime.SchemeBuilder{ flowcontrolv1beta1.AddToScheme, flowcontrolv1beta2.AddToScheme, networkingv1.AddToScheme, - networkingv1alpha1.AddToScheme, networkingv1beta1.AddToScheme, nodev1.AddToScheme, nodev1alpha1.AddToScheme, diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/clustercidrconfig.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/clustercidrconfig.go deleted file mode 100644 index 5dea6c42cf75..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/clustercidrconfig.go +++ /dev/null @@ -1,243 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - json "encoding/json" - "fmt" - "time" - - v1alpha1 "k8s.io/api/networking/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - networkingv1alpha1 "k8s.io/client-go/applyconfigurations/networking/v1alpha1" - scheme "k8s.io/client-go/kubernetes/scheme" - rest "k8s.io/client-go/rest" -) - -// ClusterCIDRConfigsGetter has a method to return a ClusterCIDRConfigInterface. -// A group's client should implement this interface. -type ClusterCIDRConfigsGetter interface { - ClusterCIDRConfigs() ClusterCIDRConfigInterface -} - -// ClusterCIDRConfigInterface has methods to work with ClusterCIDRConfig resources. -type ClusterCIDRConfigInterface interface { - Create(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.CreateOptions) (*v1alpha1.ClusterCIDRConfig, error) - Update(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.UpdateOptions) (*v1alpha1.ClusterCIDRConfig, error) - UpdateStatus(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.UpdateOptions) (*v1alpha1.ClusterCIDRConfig, error) - Delete(ctx context.Context, name string, opts v1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error - Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ClusterCIDRConfig, error) - List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterCIDRConfigList, error) - Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterCIDRConfig, err error) - Apply(ctx context.Context, clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfigApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDRConfig, err error) - ApplyStatus(ctx context.Context, clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfigApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDRConfig, err error) - ClusterCIDRConfigExpansion -} - -// clusterCIDRConfigs implements ClusterCIDRConfigInterface -type clusterCIDRConfigs struct { - client rest.Interface -} - -// newClusterCIDRConfigs returns a ClusterCIDRConfigs -func newClusterCIDRConfigs(c *NetworkingV1alpha1Client) *clusterCIDRConfigs { - return &clusterCIDRConfigs{ - client: c.RESTClient(), - } -} - -// Get takes name of the clusterCIDRConfig, and returns the corresponding clusterCIDRConfig object, and an error if there is any. -func (c *clusterCIDRConfigs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - result = &v1alpha1.ClusterCIDRConfig{} - err = c.client.Get(). - Resource("clustercidrconfigs"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ClusterCIDRConfigs that match those selectors. -func (c *clusterCIDRConfigs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterCIDRConfigList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1alpha1.ClusterCIDRConfigList{} - err = c.client.Get(). - Resource("clustercidrconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusterCIDRConfigs. -func (c *clusterCIDRConfigs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - opts.Watch = true - return c.client.Get(). - Resource("clustercidrconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a clusterCIDRConfig and creates it. Returns the server's representation of the clusterCIDRConfig, and an error, if there is any. -func (c *clusterCIDRConfigs) Create(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.CreateOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - result = &v1alpha1.ClusterCIDRConfig{} - err = c.client.Post(). - Resource("clustercidrconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterCIDRConfig). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a clusterCIDRConfig and updates it. Returns the server's representation of the clusterCIDRConfig, and an error, if there is any. -func (c *clusterCIDRConfigs) Update(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.UpdateOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - result = &v1alpha1.ClusterCIDRConfig{} - err = c.client.Put(). - Resource("clustercidrconfigs"). - Name(clusterCIDRConfig.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterCIDRConfig). - Do(ctx). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *clusterCIDRConfigs) UpdateStatus(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.UpdateOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - result = &v1alpha1.ClusterCIDRConfig{} - err = c.client.Put(). - Resource("clustercidrconfigs"). - Name(clusterCIDRConfig.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterCIDRConfig). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the clusterCIDRConfig and deletes it. Returns an error if one occurs. -func (c *clusterCIDRConfigs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - return c.client.Delete(). - Resource("clustercidrconfigs"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusterCIDRConfigs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("clustercidrconfigs"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched clusterCIDRConfig. -func (c *clusterCIDRConfigs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterCIDRConfig, err error) { - result = &v1alpha1.ClusterCIDRConfig{} - err = c.client.Patch(pt). - Resource("clustercidrconfigs"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// Apply takes the given apply declarative configuration, applies it and returns the applied clusterCIDRConfig. -func (c *clusterCIDRConfigs) Apply(ctx context.Context, clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfigApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - if clusterCIDRConfig == nil { - return nil, fmt.Errorf("clusterCIDRConfig provided to Apply must not be nil") - } - patchOpts := opts.ToPatchOptions() - data, err := json.Marshal(clusterCIDRConfig) - if err != nil { - return nil, err - } - name := clusterCIDRConfig.Name - if name == nil { - return nil, fmt.Errorf("clusterCIDRConfig.Name must be provided to Apply") - } - result = &v1alpha1.ClusterCIDRConfig{} - err = c.client.Patch(types.ApplyPatchType). - Resource("clustercidrconfigs"). - Name(*name). - VersionedParams(&patchOpts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// ApplyStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). -func (c *clusterCIDRConfigs) ApplyStatus(ctx context.Context, clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfigApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - if clusterCIDRConfig == nil { - return nil, fmt.Errorf("clusterCIDRConfig provided to Apply must not be nil") - } - patchOpts := opts.ToPatchOptions() - data, err := json.Marshal(clusterCIDRConfig) - if err != nil { - return nil, err - } - - name := clusterCIDRConfig.Name - if name == nil { - return nil, fmt.Errorf("clusterCIDRConfig.Name must be provided to Apply") - } - - result = &v1alpha1.ClusterCIDRConfig{} - err = c.client.Patch(types.ApplyPatchType). - Resource("clustercidrconfigs"). - Name(*name). - SubResource("status"). - VersionedParams(&patchOpts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/doc.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/doc.go deleted file mode 100644 index df51baa4d4c1..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1alpha1 diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/doc.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/doc.go deleted file mode 100644 index 16f44399065e..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -// Package fake has the automatically generated clients. -package fake diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_clustercidrconfig.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_clustercidrconfig.go deleted file mode 100644 index 5efeec7c8727..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_clustercidrconfig.go +++ /dev/null @@ -1,179 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - json "encoding/json" - "fmt" - - v1alpha1 "k8s.io/api/networking/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - networkingv1alpha1 "k8s.io/client-go/applyconfigurations/networking/v1alpha1" - testing "k8s.io/client-go/testing" -) - -// FakeClusterCIDRConfigs implements ClusterCIDRConfigInterface -type FakeClusterCIDRConfigs struct { - Fake *FakeNetworkingV1alpha1 -} - -var clustercidrconfigsResource = schema.GroupVersionResource{Group: "networking.k8s.io", Version: "v1alpha1", Resource: "clustercidrconfigs"} - -var clustercidrconfigsKind = schema.GroupVersionKind{Group: "networking.k8s.io", Version: "v1alpha1", Kind: "ClusterCIDRConfig"} - -// Get takes name of the clusterCIDRConfig, and returns the corresponding clusterCIDRConfig object, and an error if there is any. -func (c *FakeClusterCIDRConfigs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clustercidrconfigsResource, name), &v1alpha1.ClusterCIDRConfig{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ClusterCIDRConfig), err -} - -// List takes label and field selectors, and returns the list of ClusterCIDRConfigs that match those selectors. -func (c *FakeClusterCIDRConfigs) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterCIDRConfigList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(clustercidrconfigsResource, clustercidrconfigsKind, opts), &v1alpha1.ClusterCIDRConfigList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.ClusterCIDRConfigList{ListMeta: obj.(*v1alpha1.ClusterCIDRConfigList).ListMeta} - for _, item := range obj.(*v1alpha1.ClusterCIDRConfigList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested clusterCIDRConfigs. -func (c *FakeClusterCIDRConfigs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(clustercidrconfigsResource, opts)) -} - -// Create takes the representation of a clusterCIDRConfig and creates it. Returns the server's representation of the clusterCIDRConfig, and an error, if there is any. -func (c *FakeClusterCIDRConfigs) Create(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.CreateOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clustercidrconfigsResource, clusterCIDRConfig), &v1alpha1.ClusterCIDRConfig{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ClusterCIDRConfig), err -} - -// Update takes the representation of a clusterCIDRConfig and updates it. Returns the server's representation of the clusterCIDRConfig, and an error, if there is any. -func (c *FakeClusterCIDRConfigs) Update(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.UpdateOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clustercidrconfigsResource, clusterCIDRConfig), &v1alpha1.ClusterCIDRConfig{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ClusterCIDRConfig), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeClusterCIDRConfigs) UpdateStatus(ctx context.Context, clusterCIDRConfig *v1alpha1.ClusterCIDRConfig, opts v1.UpdateOptions) (*v1alpha1.ClusterCIDRConfig, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(clustercidrconfigsResource, "status", clusterCIDRConfig), &v1alpha1.ClusterCIDRConfig{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ClusterCIDRConfig), err -} - -// Delete takes name of the clusterCIDRConfig and deletes it. Returns an error if one occurs. -func (c *FakeClusterCIDRConfigs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteActionWithOptions(clustercidrconfigsResource, name, opts), &v1alpha1.ClusterCIDRConfig{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeClusterCIDRConfigs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(clustercidrconfigsResource, listOpts) - - _, err := c.Fake.Invokes(action, &v1alpha1.ClusterCIDRConfigList{}) - return err -} - -// Patch applies the patch and returns the patched clusterCIDRConfig. -func (c *FakeClusterCIDRConfigs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterCIDRConfig, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clustercidrconfigsResource, name, pt, data, subresources...), &v1alpha1.ClusterCIDRConfig{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ClusterCIDRConfig), err -} - -// Apply takes the given apply declarative configuration, applies it and returns the applied clusterCIDRConfig. -func (c *FakeClusterCIDRConfigs) Apply(ctx context.Context, clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfigApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - if clusterCIDRConfig == nil { - return nil, fmt.Errorf("clusterCIDRConfig provided to Apply must not be nil") - } - data, err := json.Marshal(clusterCIDRConfig) - if err != nil { - return nil, err - } - name := clusterCIDRConfig.Name - if name == nil { - return nil, fmt.Errorf("clusterCIDRConfig.Name must be provided to Apply") - } - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clustercidrconfigsResource, *name, types.ApplyPatchType, data), &v1alpha1.ClusterCIDRConfig{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ClusterCIDRConfig), err -} - -// ApplyStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). -func (c *FakeClusterCIDRConfigs) ApplyStatus(ctx context.Context, clusterCIDRConfig *networkingv1alpha1.ClusterCIDRConfigApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.ClusterCIDRConfig, err error) { - if clusterCIDRConfig == nil { - return nil, fmt.Errorf("clusterCIDRConfig provided to Apply must not be nil") - } - data, err := json.Marshal(clusterCIDRConfig) - if err != nil { - return nil, err - } - name := clusterCIDRConfig.Name - if name == nil { - return nil, fmt.Errorf("clusterCIDRConfig.Name must be provided to Apply") - } - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clustercidrconfigsResource, *name, types.ApplyPatchType, data, "status"), &v1alpha1.ClusterCIDRConfig{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ClusterCIDRConfig), err -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_networking_client.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_networking_client.go deleted file mode 100644 index af0f79a0adfa..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_networking_client.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1alpha1 "k8s.io/client-go/kubernetes/typed/networking/v1alpha1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeNetworkingV1alpha1 struct { - *testing.Fake -} - -func (c *FakeNetworkingV1alpha1) ClusterCIDRConfigs() v1alpha1.ClusterCIDRConfigInterface { - return &FakeClusterCIDRConfigs{c} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeNetworkingV1alpha1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/generated_expansion.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/generated_expansion.go deleted file mode 100644 index a5941b79a4b8..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/generated_expansion.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -type ClusterCIDRConfigExpansion interface{} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/networking_client.go b/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/networking_client.go deleted file mode 100644 index d76ca22834be..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/networking_client.go +++ /dev/null @@ -1,107 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "net/http" - - v1alpha1 "k8s.io/api/networking/v1alpha1" - "k8s.io/client-go/kubernetes/scheme" - rest "k8s.io/client-go/rest" -) - -type NetworkingV1alpha1Interface interface { - RESTClient() rest.Interface - ClusterCIDRConfigsGetter -} - -// NetworkingV1alpha1Client is used to interact with features provided by the networking.k8s.io group. -type NetworkingV1alpha1Client struct { - restClient rest.Interface -} - -func (c *NetworkingV1alpha1Client) ClusterCIDRConfigs() ClusterCIDRConfigInterface { - return newClusterCIDRConfigs(c) -} - -// NewForConfig creates a new NetworkingV1alpha1Client for the given config. -// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), -// where httpClient was generated with rest.HTTPClientFor(c). -func NewForConfig(c *rest.Config) (*NetworkingV1alpha1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - httpClient, err := rest.HTTPClientFor(&config) - if err != nil { - return nil, err - } - return NewForConfigAndClient(&config, httpClient) -} - -// NewForConfigAndClient creates a new NetworkingV1alpha1Client for the given config and http client. -// Note the http client provided takes precedence over the configured transport values. -func NewForConfigAndClient(c *rest.Config, h *http.Client) (*NetworkingV1alpha1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientForConfigAndClient(&config, h) - if err != nil { - return nil, err - } - return &NetworkingV1alpha1Client{client}, nil -} - -// NewForConfigOrDie creates a new NetworkingV1alpha1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *NetworkingV1alpha1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new NetworkingV1alpha1Client for the given RESTClient. -func New(c rest.Interface) *NetworkingV1alpha1Client { - return &NetworkingV1alpha1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1alpha1.SchemeGroupVersion - config.GroupVersion = &gv - config.APIPath = "/apis" - config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() - - if config.UserAgent == "" { - config.UserAgent = rest.DefaultKubernetesUserAgent() - } - - return nil -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *NetworkingV1alpha1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/clustercidrconfig.go b/cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/clustercidrconfig.go deleted file mode 100644 index c1811f79971f..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/clustercidrconfig.go +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "k8s.io/api/networking/v1alpha1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ClusterCIDRConfigLister helps list ClusterCIDRConfigs. -// All objects returned here must be treated as read-only. -type ClusterCIDRConfigLister interface { - // List lists all ClusterCIDRConfigs in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1alpha1.ClusterCIDRConfig, err error) - // Get retrieves the ClusterCIDRConfig from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1alpha1.ClusterCIDRConfig, error) - ClusterCIDRConfigListerExpansion -} - -// clusterCIDRConfigLister implements the ClusterCIDRConfigLister interface. -type clusterCIDRConfigLister struct { - indexer cache.Indexer -} - -// NewClusterCIDRConfigLister returns a new ClusterCIDRConfigLister. -func NewClusterCIDRConfigLister(indexer cache.Indexer) ClusterCIDRConfigLister { - return &clusterCIDRConfigLister{indexer: indexer} -} - -// List lists all ClusterCIDRConfigs in the indexer. -func (s *clusterCIDRConfigLister) List(selector labels.Selector) (ret []*v1alpha1.ClusterCIDRConfig, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.ClusterCIDRConfig)) - }) - return ret, err -} - -// Get retrieves the ClusterCIDRConfig from the index for a given name. -func (s *clusterCIDRConfigLister) Get(name string) (*v1alpha1.ClusterCIDRConfig, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1alpha1.Resource("clustercidrconfig"), name) - } - return obj.(*v1alpha1.ClusterCIDRConfig), nil -} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/expansion_generated.go b/cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/expansion_generated.go deleted file mode 100644 index 713990188dde..000000000000 --- a/cluster-autoscaler/vendor/k8s.io/client-go/listers/networking/v1alpha1/expansion_generated.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -// ClusterCIDRConfigListerExpansion allows custom methods to be added to -// ClusterCIDRConfigLister. -type ClusterCIDRConfigListerExpansion interface{} diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/rest/request.go b/cluster-autoscaler/vendor/k8s.io/client-go/rest/request.go index e39b6b9dce20..3a1560df0dc9 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/rest/request.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/rest/request.go @@ -82,6 +82,12 @@ func (r *RequestConstructionError) Error() string { var noBackoff = &NoBackoff{} +type requestRetryFunc func(maxRetries int) WithRetry + +func defaultRequestRetryFn(maxRetries int) WithRetry { + return &withRetry{maxRetries: maxRetries} +} + // Request allows for building up a request to a server in a chained fashion. // Any errors are stored until the end of your call, so you only have to // check once. @@ -93,6 +99,7 @@ type Request struct { rateLimiter flowcontrol.RateLimiter backoff BackoffManager timeout time.Duration + maxRetries int // generic components accessible via method setters verb string @@ -109,9 +116,10 @@ type Request struct { subresource string // output - err error - body io.Reader - retry WithRetry + err error + body io.Reader + + retryFn requestRetryFunc } // NewRequest creates a new request helper object for accessing runtime.Objects on a server. @@ -142,7 +150,8 @@ func NewRequest(c *RESTClient) *Request { backoff: backoff, timeout: timeout, pathPrefix: pathPrefix, - retry: &withRetry{maxRetries: 10}, + maxRetries: 10, + retryFn: defaultRequestRetryFn, warningHandler: c.warningHandler, } @@ -408,7 +417,10 @@ func (r *Request) Timeout(d time.Duration) *Request { // function is specifically called with a different value. // A zero maxRetries prevent it from doing retires and return an error immediately. func (r *Request) MaxRetries(maxRetries int) *Request { - r.retry.SetMaxRetries(maxRetries) + if maxRetries < 0 { + maxRetries = 0 + } + r.maxRetries = maxRetries return r } @@ -612,20 +624,21 @@ func (r *Request) Watch(ctx context.Context) (watch.Interface, error) { } return false } + retry := r.retryFn(r.maxRetries) url := r.URL().String() for { + if err := retry.Before(ctx, r); err != nil { + return nil, retry.WrapPreviousError(err) + } + req, err := r.newHTTPRequest(ctx) if err != nil { return nil, err } - if err := r.retry.Before(ctx, r); err != nil { - return nil, r.retry.WrapPreviousError(err) - } - resp, err := client.Do(req) updateURLMetrics(ctx, r, resp, err) - r.retry.After(ctx, r, resp, err) + retry.After(ctx, r, resp, err) if err == nil && resp.StatusCode == http.StatusOK { return r.newStreamWatcher(resp) } @@ -633,7 +646,7 @@ func (r *Request) Watch(ctx context.Context) (watch.Interface, error) { done, transformErr := func() (bool, error) { defer readAndCloseResponseBody(resp) - if r.retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) { + if retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) { return false, nil } @@ -655,7 +668,7 @@ func (r *Request) Watch(ctx context.Context) (watch.Interface, error) { // we need to return the error object from that. err = transformErr } - return nil, r.retry.WrapPreviousError(err) + return nil, retry.WrapPreviousError(err) } } } @@ -720,8 +733,13 @@ func (r *Request) Stream(ctx context.Context) (io.ReadCloser, error) { client = http.DefaultClient } + retry := r.retryFn(r.maxRetries) url := r.URL().String() for { + if err := retry.Before(ctx, r); err != nil { + return nil, err + } + req, err := r.newHTTPRequest(ctx) if err != nil { return nil, err @@ -729,14 +747,9 @@ func (r *Request) Stream(ctx context.Context) (io.ReadCloser, error) { if r.body != nil { req.Body = ioutil.NopCloser(r.body) } - - if err := r.retry.Before(ctx, r); err != nil { - return nil, err - } - resp, err := client.Do(req) updateURLMetrics(ctx, r, resp, err) - r.retry.After(ctx, r, resp, err) + retry.After(ctx, r, resp, err) if err != nil { // we only retry on an HTTP response with 'Retry-After' header return nil, err @@ -751,7 +764,7 @@ func (r *Request) Stream(ctx context.Context) (io.ReadCloser, error) { done, transformErr := func() (bool, error) { defer resp.Body.Close() - if r.retry.IsNextRetry(ctx, r, req, resp, err, neverRetryError) { + if retry.IsNextRetry(ctx, r, req, resp, err, neverRetryError) { return false, nil } result := r.transformResponse(resp, req) @@ -858,15 +871,15 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp } // Right now we make about ten retry attempts if we get a Retry-After response. + retry := r.retryFn(r.maxRetries) for { + if err := retry.Before(ctx, r); err != nil { + return retry.WrapPreviousError(err) + } req, err := r.newHTTPRequest(ctx) if err != nil { return err } - - if err := r.retry.Before(ctx, r); err != nil { - return r.retry.WrapPreviousError(err) - } resp, err := client.Do(req) updateURLMetrics(ctx, r, resp, err) // The value -1 or a value of 0 with a non-nil Body indicates that the length is unknown. @@ -874,7 +887,7 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp if req.ContentLength >= 0 && !(req.Body != nil && req.ContentLength == 0) { metrics.RequestSize.Observe(ctx, r.verb, r.URL().Host, float64(req.ContentLength)) } - r.retry.After(ctx, r, resp, err) + retry.After(ctx, r, resp, err) done := func() bool { defer readAndCloseResponseBody(resp) @@ -887,7 +900,7 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp fn(req, resp) } - if r.retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) { + if retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) { return false } @@ -895,7 +908,7 @@ func (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Resp return true }() if done { - return r.retry.WrapPreviousError(err) + return retry.WrapPreviousError(err) } } } diff --git a/cluster-autoscaler/vendor/k8s.io/client-go/rest/with_retry.go b/cluster-autoscaler/vendor/k8s.io/client-go/rest/with_retry.go index e729ad1ec4bc..497d2608f88d 100644 --- a/cluster-autoscaler/vendor/k8s.io/client-go/rest/with_retry.go +++ b/cluster-autoscaler/vendor/k8s.io/client-go/rest/with_retry.go @@ -52,12 +52,6 @@ var neverRetryError = IsRetryableErrorFunc(func(_ *http.Request, _ error) bool { // Note that WithRetry is not safe for concurrent use by multiple // goroutines without additional locking or coordination. type WithRetry interface { - // SetMaxRetries makes the request use the specified integer as a ceiling - // for retries upon receiving a 429 status code and the "Retry-After" header - // in the response. - // A zero maxRetries should prevent from doing any retry and return immediately. - SetMaxRetries(maxRetries int) - // IsNextRetry advances the retry counter appropriately // and returns true if the request should be retried, // otherwise it returns false, if: @@ -78,8 +72,12 @@ type WithRetry interface { IsNextRetry(ctx context.Context, restReq *Request, httpReq *http.Request, resp *http.Response, err error, f IsRetryableErrorFunc) bool // Before should be invoked prior to each attempt, including - // the first one. if an error is returned, the request - // should be aborted immediately. + // the first one. If an error is returned, the request should + // be aborted immediately. + // + // Before may also be additionally responsible for preparing + // the request for the next retry, namely in terms of resetting + // the request body in case it has been read. Before(ctx context.Context, r *Request) error // After should be invoked immediately after an attempt is made. @@ -140,13 +138,6 @@ type withRetry struct { previousErr, currentErr error } -func (r *withRetry) SetMaxRetries(maxRetries int) { - if maxRetries < 0 { - maxRetries = 0 - } - r.maxRetries = maxRetries -} - func (r *withRetry) trackPreviousError(err error) { // keep track of two most recent errors if r.currentErr != nil { @@ -194,46 +185,18 @@ func (r *withRetry) IsNextRetry(ctx context.Context, restReq *Request, httpReq * r.retryAfter.Wait = time.Duration(seconds) * time.Second r.retryAfter.Reason = getRetryReason(r.attempts, seconds, resp, err) - if err := r.prepareForNextRetry(ctx, restReq); err != nil { - klog.V(4).Infof("Could not retry request - %v", err) - return false - } - return true } -// prepareForNextRetry is responsible for carrying out operations that need -// to be completed before the next retry is initiated: -// - if the request context is already canceled there is no need to -// retry, the function will return ctx.Err(). -// - we need to seek to the beginning of the request body before we -// initiate the next retry, the function should return an error if -// it fails to do so. -func (r *withRetry) prepareForNextRetry(ctx context.Context, request *Request) error { - if ctx.Err() != nil { - return ctx.Err() - } - - // Ensure the response body is fully read and closed before - // we reconnect, so that we reuse the same TCP connection. - if seeker, ok := request.body.(io.Seeker); ok && request.body != nil { - if _, err := seeker.Seek(0, 0); err != nil { - return fmt.Errorf("can't Seek() back to beginning of body for %T", request) - } - } - - klog.V(4).Infof("Got a Retry-After %s response for attempt %d to %v", r.retryAfter.Wait, r.retryAfter.Attempt, request.URL().String()) - return nil -} - func (r *withRetry) Before(ctx context.Context, request *Request) error { + // If the request context is already canceled there + // is no need to retry. if ctx.Err() != nil { r.trackPreviousError(ctx.Err()) return ctx.Err() } url := request.URL() - // r.retryAfter represents the retry after parameters calculated // from the (response, err) tuple from the last attempt, so 'Before' // can apply these retry after parameters prior to the next attempt. @@ -245,6 +208,18 @@ func (r *withRetry) Before(ctx context.Context, request *Request) error { return nil } + // At this point we've made atleast one attempt, post which the response + // body should have been fully read and closed in order for it to be safe + // to reset the request body before we reconnect, in order for us to reuse + // the same TCP connection. + if seeker, ok := request.body.(io.Seeker); ok && request.body != nil { + if _, err := seeker.Seek(0, io.SeekStart); err != nil { + err = fmt.Errorf("failed to reset the request body while retrying a request: %v", err) + r.trackPreviousError(err) + return err + } + } + // if we are here, we have made attempt(s) al least once before. if request.backoff != nil { // TODO(tkashem) with default set to use exponential backoff @@ -263,6 +238,7 @@ func (r *withRetry) Before(ctx context.Context, request *Request) error { return err } + klog.V(4).Infof("Got a Retry-After %s response for attempt %d to %v", r.retryAfter.Wait, r.retryAfter.Attempt, request.URL().String()) return nil } diff --git a/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.mod b/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.mod index b1c4bdae8f46..337114a53298 100644 --- a/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.mod +++ b/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.mod @@ -9,23 +9,23 @@ require ( github.com/spf13/cobra v1.4.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.7.0 - k8s.io/api v0.24.0-beta.0 - k8s.io/apimachinery v0.24.0-beta.0 - k8s.io/apiserver v0.24.0-beta.0 - k8s.io/client-go v0.24.0-beta.0 - k8s.io/component-base v0.24.0-beta.0 - k8s.io/component-helpers v0.24.0-beta.0 - k8s.io/controller-manager v0.24.0-beta.0 + k8s.io/api v0.24.0 + k8s.io/apimachinery v0.24.0 + k8s.io/apiserver v0.24.0 + k8s.io/client-go v0.24.0 + k8s.io/component-base v0.24.0 + k8s.io/component-helpers v0.24.0 + k8s.io/controller-manager v0.24.0 k8s.io/klog/v2 v2.60.1 k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 ) replace ( - k8s.io/api => k8s.io/api v0.24.0-beta.0 - k8s.io/apimachinery => k8s.io/apimachinery v0.24.0-beta.0 - k8s.io/apiserver => k8s.io/apiserver v0.24.0-beta.0 - k8s.io/client-go => k8s.io/client-go v0.24.0-beta.0 - k8s.io/component-base => k8s.io/component-base v0.24.0-beta.0 - k8s.io/component-helpers => k8s.io/component-helpers v0.24.0-beta.0 - k8s.io/controller-manager => k8s.io/controller-manager v0.24.0-beta.0 + k8s.io/api => k8s.io/api v0.24.0 + k8s.io/apimachinery => k8s.io/apimachinery v0.24.0 + k8s.io/apiserver => k8s.io/apiserver v0.24.0 + k8s.io/client-go => k8s.io/client-go v0.24.0 + k8s.io/component-base => k8s.io/component-base v0.24.0 + k8s.io/component-helpers => k8s.io/component-helpers v0.24.0 + k8s.io/controller-manager => k8s.io/controller-manager v0.24.0 ) diff --git a/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.sum b/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.sum index dc49c4dc29f3..9df548a7ea38 100644 --- a/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.sum +++ b/cluster-autoscaler/vendor/k8s.io/cloud-provider/go.sum @@ -950,20 +950,20 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.24.0-beta.0 h1:7knNqNYI1Az5hWcebdyUff4ETyCZkvmUT1N2hi/qS/Y= -k8s.io/api v0.24.0-beta.0/go.mod h1:D7w5dDA57yCeRJnl0vPuRj6KBAwWYxea4Dwo5kgJGIY= -k8s.io/apimachinery v0.24.0-beta.0 h1:69KiS/m3i2oi3FaCVX6whePxOelsJkhIfO0J5fGDYv8= -k8s.io/apimachinery v0.24.0-beta.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= -k8s.io/apiserver v0.24.0-beta.0 h1:alwKvg2qKXvXZbjP0v/Ozfagaygh/shCmvNMZW/arg8= -k8s.io/apiserver v0.24.0-beta.0/go.mod h1:pPF5/dEQukQjwauSxjW8IHKn8W1r8u2nERGojwFFlj4= -k8s.io/client-go v0.24.0-beta.0 h1:ISWwVXNtOr2f1O5afJGi66vxAzC6Gb/3+VWlz4WseFc= -k8s.io/client-go v0.24.0-beta.0/go.mod h1:D4rgRqnNPdFCFMMrcCqCOAouzIwJkPuKXr3zWThEExM= -k8s.io/component-base v0.24.0-beta.0 h1:Qh9X14PLVX9YfVXEdsWeYVbN/ssm18pkf7RwPX8fCSg= -k8s.io/component-base v0.24.0-beta.0/go.mod h1:UrgHIn7am00FE1rRmr0GHCiNZg7oZO+Oh6iXROJt2oU= -k8s.io/component-helpers v0.24.0-beta.0 h1:ZUd0qDgMzL1gFGz8giE8+TKvnClrRyNtTRJ3BO4cUDc= -k8s.io/component-helpers v0.24.0-beta.0/go.mod h1:dTw0PfziOO6g9Wj3+6nNN3VBfDvEOfYADXxVcmCWWe4= -k8s.io/controller-manager v0.24.0-beta.0 h1:ph5Bqi+pV6OXVocTTJkrWzLHx4ei9q0b3X+tk4zNzM4= -k8s.io/controller-manager v0.24.0-beta.0/go.mod h1:wqi0opKDUj7GhktwzN+s6VUYMT5BGn4QSQjkRZO31Q4= +k8s.io/api v0.24.0 h1:J0hann2hfxWr1hinZIDefw7Q96wmCBx6SSB8IY0MdDg= +k8s.io/api v0.24.0/go.mod h1:5Jl90IUrJHUJYEMANRURMiVvJ0g7Ax7r3R1bqO8zx8I= +k8s.io/apimachinery v0.24.0 h1:ydFCyC/DjCvFCHK5OPMKBlxayQytB8pxy8YQInd5UyQ= +k8s.io/apimachinery v0.24.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/apiserver v0.24.0 h1:GR7kGsjOMfilRvlG3Stxv/3uz/ryvJ/aZXc5pqdsNV0= +k8s.io/apiserver v0.24.0/go.mod h1:WFx2yiOMawnogNToVvUYT9nn1jaIkMKj41ZYCVycsBA= +k8s.io/client-go v0.24.0 h1:lbE4aB1gTHvYFSwm6eD3OF14NhFDKCejlnsGYlSJe5U= +k8s.io/client-go v0.24.0/go.mod h1:VFPQET+cAFpYxh6Bq6f4xyMY80G6jKKktU6G0m00VDw= +k8s.io/component-base v0.24.0 h1:h5jieHZQoHrY/lHG+HyrSbJeyfuitheBvqvKwKHVC0g= +k8s.io/component-base v0.24.0/go.mod h1:Dgazgon0i7KYUsS8krG8muGiMVtUZxG037l1MKyXgrA= +k8s.io/component-helpers v0.24.0 h1:hZIHGfdd55thhqd9oxjDTw68OAPauDMJ+8hC69aNw1I= +k8s.io/component-helpers v0.24.0/go.mod h1:Q2SlLm4h6g6lPTC9GMMfzdywfLSvJT2f1hOnnjaWD8c= +k8s.io/controller-manager v0.24.0 h1:mR8mlcwCd5s/V9vCoCAgZm9WJMTaOeRVmOn6gxNW5LA= +k8s.io/controller-manager v0.24.0/go.mod h1:ageMNQZc7cNH0FF1oarm7wZs6XyJj/V82nNVmgPaeDU= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= diff --git a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/counter.go b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/counter.go index 5b50ecd69a04..7342dc37d1e1 100644 --- a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/counter.go +++ b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/counter.go @@ -212,13 +212,13 @@ func (v *CounterVec) Reset() { func (v *CounterVec) WithContext(ctx context.Context) *CounterVecWithContext { return &CounterVecWithContext{ ctx: ctx, - CounterVec: *v, + CounterVec: v, } } // CounterVecWithContext is the wrapper of CounterVec with context. type CounterVecWithContext struct { - CounterVec + *CounterVec ctx context.Context } diff --git a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/gauge.go b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/gauge.go index b2030d84bf3a..168221ecdd57 100644 --- a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/gauge.go +++ b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/gauge.go @@ -189,8 +189,8 @@ func (v *GaugeVec) Reset() { v.GaugeVec.Reset() } -func newGaugeFunc(opts GaugeOpts, function func() float64, v semver.Version) GaugeFunc { - g := NewGauge(&opts) +func newGaugeFunc(opts *GaugeOpts, function func() float64, v semver.Version) GaugeFunc { + g := NewGauge(opts) if !g.Create(&v) { return nil @@ -205,7 +205,7 @@ func newGaugeFunc(opts GaugeOpts, function func() float64, v semver.Version) Gau // concurrently. If that results in concurrent calls to Write, like in the case // where a GaugeFunc is directly registered with Prometheus, the provided // function must be concurrency-safe. -func NewGaugeFunc(opts GaugeOpts, function func() float64) GaugeFunc { +func NewGaugeFunc(opts *GaugeOpts, function func() float64) GaugeFunc { v := parseVersion(version.Get()) return newGaugeFunc(opts, function, v) @@ -215,13 +215,13 @@ func NewGaugeFunc(opts GaugeOpts, function func() float64) GaugeFunc { func (v *GaugeVec) WithContext(ctx context.Context) *GaugeVecWithContext { return &GaugeVecWithContext{ ctx: ctx, - GaugeVec: *v, + GaugeVec: v, } } // GaugeVecWithContext is the wrapper of GaugeVec with context. type GaugeVecWithContext struct { - GaugeVec + *GaugeVec ctx context.Context } diff --git a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/histogram.go b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/histogram.go index 37cea576678a..e93c7a4b3ffe 100644 --- a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/histogram.go +++ b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/histogram.go @@ -199,13 +199,13 @@ func (v *HistogramVec) Reset() { func (v *HistogramVec) WithContext(ctx context.Context) *HistogramVecWithContext { return &HistogramVecWithContext{ ctx: ctx, - HistogramVec: *v, + HistogramVec: v, } } // HistogramVecWithContext is the wrapper of HistogramVec with context. type HistogramVecWithContext struct { - HistogramVec + *HistogramVec ctx context.Context } diff --git a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/metric.go b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/metric.go index f4b839d81e18..c72aecfc6b40 100644 --- a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/metric.go +++ b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/metric.go @@ -169,8 +169,8 @@ func (r *lazyMetric) ClearState() { r.isDeprecated = false r.isHidden = false r.isCreated = false - r.markDeprecationOnce = *(new(sync.Once)) - r.createOnce = *(new(sync.Once)) + r.markDeprecationOnce = sync.Once{} + r.createOnce = sync.Once{} } // FQName returns the fully-qualified metric name of the collector. diff --git a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/prometheus/restclient/metrics.go b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/prometheus/restclient/metrics.go index 9d4b42575d7b..7f4eea3498b9 100644 --- a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/prometheus/restclient/metrics.go +++ b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/prometheus/restclient/metrics.go @@ -83,7 +83,7 @@ var ( execPluginCertTTLAdapter = &expiryToTTLAdapter{} execPluginCertTTL = k8smetrics.NewGaugeFunc( - k8smetrics.GaugeOpts{ + &k8smetrics.GaugeOpts{ Name: "rest_client_exec_plugin_ttl_seconds", Help: "Gauge of the shortest TTL (time-to-live) of the client " + "certificate(s) managed by the auth exec plugin. The value " + diff --git a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/summary.go b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/summary.go index 32058b6d082f..fb1108f92454 100644 --- a/cluster-autoscaler/vendor/k8s.io/component-base/metrics/summary.go +++ b/cluster-autoscaler/vendor/k8s.io/component-base/metrics/summary.go @@ -193,13 +193,13 @@ func (v *SummaryVec) Reset() { func (v *SummaryVec) WithContext(ctx context.Context) *SummaryVecWithContext { return &SummaryVecWithContext{ ctx: ctx, - SummaryVec: *v, + SummaryVec: v, } } // SummaryVecWithContext is the wrapper of SummaryVec with context. type SummaryVecWithContext struct { - SummaryVec + *SummaryVec ctx context.Context } diff --git a/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.mod b/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.mod index bebbb0be9dce..bb6febcc8692 100644 --- a/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.mod +++ b/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.mod @@ -6,12 +6,12 @@ go 1.16 require ( github.com/stretchr/testify v1.7.0 - k8s.io/api v0.24.0-beta.0 - k8s.io/apimachinery v0.24.0-beta.0 + k8s.io/api v0.24.0 + k8s.io/apimachinery v0.24.0 k8s.io/klog/v2 v2.60.1 ) replace ( - k8s.io/api => k8s.io/api v0.24.0-beta.0 - k8s.io/apimachinery => k8s.io/apimachinery v0.24.0-beta.0 + k8s.io/api => k8s.io/api v0.24.0 + k8s.io/apimachinery => k8s.io/apimachinery v0.24.0 ) diff --git a/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.sum b/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.sum index 3c0aa5011cb1..54705551c6ef 100644 --- a/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.sum +++ b/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/go.sum @@ -220,10 +220,10 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.24.0-beta.0 h1:7knNqNYI1Az5hWcebdyUff4ETyCZkvmUT1N2hi/qS/Y= -k8s.io/api v0.24.0-beta.0/go.mod h1:D7w5dDA57yCeRJnl0vPuRj6KBAwWYxea4Dwo5kgJGIY= -k8s.io/apimachinery v0.24.0-beta.0 h1:69KiS/m3i2oi3FaCVX6whePxOelsJkhIfO0J5fGDYv8= -k8s.io/apimachinery v0.24.0-beta.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/api v0.24.0 h1:J0hann2hfxWr1hinZIDefw7Q96wmCBx6SSB8IY0MdDg= +k8s.io/api v0.24.0/go.mod h1:5Jl90IUrJHUJYEMANRURMiVvJ0g7Ax7r3R1bqO8zx8I= +k8s.io/apimachinery v0.24.0 h1:ydFCyC/DjCvFCHK5OPMKBlxayQytB8pxy8YQInd5UyQ= +k8s.io/apimachinery v0.24.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= diff --git a/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/plugins/azure_disk.go b/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/plugins/azure_disk.go index d86f9ef16443..73f7736e56d3 100644 --- a/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/plugins/azure_disk.go +++ b/cluster-autoscaler/vendor/k8s.io/csi-translation-lib/plugins/azure_disk.go @@ -45,6 +45,7 @@ var ( managedDiskPathRE = regexp.MustCompile(`.*/subscriptions/(?:.*)/resourceGroups/(?:.*)/providers/Microsoft.Compute/disks/(.+)`) unmanagedDiskPathRE = regexp.MustCompile(`http(?:.*)://(?:.*)/vhds/(.+)`) managed = string(v1.AzureManagedDisk) + unzonedCSIRegionRE = regexp.MustCompile(`^[0-9]+$`) ) var _ InTreePlugin = &azureDiskCSITranslator{} @@ -86,6 +87,7 @@ func (t *azureDiskCSITranslator) TranslateInTreeStorageClassToCSI(sc *storage.St } sc.AllowedTopologies = newTopologies } + sc.AllowedTopologies = t.replaceFailureDomainsToCSI(sc.AllowedTopologies) sc.Parameters = params @@ -273,3 +275,34 @@ func getDiskName(diskURI string) (string, error) { } return matches[1], nil } + +// Replace topology values for failure domains ("") to "", +// as it's the value that the CSI driver expects. +func (t *azureDiskCSITranslator) replaceFailureDomainsToCSI(terms []v1.TopologySelectorTerm) []v1.TopologySelectorTerm { + if terms == nil { + return nil + } + + newTopologies := []v1.TopologySelectorTerm{} + for _, term := range terms { + newTerm := term.DeepCopy() + for i := range newTerm.MatchLabelExpressions { + exp := &newTerm.MatchLabelExpressions[i] + if exp.Key == AzureDiskTopologyKey { + for j := range exp.Values { + if unzonedCSIRegionRE.Match([]byte(exp.Values[j])) { + // Topologies "0", "1" etc are used when in-tree topology is translated to CSI in Azure + // regions that don't have availability zones. E.g.: + // topology.kubernetes.io/region: westus + // topology.kubernetes.io/zone: "0" + // The CSI driver uses zone "" instead of "0" in this case. + // topology.disk.csi.azure.com/zone": "" + exp.Values[j] = "" + } + } + } + } + newTopologies = append(newTopologies, *newTerm) + } + return newTopologies +} diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go index 86c73b030d54..8ac37d97292c 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go @@ -827,7 +827,7 @@ func buildKubeletClientConfig(ctx context.Context, s *options.KubeletServer, nod } legacyregistry.RawMustRegister(metrics.NewGaugeFunc( - metrics.GaugeOpts{ + &metrics.GaugeOpts{ Subsystem: kubeletmetrics.KubeletSubsystem, Name: "certificate_manager_client_ttl_seconds", Help: "Gauge of the TTL (time-to-live) of the Kubelet's client certificate. " + diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/pod/util.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/pod/util.go index cfc5b55b5cce..680433975436 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/pod/util.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/pod/util.go @@ -434,8 +434,6 @@ func GetValidationOptionsFromPodSpecAndMeta(podSpec, oldPodSpec *api.PodSpec, po AllowExpandedDNSConfig: utilfeature.DefaultFeatureGate.Enabled(features.ExpandedDNSConfig) || haveSameExpandedDNSConfig(podSpec, oldPodSpec), // Allow pod spec to use OS field AllowOSField: utilfeature.DefaultFeatureGate.Enabled(features.IdentifyPodOS), - // Allow pod spec to use status.hostIPs in downward API if feature is enabled - AllowHostIPsField: utilfeature.DefaultFeatureGate.Enabled(features.PodHostIPs), // The default sysctl value does not contain a forward slash, and in 1.24 we intend to relax this to be true by default AllowSysctlRegexContainSlash: false, } @@ -456,9 +454,6 @@ func GetValidationOptionsFromPodSpecAndMeta(podSpec, oldPodSpec *api.PodSpec, po // if old spec has OS field set, we must allow it opts.AllowOSField = opts.AllowOSField || oldPodSpec.OS != nil - // if old spec has status.hostIPs downwardAPI set, we must allow it - opts.AllowHostIPsField = opts.AllowHostIPsField || hasUsedDownwardAPIFieldPathWithPodSpec(oldPodSpec, "status.hostIPs") - // if old spec used non-integer multiple of huge page unit size, we must allow it opts.AllowIndivisibleHugePagesValues = usesIndivisibleHugePagesValues(oldPodSpec) @@ -475,57 +470,6 @@ func GetValidationOptionsFromPodSpecAndMeta(podSpec, oldPodSpec *api.PodSpec, po return opts } -func hasUsedDownwardAPIFieldPathWithPodSpec(podSpec *api.PodSpec, fieldPath string) bool { - if podSpec == nil { - return false - } - for _, vol := range podSpec.Volumes { - if hasUsedDownwardAPIFieldPathWithVolume(&vol, fieldPath) { - return true - } - } - for _, c := range podSpec.InitContainers { - if hasUsedDownwardAPIFieldPathWithContainer(&c, fieldPath) { - return true - } - } - for _, c := range podSpec.Containers { - if hasUsedDownwardAPIFieldPathWithContainer(&c, fieldPath) { - return true - } - } - return false -} - -func hasUsedDownwardAPIFieldPathWithVolume(volume *api.Volume, fieldPath string) bool { - if volume == nil { - return false - } - if volume.DownwardAPI != nil { - for _, file := range volume.DownwardAPI.Items { - if file.FieldRef != nil && - file.FieldRef.FieldPath == fieldPath { - return true - } - } - } - return false -} - -func hasUsedDownwardAPIFieldPathWithContainer(container *api.Container, fieldPath string) bool { - if container == nil { - return false - } - for _, env := range container.Env { - if env.ValueFrom != nil && - env.ValueFrom.FieldRef != nil && - env.ValueFrom.FieldRef.FieldPath == fieldPath { - return true - } - } - return false -} - // GetValidationOptionsFromPodTemplate will return pod validation options for specified template. func GetValidationOptionsFromPodTemplate(podTemplate, oldPodTemplate *api.PodTemplateSpec) apivalidation.PodValidationOptions { var newPodSpec, oldPodSpec *api.PodSpec @@ -568,39 +512,19 @@ func DropDisabledTemplateFields(podTemplate, oldPodTemplate *api.PodTemplateSpec func DropDisabledPodFields(pod, oldPod *api.Pod) { var ( podSpec *api.PodSpec - podStatus *api.PodStatus podAnnotations map[string]string oldPodSpec *api.PodSpec - oldPodStatus *api.PodStatus oldPodAnnotations map[string]string ) if pod != nil { podSpec = &pod.Spec podAnnotations = pod.Annotations - podStatus = &pod.Status } if oldPod != nil { oldPodSpec = &oldPod.Spec oldPodAnnotations = oldPod.Annotations - oldPodStatus = &oldPod.Status } dropDisabledFields(podSpec, podAnnotations, oldPodSpec, oldPodAnnotations) - dropDisabledStatusFields(podStatus, oldPodStatus) -} - -// dropDisabledStatusFields removes disabled fields from the pod status -func dropDisabledStatusFields(podStatus *api.PodStatus, oldPodStatus *api.PodStatus) { - // drop HostIPs to empty (disable PodHostIPs). - if !utilfeature.DefaultFeatureGate.Enabled(features.PodHostIPs) && !hostIPsInUse(oldPodStatus) { - podStatus.HostIPs = nil - } -} - -func hostIPsInUse(podStatus *api.PodStatus) bool { - if podStatus == nil { - return false - } - return len(podStatus.HostIPs) > 0 } // dropDisabledFields removes disabled fields from the pod metadata and spec. diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/v1/service/util.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/v1/service/util.go index 68913287c139..928c82c34f6e 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/v1/service/util.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/api/v1/service/util.go @@ -67,8 +67,8 @@ func GetLoadBalancerSourceRanges(service *v1.Service) (utilnet.IPNetSet, error) return ipnets, nil } -// RequestsOnlyLocalTraffic checks if service requests OnlyLocal traffic. -func RequestsOnlyLocalTraffic(service *v1.Service) bool { +// ExternalPolicyLocal checks if service has ETP = Local. +func ExternalPolicyLocal(service *v1.Service) bool { if service.Spec.Type != v1.ServiceTypeLoadBalancer && service.Spec.Type != v1.ServiceTypeNodePort { return false @@ -76,9 +76,8 @@ func RequestsOnlyLocalTraffic(service *v1.Service) bool { return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal } -// RequestsOnlyLocalTrafficForInternal checks if service prefers Node Local -// endpoints for internal traffic -func RequestsOnlyLocalTrafficForInternal(service *v1.Service) bool { +// InternalPolicyLocal checks if service has ITP = Local. +func InternalPolicyLocal(service *v1.Service) bool { if service.Spec.InternalTrafficPolicy == nil { return false } @@ -90,7 +89,7 @@ func NeedsHealthCheck(service *v1.Service) bool { if service.Spec.Type != v1.ServiceTypeLoadBalancer { return false } - return RequestsOnlyLocalTraffic(service) + return ExternalPolicyLocal(service) } // GetServiceHealthCheckPathPort returns the path and nodePort programmed into the Cloud LB Health Check diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go index a86fd4f7dd76..771b2ef23c85 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go @@ -257,6 +257,7 @@ type StatefulSetStatus struct { // Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset. // This is a beta field and requires enabling StatefulSetMinReadySeconds feature gate. + // +optional AvailableReplicas int32 } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go index bc2415309323..e05a313a1f16 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/pods/helpers.go @@ -88,7 +88,6 @@ func ConvertDownwardAPIFieldLabel(version, label, value string) (string, string, "spec.schedulerName", "status.phase", "status.hostIP", - "status.hostIPs", "status.podIP", "status.podIPs": return label, value, nil diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/types.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/types.go index 3d1319d5d44f..5519db6cdf97 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/types.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/types.go @@ -3212,14 +3212,10 @@ type PodDNSConfigOption struct { } // PodIP represents the IP address of a pod. +// IP address information. Each entry includes: +// IP: An IP address allocated to the pod. Routable at least within +// the cluster. type PodIP struct { - // ip is an IP address assigned to the pod - IP string -} - -// HostIP represents the IP address of a host. -type HostIP struct { - // ip is an IP address assigned to the host IP string } @@ -3360,22 +3356,9 @@ type PodStatus struct { // give the resources on this node to a higher priority pod that is created after preemption. // +optional NominatedNodeName string - - // HostIP holds the IP address of the host to which the pod is assigned. - // Empty if the pod has not started yet. - // A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will - // not be updated even if there is node is assigned to pod // +optional HostIP string - // HostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must - // match the hostIP field. This list is empty if the pod has not started yet. - // A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will - // not be updated even if there is a node is assigned to this pod. - // match the hostIP field. This list is empty if no IPs have been allocated yet. - // +optional - HostIPs []HostIP - // PodIPs holds all of the known IP addresses allocated to the pod. Pods may be assigned AT MOST // one value for each of IPv4 and IPv6. // +optional diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go index 5a4440d8a77b..d89ea26354b8 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go @@ -270,17 +270,6 @@ func Convert_v1_PodStatus_To_core_PodStatus(in *v1.PodStatus, out *core.PodStatu }, } } - - // If both fields (v1.HostIPs and v1.HostIP) are provided and differ, then HostIP is authoritative for compatibility with older kubelets - if (len(in.HostIP) > 0 && len(in.HostIPs) > 0) && (in.HostIP != in.HostIPs[0].IP) { - out.HostIPs = []core.HostIP{{IP: in.HostIP}} - } - // at the this point, autoConvert copied v1.HostIPs -> core.HostIPs - // if v1.HostIPs was empty but v1.HostIP is not, then set core.HostIPs[0] with v1.HostIP - if len(in.HostIP) > 0 && len(in.HostIPs) == 0 { - out.HostIPs = []core.HostIP{{IP: in.HostIP}} - } - return nil } @@ -294,11 +283,6 @@ func Convert_core_PodStatus_To_v1_PodStatus(in *core.PodStatus, out *v1.PodStatu if len(in.PodIPs) > 0 { out.PodIP = in.PodIPs[0].IP } - - // at the this point autoConvert copied core.HostIPs -> v1.HostIPs - if len(in.HostIPs) > 0 { - out.HostIP = in.HostIPs[0].IP - } return nil } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go index 58d29e0bd1b9..1a7aa4458f3a 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go @@ -370,62 +370,3 @@ func ScopedResourceSelectorRequirementsAsSelector(ssr v1.ScopedResourceSelectorR selector = selector.Add(*r) return selector, nil } - -// NodeSelectorRequirementsAsLabelRequirements converts the NodeSelectorRequirement -// type to a labels.Requirement type. -func NodeSelectorRequirementsAsLabelRequirements(nsr v1.NodeSelectorRequirement) (*labels.Requirement, error) { - var op selection.Operator - switch nsr.Operator { - case v1.NodeSelectorOpIn: - op = selection.In - case v1.NodeSelectorOpNotIn: - op = selection.NotIn - case v1.NodeSelectorOpExists: - op = selection.Exists - case v1.NodeSelectorOpDoesNotExist: - op = selection.DoesNotExist - case v1.NodeSelectorOpGt: - op = selection.GreaterThan - case v1.NodeSelectorOpLt: - op = selection.LessThan - default: - return nil, fmt.Errorf("%q is not a valid node selector operator", nsr.Operator) - } - return labels.NewRequirement(nsr.Key, op, nsr.Values) -} - -// NodeSelectorAsSelector converts the NodeSelector api type into a struct that -// implements labels.Selector -// Note: This function should be kept in sync with the selector methods in -// pkg/labels/selector.go -func NodeSelectorAsSelector(ns *v1.NodeSelector) (labels.Selector, error) { - if ns == nil { - return labels.Nothing(), nil - } - if len(ns.NodeSelectorTerms) == 0 { - return labels.Everything(), nil - } - requirements := make([]labels.Requirement, 0) - - for _, nsTerm := range ns.NodeSelectorTerms { - for _, expr := range nsTerm.MatchExpressions { - req, err := NodeSelectorRequirementsAsLabelRequirements(expr) - if err != nil { - return nil, err - } - requirements = append(requirements, *req) - } - - for _, field := range nsTerm.MatchFields { - req, err := NodeSelectorRequirementsAsLabelRequirements(field) - if err != nil { - return nil, err - } - requirements = append(requirements, *req) - } - } - - selector := labels.NewSelector() - selector = selector.Add(requirements...) - return selector, nil -} diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go index 08daada244a0..3f613c62ee93 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go @@ -712,16 +712,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*v1.HostIP)(nil), (*core.HostIP)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_HostIP_To_core_HostIP(a.(*v1.HostIP), b.(*core.HostIP), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*core.HostIP)(nil), (*v1.HostIP)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_core_HostIP_To_v1_HostIP(a.(*core.HostIP), b.(*v1.HostIP), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*v1.HostPathVolumeSource)(nil), (*core.HostPathVolumeSource)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(a.(*v1.HostPathVolumeSource), b.(*core.HostPathVolumeSource), scope) }); err != nil { @@ -4015,26 +4005,6 @@ func Convert_core_HostAlias_To_v1_HostAlias(in *core.HostAlias, out *v1.HostAlia return autoConvert_core_HostAlias_To_v1_HostAlias(in, out, s) } -func autoConvert_v1_HostIP_To_core_HostIP(in *v1.HostIP, out *core.HostIP, s conversion.Scope) error { - out.IP = in.IP - return nil -} - -// Convert_v1_HostIP_To_core_HostIP is an autogenerated conversion function. -func Convert_v1_HostIP_To_core_HostIP(in *v1.HostIP, out *core.HostIP, s conversion.Scope) error { - return autoConvert_v1_HostIP_To_core_HostIP(in, out, s) -} - -func autoConvert_core_HostIP_To_v1_HostIP(in *core.HostIP, out *v1.HostIP, s conversion.Scope) error { - out.IP = in.IP - return nil -} - -// Convert_core_HostIP_To_v1_HostIP is an autogenerated conversion function. -func Convert_core_HostIP_To_v1_HostIP(in *core.HostIP, out *v1.HostIP, s conversion.Scope) error { - return autoConvert_core_HostIP_To_v1_HostIP(in, out, s) -} - func autoConvert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(in *v1.HostPathVolumeSource, out *core.HostPathVolumeSource, s conversion.Scope) error { out.Path = in.Path out.Type = (*core.HostPathType)(unsafe.Pointer(in.Type)) @@ -6277,7 +6247,6 @@ func autoConvert_v1_PodStatus_To_core_PodStatus(in *v1.PodStatus, out *core.PodS out.Reason = in.Reason out.NominatedNodeName = in.NominatedNodeName out.HostIP = in.HostIP - out.HostIPs = *(*[]core.HostIP)(unsafe.Pointer(&in.HostIPs)) // WARNING: in.PodIP requires manual conversion: does not exist in peer-type out.PodIPs = *(*[]core.PodIP)(unsafe.Pointer(&in.PodIPs)) out.StartTime = (*metav1.Time)(unsafe.Pointer(in.StartTime)) @@ -6295,7 +6264,6 @@ func autoConvert_core_PodStatus_To_v1_PodStatus(in *core.PodStatus, out *v1.PodS out.Reason = in.Reason out.NominatedNodeName = in.NominatedNodeName out.HostIP = in.HostIP - out.HostIPs = *(*[]v1.HostIP)(unsafe.Pointer(&in.HostIPs)) out.PodIPs = *(*[]v1.PodIP)(unsafe.Pointer(&in.PodIPs)) out.StartTime = (*metav1.Time)(unsafe.Pointer(in.StartTime)) out.QOSClass = v1.PodQOSClass(in.QOSClass) diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go index 3a791d86f778..6357a631f942 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go @@ -1044,7 +1044,6 @@ func validateDownwardAPIVolumeFile(file *core.DownwardAPIVolumeFile, fldPath *fi if file.ResourceFieldRef != nil { allErrs = append(allErrs, field.Invalid(fldPath, "resource", "fieldRef and resourceFieldRef can not be specified simultaneously")) } - allErrs = append(allErrs, validateDownwardAPIHostIPs(file.FieldRef, fldPath.Child("fieldRef"), opts)...) } else if file.ResourceFieldRef != nil { localValidContainerResourceFieldPathPrefixes := validContainerResourceFieldPathPrefixes if opts.AllowDownwardAPIHugePages { @@ -2330,10 +2329,8 @@ var validEnvDownwardAPIFieldPathExpressions = sets.NewString( "spec.nodeName", "spec.serviceAccountName", "status.hostIP", - "status.hostIPs", "status.podIP", - "status.podIPs", -) + "status.podIPs") var validContainerResourceFieldPathExpressions = sets.NewString("limits.cpu", "limits.memory", "limits.ephemeral-storage", "requests.cpu", "requests.memory", "requests.ephemeral-storage") @@ -2356,7 +2353,6 @@ func validateEnvVarValueFrom(ev core.EnvVar, fldPath *field.Path, opts PodValida if ev.ValueFrom.FieldRef != nil { numSources++ allErrs = append(allErrs, validateObjectFieldSelector(ev.ValueFrom.FieldRef, &validEnvDownwardAPIFieldPathExpressions, fldPath.Child("fieldRef"))...) - allErrs = append(allErrs, validateDownwardAPIHostIPs(ev.ValueFrom.FieldRef, fldPath.Child("fieldRef"), opts)...) } if ev.ValueFrom.ResourceFieldRef != nil { numSources++ @@ -2427,16 +2423,6 @@ func validateObjectFieldSelector(fs *core.ObjectFieldSelector, expressions *sets return allErrs } -func validateDownwardAPIHostIPs(fieldSel *core.ObjectFieldSelector, fldPath *field.Path, opts PodValidationOptions) field.ErrorList { - allErrs := field.ErrorList{} - if !opts.AllowHostIPsField { - if fieldSel.FieldPath == "status.hostIPs" { - allErrs = append(allErrs, field.Invalid(fldPath, "status.hostIPs", "not allowed when feature gate 'PodHostIPs' is not enabled")) - } - } - return allErrs -} - func validateContainerResourceFieldSelector(fs *core.ResourceFieldSelector, expressions *sets.String, prefixes *sets.String, fldPath *field.Path, volume bool) field.ErrorList { allErrs := field.ErrorList{} @@ -3429,8 +3415,6 @@ type PodValidationOptions struct { AllowExpandedDNSConfig bool // Allow OSField to be set in the pod spec AllowOSField bool - // Allow pod spec to use status.hostIPs in downward API - AllowHostIPsField bool // Allow sysctl name to contain a slash AllowSysctlRegexContainSlash bool } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go index 9ad24cb491ad..6063cbd7398b 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go @@ -1802,22 +1802,6 @@ func (in *HostAlias) DeepCopy() *HostAlias { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HostIP) DeepCopyInto(out *HostIP) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostIP. -func (in *HostIP) DeepCopy() *HostIP { - if in == nil { - return nil - } - out := new(HostIP) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HostPathVolumeSource) DeepCopyInto(out *HostPathVolumeSource) { *out = *in @@ -3990,11 +3974,6 @@ func (in *PodStatus) DeepCopyInto(out *PodStatus) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.HostIPs != nil { - in, out := &in.HostIPs, &out.HostIPs - *out = make([]HostIP, len(*in)) - copy(*out, *in) - } if in.PodIPs != nil { in, out := &in.PodIPs, &out.PodIPs *out = make([]PodIP, len(*in)) diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/register.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/register.go index 52fb94b0983a..81dad49b1dee 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/register.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/register.go @@ -52,8 +52,6 @@ func addKnownTypes(scheme *runtime.Scheme) error { &IngressList{}, &IngressClass{}, &IngressClassList{}, - &ClusterCIDRConfig{}, - &ClusterCIDRConfigList{}, ) return nil } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go index 950008d1ab3c..7010bac4dbed 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go @@ -585,61 +585,3 @@ type ServiceBackendPort struct { // +optional Number int32 } - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterCIDRConfig is the Schema for the clustercidrconfigs API. -type ClusterCIDRConfig struct { - metav1.TypeMeta - metav1.ObjectMeta - - Spec ClusterCIDRConfigSpec - Status ClusterCIDRConfigStatus -} - -// ClusterCIDRConfigSpec defines the desired state of ClusterCIDRConfig. -type ClusterCIDRConfigSpec struct { - // NodeSelector defines which nodes the config is applicable to. - // An empty or nil NodeSelector functions as a default that applies to all nodes. - // This field is immutable. - // +optional - NodeSelector *api.NodeSelector - - // PerNodeHostBits defines the number of host bits to be configured per node. - // A subnet mask determines how much of the address is used for network bits - // and host bits. For example and IPv4 address of 192.168.0.0/24, splits the - // address into 24 bits for the network portion and 8 bits for the host portion. - // For a /24 mask for IPv4 or a /120 for IPv6, configure PerNodeHostBits=8 - // This field is immutable. - // +optional - PerNodeHostBits int32 - - // IPv4CIDR defines an IPv4 IP block in CIDR notation(e.g. "10.0.0.0/8"). - // This field is immutable. - // +optional - IPv4CIDR string - - // IPv6CIDR defines an IPv6 IP block in CIDR notation(e.g. "fd12:3456:789a:1::/64"). - // This field is immutable. - // +optional - IPv6CIDR string -} - -// ClusterCIDRConfigStatus defines the observed state of ClusterCIDRConfig. -type ClusterCIDRConfigStatus struct { -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterCIDRConfigList contains a list of ClusterCIDRConfigs. -type ClusterCIDRConfigList struct { - metav1.TypeMeta - - // +optional - metav1.ListMeta - - // Items is the list of ClusterCIDRConfigs. - Items []ClusterCIDRConfig -} diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go index affb8d6fc835..34df7bcacb85 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go @@ -28,104 +28,6 @@ import ( core "k8s.io/kubernetes/pkg/apis/core" ) -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfig) DeepCopyInto(out *ClusterCIDRConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfig. -func (in *ClusterCIDRConfig) DeepCopy() *ClusterCIDRConfig { - if in == nil { - return nil - } - out := new(ClusterCIDRConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterCIDRConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfigList) DeepCopyInto(out *ClusterCIDRConfigList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterCIDRConfig, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfigList. -func (in *ClusterCIDRConfigList) DeepCopy() *ClusterCIDRConfigList { - if in == nil { - return nil - } - out := new(ClusterCIDRConfigList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterCIDRConfigList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfigSpec) DeepCopyInto(out *ClusterCIDRConfigSpec) { - *out = *in - if in.NodeSelector != nil { - in, out := &in.NodeSelector, &out.NodeSelector - *out = new(core.NodeSelector) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfigSpec. -func (in *ClusterCIDRConfigSpec) DeepCopy() *ClusterCIDRConfigSpec { - if in == nil { - return nil - } - out := new(ClusterCIDRConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterCIDRConfigStatus) DeepCopyInto(out *ClusterCIDRConfigStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCIDRConfigStatus. -func (in *ClusterCIDRConfigStatus) DeepCopy() *ClusterCIDRConfigStatus { - if in == nil { - return nil - } - out := new(ClusterCIDRConfigStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) { *out = *in diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/keyring.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/keyring.go index 0af960a384fc..4bbe5c4d9f12 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/keyring.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/keyring.go @@ -120,7 +120,7 @@ func (dk *BasicDockerKeyring) Add(cfg DockerConfig) { // Update the index used to identify which credentials to use for a given // image. The index is reverse-sorted so more specific paths are matched - // first. For example, if for the given image "quay.io/coreos/etcd", + // first. For example, if for the given image "gcr.io/etcd-development/etcd", // credentials for "quay.io/coreos" should match before "quay.io". sort.Sort(sort.Reverse(sort.StringSlice(dk.index))) } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/features/kube_features.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/features/kube_features.go index 6b6689c761ee..c1a3e6e7f9a3 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/features/kube_features.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/features/kube_features.go @@ -412,13 +412,6 @@ const ( // Enables ipv6 dual stack IPv6DualStack featuregate.Feature = "IPv6DualStack" - // owner: @wzshiming - // kep: http://kep.k8s.io/2681 - // alpha: v1.24 - // - // Adds pod.status.hostIPs and downward API - PodHostIPs featuregate.Feature = "PodHostIPs" - // owner: @robscott @freehan // kep: http://kep.k8s.io/752 // alpha: v1.16 @@ -586,9 +579,10 @@ const ( // Allows control if NodePorts shall be created for services with "type: LoadBalancer" by defining the spec.AllocateLoadBalancerNodePorts field (bool) ServiceLBNodePortControl featuregate.Feature = "ServiceLBNodePortControl" - // owner: @janosi + // owner: @janosi @bridgetkromhout // kep: http://kep.k8s.io/1435 // alpha: v1.20 + // beta: v1.24 // // Enables the usage of different protocols in the same Service with type=LoadBalancer MixedProtocolLBService featuregate.Feature = "MixedProtocolLBService" @@ -821,7 +815,6 @@ const ( // owner: @deepakkinni @xing-yang // kep: http://kep.k8s.io/2680 // alpha: v1.23 - // beta: v1.24 // // Honor Persistent Volume Reclaim Policy when it is "Delete" irrespective of PV-PVC // deletion ordering. @@ -882,6 +875,13 @@ const ( // // Enables NetworkPolicy status subresource NetworkPolicyStatus featuregate.Feature = "NetworkPolicyStatus" + + // owner: @deejross + // kep: http://kep.k8s.io/3140 + // alpha: v1.24 + // + // Enables support for time zones in CronJobs. + CronJobTimeZone featuregate.Feature = "CronJobTimeZone" ) func init() { @@ -936,14 +936,13 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS ProcMountType: {Default: false, PreRelease: featuregate.Alpha}, TTLAfterFinished: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25 IndexedJob: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.26 - JobTrackingWithFinalizers: {Default: true, PreRelease: featuregate.Beta}, + JobTrackingWithFinalizers: {Default: false, PreRelease: featuregate.Beta}, // Disabled due to #109485 JobReadyPods: {Default: true, PreRelease: featuregate.Beta}, KubeletPodResources: {Default: true, PreRelease: featuregate.Beta}, LocalStorageCapacityIsolationFSQuotaMonitoring: {Default: false, PreRelease: featuregate.Alpha}, NonPreemptingPriority: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25 PodOverhead: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.26 IPv6DualStack: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25 - PodHostIPs: {Default: false, PreRelease: featuregate.Alpha}, EndpointSlice: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25 EndpointSliceProxying: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25 EndpointSliceTerminatingCondition: {Default: true, PreRelease: featuregate.Beta}, @@ -965,7 +964,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS GracefulNodeShutdown: {Default: true, PreRelease: featuregate.Beta}, GracefulNodeShutdownBasedOnPodPriority: {Default: true, PreRelease: featuregate.Beta}, ServiceLBNodePortControl: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.26 - MixedProtocolLBService: {Default: false, PreRelease: featuregate.Alpha}, + MixedProtocolLBService: {Default: true, PreRelease: featuregate.Beta}, VolumeCapacityPriority: {Default: false, PreRelease: featuregate.Alpha}, PreferNominatedNode: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.25 ProbeTerminationGracePeriod: {Default: false, PreRelease: featuregate.Beta}, // Default to false in beta 1.22, set to true in 1.24 @@ -1000,7 +999,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS JobMutableNodeSchedulingDirectives: {Default: true, PreRelease: featuregate.Beta}, IdentifyPodOS: {Default: true, PreRelease: featuregate.Beta}, PodAndContainerStatsFromCRI: {Default: false, PreRelease: featuregate.Alpha}, - HonorPVReclaimPolicy: {Default: true, PreRelease: featuregate.Beta}, + HonorPVReclaimPolicy: {Default: false, PreRelease: featuregate.Alpha}, RecoverVolumeExpansionFailure: {Default: false, PreRelease: featuregate.Alpha}, GRPCContainerProbe: {Default: true, PreRelease: featuregate.Beta}, LegacyServiceAccountTokenNoAutoGeneration: {Default: true, PreRelease: featuregate.Beta}, @@ -1009,6 +1008,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS NodeOutOfServiceVolumeDetach: {Default: false, PreRelease: featuregate.Alpha}, MaxUnavailableStatefulSet: {Default: false, PreRelease: featuregate.Alpha}, NetworkPolicyStatus: {Default: false, PreRelease: featuregate.Alpha}, + CronJobTimeZone: {Default: false, PreRelease: featuregate.Alpha}, // inherited features from generic apiserver, relisted here to get a conflict if it is changed // unintentionally on either side: @@ -1021,7 +1021,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS genericfeatures.OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta}, genericfeatures.CustomResourceValidationExpressions: {Default: false, PreRelease: featuregate.Alpha}, genericfeatures.OpenAPIV3: {Default: true, PreRelease: featuregate.Beta}, - genericfeatures.ServerSideFieldValidation: {Default: true, PreRelease: featuregate.Beta}, + genericfeatures.ServerSideFieldValidation: {Default: false, PreRelease: featuregate.Alpha}, // features that enable backwards compatibility but are scheduled to be removed // ... HPAScaleToZero: {Default: false, PreRelease: featuregate.Alpha}, diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go index 5f370e11c30b..d27777554473 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go @@ -130,7 +130,7 @@ func NewKubeletServerCertificateManager(kubeClient clientset.Interface, kubeCfg return nil, fmt.Errorf("failed to initialize server certificate manager: %v", err) } legacyregistry.RawMustRegister(compbasemetrics.NewGaugeFunc( - compbasemetrics.GaugeOpts{ + &compbasemetrics.GaugeOpts{ Subsystem: metrics.KubeletSubsystem, Name: "certificate_manager_server_ttl_seconds", Help: "Gauge of the shortest TTL (time-to-live) of " + diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go index 62fb4cee5274..45a3bb61b46d 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go @@ -826,19 +826,6 @@ func (kl *Kubelet) podFieldSelectorRuntimeValue(fs *v1.ObjectFieldSelector, pod return "", err } return hostIPs[0].String(), nil - case "status.hostIPs": - if !utilfeature.DefaultFeatureGate.Enabled(features.PodHostIPs) { - return "", nil - } - hostIPs, err := kl.getHostIPsAnyWay() - if err != nil { - return "", err - } - ips := make([]string, 0, len(hostIPs)) - for _, ip := range hostIPs { - ips = append(ips, ip.String()) - } - return strings.Join(ips, ","), nil case "status.podIP": return podIP, nil case "status.podIPs": @@ -1530,13 +1517,6 @@ func (kl *Kubelet) generateAPIPodStatus(pod *v1.Pod, podStatus *kubecontainer.Po klog.V(4).InfoS("Cannot get host IPs", "err", err) } else { s.HostIP = hostIPs[0].String() - if utilfeature.DefaultFeatureGate.Enabled(features.PodHostIPs) { - ips := make([]v1.HostIP, 0, len(hostIPs)) - for _, hostIP := range hostIPs { - ips = append(ips, v1.HostIP{IP: hostIP.String()}) - } - s.HostIPs = ips - } // HostNetwork Pods inherit the node IPs as PodIPs. They are immutable once set, // other than that if the node becomes dual-stack, we add the secondary IP. if kubecontainer.IsHostNetworkPod(pod) { diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go index 20316818018e..8bb12d194133 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go @@ -343,7 +343,7 @@ func (dswp *desiredStateOfWorldPopulator) checkVolumeFSResize( volumeSpec *volume.Spec, uniquePodName volumetypes.UniquePodName, mountedVolumesForPod map[volumetypes.UniquePodName]map[string]cache.MountedVolume) { - if podVolume.PersistentVolumeClaim == nil { + if podVolume.PersistentVolumeClaim == nil || pvc == nil { // Only PVC supports resize operation. return } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go index 3d372a779a95..5f8094ef6057 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go @@ -38,9 +38,11 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/events" utilsysctl "k8s.io/component-helpers/node/util/sysctl" "k8s.io/klog/v2" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" "k8s.io/kubernetes/pkg/proxy/metaproxier" @@ -115,11 +117,11 @@ const sysctlBridgeCallIPTables = "net/bridge/bridge-nf-call-iptables" type serviceInfo struct { *proxy.BaseServiceInfo // The following fields are computed and stored for performance reasons. - serviceNameString string - servicePortChainName utiliptables.Chain - serviceLocalChainName utiliptables.Chain - serviceFirewallChainName utiliptables.Chain - serviceLBChainName utiliptables.Chain + nameString string + clusterPolicyChainName utiliptables.Chain + localPolicyChainName utiliptables.Chain + firewallChainName utiliptables.Chain + externalChainName utiliptables.Chain } // returns a new proxy.ServicePort which abstracts a serviceInfo @@ -130,11 +132,11 @@ func newServiceInfo(port *v1.ServicePort, service *v1.Service, baseInfo *proxy.B svcName := types.NamespacedName{Namespace: service.Namespace, Name: service.Name} svcPortName := proxy.ServicePortName{NamespacedName: svcName, Port: port.Name} protocol := strings.ToLower(string(info.Protocol())) - info.serviceNameString = svcPortName.String() - info.servicePortChainName = servicePortChainName(info.serviceNameString, protocol) - info.serviceLocalChainName = serviceLocalChainName(info.serviceNameString, protocol) - info.serviceFirewallChainName = serviceFirewallChainName(info.serviceNameString, protocol) - info.serviceLBChainName = serviceLBChainName(info.serviceNameString, protocol) + info.nameString = svcPortName.String() + info.clusterPolicyChainName = servicePortPolicyClusterChain(info.nameString, protocol) + info.localPolicyChainName = servicePortPolicyLocalChainName(info.nameString, protocol) + info.firewallChainName = serviceFirewallChainName(info.nameString, protocol) + info.externalChainName = serviceExternalChainName(info.nameString, protocol) return info } @@ -684,25 +686,28 @@ func portProtoHash(servicePortName string, protocol string) string { } const ( - servicePortChainNamePrefix = "KUBE-SVC-" - serviceLocalChainNamePrefix = "KUBE-SVL-" - serviceFirewallChainNamePrefix = "KUBE-FW-" - serviceLBChainNamePrefix = "KUBE-XLB-" - servicePortEndpointChainNamePrefix = "KUBE-SEP-" + servicePortPolicyClusterChainNamePrefix = "KUBE-SVC-" + servicePortPolicyLocalChainNamePrefix = "KUBE-SVL-" + serviceFirewallChainNamePrefix = "KUBE-FW-" + serviceExternalChainNamePrefix = "KUBE-EXT-" + servicePortEndpointChainNamePrefix = "KUBE-SEP-" + + // For cleanup. This can be removed after 1.26 is released. + deprecatedServiceLBChainNamePrefix = "KUBE-XLB-" ) -// servicePortChainName returns the name of the KUBE-SVC-XXXX chain for a service, which is the +// servicePortPolicyClusterChain returns the name of the KUBE-SVC-XXXX chain for a service, which is the // main iptables chain for that service, used for dispatching to endpoints when using `Cluster` // traffic policy. -func servicePortChainName(servicePortName string, protocol string) utiliptables.Chain { - return utiliptables.Chain(servicePortChainNamePrefix + portProtoHash(servicePortName, protocol)) +func servicePortPolicyClusterChain(servicePortName string, protocol string) utiliptables.Chain { + return utiliptables.Chain(servicePortPolicyClusterChainNamePrefix + portProtoHash(servicePortName, protocol)) } -// serviceLocalChainName returns the name of the KUBE-SVL-XXXX chain for a service, which +// servicePortPolicyLocalChainName returns the name of the KUBE-SVL-XXXX chain for a service, which // handles dispatching to local endpoints when using `Local` traffic policy. This chain only // exists if the service has `Local` internal or external traffic policy. -func serviceLocalChainName(servicePortName string, protocol string) utiliptables.Chain { - return utiliptables.Chain(serviceLocalChainNamePrefix + portProtoHash(servicePortName, protocol)) +func servicePortPolicyLocalChainName(servicePortName string, protocol string) utiliptables.Chain { + return utiliptables.Chain(servicePortPolicyLocalChainNamePrefix + portProtoHash(servicePortName, protocol)) } // serviceFirewallChainName returns the name of the KUBE-FW-XXXX chain for a service, which @@ -711,12 +716,12 @@ func serviceFirewallChainName(servicePortName string, protocol string) utiliptab return utiliptables.Chain(serviceFirewallChainNamePrefix + portProtoHash(servicePortName, protocol)) } -// serviceLBChainName returns the name of the KUBE-XLB-XXXX chain for a service, which -// implements "short-circuiting" for internally-originated load balancer traffic when using -// `Local` external traffic policy. It forwards traffic from local sources to the KUBE-SVC-XXXX +// serviceExternalChainName returns the name of the KUBE-EXT-XXXX chain for a service, which +// implements "short-circuiting" for internally-originated external-destination traffic when using +// `Local` external traffic policy. It forwards traffic from local sources to the KUBE-SVC-XXXX // chain and traffic from external sources to the KUBE-SVL-XXXX chain. -func serviceLBChainName(servicePortName string, protocol string) utiliptables.Chain { - return utiliptables.Chain(serviceLBChainNamePrefix + portProtoHash(servicePortName, protocol)) +func serviceExternalChainName(servicePortName string, protocol string) utiliptables.Chain { + return utiliptables.Chain(serviceExternalChainNamePrefix + portProtoHash(servicePortName, protocol)) } // servicePortEndpointChainName returns the name of the KUBE-SEP-XXXX chain for a particular @@ -729,11 +734,12 @@ func servicePortEndpointChainName(servicePortName string, protocol string, endpo func isServiceChainName(chainString string) bool { prefixes := []string{ - servicePortChainNamePrefix, - serviceLocalChainNamePrefix, + servicePortPolicyClusterChainNamePrefix, + servicePortPolicyLocalChainNamePrefix, servicePortEndpointChainNamePrefix, serviceFirewallChainNamePrefix, - serviceLBChainNamePrefix, + serviceExternalChainNamePrefix, + deprecatedServiceLBChainNamePrefix, } for _, p := range prefixes { @@ -989,16 +995,20 @@ func (proxier *Proxier) syncProxyRules() { } } - // Build rules for each service. + // These two variables are used to publish the sync_proxy_rules_no_endpoints_total + // metric. + serviceNoLocalEndpointsTotalInternal := 0 + serviceNoLocalEndpointsTotalExternal := 0 + + // Build rules for each service-port. for svcName, svc := range proxier.serviceMap { svcInfo, ok := svc.(*serviceInfo) if !ok { klog.ErrorS(nil, "Failed to cast serviceInfo", "serviceName", svcName) continue } - isIPv6 := netutils.IsIPv6(svcInfo.ClusterIP()) protocol := strings.ToLower(string(svcInfo.Protocol())) - svcNameString := svcInfo.serviceNameString + svcNameString := svcInfo.nameString allEndpoints := proxier.endpointsMap[svcName] @@ -1042,80 +1052,108 @@ func (proxier *Proxier) syncProxyRules() { proxier.natRules.Write(args) } - policyClusterChain := svcInfo.servicePortChainName - policyLocalChain := svcInfo.serviceLocalChainName - svcXlbChain := svcInfo.serviceLBChainName - - internalTrafficChain := policyClusterChain - externalTrafficChain := policyClusterChain - - if svcInfo.NodeLocalInternal() { - internalTrafficChain = policyLocalChain + // These chains represent the sets of endpoints to use when internal or + // external traffic policy is "Cluster" vs "Local". + clusterPolicyChain := svcInfo.clusterPolicyChainName + localPolicyChain := svcInfo.localPolicyChainName + + // These chains designate which policy chain to use for internal- and + // external-destination traffic. + internalPolicyChain := clusterPolicyChain + externalPolicyChain := clusterPolicyChain + if svcInfo.InternalPolicyLocal() { + internalPolicyChain = localPolicyChain } - if svcInfo.NodeLocalExternal() { - externalTrafficChain = svcXlbChain + if svcInfo.ExternalPolicyLocal() { + externalPolicyChain = localPolicyChain } + // These chains are where *ALL* rules which match traffic that is + // service-destined should jump. ClusterIP traffic is considered + // "internal" while NodePort, LoadBalancer, and ExternalIPs traffic is + // considered "external". + internalTrafficChain := internalPolicyChain + externalTrafficChain := svcInfo.externalChainName // eventually jumps to externalPolicyChain + + // Declare the clusterPolicyChain if needed. if hasEndpoints && svcInfo.UsesClusterEndpoints() { // Create the Cluster traffic policy chain, retaining counters if possible. - if chain, ok := existingNATChains[policyClusterChain]; ok { + if chain, ok := existingNATChains[clusterPolicyChain]; ok { proxier.natChains.WriteBytes(chain) } else { - proxier.natChains.Write(utiliptables.MakeChainLine(policyClusterChain)) + proxier.natChains.Write(utiliptables.MakeChainLine(clusterPolicyChain)) } - activeNATChains[policyClusterChain] = true + activeNATChains[clusterPolicyChain] = true } - if hasEndpoints && svcInfo.ExternallyAccessible() && svcInfo.NodeLocalExternal() { - if chain, ok := existingNATChains[svcXlbChain]; ok { + // Declare the localPolicyChain if needed. + if hasEndpoints && svcInfo.UsesLocalEndpoints() { + if chain, ok := existingNATChains[localPolicyChain]; ok { proxier.natChains.WriteBytes(chain) } else { - proxier.natChains.Write(utiliptables.MakeChainLine(svcXlbChain)) + proxier.natChains.Write(utiliptables.MakeChainLine(localPolicyChain)) } - activeNATChains[svcXlbChain] = true + activeNATChains[localPolicyChain] = true + } - // The XLB chain redirects all pod -> external VIP - // traffic to the Service's ClusterIP instead. This happens - // whether or not we have local endpoints; only if localDetector - // is implemented - if proxier.localDetector.IsImplemented() { - proxier.natRules.Write( - "-A", string(svcXlbChain), - "-m", "comment", "--comment", - `"Redirect pods trying to reach external loadbalancer VIP to clusterIP"`, - proxier.localDetector.IfLocal(), - "-j", string(policyClusterChain)) + // If any "external" destinations are enabled, set up external traffic + // handling. All captured traffic for all external destinations should + // jump to externalTrafficChain, which will handle some special-cases + // and then jump to externalPolicyChain. + if hasEndpoints && svcInfo.ExternallyAccessible() { + if chain, ok := existingNATChains[externalTrafficChain]; ok { + proxier.natChains.WriteBytes(chain) + } else { + proxier.natChains.Write(utiliptables.MakeChainLine(externalTrafficChain)) } + activeNATChains[externalTrafficChain] = true - // Next, redirect all src-type=LOCAL -> LB IP to the service chain - // for externalTrafficPolicy=Local This allows traffic originating - // from the host to be redirected to the service correctly, - // otherwise traffic to LB IPs are dropped if there are no local - // endpoints. - proxier.natRules.Write( - "-A", string(svcXlbChain), - "-m", "comment", "--comment", fmt.Sprintf(`"masquerade LOCAL traffic for %s LB IP"`, svcNameString), - "-m", "addrtype", "--src-type", "LOCAL", - "-j", string(KubeMarkMasqChain)) - proxier.natRules.Write( - "-A", string(svcXlbChain), - "-m", "comment", "--comment", fmt.Sprintf(`"route LOCAL traffic for %s LB IP to service chain"`, svcNameString), - "-m", "addrtype", "--src-type", "LOCAL", - "-j", string(policyClusterChain)) + if !svcInfo.ExternalPolicyLocal() { + // If we are using non-local endpoints we need to masquerade, + // in case we cross nodes. + proxier.natRules.Write( + "-A", string(externalTrafficChain), + "-m", "comment", "--comment", fmt.Sprintf(`"masquerade traffic for %s external destinations"`, svcNameString), + "-j", string(KubeMarkMasqChain)) + } else { + // If we are only using same-node endpoints, we can retain the + // source IP in most cases. + + if proxier.localDetector.IsImplemented() { + // Treat all locally-originated pod -> external destination + // traffic as a special-case. It is subject to neither + // form of traffic policy, which simulates going up-and-out + // to an external load-balancer and coming back in. + proxier.natRules.Write( + "-A", string(externalTrafficChain), + "-m", "comment", "--comment", fmt.Sprintf(`"pod traffic for %s external destinations"`, svcNameString), + proxier.localDetector.IfLocal(), + "-j", string(clusterPolicyChain)) + } - // Everything else goes to the SVL chain - proxier.natRules.Write( - "-A", string(svcXlbChain), - "-j", string(policyLocalChain)) - } + // Locally originated traffic (not a pod, but the host node) + // still needs masquerade because the LBIP itself is a local + // address, so that will be the chosen source IP. + proxier.natRules.Write( + "-A", string(externalTrafficChain), + "-m", "comment", "--comment", fmt.Sprintf(`"masquerade LOCAL traffic for %s external destinations"`, svcNameString), + "-m", "addrtype", "--src-type", "LOCAL", + "-j", string(KubeMarkMasqChain)) - if hasEndpoints && svcInfo.UsesLocalEndpoints() { - if chain, ok := existingNATChains[policyLocalChain]; ok { - proxier.natChains.WriteBytes(chain) - } else { - proxier.natChains.Write(utiliptables.MakeChainLine(policyLocalChain)) + // Redirect all src-type=LOCAL -> external destination to the + // policy=cluster chain. This allows traffic originating + // from the host to be redirected to the service correctly. + proxier.natRules.Write( + "-A", string(externalTrafficChain), + "-m", "comment", "--comment", fmt.Sprintf(`"route LOCAL traffic for %s external destinations"`, svcNameString), + "-m", "addrtype", "--src-type", "LOCAL", + "-j", string(clusterPolicyChain)) } - activeNATChains[policyLocalChain] = true + + // Anything else falls thru to the appropriate policy chain. + proxier.natRules.Write( + "-A", string(externalTrafficChain), + "-j", string(externalPolicyChain)) } // Capture the clusterIP. @@ -1161,37 +1199,14 @@ func (proxier *Proxier) syncProxyRules() { // Capture externalIPs. for _, externalIP := range svcInfo.ExternalIPStrings() { if hasEndpoints { - args = append(args[:0], + // Send traffic bound for external IPs to the "external + // destinations" chain. + proxier.natRules.Write( + "-A", string(kubeServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s external IP"`, svcNameString), "-m", protocol, "-p", protocol, "-d", externalIP, "--dport", strconv.Itoa(svcInfo.Port()), - ) - - // We have to SNAT packets to external IPs if externalTrafficPolicy is cluster - // and the traffic is NOT Local. Local traffic coming from Pods and Nodes will - // be always forwarded to the corresponding Service, so no need to SNAT - // If we can't differentiate the local traffic we always SNAT. - if !svcInfo.NodeLocalExternal() { - appendTo := []string{"-A", string(policyClusterChain)} - // This masquerades off-cluster traffic to a External IP. - if proxier.localDetector.IsImplemented() { - proxier.natRules.Write( - appendTo, - args, - proxier.localDetector.IfNotLocal(), - "-j", string(KubeMarkMasqChain)) - } else { - proxier.natRules.Write( - appendTo, - args, - "-j", string(KubeMarkMasqChain)) - } - } - // Send traffic bound for external IPs to the service chain. - proxier.natRules.Write( - "-A", string(kubeServicesChain), - args, "-j", string(externalTrafficChain)) } else { @@ -1208,45 +1223,48 @@ func (proxier *Proxier) syncProxyRules() { } // Capture load-balancer ingress. - fwChain := svcInfo.serviceFirewallChainName - for _, ingress := range svcInfo.LoadBalancerIPStrings() { - if hasEndpoints { - // create service firewall chain + if len(svcInfo.LoadBalancerIPStrings()) > 0 && hasEndpoints { + // Normally we send LB matches to the "external destination" chain. + nextChain := externalTrafficChain + + // If the service specifies any LB source ranges, we need to insert + // a firewall chain first. + if len(svcInfo.LoadBalancerSourceRanges()) > 0 { + fwChain := svcInfo.firewallChainName + + // Declare the service firewall chain. if chain, ok := existingNATChains[fwChain]; ok { proxier.natChains.WriteBytes(chain) } else { proxier.natChains.Write(utiliptables.MakeChainLine(fwChain)) } activeNATChains[fwChain] = true - // The service firewall rules are created based on ServiceSpec.loadBalancerSourceRanges field. - // This currently works for loadbalancers that preserves source ips. - // For loadbalancers which direct traffic to service NodePort, the firewall rules will not apply. - args = append(args[:0], + // The firewall chain will jump to the "external destination" + // chain. + nextChain = svcInfo.firewallChainName + } + + for _, lbip := range svcInfo.LoadBalancerIPStrings() { + proxier.natRules.Write( "-A", string(kubeServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s loadbalancer IP"`, svcNameString), "-m", protocol, "-p", protocol, - "-d", ingress, + "-d", lbip, "--dport", strconv.Itoa(svcInfo.Port()), - ) - // jump to service firewall chain - proxier.natRules.Write(args, "-j", string(fwChain)) - - args = append(args[:0], - "-A", string(fwChain), - "-m", "comment", "--comment", fmt.Sprintf(`"%s loadbalancer IP"`, svcNameString), - ) - - // If we are proxying globally, we need to masquerade in case we cross nodes. - // If we are proxying only locally, we can retain the source IP. - if !svcInfo.NodeLocalExternal() { - proxier.natRules.Write(args, "-j", string(KubeMarkMasqChain)) - } + "-j", string(nextChain)) + + // The service firewall rules are created based on the + // loadBalancerSourceRanges field. This only works for + // VIP-like loadbalancers that preserve source IPs. For + // loadbalancers which direct traffic to service NodePort, the + // firewall rules will not apply. + if len(svcInfo.LoadBalancerSourceRanges()) > 0 { + args = append(args[:0], + "-A", string(nextChain), + "-m", "comment", "--comment", fmt.Sprintf(`"%s loadbalancer IP"`, svcNameString), + ) - if len(svcInfo.LoadBalancerSourceRanges()) == 0 { - // allow all sources, so jump directly to the KUBE-SVC or KUBE-XLB chain - proxier.natRules.Write(args, "-j", string(externalTrafficChain)) - } else { // firewall filter based on each source range allowFromNode := false for _, src := range svcInfo.LoadBalancerSourceRanges() { @@ -1258,67 +1276,48 @@ func (proxier *Proxier) syncProxyRules() { allowFromNode = true } } - // generally, ip route rule was added to intercept request to loadbalancer vip from the - // loadbalancer's backend hosts. In this case, request will not hit the loadbalancer but loop back directly. - // Need to add the following rule to allow request on host. + // For VIP-like LBs, the VIP is often added as a local + // address (via an IP route rule). In that case, a request + // from a node to the VIP will not hit the loadbalancer but + // will loop back with the source IP set to the VIP. We + // need the following rule to allow requests from this node. if allowFromNode { proxier.natRules.Write( args, - "-s", ingress, + "-s", lbip, "-j", string(externalTrafficChain)) } + // If the packet was able to reach the end of firewall chain, + // then it did not get DNATed. It means the packet cannot go + // thru the firewall, then mark it for DROP. + proxier.natRules.Write(args, "-j", string(KubeMarkDropChain)) } - - // If the packet was able to reach the end of firewall chain, then it did not get DNATed. - // It means the packet cannot go thru the firewall, then mark it for DROP - proxier.natRules.Write(args, "-j", string(KubeMarkDropChain)) - } else { - // No endpoints. + } + } else { + // No endpoints. + for _, lbip := range svcInfo.LoadBalancerIPStrings() { proxier.filterRules.Write( "-A", string(kubeExternalServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s has no endpoints"`, svcNameString), "-m", protocol, "-p", protocol, - "-d", ingress, + "-d", lbip, "--dport", strconv.Itoa(svcInfo.Port()), "-j", "REJECT", ) } } - // Capture nodeports. If we had more than 2 rules it might be - // worthwhile to make a new per-service chain for nodeport rules, but - // with just 2 rules it ends up being a waste and a cognitive burden. + // Capture nodeports. if svcInfo.NodePort() != 0 && len(nodeAddresses) != 0 { if hasEndpoints { - args = append(args[:0], + // Jump to the external destination chain. For better or for + // worse, nodeports are not subect to loadBalancerSourceRanges, + // and we can't change that. + proxier.natRules.Write( + "-A", string(kubeNodePortsChain), "-m", "comment", "--comment", svcNameString, "-m", protocol, "-p", protocol, "--dport", strconv.Itoa(svcInfo.NodePort()), - ) - if !svcInfo.NodeLocalExternal() { - // Nodeports need SNAT, unless they're local. - proxier.natRules.Write( - "-A", string(policyClusterChain), - args, - "-j", string(KubeMarkMasqChain)) - } else { - // TODO: Make all nodePorts jump to the firewall chain. - // Currently we only create it for loadbalancers (#33586). - - // Fix localhost martian source error - loopback := "127.0.0.0/8" - if isIPv6 { - loopback = "::1/128" - } - proxier.natRules.Write( - "-A", string(kubeNodePortsChain), - args, - "-s", loopback, "-j", string(KubeMarkMasqChain)) - } - // Jump to the service chain. - proxier.natRules.Write( - "-A", string(kubeNodePortsChain), - args, "-j", string(externalTrafficChain)) } else { // No endpoints. @@ -1347,24 +1346,32 @@ func (proxier *Proxier) syncProxyRules() { } if svcInfo.UsesClusterEndpoints() { - // Write rules jumping from policyClusterChain to clusterEndpoints - proxier.writeServiceToEndpointRules(svcNameString, svcInfo, policyClusterChain, clusterEndpoints, args) + // Write rules jumping from clusterPolicyChain to clusterEndpoints + proxier.writeServiceToEndpointRules(svcNameString, svcInfo, clusterPolicyChain, clusterEndpoints, args) } if svcInfo.UsesLocalEndpoints() { if len(localEndpoints) != 0 { - // Write rules jumping from policyLocalChain to localEndpointChains - proxier.writeServiceToEndpointRules(svcNameString, svcInfo, policyLocalChain, localEndpoints, args) - } else if hasEndpoints { - // Blackhole all traffic since there are no local endpoints - args = append(args[:0], - "-A", string(policyLocalChain), - "-m", "comment", "--comment", - fmt.Sprintf(`"%s has no local endpoints"`, svcNameString), - "-j", - string(KubeMarkDropChain), - ) - proxier.natRules.Write(args) + // Write rules jumping from localPolicyChain to localEndpointChains + proxier.writeServiceToEndpointRules(svcNameString, svcInfo, localPolicyChain, localEndpoints, args) + } else { + if svcInfo.InternalPolicyLocal() && utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) { + serviceNoLocalEndpointsTotalInternal++ + } + if svcInfo.ExternalPolicyLocal() { + serviceNoLocalEndpointsTotalExternal++ + } + if hasEndpoints { + // Blackhole all traffic since there are no local endpoints + args = append(args[:0], + "-A", string(localPolicyChain), + "-m", "comment", "--comment", + fmt.Sprintf(`"%s has no local endpoints"`, svcNameString), + "-j", + string(KubeMarkDropChain), + ) + proxier.natRules.Write(args) + } } } } @@ -1388,14 +1395,12 @@ func (proxier *Proxier) syncProxyRules() { // Finally, tail-call to the nodeports chain. This needs to be after all // other service portal rules. for address := range nodeAddresses { - // TODO(thockin, m1093782566): If/when we have dual-stack support we will want to distinguish v4 from v6 zero-CIDRs. if utilproxy.IsZeroCIDR(address) { - args = append(args[:0], + proxier.natRules.Write( "-A", string(kubeServicesChain), "-m", "comment", "--comment", `"kubernetes service nodeports; NOTE: this must be the last rule in this chain"`, "-m", "addrtype", "--dst-type", "LOCAL", "-j", string(kubeNodePortsChain)) - proxier.natRules.Write(args) // Nothing else matters after the zero CIDR. break } @@ -1405,12 +1410,11 @@ func (proxier *Proxier) syncProxyRules() { continue } // create nodeport rules for each IP one by one - args = append(args[:0], + proxier.natRules.Write( "-A", string(kubeServicesChain), "-m", "comment", "--comment", `"kubernetes service nodeports; NOTE: this must be the last rule in this chain"`, "-d", address, "-j", string(kubeNodePortsChain)) - proxier.natRules.Write(args) } // Drop the packets in INVALID state, which would potentially cause @@ -1489,6 +1493,8 @@ func (proxier *Proxier) syncProxyRules() { } } + metrics.SyncProxyRulesNoLocalEndpointsTotal.WithLabelValues("internal").Set(float64(serviceNoLocalEndpointsTotalInternal)) + metrics.SyncProxyRulesNoLocalEndpointsTotal.WithLabelValues("external").Set(float64(serviceNoLocalEndpointsTotalExternal)) if proxier.healthzServer != nil { proxier.healthzServer.Updated() } @@ -1532,10 +1538,12 @@ func (proxier *Proxier) writeServiceToEndpointRules(svcNameString string, svcInf if !ok { continue } + comment := fmt.Sprintf(`"%s -> %s"`, svcNameString, epInfo.Endpoint) + args = append(args[:0], "-A", string(svcChain), ) - args = proxier.appendServiceCommentLocked(args, svcNameString) + args = proxier.appendServiceCommentLocked(args, comment) args = append(args, "-m", "recent", "--name", string(epInfo.ChainName), "--rcheck", "--seconds", strconv.Itoa(svcInfo.StickyMaxAgeSeconds()), "--reap", @@ -1552,9 +1560,10 @@ func (proxier *Proxier) writeServiceToEndpointRules(svcNameString string, svcInf if !ok { continue } + comment := fmt.Sprintf(`"%s -> %s"`, svcNameString, epInfo.Endpoint) args = append(args[:0], "-A", string(svcChain)) - args = proxier.appendServiceCommentLocked(args, svcNameString) + args = proxier.appendServiceCommentLocked(args, comment) if i < (numEndpoints - 1) { // Each rule is a probabilistic match. args = append(args, diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go index 635f30f9d41f..28c76622f96e 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go @@ -273,6 +273,20 @@ type Proxier struct { // Inject for test purpose. networkInterfacer utilproxy.NetworkInterfacer gracefuldeleteManager *GracefulTerminationManager + // serviceNoLocalEndpointsInternal represents the set of services that couldn't be applied + // due to the absence of local endpoints when the internal traffic policy is "Local". + // It is used to publish the sync_proxy_rules_no_endpoints_total + // metric with the traffic_policy label set to "internal". + // sets.String is used here since we end up calculating endpoint topology multiple times for the same Service + // if it has multiple ports but each Service should only be counted once. + serviceNoLocalEndpointsInternal sets.String + // serviceNoLocalEndpointsExternal irepresents the set of services that couldn't be applied + // due to the absence of any endpoints when the external traffic policy is "Local". + // It is used to publish the sync_proxy_rules_no_endpoints_total + // metric with the traffic_policy label set to "external". + // sets.String is used here since we end up calculating endpoint topology multiple times for the same Service + // if it has multiple ports but each Service should only be counted once. + serviceNoLocalEndpointsExternal sets.String } // IPGetter helps get node network interface IP and IPs binded to the IPVS dummy interface @@ -1027,6 +1041,8 @@ func (proxier *Proxier) syncProxyRules() { klog.V(3).InfoS("Syncing ipvs proxier rules") + proxier.serviceNoLocalEndpointsInternal = sets.NewString() + proxier.serviceNoLocalEndpointsExternal = sets.NewString() // Begin install iptables // Reset all buffers used later. @@ -1202,7 +1218,7 @@ func (proxier *Proxier) syncProxyRules() { // ExternalTrafficPolicy only works for NodePort and external LB traffic, does not affect ClusterIP // So we still need clusterIP rules in onlyNodeLocalEndpoints mode. internalNodeLocal := false - if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) && svcInfo.NodeLocalInternal() { + if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) && svcInfo.InternalPolicyLocal() { internalNodeLocal = true } if err := proxier.syncEndpoint(svcName, internalNodeLocal, serv); err != nil { @@ -1222,7 +1238,7 @@ func (proxier *Proxier) syncProxyRules() { SetType: utilipset.HashIPPort, } - if svcInfo.NodeLocalExternal() { + if svcInfo.ExternalPolicyLocal() { if valid := proxier.ipsetList[kubeExternalIPLocalSet].validateEntry(entry); !valid { klog.ErrorS(nil, "Error adding entry to ipset", "entry", entry, "ipset", proxier.ipsetList[kubeExternalIPLocalSet].Name) continue @@ -1252,7 +1268,7 @@ func (proxier *Proxier) syncProxyRules() { activeIPVSServices[serv.String()] = true activeBindAddrs[serv.Address.String()] = true - if err := proxier.syncEndpoint(svcName, svcInfo.NodeLocalExternal(), serv); err != nil { + if err := proxier.syncEndpoint(svcName, svcInfo.ExternalPolicyLocal(), serv); err != nil { klog.ErrorS(err, "Failed to sync endpoint for service", "serviceName", svcName, "virtualServer", serv) } } else { @@ -1279,7 +1295,7 @@ func (proxier *Proxier) syncProxyRules() { } proxier.ipsetList[kubeLoadBalancerSet].activeEntries.Insert(entry.String()) // insert loadbalancer entry to lbIngressLocalSet if service externaltrafficpolicy=local - if svcInfo.NodeLocalExternal() { + if svcInfo.ExternalPolicyLocal() { if valid := proxier.ipsetList[kubeLoadBalancerLocalSet].validateEntry(entry); !valid { klog.ErrorS(nil, "Error adding entry to ipset", "entry", entry, "ipset", proxier.ipsetList[kubeLoadBalancerLocalSet].Name) continue @@ -1351,7 +1367,7 @@ func (proxier *Proxier) syncProxyRules() { if err := proxier.syncService(svcNameString, serv, true, bindedAddresses); err == nil { activeIPVSServices[serv.String()] = true activeBindAddrs[serv.Address.String()] = true - if err := proxier.syncEndpoint(svcName, svcInfo.NodeLocalExternal(), serv); err != nil { + if err := proxier.syncEndpoint(svcName, svcInfo.ExternalPolicyLocal(), serv); err != nil { klog.ErrorS(err, "Failed to sync endpoint for service", "serviceName", svcName, "virtualServer", serv) } } else { @@ -1449,7 +1465,7 @@ func (proxier *Proxier) syncProxyRules() { } // Add externaltrafficpolicy=local type nodeport entry - if svcInfo.NodeLocalExternal() { + if svcInfo.ExternalPolicyLocal() { var nodePortLocalSet *IPSet switch protocol { case utilipset.ProtocolTCP: @@ -1494,7 +1510,7 @@ func (proxier *Proxier) syncProxyRules() { // There is no need to bind Node IP to dummy interface, so set parameter `bindAddr` to `false`. if err := proxier.syncService(svcNameString, serv, false, bindedAddresses); err == nil { activeIPVSServices[serv.String()] = true - if err := proxier.syncEndpoint(svcName, svcInfo.NodeLocalExternal(), serv); err != nil { + if err := proxier.syncEndpoint(svcName, svcInfo.ExternalPolicyLocal(), serv); err != nil { klog.ErrorS(err, "Failed to sync endpoint for service", "serviceName", svcName, "virtualServer", serv) } } else { @@ -1599,6 +1615,9 @@ func (proxier *Proxier) syncProxyRules() { } } proxier.deleteEndpointConnections(endpointUpdateResult.StaleEndpoints) + + metrics.SyncProxyRulesNoLocalEndpointsTotal.WithLabelValues("internal").Set(float64(proxier.serviceNoLocalEndpointsInternal.Len())) + metrics.SyncProxyRulesNoLocalEndpointsTotal.WithLabelValues("external").Set(float64(proxier.serviceNoLocalEndpointsExternal.Len())) } // writeIptablesRules write all iptables rules to proxier.natRules or proxier.FilterRules that ipvs proxier needed @@ -1980,6 +1999,14 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode // Traffic from an external source will be routed but the reply // will have the POD address and will be discarded. endpoints = clusterEndpoints + + if svcInfo.InternalPolicyLocal() && utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) { + proxier.serviceNoLocalEndpointsInternal.Insert(svcPortName.NamespacedName.String()) + } + + if svcInfo.ExternalPolicyLocal() { + proxier.serviceNoLocalEndpointsExternal.Insert(svcPortName.NamespacedName.String()) + } } } else { endpoints = clusterEndpoints diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/metrics/metrics.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/metrics/metrics.go index 9c1aeca55ba9..f61cf4fc9910 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/metrics/metrics.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/metrics/metrics.go @@ -148,6 +148,19 @@ var ( StabilityLevel: metrics.ALPHA, }, ) + + // SyncProxyRulesNoLocalEndpointsTotal is the total number of rules that do + // not have an available endpoint. This can be caused by an internal + // traffic policy with no available local workload. + SyncProxyRulesNoLocalEndpointsTotal = metrics.NewGaugeVec( + &metrics.GaugeOpts{ + Subsystem: kubeProxySubsystem, + Name: "sync_proxy_rules_no_local_endpoints_total", + Help: "Number of services with a Local traffic policy and no endpoints", + StabilityLevel: metrics.ALPHA, + }, + []string{"traffic_policy"}, + ) ) var registerMetricsOnce sync.Once @@ -165,6 +178,7 @@ func RegisterMetrics() { legacyregistry.MustRegister(IptablesRulesTotal) legacyregistry.MustRegister(IptablesRestoreFailuresTotal) legacyregistry.MustRegister(SyncProxyRulesLastQueuedTimestamp) + legacyregistry.MustRegister(SyncProxyRulesNoLocalEndpointsTotal) }) } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/service.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/service.go index 71b141a3376b..17e746fbfaca 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/service.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/service.go @@ -52,8 +52,8 @@ type BaseServiceInfo struct { externalIPs []string loadBalancerSourceRanges []string healthCheckNodePort int - nodeLocalExternal bool - nodeLocalInternal bool + externalPolicyLocal bool + internalPolicyLocal bool internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType hintsAnnotation string } @@ -119,14 +119,14 @@ func (info *BaseServiceInfo) LoadBalancerIPStrings() []string { return ips } -// NodeLocalExternal is part of ServicePort interface. -func (info *BaseServiceInfo) NodeLocalExternal() bool { - return info.nodeLocalExternal +// ExternalPolicyLocal is part of ServicePort interface. +func (info *BaseServiceInfo) ExternalPolicyLocal() bool { + return info.externalPolicyLocal } -// NodeLocalInternal is part of ServicePort interface -func (info *BaseServiceInfo) NodeLocalInternal() bool { - return info.nodeLocalInternal +// InternalPolicyLocal is part of ServicePort interface +func (info *BaseServiceInfo) InternalPolicyLocal() bool { + return info.internalPolicyLocal } // InternalTrafficPolicy is part of ServicePort interface @@ -149,22 +149,22 @@ func (info *BaseServiceInfo) UsesClusterEndpoints() bool { // The service port uses Cluster endpoints if the internal traffic policy is "Cluster", // or if it accepts external traffic at all. (Even if the external traffic policy is // "Local", we need Cluster endpoints to implement short circuiting.) - return !info.nodeLocalInternal || info.ExternallyAccessible() + return !info.internalPolicyLocal || info.ExternallyAccessible() } // UsesLocalEndpoints is part of ServicePort interface. func (info *BaseServiceInfo) UsesLocalEndpoints() bool { - return info.nodeLocalInternal || (info.nodeLocalExternal && info.ExternallyAccessible()) + return info.internalPolicyLocal || (info.externalPolicyLocal && info.ExternallyAccessible()) } func (sct *ServiceChangeTracker) newBaseServiceInfo(port *v1.ServicePort, service *v1.Service) *BaseServiceInfo { - nodeLocalExternal := false - if apiservice.RequestsOnlyLocalTraffic(service) { - nodeLocalExternal = true + externalPolicyLocal := false + if apiservice.ExternalPolicyLocal(service) { + externalPolicyLocal = true } - nodeLocalInternal := false + internalPolicyLocal := false if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) { - nodeLocalInternal = apiservice.RequestsOnlyLocalTrafficForInternal(service) + internalPolicyLocal = apiservice.InternalPolicyLocal(service) } var stickyMaxAgeSeconds int if service.Spec.SessionAffinity == v1.ServiceAffinityClientIP { @@ -180,8 +180,8 @@ func (sct *ServiceChangeTracker) newBaseServiceInfo(port *v1.ServicePort, servic nodePort: int(port.NodePort), sessionAffinityType: service.Spec.SessionAffinity, stickyMaxAgeSeconds: stickyMaxAgeSeconds, - nodeLocalExternal: nodeLocalExternal, - nodeLocalInternal: nodeLocalInternal, + externalPolicyLocal: externalPolicyLocal, + internalPolicyLocal: internalPolicyLocal, internalTrafficPolicy: service.Spec.InternalTrafficPolicy, hintsAnnotation: service.Annotations[v1.AnnotationTopologyAwareHints], } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/types.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/types.go index a68d36109a80..7b16cd7b5988 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/types.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/proxy/types.go @@ -83,10 +83,10 @@ type ServicePort interface { HealthCheckNodePort() int // GetNodePort returns a service Node port if present. If return 0, it means not present. NodePort() int - // NodeLocalExternal returns if a service has only node local endpoints for external traffic. - NodeLocalExternal() bool - // NodeLocalInternal returns if a service has only node local endpoints for internal traffic. - NodeLocalInternal() bool + // ExternalPolicyLocal returns if a service has only node local endpoints for external traffic. + ExternalPolicyLocal() bool + // InternalPolicyLocal returns if a service has only node local endpoints for internal traffic. + InternalPolicyLocal() bool // InternalTrafficPolicy returns service InternalTrafficPolicy InternalTrafficPolicy() *v1.ServiceInternalTrafficPolicyType // HintsAnnotation returns the value of the v1.AnnotationTopologyAwareHints annotation. diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeaffinity/node_affinity.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeaffinity/node_affinity.go index ae7b4eab8ea0..41e0a27d708d 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeaffinity/node_affinity.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeaffinity/node_affinity.go @@ -83,7 +83,7 @@ func (s *preFilterState) Clone() framework.StateData { // failed by this plugin schedulable. func (pl *NodeAffinity) EventsToRegister() []framework.ClusterEvent { return []framework.ClusterEvent{ - {Resource: framework.Node, ActionType: framework.Add | framework.UpdateNodeLabel}, + {Resource: framework.Node, ActionType: framework.Add | framework.Update}, } } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodename/node_name.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodename/node_name.go index 356fc5c29fe3..e02134f793c4 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodename/node_name.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodename/node_name.go @@ -43,7 +43,7 @@ const ( // failed by this plugin schedulable. func (pl *NodeName) EventsToRegister() []framework.ClusterEvent { return []framework.ClusterEvent{ - {Resource: framework.Node, ActionType: framework.Add}, + {Resource: framework.Node, ActionType: framework.Add | framework.Update}, } } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeports/node_ports.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeports/node_ports.go index 9ee9070cf019..bfd648efe4a3 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeports/node_ports.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeports/node_ports.go @@ -105,7 +105,7 @@ func (pl *NodePorts) EventsToRegister() []framework.ClusterEvent { return []framework.ClusterEvent{ // Due to immutable fields `spec.containers[*].ports`, pod update events are ignored. {Resource: framework.Pod, ActionType: framework.Delete}, - {Resource: framework.Node, ActionType: framework.Add}, + {Resource: framework.Node, ActionType: framework.Add | framework.Update}, } } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources/fit.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources/fit.go index 1be0f2e512d9..e4b2a5044dd5 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources/fit.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources/fit.go @@ -207,7 +207,7 @@ func getPreFilterState(cycleState *framework.CycleState) (*preFilterState, error func (f *Fit) EventsToRegister() []framework.ClusterEvent { return []framework.ClusterEvent{ {Resource: framework.Pod, ActionType: framework.Delete}, - {Resource: framework.Node, ActionType: framework.Add | framework.UpdateNodeAllocatable}, + {Resource: framework.Node, ActionType: framework.Add | framework.Update}, } } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration/taint_toleration.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration/taint_toleration.go index 6919b1bd2284..9420c06c6ea0 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration/taint_toleration.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration/taint_toleration.go @@ -56,7 +56,7 @@ func (pl *TaintToleration) Name() string { // failed by this plugin schedulable. func (pl *TaintToleration) EventsToRegister() []framework.ClusterEvent { return []framework.ClusterEvent{ - {Resource: framework.Node, ActionType: framework.Add | framework.UpdateNodeTaint}, + {Resource: framework.Node, ActionType: framework.Add | framework.Update}, } } @@ -76,8 +76,7 @@ func (pl *TaintToleration) Filter(ctx context.Context, state *framework.CycleSta return nil } - errReason := fmt.Sprintf("node(s) had taint {%s: %s}, that the pod didn't tolerate", - taint.Key, taint.Value) + errReason := fmt.Sprintf("node(s) had untolerated taint {%s: %s}", taint.Key, taint.Value) return framework.NewStatus(framework.UnschedulableAndUnresolvable, errReason) } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go index 0557dcb3d95e..957b27b93c36 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go @@ -870,9 +870,14 @@ func (npm *nominator) add(pi *framework.PodInfo, nominatingInfo *framework.Nomin } if npm.podLister != nil { - // If the pod is not alive, don't contain it. - if _, err := npm.podLister.Pods(pi.Pod.Namespace).Get(pi.Pod.Name); err != nil { - klog.V(4).InfoS("Pod doesn't exist in podLister, aborting adding it to the nominator", "pod", klog.KObj(pi.Pod)) + // If the pod was removed or if it was already scheduled, don't nominate it. + updatedPod, err := npm.podLister.Pods(pi.Pod.Namespace).Get(pi.Pod.Name) + if err != nil { + klog.V(4).InfoS("Pod doesn't exist in podLister, aborted adding it to the nominator", "pod", klog.KObj(pi.Pod)) + return + } + if updatedPod.Spec.NodeName != "" { + klog.V(4).InfoS("Pod is already scheduled to a node, aborted adding it to the nominator", "pod", klog.KObj(pi.Pod), "node", updatedPod.Spec.NodeName) return } } diff --git a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go index 898acde5e5cf..7239cbc912db 100644 --- a/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go +++ b/cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go @@ -1485,7 +1485,7 @@ func (og *operationGenerator) GenerateVerifyControllerAttachedVolumeFunc( claimSize := actualStateOfWorld.GetClaimSize(volumeToMount.VolumeName) // only fetch claimSize if it was not set previously - if volumeToMount.VolumeSpec.PersistentVolume != nil && claimSize == nil { + if volumeToMount.VolumeSpec.PersistentVolume != nil && claimSize == nil && !volumeToMount.VolumeSpec.InlineVolumeSpecForCSIMigration { pv := volumeToMount.VolumeSpec.PersistentVolume pvc, err := og.kubeClient.CoreV1().PersistentVolumeClaims(pv.Spec.ClaimRef.Namespace).Get(context.TODO(), pv.Spec.ClaimRef.Name, metav1.GetOptions{}) if err != nil { diff --git a/cluster-autoscaler/vendor/modules.txt b/cluster-autoscaler/vendor/modules.txt index 32513620daff..4f447884b9ac 100644 --- a/cluster-autoscaler/vendor/modules.txt +++ b/cluster-autoscaler/vendor/modules.txt @@ -226,6 +226,7 @@ github.com/go-ozzo/ozzo-validation/is # github.com/godbus/dbus/v5 v5.0.6 github.com/godbus/dbus/v5 # github.com/gofrs/uuid v4.0.0+incompatible +## explicit github.com/gofrs/uuid # github.com/gogo/protobuf v1.3.2 github.com/gogo/protobuf/gogoproto @@ -251,7 +252,7 @@ github.com/golang/protobuf/ptypes/any github.com/golang/protobuf/ptypes/duration github.com/golang/protobuf/ptypes/timestamp github.com/golang/protobuf/ptypes/wrappers -# github.com/google/cadvisor v0.44.0 +# github.com/google/cadvisor v0.44.1 github.com/google/cadvisor/accelerators github.com/google/cadvisor/cache/memory github.com/google/cadvisor/collector @@ -845,7 +846,7 @@ gopkg.in/warnings.v0 gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b gopkg.in/yaml.v3 -# k8s.io/api v0.24.0-beta.0 => k8s.io/api v0.24.0-beta.0 +# k8s.io/api v0.24.0 => k8s.io/api v0.24.0 ## explicit k8s.io/api/admission/v1 k8s.io/api/admission/v1beta1 @@ -879,7 +880,6 @@ k8s.io/api/flowcontrol/v1alpha1 k8s.io/api/flowcontrol/v1beta1 k8s.io/api/flowcontrol/v1beta2 k8s.io/api/networking/v1 -k8s.io/api/networking/v1alpha1 k8s.io/api/networking/v1beta1 k8s.io/api/node/v1 k8s.io/api/node/v1alpha1 @@ -895,7 +895,7 @@ k8s.io/api/scheduling/v1beta1 k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 -# k8s.io/apimachinery v0.24.0-beta.0 => k8s.io/apimachinery v0.24.0-beta.0 +# k8s.io/apimachinery v0.24.0 => k8s.io/apimachinery v0.24.1-rc.0 ## explicit k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors @@ -955,7 +955,7 @@ k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/apiserver v0.24.0-beta.0 => k8s.io/apiserver v0.24.0-beta.0 +# k8s.io/apiserver v0.24.0 => k8s.io/apiserver v0.24.0 ## explicit k8s.io/apiserver/pkg/admission k8s.io/apiserver/pkg/admission/configuration @@ -1083,7 +1083,7 @@ k8s.io/apiserver/plugin/pkg/audit/truncate k8s.io/apiserver/plugin/pkg/audit/webhook k8s.io/apiserver/plugin/pkg/authenticator/token/webhook k8s.io/apiserver/plugin/pkg/authorizer/webhook -# k8s.io/client-go v0.24.0-beta.0 => k8s.io/client-go v0.24.0-beta.0 +# k8s.io/client-go v0.24.0 => k8s.io/client-go v0.24.0 ## explicit k8s.io/client-go/applyconfigurations/admissionregistration/v1 k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1 @@ -1113,7 +1113,6 @@ k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2 k8s.io/client-go/applyconfigurations/internal k8s.io/client-go/applyconfigurations/meta/v1 k8s.io/client-go/applyconfigurations/networking/v1 -k8s.io/client-go/applyconfigurations/networking/v1alpha1 k8s.io/client-go/applyconfigurations/networking/v1beta1 k8s.io/client-go/applyconfigurations/node/v1 k8s.io/client-go/applyconfigurations/node/v1alpha1 @@ -1177,7 +1176,6 @@ k8s.io/client-go/informers/flowcontrol/v1beta2 k8s.io/client-go/informers/internalinterfaces k8s.io/client-go/informers/networking k8s.io/client-go/informers/networking/v1 -k8s.io/client-go/informers/networking/v1alpha1 k8s.io/client-go/informers/networking/v1beta1 k8s.io/client-go/informers/node k8s.io/client-go/informers/node/v1 @@ -1261,8 +1259,6 @@ k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2 k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake k8s.io/client-go/kubernetes/typed/networking/v1 k8s.io/client-go/kubernetes/typed/networking/v1/fake -k8s.io/client-go/kubernetes/typed/networking/v1alpha1 -k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake k8s.io/client-go/kubernetes/typed/networking/v1beta1 k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake k8s.io/client-go/kubernetes/typed/node/v1 @@ -1319,7 +1315,6 @@ k8s.io/client-go/listers/flowcontrol/v1alpha1 k8s.io/client-go/listers/flowcontrol/v1beta1 k8s.io/client-go/listers/flowcontrol/v1beta2 k8s.io/client-go/listers/networking/v1 -k8s.io/client-go/listers/networking/v1alpha1 k8s.io/client-go/listers/networking/v1beta1 k8s.io/client-go/listers/node/v1 k8s.io/client-go/listers/node/v1alpha1 @@ -1385,7 +1380,7 @@ k8s.io/client-go/util/homedir k8s.io/client-go/util/keyutil k8s.io/client-go/util/retry k8s.io/client-go/util/workqueue -# k8s.io/cloud-provider v0.24.0-beta.0 => k8s.io/cloud-provider v0.24.0-beta.0 +# k8s.io/cloud-provider v0.24.0 => k8s.io/cloud-provider v0.24.0 ## explicit k8s.io/cloud-provider k8s.io/cloud-provider/api @@ -1395,7 +1390,7 @@ k8s.io/cloud-provider/service/helpers k8s.io/cloud-provider/volume k8s.io/cloud-provider/volume/errors k8s.io/cloud-provider/volume/helpers -# k8s.io/component-base v0.24.0-beta.0 => k8s.io/component-base v0.24.0-beta.0 +# k8s.io/component-base v0.24.0 => k8s.io/component-base v0.24.0 ## explicit k8s.io/component-base/cli/flag k8s.io/component-base/codec @@ -1417,7 +1412,7 @@ k8s.io/component-base/metrics/testutil k8s.io/component-base/traces k8s.io/component-base/version k8s.io/component-base/version/verflag -# k8s.io/component-helpers v0.24.0-beta.0 => k8s.io/component-helpers v0.24.0-beta.0 +# k8s.io/component-helpers v0.24.0 => k8s.io/component-helpers v0.24.0 ## explicit k8s.io/component-helpers/apimachinery/lease k8s.io/component-helpers/node/topology @@ -1427,12 +1422,12 @@ k8s.io/component-helpers/scheduling/corev1 k8s.io/component-helpers/scheduling/corev1/nodeaffinity k8s.io/component-helpers/storage/ephemeral k8s.io/component-helpers/storage/volume -# k8s.io/cri-api v0.0.0 => k8s.io/cri-api v0.24.0-beta.0 +# k8s.io/cri-api v0.0.0 => k8s.io/cri-api v0.25.0-alpha.0 k8s.io/cri-api/pkg/apis k8s.io/cri-api/pkg/apis/runtime/v1 k8s.io/cri-api/pkg/apis/runtime/v1alpha2 k8s.io/cri-api/pkg/errors -# k8s.io/csi-translation-lib v0.24.0-beta.0 => k8s.io/csi-translation-lib v0.24.0-beta.0 +# k8s.io/csi-translation-lib v0.24.0 => k8s.io/csi-translation-lib v0.24.0 k8s.io/csi-translation-lib k8s.io/csi-translation-lib/plugins # k8s.io/klog/v2 v2.60.1 @@ -1458,15 +1453,15 @@ k8s.io/kube-openapi/pkg/spec3 k8s.io/kube-openapi/pkg/util k8s.io/kube-openapi/pkg/util/proto k8s.io/kube-openapi/pkg/validation/spec -# k8s.io/kube-proxy v0.0.0 => k8s.io/kube-proxy v0.24.0-beta.0 +# k8s.io/kube-proxy v0.0.0 => k8s.io/kube-proxy v0.24.0 k8s.io/kube-proxy/config/v1alpha1 -# k8s.io/kube-scheduler v0.0.0 => k8s.io/kube-scheduler v0.24.0-beta.0 +# k8s.io/kube-scheduler v0.0.0 => k8s.io/kube-scheduler v0.24.0 k8s.io/kube-scheduler/config/v1beta2 k8s.io/kube-scheduler/config/v1beta3 k8s.io/kube-scheduler/extender/v1 -# k8s.io/kubectl v0.0.0 => k8s.io/kubectl v0.24.0-beta.0 +# k8s.io/kubectl v0.0.0 => k8s.io/kubectl v0.24.0 k8s.io/kubectl/pkg/scale -# k8s.io/kubelet v0.23.0 => k8s.io/kubelet v0.24.0-beta.0 +# k8s.io/kubelet v0.23.0 => k8s.io/kubelet v0.24.0 ## explicit k8s.io/kubelet/config/v1alpha1 k8s.io/kubelet/config/v1beta1 @@ -1480,7 +1475,7 @@ k8s.io/kubelet/pkg/apis/pluginregistration/v1 k8s.io/kubelet/pkg/apis/podresources/v1 k8s.io/kubelet/pkg/apis/podresources/v1alpha1 k8s.io/kubelet/pkg/apis/stats/v1alpha1 -# k8s.io/kubernetes v1.24.0-beta.0 +# k8s.io/kubernetes v1.24.0 ## explicit k8s.io/kubernetes/cmd/kube-proxy/app k8s.io/kubernetes/cmd/kubelet/app @@ -1755,7 +1750,7 @@ k8s.io/kubernetes/pkg/volume/vsphere_volume k8s.io/kubernetes/pkg/windows/service k8s.io/kubernetes/test/utils k8s.io/kubernetes/third_party/forked/golang/expansion -# k8s.io/legacy-cloud-providers v0.0.0 => k8s.io/legacy-cloud-providers v0.24.0-beta.0 +# k8s.io/legacy-cloud-providers v0.0.0 => k8s.io/legacy-cloud-providers v0.24.0 ## explicit k8s.io/legacy-cloud-providers/aws k8s.io/legacy-cloud-providers/azure @@ -1799,7 +1794,7 @@ k8s.io/legacy-cloud-providers/openstack k8s.io/legacy-cloud-providers/vsphere k8s.io/legacy-cloud-providers/vsphere/vclib k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers -# k8s.io/mount-utils v0.24.0-beta.0 => k8s.io/mount-utils v0.24.0-beta.0 +# k8s.io/mount-utils v0.24.0 => k8s.io/mount-utils v0.24.1-rc.0 k8s.io/mount-utils # k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 ## explicit @@ -1886,30 +1881,30 @@ sigs.k8s.io/yaml # github.com/aws/aws-sdk-go/service/eks => github.com/aws/aws-sdk-go/service/eks v1.38.49 # github.com/digitalocean/godo => github.com/digitalocean/godo v1.27.0 # github.com/rancher/go-rancher => github.com/rancher/go-rancher v0.1.0 -# k8s.io/api => k8s.io/api v0.24.0-beta.0 -# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.24.0-beta.0 -# k8s.io/apimachinery => k8s.io/apimachinery v0.24.0-beta.0 -# k8s.io/apiserver => k8s.io/apiserver v0.24.0-beta.0 -# k8s.io/cli-runtime => k8s.io/cli-runtime v0.24.0-beta.0 -# k8s.io/client-go => k8s.io/client-go v0.24.0-beta.0 -# k8s.io/cloud-provider => k8s.io/cloud-provider v0.24.0-beta.0 -# k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.24.0-beta.0 -# k8s.io/code-generator => k8s.io/code-generator v0.24.0-beta.0 -# k8s.io/component-base => k8s.io/component-base v0.24.0-beta.0 -# k8s.io/component-helpers => k8s.io/component-helpers v0.24.0-beta.0 -# k8s.io/controller-manager => k8s.io/controller-manager v0.24.0-beta.0 -# k8s.io/cri-api => k8s.io/cri-api v0.24.0-beta.0 -# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.24.0-beta.0 -# k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.24.0-beta.0 -# k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.24.0-beta.0 -# k8s.io/kube-proxy => k8s.io/kube-proxy v0.24.0-beta.0 -# k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.24.0-beta.0 -# k8s.io/kubectl => k8s.io/kubectl v0.24.0-beta.0 -# k8s.io/kubelet => k8s.io/kubelet v0.24.0-beta.0 -# k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.24.0-beta.0 -# k8s.io/metrics => k8s.io/metrics v0.24.0-beta.0 -# k8s.io/mount-utils => k8s.io/mount-utils v0.24.0-beta.0 -# k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.24.0-beta.0 -# k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.24.0-beta.0 -# k8s.io/sample-controller => k8s.io/sample-controller v0.24.0-beta.0 -# k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.24.0-beta.0 +# k8s.io/api => k8s.io/api v0.24.0 +# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.24.0 +# k8s.io/apimachinery => k8s.io/apimachinery v0.24.1-rc.0 +# k8s.io/apiserver => k8s.io/apiserver v0.24.0 +# k8s.io/cli-runtime => k8s.io/cli-runtime v0.24.0 +# k8s.io/client-go => k8s.io/client-go v0.24.0 +# k8s.io/cloud-provider => k8s.io/cloud-provider v0.24.0 +# k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.24.0 +# k8s.io/code-generator => k8s.io/code-generator v0.24.1-rc.0 +# k8s.io/component-base => k8s.io/component-base v0.24.0 +# k8s.io/component-helpers => k8s.io/component-helpers v0.24.0 +# k8s.io/controller-manager => k8s.io/controller-manager v0.24.0 +# k8s.io/cri-api => k8s.io/cri-api v0.25.0-alpha.0 +# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.24.0 +# k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.24.0 +# k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.24.0 +# k8s.io/kube-proxy => k8s.io/kube-proxy v0.24.0 +# k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.24.0 +# k8s.io/kubectl => k8s.io/kubectl v0.24.0 +# k8s.io/kubelet => k8s.io/kubelet v0.24.0 +# k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.24.0 +# k8s.io/metrics => k8s.io/metrics v0.24.0 +# k8s.io/mount-utils => k8s.io/mount-utils v0.24.1-rc.0 +# k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.24.0 +# k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.24.0 +# k8s.io/sample-controller => k8s.io/sample-controller v0.24.0 +# k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.24.0 diff --git a/cluster-autoscaler/version/version.go b/cluster-autoscaler/version/version.go index 5f11707fdb1e..0f9ae9f981c9 100644 --- a/cluster-autoscaler/version/version.go +++ b/cluster-autoscaler/version/version.go @@ -17,4 +17,4 @@ limitations under the License. package version // ClusterAutoscalerVersion contains version of CA. -const ClusterAutoscalerVersion = "1.24.0-beta.0" +const ClusterAutoscalerVersion = "1.24.0" From 3b361b69bad07239219bc4809a25943111319a08 Mon Sep 17 00:00:00 2001 From: Maciek Pytel Date: Tue, 10 May 2022 12:05:44 +0200 Subject: [PATCH 3/3] Fix unittest after kubernetes error message changed --- .../simulator/scheduler_based_predicates_checker_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cluster-autoscaler/simulator/scheduler_based_predicates_checker_test.go b/cluster-autoscaler/simulator/scheduler_based_predicates_checker_test.go index 6261eda1d38b..af48b8732ca6 100644 --- a/cluster-autoscaler/simulator/scheduler_based_predicates_checker_test.go +++ b/cluster-autoscaler/simulator/scheduler_based_predicates_checker_test.go @@ -151,6 +151,6 @@ func TestDebugInfo(t *testing.T) { predicateErr := predicateChecker.CheckPredicates(clusterSnapshot, p1, "n1") assert.NotNil(t, predicateErr) - assert.Equal(t, "node(s) had taint {SomeTaint: WhyNot?}, that the pod didn't tolerate", predicateErr.Message()) + assert.Equal(t, "node(s) had untolerated taint {SomeTaint: WhyNot?}", predicateErr.Message()) assert.Contains(t, predicateErr.VerboseMessage(), "RandomTaint") }