From 7de9e47a7b408627fa55544b2b83b167e3d191ff Mon Sep 17 00:00:00 2001 From: Tobias Wolf Date: Mon, 4 Apr 2022 13:24:16 +0200 Subject: [PATCH] Revendor modules --- README.md | 19 +- go.mod | 8 +- go.sum | 148 +- .../extensions/pkg/controller/cluster.go | 4 + .../machine_controller_manager.go | 1 + .../extensions/pkg/predicate/predicate.go | 16 +- .../gardener/extensions/pkg/util/shoot.go | 1 + .../extensions/pkg/webhook/handler.go | 2 +- .../gardener/hack/.ci/component_descriptor | 35 +- .../gardener/gardener/hack/.ci/doc.go | 0 .../gardener/hack/.ci/prepare_release | 0 .../gardener/hack/.ci/set_dependency_version | 0 .../gardener/hack/LICENSE_BOILERPLATE.txt | 0 .../gardener/gardener/hack/check-charts.sh | 0 .../gardener/gardener/hack/check-docforge.sh | 10 +- .../gardener/gardener/hack/check-generate.sh | 0 .../gardener/gardener/hack/check-imports.sh | 0 .../gardener/gardener/hack/check.sh | 0 .../gardener/hack/cherry-pick-pull.sh | 0 .../gardener/gardener/hack/clean.sh | 0 .../gardener/hack/compare-k8s-controllers.sh | 0 .../hack/compare-k8s-feature-gates.sh | 0 .../gardener/gardener/hack/format.sh | 0 .../hack/generate-imagename-constants.sh | 0 .../gardener/hack/generate-monitoring-docs.sh | 0 .../gardener/hack/generate-parallel.sh | 0 .../gardener/hack/generate-seed-crds.sh | 0 .../gardener/gardener/hack/generate.sh | 0 .../gardener/gardener/hack/hook-me.sh | 0 .../gardener/hack/install-requirements.sh | 2 +- .../gardener/gardener/hack/install.sh | 0 .../gardener/hack/test-cover-clean.sh | 0 .../gardener/gardener/hack/test-cover.sh | 0 .../gardener/gardener/hack/test-e2e-local.sh | 0 .../gardener/hack/test-integration.sh | 0 .../gardener/gardener/hack/test-prometheus.sh | 0 .../github.com/gardener/gardener/hack/test.sh | 0 .../gardener/gardener/hack/tools.go | 0 .../gardener/gardener/hack/tools.mk | 4 +- .../gardener/gardener/hack/update-codegen.sh | 67 - .../gardener/gardener/hack/update-protobuf.sh | 0 .../gardener/pkg/apis/core/register.go | 2 - .../gardener/pkg/apis/core/types_shoot.go | 26 +- .../apis/core/types_shootextensionstatus.go | 57 - .../pkg/apis/core/types_shootstate.go | 2 + .../pkg/apis/core/v1alpha1/generated.pb.go | 2777 +++++++++-------- .../pkg/apis/core/v1alpha1/generated.proto | 64 +- .../core/v1alpha1/helper/shootstate_list.go | 1 + .../pkg/apis/core/v1alpha1/register.go | 2 - .../pkg/apis/core/v1alpha1/types_shoot.go | 33 +- .../v1alpha1/types_shootextensionstatus.go | 62 - .../apis/core/v1alpha1/types_shootstate.go | 3 + .../core/v1alpha1/zz_generated.conversion.go | 184 +- .../core/v1alpha1/zz_generated.deepcopy.go | 129 +- .../core/v1beta1/constants/types_constants.go | 20 +- .../pkg/apis/core/v1beta1/generated.pb.go | 1894 +++++++---- .../pkg/apis/core/v1beta1/generated.proto | 38 +- .../pkg/apis/core/v1beta1/helper/errors.go | 4 +- .../pkg/apis/core/v1beta1/helper/helper.go | 74 +- .../pkg/apis/core/v1beta1/types_shoot.go | 33 +- .../core/v1beta1/zz_generated.conversion.go | 70 + .../core/v1beta1/zz_generated.deepcopy.go | 62 + .../pkg/apis/core/zz_generated.deepcopy.go | 131 +- .../gardener/pkg/client/kubernetes/applier.go | 28 + .../gardener/pkg/client/kubernetes/scaling.go | 36 + .../pkg/controllerutils/associations.go | 86 +- .../pkg/controllerutils/predicate/mapper.go | 100 - .../gardener/pkg/extensions/cluster.go | 48 + .../pkg/gardenlet/apis/config/types.go | 24 +- .../apis/config/v1alpha1/defaults.go | 121 +- .../gardenlet/apis/config/v1alpha1/types.go | 19 + .../v1alpha1/zz_generated.conversion.go | 35 + .../config/v1alpha1/zz_generated.deepcopy.go | 31 + .../config/v1alpha1/zz_generated.defaults.go | 7 + .../apis/config/zz_generated.deepcopy.go | 31 + .../original/components/components.go | 1 + .../original/components/kubelet/component.go | 4 + .../templates/scripts/health-monitor.tpl.sh | 15 +- .../gardener/pkg/utils/gardener/shoot.go | 35 +- .../pkg/utils/kubernetes/health/daemonset.go | 15 +- .../pkg/utils/kubernetes/kubernetes.go | 13 +- .../gardener/pkg/utils/secrets/alias.go | 65 + .../gardener/pkg/utils/secrets/basic_auth.go | 9 +- .../pkg/utils/secrets/certificate_bundle.go | 77 + .../pkg/utils/secrets/certificates.go | 22 +- .../pkg/utils/secrets/control_plane.go | 58 +- .../gardener/pkg/utils/secrets/kubeconfig.go | 85 + .../pkg/utils/secrets/rsa_private_key.go | 9 +- .../pkg/utils/secrets/static_token.go | 9 +- .../gardener/pkg/utils/version/version.go | 4 + .../{ => vertical-pod-autoscaler}/LICENSE | 0 .../v1beta2/zz_generated.deepcopy.go | 4 +- vendor/modules.txt | 14 +- 93 files changed, 4006 insertions(+), 2984 deletions(-) mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/component_descriptor mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/doc.go mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/prepare_release mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-charts.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-docforge.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-generate.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check-imports.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/check.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/clean.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/format.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-parallel.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate-seed-crds.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/generate.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/hook-me.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/install-requirements.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/install.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-cover-clean.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-cover.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-e2e-local.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-integration.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test-prometheus.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/test.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/tools.go mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/tools.mk mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/update-codegen.sh mode change 100755 => 100644 vendor/github.com/gardener/gardener/hack/update-protobuf.sh delete mode 100644 vendor/github.com/gardener/gardener/pkg/apis/core/types_shootextensionstatus.go delete mode 100644 vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootextensionstatus.go delete mode 100644 vendor/github.com/gardener/gardener/pkg/controllerutils/predicate/mapper.go create mode 100644 vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go create mode 100644 vendor/github.com/gardener/gardener/pkg/utils/secrets/certificate_bundle.go create mode 100644 vendor/github.com/gardener/gardener/pkg/utils/secrets/kubeconfig.go rename vendor/k8s.io/autoscaler/{ => vertical-pod-autoscaler}/LICENSE (100%) diff --git a/README.md b/README.md index d45336c9..17ba797d 100644 --- a/README.md +++ b/README.md @@ -25,14 +25,17 @@ Please find more information regarding the extensibility concepts and a detailed This extension controller supports the following Kubernetes versions: -| Version | Support | Conformance test results | -| --------------- | ----------- | ------------------------ | -| Kubernetes 1.20 | untested | not yet available | -| Kubernetes 1.19 | untested | not yet available | -| Kubernetes 1.18 | untested | not yet available | -| Kubernetes 1.17 | 1.17.0+ | not yet available | -| Kubernetes 1.16 | 1.16.0+ | not yet available | -| Kubernetes 1.15 | 1.15.0+ | not yet available | +| Version | Support | +| --------------- | -------- | +| Kubernetes 1.23 | 1.23.0+ | +| Kubernetes 1.22 | 1.22.0+ | +| Kubernetes 1.21 | 1.21.0+ | +| Kubernetes 1.20 | 1.20.0+ | +| Kubernetes 1.19 | 1.19.0+ | +| Kubernetes 1.18 | 1.18.0+ | +| Kubernetes 1.17 | 1.17.0+ | +| Kubernetes 1.16 | 1.16.0+ | +| Kubernetes 1.15 | 1.15.0+ | Please take a look [here](https://github.com/gardener/gardener/blob/master/docs/usage/supported_k8s_versions.md) to see which versions are supported by Gardener in general. diff --git a/go.mod b/go.mod index 90e773e6..a2fbc0c1 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/ahmetb/gen-crd-api-reference-docs v0.2.0 github.com/coreos/go-systemd/v22 v22.3.2 github.com/gardener/etcd-druid v0.7.0 - github.com/gardener/gardener v1.42.4 + github.com/gardener/gardener v1.43.2 github.com/gardener/machine-controller-manager v0.43.1 github.com/go-logr/logr v1.2.0 github.com/golang/mock v1.6.0 @@ -23,7 +23,7 @@ require ( k8s.io/apiextensions-apiserver v0.23.3 k8s.io/apimachinery v0.23.3 k8s.io/apiserver v0.23.3 - k8s.io/autoscaler v0.0.0-20190805135949-100e91ba756e + k8s.io/autoscaler/vertical-pod-autoscaler v0.0.0-00010101000000-000000000000 k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible k8s.io/code-generator v0.23.3 k8s.io/component-base v0.23.3 @@ -127,13 +127,13 @@ require ( replace ( github.com/emicklei/go-restful => github.com/emicklei/go-restful v2.9.5+incompatible // keep this value in sync with k8s.io/apiserver - github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.5.5 // keep this value in sync with k8s.io/apiserver github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.11.0 // keep this value in sync with sigs.k8s.io/controller-runtime - google.golang.org/grpc => google.golang.org/grpc v1.40.0 // keep this value in sync with k8s.io/apiserver k8s.io/api => k8s.io/api v0.23.3 k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.23.3 k8s.io/apimachinery => k8s.io/apimachinery v0.23.3 k8s.io/apiserver => k8s.io/apiserver v0.23.3 + k8s.io/autoscaler => k8s.io/autoscaler v0.0.0-20201008123815-1d78814026aa // translates to k8s.io/autoscaler/vertical-pod-autoscaler@v0.9.0 + k8s.io/autoscaler/vertical-pod-autoscaler => k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 k8s.io/client-go => k8s.io/client-go v0.23.3 k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.23.3 k8s.io/code-generator => k8s.io/code-generator v0.23.3 diff --git a/go.sum b/go.sum index bdbce17d..0d59e677 100644 --- a/go.sum +++ b/go.sum @@ -47,14 +47,11 @@ github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSW github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= github.com/Azure/go-autorest/autorest v0.10.1/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= -github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM= github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw= @@ -64,12 +61,10 @@ github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSY github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA= github.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= @@ -85,31 +80,26 @@ github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF0 github.com/Masterminds/sprig v2.16.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/ahmetb/gen-crd-api-reference-docs v0.1.5/go.mod h1:P/XzJ+c2+khJKNKABcm2biRwk2QAuwbLf8DlXuaL7WM= github.com/ahmetb/gen-crd-api-reference-docs v0.2.0 h1:YI/cAcRdNAHArfhGKcmCY5qMa32k/UyCZagLgabC5JY= github.com/ahmetb/gen-crd-api-reference-docs v0.2.0/go.mod h1:P/XzJ+c2+khJKNKABcm2biRwk2QAuwbLf8DlXuaL7WM= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alessio/shellescape v0.0.0-20190409004728-b115ca0f9053/go.mod h1:xW8sBma2LE3QxFSzCnH9qe6gAE2yO9GvQaWwX89HxbE= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20180828111155-cad214d7d71f/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190603021944-12ad9f921c0b/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= @@ -118,11 +108,9 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/aws/aws-sdk-go v1.13.54/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= github.com/aws/aws-sdk-go v1.19.41/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.23.13/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/b4b4r07/go-pipe v0.0.0-20191010045404-84b446f57366/go.mod h1:1ymsiQNa3qebVEEVtuIdhtAXRfjO4qFCFq1bBUOT2HE= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= @@ -137,22 +125,21 @@ github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqO github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bronze1man/yaml2json v0.0.0-20201022121239-82e774ec909d h1:8pnjDJr9TIv2XUQhypkjAB2zB9g8OYonQkNAI3YwXFQ= github.com/bronze1man/yaml2json v0.0.0-20201022121239-82e774ec909d/go.mod h1:mVTg4vqWRIHEJK5QnZhSXBUP8GmI7ArXGq182zSJbxM= -github.com/cenkalti/backoff/v4 v4.1.0/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.11.4/go.mod h1:ZB+hp7VycxPLpp0aiozQQezat46npDXhzHi1DVtRCn4= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= @@ -168,7 +155,6 @@ github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHo github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= @@ -197,10 +183,14 @@ github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484/go.mod h1:Ro8st/El github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.7-0.20200730005029-803dd64f0468/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch v4.0.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -212,12 +202,10 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.5.0/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= -github.com/frankban/quicktest v1.13.1/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= @@ -227,7 +215,6 @@ github.com/gardener/component-spec/bindings-go v0.0.33/go.mod h1:53EIwICsuMgbY/M github.com/gardener/controller-manager-library v0.1.1-0.20191212112146-917449ad760c/go.mod h1:v6cbldxmpL2fYBEB2lSnq3LSEPwIHus9En6iIhwNE1k= github.com/gardener/controller-manager-library v0.1.1-0.20200204110458-c263b9bb97ad/go.mod h1:v6cbldxmpL2fYBEB2lSnq3LSEPwIHus9En6iIhwNE1k= github.com/gardener/controller-manager-library v0.2.1-0.20200810091329-d980dbe10959/go.mod h1:XMp1tPcX3SP/dMd+3id418f5Cqu44vydeTkBRbW8EvQ= -github.com/gardener/dependency-watchdog v0.7.0/go.mod h1:OxGZPFb0z8/dTVsk0dCIgcF+q9JhXvfVIdzpYOkcnl8= github.com/gardener/etcd-druid v0.1.12/go.mod h1:yZrUQY9clD8/ZXK+MmEq8OS1TaKJeipV0u4kHHrwWeY= github.com/gardener/etcd-druid v0.1.15/go.mod h1:BHXG8N04Dl4On7Ie6cErwmpvzncNrmeb+HO7Sqrhf+A= github.com/gardener/etcd-druid v0.3.0/go.mod h1:uxZjZ57gIgpX554vGp495g2i8DByoS3OkVtiqsxtbwk= @@ -241,12 +228,11 @@ github.com/gardener/external-dns-management v0.7.18/go.mod h1:oHhauLQ3/sop0c1urS github.com/gardener/gardener v1.1.2/go.mod h1:CP9I0tCDVXTLPkJv/jUtXVUh948kSNKEGUg0haLz9gk= github.com/gardener/gardener v1.3.1/go.mod h1:936P5tQbg6ViiW8BVC9ELM95sFrk4DgobKrxMNtn/LU= github.com/gardener/gardener v1.4.1-0.20200519155656-a8ccc6cc779a/go.mod h1:t9oESM37bAMIuezi9I0H0I8+++8jy8BUPitcf4ERRXY= -github.com/gardener/gardener v1.6.5/go.mod h1:w5IHIQDccvSxZJFOtBa8YConyyFgt07DBHJBWFxb6HU= github.com/gardener/gardener v1.11.3/go.mod h1:5DzqfOm+G8UftKu5zUbYJ+9Cnfd4XrvRNDabkM9AIp4= github.com/gardener/gardener v1.17.1/go.mod h1:uucRHq0xV46xd9MpJJjRswx/Slq3+ipbbJg09FVUtvM= github.com/gardener/gardener v1.23.0/go.mod h1:xS/sYyzYsq2W0C79mT98G/qoOTvy/hHTfApHIVF3v2o= -github.com/gardener/gardener v1.42.4 h1:Jvq0e810ZDzlYVwSoLeYX0Kuy9EYhROOc4PU2ga1Qo8= -github.com/gardener/gardener v1.42.4/go.mod h1:0vkzraSKUPIU/zhbrQfy/tmTNRRewU6Sv+lJJtSvDGE= +github.com/gardener/gardener v1.43.2 h1:UtZNNJu7fgfqc6qfRV8D8QGFXCQhDH/ZJRne2laCdMY= +github.com/gardener/gardener v1.43.2/go.mod h1:L3g3pYdqhE3KoHzEIW7I3DOv1TUQl8VIEW1U+QOEmlA= github.com/gardener/gardener-resource-manager v0.10.0/go.mod h1:0pKTHOhvU91eQB0EYr/6Ymd7lXc/5Hi8P8tF/gpV0VQ= github.com/gardener/gardener-resource-manager v0.13.1/go.mod h1:0No/XttYRUwDn5lSppq9EqlKdo/XJQ44aCZz5BVu3Vw= github.com/gardener/gardener-resource-manager v0.18.0/go.mod h1:k53Yw2iDAIpTxnChQY9qFHrRtuPQWJDNnCP9eE6TnWQ= @@ -257,7 +243,6 @@ github.com/gardener/hvpa-controller v0.3.1/go.mod h1:rjsb3BPKJFMluudZ8/bhCCDQfFC github.com/gardener/landscaper/apis v0.7.0/go.mod h1:++MW27PlSnbWM4AJipikw62RSprxO5TKVxZ8nh0e4Yw= github.com/gardener/machine-controller-manager v0.27.0/go.mod h1:zlIxuLQMtRO+aXOFsG6qtYkBmggbWY82K7MSO051ARU= github.com/gardener/machine-controller-manager v0.33.0/go.mod h1:jxxE+mGgXwg4iPlCHTG4GtUfK2CcHA6yYoIIowoxOZU= -github.com/gardener/machine-controller-manager v0.41.0/go.mod h1:43OABkCemMS6b35z3OprbfaT3p2HxKAZkJekjCO2T48= github.com/gardener/machine-controller-manager v0.43.1 h1:Kdog/ElWL13DG36rvXa6fJF4jR0P7VLPeWTMoFBir+c= github.com/gardener/machine-controller-manager v0.43.1/go.mod h1:oMaIZMJ0pU6Z8j885v4a4+wxkzC1mpoqfqDUH34SQ58= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= @@ -265,12 +250,6 @@ github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49P github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= -github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -278,6 +257,7 @@ github.com/go-ini/ini v1.36.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3I github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= @@ -343,6 +323,7 @@ github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= @@ -374,7 +355,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= @@ -422,6 +402,11 @@ github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= +github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/gophercloud/gophercloud v0.0.0-20190212181753-892256c46858/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= @@ -491,9 +476,7 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/infobloxopen/infoblox-go-client v1.1.0/go.mod h1:BXiw7S2b9qJoM8MS40vfgCNB2NLHGusk1DtO16BD9zI= github.com/ionos-cloud/sdk-go/v5 v5.1.7 h1:Ri5rnZy+96PIlA+c31myfu/vwoU/gGFWUoMROgsKikI= github.com/ionos-cloud/sdk-go/v5 v5.1.7/go.mod h1:dU3BVZgiBDAKyo41hFk7D5KWHfqyp4YL4rePIAi2JyM= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= @@ -519,7 +502,6 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -533,9 +515,6 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -551,12 +530,10 @@ github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPK github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mandelsoft/filepath v0.0.0-20200909114706-3df73d378d55/go.mod h1:n4xEiUD2HNHnn2w5ZKF0qgjDecHVCWAl5DxZ7+pcFU8= github.com/mandelsoft/vfs v0.0.0-20201002134249-3c471f64a4d1/go.mod h1:74aV7kulg9C434HiI3zNALN79QHc9IZMN+SI4UdLn14= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= @@ -605,9 +582,9 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nwaples/rardecode v1.0.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= -github.com/nwaples/rardecode v1.1.2/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -620,16 +597,13 @@ github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.12.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= -github.com/onsi/ginkgo/v2 v2.1.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.3 h1:e/3Cwtogj0HA+25nMP1jCMDIf8RtRYbGwGGuBIFztkc= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= @@ -643,7 +617,6 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ= github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= -github.com/onsi/gomega v1.11.0/go.mod h1:azGKhqFUon9Vuj0YmTfLSmx0FUwqXYSTl5re8lQLTUg= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.18.0 h1:ngbYoRctxjl8SiF7XgP0NxBFbfHcg3wfHMMaFHWwMTM= github.com/onsi/gomega v1.18.0/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= @@ -658,7 +631,6 @@ github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pierrec/lz4 v2.3.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -678,14 +650,15 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.28.0 h1:vGVfV9KrDTvWt5boZO0I19g2E3CsWfpPPKZM9dt3mEw= github.com/prometheus/common v0.28.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= @@ -694,20 +667,15 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -764,10 +732,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= -github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/urfave/cli v1.22.3/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= @@ -780,7 +746,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= @@ -816,11 +781,9 @@ go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/automaxprocs v1.4.0/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= @@ -842,7 +805,6 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -855,10 +817,9 @@ golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -877,6 +838,7 @@ golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMk golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -906,8 +868,10 @@ golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -948,13 +912,11 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211209124913-491a49abca63 h1:iocB37TsdFuN6IBRZ+ry36wrkoV51/tl5vOWqkcPGvY= golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -986,10 +948,12 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180117170059-2c42eef0765b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1006,8 +970,6 @@ golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1049,21 +1011,16 @@ golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211029165221-6e7872819dc8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1094,6 +1051,7 @@ golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190213192042-740235f6c0d8/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1263,7 +1221,29 @@ google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1283,9 +1263,8 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= @@ -1299,7 +1278,6 @@ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.0.0/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1343,8 +1321,9 @@ k8s.io/apimachinery v0.23.3 h1:7IW6jxNzrXTsP0c8yXz2E5Yx/WTzVPTsHIx/2Vm0cIk= k8s.io/apimachinery v0.23.3/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= k8s.io/apiserver v0.23.3 h1:gWY1DmA0AdAGR/H+Q/1FtyGkFq8xqSaZOw7oLopmO8k= k8s.io/apiserver v0.23.3/go.mod h1:3HhsTmC+Pn+Jctw+Ow0LHA4dQ4oXrQ4XJDzrVDG64T4= -k8s.io/autoscaler v0.0.0-20190805135949-100e91ba756e h1:5AX59ZgftHpbmNupSWosdtW4q/rCnF4s/0J0dEfJkAQ= -k8s.io/autoscaler v0.0.0-20190805135949-100e91ba756e/go.mod h1:QEXezc9uKPT91dwqhSJq3GNI3B1HxFRQHiku9kmrsSA= +k8s.io/autoscaler v0.0.0-20201008123815-1d78814026aa/go.mod h1:QEXezc9uKPT91dwqhSJq3GNI3B1HxFRQHiku9kmrsSA= +k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 h1:mJCdJl9DDJnA9QGnky7R8h2g72us5ELWnYzhO+817rM= +k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0/go.mod h1:PwWTGRRCxefhAezrDbG/tRYSAW7etHjjMPAr8fXKVAA= k8s.io/client-go v0.23.3 h1:23QYUmCQ/W6hW78xIwm3XqZrrKZM+LWDqW2zfo+szJs= k8s.io/client-go v0.23.3/go.mod h1:47oMd+YvAOqZM7pcQ6neJtBiFH7alOyfunYN48VsmwE= k8s.io/cluster-bootstrap v0.23.3/go.mod h1:NwUIksUHKNOKIHg/AfLH4NxqylbfEVXUh9EX2NxHZII= @@ -1382,9 +1361,7 @@ k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4= k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= -k8s.io/kube-proxy v0.23.3/go.mod h1:XdvwqJkR9r0ddUAX4ruA4V22Kws3qzKvgL3rIq584Ko= k8s.io/kubelet v0.16.8/go.mod h1:mzDpnryQg2dlB6V3/WAgb1baIamiICtWpXMFrPOFh6I= -k8s.io/kubelet v0.17.6/go.mod h1:H7KZAYjmw/M8LkZq14BfLcvOTOWWocOv8H4dGkkipLM= k8s.io/kubelet v0.18.8/go.mod h1:6z1jHCk0NPE6WshFStfqcgQ1bnD3tetcPmhC2915aio= k8s.io/kubelet v0.19.6/go.mod h1:/yashsvRBHMGFnxpmTjtaI0sJ4rLJno9zXzc6PPU8Ls= k8s.io/kubelet v0.20.6/go.mod h1:U+v9PkJBpX61n7Id7VZqwejmwy1lV/Axm3Lbzb9UeW4= @@ -1393,7 +1370,7 @@ k8s.io/kubelet v0.23.3/go.mod h1:RZxGSCsiwoWJ9z6mVla+jhiLfCFIKC16yAS38D7GQSE= k8s.io/kubernetes v1.14.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/metrics v0.0.0-20191004105854-2e8cf7d0888c/go.mod h1:a25VAbm3QT3xiVl1jtoF1ueAKQM149UdZ+L93ePfV3M= k8s.io/metrics v0.16.8/go.mod h1:uBIJKJKdga8vL76a1dl+eRlUqOAdCbBpvFHC28SbUIY= -k8s.io/metrics v0.17.6/go.mod h1:5AuIG+m+U5ga8DpqAUqQWBhGVyY485HfKpn471pmWrQ= +k8s.io/metrics v0.18.3/go.mod h1:TkuJE3ezDZ1ym8pYkZoEzJB7HDiFE7qxl+EmExEBoPA= k8s.io/metrics v0.18.8/go.mod h1:j7JzZdiyhLP2BsJm/Fzjs+j5Lb1Y7TySjhPWqBPwRXA= k8s.io/metrics v0.19.6/go.mod h1:jM61saf/bjMRmow6zan2cAk8vFDmqvbNXFRbB4g7TNs= k8s.io/metrics v0.20.6/go.mod h1:d+OAIaXutom9kGWcBit/M8OkDpIzBKTsm47+KcUt7VI= @@ -1401,17 +1378,14 @@ k8s.io/metrics v0.23.3 h1:rX/RBOwqi0atFlTSlpbQ7CX5s/kfqGR9zEefCx9Rv1s= k8s.io/metrics v0.23.3/go.mod h1:Ut8TvkbsO4oMVeUzaTArvPrcw9QRFLs2XNzUlORjdYE= k8s.io/utils v0.0.0-20190506122338-8fab8cb257d5/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20191218082557-f07c713de883/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20200327001022-6496210b90e8/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200619165400-6e3d28b6ed19/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200912215256-4140de9c8800/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210111153108-fddb29f9d009/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= 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= k8s.io/utils v0.0.0-20211116205334-6203023598ed h1:ck1fRPWPJWsMd8ZRFsWc6mh/zHp5fZ/shhbrgPUxDAE= k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= @@ -1421,8 +1395,6 @@ rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.27/go.mod h1:tq2nT0Kx7W+/f2JVE+zxYtUhdjuELJkVpNz+x/QN5R4= sigs.k8s.io/controller-runtime v0.2.0-beta.5/go.mod h1:HweyYKQ8fBuzdu2bdaeBJvsFgAi/OqBBnrVGXcqKhME= sigs.k8s.io/controller-runtime v0.4.0/go.mod h1:ApC79lpY3PHW9xj/w9pj+lYkLgwAAUZwfXkME1Lajns= -sigs.k8s.io/controller-runtime v0.5.4/go.mod h1:JZUwSMVbxDupo0lTJSSFP5pimEyxGynROImSsqIOx1A= -sigs.k8s.io/controller-runtime v0.6.0/go.mod h1:CpYf5pdNY/B352A1TFLAS2JVSlnGQ5O2cftPHndTroo= sigs.k8s.io/controller-runtime v0.6.3/go.mod h1:WlZNXcM0++oyaQt4B7C2lEE5JYRs8vJUzRP4N4JpdAY= sigs.k8s.io/controller-runtime v0.7.1/go.mod h1:pJ3YBrJiAqMAZKi6UVGuE98ZrroV1p+pIhoHsMm9wdU= sigs.k8s.io/controller-runtime v0.8.3/go.mod h1:U/l+DUopBc1ecfRZ5aviA9JDmGFQKvLf5YkZNx2e0sU= @@ -1439,14 +1411,10 @@ sigs.k8s.io/controller-tools v0.8.0/go.mod h1:qE2DXhVOiEq5ijmINcFbqi9GZrrUjzB1Tu sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s= sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= sigs.k8s.io/kind v0.7.0/go.mod h1:An/AbWHT6pA/Lm0Og8j3ukGhfJP3RiVN/IBU6Lo3zl8= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ= sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7mRH6DGaRcixXEJXTsE= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/structured-merge-diff/v4 v4.2.0/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y= sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= sigs.k8s.io/testing_frameworks v0.1.1/go.mod h1:VVBKrHmJ6Ekkfz284YKhQePcdycOzNH9qL6ht1zEr/U= diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/controller/cluster.go b/vendor/github.com/gardener/gardener/extensions/pkg/controller/cluster.go index a3fadc03..f61621b2 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/controller/cluster.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/controller/cluster.go @@ -32,4 +32,8 @@ var ( GetShoot = extensions.GetShoot // GetOwnerNameAndID reads the owner DNS name and ID from the owner DNSRecord extension resource in the given namespace. GetOwnerNameAndID = extensions.GetOwnerNameAndID + // GenericTokenKubeconfigSecretNameFromCluster reads the generic-token-kubeconfig.secret.gardener.cloud/name annotation + // and returns its value. If the annotation is not present then it falls back to the deprecated + // SecretNameGenericTokenKubeconfig. + GenericTokenKubeconfigSecretNameFromCluster = extensions.GenericTokenKubeconfigSecretNameFromCluster ) diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/genericactuator/machine_controller_manager.go b/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/genericactuator/machine_controller_manager.go index 795b69a3..b5a78f96 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/genericactuator/machine_controller_manager.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/genericactuator/machine_controller_manager.go @@ -65,6 +65,7 @@ func (a *genericActuator) deployMachineControllerManager(ctx context.Context, lo if err := gutil.NewShootAccessSecret(a.mcmName, workerObj.Namespace).Reconcile(ctx, a.client); err != nil { return err } + mcmValues["genericTokenKubeconfigSecretName"] = extensionscontroller.GenericTokenKubeconfigSecretNameFromCluster(cluster) } else { mcmKubeconfigSecret, err := createKubeconfigForMachineControllerManager(ctx, a.client, workerObj.Namespace, a.mcmName) if err != nil { diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/predicate/predicate.go b/vendor/github.com/gardener/gardener/extensions/pkg/predicate/predicate.go index 7aa0e0bd..aae5210e 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/predicate/predicate.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/predicate/predicate.go @@ -19,8 +19,8 @@ import ( gardencore "github.com/gardener/gardener/pkg/api/core" "github.com/gardener/gardener/pkg/api/extensions" extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" - predicateutils "github.com/gardener/gardener/pkg/controllerutils/predicate" "github.com/gardener/gardener/pkg/utils/version" + "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/log" @@ -32,14 +32,14 @@ var logger = log.Log.WithName("predicate") // HasType filters the incoming OperatingSystemConfigs for ones that have the same type // as the given type. func HasType(typeName string) predicate.Predicate { - return predicateutils.FromMapper(predicateutils.MapperFunc(func(e event.GenericEvent) bool { - acc, err := extensions.Accessor(e.Object) + return predicate.NewPredicateFuncs(func(obj client.Object) bool { + acc, err := extensions.Accessor(obj) if err != nil { return false } return acc.GetExtensionSpec().GetExtensionType() == typeName - }), predicateutils.CreateTrigger, predicateutils.UpdateNewTrigger, predicateutils.DeleteTrigger, predicateutils.GenericTrigger) + }) } // AddTypePredicate returns a new slice which contains a type predicate and the given `predicates`. @@ -61,10 +61,10 @@ func AddTypePredicate(predicates []predicate.Predicate, extensionTypes ...string return append(resultPredicates, predicate.Or(orPreds...)) } -// HasPurpose filters the incoming Controlplanes for the given spec.purpose +// HasPurpose filters the incoming ControlPlanes for the given spec.purpose. func HasPurpose(purpose extensionsv1alpha1.Purpose) predicate.Predicate { - return predicateutils.FromMapper(predicateutils.MapperFunc(func(e event.GenericEvent) bool { - controlPlane, ok := e.Object.(*extensionsv1alpha1.ControlPlane) + return predicate.NewPredicateFuncs(func(obj client.Object) bool { + controlPlane, ok := obj.(*extensionsv1alpha1.ControlPlane) if !ok { return false } @@ -79,7 +79,7 @@ func HasPurpose(purpose extensionsv1alpha1.Purpose) predicate.Predicate { } return *controlPlane.Spec.Purpose == purpose - }), predicateutils.CreateTrigger, predicateutils.UpdateNewTrigger, predicateutils.DeleteTrigger, predicateutils.GenericTrigger) + }) } // ClusterShootProviderType is a predicate for the provider type of the shoot in the cluster resource. diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/util/shoot.go b/vendor/github.com/gardener/gardener/extensions/pkg/util/shoot.go index 6bcd73fd..23cfbd3c 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/util/shoot.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/util/shoot.go @@ -73,6 +73,7 @@ func GetOrCreateShootKubeconfig(ctx context.Context, c client.Client, certificat certificateConfig.CertType = secrets.ClientCert config := secrets.ControlPlaneSecretConfig{ + Name: certificateConfig.Name, CertificateSecretConfig: &certificateConfig, KubeConfigRequests: []secrets.KubeConfigRequest{{ diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/webhook/handler.go b/vendor/github.com/gardener/gardener/extensions/pkg/webhook/handler.go index 297030c4..ae7cf183 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/webhook/handler.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/webhook/handler.go @@ -185,7 +185,7 @@ func handle(ctx context.Context, req admission.Request, m Mutator, t client.Obje newObj := obj.DeepCopyObject().(client.Object) if err = m.Mutate(ctx, newObj, oldObj); err != nil { logger.Error(fmt.Errorf("could not process: %w", err), "Admission denied", "kind", ar.Kind.Kind, "namespace", obj.GetNamespace(), "name", obj.GetName()) - return admission.Errored(http.StatusBadRequest, err) + return admission.Errored(http.StatusUnprocessableEntity, err) } _, isValidator := m.(Validator) diff --git a/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor b/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor old mode 100755 new mode 100644 index f176b816..cdf65cfc --- a/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor +++ b/vendor/github.com/gardener/gardener/hack/.ci/component_descriptor @@ -1,18 +1,5 @@ #!/usr/bin/env bash -# Configuration Options: -# -# COMPONENT_PREFIXES: Set the image prefix that should be used to -# determine if an image is defined by another component. -# Defaults to "eu.gcr.io/gardener-project/gardener" -# -# GENERIC_DEPENDENCIES: Set images that are generic dependencies with no specific tag. -# Defaults to "hyperkube,kube-apiserver,kube-controller-manager,kube-scheduler,kube-proxy" -# -# COMPONENT_CLI_ARGS: Set all component-cli arguments. -# This should be used with care as all defaults are overwritten. -# - set -e repo_root_dir="$1" @@ -22,26 +9,12 @@ descriptor_out_file="${COMPONENT_DESCRIPTOR_PATH}" echo "Enriching component descriptor from ${BASE_DEFINITION_PATH}" if [[ -f "$repo_root_dir/charts/images.yaml" ]]; then - # default environment variables - if [[ -z "${COMPONENT_PREFIXES}" ]]; then - COMPONENT_PREFIXES="eu.gcr.io/gardener-project/gardener" - fi - if [[ -z "${GENERIC_DEPENDENCIES}" ]]; then - GENERIC_DEPENDENCIES="hyperkube,kube-apiserver,kube-controller-manager,kube-scheduler,kube-proxy" - fi - - if [[ -z "${COMPONENT_CLI_ARGS}" ]]; then - COMPONENT_CLI_ARGS=" - --comp-desc ${BASE_DEFINITION_PATH} \ - --image-vector "$repo_root_dir/charts/images.yaml" \ - --component-prefixes "${COMPONENT_PREFIXES}" \ - --generic-dependencies "${GENERIC_DEPENDENCIES}" \ - " - fi - # translates all images defined the images.yaml into component descriptor resources. # For detailed documentation see https://github.com/gardener/component-cli/blob/main/docs/reference/components-cli_image-vector_add.md - component-cli image-vector add ${COMPONENT_CLI_ARGS} + component-cli image-vector add --comp-desc ${BASE_DEFINITION_PATH} \ + --image-vector "$repo_root_dir/charts/images.yaml" \ + --component-prefixes eu.gcr.io/gardener-project/gardener \ + --generic-dependencies hyperkube,kube-apiserver,kube-controller-manager,kube-scheduler,kube-proxy fi if [[ -d "$repo_root_dir/charts/" ]]; then diff --git a/vendor/github.com/gardener/gardener/hack/.ci/doc.go b/vendor/github.com/gardener/gardener/hack/.ci/doc.go old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/prepare_release b/vendor/github.com/gardener/gardener/hack/.ci/prepare_release old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version b/vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt b/vendor/github.com/gardener/gardener/hack/LICENSE_BOILERPLATE.txt old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-charts.sh b/vendor/github.com/gardener/gardener/hack/check-charts.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-docforge.sh b/vendor/github.com/gardener/gardener/hack/check-docforge.sh old mode 100755 new mode 100644 index d333651c..abde2661 --- a/vendor/github.com/gardener/gardener/hack/check-docforge.sh +++ b/vendor/github.com/gardener/gardener/hack/check-docforge.sh @@ -16,10 +16,10 @@ set -e -docCommitHash="12922abea4c5afa207cc9c09b18414cd2348890c" +docCommitHash="6a018dc6a0307e64192ab48dcb90034dd0c5102a" echo "> Check Docforge Manifest" -repoPath=${1-"$(readlink -f $(dirname ${0})/..)"} +repoPath=${1-"$(readlink -f "$(dirname "${0}")/..")"} manifestPath=${2-"${repoPath}/.docforge/manifest.yaml"} diffDirs=${3-".docforge/;docs/"} repoName=${4-"gardener"} @@ -31,9 +31,9 @@ function cleanup { } trap cleanup EXIT ERR INT TERM -curl https://raw.githubusercontent.com/gardener/documentation/${docCommitHash}/.ci/check-manifest --output ${tmpDir}/check-manifest-script.sh && chmod +x ${tmpDir}/check-manifest-script.sh -curl https://raw.githubusercontent.com/gardener/documentation/${docCommitHash}/.ci/check-manifest-config --output ${tmpDir}/manifest-config +curl https://raw.githubusercontent.com/gardener/documentation/${docCommitHash}/.ci/check-manifest --output "${tmpDir}/check-manifest-script.sh" && chmod +x "${tmpDir}/check-manifest-script.sh" +curl https://raw.githubusercontent.com/gardener/documentation/${docCommitHash}/.ci/check-manifest-config --output "${tmpDir}/manifest-config" scriptPath="${tmpDir}/check-manifest-script.sh" configPath="${tmpDir}/manifest-config" -${scriptPath} --repo-path ${repoPath} --repo-name ${repoName} --use-token ${useToken} --manifest-path ${manifestPath} --diff-dirs ${diffDirs} --config-path ${configPath} +${scriptPath} --repo-path "${repoPath}" --repo-name "${repoName}" --use-token "${useToken}" --manifest-path "${manifestPath}" --diff-dirs "${diffDirs}" --config-path "${configPath}" diff --git a/vendor/github.com/gardener/gardener/hack/check-generate.sh b/vendor/github.com/gardener/gardener/hack/check-generate.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check-imports.sh b/vendor/github.com/gardener/gardener/hack/check-imports.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/check.sh b/vendor/github.com/gardener/gardener/hack/check.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh b/vendor/github.com/gardener/gardener/hack/cherry-pick-pull.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/clean.sh b/vendor/github.com/gardener/gardener/hack/clean.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-controllers.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh b/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/format.sh b/vendor/github.com/gardener/gardener/hack/format.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh b/vendor/github.com/gardener/gardener/hack/generate-imagename-constants.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh b/vendor/github.com/gardener/gardener/hack/generate-monitoring-docs.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-parallel.sh b/vendor/github.com/gardener/gardener/hack/generate-parallel.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate-seed-crds.sh b/vendor/github.com/gardener/gardener/hack/generate-seed-crds.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/generate.sh b/vendor/github.com/gardener/gardener/hack/generate.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/hook-me.sh b/vendor/github.com/gardener/gardener/hack/hook-me.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/install-requirements.sh b/vendor/github.com/gardener/gardener/hack/install-requirements.sh old mode 100755 new mode 100644 index dec55c11..c9e954b7 --- a/vendor/github.com/gardener/gardener/hack/install-requirements.sh +++ b/vendor/github.com/gardener/gardener/hack/install-requirements.sh @@ -22,7 +22,7 @@ echo "> [DEPRECATED] Installing requirements" export GO111MODULE=on curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.41.1 -curl -s "https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3" | bash -s -- --version 'v3.5.4' +curl -s "https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3" | bash -s -- --version 'v3.6.3' platform=$(uname -s) if [[ ${platform} == "Linux" ]]; then diff --git a/vendor/github.com/gardener/gardener/hack/install.sh b/vendor/github.com/gardener/gardener/hack/install.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-cover-clean.sh b/vendor/github.com/gardener/gardener/hack/test-cover-clean.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-cover.sh b/vendor/github.com/gardener/gardener/hack/test-cover.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh b/vendor/github.com/gardener/gardener/hack/test-e2e-local.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-integration.sh b/vendor/github.com/gardener/gardener/hack/test-integration.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test-prometheus.sh b/vendor/github.com/gardener/gardener/hack/test-prometheus.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/test.sh b/vendor/github.com/gardener/gardener/hack/test.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/tools.go b/vendor/github.com/gardener/gardener/hack/tools.go old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/hack/tools.mk b/vendor/github.com/gardener/gardener/hack/tools.mk old mode 100755 new mode 100644 index d64df72e..56feaace --- a/vendor/github.com/gardener/gardener/hack/tools.mk +++ b/vendor/github.com/gardener/gardener/hack/tools.mk @@ -50,9 +50,9 @@ YAML2JSON := $(TOOLS_BIN_DIR)/yaml2json YQ := $(TOOLS_BIN_DIR)/yq # default tool versions -DOCFORGE_VERSION ?= v0.21.0 +DOCFORGE_VERSION ?= v0.28.0 GOLANGCI_LINT_VERSION ?= v1.44.0 -HELM_VERSION ?= v3.5.4 +HELM_VERSION ?= v3.6.3 KIND_VERSION ?= v0.11.1 SKAFFOLD_VERSION ?= v1.35.0 YQ_VERSION ?= v4.9.6 diff --git a/vendor/github.com/gardener/gardener/hack/update-codegen.sh b/vendor/github.com/gardener/gardener/hack/update-codegen.sh old mode 100755 new mode 100644 index 315eed32..4d003a44 --- a/vendor/github.com/gardener/gardener/hack/update-codegen.sh +++ b/vendor/github.com/gardener/gardener/hack/update-codegen.sh @@ -264,54 +264,6 @@ gardenlet_groups() { } export -f gardenlet_groups -# Componentconfig for the gardenlet landscaper component - -landscapergardenlet_groups() { - echo "Generating API groups for landscaper/gardenlet/pkg/apis/imports" - - bash "${PROJECT_ROOT}"/vendor/k8s.io/code-generator/generate-internal-groups.sh \ - deepcopy,defaulter \ - github.com/gardener/gardener/pkg/client/componentconfig \ - github.com/gardener/gardener/landscaper/pkg/gardenlet/apis \ - github.com/gardener/gardener/landscaper/pkg/gardenlet/apis \ - "imports:v1alpha1" \ - -h "${PROJECT_ROOT}/hack/LICENSE_BOILERPLATE.txt" - - bash "${PROJECT_ROOT}"/vendor/k8s.io/code-generator/generate-internal-groups.sh \ - conversion \ - github.com/gardener/gardener/pkg/client/componentconfig \ - github.com/gardener/gardener/landscaper/pkg/gardenlet/apis \ - github.com/gardener/gardener/landscaper/pkg/gardenlet/apis \ - "imports:v1alpha1" \ - --extra-peer-dirs=github.com/gardener/gardener/pkg/gardenlet/apis/config,github.com/gardener/landscaper/apis/core/v1alpha1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/conversion,k8s.io/apimachinery/pkg/runtime \ - -h "${PROJECT_ROOT}/hack/LICENSE_BOILERPLATE.txt" -} -export -f landscapergardenlet_groups - -# Componentconfig for control plane landscaper component - -landscapercontrolplane_groups() { - echo "Generating API groups for landscaper/controlplane/pkg/apis/imports" - - bash "${PROJECT_ROOT}"/vendor/k8s.io/code-generator/generate-internal-groups.sh \ - deepcopy,defaulter \ - github.com/gardener/gardener/pkg/client/componentconfig \ - github.com/gardener/gardener/landscaper/pkg/controlplane/apis \ - github.com/gardener/gardener/landscaper/pkg/controlplane/apis \ - "imports:v1alpha1" \ - -h "${PROJECT_ROOT}/hack/LICENSE_BOILERPLATE.txt" - - bash "${PROJECT_ROOT}"/vendor/k8s.io/code-generator/generate-internal-groups.sh \ - conversion \ - github.com/gardener/gardener/pkg/client/componentconfig \ - github.com/gardener/gardener/landscaper/pkg/controlplane/apis \ - github.com/gardener/gardener/landscaper/pkg/controlplane/apis \ - "imports:v1alpha1" \ - --extra-peer-dirs=k8s.io/apiserver/pkg/apis/apiserver/v1,k8s.io/apiserver/pkg/apis/audit/v1,k8s.io/apiserver/pkg/apis/config/v1,github.com/gardener/hvpa-controller/api/v1alpha1,github.com/gardener/landscaper/apis/core/v1alpha1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/conversion,k8s.io/apimachinery/pkg/runtime \ - -h "${PROJECT_ROOT}/hack/LICENSE_BOILERPLATE.txt" -} -export -f landscapercontrolplane_groups - # Componentconfig for admission plugins shoottolerationrestriction_groups() { @@ -388,23 +340,9 @@ openapi_definitions() { --output-package=github.com/gardener/gardener/pkg/openapi \ -h "${PROJECT_ROOT}/hack/LICENSE_BOILERPLATE.txt" - echo "Generating openapi definitions for the Landscaper controlplane component" - ./${PROJECT_ROOT}/landscaper/pkg/controlplane/generate/generate-openapi.sh - - echo "Generating openapi definitions for the Landscaper gardenlet component" - ./${PROJECT_ROOT}/landscaper/pkg/gardenlet/generate/generate-openapi.sh } export -f openapi_definitions -landscaper_blueprints() { - echo "Rendering blueprint for the Landscaper controlplane component" - go run ./${PROJECT_ROOT}/landscaper/pkg/controlplane/generate - - echo "Rendering blueprint for the Landscaper gardenlet component" - go run ./${PROJECT_ROOT}/landscaper/pkg/gardenlet/generate -} -export -f landscaper_blueprints - if [[ $# -gt 0 && "$1" == "--parallel" ]]; then shift 1 parallel --will-cite ::: \ @@ -420,8 +358,6 @@ if [[ $# -gt 0 && "$1" == "--parallel" ]]; then scheduler_groups \ gardenlet_groups \ shoottolerationrestriction_groups \ - landscapergardenlet_groups \ - landscapercontrolplane_groups \ provider_local_groups else authentication_groups @@ -436,10 +372,7 @@ else scheduler_groups gardenlet_groups shoottolerationrestriction_groups - landscapergardenlet_groups - landscapercontrolplane_groups provider_local_groups fi openapi_definitions "$@" -landscaper_blueprints diff --git a/vendor/github.com/gardener/gardener/hack/update-protobuf.sh b/vendor/github.com/gardener/gardener/hack/update-protobuf.sh old mode 100755 new mode 100644 diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/register.go b/vendor/github.com/gardener/gardener/pkg/apis/core/register.go index ffe05097..96392381 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/register.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/register.go @@ -73,8 +73,6 @@ func addKnownTypes(scheme *runtime.Scheme) error { &ShootStateList{}, &Shoot{}, &ShootList{}, - &ShootExtensionStatus{}, - &ShootExtensionStatusList{}, ) return nil } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go index 17b8bc55..83fc6ade 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go @@ -161,17 +161,39 @@ type ShootCredentials struct { type ShootCredentialsRotation struct { // CertificateAuthorities contains information about the certificate authority credential rotation. CertificateAuthorities *ShootCARotation + // Kubeconfig contains information about the kubeconfig credential rotation. + Kubeconfig *ShootKubeconfigRotation + // SSHKeypair contains information about the ssh-keypair credential rotation. + SSHKeypair *ShootSSHKeypairRotation } // ShootCARotation contains information about the certificate authority credential rotation. type ShootCARotation struct { // Phase describes the phase of the certificate authority credential rotation. Phase ShootCredentialsRotationPhase + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + LastInitiationTime *metav1.Time // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully // completed. LastCompletionTime *metav1.Time } +// ShootKubeconfigRotation contains information about the kubeconfig credential rotation. +type ShootKubeconfigRotation struct { + // LastInitiationTime is the most recent time when the kubeconfig credential rotation was initiated. + LastInitiationTime *metav1.Time + // LastCompletionTime is the most recent time when the kubeconfig credential rotation was successfully completed. + LastCompletionTime *metav1.Time +} + +// ShootSSHKeypairRotation contains information about the ssh-keypair credential rotation. +type ShootSSHKeypairRotation struct { + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + LastInitiationTime *metav1.Time + // LastCompletionTime is the most recent time when the ssh-keypair credential rotation was successfully completed. + LastCompletionTime *metav1.Time +} + // ShootCredentialsRotationPhase is a string alias. type ShootCredentialsRotationPhase string @@ -316,7 +338,7 @@ type NamedResourceReference struct { // Hibernation contains information whether the Shoot is suspended or not. type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. - // If it is false or nil, the Shoot's desired state is to be awaken. + // If it is false or nil, the Shoot's desired state is to be awakened. Enabled *bool // Schedules determine the hibernation schedules. Schedules []HibernationSchedule @@ -503,6 +525,8 @@ type ServiceAccountConfig struct { // MaxTokenExpiration is the maximum validity duration of a token created by the service account token issuer. If an // otherwise valid TokenRequest with a validity duration larger than this value is requested, a token will be issued // with a validity duration of this value. + // This field must be within [30d,90d] when the ShootMaxTokenExpirationValidation feature gate is enabled. + // This field will be overwritten to be within [30d,90d] when the ShootMaxTokenExpirationOverwrite feature gate is enabled. MaxTokenExpiration *metav1.Duration // AcceptedIssuers is an additional set of issuers that are used to determine which service account tokens are accepted. // These values are not used to generate new service account tokens. Only useful when service account tokens are also diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shootextensionstatus.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shootextensionstatus.go deleted file mode 100644 index 8e96829a..00000000 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shootextensionstatus.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2021 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file -// -// 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 core - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ShootExtensionStatus holds the status information of extensions of a Shoot cluster -type ShootExtensionStatus struct { - metav1.TypeMeta - // Standard object metadata. - // Designed to have an owner reference to the associated Shoot resource - metav1.ObjectMeta - // Statuses holds a list of statuses of extension controllers. - Statuses []ExtensionStatus -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ShootExtensionStatusList is a list of ShootExtensionStatus objects. -type ShootExtensionStatusList struct { - metav1.TypeMeta - // Standard list object metadata. - metav1.ListMeta - // Items is a list of ShootExtensionStatus. - Items []ShootExtensionStatus -} - -// ExtensionStatus contains the kind, the type, the optional purpose and the last observed status -// of an extension controller. -type ExtensionStatus struct { - // Kind of the extension resource - Kind string - // Type of the extension resource. This field is immutable. - Type string - // Purpose of the extension resource - Purpose *string - // Status contains the status of the extension resource - Status runtime.Object -} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shootstate.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shootstate.go index 55e04ff5..76093028 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shootstate.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shootstate.go @@ -61,6 +61,8 @@ type GardenerResourceData struct { Type string // Data contains the payload required to generate resources Data runtime.RawExtension + // Labels are labels of the object + Labels map[string]string } // ExtensionResourceState contains the kind of the extension custom resource and its last observed state in the Shoot's diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.pb.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.pb.go index f1dd1135..0253b446 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.pb.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.pb.go @@ -1455,38 +1455,10 @@ func (m *ExtensionResourceState) XXX_DiscardUnknown() { var xxx_messageInfo_ExtensionResourceState proto.InternalMessageInfo -func (m *ExtensionStatus) Reset() { *m = ExtensionStatus{} } -func (*ExtensionStatus) ProtoMessage() {} -func (*ExtensionStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{50} -} -func (m *ExtensionStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExtensionStatus) 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 *ExtensionStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExtensionStatus.Merge(m, src) -} -func (m *ExtensionStatus) XXX_Size() int { - return m.Size() -} -func (m *ExtensionStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ExtensionStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ExtensionStatus proto.InternalMessageInfo - func (m *Gardener) Reset() { *m = Gardener{} } func (*Gardener) ProtoMessage() {} func (*Gardener) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{51} + return fileDescriptor_f1caaec5647a9dbf, []int{50} } func (m *Gardener) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1514,7 +1486,7 @@ var xxx_messageInfo_Gardener proto.InternalMessageInfo func (m *GardenerResourceData) Reset() { *m = GardenerResourceData{} } func (*GardenerResourceData) ProtoMessage() {} func (*GardenerResourceData) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{52} + return fileDescriptor_f1caaec5647a9dbf, []int{51} } func (m *GardenerResourceData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1542,7 +1514,7 @@ var xxx_messageInfo_GardenerResourceData proto.InternalMessageInfo func (m *Hibernation) Reset() { *m = Hibernation{} } func (*Hibernation) ProtoMessage() {} func (*Hibernation) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{53} + return fileDescriptor_f1caaec5647a9dbf, []int{52} } func (m *Hibernation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1570,7 +1542,7 @@ var xxx_messageInfo_Hibernation proto.InternalMessageInfo func (m *HibernationSchedule) Reset() { *m = HibernationSchedule{} } func (*HibernationSchedule) ProtoMessage() {} func (*HibernationSchedule) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{54} + return fileDescriptor_f1caaec5647a9dbf, []int{53} } func (m *HibernationSchedule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1598,7 +1570,7 @@ var xxx_messageInfo_HibernationSchedule proto.InternalMessageInfo func (m *HorizontalPodAutoscalerConfig) Reset() { *m = HorizontalPodAutoscalerConfig{} } func (*HorizontalPodAutoscalerConfig) ProtoMessage() {} func (*HorizontalPodAutoscalerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{55} + return fileDescriptor_f1caaec5647a9dbf, []int{54} } func (m *HorizontalPodAutoscalerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1626,7 +1598,7 @@ var xxx_messageInfo_HorizontalPodAutoscalerConfig proto.InternalMessageInfo func (m *Ingress) Reset() { *m = Ingress{} } func (*Ingress) ProtoMessage() {} func (*Ingress) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{56} + return fileDescriptor_f1caaec5647a9dbf, []int{55} } func (m *Ingress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1654,7 +1626,7 @@ var xxx_messageInfo_Ingress proto.InternalMessageInfo func (m *IngressController) Reset() { *m = IngressController{} } func (*IngressController) ProtoMessage() {} func (*IngressController) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{57} + return fileDescriptor_f1caaec5647a9dbf, []int{56} } func (m *IngressController) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1682,7 +1654,7 @@ var xxx_messageInfo_IngressController proto.InternalMessageInfo func (m *KubeAPIServerConfig) Reset() { *m = KubeAPIServerConfig{} } func (*KubeAPIServerConfig) ProtoMessage() {} func (*KubeAPIServerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{58} + return fileDescriptor_f1caaec5647a9dbf, []int{57} } func (m *KubeAPIServerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1710,7 +1682,7 @@ var xxx_messageInfo_KubeAPIServerConfig proto.InternalMessageInfo func (m *KubeAPIServerRequests) Reset() { *m = KubeAPIServerRequests{} } func (*KubeAPIServerRequests) ProtoMessage() {} func (*KubeAPIServerRequests) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{59} + return fileDescriptor_f1caaec5647a9dbf, []int{58} } func (m *KubeAPIServerRequests) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1738,7 +1710,7 @@ var xxx_messageInfo_KubeAPIServerRequests proto.InternalMessageInfo func (m *KubeControllerManagerConfig) Reset() { *m = KubeControllerManagerConfig{} } func (*KubeControllerManagerConfig) ProtoMessage() {} func (*KubeControllerManagerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{60} + return fileDescriptor_f1caaec5647a9dbf, []int{59} } func (m *KubeControllerManagerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1766,7 +1738,7 @@ var xxx_messageInfo_KubeControllerManagerConfig proto.InternalMessageInfo func (m *KubeProxyConfig) Reset() { *m = KubeProxyConfig{} } func (*KubeProxyConfig) ProtoMessage() {} func (*KubeProxyConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{61} + return fileDescriptor_f1caaec5647a9dbf, []int{60} } func (m *KubeProxyConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1794,7 +1766,7 @@ var xxx_messageInfo_KubeProxyConfig proto.InternalMessageInfo func (m *KubeSchedulerConfig) Reset() { *m = KubeSchedulerConfig{} } func (*KubeSchedulerConfig) ProtoMessage() {} func (*KubeSchedulerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{62} + return fileDescriptor_f1caaec5647a9dbf, []int{61} } func (m *KubeSchedulerConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1822,7 +1794,7 @@ var xxx_messageInfo_KubeSchedulerConfig proto.InternalMessageInfo func (m *KubeletConfig) Reset() { *m = KubeletConfig{} } func (*KubeletConfig) ProtoMessage() {} func (*KubeletConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{63} + return fileDescriptor_f1caaec5647a9dbf, []int{62} } func (m *KubeletConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1850,7 +1822,7 @@ var xxx_messageInfo_KubeletConfig proto.InternalMessageInfo func (m *KubeletConfigEviction) Reset() { *m = KubeletConfigEviction{} } func (*KubeletConfigEviction) ProtoMessage() {} func (*KubeletConfigEviction) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{64} + return fileDescriptor_f1caaec5647a9dbf, []int{63} } func (m *KubeletConfigEviction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1878,7 +1850,7 @@ var xxx_messageInfo_KubeletConfigEviction proto.InternalMessageInfo func (m *KubeletConfigEvictionMinimumReclaim) Reset() { *m = KubeletConfigEvictionMinimumReclaim{} } func (*KubeletConfigEvictionMinimumReclaim) ProtoMessage() {} func (*KubeletConfigEvictionMinimumReclaim) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{65} + return fileDescriptor_f1caaec5647a9dbf, []int{64} } func (m *KubeletConfigEvictionMinimumReclaim) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1906,7 +1878,7 @@ var xxx_messageInfo_KubeletConfigEvictionMinimumReclaim proto.InternalMessageInf func (m *KubeletConfigEvictionSoftGracePeriod) Reset() { *m = KubeletConfigEvictionSoftGracePeriod{} } func (*KubeletConfigEvictionSoftGracePeriod) ProtoMessage() {} func (*KubeletConfigEvictionSoftGracePeriod) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{66} + return fileDescriptor_f1caaec5647a9dbf, []int{65} } func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1934,7 +1906,7 @@ var xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod proto.InternalMessageIn func (m *KubeletConfigReserved) Reset() { *m = KubeletConfigReserved{} } func (*KubeletConfigReserved) ProtoMessage() {} func (*KubeletConfigReserved) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{67} + return fileDescriptor_f1caaec5647a9dbf, []int{66} } func (m *KubeletConfigReserved) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1962,7 +1934,7 @@ var xxx_messageInfo_KubeletConfigReserved proto.InternalMessageInfo func (m *Kubernetes) Reset() { *m = Kubernetes{} } func (*Kubernetes) ProtoMessage() {} func (*Kubernetes) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{68} + return fileDescriptor_f1caaec5647a9dbf, []int{67} } func (m *Kubernetes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1990,7 +1962,7 @@ var xxx_messageInfo_Kubernetes proto.InternalMessageInfo func (m *KubernetesConfig) Reset() { *m = KubernetesConfig{} } func (*KubernetesConfig) ProtoMessage() {} func (*KubernetesConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{69} + return fileDescriptor_f1caaec5647a9dbf, []int{68} } func (m *KubernetesConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2018,7 +1990,7 @@ var xxx_messageInfo_KubernetesConfig proto.InternalMessageInfo func (m *KubernetesDashboard) Reset() { *m = KubernetesDashboard{} } func (*KubernetesDashboard) ProtoMessage() {} func (*KubernetesDashboard) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{70} + return fileDescriptor_f1caaec5647a9dbf, []int{69} } func (m *KubernetesDashboard) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2046,7 +2018,7 @@ var xxx_messageInfo_KubernetesDashboard proto.InternalMessageInfo func (m *KubernetesInfo) Reset() { *m = KubernetesInfo{} } func (*KubernetesInfo) ProtoMessage() {} func (*KubernetesInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{71} + return fileDescriptor_f1caaec5647a9dbf, []int{70} } func (m *KubernetesInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2074,7 +2046,7 @@ var xxx_messageInfo_KubernetesInfo proto.InternalMessageInfo func (m *KubernetesSettings) Reset() { *m = KubernetesSettings{} } func (*KubernetesSettings) ProtoMessage() {} func (*KubernetesSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{72} + return fileDescriptor_f1caaec5647a9dbf, []int{71} } func (m *KubernetesSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2102,7 +2074,7 @@ var xxx_messageInfo_KubernetesSettings proto.InternalMessageInfo func (m *LastError) Reset() { *m = LastError{} } func (*LastError) ProtoMessage() {} func (*LastError) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{73} + return fileDescriptor_f1caaec5647a9dbf, []int{72} } func (m *LastError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2130,7 +2102,7 @@ var xxx_messageInfo_LastError proto.InternalMessageInfo func (m *LastOperation) Reset() { *m = LastOperation{} } func (*LastOperation) ProtoMessage() {} func (*LastOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{74} + return fileDescriptor_f1caaec5647a9dbf, []int{73} } func (m *LastOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2158,7 +2130,7 @@ var xxx_messageInfo_LastOperation proto.InternalMessageInfo func (m *Machine) Reset() { *m = Machine{} } func (*Machine) ProtoMessage() {} func (*Machine) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{75} + return fileDescriptor_f1caaec5647a9dbf, []int{74} } func (m *Machine) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2186,7 +2158,7 @@ var xxx_messageInfo_Machine proto.InternalMessageInfo func (m *MachineControllerManagerSettings) Reset() { *m = MachineControllerManagerSettings{} } func (*MachineControllerManagerSettings) ProtoMessage() {} func (*MachineControllerManagerSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{76} + return fileDescriptor_f1caaec5647a9dbf, []int{75} } func (m *MachineControllerManagerSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2214,7 +2186,7 @@ var xxx_messageInfo_MachineControllerManagerSettings proto.InternalMessageInfo func (m *MachineImage) Reset() { *m = MachineImage{} } func (*MachineImage) ProtoMessage() {} func (*MachineImage) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{77} + return fileDescriptor_f1caaec5647a9dbf, []int{76} } func (m *MachineImage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2242,7 +2214,7 @@ var xxx_messageInfo_MachineImage proto.InternalMessageInfo func (m *MachineImageVersion) Reset() { *m = MachineImageVersion{} } func (*MachineImageVersion) ProtoMessage() {} func (*MachineImageVersion) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{78} + return fileDescriptor_f1caaec5647a9dbf, []int{77} } func (m *MachineImageVersion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2270,7 +2242,7 @@ var xxx_messageInfo_MachineImageVersion proto.InternalMessageInfo func (m *MachineType) Reset() { *m = MachineType{} } func (*MachineType) ProtoMessage() {} func (*MachineType) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{79} + return fileDescriptor_f1caaec5647a9dbf, []int{78} } func (m *MachineType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2298,7 +2270,7 @@ var xxx_messageInfo_MachineType proto.InternalMessageInfo func (m *MachineTypeStorage) Reset() { *m = MachineTypeStorage{} } func (*MachineTypeStorage) ProtoMessage() {} func (*MachineTypeStorage) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{80} + return fileDescriptor_f1caaec5647a9dbf, []int{79} } func (m *MachineTypeStorage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2326,7 +2298,7 @@ var xxx_messageInfo_MachineTypeStorage proto.InternalMessageInfo func (m *Maintenance) Reset() { *m = Maintenance{} } func (*Maintenance) ProtoMessage() {} func (*Maintenance) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{81} + return fileDescriptor_f1caaec5647a9dbf, []int{80} } func (m *Maintenance) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2354,7 +2326,7 @@ var xxx_messageInfo_Maintenance proto.InternalMessageInfo func (m *MaintenanceAutoUpdate) Reset() { *m = MaintenanceAutoUpdate{} } func (*MaintenanceAutoUpdate) ProtoMessage() {} func (*MaintenanceAutoUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{82} + return fileDescriptor_f1caaec5647a9dbf, []int{81} } func (m *MaintenanceAutoUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2382,7 +2354,7 @@ var xxx_messageInfo_MaintenanceAutoUpdate proto.InternalMessageInfo func (m *MaintenanceTimeWindow) Reset() { *m = MaintenanceTimeWindow{} } func (*MaintenanceTimeWindow) ProtoMessage() {} func (*MaintenanceTimeWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{83} + return fileDescriptor_f1caaec5647a9dbf, []int{82} } func (m *MaintenanceTimeWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2410,7 +2382,7 @@ var xxx_messageInfo_MaintenanceTimeWindow proto.InternalMessageInfo func (m *Monitoring) Reset() { *m = Monitoring{} } func (*Monitoring) ProtoMessage() {} func (*Monitoring) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{84} + return fileDescriptor_f1caaec5647a9dbf, []int{83} } func (m *Monitoring) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2438,7 +2410,7 @@ var xxx_messageInfo_Monitoring proto.InternalMessageInfo func (m *NamedResourceReference) Reset() { *m = NamedResourceReference{} } func (*NamedResourceReference) ProtoMessage() {} func (*NamedResourceReference) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{85} + return fileDescriptor_f1caaec5647a9dbf, []int{84} } func (m *NamedResourceReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2466,7 +2438,7 @@ var xxx_messageInfo_NamedResourceReference proto.InternalMessageInfo func (m *Networking) Reset() { *m = Networking{} } func (*Networking) ProtoMessage() {} func (*Networking) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{86} + return fileDescriptor_f1caaec5647a9dbf, []int{85} } func (m *Networking) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2494,7 +2466,7 @@ var xxx_messageInfo_Networking proto.InternalMessageInfo func (m *NginxIngress) Reset() { *m = NginxIngress{} } func (*NginxIngress) ProtoMessage() {} func (*NginxIngress) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{87} + return fileDescriptor_f1caaec5647a9dbf, []int{86} } func (m *NginxIngress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2522,7 +2494,7 @@ var xxx_messageInfo_NginxIngress proto.InternalMessageInfo func (m *OIDCConfig) Reset() { *m = OIDCConfig{} } func (*OIDCConfig) ProtoMessage() {} func (*OIDCConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{88} + return fileDescriptor_f1caaec5647a9dbf, []int{87} } func (m *OIDCConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2550,7 +2522,7 @@ var xxx_messageInfo_OIDCConfig proto.InternalMessageInfo func (m *OpenIDConnectClientAuthentication) Reset() { *m = OpenIDConnectClientAuthentication{} } func (*OpenIDConnectClientAuthentication) ProtoMessage() {} func (*OpenIDConnectClientAuthentication) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{89} + return fileDescriptor_f1caaec5647a9dbf, []int{88} } func (m *OpenIDConnectClientAuthentication) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2578,7 +2550,7 @@ var xxx_messageInfo_OpenIDConnectClientAuthentication proto.InternalMessageInfo func (m *Plant) Reset() { *m = Plant{} } func (*Plant) ProtoMessage() {} func (*Plant) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{90} + return fileDescriptor_f1caaec5647a9dbf, []int{89} } func (m *Plant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2606,7 +2578,7 @@ var xxx_messageInfo_Plant proto.InternalMessageInfo func (m *PlantList) Reset() { *m = PlantList{} } func (*PlantList) ProtoMessage() {} func (*PlantList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{91} + return fileDescriptor_f1caaec5647a9dbf, []int{90} } func (m *PlantList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2634,7 +2606,7 @@ var xxx_messageInfo_PlantList proto.InternalMessageInfo func (m *PlantSpec) Reset() { *m = PlantSpec{} } func (*PlantSpec) ProtoMessage() {} func (*PlantSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{92} + return fileDescriptor_f1caaec5647a9dbf, []int{91} } func (m *PlantSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2662,7 +2634,7 @@ var xxx_messageInfo_PlantSpec proto.InternalMessageInfo func (m *PlantStatus) Reset() { *m = PlantStatus{} } func (*PlantStatus) ProtoMessage() {} func (*PlantStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{93} + return fileDescriptor_f1caaec5647a9dbf, []int{92} } func (m *PlantStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2690,7 +2662,7 @@ var xxx_messageInfo_PlantStatus proto.InternalMessageInfo func (m *Project) Reset() { *m = Project{} } func (*Project) ProtoMessage() {} func (*Project) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{94} + return fileDescriptor_f1caaec5647a9dbf, []int{93} } func (m *Project) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2718,7 +2690,7 @@ var xxx_messageInfo_Project proto.InternalMessageInfo func (m *ProjectList) Reset() { *m = ProjectList{} } func (*ProjectList) ProtoMessage() {} func (*ProjectList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{95} + return fileDescriptor_f1caaec5647a9dbf, []int{94} } func (m *ProjectList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2746,7 +2718,7 @@ var xxx_messageInfo_ProjectList proto.InternalMessageInfo func (m *ProjectMember) Reset() { *m = ProjectMember{} } func (*ProjectMember) ProtoMessage() {} func (*ProjectMember) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{96} + return fileDescriptor_f1caaec5647a9dbf, []int{95} } func (m *ProjectMember) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2774,7 +2746,7 @@ var xxx_messageInfo_ProjectMember proto.InternalMessageInfo func (m *ProjectSpec) Reset() { *m = ProjectSpec{} } func (*ProjectSpec) ProtoMessage() {} func (*ProjectSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{97} + return fileDescriptor_f1caaec5647a9dbf, []int{96} } func (m *ProjectSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2802,7 +2774,7 @@ var xxx_messageInfo_ProjectSpec proto.InternalMessageInfo func (m *ProjectStatus) Reset() { *m = ProjectStatus{} } func (*ProjectStatus) ProtoMessage() {} func (*ProjectStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{98} + return fileDescriptor_f1caaec5647a9dbf, []int{97} } func (m *ProjectStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2830,7 +2802,7 @@ var xxx_messageInfo_ProjectStatus proto.InternalMessageInfo func (m *ProjectTolerations) Reset() { *m = ProjectTolerations{} } func (*ProjectTolerations) ProtoMessage() {} func (*ProjectTolerations) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{99} + return fileDescriptor_f1caaec5647a9dbf, []int{98} } func (m *ProjectTolerations) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2858,7 +2830,7 @@ var xxx_messageInfo_ProjectTolerations proto.InternalMessageInfo func (m *Provider) Reset() { *m = Provider{} } func (*Provider) ProtoMessage() {} func (*Provider) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{100} + return fileDescriptor_f1caaec5647a9dbf, []int{99} } func (m *Provider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2886,7 +2858,7 @@ var xxx_messageInfo_Provider proto.InternalMessageInfo func (m *Quota) Reset() { *m = Quota{} } func (*Quota) ProtoMessage() {} func (*Quota) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{101} + return fileDescriptor_f1caaec5647a9dbf, []int{100} } func (m *Quota) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2914,7 +2886,7 @@ var xxx_messageInfo_Quota proto.InternalMessageInfo func (m *QuotaList) Reset() { *m = QuotaList{} } func (*QuotaList) ProtoMessage() {} func (*QuotaList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{102} + return fileDescriptor_f1caaec5647a9dbf, []int{101} } func (m *QuotaList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2942,7 +2914,7 @@ var xxx_messageInfo_QuotaList proto.InternalMessageInfo func (m *QuotaSpec) Reset() { *m = QuotaSpec{} } func (*QuotaSpec) ProtoMessage() {} func (*QuotaSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{103} + return fileDescriptor_f1caaec5647a9dbf, []int{102} } func (m *QuotaSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2970,7 +2942,7 @@ var xxx_messageInfo_QuotaSpec proto.InternalMessageInfo func (m *Region) Reset() { *m = Region{} } func (*Region) ProtoMessage() {} func (*Region) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{104} + return fileDescriptor_f1caaec5647a9dbf, []int{103} } func (m *Region) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2998,7 +2970,7 @@ var xxx_messageInfo_Region proto.InternalMessageInfo func (m *ResourceData) Reset() { *m = ResourceData{} } func (*ResourceData) ProtoMessage() {} func (*ResourceData) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{105} + return fileDescriptor_f1caaec5647a9dbf, []int{104} } func (m *ResourceData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3026,7 +2998,7 @@ var xxx_messageInfo_ResourceData proto.InternalMessageInfo func (m *ResourceWatchCacheSize) Reset() { *m = ResourceWatchCacheSize{} } func (*ResourceWatchCacheSize) ProtoMessage() {} func (*ResourceWatchCacheSize) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{106} + return fileDescriptor_f1caaec5647a9dbf, []int{105} } func (m *ResourceWatchCacheSize) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3054,7 +3026,7 @@ var xxx_messageInfo_ResourceWatchCacheSize proto.InternalMessageInfo func (m *SecretBinding) Reset() { *m = SecretBinding{} } func (*SecretBinding) ProtoMessage() {} func (*SecretBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{107} + return fileDescriptor_f1caaec5647a9dbf, []int{106} } func (m *SecretBinding) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3082,7 +3054,7 @@ var xxx_messageInfo_SecretBinding proto.InternalMessageInfo func (m *SecretBindingList) Reset() { *m = SecretBindingList{} } func (*SecretBindingList) ProtoMessage() {} func (*SecretBindingList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{108} + return fileDescriptor_f1caaec5647a9dbf, []int{107} } func (m *SecretBindingList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3110,7 +3082,7 @@ var xxx_messageInfo_SecretBindingList proto.InternalMessageInfo func (m *SecretBindingProvider) Reset() { *m = SecretBindingProvider{} } func (*SecretBindingProvider) ProtoMessage() {} func (*SecretBindingProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{109} + return fileDescriptor_f1caaec5647a9dbf, []int{108} } func (m *SecretBindingProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3138,7 +3110,7 @@ var xxx_messageInfo_SecretBindingProvider proto.InternalMessageInfo func (m *Seed) Reset() { *m = Seed{} } func (*Seed) ProtoMessage() {} func (*Seed) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{110} + return fileDescriptor_f1caaec5647a9dbf, []int{109} } func (m *Seed) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3166,7 +3138,7 @@ var xxx_messageInfo_Seed proto.InternalMessageInfo func (m *SeedBackup) Reset() { *m = SeedBackup{} } func (*SeedBackup) ProtoMessage() {} func (*SeedBackup) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{111} + return fileDescriptor_f1caaec5647a9dbf, []int{110} } func (m *SeedBackup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3194,7 +3166,7 @@ var xxx_messageInfo_SeedBackup proto.InternalMessageInfo func (m *SeedDNS) Reset() { *m = SeedDNS{} } func (*SeedDNS) ProtoMessage() {} func (*SeedDNS) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{112} + return fileDescriptor_f1caaec5647a9dbf, []int{111} } func (m *SeedDNS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3222,7 +3194,7 @@ var xxx_messageInfo_SeedDNS proto.InternalMessageInfo func (m *SeedDNSProvider) Reset() { *m = SeedDNSProvider{} } func (*SeedDNSProvider) ProtoMessage() {} func (*SeedDNSProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{113} + return fileDescriptor_f1caaec5647a9dbf, []int{112} } func (m *SeedDNSProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3250,7 +3222,7 @@ var xxx_messageInfo_SeedDNSProvider proto.InternalMessageInfo func (m *SeedList) Reset() { *m = SeedList{} } func (*SeedList) ProtoMessage() {} func (*SeedList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{114} + return fileDescriptor_f1caaec5647a9dbf, []int{113} } func (m *SeedList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3278,7 +3250,7 @@ var xxx_messageInfo_SeedList proto.InternalMessageInfo func (m *SeedNetworks) Reset() { *m = SeedNetworks{} } func (*SeedNetworks) ProtoMessage() {} func (*SeedNetworks) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{115} + return fileDescriptor_f1caaec5647a9dbf, []int{114} } func (m *SeedNetworks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3306,7 +3278,7 @@ var xxx_messageInfo_SeedNetworks proto.InternalMessageInfo func (m *SeedProvider) Reset() { *m = SeedProvider{} } func (*SeedProvider) ProtoMessage() {} func (*SeedProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{116} + return fileDescriptor_f1caaec5647a9dbf, []int{115} } func (m *SeedProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3334,7 +3306,7 @@ var xxx_messageInfo_SeedProvider proto.InternalMessageInfo func (m *SeedSelector) Reset() { *m = SeedSelector{} } func (*SeedSelector) ProtoMessage() {} func (*SeedSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{117} + return fileDescriptor_f1caaec5647a9dbf, []int{116} } func (m *SeedSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3362,7 +3334,7 @@ var xxx_messageInfo_SeedSelector proto.InternalMessageInfo func (m *SeedSettingDependencyWatchdog) Reset() { *m = SeedSettingDependencyWatchdog{} } func (*SeedSettingDependencyWatchdog) ProtoMessage() {} func (*SeedSettingDependencyWatchdog) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{118} + return fileDescriptor_f1caaec5647a9dbf, []int{117} } func (m *SeedSettingDependencyWatchdog) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3390,7 +3362,7 @@ var xxx_messageInfo_SeedSettingDependencyWatchdog proto.InternalMessageInfo func (m *SeedSettingDependencyWatchdogEndpoint) Reset() { *m = SeedSettingDependencyWatchdogEndpoint{} } func (*SeedSettingDependencyWatchdogEndpoint) ProtoMessage() {} func (*SeedSettingDependencyWatchdogEndpoint) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{119} + return fileDescriptor_f1caaec5647a9dbf, []int{118} } func (m *SeedSettingDependencyWatchdogEndpoint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3418,7 +3390,7 @@ var xxx_messageInfo_SeedSettingDependencyWatchdogEndpoint proto.InternalMessageI func (m *SeedSettingDependencyWatchdogProbe) Reset() { *m = SeedSettingDependencyWatchdogProbe{} } func (*SeedSettingDependencyWatchdogProbe) ProtoMessage() {} func (*SeedSettingDependencyWatchdogProbe) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{120} + return fileDescriptor_f1caaec5647a9dbf, []int{119} } func (m *SeedSettingDependencyWatchdogProbe) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3446,7 +3418,7 @@ var xxx_messageInfo_SeedSettingDependencyWatchdogProbe proto.InternalMessageInfo func (m *SeedSettingExcessCapacityReservation) Reset() { *m = SeedSettingExcessCapacityReservation{} } func (*SeedSettingExcessCapacityReservation) ProtoMessage() {} func (*SeedSettingExcessCapacityReservation) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{121} + return fileDescriptor_f1caaec5647a9dbf, []int{120} } func (m *SeedSettingExcessCapacityReservation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3474,7 +3446,7 @@ var xxx_messageInfo_SeedSettingExcessCapacityReservation proto.InternalMessageIn func (m *SeedSettingLoadBalancerServices) Reset() { *m = SeedSettingLoadBalancerServices{} } func (*SeedSettingLoadBalancerServices) ProtoMessage() {} func (*SeedSettingLoadBalancerServices) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{122} + return fileDescriptor_f1caaec5647a9dbf, []int{121} } func (m *SeedSettingLoadBalancerServices) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3502,7 +3474,7 @@ var xxx_messageInfo_SeedSettingLoadBalancerServices proto.InternalMessageInfo func (m *SeedSettingOwnerChecks) Reset() { *m = SeedSettingOwnerChecks{} } func (*SeedSettingOwnerChecks) ProtoMessage() {} func (*SeedSettingOwnerChecks) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{123} + return fileDescriptor_f1caaec5647a9dbf, []int{122} } func (m *SeedSettingOwnerChecks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3530,7 +3502,7 @@ var xxx_messageInfo_SeedSettingOwnerChecks proto.InternalMessageInfo func (m *SeedSettingScheduling) Reset() { *m = SeedSettingScheduling{} } func (*SeedSettingScheduling) ProtoMessage() {} func (*SeedSettingScheduling) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{124} + return fileDescriptor_f1caaec5647a9dbf, []int{123} } func (m *SeedSettingScheduling) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3558,7 +3530,7 @@ var xxx_messageInfo_SeedSettingScheduling proto.InternalMessageInfo func (m *SeedSettingShootDNS) Reset() { *m = SeedSettingShootDNS{} } func (*SeedSettingShootDNS) ProtoMessage() {} func (*SeedSettingShootDNS) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{125} + return fileDescriptor_f1caaec5647a9dbf, []int{124} } func (m *SeedSettingShootDNS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3586,7 +3558,7 @@ var xxx_messageInfo_SeedSettingShootDNS proto.InternalMessageInfo func (m *SeedSettingVerticalPodAutoscaler) Reset() { *m = SeedSettingVerticalPodAutoscaler{} } func (*SeedSettingVerticalPodAutoscaler) ProtoMessage() {} func (*SeedSettingVerticalPodAutoscaler) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{126} + return fileDescriptor_f1caaec5647a9dbf, []int{125} } func (m *SeedSettingVerticalPodAutoscaler) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3614,7 +3586,7 @@ var xxx_messageInfo_SeedSettingVerticalPodAutoscaler proto.InternalMessageInfo func (m *SeedSettings) Reset() { *m = SeedSettings{} } func (*SeedSettings) ProtoMessage() {} func (*SeedSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{127} + return fileDescriptor_f1caaec5647a9dbf, []int{126} } func (m *SeedSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3642,7 +3614,7 @@ var xxx_messageInfo_SeedSettings proto.InternalMessageInfo func (m *SeedSpec) Reset() { *m = SeedSpec{} } func (*SeedSpec) ProtoMessage() {} func (*SeedSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{128} + return fileDescriptor_f1caaec5647a9dbf, []int{127} } func (m *SeedSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3670,7 +3642,7 @@ var xxx_messageInfo_SeedSpec proto.InternalMessageInfo func (m *SeedStatus) Reset() { *m = SeedStatus{} } func (*SeedStatus) ProtoMessage() {} func (*SeedStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{129} + return fileDescriptor_f1caaec5647a9dbf, []int{128} } func (m *SeedStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3698,7 +3670,7 @@ var xxx_messageInfo_SeedStatus proto.InternalMessageInfo func (m *SeedTaint) Reset() { *m = SeedTaint{} } func (*SeedTaint) ProtoMessage() {} func (*SeedTaint) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{130} + return fileDescriptor_f1caaec5647a9dbf, []int{129} } func (m *SeedTaint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3726,7 +3698,7 @@ var xxx_messageInfo_SeedTaint proto.InternalMessageInfo func (m *SeedVolume) Reset() { *m = SeedVolume{} } func (*SeedVolume) ProtoMessage() {} func (*SeedVolume) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{131} + return fileDescriptor_f1caaec5647a9dbf, []int{130} } func (m *SeedVolume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3754,7 +3726,7 @@ var xxx_messageInfo_SeedVolume proto.InternalMessageInfo func (m *SeedVolumeProvider) Reset() { *m = SeedVolumeProvider{} } func (*SeedVolumeProvider) ProtoMessage() {} func (*SeedVolumeProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{132} + return fileDescriptor_f1caaec5647a9dbf, []int{131} } func (m *SeedVolumeProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3782,7 +3754,7 @@ var xxx_messageInfo_SeedVolumeProvider proto.InternalMessageInfo func (m *ServiceAccountConfig) Reset() { *m = ServiceAccountConfig{} } func (*ServiceAccountConfig) ProtoMessage() {} func (*ServiceAccountConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{133} + return fileDescriptor_f1caaec5647a9dbf, []int{132} } func (m *ServiceAccountConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3810,7 +3782,7 @@ var xxx_messageInfo_ServiceAccountConfig proto.InternalMessageInfo func (m *Shoot) Reset() { *m = Shoot{} } func (*Shoot) ProtoMessage() {} func (*Shoot) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{134} + return fileDescriptor_f1caaec5647a9dbf, []int{133} } func (m *Shoot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3838,7 +3810,7 @@ var xxx_messageInfo_Shoot proto.InternalMessageInfo func (m *ShootAdvertisedAddress) Reset() { *m = ShootAdvertisedAddress{} } func (*ShootAdvertisedAddress) ProtoMessage() {} func (*ShootAdvertisedAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{135} + return fileDescriptor_f1caaec5647a9dbf, []int{134} } func (m *ShootAdvertisedAddress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3866,7 +3838,7 @@ var xxx_messageInfo_ShootAdvertisedAddress proto.InternalMessageInfo func (m *ShootCARotation) Reset() { *m = ShootCARotation{} } func (*ShootCARotation) ProtoMessage() {} func (*ShootCARotation) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{136} + return fileDescriptor_f1caaec5647a9dbf, []int{135} } func (m *ShootCARotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3894,7 +3866,7 @@ var xxx_messageInfo_ShootCARotation proto.InternalMessageInfo func (m *ShootCredentials) Reset() { *m = ShootCredentials{} } func (*ShootCredentials) ProtoMessage() {} func (*ShootCredentials) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{137} + return fileDescriptor_f1caaec5647a9dbf, []int{136} } func (m *ShootCredentials) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3922,7 +3894,7 @@ var xxx_messageInfo_ShootCredentials proto.InternalMessageInfo func (m *ShootCredentialsRotation) Reset() { *m = ShootCredentialsRotation{} } func (*ShootCredentialsRotation) ProtoMessage() {} func (*ShootCredentialsRotation) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{138} + return fileDescriptor_f1caaec5647a9dbf, []int{137} } func (m *ShootCredentialsRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3947,43 +3919,15 @@ func (m *ShootCredentialsRotation) XXX_DiscardUnknown() { var xxx_messageInfo_ShootCredentialsRotation proto.InternalMessageInfo -func (m *ShootExtensionStatus) Reset() { *m = ShootExtensionStatus{} } -func (*ShootExtensionStatus) ProtoMessage() {} -func (*ShootExtensionStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{139} -} -func (m *ShootExtensionStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ShootExtensionStatus) 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 *ShootExtensionStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ShootExtensionStatus.Merge(m, src) -} -func (m *ShootExtensionStatus) XXX_Size() int { - return m.Size() -} -func (m *ShootExtensionStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ShootExtensionStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ShootExtensionStatus proto.InternalMessageInfo - -func (m *ShootExtensionStatusList) Reset() { *m = ShootExtensionStatusList{} } -func (*ShootExtensionStatusList) ProtoMessage() {} -func (*ShootExtensionStatusList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{140} +func (m *ShootKubeconfigRotation) Reset() { *m = ShootKubeconfigRotation{} } +func (*ShootKubeconfigRotation) ProtoMessage() {} +func (*ShootKubeconfigRotation) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{138} } -func (m *ShootExtensionStatusList) XXX_Unmarshal(b []byte) error { +func (m *ShootKubeconfigRotation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *ShootExtensionStatusList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *ShootKubeconfigRotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) if err != nil { @@ -3991,22 +3935,22 @@ func (m *ShootExtensionStatusList) XXX_Marshal(b []byte, deterministic bool) ([] } return b[:n], nil } -func (m *ShootExtensionStatusList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ShootExtensionStatusList.Merge(m, src) +func (m *ShootKubeconfigRotation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootKubeconfigRotation.Merge(m, src) } -func (m *ShootExtensionStatusList) XXX_Size() int { +func (m *ShootKubeconfigRotation) XXX_Size() int { return m.Size() } -func (m *ShootExtensionStatusList) XXX_DiscardUnknown() { - xxx_messageInfo_ShootExtensionStatusList.DiscardUnknown(m) +func (m *ShootKubeconfigRotation) XXX_DiscardUnknown() { + xxx_messageInfo_ShootKubeconfigRotation.DiscardUnknown(m) } -var xxx_messageInfo_ShootExtensionStatusList proto.InternalMessageInfo +var xxx_messageInfo_ShootKubeconfigRotation proto.InternalMessageInfo func (m *ShootList) Reset() { *m = ShootList{} } func (*ShootList) ProtoMessage() {} func (*ShootList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{141} + return fileDescriptor_f1caaec5647a9dbf, []int{139} } func (m *ShootList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4034,7 +3978,7 @@ var xxx_messageInfo_ShootList proto.InternalMessageInfo func (m *ShootMachineImage) Reset() { *m = ShootMachineImage{} } func (*ShootMachineImage) ProtoMessage() {} func (*ShootMachineImage) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{142} + return fileDescriptor_f1caaec5647a9dbf, []int{140} } func (m *ShootMachineImage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4062,7 +4006,7 @@ var xxx_messageInfo_ShootMachineImage proto.InternalMessageInfo func (m *ShootNetworks) Reset() { *m = ShootNetworks{} } func (*ShootNetworks) ProtoMessage() {} func (*ShootNetworks) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{143} + return fileDescriptor_f1caaec5647a9dbf, []int{141} } func (m *ShootNetworks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4087,10 +4031,38 @@ func (m *ShootNetworks) XXX_DiscardUnknown() { var xxx_messageInfo_ShootNetworks proto.InternalMessageInfo +func (m *ShootSSHKeypairRotation) Reset() { *m = ShootSSHKeypairRotation{} } +func (*ShootSSHKeypairRotation) ProtoMessage() {} +func (*ShootSSHKeypairRotation) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{142} +} +func (m *ShootSSHKeypairRotation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootSSHKeypairRotation) 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 *ShootSSHKeypairRotation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootSSHKeypairRotation.Merge(m, src) +} +func (m *ShootSSHKeypairRotation) XXX_Size() int { + return m.Size() +} +func (m *ShootSSHKeypairRotation) XXX_DiscardUnknown() { + xxx_messageInfo_ShootSSHKeypairRotation.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootSSHKeypairRotation proto.InternalMessageInfo + func (m *ShootSpec) Reset() { *m = ShootSpec{} } func (*ShootSpec) ProtoMessage() {} func (*ShootSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{144} + return fileDescriptor_f1caaec5647a9dbf, []int{143} } func (m *ShootSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4118,7 +4090,7 @@ var xxx_messageInfo_ShootSpec proto.InternalMessageInfo func (m *ShootState) Reset() { *m = ShootState{} } func (*ShootState) ProtoMessage() {} func (*ShootState) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{145} + return fileDescriptor_f1caaec5647a9dbf, []int{144} } func (m *ShootState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4146,7 +4118,7 @@ var xxx_messageInfo_ShootState proto.InternalMessageInfo func (m *ShootStateList) Reset() { *m = ShootStateList{} } func (*ShootStateList) ProtoMessage() {} func (*ShootStateList) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{146} + return fileDescriptor_f1caaec5647a9dbf, []int{145} } func (m *ShootStateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4174,7 +4146,7 @@ var xxx_messageInfo_ShootStateList proto.InternalMessageInfo func (m *ShootStateSpec) Reset() { *m = ShootStateSpec{} } func (*ShootStateSpec) ProtoMessage() {} func (*ShootStateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{147} + return fileDescriptor_f1caaec5647a9dbf, []int{146} } func (m *ShootStateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4202,7 +4174,7 @@ var xxx_messageInfo_ShootStateSpec proto.InternalMessageInfo func (m *ShootStatus) Reset() { *m = ShootStatus{} } func (*ShootStatus) ProtoMessage() {} func (*ShootStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{148} + return fileDescriptor_f1caaec5647a9dbf, []int{147} } func (m *ShootStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4230,7 +4202,7 @@ var xxx_messageInfo_ShootStatus proto.InternalMessageInfo func (m *SystemComponents) Reset() { *m = SystemComponents{} } func (*SystemComponents) ProtoMessage() {} func (*SystemComponents) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{149} + return fileDescriptor_f1caaec5647a9dbf, []int{148} } func (m *SystemComponents) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4258,7 +4230,7 @@ var xxx_messageInfo_SystemComponents proto.InternalMessageInfo func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} func (*Toleration) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{150} + return fileDescriptor_f1caaec5647a9dbf, []int{149} } func (m *Toleration) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4286,7 +4258,7 @@ var xxx_messageInfo_Toleration proto.InternalMessageInfo func (m *VerticalPodAutoscaler) Reset() { *m = VerticalPodAutoscaler{} } func (*VerticalPodAutoscaler) ProtoMessage() {} func (*VerticalPodAutoscaler) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{151} + return fileDescriptor_f1caaec5647a9dbf, []int{150} } func (m *VerticalPodAutoscaler) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4314,7 +4286,7 @@ var xxx_messageInfo_VerticalPodAutoscaler proto.InternalMessageInfo func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} func (*Volume) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{152} + return fileDescriptor_f1caaec5647a9dbf, []int{151} } func (m *Volume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4342,7 +4314,7 @@ var xxx_messageInfo_Volume proto.InternalMessageInfo func (m *VolumeType) Reset() { *m = VolumeType{} } func (*VolumeType) ProtoMessage() {} func (*VolumeType) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{153} + return fileDescriptor_f1caaec5647a9dbf, []int{152} } func (m *VolumeType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4370,7 +4342,7 @@ var xxx_messageInfo_VolumeType proto.InternalMessageInfo func (m *WatchCacheSizes) Reset() { *m = WatchCacheSizes{} } func (*WatchCacheSizes) ProtoMessage() {} func (*WatchCacheSizes) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{154} + return fileDescriptor_f1caaec5647a9dbf, []int{153} } func (m *WatchCacheSizes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4398,7 +4370,7 @@ var xxx_messageInfo_WatchCacheSizes proto.InternalMessageInfo func (m *Worker) Reset() { *m = Worker{} } func (*Worker) ProtoMessage() {} func (*Worker) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{155} + return fileDescriptor_f1caaec5647a9dbf, []int{154} } func (m *Worker) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4426,7 +4398,7 @@ var xxx_messageInfo_Worker proto.InternalMessageInfo func (m *WorkerKubernetes) Reset() { *m = WorkerKubernetes{} } func (*WorkerKubernetes) ProtoMessage() {} func (*WorkerKubernetes) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{156} + return fileDescriptor_f1caaec5647a9dbf, []int{155} } func (m *WorkerKubernetes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4454,7 +4426,7 @@ var xxx_messageInfo_WorkerKubernetes proto.InternalMessageInfo func (m *WorkerSystemComponents) Reset() { *m = WorkerSystemComponents{} } func (*WorkerSystemComponents) ProtoMessage() {} func (*WorkerSystemComponents) Descriptor() ([]byte, []int) { - return fileDescriptor_f1caaec5647a9dbf, []int{157} + return fileDescriptor_f1caaec5647a9dbf, []int{156} } func (m *WorkerSystemComponents) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4530,9 +4502,9 @@ func init() { proto.RegisterType((*ExposureClassScheduling)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ExposureClassScheduling") proto.RegisterType((*Extension)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Extension") proto.RegisterType((*ExtensionResourceState)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ExtensionResourceState") - proto.RegisterType((*ExtensionStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ExtensionStatus") proto.RegisterType((*Gardener)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Gardener") proto.RegisterType((*GardenerResourceData)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.GardenerResourceData") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.GardenerResourceData.LabelsEntry") proto.RegisterType((*Hibernation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Hibernation") proto.RegisterType((*HibernationSchedule)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.HibernationSchedule") proto.RegisterType((*HorizontalPodAutoscalerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.HorizontalPodAutoscalerConfig") @@ -4627,11 +4599,11 @@ func init() { proto.RegisterType((*ShootCARotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootCARotation") proto.RegisterType((*ShootCredentials)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootCredentials") proto.RegisterType((*ShootCredentialsRotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootCredentialsRotation") - proto.RegisterType((*ShootExtensionStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootExtensionStatus") - proto.RegisterType((*ShootExtensionStatusList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootExtensionStatusList") + proto.RegisterType((*ShootKubeconfigRotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootKubeconfigRotation") proto.RegisterType((*ShootList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootList") proto.RegisterType((*ShootMachineImage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootMachineImage") proto.RegisterType((*ShootNetworks)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootNetworks") + proto.RegisterType((*ShootSSHKeypairRotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootSSHKeypairRotation") proto.RegisterType((*ShootSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootSpec") proto.RegisterType((*ShootState)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootState") proto.RegisterType((*ShootStateList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootStateList") @@ -4655,648 +4627,650 @@ func init() { } var fileDescriptor_f1caaec5647a9dbf = []byte{ - // 10246 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0xbd, 0x6b, 0x6c, 0x24, 0xd9, - 0x75, 0x18, 0xac, 0x6a, 0xb2, 0xc9, 0xe6, 0x69, 0x3e, 0xef, 0x3c, 0x96, 0x3b, 0x3b, 0x33, 0x1c, - 0x95, 0xb4, 0xfa, 0x66, 0x3f, 0xc9, 0x1c, 0xaf, 0x1e, 0x96, 0x76, 0xb5, 0xbb, 0x5a, 0x76, 0x37, - 0x67, 0xa6, 0x35, 0x43, 0x0e, 0x75, 0x7b, 0xb8, 0x2b, 0xad, 0x0c, 0xad, 0x8a, 0x55, 0x97, 0xcd, - 0x5a, 0x56, 0x57, 0xf5, 0x56, 0x55, 0x73, 0xc8, 0x59, 0xc1, 0x52, 0xd6, 0x7a, 0xc4, 0x12, 0x12, - 0x24, 0x70, 0x02, 0x19, 0x92, 0x20, 0xc9, 0x82, 0x11, 0x28, 0x48, 0x02, 0x19, 0x02, 0xac, 0xc0, - 0x79, 0xf8, 0x87, 0xfd, 0xc3, 0x82, 0x14, 0x28, 0x46, 0xe2, 0x18, 0x8a, 0xe1, 0x50, 0x11, 0x13, - 0xc4, 0x4a, 0xe2, 0xfc, 0x08, 0x82, 0xfc, 0x19, 0x38, 0x41, 0x70, 0x1f, 0x55, 0x75, 0xeb, 0x45, - 0x36, 0xab, 0x38, 0xdc, 0xdd, 0x5f, 0xdd, 0x75, 0x1f, 0xe7, 0xdc, 0xe7, 0xb9, 0xe7, 0x9c, 0x7b, - 0xee, 0x39, 0xd0, 0xec, 0x9a, 0xfe, 0xd6, 0x60, 0x63, 0x51, 0x77, 0x7a, 0xd7, 0xba, 0x9a, 0x6b, - 0x10, 0x9b, 0xb8, 0xd1, 0x9f, 0xfe, 0x76, 0xf7, 0x9a, 0xd6, 0x37, 0xbd, 0x6b, 0xba, 0xe3, 0x92, - 0x6b, 0x3b, 0x4f, 0x6a, 0x56, 0x7f, 0x4b, 0x7b, 0xf2, 0x5a, 0x97, 0x66, 0x6a, 0x3e, 0x31, 0x16, - 0xfb, 0xae, 0xe3, 0x3b, 0xe8, 0x7d, 0x11, 0x90, 0xc5, 0xa0, 0x6e, 0xf4, 0xa7, 0xbf, 0xdd, 0x5d, - 0xa4, 0x40, 0x16, 0x29, 0x90, 0xc5, 0x00, 0xc8, 0x85, 0xc6, 0xb1, 0x30, 0x6f, 0x10, 0x3f, 0x8d, - 0xf8, 0xc2, 0x2f, 0xc9, 0x30, 0x9c, 0xae, 0x73, 0x8d, 0x25, 0x6f, 0x0c, 0x36, 0xd9, 0x17, 0xfb, - 0x60, 0xff, 0x44, 0xf1, 0x27, 0xb6, 0x3f, 0xe4, 0x2d, 0x9a, 0x0e, 0x05, 0x7c, 0x4d, 0x1b, 0xf8, - 0x8e, 0xa7, 0x6b, 0x96, 0x69, 0x77, 0xaf, 0xed, 0xa4, 0x21, 0xab, 0x52, 0x51, 0xd1, 0x84, 0x43, - 0xcb, 0xb8, 0x1b, 0x9a, 0x9e, 0x55, 0xe6, 0xfd, 0x51, 0x99, 0x9e, 0xa6, 0x6f, 0x99, 0x36, 0x71, - 0xf7, 0x82, 0xce, 0x5d, 0x73, 0x89, 0xe7, 0x0c, 0x5c, 0x9d, 0x1c, 0xab, 0x96, 0x77, 0xad, 0x47, - 0x7c, 0x2d, 0x0b, 0xd7, 0xb5, 0xbc, 0x5a, 0xee, 0xc0, 0xf6, 0xcd, 0x5e, 0x1a, 0xcd, 0xaf, 0x1c, - 0x55, 0xc1, 0xd3, 0xb7, 0x48, 0x4f, 0x4b, 0xd5, 0x7b, 0x5f, 0x5e, 0xbd, 0x81, 0x6f, 0x5a, 0xd7, - 0x4c, 0xdb, 0xf7, 0x7c, 0x37, 0x59, 0x49, 0x7d, 0x2f, 0x54, 0x97, 0x0c, 0xc3, 0xb1, 0xd1, 0x13, - 0x30, 0x4e, 0x6c, 0x6d, 0xc3, 0x22, 0xc6, 0xbc, 0x72, 0x45, 0xb9, 0x5a, 0x6b, 0xcc, 0xfc, 0x70, - 0x7f, 0xe1, 0x6d, 0x07, 0xfb, 0x0b, 0xe3, 0xcb, 0x3c, 0x19, 0x07, 0xf9, 0xea, 0x57, 0x2b, 0x30, - 0xc6, 0x2a, 0x79, 0xe8, 0x37, 0x15, 0x38, 0xb3, 0x3d, 0xd8, 0x20, 0xae, 0x4d, 0x7c, 0xe2, 0xb5, - 0x34, 0x6f, 0x6b, 0xc3, 0xd1, 0x5c, 0x0e, 0xa2, 0xfe, 0xde, 0x9b, 0x8b, 0x05, 0x96, 0xe0, 0xe2, - 0xad, 0x34, 0xbc, 0xc6, 0x23, 0x07, 0xfb, 0x0b, 0x67, 0x32, 0x32, 0x70, 0x16, 0x76, 0x74, 0x0f, - 0x26, 0xed, 0xae, 0x69, 0xef, 0xb6, 0xed, 0xae, 0x4b, 0x3c, 0x6f, 0xbe, 0xc2, 0x5a, 0xb3, 0x54, - 0xa8, 0x35, 0xab, 0x12, 0xa0, 0xc6, 0xec, 0xc1, 0xfe, 0xc2, 0xa4, 0x9c, 0x82, 0x63, 0x88, 0xd4, - 0x2f, 0x2a, 0x30, 0xb3, 0x64, 0xf4, 0x4c, 0xcf, 0x33, 0x1d, 0x7b, 0xcd, 0x1a, 0x74, 0x4d, 0x1b, - 0x5d, 0x81, 0x51, 0x5b, 0xeb, 0x11, 0x36, 0x24, 0x13, 0x8d, 0x49, 0x31, 0xaa, 0xa3, 0xab, 0x5a, - 0x8f, 0x60, 0x96, 0x83, 0x3e, 0x06, 0x63, 0xba, 0x63, 0x6f, 0x9a, 0x5d, 0xd1, 0xd0, 0x5f, 0x5a, - 0xe4, 0x33, 0xb9, 0x28, 0xcf, 0x24, 0x6b, 0x9f, 0x58, 0x01, 0x8b, 0x58, 0xbb, 0xb7, 0xbc, 0xeb, - 0x13, 0x9b, 0xa2, 0x69, 0xc0, 0xc1, 0xfe, 0xc2, 0x58, 0x93, 0x01, 0xc0, 0x02, 0x90, 0x7a, 0x1d, - 0x6a, 0x4b, 0x16, 0x71, 0x7d, 0xd3, 0xee, 0xa2, 0xa7, 0x61, 0x9a, 0xf4, 0x34, 0xd3, 0xc2, 0x44, - 0x27, 0xe6, 0x0e, 0x71, 0xbd, 0x79, 0xe5, 0xca, 0xc8, 0xd5, 0x89, 0x06, 0x3a, 0xd8, 0x5f, 0x98, - 0x5e, 0x8e, 0xe5, 0xe0, 0x44, 0x49, 0xf5, 0x75, 0x05, 0xea, 0x4b, 0x03, 0xc3, 0xf4, 0x39, 0x7c, - 0xe4, 0x41, 0x5d, 0xa3, 0x9f, 0x6b, 0x8e, 0x65, 0xea, 0x7b, 0x62, 0x9a, 0x9f, 0x2f, 0x34, 0xb0, - 0x4b, 0x11, 0x9c, 0xc6, 0xcc, 0xc1, 0xfe, 0x42, 0x5d, 0x4a, 0xc0, 0x32, 0x16, 0x75, 0x0b, 0xe4, - 0x3c, 0xf4, 0x09, 0x98, 0xe4, 0xbd, 0x5c, 0xd1, 0xfa, 0x98, 0x6c, 0x8a, 0x46, 0xbc, 0x43, 0x1a, - 0xb4, 0x00, 0xd3, 0xe2, 0x9d, 0x8d, 0x57, 0x88, 0xee, 0x63, 0xb2, 0x49, 0x5c, 0x62, 0xeb, 0x84, - 0xcf, 0x5f, 0x53, 0xaa, 0x8c, 0x63, 0xa0, 0xd4, 0x9f, 0x29, 0x30, 0xbb, 0xb4, 0xa3, 0x99, 0x96, - 0xb6, 0x61, 0x5a, 0xa6, 0xbf, 0xf7, 0x92, 0x63, 0x93, 0x21, 0x26, 0x70, 0x1d, 0x1e, 0x19, 0xd8, - 0x1a, 0xaf, 0x67, 0x91, 0x15, 0x3e, 0x65, 0x77, 0xf7, 0xfa, 0x84, 0x2e, 0x3d, 0x3a, 0xd4, 0x8f, - 0x1d, 0xec, 0x2f, 0x3c, 0xb2, 0x9e, 0x5d, 0x04, 0xe7, 0xd5, 0x45, 0x18, 0xce, 0x4b, 0x59, 0x2f, - 0x38, 0xd6, 0xa0, 0x27, 0xa0, 0x8e, 0x30, 0xa8, 0x17, 0x0e, 0xf6, 0x17, 0xce, 0xaf, 0x67, 0x96, - 0xc0, 0x39, 0x35, 0xd5, 0x1f, 0x55, 0x60, 0xb2, 0xa1, 0xe9, 0xdb, 0x83, 0x7e, 0x63, 0xa0, 0x6f, - 0x13, 0x1f, 0x7d, 0x1a, 0x6a, 0x94, 0x72, 0x19, 0x9a, 0xaf, 0x89, 0x91, 0xfc, 0xe5, 0xdc, 0xe5, - 0xc7, 0x66, 0x91, 0x96, 0x8e, 0xc6, 0x76, 0x85, 0xf8, 0x5a, 0x03, 0x89, 0x31, 0x81, 0x28, 0x0d, - 0x87, 0x50, 0x51, 0x17, 0x46, 0xbd, 0x3e, 0xd1, 0xc5, 0xe2, 0x5e, 0x2e, 0xb4, 0x58, 0xe4, 0x26, - 0x77, 0xfa, 0x44, 0x8f, 0xa6, 0x81, 0x7e, 0x61, 0x86, 0x00, 0x39, 0x30, 0xe6, 0xf9, 0x9a, 0x3f, - 0xa0, 0xe3, 0x43, 0x51, 0xdd, 0x28, 0x8f, 0x8a, 0x81, 0x6b, 0x4c, 0x0b, 0x64, 0x63, 0xfc, 0x1b, - 0x0b, 0x34, 0xea, 0x4f, 0x15, 0x98, 0x95, 0x8b, 0xdf, 0x36, 0x3d, 0x1f, 0xfd, 0x6a, 0x6a, 0x40, - 0x17, 0x87, 0x1b, 0x50, 0x5a, 0x9b, 0x0d, 0xe7, 0xac, 0x40, 0x57, 0x0b, 0x52, 0xa4, 0xc1, 0xdc, - 0x84, 0xaa, 0xe9, 0x93, 0x1e, 0x5f, 0x58, 0x45, 0x69, 0x9a, 0xdc, 0xe6, 0xc6, 0x94, 0xc0, 0x56, - 0x6d, 0x53, 0xb8, 0x98, 0x83, 0x57, 0x3f, 0x0d, 0x67, 0xe5, 0x52, 0x6b, 0xae, 0xb3, 0x63, 0x1a, - 0xc4, 0xa5, 0x9b, 0xc1, 0xdf, 0xeb, 0xa7, 0x36, 0x03, 0x5d, 0x5c, 0x98, 0xe5, 0xa0, 0x77, 0xc1, - 0x98, 0x4b, 0xba, 0xa6, 0x63, 0xb3, 0x09, 0x9f, 0x88, 0x06, 0x0f, 0xb3, 0x54, 0x2c, 0x72, 0xd5, - 0xff, 0x56, 0x89, 0x0f, 0x1e, 0x9d, 0x48, 0x74, 0x0f, 0x6a, 0x7d, 0x81, 0x4a, 0x0c, 0x5e, 0xbb, - 0x74, 0x0f, 0x83, 0xb6, 0x47, 0xe3, 0x1a, 0xa4, 0xe0, 0x10, 0x19, 0x32, 0x61, 0x3a, 0xf8, 0xdf, - 0x2c, 0x41, 0x8b, 0x19, 0x4d, 0x5d, 0x8b, 0x01, 0xc2, 0x09, 0xc0, 0xe8, 0x2e, 0x4c, 0x78, 0x44, - 0x77, 0x09, 0xa5, 0x4b, 0x62, 0xa5, 0x66, 0x12, 0xaf, 0x4e, 0x50, 0x48, 0x10, 0xaf, 0x39, 0xd1, - 0xfc, 0x89, 0x30, 0x03, 0x47, 0x80, 0xd0, 0x45, 0x18, 0xf5, 0x08, 0x31, 0xe6, 0x47, 0xd9, 0xa0, - 0xd7, 0xd8, 0xd6, 0x20, 0xc4, 0xc0, 0x2c, 0x55, 0xfd, 0xce, 0x28, 0xa0, 0xf4, 0xc2, 0x96, 0x7b, - 0xcd, 0x53, 0xc4, 0xa0, 0x97, 0xe9, 0xb5, 0xd8, 0x23, 0x09, 0xc0, 0xe8, 0x35, 0x98, 0xb2, 0x34, - 0xcf, 0xbf, 0xd3, 0xa7, 0xec, 0x47, 0xb0, 0x3a, 0xea, 0xef, 0x6d, 0x14, 0x9a, 0xde, 0xdb, 0x32, - 0xa4, 0xc6, 0xdc, 0xc1, 0xfe, 0xc2, 0x54, 0x2c, 0x09, 0xc7, 0x71, 0xa1, 0x6d, 0x98, 0xa0, 0x09, - 0xcb, 0xae, 0xeb, 0xb8, 0x62, 0xc8, 0x9f, 0x2b, 0x8c, 0x98, 0x41, 0x69, 0x4c, 0xd1, 0x99, 0x08, - 0x3f, 0x71, 0x04, 0x1f, 0x7d, 0x14, 0x90, 0xb3, 0xe1, 0x11, 0x77, 0x87, 0x18, 0x37, 0x38, 0xb7, - 0x45, 0xbb, 0x4b, 0xe7, 0x65, 0xa4, 0x71, 0x41, 0xcc, 0x21, 0xba, 0x93, 0x2a, 0x81, 0x33, 0x6a, - 0xa1, 0x6d, 0x40, 0x21, 0xc7, 0x16, 0x4e, 0xfb, 0x7c, 0x75, 0xf8, 0x45, 0x73, 0x9e, 0x22, 0xbb, - 0x91, 0x02, 0x81, 0x33, 0xc0, 0xaa, 0x7f, 0x5c, 0x81, 0x3a, 0x5f, 0x24, 0xcb, 0xb6, 0xef, 0xee, - 0x9d, 0xc2, 0xd1, 0xb0, 0x19, 0x3b, 0x1a, 0x5a, 0x25, 0xb6, 0x3a, 0x6b, 0x71, 0xee, 0xc9, 0x60, - 0x27, 0x4e, 0x86, 0xeb, 0xa5, 0x31, 0x1d, 0x7e, 0x30, 0xfc, 0x99, 0x02, 0x33, 0x52, 0xe9, 0x53, - 0x38, 0x17, 0x48, 0xfc, 0x5c, 0x78, 0xbe, 0x6c, 0x07, 0x73, 0x8e, 0x05, 0x3d, 0xd6, 0x2f, 0x46, - 0xb2, 0xdf, 0x0b, 0xb0, 0xc1, 0x68, 0xca, 0x6a, 0xc4, 0x24, 0x85, 0xb3, 0xde, 0x08, 0x73, 0xb0, - 0x54, 0x2a, 0x24, 0x56, 0x95, 0x4c, 0x62, 0xf5, 0x97, 0x23, 0x30, 0x97, 0x1a, 0xeb, 0x34, 0x01, - 0x51, 0xde, 0x28, 0x02, 0x52, 0x79, 0x43, 0x08, 0xc8, 0x48, 0x21, 0x02, 0x72, 0x15, 0x6a, 0x74, - 0x4c, 0xd9, 0xdc, 0xf0, 0xa3, 0x61, 0x92, 0xae, 0xa0, 0x8e, 0x48, 0xc3, 0x61, 0x2e, 0x72, 0x01, - 0xf5, 0xcc, 0x2e, 0xaf, 0xd6, 0xf1, 0x35, 0xd7, 0xbf, 0x6b, 0xf6, 0x88, 0x20, 0x35, 0xff, 0xff, - 0x70, 0x2b, 0x95, 0xd6, 0xe0, 0x14, 0x67, 0x25, 0x05, 0x09, 0x67, 0x40, 0x57, 0xff, 0x48, 0x81, - 0x91, 0x26, 0x6e, 0xa3, 0x77, 0xc7, 0x58, 0xec, 0x47, 0x64, 0x16, 0xfb, 0xc1, 0xfe, 0xc2, 0x78, - 0x13, 0xb7, 0x25, 0x6e, 0xfb, 0x6f, 0x2b, 0x30, 0xa7, 0x3b, 0xb6, 0xaf, 0xd1, 0x56, 0x60, 0x7e, - 0x1e, 0x05, 0xeb, 0xbe, 0x18, 0x77, 0xd9, 0x4c, 0x40, 0x6b, 0x3c, 0x2a, 0x5a, 0x30, 0x97, 0xcc, - 0xf1, 0x70, 0x1a, 0xb5, 0xba, 0x0e, 0x13, 0x4d, 0xcb, 0x19, 0x18, 0x6d, 0x7b, 0xd3, 0x39, 0x41, - 0x06, 0xe9, 0xdf, 0x2b, 0x30, 0xc9, 0xe0, 0xae, 0xb9, 0xce, 0xa6, 0x69, 0x91, 0xb7, 0x08, 0xab, - 0x2e, 0x37, 0x39, 0x8f, 0x20, 0x33, 0xce, 0x59, 0x2e, 0xf8, 0x56, 0xe1, 0x9c, 0xe5, 0x36, 0xe7, - 0x90, 0xc8, 0xaf, 0x8f, 0xc7, 0xbb, 0xc6, 0x88, 0xe4, 0x55, 0xa8, 0xe9, 0x5a, 0x63, 0x60, 0x1b, - 0x56, 0xb8, 0x32, 0x68, 0x33, 0x9b, 0x4b, 0x3c, 0x0d, 0x87, 0xb9, 0xe8, 0x35, 0x80, 0x48, 0xa5, - 0x21, 0x26, 0xe2, 0x46, 0x49, 0x3d, 0x4a, 0x87, 0xf8, 0xbe, 0x69, 0x77, 0xbd, 0x68, 0xf6, 0xa3, - 0x3c, 0x2c, 0xa1, 0x43, 0xbf, 0x06, 0x53, 0x62, 0x98, 0xdb, 0x3d, 0xad, 0x2b, 0x04, 0xcd, 0xa2, - 0x63, 0xb5, 0x22, 0x41, 0x6a, 0x9c, 0x13, 0x98, 0xa7, 0xe4, 0x54, 0x0f, 0xc7, 0xd1, 0xa1, 0xfb, - 0x30, 0xd9, 0x93, 0xa5, 0xe7, 0xd1, 0x12, 0x87, 0x99, 0x24, 0x4a, 0x37, 0xce, 0x0a, 0xec, 0x93, - 0x31, 0xc1, 0x3b, 0x86, 0x2b, 0x43, 0x02, 0xa8, 0x3e, 0x2c, 0x09, 0x60, 0x13, 0xc6, 0xf9, 0x1e, - 0xf7, 0xe6, 0xc7, 0x58, 0x0f, 0x3f, 0x5c, 0xa8, 0x87, 0x9c, 0x5e, 0x44, 0x8a, 0x3a, 0xfe, 0xed, - 0xe1, 0x00, 0x38, 0xba, 0x07, 0x93, 0x94, 0xbc, 0x77, 0x88, 0x45, 0x74, 0xdf, 0x71, 0xe7, 0xc7, - 0x4b, 0xe8, 0xc1, 0x3a, 0x12, 0x20, 0xae, 0x47, 0x91, 0x53, 0x70, 0x0c, 0x51, 0x48, 0x04, 0x6b, - 0xb9, 0x44, 0x70, 0x07, 0xea, 0x3b, 0x92, 0x42, 0x63, 0x82, 0x0d, 0xc3, 0x47, 0x0a, 0xb5, 0x2c, - 0x52, 0x6f, 0x34, 0xce, 0x08, 0x4c, 0x75, 0x59, 0x15, 0x22, 0x23, 0x52, 0xf7, 0x6b, 0x30, 0xd7, - 0xb4, 0x06, 0x9e, 0x4f, 0xdc, 0x25, 0xa1, 0x6b, 0x26, 0x2e, 0x7a, 0x5d, 0x81, 0xf3, 0xec, 0x6f, - 0xcb, 0xb9, 0x67, 0xb7, 0x88, 0xa5, 0xed, 0x2d, 0x6d, 0xd2, 0x12, 0x86, 0x71, 0x3c, 0x42, 0xd4, - 0x1a, 0x08, 0x8e, 0x82, 0xa9, 0x66, 0x3a, 0x99, 0x10, 0x71, 0x0e, 0x26, 0xf4, 0x15, 0x05, 0x1e, - 0xcd, 0xc8, 0x6a, 0x11, 0x8b, 0xf8, 0x44, 0x50, 0x82, 0xe3, 0xb6, 0xe3, 0xd2, 0xc1, 0xfe, 0xc2, - 0xa3, 0x9d, 0x3c, 0xa0, 0x38, 0x1f, 0x1f, 0x3d, 0x65, 0x2f, 0x64, 0xe4, 0x5e, 0xd7, 0x4c, 0x6b, - 0xe0, 0x12, 0xc1, 0x47, 0x1f, 0xb7, 0x39, 0x97, 0x0f, 0xf6, 0x17, 0x2e, 0x74, 0x72, 0xa1, 0xe2, - 0x43, 0x30, 0xa2, 0xcf, 0xc2, 0xb9, 0x30, 0x77, 0xdd, 0xb6, 0x09, 0x31, 0x88, 0xc1, 0x58, 0x94, - 0xd1, 0x42, 0x4d, 0x79, 0xf4, 0x60, 0x7f, 0xe1, 0x5c, 0x27, 0x0b, 0x20, 0xce, 0xc6, 0x83, 0xba, - 0x70, 0x29, 0xca, 0xf0, 0x4d, 0xcb, 0xbc, 0xcf, 0x20, 0xdd, 0xdd, 0x72, 0x89, 0xb7, 0xe5, 0x58, - 0x06, 0xa3, 0x17, 0x4a, 0xe3, 0xed, 0x07, 0xfb, 0x0b, 0x97, 0x3a, 0x87, 0x15, 0xc4, 0x87, 0xc3, - 0x41, 0x06, 0x4c, 0x7a, 0xba, 0x66, 0xb7, 0x6d, 0x9f, 0xb8, 0x3b, 0x9a, 0x35, 0x3f, 0x56, 0xa8, - 0x83, 0x7c, 0x8f, 0x4a, 0x70, 0x70, 0x0c, 0x2a, 0xfa, 0x10, 0xd4, 0xc8, 0x6e, 0x5f, 0xb3, 0x0d, - 0xc2, 0x09, 0xc3, 0x44, 0xe3, 0x22, 0x3d, 0x92, 0x96, 0x45, 0xda, 0x83, 0xfd, 0x85, 0xc9, 0xe0, - 0xff, 0x8a, 0x63, 0x10, 0x1c, 0x96, 0x46, 0x9f, 0x81, 0xb3, 0x3d, 0x6d, 0x77, 0xd5, 0x31, 0x08, - 0xa3, 0x73, 0x94, 0xec, 0xb1, 0x89, 0xa8, 0x15, 0x6a, 0xe7, 0xfc, 0xc1, 0xfe, 0xc2, 0xd9, 0x95, - 0x0c, 0x78, 0x38, 0x13, 0x0b, 0x9d, 0x86, 0x9e, 0xb6, 0x7b, 0xc3, 0xd5, 0x74, 0xb2, 0x39, 0xb0, - 0xee, 0x12, 0xb7, 0x67, 0xda, 0x9c, 0xad, 0x24, 0xba, 0x63, 0x1b, 0x94, 0x96, 0x28, 0x57, 0xab, - 0x7c, 0x1a, 0x56, 0x0e, 0x2b, 0x88, 0x0f, 0x87, 0x83, 0xde, 0x0f, 0x93, 0x66, 0xd7, 0x76, 0x5c, - 0x72, 0x57, 0x33, 0x6d, 0xdf, 0x9b, 0x07, 0xa6, 0x74, 0x65, 0xc3, 0xda, 0x96, 0xd2, 0x71, 0xac, - 0x94, 0xfa, 0xdf, 0x15, 0xa8, 0x0b, 0x02, 0xc3, 0xf8, 0x41, 0x1d, 0xaa, 0x3a, 0xe5, 0x06, 0x04, - 0x21, 0x79, 0xae, 0x38, 0xdb, 0x41, 0xc1, 0x45, 0x3c, 0x07, 0x4b, 0xc2, 0x1c, 0x36, 0xba, 0x97, - 0xc1, 0x34, 0x34, 0x4b, 0x32, 0x0d, 0x0c, 0xdd, 0x11, 0x0c, 0x83, 0xba, 0x3f, 0x02, 0x13, 0x4d, - 0xc7, 0x36, 0x4c, 0x26, 0x6c, 0x3c, 0x19, 0xe3, 0x7d, 0x2f, 0xc9, 0x64, 0xff, 0xc1, 0xfe, 0xc2, - 0x54, 0x58, 0x50, 0x3a, 0x07, 0x9e, 0x0a, 0x25, 0x73, 0xce, 0x0c, 0xbf, 0x3d, 0x2e, 0x51, 0x3f, - 0xd8, 0x5f, 0x98, 0x09, 0xab, 0xc5, 0x85, 0x6c, 0xb4, 0x03, 0x88, 0xca, 0x4c, 0x77, 0x5d, 0xcd, - 0xf6, 0x38, 0x58, 0xba, 0x08, 0x47, 0x8e, 0x2d, 0xb0, 0x84, 0x22, 0xd5, 0xed, 0x14, 0x34, 0x9c, - 0x81, 0x01, 0xbd, 0x02, 0xd3, 0x34, 0x75, 0xbd, 0x6f, 0x68, 0x3e, 0x91, 0x28, 0xd0, 0xb1, 0x84, - 0x24, 0x81, 0x73, 0xfa, 0x76, 0x0c, 0x12, 0x4e, 0x40, 0xe6, 0xb2, 0x82, 0xe6, 0x39, 0x36, 0x23, - 0x2e, 0x31, 0x59, 0x81, 0xa6, 0x62, 0x91, 0x8b, 0x9e, 0x80, 0xf1, 0x1e, 0xf1, 0x3c, 0xad, 0x4b, - 0x18, 0xb5, 0x98, 0x88, 0x98, 0x82, 0x15, 0x9e, 0x8c, 0x83, 0x7c, 0xf4, 0x1e, 0xa8, 0xea, 0x8e, - 0x41, 0xbc, 0xf9, 0x71, 0xb6, 0x9e, 0xcf, 0xb3, 0xc5, 0x44, 0x13, 0x1e, 0xec, 0x2f, 0x4c, 0x30, - 0x01, 0x94, 0x7e, 0x61, 0x5e, 0x48, 0xfd, 0x16, 0x65, 0xd4, 0x13, 0x12, 0x4f, 0xde, 0x8d, 0x08, - 0x9f, 0x56, 0x26, 0xa3, 0x9d, 0x9e, 0x3a, 0x55, 0xfd, 0x8d, 0x0a, 0x9c, 0xa5, 0x2d, 0x74, 0x1d, - 0xcb, 0xa2, 0xa7, 0x57, 0xdf, 0x72, 0xf6, 0x7a, 0xc4, 0x3e, 0x8d, 0x9b, 0x8d, 0x80, 0xcd, 0xa9, - 0xe4, 0xb2, 0x39, 0xbd, 0xd4, 0x38, 0x8c, 0x14, 0x19, 0x87, 0x70, 0xb9, 0x1c, 0x31, 0x16, 0xbf, - 0x50, 0x60, 0x3e, 0x6b, 0x2c, 0x4e, 0x41, 0xbc, 0xb2, 0xe3, 0xe2, 0x55, 0xbb, 0xb0, 0x20, 0x9e, - 0x6c, 0x7b, 0x8e, 0x98, 0xf5, 0x8b, 0x0a, 0x9c, 0x8f, 0x8a, 0xb7, 0x6d, 0xcf, 0xd7, 0x2c, 0x8b, - 0xeb, 0x3c, 0x1e, 0xfe, 0xc4, 0xbf, 0x1a, 0x93, 0x93, 0xef, 0x94, 0xec, 0xab, 0xdc, 0xf8, 0x5c, - 0x15, 0xe6, 0x5e, 0x42, 0x85, 0xf9, 0xb1, 0x93, 0x44, 0x7a, 0xb8, 0x36, 0xf3, 0xaf, 0x14, 0xb8, - 0x90, 0x5d, 0xf1, 0x14, 0xd6, 0x55, 0x3f, 0xbe, 0xae, 0x6e, 0x9d, 0x60, 0xb7, 0x73, 0x56, 0xd6, - 0xf7, 0x2b, 0x79, 0xdd, 0x65, 0xa2, 0xfc, 0x26, 0xcc, 0x50, 0xf9, 0xca, 0xf3, 0x85, 0xd6, 0xed, - 0x78, 0x37, 0xd0, 0x81, 0x6e, 0x6b, 0x06, 0xc7, 0x61, 0xe0, 0x24, 0x50, 0xb4, 0x0a, 0xe3, 0x54, - 0xa6, 0xa2, 0xf0, 0x2b, 0xc3, 0xc3, 0x0f, 0xe9, 0x7e, 0x87, 0xd7, 0xc5, 0x01, 0x10, 0xf4, 0xab, - 0x30, 0x65, 0x84, 0x9b, 0xea, 0x88, 0xab, 0xa7, 0x24, 0x54, 0xa6, 0x20, 0x6d, 0xc9, 0xb5, 0x71, - 0x1c, 0x98, 0xfa, 0x7f, 0x14, 0xb8, 0x78, 0xd8, 0xe2, 0x42, 0x2e, 0x80, 0x1e, 0x1c, 0xe4, 0xdc, - 0x02, 0xa1, 0x30, 0x33, 0x14, 0x80, 0x89, 0x36, 0x69, 0x98, 0xe4, 0x61, 0x09, 0x4b, 0xc6, 0xf5, - 0x56, 0xe5, 0x21, 0x5d, 0x6f, 0xa9, 0xff, 0x43, 0x91, 0xc9, 0x91, 0x3c, 0xb9, 0x6f, 0x39, 0x72, - 0x24, 0x37, 0x3e, 0x57, 0x81, 0xf7, 0xa7, 0x15, 0xb8, 0x92, 0x5d, 0x45, 0x3a, 0x81, 0x9f, 0x87, - 0xb1, 0x3e, 0x37, 0x14, 0x19, 0x61, 0x27, 0xe4, 0x55, 0x4a, 0x5c, 0xb8, 0x15, 0xc7, 0x83, 0xfd, - 0x85, 0x0b, 0x59, 0xd4, 0x5e, 0xd8, 0x7f, 0x88, 0x7a, 0xc8, 0x4c, 0x68, 0x30, 0x38, 0xa7, 0xf5, - 0xbe, 0x21, 0xe9, 0x8b, 0xb6, 0x41, 0xac, 0xa1, 0x75, 0x16, 0xaf, 0x2b, 0x30, 0x1d, 0x5b, 0xd3, - 0xde, 0x7c, 0x95, 0xad, 0xd2, 0x62, 0x37, 0x0c, 0xb1, 0xdd, 0x12, 0x1d, 0xe0, 0xb1, 0x64, 0x0f, - 0x27, 0x30, 0x26, 0x48, 0xad, 0x3c, 0xac, 0x6f, 0x3d, 0x52, 0x2b, 0xb7, 0x3e, 0x87, 0xd4, 0x7e, - 0xb3, 0x92, 0xd7, 0x5d, 0x46, 0x6a, 0x77, 0x61, 0x22, 0x30, 0xc6, 0x0b, 0x48, 0xc6, 0x8d, 0xd2, - 0x8d, 0xe2, 0xf0, 0xa2, 0xdb, 0xf4, 0x20, 0xc5, 0xc3, 0x11, 0x32, 0xf4, 0x05, 0x05, 0x20, 0x9a, - 0x1a, 0xb1, 0xb1, 0xd6, 0x4f, 0x70, 0x40, 0x24, 0xfe, 0x66, 0x9a, 0xee, 0x6b, 0x69, 0x5d, 0x48, - 0x88, 0xd5, 0xdf, 0xad, 0x00, 0x4a, 0x37, 0x9e, 0x32, 0x9e, 0xdb, 0xa6, 0x6d, 0x24, 0x19, 0xf0, - 0x5b, 0xa6, 0x6d, 0x60, 0x96, 0x33, 0x04, 0x6b, 0xfa, 0x2c, 0xcc, 0x74, 0x2d, 0x67, 0x43, 0xb3, - 0xac, 0x3d, 0x61, 0xe1, 0xc7, 0x76, 0x69, 0xad, 0x71, 0x86, 0x1e, 0x4f, 0x37, 0xe2, 0x59, 0x38, - 0x59, 0x16, 0xf5, 0x61, 0xd6, 0xa5, 0x82, 0xb2, 0x6e, 0x5a, 0x4c, 0x54, 0x71, 0x06, 0x7e, 0x41, - 0x4d, 0xcc, 0xd9, 0x83, 0xfd, 0x85, 0x59, 0x9c, 0x80, 0x85, 0x53, 0xd0, 0xd1, 0xe3, 0x30, 0xde, - 0x77, 0xcd, 0x9e, 0xe6, 0xee, 0x31, 0x61, 0xa8, 0xd6, 0xa8, 0xd3, 0x73, 0x6e, 0x8d, 0x27, 0xe1, - 0x20, 0x4f, 0xfd, 0x82, 0x02, 0xe3, 0x4d, 0xc7, 0x25, 0xad, 0xd5, 0x0e, 0xba, 0x0f, 0x75, 0xc9, - 0xa2, 0x54, 0x6c, 0x99, 0xa2, 0x4b, 0x88, 0x81, 0x5c, 0x8a, 0xc0, 0x05, 0x56, 0x6b, 0x61, 0x02, - 0x96, 0x91, 0xa9, 0x6b, 0x74, 0xe6, 0x92, 0x75, 0xd0, 0xd3, 0x30, 0xda, 0x73, 0x8c, 0x40, 0x74, - 0x7a, 0x57, 0x30, 0x2f, 0x2b, 0x8e, 0x41, 0x45, 0xe4, 0xf3, 0xe9, 0x1a, 0x4c, 0xf7, 0xc2, 0xea, - 0xa8, 0xdf, 0x50, 0x60, 0x84, 0xf6, 0x4a, 0x85, 0x31, 0xc3, 0xe9, 0x69, 0xa6, 0x2d, 0xa0, 0x30, - 0x03, 0xc0, 0x16, 0x4b, 0xc1, 0x22, 0x07, 0xbd, 0x0a, 0x13, 0xc1, 0x09, 0x55, 0xee, 0x4e, 0xb8, - 0xb5, 0xda, 0x09, 0x0d, 0x68, 0xc2, 0x3d, 0x13, 0xa4, 0x78, 0x38, 0xc2, 0xa2, 0x6a, 0x30, 0xd7, - 0x5a, 0xed, 0xb4, 0x6d, 0xdd, 0x1a, 0x18, 0x64, 0x79, 0x97, 0xfd, 0xd0, 0x49, 0x33, 0x79, 0x8a, - 0xb0, 0x3a, 0x64, 0x93, 0x26, 0x0a, 0xe1, 0x20, 0x8f, 0x16, 0x23, 0xbc, 0x86, 0xb0, 0x98, 0x63, - 0xc5, 0x04, 0x10, 0x1c, 0xe4, 0xa9, 0x7f, 0x5e, 0x81, 0xba, 0xd4, 0x20, 0xd4, 0x83, 0x71, 0xde, - 0xdf, 0xc0, 0x70, 0xe5, 0x7a, 0xd1, 0x3e, 0xc6, 0x9b, 0xcd, 0xd1, 0xf3, 0x21, 0xf5, 0x70, 0x80, - 0x43, 0x5e, 0x81, 0x95, 0xfc, 0x15, 0x88, 0x16, 0x01, 0xb8, 0x5d, 0x0e, 0xbb, 0x75, 0xe5, 0x47, - 0x1f, 0xdb, 0xe4, 0x9d, 0x30, 0x15, 0x4b, 0x25, 0xd0, 0x45, 0xb1, 0x57, 0x25, 0xd3, 0x1d, 0x69, - 0x9f, 0x76, 0xa1, 0x7a, 0xdf, 0xb1, 0x89, 0x27, 0xae, 0x23, 0x4e, 0xaa, 0x87, 0x13, 0x94, 0x18, - 0xbf, 0x44, 0x01, 0x63, 0x0e, 0x5f, 0xfd, 0x6d, 0x05, 0xa0, 0xa5, 0xf9, 0x1a, 0xd7, 0x9d, 0x0f, - 0x61, 0xf6, 0x78, 0x31, 0x46, 0x63, 0x6a, 0xa9, 0x6b, 0xce, 0x51, 0xcf, 0xbc, 0x1f, 0xf4, 0x3f, - 0x64, 0x60, 0x38, 0xf4, 0x8e, 0x79, 0x9f, 0x60, 0x96, 0x8f, 0xde, 0x0d, 0x13, 0xc4, 0xd6, 0xdd, - 0xbd, 0xbe, 0x2f, 0xac, 0x97, 0x6a, 0xfc, 0x6a, 0x7c, 0x39, 0x48, 0xc4, 0x51, 0xbe, 0xfa, 0x24, - 0xc4, 0xd9, 0xd0, 0xa3, 0x5b, 0xa9, 0xee, 0x40, 0x6d, 0xd9, 0x36, 0xfa, 0x8e, 0x69, 0xfb, 0x43, - 0xf4, 0xe9, 0x12, 0x8c, 0x0c, 0x5c, 0x4b, 0x74, 0xa9, 0x2e, 0x0a, 0x8c, 0xac, 0xe3, 0xdb, 0x98, - 0xa6, 0xa3, 0x27, 0x60, 0xbc, 0x3f, 0x70, 0xfb, 0x8e, 0x17, 0xf4, 0x2b, 0xe4, 0xb7, 0xd7, 0x78, - 0x32, 0x0e, 0xf2, 0xd5, 0x07, 0x0a, 0xcc, 0x2e, 0xef, 0xf6, 0x4d, 0x97, 0x99, 0x60, 0x12, 0x97, - 0xb2, 0x92, 0xb4, 0xfe, 0x0e, 0xff, 0x2b, 0xda, 0x10, 0xd6, 0x17, 0x25, 0x70, 0x90, 0x8f, 0x36, - 0x61, 0x9a, 0xb0, 0xea, 0xec, 0xb8, 0xd0, 0xc2, 0x2b, 0x80, 0xe3, 0xa8, 0x99, 0xb8, 0x89, 0x6f, - 0x0c, 0x0a, 0x4e, 0x40, 0x45, 0x1d, 0x98, 0xd6, 0x2d, 0xcd, 0xf3, 0xcc, 0x4d, 0x53, 0x8f, 0x2c, - 0x0d, 0x26, 0x1a, 0xef, 0xa6, 0x75, 0x9b, 0xb1, 0x9c, 0x07, 0xfb, 0x0b, 0xe7, 0x44, 0x3b, 0xe3, - 0x19, 0x38, 0x01, 0x42, 0xfd, 0x5a, 0x05, 0xa6, 0x96, 0x77, 0xfb, 0x8e, 0x37, 0x70, 0x09, 0x2b, - 0x7a, 0x0a, 0x5c, 0xf0, 0x13, 0x30, 0xbe, 0xa5, 0xd9, 0x86, 0x45, 0x5c, 0x31, 0x7d, 0xe1, 0xd8, - 0xde, 0xe4, 0xc9, 0x38, 0xc8, 0x47, 0x9f, 0x01, 0xf0, 0xf4, 0x2d, 0x62, 0x0c, 0xd8, 0xb1, 0xc0, - 0x05, 0xa1, 0xdb, 0x85, 0x36, 0x56, 0xac, 0x93, 0x9d, 0x10, 0xa6, 0xd8, 0xef, 0xe1, 0x37, 0x96, - 0xf0, 0xa9, 0x7f, 0xae, 0xc0, 0x5c, 0xac, 0xde, 0x29, 0xf0, 0x76, 0xdd, 0x38, 0x6f, 0xd7, 0x28, - 0xdf, 0xd9, 0x1c, 0x96, 0xee, 0xcb, 0x15, 0x78, 0x24, 0x67, 0x50, 0x52, 0xf7, 0x91, 0xca, 0x69, - 0xdd, 0x47, 0xee, 0x40, 0xdd, 0x77, 0x2c, 0x61, 0x13, 0x13, 0x8c, 0x41, 0xb1, 0xdb, 0xc6, 0xbb, - 0x21, 0x9c, 0xe8, 0xb6, 0x31, 0x4a, 0xf3, 0xb0, 0x8c, 0x48, 0xfd, 0x43, 0x05, 0x26, 0x42, 0x39, - 0x72, 0x08, 0xd3, 0x90, 0x53, 0xb4, 0x42, 0xbd, 0x0a, 0x35, 0xc3, 0xf4, 0x64, 0xbe, 0x8f, 0x59, - 0x24, 0xb4, 0x44, 0x1a, 0x0e, 0x73, 0xd5, 0x7f, 0x55, 0x81, 0xf3, 0x21, 0xec, 0x80, 0x05, 0xa5, - 0x62, 0xef, 0x30, 0x7c, 0xe8, 0x45, 0x41, 0x71, 0xa5, 0x33, 0x42, 0xa2, 0xb6, 0x8f, 0x27, 0xc9, - 0x69, 0x3d, 0x8b, 0x94, 0xa2, 0x55, 0xa8, 0x7a, 0x14, 0x9f, 0x60, 0x30, 0x8f, 0x39, 0x1a, 0xec, - 0xa4, 0x63, 0xed, 0xc5, 0x1c, 0x0c, 0x7a, 0x4d, 0x96, 0x2b, 0xb8, 0x90, 0xf7, 0xd1, 0xe3, 0x2d, - 0x06, 0xf6, 0xf0, 0x69, 0x91, 0xf6, 0xc4, 0x08, 0x46, 0x24, 0xc3, 0x50, 0x37, 0x4b, 0xb4, 0x50, - 0xff, 0xad, 0x02, 0x33, 0x61, 0xe3, 0x84, 0x72, 0xe4, 0x24, 0xf8, 0xf9, 0x21, 0xc7, 0x72, 0x3d, - 0xd4, 0x23, 0x16, 0x1a, 0xcc, 0x3c, 0x1d, 0xa1, 0x07, 0xb5, 0x1b, 0x62, 0xb0, 0xd0, 0x05, 0xa8, - 0x98, 0x41, 0x5f, 0x40, 0x94, 0xaf, 0xb4, 0x5b, 0xb8, 0x62, 0x1a, 0xe1, 0x09, 0x5c, 0xc9, 0x3d, - 0x81, 0xa5, 0x23, 0x72, 0xe4, 0xf0, 0x23, 0x52, 0xfd, 0x47, 0x0a, 0x9c, 0x0d, 0xb0, 0x06, 0x63, - 0xdd, 0x12, 0x8a, 0xf9, 0x23, 0xce, 0xf9, 0xa3, 0xc7, 0xf3, 0x0e, 0x8c, 0x32, 0x5a, 0x5c, 0x48, - 0x61, 0x1f, 0x02, 0xa4, 0xcd, 0xc1, 0x0c, 0x90, 0xfa, 0x3d, 0x05, 0xea, 0x37, 0xcd, 0x0d, 0xe2, - 0xf2, 0x6b, 0x46, 0xc6, 0xf3, 0xc6, 0x5e, 0x5c, 0xd5, 0xb3, 0x5e, 0x5b, 0xa1, 0x3d, 0x98, 0x10, - 0x67, 0x47, 0x68, 0xe5, 0x56, 0xec, 0x5d, 0x95, 0x84, 0x5b, 0xd0, 0x64, 0xd9, 0xa6, 0x3c, 0x40, - 0x81, 0x23, 0x6c, 0xea, 0x6b, 0x70, 0x26, 0xa3, 0x12, 0x5a, 0x60, 0xdb, 0xd1, 0xf5, 0xc5, 0xf0, - 0x06, 0xfb, 0xcb, 0xf5, 0x31, 0x4f, 0x47, 0x8f, 0xc2, 0x08, 0xb1, 0x03, 0xeb, 0xce, 0x71, 0xca, - 0x40, 0x2d, 0xdb, 0x06, 0xa6, 0x69, 0x94, 0xec, 0x58, 0x4e, 0x8c, 0xcf, 0x60, 0x64, 0xe7, 0xb6, - 0x48, 0xc3, 0x61, 0xae, 0xfa, 0xcf, 0x46, 0xe1, 0xd2, 0x4d, 0xc7, 0x35, 0xef, 0x3b, 0xb6, 0xaf, - 0x59, 0x6b, 0x8e, 0x11, 0xd9, 0x6b, 0x08, 0x12, 0xf6, 0x05, 0x05, 0x1e, 0xd1, 0xfb, 0x83, 0xb6, - 0x6d, 0xfa, 0xa6, 0x16, 0x5c, 0xa3, 0xaf, 0x11, 0xd7, 0x74, 0x8a, 0x9a, 0x6d, 0xb0, 0x77, 0x3a, - 0xcd, 0xb5, 0xf5, 0x2c, 0x90, 0x38, 0x0f, 0x17, 0xb3, 0x1e, 0x31, 0x9c, 0x7b, 0x36, 0x6b, 0x5c, - 0xc7, 0x67, 0x6f, 0x87, 0xee, 0x47, 0x5d, 0x2c, 0x68, 0x3d, 0xd2, 0xca, 0x84, 0x88, 0x73, 0x30, - 0xa1, 0xcf, 0xc2, 0x39, 0x93, 0x37, 0x0e, 0x13, 0xcd, 0x30, 0x6d, 0xe2, 0x79, 0xcc, 0x86, 0xa2, - 0x8c, 0x79, 0x44, 0x3b, 0x0b, 0x20, 0xce, 0xc6, 0x83, 0x3e, 0x05, 0xe0, 0xed, 0xd9, 0xba, 0x18, - 0xff, 0x6a, 0x21, 0xac, 0x9c, 0x6b, 0x0a, 0xa1, 0x60, 0x09, 0x22, 0x95, 0x13, 0xf8, 0xd1, 0x6a, - 0xeb, 0xfc, 0x92, 0x53, 0xe1, 0x72, 0xc2, 0xdd, 0x20, 0x11, 0x47, 0xf9, 0xea, 0x3f, 0x51, 0x60, - 0x5c, 0x3c, 0xca, 0x43, 0xef, 0x4a, 0x88, 0xcb, 0x21, 0x09, 0x4b, 0x88, 0xcc, 0xf7, 0x99, 0x86, - 0x5a, 0xa8, 0x5a, 0xc4, 0xc1, 0x5b, 0x4c, 0xda, 0x12, 0x98, 0x23, 0xc5, 0x4d, 0x4c, 0x53, 0x1d, - 0x28, 0x73, 0x24, 0x6c, 0xea, 0xb7, 0x15, 0x98, 0x4b, 0xd5, 0x1a, 0xe2, 0x58, 0x38, 0xc5, 0x7b, - 0xd6, 0x9f, 0xd5, 0x81, 0xbd, 0xc0, 0x5c, 0x5a, 0x6b, 0x77, 0x88, 0xbb, 0x13, 0xee, 0xc2, 0xaf, - 0x28, 0x30, 0x1b, 0x59, 0x04, 0x88, 0x56, 0x28, 0x25, 0x0c, 0x48, 0x6f, 0x25, 0x80, 0x35, 0xe6, - 0x45, 0xc7, 0x67, 0x93, 0x39, 0x38, 0x85, 0x18, 0x7d, 0x59, 0x81, 0x59, 0x2d, 0xfe, 0x02, 0x33, - 0xa0, 0x9a, 0xc5, 0x9e, 0x17, 0x24, 0x9e, 0x73, 0x46, 0x8d, 0x49, 0x64, 0x78, 0x38, 0x85, 0x17, - 0xbd, 0x1f, 0x26, 0xb5, 0xbe, 0xb9, 0x34, 0x30, 0x4c, 0xca, 0x17, 0x04, 0xcf, 0xf6, 0x18, 0xb3, - 0xba, 0xb4, 0xd6, 0x0e, 0xd3, 0x71, 0xac, 0x54, 0xf8, 0xc6, 0x52, 0x0c, 0xe5, 0x68, 0xd9, 0x37, - 0x96, 0x62, 0x14, 0xa3, 0x37, 0x96, 0x62, 0xf0, 0x64, 0x2c, 0xe8, 0x93, 0xf0, 0x28, 0x3f, 0x70, - 0x1a, 0x9a, 0x67, 0xea, 0x4b, 0x03, 0x7f, 0x8b, 0xd8, 0x7e, 0x20, 0x10, 0x72, 0x75, 0x1b, 0xb3, - 0x25, 0x5b, 0xce, 0x2b, 0x84, 0xf3, 0xeb, 0x23, 0x07, 0xc0, 0x31, 0x0d, 0x5d, 0x74, 0x88, 0x9b, - 0x33, 0x15, 0xe3, 0xbe, 0xef, 0xb4, 0x5b, 0x4d, 0xd1, 0x1f, 0x46, 0x2b, 0xa2, 0x6f, 0x2c, 0xa1, - 0x40, 0xbf, 0xa5, 0xc0, 0x94, 0x58, 0xe8, 0x02, 0xe9, 0x38, 0x5b, 0x02, 0x9f, 0x2c, 0xbc, 0x20, - 0x13, 0xab, 0x7e, 0x11, 0xcb, 0xd0, 0xf9, 0x8b, 0x89, 0xd0, 0xc4, 0x35, 0x96, 0x87, 0xe3, 0x0d, - 0x41, 0x5f, 0x55, 0xe0, 0xac, 0x47, 0xdc, 0x1d, 0x53, 0x27, 0x4b, 0xba, 0xee, 0x0c, 0xec, 0x60, - 0x9e, 0x6b, 0x25, 0x9e, 0xbb, 0x75, 0x32, 0x00, 0x72, 0xc3, 0xaa, 0xac, 0x1c, 0x9c, 0xd9, 0x00, - 0xf4, 0xeb, 0x0a, 0xcc, 0xdc, 0xd3, 0x7c, 0x7d, 0xab, 0xa9, 0xe9, 0x5b, 0x4c, 0x43, 0xc3, 0x6d, - 0xa9, 0x8a, 0xee, 0x9c, 0x17, 0xe3, 0xb0, 0xb8, 0x5e, 0x39, 0x91, 0x88, 0x93, 0x18, 0x91, 0x0f, - 0x35, 0x97, 0xbc, 0x3a, 0x20, 0x1e, 0xb3, 0xb8, 0x52, 0x8e, 0xcf, 0x9a, 0x67, 0x4d, 0x1a, 0x16, - 0x10, 0x39, 0xb3, 0x11, 0x7c, 0xe1, 0x10, 0x13, 0xea, 0xc2, 0x25, 0xbe, 0x7c, 0x97, 0x6c, 0xc7, - 0xde, 0xeb, 0x39, 0x03, 0x2f, 0xb1, 0x05, 0xea, 0x6c, 0x0b, 0x30, 0xa3, 0xb2, 0xe5, 0xc3, 0x0a, - 0xe2, 0xc3, 0xe1, 0xa0, 0x8f, 0x43, 0x8d, 0xec, 0x10, 0xdb, 0xbf, 0x7b, 0xf7, 0xf6, 0xfc, 0x64, - 0xa1, 0x33, 0x92, 0x75, 0x61, 0x59, 0xc0, 0xc0, 0x21, 0xb4, 0x0b, 0xcf, 0x03, 0x4a, 0x2f, 0x4a, - 0x34, 0x0b, 0x23, 0xdb, 0x84, 0x3f, 0xd4, 0x9e, 0xc0, 0xf4, 0x2f, 0x3a, 0x0b, 0xd5, 0x1d, 0xcd, - 0x1a, 0x70, 0xd6, 0xb7, 0x86, 0xf9, 0xc7, 0xd3, 0x95, 0x0f, 0x29, 0xea, 0x0f, 0x14, 0x38, 0x97, - 0x39, 0x6c, 0x08, 0xc3, 0x79, 0x66, 0x8b, 0x67, 0xaf, 0x0c, 0x7c, 0xcd, 0x37, 0xed, 0x6e, 0xdb, - 0xde, 0xb4, 0xcc, 0xee, 0x16, 0x67, 0x01, 0xab, 0x9c, 0x61, 0x59, 0xc9, 0x2c, 0x81, 0x73, 0x6a, - 0xa2, 0x36, 0x9c, 0xe9, 0x69, 0xbb, 0x29, 0x80, 0x15, 0x06, 0x90, 0xbd, 0xf7, 0x5f, 0x49, 0x67, - 0xe3, 0xac, 0x3a, 0xea, 0x37, 0xaa, 0xf0, 0x18, 0x6d, 0x78, 0x74, 0x74, 0xae, 0x68, 0xb6, 0xd6, - 0x7d, 0x93, 0x1e, 0x51, 0xdf, 0x53, 0xe0, 0x91, 0xad, 0x6c, 0xc6, 0x56, 0x9c, 0xde, 0xb8, 0x18, - 0x7f, 0x7f, 0x18, 0xb3, 0xcc, 0x97, 0xee, 0xa1, 0x45, 0x70, 0x5e, 0xab, 0xd0, 0xf3, 0x30, 0x6b, - 0x3b, 0x06, 0x69, 0xb6, 0x5b, 0x78, 0x45, 0xf3, 0xb6, 0x3b, 0x81, 0x5a, 0xb7, 0xca, 0xef, 0x6e, - 0x56, 0x13, 0x79, 0x38, 0x55, 0x1a, 0xed, 0x00, 0xea, 0x3b, 0xc6, 0xf2, 0x8e, 0xa9, 0x07, 0x66, - 0x74, 0xc5, 0xef, 0x8b, 0xd8, 0x03, 0xa3, 0xb5, 0x14, 0x34, 0x9c, 0x81, 0x81, 0xb1, 0xe6, 0xb4, - 0x31, 0x2b, 0x8e, 0x6d, 0xfa, 0x8e, 0xcb, 0xac, 0x3d, 0x4b, 0x71, 0xa8, 0x6c, 0xa5, 0xaf, 0x66, - 0x42, 0xc4, 0x39, 0x98, 0xd4, 0xff, 0xa9, 0xc0, 0x0c, 0x5d, 0x17, 0x6b, 0xae, 0xb3, 0xbb, 0xf7, - 0xa6, 0x5c, 0x92, 0x4f, 0x88, 0x5b, 0x29, 0x2e, 0xb1, 0x9d, 0x93, 0x6e, 0xa4, 0x26, 0x58, 0xa3, - 0xa3, 0x4b, 0x28, 0x59, 0x6a, 0x1d, 0xc9, 0x97, 0x5a, 0xd5, 0xbf, 0x50, 0x38, 0xb7, 0x18, 0x08, - 0x8d, 0x6f, 0xce, 0xad, 0xf8, 0x41, 0x98, 0xa2, 0x69, 0x2b, 0xda, 0xee, 0x5a, 0xeb, 0x05, 0xc7, - 0x0a, 0x8c, 0x50, 0x99, 0xb9, 0xcb, 0x2d, 0x39, 0x03, 0xc7, 0xcb, 0xa9, 0xdf, 0x9b, 0x01, 0x56, - 0xc0, 0x22, 0xfe, 0x9b, 0xb2, 0x63, 0x4f, 0x42, 0x5d, 0xef, 0x0f, 0x9a, 0xd7, 0x3b, 0x1f, 0x1b, - 0x38, 0xbe, 0x26, 0x6e, 0xab, 0x18, 0x07, 0xd8, 0x5c, 0x5b, 0x0f, 0x92, 0xb1, 0x5c, 0x86, 0x6e, - 0x72, 0xbd, 0x3f, 0x10, 0x84, 0x73, 0x4d, 0x36, 0xdb, 0x60, 0x9b, 0xbc, 0xb9, 0xb6, 0x1e, 0xcb, - 0xc3, 0xa9, 0xd2, 0xe8, 0x73, 0x0a, 0x4c, 0x12, 0xb1, 0x01, 0x6f, 0x6a, 0xae, 0x21, 0xf6, 0x77, - 0xf1, 0xf3, 0x3b, 0x1c, 0xdd, 0x60, 0x5b, 0x73, 0xde, 0x79, 0x59, 0xc2, 0x81, 0x63, 0x18, 0x19, - 0x1b, 0x2b, 0xbe, 0xe9, 0x64, 0x39, 0x46, 0x72, 0xc7, 0x57, 0x05, 0x1b, 0x9b, 0x57, 0x08, 0xe7, - 0xd7, 0x47, 0xff, 0x58, 0x81, 0xf3, 0x61, 0xae, 0x69, 0x9b, 0xbd, 0x41, 0x0f, 0x13, 0xdd, 0xd2, - 0xcc, 0x9e, 0xe0, 0x69, 0x3f, 0x7e, 0x72, 0x3d, 0x8d, 0xc3, 0xe7, 0x64, 0x27, 0x3b, 0x0f, 0xe7, - 0xb4, 0x09, 0x7d, 0x5b, 0x81, 0x2b, 0x41, 0xd6, 0x1a, 0x95, 0x2c, 0x07, 0x2e, 0x89, 0x4c, 0x99, - 0xc5, 0x98, 0x8c, 0x17, 0xa2, 0x82, 0xef, 0x3c, 0xd8, 0x5f, 0xb8, 0xb2, 0x7c, 0x04, 0x6c, 0x7c, - 0x24, 0xf6, 0xd8, 0x8a, 0xe9, 0x38, 0x9b, 0xbe, 0x60, 0x82, 0x1f, 0xda, 0x8a, 0xa1, 0x38, 0x70, - 0x0c, 0x23, 0xfa, 0x5d, 0x05, 0x1e, 0x91, 0x13, 0xe4, 0x05, 0xc3, 0xb9, 0xdf, 0x4f, 0x9c, 0x5c, - 0x6b, 0x12, 0x08, 0xb8, 0xbe, 0x29, 0x27, 0x13, 0xe7, 0x35, 0x8b, 0x92, 0xe0, 0x1e, 0x5b, 0x9c, - 0x9c, 0x43, 0xae, 0x72, 0x12, 0xcc, 0xd7, 0xab, 0x87, 0x83, 0x3c, 0x2a, 0x7d, 0xf6, 0x1d, 0x63, - 0xcd, 0x34, 0xbc, 0xdb, 0x66, 0xcf, 0xf4, 0x19, 0x0b, 0x3b, 0xc2, 0xc7, 0x63, 0xcd, 0x31, 0xd6, - 0xda, 0x2d, 0x9e, 0x8e, 0x63, 0xa5, 0xd8, 0x2b, 0x24, 0xb3, 0xa7, 0x75, 0xc9, 0xda, 0xc0, 0xb2, - 0xd6, 0x5c, 0x87, 0xe9, 0x24, 0x5a, 0x44, 0x33, 0x2c, 0xd3, 0x26, 0x05, 0x59, 0x56, 0xb6, 0xe5, - 0xda, 0x79, 0x40, 0x71, 0x3e, 0x3e, 0xb4, 0x08, 0xb0, 0xa9, 0x99, 0x56, 0xe7, 0x9e, 0xd6, 0xbf, - 0x63, 0xcf, 0x4f, 0x31, 0x32, 0xc6, 0x04, 0xbf, 0xeb, 0x61, 0x2a, 0x96, 0x4a, 0xb0, 0x05, 0x45, - 0x89, 0x21, 0x26, 0xfc, 0x25, 0xf4, 0xfc, 0xf4, 0x49, 0x2d, 0xa8, 0x00, 0x22, 0x1f, 0xc0, 0x5b, - 0x12, 0x0e, 0x1c, 0xc3, 0x88, 0xbe, 0xa8, 0xc0, 0xb4, 0xb7, 0xe7, 0xf9, 0xa4, 0x17, 0x36, 0x62, - 0xe6, 0xc4, 0x1b, 0xc1, 0x14, 0x36, 0x9d, 0x18, 0x16, 0x9c, 0xc0, 0x8a, 0x34, 0x78, 0x8c, 0x0d, - 0xec, 0x8d, 0xe6, 0x4d, 0xb3, 0xbb, 0x15, 0x3e, 0x2f, 0x5a, 0x23, 0xae, 0x4e, 0x6c, 0x7f, 0x7e, - 0x96, 0x2d, 0x9d, 0x85, 0x83, 0xfd, 0x85, 0xc7, 0xda, 0xf9, 0xc5, 0xf0, 0x61, 0x30, 0xd0, 0xa7, - 0xe0, 0x82, 0xc8, 0xbe, 0xed, 0xdc, 0x4b, 0x61, 0x98, 0x63, 0x18, 0xd8, 0x9b, 0xaf, 0x76, 0x6e, - 0x29, 0x7c, 0x08, 0x04, 0x2a, 0x23, 0x78, 0xc4, 0x65, 0x0a, 0x57, 0x12, 0xae, 0x1f, 0x6f, 0x1e, - 0xb1, 0x75, 0xc0, 0x64, 0x84, 0x4e, 0x3a, 0x1b, 0x67, 0xd5, 0x51, 0xf7, 0x2b, 0x5c, 0xb8, 0x49, - 0xed, 0x49, 0xf4, 0x2c, 0xcc, 0xf4, 0x48, 0xcf, 0x71, 0xf7, 0x96, 0x02, 0x87, 0x49, 0x42, 0xe1, - 0xc6, 0x04, 0xd6, 0x95, 0x78, 0x16, 0x4e, 0x96, 0xa5, 0xe7, 0x26, 0xeb, 0xc1, 0xf5, 0x4e, 0x54, - 0xbf, 0x12, 0x9d, 0x9b, 0xed, 0x44, 0x1e, 0x4e, 0x95, 0x46, 0x4d, 0x98, 0x13, 0x69, 0x6d, 0xca, - 0x41, 0x7a, 0xd7, 0x5d, 0x12, 0xdc, 0xe1, 0x50, 0x56, 0x6c, 0xae, 0x9d, 0xcc, 0xc4, 0xe9, 0xf2, - 0xb4, 0x17, 0xf4, 0x43, 0x6e, 0xc5, 0x68, 0xd4, 0x8b, 0xd5, 0x78, 0x16, 0x4e, 0x96, 0x0d, 0x58, - 0xfc, 0x58, 0x13, 0xaa, 0x51, 0x2f, 0x56, 0x13, 0x79, 0x38, 0x55, 0x5a, 0xfd, 0x8b, 0x51, 0x78, - 0xc7, 0x10, 0x47, 0x19, 0xea, 0x65, 0x0f, 0xf7, 0x11, 0x54, 0x65, 0x31, 0xb8, 0x40, 0x5b, 0xfc, - 0xd8, 0x40, 0xb3, 0x7d, 0xd3, 0xdf, 0x1b, 0x72, 0x7a, 0xfa, 0x39, 0xd3, 0x73, 0x7c, 0x7c, 0xc3, - 0x4e, 0xa7, 0x97, 0x37, 0x9d, 0xc7, 0x47, 0x39, 0xfc, 0xf4, 0xf7, 0xb2, 0xa7, 0xbf, 0xe0, 0xa8, - 0x1e, 0xb9, 0x5c, 0xfa, 0x39, 0xcb, 0xa5, 0xe0, 0xa8, 0x0e, 0xb1, 0xbc, 0xfe, 0xc3, 0x28, 0xbc, - 0x73, 0x98, 0x33, 0xb5, 0xe0, 0xfa, 0xca, 0x38, 0xb5, 0x1e, 0xea, 0xfa, 0xca, 0xb3, 0x83, 0x7c, - 0x88, 0xeb, 0x2b, 0x03, 0xe5, 0xc3, 0x5e, 0x5f, 0x79, 0xa3, 0xfa, 0xb0, 0xd6, 0x57, 0xde, 0xa8, - 0x0e, 0xb1, 0xbe, 0xfe, 0x57, 0xf2, 0x7c, 0x08, 0xcf, 0xd1, 0x36, 0x8c, 0xe8, 0xfd, 0x41, 0x41, - 0x22, 0xc5, 0x6e, 0x3f, 0x9b, 0x6b, 0xeb, 0x98, 0xc2, 0x40, 0x18, 0xc6, 0xf8, 0xfa, 0x29, 0x48, - 0x82, 0x98, 0xa5, 0x27, 0x5f, 0x92, 0x58, 0x40, 0xa2, 0x43, 0x45, 0xfa, 0x5b, 0xa4, 0x47, 0x5c, - 0xcd, 0xea, 0xf8, 0x8e, 0xab, 0x75, 0x8b, 0x52, 0x1b, 0x36, 0x54, 0xcb, 0x09, 0x58, 0x38, 0x05, - 0x9d, 0x0e, 0x48, 0xdf, 0x34, 0x0a, 0xd2, 0x17, 0x36, 0x20, 0x6b, 0xed, 0x16, 0xa6, 0x30, 0xd4, - 0x1f, 0xd5, 0x40, 0x7a, 0x5a, 0x4a, 0xc5, 0x37, 0xcd, 0xb2, 0x9c, 0x7b, 0x6b, 0xae, 0xb9, 0x63, - 0x5a, 0xa4, 0x4b, 0x8c, 0xf0, 0xed, 0xa1, 0x27, 0x2e, 0xc9, 0x19, 0x2f, 0xb9, 0x94, 0x57, 0x08, - 0xe7, 0xd7, 0xa7, 0x9c, 0xed, 0x9c, 0x9e, 0x7c, 0xfa, 0x5f, 0xea, 0x9e, 0x2f, 0xe5, 0x48, 0x80, - 0x6f, 0xa8, 0x54, 0x32, 0x4e, 0xe3, 0x45, 0x7f, 0x43, 0xe1, 0xba, 0x87, 0x50, 0xd9, 0x2a, 0x26, - 0xed, 0xe6, 0x49, 0x5d, 0x51, 0x44, 0x5a, 0x8c, 0x48, 0x9f, 0x1b, 0xc7, 0x88, 0x7e, 0x5b, 0x81, - 0x73, 0xdb, 0x59, 0x7a, 0x53, 0x31, 0xb7, 0x6b, 0x85, 0xdb, 0x92, 0xa3, 0x89, 0xe5, 0xd7, 0xca, - 0x99, 0x05, 0x70, 0x76, 0x4b, 0xc2, 0x71, 0x0a, 0x15, 0x49, 0x82, 0x0e, 0x14, 0x1f, 0xa7, 0x84, - 0x4a, 0x2a, 0x1a, 0xa7, 0x30, 0x03, 0xc7, 0x31, 0xa2, 0x57, 0x61, 0x62, 0x3b, 0xd0, 0xdf, 0x09, - 0x51, 0xbf, 0x55, 0x18, 0xbd, 0xa4, 0x05, 0xe4, 0x17, 0xd8, 0x61, 0x22, 0x8e, 0xb0, 0x20, 0x13, - 0xc6, 0xb7, 0x39, 0x35, 0x12, 0x22, 0x7a, 0xa3, 0xbc, 0xf4, 0xc0, 0xe5, 0x44, 0x91, 0x84, 0x03, - 0xf8, 0xb2, 0xc1, 0x4d, 0xed, 0x08, 0x9b, 0xd4, 0xaf, 0x2b, 0x70, 0x6e, 0x87, 0xb8, 0xbe, 0xa9, - 0x27, 0x15, 0xd7, 0x13, 0x25, 0x44, 0x9c, 0x17, 0xb2, 0x20, 0xf2, 0xa5, 0x92, 0x99, 0x85, 0xb3, - 0xdb, 0xa0, 0xfe, 0xa5, 0x02, 0x29, 0xdd, 0x18, 0xfa, 0xbb, 0x0a, 0x4c, 0x6e, 0x12, 0xcd, 0x1f, - 0xb8, 0xe4, 0x86, 0xe6, 0x87, 0xef, 0x48, 0x5e, 0x3c, 0x11, 0x9d, 0xdc, 0xe2, 0x75, 0x09, 0x32, - 0xbf, 0x05, 0x0c, 0x5d, 0xcd, 0xc8, 0x59, 0x38, 0xd6, 0x84, 0x0b, 0x1f, 0x81, 0xb9, 0x54, 0xc5, - 0x63, 0xdd, 0xd4, 0xfc, 0x81, 0xd0, 0xae, 0x26, 0x1d, 0x1f, 0xbf, 0x0c, 0x55, 0xcd, 0x30, 0x42, - 0xe7, 0x8a, 0x4f, 0x17, 0xbc, 0xf1, 0x36, 0xe4, 0x07, 0x3b, 0xec, 0x13, 0x73, 0xb8, 0xe8, 0x3a, - 0x20, 0x2d, 0x76, 0xa1, 0xb5, 0x12, 0x3d, 0x66, 0x60, 0x7a, 0xf9, 0xa5, 0x54, 0x2e, 0xce, 0xa8, - 0xa1, 0x7e, 0x18, 0xa6, 0xe3, 0x9e, 0x06, 0x8e, 0x61, 0x19, 0xad, 0xfe, 0x86, 0x02, 0x28, 0xed, - 0xdc, 0x08, 0x79, 0x50, 0x13, 0x25, 0x82, 0x49, 0x5e, 0x2e, 0x6a, 0xe5, 0x1a, 0x33, 0xda, 0x8e, - 0xec, 0x6a, 0x45, 0x82, 0x87, 0x43, 0x44, 0xea, 0x5f, 0x2b, 0x10, 0x39, 0x71, 0x43, 0x1f, 0x80, - 0xba, 0x41, 0x3c, 0xdd, 0x35, 0xfb, 0x7e, 0xd4, 0x91, 0xd0, 0x4c, 0xb4, 0x15, 0x65, 0x61, 0xb9, - 0x1c, 0x52, 0x61, 0xcc, 0xd7, 0xbc, 0xed, 0x76, 0x4b, 0x08, 0x8e, 0xec, 0x98, 0xbf, 0xcb, 0x52, - 0xb0, 0xc8, 0x89, 0x9e, 0xed, 0x8f, 0x0c, 0xf1, 0x6c, 0x1f, 0x6d, 0x9e, 0x80, 0x8f, 0x02, 0x74, - 0xb4, 0x7f, 0x02, 0xf5, 0xdf, 0x54, 0x20, 0xee, 0x38, 0xaf, 0xe8, 0x10, 0xa4, 0x9d, 0x2a, 0x54, - 0x1e, 0x9a, 0x53, 0x85, 0xf7, 0x30, 0x27, 0xb3, 0xdc, 0x35, 0x38, 0xbf, 0xc6, 0x92, 0x3d, 0xc3, - 0x72, 0xbf, 0xde, 0x61, 0x09, 0xf4, 0x94, 0x6c, 0x7c, 0x3a, 0xd1, 0x78, 0x47, 0xb0, 0x2f, 0x98, - 0x45, 0xe9, 0x03, 0xe1, 0x36, 0x22, 0xec, 0x7f, 0xcc, 0xce, 0xf4, 0x03, 0xc2, 0xc8, 0xb0, 0x1a, - 0x73, 0x6d, 0x11, 0xf8, 0xc3, 0x98, 0x8b, 0x55, 0x8c, 0x2c, 0x0f, 0xd5, 0xbf, 0xa7, 0xc0, 0xb8, - 0x70, 0x54, 0x35, 0x84, 0xcd, 0x70, 0x17, 0xaa, 0x8c, 0x5d, 0x2f, 0xc5, 0xc9, 0x74, 0xb6, 0x1c, - 0xc7, 0x8f, 0x39, 0xec, 0x62, 0x56, 0x7d, 0xec, 0x2f, 0xe6, 0xf0, 0xd5, 0xaf, 0x8f, 0xc2, 0x15, - 0x51, 0x24, 0x75, 0x4c, 0x87, 0x9b, 0x70, 0x0f, 0xce, 0x88, 0x69, 0x6a, 0xb9, 0x9a, 0x19, 0xde, - 0xf4, 0x15, 0x93, 0xc0, 0xc4, 0x2d, 0x70, 0x0a, 0x1c, 0xce, 0xc2, 0xc1, 0xdd, 0xd2, 0xb0, 0xe4, - 0x9b, 0x44, 0xb3, 0xfc, 0xad, 0x00, 0x77, 0xa5, 0x8c, 0x5b, 0x9a, 0x34, 0x3c, 0x9c, 0x89, 0x85, - 0xdd, 0x34, 0x8a, 0x8c, 0xa6, 0x4b, 0x34, 0xf9, 0x9a, 0xb3, 0x84, 0x11, 0xe0, 0x4a, 0x26, 0x44, - 0x9c, 0x83, 0x89, 0xa9, 0xb2, 0xb4, 0x5d, 0x26, 0x19, 0x63, 0xe2, 0xbb, 0x26, 0xe1, 0x56, 0xbe, - 0x55, 0x21, 0xcb, 0xc6, 0xb3, 0x70, 0xb2, 0x2c, 0x7a, 0x1a, 0xa6, 0xd9, 0xcd, 0x6d, 0xf4, 0x4e, - 0xbb, 0x1a, 0x79, 0x8a, 0x5f, 0x8d, 0xe5, 0xe0, 0x44, 0x49, 0xf5, 0xbb, 0x0a, 0x4c, 0xca, 0x0b, - 0x68, 0x08, 0x1b, 0xdc, 0x1d, 0x89, 0x60, 0x97, 0x31, 0x6c, 0x95, 0xd1, 0x0e, 0x49, 0xb3, 0xcf, - 0x64, 0xd4, 0x61, 0x57, 0x78, 0x24, 0x41, 0xfc, 0x4b, 0x5d, 0xe1, 0xa5, 0x4e, 0x92, 0xf0, 0x0a, - 0x2f, 0x99, 0x83, 0x53, 0x88, 0xd1, 0x8b, 0x30, 0xa2, 0xbb, 0xa6, 0x18, 0x98, 0x0f, 0x15, 0x93, - 0x4f, 0x70, 0x3b, 0x7a, 0xc3, 0xd4, 0xc4, 0x6d, 0x4c, 0x21, 0xaa, 0xbf, 0x3f, 0x02, 0x75, 0xc9, - 0x0f, 0x1e, 0x5a, 0x29, 0x23, 0xdf, 0x46, 0xe0, 0x03, 0x19, 0x77, 0x05, 0x46, 0xba, 0xfd, 0x41, - 0x41, 0x01, 0x37, 0x04, 0x77, 0x83, 0x82, 0xeb, 0xf6, 0x07, 0xe8, 0x85, 0x50, 0x64, 0x2e, 0x26, - 0xd4, 0x86, 0xd6, 0x9e, 0x09, 0xb1, 0x39, 0x58, 0x9e, 0xa3, 0xb9, 0xcb, 0xd3, 0x86, 0x71, 0x4f, - 0xc8, 0xd3, 0xd5, 0x12, 0x0f, 0x47, 0xa5, 0xa1, 0x16, 0x02, 0x34, 0xe7, 0xc3, 0x03, 0xf9, 0x3a, - 0x40, 0x42, 0xb9, 0x80, 0x01, 0x7b, 0x72, 0xc1, 0x44, 0x8c, 0x1a, 0xe7, 0x02, 0xd6, 0x59, 0x0a, - 0x16, 0x39, 0xea, 0x97, 0x2a, 0x80, 0xd2, 0x00, 0xd1, 0x3b, 0xa0, 0xca, 0x1e, 0x60, 0x89, 0xcd, - 0x26, 0x39, 0x89, 0xd2, 0x3c, 0x0f, 0xf3, 0x3c, 0xd4, 0x11, 0x0f, 0xf2, 0x8a, 0xcd, 0x0c, 0xbb, - 0x3c, 0x16, 0xf8, 0xa4, 0xd7, 0x7b, 0xc1, 0xf9, 0x34, 0x92, 0x7b, 0x3e, 0xad, 0xc3, 0x78, 0xcf, - 0xb4, 0x99, 0xcd, 0x48, 0x31, 0x8d, 0x01, 0xbf, 0xdd, 0xe2, 0x20, 0x70, 0x00, 0x4b, 0xfd, 0x59, - 0x85, 0xae, 0x62, 0xd3, 0xf6, 0x89, 0xad, 0xd9, 0x3a, 0x41, 0xf7, 0x01, 0xb4, 0x81, 0xef, 0xf0, - 0x63, 0x5e, 0x2c, 0xe6, 0x8f, 0x16, 0x9c, 0xb0, 0x10, 0xea, 0x52, 0x08, 0x91, 0xdf, 0x3a, 0x45, - 0xdf, 0x58, 0xc2, 0x46, 0x71, 0xfb, 0x66, 0x8f, 0xbc, 0x68, 0xda, 0x86, 0x73, 0x4f, 0x8c, 0x6f, - 0x69, 0xdc, 0x77, 0x43, 0x88, 0x1c, 0x77, 0xf4, 0x8d, 0x25, 0x6c, 0xe8, 0xe3, 0x30, 0xcf, 0x42, - 0x58, 0xd8, 0xcc, 0xd1, 0xa8, 0x68, 0x9c, 0x63, 0x59, 0xc1, 0xc1, 0x53, 0x63, 0x6e, 0xdd, 0xe6, - 0x9b, 0x39, 0x65, 0x70, 0x6e, 0x6d, 0xf5, 0x7b, 0x0a, 0x9c, 0xcb, 0x1c, 0x0b, 0x74, 0x03, 0xe6, - 0x22, 0x8b, 0x03, 0x99, 0x50, 0xd6, 0x22, 0xcf, 0xb9, 0xb7, 0x92, 0x05, 0x70, 0xba, 0x0e, 0x5a, - 0x09, 0xb9, 0x05, 0x99, 0x10, 0x0b, 0x73, 0x85, 0xc7, 0x04, 0xa8, 0x2c, 0x5a, 0x8d, 0xb3, 0xea, - 0xa9, 0x9f, 0x8c, 0x35, 0x38, 0x1a, 0x30, 0xba, 0x3f, 0x36, 0x48, 0x37, 0xb4, 0x00, 0x0f, 0xf7, - 0x47, 0x83, 0x26, 0x62, 0x9e, 0x87, 0x2e, 0xc9, 0xaf, 0x16, 0x42, 0x42, 0x14, 0xbc, 0x5c, 0x50, - 0x07, 0x00, 0xc2, 0xb6, 0xc7, 0xb4, 0xbb, 0xa8, 0x0b, 0x35, 0x4d, 0x04, 0x58, 0x11, 0x8b, 0xed, - 0xd9, 0x62, 0xc2, 0x96, 0x00, 0xc2, 0xcd, 0xfa, 0x82, 0x2f, 0x1c, 0x02, 0x57, 0xff, 0xa1, 0x02, - 0xe7, 0xb3, 0xdf, 0x19, 0x0d, 0x71, 0xc2, 0xf6, 0xa0, 0xee, 0x46, 0xd5, 0xc4, 0xca, 0xfc, 0x15, - 0xd9, 0xe3, 0x8b, 0xf4, 0x62, 0x9d, 0x72, 0x1f, 0x4d, 0xd7, 0xf1, 0x82, 0xd9, 0x49, 0x3a, 0x81, - 0x09, 0x99, 0x78, 0xa9, 0x25, 0x58, 0x86, 0xaf, 0xbe, 0x5e, 0x01, 0x58, 0x25, 0xfe, 0x3d, 0xc7, - 0xdd, 0xa6, 0x63, 0xf4, 0xa6, 0x7a, 0xef, 0x76, 0x11, 0x46, 0xfb, 0x8e, 0xe1, 0x09, 0x42, 0xc5, - 0x1e, 0xa2, 0xb1, 0xeb, 0x72, 0x96, 0x8a, 0x16, 0xa0, 0xca, 0x54, 0xc1, 0xe2, 0x38, 0x60, 0xcc, - 0x2f, 0x65, 0x78, 0x3c, 0xcc, 0xd3, 0xb9, 0x1f, 0x6d, 0x66, 0x34, 0xeb, 0x09, 0x76, 0x5e, 0xf8, - 0xd1, 0xe6, 0x69, 0x38, 0xcc, 0x55, 0x3f, 0x3f, 0x0a, 0xb1, 0x10, 0x41, 0x91, 0x50, 0x3e, 0xfa, - 0x90, 0x84, 0xf2, 0x8f, 0xc3, 0xbc, 0xe5, 0x68, 0x46, 0x43, 0xb3, 0xe8, 0xb2, 0x77, 0x3b, 0x7c, - 0x3e, 0x34, 0xbb, 0x4b, 0x82, 0x50, 0x3f, 0x8c, 0x04, 0xdc, 0xce, 0x29, 0x83, 0x73, 0x6b, 0xa3, - 0x81, 0x14, 0x99, 0x88, 0xb2, 0x21, 0x2b, 0xa5, 0x43, 0x28, 0x2d, 0xca, 0x16, 0xd3, 0xe1, 0xd9, - 0x1c, 0x8f, 0x5e, 0x84, 0xbe, 0xa8, 0xc0, 0x39, 0xb2, 0xeb, 0x13, 0xd7, 0xd6, 0xac, 0xbb, 0xae, - 0xb6, 0xb9, 0x69, 0xea, 0x31, 0x83, 0xa4, 0xb5, 0x83, 0xfd, 0x85, 0x73, 0xcb, 0x59, 0x05, 0x1e, - 0xec, 0x2f, 0xbc, 0x2f, 0x1d, 0x23, 0x2c, 0xb0, 0x8f, 0xce, 0xac, 0xc2, 0x96, 0x63, 0x36, 0xba, - 0x0b, 0x4f, 0x41, 0xfd, 0x18, 0xc6, 0xb4, 0x13, 0xb2, 0x8a, 0xe6, 0x9b, 0x63, 0x20, 0x59, 0xa7, - 0x1f, 0xc3, 0x01, 0xf4, 0xef, 0x28, 0x70, 0x56, 0xb7, 0x4c, 0x62, 0xfb, 0x09, 0x13, 0x64, 0xbe, - 0x35, 0x5e, 0x28, 0x66, 0x37, 0xdf, 0x27, 0x76, 0xbb, 0xd5, 0x74, 0x6c, 0x9b, 0xe8, 0x7e, 0x33, - 0x03, 0x3a, 0x97, 0x77, 0xb2, 0x72, 0x70, 0x66, 0x6b, 0x58, 0x87, 0x58, 0x7a, 0xbb, 0x25, 0x3f, - 0xe4, 0x6a, 0x8a, 0x34, 0x1c, 0xe6, 0xa2, 0x27, 0xa1, 0xde, 0x75, 0x9d, 0x41, 0xdf, 0x6b, 0x32, - 0x53, 0x29, 0xbe, 0xc3, 0x18, 0x3b, 0x71, 0x23, 0x4a, 0xc6, 0x72, 0x19, 0xf4, 0x7e, 0x98, 0xe4, - 0x9f, 0x6b, 0x2e, 0xd9, 0x34, 0x77, 0xc5, 0x8e, 0x63, 0x96, 0x17, 0x37, 0xa4, 0x74, 0x1c, 0x2b, - 0x85, 0xde, 0x0d, 0x13, 0xa6, 0xe7, 0x0d, 0x88, 0xbb, 0x8e, 0x6f, 0x0b, 0x37, 0x88, 0x4c, 0xc1, - 0xda, 0x0e, 0x12, 0x71, 0x94, 0x8f, 0x7e, 0x53, 0x81, 0x69, 0x97, 0xbc, 0x3a, 0x30, 0x5d, 0x62, - 0x30, 0xa4, 0x9e, 0x78, 0x23, 0xd0, 0x29, 0xf9, 0x30, 0x61, 0x11, 0xc7, 0xa0, 0xf2, 0x95, 0x1e, - 0xaa, 0x26, 0xe2, 0x99, 0x38, 0xd1, 0x04, 0x3a, 0x56, 0x9e, 0xd9, 0xb5, 0x4d, 0xbb, 0xbb, 0x64, - 0x75, 0xbd, 0xf9, 0x1a, 0xdb, 0xbd, 0x9c, 0xf5, 0x8a, 0x92, 0xb1, 0x5c, 0x06, 0x7d, 0x10, 0xa6, - 0x06, 0x1e, 0x5d, 0xbb, 0x3d, 0xc2, 0x07, 0x78, 0x22, 0xb2, 0x61, 0x5c, 0x97, 0x33, 0x70, 0xbc, - 0x1c, 0x95, 0xf6, 0x82, 0x04, 0x31, 0xcc, 0xc0, 0x5d, 0x35, 0xd0, 0x76, 0xae, 0xc7, 0x72, 0x70, - 0xa2, 0xe4, 0x85, 0x25, 0x38, 0x93, 0xd1, 0xcd, 0x63, 0x6d, 0x90, 0xef, 0x56, 0xe0, 0xed, 0x47, - 0x2e, 0x4b, 0xf4, 0x4d, 0x05, 0xea, 0x64, 0xd7, 0x77, 0xb5, 0xd0, 0xa2, 0x92, 0xce, 0x51, 0xf7, - 0xe1, 0x6c, 0x82, 0xc5, 0xe5, 0x08, 0x13, 0x9f, 0xb7, 0xf0, 0xcc, 0x93, 0x72, 0xb0, 0xdc, 0x20, - 0xca, 0xb5, 0x73, 0x57, 0x1e, 0xb2, 0xee, 0x4e, 0xc4, 0x54, 0x11, 0x39, 0x17, 0x9e, 0x83, 0xd9, - 0x24, 0xe4, 0x63, 0x0d, 0xd5, 0xef, 0x55, 0xa0, 0xba, 0x66, 0x69, 0xa7, 0xe2, 0xd3, 0xf2, 0xd3, - 0x31, 0x5f, 0x62, 0xc5, 0x3c, 0xb4, 0xb1, 0xb6, 0xe6, 0x7a, 0x32, 0xdc, 0x4a, 0x78, 0x32, 0x7c, - 0xbe, 0x04, 0x8e, 0xc3, 0x1d, 0x17, 0xfe, 0x48, 0x81, 0x09, 0x56, 0xee, 0x14, 0x1c, 0x2c, 0xbc, - 0x1c, 0x77, 0xb0, 0xf0, 0x74, 0xf1, 0x4e, 0xe5, 0x38, 0x56, 0xf8, 0xb3, 0xa0, 0x33, 0xcc, 0x35, - 0xd6, 0x27, 0xe4, 0x20, 0x52, 0xbc, 0x37, 0x57, 0xb3, 0x3c, 0xf9, 0xdd, 0x76, 0x74, 0xcd, 0x4a, - 0xb9, 0xf3, 0x3b, 0x34, 0x92, 0x94, 0x0d, 0x13, 0x44, 0x38, 0x4c, 0x09, 0x7a, 0x53, 0x8c, 0xb7, - 0x0d, 0xdc, 0xae, 0x44, 0xf8, 0x82, 0x14, 0x0f, 0x47, 0x28, 0xd4, 0x3f, 0xa8, 0x40, 0x5d, 0x9a, - 0xcd, 0x37, 0xc4, 0x53, 0xe0, 0xf5, 0xcc, 0x90, 0x2b, 0x15, 0x66, 0x31, 0x79, 0xfe, 0x18, 0xe1, - 0x56, 0x3c, 0xa8, 0xeb, 0x91, 0xf3, 0xe7, 0x52, 0x0b, 0x5c, 0x72, 0x22, 0x2d, 0x2c, 0xb7, 0xa3, - 0x04, 0x2c, 0x63, 0x51, 0xff, 0x79, 0x05, 0xc6, 0xd7, 0x5c, 0x87, 0xce, 0xf1, 0x29, 0x10, 0x88, - 0x8d, 0x18, 0x81, 0x28, 0xb8, 0x79, 0x79, 0x6b, 0x73, 0x49, 0xc4, 0x2b, 0x09, 0x12, 0xd1, 0x28, - 0x85, 0xe5, 0x70, 0x22, 0xf1, 0x13, 0x05, 0xea, 0xa2, 0xe4, 0x29, 0x90, 0x09, 0x2d, 0x4e, 0x26, - 0x9e, 0x29, 0xd3, 0xb1, 0x1c, 0x42, 0xf1, 0x35, 0x05, 0xa6, 0x44, 0x89, 0x15, 0xd2, 0xdb, 0x20, - 0x2e, 0xba, 0x0e, 0xe3, 0xde, 0x80, 0xcd, 0xa5, 0xe8, 0xd1, 0x63, 0x32, 0xa9, 0x70, 0x37, 0x34, - 0x9d, 0x85, 0x0e, 0xe3, 0x45, 0x24, 0x17, 0xa2, 0x3c, 0x01, 0x07, 0x95, 0xa9, 0x40, 0xe7, 0x3a, - 0x56, 0xca, 0x69, 0x02, 0x76, 0x2c, 0x82, 0x59, 0x0e, 0x95, 0xa3, 0xe8, 0x6f, 0x70, 0x4b, 0xc5, - 0xe4, 0x28, 0x9a, 0xed, 0x61, 0x9e, 0xae, 0x7e, 0x69, 0x34, 0x1c, 0x6d, 0x46, 0xc7, 0x6e, 0xc2, - 0x84, 0xee, 0x12, 0xcd, 0x27, 0x46, 0x63, 0x6f, 0x98, 0xc6, 0x31, 0x86, 0xae, 0x19, 0xd4, 0xc0, - 0x51, 0x65, 0xca, 0x3a, 0xc9, 0x17, 0x4f, 0x95, 0x88, 0xcd, 0xcc, 0xbd, 0x74, 0x7a, 0x06, 0xaa, - 0xce, 0x3d, 0x3b, 0x34, 0xbd, 0x38, 0x14, 0x31, 0xeb, 0xca, 0x1d, 0x5a, 0x1a, 0xf3, 0x4a, 0xb2, - 0xc3, 0x8d, 0xd1, 0x43, 0x1c, 0x6e, 0xf4, 0x60, 0xbc, 0xc7, 0xa6, 0xa1, 0x9c, 0x3f, 0xc9, 0xd8, - 0x8c, 0xca, 0xee, 0xbd, 0x19, 0x68, 0x1c, 0xe0, 0xa0, 0x4c, 0x30, 0xe5, 0xd3, 0xbc, 0xbe, 0xa6, - 0x13, 0x99, 0x09, 0x5e, 0x0d, 0x12, 0x71, 0x94, 0x8f, 0xee, 0xc7, 0xfd, 0xe2, 0x8c, 0x97, 0x50, - 0x73, 0x8a, 0xf6, 0x49, 0xae, 0x70, 0xf8, 0xe0, 0xe7, 0xfa, 0xc6, 0xf9, 0xca, 0x68, 0xb8, 0x4c, - 0x05, 0xe1, 0xcf, 0x8e, 0x7b, 0xa5, 0x14, 0x8a, 0x7b, 0xf5, 0x3e, 0xa8, 0xf6, 0xb7, 0x34, 0x2f, - 0x58, 0xab, 0x81, 0x2f, 0xfa, 0xea, 0x1a, 0x4d, 0x7c, 0xb0, 0xbf, 0x30, 0x29, 0x50, 0xb3, 0x6f, - 0xcc, 0xcb, 0xa2, 0x01, 0x9c, 0xf1, 0x7c, 0xcd, 0x22, 0x1d, 0x53, 0xa8, 0x8f, 0x3c, 0x5f, 0xeb, - 0xf5, 0x0b, 0xb8, 0x94, 0xe7, 0xa6, 0xc9, 0x69, 0x50, 0x38, 0x0b, 0x3e, 0xfa, 0xbc, 0x02, 0xf3, - 0x2c, 0x7d, 0x69, 0xe0, 0x3b, 0x3c, 0xfc, 0x46, 0x84, 0xfc, 0xf8, 0xf7, 0xb6, 0x4c, 0xd8, 0xef, - 0xe4, 0xc0, 0xc3, 0xb9, 0x98, 0xd0, 0x6b, 0x70, 0xce, 0xd2, 0x3c, 0x7f, 0x49, 0xf7, 0xcd, 0x1d, - 0xd3, 0xdf, 0x8b, 0x9a, 0x70, 0xfc, 0x18, 0x60, 0xcc, 0x76, 0xe3, 0x76, 0x16, 0x30, 0x9c, 0x8d, - 0x43, 0xfd, 0xdf, 0x0a, 0xa0, 0xf4, 0x12, 0x42, 0x3d, 0xa8, 0x19, 0x64, 0x53, 0x1b, 0x58, 0x7e, - 0xc0, 0x09, 0x94, 0xf6, 0xda, 0x14, 0x52, 0xe7, 0x96, 0x00, 0x8c, 0x43, 0x14, 0xa8, 0x0f, 0x13, - 0xf7, 0xb6, 0x4c, 0x9f, 0x58, 0xa6, 0xe7, 0x9f, 0x94, 0x97, 0xa8, 0x90, 0xf9, 0x79, 0x31, 0x80, - 0x8c, 0x23, 0x24, 0xea, 0xdf, 0x1c, 0x81, 0xda, 0x31, 0x82, 0xab, 0x0e, 0x00, 0x09, 0xaf, 0x11, - 0x94, 0x63, 0x22, 0x65, 0x94, 0x66, 0x8c, 0xad, 0x69, 0xa6, 0x80, 0xe1, 0x0c, 0x04, 0xe8, 0x35, - 0x38, 0x6b, 0xda, 0x9b, 0xae, 0xe6, 0xf9, 0xee, 0x40, 0xf7, 0x07, 0x2e, 0x29, 0xe3, 0xcc, 0x9e, - 0x69, 0x1a, 0xda, 0x19, 0xe0, 0x70, 0x26, 0x12, 0xb4, 0x09, 0xe3, 0xf7, 0x1c, 0x77, 0x9b, 0x12, - 0xd0, 0xd1, 0x12, 0xd1, 0x92, 0x5e, 0x64, 0x30, 0x22, 0xca, 0xc9, 0xbf, 0x3d, 0x1c, 0x00, 0x57, - 0x7f, 0xac, 0x40, 0x95, 0x3f, 0x85, 0x7b, 0x6b, 0x48, 0x59, 0xac, 0xad, 0xb9, 0x0e, 0x9a, 0xa9, - 0xec, 0xc3, 0x4a, 0xbc, 0x55, 0x64, 0x1f, 0xd6, 0xd8, 0x1c, 0x96, 0xe6, 0xc7, 0x23, 0xa2, 0x33, - 0x8c, 0x67, 0x68, 0xc3, 0x19, 0xc1, 0xfe, 0xde, 0x36, 0x37, 0x09, 0x5d, 0x60, 0x2d, 0x6d, 0xcf, - 0x13, 0x4f, 0xd1, 0x19, 0xe9, 0x6d, 0xa6, 0xb3, 0x71, 0x56, 0x1d, 0xf4, 0x2f, 0x14, 0x7a, 0x3a, - 0xfb, 0xae, 0xa9, 0x97, 0xf3, 0x7a, 0x1c, 0x36, 0x6e, 0x71, 0x85, 0x43, 0xe3, 0xea, 0x83, 0xf5, - 0xe8, 0x98, 0x66, 0xa9, 0x0f, 0xf6, 0x17, 0x16, 0x32, 0xd4, 0x93, 0x81, 0x42, 0x9d, 0x0e, 0xed, - 0xeb, 0x3f, 0x3b, 0xb4, 0x08, 0x53, 0xee, 0x07, 0x4d, 0x46, 0x37, 0xa1, 0xea, 0xe9, 0x4e, 0x9f, - 0x1c, 0xc7, 0x97, 0x7b, 0x38, 0xc2, 0x1d, 0x5a, 0x13, 0x73, 0x00, 0x17, 0x5e, 0x81, 0x49, 0xb9, - 0xe5, 0x19, 0xea, 0x89, 0x96, 0xac, 0x9e, 0x38, 0xf6, 0x2d, 0x9e, 0xac, 0xce, 0xf8, 0xc3, 0x0a, - 0x88, 0x58, 0x87, 0x43, 0x5c, 0x61, 0xbc, 0x12, 0xb8, 0x3f, 0x2d, 0x13, 0xe0, 0x31, 0x19, 0xd3, - 0x3d, 0x1a, 0x04, 0xd9, 0x03, 0x2a, 0x72, 0x60, 0xcc, 0xd2, 0x36, 0x88, 0x15, 0xc4, 0xbd, 0xbb, - 0x51, 0x22, 0x2c, 0x1b, 0xf7, 0x3e, 0xee, 0x25, 0x14, 0xdd, 0x3c, 0x11, 0x0b, 0x34, 0x17, 0x9e, - 0x82, 0xba, 0x54, 0xec, 0x58, 0x3a, 0xa1, 0x9f, 0x28, 0x30, 0x19, 0xf3, 0x79, 0xd6, 0x83, 0x11, - 0x37, 0xd4, 0x05, 0x14, 0xbd, 0xe3, 0x09, 0xac, 0x9b, 0x1e, 0x3b, 0xa4, 0x10, 0xa6, 0x78, 0x42, - 0xf7, 0x68, 0x95, 0x93, 0x72, 0x8f, 0xf6, 0x55, 0x05, 0xce, 0x07, 0x1d, 0x8a, 0x7b, 0x09, 0x41, - 0x57, 0xa1, 0xa6, 0xf5, 0x4d, 0xa6, 0xf9, 0x95, 0x95, 0xe7, 0x4b, 0x6b, 0x6d, 0x96, 0x86, 0xc3, - 0x5c, 0xf4, 0x1e, 0xa8, 0x05, 0x4b, 0x4f, 0x70, 0x7e, 0x21, 0xdd, 0x0a, 0x6f, 0xad, 0xc2, 0x12, - 0xe8, 0x71, 0xc9, 0x45, 0x6d, 0x35, 0x3a, 0xa8, 0x43, 0xc4, 0xfc, 0x8e, 0x5b, 0xfd, 0xf2, 0x08, - 0x4c, 0x71, 0x4d, 0x49, 0xc3, 0xb4, 0x0d, 0xd3, 0xee, 0x9e, 0xc2, 0x01, 0x11, 0x0b, 0x12, 0x5e, - 0x39, 0xa9, 0x20, 0xe1, 0xb7, 0x60, 0xec, 0x55, 0x4a, 0xa9, 0x82, 0x05, 0x3e, 0x14, 0xc1, 0x08, - 0x17, 0x2f, 0x23, 0x72, 0x1e, 0x16, 0x20, 0x90, 0x2f, 0xc5, 0x6a, 0x2f, 0xf3, 0xd2, 0x3b, 0x36, - 0xb4, 0xa1, 0xaf, 0xe9, 0xc9, 0xec, 0x40, 0xed, 0xcc, 0x79, 0x6a, 0xac, 0xc6, 0x5b, 0xc5, 0x79, - 0x6a, 0xac, 0xd1, 0x39, 0xe7, 0xdc, 0x53, 0x70, 0x2e, 0x73, 0x34, 0x8e, 0xe6, 0x0c, 0xd5, 0xef, - 0x57, 0x80, 0xc5, 0x50, 0x3e, 0x85, 0xb5, 0xf9, 0x72, 0x8c, 0x79, 0x79, 0xb6, 0xb8, 0xfb, 0xd6, - 0x3c, 0xf5, 0x4f, 0x37, 0xa1, 0xfe, 0xf9, 0x48, 0x71, 0x14, 0x87, 0xeb, 0x7e, 0xbe, 0x55, 0x01, - 0xa0, 0xc5, 0x78, 0xb4, 0x69, 0x61, 0x18, 0xca, 0x57, 0xb4, 0x12, 0xa7, 0x1e, 0xe9, 0x95, 0x78, - 0x9a, 0x97, 0xd7, 0x6a, 0x18, 0x32, 0x78, 0x24, 0xba, 0x64, 0x88, 0x87, 0x0b, 0x8e, 0x53, 0x8c, - 0xd1, 0x13, 0xa2, 0x18, 0xea, 0xf7, 0x15, 0x60, 0xa1, 0x64, 0x5a, 0xab, 0x1d, 0xf4, 0x41, 0x98, - 0x32, 0xf9, 0x2d, 0x6e, 0x4b, 0xf6, 0xa7, 0xc7, 0x6e, 0x9a, 0xda, 0x72, 0x06, 0x8e, 0x97, 0x43, - 0xb6, 0x34, 0xae, 0x65, 0x42, 0xbd, 0x8b, 0x86, 0x1c, 0x49, 0x23, 0x7e, 0x5e, 0x81, 0x99, 0x44, - 0xd9, 0x21, 0x64, 0xab, 0x87, 0x43, 0x72, 0x25, 0x17, 0xf5, 0x23, 0xa7, 0xe0, 0xa2, 0x3e, 0xf4, - 0x16, 0x3f, 0xfa, 0x90, 0xbd, 0xc5, 0xff, 0x50, 0x01, 0x16, 0x45, 0xfc, 0x14, 0xc8, 0xef, 0xa7, - 0xe2, 0xe4, 0xf7, 0xa9, 0xc2, 0x6b, 0x27, 0x87, 0xea, 0xfe, 0xb5, 0x02, 0xcc, 0x79, 0xb4, 0x30, - 0x5d, 0x91, 0xac, 0x41, 0x94, 0x1c, 0x6b, 0x90, 0x2b, 0xc2, 0x98, 0x24, 0xa1, 0x08, 0x95, 0x0c, - 0x4a, 0xde, 0x23, 0xd9, 0x8b, 0x8c, 0xc4, 0x49, 0x49, 0xda, 0x66, 0x04, 0xbd, 0x06, 0x53, 0xde, - 0x96, 0xe3, 0xf8, 0x81, 0x4a, 0x42, 0xcc, 0x5e, 0xa3, 0xb8, 0x2d, 0x77, 0xd0, 0x17, 0xbe, 0x3b, - 0x3b, 0x32, 0x70, 0x1c, 0xc7, 0xa5, 0xfe, 0x91, 0xe8, 0xfe, 0x31, 0xb6, 0xca, 0x29, 0x92, 0xbe, - 0x77, 0x25, 0x48, 0x5f, 0x5e, 0xb4, 0xf4, 0xdf, 0x17, 0xbd, 0x08, 0x7d, 0x7e, 0xf7, 0x61, 0xca, - 0x92, 0x03, 0x00, 0x89, 0x85, 0x59, 0x28, 0x76, 0x50, 0xe8, 0xda, 0x2f, 0x96, 0x8c, 0xe3, 0x08, - 0x28, 0x7d, 0x0c, 0x1a, 0xcf, 0xa3, 0x1a, 0xf3, 0x50, 0x16, 0x6c, 0x06, 0xd6, 0xe4, 0x0c, 0x1c, - 0x2f, 0xa7, 0x7e, 0xbb, 0x02, 0x97, 0x78, 0xdb, 0x99, 0x15, 0x7d, 0x8b, 0xf4, 0x89, 0x6d, 0x10, - 0x5b, 0xdf, 0x63, 0x7c, 0xb0, 0xe1, 0x74, 0xd1, 0xe7, 0x15, 0xa8, 0x05, 0x37, 0x66, 0xa2, 0x23, - 0x2f, 0x95, 0x70, 0x9b, 0x9e, 0x83, 0x26, 0xbc, 0xb0, 0xe3, 0x3e, 0xe6, 0xc4, 0x17, 0x0e, 0x31, - 0xa3, 0x5d, 0xa8, 0xf6, 0x5d, 0x67, 0x23, 0x90, 0x01, 0x5f, 0x3c, 0xf9, 0x26, 0xac, 0x51, 0xf0, - 0x7c, 0xc7, 0xb1, 0xbf, 0x98, 0x23, 0x54, 0x31, 0x3c, 0x3e, 0x54, 0xd3, 0xd1, 0x13, 0x49, 0xaf, - 0xca, 0xa1, 0xc2, 0x27, 0xe5, 0xa3, 0xea, 0x0e, 0xa8, 0x47, 0xb7, 0xe5, 0x38, 0x00, 0x3f, 0x06, - 0xef, 0x94, 0x00, 0x2e, 0xef, 0xea, 0xc4, 0xf3, 0x9a, 0x5a, 0x5f, 0xd3, 0xa9, 0x00, 0xcc, 0x9e, - 0x13, 0x73, 0xe5, 0xf4, 0x31, 0x40, 0x7e, 0xae, 0x02, 0x0b, 0x12, 0xcc, 0x98, 0x0d, 0x57, 0x40, - 0x3d, 0xbe, 0xa1, 0x40, 0x5d, 0xb3, 0x6d, 0xc7, 0xd7, 0xe4, 0x2b, 0x53, 0x52, 0x76, 0x72, 0xb2, - 0x70, 0x2d, 0x2e, 0x45, 0x78, 0x12, 0x16, 0x12, 0x52, 0x0e, 0x96, 0x9b, 0x73, 0xe1, 0x39, 0x98, - 0x4d, 0xd6, 0x3a, 0x96, 0xa4, 0xdb, 0x84, 0xf3, 0x52, 0xab, 0xd8, 0x15, 0x4c, 0x73, 0x8b, 0xe8, - 0xdb, 0xde, 0x71, 0xc6, 0xb1, 0x41, 0x39, 0xeb, 0x10, 0x88, 0x14, 0x93, 0xe0, 0x09, 0x18, 0xdf, - 0x31, 0x3d, 0x33, 0x70, 0x13, 0x20, 0xc1, 0x78, 0x81, 0x27, 0xe3, 0x20, 0x5f, 0x7d, 0x1e, 0xce, - 0xc8, 0x30, 0x18, 0x11, 0x5d, 0xed, 0x1c, 0xa7, 0x15, 0x2b, 0x70, 0x45, 0x82, 0x90, 0xf9, 0xb8, - 0xf1, 0x38, 0xe0, 0xbe, 0x53, 0x0b, 0x68, 0x9e, 0x78, 0x7d, 0xf3, 0x03, 0x05, 0x1e, 0x25, 0x79, - 0xcb, 0x4e, 0xd0, 0x8d, 0x4f, 0x94, 0x5d, 0x17, 0xb9, 0xeb, 0x5a, 0xb8, 0xd6, 0xca, 0xcb, 0xc6, - 0xf9, 0x4d, 0x43, 0xf7, 0x63, 0x01, 0x39, 0x2a, 0xa5, 0xa4, 0xc9, 0x8c, 0x59, 0x3e, 0x2c, 0x1c, - 0x07, 0x72, 0xa1, 0xe6, 0x89, 0xb9, 0x2c, 0xf5, 0x06, 0x3b, 0x63, 0x6d, 0x08, 0x23, 0x51, 0xf1, - 0x85, 0x43, 0x3c, 0xe8, 0x3b, 0x0a, 0x9c, 0xb5, 0x32, 0xf6, 0x97, 0x38, 0xf8, 0xef, 0x3e, 0x8c, - 0xbd, 0xcb, 0x15, 0xef, 0x59, 0x39, 0x38, 0xb3, 0x2d, 0xe8, 0x1f, 0xe4, 0xbe, 0xf6, 0xad, 0x96, - 0x88, 0x87, 0x76, 0xd4, 0x06, 0x38, 0xfe, 0xc3, 0x5f, 0xf4, 0x6b, 0x50, 0x77, 0x22, 0xb2, 0x20, - 0x5e, 0x68, 0xdf, 0x2a, 0xdb, 0x3a, 0x89, 0xd2, 0xf0, 0xab, 0x4c, 0x29, 0x01, 0xcb, 0x08, 0xd1, - 0xd7, 0x14, 0x40, 0x46, 0xea, 0xf8, 0x10, 0xd7, 0xa9, 0xf8, 0xe4, 0x0f, 0x49, 0x7e, 0x77, 0x93, - 0x4e, 0xc7, 0x19, 0xad, 0x50, 0xff, 0xf5, 0x38, 0x67, 0xd4, 0x99, 0xea, 0x5c, 0x87, 0xb1, 0x0d, - 0x26, 0xeb, 0x0a, 0x62, 0x50, 0x5c, 0xb2, 0xe6, 0x22, 0x33, 0x97, 0x44, 0xf9, 0x7f, 0x2c, 0x40, - 0xa3, 0x45, 0x80, 0x0d, 0xcb, 0xd1, 0xb7, 0x9b, 0xed, 0x16, 0x0e, 0x98, 0x20, 0xb6, 0x01, 0x1b, - 0x61, 0x2a, 0x96, 0x4a, 0xa0, 0x4f, 0xc2, 0x88, 0x11, 0x8a, 0x47, 0xcf, 0x94, 0x91, 0x0c, 0x23, - 0xb3, 0x7d, 0xba, 0xdd, 0x28, 0x54, 0xe4, 0x40, 0xcd, 0x16, 0xbc, 0xb0, 0xd8, 0x5c, 0xc5, 0xe3, - 0xcd, 0x84, 0x4c, 0x75, 0xc8, 0xcb, 0x07, 0x29, 0x38, 0x44, 0x42, 0x11, 0x86, 0xc2, 0x6e, 0xb5, - 0x24, 0xc2, 0x50, 0xd2, 0x3d, 0x4c, 0x0f, 0xb1, 0x26, 0xcb, 0xad, 0x63, 0xc3, 0xcb, 0xad, 0x53, - 0xb9, 0x32, 0xeb, 0x26, 0x8c, 0xf9, 0x3c, 0xe6, 0xfd, 0x78, 0x09, 0xeb, 0x2b, 0xda, 0x01, 0x16, - 0x14, 0x3f, 0xe2, 0xd9, 0x45, 0xc4, 0x7c, 0x01, 0x9d, 0xae, 0xc6, 0x1d, 0x16, 0x0e, 0x4c, 0xf8, - 0xfd, 0x2b, 0xbe, 0x1a, 0x79, 0x54, 0x31, 0xbe, 0x1a, 0xf9, 0x7f, 0x2c, 0x40, 0xa3, 0x6d, 0x2a, - 0x89, 0xf1, 0xf3, 0x51, 0x78, 0x29, 0x58, 0x2a, 0xbb, 0x23, 0xbd, 0xc0, 0xf8, 0x9f, 0x7f, 0xe1, - 0x10, 0x01, 0xd2, 0x61, 0x5c, 0xa8, 0x3e, 0x84, 0xf3, 0xea, 0x67, 0xca, 0x04, 0x10, 0x08, 0x82, - 0xe5, 0xf1, 0x27, 0xc9, 0x01, 0x64, 0xf5, 0x3f, 0x8f, 0x72, 0xad, 0xd5, 0x1b, 0x68, 0x2f, 0xd7, - 0x85, 0x5a, 0x00, 0xac, 0x94, 0x1a, 0x30, 0x88, 0xde, 0xc2, 0x07, 0x34, 0x8c, 0xe5, 0x12, 0x02, - 0x47, 0xcd, 0xac, 0xa7, 0x46, 0x92, 0x6f, 0xb4, 0xa1, 0x9e, 0x19, 0x65, 0x1b, 0x96, 0x8c, 0x16, - 0x32, 0x2c, 0x79, 0x16, 0x66, 0x02, 0xdb, 0x3b, 0x83, 0xb0, 0xab, 0x2d, 0x61, 0x9d, 0xce, 0x9e, - 0xd8, 0x36, 0xe3, 0x59, 0x38, 0x59, 0x16, 0x7d, 0x57, 0x81, 0x77, 0x72, 0xcb, 0xf8, 0x26, 0x3d, - 0xca, 0x58, 0xc0, 0x34, 0x12, 0x45, 0x68, 0x8b, 0x8c, 0x2e, 0xc6, 0x8e, 0x6d, 0x74, 0x71, 0xf5, - 0x60, 0x7f, 0xe1, 0x9d, 0xcd, 0x21, 0x60, 0xe3, 0xa1, 0x5a, 0xa0, 0xde, 0x82, 0x89, 0x70, 0x0b, - 0xa3, 0x4b, 0x12, 0xc3, 0x1e, 0x51, 0xd9, 0x5b, 0x64, 0x8f, 0x73, 0xef, 0x0b, 0x31, 0xee, 0x9d, - 0xcb, 0x6f, 0x2f, 0xd0, 0x04, 0xc1, 0xc8, 0xab, 0xff, 0x55, 0xe1, 0x6b, 0x56, 0x04, 0x17, 0xd4, - 0xa0, 0xde, 0xe3, 0x6e, 0xe1, 0xd8, 0xc3, 0x40, 0xa5, 0xf8, 0x93, 0xc4, 0x95, 0x08, 0x0c, 0x96, - 0x61, 0xa2, 0xdd, 0x74, 0x04, 0xcc, 0x1b, 0x25, 0xe9, 0xcb, 0xd0, 0x81, 0x30, 0x51, 0xba, 0x8e, - 0x1c, 0x3a, 0x50, 0x39, 0x3c, 0x74, 0xe0, 0xd1, 0x41, 0x92, 0xd4, 0x1f, 0x8c, 0x40, 0xa6, 0x6b, - 0x7f, 0xa4, 0xc2, 0x18, 0x7f, 0xe3, 0x20, 0xc7, 0x06, 0xe5, 0x0f, 0x20, 0xb0, 0xc8, 0x41, 0x2e, - 0x9c, 0x15, 0x0f, 0x08, 0x6e, 0x91, 0xbd, 0x28, 0x26, 0xa5, 0xd8, 0xc8, 0xc3, 0x9b, 0x11, 0x33, - 0x7f, 0x51, 0x9d, 0x04, 0x24, 0x9c, 0x09, 0x1b, 0xdd, 0xe1, 0x2f, 0x7a, 0x6c, 0xe3, 0xae, 0xb3, - 0x4d, 0xec, 0x68, 0xb9, 0x89, 0x37, 0x8a, 0x8f, 0x06, 0x2f, 0x7a, 0x52, 0x05, 0x70, 0x76, 0x3d, - 0xb4, 0x03, 0xa8, 0xa7, 0xed, 0x26, 0xa1, 0x95, 0xf0, 0x28, 0xbe, 0x92, 0x82, 0x86, 0x33, 0x30, - 0xd0, 0xfd, 0xaf, 0xe9, 0x3a, 0xe9, 0xfb, 0xc4, 0xe0, 0xc3, 0x1a, 0x3c, 0x92, 0x67, 0xfb, 0x7f, - 0x29, 0x9e, 0x85, 0x93, 0x65, 0x99, 0x29, 0x3f, 0x93, 0x07, 0xde, 0x22, 0x46, 0x26, 0xac, 0xad, - 0x0f, 0xd9, 0x94, 0x9f, 0xe3, 0x38, 0xfc, 0xa6, 0xe6, 0x13, 0x70, 0x9e, 0x15, 0x5b, 0x32, 0x98, - 0x08, 0xe0, 0x11, 0x63, 0xc9, 0x30, 0xd8, 0xf3, 0xba, 0xb2, 0x31, 0x3d, 0xd5, 0x1f, 0x2b, 0x30, - 0xc3, 0x60, 0x37, 0x97, 0xb0, 0xd0, 0x52, 0xa0, 0x56, 0x60, 0x3e, 0xc8, 0xa1, 0x2e, 0x26, 0xcd, - 0x07, 0x2f, 0xf1, 0x0a, 0x2e, 0x61, 0x74, 0x5d, 0xb3, 0xbc, 0xa0, 0x66, 0xcc, 0x9e, 0xd0, 0x05, - 0x64, 0x69, 0x9e, 0xdf, 0x74, 0x7a, 0x7d, 0x8b, 0x04, 0xc4, 0xb5, 0x88, 0x63, 0x93, 0x03, 0xe1, - 0x66, 0x24, 0x0e, 0x09, 0x67, 0x40, 0x57, 0xbf, 0xa2, 0xc0, 0x6c, 0xb2, 0x71, 0xe8, 0x1e, 0xd4, - 0x5c, 0xd1, 0x40, 0xb1, 0xd6, 0x56, 0x8a, 0xcf, 0x54, 0x46, 0xaf, 0x45, 0x5c, 0x0d, 0xf1, 0x85, - 0x43, 0x64, 0xea, 0xef, 0x29, 0x30, 0x9f, 0x57, 0x09, 0xfd, 0x96, 0x02, 0xe7, 0xf5, 0xe8, 0x0c, - 0x5a, 0x1a, 0xf8, 0x5b, 0x8e, 0x6b, 0xfa, 0x26, 0x09, 0xa2, 0xf9, 0xb6, 0x4a, 0x34, 0x32, 0x9c, - 0x4b, 0xee, 0x48, 0xa3, 0x99, 0x89, 0x07, 0xe7, 0xe0, 0x57, 0xff, 0x4a, 0x81, 0xb3, 0x0c, 0x4e, - 0x32, 0x52, 0xdf, 0xc3, 0xdf, 0xb5, 0x2e, 0xd4, 0xf8, 0x9a, 0x27, 0xe5, 0x02, 0x17, 0x25, 0x5a, - 0x2e, 0xdd, 0x3f, 0x08, 0xe8, 0x38, 0xc4, 0xa3, 0xfe, 0x22, 0x98, 0xa6, 0x44, 0xa5, 0x53, 0xb8, - 0xdc, 0xb1, 0xe3, 0x97, 0x3b, 0xed, 0xe2, 0x53, 0x9e, 0xec, 0x70, 0xf6, 0x65, 0xcf, 0x8f, 0x14, - 0x98, 0x60, 0xc5, 0xdf, 0x2a, 0x76, 0x71, 0xac, 0xb1, 0x39, 0x9d, 0xf9, 0x63, 0x05, 0xe6, 0x52, - 0xae, 0x7b, 0x86, 0xa0, 0x88, 0xa7, 0x78, 0x7f, 0xf3, 0x78, 0x32, 0x9c, 0x63, 0x3d, 0xd3, 0xa7, - 0xd7, 0x8b, 0x30, 0x15, 0xbb, 0xb7, 0x0a, 0xdf, 0x6b, 0x2b, 0x99, 0xef, 0xb5, 0xe5, 0xe7, 0xd8, - 0x95, 0x43, 0x9f, 0x63, 0xff, 0xcb, 0x69, 0x31, 0xdf, 0x4c, 0xff, 0xf1, 0x32, 0x8c, 0xb1, 0x37, - 0xd3, 0x01, 0x85, 0xf9, 0x70, 0xf1, 0xc7, 0xd8, 0x1e, 0xe7, 0xad, 0xf8, 0x7f, 0x2c, 0xc0, 0xa2, - 0x16, 0xcc, 0xea, 0x96, 0x33, 0xa0, 0x92, 0xfb, 0xa6, 0x69, 0x91, 0xd5, 0x88, 0x8d, 0x0b, 0x7d, - 0xbf, 0x34, 0x13, 0xf9, 0x38, 0x55, 0x03, 0x75, 0x64, 0x8d, 0xc8, 0x87, 0x8a, 0xde, 0xe1, 0x72, - 0x5f, 0x9b, 0xa1, 0x26, 0xc4, 0x05, 0x20, 0xc1, 0xd4, 0x05, 0xa6, 0xb4, 0xcf, 0x95, 0x23, 0x2d, - 0x11, 0x29, 0x0b, 0x93, 0x3c, 0x2c, 0x61, 0x41, 0x1e, 0xd4, 0xb7, 0xa2, 0x08, 0x92, 0x42, 0x1f, - 0xf2, 0x7c, 0xd9, 0xf0, 0x95, 0x9c, 0xf3, 0x97, 0x12, 0xb0, 0x8c, 0x05, 0x79, 0x00, 0x91, 0x0c, - 0x58, 0x2a, 0xdc, 0x58, 0x24, 0x5d, 0x46, 0x3d, 0x8d, 0xd2, 0xb0, 0x84, 0x86, 0x22, 0xb5, 0x43, - 0xd7, 0x07, 0x42, 0xf5, 0x57, 0x0c, 0x69, 0xe4, 0x41, 0x21, 0x42, 0x1a, 0xa5, 0x61, 0x09, 0x0d, - 0x1d, 0xde, 0x5e, 0xe4, 0xf0, 0x42, 0x68, 0x51, 0x9e, 0x2f, 0xeb, 0x79, 0x44, 0x08, 0x56, 0x51, - 0x02, 0x96, 0xb1, 0x20, 0x07, 0xa0, 0x17, 0x3a, 0xc2, 0x10, 0x2a, 0x95, 0x62, 0x3d, 0x8d, 0xfc, - 0x69, 0x70, 0xfd, 0x60, 0xf4, 0x8d, 0x25, 0x14, 0x68, 0x5b, 0xd2, 0xa8, 0x41, 0x09, 0x65, 0xc3, - 0x50, 0xda, 0xb4, 0x0f, 0x44, 0x62, 0x5a, 0x9d, 0xed, 0xdb, 0xc7, 0x24, 0x11, 0xed, 0xc1, 0xfe, - 0xc2, 0x24, 0x23, 0x26, 0x29, 0x91, 0x2d, 0xba, 0xa6, 0x9e, 0x3c, 0xec, 0x9a, 0x1a, 0xdd, 0x80, - 0x39, 0x4f, 0xb6, 0xf0, 0x62, 0x04, 0x62, 0x8a, 0x55, 0x09, 0x5d, 0xa7, 0x74, 0x92, 0x05, 0x70, - 0xba, 0x0e, 0xa7, 0x80, 0xc4, 0x60, 0xf5, 0xa7, 0x65, 0x0a, 0xc8, 0xd3, 0x70, 0x98, 0x9b, 0x8a, - 0xba, 0x3d, 0x73, 0x5a, 0x51, 0xb7, 0x3f, 0x23, 0x87, 0x59, 0x9e, 0x2d, 0x61, 0x5d, 0x5d, 0x24, - 0xce, 0x72, 0x32, 0xe6, 0xf7, 0xdc, 0x29, 0xc5, 0xfc, 0x46, 0x4d, 0x98, 0x23, 0x72, 0xfc, 0x73, - 0x36, 0x43, 0x28, 0xd2, 0x58, 0x2d, 0x27, 0x33, 0x71, 0xba, 0x3c, 0xfa, 0x92, 0x02, 0xb3, 0x3c, - 0x9c, 0x03, 0x65, 0xef, 0x1d, 0x9b, 0xd8, 0xbe, 0x37, 0x7f, 0xa6, 0x84, 0x2b, 0xb2, 0x4e, 0x02, - 0x98, 0x10, 0xde, 0x13, 0xa9, 0x38, 0x85, 0x54, 0xfd, 0x77, 0x0a, 0x40, 0x28, 0xa0, 0x91, 0x53, - 0xe0, 0x7f, 0x49, 0x4c, 0x6a, 0x6d, 0x96, 0x93, 0x28, 0x49, 0xee, 0xfb, 0x88, 0x3f, 0x55, 0x60, - 0x3a, 0x2a, 0x76, 0x0a, 0xcc, 0xa0, 0x11, 0x67, 0x06, 0x3f, 0x52, 0xb2, 0x63, 0x39, 0x1c, 0xe1, - 0xff, 0xad, 0xc8, 0xdd, 0x62, 0x3c, 0xcf, 0x3d, 0x49, 0x57, 0xab, 0x94, 0x60, 0xb2, 0xb3, 0x22, - 0x6d, 0x47, 0x3d, 0xce, 0xd0, 0xdd, 0x7e, 0x36, 0xc6, 0x70, 0x94, 0x79, 0x5e, 0x91, 0x1d, 0x7e, - 0xfe, 0x48, 0xee, 0xc3, 0x95, 0x09, 0x10, 0xb7, 0x78, 0x5e, 0x2a, 0x68, 0xd2, 0x2f, 0x75, 0xf9, - 0xf0, 0xf0, 0xee, 0xdf, 0x9a, 0x84, 0xba, 0xa4, 0xd0, 0x78, 0x43, 0xb4, 0xf3, 0x03, 0xa8, 0xeb, - 0x8e, 0xed, 0xf9, 0xae, 0x26, 0xbd, 0xe1, 0x2f, 0x8b, 0x34, 0xa4, 0x7c, 0xcd, 0x08, 0x34, 0x96, - 0xf1, 0xd0, 0x73, 0x3a, 0x5c, 0x68, 0x23, 0x27, 0x71, 0x29, 0x70, 0xd8, 0xe2, 0x7a, 0x3f, 0x40, - 0xc0, 0xf3, 0x11, 0xee, 0x8b, 0xbe, 0x16, 0xf9, 0x5e, 0x6e, 0x7b, 0x37, 0xc3, 0x3c, 0x2c, 0x95, - 0x43, 0xaf, 0xc1, 0x94, 0x25, 0x7b, 0x5d, 0x15, 0x1c, 0x69, 0x31, 0x43, 0xbb, 0x98, 0xff, 0x56, - 0x6e, 0xe6, 0x15, 0x4b, 0xc2, 0x71, 0x5c, 0x68, 0x1b, 0x26, 0xac, 0xc0, 0x55, 0xb0, 0x60, 0x4b, - 0x9f, 0x2b, 0x8c, 0x98, 0x41, 0xe1, 0x77, 0x78, 0xe1, 0x27, 0x8e, 0xe0, 0xd3, 0x75, 0x17, 0x7e, - 0x94, 0xbb, 0xc7, 0x8b, 0xb0, 0x85, 0xeb, 0x2e, 0x4c, 0xf2, 0xb0, 0x84, 0x25, 0xe7, 0x9e, 0xa5, - 0x56, 0xe8, 0x9e, 0x65, 0x00, 0x67, 0x5c, 0xe2, 0xbb, 0x7b, 0xcd, 0x3d, 0x9d, 0x85, 0x3a, 0x77, - 0x7d, 0xa6, 0x3c, 0x9b, 0x28, 0xf6, 0x16, 0x17, 0xa7, 0x41, 0xe1, 0x2c, 0xf8, 0x54, 0xec, 0xa4, - 0x3c, 0x8c, 0x70, 0x85, 0xc3, 0xc4, 0x4e, 0xca, 0xe1, 0x60, 0x96, 0x8a, 0x3e, 0x00, 0x75, 0x9f, - 0xe8, 0x5b, 0xb6, 0xa9, 0x6b, 0x56, 0xbb, 0x25, 0x18, 0xc4, 0x88, 0x25, 0x88, 0xb2, 0xb0, 0x5c, - 0x0e, 0x35, 0x60, 0x64, 0x60, 0x1a, 0x82, 0x33, 0xfc, 0xe5, 0x50, 0x01, 0xd9, 0x6e, 0x3d, 0xd8, - 0x5f, 0x78, 0x7b, 0xf4, 0xd8, 0x2b, 0xec, 0xc9, 0xb5, 0xfe, 0x76, 0xf7, 0x9a, 0xbf, 0xd7, 0x27, - 0xde, 0xe2, 0x7a, 0xbb, 0x85, 0x69, 0xe5, 0xac, 0x7b, 0xa7, 0xa9, 0x63, 0xdc, 0x3b, 0x7d, 0x4d, - 0x81, 0x33, 0x5a, 0x52, 0x77, 0x4a, 0xbc, 0xf9, 0xe9, 0x12, 0x54, 0x39, 0x5b, 0x21, 0x1b, 0xf9, - 0xed, 0x5b, 0x4a, 0xe3, 0xc3, 0x59, 0x8d, 0x40, 0x2e, 0xa0, 0x9e, 0xd9, 0x0d, 0x1d, 0x28, 0x8b, - 0xa9, 0x9e, 0x29, 0xa6, 0x27, 0x5d, 0x49, 0x41, 0xc2, 0x19, 0xd0, 0xd1, 0x2e, 0xd4, 0xf5, 0x48, - 0x27, 0xc9, 0xa2, 0x61, 0x15, 0xe6, 0xad, 0x12, 0x0a, 0x4e, 0xe1, 0xae, 0x43, 0xd2, 0x78, 0xca, - 0xa8, 0xd4, 0x7b, 0x90, 0xe2, 0xbb, 0x90, 0x0e, 0xe3, 0x14, 0x66, 0x6b, 0xb5, 0x23, 0x38, 0x8f, - 0x67, 0x0a, 0x52, 0x6b, 0x06, 0x83, 0xeb, 0x58, 0xc4, 0x07, 0x0e, 0x20, 0xab, 0xb7, 0x01, 0x22, - 0xae, 0xb5, 0xf4, 0x8d, 0xde, 0x7f, 0xa9, 0xc2, 0xb9, 0xb2, 0x16, 0x6c, 0xcc, 0x6b, 0x32, 0x0b, - 0x73, 0xb7, 0xb4, 0xe9, 0x13, 0xf7, 0xce, 0x9d, 0x95, 0x30, 0x04, 0x58, 0x41, 0xb7, 0xcd, 0x51, - 0xa0, 0xc4, 0x14, 0x44, 0x9c, 0x83, 0x89, 0x71, 0xec, 0x22, 0x98, 0x10, 0xa6, 0x6c, 0xc5, 0xc0, - 0xf5, 0x7c, 0xf1, 0x26, 0x8c, 0x73, 0xec, 0xc9, 0x4c, 0x9c, 0x2e, 0x9f, 0x04, 0xc2, 0x43, 0xee, - 0xd1, 0x63, 0x49, 0x49, 0x03, 0xe1, 0x71, 0xf7, 0xd2, 0xe5, 0x65, 0x20, 0x7c, 0xa6, 0xa8, 0x54, - 0x5f, 0x4d, 0x03, 0x09, 0x33, 0x71, 0xba, 0x3c, 0x32, 0xe0, 0xa2, 0x4b, 0x74, 0xa7, 0xd7, 0x23, - 0xb6, 0xc1, 0x3d, 0xee, 0x6b, 0x6e, 0xd7, 0xb4, 0xaf, 0xbb, 0x1a, 0x2b, 0xc8, 0x4e, 0x1e, 0xa5, - 0x71, 0xe5, 0x60, 0x7f, 0xe1, 0x22, 0x3e, 0xa4, 0x1c, 0x3e, 0x14, 0x0a, 0xea, 0xc1, 0xcc, 0x80, - 0x79, 0x03, 0x75, 0xdb, 0xb6, 0x4f, 0xdc, 0x1d, 0xcd, 0x2a, 0x18, 0x4b, 0x92, 0xd1, 0xaf, 0xf5, - 0x38, 0x28, 0x9c, 0x84, 0x8d, 0xf6, 0xe8, 0x71, 0x20, 0x9a, 0x23, 0xa1, 0xac, 0x15, 0xf7, 0x2b, - 0x8e, 0xd3, 0xe0, 0x70, 0x16, 0x0e, 0xf5, 0xef, 0x2b, 0x20, 0x6c, 0x4a, 0xe8, 0xe9, 0x20, 0x69, - 0x56, 0x6b, 0x09, 0xad, 0xea, 0x45, 0x61, 0x37, 0x5f, 0x89, 0x72, 0x25, 0x9b, 0xf9, 0x77, 0x49, - 0x8f, 0x0d, 0x27, 0xa2, 0xa3, 0x94, 0x43, 0x96, 0x3c, 0xea, 0xfe, 0x7f, 0x30, 0xde, 0x77, 0xcd, - 0x9e, 0xe6, 0xee, 0x09, 0xae, 0x66, 0x8a, 0x7b, 0x4e, 0xd2, 0xdd, 0xbd, 0x3e, 0x65, 0x67, 0x82, - 0x5c, 0xf5, 0x27, 0x0a, 0x88, 0xda, 0xcc, 0x8d, 0xf3, 0x50, 0x3e, 0x80, 0x8f, 0xbc, 0x59, 0x96, - 0xbc, 0x10, 0x8f, 0xe4, 0x79, 0x21, 0x7e, 0x58, 0x2e, 0x7d, 0x7f, 0xa0, 0x40, 0x32, 0x3e, 0x3c, - 0x7a, 0x1c, 0xc6, 0x85, 0x77, 0x06, 0xf1, 0xbe, 0x9b, 0x3f, 0x7b, 0xe1, 0x49, 0x38, 0xc8, 0x8b, - 0xab, 0x1a, 0xca, 0x48, 0x1a, 0xd9, 0x2f, 0x50, 0x8f, 0xe0, 0xf9, 0xf7, 0xa7, 0x61, 0x8c, 0xbb, - 0x13, 0x40, 0xbf, 0x9e, 0x69, 0x8b, 0x7d, 0xbb, 0x84, 0xc7, 0x82, 0x02, 0x26, 0xd7, 0x31, 0x6f, - 0x93, 0x95, 0x43, 0xbd, 0x4d, 0x76, 0xb8, 0x97, 0xf1, 0x32, 0x9a, 0xe6, 0x26, 0x6e, 0x8b, 0x30, - 0x57, 0xc2, 0xc3, 0x38, 0x1a, 0xc4, 0x14, 0xb0, 0xa3, 0x25, 0x8e, 0x56, 0x3e, 0x04, 0x92, 0x1a, - 0x76, 0xfa, 0x10, 0x15, 0x6c, 0xf4, 0x7c, 0xbb, 0x5a, 0xc2, 0xdc, 0x43, 0x8c, 0xfa, 0x10, 0xcf, - 0xb7, 0xc3, 0xdd, 0x34, 0x96, 0xbb, 0x9b, 0xba, 0x30, 0x2e, 0xf6, 0x83, 0xa0, 0x8e, 0xcf, 0x94, - 0xf1, 0x21, 0x2e, 0xb9, 0xfd, 0xe1, 0x09, 0x38, 0x80, 0x4e, 0xcf, 0xdc, 0x9e, 0xb6, 0x6b, 0xf6, - 0x06, 0x3d, 0x46, 0x13, 0xab, 0x72, 0x51, 0x96, 0x8c, 0x83, 0x7c, 0x56, 0x94, 0xdb, 0xc9, 0x30, - 0x6e, 0x5a, 0x2e, 0x2a, 0x22, 0x35, 0x06, 0xf9, 0xe8, 0x25, 0xa8, 0xf5, 0xb4, 0xdd, 0xce, 0xc0, - 0xed, 0x12, 0xa1, 0x79, 0xcd, 0xd7, 0xf6, 0x0c, 0x7c, 0xd3, 0x5a, 0xa4, 0x72, 0xa0, 0xef, 0x2e, - 0xb6, 0x6d, 0xff, 0x8e, 0xdb, 0xf1, 0xdd, 0xd0, 0xb1, 0xf1, 0x8a, 0x80, 0x82, 0x43, 0x78, 0xc8, - 0x82, 0xe9, 0x9e, 0xb6, 0xbb, 0x6e, 0x6b, 0x61, 0x40, 0xb9, 0x7a, 0x41, 0x0c, 0xec, 0x1a, 0x6a, - 0x25, 0x06, 0x0b, 0x27, 0x60, 0x67, 0xdc, 0x78, 0x4d, 0x3e, 0xac, 0x1b, 0xaf, 0xa5, 0xd0, 0x7a, - 0x72, 0x8a, 0x2d, 0xc3, 0x47, 0xb3, 0x0c, 0x6a, 0x0e, 0x37, 0x8c, 0x7c, 0x39, 0x34, 0x8c, 0x9c, - 0x2e, 0x71, 0x4d, 0x75, 0x88, 0x51, 0xe4, 0x0e, 0xd4, 0x0d, 0xcd, 0xd7, 0x78, 0xaa, 0x37, 0x3f, - 0x53, 0x42, 0x25, 0xd5, 0x0a, 0xe1, 0x48, 0x61, 0x5e, 0x22, 0xd8, 0x58, 0x46, 0x84, 0xee, 0xf0, - 0x80, 0x63, 0x16, 0xf1, 0xa3, 0x22, 0x4c, 0x41, 0x3a, 0xcb, 0x55, 0xe0, 0x41, 0x78, 0xb0, 0x54, - 0x01, 0x9c, 0x5d, 0x8f, 0xb2, 0xa9, 0xfc, 0xbd, 0xe3, 0x5c, 0xe4, 0x70, 0x2c, 0xe6, 0xd3, 0xe1, - 0x6f, 0x65, 0x69, 0x52, 0x51, 0x09, 0x0b, 0x71, 0x4e, 0x1f, 0x8a, 0xea, 0x53, 0xd1, 0x3f, 0x55, - 0x60, 0xbe, 0x97, 0x13, 0x45, 0x45, 0x68, 0x78, 0xd7, 0xcb, 0xd0, 0x88, 0xdc, 0xd0, 0x2c, 0x3c, - 0x68, 0xf7, 0x51, 0xa5, 0x70, 0x6e, 0xe3, 0xca, 0xbe, 0xe3, 0x29, 0xe3, 0xec, 0xe2, 0x77, 0x14, - 0x98, 0x4d, 0x1e, 0x05, 0x72, 0x88, 0x34, 0xe5, 0x21, 0x87, 0x48, 0x93, 0x2e, 0xb1, 0x2b, 0x87, - 0x5c, 0x62, 0x3f, 0x0b, 0xe7, 0xb3, 0x57, 0x07, 0x65, 0xce, 0x58, 0x60, 0x42, 0x21, 0x10, 0x45, - 0x7e, 0xbc, 0x69, 0x22, 0xe6, 0x79, 0x8d, 0xc5, 0x1f, 0xfe, 0xfc, 0xf2, 0xdb, 0xfe, 0xe4, 0xe7, - 0x97, 0xdf, 0xf6, 0xd3, 0x9f, 0x5f, 0x7e, 0xdb, 0xe7, 0x0e, 0x2e, 0x2b, 0x3f, 0x3c, 0xb8, 0xac, - 0xfc, 0xc9, 0xc1, 0x65, 0xe5, 0xa7, 0x07, 0x97, 0x95, 0xff, 0x78, 0x70, 0x59, 0xf9, 0x3b, 0xff, - 0xe9, 0xf2, 0xdb, 0x5e, 0xaa, 0x05, 0x2d, 0xff, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x3a, - 0xcf, 0xea, 0x26, 0xc8, 0x00, 0x00, + // 10286 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x5b, 0x6c, 0x24, 0xd9, + 0x75, 0x98, 0xaa, 0xf9, 0x6a, 0x9e, 0x26, 0x39, 0xe4, 0x9d, 0xc7, 0x72, 0x67, 0x77, 0x96, 0xab, + 0x92, 0x56, 0x99, 0x8d, 0x64, 0x8e, 0x57, 0x0f, 0x4b, 0xbb, 0xda, 0x5d, 0x2d, 0xbb, 0x9b, 0x33, + 0xd3, 0x9a, 0xe1, 0x0c, 0x75, 0x7b, 0xb8, 0xab, 0x87, 0x21, 0xa9, 0x58, 0x75, 0xd9, 0x2c, 0xb1, + 0xba, 0xaa, 0xb7, 0xaa, 0x9a, 0x43, 0xce, 0x2a, 0x96, 0x2c, 0xeb, 0x11, 0x4b, 0x48, 0x90, 0xc0, + 0x09, 0x64, 0x48, 0x82, 0x24, 0x0b, 0x46, 0xa0, 0x00, 0x09, 0xe4, 0x08, 0x88, 0x02, 0xe7, 0xe1, + 0x00, 0xf6, 0x87, 0x05, 0x39, 0x50, 0x8c, 0xc0, 0x31, 0x14, 0xc3, 0xa1, 0x22, 0xe6, 0x61, 0xe7, + 0xf5, 0x11, 0x04, 0xf9, 0x19, 0x38, 0x41, 0x70, 0x1f, 0x75, 0xeb, 0xd6, 0x8b, 0x6c, 0x56, 0xcd, + 0x50, 0xda, 0xe4, 0x8b, 0xec, 0xfb, 0x38, 0xe7, 0xde, 0x5b, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0xe7, + 0x9e, 0x03, 0xad, 0x9e, 0x1d, 0x6e, 0x0f, 0x37, 0x97, 0x4d, 0xaf, 0x7f, 0xa5, 0x67, 0xf8, 0x16, + 0x71, 0x89, 0x1f, 0xff, 0x33, 0xd8, 0xe9, 0x5d, 0x31, 0x06, 0x76, 0x70, 0xc5, 0xf4, 0x7c, 0x72, + 0x65, 0xf7, 0x19, 0xc3, 0x19, 0x6c, 0x1b, 0xcf, 0x5c, 0xe9, 0xd1, 0x4a, 0x23, 0x24, 0xd6, 0xf2, + 0xc0, 0xf7, 0x42, 0x0f, 0xbd, 0x23, 0x06, 0xb2, 0x1c, 0xf5, 0x8d, 0xff, 0x19, 0xec, 0xf4, 0x96, + 0x29, 0x90, 0x65, 0x0a, 0x64, 0x39, 0x02, 0x72, 0xb1, 0x79, 0x22, 0xcc, 0x9b, 0x24, 0xcc, 0x22, + 0xbe, 0xf8, 0x73, 0x2a, 0x0c, 0xaf, 0xe7, 0x5d, 0x61, 0xc5, 0x9b, 0xc3, 0x2d, 0xf6, 0x8b, 0xfd, + 0x60, 0xff, 0x89, 0xe6, 0x4f, 0xef, 0xbc, 0x27, 0x58, 0xb6, 0x3d, 0x0a, 0xf8, 0x8a, 0x31, 0x0c, + 0xbd, 0xc0, 0x34, 0x1c, 0xdb, 0xed, 0x5d, 0xd9, 0xcd, 0x42, 0xd6, 0x95, 0xa6, 0x62, 0x08, 0x47, + 0xb6, 0xf1, 0x37, 0x0d, 0x33, 0xaf, 0xcd, 0x3b, 0xe3, 0x36, 0x7d, 0xc3, 0xdc, 0xb6, 0x5d, 0xe2, + 0xef, 0x47, 0x93, 0xbb, 0xe2, 0x93, 0xc0, 0x1b, 0xfa, 0x26, 0x39, 0x51, 0xaf, 0xe0, 0x4a, 0x9f, + 0x84, 0x46, 0x1e, 0xae, 0x2b, 0x45, 0xbd, 0xfc, 0xa1, 0x1b, 0xda, 0xfd, 0x2c, 0x9a, 0x5f, 0x38, + 0xae, 0x43, 0x60, 0x6e, 0x93, 0xbe, 0x91, 0xe9, 0xf7, 0x8e, 0xa2, 0x7e, 0xc3, 0xd0, 0x76, 0xae, + 0xd8, 0x6e, 0x18, 0x84, 0x7e, 0xba, 0x93, 0xfe, 0x76, 0x98, 0x58, 0xb1, 0x2c, 0xcf, 0x45, 0x4f, + 0xc3, 0x14, 0x71, 0x8d, 0x4d, 0x87, 0x58, 0x8b, 0xda, 0x93, 0xda, 0xe5, 0x7a, 0xf3, 0xcc, 0xf7, + 0x0f, 0x96, 0xde, 0x70, 0x78, 0xb0, 0x34, 0xb5, 0xca, 0x8b, 0x71, 0x54, 0xaf, 0x7f, 0xb9, 0x06, + 0x93, 0xac, 0x53, 0x80, 0x7e, 0x4d, 0x83, 0xb3, 0x3b, 0xc3, 0x4d, 0xe2, 0xbb, 0x24, 0x24, 0x41, + 0xdb, 0x08, 0xb6, 0x37, 0x3d, 0xc3, 0xe7, 0x20, 0x1a, 0x6f, 0xbf, 0xbe, 0x5c, 0x82, 0x04, 0x97, + 0x6f, 0x64, 0xe1, 0x35, 0x1f, 0x39, 0x3c, 0x58, 0x3a, 0x9b, 0x53, 0x81, 0xf3, 0xb0, 0xa3, 0xbb, + 0x30, 0xe3, 0xf6, 0x6c, 0x77, 0xaf, 0xe3, 0xf6, 0x7c, 0x12, 0x04, 0x8b, 0x35, 0x36, 0x9a, 0x95, + 0x52, 0xa3, 0xb9, 0xa5, 0x00, 0x6a, 0xce, 0x1f, 0x1e, 0x2c, 0xcd, 0xa8, 0x25, 0x38, 0x81, 0x48, + 0xff, 0xbc, 0x06, 0x67, 0x56, 0xac, 0xbe, 0x1d, 0x04, 0xb6, 0xe7, 0xae, 0x3b, 0xc3, 0x9e, 0xed, + 0xa2, 0x27, 0x61, 0xdc, 0x35, 0xfa, 0x84, 0x2d, 0xc9, 0x74, 0x73, 0x46, 0xac, 0xea, 0xf8, 0x2d, + 0xa3, 0x4f, 0x30, 0xab, 0x41, 0x1f, 0x80, 0x49, 0xd3, 0x73, 0xb7, 0xec, 0x9e, 0x18, 0xe8, 0xcf, + 0x2d, 0xf3, 0x2f, 0xb9, 0xac, 0x7e, 0x49, 0x36, 0x3e, 0x41, 0x01, 0xcb, 0xd8, 0xb8, 0xbb, 0xba, + 0x17, 0x12, 0x97, 0xa2, 0x69, 0xc2, 0xe1, 0xc1, 0xd2, 0x64, 0x8b, 0x01, 0xc0, 0x02, 0x90, 0x7e, + 0x15, 0xea, 0x2b, 0x0e, 0xf1, 0x43, 0xdb, 0xed, 0xa1, 0xe7, 0x60, 0x8e, 0xf4, 0x0d, 0xdb, 0xc1, + 0xc4, 0x24, 0xf6, 0x2e, 0xf1, 0x83, 0x45, 0xed, 0xc9, 0xb1, 0xcb, 0xd3, 0x4d, 0x74, 0x78, 0xb0, + 0x34, 0xb7, 0x9a, 0xa8, 0xc1, 0xa9, 0x96, 0xfa, 0x67, 0x34, 0x68, 0xac, 0x0c, 0x2d, 0x3b, 0xe4, + 0xf0, 0x51, 0x00, 0x0d, 0x83, 0xfe, 0x5c, 0xf7, 0x1c, 0xdb, 0xdc, 0x17, 0x9f, 0xf9, 0xa5, 0x52, + 0x0b, 0xbb, 0x12, 0xc3, 0x69, 0x9e, 0x39, 0x3c, 0x58, 0x6a, 0x28, 0x05, 0x58, 0xc5, 0xa2, 0x6f, + 0x83, 0x5a, 0x87, 0x3e, 0x04, 0x33, 0x7c, 0x96, 0x6b, 0xc6, 0x00, 0x93, 0x2d, 0x31, 0x88, 0x37, + 0x29, 0x8b, 0x16, 0x61, 0x5a, 0xbe, 0xbd, 0xf9, 0x09, 0x62, 0x86, 0x98, 0x6c, 0x11, 0x9f, 0xb8, + 0x26, 0xe1, 0xdf, 0xaf, 0xa5, 0x74, 0xc6, 0x09, 0x50, 0xfa, 0x8f, 0x35, 0x98, 0x5f, 0xd9, 0x35, + 0x6c, 0xc7, 0xd8, 0xb4, 0x1d, 0x3b, 0xdc, 0xff, 0xb0, 0xe7, 0x92, 0x11, 0x3e, 0xe0, 0x06, 0x3c, + 0x32, 0x74, 0x0d, 0xde, 0xcf, 0x21, 0x6b, 0xfc, 0x93, 0xdd, 0xd9, 0x1f, 0x10, 0x4a, 0x7a, 0x74, + 0xa9, 0x1f, 0x3b, 0x3c, 0x58, 0x7a, 0x64, 0x23, 0xbf, 0x09, 0x2e, 0xea, 0x8b, 0x30, 0x5c, 0x50, + 0xaa, 0x5e, 0xf6, 0x9c, 0x61, 0x5f, 0x40, 0x1d, 0x63, 0x50, 0x2f, 0x1e, 0x1e, 0x2c, 0x5d, 0xd8, + 0xc8, 0x6d, 0x81, 0x0b, 0x7a, 0xea, 0x3f, 0xa8, 0xc1, 0x4c, 0xd3, 0x30, 0x77, 0x86, 0x83, 0xe6, + 0xd0, 0xdc, 0x21, 0x21, 0xfa, 0x38, 0xd4, 0x29, 0xe7, 0xb2, 0x8c, 0xd0, 0x10, 0x2b, 0xf9, 0xf3, + 0x85, 0xe4, 0xc7, 0xbe, 0x22, 0x6d, 0x1d, 0xaf, 0xed, 0x1a, 0x09, 0x8d, 0x26, 0x12, 0x6b, 0x02, + 0x71, 0x19, 0x96, 0x50, 0x51, 0x0f, 0xc6, 0x83, 0x01, 0x31, 0x05, 0x71, 0xaf, 0x96, 0x22, 0x16, + 0x75, 0xc8, 0xdd, 0x01, 0x31, 0xe3, 0xcf, 0x40, 0x7f, 0x61, 0x86, 0x00, 0x79, 0x30, 0x19, 0x84, + 0x46, 0x38, 0xa4, 0xeb, 0x43, 0x51, 0x5d, 0xab, 0x8e, 0x8a, 0x81, 0x6b, 0xce, 0x09, 0x64, 0x93, + 0xfc, 0x37, 0x16, 0x68, 0xf4, 0x1f, 0x69, 0x30, 0xaf, 0x36, 0xbf, 0x69, 0x07, 0x21, 0xfa, 0xc5, + 0xcc, 0x82, 0x2e, 0x8f, 0xb6, 0xa0, 0xb4, 0x37, 0x5b, 0xce, 0x79, 0x81, 0xae, 0x1e, 0x95, 0x28, + 0x8b, 0xb9, 0x05, 0x13, 0x76, 0x48, 0xfa, 0x9c, 0xb0, 0xca, 0xf2, 0x34, 0x75, 0xcc, 0xcd, 0x59, + 0x81, 0x6d, 0xa2, 0x43, 0xe1, 0x62, 0x0e, 0x5e, 0xff, 0x38, 0x9c, 0x53, 0x5b, 0xad, 0xfb, 0xde, + 0xae, 0x6d, 0x11, 0x9f, 0x6e, 0x86, 0x70, 0x7f, 0x90, 0xd9, 0x0c, 0x94, 0xb8, 0x30, 0xab, 0x41, + 0x6f, 0x81, 0x49, 0x9f, 0xf4, 0x6c, 0xcf, 0x65, 0x1f, 0x7c, 0x3a, 0x5e, 0x3c, 0xcc, 0x4a, 0xb1, + 0xa8, 0xd5, 0xff, 0x4b, 0x2d, 0xb9, 0x78, 0xf4, 0x43, 0xa2, 0xbb, 0x50, 0x1f, 0x08, 0x54, 0x62, + 0xf1, 0x3a, 0x95, 0x67, 0x18, 0x8d, 0x3d, 0x5e, 0xd7, 0xa8, 0x04, 0x4b, 0x64, 0xc8, 0x86, 0xb9, + 0xe8, 0xff, 0x56, 0x05, 0x5e, 0xcc, 0x78, 0xea, 0x7a, 0x02, 0x10, 0x4e, 0x01, 0x46, 0x77, 0x60, + 0x3a, 0x20, 0xa6, 0x4f, 0x28, 0x5f, 0x12, 0x94, 0x9a, 0xcb, 0xbc, 0xba, 0x51, 0x23, 0xc1, 0xbc, + 0x16, 0xc4, 0xf0, 0xa7, 0x65, 0x05, 0x8e, 0x01, 0xa1, 0xc7, 0x61, 0x3c, 0x20, 0xc4, 0x5a, 0x1c, + 0x67, 0x8b, 0x5e, 0x67, 0x5b, 0x83, 0x10, 0x0b, 0xb3, 0x52, 0xfd, 0x5b, 0xe3, 0x80, 0xb2, 0x84, + 0xad, 0xce, 0x9a, 0x97, 0x88, 0x45, 0xaf, 0x32, 0x6b, 0xb1, 0x47, 0x52, 0x80, 0xd1, 0x6b, 0x30, + 0xeb, 0x18, 0x41, 0x78, 0x7b, 0x40, 0xc5, 0x8f, 0x88, 0x3a, 0x1a, 0x6f, 0x6f, 0x96, 0xfa, 0xbc, + 0x37, 0x55, 0x48, 0xcd, 0x85, 0xc3, 0x83, 0xa5, 0xd9, 0x44, 0x11, 0x4e, 0xe2, 0x42, 0x3b, 0x30, + 0x4d, 0x0b, 0x56, 0x7d, 0xdf, 0xf3, 0xc5, 0x92, 0xbf, 0x58, 0x1a, 0x31, 0x83, 0xd2, 0x9c, 0xa5, + 0x5f, 0x42, 0xfe, 0xc4, 0x31, 0x7c, 0xf4, 0x7e, 0x40, 0xde, 0x66, 0x40, 0xfc, 0x5d, 0x62, 0x5d, + 0xe3, 0xd2, 0x16, 0x9d, 0x2e, 0xfd, 0x2e, 0x63, 0xcd, 0x8b, 0xe2, 0x1b, 0xa2, 0xdb, 0x99, 0x16, + 0x38, 0xa7, 0x17, 0xda, 0x01, 0x24, 0x25, 0x36, 0xf9, 0xd9, 0x17, 0x27, 0x46, 0x27, 0x9a, 0x0b, + 0x14, 0xd9, 0xb5, 0x0c, 0x08, 0x9c, 0x03, 0x56, 0xff, 0xfd, 0x1a, 0x34, 0x38, 0x91, 0xac, 0xba, + 0xa1, 0xbf, 0x7f, 0x0a, 0x47, 0xc3, 0x56, 0xe2, 0x68, 0x68, 0x57, 0xd8, 0xea, 0x6c, 0xc4, 0x85, + 0x27, 0x83, 0x9b, 0x3a, 0x19, 0xae, 0x56, 0xc6, 0x74, 0xf4, 0xc1, 0xf0, 0xc7, 0x1a, 0x9c, 0x51, + 0x5a, 0x9f, 0xc2, 0xb9, 0x40, 0x92, 0xe7, 0xc2, 0x4b, 0x55, 0x27, 0x58, 0x70, 0x2c, 0x98, 0x89, + 0x79, 0x31, 0x96, 0xfd, 0x76, 0x80, 0x4d, 0xc6, 0x53, 0x6e, 0xc5, 0x42, 0x92, 0xfc, 0xea, 0x4d, + 0x59, 0x83, 0x95, 0x56, 0x92, 0x59, 0xd5, 0x72, 0x99, 0xd5, 0x9f, 0x8d, 0xc1, 0x42, 0x66, 0xad, + 0xb3, 0x0c, 0x44, 0xfb, 0x69, 0x31, 0x90, 0xda, 0x4f, 0x85, 0x81, 0x8c, 0x95, 0x62, 0x20, 0x97, + 0xa1, 0x4e, 0xd7, 0x94, 0x7d, 0x1b, 0x7e, 0x34, 0xcc, 0x50, 0x0a, 0xea, 0x8a, 0x32, 0x2c, 0x6b, + 0x91, 0x0f, 0xa8, 0x6f, 0xf7, 0x78, 0xb7, 0x6e, 0x68, 0xf8, 0xe1, 0x1d, 0xbb, 0x4f, 0x04, 0xab, + 0xf9, 0xcb, 0xa3, 0x51, 0x2a, 0xed, 0xc1, 0x39, 0xce, 0x5a, 0x06, 0x12, 0xce, 0x81, 0xae, 0xff, + 0x9e, 0x06, 0x63, 0x2d, 0xdc, 0x41, 0x6f, 0x4d, 0x88, 0xd8, 0x8f, 0xa8, 0x22, 0xf6, 0xfd, 0x83, + 0xa5, 0xa9, 0x16, 0xee, 0x28, 0xd2, 0xf6, 0x5f, 0xd7, 0x60, 0xc1, 0xf4, 0xdc, 0xd0, 0xa0, 0xa3, + 0xc0, 0xfc, 0x3c, 0x8a, 0xe8, 0xbe, 0x9c, 0x74, 0xd9, 0x4a, 0x41, 0x6b, 0x3e, 0x2a, 0x46, 0xb0, + 0x90, 0xae, 0x09, 0x70, 0x16, 0xb5, 0xbe, 0x01, 0xd3, 0x2d, 0xc7, 0x1b, 0x5a, 0x1d, 0x77, 0xcb, + 0x7b, 0x80, 0x02, 0xd2, 0xbf, 0xd1, 0x60, 0x86, 0xc1, 0x5d, 0xf7, 0xbd, 0x2d, 0xdb, 0x21, 0xaf, + 0x13, 0x51, 0x5d, 0x1d, 0x72, 0x11, 0x43, 0x66, 0x92, 0xb3, 0xda, 0xf0, 0xf5, 0x22, 0x39, 0xab, + 0x63, 0x2e, 0x60, 0x91, 0x5f, 0x9d, 0x4a, 0x4e, 0x8d, 0x31, 0xc9, 0xcb, 0x50, 0x37, 0x8d, 0xe6, + 0xd0, 0xb5, 0x1c, 0x49, 0x19, 0x74, 0x98, 0xad, 0x15, 0x5e, 0x86, 0x65, 0x2d, 0x7a, 0x0d, 0x20, + 0x36, 0x69, 0x88, 0x0f, 0x71, 0xad, 0xa2, 0x1d, 0xa5, 0x4b, 0xc2, 0xd0, 0x76, 0x7b, 0x41, 0xfc, + 0xf5, 0xe3, 0x3a, 0xac, 0xa0, 0x43, 0xbf, 0x04, 0xb3, 0x62, 0x99, 0x3b, 0x7d, 0xa3, 0x27, 0x14, + 0xcd, 0xb2, 0x6b, 0xb5, 0xa6, 0x40, 0x6a, 0x9e, 0x17, 0x98, 0x67, 0xd5, 0xd2, 0x00, 0x27, 0xd1, + 0xa1, 0x7b, 0x30, 0xd3, 0x57, 0xb5, 0xe7, 0xf1, 0x0a, 0x87, 0x99, 0xa2, 0x4a, 0x37, 0xcf, 0x09, + 0xec, 0x33, 0x09, 0xc5, 0x3b, 0x81, 0x2b, 0x47, 0x03, 0x98, 0x78, 0x58, 0x1a, 0xc0, 0x16, 0x4c, + 0xf1, 0x3d, 0x1e, 0x2c, 0x4e, 0xb2, 0x19, 0xbe, 0xb7, 0xd4, 0x0c, 0x39, 0xbf, 0x88, 0x0d, 0x75, + 0xfc, 0x77, 0x80, 0x23, 0xe0, 0xe8, 0x2e, 0xcc, 0x50, 0xf6, 0xde, 0x25, 0x0e, 0x31, 0x43, 0xcf, + 0x5f, 0x9c, 0xaa, 0x60, 0x07, 0xeb, 0x2a, 0x80, 0xb8, 0x1d, 0x45, 0x2d, 0xc1, 0x09, 0x44, 0x92, + 0x09, 0xd6, 0x0b, 0x99, 0xe0, 0x2e, 0x34, 0x76, 0x15, 0x83, 0xc6, 0x34, 0x5b, 0x86, 0xf7, 0x95, + 0x1a, 0x59, 0x6c, 0xde, 0x68, 0x9e, 0x15, 0x98, 0x1a, 0xaa, 0x29, 0x44, 0x45, 0xa4, 0x1f, 0xd4, + 0x61, 0xa1, 0xe5, 0x0c, 0x83, 0x90, 0xf8, 0x2b, 0xc2, 0xd6, 0x4c, 0x7c, 0xf4, 0x19, 0x0d, 0x2e, + 0xb0, 0x7f, 0xdb, 0xde, 0x5d, 0xb7, 0x4d, 0x1c, 0x63, 0x7f, 0x65, 0x8b, 0xb6, 0xb0, 0xac, 0x93, + 0x31, 0xa2, 0xf6, 0x50, 0x48, 0x14, 0xcc, 0x34, 0xd3, 0xcd, 0x85, 0x88, 0x0b, 0x30, 0xa1, 0x2f, + 0x69, 0xf0, 0x68, 0x4e, 0x55, 0x9b, 0x38, 0x24, 0x24, 0x82, 0x13, 0x9c, 0x74, 0x1c, 0x97, 0x0e, + 0x0f, 0x96, 0x1e, 0xed, 0x16, 0x01, 0xc5, 0xc5, 0xf8, 0xe8, 0x29, 0x7b, 0x31, 0xa7, 0xf6, 0xaa, + 0x61, 0x3b, 0x43, 0x9f, 0x08, 0x39, 0xfa, 0xa4, 0xc3, 0x79, 0xe2, 0xf0, 0x60, 0xe9, 0x62, 0xb7, + 0x10, 0x2a, 0x3e, 0x02, 0x23, 0xfa, 0x14, 0x9c, 0x97, 0xb5, 0x1b, 0xae, 0x4b, 0x88, 0x45, 0x2c, + 0x26, 0xa2, 0x8c, 0x97, 0x1a, 0xca, 0xa3, 0x87, 0x07, 0x4b, 0xe7, 0xbb, 0x79, 0x00, 0x71, 0x3e, + 0x1e, 0xd4, 0x83, 0x4b, 0x71, 0x45, 0x68, 0x3b, 0xf6, 0x3d, 0x06, 0xe9, 0xce, 0xb6, 0x4f, 0x82, + 0x6d, 0xcf, 0xb1, 0x18, 0xbf, 0xd0, 0x9a, 0x6f, 0x3c, 0x3c, 0x58, 0xba, 0xd4, 0x3d, 0xaa, 0x21, + 0x3e, 0x1a, 0x0e, 0xb2, 0x60, 0x26, 0x30, 0x0d, 0xb7, 0xe3, 0x86, 0xc4, 0xdf, 0x35, 0x9c, 0xc5, + 0xc9, 0x52, 0x13, 0xe4, 0x7b, 0x54, 0x81, 0x83, 0x13, 0x50, 0xd1, 0x7b, 0xa0, 0x4e, 0xf6, 0x06, + 0x86, 0x6b, 0x11, 0xce, 0x18, 0xa6, 0x9b, 0x8f, 0xd3, 0x23, 0x69, 0x55, 0x94, 0xdd, 0x3f, 0x58, + 0x9a, 0x89, 0xfe, 0x5f, 0xf3, 0x2c, 0x82, 0x65, 0x6b, 0xf4, 0x49, 0x38, 0xd7, 0x37, 0xf6, 0x6e, + 0x79, 0x16, 0x61, 0x7c, 0x8e, 0xb2, 0x3d, 0xf6, 0x21, 0xea, 0xa5, 0xc6, 0xb9, 0x78, 0x78, 0xb0, + 0x74, 0x6e, 0x2d, 0x07, 0x1e, 0xce, 0xc5, 0x42, 0x3f, 0x43, 0xdf, 0xd8, 0xbb, 0xe6, 0x1b, 0x26, + 0xd9, 0x1a, 0x3a, 0x77, 0x88, 0xdf, 0xb7, 0x5d, 0x2e, 0x56, 0x12, 0xd3, 0x73, 0x2d, 0xca, 0x4b, + 0xb4, 0xcb, 0x13, 0xfc, 0x33, 0xac, 0x1d, 0xd5, 0x10, 0x1f, 0x0d, 0x07, 0xbd, 0x13, 0x66, 0xec, + 0x9e, 0xeb, 0xf9, 0xe4, 0x8e, 0x61, 0xbb, 0x61, 0xb0, 0x08, 0xcc, 0xe8, 0xca, 0x96, 0xb5, 0xa3, + 0x94, 0xe3, 0x44, 0x2b, 0xfd, 0xbf, 0x6a, 0xd0, 0x10, 0x0c, 0x86, 0xc9, 0x83, 0x26, 0x4c, 0x98, + 0x54, 0x1a, 0x10, 0x8c, 0xe4, 0xc5, 0xf2, 0x62, 0x07, 0x05, 0x17, 0xcb, 0x1c, 0xac, 0x08, 0x73, + 0xd8, 0xe8, 0x6e, 0x8e, 0xd0, 0xd0, 0xaa, 0x28, 0x34, 0x30, 0x74, 0xc7, 0x08, 0x0c, 0xfa, 0xc1, + 0x18, 0x4c, 0xb7, 0x3c, 0xd7, 0xb2, 0x99, 0xb2, 0xf1, 0x4c, 0x42, 0xf6, 0xbd, 0xa4, 0xb2, 0xfd, + 0xfb, 0x07, 0x4b, 0xb3, 0xb2, 0xa1, 0x72, 0x0e, 0x3c, 0x2b, 0x35, 0x73, 0x2e, 0x0c, 0xbf, 0x31, + 0xa9, 0x51, 0xdf, 0x3f, 0x58, 0x3a, 0x23, 0xbb, 0x25, 0x95, 0x6c, 0xb4, 0x0b, 0x88, 0xea, 0x4c, + 0x77, 0x7c, 0xc3, 0x0d, 0x38, 0x58, 0x4a, 0x84, 0x63, 0x27, 0x56, 0x58, 0xa4, 0x4a, 0x75, 0x33, + 0x03, 0x0d, 0xe7, 0x60, 0x40, 0x9f, 0x80, 0x39, 0x5a, 0xba, 0x31, 0xb0, 0x8c, 0x90, 0x28, 0x1c, + 0xe8, 0x44, 0x4a, 0x92, 0xc0, 0x39, 0x77, 0x33, 0x01, 0x09, 0xa7, 0x20, 0x73, 0x5d, 0xc1, 0x08, + 0x3c, 0x97, 0x31, 0x97, 0x84, 0xae, 0x40, 0x4b, 0xb1, 0xa8, 0x45, 0x4f, 0xc3, 0x54, 0x9f, 0x04, + 0x81, 0xd1, 0x23, 0x8c, 0x5b, 0x4c, 0xc7, 0x42, 0xc1, 0x1a, 0x2f, 0xc6, 0x51, 0x3d, 0x7a, 0x1b, + 0x4c, 0x98, 0x9e, 0x45, 0x82, 0xc5, 0x29, 0x46, 0xcf, 0x17, 0x18, 0x31, 0xd1, 0x82, 0xfb, 0x07, + 0x4b, 0xd3, 0x4c, 0x01, 0xa5, 0xbf, 0x30, 0x6f, 0xa4, 0x7f, 0x83, 0x0a, 0xea, 0x29, 0x8d, 0xa7, + 0xe8, 0x46, 0x84, 0x7f, 0x56, 0xa6, 0xa3, 0x9d, 0x9e, 0x39, 0x55, 0xff, 0xd5, 0x1a, 0x9c, 0xa3, + 0x23, 0xf4, 0x3d, 0xc7, 0xa1, 0xa7, 0xd7, 0xc0, 0xf1, 0xf6, 0xfb, 0xc4, 0x3d, 0x8d, 0x9b, 0x8d, + 0x48, 0xcc, 0xa9, 0x15, 0x8a, 0x39, 0xfd, 0xcc, 0x3a, 0x8c, 0x95, 0x59, 0x07, 0x49, 0x2e, 0xc7, + 0xac, 0xc5, 0x9f, 0x6b, 0xb0, 0x98, 0xb7, 0x16, 0xa7, 0xa0, 0x5e, 0xb9, 0x49, 0xf5, 0xaa, 0x53, + 0x5a, 0x11, 0x4f, 0x8f, 0xbd, 0x40, 0xcd, 0xfa, 0xf3, 0x1a, 0x5c, 0x88, 0x9b, 0x77, 0xdc, 0x20, + 0x34, 0x1c, 0x87, 0xdb, 0x3c, 0x1e, 0xfe, 0x87, 0x7f, 0x35, 0xa1, 0x27, 0xdf, 0xae, 0x38, 0x57, + 0x75, 0xf0, 0x85, 0x26, 0xcc, 0xfd, 0x94, 0x09, 0xf3, 0x03, 0x0f, 0x12, 0xe9, 0xd1, 0xd6, 0xcc, + 0xff, 0xa6, 0xc1, 0xc5, 0xfc, 0x8e, 0xa7, 0x40, 0x57, 0x83, 0x24, 0x5d, 0xdd, 0x78, 0x80, 0xd3, + 0x2e, 0xa0, 0xac, 0xef, 0xd6, 0x8a, 0xa6, 0xcb, 0x54, 0xf9, 0x2d, 0x38, 0x43, 0xf5, 0xab, 0x20, + 0x14, 0x56, 0xb7, 0x93, 0xdd, 0x40, 0x47, 0xb6, 0xad, 0x33, 0x38, 0x09, 0x03, 0xa7, 0x81, 0xa2, + 0x5b, 0x30, 0x45, 0x75, 0x2a, 0x0a, 0xbf, 0x36, 0x3a, 0x7c, 0xc9, 0xf7, 0xbb, 0xbc, 0x2f, 0x8e, + 0x80, 0xa0, 0x5f, 0x84, 0x59, 0x4b, 0x6e, 0xaa, 0x63, 0xae, 0x9e, 0xd2, 0x50, 0x99, 0x81, 0xb4, + 0xad, 0xf6, 0xc6, 0x49, 0x60, 0xfa, 0xff, 0xd6, 0xe0, 0xf1, 0xa3, 0x88, 0x0b, 0xf9, 0x00, 0x66, + 0x74, 0x90, 0x73, 0x0f, 0x84, 0xd2, 0xc2, 0x50, 0x04, 0x26, 0xde, 0xa4, 0xb2, 0x28, 0xc0, 0x0a, + 0x96, 0x9c, 0xeb, 0xad, 0xda, 0x43, 0xba, 0xde, 0xd2, 0xff, 0xbb, 0xa6, 0xb2, 0x23, 0xf5, 0xe3, + 0xbe, 0xee, 0xd8, 0x91, 0x3a, 0xf8, 0x42, 0x03, 0xde, 0x1f, 0xd5, 0xe0, 0xc9, 0xfc, 0x2e, 0xca, + 0x09, 0xfc, 0x12, 0x4c, 0x0e, 0xb8, 0xa3, 0xc8, 0x18, 0x3b, 0x21, 0x2f, 0x53, 0xe6, 0xc2, 0xbd, + 0x38, 0xee, 0x1f, 0x2c, 0x5d, 0xcc, 0xe3, 0xf6, 0xc2, 0xff, 0x43, 0xf4, 0x43, 0x76, 0xca, 0x82, + 0xc1, 0x25, 0xad, 0x77, 0x8c, 0xc8, 0x5f, 0x8c, 0x4d, 0xe2, 0x8c, 0x6c, 0xb3, 0xf8, 0x8c, 0x06, + 0x73, 0x09, 0x9a, 0x0e, 0x16, 0x27, 0x18, 0x95, 0x96, 0xbb, 0x61, 0x48, 0xec, 0x96, 0xf8, 0x00, + 0x4f, 0x14, 0x07, 0x38, 0x85, 0x31, 0xc5, 0x6a, 0xd5, 0x65, 0x7d, 0xfd, 0xb1, 0x5a, 0x75, 0xf4, + 0x05, 0xac, 0xf6, 0xeb, 0xb5, 0xa2, 0xe9, 0x32, 0x56, 0xbb, 0x07, 0xd3, 0x91, 0x33, 0x5e, 0xc4, + 0x32, 0xae, 0x55, 0x1e, 0x14, 0x87, 0x17, 0xdf, 0xa6, 0x47, 0x25, 0x01, 0x8e, 0x91, 0xa1, 0xcf, + 0x69, 0x00, 0xf1, 0xa7, 0x11, 0x1b, 0x6b, 0xe3, 0x01, 0x2e, 0x88, 0x22, 0xdf, 0xcc, 0xd1, 0x7d, + 0xad, 0xd0, 0x85, 0x82, 0x58, 0xff, 0xad, 0x1a, 0xa0, 0xec, 0xe0, 0xa9, 0xe0, 0xb9, 0x63, 0xbb, + 0x56, 0x5a, 0x00, 0xbf, 0x61, 0xbb, 0x16, 0x66, 0x35, 0x23, 0x88, 0xa6, 0x2f, 0xc0, 0x99, 0x9e, + 0xe3, 0x6d, 0x1a, 0x8e, 0xb3, 0x2f, 0x3c, 0xfc, 0xd8, 0x2e, 0xad, 0x37, 0xcf, 0xd2, 0xe3, 0xe9, + 0x5a, 0xb2, 0x0a, 0xa7, 0xdb, 0xa2, 0x01, 0xcc, 0xfb, 0x54, 0x51, 0x36, 0x6d, 0x87, 0xa9, 0x2a, + 0xde, 0x30, 0x2c, 0x69, 0x89, 0x39, 0x77, 0x78, 0xb0, 0x34, 0x8f, 0x53, 0xb0, 0x70, 0x06, 0x3a, + 0x7a, 0x0a, 0xa6, 0x06, 0xbe, 0xdd, 0x37, 0xfc, 0x7d, 0xa6, 0x0c, 0xd5, 0x9b, 0x0d, 0x7a, 0xce, + 0xad, 0xf3, 0x22, 0x1c, 0xd5, 0xe9, 0x9f, 0xd3, 0x60, 0xaa, 0xe5, 0xf9, 0xa4, 0x7d, 0xab, 0x8b, + 0xee, 0x41, 0x43, 0xf1, 0x28, 0x15, 0x5b, 0xa6, 0x2c, 0x09, 0x31, 0x90, 0x2b, 0x31, 0xb8, 0xc8, + 0x6b, 0x4d, 0x16, 0x60, 0x15, 0x99, 0xbe, 0x4e, 0xbf, 0x5c, 0xba, 0x0f, 0x7a, 0x0e, 0xc6, 0xfb, + 0x9e, 0x15, 0xa9, 0x4e, 0x6f, 0x89, 0xbe, 0xcb, 0x9a, 0x67, 0x51, 0x15, 0xf9, 0x42, 0xb6, 0x07, + 0xb3, 0xbd, 0xb0, 0x3e, 0xfa, 0xd7, 0x34, 0x18, 0xa3, 0xb3, 0xd2, 0x61, 0xd2, 0xf2, 0xfa, 0x86, + 0xed, 0x0a, 0x28, 0xcc, 0x01, 0xb0, 0xcd, 0x4a, 0xb0, 0xa8, 0x41, 0xaf, 0xc2, 0x74, 0x74, 0x42, + 0x55, 0xbb, 0x13, 0x6e, 0xdf, 0xea, 0x4a, 0x07, 0x1a, 0xb9, 0x67, 0xa2, 0x92, 0x00, 0xc7, 0x58, + 0x74, 0x03, 0x16, 0xda, 0xb7, 0xba, 0x1d, 0xd7, 0x74, 0x86, 0x16, 0x59, 0xdd, 0x63, 0x7f, 0xe8, + 0x47, 0xb3, 0x79, 0x89, 0xf0, 0x3a, 0x64, 0x1f, 0x4d, 0x34, 0xc2, 0x51, 0x1d, 0x6d, 0x46, 0x78, + 0x0f, 0xe1, 0x31, 0xc7, 0x9a, 0x09, 0x20, 0x38, 0xaa, 0xd3, 0xff, 0xa4, 0x06, 0x0d, 0x65, 0x40, + 0xa8, 0x0f, 0x53, 0x7c, 0xbe, 0x91, 0xe3, 0xca, 0xd5, 0xb2, 0x73, 0x4c, 0x0e, 0x9b, 0xa3, 0xe7, + 0x4b, 0x1a, 0xe0, 0x08, 0x87, 0x4a, 0x81, 0xb5, 0x62, 0x0a, 0x44, 0xcb, 0x00, 0xdc, 0x2f, 0x87, + 0xdd, 0xba, 0xf2, 0xa3, 0x8f, 0x6d, 0xf2, 0xae, 0x2c, 0xc5, 0x4a, 0x0b, 0xf4, 0xb8, 0xd8, 0xab, + 0x8a, 0xeb, 0x8e, 0xb2, 0x4f, 0x7b, 0x30, 0x71, 0xcf, 0x73, 0x49, 0x20, 0xae, 0x23, 0x1e, 0xd4, + 0x0c, 0xa7, 0x29, 0x33, 0xfe, 0x30, 0x05, 0x8c, 0x39, 0x7c, 0xfd, 0x37, 0x34, 0x80, 0xb6, 0x11, + 0x1a, 0xdc, 0x76, 0x3e, 0x82, 0xdb, 0xe3, 0xe3, 0x09, 0x1e, 0x53, 0xcf, 0x5c, 0x73, 0x8e, 0x07, + 0xf6, 0xbd, 0x68, 0xfe, 0x52, 0x80, 0xe1, 0xd0, 0xbb, 0xf6, 0x3d, 0x82, 0x59, 0x3d, 0x7a, 0x2b, + 0x4c, 0x13, 0xd7, 0xf4, 0xf7, 0x07, 0xa1, 0xf0, 0x5e, 0xaa, 0xf3, 0xab, 0xf1, 0xd5, 0xa8, 0x10, + 0xc7, 0xf5, 0xfa, 0x33, 0x90, 0x14, 0x43, 0x8f, 0x1f, 0xa5, 0xbe, 0x0b, 0xf5, 0x55, 0xd7, 0x1a, + 0x78, 0xb6, 0x1b, 0x8e, 0x30, 0xa7, 0x4b, 0x30, 0x36, 0xf4, 0x1d, 0x31, 0xa5, 0x86, 0x68, 0x30, + 0xb6, 0x81, 0x6f, 0x62, 0x5a, 0x8e, 0x9e, 0x86, 0xa9, 0xc1, 0xd0, 0x1f, 0x78, 0x41, 0x34, 0x2f, + 0x29, 0x6f, 0xaf, 0xf3, 0x62, 0x1c, 0xd5, 0xeb, 0xf7, 0x35, 0x98, 0x5f, 0xdd, 0x1b, 0xd8, 0x3e, + 0x73, 0xc1, 0x24, 0x3e, 0x15, 0x25, 0x69, 0xff, 0x5d, 0xfe, 0xaf, 0x18, 0x83, 0xec, 0x2f, 0x5a, + 0xe0, 0xa8, 0x1e, 0x6d, 0xc1, 0x1c, 0x61, 0xdd, 0xd9, 0x71, 0x61, 0xc8, 0x2b, 0x80, 0x93, 0x98, + 0x99, 0xb8, 0x8b, 0x6f, 0x02, 0x0a, 0x4e, 0x41, 0x45, 0x5d, 0x98, 0x33, 0x1d, 0x23, 0x08, 0xec, + 0x2d, 0xdb, 0x8c, 0x3d, 0x0d, 0xa6, 0x9b, 0x6f, 0xa5, 0x7d, 0x5b, 0x89, 0x9a, 0xfb, 0x07, 0x4b, + 0xe7, 0xc5, 0x38, 0x93, 0x15, 0x38, 0x05, 0x42, 0xff, 0x4a, 0x0d, 0x66, 0x57, 0xf7, 0x06, 0x5e, + 0x30, 0xf4, 0x09, 0x6b, 0x7a, 0x0a, 0x52, 0xf0, 0xd3, 0x30, 0xb5, 0x6d, 0xb8, 0x96, 0x43, 0x7c, + 0xf1, 0xf9, 0xe4, 0xda, 0x5e, 0xe7, 0xc5, 0x38, 0xaa, 0x47, 0x9f, 0x04, 0x08, 0xcc, 0x6d, 0x62, + 0x0d, 0xd9, 0xb1, 0xc0, 0x15, 0xa1, 0x9b, 0xa5, 0x36, 0x56, 0x62, 0x92, 0x5d, 0x09, 0x53, 0xec, + 0x77, 0xf9, 0x1b, 0x2b, 0xf8, 0xf4, 0x3f, 0xd1, 0x60, 0x21, 0xd1, 0xef, 0x14, 0x64, 0xbb, 0x5e, + 0x52, 0xb6, 0x6b, 0x56, 0x9f, 0x6c, 0x81, 0x48, 0xf7, 0xc5, 0x1a, 0x3c, 0x52, 0xb0, 0x28, 0x99, + 0xfb, 0x48, 0xed, 0xb4, 0xee, 0x23, 0x77, 0xa1, 0x11, 0x7a, 0x8e, 0xf0, 0x89, 0x89, 0xd6, 0xa0, + 0xdc, 0x6d, 0xe3, 0x1d, 0x09, 0x27, 0xbe, 0x6d, 0x8c, 0xcb, 0x02, 0xac, 0x22, 0xd2, 0x7f, 0x57, + 0x83, 0x69, 0xa9, 0x47, 0x8e, 0xe0, 0x1a, 0x72, 0x8a, 0x5e, 0xa8, 0x97, 0xa1, 0x6e, 0xd9, 0x81, + 0x2a, 0xf7, 0x31, 0x8f, 0x84, 0xb6, 0x28, 0xc3, 0xb2, 0x56, 0xff, 0x17, 0x35, 0xb8, 0x20, 0x61, + 0x47, 0x22, 0x28, 0x55, 0x7b, 0x47, 0x91, 0x43, 0x1f, 0x17, 0x1c, 0x57, 0x39, 0x23, 0x14, 0x6e, + 0xfb, 0x54, 0x9a, 0x9d, 0x36, 0xf2, 0x58, 0x29, 0xba, 0x05, 0x13, 0x01, 0xc5, 0x27, 0x04, 0xcc, + 0x13, 0xae, 0x06, 0x3b, 0xe9, 0xd8, 0x78, 0x31, 0x07, 0x83, 0x5e, 0x53, 0xf5, 0x0a, 0xae, 0xe4, + 0xbd, 0xff, 0x64, 0xc4, 0xc0, 0x1e, 0x3e, 0x2d, 0xd3, 0x99, 0x58, 0xd1, 0x8a, 0xe4, 0x38, 0xea, + 0xe6, 0xa9, 0x16, 0x7a, 0x00, 0xf5, 0x6b, 0x02, 0x2c, 0xba, 0x08, 0x35, 0x3b, 0x5a, 0x3d, 0x10, + 0xbd, 0x6a, 0x9d, 0x36, 0xae, 0xd9, 0x96, 0x3c, 0xab, 0x6a, 0x85, 0x67, 0x95, 0x72, 0x98, 0x8c, + 0x1d, 0x7d, 0x98, 0xe8, 0xff, 0xb1, 0x06, 0xe7, 0x22, 0xac, 0xd1, 0xa8, 0xda, 0xc2, 0x84, 0x7d, + 0xcc, 0x89, 0x78, 0xbc, 0x26, 0x71, 0x1b, 0xc6, 0x19, 0xd7, 0x2a, 0x65, 0xda, 0x96, 0x00, 0xe9, + 0x70, 0x30, 0x03, 0x84, 0xfe, 0x0a, 0x4c, 0x3a, 0x54, 0x77, 0x8f, 0x1c, 0x40, 0xca, 0x29, 0x5e, + 0x79, 0xf3, 0xe5, 0x36, 0x81, 0x80, 0xbb, 0x38, 0x4a, 0x7b, 0x27, 0x2f, 0xc4, 0x02, 0xe9, 0xc5, + 0x67, 0xa1, 0xa1, 0x34, 0x43, 0xf3, 0x30, 0xb6, 0x43, 0xf8, 0x5b, 0x97, 0x69, 0x4c, 0xff, 0x45, + 0xe7, 0x60, 0x62, 0xd7, 0x70, 0x86, 0x62, 0x4d, 0x30, 0xff, 0xf1, 0x5c, 0xed, 0x3d, 0x9a, 0xfe, + 0x1d, 0x0d, 0x1a, 0xd7, 0xed, 0x4d, 0xe2, 0xf3, 0xab, 0x44, 0x26, 0xd7, 0x26, 0x5e, 0x55, 0x35, + 0xf2, 0x5e, 0x54, 0xa1, 0x7d, 0x98, 0x16, 0xe7, 0x83, 0xf4, 0x64, 0x2b, 0xf7, 0x76, 0x4a, 0xc1, + 0x2d, 0xf8, 0xae, 0xea, 0x37, 0x1e, 0xa1, 0xc0, 0x31, 0x36, 0xfd, 0x35, 0x38, 0x9b, 0xd3, 0x09, + 0x2d, 0xb1, 0x2d, 0xe7, 0x87, 0x82, 0x30, 0xa2, 0x3d, 0xe4, 0x87, 0x98, 0x97, 0xa3, 0x47, 0x61, + 0x8c, 0xb8, 0x91, 0x07, 0xe7, 0x14, 0x15, 0x92, 0x56, 0x5d, 0x0b, 0xd3, 0x32, 0xca, 0x5a, 0x1c, + 0x2f, 0x21, 0x4b, 0x30, 0xd6, 0x72, 0x53, 0x94, 0x61, 0x59, 0xab, 0xff, 0xe3, 0x71, 0xb8, 0x74, + 0xdd, 0xf3, 0xed, 0x7b, 0x9e, 0x1b, 0x1a, 0xce, 0xba, 0x67, 0xc5, 0x3e, 0x19, 0x82, 0x4d, 0x7d, + 0x4e, 0x83, 0x47, 0xcc, 0xc1, 0xb0, 0xe3, 0xda, 0xa1, 0x6d, 0x44, 0x57, 0xe5, 0xeb, 0xc4, 0xb7, + 0xbd, 0xb2, 0xae, 0x19, 0xec, 0x2d, 0x4e, 0x6b, 0x7d, 0x23, 0x0f, 0x24, 0x2e, 0xc2, 0xc5, 0x3c, + 0x44, 0x2c, 0xef, 0xae, 0xcb, 0x06, 0xd7, 0x0d, 0xd9, 0xfb, 0xa0, 0x7b, 0xf1, 0x14, 0x4b, 0x7a, + 0x88, 0xb4, 0x73, 0x21, 0xe2, 0x02, 0x4c, 0xe8, 0x53, 0x70, 0xde, 0xe6, 0x83, 0xc3, 0xc4, 0xb0, + 0x6c, 0x97, 0x04, 0x01, 0xf3, 0x93, 0xa8, 0xe2, 0x02, 0xd1, 0xc9, 0x03, 0x88, 0xf3, 0xf1, 0xa0, + 0x8f, 0x02, 0x04, 0xfb, 0xae, 0x29, 0xd6, 0x7f, 0xa2, 0x14, 0x56, 0x2e, 0x19, 0x49, 0x28, 0x58, + 0x81, 0x48, 0x75, 0x01, 0x7e, 0x7c, 0xba, 0x26, 0xbf, 0xc8, 0xd4, 0xb8, 0x2e, 0x70, 0x27, 0x2a, + 0xc4, 0x71, 0xbd, 0xfe, 0xf7, 0x35, 0x98, 0x12, 0x0f, 0xef, 0xd0, 0x5b, 0x52, 0x2a, 0xb1, 0xdc, + 0xda, 0x29, 0xb5, 0xf8, 0x1e, 0xb3, 0x42, 0x0b, 0x73, 0x8a, 0x38, 0x5c, 0xcb, 0x69, 0x54, 0x02, + 0x73, 0x6c, 0x9c, 0x49, 0x58, 0xa3, 0x23, 0x83, 0x8d, 0x82, 0x4d, 0xff, 0xa6, 0x06, 0x0b, 0x99, + 0x5e, 0x23, 0x1c, 0xa1, 0xa7, 0x78, 0x97, 0xfa, 0xe3, 0x06, 0xb0, 0x57, 0x96, 0x2b, 0xeb, 0x9d, + 0x2e, 0xf1, 0x77, 0xe5, 0x2e, 0xfc, 0x92, 0x06, 0xf3, 0xf1, 0xad, 0xbf, 0x18, 0x85, 0x56, 0xc1, + 0x49, 0xf4, 0x46, 0x0a, 0x58, 0x73, 0x51, 0x4c, 0x7c, 0x3e, 0x5d, 0x83, 0x33, 0x88, 0xd1, 0x17, + 0x35, 0x98, 0x37, 0x92, 0xaf, 0x2c, 0x23, 0xae, 0x59, 0xee, 0x09, 0x41, 0xea, 0xc9, 0x66, 0x3c, + 0x98, 0x54, 0x45, 0x80, 0x33, 0x78, 0xd1, 0x3b, 0x61, 0xc6, 0x18, 0xd8, 0x2b, 0x43, 0xcb, 0xa6, + 0x67, 0x7f, 0xf4, 0x34, 0x8f, 0x09, 0xa4, 0x2b, 0xeb, 0x1d, 0x59, 0x8e, 0x13, 0xad, 0xe4, 0x3b, + 0x4a, 0xb1, 0x94, 0xe3, 0x55, 0xdf, 0x51, 0x8a, 0x55, 0x8c, 0xdf, 0x51, 0x8a, 0xc5, 0x53, 0xb1, + 0xa0, 0x8f, 0xc0, 0xa3, 0xfc, 0xc0, 0x69, 0x1a, 0x81, 0x6d, 0xae, 0x0c, 0xc3, 0x6d, 0xe2, 0x86, + 0x91, 0xd2, 0xc7, 0x4d, 0x6a, 0xcc, 0x5f, 0x6c, 0xb5, 0xa8, 0x11, 0x2e, 0xee, 0x8f, 0x3c, 0x00, + 0xcf, 0xb6, 0x4c, 0x31, 0x21, 0xee, 0xb2, 0x54, 0x4e, 0xc2, 0xbe, 0xdd, 0x69, 0xb7, 0xc4, 0x7c, + 0x18, 0xaf, 0x88, 0x7f, 0x63, 0x05, 0x05, 0xfa, 0x75, 0x0d, 0x66, 0x05, 0xa1, 0x0b, 0xa4, 0x53, + 0x8c, 0x04, 0x3e, 0x52, 0x9a, 0x20, 0x53, 0x54, 0xbf, 0x8c, 0x55, 0xe8, 0x5c, 0x64, 0x90, 0x6e, + 0xac, 0x89, 0x3a, 0x9c, 0x1c, 0x08, 0xfa, 0xb2, 0x06, 0xe7, 0x02, 0xe2, 0xef, 0xda, 0x26, 0x59, + 0x31, 0x4d, 0x6f, 0xe8, 0x46, 0xdf, 0xb9, 0x5e, 0xe1, 0x49, 0x5b, 0x37, 0x07, 0x20, 0x77, 0x9e, + 0xca, 0xab, 0xc1, 0xb9, 0x03, 0x40, 0xbf, 0xa2, 0xc1, 0x99, 0xbb, 0x46, 0x68, 0x6e, 0xb7, 0x0c, + 0x73, 0x9b, 0x59, 0x61, 0xb8, 0xbf, 0x54, 0xd9, 0x9d, 0xf3, 0x4a, 0x12, 0x16, 0xb7, 0x1d, 0xa7, + 0x0a, 0x71, 0x1a, 0x23, 0x0a, 0xa1, 0xee, 0x93, 0x57, 0x87, 0x24, 0x60, 0x5e, 0x55, 0xda, 0xc9, + 0xc5, 0xef, 0xbc, 0x8f, 0x86, 0x05, 0x44, 0x2e, 0x6c, 0x44, 0xbf, 0xb0, 0xc4, 0x84, 0x7a, 0x70, + 0x89, 0x93, 0xef, 0x8a, 0xeb, 0xb9, 0xfb, 0x7d, 0x6f, 0x18, 0xa4, 0xb6, 0x40, 0x83, 0x6d, 0x01, + 0xe6, 0x38, 0xb6, 0x7a, 0x54, 0x43, 0x7c, 0x34, 0x1c, 0xf4, 0x41, 0xa8, 0x93, 0x5d, 0xe2, 0x86, + 0x77, 0xee, 0xdc, 0x5c, 0x9c, 0x29, 0x75, 0x46, 0xb2, 0x29, 0xac, 0x0a, 0x18, 0x58, 0x42, 0xbb, + 0xf8, 0x12, 0xa0, 0x2c, 0x51, 0x1e, 0x27, 0xa0, 0xd6, 0x55, 0x01, 0xf5, 0x7b, 0x1a, 0x9c, 0xcf, + 0x5d, 0x36, 0x84, 0xe1, 0x02, 0xf3, 0xb7, 0x73, 0xd7, 0x86, 0xa1, 0x11, 0xda, 0x6e, 0xaf, 0xe3, + 0x6e, 0x39, 0x76, 0x6f, 0x9b, 0x8b, 0x80, 0x13, 0x5c, 0x60, 0x59, 0xcb, 0x6d, 0x81, 0x0b, 0x7a, + 0xa2, 0x0e, 0x9c, 0xed, 0x1b, 0x7b, 0x19, 0x80, 0x35, 0x06, 0x90, 0xbd, 0xe9, 0x5f, 0xcb, 0x56, + 0xe3, 0xbc, 0x3e, 0xfa, 0xd7, 0x26, 0xe0, 0x31, 0x3a, 0xf0, 0xf8, 0xe8, 0x5c, 0x33, 0x5c, 0xa3, + 0xf7, 0x33, 0x7a, 0x44, 0x7d, 0x47, 0x83, 0x47, 0xb6, 0xf3, 0x05, 0x5b, 0x71, 0x7a, 0xe3, 0x72, + 0xf2, 0xfd, 0x51, 0xc2, 0x32, 0x27, 0xdd, 0x23, 0x9b, 0xe0, 0xa2, 0x51, 0xa1, 0x97, 0x60, 0xde, + 0xf5, 0x2c, 0xd2, 0xea, 0xb4, 0xf1, 0x9a, 0x11, 0xec, 0x74, 0x23, 0xd3, 0xed, 0x04, 0xbf, 0x9f, + 0xb9, 0x95, 0xaa, 0xc3, 0x99, 0xd6, 0x68, 0x17, 0xd0, 0xc0, 0xb3, 0x56, 0x77, 0x6d, 0x33, 0x72, + 0x95, 0x2b, 0x7f, 0x27, 0xc4, 0x1e, 0x11, 0xad, 0x67, 0xa0, 0xe1, 0x1c, 0x0c, 0x4c, 0x34, 0xa7, + 0x83, 0x59, 0xf3, 0x5c, 0x3b, 0xf4, 0x7c, 0xe6, 0xd1, 0x59, 0x49, 0x42, 0x65, 0x94, 0x7e, 0x2b, + 0x17, 0x22, 0x2e, 0xc0, 0xa4, 0xff, 0x0f, 0x0d, 0xce, 0x50, 0xba, 0x58, 0xf7, 0xbd, 0xbd, 0xfd, + 0x9f, 0x49, 0x92, 0x7c, 0x5a, 0xdc, 0x3c, 0x71, 0x8d, 0xed, 0xbc, 0x72, 0xeb, 0x34, 0xcd, 0x06, + 0x1d, 0x5f, 0x34, 0xa9, 0x5a, 0xeb, 0x58, 0xb1, 0xd6, 0xaa, 0xff, 0xa9, 0xc6, 0xa5, 0xc5, 0x48, + 0x69, 0xfc, 0xd9, 0xdc, 0x8a, 0xef, 0x86, 0x59, 0x5a, 0xb6, 0x66, 0xec, 0xad, 0xb7, 0x5f, 0xf6, + 0x9c, 0xc8, 0xd1, 0x94, 0xb9, 0xb4, 0xdc, 0x50, 0x2b, 0x70, 0xb2, 0x9d, 0xfe, 0x9d, 0x33, 0xc0, + 0x1a, 0x38, 0x24, 0xfc, 0x99, 0x9c, 0xd8, 0x33, 0xd0, 0x30, 0x07, 0xc3, 0xd6, 0xd5, 0xee, 0x07, + 0x86, 0x5e, 0x68, 0x88, 0x1b, 0x29, 0x26, 0x01, 0xb6, 0xd6, 0x37, 0xa2, 0x62, 0xac, 0xb6, 0xa1, + 0x9b, 0xdc, 0x1c, 0x0c, 0x05, 0xe3, 0x5c, 0x57, 0x5d, 0x33, 0xd8, 0x26, 0x6f, 0xad, 0x6f, 0x24, + 0xea, 0x70, 0xa6, 0x35, 0xfa, 0xb4, 0x06, 0x33, 0x44, 0x6c, 0xc0, 0xeb, 0x86, 0x6f, 0x89, 0xfd, + 0x5d, 0xfe, 0xfc, 0x96, 0xab, 0x1b, 0x6d, 0x6b, 0x2e, 0x3b, 0xaf, 0x2a, 0x38, 0x70, 0x02, 0x23, + 0x13, 0x63, 0xc5, 0x6f, 0xfa, 0xb1, 0x3c, 0x2b, 0xbd, 0xe3, 0x27, 0x84, 0x18, 0x5b, 0xd4, 0x08, + 0x17, 0xf7, 0x47, 0x7f, 0x4f, 0x83, 0x0b, 0xb2, 0xd6, 0x76, 0xed, 0xfe, 0xb0, 0x8f, 0x89, 0xe9, + 0x18, 0x76, 0x5f, 0xc8, 0xb4, 0x1f, 0x7c, 0x70, 0x33, 0x4d, 0xc2, 0xe7, 0x6c, 0x27, 0xbf, 0x0e, + 0x17, 0x8c, 0x09, 0x7d, 0x53, 0x83, 0x27, 0xa3, 0xaa, 0x75, 0xaa, 0x59, 0x0e, 0x7d, 0x12, 0xbb, + 0x2b, 0x8b, 0x35, 0x99, 0x2a, 0xc5, 0x05, 0xdf, 0x7c, 0x78, 0xb0, 0xf4, 0xe4, 0xea, 0x31, 0xb0, + 0xf1, 0xb1, 0xd8, 0x13, 0x14, 0xd3, 0xf5, 0xb6, 0x42, 0x21, 0x04, 0x3f, 0x34, 0x8a, 0xa1, 0x38, + 0x70, 0x02, 0x23, 0xfa, 0x2d, 0x0d, 0x1e, 0x51, 0x0b, 0x54, 0x82, 0xe1, 0xd2, 0xef, 0x87, 0x1e, + 0xdc, 0x68, 0x52, 0x08, 0xb8, 0xbd, 0xa9, 0xa0, 0x12, 0x17, 0x0d, 0x8b, 0xb2, 0xe0, 0x3e, 0x23, + 0x4e, 0x2e, 0x21, 0x4f, 0x70, 0x16, 0xcc, 0xe9, 0x35, 0xc0, 0x51, 0x1d, 0xd5, 0x3e, 0x07, 0x9e, + 0xb5, 0x6e, 0x5b, 0xc1, 0x4d, 0xbb, 0x6f, 0x87, 0x4c, 0x84, 0x1d, 0xe3, 0xeb, 0xb1, 0xee, 0x59, + 0xeb, 0x9d, 0x36, 0x2f, 0xc7, 0x89, 0x56, 0xec, 0xa5, 0x91, 0xdd, 0x37, 0x7a, 0x64, 0x7d, 0xe8, + 0x38, 0xeb, 0xbe, 0xc7, 0x6c, 0x12, 0x6d, 0x62, 0x58, 0x8e, 0xed, 0x92, 0x92, 0x22, 0x2b, 0xdb, + 0x72, 0x9d, 0x22, 0xa0, 0xb8, 0x18, 0x1f, 0x5a, 0x06, 0xd8, 0x32, 0x6c, 0xa7, 0x7b, 0xd7, 0x18, + 0xdc, 0x76, 0x17, 0x67, 0x19, 0x1b, 0x63, 0x8a, 0xdf, 0x55, 0x59, 0x8a, 0x95, 0x16, 0x8c, 0xa0, + 0x28, 0x33, 0xc4, 0x84, 0xbf, 0x76, 0x5e, 0x9c, 0x7b, 0x50, 0x04, 0x15, 0x41, 0xe4, 0x0b, 0x78, + 0x43, 0xc1, 0x81, 0x13, 0x18, 0xd1, 0xe7, 0x35, 0x98, 0x0b, 0xf6, 0x83, 0x90, 0xf4, 0xe5, 0x20, + 0xce, 0x3c, 0xf0, 0x41, 0x30, 0x83, 0x4d, 0x37, 0x81, 0x05, 0xa7, 0xb0, 0x22, 0x03, 0x1e, 0x63, + 0x0b, 0x7b, 0xad, 0x75, 0xdd, 0xee, 0x6d, 0xcb, 0x27, 0x44, 0xeb, 0xc4, 0x37, 0x89, 0x1b, 0x2e, + 0xce, 0x33, 0xd2, 0x59, 0x3a, 0x3c, 0x58, 0x7a, 0xac, 0x53, 0xdc, 0x0c, 0x1f, 0x05, 0x03, 0x7d, + 0x14, 0x2e, 0x8a, 0xea, 0x9b, 0xde, 0xdd, 0x0c, 0x86, 0x05, 0x86, 0x81, 0xbd, 0xeb, 0xea, 0x14, + 0xb6, 0xc2, 0x47, 0x40, 0xa0, 0x3a, 0x42, 0x40, 0x7c, 0x66, 0x70, 0x25, 0x92, 0x7e, 0x82, 0x45, + 0xc4, 0xe8, 0x80, 0xe9, 0x08, 0xdd, 0x6c, 0x35, 0xce, 0xeb, 0xa3, 0x1f, 0xd4, 0xb8, 0x72, 0x93, + 0xd9, 0x93, 0xe8, 0x05, 0x38, 0xd3, 0x27, 0x7d, 0xcf, 0xdf, 0x5f, 0x89, 0x82, 0x22, 0x09, 0x83, + 0x1b, 0x53, 0x58, 0xd7, 0x92, 0x55, 0x38, 0xdd, 0x96, 0x9e, 0x9b, 0x6c, 0x06, 0x57, 0xbb, 0x71, + 0xff, 0x5a, 0x7c, 0x6e, 0x76, 0x52, 0x75, 0x38, 0xd3, 0x1a, 0xb5, 0x60, 0x41, 0x94, 0x75, 0xa8, + 0x04, 0x19, 0x5c, 0xf5, 0x49, 0x74, 0xe7, 0x45, 0x45, 0xb1, 0x85, 0x4e, 0xba, 0x12, 0x67, 0xdb, + 0xd3, 0x59, 0xd0, 0x1f, 0xea, 0x28, 0xc6, 0xe3, 0x59, 0xdc, 0x4a, 0x56, 0xe1, 0x74, 0xdb, 0x48, + 0xc4, 0x4f, 0x0c, 0x61, 0x22, 0x9e, 0xc5, 0xad, 0x54, 0x1d, 0xce, 0xb4, 0xd6, 0xff, 0x74, 0x1c, + 0xde, 0x34, 0xc2, 0x51, 0x86, 0xfa, 0xf9, 0xcb, 0x7d, 0x0c, 0x57, 0x59, 0x8e, 0x2e, 0xc9, 0x96, + 0x3f, 0x30, 0x34, 0xdc, 0xd0, 0x0e, 0xf7, 0x47, 0xfc, 0x3c, 0x83, 0x82, 0xcf, 0x73, 0x72, 0x7c, + 0xa3, 0x7e, 0xce, 0xa0, 0xe8, 0x73, 0x9e, 0x1c, 0xe5, 0xe8, 0x9f, 0xbf, 0x9f, 0xff, 0xf9, 0x4b, + 0xae, 0xea, 0xb1, 0xe4, 0x32, 0x28, 0x20, 0x97, 0x92, 0xab, 0x3a, 0x02, 0x79, 0xfd, 0xdb, 0x71, + 0x78, 0xf3, 0x28, 0x67, 0x6a, 0x49, 0xfa, 0xca, 0x39, 0xb5, 0x1e, 0x2a, 0x7d, 0x15, 0xf9, 0x3a, + 0x3e, 0x44, 0xfa, 0xca, 0x41, 0xf9, 0xb0, 0xe9, 0xab, 0x68, 0x55, 0x1f, 0x16, 0x7d, 0x15, 0xad, + 0xea, 0x08, 0xf4, 0xf5, 0x3f, 0xd3, 0xe7, 0x83, 0x3c, 0x47, 0x3b, 0x30, 0x66, 0x0e, 0x86, 0x25, + 0x99, 0x14, 0xbb, 0xfd, 0x6c, 0xad, 0x6f, 0x60, 0x0a, 0x03, 0x61, 0x98, 0xe4, 0xf4, 0x53, 0x92, + 0x05, 0x31, 0x6f, 0x4e, 0x4e, 0x92, 0x58, 0x40, 0xa2, 0x4b, 0x45, 0x06, 0xdb, 0xa4, 0x4f, 0x7c, + 0xc3, 0xe9, 0x86, 0x9e, 0x6f, 0xf4, 0xca, 0x72, 0x1b, 0xb6, 0x54, 0xab, 0x29, 0x58, 0x38, 0x03, + 0x9d, 0x2e, 0xc8, 0xc0, 0xb6, 0x4a, 0xf2, 0x17, 0xb6, 0x20, 0xeb, 0x9d, 0x36, 0xa6, 0x30, 0xf4, + 0x1f, 0xd4, 0x41, 0x79, 0x3e, 0x4a, 0xd5, 0x37, 0xc3, 0x71, 0xbc, 0xbb, 0xeb, 0xbe, 0xbd, 0x6b, + 0x3b, 0xa4, 0x47, 0x2c, 0xf9, 0xbe, 0x30, 0x10, 0x97, 0xe4, 0x4c, 0x96, 0x5c, 0x29, 0x6a, 0x84, + 0x8b, 0xfb, 0x53, 0xc9, 0x76, 0xc1, 0x4c, 0x3f, 0xef, 0xaf, 0x74, 0xcf, 0x97, 0x09, 0x16, 0xc0, + 0x37, 0x54, 0xa6, 0x18, 0x67, 0xf1, 0xa2, 0x5f, 0xd6, 0xb8, 0xed, 0x41, 0x1a, 0x5b, 0xc5, 0x47, + 0xbb, 0xfe, 0xa0, 0xae, 0x28, 0x62, 0x2b, 0x46, 0x6c, 0xcf, 0x4d, 0x62, 0x44, 0xbf, 0xa1, 0xc1, + 0xf9, 0x9d, 0x3c, 0xbb, 0xa9, 0xf8, 0xb6, 0xeb, 0xa5, 0xc7, 0x52, 0x60, 0x89, 0xe5, 0xd7, 0xca, + 0xb9, 0x0d, 0x70, 0xfe, 0x48, 0xe4, 0x3a, 0x49, 0x43, 0x92, 0xe0, 0x03, 0xe5, 0xd7, 0x29, 0x65, + 0x92, 0x8a, 0xd7, 0x49, 0x56, 0xe0, 0x24, 0x46, 0xf4, 0x2a, 0x4c, 0xef, 0x44, 0xf6, 0x3b, 0xa1, + 0xea, 0xb7, 0x4b, 0xa3, 0x57, 0xac, 0x80, 0xfc, 0x02, 0x5b, 0x16, 0xe2, 0x18, 0x0b, 0xb2, 0x61, + 0x6a, 0x87, 0x73, 0x23, 0xa1, 0xa2, 0x37, 0xab, 0x6b, 0x0f, 0x5c, 0x4f, 0x14, 0x45, 0x38, 0x82, + 0xaf, 0xba, 0x0a, 0xd5, 0x8f, 0xf1, 0x3b, 0xfd, 0xaa, 0x06, 0xe7, 0x77, 0x89, 0x1f, 0xda, 0x66, + 0xda, 0x70, 0x3d, 0x5d, 0x41, 0xc5, 0x79, 0x39, 0x0f, 0x22, 0x27, 0x95, 0xdc, 0x2a, 0x9c, 0x3f, + 0x06, 0xfd, 0xcf, 0x34, 0xc8, 0xd8, 0xc6, 0xd0, 0xdf, 0xd4, 0x60, 0x66, 0x8b, 0x18, 0xe1, 0xd0, + 0x27, 0xd7, 0x8c, 0x50, 0xbe, 0x15, 0x79, 0xe5, 0x81, 0xd8, 0xe4, 0x96, 0xaf, 0x2a, 0x90, 0xf9, + 0x2d, 0xa0, 0x0c, 0x27, 0xa3, 0x56, 0xe1, 0xc4, 0x10, 0x2e, 0xbe, 0x0f, 0x16, 0x32, 0x1d, 0x4f, + 0x74, 0x53, 0xf3, 0x3b, 0xc2, 0xba, 0x9a, 0x0e, 0x6e, 0xfc, 0x31, 0x98, 0x30, 0x2c, 0x4b, 0x06, + 0x50, 0x7c, 0xae, 0xe4, 0x8d, 0xb7, 0xa5, 0x3e, 0xca, 0x61, 0x3f, 0x31, 0x87, 0x8b, 0xae, 0x02, + 0x32, 0x12, 0x17, 0x5a, 0x6b, 0xf1, 0x83, 0x05, 0x66, 0x97, 0x5f, 0xc9, 0xd4, 0xe2, 0x9c, 0x1e, + 0xfa, 0x7b, 0x61, 0x2e, 0x19, 0x4d, 0xe0, 0x04, 0xde, 0xcf, 0xfa, 0xaf, 0x6a, 0x80, 0xb2, 0x01, + 0x8c, 0x50, 0x00, 0x75, 0xd1, 0x22, 0xfa, 0xc8, 0xab, 0x65, 0x3d, 0x59, 0x13, 0x8e, 0xd9, 0xb1, + 0xef, 0xac, 0x28, 0x08, 0xb0, 0x44, 0xa4, 0xff, 0x85, 0x06, 0x71, 0xa0, 0x36, 0xf4, 0x2e, 0x68, + 0x58, 0x24, 0x30, 0x7d, 0x7b, 0x10, 0xc6, 0x13, 0x91, 0xae, 0xa0, 0xed, 0xb8, 0x0a, 0xab, 0xed, + 0x90, 0x0e, 0x93, 0xa1, 0x11, 0xec, 0x74, 0xda, 0x42, 0x71, 0x64, 0xc7, 0xfc, 0x1d, 0x56, 0x82, + 0x45, 0x4d, 0xfc, 0x34, 0x7f, 0x6c, 0x84, 0xa7, 0xf9, 0x68, 0xeb, 0x01, 0xc4, 0x21, 0x40, 0xc7, + 0xc7, 0x20, 0xd0, 0xff, 0x55, 0x0d, 0x92, 0xc1, 0xf1, 0xca, 0x2e, 0x41, 0x36, 0x70, 0x42, 0xed, + 0xa1, 0x05, 0x4e, 0x78, 0x1b, 0x0b, 0x24, 0xcb, 0xc3, 0x7f, 0xf3, 0x6b, 0x2c, 0x35, 0xfa, 0x2b, + 0x8f, 0xdd, 0x2d, 0x5b, 0xa0, 0x67, 0x55, 0x07, 0xd3, 0xe9, 0xe6, 0x9b, 0xa2, 0x7d, 0xc1, 0xbc, + 0x46, 0xef, 0x8b, 0xd0, 0x10, 0x72, 0xfe, 0x09, 0x5f, 0xd2, 0x77, 0x09, 0xf7, 0xc8, 0x89, 0x44, + 0xf8, 0x8a, 0x28, 0xe6, 0xc5, 0x42, 0xa2, 0x63, 0xec, 0x33, 0xa9, 0xff, 0x2d, 0x0d, 0xa6, 0x44, + 0x30, 0xaa, 0x11, 0xfc, 0x82, 0x7b, 0x30, 0xc1, 0xc4, 0xf5, 0x4a, 0x92, 0x4c, 0x77, 0xdb, 0xf3, + 0xc2, 0x44, 0x50, 0x2e, 0xe6, 0xd5, 0xc7, 0xfe, 0xc5, 0x1c, 0xbe, 0xfe, 0xd5, 0x71, 0x78, 0x52, + 0x34, 0xc9, 0x1c, 0xd3, 0x72, 0x13, 0xee, 0xc3, 0x59, 0xf1, 0x99, 0xda, 0xbe, 0x61, 0xcb, 0x9b, + 0xbe, 0x72, 0x1a, 0x98, 0xb8, 0x05, 0xce, 0x80, 0xc3, 0x79, 0x38, 0x78, 0xe8, 0x19, 0x56, 0x7c, + 0x9d, 0x18, 0x4e, 0xb8, 0x1d, 0xe1, 0xae, 0x55, 0x09, 0x3d, 0x93, 0x85, 0x87, 0x73, 0xb1, 0xb0, + 0x9b, 0x46, 0x51, 0xd1, 0xf2, 0x89, 0xa1, 0x5e, 0x73, 0x56, 0x70, 0x02, 0x5c, 0xcb, 0x85, 0x88, + 0x0b, 0x30, 0x31, 0x53, 0x96, 0xb1, 0xc7, 0x34, 0x63, 0x4c, 0x42, 0xdf, 0x66, 0x61, 0xd2, 0x28, + 0x81, 0x73, 0x5d, 0x36, 0x59, 0x85, 0xd3, 0x6d, 0xd1, 0x73, 0x30, 0xc7, 0x6e, 0x6e, 0xe3, 0xb7, + 0xd8, 0x13, 0x71, 0x34, 0xf8, 0x5b, 0x89, 0x1a, 0x9c, 0x6a, 0xa9, 0x7f, 0x5b, 0x83, 0x19, 0x95, + 0x80, 0x46, 0xf0, 0x1e, 0xde, 0x55, 0x18, 0x76, 0x15, 0xc7, 0x56, 0x15, 0xed, 0x88, 0x3c, 0xfb, + 0x6c, 0x4e, 0x1f, 0x76, 0x85, 0x47, 0x52, 0xcc, 0xbf, 0xd2, 0x15, 0x5e, 0xe6, 0x24, 0x91, 0x57, + 0x78, 0xe9, 0x1a, 0x9c, 0x41, 0x8c, 0x5e, 0x81, 0x31, 0xd3, 0xb7, 0xc5, 0xc2, 0xbc, 0xa7, 0x9c, + 0x7e, 0x82, 0x3b, 0xf1, 0x3b, 0xa5, 0x16, 0xee, 0x60, 0x0a, 0x51, 0xff, 0xed, 0x31, 0x68, 0x28, + 0xb1, 0xee, 0xd0, 0x5a, 0x15, 0xfd, 0x36, 0x06, 0x1f, 0xe9, 0xb8, 0x6b, 0x30, 0xd6, 0x1b, 0x0c, + 0x4b, 0x2a, 0xb8, 0x12, 0xdc, 0x35, 0x0a, 0xae, 0x37, 0x18, 0xa2, 0x97, 0xa5, 0xca, 0x5c, 0x4e, + 0xa9, 0x95, 0xde, 0x9e, 0x29, 0xb5, 0x39, 0x22, 0xcf, 0xf1, 0x42, 0xf2, 0x74, 0x61, 0x2a, 0x10, + 0xfa, 0xf4, 0x44, 0x85, 0xc7, 0xa1, 0xca, 0x52, 0x0b, 0x05, 0x9a, 0xcb, 0xe1, 0x91, 0x7e, 0x1d, + 0x21, 0xa1, 0x52, 0xc0, 0x90, 0x3d, 0xab, 0x60, 0x2a, 0x46, 0x9d, 0x4b, 0x01, 0x1b, 0xac, 0x04, + 0x8b, 0x1a, 0xfd, 0x0b, 0x35, 0x40, 0x59, 0x80, 0xe8, 0x4d, 0x30, 0xc1, 0x1e, 0x59, 0x89, 0xcd, + 0xa6, 0x04, 0x82, 0x32, 0x82, 0x00, 0xf3, 0x3a, 0xd4, 0x15, 0x8f, 0xee, 0xca, 0x7d, 0x19, 0x76, + 0x79, 0x2c, 0xf0, 0x29, 0x2f, 0xf4, 0xa2, 0xf3, 0x69, 0xac, 0xf0, 0x7c, 0xda, 0x80, 0xa9, 0xbe, + 0xed, 0x32, 0x9f, 0x91, 0x72, 0x16, 0x03, 0x7e, 0xbb, 0xc5, 0x41, 0xe0, 0x08, 0x96, 0xfe, 0xe3, + 0x1a, 0xa5, 0x62, 0xdb, 0x0d, 0x89, 0x6b, 0xb8, 0x26, 0x41, 0xf7, 0x00, 0x8c, 0x61, 0xe8, 0xf1, + 0x63, 0x5e, 0x10, 0xf3, 0xfb, 0x4b, 0x7e, 0x30, 0x09, 0x75, 0x45, 0x42, 0xe4, 0xb7, 0x4e, 0xf1, + 0x6f, 0xac, 0x60, 0xa3, 0xb8, 0x43, 0xbb, 0x4f, 0x5e, 0xb1, 0x5d, 0xcb, 0xbb, 0x2b, 0xd6, 0xb7, + 0x32, 0xee, 0x3b, 0x12, 0x22, 0xc7, 0x1d, 0xff, 0xc6, 0x0a, 0x36, 0xf4, 0x41, 0x58, 0x64, 0x69, + 0x2a, 0x5c, 0x16, 0x4c, 0x54, 0x0c, 0xce, 0x73, 0x9c, 0xe8, 0xe0, 0xa9, 0xb3, 0xd0, 0x6d, 0x8b, + 0xad, 0x82, 0x36, 0xb8, 0xb0, 0xb7, 0xfe, 0x1d, 0x0d, 0xce, 0xe7, 0xae, 0x05, 0xba, 0x06, 0x0b, + 0xb1, 0xc7, 0x81, 0xca, 0x28, 0xeb, 0x71, 0x74, 0xdc, 0x1b, 0xe9, 0x06, 0x38, 0xdb, 0x07, 0xad, + 0x49, 0x69, 0x41, 0x65, 0xc4, 0xc2, 0x5d, 0xe1, 0x31, 0x01, 0x2a, 0x8f, 0x57, 0xe3, 0xbc, 0x7e, + 0xfa, 0x47, 0x12, 0x03, 0x8e, 0x17, 0x8c, 0xee, 0x8f, 0x4d, 0xd2, 0x93, 0x1e, 0xe0, 0x72, 0x7f, + 0x34, 0x69, 0x21, 0xe6, 0x75, 0xe8, 0x92, 0xfa, 0x6a, 0x41, 0x32, 0xa2, 0xe8, 0xe5, 0x82, 0x3e, + 0x04, 0x10, 0xbe, 0x3d, 0xb6, 0xdb, 0x43, 0x3d, 0xa8, 0x1b, 0x22, 0x89, 0x8a, 0x20, 0xb6, 0x17, + 0xca, 0x29, 0x5b, 0x02, 0x08, 0x77, 0xeb, 0x8b, 0x7e, 0x61, 0x09, 0x5c, 0xff, 0xbb, 0x1a, 0x5c, + 0xc8, 0x7f, 0x4b, 0x34, 0xc2, 0x09, 0xdb, 0x87, 0x86, 0x1f, 0x77, 0x13, 0x94, 0xf9, 0x0b, 0x6a, + 0x54, 0x17, 0xe5, 0x55, 0x3a, 0x95, 0x3e, 0x5a, 0xbe, 0x17, 0x44, 0x5f, 0x27, 0x1d, 0xe8, 0x45, + 0x0a, 0xf1, 0xca, 0x48, 0xb0, 0x0a, 0x5f, 0xff, 0x4c, 0x0d, 0xe0, 0x16, 0x09, 0xef, 0x7a, 0xfe, + 0x0e, 0x5d, 0xa3, 0x9f, 0xa9, 0x37, 0x6d, 0x8f, 0xc3, 0xf8, 0xc0, 0xb3, 0x02, 0xc1, 0xa8, 0xd8, + 0x63, 0x33, 0x76, 0x5d, 0xce, 0x4a, 0xd1, 0x12, 0x4c, 0x30, 0x53, 0xb0, 0x38, 0x0e, 0x98, 0xf0, + 0x4b, 0x05, 0x9e, 0x00, 0xf3, 0x72, 0x1e, 0x2b, 0x9b, 0x39, 0xcd, 0x06, 0x42, 0x9c, 0x17, 0xb1, + 0xb2, 0x79, 0x19, 0x96, 0xb5, 0xfa, 0x67, 0xc7, 0x21, 0x91, 0x06, 0x28, 0x56, 0xca, 0xc7, 0x1f, + 0x92, 0x52, 0xfe, 0x41, 0x58, 0x74, 0x3c, 0xc3, 0x6a, 0x1a, 0x0e, 0x25, 0x7b, 0xbf, 0xcb, 0xbf, + 0x87, 0xe1, 0xf6, 0x48, 0x94, 0xce, 0x87, 0xb1, 0x80, 0x9b, 0x05, 0x6d, 0x70, 0x61, 0x6f, 0x34, + 0x54, 0xb2, 0x0f, 0x51, 0x31, 0x64, 0xad, 0x72, 0x9a, 0xa4, 0x65, 0xd5, 0x63, 0x5a, 0x9e, 0xcd, + 0xc9, 0x0c, 0x45, 0xe8, 0xf3, 0x1a, 0x9c, 0x27, 0x7b, 0x21, 0xf1, 0x5d, 0xc3, 0xb9, 0xe3, 0x1b, + 0x5b, 0x5b, 0xb6, 0x99, 0x70, 0x48, 0x5a, 0x3f, 0x3c, 0x58, 0x3a, 0xbf, 0x9a, 0xd7, 0xe0, 0xfe, + 0xc1, 0xd2, 0x3b, 0xb2, 0x79, 0xc0, 0x22, 0xff, 0xe8, 0xdc, 0x2e, 0x8c, 0x1c, 0xf3, 0xd1, 0x5d, + 0x7c, 0x16, 0x1a, 0x27, 0x70, 0xa6, 0x4d, 0xbc, 0xf6, 0xfa, 0xfa, 0x24, 0x28, 0xde, 0xe9, 0x27, + 0x08, 0xf2, 0xfc, 0x9b, 0x1a, 0x9c, 0x33, 0x1d, 0x9b, 0xb8, 0x61, 0xca, 0x05, 0x99, 0x6f, 0x8d, + 0x97, 0xcb, 0xf9, 0xcd, 0x0f, 0x88, 0xdb, 0x69, 0xb7, 0x3c, 0xd7, 0x25, 0x66, 0xd8, 0xca, 0x81, + 0xce, 0xf5, 0x9d, 0xbc, 0x1a, 0x9c, 0x3b, 0x1a, 0x36, 0x21, 0x56, 0xde, 0x69, 0xab, 0x0f, 0xb9, + 0x5a, 0xa2, 0x0c, 0xcb, 0x5a, 0xf4, 0x0c, 0x34, 0x7a, 0xbe, 0x37, 0x1c, 0x04, 0x2d, 0xe6, 0x2a, + 0xc5, 0x77, 0x18, 0x13, 0x27, 0xae, 0xc5, 0xc5, 0x58, 0x6d, 0x83, 0xde, 0x09, 0x33, 0xfc, 0xe7, + 0xba, 0x4f, 0xb6, 0xec, 0x3d, 0xb1, 0xe3, 0x98, 0xe7, 0xc5, 0x35, 0xa5, 0x1c, 0x27, 0x5a, 0xa1, + 0xb7, 0xc2, 0xb4, 0x1d, 0x04, 0x43, 0xe2, 0x6f, 0xe0, 0x9b, 0x22, 0xd4, 0x21, 0x33, 0xb0, 0x76, + 0xa2, 0x42, 0x1c, 0xd7, 0xa3, 0x5f, 0xd3, 0x60, 0xce, 0x27, 0xaf, 0x0e, 0x6d, 0x9f, 0x58, 0x0c, + 0x69, 0x20, 0xde, 0x08, 0x74, 0x2b, 0x3e, 0x4c, 0x58, 0xc6, 0x09, 0xa8, 0x9c, 0xd2, 0xa5, 0x69, + 0x22, 0x59, 0x89, 0x53, 0x43, 0xa0, 0x6b, 0x15, 0xd8, 0x3d, 0xd7, 0x76, 0x7b, 0x2b, 0x4e, 0x2f, + 0x58, 0xac, 0xb3, 0xdd, 0xcb, 0x45, 0xaf, 0xb8, 0x18, 0xab, 0x6d, 0xd0, 0xbb, 0x61, 0x76, 0x18, + 0x50, 0xda, 0xed, 0x13, 0xbe, 0xc0, 0xd3, 0xb1, 0x0f, 0xe3, 0x86, 0x5a, 0x81, 0x93, 0xed, 0xa8, + 0xb6, 0x17, 0x15, 0x88, 0x65, 0x06, 0x1e, 0x8e, 0x81, 0x8e, 0x73, 0x23, 0x51, 0x83, 0x53, 0x2d, + 0x2f, 0xae, 0xc0, 0xd9, 0x9c, 0x69, 0x9e, 0x68, 0x83, 0x7c, 0xbb, 0x06, 0x6f, 0x3c, 0x96, 0x2c, + 0xd1, 0xd7, 0x35, 0x68, 0x90, 0xbd, 0xd0, 0x37, 0xa4, 0x47, 0x25, 0xfd, 0x46, 0xbd, 0x87, 0xb3, + 0x09, 0x96, 0x57, 0x63, 0x4c, 0xfc, 0xbb, 0xc9, 0x33, 0x4f, 0xa9, 0xc1, 0xea, 0x80, 0xa8, 0xd4, + 0xce, 0xc3, 0x75, 0xa8, 0xb6, 0x3b, 0x91, 0x37, 0x45, 0xd4, 0x5c, 0x7c, 0x11, 0xe6, 0xd3, 0x90, + 0x4f, 0xb4, 0x54, 0xff, 0xb0, 0x06, 0x13, 0xeb, 0x8e, 0x71, 0x2a, 0x71, 0x2b, 0x3f, 0x9e, 0x88, + 0x17, 0x56, 0x2e, 0x0a, 0x1b, 0x1b, 0x6b, 0x61, 0xb4, 0xc2, 0xed, 0x54, 0xb4, 0xc2, 0x97, 0x2a, + 0xe0, 0x38, 0x3a, 0x38, 0xe1, 0x0f, 0x34, 0x98, 0x66, 0xed, 0x4e, 0x21, 0x88, 0xc2, 0xc7, 0x92, + 0x41, 0x14, 0x9e, 0x2b, 0x3f, 0xa9, 0x82, 0xe0, 0x09, 0x7f, 0x1c, 0x4d, 0x86, 0x85, 0xbf, 0xfa, + 0x90, 0x9a, 0x28, 0x8a, 0xcf, 0xe6, 0x72, 0x5e, 0xb4, 0xbe, 0x9b, 0x9e, 0x69, 0x38, 0x99, 0x90, + 0x7d, 0x47, 0x66, 0x8b, 0x72, 0x61, 0x9a, 0x88, 0xa0, 0x28, 0xd1, 0x6c, 0xca, 0xc9, 0xb6, 0x51, + 0x68, 0x95, 0x18, 0x5f, 0x54, 0x12, 0xe0, 0x18, 0x85, 0xfe, 0x3b, 0x35, 0x68, 0x28, 0x5f, 0xf3, + 0xa7, 0x12, 0x0d, 0xf0, 0x6a, 0x6e, 0x5a, 0x95, 0x1a, 0xf3, 0x98, 0xbc, 0x70, 0x82, 0x94, 0x2a, + 0x01, 0x34, 0xcc, 0x38, 0xc0, 0x73, 0x25, 0x02, 0x57, 0x02, 0x45, 0x0b, 0xcf, 0xed, 0xb8, 0x00, + 0xab, 0x58, 0xf4, 0x7f, 0x52, 0x83, 0xa9, 0x75, 0xdf, 0xa3, 0xdf, 0xf8, 0x14, 0x18, 0xc4, 0x66, + 0x82, 0x41, 0x94, 0xdc, 0xbc, 0x7c, 0xb4, 0x85, 0x2c, 0xe2, 0x13, 0x29, 0x16, 0xd1, 0xac, 0x84, + 0xe5, 0x68, 0x26, 0xf1, 0x43, 0x0d, 0x1a, 0xa2, 0xe5, 0x29, 0xb0, 0x09, 0x23, 0xc9, 0x26, 0x9e, + 0xaf, 0x32, 0xb1, 0x02, 0x46, 0xf1, 0x15, 0x0d, 0x66, 0x45, 0x8b, 0x35, 0xd2, 0xdf, 0x24, 0x3e, + 0xba, 0x0a, 0x53, 0xc1, 0x90, 0x7d, 0x4b, 0x31, 0xa3, 0xc7, 0x54, 0x56, 0xe1, 0x6f, 0x1a, 0x26, + 0x4b, 0x0f, 0xc6, 0x9b, 0x28, 0x61, 0x42, 0x79, 0x01, 0x8e, 0x3a, 0x53, 0x85, 0xce, 0xf7, 0x9c, + 0x4c, 0xb8, 0x07, 0xec, 0x39, 0x04, 0xb3, 0x1a, 0xaa, 0x47, 0xd1, 0xbf, 0xd1, 0x2d, 0x15, 0xd3, + 0xa3, 0x68, 0x75, 0x80, 0x79, 0xb9, 0xfe, 0x85, 0x71, 0xb9, 0xda, 0x8c, 0x8f, 0x5d, 0x87, 0x69, + 0xd3, 0x27, 0x46, 0x48, 0xac, 0xe6, 0xfe, 0x28, 0x83, 0x63, 0x02, 0x5d, 0x2b, 0xea, 0x81, 0xe3, + 0xce, 0x54, 0x74, 0x52, 0x2f, 0x9e, 0x6a, 0xb1, 0x98, 0x59, 0x78, 0xe9, 0xf4, 0x3c, 0x4c, 0x78, + 0x77, 0x5d, 0xe9, 0x7a, 0x71, 0x24, 0x62, 0x36, 0x95, 0xdb, 0xb4, 0x35, 0xe6, 0x9d, 0xd4, 0x00, + 0x25, 0xe3, 0x47, 0x04, 0x28, 0xe9, 0xc3, 0x54, 0x9f, 0x7d, 0x86, 0x6a, 0x31, 0x23, 0x13, 0x5f, + 0x54, 0x0d, 0xe1, 0xcd, 0x40, 0xe3, 0x08, 0x07, 0x15, 0x82, 0xa9, 0x9c, 0x16, 0x0c, 0x0c, 0x93, + 0xa8, 0x42, 0xf0, 0xad, 0xa8, 0x10, 0xc7, 0xf5, 0xe8, 0x5e, 0x32, 0xf6, 0xcd, 0x54, 0x05, 0x33, + 0xa7, 0x18, 0x9f, 0x12, 0xee, 0x86, 0x2f, 0x7e, 0x61, 0xfc, 0x9b, 0x2f, 0x8d, 0x4b, 0x32, 0x15, + 0x8c, 0x3f, 0x3f, 0xb7, 0x95, 0x56, 0x2a, 0xb7, 0xd5, 0x3b, 0x60, 0x62, 0xb0, 0x6d, 0x04, 0x11, + 0xad, 0x46, 0xf1, 0xe6, 0x27, 0xd6, 0x69, 0xe1, 0xfd, 0x83, 0xa5, 0x19, 0x81, 0x9a, 0xfd, 0xc6, + 0xbc, 0x2d, 0x1a, 0xc2, 0xd9, 0x20, 0x34, 0x1c, 0xd2, 0xb5, 0x85, 0xf9, 0x28, 0x08, 0x8d, 0xfe, + 0xa0, 0x44, 0xd8, 0x78, 0xee, 0x9a, 0x9c, 0x05, 0x85, 0xf3, 0xe0, 0xa3, 0xcf, 0x6a, 0xb0, 0xc8, + 0xca, 0x57, 0x86, 0xa1, 0xc7, 0x53, 0x6c, 0xc4, 0xc8, 0x4f, 0x7e, 0x6f, 0xcb, 0x94, 0xfd, 0x6e, + 0x01, 0x3c, 0x5c, 0x88, 0x09, 0xbd, 0x06, 0xe7, 0x1d, 0x23, 0x08, 0x57, 0xcc, 0xd0, 0xde, 0xb5, + 0xc3, 0xfd, 0x78, 0x08, 0x27, 0xcf, 0xf3, 0xc5, 0x7c, 0x37, 0x6e, 0xe6, 0x01, 0xc3, 0xf9, 0x38, + 0xf4, 0xff, 0xa5, 0x01, 0xca, 0x92, 0x10, 0xea, 0x43, 0xdd, 0x22, 0x5b, 0xc6, 0xd0, 0x09, 0x23, + 0x49, 0xa0, 0x72, 0x64, 0x26, 0xc9, 0x9d, 0xdb, 0x02, 0x30, 0x96, 0x28, 0xd0, 0x00, 0xa6, 0xef, + 0x6e, 0xdb, 0x21, 0x71, 0xec, 0x20, 0x7c, 0x50, 0x91, 0xa0, 0xa4, 0xf0, 0xf3, 0x4a, 0x04, 0x19, + 0xc7, 0x48, 0xf4, 0xbf, 0x3a, 0x06, 0xf5, 0x13, 0x24, 0x50, 0x1d, 0x02, 0x12, 0x51, 0x23, 0xa8, + 0xc4, 0x44, 0xaa, 0x18, 0xcd, 0x98, 0x58, 0xd3, 0xca, 0x00, 0xc3, 0x39, 0x08, 0xd0, 0x6b, 0x70, + 0xce, 0x76, 0xb7, 0x7c, 0x23, 0x08, 0xfd, 0xa1, 0x19, 0x0e, 0x7d, 0x52, 0x25, 0x60, 0x3d, 0xb3, + 0x34, 0x74, 0x72, 0xc0, 0xe1, 0x5c, 0x24, 0x68, 0x0b, 0xa6, 0xee, 0x7a, 0xfe, 0x0e, 0x65, 0xa0, + 0xe3, 0x15, 0x32, 0x22, 0xbd, 0xc2, 0x60, 0xc4, 0x9c, 0x93, 0xff, 0x0e, 0x70, 0x04, 0x5c, 0xff, + 0x03, 0x0d, 0x26, 0xf8, 0x53, 0xb8, 0xd7, 0x87, 0x96, 0xc5, 0xc6, 0x5a, 0x18, 0x84, 0x99, 0xea, + 0x3e, 0xac, 0xc5, 0xeb, 0x45, 0xf7, 0x61, 0x83, 0x2d, 0x10, 0x69, 0xfe, 0x60, 0x4c, 0x4c, 0x86, + 0xc9, 0x0c, 0x1d, 0x38, 0x2b, 0xc4, 0xdf, 0x9b, 0xf6, 0x16, 0xa1, 0x04, 0xd6, 0x36, 0xf6, 0x03, + 0xf1, 0x14, 0x9d, 0xb1, 0xde, 0x56, 0xb6, 0x1a, 0xe7, 0xf5, 0x41, 0xff, 0x54, 0xa3, 0xa7, 0x73, + 0xe8, 0xdb, 0x66, 0xb5, 0xc8, 0xc6, 0x72, 0x70, 0xcb, 0x6b, 0x1c, 0x1a, 0x37, 0x1f, 0x6c, 0xc4, + 0xc7, 0x34, 0x2b, 0xbd, 0x7f, 0xb0, 0xb4, 0x94, 0x63, 0x9e, 0x8c, 0x0c, 0xea, 0x74, 0x69, 0x3f, + 0xf3, 0xe3, 0x23, 0x9b, 0x30, 0xe3, 0x7e, 0x34, 0x64, 0x74, 0x1d, 0x26, 0x02, 0xd3, 0x1b, 0x90, + 0x93, 0xc4, 0x6b, 0x97, 0x2b, 0xdc, 0xa5, 0x3d, 0x31, 0x07, 0x70, 0xf1, 0x13, 0x30, 0xa3, 0x8e, + 0x3c, 0xc7, 0x3c, 0xd1, 0x56, 0xcd, 0x13, 0x27, 0xbe, 0xc5, 0x53, 0xcd, 0x19, 0xbf, 0x5b, 0x03, + 0x91, 0xcf, 0x70, 0x84, 0x2b, 0x8c, 0x4f, 0x44, 0x21, 0x4e, 0xab, 0x24, 0x71, 0x4c, 0xe7, 0x6d, + 0x8f, 0x17, 0x41, 0x8d, 0x72, 0x8a, 0x3c, 0x19, 0x5b, 0x6c, 0xac, 0x42, 0x40, 0x69, 0x3e, 0xb5, + 0x87, 0x1d, 0x4d, 0xec, 0x87, 0x1a, 0xcc, 0x24, 0xa2, 0xb5, 0xf5, 0x61, 0xcc, 0x97, 0xb6, 0x80, + 0xb2, 0x77, 0x3c, 0x91, 0x77, 0xd3, 0x63, 0x47, 0x34, 0xc2, 0x14, 0x8f, 0x0c, 0xec, 0x56, 0x7b, + 0x40, 0x81, 0xdd, 0xf4, 0x2f, 0x6b, 0x70, 0x21, 0x9a, 0x50, 0x32, 0x4a, 0x08, 0xba, 0x0c, 0x75, + 0x63, 0x60, 0x33, 0xcb, 0xaf, 0x6a, 0x3c, 0x5f, 0x59, 0xef, 0xb0, 0x32, 0x2c, 0x6b, 0xd1, 0xdb, + 0xa0, 0x1e, 0x91, 0x9e, 0x90, 0xfc, 0x24, 0xdf, 0x92, 0xb7, 0x56, 0xb2, 0x05, 0x7a, 0x4a, 0x09, + 0x43, 0x3b, 0x11, 0x1f, 0xd4, 0x12, 0x31, 0xbf, 0xe3, 0xd6, 0xbf, 0x38, 0x06, 0xb3, 0xdc, 0x52, + 0xd2, 0xb4, 0x5d, 0xcb, 0x76, 0x7b, 0xa7, 0x70, 0x40, 0x24, 0x12, 0x81, 0xd7, 0x1e, 0x54, 0x22, + 0xf0, 0x1b, 0x30, 0xf9, 0x2a, 0xe5, 0x54, 0x11, 0x81, 0x8f, 0xc4, 0x30, 0x24, 0xf1, 0x32, 0x26, + 0x17, 0x60, 0x01, 0x02, 0x85, 0x4a, 0x3e, 0xf6, 0x2a, 0x2f, 0xbd, 0x13, 0x4b, 0x2b, 0xe3, 0x49, + 0xcf, 0xe4, 0x27, 0x63, 0x67, 0x01, 0x52, 0x13, 0x3d, 0x5e, 0x2f, 0x01, 0x52, 0x13, 0x83, 0x2e, + 0x38, 0xe7, 0x9e, 0x85, 0xf3, 0xb9, 0xab, 0x71, 0xbc, 0x64, 0xa8, 0x7f, 0xb7, 0x06, 0x2c, 0x4f, + 0xf2, 0x29, 0xd0, 0xe6, 0xc7, 0x12, 0xc2, 0xcb, 0x0b, 0xe5, 0x43, 0xb4, 0x16, 0x99, 0x7f, 0x7a, + 0x29, 0xf3, 0xcf, 0xfb, 0xca, 0xa3, 0x38, 0xda, 0xf6, 0xf3, 0x8d, 0x1a, 0x00, 0x6d, 0xc6, 0x33, + 0x4a, 0x0b, 0xc7, 0x50, 0x4e, 0xd1, 0x5a, 0x92, 0x7b, 0x64, 0x29, 0xf1, 0x34, 0x2f, 0xaf, 0x75, + 0x99, 0x16, 0x78, 0x2c, 0xbe, 0x64, 0x48, 0xa6, 0x04, 0x4e, 0x72, 0x8c, 0xf1, 0x07, 0xc4, 0x31, + 0xf4, 0xef, 0x6a, 0xc0, 0xd2, 0xc5, 0xb4, 0x6f, 0x75, 0xd1, 0xbb, 0x61, 0xd6, 0xe6, 0xb7, 0xb8, + 0x6d, 0x35, 0x9e, 0x1e, 0xbb, 0x69, 0xea, 0xa8, 0x15, 0x38, 0xd9, 0x0e, 0xb9, 0xca, 0xba, 0x56, + 0x49, 0xe7, 0x2e, 0x06, 0x72, 0x2c, 0x8f, 0xf8, 0x49, 0x0d, 0xce, 0xa4, 0xda, 0x8e, 0xa0, 0x5b, + 0x3d, 0x1c, 0x96, 0xab, 0x84, 0xa1, 0x1f, 0x3b, 0x85, 0x30, 0xf4, 0x32, 0x22, 0xfc, 0xf8, 0x43, + 0x8e, 0x08, 0xff, 0x7d, 0x0d, 0x58, 0xa6, 0xf0, 0x53, 0x60, 0xbf, 0x1f, 0x4d, 0xb2, 0xdf, 0x67, + 0x4b, 0xd3, 0x4e, 0x01, 0xd7, 0xfd, 0x0b, 0x0d, 0x58, 0x80, 0x68, 0xe1, 0xba, 0xa2, 0x78, 0x83, + 0x68, 0x05, 0xde, 0x20, 0x4f, 0x0a, 0x67, 0x92, 0x94, 0x21, 0x54, 0x71, 0x28, 0x79, 0x9b, 0xe2, + 0x2f, 0x32, 0x96, 0x64, 0x25, 0x59, 0x9f, 0x11, 0xf4, 0x1a, 0xcc, 0x06, 0xdb, 0x9e, 0x17, 0x46, + 0x26, 0x09, 0xf1, 0xf5, 0x9a, 0xe5, 0x7d, 0xb9, 0xa3, 0xb9, 0xf0, 0xdd, 0xd9, 0x55, 0x81, 0xe3, + 0x24, 0x2e, 0xfd, 0xf7, 0xc4, 0xf4, 0x4f, 0xb0, 0x55, 0x4e, 0x91, 0xf5, 0xbd, 0x25, 0xc5, 0xfa, + 0x8a, 0x32, 0xa2, 0xff, 0xb6, 0x98, 0x85, 0x8c, 0xeb, 0x3d, 0x80, 0x59, 0x47, 0x4d, 0xf2, 0x23, + 0x08, 0xb3, 0x54, 0x7e, 0x20, 0x19, 0xda, 0x2f, 0x51, 0x8c, 0x93, 0x08, 0x28, 0x7f, 0x8c, 0x06, + 0xcf, 0x33, 0x17, 0xf3, 0x74, 0x15, 0xec, 0x0b, 0xac, 0xab, 0x15, 0x38, 0xd9, 0x4e, 0xff, 0x66, + 0x0d, 0x2e, 0xf1, 0xb1, 0x33, 0x2f, 0xfa, 0x36, 0x19, 0x10, 0xd7, 0x22, 0xae, 0xb9, 0xcf, 0xe4, + 0x60, 0xcb, 0xeb, 0xa1, 0xcf, 0x6a, 0x50, 0x8f, 0x6e, 0xcc, 0xc4, 0x44, 0x3e, 0x5c, 0x21, 0x34, + 0x7a, 0x01, 0x1a, 0x79, 0x61, 0xc7, 0x63, 0xcc, 0x89, 0x5f, 0x58, 0x62, 0x46, 0x7b, 0x30, 0x31, + 0xf0, 0xbd, 0xcd, 0x48, 0x07, 0x7c, 0xe5, 0xc1, 0x0f, 0x61, 0x9d, 0x82, 0xe7, 0x3b, 0x8e, 0xfd, + 0x8b, 0x39, 0x42, 0x1d, 0xc3, 0x53, 0x23, 0x0d, 0x1d, 0x3d, 0x9d, 0x8e, 0xaa, 0x2c, 0x0d, 0x3e, + 0x99, 0x18, 0x55, 0xb7, 0x41, 0x3f, 0x7e, 0x2c, 0x27, 0x01, 0xf8, 0x01, 0x78, 0xb3, 0x02, 0x70, + 0x75, 0xcf, 0x24, 0x41, 0xd0, 0x32, 0x06, 0x86, 0x49, 0x15, 0x60, 0xf6, 0x9c, 0x98, 0x1b, 0xa7, + 0x4f, 0x00, 0xf2, 0xd3, 0x35, 0x58, 0x52, 0x60, 0x26, 0x7c, 0xb8, 0x22, 0xee, 0xf1, 0x35, 0x0d, + 0x1a, 0x86, 0xeb, 0x7a, 0xa1, 0xa1, 0x5e, 0x99, 0x92, 0xaa, 0x1f, 0x27, 0x0f, 0xd7, 0xf2, 0x4a, + 0x8c, 0x27, 0xe5, 0x21, 0xa1, 0xd4, 0x60, 0x75, 0x38, 0x17, 0x5f, 0x84, 0xf9, 0x74, 0xaf, 0x13, + 0x69, 0xba, 0x2d, 0xb8, 0xa0, 0x8c, 0x8a, 0x5d, 0xc1, 0xb4, 0xb6, 0x89, 0xb9, 0x13, 0x9c, 0x64, + 0x1d, 0x9b, 0x54, 0xb2, 0x96, 0x40, 0x94, 0xbc, 0x03, 0x4f, 0xc3, 0xd4, 0xae, 0x1d, 0xd8, 0x51, + 0x98, 0x00, 0x05, 0xc6, 0xcb, 0xbc, 0x18, 0x47, 0xf5, 0xfa, 0x4b, 0x70, 0x56, 0x85, 0xc1, 0x98, + 0xe8, 0xad, 0xee, 0x49, 0x46, 0xb1, 0x06, 0x4f, 0x2a, 0x10, 0x72, 0x1f, 0x37, 0x9e, 0x04, 0xdc, + 0xb7, 0xea, 0x11, 0xcf, 0x13, 0xaf, 0x6f, 0xbe, 0xa7, 0xc1, 0xa3, 0xa4, 0x88, 0xec, 0x04, 0xdf, + 0xf8, 0x50, 0x55, 0xba, 0x28, 0xa4, 0x6b, 0x11, 0x5a, 0xab, 0xa8, 0x1a, 0x17, 0x0f, 0x0d, 0xdd, + 0x4b, 0x24, 0xdd, 0xa8, 0x55, 0xd2, 0x26, 0x73, 0xbe, 0xf2, 0x51, 0x29, 0x37, 0x90, 0x0f, 0xf5, + 0x40, 0x7c, 0xcb, 0x4a, 0x6f, 0xb0, 0x73, 0x68, 0x43, 0x38, 0x89, 0x8a, 0x5f, 0x58, 0xe2, 0x41, + 0xdf, 0xd2, 0xe0, 0x9c, 0x93, 0xb3, 0xbf, 0xc4, 0xc1, 0x7f, 0xe7, 0x61, 0xec, 0x5d, 0x6e, 0x78, + 0xcf, 0xab, 0xc1, 0xb9, 0x63, 0x41, 0x7f, 0xa7, 0xf0, 0xb5, 0xef, 0x44, 0x85, 0x9c, 0x67, 0xc7, + 0x6d, 0x80, 0x93, 0x3f, 0xfc, 0x45, 0xbf, 0x04, 0x0d, 0x2f, 0x66, 0x0b, 0xe2, 0x85, 0xf6, 0x8d, + 0xaa, 0xa3, 0x53, 0x38, 0x0d, 0xbf, 0xca, 0x54, 0x0a, 0xb0, 0x8a, 0x10, 0x7d, 0x45, 0x03, 0x64, + 0x65, 0x8e, 0x0f, 0x71, 0x9d, 0x8a, 0x1f, 0xfc, 0x21, 0xc9, 0xef, 0x6e, 0xb2, 0xe5, 0x38, 0x67, + 0x14, 0xfa, 0xbf, 0x9c, 0xe2, 0x82, 0x3a, 0x33, 0x9d, 0x9b, 0x30, 0xb9, 0xc9, 0x74, 0x5d, 0xc1, + 0x0c, 0xca, 0x6b, 0xd6, 0x5c, 0x65, 0xe6, 0x9a, 0x28, 0xff, 0x1f, 0x0b, 0xd0, 0x68, 0x19, 0x60, + 0xd3, 0xf1, 0xcc, 0x9d, 0x56, 0xa7, 0x8d, 0x23, 0x21, 0x88, 0x6d, 0xc0, 0xa6, 0x2c, 0xc5, 0x4a, + 0x0b, 0xf4, 0x11, 0x18, 0xb3, 0xa4, 0x7a, 0xf4, 0x7c, 0x15, 0xcd, 0x30, 0x76, 0xdb, 0xa7, 0xdb, + 0x8d, 0x42, 0x45, 0x1e, 0xd4, 0x5d, 0x21, 0x0b, 0x8b, 0xcd, 0x55, 0x3e, 0xa7, 0x8c, 0x14, 0xaa, + 0xa5, 0x2c, 0x1f, 0x95, 0x60, 0x89, 0x84, 0x22, 0x94, 0xca, 0xee, 0x44, 0x45, 0x84, 0x52, 0xd3, + 0x3d, 0xca, 0x0e, 0xb1, 0xae, 0xea, 0xad, 0x93, 0xa3, 0xeb, 0xad, 0xb3, 0x85, 0x3a, 0xeb, 0x16, + 0x4c, 0x86, 0x3c, 0xaf, 0xfd, 0x54, 0x05, 0xef, 0x2b, 0x3a, 0x01, 0x96, 0xf8, 0x3e, 0x96, 0xd9, + 0x45, 0x56, 0x7c, 0x01, 0x9d, 0x52, 0xe3, 0x2e, 0x4b, 0xf9, 0x25, 0xe2, 0xfe, 0x95, 0xa7, 0x46, + 0x9e, 0x39, 0x8c, 0x53, 0x23, 0xff, 0x1f, 0x0b, 0xd0, 0x68, 0x87, 0x6a, 0x62, 0xfc, 0x7c, 0x14, + 0x51, 0x0a, 0x56, 0xaa, 0xee, 0xc8, 0x20, 0x72, 0xfe, 0xe7, 0xbf, 0xb0, 0x44, 0x80, 0x4c, 0x98, + 0x12, 0xa6, 0x0f, 0x11, 0xbc, 0xfa, 0xf9, 0x2a, 0x09, 0x04, 0xa2, 0x84, 0x78, 0xfc, 0x49, 0x72, + 0x04, 0x59, 0xff, 0x0f, 0xe3, 0xdc, 0x6a, 0xf5, 0x53, 0xf4, 0x97, 0xeb, 0x41, 0x3d, 0x02, 0x56, + 0xc9, 0x0c, 0x18, 0xe5, 0x61, 0xe1, 0x0b, 0x2a, 0xb3, 0xb2, 0x48, 0xe0, 0xa8, 0x95, 0xf7, 0xd4, + 0x48, 0x89, 0x8d, 0x36, 0xd2, 0x33, 0xa3, 0x7c, 0xc7, 0x92, 0xf1, 0x52, 0x8e, 0x25, 0x2f, 0xc0, + 0x99, 0xc8, 0xf7, 0xce, 0x22, 0xec, 0x6a, 0x4b, 0x78, 0xa7, 0xb3, 0x27, 0xb6, 0xad, 0x64, 0x15, + 0x4e, 0xb7, 0x45, 0xdf, 0xd6, 0xe0, 0xcd, 0xdc, 0x33, 0xbe, 0x45, 0x8f, 0x32, 0x96, 0x14, 0x8d, + 0xc4, 0x59, 0xd8, 0x62, 0xa7, 0x8b, 0xc9, 0x13, 0x3b, 0x5d, 0x5c, 0x3e, 0x3c, 0x58, 0x7a, 0x73, + 0x6b, 0x04, 0xd8, 0x78, 0xa4, 0x11, 0xe8, 0x37, 0x60, 0x5a, 0x6e, 0x61, 0x74, 0x49, 0x11, 0xd8, + 0x63, 0x2e, 0x7b, 0x83, 0xec, 0x73, 0xe9, 0x7d, 0x29, 0x21, 0xbd, 0x73, 0xfd, 0xed, 0x65, 0x5a, + 0x20, 0x04, 0x79, 0xfd, 0x3f, 0x6b, 0x9c, 0x66, 0x45, 0x02, 0x41, 0x03, 0x1a, 0x7d, 0x1e, 0x16, + 0x8e, 0x3d, 0x0c, 0xd4, 0xca, 0x3f, 0x49, 0x5c, 0x8b, 0xc1, 0x60, 0x15, 0x26, 0xda, 0xcb, 0x66, + 0xb9, 0xbc, 0x56, 0x91, 0xbf, 0x8c, 0x9c, 0xec, 0x12, 0x65, 0xfb, 0xa8, 0xe9, 0x01, 0xb5, 0xa3, + 0xd3, 0x03, 0x1e, 0x9f, 0xde, 0x49, 0xff, 0xde, 0x18, 0xe4, 0x86, 0xf6, 0x47, 0x3a, 0x4c, 0xf2, + 0x37, 0x0e, 0x6a, 0xfe, 0x4f, 0xfe, 0x00, 0x02, 0x8b, 0x1a, 0xe4, 0xc3, 0x39, 0xf1, 0x80, 0xe0, + 0x06, 0xd9, 0x8f, 0xf3, 0x4e, 0x8a, 0x8d, 0x3c, 0xba, 0x1b, 0x31, 0x8b, 0x17, 0xd5, 0x4d, 0x41, + 0xc2, 0xb9, 0xb0, 0xd1, 0x6d, 0xfe, 0xa2, 0xc7, 0xb5, 0xee, 0x78, 0x3b, 0xc4, 0x8d, 0xc9, 0x4d, + 0xbc, 0x51, 0x7c, 0x34, 0x7a, 0xd1, 0x93, 0x69, 0x80, 0xf3, 0xfb, 0xa1, 0x5d, 0x40, 0x7d, 0x63, + 0x2f, 0x0d, 0xad, 0x42, 0x44, 0xf1, 0xb5, 0x0c, 0x34, 0x9c, 0x83, 0x81, 0xee, 0x7f, 0xc3, 0x34, + 0xc9, 0x20, 0x24, 0x16, 0x5f, 0xd6, 0xe8, 0x91, 0x3c, 0xdb, 0xff, 0x2b, 0xc9, 0x2a, 0x9c, 0x6e, + 0xcb, 0x5c, 0xf9, 0x99, 0x3e, 0xf0, 0x3a, 0x71, 0x32, 0x61, 0x63, 0x7d, 0xc8, 0xae, 0xfc, 0x1c, + 0xc7, 0xd1, 0x37, 0x35, 0x1f, 0x82, 0x0b, 0xac, 0xd9, 0x8a, 0xc5, 0x54, 0x80, 0x80, 0x58, 0x2b, + 0x96, 0xc5, 0x9e, 0xd7, 0x55, 0xcd, 0xdb, 0xa9, 0xff, 0xf3, 0x1a, 0x9c, 0x61, 0xb0, 0x5b, 0x2b, + 0x58, 0x58, 0x29, 0x50, 0x3b, 0x72, 0x1f, 0xe4, 0x50, 0x97, 0xd3, 0xee, 0x83, 0x97, 0x78, 0x07, + 0x9f, 0x30, 0xbe, 0x6e, 0x38, 0x41, 0xd4, 0x33, 0xe1, 0x4f, 0xe8, 0x03, 0x72, 0x8c, 0x20, 0xe4, + 0x69, 0x94, 0x22, 0xe6, 0x5a, 0xc2, 0x9d, 0x90, 0xd1, 0xe7, 0xcd, 0x0c, 0x24, 0x9c, 0x03, 0x3d, + 0xc2, 0xd9, 0xf2, 0xfa, 0x03, 0x87, 0x48, 0x9c, 0xb5, 0xf2, 0x38, 0x93, 0x90, 0x70, 0x0e, 0x74, + 0xfd, 0x4b, 0x1a, 0xcc, 0xa7, 0x17, 0x04, 0xdd, 0x85, 0xba, 0x2f, 0x16, 0x45, 0xd0, 0xf7, 0x5a, + 0x79, 0xea, 0xc8, 0x59, 0x69, 0x91, 0xcb, 0x43, 0xfc, 0xc2, 0x12, 0x99, 0xfe, 0x0f, 0xc6, 0x60, + 0xb1, 0xa8, 0x13, 0xfa, 0x75, 0x0d, 0x2e, 0x98, 0xf1, 0xb9, 0xb7, 0x32, 0x0c, 0xb7, 0x3d, 0xdf, + 0x0e, 0x6d, 0x12, 0x65, 0x09, 0x6e, 0x57, 0x18, 0xa4, 0xa4, 0x1f, 0x1e, 0xbc, 0xa3, 0x95, 0x8b, + 0x07, 0x17, 0xe0, 0x47, 0x9f, 0x04, 0xa0, 0xa2, 0x8b, 0xa9, 0x1a, 0xd4, 0x6f, 0x96, 0x1f, 0xcd, + 0x0d, 0x09, 0x4b, 0x8e, 0x8a, 0x29, 0x61, 0x4a, 0xb9, 0x82, 0x8f, 0xa5, 0x3d, 0x0d, 0xb6, 0x6f, + 0x90, 0xfd, 0x81, 0x61, 0xfb, 0x95, 0xd2, 0x9e, 0xf2, 0xed, 0xdc, 0xbd, 0x2e, 0x60, 0x25, 0xb1, + 0x2b, 0xe5, 0x0a, 0x3e, 0xfd, 0x97, 0x6b, 0xf0, 0x48, 0xc1, 0xa8, 0x0b, 0x76, 0x91, 0xf6, 0xff, + 0xdc, 0x2e, 0xfa, 0x81, 0x06, 0xd3, 0x6c, 0x0d, 0x5e, 0x2f, 0x1e, 0x7b, 0x6c, 0xb0, 0x05, 0x77, + 0x6a, 0xbf, 0xaf, 0xc1, 0x42, 0x26, 0xa8, 0xd0, 0x08, 0xbc, 0xfa, 0x14, 0x6f, 0x96, 0x9e, 0x4a, + 0xa7, 0xc8, 0x6c, 0xe4, 0x46, 0x1b, 0x7b, 0x05, 0x66, 0x13, 0x37, 0x6a, 0xf2, 0x25, 0xb9, 0x96, + 0xfb, 0x92, 0x5c, 0x7d, 0x28, 0x5e, 0x3b, 0xf2, 0xa1, 0xb8, 0xa4, 0xf9, 0xec, 0x5e, 0xf9, 0xff, + 0x86, 0xe6, 0xff, 0xd9, 0x9c, 0xa0, 0x79, 0x66, 0x9d, 0xfa, 0x18, 0x4c, 0xb2, 0x17, 0xed, 0x11, + 0x2f, 0x7e, 0x6f, 0xf9, 0xa7, 0xf2, 0x01, 0x97, 0x7c, 0xf9, 0xff, 0x58, 0x80, 0x45, 0x6d, 0x98, + 0x37, 0x1d, 0x6f, 0x68, 0xad, 0xfb, 0xde, 0x96, 0xed, 0x90, 0x5b, 0xb1, 0x90, 0x2d, 0x23, 0xf3, + 0xb4, 0x52, 0xf5, 0x38, 0xd3, 0x03, 0x75, 0x55, 0x7b, 0xd5, 0x7b, 0xca, 0xde, 0xb0, 0xf3, 0x48, + 0xa8, 0xd2, 0x4e, 0xe5, 0x03, 0x90, 0x88, 0x7c, 0x23, 0x47, 0xe7, 0x17, 0x4b, 0x46, 0x1d, 0x92, + 0xbb, 0x20, 0x12, 0x0f, 0x65, 0x51, 0x80, 0x15, 0x2c, 0x28, 0x80, 0xc6, 0x76, 0x9c, 0xdf, 0x53, + 0x58, 0xab, 0x5e, 0xaa, 0x9a, 0x5c, 0x94, 0xeb, 0x65, 0x4a, 0x01, 0x56, 0xb1, 0xa0, 0x80, 0x1f, + 0x73, 0x5c, 0x43, 0xaf, 0x94, 0x0c, 0x2e, 0xd6, 0xfd, 0xe3, 0x99, 0xc6, 0x65, 0x58, 0x41, 0x43, + 0x91, 0xba, 0x32, 0x30, 0x85, 0x30, 0xcc, 0x96, 0x43, 0x1a, 0xc7, 0xb7, 0x88, 0x91, 0xc6, 0x65, + 0x58, 0x41, 0x43, 0x97, 0xb7, 0x1f, 0x87, 0x23, 0x11, 0x36, 0xae, 0x97, 0xaa, 0xc6, 0x85, 0x11, + 0x6a, 0x6f, 0x5c, 0x80, 0x55, 0x2c, 0xc8, 0x03, 0xe8, 0xcb, 0x30, 0x25, 0xc2, 0xe0, 0x55, 0x6e, + 0xa6, 0x71, 0xb4, 0x13, 0x7e, 0x74, 0xc7, 0xbf, 0xb1, 0x82, 0x02, 0xed, 0x28, 0xf6, 0x4e, 0xa8, + 0x60, 0x0a, 0x1a, 0xc9, 0xd6, 0xf9, 0xae, 0x58, 0x89, 0x6e, 0xb0, 0x7d, 0xfb, 0x98, 0xa2, 0x40, + 0xdf, 0x3f, 0x58, 0x9a, 0x61, 0xcc, 0x24, 0xa3, 0x50, 0xc7, 0x4e, 0x04, 0x33, 0x47, 0x39, 0x11, + 0xa0, 0x6b, 0xb0, 0x10, 0xa8, 0xfe, 0x77, 0x8c, 0x41, 0xcc, 0xb2, 0x2e, 0x32, 0xb0, 0x4d, 0x37, + 0xdd, 0x00, 0x67, 0xfb, 0xf0, 0x53, 0x80, 0x58, 0xac, 0xff, 0x9c, 0x7a, 0x0a, 0xf0, 0x32, 0x2c, + 0x6b, 0x33, 0x79, 0xcf, 0xcf, 0x9c, 0x56, 0xde, 0xf3, 0x4f, 0xaa, 0x89, 0xae, 0xe7, 0x2b, 0xf8, + 0xbe, 0x97, 0xc9, 0x74, 0x9d, 0xce, 0xba, 0xbe, 0x70, 0x4a, 0x59, 0xd7, 0x51, 0x0b, 0x16, 0x88, + 0x9a, 0x81, 0x9e, 0x7d, 0x21, 0x14, 0xdb, 0x13, 0x57, 0xd3, 0x95, 0x38, 0xdb, 0x1e, 0x7d, 0x41, + 0x83, 0x79, 0x9e, 0x6c, 0x83, 0x1e, 0x67, 0x9e, 0x4b, 0xdc, 0x30, 0x58, 0x3c, 0x5b, 0x21, 0x50, + 0x5c, 0x37, 0x05, 0x4c, 0x98, 0x56, 0x52, 0xa5, 0x38, 0x83, 0x54, 0xff, 0xd7, 0x1a, 0x80, 0x54, + 0x9f, 0xc9, 0x29, 0xd8, 0x14, 0x48, 0xc2, 0xa6, 0xd0, 0xaa, 0xa6, 0xef, 0x93, 0xc2, 0xd7, 0x2b, + 0x7f, 0xa4, 0xc1, 0x5c, 0xdc, 0xec, 0x14, 0x04, 0x62, 0x2b, 0x29, 0x10, 0xbf, 0xaf, 0xe2, 0xc4, + 0x0a, 0xa4, 0xe2, 0xff, 0x53, 0x53, 0xa7, 0xc5, 0x64, 0x9e, 0xbb, 0x8a, 0x25, 0x9d, 0xdb, 0xee, + 0x3b, 0x0f, 0x2c, 0xa3, 0x79, 0x3c, 0xe3, 0x1c, 0xcb, 0xfa, 0xa7, 0x12, 0x02, 0x47, 0x95, 0xc7, + 0x2f, 0x52, 0xba, 0x88, 0x70, 0xf3, 0x25, 0x38, 0x4e, 0xfa, 0xf0, 0x55, 0x06, 0xc4, 0xfd, 0xd1, + 0x57, 0x4a, 0x3e, 0xb8, 0x50, 0xa6, 0x7c, 0x74, 0x82, 0xfd, 0x6f, 0xcc, 0x40, 0x43, 0x31, 0x37, + 0xfd, 0x54, 0xee, 0x4e, 0x86, 0xd0, 0x30, 0x3d, 0x37, 0x08, 0x7d, 0x43, 0x89, 0xb0, 0x50, 0x15, + 0xa9, 0xe4, 0x7c, 0xad, 0x18, 0x34, 0x56, 0xf1, 0xd0, 0x73, 0x5a, 0x12, 0xda, 0xd8, 0x83, 0xb8, + 0xb2, 0x39, 0x8a, 0xb8, 0xde, 0x09, 0x10, 0xc9, 0x7c, 0x84, 0x67, 0x0a, 0xa8, 0xc7, 0x91, 0xb1, + 0x3b, 0xc1, 0x75, 0x59, 0x87, 0x95, 0x76, 0xe8, 0x35, 0x98, 0x75, 0xd4, 0x98, 0xb8, 0x42, 0x22, + 0x2d, 0xe7, 0x06, 0x99, 0x88, 0xae, 0xcb, 0x9d, 0xf0, 0x12, 0x45, 0x38, 0x89, 0x0b, 0xed, 0xc0, + 0xb4, 0x13, 0x05, 0x72, 0x16, 0x62, 0xe9, 0x8b, 0xa5, 0x11, 0x33, 0x28, 0xfc, 0x86, 0x55, 0xfe, + 0xc4, 0x31, 0x7c, 0x4a, 0x77, 0xf2, 0x47, 0xb5, 0x5b, 0xd6, 0x18, 0x9b, 0xa4, 0x3b, 0x59, 0x14, + 0x60, 0x05, 0x4b, 0xc1, 0x2d, 0x58, 0xbd, 0xd4, 0x2d, 0xd8, 0x10, 0xce, 0xfa, 0x24, 0xf4, 0xf7, + 0x5b, 0xfb, 0x26, 0x4b, 0x44, 0xef, 0x87, 0x4c, 0x59, 0x9c, 0x2e, 0xf7, 0x52, 0x1a, 0x67, 0x41, + 0xe1, 0x3c, 0xf8, 0x54, 0xf5, 0xa6, 0x32, 0x8c, 0x08, 0x54, 0xc4, 0x54, 0x6f, 0x2a, 0xe1, 0x60, + 0x56, 0x8a, 0xde, 0x05, 0x8d, 0x90, 0x98, 0xdb, 0xae, 0x6d, 0x1a, 0x4e, 0xa7, 0x2d, 0x04, 0xc4, + 0x58, 0x24, 0x88, 0xab, 0xb0, 0xda, 0x0e, 0x35, 0x61, 0x6c, 0x68, 0x5b, 0x42, 0x32, 0xfc, 0x79, + 0x69, 0x1e, 0xee, 0xb4, 0xef, 0x1f, 0x2c, 0xbd, 0x31, 0x7e, 0x8a, 0x27, 0x67, 0x72, 0x65, 0xb0, + 0xd3, 0xbb, 0x12, 0xee, 0x0f, 0x48, 0xb0, 0xbc, 0xd1, 0x69, 0x63, 0xda, 0x39, 0xef, 0x56, 0x70, + 0xf6, 0x04, 0xb7, 0x82, 0x5f, 0xd1, 0xe0, 0xac, 0x91, 0xb6, 0x6c, 0x93, 0x60, 0x71, 0xae, 0x02, + 0x57, 0xce, 0x37, 0x97, 0xc7, 0x51, 0x15, 0x57, 0xb2, 0xf8, 0x70, 0xde, 0x20, 0x90, 0x0f, 0xa8, + 0x6f, 0xf7, 0x64, 0x78, 0x6b, 0xf1, 0xa9, 0xcf, 0x94, 0xb3, 0x0b, 0xac, 0x65, 0x20, 0xe1, 0x1c, + 0xe8, 0x68, 0x0f, 0x1a, 0x66, 0x6c, 0xbd, 0x65, 0xb9, 0xca, 0x4a, 0xcb, 0x56, 0x29, 0x53, 0xb0, + 0x08, 0xa6, 0xa2, 0xd8, 0x86, 0x55, 0x54, 0xfa, 0x5d, 0xc8, 0xc8, 0x5d, 0xc8, 0x84, 0x29, 0x0a, + 0xb3, 0x7d, 0xab, 0x2b, 0x24, 0x8f, 0xe7, 0x4b, 0x72, 0x6b, 0x06, 0x83, 0xdb, 0x99, 0xc4, 0x0f, + 0x1c, 0x41, 0xd6, 0x6f, 0x02, 0xc4, 0x52, 0x6b, 0xe5, 0xfb, 0xd6, 0xff, 0x34, 0x01, 0xe7, 0xab, + 0xfa, 0x17, 0xb2, 0x98, 0xd6, 0x2c, 0x09, 0xe1, 0xca, 0x56, 0x48, 0xfc, 0xdb, 0xb7, 0xd7, 0x64, + 0x82, 0xb6, 0x92, 0x41, 0xb5, 0xe3, 0x34, 0x96, 0x19, 0x88, 0xb8, 0x00, 0x13, 0x93, 0xd8, 0x45, + 0xaa, 0x27, 0x4c, 0xc5, 0x8a, 0xa1, 0x1f, 0x84, 0xe2, 0xc5, 0x1e, 0x97, 0xd8, 0xd3, 0x95, 0x38, + 0xdb, 0x3e, 0x0d, 0x84, 0x27, 0x44, 0xa4, 0xc7, 0x92, 0x96, 0x05, 0xc2, 0xb3, 0x22, 0x66, 0xdb, + 0xab, 0x40, 0xf8, 0x97, 0xa2, 0x5a, 0xfd, 0x44, 0x16, 0x88, 0xac, 0xc4, 0xd9, 0xf6, 0xc8, 0x82, + 0xc7, 0x7d, 0x62, 0x7a, 0xfd, 0x3e, 0x71, 0x2d, 0x9e, 0x0f, 0xc1, 0xf0, 0x7b, 0xb6, 0x7b, 0xd5, + 0x37, 0x58, 0x43, 0x76, 0xf2, 0x68, 0xcd, 0x27, 0x0f, 0x0f, 0x96, 0x1e, 0xc7, 0x47, 0xb4, 0xc3, + 0x47, 0x42, 0x41, 0x7d, 0x38, 0x33, 0x64, 0xb1, 0x5a, 0xfd, 0x8e, 0x1b, 0x12, 0x7f, 0xd7, 0x70, + 0x4a, 0x66, 0xfa, 0x64, 0xfc, 0x6b, 0x23, 0x09, 0x0a, 0xa7, 0x61, 0xa3, 0x7d, 0x7a, 0x1c, 0x88, + 0xe1, 0x28, 0x28, 0xeb, 0xe5, 0xa3, 0xbe, 0xe3, 0x2c, 0x38, 0x9c, 0x87, 0x43, 0xff, 0xdb, 0x1a, + 0x08, 0x8f, 0x1f, 0x7a, 0x3a, 0x28, 0xd6, 0xe5, 0x7a, 0xca, 0xb2, 0xfc, 0xb8, 0x78, 0xd5, 0x50, + 0x8b, 0x6b, 0x95, 0x17, 0x0d, 0x6f, 0x51, 0x9e, 0x82, 0x4e, 0xc7, 0x47, 0x29, 0x87, 0xac, 0xc4, + 0x3b, 0xfe, 0x4b, 0x30, 0x35, 0xf0, 0xed, 0xbe, 0xe1, 0xef, 0x0b, 0xa9, 0x66, 0x96, 0xc7, 0xb5, + 0x32, 0xfd, 0xfd, 0x01, 0x15, 0x67, 0xa2, 0x5a, 0xfd, 0x87, 0x1a, 0x88, 0xde, 0x2c, 0xc8, 0xf6, + 0x48, 0x11, 0x9a, 0x8f, 0xbd, 0xf7, 0x57, 0x62, 0x44, 0x8f, 0x15, 0xc5, 0x88, 0x7e, 0x58, 0x01, + 0x97, 0xbf, 0xa7, 0x41, 0x3a, 0x7b, 0x3f, 0x7a, 0x0a, 0xa6, 0x44, 0xec, 0x0c, 0xf1, 0xfa, 0x9e, + 0x3f, 0x4a, 0xe2, 0x45, 0x38, 0xaa, 0x4b, 0x9a, 0x1a, 0xaa, 0x68, 0x1a, 0xf9, 0xef, 0x83, 0x8f, + 0x91, 0xf9, 0x0f, 0xe6, 0x60, 0x92, 0x07, 0x7b, 0x40, 0xbf, 0x92, 0xeb, 0x29, 0x7f, 0xb3, 0x42, + 0x3c, 0x89, 0x12, 0x0e, 0xf1, 0x89, 0x58, 0xa0, 0xb5, 0x23, 0x63, 0x81, 0x76, 0x79, 0x0c, 0xf8, + 0x2a, 0x96, 0xe6, 0x16, 0xee, 0x88, 0x24, 0x64, 0x22, 0xfe, 0x3b, 0x1a, 0x26, 0x0c, 0xb0, 0xe3, + 0x15, 0x8e, 0x56, 0xbe, 0x04, 0x8a, 0x19, 0x76, 0xee, 0x08, 0x13, 0x6c, 0xfc, 0xb8, 0x7e, 0xa2, + 0x82, 0x33, 0x8e, 0x58, 0xf5, 0x11, 0x1e, 0xd7, 0xcb, 0xdd, 0x34, 0x59, 0xb8, 0x9b, 0x7a, 0x30, + 0x25, 0xf6, 0x83, 0xe0, 0x8e, 0xcf, 0x57, 0x89, 0xf0, 0xae, 0x04, 0x65, 0xe2, 0x05, 0x38, 0x82, + 0x4e, 0xcf, 0xdc, 0xbe, 0xb1, 0x67, 0xf7, 0x87, 0x7d, 0xc6, 0x13, 0x27, 0xd4, 0xa6, 0xac, 0x18, + 0x47, 0xf5, 0xac, 0x29, 0xf7, 0x62, 0x62, 0xd2, 0xb4, 0xda, 0x54, 0xe4, 0xd1, 0x8c, 0xea, 0xd1, + 0x87, 0xa1, 0xde, 0x37, 0xf6, 0xba, 0x43, 0xbf, 0x47, 0x84, 0xe5, 0xb5, 0xd8, 0xda, 0x33, 0x0c, + 0x6d, 0x67, 0x99, 0xea, 0x81, 0xa1, 0xbf, 0xdc, 0x71, 0xc3, 0xdb, 0x7e, 0x37, 0xf4, 0x65, 0xd8, + 0xe9, 0x35, 0x01, 0x05, 0x4b, 0x78, 0xc8, 0x81, 0xb9, 0xbe, 0xb1, 0xb7, 0xe1, 0x1a, 0x32, 0xdd, + 0x5f, 0xa3, 0x24, 0x06, 0x76, 0x15, 0xb7, 0x96, 0x80, 0x85, 0x53, 0xb0, 0x73, 0x6e, 0xfd, 0x66, + 0x1e, 0xd6, 0xad, 0xdf, 0x8a, 0xf4, 0x6d, 0x9d, 0x65, 0x64, 0xf8, 0x68, 0x9e, 0xbb, 0xd3, 0xd1, + 0x6e, 0xab, 0x1f, 0x93, 0x6e, 0xab, 0x73, 0x15, 0xae, 0xa9, 0x8e, 0x70, 0x59, 0xdd, 0x85, 0x86, + 0x65, 0x84, 0x06, 0x2f, 0x0d, 0x16, 0xcf, 0x54, 0x30, 0x49, 0xb5, 0x25, 0x1c, 0x25, 0x09, 0x4f, + 0x0c, 0x1b, 0xab, 0x88, 0xd0, 0x6d, 0x9e, 0x0e, 0xce, 0x21, 0x61, 0xdc, 0x84, 0x19, 0x48, 0xe7, + 0xb9, 0x09, 0x3c, 0x4a, 0xde, 0x96, 0x69, 0x80, 0xf3, 0xfb, 0x51, 0x31, 0x95, 0xbf, 0x46, 0x5d, + 0x88, 0xc3, 0xc1, 0x25, 0x22, 0x6e, 0xfc, 0xb5, 0x3c, 0x4b, 0x2a, 0xaa, 0xe0, 0xbf, 0xcf, 0xf9, + 0x43, 0x59, 0x7b, 0x2a, 0xfa, 0x47, 0x1a, 0x2c, 0xf6, 0x0b, 0x72, 0xdc, 0x08, 0x0b, 0xef, 0x46, + 0x15, 0x1e, 0x51, 0x98, 0x38, 0x87, 0xa7, 0x54, 0x3f, 0xae, 0x15, 0x2e, 0x1c, 0x5c, 0xd5, 0x57, + 0x56, 0x55, 0x42, 0x91, 0xfc, 0xa6, 0x06, 0xf3, 0xe9, 0xa3, 0x40, 0x4d, 0x60, 0xa7, 0x3d, 0xe4, + 0x04, 0x76, 0xca, 0x45, 0x7e, 0xed, 0x88, 0x8b, 0xfc, 0x17, 0xe0, 0x42, 0x3e, 0x75, 0x50, 0xe1, + 0x8c, 0xa5, 0x8d, 0x14, 0x0a, 0x51, 0x1c, 0x65, 0x9d, 0x16, 0x62, 0x5e, 0xd7, 0x5c, 0xfe, 0xfe, + 0x4f, 0x9e, 0x78, 0xc3, 0x1f, 0xfe, 0xe4, 0x89, 0x37, 0xfc, 0xe8, 0x27, 0x4f, 0xbc, 0xe1, 0xd3, + 0x87, 0x4f, 0x68, 0xdf, 0x3f, 0x7c, 0x42, 0xfb, 0xc3, 0xc3, 0x27, 0xb4, 0x1f, 0x1d, 0x3e, 0xa1, + 0xfd, 0xbb, 0xc3, 0x27, 0xb4, 0xbf, 0xf1, 0xef, 0x9f, 0x78, 0xc3, 0x87, 0xeb, 0xd1, 0xc8, 0xff, + 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x52, 0xf8, 0x05, 0xa8, 0xc9, 0x00, 0x00, } func (m *Addon) Marshal() (dAtA []byte, err error) { @@ -7810,56 +7784,6 @@ func (m *ExtensionResourceState) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *ExtensionStatus) 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 *ExtensionStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ExtensionStatus) 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] = 0x22 - if m.Purpose != nil { - i -= len(*m.Purpose) - copy(dAtA[i:], *m.Purpose) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Purpose))) - i-- - dAtA[i] = 0x1a - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0x12 - i -= len(m.Kind) - copy(dAtA[i:], m.Kind) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - func (m *Gardener) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7918,6 +7842,30 @@ func (m *GardenerResourceData) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Labels) > 0 { + keysForLabels := make([]string, 0, len(m.Labels)) + for k := range m.Labels { + keysForLabels = append(keysForLabels, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + for iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- { + v := m.Labels[string(keysForLabels[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForLabels[iNdEx]) + copy(dAtA[i:], keysForLabels[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x22 + } + } { size, err := m.Data.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -12683,6 +12631,18 @@ func (m *ShootCARotation) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.LastInitiationTime != nil { + { + size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } if m.LastCompletionTime != nil { { size, err := m.LastCompletionTime.MarshalToSizedBuffer(dAtA[:i]) @@ -12758,9 +12718,9 @@ func (m *ShootCredentialsRotation) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l - if m.CertificateAuthorities != nil { + if m.SSHKeypair != nil { { - size, err := m.CertificateAuthorities.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.SSHKeypair.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -12768,59 +12728,36 @@ func (m *ShootCredentialsRotation) MarshalToSizedBuffer(dAtA []byte) (int, error i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *ShootExtensionStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + dAtA[i] = 0x1a } - return dAtA[:n], nil -} - -func (m *ShootExtensionStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ShootExtensionStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Statuses) > 0 { - for iNdEx := len(m.Statuses) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Statuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + if m.Kubeconfig != nil { + { + size, err := m.Kubeconfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x12 + 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 + if m.CertificateAuthorities != nil { + { + size, err := m.CertificateAuthorities.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0xa return len(dAtA) - i, nil } -func (m *ShootExtensionStatusList) Marshal() (dAtA []byte, err error) { +func (m *ShootKubeconfigRotation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -12830,40 +12767,40 @@ func (m *ShootExtensionStatusList) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ShootExtensionStatusList) MarshalTo(dAtA []byte) (int, error) { +func (m *ShootKubeconfigRotation) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ShootExtensionStatusList) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ShootKubeconfigRotation) 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)) + if m.LastCompletionTime != nil { + { + size, err := m.LastCompletionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x12 + 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 + if m.LastInitiationTime != nil { + { + size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -12998,6 +12935,53 @@ func (m *ShootNetworks) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ShootSSHKeypairRotation) 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 *ShootSSHKeypairRotation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootSSHKeypairRotation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LastCompletionTime != nil { + { + size, err := m.LastCompletionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.LastInitiationTime != nil { + { + size, err := m.LastInitiationTime.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 *ShootSpec) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -15138,25 +15122,6 @@ func (m *ExtensionResourceState) Size() (n int) { return n } -func (m *ExtensionStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Kind) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.Purpose != nil { - l = len(*m.Purpose) - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - func (m *Gardener) Size() (n int) { if m == nil { return 0 @@ -15184,6 +15149,14 @@ func (m *GardenerResourceData) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.Data.Size() n += 1 + l + sovGenerated(uint64(l)) + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } return n } @@ -16941,6 +16914,10 @@ func (m *ShootCARotation) Size() (n int) { l = m.LastCompletionTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationTime != nil { + l = m.LastInitiationTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -16967,39 +16944,30 @@ func (m *ShootCredentialsRotation) Size() (n int) { l = m.CertificateAuthorities.Size() n += 1 + l + sovGenerated(uint64(l)) } - return n -} - -func (m *ShootExtensionStatus) Size() (n int) { - if m == nil { - return 0 + if m.Kubeconfig != nil { + l = m.Kubeconfig.Size() + n += 1 + l + sovGenerated(uint64(l)) } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Statuses) > 0 { - for _, e := range m.Statuses { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } + if m.SSHKeypair != nil { + l = m.SSHKeypair.Size() + n += 1 + l + sovGenerated(uint64(l)) } return n } -func (m *ShootExtensionStatusList) Size() (n int) { +func (m *ShootKubeconfigRotation) 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)) - } + if m.LastInitiationTime != nil { + l = m.LastInitiationTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTime != nil { + l = m.LastCompletionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) } return n } @@ -17057,6 +17025,23 @@ func (m *ShootNetworks) Size() (n int) { return n } +func (m *ShootSSHKeypairRotation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastInitiationTime != nil { + l = m.LastInitiationTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTime != nil { + l = m.LastCompletionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *ShootSpec) Size() (n int) { if m == nil { return 0 @@ -18189,19 +18174,6 @@ func (this *ExtensionResourceState) String() string { }, "") return s } -func (this *ExtensionStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ExtensionStatus{`, - `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Purpose:` + valueToStringGenerated(this.Purpose) + `,`, - `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} func (this *Gardener) String() string { if this == nil { return "nil" @@ -18218,10 +18190,21 @@ func (this *GardenerResourceData) String() string { if this == nil { return "nil" } + keysForLabels := make([]string, 0, len(this.Labels)) + for k := range this.Labels { + keysForLabels = append(keysForLabels, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + mapStringForLabels := "map[string]string{" + for _, k := range keysForLabels { + mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) + } + mapStringForLabels += "}" s := strings.Join([]string{`&GardenerResourceData{`, `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `Type:` + fmt.Sprintf("%v", this.Type) + `,`, `Data:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Data), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, + `Labels:` + mapStringForLabels + `,`, `}`, }, "") return s @@ -19446,6 +19429,7 @@ func (this *ShootCARotation) String() string { s := strings.Join([]string{`&ShootCARotation{`, `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -19466,38 +19450,19 @@ func (this *ShootCredentialsRotation) String() string { } s := strings.Join([]string{`&ShootCredentialsRotation{`, `CertificateAuthorities:` + strings.Replace(this.CertificateAuthorities.String(), "ShootCARotation", "ShootCARotation", 1) + `,`, + `Kubeconfig:` + strings.Replace(this.Kubeconfig.String(), "ShootKubeconfigRotation", "ShootKubeconfigRotation", 1) + `,`, + `SSHKeypair:` + strings.Replace(this.SSHKeypair.String(), "ShootSSHKeypairRotation", "ShootSSHKeypairRotation", 1) + `,`, `}`, }, "") return s } -func (this *ShootExtensionStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForStatuses := "[]ExtensionStatus{" - for _, f := range this.Statuses { - repeatedStringForStatuses += strings.Replace(strings.Replace(f.String(), "ExtensionStatus", "ExtensionStatus", 1), `&`, ``, 1) + "," - } - repeatedStringForStatuses += "}" - s := strings.Join([]string{`&ShootExtensionStatus{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Statuses:` + repeatedStringForStatuses + `,`, - `}`, - }, "") - return s -} -func (this *ShootExtensionStatusList) String() string { +func (this *ShootKubeconfigRotation) String() string { if this == nil { return "nil" } - repeatedStringForItems := "[]ShootExtensionStatus{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ShootExtensionStatus", "ShootExtensionStatus", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ShootExtensionStatusList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, + s := strings.Join([]string{`&ShootKubeconfigRotation{`, + `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -19541,6 +19506,17 @@ func (this *ShootNetworks) String() string { }, "") return s } +func (this *ShootSSHKeypairRotation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootSSHKeypairRotation{`, + `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, + `}`, + }, "") + return s +} func (this *ShootSpec) String() string { if this == nil { return "nil" @@ -26827,228 +26803,10 @@ func (m *ExtensionResourceState) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExtensionResourceState: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExtensionResourceState: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Kind", 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.Kind = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Name = &s - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Purpose", 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 - } - s := string(dAtA[iNdEx:postIndex]) - m.Purpose = &s - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field State", 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.State == nil { - m.State = &runtime.RawExtension{} - } - if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resources", 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.Resources = append(m.Resources, v1beta1.NamedResourceReference{}) - if err := m.Resources[len(m.Resources)-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 *ExtensionStatus) 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: ExtensionStatus: wiretype end group for non-group") + return fmt.Errorf("proto: ExtensionResourceState: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExtensionStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExtensionResourceState: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -27085,7 +26843,7 @@ func (m *ExtensionStatus) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -27113,7 +26871,8 @@ func (m *ExtensionStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Type = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s iNdEx = postIndex case 3: if wireType != 2 { @@ -27150,7 +26909,7 @@ func (m *ExtensionStatus) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -27177,7 +26936,44 @@ func (m *ExtensionStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.State == nil { + m.State = &runtime.RawExtension{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", 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.Resources = append(m.Resources, v1beta1.NamedResourceReference{}) + if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27474,6 +27270,133 @@ func (m *GardenerResourceData) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", 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.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := 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) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Labels[mapkey] = mapvalue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -41407,63 +41330,95 @@ func (m *ShootAdvertisedAddress) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.URL = string(dAtA[iNdEx:postIndex]) + m.URL = 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 *ShootCARotation) 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: ShootCARotation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootCARotation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", 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.Phase = ShootCredentialsRotationPhase(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 *ShootCARotation) 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: ShootCARotation: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ShootCARotation: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTime", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -41473,27 +41428,31 @@ func (m *ShootCARotation) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Phase = ShootCredentialsRotationPhase(dAtA[iNdEx:postIndex]) + if m.LastCompletionTime == nil { + m.LastCompletionTime = &v11.Time{} + } + if err := m.LastCompletionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -41520,10 +41479,10 @@ func (m *ShootCARotation) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.LastCompletionTime == nil { - m.LastCompletionTime = &v11.Time{} + if m.LastInitiationTime == nil { + m.LastInitiationTime = &v11.Time{} } - if err := m.LastCompletionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.LastInitiationTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -41699,59 +41658,9 @@ func (m *ShootCredentialsRotation) Unmarshal(dAtA []byte) error { 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 *ShootExtensionStatus) 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: ShootExtensionStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ShootExtensionStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Kubeconfig", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -41778,13 +41687,16 @@ func (m *ShootExtensionStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Kubeconfig == nil { + m.Kubeconfig = &ShootKubeconfigRotation{} + } + if err := m.Kubeconfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Statuses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SSHKeypair", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -41811,8 +41723,10 @@ func (m *ShootExtensionStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Statuses = append(m.Statuses, ExtensionStatus{}) - if err := m.Statuses[len(m.Statuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.SSHKeypair == nil { + m.SSHKeypair = &ShootSSHKeypairRotation{} + } + if err := m.SSHKeypair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -41837,7 +41751,7 @@ func (m *ShootExtensionStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *ShootExtensionStatusList) Unmarshal(dAtA []byte) error { +func (m *ShootKubeconfigRotation) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -41860,15 +41774,15 @@ func (m *ShootExtensionStatusList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ShootExtensionStatusList: wiretype end group for non-group") + return fmt.Errorf("proto: ShootKubeconfigRotation: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ShootExtensionStatusList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ShootKubeconfigRotation: 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) + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -41895,13 +41809,16 @@ func (m *ShootExtensionStatusList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.LastInitiationTime == nil { + m.LastInitiationTime = &v11.Time{} + } + if err := m.LastInitiationTime.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) + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -41928,8 +41845,10 @@ func (m *ShootExtensionStatusList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, ShootExtensionStatus{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.LastCompletionTime == nil { + m.LastCompletionTime = &v11.Time{} + } + if err := m.LastCompletionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -42338,6 +42257,128 @@ func (m *ShootNetworks) Unmarshal(dAtA []byte) error { } return nil } +func (m *ShootSSHKeypairRotation) 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: ShootSSHKeypairRotation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootSSHKeypairRotation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationTime", 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.LastInitiationTime == nil { + m.LastInitiationTime = &v11.Time{} + } + if err := m.LastInitiationTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTime", 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.LastCompletionTime == nil { + m.LastCompletionTime = &v11.Time{} + } + if err := m.LastCompletionTime.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 *ShootSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto index c4a76481..16f8be1f 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto @@ -739,23 +739,6 @@ message ExtensionResourceState { repeated github.com.gardener.gardener.pkg.apis.core.v1beta1.NamedResourceReference resources = 5; } -// ExtensionStatus contains the kind, the type, the optional purpose and the last observed status -// of an extension controller. -message ExtensionStatus { - // Kind of the extension resource - optional string kind = 1; - - // Type of the extension resource. This field is immutable. - optional string type = 2; - - // Purpose of the extension resource - // +optional - optional string purpose = 3; - - // Status contains the status of the extension resource - optional k8s.io.apimachinery.pkg.runtime.RawExtension status = 4; -} - // Gardener holds the information about the Gardener version that operated a resource. message Gardener { // ID is the Docker container id of the Gardener which last acted on a resource. @@ -778,12 +761,16 @@ message GardenerResourceData { // Data contains the payload required to generate resources optional k8s.io.apimachinery.pkg.runtime.RawExtension data = 3; + + // Labels are labels of the object + // +optional + map labels = 4; } // Hibernation contains information whether the Shoot is suspended or not. message Hibernation { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. - // If it is false or nil, the Shoot's desired state is to be awaken. + // If it is false or nil, the Shoot's desired state is to be awakened. // +optional optional bool enabled = 1; @@ -2179,6 +2166,8 @@ message ServiceAccountConfig { // MaxTokenExpiration is the maximum validity duration of a token created by the service account token issuer. If an // otherwise valid TokenRequest with a validity duration larger than this value is requested, a token will be issued // with a validity duration of this value. + // This field must be within [30d,90d] when the ShootMaxTokenExpirationValidation feature gate is enabled. + // This field will be overwritten to be within [30d,90d] when the ShootMaxTokenExpirationOverwrite feature gate is enabled. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration maxTokenExpiration = 4; @@ -2220,6 +2209,10 @@ message ShootCARotation { // Phase describes the phase of the certificate authority credential rotation. optional string phase = 1; + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; + // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully // completed. // +optional @@ -2238,29 +2231,25 @@ message ShootCredentialsRotation { // CertificateAuthorities contains information about the certificate authority credential rotation. // +optional optional ShootCARotation certificateAuthorities = 1; -} -// ShootExtensionStatus holds the status information of extensions of a Shoot cluster -message ShootExtensionStatus { - // Standard object metadata. - // Designed to have an owner reference to the associated Shoot resource + // Kubeconfig contains information about the kubeconfig credential rotation. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + optional ShootKubeconfigRotation kubeconfig = 2; - // Statuses holds a list of statuses of extension controllers. + // SSHKeypair contains information about the ssh-keypair credential rotation. // +optional - repeated ExtensionStatus statuses = 2; + optional ShootSSHKeypairRotation sshKeypair = 3; } -// ShootExtensionStatusList is a list of ShootExtensionStatus objects. -message ShootExtensionStatusList { - // Standard list object metadata. +// ShootKubeconfigRotation contains information about the kubeconfig credential rotation. +message ShootKubeconfigRotation { + // LastInitiationTime is the most recent time when the kubeconfig credential rotation was initiated. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 1; - // Items is a list of ShootExtensionStatus. + // LastCompletionTime is the most recent time when the kubeconfig credential rotation was successfully completed. // +optional - repeated ShootExtensionStatus items = 2; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; } // ShootList is a list of Shoot objects. @@ -2300,6 +2289,17 @@ message ShootNetworks { optional string services = 2; } +// ShootSSHKeypairRotation contains information about the ssh-keypair credential rotation. +message ShootSSHKeypairRotation { + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 1; + + // LastCompletionTime is the most recent time when the ssh-keypair credential rotation was successfully completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; +} + // ShootSpec is the specification of a Shoot. message ShootSpec { // Addons contains information about enabled/disabled addons and their configuration. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/helper/shootstate_list.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/helper/shootstate_list.go index 99519423..c309cc2e 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/helper/shootstate_list.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/helper/shootstate_list.go @@ -92,6 +92,7 @@ func (g *GardenerResourceDataList) Upsert(data *gardencorev1alpha1.GardenerResou if obj.Name == data.Name { (*g)[i].Type = data.Type (*g)[i].Data = data.Data + (*g)[i].Labels = data.Labels return } } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/register.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/register.go index 9fbfc2cb..3a7b4273 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/register.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/register.go @@ -75,8 +75,6 @@ func addKnownTypes(scheme *runtime.Scheme) error { &ShootStateList{}, &Shoot{}, &ShootList{}, - &ShootExtensionStatus{}, - &ShootExtensionStatusList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go index 5659f7d4..3c19c2a6 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go @@ -190,18 +190,47 @@ type ShootCredentialsRotation struct { // CertificateAuthorities contains information about the certificate authority credential rotation. // +optional CertificateAuthorities *ShootCARotation `json:"certificateAuthorities,omitempty" protobuf:"bytes,1,opt,name=certificateAuthorities"` + // Kubeconfig contains information about the kubeconfig credential rotation. + // +optional + Kubeconfig *ShootKubeconfigRotation `json:"kubeconfig,omitempty" protobuf:"bytes,2,opt,name=kubeconfig"` + // SSHKeypair contains information about the ssh-keypair credential rotation. + // +optional + SSHKeypair *ShootSSHKeypairRotation `json:"sshKeypair,omitempty" protobuf:"bytes,3,opt,name=sshKeypair"` } // ShootCARotation contains information about the certificate authority credential rotation. type ShootCARotation struct { // Phase describes the phase of the certificate authority credential rotation. Phase ShootCredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully // completed. // +optional LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` } +// ShootKubeconfigRotation contains information about the kubeconfig credential rotation. +type ShootKubeconfigRotation struct { + // LastInitiationTime is the most recent time when the kubeconfig credential rotation was initiated. + // +optional + LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,1,opt,name=lastInitiationTime"` + // LastCompletionTime is the most recent time when the kubeconfig credential rotation was successfully completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` +} + +// ShootSSHKeypairRotation contains information about the ssh-keypair credential rotation. +type ShootSSHKeypairRotation struct { + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,1,opt,name=lastInitiationTime"` + // LastCompletionTime is the most recent time when the ssh-keypair credential rotation was successfully completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` +} + // ShootCredentialsRotationPhase is a string alias. type ShootCredentialsRotationPhase string @@ -364,7 +393,7 @@ type NamedResourceReference struct { // Hibernation contains information whether the Shoot is suspended or not. type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. - // If it is false or nil, the Shoot's desired state is to be awaken. + // If it is false or nil, the Shoot's desired state is to be awakened. // +optional Enabled *bool `json:"enabled,omitempty" protobuf:"varint,1,opt,name=enabled"` // Schedules determine the hibernation schedules. @@ -621,6 +650,8 @@ type ServiceAccountConfig struct { // MaxTokenExpiration is the maximum validity duration of a token created by the service account token issuer. If an // otherwise valid TokenRequest with a validity duration larger than this value is requested, a token will be issued // with a validity duration of this value. + // This field must be within [30d,90d] when the ShootMaxTokenExpirationValidation feature gate is enabled. + // This field will be overwritten to be within [30d,90d] when the ShootMaxTokenExpirationOverwrite feature gate is enabled. // +optional MaxTokenExpiration *metav1.Duration `json:"maxTokenExpiration,omitempty" protobuf:"bytes,4,opt,name=maxTokenExpiration"` // AcceptedIssuers is an additional set of issuers that are used to determine which service account tokens are accepted. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootextensionstatus.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootextensionstatus.go deleted file mode 100644 index 3c5b8525..00000000 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootextensionstatus.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) 2021 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file -// -// 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" -) - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ShootExtensionStatus holds the status information of extensions of a Shoot cluster -type ShootExtensionStatus struct { - metav1.TypeMeta `json:",inline"` - // Standard object metadata. - // Designed to have an owner reference to the associated Shoot resource - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // Statuses holds a list of statuses of extension controllers. - // +optional - Statuses []ExtensionStatus `json:"statuses,omitempty" protobuf:"bytes,2,rep,name=statuses"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ShootExtensionStatusList is a list of ShootExtensionStatus objects. -type ShootExtensionStatusList struct { - metav1.TypeMeta `json:",inline"` - // Standard list object metadata. - // +optional - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // Items is a list of ShootExtensionStatus. - // +optional - Items []ShootExtensionStatus `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// ExtensionStatus contains the kind, the type, the optional purpose and the last observed status -// of an extension controller. -type ExtensionStatus struct { - // Kind of the extension resource - Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` - // Type of the extension resource. This field is immutable. - Type string `json:"type" protobuf:"bytes,2,opt,name=type"` - // Purpose of the extension resource - // +optional - Purpose *string `json:"purpose,omitempty" protobuf:"bytes,3,opt,name=purpose"` - // Status contains the status of the extension resource - Status runtime.RawExtension `json:"status" protobuf:"bytes,4,opt,name=status"` -} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go index 4586065e..7ec61066 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go @@ -71,6 +71,9 @@ type GardenerResourceData struct { Type string `json:"type" protobuf:"bytes,2,opt,name=type"` // Data contains the payload required to generate resources Data runtime.RawExtension `json:"data" protobuf:"bytes,3,opt,name=data"` + // Labels are labels of the object + // +optional + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,4,opt,name=labels"` } // ExtensionResourceState contains the kind of the extension custom resource and its last observed state in the Shoot's diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go index 1b173e21..97881396 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go @@ -503,16 +503,6 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*ExtensionStatus)(nil), (*core.ExtensionStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ExtensionStatus_To_core_ExtensionStatus(a.(*ExtensionStatus), b.(*core.ExtensionStatus), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*core.ExtensionStatus)(nil), (*ExtensionStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_core_ExtensionStatus_To_v1alpha1_ExtensionStatus(a.(*core.ExtensionStatus), b.(*ExtensionStatus), scope) - }); err != nil { - return err - } if err := s.AddGeneratedConversionFunc((*Gardener)(nil), (*core.Gardener)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_Gardener_To_core_Gardener(a.(*Gardener), b.(*core.Gardener), scope) }); err != nil { @@ -1338,23 +1328,13 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*ShootExtensionStatus)(nil), (*core.ShootExtensionStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ShootExtensionStatus_To_core_ShootExtensionStatus(a.(*ShootExtensionStatus), b.(*core.ShootExtensionStatus), scope) + if err := s.AddGeneratedConversionFunc((*ShootKubeconfigRotation)(nil), (*core.ShootKubeconfigRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(a.(*ShootKubeconfigRotation), b.(*core.ShootKubeconfigRotation), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*core.ShootExtensionStatus)(nil), (*ShootExtensionStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_core_ShootExtensionStatus_To_v1alpha1_ShootExtensionStatus(a.(*core.ShootExtensionStatus), b.(*ShootExtensionStatus), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ShootExtensionStatusList)(nil), (*core.ShootExtensionStatusList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ShootExtensionStatusList_To_core_ShootExtensionStatusList(a.(*ShootExtensionStatusList), b.(*core.ShootExtensionStatusList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*core.ShootExtensionStatusList)(nil), (*ShootExtensionStatusList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_core_ShootExtensionStatusList_To_v1alpha1_ShootExtensionStatusList(a.(*core.ShootExtensionStatusList), b.(*ShootExtensionStatusList), scope) + if err := s.AddGeneratedConversionFunc((*core.ShootKubeconfigRotation)(nil), (*ShootKubeconfigRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_core_ShootKubeconfigRotation_To_v1alpha1_ShootKubeconfigRotation(a.(*core.ShootKubeconfigRotation), b.(*ShootKubeconfigRotation), scope) }); err != nil { return err } @@ -1388,6 +1368,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*ShootSSHKeypairRotation)(nil), (*core.ShootSSHKeypairRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(a.(*ShootSSHKeypairRotation), b.(*core.ShootSSHKeypairRotation), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*core.ShootSSHKeypairRotation)(nil), (*ShootSSHKeypairRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_core_ShootSSHKeypairRotation_To_v1alpha1_ShootSSHKeypairRotation(a.(*core.ShootSSHKeypairRotation), b.(*ShootSSHKeypairRotation), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*ShootSpec)(nil), (*core.ShootSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_ShootSpec_To_core_ShootSpec(a.(*ShootSpec), b.(*core.ShootSpec), scope) }); err != nil { @@ -2884,36 +2874,6 @@ func Convert_core_ExtensionResourceState_To_v1alpha1_ExtensionResourceState(in * return autoConvert_core_ExtensionResourceState_To_v1alpha1_ExtensionResourceState(in, out, s) } -func autoConvert_v1alpha1_ExtensionStatus_To_core_ExtensionStatus(in *ExtensionStatus, out *core.ExtensionStatus, s conversion.Scope) error { - out.Kind = in.Kind - out.Type = in.Type - out.Purpose = (*string)(unsafe.Pointer(in.Purpose)) - if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha1_ExtensionStatus_To_core_ExtensionStatus is an autogenerated conversion function. -func Convert_v1alpha1_ExtensionStatus_To_core_ExtensionStatus(in *ExtensionStatus, out *core.ExtensionStatus, s conversion.Scope) error { - return autoConvert_v1alpha1_ExtensionStatus_To_core_ExtensionStatus(in, out, s) -} - -func autoConvert_core_ExtensionStatus_To_v1alpha1_ExtensionStatus(in *core.ExtensionStatus, out *ExtensionStatus, s conversion.Scope) error { - out.Kind = in.Kind - out.Type = in.Type - out.Purpose = (*string)(unsafe.Pointer(in.Purpose)) - if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_core_ExtensionStatus_To_v1alpha1_ExtensionStatus is an autogenerated conversion function. -func Convert_core_ExtensionStatus_To_v1alpha1_ExtensionStatus(in *core.ExtensionStatus, out *ExtensionStatus, s conversion.Scope) error { - return autoConvert_core_ExtensionStatus_To_v1alpha1_ExtensionStatus(in, out, s) -} - func autoConvert_v1alpha1_Gardener_To_core_Gardener(in *Gardener, out *core.Gardener, s conversion.Scope) error { out.ID = in.ID out.Name = in.Name @@ -2942,6 +2902,7 @@ func autoConvert_v1alpha1_GardenerResourceData_To_core_GardenerResourceData(in * out.Name = in.Name out.Type = in.Type out.Data = in.Data + out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) return nil } @@ -2954,6 +2915,7 @@ func autoConvert_core_GardenerResourceData_To_v1alpha1_GardenerResourceData(in * out.Name = in.Name out.Type = in.Type out.Data = in.Data + out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) return nil } @@ -5146,6 +5108,7 @@ func Convert_core_ShootAdvertisedAddress_To_v1alpha1_ShootAdvertisedAddress(in * func autoConvert_v1alpha1_ShootCARotation_To_core_ShootCARotation(in *ShootCARotation, out *core.ShootCARotation, s conversion.Scope) error { out.Phase = core.ShootCredentialsRotationPhase(in.Phase) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) return nil } @@ -5157,6 +5120,7 @@ func Convert_v1alpha1_ShootCARotation_To_core_ShootCARotation(in *ShootCARotatio func autoConvert_core_ShootCARotation_To_v1alpha1_ShootCARotation(in *core.ShootCARotation, out *ShootCARotation, s conversion.Scope) error { out.Phase = ShootCredentialsRotationPhase(in.Phase) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) return nil } @@ -5188,6 +5152,8 @@ func Convert_core_ShootCredentials_To_v1alpha1_ShootCredentials(in *core.ShootCr func autoConvert_v1alpha1_ShootCredentialsRotation_To_core_ShootCredentialsRotation(in *ShootCredentialsRotation, out *core.ShootCredentialsRotation, s conversion.Scope) error { out.CertificateAuthorities = (*core.ShootCARotation)(unsafe.Pointer(in.CertificateAuthorities)) + out.Kubeconfig = (*core.ShootKubeconfigRotation)(unsafe.Pointer(in.Kubeconfig)) + out.SSHKeypair = (*core.ShootSSHKeypairRotation)(unsafe.Pointer(in.SSHKeypair)) return nil } @@ -5198,6 +5164,8 @@ func Convert_v1alpha1_ShootCredentialsRotation_To_core_ShootCredentialsRotation( func autoConvert_core_ShootCredentialsRotation_To_v1alpha1_ShootCredentialsRotation(in *core.ShootCredentialsRotation, out *ShootCredentialsRotation, s conversion.Scope) error { out.CertificateAuthorities = (*ShootCARotation)(unsafe.Pointer(in.CertificateAuthorities)) + out.Kubeconfig = (*ShootKubeconfigRotation)(unsafe.Pointer(in.Kubeconfig)) + out.SSHKeypair = (*ShootSSHKeypairRotation)(unsafe.Pointer(in.SSHKeypair)) return nil } @@ -5206,88 +5174,26 @@ func Convert_core_ShootCredentialsRotation_To_v1alpha1_ShootCredentialsRotation( return autoConvert_core_ShootCredentialsRotation_To_v1alpha1_ShootCredentialsRotation(in, out, s) } -func autoConvert_v1alpha1_ShootExtensionStatus_To_core_ShootExtensionStatus(in *ShootExtensionStatus, out *core.ShootExtensionStatus, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if in.Statuses != nil { - in, out := &in.Statuses, &out.Statuses - *out = make([]core.ExtensionStatus, len(*in)) - for i := range *in { - if err := Convert_v1alpha1_ExtensionStatus_To_core_ExtensionStatus(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Statuses = nil - } - return nil -} - -// Convert_v1alpha1_ShootExtensionStatus_To_core_ShootExtensionStatus is an autogenerated conversion function. -func Convert_v1alpha1_ShootExtensionStatus_To_core_ShootExtensionStatus(in *ShootExtensionStatus, out *core.ShootExtensionStatus, s conversion.Scope) error { - return autoConvert_v1alpha1_ShootExtensionStatus_To_core_ShootExtensionStatus(in, out, s) -} - -func autoConvert_core_ShootExtensionStatus_To_v1alpha1_ShootExtensionStatus(in *core.ShootExtensionStatus, out *ShootExtensionStatus, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if in.Statuses != nil { - in, out := &in.Statuses, &out.Statuses - *out = make([]ExtensionStatus, len(*in)) - for i := range *in { - if err := Convert_core_ExtensionStatus_To_v1alpha1_ExtensionStatus(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Statuses = nil - } - return nil -} - -// Convert_core_ShootExtensionStatus_To_v1alpha1_ShootExtensionStatus is an autogenerated conversion function. -func Convert_core_ShootExtensionStatus_To_v1alpha1_ShootExtensionStatus(in *core.ShootExtensionStatus, out *ShootExtensionStatus, s conversion.Scope) error { - return autoConvert_core_ShootExtensionStatus_To_v1alpha1_ShootExtensionStatus(in, out, s) -} - -func autoConvert_v1alpha1_ShootExtensionStatusList_To_core_ShootExtensionStatusList(in *ShootExtensionStatusList, out *core.ShootExtensionStatusList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]core.ShootExtensionStatus, len(*in)) - for i := range *in { - if err := Convert_v1alpha1_ShootExtensionStatus_To_core_ShootExtensionStatus(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } +func autoConvert_v1alpha1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(in *ShootKubeconfigRotation, out *core.ShootKubeconfigRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) return nil } -// Convert_v1alpha1_ShootExtensionStatusList_To_core_ShootExtensionStatusList is an autogenerated conversion function. -func Convert_v1alpha1_ShootExtensionStatusList_To_core_ShootExtensionStatusList(in *ShootExtensionStatusList, out *core.ShootExtensionStatusList, s conversion.Scope) error { - return autoConvert_v1alpha1_ShootExtensionStatusList_To_core_ShootExtensionStatusList(in, out, s) +// Convert_v1alpha1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation is an autogenerated conversion function. +func Convert_v1alpha1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(in *ShootKubeconfigRotation, out *core.ShootKubeconfigRotation, s conversion.Scope) error { + return autoConvert_v1alpha1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(in, out, s) } -func autoConvert_core_ShootExtensionStatusList_To_v1alpha1_ShootExtensionStatusList(in *core.ShootExtensionStatusList, out *ShootExtensionStatusList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ShootExtensionStatus, len(*in)) - for i := range *in { - if err := Convert_core_ShootExtensionStatus_To_v1alpha1_ShootExtensionStatus(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } +func autoConvert_core_ShootKubeconfigRotation_To_v1alpha1_ShootKubeconfigRotation(in *core.ShootKubeconfigRotation, out *ShootKubeconfigRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) return nil } -// Convert_core_ShootExtensionStatusList_To_v1alpha1_ShootExtensionStatusList is an autogenerated conversion function. -func Convert_core_ShootExtensionStatusList_To_v1alpha1_ShootExtensionStatusList(in *core.ShootExtensionStatusList, out *ShootExtensionStatusList, s conversion.Scope) error { - return autoConvert_core_ShootExtensionStatusList_To_v1alpha1_ShootExtensionStatusList(in, out, s) +// Convert_core_ShootKubeconfigRotation_To_v1alpha1_ShootKubeconfigRotation is an autogenerated conversion function. +func Convert_core_ShootKubeconfigRotation_To_v1alpha1_ShootKubeconfigRotation(in *core.ShootKubeconfigRotation, out *ShootKubeconfigRotation, s conversion.Scope) error { + return autoConvert_core_ShootKubeconfigRotation_To_v1alpha1_ShootKubeconfigRotation(in, out, s) } func autoConvert_v1alpha1_ShootList_To_core_ShootList(in *ShootList, out *core.ShootList, s conversion.Scope) error { @@ -5382,6 +5288,28 @@ func Convert_core_ShootNetworks_To_v1alpha1_ShootNetworks(in *core.ShootNetworks return autoConvert_core_ShootNetworks_To_v1alpha1_ShootNetworks(in, out, s) } +func autoConvert_v1alpha1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(in *ShootSSHKeypairRotation, out *core.ShootSSHKeypairRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + return nil +} + +// Convert_v1alpha1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation is an autogenerated conversion function. +func Convert_v1alpha1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(in *ShootSSHKeypairRotation, out *core.ShootSSHKeypairRotation, s conversion.Scope) error { + return autoConvert_v1alpha1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(in, out, s) +} + +func autoConvert_core_ShootSSHKeypairRotation_To_v1alpha1_ShootSSHKeypairRotation(in *core.ShootSSHKeypairRotation, out *ShootSSHKeypairRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + return nil +} + +// Convert_core_ShootSSHKeypairRotation_To_v1alpha1_ShootSSHKeypairRotation is an autogenerated conversion function. +func Convert_core_ShootSSHKeypairRotation_To_v1alpha1_ShootSSHKeypairRotation(in *core.ShootSSHKeypairRotation, out *ShootSSHKeypairRotation, s conversion.Scope) error { + return autoConvert_core_ShootSSHKeypairRotation_To_v1alpha1_ShootSSHKeypairRotation(in, out, s) +} + func autoConvert_v1alpha1_ShootSpec_To_core_ShootSpec(in *ShootSpec, out *core.ShootSpec, s conversion.Scope) error { out.Addons = (*core.Addons)(unsafe.Pointer(in.Addons)) out.CloudProfileName = in.CloudProfileName diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go index 734acd5f..91bd522a 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go @@ -1418,28 +1418,6 @@ func (in *ExtensionResourceState) DeepCopy() *ExtensionResourceState { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExtensionStatus) DeepCopyInto(out *ExtensionStatus) { - *out = *in - if in.Purpose != nil { - in, out := &in.Purpose, &out.Purpose - *out = new(string) - **out = **in - } - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionStatus. -func (in *ExtensionStatus) DeepCopy() *ExtensionStatus { - if in == nil { - return nil - } - out := new(ExtensionStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Gardener) DeepCopyInto(out *Gardener) { *out = *in @@ -1460,6 +1438,13 @@ func (in *Gardener) DeepCopy() *Gardener { func (in *GardenerResourceData) DeepCopyInto(out *GardenerResourceData) { *out = *in in.Data.DeepCopyInto(&out.Data) + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } @@ -3936,6 +3921,10 @@ func (in *ShootAdvertisedAddress) DeepCopy() *ShootAdvertisedAddress { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootCARotation) DeepCopyInto(out *ShootCARotation) { *out = *in + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() + } if in.LastCompletionTime != nil { in, out := &in.LastCompletionTime, &out.LastCompletionTime *out = (*in).DeepCopy() @@ -3982,6 +3971,16 @@ func (in *ShootCredentialsRotation) DeepCopyInto(out *ShootCredentialsRotation) *out = new(ShootCARotation) (*in).DeepCopyInto(*out) } + if in.Kubeconfig != nil { + in, out := &in.Kubeconfig, &out.Kubeconfig + *out = new(ShootKubeconfigRotation) + (*in).DeepCopyInto(*out) + } + if in.SSHKeypair != nil { + in, out := &in.SSHKeypair, &out.SSHKeypair + *out = new(ShootSSHKeypairRotation) + (*in).DeepCopyInto(*out) + } return } @@ -3996,71 +3995,29 @@ func (in *ShootCredentialsRotation) DeepCopy() *ShootCredentialsRotation { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ShootExtensionStatus) DeepCopyInto(out *ShootExtensionStatus) { +func (in *ShootKubeconfigRotation) DeepCopyInto(out *ShootKubeconfigRotation) { *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Statuses != nil { - in, out := &in.Statuses, &out.Statuses - *out = make([]ExtensionStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootExtensionStatus. -func (in *ShootExtensionStatus) DeepCopy() *ShootExtensionStatus { - if in == nil { - return nil - } - out := new(ShootExtensionStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ShootExtensionStatus) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ShootExtensionStatusList) DeepCopyInto(out *ShootExtensionStatusList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ShootExtensionStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootExtensionStatusList. -func (in *ShootExtensionStatusList) DeepCopy() *ShootExtensionStatusList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootKubeconfigRotation. +func (in *ShootKubeconfigRotation) DeepCopy() *ShootKubeconfigRotation { if in == nil { return nil } - out := new(ShootExtensionStatusList) + out := new(ShootKubeconfigRotation) in.DeepCopyInto(out) return out } -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ShootExtensionStatusList) 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 *ShootList) DeepCopyInto(out *ShootList) { *out = *in @@ -4146,6 +4103,30 @@ func (in *ShootNetworks) DeepCopy() *ShootNetworks { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShootSSHKeypairRotation) DeepCopyInto(out *ShootSSHKeypairRotation) { + *out = *in + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootSSHKeypairRotation. +func (in *ShootSSHKeypairRotation) DeepCopy() *ShootSSHKeypairRotation { + if in == nil { + return nil + } + out := new(ShootSSHKeypairRotation) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootSpec) DeepCopyInto(out *ShootSpec) { *out = *in diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go index 600d44f9..9d89718b 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/constants/types_constants.go @@ -39,10 +39,6 @@ const ( // SecretNameSSHKeyPair is a constant for the name of a Kubernetes secret object that contains the SSH key pair // (public and private key) that can be used to SSH into the shoot nodes. SecretNameSSHKeyPair = "ssh-keypair" - // SecretNameOldSSHKeyPair is a constant for the name of a Kubernetes secret object that contains the previous - // SSH key pair for a shoot cluster. This exists only after the first key rotation. Both the current and the - // old key are placed onto each shoot node. - SecretNameOldSSHKeyPair = "ssh-keypair.old" // SecretNameServiceAccountKey is a constant for the name of a Kubernetes secret object that contains a // PEM-encoded private RSA or ECDSA key used by the Kube Controller Manager to sign service account tokens SecretNameServiceAccountKey = "service-account-key" @@ -61,7 +57,12 @@ const ( // SecretNameGenericTokenKubeconfig is a constant for the name of the kubeconfig used by the shoot controlplane // components to authenticate against the shoot Kubernetes API server. + // Use `pkg/extensions.GenericTokenKubeconfigSecretNameFromCluster` instead. SecretNameGenericTokenKubeconfig = "generic-token-kubeconfig" + // AnnotationKeyGenericTokenKubeconfigSecretName is a constant for the key of an annotation on + // extensions.gardener.cloud/v1alpha1.Cluster resources whose value contains the name of the generic token + // kubeconfig secret in the seed cluster. + AnnotationKeyGenericTokenKubeconfigSecretName = "generic-token-kubeconfig.secret.gardener.cloud/name" // SecretPrefixGeneratedBackupBucket is a constant for the prefix of a secret name in the garden cluster related to // BackpuBuckets. @@ -190,6 +191,8 @@ const ( GardenRoleCloudConfig = "cloud-config" // GardenRoleKubeconfig is the value of the GardenRole key indicating type 'kubeconfig'. GardenRoleKubeconfig = "kubeconfig" + // GardenRoleCACluster is the value of the GardenRole key indicating type 'ca-cluster'. + GardenRoleCACluster = "ca-cluster" // GardenRoleSSHKeyPair is the value of the GardenRole key indicating type 'ssh-keypair'. GardenRoleSSHKeyPair = "ssh-keypair" // GardenRoleDefaultDomain is the value of the GardenRole key indicating type 'default-domain'. @@ -251,6 +254,15 @@ const ( // ShootTaskDeployInfrastructure is a name for a Shoot's infrastructure deployment task. It indicates that the // Infrastructure extension resource shall be reconciled. ShootTaskDeployInfrastructure = "deployInfrastructure" + // ShootTaskDeployDNSRecordInternal is a name for a Shoot's internal DNS record deployment task. It indicates that + // the internal DNSRecord extension resources shall be reconciled. + ShootTaskDeployDNSRecordInternal = "deployDNSRecordInternal" + // ShootTaskDeployDNSRecordExternal is a name for a Shoot's external DNS record deployment task. It indicates that + // the external DNSRecord extension resources shall be reconciled. + ShootTaskDeployDNSRecordExternal = "deployDNSRecordExternal" + // ShootTaskDeployDNSRecordIngress is a name for a Shoot's ingress DNS record deployment task. It indicates that + // the ingress DNSRecord extension resources shall be reconciled. + ShootTaskDeployDNSRecordIngress = "deployDNSRecordIngress" // ShootTaskRestartControlPlanePods is a name for a Shoot task which is dedicated to restart related control plane pods. ShootTaskRestartControlPlanePods = "restartControlPlanePods" // ShootTaskRestartCoreAddons is a name for a Shoot task which is dedicated to restart some core addons. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go index 35c6a412..01e5473d 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go @@ -3777,10 +3777,38 @@ func (m *ShootCredentialsRotation) XXX_DiscardUnknown() { var xxx_messageInfo_ShootCredentialsRotation proto.InternalMessageInfo +func (m *ShootKubeconfigRotation) Reset() { *m = ShootKubeconfigRotation{} } +func (*ShootKubeconfigRotation) ProtoMessage() {} +func (*ShootKubeconfigRotation) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{133} +} +func (m *ShootKubeconfigRotation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootKubeconfigRotation) 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 *ShootKubeconfigRotation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootKubeconfigRotation.Merge(m, src) +} +func (m *ShootKubeconfigRotation) XXX_Size() int { + return m.Size() +} +func (m *ShootKubeconfigRotation) XXX_DiscardUnknown() { + xxx_messageInfo_ShootKubeconfigRotation.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootKubeconfigRotation proto.InternalMessageInfo + func (m *ShootList) Reset() { *m = ShootList{} } func (*ShootList) ProtoMessage() {} func (*ShootList) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{133} + return fileDescriptor_ca37af0df9a5bbd2, []int{134} } func (m *ShootList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3808,7 +3836,7 @@ var xxx_messageInfo_ShootList proto.InternalMessageInfo func (m *ShootMachineImage) Reset() { *m = ShootMachineImage{} } func (*ShootMachineImage) ProtoMessage() {} func (*ShootMachineImage) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{134} + return fileDescriptor_ca37af0df9a5bbd2, []int{135} } func (m *ShootMachineImage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3836,7 +3864,7 @@ var xxx_messageInfo_ShootMachineImage proto.InternalMessageInfo func (m *ShootNetworks) Reset() { *m = ShootNetworks{} } func (*ShootNetworks) ProtoMessage() {} func (*ShootNetworks) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{135} + return fileDescriptor_ca37af0df9a5bbd2, []int{136} } func (m *ShootNetworks) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3861,10 +3889,38 @@ func (m *ShootNetworks) XXX_DiscardUnknown() { var xxx_messageInfo_ShootNetworks proto.InternalMessageInfo +func (m *ShootSSHKeypairRotation) Reset() { *m = ShootSSHKeypairRotation{} } +func (*ShootSSHKeypairRotation) ProtoMessage() {} +func (*ShootSSHKeypairRotation) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{137} +} +func (m *ShootSSHKeypairRotation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootSSHKeypairRotation) 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 *ShootSSHKeypairRotation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootSSHKeypairRotation.Merge(m, src) +} +func (m *ShootSSHKeypairRotation) XXX_Size() int { + return m.Size() +} +func (m *ShootSSHKeypairRotation) XXX_DiscardUnknown() { + xxx_messageInfo_ShootSSHKeypairRotation.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootSSHKeypairRotation proto.InternalMessageInfo + func (m *ShootSpec) Reset() { *m = ShootSpec{} } func (*ShootSpec) ProtoMessage() {} func (*ShootSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{136} + return fileDescriptor_ca37af0df9a5bbd2, []int{138} } func (m *ShootSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3892,7 +3948,7 @@ var xxx_messageInfo_ShootSpec proto.InternalMessageInfo func (m *ShootStatus) Reset() { *m = ShootStatus{} } func (*ShootStatus) ProtoMessage() {} func (*ShootStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{137} + return fileDescriptor_ca37af0df9a5bbd2, []int{139} } func (m *ShootStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3920,7 +3976,7 @@ var xxx_messageInfo_ShootStatus proto.InternalMessageInfo func (m *ShootTemplate) Reset() { *m = ShootTemplate{} } func (*ShootTemplate) ProtoMessage() {} func (*ShootTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{138} + return fileDescriptor_ca37af0df9a5bbd2, []int{140} } func (m *ShootTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3948,7 +4004,7 @@ var xxx_messageInfo_ShootTemplate proto.InternalMessageInfo func (m *SystemComponents) Reset() { *m = SystemComponents{} } func (*SystemComponents) ProtoMessage() {} func (*SystemComponents) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{139} + return fileDescriptor_ca37af0df9a5bbd2, []int{141} } func (m *SystemComponents) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3976,7 +4032,7 @@ var xxx_messageInfo_SystemComponents proto.InternalMessageInfo func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} func (*Toleration) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{140} + return fileDescriptor_ca37af0df9a5bbd2, []int{142} } func (m *Toleration) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4004,7 +4060,7 @@ var xxx_messageInfo_Toleration proto.InternalMessageInfo func (m *VerticalPodAutoscaler) Reset() { *m = VerticalPodAutoscaler{} } func (*VerticalPodAutoscaler) ProtoMessage() {} func (*VerticalPodAutoscaler) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{141} + return fileDescriptor_ca37af0df9a5bbd2, []int{143} } func (m *VerticalPodAutoscaler) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4032,7 +4088,7 @@ var xxx_messageInfo_VerticalPodAutoscaler proto.InternalMessageInfo func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} func (*Volume) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{142} + return fileDescriptor_ca37af0df9a5bbd2, []int{144} } func (m *Volume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4060,7 +4116,7 @@ var xxx_messageInfo_Volume proto.InternalMessageInfo func (m *VolumeType) Reset() { *m = VolumeType{} } func (*VolumeType) ProtoMessage() {} func (*VolumeType) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{143} + return fileDescriptor_ca37af0df9a5bbd2, []int{145} } func (m *VolumeType) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4088,7 +4144,7 @@ var xxx_messageInfo_VolumeType proto.InternalMessageInfo func (m *WatchCacheSizes) Reset() { *m = WatchCacheSizes{} } func (*WatchCacheSizes) ProtoMessage() {} func (*WatchCacheSizes) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{144} + return fileDescriptor_ca37af0df9a5bbd2, []int{146} } func (m *WatchCacheSizes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4116,7 +4172,7 @@ var xxx_messageInfo_WatchCacheSizes proto.InternalMessageInfo func (m *Worker) Reset() { *m = Worker{} } func (*Worker) ProtoMessage() {} func (*Worker) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{145} + return fileDescriptor_ca37af0df9a5bbd2, []int{147} } func (m *Worker) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4144,7 +4200,7 @@ var xxx_messageInfo_Worker proto.InternalMessageInfo func (m *WorkerKubernetes) Reset() { *m = WorkerKubernetes{} } func (*WorkerKubernetes) ProtoMessage() {} func (*WorkerKubernetes) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{146} + return fileDescriptor_ca37af0df9a5bbd2, []int{148} } func (m *WorkerKubernetes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4172,7 +4228,7 @@ var xxx_messageInfo_WorkerKubernetes proto.InternalMessageInfo func (m *WorkerSystemComponents) Reset() { *m = WorkerSystemComponents{} } func (*WorkerSystemComponents) ProtoMessage() {} func (*WorkerSystemComponents) Descriptor() ([]byte, []int) { - return fileDescriptor_ca37af0df9a5bbd2, []int{147} + return fileDescriptor_ca37af0df9a5bbd2, []int{149} } func (m *WorkerSystemComponents) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4341,9 +4397,11 @@ func init() { proto.RegisterType((*ShootCARotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootCARotation") proto.RegisterType((*ShootCredentials)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootCredentials") proto.RegisterType((*ShootCredentialsRotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootCredentialsRotation") + proto.RegisterType((*ShootKubeconfigRotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootKubeconfigRotation") proto.RegisterType((*ShootList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootList") proto.RegisterType((*ShootMachineImage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootMachineImage") proto.RegisterType((*ShootNetworks)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootNetworks") + proto.RegisterType((*ShootSSHKeypairRotation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootSSHKeypairRotation") proto.RegisterType((*ShootSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootSpec") proto.RegisterType((*ShootStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootStatus") proto.RegisterType((*ShootTemplate)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootTemplate") @@ -4365,630 +4423,635 @@ func init() { } var fileDescriptor_ca37af0df9a5bbd2 = []byte{ - // 9954 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0xbd, 0x6b, 0x6c, 0x24, 0xd9, - 0x75, 0x18, 0xac, 0x6a, 0xb2, 0xc9, 0xe6, 0x69, 0x92, 0x43, 0xde, 0x79, 0x2c, 0x97, 0xbb, 0x33, - 0x3d, 0x2a, 0x3d, 0x30, 0xfb, 0x49, 0xe2, 0x78, 0xa5, 0x95, 0x57, 0xbb, 0xab, 0xd5, 0x6e, 0x3f, - 0x38, 0x33, 0xad, 0x19, 0x72, 0x7a, 0x6f, 0x0f, 0x67, 0x1f, 0xf6, 0xb7, 0x51, 0xb1, 0xea, 0xb2, - 0x59, 0xcb, 0xea, 0xaa, 0xde, 0xaa, 0x6a, 0x0e, 0x39, 0x8a, 0x21, 0x5b, 0x91, 0xe4, 0xc8, 0x4e, - 0x02, 0xc3, 0x81, 0x23, 0x48, 0x72, 0x62, 0x19, 0x86, 0xe1, 0x04, 0x0e, 0x6c, 0xe5, 0x61, 0x25, - 0xce, 0x03, 0x30, 0x6c, 0x04, 0x56, 0x9c, 0x07, 0x14, 0x07, 0x82, 0x15, 0x24, 0xa6, 0x22, 0x06, - 0x51, 0x12, 0x24, 0x3f, 0x02, 0x18, 0xf9, 0x33, 0x30, 0x90, 0xe0, 0x3e, 0xaa, 0xea, 0xd6, 0x8b, - 0xd3, 0xac, 0x26, 0x47, 0xbb, 0xbf, 0xc8, 0xbe, 0xe7, 0xde, 0x73, 0x6e, 0xdd, 0xc7, 0xb9, 0xe7, - 0x9c, 0x7b, 0xce, 0xb9, 0xd0, 0xe8, 0x99, 0xfe, 0xf6, 0x70, 0x73, 0x45, 0x77, 0xfa, 0x57, 0x7b, - 0x9a, 0x6b, 0x10, 0x9b, 0xb8, 0xd1, 0x3f, 0x83, 0x9d, 0xde, 0x55, 0x6d, 0x60, 0x7a, 0x57, 0x75, - 0xc7, 0x25, 0x57, 0x77, 0x9f, 0xde, 0x24, 0xbe, 0xf6, 0xf4, 0xd5, 0x1e, 0x85, 0x69, 0x3e, 0x31, - 0x56, 0x06, 0xae, 0xe3, 0x3b, 0xe8, 0xa3, 0x11, 0x8e, 0x95, 0xa0, 0x69, 0xf4, 0xcf, 0x60, 0xa7, - 0xb7, 0x42, 0x71, 0xac, 0x50, 0x1c, 0x2b, 0x02, 0xc7, 0xf2, 0x47, 0x64, 0xba, 0x4e, 0xcf, 0xb9, - 0xca, 0x50, 0x6d, 0x0e, 0xb7, 0xd8, 0x2f, 0xf6, 0x83, 0xfd, 0xc7, 0x49, 0x2c, 0x3f, 0xb5, 0xf3, - 0x09, 0x6f, 0xc5, 0x74, 0x68, 0x67, 0xae, 0x6a, 0x43, 0xdf, 0xf1, 0x74, 0xcd, 0x32, 0xed, 0xde, - 0xd5, 0xdd, 0x54, 0x6f, 0x96, 0x55, 0xa9, 0xaa, 0xe8, 0xf6, 0x91, 0x75, 0xdc, 0x4d, 0x4d, 0xcf, - 0xaa, 0xf3, 0x4c, 0x54, 0xa7, 0xaf, 0xe9, 0xdb, 0xa6, 0x4d, 0xdc, 0xfd, 0x60, 0x40, 0xae, 0xba, - 0xc4, 0x73, 0x86, 0xae, 0x4e, 0x8e, 0xd5, 0xca, 0xbb, 0xda, 0x27, 0xbe, 0x96, 0x45, 0xeb, 0x6a, - 0x5e, 0x2b, 0x77, 0x68, 0xfb, 0x66, 0x3f, 0x4d, 0xe6, 0xc7, 0x1f, 0xd6, 0xc0, 0xd3, 0xb7, 0x49, - 0x5f, 0x4b, 0xb5, 0xfb, 0x58, 0x5e, 0xbb, 0xa1, 0x6f, 0x5a, 0x57, 0x4d, 0xdb, 0xf7, 0x7c, 0x37, - 0xd9, 0x48, 0xfd, 0x28, 0x94, 0xeb, 0x86, 0xe1, 0xd8, 0xe8, 0x29, 0x98, 0x26, 0xb6, 0xb6, 0x69, - 0x11, 0x63, 0x49, 0xb9, 0xac, 0x5c, 0xa9, 0x34, 0xce, 0x7c, 0xfb, 0xa0, 0xf6, 0x9e, 0xc3, 0x83, - 0xda, 0xf4, 0x2a, 0x2f, 0xc6, 0x01, 0x5c, 0xfd, 0xa5, 0x12, 0x4c, 0xb1, 0x46, 0x1e, 0xfa, 0x45, - 0x05, 0xce, 0xee, 0x0c, 0x37, 0x89, 0x6b, 0x13, 0x9f, 0x78, 0x2d, 0xcd, 0xdb, 0xde, 0x74, 0x34, - 0x97, 0xa3, 0xa8, 0x7e, 0xf4, 0xfa, 0xca, 0xf1, 0x57, 0xcf, 0xca, 0xcd, 0x34, 0xba, 0xc6, 0x63, - 0x87, 0x07, 0xb5, 0xb3, 0x19, 0x00, 0x9c, 0x45, 0x1c, 0xed, 0xc2, 0xac, 0xdd, 0x33, 0xed, 0xbd, - 0xb6, 0xdd, 0x73, 0x89, 0xe7, 0x2d, 0x95, 0x58, 0x67, 0x5e, 0x2e, 0xd2, 0x99, 0x75, 0x09, 0x4f, - 0x63, 0xe1, 0xf0, 0xa0, 0x36, 0x2b, 0x97, 0xe0, 0x18, 0x1d, 0xf5, 0x4b, 0x0a, 0x9c, 0xa9, 0x1b, - 0x7d, 0xd3, 0xf3, 0x4c, 0xc7, 0xee, 0x58, 0xc3, 0x9e, 0x69, 0xa3, 0xcb, 0x30, 0x69, 0x6b, 0x7d, - 0xc2, 0x06, 0x64, 0xa6, 0x31, 0x2b, 0xc6, 0x74, 0x72, 0x5d, 0xeb, 0x13, 0xcc, 0x20, 0xe8, 0x15, - 0x98, 0xd2, 0x1d, 0x7b, 0xcb, 0xec, 0x89, 0x7e, 0x7e, 0x64, 0x85, 0xcf, 0xe3, 0x8a, 0x3c, 0x8f, - 0xac, 0x7b, 0x62, 0xfe, 0x57, 0xb0, 0x76, 0x6f, 0x75, 0xcf, 0x27, 0x36, 0x25, 0xd3, 0x80, 0xc3, - 0x83, 0xda, 0x54, 0x93, 0x21, 0xc0, 0x02, 0x91, 0x7a, 0x0d, 0x2a, 0x75, 0x8b, 0xb8, 0xbe, 0x69, - 0xf7, 0xd0, 0xf3, 0x30, 0x4f, 0xfa, 0x9a, 0x69, 0x61, 0xa2, 0x13, 0x73, 0x97, 0xb8, 0xde, 0x92, - 0x72, 0x79, 0xe2, 0xca, 0x4c, 0x03, 0x1d, 0x1e, 0xd4, 0xe6, 0x57, 0x63, 0x10, 0x9c, 0xa8, 0xa9, - 0xfe, 0x8c, 0x02, 0xd5, 0xfa, 0xd0, 0x30, 0x7d, 0x8e, 0x1f, 0xb9, 0x50, 0xd5, 0xe8, 0xcf, 0x8e, - 0x63, 0x99, 0xfa, 0xbe, 0x98, 0xe4, 0x97, 0x8a, 0x8c, 0x6b, 0x3d, 0x42, 0xd3, 0x38, 0x73, 0x78, - 0x50, 0xab, 0x4a, 0x05, 0x58, 0x26, 0xa2, 0x6e, 0x83, 0x0c, 0x43, 0xaf, 0xc3, 0x2c, 0xff, 0xc8, - 0x35, 0x6d, 0x80, 0xc9, 0x96, 0xe8, 0xc3, 0xfb, 0xa4, 0x31, 0x0b, 0x08, 0xad, 0xdc, 0xde, 0x7c, - 0x8b, 0xe8, 0x3e, 0x26, 0x5b, 0xc4, 0x25, 0xb6, 0x4e, 0xf8, 0xf4, 0x35, 0xa5, 0xc6, 0x38, 0x86, - 0x4a, 0xfd, 0xbe, 0x02, 0x0b, 0xf5, 0x5d, 0xcd, 0xb4, 0xb4, 0x4d, 0xd3, 0x32, 0xfd, 0xfd, 0x37, - 0x1c, 0x9b, 0x8c, 0x30, 0x7f, 0x1b, 0xf0, 0xd8, 0xd0, 0xd6, 0x78, 0x3b, 0x8b, 0xac, 0xf1, 0x19, - 0xbb, 0xb3, 0x3f, 0x20, 0x74, 0xe1, 0xd1, 0x91, 0x7e, 0xe2, 0xf0, 0xa0, 0xf6, 0xd8, 0x46, 0x76, - 0x15, 0x9c, 0xd7, 0x16, 0x61, 0xb8, 0x20, 0x81, 0xee, 0x3a, 0xd6, 0xb0, 0x2f, 0xb0, 0x4e, 0x30, - 0xac, 0xcb, 0x87, 0x07, 0xb5, 0x0b, 0x1b, 0x99, 0x35, 0x70, 0x4e, 0x4b, 0xf5, 0xdb, 0x25, 0x98, - 0x6d, 0x68, 0xfa, 0xce, 0x70, 0xd0, 0x18, 0xea, 0x3b, 0xc4, 0x47, 0x9f, 0x81, 0x0a, 0x65, 0x5b, - 0x86, 0xe6, 0x6b, 0x62, 0x24, 0x7f, 0x2c, 0x77, 0xf5, 0xb1, 0x49, 0xa4, 0xb5, 0xa3, 0xb1, 0x5d, - 0x23, 0xbe, 0xd6, 0x40, 0x62, 0x4c, 0x20, 0x2a, 0xc3, 0x21, 0x56, 0xb4, 0x05, 0x93, 0xde, 0x80, - 0xe8, 0x62, 0x6d, 0xb7, 0x8a, 0xac, 0x15, 0xb9, 0xc7, 0xdd, 0x01, 0xd1, 0xa3, 0x59, 0xa0, 0xbf, - 0x30, 0xc3, 0x8f, 0x6c, 0x98, 0xf2, 0x7c, 0xcd, 0x1f, 0xd2, 0xe1, 0xa1, 0x94, 0xae, 0x8d, 0x4d, - 0x89, 0x61, 0x6b, 0xcc, 0x0b, 0x5a, 0x53, 0xfc, 0x37, 0x16, 0x54, 0xd4, 0x3f, 0x51, 0x60, 0x41, - 0xae, 0x7e, 0xcb, 0xf4, 0x7c, 0xf4, 0x93, 0xa9, 0xe1, 0x5c, 0x19, 0x6d, 0x38, 0x69, 0x6b, 0x36, - 0x98, 0x0b, 0x82, 0x5c, 0x25, 0x28, 0x91, 0x86, 0x92, 0x40, 0xd9, 0xf4, 0x49, 0x9f, 0x2f, 0xab, - 0x82, 0xfc, 0x4c, 0xee, 0x72, 0x63, 0x4e, 0x10, 0x2b, 0xb7, 0x29, 0x5a, 0xcc, 0xb1, 0xab, 0x9f, - 0x81, 0x73, 0x72, 0xad, 0x8e, 0xeb, 0xec, 0x9a, 0x06, 0x71, 0xe9, 0x4e, 0xf0, 0xf7, 0x07, 0xa9, - 0x9d, 0x40, 0x57, 0x16, 0x66, 0x10, 0xf4, 0x41, 0x98, 0x72, 0x49, 0xcf, 0x74, 0x6c, 0x36, 0xdb, - 0x33, 0xd1, 0xd8, 0x61, 0x56, 0x8a, 0x05, 0x54, 0xfd, 0x3f, 0xa5, 0xf8, 0xd8, 0xd1, 0x69, 0x44, - 0xbb, 0x50, 0x19, 0x08, 0x52, 0x62, 0xec, 0x6e, 0x8c, 0xfb, 0x81, 0x41, 0xd7, 0xa3, 0x51, 0x0d, - 0x4a, 0x70, 0x48, 0x0b, 0x99, 0x30, 0x1f, 0xfc, 0xdf, 0x1c, 0x83, 0x0d, 0x33, 0x76, 0xda, 0x89, - 0x21, 0xc2, 0x09, 0xc4, 0xe8, 0x0e, 0xcc, 0x78, 0x44, 0x77, 0x09, 0xe5, 0x49, 0x62, 0x99, 0x66, - 0x32, 0xae, 0x6e, 0x50, 0x49, 0x30, 0xae, 0x45, 0xd1, 0xfd, 0x99, 0x10, 0x80, 0x23, 0x44, 0xe8, - 0x0a, 0x54, 0x3c, 0x42, 0x0c, 0xca, 0x91, 0x96, 0x26, 0xf9, 0xdc, 0xd0, 0x4f, 0xed, 0x8a, 0x32, - 0x1c, 0x42, 0xd5, 0x6f, 0x4c, 0x02, 0x4a, 0x2f, 0x71, 0x79, 0x04, 0x78, 0x89, 0x18, 0xff, 0x71, - 0x46, 0x40, 0xec, 0x96, 0x04, 0x62, 0x74, 0x1f, 0xe6, 0x2c, 0xcd, 0xf3, 0x6f, 0x0f, 0xa8, 0x0c, - 0x12, 0x2c, 0x94, 0xea, 0x47, 0xeb, 0x45, 0x66, 0xfa, 0x96, 0x8c, 0xa8, 0xb1, 0x78, 0x78, 0x50, - 0x9b, 0x8b, 0x15, 0xe1, 0x38, 0x29, 0xf4, 0x16, 0xcc, 0xd0, 0x82, 0x55, 0xd7, 0x75, 0x5c, 0x31, - 0xfa, 0x2f, 0x16, 0xa5, 0xcb, 0x90, 0x34, 0xe6, 0xe8, 0x9c, 0x84, 0x3f, 0x71, 0x84, 0x1e, 0x7d, - 0x1a, 0x90, 0xb3, 0xe9, 0x11, 0x77, 0x97, 0x18, 0xd7, 0xb9, 0xc0, 0x45, 0x3f, 0x96, 0xce, 0xce, - 0x44, 0x63, 0x59, 0xcc, 0x26, 0xba, 0x9d, 0xaa, 0x81, 0x33, 0x5a, 0xa1, 0x1d, 0x40, 0xa1, 0xd0, - 0x16, 0x2e, 0x80, 0xa5, 0xf2, 0xe8, 0xcb, 0xe7, 0x02, 0x25, 0x76, 0x3d, 0x85, 0x02, 0x67, 0xa0, - 0x55, 0xff, 0x45, 0x09, 0xaa, 0x7c, 0x89, 0xac, 0xda, 0xbe, 0xbb, 0xff, 0x08, 0x0e, 0x08, 0x12, - 0x3b, 0x20, 0x9a, 0xc5, 0xf7, 0x3c, 0xeb, 0x70, 0xee, 0xf9, 0xd0, 0x4f, 0x9c, 0x0f, 0xab, 0xe3, - 0x12, 0x3a, 0xfa, 0x78, 0xf8, 0xae, 0x02, 0x67, 0xa4, 0xda, 0x8f, 0xe0, 0x74, 0x30, 0xe2, 0xa7, - 0xc3, 0x4b, 0x63, 0x7e, 0x5f, 0xce, 0xe1, 0xe0, 0xc4, 0x3e, 0x8b, 0x31, 0xee, 0x8f, 0x02, 0x6c, - 0x32, 0x76, 0xb2, 0x1e, 0xc9, 0x49, 0xe1, 0x94, 0x37, 0x42, 0x08, 0x96, 0x6a, 0xc5, 0x78, 0x56, - 0xe9, 0x48, 0x9e, 0xf5, 0x5f, 0x27, 0x60, 0x31, 0x35, 0xec, 0x69, 0x3e, 0xa2, 0xfc, 0x88, 0xf8, - 0x48, 0xe9, 0x47, 0xc1, 0x47, 0x26, 0x0a, 0xf1, 0x91, 0x91, 0xcf, 0x09, 0xe4, 0x02, 0xea, 0x9b, - 0x3d, 0xde, 0xac, 0xeb, 0x6b, 0xae, 0x7f, 0xc7, 0xec, 0x13, 0xc1, 0x71, 0xfe, 0xbf, 0xd1, 0x96, - 0x2c, 0x6d, 0xc1, 0x19, 0xcf, 0x5a, 0x0a, 0x13, 0xce, 0xc0, 0xae, 0xfe, 0xbe, 0x02, 0x13, 0x4d, - 0xdc, 0x46, 0x1f, 0x8a, 0xc9, 0xdb, 0x8f, 0xc9, 0xf2, 0xf6, 0x83, 0x83, 0xda, 0x74, 0x13, 0xb7, - 0x25, 0xd1, 0xfb, 0xaf, 0x2a, 0xb0, 0xa8, 0x3b, 0xb6, 0xaf, 0xd1, 0x5e, 0x60, 0x7e, 0x28, 0x05, - 0x1b, 0xa0, 0x90, 0xa8, 0xd9, 0x4c, 0x20, 0x6b, 0x3c, 0x2e, 0x3a, 0xb0, 0x98, 0x84, 0x78, 0x38, - 0x4d, 0x59, 0xdd, 0x80, 0x99, 0xa6, 0xe5, 0x0c, 0x8d, 0xb6, 0xbd, 0xe5, 0x9c, 0xa0, 0xbc, 0xf4, - 0x3d, 0x05, 0x66, 0x19, 0xde, 0x8e, 0xeb, 0x6c, 0x99, 0x16, 0x79, 0x77, 0x88, 0xed, 0x72, 0x8f, - 0xf3, 0xd8, 0x32, 0x13, 0xa3, 0xe5, 0x8a, 0xef, 0x12, 0x31, 0x5a, 0xee, 0x72, 0x0e, 0xa7, 0xfc, - 0xa5, 0xe9, 0xf8, 0x97, 0x31, 0x5e, 0x79, 0x05, 0x2a, 0xba, 0xd6, 0x18, 0xda, 0x86, 0x15, 0xae, - 0x0b, 0xda, 0xcb, 0x66, 0x9d, 0x97, 0xe1, 0x10, 0x8a, 0xee, 0x03, 0x44, 0xa6, 0x0d, 0x31, 0x0d, - 0xd7, 0xc6, 0x33, 0xa7, 0x74, 0x89, 0xef, 0x9b, 0x76, 0xcf, 0x8b, 0xa6, 0x3e, 0x82, 0x61, 0x89, - 0x1a, 0xfa, 0x29, 0x98, 0x13, 0x83, 0xdc, 0xee, 0x6b, 0x3d, 0xa1, 0x71, 0x16, 0x1c, 0xa9, 0x35, - 0x09, 0x51, 0xe3, 0xbc, 0x20, 0x3c, 0x27, 0x97, 0x7a, 0x38, 0x4e, 0x0d, 0xed, 0xc3, 0x6c, 0x5f, - 0xd6, 0xa2, 0x27, 0x8b, 0x1f, 0x68, 0x92, 0x46, 0xdd, 0x38, 0x27, 0x88, 0xcf, 0xc6, 0xf4, 0xef, - 0x18, 0xa9, 0x0c, 0x65, 0xa0, 0x7c, 0x5a, 0xca, 0x00, 0x81, 0x69, 0xbe, 0xbd, 0xbd, 0xa5, 0x29, - 0xf6, 0x81, 0xcf, 0x17, 0xf9, 0x40, 0xce, 0x29, 0x22, 0x5b, 0x1d, 0xff, 0xed, 0xe1, 0x00, 0x37, - 0xda, 0x85, 0x59, 0xca, 0xd7, 0xbb, 0xc4, 0x22, 0xba, 0xef, 0xb8, 0x4b, 0xd3, 0xc5, 0x6d, 0x61, - 0x5d, 0x09, 0x0f, 0x37, 0xa6, 0xc8, 0x25, 0x38, 0x46, 0x27, 0xe4, 0x7e, 0x95, 0x5c, 0xee, 0x37, - 0x84, 0xea, 0xae, 0x64, 0xd5, 0x98, 0x61, 0x83, 0xf0, 0xa9, 0x22, 0x1d, 0x8b, 0x4c, 0x1c, 0x8d, - 0xb3, 0x82, 0x50, 0x55, 0x36, 0x87, 0xc8, 0x74, 0xd4, 0x83, 0x0a, 0x2c, 0x36, 0xad, 0xa1, 0xe7, - 0x13, 0xb7, 0x2e, 0x8c, 0xcd, 0xc4, 0x45, 0x9f, 0x57, 0xe0, 0x02, 0xfb, 0xb7, 0xe5, 0xdc, 0xb3, - 0x5b, 0xc4, 0xd2, 0xf6, 0xeb, 0x5b, 0xb4, 0x86, 0x61, 0x1c, 0x8f, 0x03, 0xb5, 0x86, 0x42, 0x8e, - 0x60, 0xe6, 0x99, 0x6e, 0x26, 0x46, 0x9c, 0x43, 0x09, 0xfd, 0xbc, 0x02, 0x8f, 0x67, 0x80, 0x5a, - 0xc4, 0x22, 0x3e, 0x11, 0x3c, 0xe0, 0xb8, 0xfd, 0xb8, 0x78, 0x78, 0x50, 0x7b, 0xbc, 0x9b, 0x87, - 0x14, 0xe7, 0xd3, 0x43, 0x7f, 0x4d, 0x81, 0xe5, 0x0c, 0xe8, 0x35, 0xcd, 0xb4, 0x86, 0x2e, 0x11, - 0x62, 0xf4, 0x71, 0xbb, 0x73, 0xe9, 0xf0, 0xa0, 0xb6, 0xdc, 0xcd, 0xc5, 0x8a, 0x8f, 0xa0, 0x88, - 0x3e, 0x07, 0xe7, 0x43, 0xe8, 0x86, 0x6d, 0x13, 0x62, 0x10, 0x83, 0x49, 0x26, 0x93, 0x85, 0xba, - 0xf2, 0xf8, 0xe1, 0x41, 0xed, 0x7c, 0x37, 0x0b, 0x21, 0xce, 0xa6, 0x83, 0x7a, 0x70, 0x31, 0x02, - 0xf8, 0xa6, 0x65, 0xde, 0x67, 0x98, 0xee, 0x6c, 0xbb, 0xc4, 0xdb, 0x76, 0x2c, 0x83, 0x31, 0x0b, - 0xa5, 0xf1, 0xde, 0xc3, 0x83, 0xda, 0xc5, 0xee, 0x51, 0x15, 0xf1, 0xd1, 0x78, 0x90, 0x01, 0xb3, - 0x9e, 0xae, 0xd9, 0x6d, 0xdb, 0x27, 0xee, 0xae, 0x66, 0x2d, 0x4d, 0x15, 0xfa, 0x40, 0xbe, 0x45, - 0x25, 0x3c, 0x38, 0x86, 0x15, 0x7d, 0x02, 0x2a, 0x64, 0x6f, 0xa0, 0xd9, 0x06, 0xe1, 0x6c, 0x61, - 0xa6, 0xf1, 0x24, 0x3d, 0x8c, 0x56, 0x45, 0xd9, 0x83, 0x83, 0xda, 0x6c, 0xf0, 0xff, 0x9a, 0x63, - 0x10, 0x1c, 0xd6, 0x46, 0x7f, 0x11, 0xce, 0xf5, 0xb5, 0xbd, 0x75, 0xc7, 0x20, 0x8c, 0xc9, 0x51, - 0x9e, 0xc7, 0x26, 0xa2, 0x52, 0xa8, 0x9f, 0x4b, 0x87, 0x07, 0xb5, 0x73, 0x6b, 0x19, 0xf8, 0x70, - 0x26, 0x15, 0x3a, 0x0d, 0x7d, 0x6d, 0xef, 0xba, 0xab, 0xe9, 0x64, 0x6b, 0x68, 0xdd, 0x21, 0x6e, - 0xdf, 0xb4, 0xb9, 0x34, 0x49, 0x74, 0xc7, 0x36, 0x28, 0x2b, 0x51, 0xae, 0x94, 0xf9, 0x34, 0xac, - 0x1d, 0x55, 0x11, 0x1f, 0x8d, 0x07, 0x3d, 0x03, 0xb3, 0x66, 0xcf, 0x76, 0x5c, 0x72, 0x47, 0x33, - 0x6d, 0xdf, 0x5b, 0x02, 0x66, 0x78, 0x65, 0xc3, 0xda, 0x96, 0xca, 0x71, 0xac, 0x96, 0xfa, 0x3f, - 0x14, 0xa8, 0x0a, 0x06, 0xc3, 0xe4, 0xc0, 0x4d, 0x28, 0xeb, 0x54, 0x0e, 0x10, 0x8c, 0xe4, 0xc5, - 0xc2, 0xf2, 0x06, 0xc5, 0x16, 0x09, 0x1b, 0xac, 0x08, 0x73, 0xd4, 0x68, 0x37, 0x43, 0x5a, 0x68, - 0x8c, 0x27, 0x2d, 0x30, 0x6a, 0x0f, 0x91, 0x14, 0xd4, 0x83, 0x09, 0x98, 0x69, 0x3a, 0xb6, 0x61, - 0x32, 0x0d, 0xe3, 0xe9, 0x98, 0xc4, 0x7b, 0x51, 0xe6, 0xf9, 0x0f, 0x0e, 0x6a, 0x73, 0x61, 0x45, - 0xe9, 0x10, 0x78, 0x2e, 0x54, 0xcb, 0xb9, 0x08, 0xfc, 0xde, 0xb8, 0x3e, 0xfd, 0xe0, 0xa0, 0x76, - 0x26, 0x6c, 0x16, 0x57, 0xb1, 0xd1, 0x2e, 0x20, 0xaa, 0x28, 0xdd, 0x71, 0x35, 0xdb, 0xe3, 0x68, - 0xe9, 0x12, 0x9c, 0x38, 0xb6, 0x96, 0x12, 0xea, 0x51, 0xb7, 0x52, 0xd8, 0x70, 0x06, 0x05, 0xf4, - 0x16, 0xcc, 0xd3, 0xd2, 0x8d, 0x81, 0xa1, 0xf9, 0x44, 0xe2, 0x3f, 0xc7, 0xd2, 0x8c, 0x04, 0xcd, - 0xf9, 0x5b, 0x31, 0x4c, 0x38, 0x81, 0x99, 0x6b, 0x08, 0x9a, 0xe7, 0xd8, 0x8c, 0xb5, 0xc4, 0x34, - 0x04, 0x5a, 0x8a, 0x05, 0x14, 0x3d, 0x05, 0xd3, 0x7d, 0xe2, 0x79, 0x5a, 0x8f, 0x30, 0x5e, 0x31, - 0x13, 0x09, 0x04, 0x6b, 0xbc, 0x18, 0x07, 0x70, 0xf4, 0x61, 0x28, 0xeb, 0x8e, 0x41, 0xbc, 0xa5, - 0x69, 0xb6, 0x9a, 0x2f, 0xb0, 0xb5, 0x44, 0x0b, 0x1e, 0x1c, 0xd4, 0x66, 0x98, 0xd6, 0x49, 0x7f, - 0x61, 0x5e, 0x49, 0xfd, 0x15, 0x2a, 0x9f, 0x27, 0xf4, 0x9c, 0x11, 0x34, 0x9b, 0x47, 0x67, 0x54, - 0x55, 0xbf, 0x5c, 0x82, 0x73, 0xb4, 0x87, 0xae, 0x63, 0x59, 0xf4, 0xec, 0x1a, 0x58, 0xce, 0x7e, - 0x9f, 0xd8, 0x8f, 0xe2, 0x6e, 0x23, 0x18, 0x87, 0x52, 0xee, 0x38, 0xf4, 0x53, 0xe3, 0x30, 0x51, - 0x64, 0x1c, 0xc2, 0xe5, 0xf2, 0x90, 0xb1, 0xf8, 0x6f, 0x0a, 0x2c, 0x65, 0x8d, 0xc5, 0x23, 0xd0, - 0xaa, 0xfa, 0x71, 0xad, 0xea, 0x46, 0x51, 0xed, 0x3b, 0xd9, 0xf5, 0x1c, 0xed, 0xea, 0x87, 0x25, - 0xb8, 0x10, 0x55, 0x6f, 0xdb, 0x9e, 0xaf, 0x59, 0x16, 0xb7, 0x73, 0x9c, 0xfe, 0xbc, 0x0f, 0x62, - 0xca, 0xf1, 0xfa, 0x78, 0x9f, 0x2a, 0xf7, 0x3d, 0xd7, 0x7a, 0xb9, 0x97, 0xb0, 0x5e, 0x76, 0x4e, - 0x90, 0xe6, 0xd1, 0x86, 0xcc, 0xff, 0xa9, 0xc0, 0x72, 0x76, 0xc3, 0x47, 0xb0, 0xa8, 0x9c, 0xf8, - 0xa2, 0xfa, 0xf4, 0xc9, 0x7d, 0x75, 0xce, 0xb2, 0xfa, 0xfb, 0xa5, 0xbc, 0xaf, 0x65, 0xea, 0xfb, - 0x16, 0x9c, 0xa1, 0x7a, 0x95, 0xe7, 0x0b, 0x33, 0xdb, 0xf1, 0xee, 0x9f, 0x03, 0x63, 0xd6, 0x19, - 0x1c, 0xc7, 0x81, 0x93, 0x48, 0xd1, 0x3a, 0x4c, 0x53, 0x65, 0x8a, 0xe2, 0x2f, 0x8d, 0x8e, 0x3f, - 0xe4, 0xf9, 0x5d, 0xde, 0x16, 0x07, 0x48, 0xd0, 0x4f, 0xc2, 0x9c, 0x11, 0xee, 0xa8, 0x87, 0x5c, - 0x3e, 0x25, 0xb1, 0x32, 0x83, 0x68, 0x4b, 0x6e, 0x8d, 0xe3, 0xc8, 0xd4, 0x3f, 0x57, 0xe0, 0xc9, - 0xa3, 0xd6, 0x16, 0x7a, 0x1b, 0x40, 0x0f, 0x0e, 0x71, 0xee, 0x7e, 0x50, 0x54, 0x0c, 0x0a, 0xb0, - 0x44, 0x1b, 0x34, 0x2c, 0xf2, 0xb0, 0x44, 0x24, 0xe3, 0x4e, 0xab, 0x74, 0x4a, 0x77, 0x5a, 0xea, - 0xff, 0x52, 0x64, 0x56, 0x24, 0xcf, 0xed, 0xbb, 0x8d, 0x15, 0xc9, 0x7d, 0xcf, 0xb5, 0xd8, 0xfd, - 0xfb, 0x12, 0x5c, 0xce, 0x6e, 0x22, 0x9d, 0xbd, 0x2f, 0xc3, 0xd4, 0x80, 0xfb, 0x88, 0x4c, 0xb0, - 0xb3, 0xf1, 0x0a, 0xe5, 0x2c, 0xdc, 0x83, 0xe3, 0xc1, 0x41, 0x6d, 0x39, 0x8b, 0xd1, 0x0b, 0xdf, - 0x0f, 0xd1, 0x0e, 0x99, 0x09, 0xbb, 0x05, 0x97, 0xb1, 0x3e, 0x36, 0x22, 0x73, 0xd1, 0x36, 0x89, - 0x35, 0xb2, 0xa9, 0xe2, 0x67, 0x14, 0x98, 0x8f, 0xad, 0x68, 0x6f, 0xa9, 0xcc, 0xd6, 0x68, 0xa1, - 0xeb, 0x84, 0xd8, 0x56, 0x89, 0x4e, 0xee, 0x58, 0xb1, 0x87, 0x13, 0x04, 0x13, 0x6c, 0x56, 0x1e, - 0xd5, 0x77, 0x1d, 0x9b, 0x95, 0x3b, 0x9f, 0xc3, 0x66, 0x7f, 0xb9, 0x94, 0xf7, 0xb5, 0x8c, 0xcd, - 0xde, 0x83, 0x99, 0xc0, 0x07, 0x2f, 0x60, 0x17, 0xd7, 0xc6, 0xed, 0x13, 0x47, 0x17, 0x5d, 0xa5, - 0x07, 0x25, 0x1e, 0x8e, 0x68, 0xa1, 0x2f, 0x28, 0x00, 0xd1, 0xc4, 0x88, 0x4d, 0x75, 0xe7, 0xe4, - 0x86, 0x43, 0x12, 0x6b, 0xe6, 0xe9, 0x96, 0x96, 0x16, 0x85, 0x44, 0x57, 0xfd, 0x66, 0x09, 0x50, - 0xba, 0xef, 0x54, 0xdc, 0xdc, 0x31, 0x6d, 0x23, 0x29, 0x76, 0xdf, 0x34, 0x6d, 0x03, 0x33, 0xc8, - 0x08, 0x02, 0xe9, 0x8b, 0x70, 0xa6, 0x67, 0x39, 0x9b, 0x9a, 0x65, 0xed, 0x0b, 0xb7, 0x3e, 0xb6, - 0x43, 0x2b, 0x8d, 0xb3, 0xf4, 0x60, 0xba, 0x1e, 0x07, 0xe1, 0x64, 0x5d, 0x34, 0x80, 0x05, 0x97, - 0x2a, 0xc7, 0xba, 0x69, 0x31, 0x05, 0xc5, 0x19, 0xfa, 0x05, 0xad, 0x2f, 0xe7, 0x0e, 0x0f, 0x6a, - 0x0b, 0x38, 0x81, 0x0b, 0xa7, 0xb0, 0xa3, 0x0f, 0xc0, 0xf4, 0xc0, 0x35, 0xfb, 0x9a, 0xbb, 0xcf, - 0x54, 0xa0, 0x4a, 0xa3, 0x4a, 0x4f, 0xb8, 0x0e, 0x2f, 0xc2, 0x01, 0x4c, 0xfd, 0x82, 0x02, 0xd3, - 0x4d, 0xc7, 0x25, 0xad, 0xf5, 0x2e, 0xda, 0x87, 0xaa, 0xe4, 0x46, 0x2a, 0xf6, 0x4b, 0xc1, 0x05, - 0xc4, 0x30, 0xd6, 0x23, 0x6c, 0x81, 0xb3, 0x5a, 0x58, 0x80, 0x65, 0x5a, 0x6a, 0x87, 0x4e, 0x5c, - 0xb2, 0x0d, 0x7a, 0x1e, 0x26, 0xfb, 0x8e, 0x11, 0xe8, 0x4b, 0x1f, 0x0c, 0xa6, 0x65, 0xcd, 0x31, - 0xa8, 0x5e, 0x7c, 0x21, 0xdd, 0x82, 0x99, 0x5b, 0x58, 0x1b, 0xf5, 0xeb, 0x0a, 0x4c, 0xd0, 0x8f, - 0x52, 0x61, 0xca, 0x70, 0xfa, 0x9a, 0x69, 0x0b, 0x2c, 0xcc, 0xed, 0xaf, 0xc5, 0x4a, 0xb0, 0x80, - 0xa0, 0x01, 0xcc, 0x04, 0x67, 0xd3, 0x58, 0xd7, 0xc0, 0xad, 0xf5, 0x6e, 0xe8, 0x3a, 0x13, 0x6e, - 0x98, 0xa0, 0xc4, 0xc3, 0x11, 0x11, 0x55, 0x83, 0xc5, 0xd6, 0x7a, 0xb7, 0x6d, 0xeb, 0xd6, 0xd0, - 0x20, 0xab, 0x7b, 0xec, 0x0f, 0x9d, 0x32, 0x93, 0x97, 0x08, 0x57, 0x43, 0x36, 0x65, 0xa2, 0x12, - 0x0e, 0x60, 0xb4, 0x1a, 0xe1, 0x2d, 0x84, 0x9f, 0x1c, 0xab, 0x26, 0x90, 0xe0, 0x00, 0xa6, 0x7e, - 0xaf, 0x04, 0x55, 0xa9, 0x43, 0xc8, 0x82, 0x69, 0xfe, 0xb9, 0x81, 0x9b, 0xca, 0x6a, 0xc1, 0x4f, - 0x8c, 0xf7, 0x9a, 0x53, 0xe7, 0x03, 0xea, 0xe1, 0x80, 0x84, 0xbc, 0xfc, 0x4a, 0xf9, 0xcb, 0x0f, - 0xad, 0x00, 0x70, 0x87, 0x1c, 0x76, 0xbb, 0xca, 0xcf, 0x3c, 0xb6, 0xc3, 0xbb, 0x61, 0x29, 0x96, - 0x6a, 0xa0, 0x27, 0xc5, 0x46, 0xe5, 0xf7, 0xb0, 0x95, 0xc4, 0x26, 0xdd, 0x82, 0xf2, 0x7d, 0xc7, - 0x26, 0x9e, 0xb8, 0x7c, 0x38, 0xa1, 0x0f, 0x9c, 0xa1, 0x6c, 0xf8, 0x0d, 0x8a, 0x17, 0x73, 0xf4, - 0xea, 0xaf, 0x2a, 0x00, 0x2d, 0xcd, 0xd7, 0xb8, 0xad, 0x7c, 0x04, 0x57, 0xc7, 0x27, 0x63, 0xfc, - 0xa5, 0x92, 0xba, 0xce, 0x9c, 0xf4, 0xcc, 0xfb, 0xc1, 0xe7, 0x87, 0x72, 0x0b, 0xc7, 0xde, 0x35, - 0xef, 0x13, 0xcc, 0xe0, 0xe8, 0x43, 0x30, 0x43, 0x6c, 0xdd, 0xdd, 0x1f, 0xf8, 0xc4, 0x60, 0x23, - 0x50, 0xe1, 0x37, 0xe0, 0xab, 0x41, 0x21, 0x8e, 0xe0, 0xea, 0xd3, 0x10, 0x17, 0x3e, 0x1f, 0xde, - 0x4b, 0x75, 0x17, 0x2a, 0xab, 0xb6, 0x31, 0x70, 0x4c, 0xdb, 0x1f, 0xe1, 0x9b, 0x2e, 0xc2, 0xc4, - 0xd0, 0xb5, 0xc4, 0x27, 0x55, 0x45, 0x85, 0x89, 0x0d, 0x7c, 0x0b, 0xd3, 0x72, 0xf4, 0x14, 0x4c, - 0x0f, 0x86, 0xee, 0xc0, 0xf1, 0x82, 0xef, 0x0a, 0xa5, 0xec, 0x0e, 0x2f, 0xc6, 0x01, 0x5c, 0x7d, - 0xa0, 0xc0, 0xc2, 0xea, 0xde, 0xc0, 0x74, 0x99, 0xdb, 0x25, 0x71, 0xa9, 0x04, 0x49, 0xdb, 0xef, - 0xf2, 0x7f, 0x45, 0x1f, 0xc2, 0xf6, 0xa2, 0x06, 0x0e, 0xe0, 0x68, 0x0b, 0xe6, 0x09, 0x6b, 0xce, - 0x8e, 0x0a, 0x2d, 0x34, 0xf9, 0x1f, 0xc7, 0xb0, 0xc4, 0xbd, 0x7a, 0x63, 0x58, 0x70, 0x02, 0x2b, - 0xea, 0xc2, 0xbc, 0x6e, 0x69, 0x9e, 0x67, 0x6e, 0x99, 0x7a, 0xe4, 0x50, 0x30, 0xd3, 0xf8, 0x10, - 0x6d, 0xdb, 0x8c, 0x41, 0x1e, 0x1c, 0xd4, 0xce, 0x8b, 0x7e, 0xc6, 0x01, 0x38, 0x81, 0x42, 0xfd, - 0x7d, 0x05, 0x66, 0x42, 0xb9, 0xf9, 0x1d, 0x65, 0x21, 0x42, 0x57, 0xa0, 0x62, 0x98, 0x9e, 0x7c, - 0xd8, 0xb1, 0x4b, 0xd7, 0x96, 0x28, 0xc3, 0x21, 0x54, 0xf5, 0xa0, 0x72, 0x5d, 0x6c, 0x2b, 0xb4, - 0x0c, 0x25, 0x33, 0x38, 0x6b, 0x41, 0x7c, 0x40, 0xa9, 0xdd, 0xc2, 0x25, 0xd3, 0x08, 0x57, 0x55, - 0x29, 0x77, 0x55, 0x49, 0xd3, 0x3e, 0x71, 0xf4, 0xb4, 0xab, 0xbf, 0xa5, 0x40, 0xf5, 0x86, 0xb9, - 0x49, 0x5c, 0x6e, 0x7c, 0x66, 0x7c, 0x31, 0xe6, 0x88, 0x5f, 0xcd, 0x72, 0xc2, 0x47, 0x7b, 0x30, - 0xe3, 0xe9, 0xdb, 0xc4, 0x18, 0x5a, 0xa1, 0xcb, 0x43, 0x21, 0x77, 0x7b, 0x89, 0x74, 0x57, 0xe0, - 0x93, 0x1c, 0x0e, 0x03, 0x0a, 0x38, 0x22, 0xa6, 0x7e, 0x16, 0xce, 0x66, 0x34, 0x42, 0x35, 0x28, - 0x7b, 0xbe, 0xe6, 0xfa, 0x62, 0xcc, 0x18, 0xbb, 0x61, 0xfe, 0x1d, 0x98, 0x97, 0xa3, 0xc7, 0x61, - 0x82, 0xd8, 0x86, 0x18, 0xb4, 0x69, 0xba, 0xcb, 0x56, 0x6d, 0x03, 0xd3, 0x32, 0x3a, 0x45, 0x96, - 0x13, 0x5b, 0x8c, 0x6c, 0x8a, 0x6e, 0x89, 0x32, 0x1c, 0x42, 0xd5, 0x7f, 0x32, 0x09, 0x17, 0x6f, - 0x38, 0xae, 0x79, 0xdf, 0xb1, 0x7d, 0xcd, 0xea, 0x38, 0x46, 0x74, 0x89, 0x27, 0xa6, 0xfb, 0x8b, - 0x0a, 0x3c, 0xa6, 0x0f, 0x86, 0x6d, 0xdb, 0xf4, 0x4d, 0x2d, 0xb8, 0x5b, 0xe9, 0x10, 0xd7, 0x74, - 0x8a, 0xde, 0xe5, 0x31, 0x07, 0xee, 0x66, 0x67, 0x23, 0x0b, 0x25, 0xce, 0xa3, 0xc5, 0xae, 0x14, - 0x0d, 0xe7, 0x9e, 0xcd, 0x3a, 0xd7, 0xf5, 0x99, 0x53, 0xf9, 0xfd, 0xe8, 0x13, 0x0b, 0x5e, 0x29, - 0xb6, 0x32, 0x31, 0xe2, 0x1c, 0x4a, 0xe8, 0x73, 0x70, 0xde, 0xe4, 0x9d, 0xc3, 0x44, 0x33, 0x4c, - 0x9b, 0x78, 0x1e, 0xbb, 0x58, 0x1b, 0xe7, 0xce, 0xac, 0x9d, 0x85, 0x10, 0x67, 0xd3, 0x41, 0x6f, - 0x02, 0x78, 0xfb, 0xb6, 0x2e, 0xc6, 0xbf, 0x5c, 0x88, 0x2a, 0x3f, 0x49, 0x43, 0x2c, 0x58, 0xc2, - 0x48, 0x0f, 0x13, 0xdf, 0xb1, 0x88, 0xab, 0xd9, 0x3a, 0xb7, 0x7d, 0x2b, 0xfc, 0x30, 0xb9, 0x13, - 0x14, 0xe2, 0x08, 0xae, 0xfe, 0x5d, 0x05, 0xa6, 0x45, 0xb0, 0x06, 0xfa, 0x60, 0x42, 0xa0, 0x0a, - 0x0d, 0x60, 0x09, 0xa1, 0x6a, 0x9f, 0x19, 0x2f, 0x84, 0x2c, 0x2e, 0x98, 0x54, 0xa1, 0x13, 0x59, - 0x10, 0x8e, 0x04, 0xfb, 0x98, 0x11, 0x23, 0x10, 0xf6, 0x25, 0x62, 0xea, 0x37, 0x14, 0x58, 0x4c, - 0xb5, 0x1a, 0x41, 0x0d, 0x78, 0x84, 0xd6, 0xf7, 0x3f, 0xa9, 0x02, 0x8b, 0xcb, 0xa9, 0x77, 0xda, - 0x5d, 0xe2, 0xee, 0x86, 0x9b, 0xf0, 0xe7, 0x14, 0x58, 0x88, 0xee, 0x89, 0x44, 0x2f, 0x94, 0xe2, - 0xce, 0x44, 0x37, 0x13, 0xb8, 0x1a, 0x4b, 0xe2, 0xbb, 0x17, 0x92, 0x10, 0x9c, 0xa2, 0x8b, 0xbe, - 0xac, 0xc0, 0x82, 0x16, 0x8f, 0xcb, 0x09, 0x58, 0x66, 0x21, 0x7f, 0xd3, 0x44, 0x8c, 0x4f, 0xd4, - 0x97, 0x04, 0xc0, 0xc3, 0x29, 0xb2, 0xe8, 0x19, 0x98, 0xd5, 0x06, 0x66, 0x7d, 0x68, 0x98, 0xc4, - 0xd6, 0xc3, 0x60, 0x0e, 0x66, 0xa2, 0xa8, 0x77, 0xda, 0x61, 0x39, 0x8e, 0xd5, 0x0a, 0x03, 0x6f, - 0xc4, 0x40, 0x4e, 0x8e, 0x19, 0x78, 0x23, 0xc6, 0x30, 0x0a, 0xbc, 0x11, 0x43, 0x27, 0x13, 0x41, - 0x3f, 0x01, 0x8f, 0xf3, 0xb3, 0xa6, 0xa1, 0x79, 0xa6, 0x5e, 0x1f, 0xfa, 0xdb, 0xc4, 0xf6, 0x03, - 0x89, 0x81, 0xeb, 0x62, 0xcc, 0xb9, 0x60, 0x35, 0xaf, 0x12, 0xce, 0x6f, 0x8f, 0x6c, 0x00, 0xc7, - 0x34, 0x74, 0xf1, 0x3d, 0xfc, 0x7e, 0xbb, 0x90, 0xef, 0xc7, 0xed, 0x76, 0xab, 0x29, 0x3e, 0x87, - 0xb1, 0x89, 0xe8, 0x37, 0x96, 0x28, 0xa0, 0xaf, 0x28, 0x30, 0x27, 0x16, 0xb9, 0xa0, 0x39, 0xcd, - 0xe6, 0xff, 0x8d, 0xa2, 0x8b, 0x31, 0xb1, 0xe0, 0x57, 0xb0, 0x8c, 0x9c, 0x7b, 0xd0, 0x86, 0xde, - 0x4e, 0x31, 0x18, 0x8e, 0xf7, 0x03, 0xfd, 0x0d, 0x05, 0xce, 0x79, 0xc4, 0xdd, 0x35, 0x75, 0x52, - 0xd7, 0x75, 0x67, 0x68, 0x07, 0x93, 0x5c, 0x29, 0x1e, 0x04, 0xd1, 0xcd, 0xc0, 0xc7, 0xaf, 0xd9, - 0xb3, 0x20, 0x38, 0x93, 0x3e, 0x3d, 0xbf, 0xce, 0xdc, 0xd3, 0x7c, 0x7d, 0xbb, 0xa9, 0xe9, 0xdb, - 0x4c, 0x7e, 0xe7, 0x37, 0xeb, 0x05, 0x37, 0xcd, 0xab, 0x71, 0x54, 0xdc, 0xe0, 0x90, 0x28, 0xc4, - 0x49, 0x82, 0xc8, 0x83, 0x8a, 0x4b, 0xde, 0x1e, 0x12, 0x8f, 0x5d, 0xbf, 0x53, 0xe2, 0xed, 0xb1, - 0x67, 0x0c, 0x0b, 0x84, 0x5c, 0xc6, 0x08, 0x7e, 0xe1, 0x90, 0x10, 0xea, 0xc1, 0x45, 0xbe, 0x72, - 0xeb, 0xb6, 0x63, 0xef, 0xf7, 0x9d, 0xa1, 0x97, 0x58, 0xfd, 0x55, 0xb6, 0xfa, 0x99, 0x83, 0xc1, - 0xea, 0x51, 0x15, 0xf1, 0xd1, 0x78, 0xd0, 0x6b, 0x50, 0x21, 0xbb, 0xc4, 0xf6, 0xef, 0xdc, 0xb9, - 0xb5, 0x34, 0x5b, 0xe8, 0x68, 0x64, 0x9f, 0xb0, 0x2a, 0x70, 0xe0, 0x10, 0xdb, 0xf2, 0xcb, 0x80, - 0xd2, 0x2b, 0x12, 0x2d, 0xc0, 0xc4, 0x0e, 0xe1, 0x71, 0x7b, 0x33, 0x98, 0xfe, 0x8b, 0xce, 0x41, - 0x79, 0x57, 0xb3, 0x86, 0x5c, 0x94, 0xad, 0x60, 0xfe, 0xe3, 0xf9, 0xd2, 0x27, 0x14, 0xf5, 0x5b, - 0x0a, 0x9c, 0xcf, 0x1c, 0x36, 0x84, 0xe1, 0x02, 0xf3, 0xcb, 0xb0, 0xd7, 0x86, 0xbe, 0xe6, 0x9b, - 0x76, 0xaf, 0x6d, 0x6f, 0x59, 0x66, 0x6f, 0x9b, 0x4b, 0x7e, 0x65, 0x2e, 0xa7, 0xac, 0x65, 0xd6, - 0xc0, 0x39, 0x2d, 0x51, 0x1b, 0xce, 0xf6, 0xb5, 0xbd, 0x14, 0xc2, 0x12, 0x43, 0xc8, 0xa2, 0x3f, - 0xd7, 0xd2, 0x60, 0x9c, 0xd5, 0x46, 0xfd, 0x5a, 0x19, 0x9e, 0xa0, 0x1d, 0x8f, 0x8e, 0xcc, 0x35, - 0xcd, 0xd6, 0x7a, 0xef, 0xcc, 0xa3, 0xe9, 0xb7, 0x14, 0x78, 0x6c, 0x3b, 0x5b, 0x9c, 0x15, 0x87, - 0xf6, 0x2b, 0x85, 0x84, 0xfa, 0xa3, 0x24, 0x64, 0xbe, 0x70, 0x8f, 0xac, 0x82, 0xf3, 0x3a, 0x85, - 0x5e, 0x86, 0x05, 0xdb, 0x31, 0x48, 0xb3, 0xdd, 0xc2, 0x6b, 0x9a, 0xb7, 0xd3, 0x0d, 0x14, 0xfe, - 0x32, 0xb7, 0xe8, 0xad, 0x27, 0x60, 0x38, 0x55, 0x1b, 0xed, 0x02, 0x1a, 0x38, 0xc6, 0xea, 0xae, - 0xa9, 0x07, 0x2e, 0x15, 0xc5, 0xad, 0x88, 0xcc, 0xc3, 0xbc, 0x93, 0xc2, 0x86, 0x33, 0x28, 0x30, - 0x79, 0x9c, 0x76, 0x66, 0xcd, 0xb1, 0x4d, 0xdf, 0x71, 0x99, 0xdf, 0xcf, 0x58, 0x62, 0x29, 0x5b, - 0xe7, 0xeb, 0x99, 0x18, 0x71, 0x0e, 0x25, 0xf5, 0x7f, 0x2b, 0x70, 0x86, 0x2e, 0x8b, 0x8e, 0xeb, - 0xec, 0xed, 0xbf, 0x13, 0x17, 0xe4, 0x53, 0xc2, 0x56, 0xc9, 0xb5, 0xb4, 0xf3, 0x92, 0x9d, 0x72, - 0x86, 0xf5, 0x39, 0x32, 0x4d, 0xca, 0x8a, 0xea, 0x44, 0xbe, 0xa2, 0xaa, 0xfe, 0x47, 0x85, 0x8b, - 0x88, 0x81, 0xa2, 0xf8, 0x8e, 0xdc, 0x87, 0xcf, 0xc2, 0x1c, 0x2d, 0x5b, 0xd3, 0xf6, 0x3a, 0xad, - 0xbb, 0x8e, 0x15, 0xb8, 0x23, 0xb1, 0xcb, 0xcf, 0x9b, 0x32, 0x00, 0xc7, 0xeb, 0xa9, 0xbf, 0x7e, - 0x06, 0x58, 0x05, 0x8b, 0xf8, 0xef, 0xc4, 0xef, 0x7a, 0x1a, 0xaa, 0xfa, 0x60, 0xd8, 0xbc, 0xd6, - 0x7d, 0x65, 0xe8, 0xf8, 0x9a, 0xb0, 0x61, 0x32, 0xb9, 0xaf, 0xd9, 0xd9, 0x08, 0x8a, 0xb1, 0x5c, - 0x87, 0xee, 0x70, 0x7d, 0x30, 0x14, 0x3c, 0xb3, 0x23, 0xdf, 0xe2, 0xb1, 0x1d, 0xde, 0xec, 0x6c, - 0xc4, 0x60, 0x38, 0x55, 0x1b, 0x7d, 0x0e, 0x66, 0x89, 0xd8, 0x7c, 0x37, 0x34, 0xd7, 0x10, 0x7b, - 0xbb, 0xf0, 0xc1, 0x1d, 0x0e, 0x6d, 0xb0, 0xa3, 0xb9, 0xb8, 0xbc, 0x2a, 0x91, 0xc0, 0x31, 0x82, - 0x4c, 0x74, 0x15, 0xbf, 0xe9, 0x4c, 0x39, 0x46, 0x72, 0xb3, 0x97, 0x85, 0xe8, 0x9a, 0x57, 0x09, - 0xe7, 0xb7, 0x47, 0xbf, 0xa9, 0xc0, 0x85, 0x10, 0x6a, 0xda, 0x66, 0x7f, 0xd8, 0xc7, 0x44, 0xb7, - 0x34, 0xb3, 0x2f, 0xe4, 0xd8, 0x57, 0x4f, 0xec, 0x43, 0xe3, 0xe8, 0x39, 0xc3, 0xc9, 0x86, 0xe1, - 0x9c, 0x2e, 0xa1, 0x6f, 0x28, 0x70, 0x39, 0x00, 0x75, 0xa8, 0x26, 0x39, 0x74, 0x49, 0xe4, 0xd0, - 0x26, 0x86, 0x64, 0xba, 0x10, 0xff, 0x7b, 0xff, 0xe1, 0x41, 0xed, 0xf2, 0xea, 0x43, 0x70, 0xe3, - 0x87, 0x52, 0x97, 0x97, 0x4b, 0xd7, 0xd9, 0xf2, 0x85, 0xe0, 0x7b, 0x5a, 0xcb, 0x85, 0x92, 0xc0, - 0x31, 0x82, 0xe8, 0xb7, 0x15, 0x78, 0x4c, 0x2e, 0x90, 0x57, 0x0b, 0x97, 0x78, 0x5f, 0x3b, 0xb1, - 0xce, 0x24, 0xf0, 0x73, 0xdb, 0x52, 0x0e, 0x10, 0xe7, 0xf5, 0x8a, 0xb2, 0xde, 0x3e, 0x5b, 0x98, - 0x5c, 0x2a, 0x2e, 0x73, 0xd6, 0xcb, 0xd7, 0xaa, 0x87, 0x03, 0x18, 0x55, 0x36, 0x07, 0x8e, 0xd1, - 0x31, 0x0d, 0xef, 0x96, 0xd9, 0x37, 0x7d, 0x26, 0xb7, 0x4e, 0xf0, 0xe1, 0xe8, 0x38, 0x46, 0xa7, - 0xdd, 0xe2, 0xe5, 0x38, 0x56, 0x8b, 0xb9, 0xa1, 0x9b, 0x7d, 0xad, 0x47, 0x3a, 0x43, 0xcb, 0xea, - 0xb8, 0x0e, 0x33, 0x40, 0xb4, 0x88, 0x66, 0x58, 0xa6, 0x4d, 0x0a, 0xca, 0xa9, 0x6c, 0xbb, 0xb5, - 0xf3, 0x90, 0xe2, 0x7c, 0x7a, 0x68, 0x05, 0x60, 0x4b, 0x33, 0xad, 0xee, 0x3d, 0x6d, 0x70, 0xdb, - 0x5e, 0x9a, 0x63, 0x0c, 0x8c, 0x69, 0x7a, 0xd7, 0xc2, 0x52, 0x2c, 0xd5, 0xa0, 0xab, 0x89, 0x72, - 0x41, 0x4c, 0x78, 0x00, 0xdc, 0xd2, 0xfc, 0x09, 0xad, 0xa6, 0x00, 0x21, 0x1f, 0xbe, 0x9b, 0x12, - 0x09, 0x1c, 0x23, 0x88, 0xbe, 0xa8, 0xc0, 0xbc, 0xb7, 0xef, 0xf9, 0xa4, 0x1f, 0xf6, 0xe1, 0xcc, - 0x49, 0xf7, 0x81, 0x99, 0x66, 0xba, 0x31, 0x22, 0x38, 0x41, 0x14, 0x69, 0xf0, 0x04, 0x1b, 0xd5, - 0xeb, 0xcd, 0x1b, 0x66, 0x6f, 0x3b, 0x74, 0x2e, 0xef, 0x10, 0x57, 0x27, 0xb6, 0xbf, 0xb4, 0xc0, - 0xd6, 0x4d, 0xed, 0xf0, 0xa0, 0xf6, 0x44, 0x3b, 0xbf, 0x1a, 0x3e, 0x0a, 0x07, 0x7a, 0x13, 0x96, - 0x05, 0xf8, 0x96, 0x73, 0x2f, 0x45, 0x61, 0x91, 0x51, 0x60, 0x1e, 0xff, 0xed, 0xdc, 0x5a, 0xf8, - 0x08, 0x0c, 0x54, 0x2b, 0xf0, 0x88, 0xcb, 0x2c, 0xab, 0x24, 0x5c, 0x3c, 0xde, 0x12, 0x62, 0x8b, - 0x80, 0x69, 0x05, 0xdd, 0x34, 0x18, 0x67, 0xb5, 0x51, 0x0f, 0x4a, 0x5c, 0x9d, 0x49, 0x6d, 0x48, - 0xf4, 0x22, 0x9c, 0xe9, 0x93, 0xbe, 0xe3, 0xee, 0xd7, 0x83, 0x94, 0x19, 0xc2, 0xb4, 0xc6, 0x34, - 0xd4, 0xb5, 0x38, 0x08, 0x27, 0xeb, 0xd2, 0xe3, 0x92, 0x7d, 0xc1, 0xb5, 0x6e, 0xd4, 0xbe, 0x14, - 0x1d, 0x97, 0xed, 0x04, 0x0c, 0xa7, 0x6a, 0xa3, 0x26, 0x2c, 0x8a, 0xb2, 0x36, 0x95, 0x1a, 0xbd, - 0x6b, 0x2e, 0x09, 0x2e, 0x9b, 0xa8, 0xfc, 0xb5, 0xd8, 0x4e, 0x02, 0x71, 0xba, 0x3e, 0xfd, 0x0a, - 0xfa, 0x43, 0xee, 0xc5, 0x64, 0xf4, 0x15, 0xeb, 0x71, 0x10, 0x4e, 0xd6, 0x0d, 0xc4, 0xfa, 0x58, - 0x17, 0xca, 0xd1, 0x57, 0xac, 0x27, 0x60, 0x38, 0x55, 0x5b, 0xfd, 0x4f, 0x93, 0xf0, 0xbe, 0x11, - 0x0e, 0x31, 0xd4, 0xcf, 0x1e, 0xee, 0x87, 0xb0, 0x94, 0x95, 0xc0, 0x49, 0x63, 0xe5, 0x95, 0xa1, - 0x66, 0xfb, 0xa6, 0xbf, 0x3f, 0xe2, 0xf4, 0x0c, 0x72, 0xa6, 0xe7, 0xf8, 0xf4, 0x46, 0x9d, 0x4e, - 0x2f, 0x6f, 0x3a, 0x8f, 0x4f, 0x72, 0xf4, 0xe9, 0xef, 0x67, 0x4f, 0x7f, 0xc1, 0x51, 0x7d, 0xe8, - 0x72, 0x19, 0xe4, 0x2c, 0x97, 0x82, 0xa3, 0x3a, 0xc2, 0xf2, 0xfa, 0xd3, 0x49, 0x78, 0xff, 0x28, - 0x07, 0x6a, 0xc1, 0xf5, 0x95, 0x71, 0x64, 0x9d, 0xea, 0xfa, 0xca, 0xf3, 0x88, 0x39, 0xc5, 0xf5, - 0x95, 0x41, 0xf2, 0xb4, 0xd7, 0x57, 0xde, 0xa8, 0x9e, 0xd6, 0xfa, 0xca, 0x1b, 0xd5, 0x11, 0xd6, - 0xd7, 0x9f, 0x25, 0xcf, 0x87, 0xf0, 0x1c, 0x6d, 0xc3, 0x84, 0x3e, 0x18, 0x16, 0x64, 0x52, 0xec, - 0x9a, 0xb3, 0xd9, 0xd9, 0xc0, 0x14, 0x07, 0xc2, 0x30, 0xc5, 0xd7, 0x4f, 0x41, 0x16, 0xc4, 0x9c, - 0x7e, 0xf8, 0x92, 0xc4, 0x02, 0x13, 0x1d, 0x2a, 0x32, 0xd8, 0x26, 0x7d, 0xe2, 0x6a, 0x56, 0xd7, - 0x77, 0x5c, 0xad, 0x57, 0x94, 0xdb, 0xb0, 0xa1, 0x5a, 0x4d, 0xe0, 0xc2, 0x29, 0xec, 0x74, 0x40, - 0x06, 0xa6, 0x51, 0x90, 0xbf, 0xb0, 0x01, 0xe9, 0xb4, 0x5b, 0x98, 0xe2, 0x50, 0xff, 0xa0, 0x02, - 0x52, 0x68, 0x11, 0xd5, 0xdb, 0x34, 0xcb, 0x72, 0xee, 0x75, 0x5c, 0x73, 0xd7, 0xb4, 0x48, 0x8f, - 0x18, 0x61, 0xec, 0x89, 0x27, 0x2e, 0xc3, 0x99, 0x20, 0x59, 0xcf, 0xab, 0x84, 0xf3, 0xdb, 0x53, - 0xbd, 0x7c, 0x51, 0x4f, 0x06, 0x7e, 0x8e, 0x73, 0xa1, 0x97, 0x8a, 0x22, 0xe5, 0xfb, 0x29, 0x55, - 0x8c, 0xd3, 0x64, 0xd1, 0x4f, 0x2b, 0xdc, 0xe0, 0x10, 0x5a, 0x57, 0xc5, 0x9c, 0x5d, 0x3f, 0xa1, - 0xfb, 0x88, 0xc8, 0x72, 0x11, 0xd9, 0x6f, 0xe3, 0x04, 0xa9, 0x66, 0x78, 0x7e, 0x27, 0xcb, 0x4e, - 0x2a, 0x66, 0xf6, 0x76, 0xd1, 0xae, 0xe4, 0x18, 0x5e, 0xf9, 0xe5, 0x71, 0x66, 0x05, 0x9c, 0xdd, - 0x91, 0x70, 0x94, 0x42, 0xd3, 0x91, 0x60, 0x02, 0x85, 0x47, 0x29, 0x61, 0x83, 0x8a, 0x46, 0x29, - 0x04, 0xe0, 0x38, 0x41, 0x34, 0x80, 0x99, 0x9d, 0xc0, 0x5e, 0x27, 0xf4, 0xfb, 0x66, 0x51, 0xea, - 0x92, 0xd1, 0x8f, 0x5f, 0x52, 0x87, 0x85, 0x38, 0x22, 0x82, 0xb6, 0x61, 0x7a, 0x87, 0x33, 0x22, - 0xa1, 0x97, 0xd7, 0xc7, 0xd6, 0x1b, 0xb8, 0x7a, 0x28, 0x8a, 0x70, 0x80, 0x5e, 0x76, 0x52, 0xa9, - 0x3c, 0xc4, 0x37, 0xe9, 0x6b, 0x0a, 0x9c, 0xdf, 0x25, 0xae, 0x6f, 0xea, 0x49, 0x2b, 0xf5, 0x4c, - 0x71, 0xdd, 0xe6, 0x6e, 0x16, 0x42, 0xbe, 0x4c, 0x32, 0x41, 0x38, 0xbb, 0x0b, 0xea, 0x0f, 0x15, - 0x48, 0xd9, 0xc2, 0xd0, 0x2f, 0x28, 0x30, 0xbb, 0x45, 0x34, 0x7f, 0xe8, 0x92, 0xeb, 0x9a, 0x1f, - 0x3a, 0x12, 0xdf, 0x3d, 0x09, 0x13, 0xdc, 0xca, 0x35, 0x09, 0x31, 0xbf, 0xec, 0x0b, 0xb3, 0x0b, - 0xc8, 0x20, 0x1c, 0xeb, 0xc1, 0xf2, 0x4b, 0xb0, 0x98, 0x6a, 0x78, 0xac, 0x3b, 0x99, 0x7f, 0x2e, - 0x4c, 0xa9, 0xc9, 0x84, 0x97, 0x6f, 0x42, 0x59, 0x33, 0x8c, 0x30, 0x9d, 0xd6, 0x73, 0xc5, 0x2e, - 0xb5, 0x0d, 0xd9, 0x5f, 0x9b, 0xfd, 0xc4, 0x1c, 0x2d, 0xba, 0x06, 0x48, 0x8b, 0xdd, 0x5c, 0xad, - 0x45, 0xee, 0xac, 0xcc, 0x04, 0x5f, 0x4f, 0x41, 0x71, 0x46, 0x0b, 0xf5, 0x05, 0x98, 0x8f, 0x07, - 0x98, 0x1e, 0xc3, 0x3d, 0x4e, 0xfd, 0xcb, 0x0a, 0xa0, 0x74, 0x32, 0x0b, 0xe4, 0x42, 0x45, 0xd4, - 0x08, 0xa6, 0xb8, 0x90, 0x95, 0x35, 0xe9, 0xb8, 0x17, 0x39, 0xcc, 0x8b, 0x02, 0x0f, 0x87, 0x74, - 0xd4, 0x3f, 0x57, 0x20, 0xca, 0xd7, 0x83, 0x3e, 0x0e, 0x55, 0x83, 0x78, 0xba, 0x6b, 0x0e, 0xfc, - 0xe8, 0x3b, 0xc2, 0x44, 0x04, 0xad, 0x08, 0x84, 0xe5, 0x7a, 0x48, 0x85, 0x29, 0x5f, 0xf3, 0x76, - 0xda, 0x2d, 0xa1, 0x2e, 0xb2, 0xc3, 0xfd, 0x0e, 0x2b, 0xc1, 0x02, 0x12, 0x05, 0x6b, 0x4e, 0x8c, - 0x10, 0xac, 0x89, 0xb6, 0x4e, 0x20, 0x32, 0x15, 0x3d, 0x3c, 0x2a, 0x55, 0xfd, 0xe3, 0x12, 0xc4, - 0x53, 0x24, 0x15, 0x1d, 0x82, 0x74, 0x28, 0x6d, 0xe9, 0xd4, 0x42, 0x69, 0x3f, 0xcc, 0xf2, 0x0b, - 0xf2, 0x84, 0xb0, 0xfc, 0xc2, 0x4a, 0xce, 0x0a, 0xc8, 0xd3, 0xb9, 0x86, 0x35, 0xd0, 0x73, 0xcc, - 0x99, 0xcd, 0x0f, 0x94, 0xe8, 0xf7, 0x05, 0xdb, 0xa2, 0x4b, 0x0b, 0x1f, 0x88, 0x60, 0xe1, 0xf0, - 0xfb, 0x59, 0x29, 0xe6, 0x2d, 0xd0, 0xc7, 0x85, 0xef, 0x63, 0x39, 0x16, 0xd0, 0x1c, 0x44, 0x41, - 0x2f, 0xc6, 0x1a, 0x46, 0x0e, 0x91, 0xea, 0x5f, 0x57, 0x60, 0x5a, 0x64, 0x26, 0x19, 0xc1, 0x7d, - 0x72, 0x0b, 0xca, 0x4c, 0x48, 0x1f, 0x47, 0x7e, 0xe9, 0x6e, 0x3b, 0x8e, 0x1f, 0xcb, 0xcf, 0xc2, - 0x7c, 0xf6, 0xd8, 0xbf, 0x98, 0xa3, 0x57, 0xbf, 0x3e, 0x09, 0x97, 0x45, 0x95, 0xd4, 0xf1, 0x1c, - 0x6e, 0xc1, 0x7d, 0x38, 0x2b, 0x66, 0xa9, 0xe5, 0x6a, 0x66, 0x78, 0xa5, 0x57, 0x4c, 0xed, 0x12, - 0x97, 0xbd, 0x29, 0x74, 0x38, 0x8b, 0x06, 0xcf, 0x44, 0xc0, 0x8a, 0x6f, 0x10, 0xcd, 0xf2, 0xb7, - 0x03, 0xda, 0xa5, 0x71, 0x32, 0x11, 0xa4, 0xf1, 0xe1, 0x4c, 0x2a, 0xec, 0x4a, 0x51, 0x00, 0x9a, - 0x2e, 0xd1, 0xe4, 0xfb, 0xcc, 0x31, 0x5c, 0xfc, 0xd6, 0x32, 0x31, 0xe2, 0x1c, 0x4a, 0xcc, 0x7e, - 0xa5, 0xed, 0x31, 0x75, 0x18, 0x13, 0xdf, 0x35, 0x59, 0xc6, 0x1c, 0xba, 0xbe, 0xb9, 0x02, 0x1b, - 0x07, 0xe1, 0x64, 0x5d, 0xf4, 0x3c, 0xcc, 0xb3, 0x2b, 0xda, 0x28, 0x40, 0xaf, 0x1c, 0xe5, 0x07, - 0x5e, 0x8f, 0x41, 0x70, 0xa2, 0xa6, 0xfa, 0x1b, 0x0a, 0xcc, 0xca, 0x0b, 0x68, 0x04, 0x77, 0xeb, - 0xa1, 0xc4, 0xae, 0xc7, 0xf0, 0x5a, 0x95, 0xa9, 0x8e, 0xc2, 0xb1, 0x1f, 0x28, 0x70, 0x36, 0xa3, - 0x0d, 0xbb, 0xac, 0x23, 0x09, 0xd6, 0x3f, 0xce, 0x65, 0x5d, 0xea, 0x18, 0x09, 0x2f, 0xeb, 0x92, - 0x10, 0x9c, 0xa2, 0x8b, 0xee, 0xc2, 0x84, 0xee, 0x9a, 0x62, 0x58, 0x9e, 0x2d, 0xa4, 0x92, 0xe0, - 0x76, 0xe4, 0xc3, 0xde, 0xc4, 0x6d, 0x4c, 0x11, 0xaa, 0xff, 0x78, 0x02, 0xaa, 0x52, 0xd2, 0x23, - 0xb4, 0x36, 0x8e, 0x46, 0x1b, 0xa1, 0x0f, 0xb4, 0xda, 0x35, 0x98, 0xe8, 0x0d, 0x86, 0x05, 0x55, - 0xda, 0x10, 0xdd, 0x75, 0x8a, 0xae, 0x37, 0x18, 0xa2, 0xbb, 0xa1, 0x92, 0x5c, 0x4c, 0x8d, 0x0d, - 0x1d, 0x39, 0x13, 0x8a, 0x72, 0xb0, 0x36, 0x27, 0x73, 0xd7, 0x66, 0x1f, 0xa6, 0x3d, 0xa1, 0x41, - 0x97, 0x8b, 0x07, 0x0d, 0x49, 0x23, 0x2d, 0x34, 0x66, 0x2e, 0x7e, 0x07, 0x0a, 0x75, 0x40, 0x83, - 0x0a, 0x00, 0x43, 0xe6, 0x78, 0xce, 0xf4, 0x8a, 0x0a, 0x17, 0x00, 0x36, 0x58, 0x09, 0x16, 0x10, - 0xf5, 0x67, 0x4b, 0x80, 0xd2, 0x08, 0xd1, 0xfb, 0xa0, 0xcc, 0xfc, 0xef, 0xc5, 0x46, 0x93, 0x92, - 0x82, 0x68, 0x9e, 0x87, 0x39, 0x0c, 0x75, 0x45, 0x3c, 0x46, 0xb1, 0x89, 0x61, 0x97, 0xc4, 0x82, - 0x9e, 0x14, 0xbc, 0x11, 0x1c, 0x4d, 0x13, 0xb9, 0x47, 0xd3, 0x06, 0x4c, 0xf7, 0x4d, 0x9b, 0x39, - 0x86, 0x14, 0x33, 0x11, 0xf0, 0xbb, 0x2c, 0x8e, 0x02, 0x07, 0xb8, 0xd4, 0x3f, 0x2d, 0xd1, 0x45, - 0x6c, 0xda, 0x3e, 0xb1, 0x35, 0x5b, 0x27, 0x68, 0x1f, 0x40, 0x1b, 0xfa, 0x0e, 0x3f, 0xe1, 0xc5, - 0x5a, 0x6e, 0x17, 0x9b, 0xaf, 0x10, 0x69, 0x3d, 0x44, 0xc8, 0xaf, 0x98, 0xa2, 0xdf, 0x58, 0x22, - 0x46, 0x49, 0xfb, 0x66, 0x9f, 0xbc, 0x6a, 0xda, 0x86, 0x73, 0x4f, 0x0c, 0xef, 0xb8, 0xa4, 0xef, - 0x84, 0x08, 0x39, 0xe9, 0xe8, 0x37, 0x96, 0x88, 0xa1, 0xd7, 0x60, 0x89, 0xe5, 0x2c, 0xb7, 0x59, - 0x3e, 0x39, 0xd1, 0x37, 0xc7, 0xb2, 0x82, 0x23, 0xa7, 0xc2, 0x72, 0xf8, 0x2c, 0x35, 0x73, 0xea, - 0xe0, 0xdc, 0xd6, 0xea, 0x6f, 0x2b, 0x70, 0x3e, 0x73, 0x28, 0xd0, 0x75, 0x58, 0x8c, 0xfc, 0x0a, - 0x64, 0x1e, 0x59, 0x89, 0xd2, 0x23, 0xde, 0x4c, 0x56, 0xc0, 0xe9, 0x36, 0x68, 0x2d, 0x94, 0x13, - 0x64, 0x1e, 0x2c, 0x9c, 0x12, 0x9e, 0x10, 0xa8, 0xb2, 0xd8, 0x34, 0xce, 0x6a, 0xa7, 0xfe, 0x44, - 0xac, 0xc3, 0xd1, 0x80, 0xd1, 0xdd, 0xb1, 0x49, 0x7a, 0xa1, 0x67, 0x77, 0xb8, 0x3b, 0x1a, 0xb4, - 0x10, 0x73, 0x18, 0xba, 0x28, 0x47, 0x23, 0x84, 0x5c, 0x28, 0x88, 0x48, 0x50, 0x7d, 0x00, 0xe1, - 0xbe, 0x63, 0xda, 0x3d, 0xb4, 0x05, 0x15, 0x4d, 0x24, 0xd4, 0x17, 0x4b, 0xed, 0x93, 0x85, 0x74, - 0x2c, 0x81, 0x83, 0xbb, 0xed, 0x05, 0xbf, 0x70, 0x88, 0x5b, 0xfd, 0x3b, 0x0a, 0x5c, 0xa0, 0x0c, - 0xc9, 0x08, 0x82, 0x3e, 0xc3, 0x38, 0xfc, 0x11, 0x8e, 0xd6, 0x3e, 0x54, 0xdd, 0xa8, 0x99, 0x58, - 0x97, 0x3f, 0x2e, 0xc7, 0xf8, 0x4b, 0xa1, 0x8a, 0x54, 0xec, 0x68, 0xba, 0x8e, 0x17, 0x4c, 0x4e, - 0x32, 0xec, 0x3f, 0x14, 0xde, 0xa5, 0x9e, 0x60, 0x19, 0xbf, 0xfa, 0xf9, 0x12, 0xc0, 0x3a, 0xf1, - 0xef, 0x39, 0xee, 0x0e, 0x1d, 0xa2, 0x77, 0x54, 0xc8, 0xcf, 0x93, 0x30, 0x39, 0x70, 0x0c, 0x4f, - 0x70, 0x29, 0x16, 0xa8, 0xc6, 0x6e, 0xc6, 0x59, 0x29, 0xaa, 0x41, 0x99, 0x19, 0x7e, 0xc5, 0x51, - 0xc0, 0xa4, 0x5e, 0x2a, 0xe9, 0x78, 0x98, 0x97, 0xf3, 0x54, 0xa9, 0xcc, 0x25, 0xd6, 0x13, 0x62, - 0xbc, 0x48, 0x95, 0xca, 0xcb, 0x70, 0x08, 0x55, 0x3f, 0x3f, 0x09, 0xb1, 0x17, 0x21, 0x22, 0x55, - 0x5c, 0x39, 0x1d, 0x55, 0xfc, 0x35, 0x58, 0xb2, 0x1c, 0xcd, 0x68, 0x68, 0x16, 0x5d, 0xf4, 0x6e, - 0x97, 0x4f, 0x87, 0x66, 0xf7, 0xc2, 0xe7, 0x06, 0x18, 0x03, 0xb8, 0x95, 0x53, 0x07, 0xe7, 0xb6, - 0x46, 0x7e, 0xf8, 0x0e, 0x05, 0x4f, 0xf7, 0x78, 0x6b, 0xdc, 0xf7, 0x32, 0x56, 0x64, 0x67, 0xe8, - 0xf0, 0x54, 0x8e, 0x3f, 0x55, 0x81, 0xbe, 0xa4, 0xc0, 0x79, 0xb2, 0xe7, 0x13, 0xd7, 0xd6, 0xac, - 0x3b, 0xae, 0xb6, 0xb5, 0x65, 0xea, 0xc2, 0xe7, 0x88, 0x4f, 0x4e, 0xe7, 0xf0, 0xa0, 0x76, 0x7e, - 0x35, 0xab, 0xc2, 0x83, 0x83, 0xda, 0xc7, 0xd2, 0xcf, 0xc1, 0x04, 0xbe, 0xcf, 0x99, 0x4d, 0xd8, - 0x62, 0xcc, 0x26, 0xb7, 0xfc, 0x1c, 0x54, 0x8f, 0xe1, 0x2a, 0x3b, 0x23, 0x9b, 0x65, 0x7e, 0x79, - 0x0a, 0x24, 0xbf, 0xf3, 0x63, 0x24, 0xf9, 0xfc, 0x35, 0x05, 0xce, 0xe9, 0x96, 0x49, 0x6c, 0x3f, - 0xe1, 0x60, 0xcc, 0x37, 0xc6, 0x46, 0x21, 0x87, 0xf8, 0x01, 0xb1, 0xdb, 0xad, 0xa6, 0x63, 0xdb, - 0x44, 0xf7, 0x9b, 0x19, 0xc8, 0xb9, 0x96, 0x93, 0x05, 0xc1, 0x99, 0x9d, 0x61, 0xdf, 0xc3, 0xca, - 0xdb, 0x2d, 0x39, 0x38, 0xab, 0x29, 0xca, 0x70, 0x08, 0x45, 0x4f, 0x43, 0xb5, 0xe7, 0x3a, 0xc3, - 0x81, 0xd7, 0x64, 0xee, 0x50, 0x7c, 0x06, 0x99, 0x20, 0x71, 0x3d, 0x2a, 0xc6, 0x72, 0x1d, 0xf4, - 0x0c, 0xcc, 0xf2, 0x9f, 0x1d, 0x97, 0x6c, 0x99, 0x7b, 0x62, 0xbb, 0x31, 0x1f, 0x8b, 0xeb, 0x52, - 0x39, 0x8e, 0xd5, 0x42, 0x1f, 0x82, 0x19, 0xd3, 0xf3, 0x86, 0xc4, 0xdd, 0xc0, 0xb7, 0x44, 0xc6, - 0x2b, 0x66, 0x50, 0x6d, 0x07, 0x85, 0x38, 0x82, 0xa3, 0x5f, 0x54, 0x60, 0xde, 0x25, 0x6f, 0x0f, - 0x4d, 0x97, 0x18, 0x8c, 0xa8, 0x27, 0x9c, 0xff, 0xf1, 0x78, 0x01, 0x07, 0x2b, 0x38, 0x86, 0x94, - 0xaf, 0xf3, 0xd0, 0x1c, 0x11, 0x07, 0xe2, 0x44, 0x0f, 0xe8, 0x50, 0x79, 0x66, 0xcf, 0x36, 0xed, - 0x5e, 0xdd, 0xea, 0x79, 0x4b, 0x15, 0xb6, 0x75, 0xb9, 0xcc, 0x15, 0x15, 0x63, 0xb9, 0x0e, 0x7a, - 0x16, 0xe6, 0x86, 0x1e, 0x5d, 0xb9, 0x7d, 0xc2, 0xc7, 0x77, 0x26, 0xf2, 0x51, 0xdc, 0x90, 0x01, - 0x38, 0x5e, 0x8f, 0xaa, 0x78, 0x41, 0x81, 0x18, 0x65, 0xe0, 0x21, 0xba, 0xb4, 0x9f, 0x1b, 0x31, - 0x08, 0x4e, 0xd4, 0x5c, 0xae, 0xc3, 0xd9, 0x8c, 0xcf, 0x3c, 0xd6, 0xf6, 0xf8, 0x8d, 0x12, 0xbc, - 0xf7, 0xa1, 0xab, 0x12, 0xfd, 0x4d, 0x05, 0xaa, 0x64, 0xcf, 0x77, 0xb5, 0xd0, 0x63, 0x92, 0x4e, - 0xd1, 0xd6, 0xa9, 0x6c, 0x81, 0x95, 0xd5, 0x88, 0x10, 0x9f, 0xb6, 0xf0, 0xb8, 0x93, 0x20, 0x58, - 0xee, 0x0f, 0x95, 0xd6, 0x79, 0x00, 0xb7, 0x6c, 0xae, 0x13, 0x89, 0xf3, 0x05, 0x64, 0xf9, 0x53, - 0xb0, 0x90, 0xc4, 0x7c, 0xac, 0x91, 0xfa, 0x07, 0x25, 0x28, 0x77, 0x2c, 0xed, 0x91, 0x24, 0x2f, - 0xfb, 0x0b, 0xb1, 0xcc, 0x31, 0x85, 0xd2, 0xf1, 0xb0, 0xae, 0xe6, 0xe6, 0xac, 0xea, 0x25, 0x72, - 0x56, 0xbd, 0x54, 0x9c, 0xc4, 0xd1, 0x29, 0xaa, 0xfe, 0xa5, 0x02, 0x33, 0xac, 0xde, 0x23, 0x48, - 0x95, 0xf2, 0x66, 0x3c, 0x55, 0xca, 0x73, 0x85, 0xbf, 0x29, 0x27, 0x33, 0xca, 0x77, 0x83, 0x6f, - 0x61, 0x89, 0x50, 0x5e, 0x97, 0x1f, 0x0c, 0xe1, 0x1f, 0x73, 0x25, 0x2b, 0x67, 0xd3, 0x2d, 0x47, - 0xd7, 0xac, 0x54, 0xe2, 0xa6, 0x23, 0x5f, 0x0d, 0xe9, 0xc3, 0x0c, 0x11, 0x41, 0xf2, 0xc1, 0xc7, - 0x14, 0x12, 0x69, 0x83, 0x48, 0xfb, 0x88, 0x5c, 0x50, 0xe2, 0xe1, 0x88, 0x82, 0xfa, 0xcf, 0x4a, - 0x50, 0x95, 0xe6, 0xf2, 0x47, 0x91, 0x12, 0xea, 0x5a, 0x66, 0x2e, 0xfd, 0x12, 0x73, 0x89, 0xbc, - 0x70, 0x8c, 0x3c, 0xfa, 0x2e, 0x54, 0xf5, 0x28, 0xbd, 0xe7, 0x38, 0x8b, 0x5b, 0xca, 0x12, 0x2a, - 0x7c, 0xb2, 0xa3, 0x02, 0x2c, 0x13, 0x51, 0x7f, 0xb7, 0x04, 0xd3, 0x1d, 0xd7, 0xa1, 0x13, 0xfc, - 0x08, 0x58, 0x83, 0x16, 0x63, 0x0d, 0xc5, 0xf6, 0x2d, 0xef, 0x6c, 0x2e, 0x73, 0x30, 0x13, 0xcc, - 0xa1, 0x3e, 0x0e, 0x91, 0xa3, 0xd9, 0xc3, 0xbf, 0x51, 0xa0, 0x2a, 0x6a, 0x3e, 0x02, 0x06, 0xf1, - 0x99, 0x38, 0x83, 0x78, 0x61, 0x8c, 0xef, 0xca, 0x61, 0x11, 0x5f, 0x53, 0x60, 0x4e, 0xd4, 0x58, - 0x23, 0xfd, 0x4d, 0xe2, 0xa2, 0x6b, 0x30, 0xed, 0x0d, 0xd9, 0x44, 0x8a, 0x0f, 0x7a, 0x42, 0x66, - 0x12, 0xee, 0xa6, 0xa6, 0xb3, 0x67, 0x61, 0x78, 0x15, 0x29, 0x4d, 0x1c, 0x2f, 0xc0, 0x41, 0x63, - 0xaa, 0xc2, 0xb9, 0x8e, 0x95, 0x4a, 0x6b, 0x80, 0x1d, 0x8b, 0x60, 0x06, 0xa1, 0x9a, 0x13, 0xfd, - 0x1b, 0xdc, 0x47, 0x31, 0xcd, 0x89, 0x82, 0x3d, 0xcc, 0xcb, 0xd5, 0x2f, 0x4e, 0x86, 0x83, 0xcd, - 0x38, 0xd8, 0x0d, 0x98, 0xd1, 0x5d, 0xa2, 0xf9, 0xc4, 0x68, 0xec, 0x8f, 0xd2, 0x39, 0x26, 0xc5, - 0x35, 0x83, 0x16, 0x38, 0x6a, 0x4c, 0x05, 0x26, 0xf9, 0x8a, 0xa9, 0x14, 0xc9, 0x96, 0xb9, 0xd7, - 0x4b, 0x9f, 0x84, 0xb2, 0x73, 0xcf, 0x0e, 0x7d, 0x2b, 0x8e, 0x24, 0xcc, 0x3e, 0xe5, 0x36, 0xad, - 0x8d, 0x79, 0x23, 0x96, 0xfa, 0x45, 0x64, 0xfe, 0xe0, 0x82, 0x6c, 0x35, 0x2b, 0xeb, 0x07, 0xb2, - 0x60, 0xba, 0xcf, 0xa6, 0x61, 0xac, 0xac, 0x61, 0xb1, 0x09, 0x95, 0xb3, 0xb7, 0x32, 0xcc, 0x38, - 0x20, 0x41, 0x05, 0x5f, 0x2a, 0x9c, 0x79, 0x03, 0x4d, 0x27, 0xb2, 0xe0, 0xbb, 0x1e, 0x14, 0xe2, - 0x08, 0x8e, 0xf6, 0xa1, 0xca, 0x63, 0xdf, 0x39, 0x97, 0x9d, 0x2e, 0x6e, 0xd3, 0x14, 0xdd, 0xbb, - 0x13, 0x61, 0xe3, 0x43, 0x2f, 0x15, 0x60, 0x99, 0x96, 0xfa, 0xf3, 0x93, 0xe1, 0x22, 0x15, 0x1c, - 0x3f, 0xfb, 0x29, 0x13, 0xa5, 0xd0, 0x53, 0x26, 0x1f, 0x83, 0xf2, 0x60, 0x5b, 0xf3, 0x82, 0x95, - 0x1a, 0x64, 0x1a, 0x2e, 0x77, 0x68, 0xe1, 0x83, 0x83, 0xda, 0xac, 0x20, 0xcd, 0x7e, 0x63, 0x5e, - 0x17, 0x0d, 0xe1, 0xac, 0xe7, 0x6b, 0x16, 0xe9, 0x9a, 0xc2, 0x5a, 0xe4, 0xf9, 0x5a, 0x7f, 0x50, - 0x20, 0x61, 0x30, 0x77, 0x3c, 0x4e, 0xa3, 0xc2, 0x59, 0xf8, 0xd1, 0x17, 0x14, 0x58, 0x62, 0xe5, - 0xf5, 0xa1, 0xef, 0xf0, 0xd4, 0xea, 0x11, 0xf1, 0xe3, 0xdf, 0xcf, 0x32, 0xed, 0xbe, 0x9b, 0x83, - 0x0f, 0xe7, 0x52, 0x42, 0x9f, 0x85, 0xf3, 0x96, 0xe6, 0xf9, 0x75, 0xdd, 0x37, 0x77, 0x4d, 0x7f, - 0x3f, 0xea, 0xc2, 0xf1, 0x9f, 0x75, 0x61, 0x0e, 0x1a, 0xb7, 0xb2, 0x90, 0xe1, 0x6c, 0x1a, 0xea, - 0x9f, 0x29, 0x80, 0xd2, 0x4b, 0x08, 0x59, 0x50, 0x31, 0xc8, 0x96, 0x36, 0xb4, 0xfc, 0x40, 0x04, - 0x28, 0x14, 0x02, 0x1e, 0xa1, 0x8c, 0x38, 0x73, 0x4b, 0xe0, 0xc5, 0x21, 0x05, 0xe4, 0xc0, 0xcc, - 0xbd, 0x6d, 0xd3, 0x27, 0x96, 0xe9, 0xf9, 0x82, 0x3b, 0x8f, 0x4b, 0x2e, 0x94, 0x79, 0x5e, 0x0d, - 0x10, 0xe3, 0x88, 0x86, 0xfa, 0xb3, 0x13, 0x50, 0x39, 0xc6, 0xeb, 0x79, 0x43, 0x40, 0x22, 0xf7, - 0x03, 0x15, 0x94, 0xc8, 0x38, 0x26, 0x32, 0x26, 0xce, 0x34, 0x53, 0xc8, 0x70, 0x06, 0x01, 0xf4, - 0x59, 0x38, 0x67, 0xda, 0x5b, 0xae, 0xe6, 0xf9, 0xee, 0x50, 0xf7, 0x87, 0x2e, 0x19, 0x27, 0x51, - 0x31, 0x33, 0x2d, 0xb4, 0x33, 0xd0, 0xe1, 0x4c, 0x22, 0x88, 0xc0, 0xf4, 0x3d, 0xc7, 0xdd, 0xa1, - 0xcc, 0x73, 0xb2, 0xf8, 0x23, 0x18, 0xaf, 0x32, 0x14, 0x11, 0xd7, 0xe4, 0xbf, 0x3d, 0x1c, 0xe0, - 0x56, 0xff, 0x48, 0x81, 0x32, 0x0f, 0x6e, 0x7b, 0x57, 0xe8, 0x55, 0xac, 0xab, 0xb9, 0x09, 0x38, - 0xa9, 0xba, 0xc3, 0x6a, 0xbc, 0x4b, 0xd4, 0x1d, 0xd6, 0xd7, 0x1c, 0x59, 0xe6, 0x8f, 0x26, 0xc4, - 0xb7, 0x30, 0x61, 0xa1, 0x0d, 0x67, 0x85, 0xd0, 0x7b, 0xcb, 0xdc, 0x22, 0x74, 0x75, 0xb5, 0xb4, - 0x7d, 0x4f, 0x44, 0x95, 0x33, 0xae, 0xdb, 0x4c, 0x83, 0x71, 0x56, 0x1b, 0xf4, 0x4f, 0x15, 0x7a, - 0x2c, 0xfb, 0xae, 0xa9, 0x8f, 0x95, 0xd5, 0x32, 0xec, 0xdb, 0xca, 0x1a, 0x47, 0xc6, 0xad, 0x05, - 0x1b, 0xd1, 0xf9, 0xcc, 0x4a, 0x1f, 0x1c, 0xd4, 0x6a, 0x19, 0xa6, 0xc8, 0xc0, 0x74, 0x4e, 0x07, - 0xf6, 0xf3, 0xdf, 0x3f, 0xb2, 0x0a, 0x33, 0xe3, 0x07, 0x3d, 0x46, 0x37, 0xa0, 0xec, 0xe9, 0xce, - 0x80, 0x1c, 0x27, 0x4f, 0x6f, 0x38, 0xc0, 0x5d, 0xda, 0x12, 0x73, 0x04, 0xcb, 0x6f, 0xc1, 0xac, - 0xdc, 0xf3, 0x0c, 0x6b, 0x44, 0x4b, 0xb6, 0x46, 0x1c, 0xfb, 0xb2, 0x4e, 0xb6, 0x5e, 0xfc, 0x5e, - 0x09, 0xc4, 0xcb, 0x55, 0x23, 0x5c, 0x56, 0x98, 0x41, 0x8e, 0xbb, 0x31, 0x5e, 0xeb, 0x4a, 0x3e, - 0xd6, 0x1b, 0x8d, 0x81, 0x9c, 0xe6, 0x0e, 0xd9, 0x30, 0x65, 0x69, 0x9b, 0xc4, 0x0a, 0xde, 0x31, - 0xba, 0x56, 0xfc, 0xa1, 0x1d, 0x9e, 0x59, 0xd6, 0x4b, 0x98, 0xb4, 0x79, 0x21, 0x16, 0x54, 0x96, - 0x9f, 0x83, 0xaa, 0x54, 0xed, 0x58, 0x06, 0xa0, 0xaf, 0x28, 0x70, 0x21, 0x58, 0x12, 0xf1, 0xdc, - 0x18, 0xe8, 0x0a, 0x54, 0xb4, 0x81, 0xc9, 0x6c, 0xa2, 0xb2, 0x55, 0xb9, 0xde, 0x69, 0xb3, 0x32, - 0x1c, 0x42, 0xd1, 0x87, 0xa1, 0x12, 0xcc, 0x93, 0x10, 0x90, 0xc2, 0x2d, 0x1e, 0x5e, 0xe6, 0x84, - 0x35, 0xd0, 0x07, 0xa4, 0xac, 0x7d, 0xe5, 0xe8, 0x44, 0x0b, 0x09, 0xf3, 0x7b, 0x5f, 0xf5, 0xcb, - 0x13, 0x30, 0xc7, 0x0d, 0x09, 0x0d, 0xd3, 0x36, 0x4c, 0xbb, 0xf7, 0x08, 0x58, 0x69, 0xec, 0xbd, - 0xd4, 0xd2, 0x49, 0xbd, 0x97, 0x7a, 0x13, 0xa6, 0xde, 0xa6, 0xdb, 0x3a, 0x58, 0x0e, 0x23, 0xed, - 0xae, 0x70, 0xae, 0x19, 0x47, 0xf0, 0xb0, 0x40, 0x81, 0x3c, 0xe9, 0xd5, 0xda, 0x31, 0xc2, 0x9c, - 0x63, 0x23, 0x1b, 0xe6, 0xde, 0x9c, 0xcd, 0x7e, 0xb2, 0x56, 0xfd, 0x0f, 0x0a, 0x2c, 0xc6, 0x5a, - 0x3c, 0x82, 0x93, 0x60, 0x2b, 0x7e, 0x12, 0xd4, 0xc7, 0xfe, 0xca, 0x9c, 0x13, 0xe1, 0x39, 0x38, - 0x9f, 0x39, 0x18, 0x0f, 0x17, 0xa0, 0xd4, 0x6f, 0x96, 0x60, 0xb2, 0x4b, 0x88, 0xf1, 0x08, 0x56, - 0xe6, 0x9b, 0xb1, 0x43, 0xfe, 0x93, 0x85, 0x5f, 0xd3, 0xca, 0x33, 0x8f, 0x6c, 0x25, 0xcc, 0x23, - 0x9f, 0x2a, 0x4c, 0xe1, 0x68, 0xdb, 0xc8, 0xaf, 0x94, 0x00, 0x68, 0x35, 0xfe, 0xc2, 0xa6, 0xf0, - 0x91, 0x8c, 0xde, 0x60, 0x9e, 0x79, 0xa7, 0xbc, 0x9c, 0xac, 0x86, 0x2f, 0x25, 0x4e, 0x44, 0xc6, - 0xf7, 0xf8, 0x2b, 0x89, 0x71, 0x6e, 0x31, 0x79, 0x42, 0xdc, 0x42, 0xfd, 0x7b, 0x0a, 0xb0, 0x7c, - 0xfa, 0xad, 0xf5, 0x2e, 0x7a, 0x16, 0xe6, 0x4c, 0x7e, 0xb5, 0xd9, 0x92, 0x33, 0xc7, 0xb1, 0x0b, - 0x98, 0xb6, 0x0c, 0xc0, 0xf1, 0x7a, 0xa8, 0x2f, 0x8d, 0xeb, 0x18, 0xef, 0xdc, 0x8a, 0x7e, 0x3c, - 0x94, 0x3f, 0x7c, 0xbf, 0x04, 0x67, 0x12, 0x75, 0x47, 0xd0, 0x3f, 0x4e, 0x87, 0xdb, 0x4a, 0xe9, - 0x7a, 0x27, 0x4e, 0x3f, 0x5d, 0x6f, 0x98, 0x39, 0x77, 0xf2, 0x74, 0x33, 0xe7, 0xfe, 0xa1, 0x02, - 0xec, 0xe1, 0xd4, 0x47, 0xc0, 0x78, 0xff, 0xff, 0x38, 0xe3, 0xfd, 0x44, 0xd1, 0x85, 0x93, 0xc3, - 0x6f, 0x7f, 0xb3, 0x04, 0x2c, 0x37, 0xbe, 0xf0, 0xe4, 0x90, 0x9c, 0x23, 0x94, 0x1c, 0xe7, 0x88, - 0xcb, 0xc2, 0xb7, 0x22, 0x61, 0x25, 0x94, 0xfc, 0x2b, 0x3e, 0x2c, 0xb9, 0x4f, 0x4c, 0xc4, 0xd9, - 0x48, 0xda, 0x85, 0x02, 0xdd, 0x87, 0x39, 0x6f, 0xdb, 0x71, 0xfc, 0x40, 0x65, 0x17, 0x73, 0x57, - 0x2f, 0xec, 0xd2, 0x1c, 0x7c, 0x0a, 0xdf, 0x98, 0x5d, 0x19, 0x37, 0x8e, 0x93, 0x42, 0x2b, 0x00, - 0x9b, 0x96, 0xa3, 0xef, 0x34, 0xdb, 0x2d, 0x1c, 0x38, 0xbe, 0x32, 0xf7, 0xab, 0x46, 0x58, 0x8a, - 0xa5, 0x1a, 0xea, 0x1f, 0x28, 0x7c, 0xb4, 0x8e, 0xb1, 0xad, 0x1e, 0x21, 0x97, 0xfc, 0x60, 0x82, - 0x4b, 0xe6, 0xbd, 0x27, 0xfb, 0xbb, 0xe2, 0x2b, 0xc2, 0x17, 0x10, 0x06, 0x30, 0x67, 0xc9, 0x4f, - 0x26, 0x88, 0x65, 0x5c, 0xe8, 0xb5, 0x85, 0x30, 0xeb, 0x5d, 0xac, 0x18, 0xc7, 0x09, 0x50, 0x56, - 0x1a, 0x74, 0x9e, 0x3f, 0xff, 0xc8, 0x7d, 0x57, 0xd8, 0x8c, 0x75, 0x64, 0x00, 0x8e, 0xd7, 0x53, - 0xff, 0x56, 0x09, 0x2e, 0xf2, 0xbe, 0x33, 0xe7, 0xf3, 0x16, 0x19, 0x10, 0xdb, 0x20, 0xb6, 0xbe, - 0xcf, 0xc4, 0x65, 0xc3, 0xe9, 0xa1, 0xbf, 0xa4, 0x40, 0x25, 0xb8, 0x78, 0x12, 0x1f, 0xf2, 0x7a, - 0xf1, 0xe7, 0x2e, 0x73, 0xa8, 0x84, 0xd7, 0x5e, 0x3c, 0x01, 0x9b, 0xf8, 0x85, 0x43, 0xc2, 0xe8, - 0x1e, 0x94, 0x07, 0xae, 0xb3, 0x19, 0xa8, 0x55, 0x77, 0x4f, 0xbc, 0x07, 0x1d, 0x8a, 0x9d, 0x6f, - 0x4f, 0xf6, 0x2f, 0xe6, 0xf4, 0x54, 0x0c, 0x1f, 0x18, 0xa9, 0xe7, 0xe8, 0xa9, 0x64, 0x9e, 0xe1, - 0xd0, 0x7e, 0x92, 0x4a, 0xe1, 0x74, 0x1b, 0xd4, 0x87, 0xf7, 0xe5, 0x38, 0x08, 0x5f, 0x81, 0xf7, - 0x4b, 0x08, 0x57, 0xf7, 0x74, 0xe2, 0x79, 0x4d, 0x6d, 0xa0, 0xe9, 0x54, 0xa5, 0x64, 0x81, 0xb7, - 0xdc, 0xd0, 0x7b, 0x0c, 0x94, 0xff, 0x57, 0x81, 0x9a, 0x84, 0x33, 0xe6, 0x00, 0x15, 0xb0, 0x9a, - 0xaf, 0x2b, 0x50, 0xd5, 0x6c, 0xdb, 0xf1, 0x35, 0xf9, 0xde, 0xd1, 0x18, 0x73, 0x6e, 0xb2, 0x48, - 0xad, 0xd4, 0x23, 0x32, 0x09, 0x0f, 0x03, 0x09, 0x82, 0xe5, 0xde, 0x2c, 0x7f, 0x0a, 0x16, 0x92, - 0xad, 0x8e, 0xa5, 0x3c, 0x36, 0xe1, 0x82, 0xd4, 0x2b, 0x76, 0x97, 0xd1, 0xdc, 0x26, 0xfa, 0x8e, - 0x77, 0x9c, 0x61, 0x6c, 0x50, 0xf9, 0x3b, 0x44, 0x22, 0xe2, 0x20, 0xa9, 0xba, 0xf7, 0x14, 0x4c, - 0xef, 0x9a, 0x9e, 0x19, 0xc4, 0xd3, 0x4b, 0x38, 0xee, 0xf2, 0x62, 0x1c, 0xc0, 0xd5, 0x97, 0xe1, - 0xac, 0x8c, 0x83, 0x71, 0xdc, 0xf5, 0xee, 0x71, 0x7a, 0xb1, 0x06, 0x97, 0x25, 0x0c, 0x99, 0xc1, - 0x80, 0xc7, 0x41, 0xf7, 0xf5, 0x4a, 0xc0, 0xf0, 0x44, 0xc4, 0xca, 0xef, 0x28, 0xf0, 0x38, 0xc9, - 0x5b, 0x75, 0x82, 0x69, 0xbc, 0x36, 0xe6, 0xb2, 0xc8, 0x5d, 0xd5, 0x22, 0xf7, 0x54, 0x1e, 0x18, - 0xe7, 0xf7, 0x0c, 0xed, 0x03, 0x78, 0xe1, 0x94, 0x8c, 0xe3, 0x79, 0x9c, 0x39, 0xc7, 0x22, 0xd1, - 0x72, 0xf8, 0x1b, 0x4b, 0xc4, 0xd0, 0xdb, 0x50, 0xf1, 0xc4, 0x4c, 0x8e, 0x13, 0xab, 0x9c, 0xb1, - 0x30, 0x84, 0x73, 0xa5, 0xf8, 0x85, 0x43, 0x32, 0xe8, 0x57, 0x15, 0x38, 0x67, 0x65, 0x6c, 0x2e, - 0x21, 0x21, 0x74, 0x4f, 0x61, 0xdf, 0x72, 0x0b, 0x76, 0x16, 0x04, 0x67, 0x76, 0x05, 0xfd, 0x7a, - 0x6e, 0x60, 0x6c, 0xb9, 0xf8, 0xeb, 0x31, 0x0f, 0x5b, 0xfb, 0xc7, 0x8f, 0x91, 0x45, 0x3f, 0x05, - 0x55, 0x27, 0xe2, 0x08, 0x22, 0x92, 0xf9, 0xd3, 0x63, 0x76, 0x4e, 0xe2, 0x31, 0xfc, 0x3e, 0x50, - 0x2a, 0xc0, 0x32, 0x3d, 0xf4, 0x55, 0x05, 0x90, 0x91, 0x3a, 0x37, 0xc4, 0x95, 0xe4, 0x2b, 0x27, - 0x7e, 0x38, 0xf2, 0x1b, 0x90, 0x74, 0x39, 0xce, 0xe8, 0x84, 0xfa, 0x95, 0x69, 0x2e, 0xcc, 0x33, - 0x1b, 0xf4, 0x26, 0x4c, 0x6d, 0x32, 0x65, 0x58, 0x70, 0x81, 0xc2, 0x9a, 0x37, 0x57, 0xa9, 0xb9, - 0xa6, 0xca, 0xff, 0xc7, 0x02, 0x33, 0x7a, 0x03, 0x26, 0x0c, 0x3b, 0x78, 0x91, 0xec, 0x85, 0x31, - 0x34, 0xc1, 0xc8, 0x6f, 0x9d, 0x6e, 0x1c, 0x8a, 0x14, 0xd9, 0x50, 0xb1, 0x85, 0xfc, 0x2b, 0xb6, - 0x69, 0xe1, 0xb7, 0xbe, 0x43, 0x39, 0x3a, 0x94, 0xde, 0x83, 0x12, 0x1c, 0xd2, 0xa0, 0xf4, 0x12, - 0x06, 0xb0, 0xc2, 0xf4, 0x42, 0xbd, 0xf6, 0x28, 0xa3, 0x43, 0x47, 0xd6, 0x52, 0xcb, 0xa3, 0x6b, - 0xa9, 0x73, 0xb9, 0x1a, 0x2a, 0x81, 0x29, 0x9f, 0xbf, 0xef, 0x3b, 0x55, 0xdc, 0x0d, 0x89, 0xf6, - 0x9f, 0xbd, 0xff, 0x1b, 0x09, 0xdd, 0xe2, 0x71, 0x60, 0x81, 0x9c, 0x2e, 0x2c, 0xfe, 0x0c, 0xb9, - 0x58, 0xf4, 0x85, 0x17, 0x16, 0x7f, 0x4f, 0x85, 0x2f, 0x2c, 0xfe, 0x3f, 0x16, 0x98, 0xd1, 0x5b, - 0x54, 0xf1, 0xe2, 0x47, 0x9c, 0xc8, 0xa2, 0xf7, 0xf2, 0x98, 0x5b, 0xcb, 0x0b, 0x3c, 0xdf, 0xf9, - 0x2f, 0x1c, 0xe2, 0x47, 0x9b, 0x30, 0x2d, 0x8c, 0x1c, 0x22, 0x05, 0xc0, 0x0b, 0x63, 0x24, 0xc5, - 0x0f, 0x9e, 0x08, 0xe2, 0x61, 0xb8, 0x01, 0x62, 0xf5, 0xdf, 0xcd, 0x70, 0xf3, 0x94, 0x70, 0x21, - 0xd8, 0x82, 0x4a, 0x80, 0x6e, 0x9c, 0x28, 0x8c, 0xe0, 0x89, 0x0f, 0xfe, 0x69, 0xc1, 0x2f, 0x1c, - 0xe2, 0x46, 0xcd, 0xac, 0x80, 0x97, 0x28, 0x21, 0xea, 0x68, 0xc1, 0x2e, 0x71, 0x0f, 0xb7, 0x89, - 0x47, 0xe1, 0xe1, 0x96, 0xed, 0x62, 0x31, 0x59, 0xc8, 0xc5, 0xe2, 0x45, 0x38, 0x13, 0x38, 0xa0, - 0x19, 0x84, 0x5d, 0xf5, 0x08, 0xd7, 0x6c, 0x16, 0x55, 0xda, 0x8c, 0x83, 0x70, 0xb2, 0x2e, 0xfa, - 0x3d, 0x05, 0x2a, 0xba, 0x10, 0x60, 0xc4, 0xbe, 0xba, 0x35, 0x9e, 0x0d, 0x73, 0x25, 0x90, 0x87, - 0xb8, 0x38, 0x7d, 0x37, 0xe0, 0x11, 0x41, 0xf1, 0x09, 0xdd, 0xc1, 0x85, 0xbd, 0x46, 0xff, 0x9a, - 0x2a, 0x0b, 0x16, 0x7b, 0x78, 0x84, 0x05, 0xe9, 0x71, 0x9f, 0xf1, 0xdb, 0x63, 0x7e, 0x45, 0x3d, - 0xc2, 0xc8, 0x3f, 0xe4, 0xf5, 0x50, 0x2f, 0x88, 0x20, 0x27, 0xf4, 0x2d, 0x72, 0xf7, 0xd1, 0xdf, - 0x56, 0xe0, 0xfd, 0xdc, 0x51, 0xbf, 0x49, 0x05, 0x04, 0xf6, 0x70, 0x0f, 0x89, 0x5e, 0x0a, 0x8a, - 0x1c, 0x42, 0x2a, 0xc7, 0x76, 0x08, 0xb9, 0x72, 0x78, 0x50, 0x7b, 0x7f, 0x73, 0x04, 0xdc, 0x78, - 0xa4, 0x1e, 0x2c, 0xef, 0xc0, 0x5c, 0x6c, 0xb2, 0x4f, 0xf3, 0xd6, 0x72, 0xd9, 0x86, 0x85, 0xe4, - 0x9c, 0x9c, 0xea, 0x2d, 0xe9, 0x4d, 0x98, 0x09, 0x0f, 0x0b, 0x74, 0x51, 0x22, 0x14, 0x1d, 0xe6, - 0x37, 0xc9, 0x3e, 0xa7, 0x5a, 0x8b, 0xe9, 0x7a, 0x5c, 0xd9, 0xbf, 0x4b, 0x0b, 0x04, 0x42, 0xf5, - 0x3b, 0xc2, 0x92, 0x73, 0x87, 0xf4, 0x07, 0x96, 0xe6, 0x93, 0x77, 0xff, 0xd5, 0x87, 0xfa, 0xdf, - 0x15, 0xce, 0xf3, 0xc5, 0xa3, 0x64, 0x1a, 0x54, 0xfb, 0x3c, 0x81, 0x20, 0x8b, 0x28, 0x55, 0x8a, - 0xc7, 0xb2, 0xae, 0x45, 0x68, 0xb0, 0x8c, 0x13, 0xdd, 0x4b, 0x3f, 0x9b, 0x77, 0x6d, 0xbc, 0xc3, - 0x79, 0xe4, 0xd7, 0xf3, 0x50, 0xba, 0x8d, 0xfc, 0xe2, 0x98, 0x72, 0xf4, 0x8b, 0x63, 0x0f, 0x7f, - 0x87, 0x4a, 0xfd, 0xd6, 0x04, 0x64, 0xbe, 0xf9, 0x80, 0x54, 0x98, 0xe2, 0x11, 0x32, 0xf2, 0x7b, - 0x82, 0x3c, 0x7c, 0x06, 0x0b, 0x08, 0x72, 0xe1, 0x9c, 0x88, 0x3f, 0xb9, 0x49, 0xf6, 0xa3, 0x97, - 0xec, 0xc4, 0xd4, 0x8f, 0xee, 0x89, 0xce, 0x12, 0x8b, 0x75, 0x13, 0x98, 0x70, 0x26, 0x6e, 0x74, - 0x9b, 0x87, 0x83, 0xd9, 0xc6, 0x1d, 0x67, 0x87, 0xd8, 0x11, 0x77, 0x10, 0xd1, 0xad, 0x8f, 0x07, - 0xe1, 0x60, 0xa9, 0x0a, 0x38, 0xbb, 0x1d, 0xda, 0x05, 0xd4, 0xd7, 0xf6, 0x92, 0xd8, 0xc6, 0x48, - 0x37, 0xbf, 0x96, 0xc2, 0x86, 0x33, 0x28, 0xd0, 0x03, 0x54, 0xd3, 0x75, 0x32, 0xf0, 0x89, 0xc1, - 0x87, 0x35, 0xb0, 0x2f, 0xb3, 0x03, 0xb4, 0x1e, 0x07, 0xe1, 0x64, 0x5d, 0x16, 0x0a, 0xc2, 0x54, - 0xe2, 0x77, 0x87, 0xcb, 0x12, 0xeb, 0xea, 0xe9, 0x86, 0x82, 0x70, 0x12, 0x47, 0xdf, 0x67, 0xbe, - 0x0e, 0x17, 0x58, 0xb5, 0xba, 0xc1, 0xb4, 0x60, 0x8f, 0x18, 0x75, 0xc3, 0x60, 0x71, 0x99, 0xe3, - 0x3e, 0x04, 0xa8, 0xfe, 0x2b, 0x05, 0xce, 0x30, 0xdc, 0xcd, 0x3a, 0x16, 0x36, 0x3a, 0x7a, 0x2a, - 0x70, 0x3f, 0x54, 0x8e, 0x75, 0x25, 0xe9, 0x87, 0x7a, 0x91, 0x37, 0x70, 0x09, 0x13, 0x8b, 0x34, - 0xcb, 0x0b, 0x5a, 0xc6, 0x1c, 0x53, 0x5d, 0x40, 0x96, 0xe6, 0xf9, 0x4d, 0xa7, 0x3f, 0xb0, 0x48, - 0x70, 0x12, 0x16, 0xc9, 0x84, 0x73, 0x28, 0xf2, 0xd2, 0xc4, 0x31, 0xe1, 0x0c, 0xec, 0xea, 0xcf, - 0x29, 0xb0, 0x90, 0xec, 0x1c, 0xda, 0x85, 0x8a, 0x2b, 0x3a, 0x28, 0x56, 0xda, 0xad, 0xc2, 0x13, - 0x95, 0xf1, 0xd1, 0xe2, 0xbd, 0x15, 0xf1, 0x0b, 0x87, 0xb4, 0xd4, 0x7f, 0xa8, 0xc0, 0x52, 0x5e, - 0x23, 0xf4, 0x15, 0x05, 0x2e, 0xe8, 0x91, 0xbc, 0x50, 0x1f, 0xfa, 0xdb, 0x8e, 0x6b, 0xfa, 0x26, - 0x09, 0xde, 0xff, 0x6c, 0x16, 0xef, 0x63, 0x38, 0x93, 0x3c, 0xf1, 0x4a, 0x33, 0x93, 0x0c, 0xce, - 0x21, 0xcf, 0x1c, 0xf1, 0x18, 0x9e, 0x77, 0x89, 0x23, 0x1e, 0xeb, 0x6b, 0xce, 0x35, 0xe0, 0x1f, - 0x2a, 0xb0, 0x98, 0xca, 0x07, 0x34, 0x92, 0x1b, 0xd7, 0x23, 0xbb, 0xdd, 0xfa, 0x40, 0xf2, 0x49, - 0xc5, 0x6a, 0x66, 0x9a, 0xb0, 0x57, 0x61, 0x2e, 0x76, 0x0b, 0x18, 0xc6, 0x82, 0x2b, 0x99, 0xb1, - 0xe0, 0x72, 0xa8, 0x77, 0xe9, 0xc8, 0x50, 0xef, 0x6f, 0xce, 0x8b, 0xe9, 0x66, 0x76, 0xa2, 0x37, - 0x61, 0x8a, 0x05, 0x64, 0x07, 0xab, 0xf0, 0xf9, 0xc2, 0x81, 0xde, 0x1e, 0x3f, 0x7b, 0xf9, 0xff, - 0x58, 0x60, 0x45, 0x2d, 0x58, 0xd0, 0x2d, 0x67, 0x68, 0x74, 0x5c, 0x67, 0xcb, 0xb4, 0xc8, 0x7a, - 0x74, 0xcc, 0x87, 0x19, 0x65, 0x9a, 0x09, 0x38, 0x4e, 0xb5, 0x40, 0x98, 0x5b, 0x9a, 0x38, 0xd7, - 0x7d, 0xb6, 0xe0, 0x6d, 0x38, 0xcf, 0xd9, 0x19, 0x5a, 0x98, 0xde, 0x06, 0x20, 0xc1, 0xc4, 0x05, - 0x6e, 0xbb, 0x2f, 0x16, 0xcb, 0x95, 0x13, 0x4e, 0x7f, 0x70, 0x3c, 0x85, 0x45, 0x1e, 0x96, 0x88, - 0x20, 0x17, 0xaa, 0xdb, 0xd1, 0x8b, 0x93, 0xc2, 0xec, 0xf3, 0xd2, 0x98, 0xaf, 0x5d, 0x72, 0xa9, - 0x50, 0x2a, 0xc0, 0x32, 0x11, 0xe4, 0x02, 0x44, 0x4a, 0xfd, 0x38, 0x2f, 0x94, 0x45, 0xd6, 0x82, - 0xe8, 0x3b, 0xa3, 0x32, 0x2c, 0x51, 0xa1, 0x34, 0xed, 0x30, 0xa3, 0xc2, 0x38, 0x76, 0xa2, 0x28, - 0x2f, 0x43, 0x44, 0x33, 0x2a, 0xc3, 0x12, 0x15, 0x3a, 0xb6, 0xfd, 0x28, 0x8b, 0x86, 0xd0, 0xfe, - 0x5e, 0x1a, 0x33, 0x9b, 0x89, 0x90, 0xb8, 0xa3, 0x02, 0x2c, 0x13, 0x41, 0x36, 0x40, 0x3f, 0x4c, - 0xae, 0x21, 0xcc, 0x47, 0x85, 0xbe, 0x33, 0x4a, 0xd1, 0xc1, 0xef, 0x2e, 0xa2, 0xdf, 0x58, 0xa2, - 0x80, 0xde, 0x92, 0x8c, 0x94, 0x50, 0x5c, 0x6f, 0x19, 0xc9, 0x40, 0xf9, 0xf1, 0x48, 0x7c, 0xaf, - 0xb2, 0xfd, 0xfa, 0x84, 0x24, 0xba, 0x3f, 0x38, 0xa8, 0xcd, 0x32, 0x1e, 0x92, 0x12, 0xe5, 0xa3, - 0xbb, 0xfb, 0xd9, 0xa3, 0xee, 0xee, 0xd1, 0x75, 0x58, 0xf4, 0x64, 0xff, 0x38, 0xc6, 0x18, 0xe6, - 0x58, 0x93, 0x30, 0x19, 0x4b, 0x37, 0x59, 0x01, 0xa7, 0xdb, 0x70, 0xc6, 0x47, 0x0c, 0xd6, 0x7e, - 0x5e, 0x66, 0x7c, 0xbc, 0x0c, 0x87, 0x50, 0xb4, 0x0b, 0xb3, 0x9e, 0xe4, 0x2d, 0x20, 0x5e, 0x33, - 0x18, 0xc3, 0xb2, 0x28, 0x3c, 0x05, 0x58, 0x90, 0xbf, 0x5c, 0x82, 0x63, 0x74, 0xd0, 0x67, 0x21, - 0x7a, 0x9a, 0x7f, 0x69, 0xa1, 0xb8, 0x13, 0x77, 0x76, 0x42, 0x95, 0x48, 0x37, 0x0b, 0x40, 0x1e, - 0x8e, 0xe8, 0xa1, 0x61, 0x3c, 0x76, 0x6a, 0xf1, 0x44, 0xe2, 0x45, 0xc2, 0x3b, 0xe0, 0xbc, 0xb8, - 0x29, 0xd4, 0x84, 0x45, 0xb2, 0x37, 0x70, 0xbc, 0xa1, 0x4b, 0x58, 0x2e, 0x27, 0x36, 0x3d, 0x28, - 0x32, 0x3d, 0xae, 0x26, 0x81, 0x38, 0x5d, 0x1f, 0x7d, 0x49, 0x81, 0x05, 0xfe, 0x18, 0x04, 0x95, - 0xfa, 0x1c, 0x9b, 0xd8, 0xbe, 0xb7, 0x74, 0xb6, 0x78, 0x52, 0xb3, 0x6e, 0x02, 0x97, 0x50, 0xe8, - 0x12, 0xa5, 0x38, 0x45, 0x53, 0xfd, 0x47, 0x55, 0xa8, 0x4a, 0x62, 0xfb, 0x8f, 0x22, 0xea, 0xd7, - 0x87, 0xaa, 0xee, 0xd8, 0x9e, 0xef, 0x6a, 0x52, 0xa4, 0xf3, 0x98, 0x34, 0xc3, 0x69, 0x6c, 0x46, - 0x98, 0xb1, 0x4c, 0x86, 0x32, 0x9c, 0xd0, 0x52, 0x3d, 0x71, 0x02, 0x96, 0xea, 0x90, 0xe1, 0x64, - 0x58, 0xab, 0x9f, 0x01, 0x08, 0xce, 0xad, 0xf0, 0x3d, 0xf5, 0x30, 0x1b, 0x6d, 0xdb, 0xbb, 0x11, - 0xc2, 0xb0, 0x54, 0x0f, 0xdd, 0x87, 0x39, 0x4b, 0xce, 0x44, 0x29, 0x0e, 0xd5, 0x42, 0x5e, 0x57, - 0xb1, 0x94, 0x96, 0xdc, 0x87, 0x27, 0x56, 0x84, 0xe3, 0xa4, 0xe8, 0x32, 0xb0, 0x82, 0xec, 0xa9, - 0x63, 0xdd, 0xba, 0x84, 0x39, 0x58, 0xa3, 0x65, 0x10, 0x16, 0x79, 0x58, 0x22, 0x92, 0x63, 0x1a, - 0x9f, 0x2e, 0x64, 0x1a, 0x1f, 0xc2, 0x59, 0x97, 0xf8, 0xee, 0x7e, 0x73, 0x5f, 0x67, 0xcf, 0x2d, - 0xbb, 0x3e, 0x53, 0xd8, 0x2a, 0xc5, 0x02, 0x09, 0x71, 0x1a, 0x15, 0xce, 0xc2, 0x1f, 0x63, 0xd8, - 0x33, 0x47, 0x32, 0xec, 0x8f, 0x43, 0xd5, 0x27, 0xfa, 0xb6, 0x6d, 0xea, 0x9a, 0xd5, 0x6e, 0x89, - 0x64, 0x1f, 0x11, 0xef, 0x89, 0x40, 0x58, 0xae, 0x87, 0x1a, 0x30, 0x31, 0x34, 0x0d, 0x71, 0x6a, - 0xfd, 0x58, 0xa8, 0x00, 0xb7, 0x5b, 0x0f, 0x0e, 0x6a, 0xef, 0x8d, 0x6c, 0xcd, 0xe1, 0x57, 0x5d, - 0x1d, 0xec, 0xf4, 0xae, 0xfa, 0xfb, 0x03, 0xe2, 0xad, 0x6c, 0xb4, 0x5b, 0x98, 0x36, 0xce, 0xba, - 0x36, 0x98, 0x3d, 0xc6, 0xb5, 0xc1, 0x57, 0x15, 0x38, 0xab, 0x25, 0x75, 0x77, 0xe2, 0x2d, 0xcd, - 0x15, 0xe7, 0xfe, 0xd9, 0xf6, 0x80, 0x28, 0xdd, 0x58, 0x3d, 0x4d, 0x0e, 0x67, 0xf5, 0x81, 0xaa, - 0xe9, 0x7d, 0xb3, 0x17, 0x26, 0x7c, 0x15, 0xb3, 0x3e, 0x5f, 0x4c, 0x4d, 0x5f, 0x4b, 0x61, 0xc2, - 0x19, 0xd8, 0xd1, 0x3d, 0xa8, 0xea, 0x91, 0x4e, 0x2c, 0x4e, 0xde, 0xd6, 0x49, 0x28, 0xe5, 0x22, - 0xe1, 0x80, 0xa4, 0x70, 0xcb, 0x94, 0xd4, 0x3f, 0x56, 0x84, 0x1a, 0xf5, 0x08, 0x2d, 0xcb, 0xa7, - 0x6d, 0x86, 0x52, 0x77, 0x21, 0x75, 0x68, 0xa1, 0x4d, 0x98, 0xa6, 0x18, 0x5a, 0xeb, 0x5d, 0xf1, - 0x55, 0x2f, 0x14, 0x3b, 0x1b, 0x18, 0x0a, 0xae, 0x92, 0x8a, 0x1f, 0x38, 0x40, 0xac, 0xde, 0x02, - 0x88, 0x0e, 0xfc, 0xb1, 0x6d, 0xfe, 0x3f, 0x2c, 0xc3, 0xf9, 0x71, 0x3d, 0xa2, 0x58, 0xe6, 0x5a, - 0xf6, 0xb8, 0x58, 0x7d, 0xcb, 0x27, 0xee, 0xed, 0xdb, 0x6b, 0xe1, 0xdb, 0x4b, 0x05, 0x53, 0xe7, - 0x46, 0x6f, 0xd3, 0xa5, 0x30, 0xe2, 0x1c, 0x4a, 0x4c, 0xd8, 0x11, 0xaf, 0xb8, 0x60, 0xcd, 0x27, - 0x8d, 0xa1, 0xeb, 0xf9, 0x22, 0x0e, 0x89, 0x0b, 0x3b, 0x49, 0x20, 0x4e, 0xd7, 0x4f, 0x22, 0xe1, - 0x0f, 0x9d, 0x4d, 0xb2, 0x87, 0xe0, 0x53, 0x48, 0xf8, 0x6b, 0x67, 0xe9, 0xfa, 0x32, 0x92, 0xf0, - 0xe1, 0x78, 0x76, 0x22, 0x26, 0x90, 0x44, 0xaf, 0xca, 0xa7, 0xeb, 0x23, 0x03, 0x9e, 0x74, 0x89, - 0xee, 0xf4, 0xfb, 0xc4, 0x36, 0x78, 0xce, 0x73, 0xcd, 0xed, 0x99, 0xf6, 0x35, 0x57, 0x63, 0x15, - 0xc5, 0xeb, 0xf4, 0x97, 0x0f, 0x0f, 0x6a, 0x4f, 0xe2, 0x23, 0xea, 0xe1, 0x23, 0xb1, 0xa0, 0x3e, - 0x9c, 0x19, 0xb2, 0xbc, 0x8c, 0x6e, 0xdb, 0xf6, 0x89, 0xbb, 0xab, 0x59, 0x05, 0x9f, 0xef, 0x63, - 0x1c, 0x79, 0x23, 0x8e, 0x0a, 0x27, 0x71, 0xa3, 0x7d, 0x7a, 0xd8, 0x89, 0xee, 0x48, 0x24, 0x2b, - 0xc5, 0x73, 0x3b, 0xe3, 0x34, 0x3a, 0x9c, 0x45, 0x43, 0xfd, 0xaa, 0x02, 0xc2, 0xc1, 0x01, 0x3d, - 0x19, 0x33, 0x44, 0x55, 0x12, 0x46, 0xa8, 0x27, 0x85, 0x13, 0x76, 0x29, 0x82, 0x4a, 0x0e, 0xd8, - 0x1f, 0x94, 0x02, 0xdc, 0x66, 0x22, 0x16, 0xc4, 0x31, 0x4b, 0x99, 0x4d, 0x3f, 0x04, 0x33, 0xc4, - 0xd6, 0xdd, 0xfd, 0x41, 0x24, 0x46, 0xcd, 0xf1, 0x7c, 0x36, 0xa2, 0x10, 0x47, 0x70, 0xf5, 0xdf, - 0x2a, 0x20, 0x30, 0xb0, 0x8c, 0xba, 0x23, 0xe5, 0x63, 0x7d, 0xe8, 0x6d, 0x8d, 0x94, 0x11, 0x76, - 0x22, 0x2f, 0x23, 0xec, 0x69, 0xa5, 0x57, 0xfd, 0x1d, 0x05, 0x92, 0xaf, 0x71, 0xa3, 0x0f, 0xc0, - 0xb4, 0x88, 0x9e, 0x17, 0x31, 0xb8, 0x3c, 0xe8, 0x82, 0x17, 0xe1, 0x00, 0x16, 0xd7, 0xd3, 0xc6, - 0x08, 0xb6, 0xcd, 0x0e, 0x7c, 0x3c, 0x5a, 0x4f, 0x53, 0xbf, 0x3b, 0x0f, 0x53, 0x3c, 0xde, 0x9b, - 0xf2, 0xb4, 0x0c, 0xef, 0xde, 0x9b, 0xc5, 0x23, 0xca, 0x0b, 0x38, 0xf1, 0xc6, 0x92, 0xff, 0x95, - 0x8e, 0x4c, 0xfe, 0x87, 0x79, 0xb6, 0xe7, 0x31, 0x6c, 0x73, 0x4d, 0xdc, 0x16, 0x0f, 0x0c, 0x89, - 0x4c, 0xcf, 0xc8, 0x8f, 0x19, 0xad, 0x26, 0x8b, 0x8b, 0x0b, 0x7c, 0x00, 0x24, 0xd3, 0xd5, 0xfc, - 0x11, 0x66, 0xab, 0x28, 0xc0, 0xb6, 0x5c, 0xfc, 0xf6, 0x54, 0x0c, 0xf9, 0x08, 0x01, 0xb6, 0xe1, - 0x46, 0x9a, 0xca, 0xdd, 0x48, 0x5b, 0x30, 0x2d, 0xb6, 0x82, 0x60, 0x8e, 0x2f, 0x8c, 0x91, 0xc9, - 0x59, 0x4a, 0xc7, 0xc2, 0x0b, 0x70, 0x80, 0x9c, 0x9e, 0xb8, 0x7d, 0x6d, 0xcf, 0xec, 0x0f, 0xfb, - 0x8c, 0x23, 0x96, 0xe5, 0xaa, 0xac, 0x18, 0x07, 0x70, 0x56, 0x95, 0x5f, 0x3a, 0x33, 0xe9, 0x5d, - 0xae, 0x2a, 0x1e, 0xc8, 0x0b, 0xe0, 0xe8, 0x0d, 0xa8, 0xf4, 0xb5, 0xbd, 0xee, 0xd0, 0xed, 0x11, - 0x61, 0xae, 0xca, 0x17, 0xb5, 0x86, 0xbe, 0x69, 0xad, 0x50, 0x9d, 0xd3, 0x77, 0x57, 0xda, 0xb6, - 0x7f, 0xdb, 0xed, 0xfa, 0x6e, 0x98, 0x61, 0x76, 0x4d, 0x60, 0xc1, 0x21, 0x3e, 0x64, 0xc1, 0x7c, - 0x5f, 0xdb, 0xdb, 0xb0, 0xb5, 0xf0, 0x1d, 0xaf, 0x6a, 0x41, 0x0a, 0xcc, 0x66, 0xbf, 0x16, 0xc3, - 0x85, 0x13, 0xb8, 0x33, 0xae, 0x07, 0x66, 0x4f, 0xeb, 0x7a, 0xa0, 0x1e, 0xba, 0xf1, 0x71, 0x65, - 0xe1, 0xf1, 0xac, 0xeb, 0xe9, 0xa3, 0x5d, 0xf4, 0xde, 0x0c, 0x5d, 0xf4, 0xe6, 0x8b, 0xdb, 0xf4, - 0x8f, 0x70, 0xcf, 0x1b, 0x42, 0x95, 0x0a, 0xba, 0xbc, 0x94, 0x4a, 0xf3, 0x85, 0x6d, 0x4a, 0xad, - 0x10, 0x8d, 0xf4, 0xca, 0x46, 0x84, 0x1a, 0xcb, 0x74, 0xd0, 0x6d, 0xfe, 0xce, 0x93, 0x45, 0xfc, - 0xa8, 0x0a, 0xd3, 0x22, 0x17, 0xb8, 0xd9, 0x30, 0x78, 0x96, 0x29, 0x55, 0x01, 0x67, 0xb7, 0xa3, - 0x22, 0x2a, 0x8f, 0xb2, 0x5b, 0x8c, 0xb2, 0x40, 0xc5, 0x22, 0xee, 0xff, 0x4a, 0x96, 0x01, 0x0a, - 0x15, 0x77, 0x39, 0xe6, 0xbc, 0xa1, 0xa8, 0x19, 0x0a, 0x7d, 0x4b, 0x81, 0xa5, 0x7e, 0xce, 0x23, - 0x16, 0xc2, 0x2e, 0x76, 0x67, 0x0c, 0xfe, 0x90, 0xfb, 0x30, 0x06, 0x7f, 0x21, 0xf9, 0x61, 0xb5, - 0x70, 0x6e, 0xdf, 0xc6, 0x8d, 0x08, 0x19, 0x27, 0x13, 0xc1, 0xaf, 0x29, 0xb0, 0x90, 0x3c, 0x04, - 0xe4, 0xa7, 0xa9, 0x94, 0xd3, 0x7d, 0x9a, 0x4a, 0xba, 0xec, 0x2b, 0x1d, 0x71, 0xd9, 0xf7, 0x22, - 0x5c, 0xc8, 0x5e, 0x1b, 0x54, 0x22, 0x63, 0x4f, 0xc1, 0x09, 0x4d, 0x28, 0x4a, 0xa6, 0x4c, 0x0b, - 0x31, 0x87, 0x35, 0x3e, 0xf2, 0xed, 0x1f, 0x5c, 0x7a, 0xcf, 0x77, 0x7e, 0x70, 0xe9, 0x3d, 0xdf, - 0xfb, 0xc1, 0xa5, 0xf7, 0xfc, 0xf4, 0xe1, 0x25, 0xe5, 0xdb, 0x87, 0x97, 0x94, 0xef, 0x1c, 0x5e, - 0x52, 0xbe, 0x77, 0x78, 0x49, 0xf9, 0xcf, 0x87, 0x97, 0x94, 0x5f, 0xf8, 0x2f, 0x97, 0xde, 0xf3, - 0xc6, 0xb4, 0xe8, 0xf8, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x18, 0x80, 0x13, 0x4c, 0x50, 0xbf, - 0x00, 0x00, + // 10048 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x6d, 0x6c, 0x24, 0xc9, + 0x75, 0x98, 0x7a, 0xc8, 0x21, 0x87, 0x6f, 0x48, 0x2e, 0x59, 0xfb, 0x71, 0x3c, 0xde, 0xed, 0x72, + 0xd5, 0xba, 0x3b, 0xec, 0xe5, 0x24, 0xae, 0xef, 0x74, 0xf2, 0xe9, 0xee, 0x74, 0xba, 0x9b, 0x0f, + 0xee, 0xee, 0x68, 0x97, 0xdc, 0xb9, 0x9a, 0xe5, 0xde, 0x87, 0x9d, 0x8b, 0x9a, 0xdd, 0xc5, 0x61, + 0x1f, 0x7b, 0xba, 0xe7, 0xba, 0x7b, 0xb8, 0xe4, 0x5e, 0x0c, 0x59, 0x8a, 0x24, 0x47, 0x76, 0x12, + 0x18, 0x0e, 0x1c, 0x41, 0x92, 0x13, 0xcb, 0x30, 0x0c, 0x27, 0x70, 0x20, 0x2b, 0x09, 0xac, 0xc4, + 0xf9, 0x40, 0x0c, 0x1b, 0x81, 0x65, 0x23, 0x09, 0x14, 0x07, 0x82, 0x15, 0x24, 0xa6, 0x22, 0x06, + 0x51, 0x12, 0x24, 0x3f, 0x02, 0x18, 0xf9, 0xb3, 0x30, 0x90, 0xa0, 0x3e, 0xba, 0xbb, 0xfa, 0x8b, + 0x3b, 0xec, 0x21, 0x57, 0x77, 0xf1, 0x2f, 0x72, 0xea, 0x55, 0xbd, 0x57, 0x5d, 0xf5, 0xea, 0xd5, + 0x7b, 0xaf, 0x5e, 0xbd, 0x82, 0x7a, 0xd7, 0xf4, 0xb7, 0x06, 0x1b, 0xcb, 0xba, 0xd3, 0xbb, 0xdc, + 0xd5, 0x5c, 0x83, 0xd8, 0xc4, 0x8d, 0xfe, 0xe9, 0x6f, 0x77, 0x2f, 0x6b, 0x7d, 0xd3, 0xbb, 0xac, + 0x3b, 0x2e, 0xb9, 0xbc, 0xf3, 0xf4, 0x06, 0xf1, 0xb5, 0xa7, 0x2f, 0x77, 0x29, 0x4c, 0xf3, 0x89, + 0xb1, 0xdc, 0x77, 0x1d, 0xdf, 0x41, 0xcf, 0x44, 0x38, 0x96, 0x83, 0xa6, 0xd1, 0x3f, 0xfd, 0xed, + 0xee, 0x32, 0xc5, 0xb1, 0x4c, 0x71, 0x2c, 0x0b, 0x1c, 0x8b, 0x1f, 0x91, 0xe9, 0x3a, 0x5d, 0xe7, + 0x32, 0x43, 0xb5, 0x31, 0xd8, 0x64, 0xbf, 0xd8, 0x0f, 0xf6, 0x1f, 0x27, 0xb1, 0xf8, 0xe4, 0xf6, + 0xc7, 0xbd, 0x65, 0xd3, 0xa1, 0x9d, 0xb9, 0xac, 0x0d, 0x7c, 0xc7, 0xd3, 0x35, 0xcb, 0xb4, 0xbb, + 0x97, 0x77, 0x52, 0xbd, 0x59, 0x54, 0xa5, 0xaa, 0xa2, 0xdb, 0x87, 0xd6, 0x71, 0x37, 0x34, 0x3d, + 0xab, 0xce, 0xb3, 0x51, 0x9d, 0x9e, 0xa6, 0x6f, 0x99, 0x36, 0x71, 0xf7, 0x82, 0x01, 0xb9, 0xec, + 0x12, 0xcf, 0x19, 0xb8, 0x3a, 0x39, 0x52, 0x2b, 0xef, 0x72, 0x8f, 0xf8, 0x5a, 0x16, 0xad, 0xcb, + 0x79, 0xad, 0xdc, 0x81, 0xed, 0x9b, 0xbd, 0x34, 0x99, 0x1f, 0xbf, 0x5f, 0x03, 0x4f, 0xdf, 0x22, + 0x3d, 0x2d, 0xd5, 0xee, 0xa3, 0x79, 0xed, 0x06, 0xbe, 0x69, 0x5d, 0x36, 0x6d, 0xdf, 0xf3, 0xdd, + 0x64, 0x23, 0xf5, 0x19, 0x28, 0xd7, 0x0c, 0xc3, 0xb1, 0xd1, 0x93, 0x30, 0x49, 0x6c, 0x6d, 0xc3, + 0x22, 0xc6, 0x82, 0x72, 0x51, 0xb9, 0x54, 0xa9, 0x9f, 0xfa, 0xf6, 0xfe, 0xd2, 0x07, 0x0e, 0xf6, + 0x97, 0x26, 0x57, 0x78, 0x31, 0x0e, 0xe0, 0xea, 0x2f, 0x96, 0x60, 0x82, 0x35, 0xf2, 0xd0, 0x2f, + 0x28, 0x70, 0x7a, 0x7b, 0xb0, 0x41, 0x5c, 0x9b, 0xf8, 0xc4, 0x6b, 0x6a, 0xde, 0xd6, 0x86, 0xa3, + 0xb9, 0x1c, 0x45, 0xf5, 0x99, 0xab, 0xcb, 0x47, 0xe7, 0x9e, 0xe5, 0xeb, 0x69, 0x74, 0xf5, 0x87, + 0x0e, 0xf6, 0x97, 0x4e, 0x67, 0x00, 0x70, 0x16, 0x71, 0xb4, 0x03, 0xd3, 0x76, 0xd7, 0xb4, 0x77, + 0x5b, 0x76, 0xd7, 0x25, 0x9e, 0xb7, 0x50, 0x62, 0x9d, 0x79, 0xa5, 0x48, 0x67, 0xd6, 0x24, 0x3c, + 0xf5, 0xb9, 0x83, 0xfd, 0xa5, 0x69, 0xb9, 0x04, 0xc7, 0xe8, 0xa8, 0x5f, 0x54, 0xe0, 0x54, 0xcd, + 0xe8, 0x99, 0x9e, 0x67, 0x3a, 0x76, 0xdb, 0x1a, 0x74, 0x4d, 0x1b, 0x5d, 0x84, 0x71, 0x5b, 0xeb, + 0x11, 0x36, 0x20, 0x53, 0xf5, 0x69, 0x31, 0xa6, 0xe3, 0x6b, 0x5a, 0x8f, 0x60, 0x06, 0x41, 0xaf, + 0xc2, 0x84, 0xee, 0xd8, 0x9b, 0x66, 0x57, 0xf4, 0xf3, 0x23, 0xcb, 0x7c, 0x1e, 0x97, 0xe5, 0x79, + 0x64, 0xdd, 0x13, 0xf3, 0xbf, 0x8c, 0xb5, 0x3b, 0x2b, 0xbb, 0x3e, 0xb1, 0x29, 0x99, 0x3a, 0x1c, + 0xec, 0x2f, 0x4d, 0x34, 0x18, 0x02, 0x2c, 0x10, 0xa9, 0x57, 0xa0, 0x52, 0xb3, 0x88, 0xeb, 0x9b, + 0x76, 0x17, 0xbd, 0x00, 0xb3, 0xa4, 0xa7, 0x99, 0x16, 0x26, 0x3a, 0x31, 0x77, 0x88, 0xeb, 0x2d, + 0x28, 0x17, 0xc7, 0x2e, 0x4d, 0xd5, 0xd1, 0xc1, 0xfe, 0xd2, 0xec, 0x4a, 0x0c, 0x82, 0x13, 0x35, + 0xd5, 0xcf, 0x2a, 0x50, 0xad, 0x0d, 0x0c, 0xd3, 0xe7, 0xf8, 0x91, 0x0b, 0x55, 0x8d, 0xfe, 0x6c, + 0x3b, 0x96, 0xa9, 0xef, 0x89, 0x49, 0x7e, 0xb9, 0xc8, 0xb8, 0xd6, 0x22, 0x34, 0xf5, 0x53, 0x07, + 0xfb, 0x4b, 0x55, 0xa9, 0x00, 0xcb, 0x44, 0xd4, 0x2d, 0x90, 0x61, 0xe8, 0x0d, 0x98, 0xe6, 0x1f, + 0xb9, 0xaa, 0xf5, 0x31, 0xd9, 0x14, 0x7d, 0xf8, 0x90, 0x34, 0x66, 0x01, 0xa1, 0xe5, 0x9b, 0x1b, + 0x6f, 0x13, 0xdd, 0xc7, 0x64, 0x93, 0xb8, 0xc4, 0xd6, 0x09, 0x9f, 0xbe, 0x86, 0xd4, 0x18, 0xc7, + 0x50, 0xa9, 0xdf, 0x57, 0x60, 0xae, 0xb6, 0xa3, 0x99, 0x96, 0xb6, 0x61, 0x5a, 0xa6, 0xbf, 0xf7, + 0xa6, 0x63, 0x93, 0x21, 0xe6, 0x6f, 0x1d, 0x1e, 0x1a, 0xd8, 0x1a, 0x6f, 0x67, 0x91, 0x55, 0x3e, + 0x63, 0xb7, 0xf6, 0xfa, 0x84, 0x32, 0x1e, 0x1d, 0xe9, 0x47, 0x0e, 0xf6, 0x97, 0x1e, 0x5a, 0xcf, + 0xae, 0x82, 0xf3, 0xda, 0x22, 0x0c, 0xe7, 0x24, 0xd0, 0x6d, 0xc7, 0x1a, 0xf4, 0x04, 0xd6, 0x31, + 0x86, 0x75, 0xf1, 0x60, 0x7f, 0xe9, 0xdc, 0x7a, 0x66, 0x0d, 0x9c, 0xd3, 0x52, 0xfd, 0x76, 0x09, + 0xa6, 0xeb, 0x9a, 0xbe, 0x3d, 0xe8, 0xd7, 0x07, 0xfa, 0x36, 0xf1, 0xd1, 0xa7, 0xa1, 0x42, 0xc5, + 0x96, 0xa1, 0xf9, 0x9a, 0x18, 0xc9, 0x1f, 0xcb, 0xe5, 0x3e, 0x36, 0x89, 0xb4, 0x76, 0x34, 0xb6, + 0xab, 0xc4, 0xd7, 0xea, 0x48, 0x8c, 0x09, 0x44, 0x65, 0x38, 0xc4, 0x8a, 0x36, 0x61, 0xdc, 0xeb, + 0x13, 0x5d, 0xf0, 0x76, 0xb3, 0x08, 0xaf, 0xc8, 0x3d, 0xee, 0xf4, 0x89, 0x1e, 0xcd, 0x02, 0xfd, + 0x85, 0x19, 0x7e, 0x64, 0xc3, 0x84, 0xe7, 0x6b, 0xfe, 0x80, 0x0e, 0x0f, 0xa5, 0x74, 0x65, 0x64, + 0x4a, 0x0c, 0x5b, 0x7d, 0x56, 0xd0, 0x9a, 0xe0, 0xbf, 0xb1, 0xa0, 0xa2, 0xfe, 0xb1, 0x02, 0x73, + 0x72, 0xf5, 0x1b, 0xa6, 0xe7, 0xa3, 0x9f, 0x4c, 0x0d, 0xe7, 0xf2, 0x70, 0xc3, 0x49, 0x5b, 0xb3, + 0xc1, 0x9c, 0x13, 0xe4, 0x2a, 0x41, 0x89, 0x34, 0x94, 0x04, 0xca, 0xa6, 0x4f, 0x7a, 0x9c, 0xad, + 0x0a, 0xca, 0x33, 0xb9, 0xcb, 0xf5, 0x19, 0x41, 0xac, 0xdc, 0xa2, 0x68, 0x31, 0xc7, 0xae, 0x7e, + 0x1a, 0xce, 0xc8, 0xb5, 0xda, 0xae, 0xb3, 0x63, 0x1a, 0xc4, 0xa5, 0x2b, 0xc1, 0xdf, 0xeb, 0xa7, + 0x56, 0x02, 0xe5, 0x2c, 0xcc, 0x20, 0xe8, 0x09, 0x98, 0x70, 0x49, 0xd7, 0x74, 0x6c, 0x36, 0xdb, + 0x53, 0xd1, 0xd8, 0x61, 0x56, 0x8a, 0x05, 0x54, 0xfd, 0x3f, 0xa5, 0xf8, 0xd8, 0xd1, 0x69, 0x44, + 0x3b, 0x50, 0xe9, 0x0b, 0x52, 0x62, 0xec, 0xae, 0x8d, 0xfa, 0x81, 0x41, 0xd7, 0xa3, 0x51, 0x0d, + 0x4a, 0x70, 0x48, 0x0b, 0x99, 0x30, 0x1b, 0xfc, 0xdf, 0x18, 0x41, 0x0c, 0x33, 0x71, 0xda, 0x8e, + 0x21, 0xc2, 0x09, 0xc4, 0xe8, 0x16, 0x4c, 0x79, 0x44, 0x77, 0x09, 0x95, 0x49, 0x82, 0x4d, 0x33, + 0x05, 0x57, 0x27, 0xa8, 0x24, 0x04, 0xd7, 0xbc, 0xe8, 0xfe, 0x54, 0x08, 0xc0, 0x11, 0x22, 0x74, + 0x09, 0x2a, 0x1e, 0x21, 0x06, 0x95, 0x48, 0x0b, 0xe3, 0x7c, 0x6e, 0xe8, 0xa7, 0x76, 0x44, 0x19, + 0x0e, 0xa1, 0xea, 0xd7, 0xc7, 0x01, 0xa5, 0x59, 0x5c, 0x1e, 0x01, 0x5e, 0x22, 0xc6, 0x7f, 0x94, + 0x11, 0x10, 0xab, 0x25, 0x81, 0x18, 0xdd, 0x85, 0x19, 0x4b, 0xf3, 0xfc, 0x9b, 0x7d, 0xaa, 0x83, + 0x04, 0x8c, 0x52, 0x7d, 0xa6, 0x56, 0x64, 0xa6, 0x6f, 0xc8, 0x88, 0xea, 0xf3, 0x07, 0xfb, 0x4b, + 0x33, 0xb1, 0x22, 0x1c, 0x27, 0x85, 0xde, 0x86, 0x29, 0x5a, 0xb0, 0xe2, 0xba, 0x8e, 0x2b, 0x46, + 0xff, 0xa5, 0xa2, 0x74, 0x19, 0x92, 0xfa, 0x0c, 0x9d, 0x93, 0xf0, 0x27, 0x8e, 0xd0, 0xa3, 0x4f, + 0x01, 0x72, 0x36, 0x3c, 0xe2, 0xee, 0x10, 0xe3, 0x2a, 0x57, 0xb8, 0xe8, 0xc7, 0xd2, 0xd9, 0x19, + 0xab, 0x2f, 0x8a, 0xd9, 0x44, 0x37, 0x53, 0x35, 0x70, 0x46, 0x2b, 0xb4, 0x0d, 0x28, 0x54, 0xda, + 0x42, 0x06, 0x58, 0x28, 0x0f, 0xcf, 0x3e, 0xe7, 0x28, 0xb1, 0xab, 0x29, 0x14, 0x38, 0x03, 0xad, + 0xfa, 0xaf, 0x4a, 0x50, 0xe5, 0x2c, 0xb2, 0x62, 0xfb, 0xee, 0xde, 0x03, 0xd8, 0x20, 0x48, 0x6c, + 0x83, 0x68, 0x14, 0x5f, 0xf3, 0xac, 0xc3, 0xb9, 0xfb, 0x43, 0x2f, 0xb1, 0x3f, 0xac, 0x8c, 0x4a, + 0xe8, 0xf0, 0xed, 0xe1, 0xbb, 0x0a, 0x9c, 0x92, 0x6a, 0x3f, 0x80, 0xdd, 0xc1, 0x88, 0xef, 0x0e, + 0x2f, 0x8f, 0xf8, 0x7d, 0x39, 0x9b, 0x83, 0x13, 0xfb, 0x2c, 0x26, 0xb8, 0x9f, 0x01, 0xd8, 0x60, + 0xe2, 0x64, 0x2d, 0xd2, 0x93, 0xc2, 0x29, 0xaf, 0x87, 0x10, 0x2c, 0xd5, 0x8a, 0xc9, 0xac, 0xd2, + 0xa1, 0x32, 0xeb, 0xbf, 0x8e, 0xc1, 0x7c, 0x6a, 0xd8, 0xd3, 0x72, 0x44, 0xf9, 0x11, 0xc9, 0x91, + 0xd2, 0x8f, 0x42, 0x8e, 0x8c, 0x15, 0x92, 0x23, 0x43, 0xef, 0x13, 0xc8, 0x05, 0xd4, 0x33, 0xbb, + 0xbc, 0x59, 0xc7, 0xd7, 0x5c, 0xff, 0x96, 0xd9, 0x23, 0x42, 0xe2, 0xfc, 0x85, 0xe1, 0x58, 0x96, + 0xb6, 0xe0, 0x82, 0x67, 0x35, 0x85, 0x09, 0x67, 0x60, 0x57, 0x7f, 0x57, 0x81, 0xb1, 0x06, 0x6e, + 0xa1, 0xa7, 0x62, 0xfa, 0xf6, 0x43, 0xb2, 0xbe, 0x7d, 0x6f, 0x7f, 0x69, 0xb2, 0x81, 0x5b, 0x92, + 0xea, 0xfd, 0xd7, 0x15, 0x98, 0xd7, 0x1d, 0xdb, 0xd7, 0x68, 0x2f, 0x30, 0xdf, 0x94, 0x82, 0x05, + 0x50, 0x48, 0xd5, 0x6c, 0x24, 0x90, 0xd5, 0x1f, 0x16, 0x1d, 0x98, 0x4f, 0x42, 0x3c, 0x9c, 0xa6, + 0xac, 0xae, 0xc3, 0x54, 0xc3, 0x72, 0x06, 0x46, 0xcb, 0xde, 0x74, 0x8e, 0x51, 0x5f, 0xfa, 0x9e, + 0x02, 0xd3, 0x0c, 0x6f, 0xdb, 0x75, 0x36, 0x4d, 0x8b, 0xbc, 0x3f, 0xd4, 0x76, 0xb9, 0xc7, 0x79, + 0x62, 0x99, 0xa9, 0xd1, 0x72, 0xc5, 0xf7, 0x89, 0x1a, 0x2d, 0x77, 0x39, 0x47, 0x52, 0xfe, 0xe2, + 0x64, 0xfc, 0xcb, 0x98, 0xac, 0xbc, 0x04, 0x15, 0x5d, 0xab, 0x0f, 0x6c, 0xc3, 0x0a, 0xf9, 0x82, + 0xf6, 0xb2, 0x51, 0xe3, 0x65, 0x38, 0x84, 0xa2, 0xbb, 0x00, 0x91, 0x6b, 0x43, 0x4c, 0xc3, 0x95, + 0xd1, 0xdc, 0x29, 0x1d, 0xe2, 0xfb, 0xa6, 0xdd, 0xf5, 0xa2, 0xa9, 0x8f, 0x60, 0x58, 0xa2, 0x86, + 0x7e, 0x0a, 0x66, 0xc4, 0x20, 0xb7, 0x7a, 0x5a, 0x57, 0x58, 0x9c, 0x05, 0x47, 0x6a, 0x55, 0x42, + 0x54, 0x3f, 0x2b, 0x08, 0xcf, 0xc8, 0xa5, 0x1e, 0x8e, 0x53, 0x43, 0x7b, 0x30, 0xdd, 0x93, 0xad, + 0xe8, 0xf1, 0xe2, 0x1b, 0x9a, 0x64, 0x51, 0xd7, 0xcf, 0x08, 0xe2, 0xd3, 0x31, 0xfb, 0x3b, 0x46, + 0x2a, 0xc3, 0x18, 0x28, 0x9f, 0x94, 0x31, 0x40, 0x60, 0x92, 0x2f, 0x6f, 0x6f, 0x61, 0x82, 0x7d, + 0xe0, 0x0b, 0x45, 0x3e, 0x90, 0x4b, 0x8a, 0xc8, 0x57, 0xc7, 0x7f, 0x7b, 0x38, 0xc0, 0x8d, 0x76, + 0x60, 0x9a, 0xca, 0xf5, 0x0e, 0xb1, 0x88, 0xee, 0x3b, 0xee, 0xc2, 0x64, 0x71, 0x5f, 0x58, 0x47, + 0xc2, 0xc3, 0x9d, 0x29, 0x72, 0x09, 0x8e, 0xd1, 0x09, 0xa5, 0x5f, 0x25, 0x57, 0xfa, 0x0d, 0xa0, + 0xba, 0x23, 0x79, 0x35, 0xa6, 0xd8, 0x20, 0x7c, 0xb2, 0x48, 0xc7, 0x22, 0x17, 0x47, 0xfd, 0xb4, + 0x20, 0x54, 0x95, 0xdd, 0x21, 0x32, 0x1d, 0x75, 0xbf, 0x02, 0xf3, 0x0d, 0x6b, 0xe0, 0xf9, 0xc4, + 0xad, 0x09, 0x67, 0x33, 0x71, 0xd1, 0xe7, 0x14, 0x38, 0xc7, 0xfe, 0x6d, 0x3a, 0x77, 0xec, 0x26, + 0xb1, 0xb4, 0xbd, 0xda, 0x26, 0xad, 0x61, 0x18, 0x47, 0x93, 0x40, 0xcd, 0x81, 0xd0, 0x23, 0x98, + 0x7b, 0xa6, 0x93, 0x89, 0x11, 0xe7, 0x50, 0x42, 0x3f, 0xa7, 0xc0, 0xc3, 0x19, 0xa0, 0x26, 0xb1, + 0x88, 0x4f, 0x84, 0x0c, 0x38, 0x6a, 0x3f, 0xce, 0x1f, 0xec, 0x2f, 0x3d, 0xdc, 0xc9, 0x43, 0x8a, + 0xf3, 0xe9, 0xa1, 0xbf, 0xa1, 0xc0, 0x62, 0x06, 0xf4, 0x8a, 0x66, 0x5a, 0x03, 0x97, 0x08, 0x35, + 0xfa, 0xa8, 0xdd, 0xb9, 0x70, 0xb0, 0xbf, 0xb4, 0xd8, 0xc9, 0xc5, 0x8a, 0x0f, 0xa1, 0x88, 0x3e, + 0x03, 0x67, 0x43, 0xe8, 0xba, 0x6d, 0x13, 0x62, 0x10, 0x83, 0x69, 0x26, 0xe3, 0x85, 0xba, 0xf2, + 0xf0, 0xc1, 0xfe, 0xd2, 0xd9, 0x4e, 0x16, 0x42, 0x9c, 0x4d, 0x07, 0x75, 0xe1, 0x7c, 0x04, 0xf0, + 0x4d, 0xcb, 0xbc, 0xcb, 0x30, 0xdd, 0xda, 0x72, 0x89, 0xb7, 0xe5, 0x58, 0x06, 0x13, 0x16, 0x4a, + 0xfd, 0x83, 0x07, 0xfb, 0x4b, 0xe7, 0x3b, 0x87, 0x55, 0xc4, 0x87, 0xe3, 0x41, 0x06, 0x4c, 0x7b, + 0xba, 0x66, 0xb7, 0x6c, 0x9f, 0xb8, 0x3b, 0x9a, 0xb5, 0x30, 0x51, 0xe8, 0x03, 0xf9, 0x12, 0x95, + 0xf0, 0xe0, 0x18, 0x56, 0xf4, 0x71, 0xa8, 0x90, 0xdd, 0xbe, 0x66, 0x1b, 0x84, 0x8b, 0x85, 0xa9, + 0xfa, 0xa3, 0x74, 0x33, 0x5a, 0x11, 0x65, 0xf7, 0xf6, 0x97, 0xa6, 0x83, 0xff, 0x57, 0x1d, 0x83, + 0xe0, 0xb0, 0x36, 0xfa, 0xcb, 0x70, 0xa6, 0xa7, 0xed, 0xae, 0x39, 0x06, 0x61, 0x42, 0x8e, 0xca, + 0x3c, 0x36, 0x11, 0x95, 0x42, 0xfd, 0x5c, 0x38, 0xd8, 0x5f, 0x3a, 0xb3, 0x9a, 0x81, 0x0f, 0x67, + 0x52, 0xa1, 0xd3, 0xd0, 0xd3, 0x76, 0xaf, 0xba, 0x9a, 0x4e, 0x36, 0x07, 0xd6, 0x2d, 0xe2, 0xf6, + 0x4c, 0x9b, 0x6b, 0x93, 0x44, 0x77, 0x6c, 0x83, 0x8a, 0x12, 0xe5, 0x52, 0x99, 0x4f, 0xc3, 0xea, + 0x61, 0x15, 0xf1, 0xe1, 0x78, 0xd0, 0xb3, 0x30, 0x6d, 0x76, 0x6d, 0xc7, 0x25, 0xb7, 0x34, 0xd3, + 0xf6, 0xbd, 0x05, 0x60, 0x8e, 0x57, 0x36, 0xac, 0x2d, 0xa9, 0x1c, 0xc7, 0x6a, 0xa9, 0xff, 0x43, + 0x81, 0xaa, 0x10, 0x30, 0x4c, 0x0f, 0xdc, 0x80, 0xb2, 0x4e, 0xf5, 0x00, 0x21, 0x48, 0x5e, 0x2a, + 0xac, 0x6f, 0x50, 0x6c, 0x91, 0xb2, 0xc1, 0x8a, 0x30, 0x47, 0x8d, 0x76, 0x32, 0xb4, 0x85, 0xfa, + 0x68, 0xda, 0x02, 0xa3, 0x76, 0x1f, 0x4d, 0x41, 0xdd, 0x1f, 0x83, 0xa9, 0x86, 0x63, 0x1b, 0x26, + 0xb3, 0x30, 0x9e, 0x8e, 0x69, 0xbc, 0xe7, 0x65, 0x99, 0x7f, 0x6f, 0x7f, 0x69, 0x26, 0xac, 0x28, + 0x6d, 0x02, 0xcf, 0x87, 0x66, 0x39, 0x57, 0x81, 0x3f, 0x18, 0xb7, 0xa7, 0xef, 0xed, 0x2f, 0x9d, + 0x0a, 0x9b, 0xc5, 0x4d, 0x6c, 0xb4, 0x03, 0x88, 0x1a, 0x4a, 0xb7, 0x5c, 0xcd, 0xf6, 0x38, 0x5a, + 0xca, 0x82, 0x63, 0x47, 0xb6, 0x52, 0x42, 0x3b, 0xea, 0x46, 0x0a, 0x1b, 0xce, 0xa0, 0x80, 0xde, + 0x86, 0x59, 0x5a, 0xba, 0xde, 0x37, 0x34, 0x9f, 0x48, 0xf2, 0xe7, 0x48, 0x96, 0x91, 0xa0, 0x39, + 0x7b, 0x23, 0x86, 0x09, 0x27, 0x30, 0x73, 0x0b, 0x41, 0xf3, 0x1c, 0x9b, 0x89, 0x96, 0x98, 0x85, + 0x40, 0x4b, 0xb1, 0x80, 0xa2, 0x27, 0x61, 0xb2, 0x47, 0x3c, 0x4f, 0xeb, 0x12, 0x26, 0x2b, 0xa6, + 0x22, 0x85, 0x60, 0x95, 0x17, 0xe3, 0x00, 0x8e, 0x3e, 0x0c, 0x65, 0xdd, 0x31, 0x88, 0xb7, 0x30, + 0xc9, 0xb8, 0xf9, 0x1c, 0xe3, 0x25, 0x5a, 0x70, 0x6f, 0x7f, 0x69, 0x8a, 0x59, 0x9d, 0xf4, 0x17, + 0xe6, 0x95, 0xd4, 0x5f, 0xa6, 0xfa, 0x79, 0xc2, 0xce, 0x19, 0xc2, 0xb2, 0x79, 0x70, 0x4e, 0x55, + 0xf5, 0x4b, 0x25, 0x38, 0x43, 0x7b, 0xe8, 0x3a, 0x96, 0x45, 0xf7, 0xae, 0xbe, 0xe5, 0xec, 0xf5, + 0x88, 0xfd, 0x20, 0xce, 0x36, 0x82, 0x71, 0x28, 0xe5, 0x8e, 0x43, 0x2f, 0x35, 0x0e, 0x63, 0x45, + 0xc6, 0x21, 0x64, 0x97, 0xfb, 0x8c, 0xc5, 0x7f, 0x53, 0x60, 0x21, 0x6b, 0x2c, 0x1e, 0x80, 0x55, + 0xd5, 0x8b, 0x5b, 0x55, 0xd7, 0x8a, 0x5a, 0xdf, 0xc9, 0xae, 0xe7, 0x58, 0x57, 0x3f, 0x2c, 0xc1, + 0xb9, 0xa8, 0x7a, 0xcb, 0xf6, 0x7c, 0xcd, 0xb2, 0xb8, 0x9f, 0xe3, 0xe4, 0xe7, 0xbd, 0x1f, 0x33, + 0x8e, 0xd7, 0x46, 0xfb, 0x54, 0xb9, 0xef, 0xb9, 0xde, 0xcb, 0xdd, 0x84, 0xf7, 0xb2, 0x7d, 0x8c, + 0x34, 0x0f, 0x77, 0x64, 0xfe, 0x4f, 0x05, 0x16, 0xb3, 0x1b, 0x3e, 0x00, 0xa6, 0x72, 0xe2, 0x4c, + 0xf5, 0xa9, 0xe3, 0xfb, 0xea, 0x1c, 0xb6, 0xfa, 0x87, 0xa5, 0xbc, 0xaf, 0x65, 0xe6, 0xfb, 0x26, + 0x9c, 0xa2, 0x76, 0x95, 0xe7, 0x0b, 0x37, 0xdb, 0xd1, 0xce, 0x9f, 0x03, 0x67, 0xd6, 0x29, 0x1c, + 0xc7, 0x81, 0x93, 0x48, 0xd1, 0x1a, 0x4c, 0x52, 0x63, 0x8a, 0xe2, 0x2f, 0x0d, 0x8f, 0x3f, 0x94, + 0xf9, 0x1d, 0xde, 0x16, 0x07, 0x48, 0xd0, 0x4f, 0xc2, 0x8c, 0x11, 0xae, 0xa8, 0xfb, 0x1c, 0x3e, + 0x25, 0xb1, 0x32, 0x87, 0x68, 0x53, 0x6e, 0x8d, 0xe3, 0xc8, 0xd4, 0x3f, 0x53, 0xe0, 0xd1, 0xc3, + 0x78, 0x0b, 0xbd, 0x03, 0xa0, 0x07, 0x9b, 0x38, 0x0f, 0x3f, 0x28, 0xaa, 0x06, 0x05, 0x58, 0xa2, + 0x05, 0x1a, 0x16, 0x79, 0x58, 0x22, 0x92, 0x71, 0xa6, 0x55, 0x3a, 0xa1, 0x33, 0x2d, 0xf5, 0x7f, + 0x29, 0xb2, 0x28, 0x92, 0xe7, 0xf6, 0xfd, 0x26, 0x8a, 0xe4, 0xbe, 0xe7, 0x7a, 0xec, 0xfe, 0x7d, + 0x09, 0x2e, 0x66, 0x37, 0x91, 0xf6, 0xde, 0x57, 0x60, 0xa2, 0xcf, 0x63, 0x44, 0xc6, 0xd8, 0xde, + 0x78, 0x89, 0x4a, 0x16, 0x1e, 0xc1, 0x71, 0x6f, 0x7f, 0x69, 0x31, 0x4b, 0xd0, 0x8b, 0xd8, 0x0f, + 0xd1, 0x0e, 0x99, 0x09, 0xbf, 0x05, 0xd7, 0xb1, 0x3e, 0x3a, 0xa4, 0x70, 0xd1, 0x36, 0x88, 0x35, + 0xb4, 0xab, 0xe2, 0xb3, 0x0a, 0xcc, 0xc6, 0x38, 0xda, 0x5b, 0x28, 0x33, 0x1e, 0x2d, 0x74, 0x9c, + 0x10, 0x5b, 0x2a, 0xd1, 0xce, 0x1d, 0x2b, 0xf6, 0x70, 0x82, 0x60, 0x42, 0xcc, 0xca, 0xa3, 0xfa, + 0xbe, 0x13, 0xb3, 0x72, 0xe7, 0x73, 0xc4, 0xec, 0x2f, 0x95, 0xf2, 0xbe, 0x96, 0x89, 0xd9, 0x3b, + 0x30, 0x15, 0xc4, 0xe0, 0x05, 0xe2, 0xe2, 0xca, 0xa8, 0x7d, 0xe2, 0xe8, 0xa2, 0xa3, 0xf4, 0xa0, + 0xc4, 0xc3, 0x11, 0x2d, 0xf4, 0x79, 0x05, 0x20, 0x9a, 0x18, 0xb1, 0xa8, 0x6e, 0x1d, 0xdf, 0x70, + 0x48, 0x6a, 0xcd, 0x2c, 0x5d, 0xd2, 0x12, 0x53, 0x48, 0x74, 0xd5, 0x6f, 0x96, 0x00, 0xa5, 0xfb, + 0x4e, 0xd5, 0xcd, 0x6d, 0xd3, 0x36, 0x92, 0x6a, 0xf7, 0x75, 0xd3, 0x36, 0x30, 0x83, 0x0c, 0xa1, + 0x90, 0xbe, 0x04, 0xa7, 0xba, 0x96, 0xb3, 0xa1, 0x59, 0xd6, 0x9e, 0x08, 0xeb, 0x63, 0x2b, 0xb4, + 0x52, 0x3f, 0x4d, 0x37, 0xa6, 0xab, 0x71, 0x10, 0x4e, 0xd6, 0x45, 0x7d, 0x98, 0x73, 0xa9, 0x71, + 0xac, 0x9b, 0x16, 0x33, 0x50, 0x9c, 0x81, 0x5f, 0xd0, 0xfb, 0x72, 0xe6, 0x60, 0x7f, 0x69, 0x0e, + 0x27, 0x70, 0xe1, 0x14, 0x76, 0xf4, 0x38, 0x4c, 0xf6, 0x5d, 0xb3, 0xa7, 0xb9, 0x7b, 0xcc, 0x04, + 0xaa, 0xd4, 0xab, 0x74, 0x87, 0x6b, 0xf3, 0x22, 0x1c, 0xc0, 0xd4, 0xcf, 0x2b, 0x30, 0xd9, 0x70, + 0x5c, 0xd2, 0x5c, 0xeb, 0xa0, 0x3d, 0xa8, 0x4a, 0x61, 0xa4, 0x62, 0xbd, 0x14, 0x64, 0x20, 0x86, + 0xb1, 0x16, 0x61, 0x0b, 0x82, 0xd5, 0xc2, 0x02, 0x2c, 0xd3, 0x52, 0xdb, 0x74, 0xe2, 0x92, 0x6d, + 0xd0, 0x0b, 0x30, 0xde, 0x73, 0x8c, 0xc0, 0x5e, 0x7a, 0x22, 0x98, 0x96, 0x55, 0xc7, 0xa0, 0x76, + 0xf1, 0xb9, 0x74, 0x0b, 0xe6, 0x6e, 0x61, 0x6d, 0xd4, 0xaf, 0x29, 0x30, 0x46, 0x3f, 0x4a, 0x85, + 0x09, 0xc3, 0xe9, 0x69, 0xa6, 0x2d, 0xb0, 0xb0, 0xb0, 0xbf, 0x26, 0x2b, 0xc1, 0x02, 0x82, 0xfa, + 0x30, 0x15, 0xec, 0x4d, 0x23, 0x1d, 0x03, 0x37, 0xd7, 0x3a, 0x61, 0xe8, 0x4c, 0xb8, 0x60, 0x82, + 0x12, 0x0f, 0x47, 0x44, 0x54, 0x0d, 0xe6, 0x9b, 0x6b, 0x9d, 0x96, 0xad, 0x5b, 0x03, 0x83, 0xac, + 0xec, 0xb2, 0x3f, 0x74, 0xca, 0x4c, 0x5e, 0x22, 0x42, 0x0d, 0xd9, 0x94, 0x89, 0x4a, 0x38, 0x80, + 0xd1, 0x6a, 0x84, 0xb7, 0x10, 0x71, 0x72, 0xac, 0x9a, 0x40, 0x82, 0x03, 0x98, 0xfa, 0xbd, 0x12, + 0x54, 0xa5, 0x0e, 0x21, 0x0b, 0x26, 0xf9, 0xe7, 0x06, 0x61, 0x2a, 0x2b, 0x05, 0x3f, 0x31, 0xde, + 0x6b, 0x4e, 0x9d, 0x0f, 0xa8, 0x87, 0x03, 0x12, 0x32, 0xfb, 0x95, 0xf2, 0xd9, 0x0f, 0x2d, 0x03, + 0xf0, 0x80, 0x1c, 0x76, 0xba, 0xca, 0xf7, 0x3c, 0xb6, 0xc2, 0x3b, 0x61, 0x29, 0x96, 0x6a, 0xa0, + 0x47, 0xc5, 0x42, 0xe5, 0xe7, 0xb0, 0x95, 0xc4, 0x22, 0xdd, 0x84, 0xf2, 0x5d, 0xc7, 0x26, 0x9e, + 0x38, 0x7c, 0x38, 0xa6, 0x0f, 0x9c, 0xa2, 0x62, 0xf8, 0x4d, 0x8a, 0x17, 0x73, 0xf4, 0xea, 0xaf, + 0x28, 0x00, 0x4d, 0xcd, 0xd7, 0xb8, 0xaf, 0x7c, 0x88, 0x50, 0xc7, 0x47, 0x63, 0xf2, 0xa5, 0x92, + 0x3a, 0xce, 0x1c, 0xf7, 0xcc, 0xbb, 0xc1, 0xe7, 0x87, 0x7a, 0x0b, 0xc7, 0xde, 0x31, 0xef, 0x12, + 0xcc, 0xe0, 0xe8, 0x29, 0x98, 0x22, 0xb6, 0xee, 0xee, 0xf5, 0x7d, 0x62, 0xb0, 0x11, 0xa8, 0xf0, + 0x13, 0xf0, 0x95, 0xa0, 0x10, 0x47, 0x70, 0xf5, 0x69, 0x88, 0x2b, 0x9f, 0xf7, 0xef, 0xa5, 0xba, + 0x03, 0x95, 0x15, 0xdb, 0xe8, 0x3b, 0xa6, 0xed, 0x0f, 0xf1, 0x4d, 0xe7, 0x61, 0x6c, 0xe0, 0x5a, + 0xe2, 0x93, 0xaa, 0xa2, 0xc2, 0xd8, 0x3a, 0xbe, 0x81, 0x69, 0x39, 0x7a, 0x12, 0x26, 0xfb, 0x03, + 0xb7, 0xef, 0x78, 0xc1, 0x77, 0x85, 0x5a, 0x76, 0x9b, 0x17, 0xe3, 0x00, 0xae, 0xde, 0x53, 0x60, + 0x6e, 0x65, 0xb7, 0x6f, 0xba, 0x2c, 0xec, 0x92, 0xb8, 0x54, 0x83, 0xa4, 0xed, 0x77, 0xf8, 0xbf, + 0xa2, 0x0f, 0x61, 0x7b, 0x51, 0x03, 0x07, 0x70, 0xb4, 0x09, 0xb3, 0x84, 0x35, 0x67, 0x5b, 0x85, + 0x16, 0xba, 0xfc, 0x8f, 0xe2, 0x58, 0xe2, 0x51, 0xbd, 0x31, 0x2c, 0x38, 0x81, 0x15, 0x75, 0x60, + 0x56, 0xb7, 0x34, 0xcf, 0x33, 0x37, 0x4d, 0x3d, 0x0a, 0x28, 0x98, 0xaa, 0x3f, 0x45, 0xdb, 0x36, + 0x62, 0x90, 0x7b, 0xfb, 0x4b, 0x67, 0x45, 0x3f, 0xe3, 0x00, 0x9c, 0x40, 0xa1, 0xfe, 0xae, 0x02, + 0x53, 0xa1, 0xde, 0xfc, 0x9e, 0xf2, 0x10, 0xa1, 0x4b, 0x50, 0x31, 0x4c, 0x4f, 0xde, 0xec, 0xd8, + 0xa1, 0x6b, 0x53, 0x94, 0xe1, 0x10, 0xaa, 0x7a, 0x50, 0xb9, 0x2a, 0x96, 0x15, 0x5a, 0x84, 0x92, + 0x19, 0xec, 0xb5, 0x20, 0x3e, 0xa0, 0xd4, 0x6a, 0xe2, 0x92, 0x69, 0x84, 0x5c, 0x55, 0xca, 0xe5, + 0x2a, 0x69, 0xda, 0xc7, 0x0e, 0x9f, 0x76, 0xf5, 0x1b, 0x0a, 0x54, 0xaf, 0x99, 0x1b, 0xc4, 0xe5, + 0xce, 0x67, 0x26, 0x17, 0x63, 0x81, 0xf8, 0xd5, 0xac, 0x20, 0x7c, 0xb4, 0x0b, 0x53, 0x9e, 0xbe, + 0x45, 0x8c, 0x81, 0x15, 0x86, 0x3c, 0x14, 0x0a, 0xb7, 0x97, 0x48, 0x77, 0x04, 0x3e, 0x29, 0xe0, + 0x30, 0xa0, 0x80, 0x23, 0x62, 0xea, 0xbb, 0x70, 0x3a, 0xa3, 0x11, 0x5a, 0x82, 0xb2, 0xe7, 0x6b, + 0xae, 0x2f, 0xc6, 0x8c, 0x89, 0x1b, 0x16, 0xdf, 0x81, 0x79, 0x39, 0x7a, 0x18, 0xc6, 0x88, 0x6d, + 0x88, 0x41, 0x9b, 0xa4, 0xab, 0x6c, 0xc5, 0x36, 0x30, 0x2d, 0xa3, 0x53, 0x64, 0x39, 0x31, 0x66, + 0x64, 0x53, 0x74, 0x43, 0x94, 0xe1, 0x10, 0xaa, 0xfe, 0xd3, 0x71, 0x38, 0x7f, 0xcd, 0x71, 0xcd, + 0xbb, 0x8e, 0xed, 0x6b, 0x56, 0xdb, 0x31, 0xa2, 0x43, 0x3c, 0x31, 0xdd, 0x5f, 0x50, 0xe0, 0x21, + 0xbd, 0x3f, 0x68, 0xd9, 0xa6, 0x6f, 0x6a, 0xc1, 0xd9, 0x4a, 0x9b, 0xb8, 0xa6, 0x53, 0xf4, 0x2c, + 0x8f, 0x05, 0x70, 0x37, 0xda, 0xeb, 0x59, 0x28, 0x71, 0x1e, 0x2d, 0x76, 0xa4, 0x68, 0x38, 0x77, + 0x6c, 0xd6, 0xb9, 0x8e, 0xcf, 0x82, 0xca, 0xef, 0x46, 0x9f, 0x58, 0xf0, 0x48, 0xb1, 0x99, 0x89, + 0x11, 0xe7, 0x50, 0x42, 0x9f, 0x81, 0xb3, 0x26, 0xef, 0x1c, 0x26, 0x9a, 0x61, 0xda, 0xc4, 0xf3, + 0xd8, 0xc1, 0xda, 0x28, 0x67, 0x66, 0xad, 0x2c, 0x84, 0x38, 0x9b, 0x0e, 0x7a, 0x0b, 0xc0, 0xdb, + 0xb3, 0x75, 0x31, 0xfe, 0xe5, 0x42, 0x54, 0xf9, 0x4e, 0x1a, 0x62, 0xc1, 0x12, 0x46, 0xba, 0x99, + 0xf8, 0x8e, 0x45, 0x5c, 0xcd, 0xd6, 0xb9, 0xef, 0x5b, 0xe1, 0x9b, 0xc9, 0xad, 0xa0, 0x10, 0x47, + 0x70, 0xf5, 0xef, 0x2b, 0x30, 0x29, 0x2e, 0x6b, 0xa0, 0x27, 0x12, 0x0a, 0x55, 0xe8, 0x00, 0x4b, + 0x28, 0x55, 0x7b, 0xcc, 0x79, 0x21, 0x74, 0x71, 0x21, 0xa4, 0x0a, 0xed, 0xc8, 0x82, 0x70, 0xa4, + 0xd8, 0xc7, 0x9c, 0x18, 0x81, 0xb2, 0x2f, 0x11, 0x53, 0xbf, 0xae, 0xc0, 0x7c, 0xaa, 0xd5, 0x10, + 0x66, 0xc0, 0x03, 0xf4, 0xbe, 0xff, 0x71, 0x15, 0xd8, 0xbd, 0x9c, 0x5a, 0xbb, 0xd5, 0x21, 0xee, + 0x4e, 0xb8, 0x08, 0x7f, 0x56, 0x81, 0xb9, 0xe8, 0x9c, 0x48, 0xf4, 0x42, 0x29, 0x1e, 0x4c, 0x74, + 0x3d, 0x81, 0xab, 0xbe, 0x20, 0xbe, 0x7b, 0x2e, 0x09, 0xc1, 0x29, 0xba, 0xe8, 0x4b, 0x0a, 0xcc, + 0x69, 0xf1, 0x7b, 0x39, 0x81, 0xc8, 0x2c, 0x14, 0x6f, 0x9a, 0xb8, 0xe3, 0x13, 0xf5, 0x25, 0x01, + 0xf0, 0x70, 0x8a, 0x2c, 0x7a, 0x16, 0xa6, 0xb5, 0xbe, 0x59, 0x1b, 0x18, 0x26, 0xb1, 0xf5, 0xf0, + 0x32, 0x07, 0x73, 0x51, 0xd4, 0xda, 0xad, 0xb0, 0x1c, 0xc7, 0x6a, 0x85, 0x17, 0x6f, 0xc4, 0x40, + 0x8e, 0x8f, 0x78, 0xf1, 0x46, 0x8c, 0x61, 0x74, 0xf1, 0x46, 0x0c, 0x9d, 0x4c, 0x04, 0xfd, 0x04, + 0x3c, 0xcc, 0xf7, 0x9a, 0xba, 0xe6, 0x99, 0x7a, 0x6d, 0xe0, 0x6f, 0x11, 0xdb, 0x0f, 0x34, 0x06, + 0x6e, 0x8b, 0xb1, 0xe0, 0x82, 0x95, 0xbc, 0x4a, 0x38, 0xbf, 0x3d, 0xb2, 0x01, 0x1c, 0xd3, 0xd0, + 0xc5, 0xf7, 0xf0, 0xf3, 0xed, 0x42, 0xb1, 0x1f, 0x37, 0x5b, 0xcd, 0x86, 0xf8, 0x1c, 0x26, 0x26, + 0xa2, 0xdf, 0x58, 0xa2, 0x80, 0xbe, 0xac, 0xc0, 0x8c, 0x60, 0x72, 0x41, 0x73, 0x92, 0xcd, 0xff, + 0x9b, 0x45, 0x99, 0x31, 0xc1, 0xf0, 0xcb, 0x58, 0x46, 0xce, 0x23, 0x68, 0xc3, 0x68, 0xa7, 0x18, + 0x0c, 0xc7, 0xfb, 0x81, 0xfe, 0x96, 0x02, 0x67, 0x3c, 0xe2, 0xee, 0x98, 0x3a, 0xa9, 0xe9, 0xba, + 0x33, 0xb0, 0x83, 0x49, 0xae, 0x14, 0xbf, 0x04, 0xd1, 0xc9, 0xc0, 0xc7, 0x8f, 0xd9, 0xb3, 0x20, + 0x38, 0x93, 0x3e, 0xdd, 0xbf, 0x4e, 0xdd, 0xd1, 0x7c, 0x7d, 0xab, 0xa1, 0xe9, 0x5b, 0x4c, 0x7f, + 0xe7, 0x27, 0xeb, 0x05, 0x17, 0xcd, 0x6b, 0x71, 0x54, 0xdc, 0xe1, 0x90, 0x28, 0xc4, 0x49, 0x82, + 0xc8, 0x83, 0x8a, 0x4b, 0xde, 0x19, 0x10, 0x8f, 0x1d, 0xbf, 0x53, 0xe2, 0xad, 0x91, 0x67, 0x0c, + 0x0b, 0x84, 0x5c, 0xc7, 0x08, 0x7e, 0xe1, 0x90, 0x10, 0xea, 0xc2, 0x79, 0xce, 0xb9, 0x35, 0xdb, + 0xb1, 0xf7, 0x7a, 0xce, 0xc0, 0x4b, 0x70, 0x7f, 0x95, 0x71, 0x3f, 0x0b, 0x30, 0x58, 0x39, 0xac, + 0x22, 0x3e, 0x1c, 0x0f, 0x7a, 0x1d, 0x2a, 0x64, 0x87, 0xd8, 0xfe, 0xad, 0x5b, 0x37, 0x16, 0xa6, + 0x0b, 0x6d, 0x8d, 0xec, 0x13, 0x56, 0x04, 0x0e, 0x1c, 0x62, 0x5b, 0x7c, 0x05, 0x50, 0x9a, 0x23, + 0xd1, 0x1c, 0x8c, 0x6d, 0x13, 0x7e, 0x6f, 0x6f, 0x0a, 0xd3, 0x7f, 0xd1, 0x19, 0x28, 0xef, 0x68, + 0xd6, 0x80, 0xab, 0xb2, 0x15, 0xcc, 0x7f, 0xbc, 0x50, 0xfa, 0xb8, 0xa2, 0x7e, 0x4b, 0x81, 0xb3, + 0x99, 0xc3, 0x86, 0x30, 0x9c, 0x63, 0x71, 0x19, 0xf6, 0xea, 0xc0, 0xd7, 0x7c, 0xd3, 0xee, 0xb6, + 0xec, 0x4d, 0xcb, 0xec, 0x6e, 0x71, 0xcd, 0xaf, 0xcc, 0xf5, 0x94, 0xd5, 0xcc, 0x1a, 0x38, 0xa7, + 0x25, 0x6a, 0xc1, 0xe9, 0x9e, 0xb6, 0x9b, 0x42, 0x58, 0x62, 0x08, 0xd9, 0xed, 0xcf, 0xd5, 0x34, + 0x18, 0x67, 0xb5, 0x51, 0xbf, 0x5a, 0x86, 0x47, 0x68, 0xc7, 0xa3, 0x2d, 0x73, 0x55, 0xb3, 0xb5, + 0xee, 0x7b, 0x73, 0x6b, 0xfa, 0x86, 0x02, 0x0f, 0x6d, 0x65, 0xab, 0xb3, 0x62, 0xd3, 0x7e, 0xb5, + 0x90, 0x52, 0x7f, 0x98, 0x86, 0xcc, 0x19, 0xf7, 0xd0, 0x2a, 0x38, 0xaf, 0x53, 0xe8, 0x15, 0x98, + 0xb3, 0x1d, 0x83, 0x34, 0x5a, 0x4d, 0xbc, 0xaa, 0x79, 0xdb, 0x9d, 0xc0, 0xe0, 0x2f, 0x73, 0x8f, + 0xde, 0x5a, 0x02, 0x86, 0x53, 0xb5, 0xd1, 0x0e, 0xa0, 0xbe, 0x63, 0xac, 0xec, 0x98, 0x7a, 0x10, + 0x52, 0x51, 0xdc, 0x8b, 0xc8, 0x22, 0xcc, 0xdb, 0x29, 0x6c, 0x38, 0x83, 0x02, 0xd3, 0xc7, 0x69, + 0x67, 0x56, 0x1d, 0xdb, 0xf4, 0x1d, 0x97, 0xc5, 0xfd, 0x8c, 0xa4, 0x96, 0x32, 0x3e, 0x5f, 0xcb, + 0xc4, 0x88, 0x73, 0x28, 0xa9, 0xff, 0x5b, 0x81, 0x53, 0x94, 0x2d, 0xda, 0xae, 0xb3, 0xbb, 0xf7, + 0x5e, 0x64, 0xc8, 0x27, 0x85, 0xaf, 0x92, 0x5b, 0x69, 0x67, 0x25, 0x3f, 0xe5, 0x14, 0xeb, 0x73, + 0xe4, 0x9a, 0x94, 0x0d, 0xd5, 0xb1, 0x7c, 0x43, 0x55, 0xfd, 0x8f, 0x0a, 0x57, 0x11, 0x03, 0x43, + 0xf1, 0x3d, 0xb9, 0x0e, 0x9f, 0x83, 0x19, 0x5a, 0xb6, 0xaa, 0xed, 0xb6, 0x9b, 0xb7, 0x1d, 0x2b, + 0x08, 0x47, 0x62, 0x87, 0x9f, 0xd7, 0x65, 0x00, 0x8e, 0xd7, 0x53, 0x7f, 0xed, 0x14, 0xb0, 0x0a, + 0x16, 0xf1, 0xdf, 0x8b, 0xdf, 0xf5, 0x34, 0x54, 0xf5, 0xfe, 0xa0, 0x71, 0xa5, 0xf3, 0xea, 0xc0, + 0xf1, 0x35, 0xe1, 0xc3, 0x64, 0x7a, 0x5f, 0xa3, 0xbd, 0x1e, 0x14, 0x63, 0xb9, 0x0e, 0x5d, 0xe1, + 0x7a, 0x7f, 0x20, 0x64, 0x66, 0x5b, 0x3e, 0xc5, 0x63, 0x2b, 0xbc, 0xd1, 0x5e, 0x8f, 0xc1, 0x70, + 0xaa, 0x36, 0xfa, 0x0c, 0x4c, 0x13, 0xb1, 0xf8, 0xae, 0x69, 0xae, 0x21, 0xd6, 0x76, 0xe1, 0x8d, + 0x3b, 0x1c, 0xda, 0x60, 0x45, 0x73, 0x75, 0x79, 0x45, 0x22, 0x81, 0x63, 0x04, 0x99, 0xea, 0x2a, + 0x7e, 0xd3, 0x99, 0x72, 0x8c, 0xe4, 0x62, 0x2f, 0x0b, 0xd5, 0x35, 0xaf, 0x12, 0xce, 0x6f, 0x8f, + 0x7e, 0x43, 0x81, 0x73, 0x21, 0xd4, 0xb4, 0xcd, 0xde, 0xa0, 0x87, 0x89, 0x6e, 0x69, 0x66, 0x4f, + 0xe8, 0xb1, 0xaf, 0x1d, 0xdb, 0x87, 0xc6, 0xd1, 0x73, 0x81, 0x93, 0x0d, 0xc3, 0x39, 0x5d, 0x42, + 0x5f, 0x57, 0xe0, 0x62, 0x00, 0x6a, 0x53, 0x4b, 0x72, 0xe0, 0x92, 0x28, 0xa0, 0x4d, 0x0c, 0xc9, + 0x64, 0x21, 0xf9, 0xf7, 0xd8, 0xc1, 0xfe, 0xd2, 0xc5, 0x95, 0xfb, 0xe0, 0xc6, 0xf7, 0xa5, 0x2e, + 0xb3, 0x4b, 0xc7, 0xd9, 0xf4, 0x85, 0xe2, 0x7b, 0x52, 0xec, 0x42, 0x49, 0xe0, 0x18, 0x41, 0xf4, + 0x9b, 0x0a, 0x3c, 0x24, 0x17, 0xc8, 0xdc, 0xc2, 0x35, 0xde, 0xd7, 0x8f, 0xad, 0x33, 0x09, 0xfc, + 0xdc, 0xb7, 0x94, 0x03, 0xc4, 0x79, 0xbd, 0xa2, 0xa2, 0xb7, 0xc7, 0x18, 0x93, 0x6b, 0xc5, 0x65, + 0x2e, 0x7a, 0x39, 0xaf, 0x7a, 0x38, 0x80, 0x51, 0x63, 0xb3, 0xef, 0x18, 0x6d, 0xd3, 0xf0, 0x6e, + 0x98, 0x3d, 0xd3, 0x67, 0x7a, 0xeb, 0x18, 0x1f, 0x8e, 0xb6, 0x63, 0xb4, 0x5b, 0x4d, 0x5e, 0x8e, + 0x63, 0xb5, 0x58, 0x18, 0xba, 0xd9, 0xd3, 0xba, 0xa4, 0x3d, 0xb0, 0xac, 0xb6, 0xeb, 0x30, 0x07, + 0x44, 0x93, 0x68, 0x86, 0x65, 0xda, 0xa4, 0xa0, 0x9e, 0xca, 0x96, 0x5b, 0x2b, 0x0f, 0x29, 0xce, + 0xa7, 0x87, 0x96, 0x01, 0x36, 0x35, 0xd3, 0xea, 0xdc, 0xd1, 0xfa, 0x37, 0xed, 0x85, 0x19, 0x26, + 0xc0, 0x98, 0xa5, 0x77, 0x25, 0x2c, 0xc5, 0x52, 0x0d, 0xca, 0x4d, 0x54, 0x0a, 0x62, 0xc2, 0x2f, + 0xc0, 0x2d, 0xcc, 0x1e, 0x13, 0x37, 0x05, 0x08, 0xf9, 0xf0, 0x5d, 0x97, 0x48, 0xe0, 0x18, 0x41, + 0xf4, 0x05, 0x05, 0x66, 0xbd, 0x3d, 0xcf, 0x27, 0xbd, 0xb0, 0x0f, 0xa7, 0x8e, 0xbb, 0x0f, 0xcc, + 0x35, 0xd3, 0x89, 0x11, 0xc1, 0x09, 0xa2, 0x48, 0x83, 0x47, 0xd8, 0xa8, 0x5e, 0x6d, 0x5c, 0x33, + 0xbb, 0x5b, 0x61, 0x70, 0x79, 0x9b, 0xb8, 0x3a, 0xb1, 0xfd, 0x85, 0x39, 0xc6, 0x37, 0x4b, 0x07, + 0xfb, 0x4b, 0x8f, 0xb4, 0xf2, 0xab, 0xe1, 0xc3, 0x70, 0xa0, 0xb7, 0x60, 0x51, 0x80, 0x6f, 0x38, + 0x77, 0x52, 0x14, 0xe6, 0x19, 0x05, 0x16, 0xf1, 0xdf, 0xca, 0xad, 0x85, 0x0f, 0xc1, 0x40, 0xad, + 0x02, 0x8f, 0xb8, 0xcc, 0xb3, 0x4a, 0x42, 0xe6, 0xf1, 0x16, 0x10, 0x63, 0x02, 0x66, 0x15, 0x74, + 0xd2, 0x60, 0x9c, 0xd5, 0x46, 0xdd, 0x2f, 0x71, 0x73, 0x26, 0xb5, 0x20, 0xd1, 0x4b, 0x70, 0xaa, + 0x47, 0x7a, 0x8e, 0xbb, 0x57, 0x0b, 0x52, 0x66, 0x08, 0xd7, 0x1a, 0xb3, 0x50, 0x57, 0xe3, 0x20, + 0x9c, 0xac, 0x4b, 0xb7, 0x4b, 0xf6, 0x05, 0x57, 0x3a, 0x51, 0xfb, 0x52, 0xb4, 0x5d, 0xb6, 0x12, + 0x30, 0x9c, 0xaa, 0x8d, 0x1a, 0x30, 0x2f, 0xca, 0x5a, 0x54, 0x6b, 0xf4, 0xae, 0xb8, 0x24, 0x38, + 0x6c, 0xa2, 0xfa, 0xd7, 0x7c, 0x2b, 0x09, 0xc4, 0xe9, 0xfa, 0xf4, 0x2b, 0xe8, 0x0f, 0xb9, 0x17, + 0xe3, 0xd1, 0x57, 0xac, 0xc5, 0x41, 0x38, 0x59, 0x37, 0x50, 0xeb, 0x63, 0x5d, 0x28, 0x47, 0x5f, + 0xb1, 0x96, 0x80, 0xe1, 0x54, 0x6d, 0xf5, 0x3f, 0x8d, 0xc3, 0x87, 0x86, 0xd8, 0xc4, 0x50, 0x2f, + 0x7b, 0xb8, 0xef, 0x23, 0x52, 0x96, 0x83, 0x20, 0x8d, 0xe5, 0x57, 0x07, 0x9a, 0xed, 0x9b, 0xfe, + 0xde, 0x90, 0xd3, 0xd3, 0xcf, 0x99, 0x9e, 0xa3, 0xd3, 0x1b, 0x76, 0x3a, 0xbd, 0xbc, 0xe9, 0x3c, + 0x3a, 0xc9, 0xe1, 0xa7, 0xbf, 0x97, 0x3d, 0xfd, 0x05, 0x47, 0xf5, 0xbe, 0xec, 0xd2, 0xcf, 0x61, + 0x97, 0x82, 0xa3, 0x3a, 0x04, 0x7b, 0xfd, 0xc9, 0x38, 0x3c, 0x36, 0xcc, 0x86, 0x5a, 0x90, 0xbf, + 0x32, 0xb6, 0xac, 0x13, 0xe5, 0xaf, 0xbc, 0x88, 0x98, 0x13, 0xe4, 0xaf, 0x0c, 0x92, 0x27, 0xcd, + 0x5f, 0x79, 0xa3, 0x7a, 0x52, 0xfc, 0x95, 0x37, 0xaa, 0x43, 0xf0, 0xd7, 0x9f, 0x26, 0xf7, 0x87, + 0x70, 0x1f, 0x6d, 0xc1, 0x98, 0xde, 0x1f, 0x14, 0x14, 0x52, 0xec, 0x98, 0xb3, 0xd1, 0x5e, 0xc7, + 0x14, 0x07, 0xc2, 0x30, 0xc1, 0xf9, 0xa7, 0xa0, 0x08, 0x62, 0x41, 0x3f, 0x9c, 0x25, 0xb1, 0xc0, + 0x44, 0x87, 0x8a, 0xf4, 0xb7, 0x48, 0x8f, 0xb8, 0x9a, 0xd5, 0xf1, 0x1d, 0x57, 0xeb, 0x16, 0x95, + 0x36, 0x6c, 0xa8, 0x56, 0x12, 0xb8, 0x70, 0x0a, 0x3b, 0x1d, 0x90, 0xbe, 0x69, 0x14, 0x94, 0x2f, + 0x6c, 0x40, 0xda, 0xad, 0x26, 0xa6, 0x38, 0xd4, 0xdf, 0xab, 0x80, 0x74, 0xb5, 0x88, 0xda, 0x6d, + 0x9a, 0x65, 0x39, 0x77, 0xda, 0xae, 0xb9, 0x63, 0x5a, 0xa4, 0x4b, 0x8c, 0xf0, 0xee, 0x89, 0x27, + 0x0e, 0xc3, 0x99, 0x22, 0x59, 0xcb, 0xab, 0x84, 0xf3, 0xdb, 0x53, 0xbb, 0x7c, 0x5e, 0x4f, 0x5e, + 0xfc, 0x1c, 0xe5, 0x40, 0x2f, 0x75, 0x8b, 0x94, 0xaf, 0xa7, 0x54, 0x31, 0x4e, 0x93, 0x45, 0x3f, + 0xad, 0x70, 0x87, 0x43, 0xe8, 0x5d, 0x15, 0x73, 0x76, 0xf5, 0x98, 0xce, 0x23, 0x22, 0xcf, 0x45, + 0xe4, 0xbf, 0x8d, 0x13, 0xa4, 0x96, 0xe1, 0xd9, 0xed, 0x2c, 0x3f, 0xa9, 0x98, 0xd9, 0x9b, 0x45, + 0xbb, 0x92, 0xe3, 0x78, 0xe5, 0x87, 0xc7, 0x99, 0x15, 0x70, 0x76, 0x47, 0xc2, 0x51, 0x0a, 0x5d, + 0x47, 0x42, 0x08, 0x14, 0x1e, 0xa5, 0x84, 0x0f, 0x2a, 0x1a, 0xa5, 0x10, 0x80, 0xe3, 0x04, 0x51, + 0x1f, 0xa6, 0xb6, 0x03, 0x7f, 0x9d, 0xb0, 0xef, 0x1b, 0x45, 0xa9, 0x4b, 0x4e, 0x3f, 0x7e, 0x48, + 0x1d, 0x16, 0xe2, 0x88, 0x08, 0xda, 0x82, 0xc9, 0x6d, 0x2e, 0x88, 0x84, 0x5d, 0x5e, 0x1b, 0xd9, + 0x6e, 0xe0, 0xe6, 0xa1, 0x28, 0xc2, 0x01, 0x7a, 0x39, 0x48, 0xa5, 0x72, 0x9f, 0xd8, 0xa4, 0xaf, + 0x2a, 0x70, 0x76, 0x87, 0xb8, 0xbe, 0xa9, 0x27, 0xbd, 0xd4, 0x53, 0xc5, 0x6d, 0x9b, 0xdb, 0x59, + 0x08, 0x39, 0x9b, 0x64, 0x82, 0x70, 0x76, 0x17, 0xd4, 0x1f, 0x2a, 0x90, 0xf2, 0x85, 0xa1, 0x9f, + 0x57, 0x60, 0x7a, 0x93, 0x68, 0xfe, 0xc0, 0x25, 0x57, 0x35, 0x3f, 0x0c, 0x24, 0xbe, 0x7d, 0x1c, + 0x2e, 0xb8, 0xe5, 0x2b, 0x12, 0x62, 0x7e, 0xd8, 0x17, 0x66, 0x17, 0x90, 0x41, 0x38, 0xd6, 0x83, + 0xc5, 0x97, 0x61, 0x3e, 0xd5, 0xf0, 0x48, 0x67, 0x32, 0xff, 0x42, 0xb8, 0x52, 0x93, 0x09, 0x2f, + 0xdf, 0x82, 0xb2, 0x66, 0x18, 0x61, 0x3a, 0xad, 0xe7, 0x8b, 0x1d, 0x6a, 0x1b, 0x72, 0xbc, 0x36, + 0xfb, 0x89, 0x39, 0x5a, 0x74, 0x05, 0x90, 0x16, 0x3b, 0xb9, 0x5a, 0x8d, 0xc2, 0x59, 0x99, 0x0b, + 0xbe, 0x96, 0x82, 0xe2, 0x8c, 0x16, 0xea, 0x8b, 0x30, 0x1b, 0xbf, 0x60, 0x7a, 0x84, 0xf0, 0x38, + 0xf5, 0xaf, 0x2a, 0x80, 0xd2, 0xc9, 0x2c, 0x90, 0x0b, 0x15, 0x51, 0x23, 0x98, 0xe2, 0x42, 0x5e, + 0xd6, 0x64, 0xe0, 0x5e, 0x14, 0x30, 0x2f, 0x0a, 0x3c, 0x1c, 0xd2, 0x51, 0xff, 0x4c, 0x81, 0x28, + 0x5f, 0x0f, 0xfa, 0x18, 0x54, 0x0d, 0xe2, 0xe9, 0xae, 0xd9, 0xf7, 0xa3, 0xef, 0x08, 0x13, 0x11, + 0x34, 0x23, 0x10, 0x96, 0xeb, 0x21, 0x15, 0x26, 0x7c, 0xcd, 0xdb, 0x6e, 0x35, 0x85, 0xb9, 0xc8, + 0x36, 0xf7, 0x5b, 0xac, 0x04, 0x0b, 0x48, 0x74, 0x59, 0x73, 0x6c, 0x88, 0xcb, 0x9a, 0x68, 0xf3, + 0x18, 0x6e, 0xa6, 0xa2, 0xfb, 0xdf, 0x4a, 0x55, 0xff, 0xa8, 0x04, 0xf1, 0x14, 0x49, 0x45, 0x87, + 0x20, 0x7d, 0x95, 0xb6, 0x74, 0x62, 0x57, 0x69, 0x3f, 0xcc, 0xf2, 0x0b, 0xf2, 0x84, 0xb0, 0xfc, + 0xc0, 0x4a, 0xce, 0x0a, 0xc8, 0xd3, 0xb9, 0x86, 0x35, 0xd0, 0xf3, 0x2c, 0x98, 0xcd, 0x0f, 0x8c, + 0xe8, 0x0f, 0x05, 0xcb, 0xa2, 0x43, 0x0b, 0xef, 0x89, 0xcb, 0xc2, 0xe1, 0xf7, 0xb3, 0x52, 0xcc, + 0x5b, 0xa0, 0x8f, 0x89, 0xd8, 0xc7, 0x72, 0xec, 0x42, 0x73, 0x70, 0x0b, 0x7a, 0x3e, 0xd6, 0x30, + 0x0a, 0x88, 0x54, 0xff, 0xa6, 0x02, 0x93, 0x22, 0x33, 0xc9, 0x10, 0xe1, 0x93, 0x9b, 0x50, 0x66, + 0x4a, 0xfa, 0x28, 0xfa, 0x4b, 0x67, 0xcb, 0x71, 0xfc, 0x58, 0x7e, 0x16, 0x16, 0xb3, 0xc7, 0xfe, + 0xc5, 0x1c, 0xbd, 0xfa, 0xb5, 0x71, 0xb8, 0x28, 0xaa, 0xa4, 0xb6, 0xe7, 0x70, 0x09, 0xee, 0xc1, + 0x69, 0x31, 0x4b, 0x4d, 0x57, 0x33, 0xc3, 0x23, 0xbd, 0x62, 0x66, 0x97, 0x38, 0xec, 0x4d, 0xa1, + 0xc3, 0x59, 0x34, 0x78, 0x26, 0x02, 0x56, 0x7c, 0x8d, 0x68, 0x96, 0xbf, 0x15, 0xd0, 0x2e, 0x8d, + 0x92, 0x89, 0x20, 0x8d, 0x0f, 0x67, 0x52, 0x61, 0x47, 0x8a, 0x02, 0xd0, 0x70, 0x89, 0x26, 0x9f, + 0x67, 0x8e, 0x10, 0xe2, 0xb7, 0x9a, 0x89, 0x11, 0xe7, 0x50, 0x62, 0xfe, 0x2b, 0x6d, 0x97, 0x99, + 0xc3, 0x98, 0xf8, 0xae, 0xc9, 0x32, 0xe6, 0x50, 0xfe, 0xe6, 0x06, 0x6c, 0x1c, 0x84, 0x93, 0x75, + 0xd1, 0x0b, 0x30, 0xcb, 0x8e, 0x68, 0xa3, 0x0b, 0x7a, 0xe5, 0x28, 0x3f, 0xf0, 0x5a, 0x0c, 0x82, + 0x13, 0x35, 0xd5, 0x5f, 0x57, 0x60, 0x5a, 0x66, 0xa0, 0x21, 0xc2, 0xad, 0x07, 0x92, 0xb8, 0x1e, + 0x21, 0x6a, 0x55, 0xa6, 0x3a, 0x8c, 0xc4, 0xbe, 0xa7, 0xc0, 0xe9, 0x8c, 0x36, 0xec, 0xb0, 0x8e, + 0x24, 0x44, 0xff, 0x28, 0x87, 0x75, 0xa9, 0x6d, 0x24, 0x3c, 0xac, 0x4b, 0x42, 0x70, 0x8a, 0x2e, + 0xba, 0x0d, 0x63, 0xba, 0x6b, 0x8a, 0x61, 0x79, 0xae, 0x90, 0x49, 0x82, 0x5b, 0x51, 0x0c, 0x7b, + 0x03, 0xb7, 0x30, 0x45, 0xa8, 0xfe, 0x93, 0x31, 0xa8, 0x4a, 0x49, 0x8f, 0xd0, 0xea, 0x28, 0x16, + 0x6d, 0x84, 0x3e, 0xb0, 0x6a, 0x57, 0x61, 0xac, 0xdb, 0x1f, 0x14, 0x34, 0x69, 0x43, 0x74, 0x57, + 0x29, 0xba, 0x6e, 0x7f, 0x80, 0x6e, 0x87, 0x46, 0x72, 0x31, 0x33, 0x36, 0x0c, 0xe4, 0x4c, 0x18, + 0xca, 0x01, 0x6f, 0x8e, 0xe7, 0xf2, 0x66, 0x0f, 0x26, 0x3d, 0x61, 0x41, 0x97, 0x8b, 0x5f, 0x1a, + 0x92, 0x46, 0x5a, 0x58, 0xcc, 0x5c, 0xfd, 0x0e, 0x0c, 0xea, 0x80, 0x06, 0x55, 0x00, 0x06, 0x2c, + 0xf0, 0x9c, 0xd9, 0x15, 0x15, 0xae, 0x00, 0xac, 0xb3, 0x12, 0x2c, 0x20, 0xea, 0xcf, 0x94, 0x00, + 0xa5, 0x11, 0xa2, 0x0f, 0x41, 0x99, 0xc5, 0xdf, 0x8b, 0x85, 0x26, 0x25, 0x05, 0xd1, 0x3c, 0x0f, + 0x73, 0x18, 0xea, 0x88, 0xfb, 0x18, 0xc5, 0x26, 0x86, 0x1d, 0x12, 0x0b, 0x7a, 0xd2, 0xe5, 0x8d, + 0x60, 0x6b, 0x1a, 0xcb, 0xdd, 0x9a, 0xd6, 0x61, 0xb2, 0x67, 0xda, 0x2c, 0x30, 0xa4, 0x98, 0x8b, + 0x80, 0x9f, 0x65, 0x71, 0x14, 0x38, 0xc0, 0xa5, 0xfe, 0x49, 0x89, 0x32, 0xb1, 0x69, 0xfb, 0xc4, + 0xd6, 0x6c, 0x9d, 0xa0, 0x3d, 0x00, 0x6d, 0xe0, 0x3b, 0x7c, 0x87, 0x17, 0xbc, 0xdc, 0x2a, 0x36, + 0x5f, 0x21, 0xd2, 0x5a, 0x88, 0x90, 0x1f, 0x31, 0x45, 0xbf, 0xb1, 0x44, 0x8c, 0x92, 0xf6, 0xcd, + 0x1e, 0x79, 0xcd, 0xb4, 0x0d, 0xe7, 0x8e, 0x18, 0xde, 0x51, 0x49, 0xdf, 0x0a, 0x11, 0x72, 0xd2, + 0xd1, 0x6f, 0x2c, 0x11, 0x43, 0xaf, 0xc3, 0x02, 0xcb, 0x59, 0x6e, 0xb3, 0x7c, 0x72, 0xa2, 0x6f, + 0x8e, 0x65, 0x05, 0x5b, 0x4e, 0x85, 0xe5, 0xf0, 0x59, 0x68, 0xe4, 0xd4, 0xc1, 0xb9, 0xad, 0xd5, + 0xdf, 0x54, 0xe0, 0x6c, 0xe6, 0x50, 0xa0, 0xab, 0x30, 0x1f, 0xc5, 0x15, 0xc8, 0x32, 0xb2, 0x12, + 0xa5, 0x47, 0xbc, 0x9e, 0xac, 0x80, 0xd3, 0x6d, 0xd0, 0x6a, 0xa8, 0x27, 0xc8, 0x32, 0x58, 0x04, + 0x25, 0x3c, 0x22, 0x50, 0x65, 0x89, 0x69, 0x9c, 0xd5, 0x4e, 0xfd, 0x89, 0x58, 0x87, 0xa3, 0x01, + 0xa3, 0xab, 0x63, 0x83, 0x74, 0xc3, 0xc8, 0xee, 0x70, 0x75, 0xd4, 0x69, 0x21, 0xe6, 0x30, 0x74, + 0x5e, 0xbe, 0x8d, 0x10, 0x4a, 0xa1, 0xe0, 0x46, 0x82, 0xea, 0x03, 0x88, 0xf0, 0x1d, 0xd3, 0xee, + 0xa2, 0x4d, 0xa8, 0x68, 0x22, 0xa1, 0xbe, 0x60, 0xb5, 0x4f, 0x14, 0xb2, 0xb1, 0x04, 0x0e, 0x1e, + 0xb6, 0x17, 0xfc, 0xc2, 0x21, 0x6e, 0xf5, 0xef, 0x29, 0x70, 0x8e, 0x0a, 0x24, 0x23, 0xb8, 0xf4, + 0x19, 0xde, 0xc3, 0x1f, 0x62, 0x6b, 0xed, 0x41, 0xd5, 0x8d, 0x9a, 0x09, 0xbe, 0xfc, 0x71, 0xf9, + 0x8e, 0xbf, 0x74, 0x55, 0x91, 0xaa, 0x1d, 0x0d, 0xd7, 0xf1, 0x82, 0xc9, 0x49, 0x5e, 0xfb, 0x0f, + 0x95, 0x77, 0xa9, 0x27, 0x58, 0xc6, 0xaf, 0x7e, 0xae, 0x04, 0xb0, 0x46, 0xfc, 0x3b, 0x8e, 0xbb, + 0x4d, 0x87, 0xe8, 0x3d, 0x75, 0xe5, 0xe7, 0x51, 0x18, 0xef, 0x3b, 0x86, 0x27, 0xa4, 0x14, 0xbb, + 0xa8, 0xc6, 0x4e, 0xc6, 0x59, 0x29, 0x5a, 0x82, 0x32, 0x73, 0xfc, 0x8a, 0xad, 0x80, 0x69, 0xbd, + 0x54, 0xd3, 0xf1, 0x30, 0x2f, 0xe7, 0xa9, 0x52, 0x59, 0x48, 0xac, 0x27, 0xd4, 0x78, 0x91, 0x2a, + 0x95, 0x97, 0xe1, 0x10, 0xaa, 0x7e, 0x6e, 0x1c, 0x62, 0x2f, 0x42, 0x44, 0xa6, 0xb8, 0x72, 0x32, + 0xa6, 0xf8, 0xeb, 0xb0, 0x60, 0x39, 0x9a, 0x51, 0xd7, 0x2c, 0xca, 0xf4, 0x6e, 0x87, 0x4f, 0x87, + 0x66, 0x77, 0xc3, 0xe7, 0x06, 0x98, 0x00, 0xb8, 0x91, 0x53, 0x07, 0xe7, 0xb6, 0x46, 0x7e, 0xf8, + 0x0e, 0x05, 0x4f, 0xf7, 0x78, 0x63, 0xd4, 0xf7, 0x32, 0x96, 0xe5, 0x60, 0xe8, 0x70, 0x57, 0x8e, + 0x3f, 0x55, 0x81, 0xbe, 0xa8, 0xc0, 0x59, 0xb2, 0xeb, 0x13, 0xd7, 0xd6, 0xac, 0x5b, 0xae, 0xb6, + 0xb9, 0x69, 0xea, 0x22, 0xe6, 0x88, 0x4f, 0x4e, 0xfb, 0x60, 0x7f, 0xe9, 0xec, 0x4a, 0x56, 0x85, + 0x7b, 0xfb, 0x4b, 0x1f, 0x4d, 0x3f, 0x07, 0x13, 0xc4, 0x3e, 0x67, 0x36, 0x61, 0xcc, 0x98, 0x4d, + 0x6e, 0xf1, 0x79, 0xa8, 0x1e, 0x21, 0x54, 0x76, 0x4a, 0x76, 0xcb, 0xfc, 0xd2, 0x04, 0x48, 0x71, + 0xe7, 0x47, 0x48, 0xf2, 0xf9, 0xab, 0x0a, 0x9c, 0xd1, 0x2d, 0x93, 0xd8, 0x7e, 0x22, 0xc0, 0x98, + 0x2f, 0x8c, 0xf5, 0x42, 0x01, 0xf1, 0x7d, 0x62, 0xb7, 0x9a, 0x0d, 0xc7, 0xb6, 0x89, 0xee, 0x37, + 0x32, 0x90, 0x73, 0x2b, 0x27, 0x0b, 0x82, 0x33, 0x3b, 0xc3, 0xbe, 0x87, 0x95, 0xb7, 0x9a, 0xf2, + 0xe5, 0xac, 0x86, 0x28, 0xc3, 0x21, 0x14, 0x3d, 0x0d, 0xd5, 0xae, 0xeb, 0x0c, 0xfa, 0x5e, 0x83, + 0x85, 0x43, 0xf1, 0x19, 0x64, 0x8a, 0xc4, 0xd5, 0xa8, 0x18, 0xcb, 0x75, 0xd0, 0xb3, 0x30, 0xcd, + 0x7f, 0xb6, 0x5d, 0xb2, 0x69, 0xee, 0x8a, 0xe5, 0xc6, 0x62, 0x2c, 0xae, 0x4a, 0xe5, 0x38, 0x56, + 0x0b, 0x3d, 0x05, 0x53, 0xa6, 0xe7, 0x0d, 0x88, 0xbb, 0x8e, 0x6f, 0x88, 0x8c, 0x57, 0xcc, 0xa1, + 0xda, 0x0a, 0x0a, 0x71, 0x04, 0x47, 0xbf, 0xa0, 0xc0, 0xac, 0x4b, 0xde, 0x19, 0x98, 0x2e, 0x31, + 0x18, 0x51, 0x4f, 0x04, 0xff, 0xe3, 0xd1, 0x2e, 0x1c, 0x2c, 0xe3, 0x18, 0x52, 0xce, 0xe7, 0xa1, + 0x3b, 0x22, 0x0e, 0xc4, 0x89, 0x1e, 0xd0, 0xa1, 0xf2, 0xcc, 0xae, 0x6d, 0xda, 0xdd, 0x9a, 0xd5, + 0xf5, 0x16, 0x2a, 0x6c, 0xe9, 0x72, 0x9d, 0x2b, 0x2a, 0xc6, 0x72, 0x1d, 0xf4, 0x1c, 0xcc, 0x0c, + 0x3c, 0xca, 0xb9, 0x3d, 0xc2, 0xc7, 0x77, 0x2a, 0x8a, 0x51, 0x5c, 0x97, 0x01, 0x38, 0x5e, 0x8f, + 0x9a, 0x78, 0x41, 0x81, 0x18, 0x65, 0xe0, 0x57, 0x74, 0x69, 0x3f, 0xd7, 0x63, 0x10, 0x9c, 0xa8, + 0xb9, 0x58, 0x83, 0xd3, 0x19, 0x9f, 0x79, 0xa4, 0xe5, 0xf1, 0xeb, 0x25, 0xf8, 0xe0, 0x7d, 0xb9, + 0x12, 0xfd, 0x6d, 0x05, 0xaa, 0x64, 0xd7, 0x77, 0xb5, 0x30, 0x62, 0x92, 0x4e, 0xd1, 0xe6, 0x89, + 0x2c, 0x81, 0xe5, 0x95, 0x88, 0x10, 0x9f, 0xb6, 0x70, 0xbb, 0x93, 0x20, 0x58, 0xee, 0x0f, 0xd5, + 0xd6, 0xf9, 0x05, 0x6e, 0xd9, 0x5d, 0x27, 0x12, 0xe7, 0x0b, 0xc8, 0xe2, 0x27, 0x61, 0x2e, 0x89, + 0xf9, 0x48, 0x23, 0xf5, 0x8f, 0x4a, 0x50, 0x6e, 0x5b, 0xda, 0x03, 0x49, 0x5e, 0xf6, 0x97, 0x62, + 0x99, 0x63, 0x0a, 0xa5, 0xe3, 0x61, 0x5d, 0xcd, 0xcd, 0x59, 0xd5, 0x4d, 0xe4, 0xac, 0x7a, 0xb9, + 0x38, 0x89, 0xc3, 0x53, 0x54, 0xfd, 0x81, 0x02, 0x53, 0xac, 0xde, 0x03, 0x48, 0x95, 0xf2, 0x56, + 0x3c, 0x55, 0xca, 0xf3, 0x85, 0xbf, 0x29, 0x27, 0x33, 0xca, 0x77, 0x83, 0x6f, 0x61, 0x89, 0x50, + 0xde, 0x90, 0x1f, 0x0c, 0xe1, 0x1f, 0x73, 0x29, 0x2b, 0x67, 0xd3, 0x0d, 0x47, 0xd7, 0xac, 0x54, + 0xe2, 0xa6, 0x43, 0x5f, 0x0d, 0xe9, 0xc1, 0x14, 0x11, 0x97, 0xe4, 0x83, 0x8f, 0x29, 0xa4, 0xd2, + 0x06, 0x37, 0xed, 0x23, 0x72, 0x41, 0x89, 0x87, 0x23, 0x0a, 0xea, 0x3f, 0x2f, 0x41, 0x55, 0x9a, + 0xcb, 0x1f, 0x45, 0x4a, 0xa8, 0x2b, 0x99, 0xb9, 0xf4, 0x4b, 0x2c, 0x24, 0xf2, 0xdc, 0x11, 0xf2, + 0xe8, 0xbb, 0x50, 0xd5, 0xa3, 0xf4, 0x9e, 0xa3, 0x30, 0xb7, 0x94, 0x25, 0x54, 0xc4, 0x64, 0x47, + 0x05, 0x58, 0x26, 0xa2, 0xfe, 0x76, 0x09, 0x26, 0xdb, 0xae, 0x43, 0x27, 0xf8, 0x01, 0x88, 0x06, + 0x2d, 0x26, 0x1a, 0x8a, 0xad, 0x5b, 0xde, 0xd9, 0x5c, 0xe1, 0x60, 0x26, 0x84, 0x43, 0x6d, 0x14, + 0x22, 0x87, 0x8b, 0x87, 0x7f, 0xa3, 0x40, 0x55, 0xd4, 0x7c, 0x00, 0x02, 0xe2, 0xd3, 0x71, 0x01, + 0xf1, 0xe2, 0x08, 0xdf, 0x95, 0x23, 0x22, 0xbe, 0xaa, 0xc0, 0x8c, 0xa8, 0xb1, 0x4a, 0x7a, 0x1b, + 0xc4, 0x45, 0x57, 0x60, 0xd2, 0x1b, 0xb0, 0x89, 0x14, 0x1f, 0xf4, 0x88, 0x2c, 0x24, 0xdc, 0x0d, + 0x4d, 0x67, 0xcf, 0xc2, 0xf0, 0x2a, 0x52, 0x9a, 0x38, 0x5e, 0x80, 0x83, 0xc6, 0xd4, 0x84, 0x73, + 0x1d, 0x2b, 0x95, 0xd6, 0x00, 0x3b, 0x16, 0xc1, 0x0c, 0x42, 0x2d, 0x27, 0xfa, 0x37, 0x38, 0x8f, + 0x62, 0x96, 0x13, 0x05, 0x7b, 0x98, 0x97, 0xab, 0x5f, 0x18, 0x0f, 0x07, 0x9b, 0x49, 0xb0, 0x6b, + 0x30, 0xa5, 0xbb, 0x44, 0xf3, 0x89, 0x51, 0xdf, 0x1b, 0xa6, 0x73, 0x4c, 0x8b, 0x6b, 0x04, 0x2d, + 0x70, 0xd4, 0x98, 0x2a, 0x4c, 0xf2, 0x11, 0x53, 0x29, 0xd2, 0x2d, 0x73, 0x8f, 0x97, 0x3e, 0x01, + 0x65, 0xe7, 0x8e, 0x1d, 0xc6, 0x56, 0x1c, 0x4a, 0x98, 0x7d, 0xca, 0x4d, 0x5a, 0x1b, 0xf3, 0x46, + 0x2c, 0xf5, 0x8b, 0xc8, 0xfc, 0xc1, 0x15, 0xd9, 0x6a, 0x56, 0xd6, 0x0f, 0x64, 0xc1, 0x64, 0x8f, + 0x4d, 0xc3, 0x48, 0x59, 0xc3, 0x62, 0x13, 0x2a, 0x67, 0x6f, 0x65, 0x98, 0x71, 0x40, 0x82, 0x2a, + 0xbe, 0x54, 0x39, 0xf3, 0xfa, 0x9a, 0x4e, 0x64, 0xc5, 0x77, 0x2d, 0x28, 0xc4, 0x11, 0x1c, 0xed, + 0x41, 0x95, 0xdf, 0x7d, 0xe7, 0x52, 0x76, 0xb2, 0xb8, 0x4f, 0x53, 0x74, 0xef, 0x56, 0x84, 0x8d, + 0x0f, 0xbd, 0x54, 0x80, 0x65, 0x5a, 0xea, 0xcf, 0x8d, 0x87, 0x4c, 0x2a, 0x24, 0x7e, 0xf6, 0x53, + 0x26, 0x4a, 0xa1, 0xa7, 0x4c, 0x3e, 0x0a, 0xe5, 0xfe, 0x96, 0xe6, 0x05, 0x9c, 0x1a, 0x64, 0x1a, + 0x2e, 0xb7, 0x69, 0xe1, 0xbd, 0xfd, 0xa5, 0x69, 0x41, 0x9a, 0xfd, 0xc6, 0xbc, 0x2e, 0x1a, 0xc0, + 0x69, 0xcf, 0xd7, 0x2c, 0xd2, 0x31, 0x85, 0xb7, 0xc8, 0xf3, 0xb5, 0x5e, 0xbf, 0x40, 0xc2, 0x60, + 0x1e, 0x78, 0x9c, 0x46, 0x85, 0xb3, 0xf0, 0xa3, 0xcf, 0x2b, 0xb0, 0xc0, 0xca, 0x6b, 0x03, 0xdf, + 0xe1, 0xa9, 0xd5, 0x23, 0xe2, 0x47, 0x3f, 0x9f, 0x65, 0xd6, 0x7d, 0x27, 0x07, 0x1f, 0xce, 0xa5, + 0x84, 0xde, 0x85, 0xb3, 0x96, 0xe6, 0xf9, 0x35, 0xdd, 0x37, 0x77, 0x4c, 0x7f, 0x2f, 0xea, 0xc2, + 0xd1, 0x9f, 0x75, 0x61, 0x01, 0x1a, 0x37, 0xb2, 0x90, 0xe1, 0x6c, 0x1a, 0xea, 0x9f, 0x2a, 0x80, + 0xd2, 0x2c, 0x84, 0x2c, 0xa8, 0x18, 0x64, 0x53, 0x1b, 0x58, 0x7e, 0xa0, 0x02, 0x14, 0xba, 0x02, + 0x1e, 0xa1, 0x8c, 0x24, 0x73, 0x53, 0xe0, 0xc5, 0x21, 0x05, 0xe4, 0xc0, 0xd4, 0x9d, 0x2d, 0xd3, + 0x27, 0x96, 0xe9, 0xf9, 0x42, 0x3a, 0x8f, 0x4a, 0x2e, 0xd4, 0x79, 0x5e, 0x0b, 0x10, 0xe3, 0x88, + 0x86, 0xfa, 0x33, 0x63, 0x50, 0x39, 0xc2, 0xeb, 0x79, 0x03, 0x40, 0x22, 0xf7, 0x03, 0x55, 0x94, + 0xc8, 0x28, 0x2e, 0x32, 0xa6, 0xce, 0x34, 0x52, 0xc8, 0x70, 0x06, 0x01, 0xf4, 0x2e, 0x9c, 0x31, + 0xed, 0x4d, 0x57, 0xf3, 0x7c, 0x77, 0xa0, 0xfb, 0x03, 0x97, 0x8c, 0x92, 0xa8, 0x98, 0xb9, 0x16, + 0x5a, 0x19, 0xe8, 0x70, 0x26, 0x11, 0x44, 0x60, 0xf2, 0x8e, 0xe3, 0x6e, 0x53, 0xe1, 0x39, 0x5e, + 0xfc, 0x11, 0x8c, 0xd7, 0x18, 0x8a, 0x48, 0x6a, 0xf2, 0xdf, 0x1e, 0x0e, 0x70, 0xab, 0x7f, 0xa8, + 0x40, 0x99, 0x5f, 0x6e, 0x7b, 0x5f, 0xd8, 0x55, 0xac, 0xab, 0xb9, 0x09, 0x38, 0xa9, 0xb9, 0xc3, + 0x6a, 0xbc, 0x4f, 0xcc, 0x1d, 0xd6, 0xd7, 0x1c, 0x5d, 0xe6, 0x0f, 0xc7, 0xc4, 0xb7, 0x30, 0x65, + 0xa1, 0x05, 0xa7, 0x85, 0xd2, 0x7b, 0xc3, 0xdc, 0x24, 0x94, 0xbb, 0x9a, 0xda, 0x9e, 0x27, 0x6e, + 0x95, 0x33, 0xa9, 0xdb, 0x48, 0x83, 0x71, 0x56, 0x1b, 0xf4, 0xcf, 0x14, 0xba, 0x2d, 0xfb, 0xae, + 0xa9, 0x8f, 0x94, 0xd5, 0x32, 0xec, 0xdb, 0xf2, 0x2a, 0x47, 0xc6, 0xbd, 0x05, 0xeb, 0xd1, 0xfe, + 0xcc, 0x4a, 0xef, 0xed, 0x2f, 0x2d, 0x65, 0xb8, 0x22, 0x03, 0xd7, 0x39, 0x1d, 0xd8, 0xcf, 0x7d, + 0xff, 0xd0, 0x2a, 0xcc, 0x8d, 0x1f, 0xf4, 0x18, 0x5d, 0x83, 0xb2, 0xa7, 0x3b, 0x7d, 0x72, 0x94, + 0x3c, 0xbd, 0xe1, 0x00, 0x77, 0x68, 0x4b, 0xcc, 0x11, 0x2c, 0xbe, 0x0d, 0xd3, 0x72, 0xcf, 0x33, + 0xbc, 0x11, 0x4d, 0xd9, 0x1b, 0x71, 0xe4, 0xc3, 0x3a, 0xd9, 0x7b, 0xf1, 0x3b, 0x25, 0x10, 0x2f, + 0x57, 0x0d, 0x71, 0x58, 0x61, 0x06, 0x39, 0xee, 0x46, 0x78, 0xad, 0x2b, 0xf9, 0x58, 0x6f, 0x34, + 0x06, 0x72, 0x9a, 0x3b, 0x64, 0xc3, 0x84, 0xa5, 0x6d, 0x10, 0x2b, 0x78, 0xc7, 0xe8, 0x4a, 0xf1, + 0x87, 0x76, 0x78, 0x66, 0x59, 0x2f, 0xe1, 0xd2, 0xe6, 0x85, 0x58, 0x50, 0x59, 0x7c, 0x1e, 0xaa, + 0x52, 0xb5, 0x23, 0x39, 0x80, 0xbe, 0xac, 0xc0, 0xb9, 0x80, 0x25, 0xe2, 0xb9, 0x31, 0xd0, 0x25, + 0xa8, 0x68, 0x7d, 0x93, 0xf9, 0x44, 0x65, 0xaf, 0x72, 0xad, 0xdd, 0x62, 0x65, 0x38, 0x84, 0xa2, + 0x0f, 0x43, 0x25, 0x98, 0x27, 0xa1, 0x20, 0x85, 0x4b, 0x3c, 0x3c, 0xcc, 0x09, 0x6b, 0xa0, 0xc7, + 0xa5, 0xac, 0x7d, 0xe5, 0x68, 0x47, 0x0b, 0x09, 0xf3, 0x73, 0x5f, 0xf5, 0x4b, 0x63, 0x30, 0xc3, + 0x1d, 0x09, 0x75, 0xd3, 0x36, 0x4c, 0xbb, 0xfb, 0x00, 0x44, 0x69, 0xec, 0xbd, 0xd4, 0xd2, 0x71, + 0xbd, 0x97, 0x7a, 0x1d, 0x26, 0xde, 0xa1, 0xcb, 0x3a, 0x60, 0x87, 0xa1, 0x56, 0x57, 0x38, 0xd7, + 0x4c, 0x22, 0x78, 0x58, 0xa0, 0x40, 0x9e, 0xf4, 0x6a, 0xed, 0x08, 0xd7, 0x9c, 0x63, 0x23, 0x1b, + 0xe6, 0xde, 0x9c, 0xce, 0x7e, 0xb2, 0x56, 0xfd, 0x0f, 0x0a, 0xcc, 0xc7, 0x5a, 0x3c, 0x80, 0x9d, + 0x60, 0x33, 0xbe, 0x13, 0xd4, 0x46, 0xfe, 0xca, 0x9c, 0x1d, 0xe1, 0x79, 0x38, 0x9b, 0x39, 0x18, + 0xf7, 0x57, 0xa0, 0xd4, 0x6f, 0x96, 0x60, 0xbc, 0x43, 0x88, 0xf1, 0x00, 0x38, 0xf3, 0xad, 0xd8, + 0x26, 0xff, 0x89, 0xc2, 0xaf, 0x69, 0xe5, 0xb9, 0x47, 0x36, 0x13, 0xee, 0x91, 0x4f, 0x16, 0xa6, + 0x70, 0xb8, 0x6f, 0xe4, 0x97, 0x4b, 0x00, 0xb4, 0x1a, 0x7f, 0x61, 0x53, 0xc4, 0x48, 0x46, 0x6f, + 0x30, 0x4f, 0xbd, 0x57, 0x5e, 0x4e, 0x56, 0xc3, 0x97, 0x12, 0xc7, 0x22, 0xe7, 0x7b, 0xfc, 0x95, + 0xc4, 0xb8, 0xb4, 0x18, 0x3f, 0x26, 0x69, 0xa1, 0xfe, 0x03, 0x05, 0x58, 0x3e, 0xfd, 0xe6, 0x5a, + 0x07, 0x3d, 0x07, 0x33, 0x26, 0x3f, 0xda, 0x6c, 0xca, 0x99, 0xe3, 0xd8, 0x01, 0x4c, 0x4b, 0x06, + 0xe0, 0x78, 0x3d, 0xd4, 0x93, 0xc6, 0x75, 0x84, 0x77, 0x6e, 0x45, 0x3f, 0xee, 0x2b, 0x1f, 0xbe, + 0x5f, 0x82, 0x53, 0x89, 0xba, 0x43, 0xd8, 0x1f, 0x27, 0x23, 0x6d, 0xa5, 0x74, 0xbd, 0x63, 0x27, + 0x9f, 0xae, 0x37, 0xcc, 0x9c, 0x3b, 0x7e, 0xb2, 0x99, 0x73, 0x7f, 0x5f, 0x01, 0xf6, 0x70, 0xea, + 0x03, 0x10, 0xbc, 0x7f, 0x31, 0x2e, 0x78, 0x3f, 0x5e, 0x94, 0x71, 0x72, 0xe4, 0xed, 0x6f, 0x94, + 0x80, 0xe5, 0xc6, 0x17, 0x91, 0x1c, 0x52, 0x70, 0x84, 0x92, 0x13, 0x1c, 0x71, 0x51, 0xc4, 0x56, + 0x24, 0xbc, 0x84, 0x52, 0x7c, 0xc5, 0x87, 0xa5, 0xf0, 0x89, 0xb1, 0xb8, 0x18, 0x49, 0x87, 0x50, + 0xa0, 0xbb, 0x30, 0xe3, 0x6d, 0x39, 0x8e, 0x1f, 0x98, 0xec, 0x62, 0xee, 0x6a, 0x85, 0x43, 0x9a, + 0x83, 0x4f, 0xe1, 0x0b, 0xb3, 0x23, 0xe3, 0xc6, 0x71, 0x52, 0x68, 0x19, 0x60, 0xc3, 0x72, 0xf4, + 0xed, 0x46, 0xab, 0x89, 0x83, 0xc0, 0x57, 0x16, 0x7e, 0x55, 0x0f, 0x4b, 0xb1, 0x54, 0x43, 0xfd, + 0x3d, 0x85, 0x8f, 0xd6, 0x11, 0x96, 0xd5, 0x03, 0x94, 0x92, 0x4f, 0x24, 0xa4, 0x64, 0xde, 0x7b, + 0xb2, 0xbf, 0x2d, 0xbe, 0x22, 0x7c, 0x01, 0xa1, 0x0f, 0x33, 0x96, 0xfc, 0x64, 0x82, 0x60, 0xe3, + 0x42, 0xaf, 0x2d, 0x84, 0x59, 0xef, 0x62, 0xc5, 0x38, 0x4e, 0x80, 0x8a, 0xd2, 0xa0, 0xf3, 0xfc, + 0xf9, 0x47, 0x1e, 0xbb, 0xc2, 0x66, 0xac, 0x2d, 0x03, 0x70, 0xbc, 0x9e, 0xfa, 0x77, 0x4a, 0x70, + 0x9e, 0xf7, 0x9d, 0x05, 0x9f, 0x37, 0x49, 0x9f, 0xd8, 0x06, 0xb1, 0xf5, 0x3d, 0xa6, 0x2e, 0x1b, + 0x4e, 0x17, 0xfd, 0x15, 0x05, 0x2a, 0xc1, 0xc1, 0x93, 0xf8, 0x90, 0x37, 0x8a, 0x3f, 0x77, 0x99, + 0x43, 0x25, 0x3c, 0xf6, 0xe2, 0x09, 0xd8, 0xc4, 0x2f, 0x1c, 0x12, 0x46, 0x77, 0xa0, 0xdc, 0x77, + 0x9d, 0x8d, 0xc0, 0xac, 0xba, 0x7d, 0xec, 0x3d, 0x68, 0x53, 0xec, 0x7c, 0x79, 0xb2, 0x7f, 0x31, + 0xa7, 0xa7, 0x62, 0x78, 0x7c, 0xa8, 0x9e, 0xa3, 0x27, 0x93, 0x79, 0x86, 0x43, 0xff, 0x49, 0x2a, + 0x85, 0xd3, 0x4d, 0x50, 0xef, 0xdf, 0x97, 0xa3, 0x20, 0x7c, 0x15, 0x1e, 0x93, 0x10, 0xae, 0xec, + 0xea, 0xc4, 0xf3, 0x1a, 0x5a, 0x5f, 0xd3, 0xa9, 0x49, 0xc9, 0x2e, 0xde, 0x72, 0x47, 0xef, 0x11, + 0x50, 0xfe, 0x5f, 0x05, 0x96, 0x24, 0x9c, 0xb1, 0x00, 0xa8, 0x40, 0xd4, 0x7c, 0x4d, 0x81, 0xaa, + 0x66, 0xdb, 0x8e, 0xaf, 0xc9, 0xe7, 0x8e, 0xc6, 0x88, 0x73, 0x93, 0x45, 0x6a, 0xb9, 0x16, 0x91, + 0x49, 0x44, 0x18, 0x48, 0x10, 0x2c, 0xf7, 0x66, 0xf1, 0x93, 0x30, 0x97, 0x6c, 0x75, 0x24, 0xe3, + 0xb1, 0x01, 0xe7, 0xa4, 0x5e, 0xb1, 0xb3, 0x8c, 0xc6, 0x16, 0xd1, 0xb7, 0xbd, 0xa3, 0x0c, 0x63, + 0x9d, 0xea, 0xdf, 0x21, 0x12, 0x71, 0x0f, 0x92, 0x9a, 0x7b, 0x4f, 0xc2, 0xe4, 0x8e, 0xe9, 0x99, + 0xc1, 0x7d, 0x7a, 0x09, 0xc7, 0x6d, 0x5e, 0x8c, 0x03, 0xb8, 0xfa, 0x0a, 0x9c, 0x96, 0x71, 0x30, + 0x89, 0xbb, 0xd6, 0x39, 0x4a, 0x2f, 0x56, 0xe1, 0xa2, 0x84, 0x21, 0xf3, 0x32, 0xe0, 0x51, 0xd0, + 0x7d, 0xad, 0x12, 0x08, 0x3c, 0x71, 0x63, 0xe5, 0xb7, 0x14, 0x78, 0x98, 0xe4, 0x71, 0x9d, 0x10, + 0x1a, 0xaf, 0x8f, 0xc8, 0x16, 0xb9, 0x5c, 0x2d, 0x72, 0x4f, 0xe5, 0x81, 0x71, 0x7e, 0xcf, 0xd0, + 0x1e, 0x80, 0x17, 0x4e, 0xc9, 0x28, 0x91, 0xc7, 0x99, 0x73, 0x2c, 0x12, 0x2d, 0x87, 0xbf, 0xb1, + 0x44, 0x0c, 0xbd, 0x03, 0x15, 0x4f, 0xcc, 0xe4, 0x28, 0x77, 0x95, 0x33, 0x18, 0x43, 0x04, 0x57, + 0x8a, 0x5f, 0x38, 0x24, 0x83, 0x7e, 0x45, 0x81, 0x33, 0x56, 0xc6, 0xe2, 0x12, 0x1a, 0x42, 0xe7, + 0x04, 0xd6, 0x2d, 0xf7, 0x60, 0x67, 0x41, 0x70, 0x66, 0x57, 0xd0, 0xaf, 0xe5, 0x5e, 0x8c, 0x2d, + 0x17, 0x7f, 0x3d, 0xe6, 0x7e, 0xbc, 0x7f, 0xf4, 0x3b, 0xb2, 0xe8, 0xa7, 0xa0, 0xea, 0x44, 0x12, + 0x41, 0xdc, 0x64, 0xfe, 0xd4, 0x88, 0x9d, 0x93, 0x64, 0x0c, 0x3f, 0x0f, 0x94, 0x0a, 0xb0, 0x4c, + 0x0f, 0x7d, 0x45, 0x01, 0x64, 0xa4, 0xf6, 0x0d, 0x71, 0x24, 0xf9, 0xea, 0xb1, 0x6f, 0x8e, 0xfc, + 0x04, 0x24, 0x5d, 0x8e, 0x33, 0x3a, 0xa1, 0x7e, 0x79, 0x92, 0x2b, 0xf3, 0xcc, 0x07, 0xbd, 0x01, + 0x13, 0x1b, 0xcc, 0x18, 0x16, 0x52, 0xa0, 0xb0, 0xe5, 0xcd, 0x4d, 0x6a, 0x6e, 0xa9, 0xf2, 0xff, + 0xb1, 0xc0, 0x8c, 0xde, 0x84, 0x31, 0xc3, 0x0e, 0x5e, 0x24, 0x7b, 0x71, 0x04, 0x4b, 0x30, 0x8a, + 0x5b, 0xa7, 0x0b, 0x87, 0x22, 0x45, 0x36, 0x54, 0x6c, 0xa1, 0xff, 0x8a, 0x65, 0x5a, 0xf8, 0xad, + 0xef, 0x50, 0x8f, 0x0e, 0xb5, 0xf7, 0xa0, 0x04, 0x87, 0x34, 0x28, 0xbd, 0x84, 0x03, 0xac, 0x30, + 0xbd, 0xd0, 0xae, 0x3d, 0xcc, 0xe9, 0xd0, 0x96, 0xad, 0xd4, 0xf2, 0xf0, 0x56, 0xea, 0x4c, 0xae, + 0x85, 0x4a, 0x60, 0xc2, 0xe7, 0xef, 0xfb, 0x4e, 0x14, 0x0f, 0x43, 0xa2, 0xfd, 0x67, 0xef, 0xff, + 0x46, 0x4a, 0xb7, 0x78, 0x1c, 0x58, 0x20, 0xa7, 0x8c, 0xc5, 0x9f, 0x21, 0x17, 0x4c, 0x5f, 0x98, + 0xb1, 0xf8, 0x7b, 0x2a, 0x9c, 0xb1, 0xf8, 0xff, 0x58, 0x60, 0x46, 0x6f, 0x53, 0xc3, 0x8b, 0x6f, + 0x71, 0x22, 0x8b, 0xde, 0x2b, 0x23, 0x2e, 0x2d, 0x2f, 0x88, 0x7c, 0xe7, 0xbf, 0x70, 0x88, 0x1f, + 0x6d, 0xc0, 0xa4, 0x70, 0x72, 0x88, 0x14, 0x00, 0x2f, 0x8e, 0x90, 0x14, 0x3f, 0x78, 0x22, 0x88, + 0x5f, 0xc3, 0x0d, 0x10, 0xab, 0xff, 0x6e, 0x8a, 0xbb, 0xa7, 0x44, 0x08, 0xc1, 0x26, 0x54, 0x02, + 0x74, 0xa3, 0xdc, 0xc2, 0x08, 0x9e, 0xf8, 0xe0, 0x9f, 0x16, 0xfc, 0xc2, 0x21, 0x6e, 0xd4, 0xc8, + 0xba, 0xf0, 0x12, 0x25, 0x44, 0x1d, 0xee, 0xb2, 0x4b, 0x3c, 0xc2, 0x6d, 0xec, 0x41, 0x44, 0xb8, + 0x65, 0x87, 0x58, 0x8c, 0x17, 0x0a, 0xb1, 0x78, 0x09, 0x4e, 0x05, 0x01, 0x68, 0x06, 0x61, 0x47, + 0x3d, 0x22, 0x34, 0x9b, 0xdd, 0x2a, 0x6d, 0xc4, 0x41, 0x38, 0x59, 0x17, 0xfd, 0x8e, 0x02, 0x15, + 0x5d, 0x28, 0x30, 0x62, 0x5d, 0xdd, 0x18, 0xcd, 0x87, 0xb9, 0x1c, 0xe8, 0x43, 0x5c, 0x9d, 0xbe, + 0x1d, 0xc8, 0x88, 0xa0, 0xf8, 0x98, 0xce, 0xe0, 0xc2, 0x5e, 0xa3, 0x7f, 0x4d, 0x8d, 0x05, 0x8b, + 0x3d, 0x3c, 0xc2, 0x2e, 0xe9, 0xf1, 0x98, 0xf1, 0x9b, 0x23, 0x7e, 0x45, 0x2d, 0xc2, 0xc8, 0x3f, + 0xe4, 0x8d, 0xd0, 0x2e, 0x88, 0x20, 0xc7, 0xf4, 0x2d, 0x72, 0xf7, 0xd1, 0xdf, 0x55, 0xe0, 0x31, + 0x1e, 0xa8, 0xdf, 0xa0, 0x0a, 0x02, 0x7b, 0xb8, 0x87, 0x44, 0x2f, 0x05, 0x45, 0x01, 0x21, 0x95, + 0x23, 0x07, 0x84, 0x5c, 0x3a, 0xd8, 0x5f, 0x7a, 0xac, 0x31, 0x04, 0x6e, 0x3c, 0x54, 0x0f, 0x16, + 0xb7, 0x61, 0x26, 0x36, 0xd9, 0x27, 0x79, 0x6a, 0xb9, 0x68, 0xc3, 0x5c, 0x72, 0x4e, 0x4e, 0xf4, + 0x94, 0xf4, 0x3a, 0x4c, 0x85, 0x9b, 0x05, 0x3a, 0x2f, 0x11, 0x8a, 0x36, 0xf3, 0xeb, 0x64, 0x8f, + 0x53, 0x5d, 0x8a, 0xd9, 0x7a, 0xdc, 0xd8, 0xbf, 0x4d, 0x0b, 0x04, 0x42, 0xf5, 0x3b, 0xc2, 0x93, + 0x73, 0x8b, 0xf4, 0xfa, 0x96, 0xe6, 0x93, 0xf7, 0xff, 0xd1, 0x87, 0xfa, 0xdf, 0x15, 0x2e, 0xf3, + 0xc5, 0xa3, 0x64, 0x1a, 0x54, 0x7b, 0x3c, 0x81, 0x20, 0xbb, 0x51, 0xaa, 0x14, 0xbf, 0xcb, 0xba, + 0x1a, 0xa1, 0xc1, 0x32, 0x4e, 0x74, 0x27, 0xfd, 0x6c, 0xde, 0x95, 0xd1, 0x36, 0xe7, 0xa1, 0x5f, + 0xcf, 0x43, 0xe9, 0x36, 0xf2, 0x8b, 0x63, 0xca, 0xe1, 0x2f, 0x8e, 0xdd, 0xff, 0x1d, 0x2a, 0xf5, + 0x5b, 0x63, 0x90, 0xf9, 0xe6, 0x03, 0x52, 0x61, 0x82, 0xdf, 0x90, 0x91, 0xdf, 0x13, 0xe4, 0xd7, + 0x67, 0xb0, 0x80, 0x20, 0x17, 0xce, 0x88, 0xfb, 0x27, 0xd7, 0xc9, 0x5e, 0xf4, 0x92, 0x9d, 0x98, + 0xfa, 0xe1, 0x23, 0xd1, 0x59, 0x62, 0xb1, 0x4e, 0x02, 0x13, 0xce, 0xc4, 0x8d, 0x6e, 0xf2, 0xeb, + 0x60, 0xb6, 0x71, 0xcb, 0xd9, 0x26, 0x76, 0x24, 0x1d, 0xc4, 0xed, 0xd6, 0x87, 0x83, 0xeb, 0x60, + 0xa9, 0x0a, 0x38, 0xbb, 0x1d, 0xda, 0x01, 0xd4, 0xd3, 0x76, 0x93, 0xd8, 0x46, 0x48, 0x37, 0xbf, + 0x9a, 0xc2, 0x86, 0x33, 0x28, 0xd0, 0x0d, 0x54, 0xd3, 0x75, 0xd2, 0xf7, 0x89, 0xc1, 0x87, 0x35, + 0xf0, 0x2f, 0xb3, 0x0d, 0xb4, 0x16, 0x07, 0xe1, 0x64, 0x5d, 0x76, 0x15, 0x84, 0x99, 0xc4, 0xef, + 0x8f, 0x90, 0x25, 0xd6, 0xd5, 0x93, 0xbd, 0x0a, 0xc2, 0x49, 0x1c, 0x7e, 0x9e, 0xf9, 0x06, 0x9c, + 0x63, 0xd5, 0x6a, 0x06, 0xb3, 0x82, 0x3d, 0x62, 0xd4, 0x0c, 0x83, 0xdd, 0xcb, 0x1c, 0xf5, 0x21, + 0x40, 0xf5, 0x5f, 0x96, 0xe0, 0x14, 0xc3, 0xdd, 0xa8, 0x61, 0xe1, 0xa3, 0xa3, 0xbb, 0x02, 0x8f, + 0x43, 0xe5, 0x58, 0x97, 0x93, 0x71, 0xa8, 0xe7, 0x79, 0x03, 0x97, 0x30, 0xb5, 0x48, 0xb3, 0xbc, + 0xa0, 0x65, 0x2c, 0x30, 0xd5, 0x05, 0x64, 0x69, 0x9e, 0xcf, 0x9f, 0xd5, 0x0a, 0x76, 0xc2, 0x02, + 0x71, 0xa9, 0x8c, 0x3b, 0x6f, 0xa4, 0x30, 0xe1, 0x0c, 0xec, 0x01, 0xcd, 0x86, 0xd3, 0xeb, 0x5b, + 0x24, 0xa4, 0x59, 0x2a, 0x4e, 0x33, 0x8e, 0x09, 0x67, 0x60, 0x57, 0x7f, 0x56, 0x81, 0xb9, 0xe4, + 0x80, 0xa0, 0x1d, 0xa8, 0xb8, 0x62, 0x50, 0x04, 0x77, 0xdf, 0x28, 0xcc, 0x1c, 0x19, 0x03, 0x2d, + 0xde, 0x78, 0x11, 0xbf, 0x70, 0x48, 0x4b, 0xfd, 0xc6, 0x18, 0x2c, 0xe4, 0x35, 0x42, 0x5f, 0x56, + 0xe0, 0x9c, 0x1e, 0xe9, 0x28, 0xb5, 0x81, 0xbf, 0xe5, 0xb8, 0xa6, 0x6f, 0x92, 0xe0, 0xcd, 0xd1, + 0x46, 0xf1, 0x3e, 0x86, 0xdc, 0xc3, 0x93, 0xbd, 0x34, 0x32, 0xc9, 0xe0, 0x1c, 0xf2, 0xe8, 0x5d, + 0x00, 0x6a, 0x6a, 0xe8, 0xf2, 0x49, 0xd2, 0xf5, 0xc2, 0x9d, 0xb9, 0x1e, 0xa2, 0x0a, 0x3b, 0xc5, + 0x5c, 0x80, 0x52, 0xb9, 0x44, 0x8e, 0x12, 0xf7, 0xbc, 0xad, 0xeb, 0x64, 0xaf, 0xaf, 0x99, 0x41, + 0x50, 0x7d, 0x71, 0xe2, 0x9d, 0xce, 0x35, 0x81, 0x2a, 0x4e, 0x5c, 0x2a, 0x97, 0xc8, 0xa9, 0x9f, + 0x2d, 0xc1, 0x43, 0x39, 0x9d, 0xce, 0x59, 0x41, 0xca, 0xff, 0x77, 0x2b, 0xe8, 0x0f, 0x14, 0x98, + 0x62, 0x63, 0xf0, 0x3e, 0x09, 0xfd, 0x64, 0x7d, 0xcd, 0x39, 0x78, 0xfe, 0x7d, 0x05, 0xe6, 0x53, + 0x19, 0xa8, 0x86, 0x0a, 0x1c, 0x7c, 0x60, 0xe7, 0xa9, 0x8f, 0x27, 0x1f, 0xf1, 0xac, 0x66, 0x26, + 0xa6, 0x7b, 0x0d, 0x66, 0x62, 0xe7, 0xce, 0x61, 0xf6, 0x01, 0x25, 0x33, 0xfb, 0x80, 0x9c, 0x5c, + 0xa0, 0x74, 0x68, 0x72, 0x81, 0x90, 0xe5, 0xd3, 0x4b, 0xe5, 0xcf, 0x0d, 0xcb, 0x7f, 0x73, 0x56, + 0xb0, 0x3c, 0xf3, 0xce, 0xbe, 0x05, 0x13, 0x2c, 0x0d, 0x42, 0x20, 0x87, 0x5f, 0x28, 0x9c, 0x5e, + 0xc1, 0xe3, 0x1a, 0x2f, 0xff, 0x1f, 0x0b, 0xac, 0xa8, 0x09, 0x73, 0xba, 0xe5, 0x0c, 0x8c, 0xb6, + 0xeb, 0x6c, 0x9a, 0x16, 0x59, 0x8b, 0x94, 0xeb, 0x30, 0x8f, 0x53, 0x23, 0x01, 0xc7, 0xa9, 0x16, + 0x08, 0x73, 0xff, 0x2e, 0x17, 0x90, 0xcf, 0x15, 0x8c, 0x41, 0xe1, 0x99, 0x72, 0x43, 0xbf, 0xee, + 0x3b, 0x00, 0x24, 0x60, 0xde, 0x20, 0x58, 0xfe, 0xa5, 0x62, 0x19, 0xaa, 0xc2, 0x25, 0x10, 0x28, + 0x85, 0x61, 0x91, 0x87, 0x25, 0x22, 0xc8, 0x85, 0xea, 0x56, 0xf4, 0xce, 0xab, 0x70, 0xb6, 0xbe, + 0x3c, 0xe2, 0x1b, 0xb3, 0xdc, 0x16, 0x93, 0x0a, 0xb0, 0x4c, 0x04, 0xb9, 0x7c, 0x7f, 0xe3, 0xae, + 0xb4, 0x51, 0xde, 0x05, 0x8c, 0x7c, 0x74, 0xd1, 0x77, 0x46, 0x65, 0x58, 0xa2, 0x42, 0x69, 0xda, + 0x61, 0x1e, 0x93, 0x51, 0xbc, 0xb3, 0x51, 0x36, 0x94, 0x88, 0x66, 0x54, 0x86, 0x25, 0x2a, 0x74, + 0x6c, 0x7b, 0x51, 0xee, 0x1a, 0xe1, 0x73, 0x79, 0x79, 0xc4, 0x1c, 0x42, 0xc2, 0xce, 0x8d, 0x0a, + 0xb0, 0x4c, 0x04, 0xd9, 0x00, 0xbd, 0x30, 0xa5, 0x8d, 0x70, 0xda, 0x16, 0xfa, 0xce, 0x28, 0x31, + 0x0e, 0xdf, 0xb1, 0xa3, 0xdf, 0x58, 0xa2, 0x80, 0xde, 0x96, 0x8e, 0x06, 0xa0, 0xb8, 0xb7, 0x60, + 0xa8, 0x63, 0x81, 0x8f, 0x45, 0x46, 0x73, 0x95, 0xad, 0xd7, 0x47, 0x24, 0x83, 0xf9, 0xde, 0xfe, + 0xd2, 0x34, 0x93, 0x21, 0x29, 0x03, 0x3a, 0x8a, 0x98, 0x99, 0x3e, 0x2c, 0x62, 0x06, 0x5d, 0x85, + 0x79, 0x4f, 0x8e, 0x4a, 0x65, 0x82, 0x61, 0x86, 0x35, 0x09, 0x53, 0x20, 0x75, 0x92, 0x15, 0x70, + 0xba, 0x0d, 0x17, 0xfe, 0xc4, 0x60, 0xed, 0x67, 0x65, 0xe1, 0xcf, 0xcb, 0x70, 0x08, 0x45, 0x3b, + 0x30, 0xed, 0x49, 0x31, 0x3a, 0xe2, 0x0d, 0x91, 0x11, 0xfc, 0xf9, 0x22, 0x3e, 0x87, 0xa5, 0xd6, + 0x90, 0x4b, 0x70, 0x8c, 0x0e, 0x7a, 0x17, 0xa6, 0x02, 0x07, 0x8a, 0xb7, 0x30, 0x57, 0xfc, 0xea, + 0x44, 0x76, 0x1a, 0xa3, 0xc8, 0x23, 0x12, 0x80, 0x3c, 0x1c, 0xd1, 0x43, 0x83, 0xf8, 0x8d, 0xc5, + 0xf9, 0x63, 0xb9, 0xa5, 0x15, 0x46, 0x5e, 0xe4, 0xdd, 0x56, 0x44, 0x0d, 0x98, 0x27, 0xbb, 0x7d, + 0xc7, 0x1b, 0xb8, 0x84, 0x65, 0x50, 0x63, 0xd3, 0x83, 0x22, 0x87, 0xff, 0x4a, 0x12, 0x88, 0xd3, + 0xf5, 0xd1, 0x17, 0x15, 0x98, 0xe3, 0x4f, 0xb0, 0xd0, 0x2d, 0xcc, 0xb1, 0x89, 0xed, 0x7b, 0x0b, + 0xa7, 0x8b, 0xa7, 0x12, 0xec, 0x24, 0x70, 0x09, 0x37, 0x4a, 0xa2, 0x14, 0xa7, 0x68, 0xaa, 0xff, + 0xb8, 0x0a, 0x55, 0xc9, 0x58, 0xfe, 0x51, 0xdc, 0xb5, 0xf7, 0xa1, 0xaa, 0x3b, 0xb6, 0xe7, 0xbb, + 0x9a, 0x94, 0x5f, 0x60, 0x44, 0x9a, 0xe1, 0x34, 0x36, 0x22, 0xcc, 0x58, 0x26, 0x43, 0x05, 0x4e, + 0x78, 0x3e, 0x34, 0x76, 0x0c, 0xe7, 0x43, 0xa1, 0xc0, 0xc9, 0x38, 0x23, 0x7a, 0x16, 0x20, 0xd8, + 0xb7, 0x08, 0xcf, 0x85, 0x5f, 0x89, 0x72, 0x40, 0xb7, 0xbc, 0x6b, 0x21, 0x0c, 0x4b, 0xf5, 0xd0, + 0x5d, 0x98, 0xb1, 0xe4, 0xfc, 0xaf, 0x62, 0x53, 0x2d, 0x14, 0xeb, 0x18, 0x4b, 0x24, 0xcb, 0x23, + 0xe7, 0x62, 0x45, 0x38, 0x4e, 0x8a, 0xb2, 0x81, 0x15, 0xe4, 0x2c, 0x1e, 0xe9, 0xac, 0x33, 0xcc, + 0x7c, 0x1c, 0xb1, 0x41, 0x58, 0xe4, 0x61, 0x89, 0x48, 0xce, 0x81, 0xd4, 0x64, 0xa1, 0x03, 0xa9, + 0x01, 0x9c, 0x76, 0x89, 0xef, 0xee, 0x35, 0xf6, 0x74, 0xf6, 0xc8, 0xb9, 0xeb, 0x33, 0xed, 0xb3, + 0x52, 0xec, 0xfa, 0x2e, 0x4e, 0xa3, 0xc2, 0x59, 0xf8, 0x63, 0x02, 0x7b, 0xea, 0x50, 0x81, 0xfd, + 0x31, 0xa8, 0xfa, 0x44, 0xdf, 0xb2, 0x4d, 0x5d, 0xb3, 0x5a, 0x4d, 0x91, 0x62, 0x27, 0x92, 0x3d, + 0x11, 0x08, 0xcb, 0xf5, 0x50, 0x1d, 0xc6, 0x06, 0xa6, 0x21, 0x76, 0xad, 0x1f, 0x0b, 0xdd, 0x4e, + 0xad, 0xe6, 0xbd, 0xfd, 0xa5, 0x0f, 0x46, 0x27, 0x3c, 0xe1, 0x57, 0x5d, 0xee, 0x6f, 0x77, 0x2f, + 0xfb, 0x7b, 0x7d, 0xe2, 0x2d, 0xaf, 0xb7, 0x9a, 0x98, 0x36, 0xce, 0x3a, 0xac, 0x9b, 0x3e, 0xc2, + 0x61, 0xdd, 0x57, 0x14, 0x38, 0xad, 0x25, 0x3d, 0x66, 0xc4, 0x5b, 0x98, 0x29, 0x2e, 0xfd, 0xb3, + 0xbd, 0x70, 0x51, 0x92, 0xbf, 0x5a, 0x9a, 0x1c, 0xce, 0xea, 0x03, 0xb5, 0x39, 0x7a, 0x66, 0x37, + 0x4c, 0xb3, 0x2c, 0x66, 0x7d, 0xb6, 0x98, 0xcd, 0xb1, 0x9a, 0xc2, 0x84, 0x33, 0xb0, 0xa3, 0x3b, + 0x50, 0xd5, 0x23, 0xaf, 0x90, 0xd8, 0x79, 0x9b, 0xc7, 0xe1, 0x96, 0x12, 0x69, 0x3e, 0x24, 0x97, + 0x93, 0x4c, 0x49, 0xfd, 0x23, 0x45, 0x98, 0x92, 0x0f, 0xf0, 0x3c, 0xe7, 0xa4, 0x9d, 0xbf, 0xea, + 0x0e, 0xa4, 0x36, 0x2d, 0xb4, 0x01, 0x93, 0x14, 0x43, 0x73, 0xad, 0x23, 0xbe, 0xea, 0xc5, 0x62, + 0x7b, 0x03, 0x43, 0xc1, 0xcd, 0x72, 0xf1, 0x03, 0x07, 0x88, 0xd5, 0x1b, 0x00, 0xd1, 0x86, 0x3f, + 0xf2, 0x49, 0xdb, 0x0f, 0xcb, 0x70, 0x76, 0xd4, 0x38, 0x44, 0x96, 0x2f, 0x9a, 0x3d, 0xe9, 0x57, + 0xdb, 0xf4, 0x89, 0x7b, 0xf3, 0xe6, 0x6a, 0xf8, 0xe2, 0x59, 0xc1, 0x84, 0xd5, 0xd1, 0x8b, 0x90, + 0x29, 0x8c, 0x38, 0x87, 0x12, 0x53, 0x76, 0xc4, 0xdb, 0x49, 0x58, 0xf3, 0x49, 0x7d, 0xe0, 0x7a, + 0xbe, 0xb8, 0xfd, 0xc7, 0x95, 0x9d, 0x24, 0x10, 0xa7, 0xeb, 0x27, 0x91, 0xf0, 0xe7, 0x05, 0xe9, + 0x2e, 0xa8, 0xa4, 0x91, 0xf0, 0x37, 0x06, 0xd3, 0xf5, 0x65, 0x24, 0x7c, 0xa6, 0xa8, 0x29, 0x54, + 0x4e, 0x23, 0x09, 0x81, 0x38, 0x5d, 0x1f, 0x19, 0xf0, 0xa8, 0x4b, 0x74, 0xa7, 0xd7, 0x23, 0xb6, + 0xc1, 0x5f, 0x1a, 0xd0, 0xdc, 0xae, 0x69, 0x5f, 0x71, 0x35, 0x56, 0x91, 0xd9, 0x90, 0x4a, 0xfd, + 0xe2, 0xc1, 0xfe, 0xd2, 0xa3, 0xf8, 0x90, 0x7a, 0xf8, 0x50, 0x2c, 0xa8, 0x07, 0xa7, 0x06, 0x2c, + 0x1b, 0xaa, 0xdb, 0xb2, 0x7d, 0xe2, 0xee, 0x68, 0x56, 0xc1, 0x47, 0x33, 0x99, 0x44, 0x5e, 0x8f, + 0xa3, 0xc2, 0x49, 0xdc, 0x68, 0x8f, 0x6e, 0x76, 0xa2, 0x3b, 0x12, 0xc9, 0x4a, 0xf1, 0x8c, 0xea, + 0x38, 0x8d, 0x0e, 0x67, 0xd1, 0x50, 0xbf, 0xa2, 0x80, 0x08, 0x2b, 0x42, 0x8f, 0xc6, 0x9c, 0x71, + 0x95, 0x84, 0x23, 0xee, 0x51, 0x71, 0xf5, 0xa1, 0x14, 0x41, 0xa5, 0x6b, 0x0f, 0x4f, 0x48, 0xd7, + 0x4a, 0xa7, 0x22, 0x11, 0xc4, 0x31, 0x4b, 0xf9, 0x84, 0x9f, 0x82, 0x29, 0x62, 0xeb, 0xee, 0x5e, + 0x3f, 0x52, 0xa3, 0x66, 0x78, 0x16, 0x29, 0x51, 0x88, 0x23, 0xb8, 0xfa, 0x6f, 0x15, 0x10, 0x18, + 0x58, 0x1e, 0xeb, 0xa1, 0xb2, 0x20, 0xdf, 0xf7, 0x8c, 0x54, 0xca, 0xc3, 0x3c, 0x96, 0x97, 0x87, + 0xf9, 0xa4, 0x92, 0x1a, 0xff, 0x96, 0x02, 0xc9, 0x37, 0xf0, 0xd1, 0xe3, 0x30, 0x29, 0x72, 0x56, + 0x88, 0x9b, 0xef, 0xfc, 0xaa, 0x13, 0x2f, 0xc2, 0x01, 0x2c, 0x6e, 0xa7, 0x8d, 0x70, 0xc5, 0x3d, + 0xfb, 0xba, 0xf1, 0xe1, 0x76, 0x9a, 0xfa, 0xdd, 0x59, 0x98, 0xe0, 0x59, 0x16, 0xa8, 0x4c, 0xcb, + 0x88, 0xa9, 0xbf, 0x5e, 0x3c, 0x8f, 0x43, 0x81, 0xd0, 0xf9, 0x58, 0xca, 0xcd, 0xd2, 0xa1, 0x29, + 0x37, 0x31, 0xcf, 0xb1, 0x3e, 0x82, 0x6f, 0xae, 0x81, 0x5b, 0xe2, 0x59, 0x2f, 0x91, 0x5f, 0x1d, + 0xf9, 0x31, 0xa7, 0xd5, 0x78, 0x71, 0x75, 0x81, 0x0f, 0x80, 0xe4, 0xba, 0x9a, 0x3d, 0xc4, 0x6d, + 0x15, 0x5d, 0x6b, 0x2f, 0x17, 0x8f, 0x59, 0x10, 0x43, 0x3e, 0xc4, 0xb5, 0xf6, 0x70, 0x21, 0x4d, + 0xe4, 0x2e, 0xa4, 0x4d, 0x98, 0x14, 0x4b, 0x41, 0x08, 0xc7, 0x17, 0x47, 0xc8, 0x9f, 0x2e, 0x25, + 0x41, 0xe2, 0x05, 0x38, 0x40, 0x4e, 0x77, 0xdc, 0x9e, 0xb6, 0x6b, 0xf6, 0x06, 0x3d, 0x26, 0x11, + 0xcb, 0x72, 0x55, 0x56, 0x8c, 0x03, 0x38, 0xab, 0xca, 0x43, 0x3d, 0x98, 0xf6, 0x2e, 0x57, 0x15, + 0xcf, 0x52, 0x06, 0x70, 0xf4, 0x26, 0x54, 0x7a, 0xda, 0x6e, 0x67, 0xe0, 0x76, 0x89, 0x70, 0x57, + 0xe5, 0xab, 0x5a, 0x03, 0xdf, 0xb4, 0x96, 0xa9, 0xcd, 0xe9, 0xbb, 0xcb, 0x2d, 0xdb, 0xbf, 0xe9, + 0x76, 0x7c, 0x37, 0xcc, 0xeb, 0xbc, 0x2a, 0xb0, 0xe0, 0x10, 0x1f, 0xb2, 0x60, 0xb6, 0xa7, 0xed, + 0xae, 0xdb, 0x5a, 0xf8, 0x7a, 0x5e, 0xb5, 0x20, 0x05, 0x76, 0x6e, 0xb1, 0x1a, 0xc3, 0x85, 0x13, + 0xb8, 0x33, 0x8e, 0x48, 0xa6, 0x4f, 0xea, 0x88, 0xa4, 0x16, 0x06, 0xcf, 0x72, 0x63, 0xe1, 0xe1, + 0xac, 0xa0, 0x90, 0xc3, 0x03, 0x63, 0xdf, 0x0a, 0x03, 0x63, 0x67, 0x8b, 0xfb, 0xf4, 0x0f, 0x09, + 0x8a, 0x1d, 0x40, 0x95, 0x2a, 0xba, 0xbc, 0x94, 0x6a, 0xf3, 0x85, 0x7d, 0x4a, 0xcd, 0x10, 0x8d, + 0xf4, 0xb6, 0x4d, 0x84, 0x1a, 0xcb, 0x74, 0xd0, 0x4d, 0xfe, 0xba, 0x9a, 0x45, 0xfc, 0xa8, 0x0a, + 0xb3, 0x22, 0xe7, 0xb8, 0xdb, 0x30, 0x78, 0x0c, 0x2d, 0x55, 0x01, 0x67, 0xb7, 0xa3, 0x2a, 0x2a, + 0xbf, 0xdb, 0x3a, 0x1f, 0xe5, 0x5e, 0x8b, 0xe5, 0xb9, 0xf8, 0x6b, 0x59, 0x0e, 0x28, 0x54, 0x3c, + 0xd0, 0x9f, 0xcb, 0x86, 0xa2, 0x6e, 0x28, 0xf4, 0x2d, 0x05, 0x16, 0x7a, 0x39, 0x4f, 0xc7, 0x08, + 0xbf, 0xd8, 0xad, 0x11, 0xe4, 0x43, 0xee, 0x73, 0x34, 0xfc, 0x5d, 0xf2, 0xfb, 0xd5, 0xc2, 0xb9, + 0x7d, 0x1b, 0xf5, 0x1e, 0xd6, 0x28, 0xf9, 0x3f, 0x7e, 0x55, 0x81, 0xb9, 0xe4, 0x26, 0x20, 0x3f, + 0x08, 0xa7, 0x9c, 0xec, 0x83, 0x70, 0xd2, 0x81, 0x67, 0xe9, 0x90, 0x03, 0xcf, 0x97, 0xe0, 0x5c, + 0x36, 0x6f, 0x50, 0x8d, 0x8c, 0x3d, 0xc0, 0x28, 0x2c, 0xa1, 0x28, 0x85, 0x39, 0x2d, 0xc4, 0x1c, + 0x56, 0xff, 0xc8, 0xb7, 0x7f, 0x70, 0xe1, 0x03, 0xdf, 0xf9, 0xc1, 0x85, 0x0f, 0x7c, 0xef, 0x07, + 0x17, 0x3e, 0xf0, 0xd3, 0x07, 0x17, 0x94, 0x6f, 0x1f, 0x5c, 0x50, 0xbe, 0x73, 0x70, 0x41, 0xf9, + 0xde, 0xc1, 0x05, 0xe5, 0x3f, 0x1f, 0x5c, 0x50, 0x7e, 0xfe, 0xbf, 0x5c, 0xf8, 0xc0, 0x9b, 0x93, + 0xa2, 0xe3, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xb9, 0xf7, 0xb0, 0x18, 0xc6, 0xc2, 0x00, 0x00, } func (m *Addon) Marshal() (dAtA []byte, err error) { @@ -12126,6 +12189,18 @@ func (m *ShootCARotation) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.LastInitiationTime != nil { + { + size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } if m.LastCompletionTime != nil { { size, err := m.LastCompletionTime.MarshalToSizedBuffer(dAtA[:i]) @@ -12201,6 +12276,30 @@ func (m *ShootCredentialsRotation) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l + if m.SSHKeypair != nil { + { + size, err := m.SSHKeypair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Kubeconfig != nil { + { + size, err := m.Kubeconfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.CertificateAuthorities != nil { { size, err := m.CertificateAuthorities.MarshalToSizedBuffer(dAtA[:i]) @@ -12216,6 +12315,53 @@ func (m *ShootCredentialsRotation) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } +func (m *ShootKubeconfigRotation) 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 *ShootKubeconfigRotation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootKubeconfigRotation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LastCompletionTime != nil { + { + size, err := m.LastCompletionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.LastInitiationTime != nil { + { + size, err := m.LastInitiationTime.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 *ShootList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -12347,6 +12493,53 @@ func (m *ShootNetworks) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ShootSSHKeypairRotation) 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 *ShootSSHKeypairRotation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootSSHKeypairRotation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LastCompletionTime != nil { + { + size, err := m.LastCompletionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.LastInitiationTime != nil { + { + size, err := m.LastInitiationTime.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 *ShootSpec) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -16066,6 +16259,10 @@ func (m *ShootCARotation) Size() (n int) { l = m.LastCompletionTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationTime != nil { + l = m.LastInitiationTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -16092,6 +16289,31 @@ func (m *ShootCredentialsRotation) Size() (n int) { l = m.CertificateAuthorities.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.Kubeconfig != nil { + l = m.Kubeconfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SSHKeypair != nil { + l = m.SSHKeypair.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ShootKubeconfigRotation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastInitiationTime != nil { + l = m.LastInitiationTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTime != nil { + l = m.LastCompletionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -16148,6 +16370,23 @@ func (m *ShootNetworks) Size() (n int) { return n } +func (m *ShootSSHKeypairRotation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastInitiationTime != nil { + l = m.LastInitiationTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTime != nil { + l = m.LastCompletionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *ShootSpec) Size() (n int) { if m == nil { return 0 @@ -18423,6 +18662,7 @@ func (this *ShootCARotation) String() string { s := strings.Join([]string{`&ShootCARotation{`, `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -18443,6 +18683,19 @@ func (this *ShootCredentialsRotation) String() string { } s := strings.Join([]string{`&ShootCredentialsRotation{`, `CertificateAuthorities:` + strings.Replace(this.CertificateAuthorities.String(), "ShootCARotation", "ShootCARotation", 1) + `,`, + `Kubeconfig:` + strings.Replace(this.Kubeconfig.String(), "ShootKubeconfigRotation", "ShootKubeconfigRotation", 1) + `,`, + `SSHKeypair:` + strings.Replace(this.SSHKeypair.String(), "ShootSSHKeypairRotation", "ShootSSHKeypairRotation", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ShootKubeconfigRotation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootKubeconfigRotation{`, + `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -18486,6 +18739,17 @@ func (this *ShootNetworks) String() string { }, "") return s } +func (this *ShootSSHKeypairRotation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootSSHKeypairRotation{`, + `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, + `}`, + }, "") + return s +} func (this *ShootSpec) String() string { if this == nil { return "nil" @@ -39753,6 +40017,42 @@ func (m *ShootCARotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationTime", 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.LastInitiationTime == nil { + m.LastInitiationTime = &v11.Time{} + } + if err := m.LastInitiationTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -39925,6 +40225,200 @@ func (m *ShootCredentialsRotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubeconfig", 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.Kubeconfig == nil { + m.Kubeconfig = &ShootKubeconfigRotation{} + } + if err := m.Kubeconfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SSHKeypair", 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.SSHKeypair == nil { + m.SSHKeypair = &ShootSSHKeypairRotation{} + } + if err := m.SSHKeypair.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 *ShootKubeconfigRotation) 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: ShootKubeconfigRotation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootKubeconfigRotation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationTime", 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.LastInitiationTime == nil { + m.LastInitiationTime = &v11.Time{} + } + if err := m.LastInitiationTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTime", 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.LastCompletionTime == nil { + m.LastCompletionTime = &v11.Time{} + } + if err := m.LastCompletionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -40330,6 +40824,128 @@ func (m *ShootNetworks) Unmarshal(dAtA []byte) error { } return nil } +func (m *ShootSSHKeypairRotation) 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: ShootSSHKeypairRotation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootSSHKeypairRotation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationTime", 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.LastInitiationTime == nil { + m.LastInitiationTime = &v11.Time{} + } + if err := m.LastInitiationTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTime", 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.LastCompletionTime == nil { + m.LastCompletionTime = &v11.Time{} + } + if err := m.LastCompletionTime.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 *ShootSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto index 61541ed3..eb749be8 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto @@ -691,7 +691,7 @@ message Gardener { // Hibernation contains information whether the Shoot is suspended or not. message Hibernation { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. - // If it is false or nil, the Shoot's desired state is to be awaken. + // If it is false or nil, the Shoot's desired state is to be awakened. // +optional optional bool enabled = 1; @@ -2099,6 +2099,8 @@ message ServiceAccountConfig { // MaxTokenExpiration is the maximum validity duration of a token created by the service account token issuer. If an // otherwise valid TokenRequest with a validity duration larger than this value is requested, a token will be issued // with a validity duration of this value. + // This field must be within [30d,90d] when the ShootMaxTokenExpirationValidation feature gate is enabled. + // This field will be overwritten to be within [30d,90d] when the ShootMaxTokenExpirationOverwrite feature gate is enabled. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration maxTokenExpiration = 4; @@ -2140,6 +2142,10 @@ message ShootCARotation { // Phase describes the phase of the certificate authority credential rotation. optional string phase = 1; + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; + // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully // completed. // +optional @@ -2158,6 +2164,25 @@ message ShootCredentialsRotation { // CertificateAuthorities contains information about the certificate authority credential rotation. // +optional optional ShootCARotation certificateAuthorities = 1; + + // Kubeconfig contains information about the kubeconfig credential rotation. + // +optional + optional ShootKubeconfigRotation kubeconfig = 2; + + // SSHKeypair contains information about the ssh-keypair credential rotation. + // +optional + optional ShootSSHKeypairRotation sshKeypair = 3; +} + +// ShootKubeconfigRotation contains information about the kubeconfig credential rotation. +message ShootKubeconfigRotation { + // LastInitiationTime is the most recent time when the kubeconfig credential rotation was initiated. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 1; + + // LastCompletionTime is the most recent time when the kubeconfig credential rotation was successfully completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; } // ShootList is a list of Shoot objects. @@ -2197,6 +2222,17 @@ message ShootNetworks { optional string services = 2; } +// ShootSSHKeypairRotation contains information about the ssh-keypair credential rotation. +message ShootSSHKeypairRotation { + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 1; + + // LastCompletionTime is the most recent time when the ssh-keypair credential rotation was successfully completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; +} + // ShootSpec is the specification of a Shoot. message ShootSpec { // Addons contains information about enabled/disabled addons and their configuration. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/errors.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/errors.go index 74bbc02e..50eb9808 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/errors.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/errors.go @@ -53,12 +53,12 @@ func (e *ErrorWithCodes) Error() string { var ( unauthenticatedRegexp = regexp.MustCompile(`(?i)(InvalidAuthenticationTokenTenant|Authentication failed|AuthFailure|invalid character|invalid_client|query returned no results|InvalidAccessKeyId|cannot fetch token|InvalidSecretAccessKey|InvalidSubscriptionId)`) - unauthorizedRegexp = regexp.MustCompile(`(?i)(Unauthorized|InvalidClientTokenId|SignatureDoesNotMatch|AuthorizationFailed|invalid_grant|Authorization Profile was not found|no active subscriptions|UnauthorizedOperation|not authorized|AccessDenied|OperationNotAllowed|Error 403)`) + unauthorizedRegexp = regexp.MustCompile(`(?i)(Unauthorized|InvalidClientTokenId|SignatureDoesNotMatch|AuthorizationFailed|invalid_grant|Authorization Profile was not found|no active subscriptions|UnauthorizedOperation|not authorized|AccessDenied|OperationNotAllowed|Error 403|SERVICE_ACCOUNT_ACCESS_DENIED)`) quotaExceededRegexp = regexp.MustCompile(`(?i)((?:^|[^t]|(?:[^s]|^)t|(?:[^e]|^)st|(?:[^u]|^)est|(?:[^q]|^)uest|(?:[^e]|^)quest|(?:[^r]|^)equest)LimitExceeded|Quotas|Quota.*exceeded|exceeded quota|Quota has been met|QUOTA_EXCEEDED|Maximum number of ports exceeded|ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS|VolumeSizeExceedsAvailableQuota)`) rateLimitsExceededRegexp = regexp.MustCompile(`(?i)(RequestLimitExceeded|Throttling|Too many requests)`) dependenciesRegexp = regexp.MustCompile(`(?i)(PendingVerification|Access Not Configured|accessNotConfigured|DependencyViolation|OptInRequired|DeleteConflict|Conflict|inactive billing state|ReadOnlyDisabledSubscription|is already being used|InUseSubnetCannotBeDeleted|VnetInUse|InUseRouteTableCannotBeDeleted|timeout while waiting for state to become|InvalidCidrBlock|already busy for|InsufficientFreeAddressesInSubnet|InternalServerError|internalerror|internal server error|A resource with the ID|VnetAddressSpaceCannotChangeDueToPeerings|InternalBillingError|There are not enough hosts available)`) retryableDependenciesRegexp = regexp.MustCompile(`(?i)(RetryableError)`) - resourcesDepletedRegexp = regexp.MustCompile(`(?i)(not available in the current hardware cluster|InsufficientInstanceCapacity|SkuNotAvailable|ZonalAllocationFailed|out of stock)`) + resourcesDepletedRegexp = regexp.MustCompile(`(?i)(not available in the current hardware cluster|InsufficientInstanceCapacity|SkuNotAvailable|ZonalAllocationFailed|out of stock|Zone.NotOnSale)`) configurationProblemRegexp = regexp.MustCompile(`(?i)(AzureBastionSubnet|not supported in your requested Availability Zone|InvalidParameter|InvalidParameterValue|notFound|NetcfgInvalidSubnet|InvalidSubnet|Invalid value|KubeletHasInsufficientMemory|KubeletHasDiskPressure|KubeletHasInsufficientPID|violates constraint|no attached internet gateway found|Your query returned no results|PrivateEndpointNetworkPoliciesCannotBeEnabledOnPrivateEndpointSubnet|invalid VPC attributes|PrivateLinkServiceNetworkPoliciesCannotBeEnabledOnPrivateLinkServiceSubnet|unrecognized feature gate|runtime-config invalid key|LoadBalancingRuleMustDisableSNATSinceSameFrontendIPConfigurationIsReferencedByOutboundRule|strict decoder error|not allowed to configure an unsupported|error during apply of object .* is invalid:|OverconstrainedZonalAllocationRequest|duplicate zones|overlapping zones)`) retryableConfigurationProblemRegexp = regexp.MustCompile(`(?i)(is misconfigured and requires zero voluntary evictions|SDK.CanNotResolveEndpoint|The requested configuration is currently not supported)`) ) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go index 30f8e4ce..6ae813d1 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/helper/helper.go @@ -1491,16 +1491,15 @@ func IsCoreDNSAutoscalingModeUsed(systemComponents *gardencorev1beta1.SystemComp // GetShootCARotationPhase returns the specified shoot CA rotation phase or an empty string func GetShootCARotationPhase(credentials *gardencorev1beta1.ShootCredentials) gardencorev1beta1.ShootCredentialsRotationPhase { - if credentials != nil && - credentials.Rotation != nil && - credentials.Rotation.CertificateAuthorities != nil { + if credentials != nil && credentials.Rotation != nil && credentials.Rotation.CertificateAuthorities != nil { return credentials.Rotation.CertificateAuthorities.Phase } return "" } -// SetShootCARotationPhase sets the .status.credentials.rotation.certificateAuthorities.phase field of the Shoot. -func SetShootCARotationPhase(shoot *gardencorev1beta1.Shoot, phase gardencorev1beta1.ShootCredentialsRotationPhase) { +// MutateShootCARotation mutates the .status.credentials.rotation.certificateAuthorities field based on the provided +// mutation function. If the field is nil then it is initialized. +func MutateShootCARotation(shoot *gardencorev1beta1.Shoot, f func(*gardencorev1beta1.ShootCARotation)) { if shoot.Status.Credentials == nil { shoot.Status.Credentials = &gardencorev1beta1.ShootCredentials{} } @@ -1510,5 +1509,68 @@ func SetShootCARotationPhase(shoot *gardencorev1beta1.Shoot, phase gardencorev1b if shoot.Status.Credentials.Rotation.CertificateAuthorities == nil { shoot.Status.Credentials.Rotation.CertificateAuthorities = &gardencorev1beta1.ShootCARotation{} } - shoot.Status.Credentials.Rotation.CertificateAuthorities.Phase = phase + + f(shoot.Status.Credentials.Rotation.CertificateAuthorities) +} + +// MutateShootKubeconfigRotation mutates the .status.credentials.rotation.kubeconfig field based on the provided +// mutation function. If the field is nil then it is initialized. +func MutateShootKubeconfigRotation(shoot *gardencorev1beta1.Shoot, f func(*gardencorev1beta1.ShootKubeconfigRotation)) { + if shoot.Status.Credentials == nil { + shoot.Status.Credentials = &gardencorev1beta1.ShootCredentials{} + } + if shoot.Status.Credentials.Rotation == nil { + shoot.Status.Credentials.Rotation = &gardencorev1beta1.ShootCredentialsRotation{} + } + if shoot.Status.Credentials.Rotation.Kubeconfig == nil { + shoot.Status.Credentials.Rotation.Kubeconfig = &gardencorev1beta1.ShootKubeconfigRotation{} + } + + f(shoot.Status.Credentials.Rotation.Kubeconfig) +} + +// IsShootKubeconfigRotationInitiationTimeAfterLastCompletionTime returns true when the lastInitiationTime in the +// .status.credentials.rotation.kubeconfig field is newer than the lastCompletionTime. This is also true if the +// lastCompletionTime is unset. +func IsShootKubeconfigRotationInitiationTimeAfterLastCompletionTime(credentials *gardencorev1beta1.ShootCredentials) bool { + if credentials == nil || + credentials.Rotation == nil || + credentials.Rotation.Kubeconfig == nil || + credentials.Rotation.Kubeconfig.LastInitiationTime == nil { + return false + } + + return credentials.Rotation.Kubeconfig.LastCompletionTime == nil || + credentials.Rotation.Kubeconfig.LastCompletionTime.Before(credentials.Rotation.Kubeconfig.LastInitiationTime) +} + +// MutateShootSSHKeypairRotation mutates the .status.credentials.rotation.sshKeypair field based on the provided +// mutation function. If the field is nil then it is initialized. +func MutateShootSSHKeypairRotation(shoot *gardencorev1beta1.Shoot, f func(*gardencorev1beta1.ShootSSHKeypairRotation)) { + if shoot.Status.Credentials == nil { + shoot.Status.Credentials = &gardencorev1beta1.ShootCredentials{} + } + if shoot.Status.Credentials.Rotation == nil { + shoot.Status.Credentials.Rotation = &gardencorev1beta1.ShootCredentialsRotation{} + } + if shoot.Status.Credentials.Rotation.SSHKeypair == nil { + shoot.Status.Credentials.Rotation.SSHKeypair = &gardencorev1beta1.ShootSSHKeypairRotation{} + } + + f(shoot.Status.Credentials.Rotation.SSHKeypair) +} + +// IsShootSSHKeypairRotationInitiationTimeAfterLastCompletionTime returns true when the lastInitiationTime in the +// .status.credentials.rotation.sshKeypair field is newer than the lastCompletionTime. This is also true if the +// lastCompletionTime is unset. +func IsShootSSHKeypairRotationInitiationTimeAfterLastCompletionTime(credentials *gardencorev1beta1.ShootCredentials) bool { + if credentials == nil || + credentials.Rotation == nil || + credentials.Rotation.SSHKeypair == nil || + credentials.Rotation.SSHKeypair.LastInitiationTime == nil { + return false + } + + return credentials.Rotation.SSHKeypair.LastCompletionTime == nil || + credentials.Rotation.SSHKeypair.LastCompletionTime.Before(credentials.Rotation.SSHKeypair.LastInitiationTime) } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go index 99d266ac..88a0a158 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go @@ -202,18 +202,47 @@ type ShootCredentialsRotation struct { // CertificateAuthorities contains information about the certificate authority credential rotation. // +optional CertificateAuthorities *ShootCARotation `json:"certificateAuthorities,omitempty" protobuf:"bytes,1,opt,name=certificateAuthorities"` + // Kubeconfig contains information about the kubeconfig credential rotation. + // +optional + Kubeconfig *ShootKubeconfigRotation `json:"kubeconfig,omitempty" protobuf:"bytes,2,opt,name=kubeconfig"` + // SSHKeypair contains information about the ssh-keypair credential rotation. + // +optional + SSHKeypair *ShootSSHKeypairRotation `json:"sshKeypair,omitempty" protobuf:"bytes,3,opt,name=sshKeypair"` } // ShootCARotation contains information about the certificate authority credential rotation. type ShootCARotation struct { // Phase describes the phase of the certificate authority credential rotation. Phase ShootCredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully // completed. // +optional LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` } +// ShootKubeconfigRotation contains information about the kubeconfig credential rotation. +type ShootKubeconfigRotation struct { + // LastInitiationTime is the most recent time when the kubeconfig credential rotation was initiated. + // +optional + LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,1,opt,name=lastInitiationTime"` + // LastCompletionTime is the most recent time when the kubeconfig credential rotation was successfully completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` +} + +// ShootSSHKeypairRotation contains information about the ssh-keypair credential rotation. +type ShootSSHKeypairRotation struct { + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. + // +optional + LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,1,opt,name=lastInitiationTime"` + // LastCompletionTime is the most recent time when the ssh-keypair credential rotation was successfully completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` +} + // ShootCredentialsRotationPhase is a string alias. type ShootCredentialsRotationPhase string @@ -376,7 +405,7 @@ type NamedResourceReference struct { // Hibernation contains information whether the Shoot is suspended or not. type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. - // If it is false or nil, the Shoot's desired state is to be awaken. + // If it is false or nil, the Shoot's desired state is to be awakened. // +optional Enabled *bool `json:"enabled,omitempty" protobuf:"varint,1,opt,name=enabled"` // Schedules determine the hibernation schedules. @@ -633,6 +662,8 @@ type ServiceAccountConfig struct { // MaxTokenExpiration is the maximum validity duration of a token created by the service account token issuer. If an // otherwise valid TokenRequest with a validity duration larger than this value is requested, a token will be issued // with a validity duration of this value. + // This field must be within [30d,90d] when the ShootMaxTokenExpirationValidation feature gate is enabled. + // This field will be overwritten to be within [30d,90d] when the ShootMaxTokenExpirationOverwrite feature gate is enabled. // +optional MaxTokenExpiration *metav1.Duration `json:"maxTokenExpiration,omitempty" protobuf:"bytes,4,opt,name=maxTokenExpiration"` // AcceptedIssuers is an additional set of issuers that are used to determine which service account tokens are accepted. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go index 6f5de772..4afb669e 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go @@ -1352,6 +1352,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*ShootKubeconfigRotation)(nil), (*core.ShootKubeconfigRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(a.(*ShootKubeconfigRotation), b.(*core.ShootKubeconfigRotation), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*core.ShootKubeconfigRotation)(nil), (*ShootKubeconfigRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_core_ShootKubeconfigRotation_To_v1beta1_ShootKubeconfigRotation(a.(*core.ShootKubeconfigRotation), b.(*ShootKubeconfigRotation), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*ShootList)(nil), (*core.ShootList)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1beta1_ShootList_To_core_ShootList(a.(*ShootList), b.(*core.ShootList), scope) }); err != nil { @@ -1382,6 +1392,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*ShootSSHKeypairRotation)(nil), (*core.ShootSSHKeypairRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(a.(*ShootSSHKeypairRotation), b.(*core.ShootSSHKeypairRotation), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*core.ShootSSHKeypairRotation)(nil), (*ShootSSHKeypairRotation)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_core_ShootSSHKeypairRotation_To_v1beta1_ShootSSHKeypairRotation(a.(*core.ShootSSHKeypairRotation), b.(*ShootSSHKeypairRotation), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*ShootSpec)(nil), (*core.ShootSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1beta1_ShootSpec_To_core_ShootSpec(a.(*ShootSpec), b.(*core.ShootSpec), scope) }); err != nil { @@ -4936,6 +4956,7 @@ func Convert_core_ShootAdvertisedAddress_To_v1beta1_ShootAdvertisedAddress(in *c func autoConvert_v1beta1_ShootCARotation_To_core_ShootCARotation(in *ShootCARotation, out *core.ShootCARotation, s conversion.Scope) error { out.Phase = core.ShootCredentialsRotationPhase(in.Phase) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) return nil } @@ -4947,6 +4968,7 @@ func Convert_v1beta1_ShootCARotation_To_core_ShootCARotation(in *ShootCARotation func autoConvert_core_ShootCARotation_To_v1beta1_ShootCARotation(in *core.ShootCARotation, out *ShootCARotation, s conversion.Scope) error { out.Phase = ShootCredentialsRotationPhase(in.Phase) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) return nil } @@ -4978,6 +5000,8 @@ func Convert_core_ShootCredentials_To_v1beta1_ShootCredentials(in *core.ShootCre func autoConvert_v1beta1_ShootCredentialsRotation_To_core_ShootCredentialsRotation(in *ShootCredentialsRotation, out *core.ShootCredentialsRotation, s conversion.Scope) error { out.CertificateAuthorities = (*core.ShootCARotation)(unsafe.Pointer(in.CertificateAuthorities)) + out.Kubeconfig = (*core.ShootKubeconfigRotation)(unsafe.Pointer(in.Kubeconfig)) + out.SSHKeypair = (*core.ShootSSHKeypairRotation)(unsafe.Pointer(in.SSHKeypair)) return nil } @@ -4988,6 +5012,8 @@ func Convert_v1beta1_ShootCredentialsRotation_To_core_ShootCredentialsRotation(i func autoConvert_core_ShootCredentialsRotation_To_v1beta1_ShootCredentialsRotation(in *core.ShootCredentialsRotation, out *ShootCredentialsRotation, s conversion.Scope) error { out.CertificateAuthorities = (*ShootCARotation)(unsafe.Pointer(in.CertificateAuthorities)) + out.Kubeconfig = (*ShootKubeconfigRotation)(unsafe.Pointer(in.Kubeconfig)) + out.SSHKeypair = (*ShootSSHKeypairRotation)(unsafe.Pointer(in.SSHKeypair)) return nil } @@ -4996,6 +5022,28 @@ func Convert_core_ShootCredentialsRotation_To_v1beta1_ShootCredentialsRotation(i return autoConvert_core_ShootCredentialsRotation_To_v1beta1_ShootCredentialsRotation(in, out, s) } +func autoConvert_v1beta1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(in *ShootKubeconfigRotation, out *core.ShootKubeconfigRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + return nil +} + +// Convert_v1beta1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation is an autogenerated conversion function. +func Convert_v1beta1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(in *ShootKubeconfigRotation, out *core.ShootKubeconfigRotation, s conversion.Scope) error { + return autoConvert_v1beta1_ShootKubeconfigRotation_To_core_ShootKubeconfigRotation(in, out, s) +} + +func autoConvert_core_ShootKubeconfigRotation_To_v1beta1_ShootKubeconfigRotation(in *core.ShootKubeconfigRotation, out *ShootKubeconfigRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + return nil +} + +// Convert_core_ShootKubeconfigRotation_To_v1beta1_ShootKubeconfigRotation is an autogenerated conversion function. +func Convert_core_ShootKubeconfigRotation_To_v1beta1_ShootKubeconfigRotation(in *core.ShootKubeconfigRotation, out *ShootKubeconfigRotation, s conversion.Scope) error { + return autoConvert_core_ShootKubeconfigRotation_To_v1beta1_ShootKubeconfigRotation(in, out, s) +} + func autoConvert_v1beta1_ShootList_To_core_ShootList(in *ShootList, out *core.ShootList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { @@ -5088,6 +5136,28 @@ func Convert_core_ShootNetworks_To_v1beta1_ShootNetworks(in *core.ShootNetworks, return autoConvert_core_ShootNetworks_To_v1beta1_ShootNetworks(in, out, s) } +func autoConvert_v1beta1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(in *ShootSSHKeypairRotation, out *core.ShootSSHKeypairRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + return nil +} + +// Convert_v1beta1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation is an autogenerated conversion function. +func Convert_v1beta1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(in *ShootSSHKeypairRotation, out *core.ShootSSHKeypairRotation, s conversion.Scope) error { + return autoConvert_v1beta1_ShootSSHKeypairRotation_To_core_ShootSSHKeypairRotation(in, out, s) +} + +func autoConvert_core_ShootSSHKeypairRotation_To_v1beta1_ShootSSHKeypairRotation(in *core.ShootSSHKeypairRotation, out *ShootSSHKeypairRotation, s conversion.Scope) error { + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + return nil +} + +// Convert_core_ShootSSHKeypairRotation_To_v1beta1_ShootSSHKeypairRotation is an autogenerated conversion function. +func Convert_core_ShootSSHKeypairRotation_To_v1beta1_ShootSSHKeypairRotation(in *core.ShootSSHKeypairRotation, out *ShootSSHKeypairRotation, s conversion.Scope) error { + return autoConvert_core_ShootSSHKeypairRotation_To_v1beta1_ShootSSHKeypairRotation(in, out, s) +} + func autoConvert_v1beta1_ShootSpec_To_core_ShootSpec(in *ShootSpec, out *core.ShootSpec, s conversion.Scope) error { out.Addons = (*core.Addons)(unsafe.Pointer(in.Addons)) out.CloudProfileName = in.CloudProfileName diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go index f9f5619b..2dc8407d 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go @@ -3782,6 +3782,10 @@ func (in *ShootAdvertisedAddress) DeepCopy() *ShootAdvertisedAddress { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootCARotation) DeepCopyInto(out *ShootCARotation) { *out = *in + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() + } if in.LastCompletionTime != nil { in, out := &in.LastCompletionTime, &out.LastCompletionTime *out = (*in).DeepCopy() @@ -3828,6 +3832,16 @@ func (in *ShootCredentialsRotation) DeepCopyInto(out *ShootCredentialsRotation) *out = new(ShootCARotation) (*in).DeepCopyInto(*out) } + if in.Kubeconfig != nil { + in, out := &in.Kubeconfig, &out.Kubeconfig + *out = new(ShootKubeconfigRotation) + (*in).DeepCopyInto(*out) + } + if in.SSHKeypair != nil { + in, out := &in.SSHKeypair, &out.SSHKeypair + *out = new(ShootSSHKeypairRotation) + (*in).DeepCopyInto(*out) + } return } @@ -3841,6 +3855,30 @@ func (in *ShootCredentialsRotation) DeepCopy() *ShootCredentialsRotation { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShootKubeconfigRotation) DeepCopyInto(out *ShootKubeconfigRotation) { + *out = *in + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootKubeconfigRotation. +func (in *ShootKubeconfigRotation) DeepCopy() *ShootKubeconfigRotation { + if in == nil { + return nil + } + out := new(ShootKubeconfigRotation) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootList) DeepCopyInto(out *ShootList) { *out = *in @@ -3926,6 +3964,30 @@ func (in *ShootNetworks) DeepCopy() *ShootNetworks { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShootSSHKeypairRotation) DeepCopyInto(out *ShootSSHKeypairRotation) { + *out = *in + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootSSHKeypairRotation. +func (in *ShootSSHKeypairRotation) DeepCopy() *ShootSSHKeypairRotation { + if in == nil { + return nil + } + out := new(ShootSSHKeypairRotation) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootSpec) DeepCopyInto(out *ShootSpec) { *out = *in diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go index e743c72d..620dba84 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go @@ -1419,30 +1419,6 @@ func (in *ExtensionResourceState) DeepCopy() *ExtensionResourceState { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExtensionStatus) DeepCopyInto(out *ExtensionStatus) { - *out = *in - if in.Purpose != nil { - in, out := &in.Purpose, &out.Purpose - *out = new(string) - **out = **in - } - if in.Status != nil { - out.Status = in.Status.DeepCopyObject() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionStatus. -func (in *ExtensionStatus) DeepCopy() *ExtensionStatus { - if in == nil { - return nil - } - out := new(ExtensionStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Gardener) DeepCopyInto(out *Gardener) { *out = *in @@ -1463,6 +1439,13 @@ func (in *Gardener) DeepCopy() *Gardener { func (in *GardenerResourceData) DeepCopyInto(out *GardenerResourceData) { *out = *in in.Data.DeepCopyInto(&out.Data) + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } @@ -3971,6 +3954,10 @@ func (in *ShootAdvertisedAddress) DeepCopy() *ShootAdvertisedAddress { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootCARotation) DeepCopyInto(out *ShootCARotation) { *out = *in + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() + } if in.LastCompletionTime != nil { in, out := &in.LastCompletionTime, &out.LastCompletionTime *out = (*in).DeepCopy() @@ -4017,6 +4004,16 @@ func (in *ShootCredentialsRotation) DeepCopyInto(out *ShootCredentialsRotation) *out = new(ShootCARotation) (*in).DeepCopyInto(*out) } + if in.Kubeconfig != nil { + in, out := &in.Kubeconfig, &out.Kubeconfig + *out = new(ShootKubeconfigRotation) + (*in).DeepCopyInto(*out) + } + if in.SSHKeypair != nil { + in, out := &in.SSHKeypair, &out.SSHKeypair + *out = new(ShootSSHKeypairRotation) + (*in).DeepCopyInto(*out) + } return } @@ -4031,71 +4028,29 @@ func (in *ShootCredentialsRotation) DeepCopy() *ShootCredentialsRotation { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ShootExtensionStatus) DeepCopyInto(out *ShootExtensionStatus) { +func (in *ShootKubeconfigRotation) DeepCopyInto(out *ShootKubeconfigRotation) { *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Statuses != nil { - in, out := &in.Statuses, &out.Statuses - *out = make([]ExtensionStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootExtensionStatus. -func (in *ShootExtensionStatus) DeepCopy() *ShootExtensionStatus { - if in == nil { - return nil - } - out := new(ShootExtensionStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ShootExtensionStatus) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ShootExtensionStatusList) DeepCopyInto(out *ShootExtensionStatusList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ShootExtensionStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootExtensionStatusList. -func (in *ShootExtensionStatusList) DeepCopy() *ShootExtensionStatusList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootKubeconfigRotation. +func (in *ShootKubeconfigRotation) DeepCopy() *ShootKubeconfigRotation { if in == nil { return nil } - out := new(ShootExtensionStatusList) + out := new(ShootKubeconfigRotation) in.DeepCopyInto(out) return out } -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ShootExtensionStatusList) 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 *ShootList) DeepCopyInto(out *ShootList) { *out = *in @@ -4176,6 +4131,30 @@ func (in *ShootNetworks) DeepCopy() *ShootNetworks { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShootSSHKeypairRotation) DeepCopyInto(out *ShootSSHKeypairRotation) { + *out = *in + if in.LastInitiationTime != nil { + in, out := &in.LastInitiationTime, &out.LastInitiationTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootSSHKeypairRotation. +func (in *ShootSSHKeypairRotation) DeepCopy() *ShootSSHKeypairRotation { + if in == nil { + return nil + } + out := new(ShootSSHKeypairRotation) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootSpec) DeepCopyInto(out *ShootSpec) { *out = *in diff --git a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/applier.go b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/applier.go index 79edd561..869291a2 100644 --- a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/applier.go +++ b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/applier.go @@ -19,6 +19,7 @@ import ( "context" "fmt" "io" + "strings" utilerrors "github.com/gardener/gardener/pkg/utils/errors" @@ -146,6 +147,29 @@ var ( oldSvcType = string(corev1.ServiceTypeClusterIP) } + annotations, found, _ := unstructured.NestedMap(oldObj.Object, "metadata", "annotations") + if found { + mergedAnnotations := make(map[string]interface{}) + for key, value := range annotations { + annotation := key + annotationValue := value.(string) + for _, keepAnnotation := range keepServiceAnnotations() { + if strings.HasPrefix(annotation, keepAnnotation) { + mergedAnnotations[annotation] = annotationValue + } + } + } + + newAnnotations, found, _ := unstructured.NestedMap(newObj.Object, "metadata", "annotations") + if found { + for key, value := range newAnnotations { + mergedAnnotations[key] = value.(string) + } + } + + _ = unstructured.SetNestedMap(newObj.Object, mergedAnnotations, "metadata", "annotations") + } + switch newSvcType { case string(corev1.ServiceTypeLoadBalancer), string(corev1.ServiceTypeNodePort): oldPorts, found, _ := unstructured.NestedSlice(oldObj.Object, "spec", "ports") @@ -263,6 +287,10 @@ func CopyApplierOptions(in MergeFuncs) MergeFuncs { return out } +func keepServiceAnnotations() []string { + return []string{"loadbalancer.openstack.org"} +} + func (a *defaultApplier) mergeObjects(newObj, oldObj *unstructured.Unstructured, mergeFuncs MergeFuncs) error { newObj.SetResourceVersion(oldObj.GetResourceVersion()) diff --git a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/scaling.go b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/scaling.go index 1275e145..d8355616 100644 --- a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/scaling.go +++ b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/scaling.go @@ -84,3 +84,39 @@ func WaitUntilDeploymentScaledToDesiredReplicas(ctx context.Context, client clie return retry.MinorError(fmt.Errorf("deployment %q currently has '%d' replicas. Desired: %d", key.Name, deployment.Status.AvailableReplicas, desiredReplicas)) }) } + +// WaitUntilStatefulSetScaledToDesiredReplicas waits for the number of available replicas to be equal to the StatefulSet's desired replicas count. +func WaitUntilStatefulSetScaledToDesiredReplicas(ctx context.Context, client client.Client, key types.NamespacedName, desiredReplicas int32) error { + return retry.UntilTimeout(ctx, 5*time.Second, 300*time.Second, func(ctx context.Context) (done bool, err error) { + statefulSet := &appsv1.StatefulSet{} + if err := client.Get(ctx, key, statefulSet); err != nil { + return retry.SevereError(err) + } + + if statefulSet.Generation != statefulSet.Status.ObservedGeneration { + return retry.MinorError(fmt.Errorf("statefullSet %q not observed at latest generation (%d/%d)", key.Name, + statefulSet.Status.ObservedGeneration, statefulSet.Generation)) + } + + if statefulSet.Spec.Replicas == nil || *statefulSet.Spec.Replicas != desiredReplicas { + if statefulSet.Spec.Replicas == nil { + return retry.SevereError(fmt.Errorf("waiting for statefulSet %q to scale failed. spec.replicas is nill. Generation %d", key.Name, statefulSet.Generation)) + } + return retry.SevereError(fmt.Errorf("waiting for statefulSet %q to scale failed. spec.replicas does not match the desired replicas", key.Name)) + } + + if statefulSet.Status.Replicas == desiredReplicas && statefulSet.Status.AvailableReplicas == desiredReplicas { + return retry.Ok() + } + + return retry.MinorError(fmt.Errorf("statefulSet %q currently has '%d' replicas. Desired: %d", key.Name, statefulSet.Status.AvailableReplicas, desiredReplicas)) + }) +} + +// ScaleStatefulSetAndWaitUntilScaled scales a StatefulSet and wait until is scaled. +func ScaleStatefulSetAndWaitUntilScaled(ctx context.Context, c client.Client, key client.ObjectKey, replicas int32) error { + if err := ScaleStatefulSet(ctx, c, key, replicas); err != nil { + return err + } + return WaitUntilStatefulSetScaledToDesiredReplicas(ctx, c, key, replicas) +} diff --git a/vendor/github.com/gardener/gardener/pkg/controllerutils/associations.go b/vendor/github.com/gardener/gardener/pkg/controllerutils/associations.go index eed9b630..ad566ef8 100644 --- a/vendor/github.com/gardener/gardener/pkg/controllerutils/associations.go +++ b/vendor/github.com/gardener/gardener/pkg/controllerutils/associations.go @@ -18,13 +18,13 @@ import ( "context" "fmt" + "github.com/gardener/gardener/pkg/apis/core" + gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1" + gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/controller-runtime/pkg/client" - - gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1" - gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" - gardenoperationsv1alpha1 "github.com/gardener/gardener/pkg/apis/operations/v1alpha1" ) // DetermineShootsAssociatedTo gets a to determine the Shoots resources which are associated @@ -89,94 +89,28 @@ func DetermineSecretBindingAssociations(ctx context.Context, c client.Client, qu // DetermineBackupBucketAssociations determine the BackupBucket resources which are associated // to seed with name func DetermineBackupBucketAssociations(ctx context.Context, c client.Client, seedName string) ([]string, error) { - return determineAssociations(ctx, c, seedName, &gardencorev1beta1.BackupBucketList{}, func(o runtime.Object) (string, error) { - backupBucket, ok := o.(*gardencorev1beta1.BackupBucket) - if !ok { - return "", fmt.Errorf("got unexpected object when expecting BackupBucket") - } - if backupBucket.Spec.SeedName == nil { - return "", nil - } - return *backupBucket.Spec.SeedName, nil - }) -} - -// DetermineBackupEntryAssociations determine the BackupEntry resources which are associated -// to seed with name -func DetermineBackupEntryAssociations(ctx context.Context, c client.Client, seedName string) ([]string, error) { - return determineAssociations(ctx, c, seedName, &gardencorev1beta1.BackupEntryList{}, func(o runtime.Object) (string, error) { - backupEntry, ok := o.(*gardencorev1beta1.BackupEntry) - if !ok { - return "", fmt.Errorf("got unexpected object when expecting BackupEntry") - } - if backupEntry.Spec.SeedName == nil { - return "", nil - } - return *backupEntry.Spec.SeedName, nil - }) -} - -// DetermineBastionAssociations determine the Bastion resources which are associated -// to seed with name -func DetermineBastionAssociations(ctx context.Context, c client.Client, seedName string) ([]string, error) { - return determineAssociations(ctx, c, seedName, &gardenoperationsv1alpha1.BastionList{}, func(o runtime.Object) (string, error) { - bastion, ok := o.(*gardenoperationsv1alpha1.Bastion) - if !ok { - return "", fmt.Errorf("got unexpected object when expecting Bastion") - } - if bastion.Spec.SeedName == nil { - return "", nil - } - return *bastion.Spec.SeedName, nil - }) + return determineAssociations(ctx, c, &gardencorev1beta1.BackupBucketList{}, client.MatchingFields{core.BackupBucketSeedName: seedName}) } // DetermineControllerInstallationAssociations determine the ControllerInstallation resources which are associated // to seed with name func DetermineControllerInstallationAssociations(ctx context.Context, c client.Client, seedName string) ([]string, error) { - return determineAssociations(ctx, c, seedName, &gardencorev1beta1.ControllerInstallationList{}, func(o runtime.Object) (string, error) { - controllerInstallation, ok := o.(*gardencorev1beta1.ControllerInstallation) - if !ok { - return "", fmt.Errorf("got unexpected object when expecting ControllerInstallation") - } - return controllerInstallation.Spec.SeedRef.Name, nil - }) + return determineAssociations(ctx, c, &gardencorev1beta1.ControllerInstallationList{}, client.MatchingFields{core.SeedRefName: seedName}) } -// DetermineShootAssociations determine the Shoot resources which are associated -// to seed with name -func DetermineShootAssociations(ctx context.Context, c client.Client, seedName string) ([]string, error) { - return determineAssociations(ctx, c, seedName, &gardencorev1beta1.ShootList{}, func(o runtime.Object) (string, error) { - shoot, ok := o.(*gardencorev1beta1.Shoot) - if !ok { - return "", fmt.Errorf("got unexpected object when expecting Shoot") - } - if shoot.Spec.SeedName == nil { - return "", nil - } - return *shoot.Spec.SeedName, nil - }) -} - -func determineAssociations(ctx context.Context, c client.Client, seedName string, listObj client.ObjectList, seedNameFunc func(runtime.Object) (string, error)) ([]string, error) { - if err := c.List(ctx, listObj); err != nil { +func determineAssociations(ctx context.Context, c client.Client, listObj client.ObjectList, fieldSelector client.MatchingFields) ([]string, error) { + if err := c.List(ctx, listObj, fieldSelector); err != nil { return nil, err } var associations []string err := meta.EachListItem(listObj, func(obj runtime.Object) error { - name, err := seedNameFunc(obj) + accessor, err := meta.Accessor(obj) if err != nil { return err } - if name == seedName { - accessor, err := meta.Accessor(obj) - if err != nil { - return err - } - associations = append(associations, accessor.GetName()) - } + associations = append(associations, accessor.GetName()) return nil }) return associations, err diff --git a/vendor/github.com/gardener/gardener/pkg/controllerutils/predicate/mapper.go b/vendor/github.com/gardener/gardener/pkg/controllerutils/predicate/mapper.go deleted file mode 100644 index 01311a2b..00000000 --- a/vendor/github.com/gardener/gardener/pkg/controllerutils/predicate/mapper.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file -// -// 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 predicate - -import ( - "sigs.k8s.io/controller-runtime/pkg/event" - "sigs.k8s.io/controller-runtime/pkg/predicate" - "sigs.k8s.io/controller-runtime/pkg/runtime/inject" -) - -// MapperTrigger is a trigger a Mapper can react upon. -type MapperTrigger uint8 - -const ( - // CreateTrigger is a MapperTrigger for create events. - CreateTrigger MapperTrigger = iota - // UpdateOldTrigger is a MapperTrigger for update events with the old meta and object. - UpdateOldTrigger - // UpdateNewTrigger is a MapperTrigger for update events with the new meta and object. - UpdateNewTrigger - // DeleteTrigger is a MapperTrigger for delete events. - DeleteTrigger - // GenericTrigger is a MapperTrigger for generic events. - GenericTrigger -) - -// Mapper maps any event (in form of a GenericEvent) to a boolean whether the event shall be -// propagated or not. -type Mapper interface { - Map(event event.GenericEvent) bool -} - -// MapperFunc is a function that implements Mapper. -type MapperFunc func(event.GenericEvent) bool - -// Map implements Mapper. -func (f MapperFunc) Map(event event.GenericEvent) bool { - return f(event) -} - -type mapperWithTriggers struct { - triggers map[MapperTrigger]struct{} - mapper Mapper -} - -// FromMapper creates a new predicate from the given Mapper that reacts on the given MapperTriggers. -func FromMapper(mapper Mapper, triggers ...MapperTrigger) predicate.Predicate { - t := make(map[MapperTrigger]struct{}) - for _, trigger := range triggers { - t[trigger] = struct{}{} - } - return &mapperWithTriggers{t, mapper} -} - -func (m *mapperWithTriggers) InjectFunc(f inject.Func) error { - return f(m.mapper) -} - -func (m *mapperWithTriggers) Create(e event.CreateEvent) bool { - if _, ok := m.triggers[CreateTrigger]; ok { - return m.mapper.Map(event.GenericEvent(e)) - } - return true -} - -func (m *mapperWithTriggers) Delete(e event.DeleteEvent) bool { - if _, ok := m.triggers[DeleteTrigger]; ok { - return m.mapper.Map(event.GenericEvent{Object: e.Object}) - } - return true -} - -func (m *mapperWithTriggers) Update(e event.UpdateEvent) bool { - if _, ok := m.triggers[UpdateOldTrigger]; ok { - return m.mapper.Map(event.GenericEvent{Object: e.ObjectOld}) - } - if _, ok := m.triggers[UpdateNewTrigger]; ok { - return m.mapper.Map(event.GenericEvent{Object: e.ObjectNew}) - } - return true -} - -func (m *mapperWithTriggers) Generic(e event.GenericEvent) bool { - if _, ok := m.triggers[GenericTrigger]; ok { - return m.mapper.Map(event.GenericEvent{Object: e.Object}) - } - return true -} diff --git a/vendor/github.com/gardener/gardener/pkg/extensions/cluster.go b/vendor/github.com/gardener/gardener/pkg/extensions/cluster.go index 929274df..27f4049e 100644 --- a/vendor/github.com/gardener/gardener/pkg/extensions/cluster.go +++ b/vendor/github.com/gardener/gardener/pkg/extensions/cluster.go @@ -16,8 +16,11 @@ package extensions import ( "context" + "fmt" + gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1" gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" + v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants" extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" "github.com/gardener/gardener/pkg/client/kubernetes" "github.com/gardener/gardener/pkg/controllerutils" @@ -178,6 +181,51 @@ func ShootFromCluster(cluster *extensionsv1alpha1.Cluster) (*gardencorev1beta1.S return shoot, nil } +// GenericTokenKubeconfigSecretNameFromCluster reads the generic-token-kubeconfig.secret.gardener.cloud/name annotation +// and returns its value. If the annotation is not present then it falls back to the deprecated +// SecretNameGenericTokenKubeconfig. +func GenericTokenKubeconfigSecretNameFromCluster(cluster *Cluster) string { + if v, ok := cluster.ObjectMeta.Annotations[v1beta1constants.AnnotationKeyGenericTokenKubeconfigSecretName]; ok { + return v + } + return v1beta1constants.SecretNameGenericTokenKubeconfig +} + +// GetShootStateForCluster retrieves the ShootState and the Shoot resources for a given Cluster name by first fetching +// the *extensionsv1alpha1.Cluster object in the seed, extracting the Shoot resource from it and then fetching the +// *gardencorev1alpha1.ShootState resource from the garden. +func GetShootStateForCluster( + ctx context.Context, + gardenClient client.Client, + seedClient client.Client, + clusterName string, +) ( + *gardencorev1alpha1.ShootState, + *gardencorev1beta1.Shoot, + error, +) { + cluster := &extensionsv1alpha1.Cluster{} + if err := seedClient.Get(ctx, kutil.Key(clusterName), cluster); err != nil { + return nil, nil, err + } + + shoot, err := ShootFromCluster(cluster) + if err != nil { + return nil, nil, err + } + + if shoot == nil { + return nil, nil, fmt.Errorf("cluster resource %s doesn't contain shoot resource in raw format", cluster.Name) + } + + shootState := &gardencorev1alpha1.ShootState{} + if err := gardenClient.Get(ctx, kutil.Key(shoot.Namespace, shoot.Name), shootState); err != nil { + return nil, nil, err + } + + return shootState, shoot, nil +} + // GetShoot tries to read Gardener's Cluster extension resource in the given namespace and return the embedded Shoot resource. func GetShoot(ctx context.Context, c client.Reader, namespace string) (*gardencorev1beta1.Shoot, error) { cluster := &extensionsv1alpha1.Cluster{} diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go index 60b438d5..844153e4 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/types.go @@ -18,6 +18,7 @@ import ( gardencore "github.com/gardener/gardener/pkg/apis/core" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" componentbaseconfig "k8s.io/component-base/config" "k8s.io/klog" @@ -137,6 +138,8 @@ type GardenletControllerConfiguration struct { SeedAPIServerNetworkPolicy *SeedAPIServerNetworkPolicyControllerConfiguration // ManagedSeedControllerConfiguration the configuration of the ManagedSeed controller. ManagedSeed *ManagedSeedControllerConfiguration + // ShootSecretControllerConfiguration the configuration of the ShootSecret controller. + ShootSecret *ShootSecretControllerConfiguration } // BackupBucketControllerConfiguration defines the configuration of the BackupBucket @@ -282,6 +285,12 @@ type ShootMigrationControllerConfiguration struct { LastOperationStaleDuration *metav1.Duration } +// ShootSecretControllerConfiguration defines the configuration of the ShootSecret controller. +type ShootSecretControllerConfiguration struct { + // ConcurrentSyncs is the number of workers used for the controller to work on events. + ConcurrentSyncs *int +} + // StaleExtensionHealthChecks defines the configuration of the check for stale extension health checks. type StaleExtensionHealthChecks struct { // Enabled specifies whether the check for stale extensions health checks is enabled. @@ -367,7 +376,7 @@ type FluentBit struct { type Loki struct { // Enabled is used to enable or disable the shoot and seed Loki. // If FluentBit is used with a custom output the Loki can, Loki is maybe unused and can be disabled. - // If not set, by default Loki is enabled + // If not set, by default Loki is enabled. Enabled *bool // Garden contains configuration for the Loki in garden namespace. Garden *GardenLoki @@ -375,13 +384,16 @@ type Loki struct { // GardenLoki contains configuration for the Loki in garden namespace. type GardenLoki struct { - // Priority is the priority value for the Loki + // Priority is the priority value for the Loki. Priority *int32 + // Storage is the disk storage capacity of the central Loki. + // Defaults to 100Gi. + Storage *resource.Quantity } // ShootNodeLogging contains configuration for the shoot node logging. type ShootNodeLogging struct { - // ShootPurposes determines which shoots can have node logging by their purpose + // ShootPurposes determines which shoots can have node logging by their purpose. ShootPurposes []gardencore.ShootPurpose } @@ -389,11 +401,11 @@ type ShootNodeLogging struct { type Logging struct { // Enabled is used to enable or disable logging stack for clusters. Enabled *bool - // FluentBit contains configurations for the fluent-bit + // FluentBit contains configurations for the fluent-bit. FluentBit *FluentBit - // Loki contains configuration for the Loki + // Loki contains configuration for the Loki. Loki *Loki - // ShootNodeLogging contains configurations for the shoot node logging + // ShootNodeLogging contains configurations for the shoot node logging. ShootNodeLogging *ShootNodeLogging } diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/defaults.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/defaults.go index eb01f136..2d48352e 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/defaults.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/defaults.go @@ -48,48 +48,6 @@ func SetDefaults_GardenletConfiguration(obj *GardenletConfiguration) { if obj.Controllers == nil { obj.Controllers = &GardenletControllerConfiguration{} } - if obj.Controllers.BackupBucket == nil { - obj.Controllers.BackupBucket = &BackupBucketControllerConfiguration{} - } - if obj.Controllers.BackupEntry == nil { - obj.Controllers.BackupEntry = &BackupEntryControllerConfiguration{} - } - if obj.Controllers.BackupEntryMigration == nil { - obj.Controllers.BackupEntryMigration = &BackupEntryMigrationControllerConfiguration{} - } - if obj.Controllers.Bastion == nil { - obj.Controllers.Bastion = &BastionControllerConfiguration{} - } - if obj.Controllers.ControllerInstallation == nil { - obj.Controllers.ControllerInstallation = &ControllerInstallationControllerConfiguration{} - } - if obj.Controllers.ControllerInstallationCare == nil { - obj.Controllers.ControllerInstallationCare = &ControllerInstallationCareControllerConfiguration{} - } - if obj.Controllers.ControllerInstallationRequired == nil { - obj.Controllers.ControllerInstallationRequired = &ControllerInstallationRequiredControllerConfiguration{} - } - if obj.Controllers.Seed == nil { - obj.Controllers.Seed = &SeedControllerConfiguration{} - } - if obj.Controllers.Shoot == nil { - obj.Controllers.Shoot = &ShootControllerConfiguration{} - } - if obj.Controllers.ShootCare == nil { - obj.Controllers.ShootCare = &ShootCareControllerConfiguration{} - } - if obj.Controllers.ShootMigration == nil { - obj.Controllers.ShootMigration = &ShootMigrationControllerConfiguration{} - } - if obj.Controllers.ShootStateSync == nil { - obj.Controllers.ShootStateSync = &ShootStateSyncControllerConfiguration{} - } - if obj.Controllers.SeedAPIServerNetworkPolicy == nil { - obj.Controllers.SeedAPIServerNetworkPolicy = &SeedAPIServerNetworkPolicyControllerConfiguration{} - } - if obj.Controllers.ManagedSeed == nil { - obj.Controllers.ManagedSeed = &ManagedSeedControllerConfiguration{} - } if obj.LeaderElection == nil { obj.LeaderElection = &componentbaseconfigv1alpha1.LeaderElectionConfiguration{} @@ -120,6 +78,10 @@ func SetDefaults_GardenletConfiguration(obj *GardenletConfiguration) { obj.Server.HTTPS.Port = 2720 } + if obj.Logging == nil { + obj.Logging = &Logging{} + } + // TODO: consider enabling profiling by default (like in k8s components) if obj.SNI == nil { @@ -150,6 +112,55 @@ func SetDefaults_GardenletConfiguration(obj *GardenletConfiguration) { } } +// SetDefaults_GardenletControllerConfiguration sets defaults for the controller objects. +func SetDefaults_GardenletControllerConfiguration(obj *GardenletControllerConfiguration) { + if obj.BackupBucket == nil { + obj.BackupBucket = &BackupBucketControllerConfiguration{} + } + if obj.BackupEntry == nil { + obj.BackupEntry = &BackupEntryControllerConfiguration{} + } + if obj.BackupEntryMigration == nil { + obj.BackupEntryMigration = &BackupEntryMigrationControllerConfiguration{} + } + if obj.Bastion == nil { + obj.Bastion = &BastionControllerConfiguration{} + } + if obj.ControllerInstallation == nil { + obj.ControllerInstallation = &ControllerInstallationControllerConfiguration{} + } + if obj.ControllerInstallationCare == nil { + obj.ControllerInstallationCare = &ControllerInstallationCareControllerConfiguration{} + } + if obj.ControllerInstallationRequired == nil { + obj.ControllerInstallationRequired = &ControllerInstallationRequiredControllerConfiguration{} + } + if obj.Seed == nil { + obj.Seed = &SeedControllerConfiguration{} + } + if obj.Shoot == nil { + obj.Shoot = &ShootControllerConfiguration{} + } + if obj.ShootCare == nil { + obj.ShootCare = &ShootCareControllerConfiguration{} + } + if obj.ShootMigration == nil { + obj.ShootMigration = &ShootMigrationControllerConfiguration{} + } + if obj.ShootSecret == nil { + obj.ShootSecret = &ShootSecretControllerConfiguration{} + } + if obj.ShootStateSync == nil { + obj.ShootStateSync = &ShootStateSyncControllerConfiguration{} + } + if obj.SeedAPIServerNetworkPolicy == nil { + obj.SeedAPIServerNetworkPolicy = &SeedAPIServerNetworkPolicyControllerConfiguration{} + } + if obj.ManagedSeed == nil { + obj.ManagedSeed = &ManagedSeedControllerConfiguration{} + } +} + // SetDefaults_ClientConnectionConfiguration sets defaults for the client connection objects. func SetDefaults_ClientConnectionConfiguration(obj *componentbaseconfigv1alpha1.ClientConnectionConfiguration) { if obj.QPS == 0.0 { @@ -363,6 +374,13 @@ func SetDefaults_StaleExtensionHealthChecks(obj *StaleExtensionHealthChecks) { } } +// SetDefaults_ShootSecretControllerConfiguration sets defaults for the shoot secret controller. +func SetDefaults_ShootSecretControllerConfiguration(obj *ShootSecretControllerConfiguration) { + if obj.ConcurrentSyncs == nil { + obj.ConcurrentSyncs = pointer.Int(5) + } +} + // SetDefaults_ShootStateSyncControllerConfiguration sets defaults for the shoot state controller. func SetDefaults_ShootStateSyncControllerConfiguration(obj *ShootStateSyncControllerConfiguration) { if obj.ConcurrentSyncs == nil { @@ -443,3 +461,22 @@ func SetDefaults_SNIIngress(obj *SNIIngress) { } } } + +// SetDefaults_Logging sets defaults for the Logging stack. +func SetDefaults_Logging(obj *Logging) { + if obj.Enabled == nil { + obj.Enabled = pointer.BoolPtr(false) + } + if obj.Loki == nil { + obj.Loki = &Loki{} + } + if obj.Loki.Enabled == nil { + obj.Loki.Enabled = obj.Enabled + } + if obj.Loki.Garden == nil { + obj.Loki.Garden = &GardenLoki{} + } + if obj.Loki.Garden.Storage == nil { + obj.Loki.Garden.Storage = &DefaultCentralLokiStorage + } +} diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go index 876aa4fa..136cf904 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/types.go @@ -20,6 +20,7 @@ import ( gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" componentbaseconfigv1alpha1 "k8s.io/component-base/config/v1alpha1" "k8s.io/klog" @@ -175,6 +176,9 @@ type GardenletControllerConfiguration struct { // ManagedSeedControllerConfiguration the configuration of the ManagedSeed controller. // +optional ManagedSeed *ManagedSeedControllerConfiguration `json:"managedSeed,omitempty"` + // ShootSecretControllerConfiguration the configuration of the ShootSecret controller. + // +optional + ShootSecret *ShootSecretControllerConfiguration `json:"shootSecret,omitempty"` } // BackupBucketControllerConfiguration defines the configuration of the BackupBucket @@ -352,6 +356,13 @@ type ShootMigrationControllerConfiguration struct { LastOperationStaleDuration *metav1.Duration `json:"lastOperationStaleDuration,omitempty"` } +// ShootSecretControllerConfiguration defines the configuration of the ShootSecret controller. +type ShootSecretControllerConfiguration struct { + // ConcurrentSyncs is the number of workers used for the controller to work on events. + // +optional + ConcurrentSyncs *int `json:"concurrentSyncs,omitempty"` +} + // StaleExtensionHealthChecks defines the configuration of the check for stale extension health checks. type StaleExtensionHealthChecks struct { // Enabled specifies whether the check for stale extensions health checks is enabled. @@ -461,7 +472,12 @@ type Loki struct { // GardenLoki contains configuration for the Loki in garden namespace. type GardenLoki struct { // Priority is the priority value for the Loki + // +optional Priority *int `json:"priority,omitempty" yaml:"priority,omitempty"` + // Storage is the disk storage capacity of the central Loki. + // Defaults to 100Gi. + // +optional + Storage *resource.Quantity `json:"storage,omitempty" yaml:"storage,omitempty"` } // ShootNodeLogging contains configuration for the shoot node logging. @@ -699,3 +715,6 @@ const ( // DefaultControllerSyncPeriod is a default value for sync period for controllers. var DefaultControllerSyncPeriod = metav1.Duration{Duration: time.Minute} + +// DefaultCentralLokiStorage is a default value for garden/loki's storage. +var DefaultCentralLokiStorage = resource.MustParse("100Gi") diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go index 6480d38c..9bf4ca13 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.conversion.go @@ -28,6 +28,7 @@ import ( v1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" config "github.com/gardener/gardener/pkg/gardenlet/apis/config" corev1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" @@ -443,6 +444,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*ShootSecretControllerConfiguration)(nil), (*config.ShootSecretControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ShootSecretControllerConfiguration_To_config_ShootSecretControllerConfiguration(a.(*ShootSecretControllerConfiguration), b.(*config.ShootSecretControllerConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.ShootSecretControllerConfiguration)(nil), (*ShootSecretControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_ShootSecretControllerConfiguration_To_v1alpha1_ShootSecretControllerConfiguration(a.(*config.ShootSecretControllerConfiguration), b.(*ShootSecretControllerConfiguration), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*ShootStateSyncControllerConfiguration)(nil), (*config.ShootStateSyncControllerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_ShootStateSyncControllerConfiguration_To_config_ShootStateSyncControllerConfiguration(a.(*ShootStateSyncControllerConfiguration), b.(*config.ShootStateSyncControllerConfiguration), scope) }); err != nil { @@ -842,6 +853,7 @@ func autoConvert_v1alpha1_GardenLoki_To_config_GardenLoki(in *GardenLoki, out *c } else { out.Priority = nil } + out.Storage = (*resource.Quantity)(unsafe.Pointer(in.Storage)) return nil } @@ -858,6 +870,7 @@ func autoConvert_config_GardenLoki_To_v1alpha1_GardenLoki(in *config.GardenLoki, } else { out.Priority = nil } + out.Storage = (*resource.Quantity)(unsafe.Pointer(in.Storage)) return nil } @@ -1047,6 +1060,7 @@ func autoConvert_v1alpha1_GardenletControllerConfiguration_To_config_GardenletCo out.ShootStateSync = (*config.ShootStateSyncControllerConfiguration)(unsafe.Pointer(in.ShootStateSync)) out.SeedAPIServerNetworkPolicy = (*config.SeedAPIServerNetworkPolicyControllerConfiguration)(unsafe.Pointer(in.SeedAPIServerNetworkPolicy)) out.ManagedSeed = (*config.ManagedSeedControllerConfiguration)(unsafe.Pointer(in.ManagedSeed)) + out.ShootSecret = (*config.ShootSecretControllerConfiguration)(unsafe.Pointer(in.ShootSecret)) return nil } @@ -1070,6 +1084,7 @@ func autoConvert_config_GardenletControllerConfiguration_To_v1alpha1_GardenletCo out.ShootStateSync = (*ShootStateSyncControllerConfiguration)(unsafe.Pointer(in.ShootStateSync)) out.SeedAPIServerNetworkPolicy = (*SeedAPIServerNetworkPolicyControllerConfiguration)(unsafe.Pointer(in.SeedAPIServerNetworkPolicy)) out.ManagedSeed = (*ManagedSeedControllerConfiguration)(unsafe.Pointer(in.ManagedSeed)) + out.ShootSecret = (*ShootSecretControllerConfiguration)(unsafe.Pointer(in.ShootSecret)) return nil } @@ -1634,6 +1649,26 @@ func Convert_config_ShootNodeLogging_To_v1alpha1_ShootNodeLogging(in *config.Sho return autoConvert_config_ShootNodeLogging_To_v1alpha1_ShootNodeLogging(in, out, s) } +func autoConvert_v1alpha1_ShootSecretControllerConfiguration_To_config_ShootSecretControllerConfiguration(in *ShootSecretControllerConfiguration, out *config.ShootSecretControllerConfiguration, s conversion.Scope) error { + out.ConcurrentSyncs = (*int)(unsafe.Pointer(in.ConcurrentSyncs)) + return nil +} + +// Convert_v1alpha1_ShootSecretControllerConfiguration_To_config_ShootSecretControllerConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_ShootSecretControllerConfiguration_To_config_ShootSecretControllerConfiguration(in *ShootSecretControllerConfiguration, out *config.ShootSecretControllerConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_ShootSecretControllerConfiguration_To_config_ShootSecretControllerConfiguration(in, out, s) +} + +func autoConvert_config_ShootSecretControllerConfiguration_To_v1alpha1_ShootSecretControllerConfiguration(in *config.ShootSecretControllerConfiguration, out *ShootSecretControllerConfiguration, s conversion.Scope) error { + out.ConcurrentSyncs = (*int)(unsafe.Pointer(in.ConcurrentSyncs)) + return nil +} + +// Convert_config_ShootSecretControllerConfiguration_To_v1alpha1_ShootSecretControllerConfiguration is an autogenerated conversion function. +func Convert_config_ShootSecretControllerConfiguration_To_v1alpha1_ShootSecretControllerConfiguration(in *config.ShootSecretControllerConfiguration, out *ShootSecretControllerConfiguration, s conversion.Scope) error { + return autoConvert_config_ShootSecretControllerConfiguration_To_v1alpha1_ShootSecretControllerConfiguration(in, out, s) +} + func autoConvert_v1alpha1_ShootStateSyncControllerConfiguration_To_config_ShootStateSyncControllerConfiguration(in *ShootStateSyncControllerConfiguration, out *config.ShootStateSyncControllerConfiguration, s conversion.Scope) error { out.ConcurrentSyncs = (*int)(unsafe.Pointer(in.ConcurrentSyncs)) out.SyncPeriod = (*v1.Duration)(unsafe.Pointer(in.SyncPeriod)) diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go index d376f456..35e32387 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.deepcopy.go @@ -431,6 +431,11 @@ func (in *GardenLoki) DeepCopyInto(out *GardenLoki) { *out = new(int) **out = **in } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + x := (*in).DeepCopy() + *out = &x + } return } @@ -636,6 +641,11 @@ func (in *GardenletControllerConfiguration) DeepCopyInto(out *GardenletControlle *out = new(ManagedSeedControllerConfiguration) (*in).DeepCopyInto(*out) } + if in.ShootSecret != nil { + in, out := &in.ShootSecret, &out.ShootSecret + *out = new(ShootSecretControllerConfiguration) + (*in).DeepCopyInto(*out) + } return } @@ -1246,6 +1256,27 @@ func (in *ShootNodeLogging) DeepCopy() *ShootNodeLogging { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShootSecretControllerConfiguration) DeepCopyInto(out *ShootSecretControllerConfiguration) { + *out = *in + if in.ConcurrentSyncs != nil { + in, out := &in.ConcurrentSyncs, &out.ConcurrentSyncs + *out = new(int) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootSecretControllerConfiguration. +func (in *ShootSecretControllerConfiguration) DeepCopy() *ShootSecretControllerConfiguration { + if in == nil { + return nil + } + out := new(ShootSecretControllerConfiguration) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootStateSyncControllerConfiguration) DeepCopyInto(out *ShootStateSyncControllerConfiguration) { *out = *in diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.defaults.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.defaults.go index db487fb6..8979f045 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.defaults.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/v1alpha1/zz_generated.defaults.go @@ -45,6 +45,7 @@ func SetObjectDefaults_GardenletConfiguration(in *GardenletConfiguration) { SetDefaults_ClientConnectionConfiguration(&in.ShootClientConnection.ClientConnectionConfiguration) } if in.Controllers != nil { + SetDefaults_GardenletControllerConfiguration(in.Controllers) if in.Controllers.BackupBucket != nil { SetDefaults_BackupBucketControllerConfiguration(in.Controllers.BackupBucket) } @@ -90,10 +91,16 @@ func SetObjectDefaults_GardenletConfiguration(in *GardenletConfiguration) { if in.Controllers.ManagedSeed != nil { SetDefaults_ManagedSeedControllerConfiguration(in.Controllers.ManagedSeed) } + if in.Controllers.ShootSecret != nil { + SetDefaults_ShootSecretControllerConfiguration(in.Controllers.ShootSecret) + } } if in.LeaderElection != nil { SetDefaults_LeaderElectionConfiguration(in.LeaderElection) } + if in.Logging != nil { + SetDefaults_Logging(in.Logging) + } if in.SNI != nil { SetDefaults_SNI(in.SNI) if in.SNI.Ingress != nil { diff --git a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go index dc48e587..58588962 100644 --- a/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/gardenlet/apis/config/zz_generated.deepcopy.go @@ -431,6 +431,11 @@ func (in *GardenLoki) DeepCopyInto(out *GardenLoki) { *out = new(int32) **out = **in } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + x := (*in).DeepCopy() + *out = &x + } return } @@ -636,6 +641,11 @@ func (in *GardenletControllerConfiguration) DeepCopyInto(out *GardenletControlle *out = new(ManagedSeedControllerConfiguration) (*in).DeepCopyInto(*out) } + if in.ShootSecret != nil { + in, out := &in.ShootSecret, &out.ShootSecret + *out = new(ShootSecretControllerConfiguration) + (*in).DeepCopyInto(*out) + } return } @@ -1246,6 +1256,27 @@ func (in *ShootNodeLogging) DeepCopy() *ShootNodeLogging { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShootSecretControllerConfiguration) DeepCopyInto(out *ShootSecretControllerConfiguration) { + *out = *in + if in.ConcurrentSyncs != nil { + in, out := &in.ConcurrentSyncs, &out.ConcurrentSyncs + *out = new(int) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootSecretControllerConfiguration. +func (in *ShootSecretControllerConfiguration) DeepCopy() *ShootSecretControllerConfiguration { + if in == nil { + return nil + } + out := new(ShootSecretControllerConfiguration) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootStateSyncControllerConfiguration) DeepCopyInto(out *ShootStateSyncControllerConfiguration) { *out = *in diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/components.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/components.go index b7d001b4..69652bce 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/components.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/components.go @@ -44,4 +44,5 @@ type Context struct { SSHPublicKeys []string LokiIngress string PromtailEnabled bool + APIServerURL string } diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/component.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/component.go index 8791ac38..2eeefd18 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/component.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/component.go @@ -69,6 +69,9 @@ const ( PathKubeletDirectory = "/var/lib/kubelet" // PathScriptCopyKubernetesBinary is the path for the script copying downloaded Kubernetes binaries. PathScriptCopyKubernetesBinary = PathKubeletDirectory + "/copy-kubernetes-binary.sh" + // PathNodeName is the path for a file containing the name of the Node registered by kubelet for the respective + // machine. + PathNodeName = PathKubeletDirectory + "/nodename" pathVolumePluginDirectory = "/var/lib/kubelet/volumeplugins" ) @@ -91,6 +94,7 @@ func (component) Config(ctx components.Context) ([]extensionsv1alpha1.Unit, []ex if err := tplHealthMonitor.Execute(&healthMonitorScript, map[string]string{ "pathBinaries": v1beta1constants.OperatingSystemConfigFilePathBinaries, "pathKubeletKubeconfigReal": PathKubeconfigReal, + "pathNodeName": PathNodeName, }); err != nil { return nil, nil, err } diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/templates/scripts/health-monitor.tpl.sh b/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/templates/scripts/health-monitor.tpl.sh index 6fdbbbbc..0642a300 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/templates/scripts/health-monitor.tpl.sh +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/component/extensions/operatingsystemconfig/original/components/kubelet/templates/scripts/health-monitor.tpl.sh @@ -46,8 +46,18 @@ function kubelet_monitoring { continue fi - node_object="$(kubectl get nodes -l kubernetes.io/hostname=$(hostname | tr '[:upper:]' '[:lower:]') -o json)" - node_status="$(echo $node_object | jq -r '.items[0].status')" + node_name= + if [[ -s "{{ .pathNodeName }}" ]]; then + node_name="$(cat "{{ .pathNodeName }}")" + fi + if [[ -z "$node_name" ]]; then + echo "Node name is not known yet, waiting..." + sleep 20 + continue + fi + + node_object="$(kubectl get node "$node_name" -o json)" + node_status="$(echo $node_object | jq -r '.status')" if [[ -z "$node_status" ]] || [[ "$node_status" == "null" ]]; then echo "Node object for this hostname not found in the system, waiting." sleep 20 @@ -66,7 +76,6 @@ function kubelet_monitoring { if ip address show | grep $K8S_NODE_IP_INTERNAL_LAST_SEEN > /dev/null; then echo "Last seen InternalIP "$K8S_NODE_IP_INTERNAL_LAST_SEEN" is still up-to-date"; server="$(kubectl config view -o jsonpath={.clusters[0].cluster.server})" - node_name="$(echo $node_object | jq -r '.items[0].metadata.name')" if patch_internal_ip $server $node_name $K8S_NODE_IP_INTERNAL_LAST_SEEN; then echo "Successfully updated Node object." continue diff --git a/vendor/github.com/gardener/gardener/pkg/utils/gardener/shoot.go b/vendor/github.com/gardener/gardener/pkg/utils/gardener/shoot.go index 951cea64..6621a3bd 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/gardener/shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/gardener/shoot.go @@ -167,10 +167,12 @@ func GetShootNameFromOwnerReferences(objectMeta metav1.Object) string { const ( // ShootProjectSecretSuffixKubeconfig is a constant for a shoot project secret with suffix 'kubeconfig'. ShootProjectSecretSuffixKubeconfig = "kubeconfig" + // ShootProjectSecretSuffixCACluster is a constant for a shoot project secret with suffix 'ca-cluster'. + ShootProjectSecretSuffixCACluster = "ca-cluster" // ShootProjectSecretSuffixSSHKeypair is a constant for a shoot project secret with suffix 'ssh-keypair'. ShootProjectSecretSuffixSSHKeypair = v1beta1constants.SecretNameSSHKeyPair // ShootProjectSecretSuffixOldSSHKeypair is a constant for a shoot project secret with suffix 'ssh-keypair.old'. - ShootProjectSecretSuffixOldSSHKeypair = v1beta1constants.SecretNameOldSSHKeyPair + ShootProjectSecretSuffixOldSSHKeypair = v1beta1constants.SecretNameSSHKeyPair + ".old" // ShootProjectSecretSuffixMonitoring is a constant for a shoot project secret with suffix 'monitoring'. ShootProjectSecretSuffixMonitoring = "monitoring" ) @@ -179,6 +181,7 @@ const ( func GetShootProjectSecretSuffixes() []string { return []string{ ShootProjectSecretSuffixKubeconfig, + ShootProjectSecretSuffixCACluster, ShootProjectSecretSuffixSSHKeypair, ShootProjectSecretSuffixOldSSHKeypair, ShootProjectSecretSuffixMonitoring, @@ -340,43 +343,43 @@ func (s *ShootAccessSecret) Reconcile(ctx context.Context, c client.Client) erro // object. The access secret name must be the name of a secret containing a JWT token which should be used by the // kubeconfig. If the object has multiple containers then the default is to inject it into all of them. If it should // only be done for a selection of containers then their respective names must be provided. -func InjectGenericKubeconfig(obj runtime.Object, accessSecretName string, containerNames ...string) error { +func InjectGenericKubeconfig(obj runtime.Object, genericKubeconfigName, accessSecretName string, containerNames ...string) error { switch o := obj.(type) { case *corev1.Pod: - injectGenericKubeconfig(&o.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1.Deployment: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1beta2.Deployment: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1beta1.Deployment: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1.StatefulSet: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1beta2.StatefulSet: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1beta1.StatefulSet: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1.DaemonSet: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *appsv1beta2.DaemonSet: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *batchv1.Job: - injectGenericKubeconfig(&o.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *batchv1.CronJob: - injectGenericKubeconfig(&o.Spec.JobTemplate.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.JobTemplate.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) case *batchv1beta1.CronJob: - injectGenericKubeconfig(&o.Spec.JobTemplate.Spec.Template.Spec, accessSecretName, containerNames...) + injectGenericKubeconfig(&o.Spec.JobTemplate.Spec.Template.Spec, genericKubeconfigName, accessSecretName, containerNames...) default: return fmt.Errorf("unhandled object type %T", obj) @@ -385,7 +388,7 @@ func InjectGenericKubeconfig(obj runtime.Object, accessSecretName string, contai return nil } -func injectGenericKubeconfig(podSpec *corev1.PodSpec, accessSecretName string, containerNames ...string) { +func injectGenericKubeconfig(podSpec *corev1.PodSpec, genericKubeconfigName, accessSecretName string, containerNames ...string) { var ( volume = corev1.Volume{ Name: "kubeconfig", @@ -396,7 +399,7 @@ func injectGenericKubeconfig(podSpec *corev1.PodSpec, accessSecretName string, c { Secret: &corev1.SecretProjection{ LocalObjectReference: corev1.LocalObjectReference{ - Name: v1beta1constants.SecretNameGenericTokenKubeconfig, + Name: genericKubeconfigName, }, Items: []corev1.KeyToPath{{ Key: secrets.DataKeyKubeconfig, diff --git a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go index db34940c..9b2cb0b9 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/health/daemonset.go @@ -55,12 +55,15 @@ func CheckDaemonSet(daemonSet *appsv1.DaemonSet) error { return fmt.Errorf("misscheduled pods found (%d)", daemonSet.Status.NumberMisscheduled) } - if maxUnavailable := daemonSetMaxUnavailable(daemonSet); daemonSet.Status.NumberUnavailable > maxUnavailable { - return fmt.Errorf("too many unavailable pods found (%d/%d, only max. %d unavailable pods allowed)", daemonSet.Status.NumberUnavailable, daemonSet.Status.CurrentNumberScheduled, maxUnavailable) - } - - if daemonSet.Status.NumberReady < daemonSet.Status.DesiredNumberScheduled { - return fmt.Errorf("unready pods found (%d/%d), %d pods updated", daemonSet.Status.NumberReady, daemonSet.Status.DesiredNumberScheduled, daemonSet.Status.UpdatedNumberScheduled) + // Check if DaemonSet rollout is ongoing. + if daemonSet.Status.UpdatedNumberScheduled < daemonSet.Status.DesiredNumberScheduled { + if maxUnavailable := daemonSetMaxUnavailable(daemonSet); daemonSet.Status.NumberUnavailable > maxUnavailable { + return fmt.Errorf("too many unavailable pods found (%d/%d, only max. %d unavailable pods allowed)", daemonSet.Status.NumberUnavailable, daemonSet.Status.CurrentNumberScheduled, maxUnavailable) + } + } else { + if daemonSet.Status.NumberUnavailable > 0 { + return fmt.Errorf("too many unavailable pods found (%d/%d)", daemonSet.Status.NumberUnavailable, daemonSet.Status.CurrentNumberScheduled) + } } return nil diff --git a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/kubernetes.go b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/kubernetes.go index e7a496b5..68999e53 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/kubernetes.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/kubernetes/kubernetes.go @@ -634,15 +634,16 @@ func CertificatesV1beta1UsagesToCertificatesV1Usages(usages []certificatesv1beta } // NewKubeconfig returns a new kubeconfig structure. -func NewKubeconfig(contextName, server string, caCert []byte, authInfo clientcmdv1.AuthInfo) *clientcmdv1.Config { +func NewKubeconfig(contextName string, cluster clientcmdv1.Cluster, authInfo clientcmdv1.AuthInfo) *clientcmdv1.Config { + if !strings.HasPrefix(cluster.Server, "https://") { + cluster.Server = "https://" + cluster.Server + } + return &clientcmdv1.Config{ CurrentContext: contextName, Clusters: []clientcmdv1.NamedCluster{{ - Name: contextName, - Cluster: clientcmdv1.Cluster{ - Server: `https://` + server, - CertificateAuthorityData: caCert, - }, + Name: contextName, + Cluster: cluster, }}, AuthInfos: []clientcmdv1.NamedAuthInfo{{ Name: contextName, diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go new file mode 100644 index 00000000..06e37ae1 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go @@ -0,0 +1,65 @@ +// Copyright (c) 2022 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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 secrets + +import ( + "crypto/rsa" + "io" + "strings" + + "github.com/gardener/gardener/pkg/utils" +) + +var ( + // GenerateRandomString is an alias for utils.GenerateRandomString. Exposed for testing. + GenerateRandomString = utils.GenerateRandomString + // FakeGenerateRandomString is a fake for GenerateRandomString. + FakeGenerateRandomString = func(n int) (string, error) { + return strings.Repeat("_", n), nil + } + + // GenerateKey is an alias for rsa.GenerateKey. Exposed for testing. + GenerateKey = rsa.GenerateKey + // FakeGenerateKey is a fake for GenerateKey. + FakeGenerateKey = func(_ io.Reader, _ int) (*rsa.PrivateKey, error) { + return utils.DecodePrivateKey([]byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEAyV6ZuR4gSzCF/zO06xEv6RGmDUnXOHAZVck4pVhY/Id8j2zj +rVlBZp1klARK/Mt1BPOmRKQtg753UCewYjpRdThyzsicKz4Flg4m72p57bWs/wi+ +j2N5Rc0eF98Ry//FY6Gbs5VJViz7WSfEoXaSFEYIkv+CKKAQ9J0kkiYztiyz+p/u +SD7sIOAVksj4M5/D+4GVtqJV+4aSdUotoueehJ1fwmc/ZTsczMXAnLcV6BP9N0GX +5bUBW+s/HSMLndEy+GSye1KdgLZilzAodmtetQdLYCOXZsivfdCeF8lsLjLV/ouA +M+FwwM5QbU1i+iYRqVk8Apyzs9WMvuAp8mq5UQIDAQABAoH/O8fZ2xsWezvsi9bN +3vs7PfX/VfKV8itVWiJirrOLt2yBjhLFhLD6uXwAX/DmUiYUl2O9+KLE4FerFCC0 +PHUTubkIXFsyAaRoBCQvauQxTmCg+xWdfPQLDK3YQT34CpfkAa/4iVfIbczs0Yr8 +1PJea6Ze5UT1Xxol7ni4Yqr0ryAPbJBn+18OifcSxh2H+d7+AEFo/Vg2LVFTiuhW +kpg2xvkmSFjOcIWGUYOlwwnaOjlhiAmCntCAXbz2Ly44rfJlBLzfAAB5CqGzDs2B +Z0YGZoFPQurxkzNGh2d9sV0aHcyf4ZwSbvcsd4gvBhpSp2/Q/mvfdl4av5cKnsli +WJWxAoGBAOqdWcE42I/botGEIfqxssHKyxqQld8RiXjAypPlhx8uRH949sToevZs +BVCgLId8mPJxuTSvbgbdHyZ14dzc+cIcDSNnW8anUTW98lmwTWIJN/awOTSlgpV2 +4wBdVCLxlutsE6fEQTIJRkQ+XeVV0n8hOiz4GJQWLV1pp1rzYy73AoGBANu5fKR7 +8FXWAfC5zmJAkisK02l7FeRQoHUfgACLE74Vt3BEZhLJHpYTJZrYi9r/buMsi52g ++Rgz4pItgy85ibe21+5G6yQtQP68mjnecMEjSZIa8G6RoY13Ki4+UOysGWul48rR +Lwq75Cv+0AHUS0A9NxYrY+X2Q9cLsg6Mm5/3AoGBAOe38WX9lya+btkv/79ysnLk +sCTUmLFwyK4S/AGGuSX6tHySJGfmlUu89KLlEBXg4c7Ss3FtsuXkj1eVJjbVqXgl +7HQDKYnSx0qlCC+9CTDCmhtzgYyVy5uDiEBb7TV2FvD+FYulMh8ROe09C8/uK7CU +SLkRcHUSUkvohfo2WMeRAoGAa0hK2okFVPPUKLSgV4rNk6SKiyMlEkBnyCgkOJ+v +eQ1jbraG3D9E5uPcZZm716cGfndeiA1z8mRLCTKdre47Fu94yQfpgdVyua5e40h/ +512Sa3spz+LdbZQ0jTWyD40MMGpkKcAvZt9MzkpxR6NfRrNc9T8kXMD8aMB2JPJ0 +fgsCgYEAzBjM5L4kKcyF5mC1v6NyEaQB8Cve3gfFatLfFrjNwHbvdY5PEa/x0NqS +4qJs/0Ieluo9jRo5pPd0O1u9hDVeSh2sSs9fzOtjHzbnZ7o8pTY3dzMBhO7fxPBU +i/WyG5dokMowEJSvpCBwHbAYMLlNK7oMUpXlqcRoYo24U6Mwj68= +-----END RSA PRIVATE KEY-----`)) + } +) diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/basic_auth.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/basic_auth.go index 8a60b984..0f9559ef 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/basic_auth.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/basic_auth.go @@ -18,7 +18,6 @@ import ( "fmt" "strings" - "github.com/gardener/gardener/pkg/utils" "github.com/gardener/gardener/pkg/utils/infodata" "k8s.io/apiserver/pkg/authentication/user" ) @@ -70,7 +69,7 @@ func (s *BasicAuthSecretConfig) Generate() (DataInterface, error) { // GenerateInfoData implements ConfigInterface. func (s *BasicAuthSecretConfig) GenerateInfoData() (infodata.InfoData, error) { - password, err := utils.GenerateRandomString(s.PasswordLength) + password, err := GenerateRandomString(s.PasswordLength) if err != nil { return nil, err } @@ -110,7 +109,7 @@ func (s *BasicAuthSecretConfig) LoadFromSecretData(secretData map[string][]byte) // GenerateBasicAuth computes a username,password and the hash of the password keypair. It uses "admin" as username and generates a // random password of length 32. func (s *BasicAuthSecretConfig) GenerateBasicAuth() (*BasicAuth, error) { - password, err := utils.GenerateRandomString(s.PasswordLength) + password, err := GenerateRandomString(s.PasswordLength) if err != nil { return nil, err } @@ -157,8 +156,8 @@ func LoadBasicAuthFromCSV(name string, data []byte) (*BasicAuth, error) { } return &BasicAuth{ - Name: name, - + Name: name, + Format: BasicAuthFormatCSV, Username: csv[1], Password: csv[0], }, nil diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificate_bundle.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificate_bundle.go new file mode 100644 index 00000000..ce618ca9 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificate_bundle.go @@ -0,0 +1,77 @@ +// Copyright (c) 2022 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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 secrets + +import ( + "errors" + + "github.com/gardener/gardener/pkg/utils/infodata" +) + +// DataKeyCertificateBundle is the key in the data map for the certificate bundle. +const DataKeyCertificateBundle = "bundle.crt" + +// CertificateBundleSecretConfig is configuration for certificate bundles. +type CertificateBundleSecretConfig struct { + Name string + CertificatePEMs [][]byte +} + +// CertificateBundle contains the name and the generated certificate bundle. +type CertificateBundle struct { + Name string + Bundle []byte +} + +// GetName returns the name of the secret. +func (s *CertificateBundleSecretConfig) GetName() string { + return s.Name +} + +// Generate implements ConfigInterface. +func (s *CertificateBundleSecretConfig) Generate() (DataInterface, error) { + return &CertificateBundle{ + Name: s.Name, + Bundle: s.generateBundle(), + }, nil +} + +func (s *CertificateBundleSecretConfig) generateBundle() []byte { + var bundle []byte + for _, pem := range s.CertificatePEMs { + bundle = append(bundle, pem...) + } + return bundle +} + +// GenerateInfoData implements ConfigInterface. +func (s *CertificateBundleSecretConfig) GenerateInfoData() (infodata.InfoData, error) { + return nil, errors.New("not implemented") +} + +// GenerateFromInfoData implements ConfigInterface. +func (s *CertificateBundleSecretConfig) GenerateFromInfoData(_ infodata.InfoData) (DataInterface, error) { + return nil, errors.New("not implemented") +} + +// LoadFromSecretData implements infodata.Loader. +func (s *CertificateBundleSecretConfig) LoadFromSecretData(_ map[string][]byte) (infodata.InfoData, error) { + return nil, errors.New("not implemented") +} + +// SecretData computes the data map which can be used in a Kubernetes secret. +func (v *CertificateBundle) SecretData() map[string][]byte { + return map[string][]byte{DataKeyCertificateBundle: v.Bundle} +} diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificates.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificates.go index 436f6c4f..70ce69c9 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificates.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificates.go @@ -82,7 +82,8 @@ type CertificateSecretConfig struct { SigningCA *Certificate PKCS int - Validity *time.Duration + Validity *time.Duration + SkipPublishingCACertificate bool Clock clock.Clock } @@ -92,7 +93,8 @@ type CertificateSecretConfig struct { type Certificate struct { Name string - CA *Certificate + CA *Certificate + SkipPublishingCACertificate bool PrivateKey *rsa.PrivateKey PrivateKeyPEM []byte @@ -133,8 +135,9 @@ func (s *CertificateSecretConfig) GenerateFromInfoData(infoData infodata.InfoDat return nil, fmt.Errorf("could not convert InfoData entry %s to CertificateInfoData", s.Name) } certificateObj := &Certificate{ - Name: s.Name, - CA: s.SigningCA, + Name: s.Name, + CA: s.SigningCA, + SkipPublishingCACertificate: s.SkipPublishingCACertificate, PrivateKeyPEM: data.PrivateKey, CertificatePEM: data.Certificate, @@ -177,13 +180,14 @@ func (s *CertificateSecretConfig) LoadFromSecretData(secretData map[string][]byt // GenerateCertificate computes a CA, server, or client certificate based on the configuration. func (s *CertificateSecretConfig) GenerateCertificate() (*Certificate, error) { certificateObj := &Certificate{ - Name: s.Name, - CA: s.SigningCA, + Name: s.Name, + CA: s.SigningCA, + SkipPublishingCACertificate: s.SkipPublishingCACertificate, } // If no cert type is given then we only return a certificate object that contains the CA. if s.CertType != "" { - privateKey, err := generateRSAPrivateKey(2048) + privateKey, err := GenerateKey(rand.Reader, 2048) if err != nil { return nil, err } @@ -239,7 +243,9 @@ func (c *Certificate) SecretData() map[string][]byte { // keys in the secret data. data[DataKeyPrivateKey] = c.PrivateKeyPEM data[DataKeyCertificate] = c.CertificatePEM - data[DataKeyCertificateCA] = c.CA.CertificatePEM + if !c.SkipPublishingCACertificate { + data[DataKeyCertificateCA] = c.CA.CertificatePEM + } } return data diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/control_plane.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/control_plane.go index d9d7446c..b0ef7000 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/control_plane.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/control_plane.go @@ -24,11 +24,6 @@ import ( configv1 "k8s.io/client-go/tools/clientcmd/api/v1" ) -const ( - // DataKeyKubeconfig is the key in a secret data holding the kubeconfig. - DataKeyKubeconfig = "kubeconfig" -) - // ControlPlaneSecretDataKeyCertificatePEM returns the data key inside a Secret of type ControlPlane whose value // contains the certificate PEM. func ControlPlaneSecretDataKeyCertificatePEM(name string) string { return fmt.Sprintf("%s.crt", name) } @@ -40,7 +35,9 @@ func ControlPlaneSecretDataKeyPrivateKey(name string) string { return fmt.Sprint // ControlPlaneSecretConfig is a struct which inherits from CertificateSecretConfig and is extended with a couple of additional // properties. A control plane secret will always contain a server/client certificate and optionally a kubeconfig. type ControlPlaneSecretConfig struct { - *CertificateSecretConfig + Name string + + CertificateSecretConfig *CertificateSecretConfig BasicAuth *BasicAuth Token *Token @@ -52,6 +49,7 @@ type ControlPlaneSecretConfig struct { type KubeConfigRequest struct { ClusterName string APIServerHost string + CAData []byte } // ControlPlane contains the certificate, and optionally the basic auth. information as well as a Kubeconfig. @@ -66,7 +64,7 @@ type ControlPlane struct { // GetName returns the name of the secret. func (s *ControlPlaneSecretConfig) GetName() string { - return s.CertificateSecretConfig.Name + return s.Name } // Generate implements ConfigInterface. @@ -76,6 +74,8 @@ func (s *ControlPlaneSecretConfig) Generate() (DataInterface, error) { // GenerateInfoData implements ConfigInterface func (s *ControlPlaneSecretConfig) GenerateInfoData() (infodata.InfoData, error) { + s.CertificateSecretConfig.Name = s.Name + cert, err := s.CertificateSecretConfig.GenerateCertificate() if err != nil { return nil, err @@ -97,7 +97,7 @@ func (s *ControlPlaneSecretConfig) GenerateFromInfoData(infoData infodata.InfoDa certificate := &Certificate{ Name: s.Name, - CA: s.SigningCA, + CA: s.CertificateSecretConfig.SigningCA, PrivateKeyPEM: data.PrivateKey, CertificatePEM: data.Certificate, @@ -137,9 +137,18 @@ func (s *ControlPlaneSecretConfig) LoadFromSecretData(secretData map[string][]by // GenerateControlPlane computes a secret for a control plane component of the clusters managed by Gardener. // It may include a Kubeconfig. func (s *ControlPlaneSecretConfig) GenerateControlPlane() (*ControlPlane, error) { - certificate, err := s.CertificateSecretConfig.GenerateCertificate() - if err != nil { - return nil, err + var ( + certificate *Certificate + err error + ) + + if s.CertificateSecretConfig != nil { + s.CertificateSecretConfig.Name = s.Name + + certificate, err = s.CertificateSecretConfig.GenerateCertificate() + if err != nil { + return nil, err + } } controlPlane := &ControlPlane{ @@ -163,13 +172,17 @@ func (s *ControlPlaneSecretConfig) GenerateControlPlane() (*ControlPlane, error) // SecretData computes the data map which can be used in a Kubernetes secret. func (c *ControlPlane) SecretData() map[string][]byte { - data := map[string][]byte{ - DataKeyCertificateCA: c.Certificate.CA.CertificatePEM, - } + data := make(map[string][]byte) - if c.Certificate.CertificatePEM != nil && c.Certificate.PrivateKeyPEM != nil { - data[ControlPlaneSecretDataKeyPrivateKey(c.Name)] = c.Certificate.PrivateKeyPEM - data[ControlPlaneSecretDataKeyCertificatePEM(c.Name)] = c.Certificate.CertificatePEM + if c.Certificate != nil { + if c.Certificate.CA != nil { + data[DataKeyCertificateCA] = c.Certificate.CA.CertificatePEM + } + + if c.Certificate.CertificatePEM != nil && c.Certificate.PrivateKeyPEM != nil { + data[ControlPlaneSecretDataKeyPrivateKey(c.Name)] = c.Certificate.PrivateKeyPEM + data[ControlPlaneSecretDataKeyCertificatePEM(c.Name)] = c.Certificate.CertificatePEM + } } if c.BasicAuth != nil { @@ -204,7 +217,7 @@ func GenerateKubeconfig(secret *ControlPlaneSecretConfig, certificate *Certifica basicAuthContextName = fmt.Sprintf("%s-basic-auth", name) ) - if certificate.CertificatePEM != nil && certificate.PrivateKeyPEM != nil { + if certificate != nil && certificate.CertificatePEM != nil && certificate.PrivateKeyPEM != nil { authContextName = name } else if secret.Token != nil { authContextName = tokenContextName @@ -212,7 +225,7 @@ func GenerateKubeconfig(secret *ControlPlaneSecretConfig, certificate *Certifica authContextName = basicAuthContextName } - if certificate.CertificatePEM != nil && certificate.PrivateKeyPEM != nil { + if certificate != nil && certificate.CertificatePEM != nil && certificate.PrivateKeyPEM != nil { authInfos = append(authInfos, configv1.NamedAuthInfo{ Name: name, AuthInfo: configv1.AuthInfo{ @@ -249,10 +262,15 @@ func GenerateKubeconfig(secret *ControlPlaneSecretConfig, certificate *Certifica } for _, req := range secret.KubeConfigRequests { + caData := req.CAData + if caData == nil && certificate != nil && certificate.CA != nil { + caData = certificate.CA.CertificatePEM + } + config.Clusters = append(config.Clusters, configv1.NamedCluster{ Name: req.ClusterName, Cluster: configv1.Cluster{ - CertificateAuthorityData: certificate.CA.CertificatePEM, + CertificateAuthorityData: caData, Server: fmt.Sprintf("https://%s", req.APIServerHost), }, }) diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/kubeconfig.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/kubeconfig.go new file mode 100644 index 00000000..912ebe6a --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/kubeconfig.go @@ -0,0 +1,85 @@ +// Copyright (c) 2022 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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 secrets + +import ( + "errors" + + "github.com/gardener/gardener/pkg/utils/infodata" + kutil "github.com/gardener/gardener/pkg/utils/kubernetes" + + "k8s.io/apimachinery/pkg/runtime" + clientcmdlatest "k8s.io/client-go/tools/clientcmd/api/latest" + clientcmdv1 "k8s.io/client-go/tools/clientcmd/api/v1" +) + +// DataKeyKubeconfig is the key in a secret data holding the kubeconfig. +const DataKeyKubeconfig = "kubeconfig" + +// KubeconfigSecretConfig is configuration for kubeconfig secrets. +type KubeconfigSecretConfig struct { + Name string + ContextName string + Cluster clientcmdv1.Cluster + AuthInfo clientcmdv1.AuthInfo +} + +// Kubeconfig contains the name and the generated kubeconfig. +type Kubeconfig struct { + Name string + Kubeconfig *clientcmdv1.Config + kubeconfigRaw []byte +} + +// GetName returns the name of the secret. +func (s *KubeconfigSecretConfig) GetName() string { + return s.Name +} + +// Generate implements ConfigInterface. +func (s *KubeconfigSecretConfig) Generate() (DataInterface, error) { + kubeconfig := kutil.NewKubeconfig(s.ContextName, s.Cluster, s.AuthInfo) + + raw, err := runtime.Encode(clientcmdlatest.Codec, kubeconfig) + if err != nil { + return nil, err + } + + return &Kubeconfig{ + Name: s.Name, + Kubeconfig: kubeconfig, + kubeconfigRaw: raw, + }, nil +} + +// GenerateInfoData implements ConfigInterface. +func (s *KubeconfigSecretConfig) GenerateInfoData() (infodata.InfoData, error) { + return nil, errors.New("not implemented") +} + +// GenerateFromInfoData implements ConfigInterface. +func (s *KubeconfigSecretConfig) GenerateFromInfoData(_ infodata.InfoData) (DataInterface, error) { + return nil, errors.New("not implemented") +} + +// LoadFromSecretData implements infodata.Loader. +func (s *KubeconfigSecretConfig) LoadFromSecretData(_ map[string][]byte) (infodata.InfoData, error) { + return nil, errors.New("not implemented") +} + +// SecretData computes the data map which can be used in a Kubernetes secret. +func (v *Kubeconfig) SecretData() map[string][]byte { + return map[string][]byte{DataKeyKubeconfig: v.kubeconfigRaw} +} diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/rsa_private_key.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/rsa_private_key.go index 570dec5e..87a76314 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/rsa_private_key.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/rsa_private_key.go @@ -62,7 +62,7 @@ func (s *RSASecretConfig) Generate() (DataInterface, error) { // GenerateInfoData implements ConfigInterface. func (s *RSASecretConfig) GenerateInfoData() (infodata.InfoData, error) { - privateKey, err := generateRSAPrivateKey(s.Bits) + privateKey, err := GenerateKey(rand.Reader, s.Bits) if err != nil { return nil, err } @@ -93,7 +93,7 @@ func (s *RSASecretConfig) LoadFromSecretData(secretData map[string][]byte) (info // GenerateRSAKeys computes a RSA private key based on the configured number of bits. func (s *RSASecretConfig) GenerateRSAKeys() (*RSAKeys, error) { - privateKey, err := generateRSAPrivateKey(s.Bits) + privateKey, err := GenerateKey(rand.Reader, s.Bits) if err != nil { return nil, err } @@ -133,11 +133,6 @@ func (r *RSAKeys) SecretData() map[string][]byte { return data } -// generateRSAPrivateKey generates a RSA private for the given number of . -func generateRSAPrivateKey(bits int) (*rsa.PrivateKey, error) { - return rsa.GenerateKey(rand.Reader, bits) -} - // generateSSHAuthorizedKeys takes a RSA private key and generates the corresponding public key. // It serializes the public key for inclusion in an OpenSSH `authorized_keys` file and it trims the new- // line at the end. diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/static_token.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/static_token.go index 318dddd5..03f035f1 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/static_token.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/static_token.go @@ -19,17 +19,12 @@ import ( "sort" "strings" - "github.com/gardener/gardener/pkg/utils" "github.com/gardener/gardener/pkg/utils/infodata" ) const ( // DataKeyStaticTokenCSV is the key in a secret data holding the CSV format of a secret. DataKeyStaticTokenCSV = "static_tokens.csv" - // DataKeyUserID is the key in a secret data holding the userID. - DataKeyUserID = "userID" - // DataKeyGroups is the key in a secret data holding the groups. - DataKeyGroups = "groups" // DataKeyToken is the key in a secret data holding the token. DataKeyToken = "token" ) @@ -78,7 +73,7 @@ func (s *StaticTokenSecretConfig) GenerateInfoData() (infodata.InfoData, error) tokens := make(map[string]string) for username := range s.Tokens { - token, err := utils.GenerateRandomString(128) + token, err := GenerateRandomString(128) if err != nil { return nil, err } @@ -137,7 +132,7 @@ func (s *StaticTokenSecretConfig) GenerateStaticToken() (*StaticToken, error) { tokens := make([]Token, 0, len(s.Tokens)) for _, tokenConfig := range s.Tokens { - token, err := utils.GenerateRandomString(128) + token, err := GenerateRandomString(128) if err != nil { return nil, err } diff --git a/vendor/github.com/gardener/gardener/pkg/utils/version/version.go b/vendor/github.com/gardener/gardener/pkg/utils/version/version.go index 09bbb948..31dfeb6c 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/version/version.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/version/version.go @@ -51,6 +51,8 @@ var ( ConstraintK8sEqual122 *semver.Constraints // ConstraintK8sGreaterEqual122 is a version constraint for versions >= 1.22. ConstraintK8sGreaterEqual122 *semver.Constraints + // ConstraintK8sEqual123 is a version constraint for versions == 1.23. + ConstraintK8sEqual123 *semver.Constraints // ConstraintK8sGreaterEqual123 is a version constraint for versions >= 1.23. ConstraintK8sGreaterEqual123 *semver.Constraints ) @@ -86,6 +88,8 @@ func init() { utilruntime.Must(err) ConstraintK8sGreaterEqual122, err = semver.NewConstraint(">= 1.22") utilruntime.Must(err) + ConstraintK8sEqual123, err = semver.NewConstraint("1.23.x") + utilruntime.Must(err) ConstraintK8sGreaterEqual123, err = semver.NewConstraint(">= 1.23") utilruntime.Must(err) } diff --git a/vendor/k8s.io/autoscaler/LICENSE b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/LICENSE similarity index 100% rename from vendor/k8s.io/autoscaler/LICENSE rename to vendor/k8s.io/autoscaler/vertical-pod-autoscaler/LICENSE diff --git a/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/zz_generated.deepcopy.go b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/zz_generated.deepcopy.go index c7f00f12..255d419b 100644 --- a/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/zz_generated.deepcopy.go +++ b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2/zz_generated.deepcopy.go @@ -256,7 +256,7 @@ func (in *VerticalPodAutoscalerCheckpoint) DeepCopyObject() runtime.Object { func (in *VerticalPodAutoscalerCheckpointList) DeepCopyInto(out *VerticalPodAutoscalerCheckpointList) { *out = *in out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items *out = make([]VerticalPodAutoscalerCheckpoint, len(*in)) @@ -343,7 +343,7 @@ func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondi func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) { *out = *in out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items *out = make([]VerticalPodAutoscaler, len(*in)) diff --git a/vendor/modules.txt b/vendor/modules.txt index 34f5837e..4592071d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -61,8 +61,8 @@ github.com/gardener/etcd-druid/api/v1alpha1 ## explicit; go 1.14 github.com/gardener/external-dns-management/pkg/apis/dns github.com/gardener/external-dns-management/pkg/apis/dns/v1alpha1 -# github.com/gardener/gardener v1.42.4 -## explicit; go 1.16 +# github.com/gardener/gardener v1.43.2 +## explicit; go 1.17 github.com/gardener/gardener/.github github.com/gardener/gardener/.github/ISSUE_TEMPLATE github.com/gardener/gardener/extensions/pkg/controller @@ -257,7 +257,7 @@ github.com/google/pprof/profile # github.com/google/uuid v1.2.0 ## explicit github.com/google/uuid -# github.com/googleapis/gnostic v0.5.5 => github.com/googleapis/gnostic v0.5.5 +# github.com/googleapis/gnostic v0.5.5 ## explicit; go 1.12 github.com/googleapis/gnostic/compiler github.com/googleapis/gnostic/extensions @@ -686,8 +686,8 @@ k8s.io/apimachinery/third_party/forked/golang/reflect # k8s.io/apiserver v0.23.3 => k8s.io/apiserver v0.23.3 ## explicit; go 1.16 k8s.io/apiserver/pkg/authentication/user -# k8s.io/autoscaler v0.0.0-20190805135949-100e91ba756e -## explicit +# k8s.io/autoscaler/vertical-pod-autoscaler v0.0.0-00010101000000-000000000000 => k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 +## explicit; go 1.14 k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2 # k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => k8s.io/client-go v0.23.3 ## explicit; go 1.16 @@ -1007,13 +1007,13 @@ sigs.k8s.io/structured-merge-diff/v4/value ## explicit; go 1.12 sigs.k8s.io/yaml # github.com/emicklei/go-restful => github.com/emicklei/go-restful v2.9.5+incompatible -# github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.5.5 # github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.11.0 -# google.golang.org/grpc => google.golang.org/grpc v1.40.0 # k8s.io/api => k8s.io/api v0.23.3 # k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.23.3 # k8s.io/apimachinery => k8s.io/apimachinery v0.23.3 # k8s.io/apiserver => k8s.io/apiserver v0.23.3 +# k8s.io/autoscaler => k8s.io/autoscaler v0.0.0-20201008123815-1d78814026aa +# k8s.io/autoscaler/vertical-pod-autoscaler => k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 # k8s.io/client-go => k8s.io/client-go v0.23.3 # k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.23.3 # k8s.io/code-generator => k8s.io/code-generator v0.23.3