From 412d355e58c455f3534922ef3738a33f18e7db91 Mon Sep 17 00:00:00 2001 From: Tim Ebert Date: Tue, 19 Apr 2022 13:06:43 +0200 Subject: [PATCH] Vendor gardener/gardener@v1.44 (#430) * make `make revendor` deterministic * Add tools to `make generate` * Upgrade gardener/gardener * Add replace directives for hvpa-controller * [automated] make revendor * [automated] make generate --- Makefile | 4 +- .../20-crd-druid.gardener.cloud_etcds.yaml | 46 +- go.mod | 12 +- go.sum | 65 +- .../etcd-druid/api/v1alpha1/etcd_types.go | 38 +- .../api/v1alpha1/zz_generated.deepcopy.go | 68 +- .../pkg/controller/common/checkerwatchdog.go | 4 +- .../controller/healthcheck/worker/helpers.go | 4 + .../controller/healthcheck/worker/nodes.go | 21 +- .../extensions/pkg/controller/utils.go | 6 +- .../pkg/controller/worker/machines.go | 6 + .../hack/compare-k8s-feature-gates.sh | 16 +- .../gardener/hack/generate-seed-crds.sh | 9 + .../pkg/apis/core/types_secretbinding.go | 9 + .../gardener/pkg/apis/core/types_shoot.go | 2 + .../pkg/apis/core/v1alpha1/defaults.go | 4 + .../pkg/apis/core/v1alpha1/generated.pb.go | 1325 +++++++++-------- .../pkg/apis/core/v1alpha1/generated.proto | 5 + .../apis/core/v1alpha1/types_secretbinding.go | 9 + .../pkg/apis/core/v1alpha1/types_shoot.go | 4 + .../core/v1alpha1/zz_generated.conversion.go | 2 + .../core/v1alpha1/zz_generated.deepcopy.go | 5 + .../core/v1beta1/constants/types_constants.go | 14 +- .../pkg/apis/core/v1beta1/defaults.go | 4 + .../pkg/apis/core/v1beta1/generated.pb.go | 749 +++++----- .../pkg/apis/core/v1beta1/generated.proto | 5 + .../apis/core/v1beta1/types_secretbinding.go | 9 + .../pkg/apis/core/v1beta1/types_shoot.go | 4 + .../core/v1beta1/zz_generated.conversion.go | 2 + .../core/v1beta1/zz_generated.deepcopy.go | 5 + .../pkg/apis/core/zz_generated.deepcopy.go | 5 + .../gardener/pkg/client/kubernetes/types.go | 6 +- .../pkg/gardenlet/apis/config/types.go | 10 + .../gardenlet/apis/config/v1alpha1/types.go | 13 + .../v1alpha1/zz_generated.conversion.go | 34 + .../config/v1alpha1/zz_generated.deepcopy.go | 31 + .../apis/config/zz_generated.deepcopy.go | 31 + .../garbagecollector/references/references.go | 12 + .../gardener/gardener/pkg/utils/encoding.go | 8 +- .../builder/managedresources.go | 16 +- .../pkg/utils/managedresources/registry.go | 5 + .../gardener/pkg/utils/secrets/alias.go | 12 + .../gardener/pkg/utils/secrets/basic_auth.go | 5 + .../pkg/utils/secrets/certificates.go | 11 - .../pkg/utils/secrets/etcd_encryption_key.go | 84 ++ .../gardener/pkg/utils/secrets/vpn_tlsauth.go | 4 +- .../utils/validation/features/featuregates.go | 70 +- .../gardener/hvpa-controller/LICENSE.md | 296 ---- .../api/v1alpha1/hvpa_types.go | 15 +- .../api/v1alpha1/hvpa_webhook.go | 75 - .../api/v1alpha1/zz_generated.deepcopy.go | 8 +- .../pkg/apis/autoscaling.k8s.io/v1}/doc.go | 17 +- .../apis/autoscaling.k8s.io/v1/register.go | 58 + .../pkg/apis/autoscaling.k8s.io/v1/types.go | 360 +++++ .../v1/zz_generated.deepcopy.go | 446 ++++++ vendor/modules.txt | 13 +- .../sigs.k8s.io/controller-runtime/.gitignore | 24 - .../controller-runtime/.golangci.yml | 130 -- .../controller-runtime/CONTRIBUTING.md | 19 - vendor/sigs.k8s.io/controller-runtime/FAQ.md | 81 - .../sigs.k8s.io/controller-runtime/Makefile | 123 -- vendor/sigs.k8s.io/controller-runtime/OWNERS | 10 - .../controller-runtime/OWNERS_ALIASES | 40 - .../sigs.k8s.io/controller-runtime/README.md | 66 - .../controller-runtime/SECURITY_CONTACTS | 14 - .../controller-runtime/TMP-LOGGING.md | 169 --- .../controller-runtime/VERSIONING.md | 30 - .../sigs.k8s.io/controller-runtime/alias.go | 150 -- .../controller-runtime/code-of-conduct.md | 3 - vendor/sigs.k8s.io/controller-runtime/doc.go | 127 -- vendor/sigs.k8s.io/controller-runtime/go.mod | 66 - vendor/sigs.k8s.io/controller-runtime/go.sum | 951 ------------ .../pkg/builder/controller.go | 316 ---- .../controller-runtime/pkg/builder/options.go | 117 -- .../controller-runtime/pkg/builder/webhook.go | 209 --- 75 files changed, 2588 insertions(+), 4158 deletions(-) create mode 100644 vendor/github.com/gardener/gardener/pkg/utils/secrets/etcd_encryption_key.go delete mode 100644 vendor/github.com/gardener/hvpa-controller/LICENSE.md delete mode 100644 vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_webhook.go rename vendor/{sigs.k8s.io/controller-runtime/pkg/builder => k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1}/doc.go (53%) create mode 100644 vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/register.go create mode 100644 vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go create mode 100644 vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/zz_generated.deepcopy.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/.gitignore delete mode 100644 vendor/sigs.k8s.io/controller-runtime/.golangci.yml delete mode 100644 vendor/sigs.k8s.io/controller-runtime/CONTRIBUTING.md delete mode 100644 vendor/sigs.k8s.io/controller-runtime/FAQ.md delete mode 100644 vendor/sigs.k8s.io/controller-runtime/Makefile delete mode 100644 vendor/sigs.k8s.io/controller-runtime/OWNERS delete mode 100644 vendor/sigs.k8s.io/controller-runtime/OWNERS_ALIASES delete mode 100644 vendor/sigs.k8s.io/controller-runtime/README.md delete mode 100644 vendor/sigs.k8s.io/controller-runtime/SECURITY_CONTACTS delete mode 100644 vendor/sigs.k8s.io/controller-runtime/TMP-LOGGING.md delete mode 100644 vendor/sigs.k8s.io/controller-runtime/VERSIONING.md delete mode 100644 vendor/sigs.k8s.io/controller-runtime/alias.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/code-of-conduct.md delete mode 100644 vendor/sigs.k8s.io/controller-runtime/doc.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/go.mod delete mode 100644 vendor/sigs.k8s.io/controller-runtime/go.sum delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/builder/options.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/builder/webhook.go diff --git a/Makefile b/Makefile index d6d911ca1..914815e7c 100644 --- a/Makefile +++ b/Makefile @@ -110,8 +110,8 @@ install-requirements: .PHONY: revendor revendor: - @GO111MODULE=on go mod vendor @GO111MODULE=on go mod tidy + @GO111MODULE=on go mod vendor @chmod +x $(REPO_ROOT)/vendor/github.com/gardener/gardener/hack/* @chmod +x $(REPO_ROOT)/vendor/github.com/gardener/gardener/hack/.ci/* @$(REPO_ROOT)/hack/update-github-templates.sh @@ -136,7 +136,7 @@ check-docforge: $(DOCFORGE) @$(REPO_ROOT)/vendor/github.com/gardener/gardener/hack/check-docforge.sh $(REPO_ROOT) $(REPO_ROOT)/.docforge/manifest.yaml ".docforge/;docs/" "gardener-extension-provider-openstack" false .PHONY: generate -generate: +generate: $(CONTROLLER_GEN) $(GEN_CRD_API_REFERENCE_DOCS) $(HELM) $(MOCKGEN) @$(REPO_ROOT)/vendor/github.com/gardener/gardener/hack/generate.sh ./charts/... ./cmd/... ./example/... ./pkg/... .PHONY: format diff --git a/example/20-crd-druid.gardener.cloud_etcds.yaml b/example/20-crd-druid.gardener.cloud_etcds.yaml index 5a7897de2..d4ecd9c32 100644 --- a/example/20-crd-druid.gardener.cloud_etcds.yaml +++ b/example/20-crd-druid.gardener.cloud_etcds.yaml @@ -47,12 +47,12 @@ spec: type: string type: object backup: - description: BackupSpec defines parametes associated with the full - and delta snapshots of etcd + description: BackupSpec defines parameters associated with the full + and delta snapshots of etcd. properties: compactionResources: - description: 'CompactionResources defines the compute Resources - required by compaction job. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + description: 'CompactionResources defines compute Resources required + by compaction job. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: limits: additionalProperties: @@ -130,6 +130,19 @@ spec: image: description: Image defines the etcd container image and tag type: string + leaderElection: + description: LeaderElection defines parameters related to the + LeaderElection configuration. + properties: + etcdConnectionTimeout: + description: EtcdConnectionTimeout defines the timeout duration + for etcd client connection during leader election. + type: string + reelectionPeriod: + description: ReelectionPeriod defines the Period after which + leadership status of corresponding etcd is checked. + type: string + type: object ownerCheck: description: OwnerCheck defines parameters related to checking if the cluster owner, as specified in the owner DNS record, @@ -157,12 +170,12 @@ spec: type: object port: description: Port define the port on which etcd-backup-restore - server will exposed. + server will be exposed. format: int32 type: integer resources: - description: 'Resources defines the compute Resources required - by backup-restore container. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + description: 'Resources defines compute Resources required by + backup-restore container. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' properties: limits: additionalProperties: @@ -247,9 +260,12 @@ spec: type: string type: object tlsCASecretRef: - description: SecretReference represents a Secret Reference. - It has enough information to retrieve secret in any namespace + description: SecretReference defines a reference to a secret. properties: + dataKey: + description: DataKey is the name of the key in the data + map containing the credentials. + type: string name: description: Name is unique within a namespace to reference a secret resource. @@ -292,6 +308,10 @@ spec: description: EtcdDefragTimeout defines the timeout duration for etcd defrag call type: string + heartbeatDuration: + description: HeartbeatDuration defines the duration for members + to send heartbeats. The default value is 10s. + type: string image: description: Image defines the etcd container image and tag type: string @@ -369,9 +389,12 @@ spec: type: string type: object tlsCASecretRef: - description: SecretReference represents a Secret Reference. - It has enough information to retrieve secret in any namespace + description: SecretReference defines a reference to a secret. properties: + dataKey: + description: DataKey is the name of the key in the data + map containing the credentials. + type: string name: description: Name is unique within a namespace to reference a secret resource. @@ -396,6 +419,7 @@ spec: shall be used for the etcd pods. type: string replicas: + format: int32 type: integer selector: description: 'selector is a label query over pods that should match diff --git a/go.mod b/go.mod index f10563e46..323e2b4e9 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ require ( github.com/Masterminds/sprig v2.22.0+incompatible 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.43.2 + github.com/gardener/etcd-druid v0.8.0 + github.com/gardener/gardener v1.44.0 github.com/gardener/machine-controller-manager v0.41.0 github.com/go-logr/logr v1.2.0 github.com/golang/mock v1.6.0 @@ -25,7 +25,7 @@ require ( k8s.io/apiextensions-apiserver v0.23.3 k8s.io/apimachinery v0.23.3 k8s.io/apiserver v0.23.3 - k8s.io/autoscaler/vertical-pod-autoscaler v0.0.0-00010101000000-000000000000 + k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 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 @@ -50,3 +50,9 @@ replace ( k8s.io/helm => k8s.io/helm v2.13.1+incompatible k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.23.3 ) + +// workaround for https://github.com/gardener/hvpa-controller/issues/92, remove once it's fixed +replace ( + github.com/gardener/hvpa-controller => github.com/gardener/hvpa-controller v0.4.0 + github.com/gardener/hvpa-controller/api => github.com/gardener/hvpa-controller/api v0.4.0 +) diff --git a/go.sum b/go.sum index 5dd89227e..9810533eb 100644 --- a/go.sum +++ b/go.sum @@ -215,6 +215,7 @@ github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMi github.com/evanphx/json-patch v4.0.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -237,13 +238,15 @@ 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.6.1-0.20210623112844-96f73d5dc311/go.mod h1:h4miVhg/rGUl8jZsmRrunKDX56I6gHvr2HtC7gBepIY= 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= github.com/gardener/etcd-druid v0.5.0/go.mod h1:Ca2ZM9dyMdZI6k5RW4wu8CG8q5cNeF/HSE2P+hut0+g= -github.com/gardener/etcd-druid v0.7.0 h1:l1cH4VzaVbG1PSt+VTyQuzHFwworMQHK+5SXUS+7Mp8= -github.com/gardener/etcd-druid v0.7.0/go.mod h1:mxKujGcT1iduAa9bos1LWMEJUIOlOL/TegicbsiH2Vk= +github.com/gardener/etcd-druid v0.6.1-0.20211022081522-071746e9d0bd/go.mod h1:BukSWtT9sxjCa3H4q2biJMIo52o+57MuBBifzzZkhPo= +github.com/gardener/etcd-druid v0.8.0 h1:mfQ89ywtbeGiH5ePmo+MrXNm7ADBuZGA1civ9PqSGaQ= +github.com/gardener/etcd-druid v0.8.0/go.mod h1:EJF6z4Ghv2FGUe1UzZWOEF1MxCA186fxvjBO44oSJX4= github.com/gardener/external-dns-management v0.7.3/go.mod h1:Y3om11E865x4aQ7cmcHjknb8RMgCO153huRb/SvP+9o= github.com/gardener/external-dns-management v0.7.7/go.mod h1:egCe/FPOsUbXA4WV0ne3h7nAD/nLT09hNt/FQQXK+ec= github.com/gardener/external-dns-management v0.7.18 h1:15uIyFfZSbR8fivnXvqb1Dvv4QqzfNYxEFUQ9K+mpsE= @@ -255,15 +258,16 @@ github.com/gardener/gardener v1.6.5/go.mod h1:w5IHIQDccvSxZJFOtBa8YConyyFgt07DBH 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.43.2 h1:UtZNNJu7fgfqc6qfRV8D8QGFXCQhDH/ZJRne2laCdMY= -github.com/gardener/gardener v1.43.2/go.mod h1:L3g3pYdqhE3KoHzEIW7I3DOv1TUQl8VIEW1U+QOEmlA= +github.com/gardener/gardener v1.36.0/go.mod h1:aVEbZy2WybsuwfXfUFNfOYz1JOmMjEOeYbv+sN9PzE0= +github.com/gardener/gardener v1.44.0 h1:oaexCynfr/IKSPt2op3ES43BSGD6+0bwdWETIecL4XI= +github.com/gardener/gardener v1.44.0/go.mod h1:y8f1w9u44YuDAowo3PWmR79LhUv4TeTTb/1dhAFbKzc= 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= -github.com/gardener/hvpa-controller v0.0.0-20191014062307-fad3bdf06a25/go.mod h1:yj7YJ6ijo4adcpXQKutPFZfQuKLdM5UMZZUlpbM3vig= -github.com/gardener/hvpa-controller v0.2.5/go.mod h1:rjsb3BPKJFMluudZ8/bhCCDQfFCF/0Um+rzXQI/MmfI= -github.com/gardener/hvpa-controller v0.3.1 h1:VsOdcKZMcZDlUNVbFY8oqlKrb1GSCdmzPooKT/Tyi+Y= -github.com/gardener/hvpa-controller v0.3.1/go.mod h1:rjsb3BPKJFMluudZ8/bhCCDQfFCF/0Um+rzXQI/MmfI= +github.com/gardener/hvpa-controller v0.4.0 h1:yJWQeQiQ1UCPRwNm7PsSmqV2zGVOlkUoKWzrSJ4kJdo= +github.com/gardener/hvpa-controller v0.4.0/go.mod h1:8mvrG3Iw1/lo0sAhsbkVScz8AmU6IVFNSXbi5yAmL4Y= +github.com/gardener/hvpa-controller/api v0.4.0 h1:IwNHmqEjleDLmvSDzIcSrIcqrNI8R06PuWIzX40Yw/4= +github.com/gardener/hvpa-controller/api v0.4.0/go.mod h1:QQl3ELkCaki+8RhXl0FZMfvnm0WCGwGJlGmrxJj6lvM= 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= @@ -293,11 +297,13 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.3.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-logr/zapr v0.1.1/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU= +github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk= github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= @@ -406,7 +412,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= -github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -476,7 +481,6 @@ github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdv github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= @@ -629,6 +633,7 @@ github.com/nwaples/rardecode v1.0.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWk github.com/nwaples/rardecode v1.1.2 h1:Cj0yZY6T1Zx1R7AhTbyGSALm44/Mmq+BAPc4B/p/d3M= 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.5/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= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= @@ -653,7 +658,6 @@ github.com/onsi/ginkgo/v2 v2.1.0 h1:Rj+Was8Gt/ICSZY/CihVKK2cGy3rDqBYKSxVnmOXZzI= github.com/onsi/ginkgo/v2 v2.1.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= @@ -663,6 +667,9 @@ github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y 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.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= 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= @@ -671,7 +678,6 @@ github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zM github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/packethost/packngo v0.0.0-20181217122008-b3b45f1b4979/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= @@ -698,13 +704,11 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1: github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 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.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= @@ -750,7 +754,6 @@ github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= @@ -762,7 +765,6 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -867,7 +869,6 @@ go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 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= @@ -888,6 +889,7 @@ golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPh 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-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= 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= @@ -983,6 +985,7 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd 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-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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= @@ -1031,7 +1034,6 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1073,6 +1075,7 @@ golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201107080550-4d91cf3a1aaf/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1095,12 +1098,16 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc 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-20210817190340-bfb29a6856f2/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-20211015200801-69063c4bb744/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-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b h1:9zKuko04nR4gjZ4+DNjHqRlAJqbJETHwiNKDqTfOjfE= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1115,7 +1122,6 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1137,7 +1143,6 @@ golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190501045030-23463209683d/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -1189,6 +1194,7 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201105220310-78b158585360/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1200,6 +1206,7 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM= +golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.9 h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1207,7 +1214,6 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gomodules.xyz/jsonpatch/v2 v2.0.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= gomodules.xyz/jsonpatch/v2 v2.1.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= @@ -1382,9 +1388,11 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= istio.io/api v0.0.0-20201123152548-197f11e4ea09/go.mod h1:88HN3o1fSD1jo+Z1WTLlJfMm9biopur6Ct9BFKjiB64= +istio.io/api v0.0.0-20210520012029-891c0c12abfd/go.mod h1:nsSFw1LIMmGL7r/+6fJI6FxeG/UGlLxRK8bkojIvBVs= istio.io/api v0.0.0-20211118170605-3f0f902cdfd1 h1:unlpbrna/y/ofrSDcEnpT2O+ViQoVKzXGPw+M8ayEn0= istio.io/api v0.0.0-20211118170605-3f0f902cdfd1/go.mod h1:lavaUNsnT7RGyMFNOGgV5XvOgP3fkTSZkxP/0H/ISt4= istio.io/client-go v1.8.1/go.mod h1:Qymv71lwIqjDTkaE2NqBYLL+Bl5KsCfzEDhntXypHYY= +istio.io/client-go v1.10.1/go.mod h1:xiCalTDM2HqP1KGxMOt+OOkqCLOI6QrwQMb95cSWw9U= istio.io/client-go v1.12.0 h1:AO847P/Dt2k1ZJtwoFck2Joap1CZv+g1eGXNhZs7mek= istio.io/client-go v1.12.0/go.mod h1:Y46Rc0vTVHogmIXnGMCsb19Bc0XIMhOEnZUr+5ZxMmo= istio.io/gogo-genproto v0.0.0-20190930162913-45029607206a/go.mod h1:OzpAts7jljZceG4Vqi5/zXy/pOg1b209T3jb7Nv5wIs= @@ -1414,6 +1422,7 @@ k8s.io/gengo v0.0.0-20190826232639-a874a240740c/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8 k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c h1:GohjlNKauSai7gN4wsJkeZ3WAJx4Sh+oT/b5IYn5suA= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/helm v2.13.1+incompatible h1:qt0LBsHQ7uxCtS3F2r3XI0DNm8ml0xQeSJixUorDyn0= @@ -1427,16 +1436,17 @@ k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-aggregator v0.23.3 h1:9IP+D+YzIbGor/TArN3pYf9Thj19wYhzLRGRrFaKFSs= k8s.io/kube-aggregator v0.23.3/go.mod h1:pt5QJ3QaIdhZzNlUvN5wndbM0LNT4BvhszGkzy2QdFo= -k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29/go.mod h1:F+5wygcW0wmRTnM3cOgIqGivxkwSWIWT5YdsDbeAOaU= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= 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= @@ -1445,6 +1455,7 @@ 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= +k8s.io/kubelet v0.22.2/go.mod h1:ORIRua2/wTcx5UnEvxWosu650/8fatmzbMRC7m6WjAM= k8s.io/kubelet v0.23.3 h1:jYed8HoT0H2zXzf5Av+Ml8z5erN39uJfKh/yplYMgkg= k8s.io/kubelet v0.23.3/go.mod h1:RZxGSCsiwoWJ9z6mVla+jhiLfCFIKC16yAS38D7GQSE= k8s.io/kubernetes v1.14.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= @@ -1455,9 +1466,9 @@ 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= +k8s.io/metrics v0.22.2/go.mod h1:GUcsBtpsqQD1tKFS/2wCKu4ZBowwRncLOJH1rgWs3uw= 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= @@ -1469,6 +1480,7 @@ k8s.io/utils v0.0.0-20200912215256-4140de9c8800/go.mod h1:jPW/WVKK9YHAvNhRxK0md/ 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-20210819203725-bdf08cb9a70a/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= @@ -1477,21 +1489,23 @@ rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= 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= +sigs.k8s.io/controller-runtime v0.10.2/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY= sigs.k8s.io/controller-runtime v0.11.0 h1:DqO+c8mywcZLFJWILq4iktoECTyn30Bkj0CwgqMpZWQ= sigs.k8s.io/controller-runtime v0.11.0/go.mod h1:KKwLiTooNGu+JmLZGn9Sl3Gjmfj66eMbCQznLP5zcqA= +sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20211005045149-78ce10e2ebad/go.mod h1:Fxb8+lsIhcPWKq89RReMSzjcv3COhP0D37vJplt4ABg= sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20211208212546-f236f0345ad2 h1:ixmjiqjca72gl+JktzMpZZJYDpYJ4ZGgExZJJ4AzG7o= sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20211208212546-f236f0345ad2/go.mod h1:+sJcI1F0QI0Cv+8fp5rH5B2fK1LxzrAQqYnaPx9nY8I= -sigs.k8s.io/controller-tools v0.2.0-beta.4/go.mod h1:8t/X+FVWvk6TaBcsa+UKUBbn7GMtvyBKX30SGl4em6Y= sigs.k8s.io/controller-tools v0.2.4/go.mod h1:m/ztfQNocGYBgTTCmFdnK94uVvgxeZeE3LtJvd/jIzA= sigs.k8s.io/controller-tools v0.2.9/go.mod h1:ArP7w60JQKkZf7UU2oWTVnEhoNGA+sOMyuSuS+JFNDQ= +sigs.k8s.io/controller-tools v0.4.0/go.mod h1:G9rHdZMVlBDocIxGkK3jHLWqcTMNvveypYJwrvYKjWU= sigs.k8s.io/controller-tools v0.4.1/go.mod h1:G9rHdZMVlBDocIxGkK3jHLWqcTMNvveypYJwrvYKjWU= +sigs.k8s.io/controller-tools v0.7.0/go.mod h1:bpBAo0VcSDDLuWt47evLhMLPxRPxMDInTEH/YbdeMK0= sigs.k8s.io/controller-tools v0.8.0 h1:uUkfTGEwrguqYYfcI2RRGUnC8mYdCFDqfwPKUcNJh1o= sigs.k8s.io/controller-tools v0.8.0/go.mod h1:qE2DXhVOiEq5ijmINcFbqi9GZrrUjzB1TuJU0xa6eoY= sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s= @@ -1506,7 +1520,6 @@ sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZa 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= sigs.k8s.io/testing_frameworks v0.1.2/go.mod h1:ToQrwSC3s8Xf/lADdZp3Mktcql9CG0UAmdJG9th5i0w= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/vendor/github.com/gardener/etcd-druid/api/v1alpha1/etcd_types.go b/vendor/github.com/gardener/etcd-druid/api/v1alpha1/etcd_types.go index 0dc08b268..b9d807419 100644 --- a/vendor/github.com/gardener/etcd-druid/api/v1alpha1/etcd_types.go +++ b/vendor/github.com/gardener/etcd-druid/api/v1alpha1/etcd_types.go @@ -92,13 +92,21 @@ type TLSConfig struct { // +required ClientTLSSecretRef corev1.SecretReference `json:"clientTLSSecretRef"` // +required - TLSCASecretRef corev1.SecretReference `json:"tlsCASecretRef"` + TLSCASecretRef SecretReference `json:"tlsCASecretRef"` +} + +// SecretReference defines a reference to a secret. +type SecretReference struct { + corev1.SecretReference `json:",inline"` + // DataKey is the name of the key in the data map containing the credentials. + // +optional + DataKey *string `json:"dataKey,omitempty"` } // CompressionSpec defines parameters related to compression of Snapshots(full as well as delta). type CompressionSpec struct { // +optional - Enabled bool `json:"enabled,omitempty"` + Enabled *bool `json:"enabled,omitempty"` // +optional Policy *CompressionPolicy `json:"policy,omitempty"` } @@ -121,9 +129,19 @@ type OwnerCheckSpec struct { DNSCacheTTL *metav1.Duration `json:"dnsCacheTTL,omitempty"` } -// BackupSpec defines parametes associated with the full and delta snapshots of etcd +// LeaderElectionSpec defines parameters related to the LeaderElection configuration. +type LeaderElectionSpec struct { + // ReelectionPeriod defines the Period after which leadership status of corresponding etcd is checked. + // +optional + ReelectionPeriod *metav1.Duration `json:"reelectionPeriod,omitempty"` + // EtcdConnectionTimeout defines the timeout duration for etcd client connection during leader election. + // +optional + EtcdConnectionTimeout *metav1.Duration `json:"etcdConnectionTimeout,omitempty"` +} + +// BackupSpec defines parameters associated with the full and delta snapshots of etcd. type BackupSpec struct { - // Port define the port on which etcd-backup-restore server will exposed. + // Port define the port on which etcd-backup-restore server will be exposed. // +optional Port *int32 `json:"port,omitempty"` // +optional @@ -134,11 +152,11 @@ type BackupSpec struct { // Store defines the specification of object store provider for storing backups. // +optional Store *StoreSpec `json:"store,omitempty"` - // Resources defines the compute Resources required by backup-restore container. + // Resources defines compute Resources required by backup-restore container. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // +optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` - // CompactionResources defines the compute Resources required by compaction job. + // CompactionResources defines compute Resources required by compaction job. // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // +optional CompactionResources *corev1.ResourceRequirements `json:"compactionResources,omitempty"` @@ -170,6 +188,9 @@ type BackupSpec struct { // is the expected one. // +optional OwnerCheck *OwnerCheckSpec `json:"ownerCheck,omitempty"` + // LeaderElection defines parameters related to the LeaderElection configuration. + // +optional + LeaderElection *LeaderElectionSpec `json:"leaderElection,omitempty"` } // EtcdConfig defines parameters associated etcd deployed @@ -201,6 +222,9 @@ type EtcdConfig struct { // EtcdDefragTimeout defines the timeout duration for etcd defrag call // +optional EtcdDefragTimeout *metav1.Duration `json:"etcdDefragTimeout,omitempty"` + // HeartbeatDuration defines the duration for members to send heartbeats. The default value is 10s. + // +optional + HeartbeatDuration *metav1.Duration `json:"heartbeatDuration,omitempty"` } // SharedConfig defines parameters shared and used by Etcd as well as backup-restore sidecar. @@ -230,7 +254,7 @@ type EtcdSpec struct { // +optional Common SharedConfig `json:"sharedConfig,omitempty"` // +required - Replicas int `json:"replicas"` + Replicas int32 `json:"replicas"` // PriorityClassName is the name of a priority class that shall be used for the etcd pods. // +optional PriorityClassName *string `json:"priorityClassName,omitempty"` diff --git a/vendor/github.com/gardener/etcd-druid/api/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/etcd-druid/api/v1alpha1/zz_generated.deepcopy.go index f94820503..770eb6195 100644 --- a/vendor/github.com/gardener/etcd-druid/api/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/etcd-druid/api/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated // 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. @@ -35,7 +36,7 @@ func (in *BackupSpec) DeepCopyInto(out *BackupSpec) { if in.TLS != nil { in, out := &in.TLS, &out.TLS *out = new(TLSConfig) - **out = **in + (*in).DeepCopyInto(*out) } if in.Image != nil { in, out := &in.Image, &out.Image @@ -102,6 +103,11 @@ func (in *BackupSpec) DeepCopyInto(out *BackupSpec) { *out = new(OwnerCheckSpec) (*in).DeepCopyInto(*out) } + if in.LeaderElection != nil { + in, out := &in.LeaderElection, &out.LeaderElection + *out = new(LeaderElectionSpec) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSpec. @@ -117,6 +123,11 @@ func (in *BackupSpec) DeepCopy() *BackupSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CompressionSpec) DeepCopyInto(out *CompressionSpec) { *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } if in.Policy != nil { in, out := &in.Policy, &out.Policy *out = new(CompressionPolicy) @@ -239,13 +250,18 @@ func (in *EtcdConfig) DeepCopyInto(out *EtcdConfig) { if in.TLS != nil { in, out := &in.TLS, &out.TLS *out = new(TLSConfig) - **out = **in + (*in).DeepCopyInto(*out) } if in.EtcdDefragTimeout != nil { in, out := &in.EtcdDefragTimeout, &out.EtcdDefragTimeout *out = new(metav1.Duration) **out = **in } + if in.HeartbeatDuration != nil { + in, out := &in.HeartbeatDuration, &out.HeartbeatDuration + *out = new(metav1.Duration) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdConfig. @@ -560,6 +576,31 @@ func (in *EtcdStatus) DeepCopy() *EtcdStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LeaderElectionSpec) DeepCopyInto(out *LeaderElectionSpec) { + *out = *in + if in.ReelectionPeriod != nil { + in, out := &in.ReelectionPeriod, &out.ReelectionPeriod + *out = new(metav1.Duration) + **out = **in + } + if in.EtcdConnectionTimeout != nil { + in, out := &in.EtcdConnectionTimeout, &out.EtcdConnectionTimeout + *out = new(metav1.Duration) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionSpec. +func (in *LeaderElectionSpec) DeepCopy() *LeaderElectionSpec { + if in == nil { + return nil + } + out := new(LeaderElectionSpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OwnerCheckSpec) DeepCopyInto(out *OwnerCheckSpec) { *out = *in @@ -590,6 +631,27 @@ func (in *OwnerCheckSpec) DeepCopy() *OwnerCheckSpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecretReference) DeepCopyInto(out *SecretReference) { + *out = *in + out.SecretReference = in.SecretReference + if in.DataKey != nil { + in, out := &in.DataKey, &out.DataKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference. +func (in *SecretReference) DeepCopy() *SecretReference { + if in == nil { + return nil + } + out := new(SecretReference) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *SharedConfig) DeepCopyInto(out *SharedConfig) { *out = *in @@ -650,7 +712,7 @@ func (in *TLSConfig) DeepCopyInto(out *TLSConfig) { *out = *in out.ServerTLSSecretRef = in.ServerTLSSecretRef out.ClientTLSSecretRef = in.ClientTLSSecretRef - out.TLSCASecretRef = in.TLSCASecretRef + in.TLSCASecretRef.DeepCopyInto(&out.TLSCASecretRef) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig. diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/controller/common/checkerwatchdog.go b/vendor/github.com/gardener/gardener/extensions/pkg/controller/common/checkerwatchdog.go index 49f69fe22..dadc2d206 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/controller/common/checkerwatchdog.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/controller/common/checkerwatchdog.go @@ -101,7 +101,7 @@ func (w *checkerWatchdog) Start(ctx context.Context) { case <-w.resultChan: resultRequested = true // If the last result is not older than w.interval, use it - if !time.Now().After(w.resultTime.Add(w.interval)) { + if !w.clock.Now().After(w.resultTime.Add(w.interval)) { w.resultReadyChan <- struct{}{} continue } @@ -191,5 +191,5 @@ func (w *checkerWatchdog) Result() (bool, error) { func (w *checkerWatchdog) setResult(result bool, err error) { w.resultMutex.Lock() defer w.resultMutex.Unlock() - w.result, w.err, w.resultTime = result, err, time.Now() + w.result, w.err, w.resultTime = result, err, w.clock.Now() } diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/helpers.go b/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/helpers.go index 9d3fd2793..c085ca0fc 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/helpers.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/helpers.go @@ -22,6 +22,7 @@ import ( machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1" corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) var ( @@ -144,6 +145,9 @@ func checkNodesScalingDown(machineList *machinev1alpha1.MachineList, nodeList *c var cordonedNodes int for _, node := range nodeList.Items { + if metav1.HasAnnotation(node.ObjectMeta, AnnotationKeyNotManagedByMCM) && node.Annotations[AnnotationKeyNotManagedByMCM] == "1" { + continue + } if node.Spec.Unschedulable { machine, ok := nodeNameToMachine[node.Name] if !ok { diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/nodes.go b/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/nodes.go index bfafc8148..2d4c9e31f 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/nodes.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/controller/healthcheck/worker/nodes.go @@ -26,11 +26,18 @@ import ( machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1" "github.com/go-logr/logr" corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log" ) +const ( + // AnnotationKeyNotManagedByMCM is a constant for an annotation on the node resource that indicates that + // the node is not handled by MCM. + AnnotationKeyNotManagedByMCM = "node.machine.sapcloud.io/not-managed-by-mcm" +) + // DefaultHealthChecker all the information for the Worker HealthCheck. // This check assumes that the MachineControllerManager (https://github.com/gardener/machine-controller-manager) has been // deployed by the Worker extension controller. @@ -108,12 +115,17 @@ func (h *DefaultHealthChecker) Check(ctx context.Context, request types.Namespac } var ( - readyNodes int - registeredNodes = len(nodeList.Items) - desiredMachines = getDesiredMachineCount(machineDeploymentList.Items) + readyNodes int + registeredNodes = len(nodeList.Items) + desiredMachines = getDesiredMachineCount(machineDeploymentList.Items) + nodeNotManagedByMCM int ) for _, node := range nodeList.Items { + if metav1.HasAnnotation(node.ObjectMeta, AnnotationKeyNotManagedByMCM) && node.Annotations[AnnotationKeyNotManagedByMCM] == "1" { + nodeNotManagedByMCM++ + continue + } if node.Spec.Unschedulable { continue } @@ -124,6 +136,9 @@ func (h *DefaultHealthChecker) Check(ctx context.Context, request types.Namespac } } + // only nodes that are managed by MCM is considered + registeredNodes = registeredNodes - nodeNotManagedByMCM + machineList := &machinev1alpha1.MachineList{} if registeredNodes != desiredMachines || readyNodes != desiredMachines { if err := h.seedClient.List(ctx, machineList, client.InNamespace(request.Namespace)); err != nil { diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/controller/utils.go b/vendor/github.com/gardener/gardener/extensions/pkg/controller/utils.go index 924615faf..07b160221 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/controller/utils.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/controller/utils.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - autoscalingv1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2" + vpaautoscalingv1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1" "k8s.io/client-go/kubernetes/scheme" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -123,10 +123,10 @@ func UnsafeGuessKind(obj runtime.Object) string { return t.Elem().Name() } -// GetVerticalPodAutoscalerObject returns unstructured.Unstructured representing autoscalingv1beta2.VerticalPodAutoscaler +// GetVerticalPodAutoscalerObject returns unstructured.Unstructured representing vpaautoscalingv1.VerticalPodAutoscaler func GetVerticalPodAutoscalerObject() *unstructured.Unstructured { obj := &unstructured.Unstructured{} - obj.SetAPIVersion(autoscalingv1beta2.SchemeGroupVersion.String()) + obj.SetAPIVersion(vpaautoscalingv1.SchemeGroupVersion.String()) obj.SetKind("VerticalPodAutoscaler") return obj } diff --git a/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/machines.go b/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/machines.go index 633c9f47f..c5e2ee834 100644 --- a/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/machines.go +++ b/vendor/github.com/gardener/gardener/extensions/pkg/controller/worker/machines.go @@ -156,6 +156,12 @@ func WorkerPoolHash(pool extensionsv1alpha1.WorkerPool, cluster *extensionscontr } } + if status := cluster.Shoot.Status; status.Credentials != nil && status.Credentials.Rotation != nil && + status.Credentials.Rotation.CertificateAuthorities != nil && + status.Credentials.Rotation.CertificateAuthorities.LastInitiationTime != nil { + data = append(data, status.Credentials.Rotation.CertificateAuthorities.LastInitiationTime.Time.String()) + } + var result string for _, v := range data { result += utils.ComputeSHA256Hex([]byte(v)) 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 index 6e5586fe9..4e486a2ad 100755 --- a/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh +++ b/vendor/github.com/gardener/gardener/hack/compare-k8s-feature-gates.sh @@ -41,8 +41,8 @@ out_dir=dev/temp mkdir -p "${out_dir}" for version in "${versions[@]}"; do - rm -f "${out_dir}/featuregates-${version}.txt" - touch "${out_dir}/featuregates-${version}.txt" + rm -f "${out_dir}/featuregates-${version}.txt" "${out_dir}/locked-featuregates-${version}.txt" + touch "${out_dir}/featuregates-${version}.txt" "${out_dir}/locked-featuregates-${version}.txt" for file in "${files[@]}"; do { wget -q -O - "https://raw.githubusercontent.com/kubernetes/kubernetes/release-${version}/${file}" || echo; } > "${out_dir}/kube_features.go" @@ -50,10 +50,16 @@ for version in "${versions[@]}"; do while read constant; do grep -E "${constant} featuregate.Feature = \".*\"" "${out_dir}/kube_features.go" | awk '{print $4}' | { grep -Eo '[A-Z]\w+' || true; } >> "${out_dir}/featuregates-${version}.txt" done < "${out_dir}/constants.txt" - rm -f "${out_dir}/kube_features.go" "${out_dir}/constants.txt" + + grep -E '{Default: .*, PreRelease: .*, LockToDefault: .*},' "${out_dir}/kube_features.go" | awk '{print $1}' | { grep -Eo '[A-Z]\w+' || true; } > "${out_dir}/locked_features.txt" + while read feature; do + grep -E "${feature} featuregate.Feature = \".*\"" "${out_dir}/kube_features.go" | awk '{print $4}' | { grep -Eo '[A-Z]\w+' || true; } >> "${out_dir}/locked-featuregates-${version}.txt" + done < "${out_dir}/locked_features.txt" + rm -f "${out_dir}/kube_features.go" "${out_dir}/constants.txt" "${out_dir}/locked_features.txt" done sort -u -o "${out_dir}/featuregates-${version}.txt" "${out_dir}/featuregates-${version}.txt" + sort -u -o "${out_dir}/locked-featuregates-${version}.txt" "${out_dir}/locked-featuregates-${version}.txt" done echo "Feature gates added in $2 compared to $1:" @@ -61,3 +67,7 @@ diff "${out_dir}/featuregates-$1.txt" "${out_dir}/featuregates-$2.txt" | grep '> echo echo "Feature gates removed in $2 compared to $1:" diff "${out_dir}/featuregates-$1.txt" "${out_dir}/featuregates-$2.txt" | grep '<' | awk '{print $2}' +echo +echo "Feature gates locked to default in $2 compared to $1:" +diff "${out_dir}/locked-featuregates-$1.txt" "${out_dir}/locked-featuregates-$2.txt" | grep '>' | awk '{print $2}' +echo diff --git a/vendor/github.com/gardener/gardener/hack/generate-seed-crds.sh b/vendor/github.com/gardener/gardener/hack/generate-seed-crds.sh index 2fb85bdea..fdb3a967e 100755 --- a/vendor/github.com/gardener/gardener/hack/generate-seed-crds.sh +++ b/vendor/github.com/gardener/gardener/hack/generate-seed-crds.sh @@ -45,6 +45,9 @@ get_group_package () { "druid.gardener.cloud") echo "github.com/gardener/etcd-druid/api/v1alpha1" ;; + "autoscaling.k8s.io") + echo "github.com/gardener/hvpa-controller/api/v1alpha1" + ;; *) >&2 echo "unknown group $1" return 1 @@ -76,6 +79,11 @@ generate_group () { if [ "$crd" != "$crd_out" ]; then mv "$crd" "$crd_out" fi + # TODO(plkokanov): this is needed to add the `api-approved.kubernetes.io` annotaiton to resource from the *.k8s.io api group generated by controller-gen + # Currently there is an issue open to do that automatically: https://github.com/kubernetes-sigs/controller-tools/issues/656 + if [[ ${group} =~ .*\.k8s\.io ]]; then + sed -i '/^ annotations:.*/a\ api-approved.kubernetes.io: unapproved, temporarily squatting' "$crd_out" + fi done < <(ls "$output_dir/${group}"_*.yaml) } @@ -88,4 +96,5 @@ else generate_group extensions.gardener.cloud generate_group resources.gardener.cloud generate_group druid.gardener.cloud + generate_group autoscaling.k8s.io fi diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_secretbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_secretbinding.go index 54ed0beae..407fb72bf 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_secretbinding.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_secretbinding.go @@ -38,6 +38,15 @@ type SecretBinding struct { Provider *SecretBindingProvider } +// GetProviderType gets the type of the provider. +func (sb *SecretBinding) GetProviderType() string { + if sb.Provider == nil { + return "" + } + + return sb.Provider.Type +} + // SecretBindingProvider defines the provider type of the SecretBinding. type SecretBindingProvider struct { // Type is the type of the provider. 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 83fc6ade6..a5706fc37 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 @@ -380,6 +380,8 @@ type Kubernetes struct { Version string // VerticalPodAutoscaler contains the configuration flags for the Kubernetes vertical pod autoscaler. VerticalPodAutoscaler *VerticalPodAutoscaler + // EnableStaticTokenKubeconfig indicates whether static token kubeconfig secret will be created for shoot (default: true). + EnableStaticTokenKubeconfig *bool } // ClusterAutoscaler contains the configuration flags for the Kubernetes cluster autoscaler. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/defaults.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/defaults.go index d9a2e27fd..9bbbd2e7c 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/defaults.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/defaults.go @@ -187,6 +187,10 @@ func SetDefaults_Shoot(obj *Shoot) { obj.Spec.Kubernetes.KubeProxy.Enabled = pointer.Bool(true) } + if obj.Spec.Kubernetes.EnableStaticTokenKubeconfig == nil { + obj.Spec.Kubernetes.EnableStaticTokenKubeconfig = pointer.Bool(true) + } + if obj.Spec.Addons == nil { obj.Spec.Addons = &Addons{} } 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 0253b4465..a85882363 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 @@ -4627,650 +4627,652 @@ func init() { } var fileDescriptor_f1caaec5647a9dbf = []byte{ - // 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, + // 10315 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x69, 0x8c, 0x24, 0xc9, + 0x75, 0x18, 0xcc, 0xac, 0xbe, 0xaa, 0x5f, 0xf5, 0x19, 0x73, 0x6c, 0xef, 0xec, 0xce, 0xf6, 0x32, + 0xc9, 0xe5, 0x37, 0xfb, 0x91, 0xea, 0xd1, 0xf2, 0x10, 0xb9, 0xcb, 0xdd, 0xe5, 0x76, 0x55, 0xf5, + 0xcc, 0x14, 0x67, 0x7a, 0xa6, 0x19, 0x35, 0xbd, 0xcb, 0x43, 0x20, 0x99, 0x9d, 0x19, 0x5d, 0x9d, + 0xec, 0xac, 0xcc, 0xda, 0xcc, 0xac, 0x9e, 0xee, 0x59, 0x5a, 0xa4, 0x28, 0x1e, 0x16, 0x09, 0x1b, + 0x36, 0x64, 0x83, 0x02, 0x49, 0x90, 0x14, 0x21, 0x18, 0x34, 0x60, 0x81, 0x32, 0x01, 0xd3, 0x90, + 0x0f, 0x19, 0x90, 0x7e, 0x88, 0xa0, 0x0c, 0x5a, 0x30, 0x64, 0x81, 0x16, 0xe4, 0xa6, 0xd9, 0x3e, + 0x24, 0x5f, 0x3f, 0x0c, 0xc3, 0x7f, 0x06, 0xb2, 0x61, 0xc4, 0x91, 0x91, 0x91, 0x57, 0x1f, 0x99, + 0x3d, 0x4d, 0xae, 0xfd, 0xab, 0x2a, 0xe3, 0x78, 0x2f, 0x8e, 0x17, 0x2f, 0xde, 0x7b, 0xf1, 0xe2, + 0x05, 0xb4, 0x7a, 0x76, 0xb8, 0x35, 0xdc, 0x58, 0x32, 0xbd, 0xfe, 0xd5, 0x9e, 0xe1, 0x5b, 0xc4, + 0x25, 0x7e, 0xfc, 0x67, 0xb0, 0xdd, 0xbb, 0x6a, 0x0c, 0xec, 0xe0, 0xaa, 0xe9, 0xf9, 0xe4, 0xea, + 0xce, 0x33, 0x86, 0x33, 0xd8, 0x32, 0x9e, 0xb9, 0xda, 0xa3, 0x99, 0x46, 0x48, 0xac, 0xa5, 0x81, + 0xef, 0x85, 0x1e, 0x7a, 0x47, 0x0c, 0x64, 0x29, 0xaa, 0x1b, 0xff, 0x19, 0x6c, 0xf7, 0x96, 0x28, + 0x90, 0x25, 0x0a, 0x64, 0x29, 0x02, 0x72, 0xa9, 0x79, 0x22, 0xcc, 0x1b, 0x24, 0xcc, 0x22, 0xbe, + 0xf4, 0x73, 0x2a, 0x0c, 0xaf, 0xe7, 0x5d, 0x65, 0xc9, 0x1b, 0xc3, 0x4d, 0xf6, 0xc5, 0x3e, 0xd8, + 0x3f, 0x51, 0xfc, 0xe9, 0xed, 0xf7, 0x04, 0x4b, 0xb6, 0x47, 0x01, 0x5f, 0x35, 0x86, 0xa1, 0x17, + 0x98, 0x86, 0x63, 0xbb, 0xbd, 0xab, 0x3b, 0x59, 0xc8, 0xba, 0x52, 0x54, 0x34, 0xe1, 0xd0, 0x32, + 0xfe, 0x86, 0x61, 0xe6, 0x95, 0x79, 0x67, 0x5c, 0xa6, 0x6f, 0x98, 0x5b, 0xb6, 0x4b, 0xfc, 0xbd, + 0xa8, 0x73, 0x57, 0x7d, 0x12, 0x78, 0x43, 0xdf, 0x24, 0x27, 0xaa, 0x15, 0x5c, 0xed, 0x93, 0xd0, + 0xc8, 0xc3, 0x75, 0xb5, 0xa8, 0x96, 0x3f, 0x74, 0x43, 0xbb, 0x9f, 0x45, 0xf3, 0x0b, 0x47, 0x55, + 0x08, 0xcc, 0x2d, 0xd2, 0x37, 0x32, 0xf5, 0xde, 0x51, 0x54, 0x6f, 0x18, 0xda, 0xce, 0x55, 0xdb, + 0x0d, 0x83, 0xd0, 0x4f, 0x57, 0xd2, 0xdf, 0x0e, 0x63, 0xcb, 0x96, 0xe5, 0xb9, 0xe8, 0x69, 0x98, + 0x20, 0xae, 0xb1, 0xe1, 0x10, 0x6b, 0x41, 0x7b, 0x52, 0xbb, 0x52, 0x6f, 0xce, 0x7e, 0x7f, 0x7f, + 0xf1, 0x0d, 0x07, 0xfb, 0x8b, 0x13, 0x2b, 0x3c, 0x19, 0x47, 0xf9, 0xfa, 0x97, 0x6b, 0x30, 0xce, + 0x2a, 0x05, 0xe8, 0xd7, 0x34, 0x38, 0xb7, 0x3d, 0xdc, 0x20, 0xbe, 0x4b, 0x42, 0x12, 0xb4, 0x8d, + 0x60, 0x6b, 0xc3, 0x33, 0x7c, 0x0e, 0xa2, 0xf1, 0xf6, 0x1b, 0x4b, 0x25, 0x48, 0x70, 0xe9, 0x66, + 0x16, 0x5e, 0xf3, 0x91, 0x83, 0xfd, 0xc5, 0x73, 0x39, 0x19, 0x38, 0x0f, 0x3b, 0xba, 0x07, 0x53, + 0x6e, 0xcf, 0x76, 0x77, 0x3b, 0x6e, 0xcf, 0x27, 0x41, 0xb0, 0x50, 0x63, 0xad, 0x59, 0x2e, 0xd5, + 0x9a, 0xdb, 0x0a, 0xa0, 0xe6, 0xdc, 0xc1, 0xfe, 0xe2, 0x94, 0x9a, 0x82, 0x13, 0x88, 0xf4, 0xcf, + 0x6b, 0x30, 0xbb, 0x6c, 0xf5, 0xed, 0x20, 0xb0, 0x3d, 0x77, 0xcd, 0x19, 0xf6, 0x6c, 0x17, 0x3d, + 0x09, 0xa3, 0xae, 0xd1, 0x27, 0x6c, 0x48, 0x26, 0x9b, 0x53, 0x62, 0x54, 0x47, 0x6f, 0x1b, 0x7d, + 0x82, 0x59, 0x0e, 0xfa, 0x00, 0x8c, 0x9b, 0x9e, 0xbb, 0x69, 0xf7, 0x44, 0x43, 0x7f, 0x6e, 0x89, + 0xcf, 0xe4, 0x92, 0x3a, 0x93, 0xac, 0x7d, 0x82, 0x02, 0x96, 0xb0, 0x71, 0x6f, 0x65, 0x37, 0x24, + 0x2e, 0x45, 0xd3, 0x84, 0x83, 0xfd, 0xc5, 0xf1, 0x16, 0x03, 0x80, 0x05, 0x20, 0xfd, 0x1a, 0xd4, + 0x97, 0x1d, 0xe2, 0x87, 0xb6, 0xdb, 0x43, 0xcf, 0xc1, 0x0c, 0xe9, 0x1b, 0xb6, 0x83, 0x89, 0x49, + 0xec, 0x1d, 0xe2, 0x07, 0x0b, 0xda, 0x93, 0x23, 0x57, 0x26, 0x9b, 0xe8, 0x60, 0x7f, 0x71, 0x66, + 0x25, 0x91, 0x83, 0x53, 0x25, 0xf5, 0xcf, 0x68, 0xd0, 0x58, 0x1e, 0x5a, 0x76, 0xc8, 0xe1, 0xa3, + 0x00, 0x1a, 0x06, 0xfd, 0x5c, 0xf3, 0x1c, 0xdb, 0xdc, 0x13, 0xd3, 0xfc, 0x52, 0xa9, 0x81, 0x5d, + 0x8e, 0xe1, 0x34, 0x67, 0x0f, 0xf6, 0x17, 0x1b, 0x4a, 0x02, 0x56, 0xb1, 0xe8, 0x5b, 0xa0, 0xe6, + 0xa1, 0x0f, 0xc1, 0x14, 0xef, 0xe5, 0xaa, 0x31, 0xc0, 0x64, 0x53, 0x34, 0xe2, 0x4d, 0xca, 0xa0, + 0x45, 0x98, 0x96, 0xee, 0x6c, 0x7c, 0x82, 0x98, 0x21, 0x26, 0x9b, 0xc4, 0x27, 0xae, 0x49, 0xf8, + 0xfc, 0xb5, 0x94, 0xca, 0x38, 0x01, 0x4a, 0xff, 0xb1, 0x06, 0x73, 0xcb, 0x3b, 0x86, 0xed, 0x18, + 0x1b, 0xb6, 0x63, 0x87, 0x7b, 0x1f, 0xf6, 0x5c, 0x72, 0x8c, 0x09, 0x5c, 0x87, 0x47, 0x86, 0xae, + 0xc1, 0xeb, 0x39, 0x64, 0x95, 0x4f, 0xd9, 0xdd, 0xbd, 0x01, 0xa1, 0xa4, 0x47, 0x87, 0xfa, 0xb1, + 0x83, 0xfd, 0xc5, 0x47, 0xd6, 0xf3, 0x8b, 0xe0, 0xa2, 0xba, 0x08, 0xc3, 0x45, 0x25, 0xeb, 0x65, + 0xcf, 0x19, 0xf6, 0x05, 0xd4, 0x11, 0x06, 0xf5, 0xd2, 0xc1, 0xfe, 0xe2, 0xc5, 0xf5, 0xdc, 0x12, + 0xb8, 0xa0, 0xa6, 0xfe, 0x83, 0x1a, 0x4c, 0x35, 0x0d, 0x73, 0x7b, 0x38, 0x68, 0x0e, 0xcd, 0x6d, + 0x12, 0xa2, 0x8f, 0x43, 0x9d, 0x72, 0x2e, 0xcb, 0x08, 0x0d, 0x31, 0x92, 0x3f, 0x5f, 0x48, 0x7e, + 0x6c, 0x16, 0x69, 0xe9, 0x78, 0x6c, 0x57, 0x49, 0x68, 0x34, 0x91, 0x18, 0x13, 0x88, 0xd3, 0xb0, + 0x84, 0x8a, 0x7a, 0x30, 0x1a, 0x0c, 0x88, 0x29, 0x88, 0x7b, 0xa5, 0x14, 0xb1, 0xa8, 0x4d, 0xee, + 0x0e, 0x88, 0x19, 0x4f, 0x03, 0xfd, 0xc2, 0x0c, 0x01, 0xf2, 0x60, 0x3c, 0x08, 0x8d, 0x70, 0x48, + 0xc7, 0x87, 0xa2, 0xba, 0x5e, 0x1d, 0x15, 0x03, 0xd7, 0x9c, 0x11, 0xc8, 0xc6, 0xf9, 0x37, 0x16, + 0x68, 0xf4, 0x1f, 0x69, 0x30, 0xa7, 0x16, 0xbf, 0x65, 0x07, 0x21, 0xfa, 0xc5, 0xcc, 0x80, 0x2e, + 0x1d, 0x6f, 0x40, 0x69, 0x6d, 0x36, 0x9c, 0x73, 0x02, 0x5d, 0x3d, 0x4a, 0x51, 0x06, 0x73, 0x13, + 0xc6, 0xec, 0x90, 0xf4, 0x39, 0x61, 0x95, 0xe5, 0x69, 0x6a, 0x9b, 0x9b, 0xd3, 0x02, 0xdb, 0x58, + 0x87, 0xc2, 0xc5, 0x1c, 0xbc, 0xfe, 0x71, 0x38, 0xaf, 0x96, 0x5a, 0xf3, 0xbd, 0x1d, 0xdb, 0x22, + 0x3e, 0x5d, 0x0c, 0xe1, 0xde, 0x20, 0xb3, 0x18, 0x28, 0x71, 0x61, 0x96, 0x83, 0xde, 0x02, 0xe3, + 0x3e, 0xe9, 0xd9, 0x9e, 0xcb, 0x26, 0x7c, 0x32, 0x1e, 0x3c, 0xcc, 0x52, 0xb1, 0xc8, 0xd5, 0xff, + 0x73, 0x2d, 0x39, 0x78, 0x74, 0x22, 0xd1, 0x3d, 0xa8, 0x0f, 0x04, 0x2a, 0x31, 0x78, 0x9d, 0xca, + 0x3d, 0x8c, 0xda, 0x1e, 0x8f, 0x6b, 0x94, 0x82, 0x25, 0x32, 0x64, 0xc3, 0x4c, 0xf4, 0xbf, 0x55, + 0x81, 0x17, 0x33, 0x9e, 0xba, 0x96, 0x00, 0x84, 0x53, 0x80, 0xd1, 0x5d, 0x98, 0x0c, 0x88, 0xe9, + 0x13, 0xca, 0x97, 0x04, 0xa5, 0xe6, 0x32, 0xaf, 0x6e, 0x54, 0x48, 0x30, 0xaf, 0x79, 0xd1, 0xfc, + 0x49, 0x99, 0x81, 0x63, 0x40, 0xe8, 0x71, 0x18, 0x0d, 0x08, 0xb1, 0x16, 0x46, 0xd9, 0xa0, 0xd7, + 0xd9, 0xd2, 0x20, 0xc4, 0xc2, 0x2c, 0x55, 0xff, 0xd6, 0x28, 0xa0, 0x2c, 0x61, 0xab, 0xbd, 0xe6, + 0x29, 0x62, 0xd0, 0xab, 0xf4, 0x5a, 0xac, 0x91, 0x14, 0x60, 0xf4, 0x1a, 0x4c, 0x3b, 0x46, 0x10, + 0xde, 0x19, 0x50, 0xf1, 0x23, 0xa2, 0x8e, 0xc6, 0xdb, 0x9b, 0xa5, 0xa6, 0xf7, 0x96, 0x0a, 0xa9, + 0x39, 0x7f, 0xb0, 0xbf, 0x38, 0x9d, 0x48, 0xc2, 0x49, 0x5c, 0x68, 0x1b, 0x26, 0x69, 0xc2, 0x8a, + 0xef, 0x7b, 0xbe, 0x18, 0xf2, 0x17, 0x4b, 0x23, 0x66, 0x50, 0x9a, 0xd3, 0x74, 0x26, 0xe4, 0x27, + 0x8e, 0xe1, 0xa3, 0xf7, 0x03, 0xf2, 0x36, 0x02, 0xe2, 0xef, 0x10, 0xeb, 0x3a, 0x97, 0xb6, 0x68, + 0x77, 0xe9, 0xbc, 0x8c, 0x34, 0x2f, 0x89, 0x39, 0x44, 0x77, 0x32, 0x25, 0x70, 0x4e, 0x2d, 0xb4, + 0x0d, 0x48, 0x4a, 0x6c, 0x72, 0xda, 0x17, 0xc6, 0x8e, 0x4f, 0x34, 0x17, 0x29, 0xb2, 0xeb, 0x19, + 0x10, 0x38, 0x07, 0xac, 0xfe, 0x07, 0x35, 0x68, 0x70, 0x22, 0x59, 0x71, 0x43, 0x7f, 0xef, 0x0c, + 0xb6, 0x86, 0xcd, 0xc4, 0xd6, 0xd0, 0xae, 0xb0, 0xd4, 0x59, 0x8b, 0x0b, 0x77, 0x06, 0x37, 0xb5, + 0x33, 0x5c, 0xab, 0x8c, 0xe9, 0xf0, 0x8d, 0xe1, 0x4f, 0x34, 0x98, 0x55, 0x4a, 0x9f, 0xc1, 0xbe, + 0x40, 0x92, 0xfb, 0xc2, 0x4b, 0x55, 0x3b, 0x58, 0xb0, 0x2d, 0x98, 0x89, 0x7e, 0x31, 0x96, 0xfd, + 0x76, 0x80, 0x0d, 0xc6, 0x53, 0x6e, 0xc7, 0x42, 0x92, 0x9c, 0xf5, 0xa6, 0xcc, 0xc1, 0x4a, 0x29, + 0xc9, 0xac, 0x6a, 0xb9, 0xcc, 0xea, 0xcf, 0x47, 0x60, 0x3e, 0x33, 0xd6, 0x59, 0x06, 0xa2, 0xfd, + 0xb4, 0x18, 0x48, 0xed, 0xa7, 0xc2, 0x40, 0x46, 0x4a, 0x31, 0x90, 0x2b, 0x50, 0xa7, 0x63, 0xca, + 0xe6, 0x86, 0x6f, 0x0d, 0x53, 0x94, 0x82, 0xba, 0x22, 0x0d, 0xcb, 0x5c, 0xe4, 0x03, 0xea, 0xdb, + 0x3d, 0x5e, 0xad, 0x1b, 0x1a, 0x7e, 0x78, 0xd7, 0xee, 0x13, 0xc1, 0x6a, 0xfe, 0xff, 0xe3, 0x51, + 0x2a, 0xad, 0xc1, 0x39, 0xce, 0x6a, 0x06, 0x12, 0xce, 0x81, 0xae, 0xff, 0xbe, 0x06, 0x23, 0x2d, + 0xdc, 0x41, 0x6f, 0x4d, 0x88, 0xd8, 0x8f, 0xa8, 0x22, 0xf6, 0x83, 0xfd, 0xc5, 0x89, 0x16, 0xee, + 0x28, 0xd2, 0xf6, 0x5f, 0xd7, 0x60, 0xde, 0xf4, 0xdc, 0xd0, 0xa0, 0xad, 0xc0, 0x7c, 0x3f, 0x8a, + 0xe8, 0xbe, 0x9c, 0x74, 0xd9, 0x4a, 0x41, 0x6b, 0x3e, 0x2a, 0x5a, 0x30, 0x9f, 0xce, 0x09, 0x70, + 0x16, 0xb5, 0xbe, 0x0e, 0x93, 0x2d, 0xc7, 0x1b, 0x5a, 0x1d, 0x77, 0xd3, 0x3b, 0x45, 0x01, 0xe9, + 0x5f, 0x6b, 0x30, 0xc5, 0xe0, 0xae, 0xf9, 0xde, 0xa6, 0xed, 0x90, 0xd7, 0x89, 0xa8, 0xae, 0x36, + 0xb9, 0x88, 0x21, 0x33, 0xc9, 0x59, 0x2d, 0xf8, 0x7a, 0x91, 0x9c, 0xd5, 0x36, 0x17, 0xb0, 0xc8, + 0xaf, 0x4e, 0x24, 0xbb, 0xc6, 0x98, 0xe4, 0x15, 0xa8, 0x9b, 0x46, 0x73, 0xe8, 0x5a, 0x8e, 0xa4, + 0x0c, 0xda, 0xcc, 0xd6, 0x32, 0x4f, 0xc3, 0x32, 0x17, 0xbd, 0x06, 0x10, 0x9b, 0x34, 0xc4, 0x44, + 0x5c, 0xaf, 0x68, 0x47, 0xe9, 0x92, 0x30, 0xb4, 0xdd, 0x5e, 0x10, 0xcf, 0x7e, 0x9c, 0x87, 0x15, + 0x74, 0xe8, 0x97, 0x60, 0x5a, 0x0c, 0x73, 0xa7, 0x6f, 0xf4, 0x84, 0xa2, 0x59, 0x76, 0xac, 0x56, + 0x15, 0x48, 0xcd, 0x0b, 0x02, 0xf3, 0xb4, 0x9a, 0x1a, 0xe0, 0x24, 0x3a, 0x74, 0x1f, 0xa6, 0xfa, + 0xaa, 0xf6, 0x3c, 0x5a, 0x61, 0x33, 0x53, 0x54, 0xe9, 0xe6, 0x79, 0x81, 0x7d, 0x2a, 0xa1, 0x78, + 0x27, 0x70, 0xe5, 0x68, 0x00, 0x63, 0x0f, 0x4b, 0x03, 0xd8, 0x84, 0x09, 0xbe, 0xc6, 0x83, 0x85, + 0x71, 0xd6, 0xc3, 0xf7, 0x96, 0xea, 0x21, 0xe7, 0x17, 0xb1, 0xa1, 0x8e, 0x7f, 0x07, 0x38, 0x02, + 0x8e, 0xee, 0xc1, 0x14, 0x65, 0xef, 0x5d, 0xe2, 0x10, 0x33, 0xf4, 0xfc, 0x85, 0x89, 0x0a, 0x76, + 0xb0, 0xae, 0x02, 0x88, 0xdb, 0x51, 0xd4, 0x14, 0x9c, 0x40, 0x24, 0x99, 0x60, 0xbd, 0x90, 0x09, + 0xee, 0x40, 0x63, 0x47, 0x31, 0x68, 0x4c, 0xb2, 0x61, 0x78, 0x5f, 0xa9, 0x96, 0xc5, 0xe6, 0x8d, + 0xe6, 0x39, 0x81, 0xa9, 0xa1, 0x9a, 0x42, 0x54, 0x44, 0xfa, 0x7e, 0x1d, 0xe6, 0x5b, 0xce, 0x30, + 0x08, 0x89, 0xbf, 0x2c, 0x6c, 0xcd, 0xc4, 0x47, 0x9f, 0xd1, 0xe0, 0x22, 0xfb, 0xdb, 0xf6, 0xee, + 0xb9, 0x6d, 0xe2, 0x18, 0x7b, 0xcb, 0x9b, 0xb4, 0x84, 0x65, 0x9d, 0x8c, 0x11, 0xb5, 0x87, 0x42, + 0xa2, 0x60, 0xa6, 0x99, 0x6e, 0x2e, 0x44, 0x5c, 0x80, 0x09, 0x7d, 0x49, 0x83, 0x47, 0x73, 0xb2, + 0xda, 0xc4, 0x21, 0x21, 0x11, 0x9c, 0xe0, 0xa4, 0xed, 0xb8, 0x7c, 0xb0, 0xbf, 0xf8, 0x68, 0xb7, + 0x08, 0x28, 0x2e, 0xc6, 0x47, 0x77, 0xd9, 0x4b, 0x39, 0xb9, 0xd7, 0x0c, 0xdb, 0x19, 0xfa, 0x44, + 0xc8, 0xd1, 0x27, 0x6d, 0xce, 0x13, 0x07, 0xfb, 0x8b, 0x97, 0xba, 0x85, 0x50, 0xf1, 0x21, 0x18, + 0xd1, 0xa7, 0xe0, 0x82, 0xcc, 0x5d, 0x77, 0x5d, 0x42, 0x2c, 0x62, 0x31, 0x11, 0x65, 0xb4, 0x54, + 0x53, 0x1e, 0x3d, 0xd8, 0x5f, 0xbc, 0xd0, 0xcd, 0x03, 0x88, 0xf3, 0xf1, 0xa0, 0x1e, 0x5c, 0x8e, + 0x33, 0x42, 0xdb, 0xb1, 0xef, 0x33, 0x48, 0x77, 0xb7, 0x7c, 0x12, 0x6c, 0x79, 0x8e, 0xc5, 0xf8, + 0x85, 0xd6, 0x7c, 0xe3, 0xc1, 0xfe, 0xe2, 0xe5, 0xee, 0x61, 0x05, 0xf1, 0xe1, 0x70, 0x90, 0x05, + 0x53, 0x81, 0x69, 0xb8, 0x1d, 0x37, 0x24, 0xfe, 0x8e, 0xe1, 0x2c, 0x8c, 0x97, 0xea, 0x20, 0x5f, + 0xa3, 0x0a, 0x1c, 0x9c, 0x80, 0x8a, 0xde, 0x03, 0x75, 0xb2, 0x3b, 0x30, 0x5c, 0x8b, 0x70, 0xc6, + 0x30, 0xd9, 0x7c, 0x9c, 0x6e, 0x49, 0x2b, 0x22, 0xed, 0xc1, 0xfe, 0xe2, 0x54, 0xf4, 0x7f, 0xd5, + 0xb3, 0x08, 0x96, 0xa5, 0xd1, 0x27, 0xe1, 0x7c, 0xdf, 0xd8, 0xbd, 0xed, 0x59, 0x84, 0xf1, 0x39, + 0xca, 0xf6, 0xd8, 0x44, 0xd4, 0x4b, 0xb5, 0x73, 0xe1, 0x60, 0x7f, 0xf1, 0xfc, 0x6a, 0x0e, 0x3c, + 0x9c, 0x8b, 0x85, 0x4e, 0x43, 0xdf, 0xd8, 0xbd, 0xee, 0x1b, 0x26, 0xd9, 0x1c, 0x3a, 0x77, 0x89, + 0xdf, 0xb7, 0x5d, 0x2e, 0x56, 0x12, 0xd3, 0x73, 0x2d, 0xca, 0x4b, 0xb4, 0x2b, 0x63, 0x7c, 0x1a, + 0x56, 0x0f, 0x2b, 0x88, 0x0f, 0x87, 0x83, 0xde, 0x09, 0x53, 0x76, 0xcf, 0xf5, 0x7c, 0x72, 0xd7, + 0xb0, 0xdd, 0x30, 0x58, 0x00, 0x66, 0x74, 0x65, 0xc3, 0xda, 0x51, 0xd2, 0x71, 0xa2, 0x94, 0xfe, + 0x5f, 0x34, 0x68, 0x08, 0x06, 0xc3, 0xe4, 0x41, 0x13, 0xc6, 0x4c, 0x2a, 0x0d, 0x08, 0x46, 0xf2, + 0x62, 0x79, 0xb1, 0x83, 0x82, 0x8b, 0x65, 0x0e, 0x96, 0x84, 0x39, 0x6c, 0x74, 0x2f, 0x47, 0x68, + 0x68, 0x55, 0x14, 0x1a, 0x18, 0xba, 0x23, 0x04, 0x06, 0x7d, 0x7f, 0x04, 0x26, 0x5b, 0x9e, 0x6b, + 0xd9, 0x4c, 0xd9, 0x78, 0x26, 0x21, 0xfb, 0x5e, 0x56, 0xd9, 0xfe, 0x83, 0xfd, 0xc5, 0x69, 0x59, + 0x50, 0xd9, 0x07, 0x9e, 0x95, 0x9a, 0x39, 0x17, 0x86, 0xdf, 0x98, 0xd4, 0xa8, 0x1f, 0xec, 0x2f, + 0xce, 0xca, 0x6a, 0x49, 0x25, 0x1b, 0xed, 0x00, 0xa2, 0x3a, 0xd3, 0x5d, 0xdf, 0x70, 0x03, 0x0e, + 0x96, 0x12, 0xe1, 0xc8, 0x89, 0x15, 0x16, 0xa9, 0x52, 0xdd, 0xca, 0x40, 0xc3, 0x39, 0x18, 0xd0, + 0x27, 0x60, 0x86, 0xa6, 0xae, 0x0f, 0x2c, 0x23, 0x24, 0x0a, 0x07, 0x3a, 0x91, 0x92, 0x24, 0x70, + 0xce, 0xdc, 0x4a, 0x40, 0xc2, 0x29, 0xc8, 0x5c, 0x57, 0x30, 0x02, 0xcf, 0x65, 0xcc, 0x25, 0xa1, + 0x2b, 0xd0, 0x54, 0x2c, 0x72, 0xd1, 0xd3, 0x30, 0xd1, 0x27, 0x41, 0x60, 0xf4, 0x08, 0xe3, 0x16, + 0x93, 0xb1, 0x50, 0xb0, 0xca, 0x93, 0x71, 0x94, 0x8f, 0xde, 0x06, 0x63, 0xa6, 0x67, 0x91, 0x60, + 0x61, 0x82, 0xd1, 0xf3, 0x45, 0x46, 0x4c, 0x34, 0xe1, 0xc1, 0xfe, 0xe2, 0x24, 0x53, 0x40, 0xe9, + 0x17, 0xe6, 0x85, 0xf4, 0x6f, 0x50, 0x41, 0x3d, 0xa5, 0xf1, 0x14, 0x9d, 0x88, 0xf0, 0x69, 0x65, + 0x3a, 0xda, 0xd9, 0x99, 0x53, 0xf5, 0x5f, 0xad, 0xc1, 0x79, 0xda, 0x42, 0xdf, 0x73, 0x1c, 0xba, + 0x7b, 0x0d, 0x1c, 0x6f, 0xaf, 0x4f, 0xdc, 0xb3, 0x38, 0xd9, 0x88, 0xc4, 0x9c, 0x5a, 0xa1, 0x98, + 0xd3, 0xcf, 0x8c, 0xc3, 0x48, 0x99, 0x71, 0x90, 0xe4, 0x72, 0xc4, 0x58, 0xfc, 0x85, 0x06, 0x0b, + 0x79, 0x63, 0x71, 0x06, 0xea, 0x95, 0x9b, 0x54, 0xaf, 0x3a, 0xa5, 0x15, 0xf1, 0x74, 0xdb, 0x0b, + 0xd4, 0xac, 0xbf, 0xa8, 0xc1, 0xc5, 0xb8, 0x78, 0xc7, 0x0d, 0x42, 0xc3, 0x71, 0xb8, 0xcd, 0xe3, + 0xe1, 0x4f, 0xfc, 0xab, 0x09, 0x3d, 0xf9, 0x4e, 0xc5, 0xbe, 0xaa, 0x8d, 0x2f, 0x34, 0x61, 0xee, + 0xa5, 0x4c, 0x98, 0x1f, 0x38, 0x4d, 0xa4, 0x87, 0x5b, 0x33, 0xff, 0xab, 0x06, 0x97, 0xf2, 0x2b, + 0x9e, 0x01, 0x5d, 0x0d, 0x92, 0x74, 0x75, 0xf3, 0x14, 0xbb, 0x5d, 0x40, 0x59, 0xdf, 0xad, 0x15, + 0x75, 0x97, 0xa9, 0xf2, 0x9b, 0x30, 0x4b, 0xf5, 0xab, 0x20, 0x14, 0x56, 0xb7, 0x93, 0x9d, 0x40, + 0x47, 0xb6, 0xad, 0x59, 0x9c, 0x84, 0x81, 0xd3, 0x40, 0xd1, 0x6d, 0x98, 0xa0, 0x3a, 0x15, 0x85, + 0x5f, 0x3b, 0x3e, 0x7c, 0xc9, 0xf7, 0xbb, 0xbc, 0x2e, 0x8e, 0x80, 0xa0, 0x5f, 0x84, 0x69, 0x4b, + 0x2e, 0xaa, 0x23, 0x8e, 0x9e, 0xd2, 0x50, 0x99, 0x81, 0xb4, 0xad, 0xd6, 0xc6, 0x49, 0x60, 0xfa, + 0xff, 0xd2, 0xe0, 0xf1, 0xc3, 0x88, 0x0b, 0xf9, 0x00, 0x66, 0xb4, 0x91, 0x73, 0x0f, 0x84, 0xd2, + 0xc2, 0x50, 0x04, 0x26, 0x5e, 0xa4, 0x32, 0x29, 0xc0, 0x0a, 0x96, 0x9c, 0xe3, 0xad, 0xda, 0x43, + 0x3a, 0xde, 0xd2, 0xff, 0x9b, 0xa6, 0xb2, 0x23, 0x75, 0x72, 0x5f, 0x77, 0xec, 0x48, 0x6d, 0x7c, + 0xa1, 0x01, 0xef, 0x8f, 0x6b, 0xf0, 0x64, 0x7e, 0x15, 0x65, 0x07, 0x7e, 0x09, 0xc6, 0x07, 0xdc, + 0x51, 0x64, 0x84, 0xed, 0x90, 0x57, 0x28, 0x73, 0xe1, 0x5e, 0x1c, 0x0f, 0xf6, 0x17, 0x2f, 0xe5, + 0x71, 0x7b, 0xe1, 0xff, 0x21, 0xea, 0x21, 0x3b, 0x65, 0xc1, 0xe0, 0x92, 0xd6, 0x3b, 0x8e, 0xc9, + 0x5f, 0x8c, 0x0d, 0xe2, 0x1c, 0xdb, 0x66, 0xf1, 0x19, 0x0d, 0x66, 0x12, 0x34, 0x1d, 0x2c, 0x8c, + 0x31, 0x2a, 0x2d, 0x77, 0xc2, 0x90, 0x58, 0x2d, 0xf1, 0x06, 0x9e, 0x48, 0x0e, 0x70, 0x0a, 0x63, + 0x8a, 0xd5, 0xaa, 0xc3, 0xfa, 0xfa, 0x63, 0xb5, 0x6a, 0xeb, 0x0b, 0x58, 0xed, 0xd7, 0x6b, 0x45, + 0xdd, 0x65, 0xac, 0x76, 0x17, 0x26, 0x23, 0x67, 0xbc, 0x88, 0x65, 0x5c, 0xaf, 0xdc, 0x28, 0x0e, + 0x2f, 0x3e, 0x4d, 0x8f, 0x52, 0x02, 0x1c, 0x23, 0x43, 0x9f, 0xd3, 0x00, 0xe2, 0xa9, 0x11, 0x0b, + 0x6b, 0xfd, 0x14, 0x07, 0x44, 0x91, 0x6f, 0x66, 0xe8, 0xba, 0x56, 0xe8, 0x42, 0x41, 0xac, 0xff, + 0x76, 0x0d, 0x50, 0xb6, 0xf1, 0x54, 0xf0, 0xdc, 0xb6, 0x5d, 0x2b, 0x2d, 0x80, 0xdf, 0xb4, 0x5d, + 0x0b, 0xb3, 0x9c, 0x63, 0x88, 0xa6, 0x2f, 0xc0, 0x6c, 0xcf, 0xf1, 0x36, 0x0c, 0xc7, 0xd9, 0x13, + 0x1e, 0x7e, 0x6c, 0x95, 0xd6, 0x9b, 0xe7, 0xe8, 0xf6, 0x74, 0x3d, 0x99, 0x85, 0xd3, 0x65, 0xd1, + 0x00, 0xe6, 0x7c, 0xaa, 0x28, 0x9b, 0xb6, 0xc3, 0x54, 0x15, 0x6f, 0x18, 0x96, 0xb4, 0xc4, 0x9c, + 0x3f, 0xd8, 0x5f, 0x9c, 0xc3, 0x29, 0x58, 0x38, 0x03, 0x1d, 0x3d, 0x05, 0x13, 0x03, 0xdf, 0xee, + 0x1b, 0xfe, 0x1e, 0x53, 0x86, 0xea, 0xcd, 0x06, 0xdd, 0xe7, 0xd6, 0x78, 0x12, 0x8e, 0xf2, 0xf4, + 0xcf, 0x69, 0x30, 0xd1, 0xf2, 0x7c, 0xd2, 0xbe, 0xdd, 0x45, 0xf7, 0xa1, 0xa1, 0x78, 0x94, 0x8a, + 0x25, 0x53, 0x96, 0x84, 0x18, 0xc8, 0xe5, 0x18, 0x5c, 0xe4, 0xb5, 0x26, 0x13, 0xb0, 0x8a, 0x4c, + 0x5f, 0xa3, 0x33, 0x97, 0xae, 0x83, 0x9e, 0x83, 0xd1, 0xbe, 0x67, 0x45, 0xaa, 0xd3, 0x5b, 0xa2, + 0x79, 0x59, 0xf5, 0x2c, 0xaa, 0x22, 0x5f, 0xcc, 0xd6, 0x60, 0xb6, 0x17, 0x56, 0x47, 0xff, 0x9a, + 0x06, 0x23, 0xb4, 0x57, 0x3a, 0x8c, 0x5b, 0x5e, 0xdf, 0xb0, 0x5d, 0x01, 0x85, 0x39, 0x00, 0xb6, + 0x59, 0x0a, 0x16, 0x39, 0xe8, 0x55, 0x98, 0x8c, 0x76, 0xa8, 0x6a, 0x67, 0xc2, 0xed, 0xdb, 0x5d, + 0xe9, 0x40, 0x23, 0xd7, 0x4c, 0x94, 0x12, 0xe0, 0x18, 0x8b, 0x6e, 0xc0, 0x7c, 0xfb, 0x76, 0xb7, + 0xe3, 0x9a, 0xce, 0xd0, 0x22, 0x2b, 0xbb, 0xec, 0x87, 0x4e, 0x9a, 0xcd, 0x53, 0x84, 0xd7, 0x21, + 0x9b, 0x34, 0x51, 0x08, 0x47, 0x79, 0xb4, 0x18, 0xe1, 0x35, 0x84, 0xc7, 0x1c, 0x2b, 0x26, 0x80, + 0xe0, 0x28, 0x4f, 0xff, 0xd3, 0x1a, 0x34, 0x94, 0x06, 0xa1, 0x3e, 0x4c, 0xf0, 0xfe, 0x46, 0x8e, + 0x2b, 0xd7, 0xca, 0xf6, 0x31, 0xd9, 0x6c, 0x8e, 0x9e, 0x0f, 0x69, 0x80, 0x23, 0x1c, 0x2a, 0x05, + 0xd6, 0x8a, 0x29, 0x10, 0x2d, 0x01, 0x70, 0xbf, 0x1c, 0x76, 0xea, 0xca, 0xb7, 0x3e, 0xb6, 0xc8, + 0xbb, 0x32, 0x15, 0x2b, 0x25, 0xd0, 0xe3, 0x62, 0xad, 0x2a, 0xae, 0x3b, 0xca, 0x3a, 0xed, 0xc1, + 0xd8, 0x7d, 0xcf, 0x25, 0x81, 0x38, 0x8e, 0x38, 0xad, 0x1e, 0x4e, 0x52, 0x66, 0xfc, 0x61, 0x0a, + 0x18, 0x73, 0xf8, 0xfa, 0x6f, 0x68, 0x00, 0x6d, 0x23, 0x34, 0xb8, 0xed, 0xfc, 0x18, 0x6e, 0x8f, + 0x8f, 0x27, 0x78, 0x4c, 0x3d, 0x73, 0xcc, 0x39, 0x1a, 0xd8, 0xf7, 0xa3, 0xfe, 0x4b, 0x01, 0x86, + 0x43, 0xef, 0xda, 0xf7, 0x09, 0x66, 0xf9, 0xe8, 0xad, 0x30, 0x49, 0x5c, 0xd3, 0xdf, 0x1b, 0x84, + 0xc2, 0x7b, 0xa9, 0xce, 0x8f, 0xc6, 0x57, 0xa2, 0x44, 0x1c, 0xe7, 0xeb, 0xcf, 0x40, 0x52, 0x0c, + 0x3d, 0xba, 0x95, 0xfa, 0x0e, 0xd4, 0x57, 0x5c, 0x6b, 0xe0, 0xd9, 0x6e, 0x78, 0x8c, 0x3e, 0x5d, + 0x86, 0x91, 0xa1, 0xef, 0x88, 0x2e, 0x35, 0x44, 0x81, 0x91, 0x75, 0x7c, 0x0b, 0xd3, 0x74, 0xf4, + 0x34, 0x4c, 0x0c, 0x86, 0xfe, 0xc0, 0x0b, 0xa2, 0x7e, 0x49, 0x79, 0x7b, 0x8d, 0x27, 0xe3, 0x28, + 0x5f, 0x7f, 0xa0, 0xc1, 0xdc, 0xca, 0xee, 0xc0, 0xf6, 0x99, 0x0b, 0x26, 0xf1, 0xa9, 0x28, 0x49, + 0xeb, 0xef, 0xf0, 0xbf, 0xa2, 0x0d, 0xb2, 0xbe, 0x28, 0x81, 0xa3, 0x7c, 0xb4, 0x09, 0x33, 0x84, + 0x55, 0x67, 0xdb, 0x85, 0x21, 0x8f, 0x00, 0x4e, 0x62, 0x66, 0xe2, 0x2e, 0xbe, 0x09, 0x28, 0x38, + 0x05, 0x15, 0x75, 0x61, 0xc6, 0x74, 0x8c, 0x20, 0xb0, 0x37, 0x6d, 0x33, 0xf6, 0x34, 0x98, 0x6c, + 0xbe, 0x95, 0xd6, 0x6d, 0x25, 0x72, 0x1e, 0xec, 0x2f, 0x5e, 0x10, 0xed, 0x4c, 0x66, 0xe0, 0x14, + 0x08, 0xfd, 0x2b, 0x35, 0x98, 0x5e, 0xd9, 0x1d, 0x78, 0xc1, 0xd0, 0x27, 0xac, 0xe8, 0x19, 0x48, + 0xc1, 0x4f, 0xc3, 0xc4, 0x96, 0xe1, 0x5a, 0x0e, 0xf1, 0xc5, 0xf4, 0xc9, 0xb1, 0xbd, 0xc1, 0x93, + 0x71, 0x94, 0x8f, 0x3e, 0x09, 0x10, 0x98, 0x5b, 0xc4, 0x1a, 0xb2, 0x6d, 0x81, 0x2b, 0x42, 0xb7, + 0x4a, 0x2d, 0xac, 0x44, 0x27, 0xbb, 0x12, 0xa6, 0x58, 0xef, 0xf2, 0x1b, 0x2b, 0xf8, 0xf4, 0x3f, + 0xd5, 0x60, 0x3e, 0x51, 0xef, 0x0c, 0x64, 0xbb, 0x5e, 0x52, 0xb6, 0x6b, 0x56, 0xef, 0x6c, 0x81, + 0x48, 0xf7, 0xc5, 0x1a, 0x3c, 0x52, 0x30, 0x28, 0x99, 0xf3, 0x48, 0xed, 0xac, 0xce, 0x23, 0x77, + 0xa0, 0x11, 0x7a, 0x8e, 0xf0, 0x89, 0x89, 0xc6, 0xa0, 0xdc, 0x69, 0xe3, 0x5d, 0x09, 0x27, 0x3e, + 0x6d, 0x8c, 0xd3, 0x02, 0xac, 0x22, 0xd2, 0x7f, 0x4f, 0x83, 0x49, 0xa9, 0x47, 0x1e, 0xc3, 0x35, + 0xe4, 0x0c, 0xbd, 0x50, 0xaf, 0x40, 0xdd, 0xb2, 0x03, 0x55, 0xee, 0x63, 0x1e, 0x09, 0x6d, 0x91, + 0x86, 0x65, 0xae, 0xfe, 0xcf, 0x6b, 0x70, 0x51, 0xc2, 0x8e, 0x44, 0x50, 0xaa, 0xf6, 0x1e, 0x47, + 0x0e, 0x7d, 0x5c, 0x70, 0x5c, 0x65, 0x8f, 0x50, 0xb8, 0xed, 0x53, 0x69, 0x76, 0xda, 0xc8, 0x63, + 0xa5, 0xe8, 0x36, 0x8c, 0x05, 0x14, 0x9f, 0x10, 0x30, 0x4f, 0x38, 0x1a, 0x6c, 0xa7, 0x63, 0xed, + 0xc5, 0x1c, 0x0c, 0x7a, 0x4d, 0xd5, 0x2b, 0xb8, 0x92, 0xf7, 0xfe, 0x93, 0x11, 0x03, 0xbb, 0xf8, + 0xb4, 0x44, 0x7b, 0x62, 0x45, 0x23, 0x92, 0xe3, 0xa8, 0x9b, 0xa7, 0x5a, 0xe8, 0x01, 0xd4, 0xaf, + 0x0b, 0xb0, 0xe8, 0x12, 0xd4, 0xec, 0x68, 0xf4, 0x40, 0xd4, 0xaa, 0x75, 0xda, 0xb8, 0x66, 0x5b, + 0x72, 0xaf, 0xaa, 0x15, 0xee, 0x55, 0xca, 0x66, 0x32, 0x72, 0xf8, 0x66, 0xa2, 0xff, 0x87, 0x1a, + 0x9c, 0x8f, 0xb0, 0x46, 0xad, 0x6a, 0x0b, 0x13, 0xf6, 0x11, 0x3b, 0xe2, 0xd1, 0x9a, 0xc4, 0x1d, + 0x18, 0x65, 0x5c, 0xab, 0x94, 0x69, 0x5b, 0x02, 0xa4, 0xcd, 0xc1, 0x0c, 0x10, 0xfa, 0x2b, 0x30, + 0xee, 0x50, 0xdd, 0x3d, 0x72, 0x00, 0x29, 0xa7, 0x78, 0xe5, 0xf5, 0x97, 0xdb, 0x04, 0x02, 0xee, + 0xe2, 0x28, 0xed, 0x9d, 0x3c, 0x11, 0x0b, 0xa4, 0x97, 0x9e, 0x85, 0x86, 0x52, 0x0c, 0xcd, 0xc1, + 0xc8, 0x36, 0xe1, 0x77, 0x5d, 0x26, 0x31, 0xfd, 0x8b, 0xce, 0xc3, 0xd8, 0x8e, 0xe1, 0x0c, 0xc5, + 0x98, 0x60, 0xfe, 0xf1, 0x5c, 0xed, 0x3d, 0x9a, 0xfe, 0x1d, 0x0d, 0x1a, 0x37, 0xec, 0x0d, 0xe2, + 0xf3, 0xa3, 0x44, 0x26, 0xd7, 0x26, 0x6e, 0x55, 0x35, 0xf2, 0x6e, 0x54, 0xa1, 0x3d, 0x98, 0x14, + 0xfb, 0x83, 0xf4, 0x64, 0x2b, 0x77, 0x77, 0x4a, 0xc1, 0x2d, 0xf8, 0xae, 0xea, 0x37, 0x1e, 0xa1, + 0xc0, 0x31, 0x36, 0xfd, 0x35, 0x38, 0x97, 0x53, 0x09, 0x2d, 0xb2, 0x25, 0xe7, 0x87, 0x82, 0x30, + 0xa2, 0x35, 0xe4, 0x87, 0x98, 0xa7, 0xa3, 0x47, 0x61, 0x84, 0xb8, 0x91, 0x07, 0xe7, 0x04, 0x15, + 0x92, 0x56, 0x5c, 0x0b, 0xd3, 0x34, 0xca, 0x5a, 0x1c, 0x2f, 0x21, 0x4b, 0x30, 0xd6, 0x72, 0x4b, + 0xa4, 0x61, 0x99, 0xab, 0xff, 0xa3, 0x51, 0xb8, 0x7c, 0xc3, 0xf3, 0xed, 0xfb, 0x9e, 0x1b, 0x1a, + 0xce, 0x9a, 0x67, 0xc5, 0x3e, 0x19, 0x82, 0x4d, 0x7d, 0x4e, 0x83, 0x47, 0xcc, 0xc1, 0xb0, 0xe3, + 0xda, 0xa1, 0x6d, 0x44, 0x47, 0xe5, 0x6b, 0xc4, 0xb7, 0xbd, 0xb2, 0xae, 0x19, 0xec, 0x2e, 0x4e, + 0x6b, 0x6d, 0x3d, 0x0f, 0x24, 0x2e, 0xc2, 0xc5, 0x3c, 0x44, 0x2c, 0xef, 0x9e, 0xcb, 0x1a, 0xd7, + 0x0d, 0xd9, 0xfd, 0xa0, 0xfb, 0x71, 0x17, 0x4b, 0x7a, 0x88, 0xb4, 0x73, 0x21, 0xe2, 0x02, 0x4c, + 0xe8, 0x53, 0x70, 0xc1, 0xe6, 0x8d, 0xc3, 0xc4, 0xb0, 0x6c, 0x97, 0x04, 0x01, 0xf3, 0x93, 0xa8, + 0xe2, 0x02, 0xd1, 0xc9, 0x03, 0x88, 0xf3, 0xf1, 0xa0, 0x8f, 0x02, 0x04, 0x7b, 0xae, 0x29, 0xc6, + 0x7f, 0xac, 0x14, 0x56, 0x2e, 0x19, 0x49, 0x28, 0x58, 0x81, 0x48, 0x75, 0x01, 0xbe, 0x7d, 0xba, + 0x26, 0x3f, 0xc8, 0xd4, 0xb8, 0x2e, 0x70, 0x37, 0x4a, 0xc4, 0x71, 0xbe, 0xfe, 0x5b, 0x1a, 0x4c, + 0x88, 0x8b, 0x77, 0xe8, 0x2d, 0x29, 0x95, 0x58, 0x2e, 0xed, 0x94, 0x5a, 0x7c, 0x9f, 0x59, 0xa1, + 0x85, 0x39, 0x45, 0x6c, 0xae, 0xe5, 0x34, 0x2a, 0x81, 0x39, 0x36, 0xce, 0x24, 0xac, 0xd1, 0x91, + 0xc1, 0x46, 0xc1, 0xa6, 0x7f, 0x53, 0x83, 0xf9, 0x4c, 0xad, 0x63, 0x6c, 0xa1, 0x67, 0x78, 0x96, + 0xfa, 0xe3, 0x06, 0xb0, 0x5b, 0x96, 0xcb, 0x6b, 0x9d, 0x2e, 0xf1, 0x77, 0xe4, 0x2a, 0xfc, 0x92, + 0x06, 0x73, 0xf1, 0xa9, 0xbf, 0x68, 0x85, 0x56, 0xc1, 0x49, 0xf4, 0x66, 0x0a, 0x58, 0x73, 0x41, + 0x74, 0x7c, 0x2e, 0x9d, 0x83, 0x33, 0x88, 0xd1, 0x17, 0x35, 0x98, 0x33, 0x92, 0xb7, 0x2c, 0x23, + 0xae, 0x59, 0xee, 0x0a, 0x41, 0xea, 0xca, 0x66, 0xdc, 0x98, 0x54, 0x46, 0x80, 0x33, 0x78, 0xd1, + 0x3b, 0x61, 0xca, 0x18, 0xd8, 0xcb, 0x43, 0xcb, 0xa6, 0x7b, 0x7f, 0x74, 0x35, 0x8f, 0x09, 0xa4, + 0xcb, 0x6b, 0x1d, 0x99, 0x8e, 0x13, 0xa5, 0xe4, 0x3d, 0x4a, 0x31, 0x94, 0xa3, 0x55, 0xef, 0x51, + 0x8a, 0x51, 0x8c, 0xef, 0x51, 0x8a, 0xc1, 0x53, 0xb1, 0xa0, 0x8f, 0xc0, 0xa3, 0x7c, 0xc3, 0x69, + 0x1a, 0x81, 0x6d, 0x2e, 0x0f, 0xc3, 0x2d, 0xe2, 0x86, 0x91, 0xd2, 0xc7, 0x4d, 0x6a, 0xcc, 0x5f, + 0x6c, 0xa5, 0xa8, 0x10, 0x2e, 0xae, 0x8f, 0x3c, 0x00, 0xcf, 0xb6, 0x4c, 0xd1, 0x21, 0xee, 0xb2, + 0x54, 0x4e, 0xc2, 0xbe, 0xd3, 0x69, 0xb7, 0x44, 0x7f, 0x18, 0xaf, 0x88, 0xbf, 0xb1, 0x82, 0x02, + 0xfd, 0xba, 0x06, 0xd3, 0x82, 0xd0, 0x05, 0xd2, 0x09, 0x46, 0x02, 0x1f, 0x29, 0x4d, 0x90, 0x29, + 0xaa, 0x5f, 0xc2, 0x2a, 0x74, 0x2e, 0x32, 0x48, 0x37, 0xd6, 0x44, 0x1e, 0x4e, 0x36, 0x04, 0x7d, + 0x59, 0x83, 0xf3, 0x01, 0xf1, 0x77, 0x6c, 0x93, 0x2c, 0x9b, 0xa6, 0x37, 0x74, 0xa3, 0x79, 0xae, + 0x57, 0xb8, 0xd2, 0xd6, 0xcd, 0x01, 0xc8, 0x9d, 0xa7, 0xf2, 0x72, 0x70, 0x6e, 0x03, 0xd0, 0xaf, + 0x68, 0x30, 0x7b, 0xcf, 0x08, 0xcd, 0xad, 0x96, 0x61, 0x6e, 0x31, 0x2b, 0x0c, 0xf7, 0x97, 0x2a, + 0xbb, 0x72, 0x5e, 0x49, 0xc2, 0xe2, 0xb6, 0xe3, 0x54, 0x22, 0x4e, 0x63, 0x44, 0x21, 0xd4, 0x7d, + 0xf2, 0xea, 0x90, 0x04, 0xcc, 0xab, 0x4a, 0x3b, 0xb9, 0xf8, 0x9d, 0x37, 0x69, 0x58, 0x40, 0xe4, + 0xc2, 0x46, 0xf4, 0x85, 0x25, 0x26, 0xd4, 0x83, 0xcb, 0x9c, 0x7c, 0x97, 0x5d, 0xcf, 0xdd, 0xeb, + 0x7b, 0xc3, 0x20, 0xb5, 0x04, 0x1a, 0x6c, 0x09, 0x30, 0xc7, 0xb1, 0x95, 0xc3, 0x0a, 0xe2, 0xc3, + 0xe1, 0xa0, 0x0f, 0x42, 0x9d, 0xec, 0x10, 0x37, 0xbc, 0x7b, 0xf7, 0xd6, 0xc2, 0x54, 0xa9, 0x3d, + 0x92, 0x75, 0x61, 0x45, 0xc0, 0xc0, 0x12, 0xda, 0xa5, 0x97, 0x00, 0x65, 0x89, 0xf2, 0x28, 0x01, + 0xb5, 0xae, 0x0a, 0xa8, 0xdf, 0xd3, 0xe0, 0x42, 0xee, 0xb0, 0x21, 0x0c, 0x17, 0x99, 0xbf, 0x9d, + 0xbb, 0x3a, 0x0c, 0x8d, 0xd0, 0x76, 0x7b, 0x1d, 0x77, 0xd3, 0xb1, 0x7b, 0x5b, 0x5c, 0x04, 0x1c, + 0xe3, 0x02, 0xcb, 0x6a, 0x6e, 0x09, 0x5c, 0x50, 0x13, 0x75, 0xe0, 0x5c, 0xdf, 0xd8, 0xcd, 0x00, + 0xac, 0x31, 0x80, 0xec, 0x4e, 0xff, 0x6a, 0x36, 0x1b, 0xe7, 0xd5, 0xd1, 0xbf, 0x36, 0x06, 0x8f, + 0xd1, 0x86, 0xc7, 0x5b, 0xe7, 0xaa, 0xe1, 0x1a, 0xbd, 0x9f, 0xd1, 0x2d, 0xea, 0x3b, 0x1a, 0x3c, + 0xb2, 0x95, 0x2f, 0xd8, 0x8a, 0xdd, 0x1b, 0x97, 0x93, 0xef, 0x0f, 0x13, 0x96, 0x39, 0xe9, 0x1e, + 0x5a, 0x04, 0x17, 0xb5, 0x0a, 0xbd, 0x04, 0x73, 0xae, 0x67, 0x91, 0x56, 0xa7, 0x8d, 0x57, 0x8d, + 0x60, 0xbb, 0x1b, 0x99, 0x6e, 0xc7, 0xf8, 0xf9, 0xcc, 0xed, 0x54, 0x1e, 0xce, 0x94, 0x46, 0x3b, + 0x80, 0x06, 0x9e, 0xb5, 0xb2, 0x63, 0x9b, 0x91, 0xab, 0x5c, 0xf9, 0x33, 0x21, 0x76, 0x89, 0x68, + 0x2d, 0x03, 0x0d, 0xe7, 0x60, 0x60, 0xa2, 0x39, 0x6d, 0xcc, 0xaa, 0xe7, 0xda, 0xa1, 0xe7, 0x33, + 0x8f, 0xce, 0x4a, 0x12, 0x2a, 0xa3, 0xf4, 0xdb, 0xb9, 0x10, 0x71, 0x01, 0x26, 0xfd, 0xbf, 0x6b, + 0x30, 0x4b, 0xe9, 0x62, 0xcd, 0xf7, 0x76, 0xf7, 0x7e, 0x26, 0x49, 0xf2, 0x69, 0x71, 0xf2, 0xc4, + 0x35, 0xb6, 0x0b, 0xca, 0xa9, 0xd3, 0x24, 0x6b, 0x74, 0x7c, 0xd0, 0xa4, 0x6a, 0xad, 0x23, 0xc5, + 0x5a, 0xab, 0xfe, 0x67, 0x1a, 0x97, 0x16, 0x23, 0xa5, 0xf1, 0x67, 0x73, 0x29, 0xbe, 0x1b, 0xa6, + 0x69, 0xda, 0xaa, 0xb1, 0xbb, 0xd6, 0x7e, 0xd9, 0x73, 0x22, 0x47, 0x53, 0xe6, 0xd2, 0x72, 0x53, + 0xcd, 0xc0, 0xc9, 0x72, 0xfa, 0x77, 0x66, 0x81, 0x15, 0x70, 0x48, 0xf8, 0x33, 0xd9, 0xb1, 0x67, + 0xa0, 0x61, 0x0e, 0x86, 0xad, 0x6b, 0xdd, 0x0f, 0x0c, 0xbd, 0xd0, 0x10, 0x27, 0x52, 0x4c, 0x02, + 0x6c, 0xad, 0xad, 0x47, 0xc9, 0x58, 0x2d, 0x43, 0x17, 0xb9, 0x39, 0x18, 0x0a, 0xc6, 0xb9, 0xa6, + 0xba, 0x66, 0xb0, 0x45, 0xde, 0x5a, 0x5b, 0x4f, 0xe4, 0xe1, 0x4c, 0x69, 0xf4, 0x69, 0x0d, 0xa6, + 0x88, 0x58, 0x80, 0x37, 0x0c, 0xdf, 0x12, 0xeb, 0xbb, 0xfc, 0xfe, 0x2d, 0x47, 0x37, 0x5a, 0xd6, + 0x5c, 0x76, 0x5e, 0x51, 0x70, 0xe0, 0x04, 0x46, 0x26, 0xc6, 0x8a, 0x6f, 0x3a, 0x59, 0x9e, 0x95, + 0x5e, 0xf1, 0x63, 0x42, 0x8c, 0x2d, 0x2a, 0x84, 0x8b, 0xeb, 0xa3, 0xbf, 0xa7, 0xc1, 0x45, 0x99, + 0x6b, 0xbb, 0x76, 0x7f, 0xd8, 0xc7, 0xc4, 0x74, 0x0c, 0xbb, 0x2f, 0x64, 0xda, 0x0f, 0x9e, 0x5e, + 0x4f, 0x93, 0xf0, 0x39, 0xdb, 0xc9, 0xcf, 0xc3, 0x05, 0x6d, 0x42, 0xdf, 0xd4, 0xe0, 0xc9, 0x28, + 0x6b, 0x8d, 0x6a, 0x96, 0x43, 0x9f, 0xc4, 0xee, 0xca, 0x62, 0x4c, 0x26, 0x4a, 0x71, 0xc1, 0x37, + 0x1f, 0xec, 0x2f, 0x3e, 0xb9, 0x72, 0x04, 0x6c, 0x7c, 0x24, 0xf6, 0x04, 0xc5, 0x74, 0xbd, 0xcd, + 0x50, 0x08, 0xc1, 0x0f, 0x8d, 0x62, 0x28, 0x0e, 0x9c, 0xc0, 0x88, 0x7e, 0x5b, 0x83, 0x47, 0xd4, + 0x04, 0x95, 0x60, 0xb8, 0xf4, 0xfb, 0xa1, 0xd3, 0x6b, 0x4d, 0x0a, 0x01, 0xb7, 0x37, 0x15, 0x64, + 0xe2, 0xa2, 0x66, 0x51, 0x16, 0xdc, 0x67, 0xc4, 0xc9, 0x25, 0xe4, 0x31, 0xce, 0x82, 0x39, 0xbd, + 0x06, 0x38, 0xca, 0xa3, 0xda, 0xe7, 0xc0, 0xb3, 0xd6, 0x6c, 0x2b, 0xb8, 0x65, 0xf7, 0xed, 0x90, + 0x89, 0xb0, 0x23, 0x7c, 0x3c, 0xd6, 0x3c, 0x6b, 0xad, 0xd3, 0xe6, 0xe9, 0x38, 0x51, 0x8a, 0xdd, + 0x34, 0xb2, 0xfb, 0x46, 0x8f, 0xac, 0x0d, 0x1d, 0x67, 0xcd, 0xf7, 0x98, 0x4d, 0xa2, 0x4d, 0x0c, + 0xcb, 0xb1, 0x5d, 0x52, 0x52, 0x64, 0x65, 0x4b, 0xae, 0x53, 0x04, 0x14, 0x17, 0xe3, 0x43, 0x4b, + 0x00, 0x9b, 0x86, 0xed, 0x74, 0xef, 0x19, 0x83, 0x3b, 0xee, 0xc2, 0x34, 0x63, 0x63, 0x4c, 0xf1, + 0xbb, 0x26, 0x53, 0xb1, 0x52, 0x82, 0x11, 0x14, 0x65, 0x86, 0x98, 0xf0, 0xdb, 0xce, 0x0b, 0x33, + 0xa7, 0x45, 0x50, 0x11, 0x44, 0x3e, 0x80, 0x37, 0x15, 0x1c, 0x38, 0x81, 0x11, 0x7d, 0x5e, 0x83, + 0x99, 0x60, 0x2f, 0x08, 0x49, 0x5f, 0x36, 0x62, 0xf6, 0xd4, 0x1b, 0xc1, 0x0c, 0x36, 0xdd, 0x04, + 0x16, 0x9c, 0xc2, 0x8a, 0x0c, 0x78, 0x8c, 0x0d, 0xec, 0xf5, 0xd6, 0x0d, 0xbb, 0xb7, 0x25, 0xaf, + 0x10, 0xad, 0x11, 0xdf, 0x24, 0x6e, 0xb8, 0x30, 0xc7, 0x48, 0x67, 0xf1, 0x60, 0x7f, 0xf1, 0xb1, + 0x4e, 0x71, 0x31, 0x7c, 0x18, 0x0c, 0xf4, 0x51, 0xb8, 0x24, 0xb2, 0x6f, 0x79, 0xf7, 0x32, 0x18, + 0xe6, 0x19, 0x06, 0x76, 0xaf, 0xab, 0x53, 0x58, 0x0a, 0x1f, 0x02, 0x81, 0xea, 0x08, 0x01, 0xf1, + 0x99, 0xc1, 0x95, 0x48, 0xfa, 0x09, 0x16, 0x10, 0xa3, 0x03, 0xa6, 0x23, 0x74, 0xb3, 0xd9, 0x38, + 0xaf, 0x8e, 0xbe, 0x5f, 0xe3, 0xca, 0x4d, 0x66, 0x4d, 0xa2, 0x17, 0x60, 0xb6, 0x4f, 0xfa, 0x9e, + 0xbf, 0xb7, 0x1c, 0x05, 0x45, 0x12, 0x06, 0x37, 0xa6, 0xb0, 0xae, 0x26, 0xb3, 0x70, 0xba, 0x2c, + 0xdd, 0x37, 0x59, 0x0f, 0xae, 0x75, 0xe3, 0xfa, 0xb5, 0x78, 0xdf, 0xec, 0xa4, 0xf2, 0x70, 0xa6, + 0x34, 0x6a, 0xc1, 0xbc, 0x48, 0xeb, 0x50, 0x09, 0x32, 0xb8, 0xe6, 0x93, 0xe8, 0xcc, 0x8b, 0x8a, + 0x62, 0xf3, 0x9d, 0x74, 0x26, 0xce, 0x96, 0xa7, 0xbd, 0xa0, 0x1f, 0x6a, 0x2b, 0x46, 0xe3, 0x5e, + 0xdc, 0x4e, 0x66, 0xe1, 0x74, 0xd9, 0x48, 0xc4, 0x4f, 0x34, 0x61, 0x2c, 0xee, 0xc5, 0xed, 0x54, + 0x1e, 0xce, 0x94, 0xd6, 0xff, 0x6c, 0x14, 0xde, 0x74, 0x8c, 0xad, 0x0c, 0xf5, 0xf3, 0x87, 0xfb, + 0x08, 0xae, 0xb2, 0x14, 0x1d, 0x92, 0x2d, 0x7d, 0x60, 0x68, 0xb8, 0xa1, 0x1d, 0xee, 0x1d, 0x73, + 0x7a, 0x06, 0x05, 0xd3, 0x73, 0x72, 0x7c, 0xc7, 0x9d, 0xce, 0xa0, 0x68, 0x3a, 0x4f, 0x8e, 0xf2, + 0xf8, 0xd3, 0xdf, 0xcf, 0x9f, 0xfe, 0x92, 0xa3, 0x7a, 0x24, 0xb9, 0x0c, 0x0a, 0xc8, 0xa5, 0xe4, + 0xa8, 0x1e, 0x83, 0xbc, 0xfe, 0xcd, 0x28, 0xbc, 0xf9, 0x38, 0x7b, 0x6a, 0x49, 0xfa, 0xca, 0xd9, + 0xb5, 0x1e, 0x2a, 0x7d, 0x15, 0xf9, 0x3a, 0x3e, 0x44, 0xfa, 0xca, 0x41, 0xf9, 0xb0, 0xe9, 0xab, + 0x68, 0x54, 0x1f, 0x16, 0x7d, 0x15, 0x8d, 0xea, 0x31, 0xe8, 0xeb, 0x7f, 0xa4, 0xf7, 0x07, 0xb9, + 0x8f, 0x76, 0x60, 0xc4, 0x1c, 0x0c, 0x4b, 0x32, 0x29, 0x76, 0xfa, 0xd9, 0x5a, 0x5b, 0xc7, 0x14, + 0x06, 0xc2, 0x30, 0xce, 0xe9, 0xa7, 0x24, 0x0b, 0x62, 0xde, 0x9c, 0x9c, 0x24, 0xb1, 0x80, 0x44, + 0x87, 0x8a, 0x0c, 0xb6, 0x48, 0x9f, 0xf8, 0x86, 0xd3, 0x0d, 0x3d, 0xdf, 0xe8, 0x95, 0xe5, 0x36, + 0x6c, 0xa8, 0x56, 0x52, 0xb0, 0x70, 0x06, 0x3a, 0x1d, 0x90, 0x81, 0x6d, 0x95, 0xe4, 0x2f, 0x6c, + 0x40, 0xd6, 0x3a, 0x6d, 0x4c, 0x61, 0xe8, 0xbf, 0x35, 0x09, 0xca, 0xf5, 0x51, 0xaa, 0xbe, 0x19, + 0x8e, 0xe3, 0xdd, 0x5b, 0xf3, 0xed, 0x1d, 0xdb, 0x21, 0x3d, 0x62, 0xc9, 0xfb, 0x85, 0x81, 0x38, + 0x24, 0x67, 0xb2, 0xe4, 0x72, 0x51, 0x21, 0x5c, 0x5c, 0x9f, 0x4a, 0xb6, 0xf3, 0x66, 0xfa, 0x7a, + 0x7f, 0xa5, 0x73, 0xbe, 0x4c, 0xb0, 0x00, 0xbe, 0xa0, 0x32, 0xc9, 0x38, 0x8b, 0x17, 0xfd, 0xb2, + 0xc6, 0x6d, 0x0f, 0xd2, 0xd8, 0x2a, 0x26, 0xed, 0xc6, 0x69, 0x1d, 0x51, 0xc4, 0x56, 0x8c, 0xd8, + 0x9e, 0x9b, 0xc4, 0x88, 0x7e, 0x43, 0x83, 0x0b, 0xdb, 0x79, 0x76, 0x53, 0x31, 0xb7, 0x6b, 0xa5, + 0xdb, 0x52, 0x60, 0x89, 0xe5, 0xc7, 0xca, 0xb9, 0x05, 0x70, 0x7e, 0x4b, 0xe4, 0x38, 0x49, 0x43, + 0x92, 0xe0, 0x03, 0xe5, 0xc7, 0x29, 0x65, 0x92, 0x8a, 0xc7, 0x49, 0x66, 0xe0, 0x24, 0x46, 0xf4, + 0x2a, 0x4c, 0x6e, 0x47, 0xf6, 0x3b, 0xa1, 0xea, 0xb7, 0x4b, 0xa3, 0x57, 0xac, 0x80, 0xfc, 0x00, + 0x5b, 0x26, 0xe2, 0x18, 0x0b, 0xb2, 0x61, 0x62, 0x9b, 0x73, 0x23, 0xa1, 0xa2, 0x37, 0xab, 0x6b, + 0x0f, 0x5c, 0x4f, 0x14, 0x49, 0x38, 0x82, 0xaf, 0xba, 0x0a, 0xd5, 0x8f, 0xf0, 0x3b, 0xfd, 0xaa, + 0x06, 0x17, 0x76, 0x88, 0x1f, 0xda, 0x66, 0xda, 0x70, 0x3d, 0x59, 0x41, 0xc5, 0x79, 0x39, 0x0f, + 0x22, 0x27, 0x95, 0xdc, 0x2c, 0x9c, 0xdf, 0x06, 0xaa, 0xf0, 0x70, 0xf3, 0x63, 0x37, 0x34, 0x42, + 0xdb, 0xbc, 0xeb, 0x6d, 0x13, 0x97, 0xf6, 0x56, 0x04, 0xd0, 0x05, 0xc6, 0x3f, 0x98, 0xc2, 0xb3, + 0x52, 0x5c, 0x0c, 0x1f, 0x06, 0x43, 0xff, 0x73, 0x0d, 0x32, 0xe6, 0x37, 0xf4, 0x37, 0x35, 0x98, + 0xda, 0x24, 0x46, 0x38, 0xf4, 0xc9, 0x75, 0x23, 0x94, 0xd7, 0x51, 0x5e, 0x39, 0x15, 0xb3, 0xdf, + 0xd2, 0x35, 0x05, 0x32, 0x3f, 0x68, 0x94, 0x11, 0x6b, 0xd4, 0x2c, 0x9c, 0x68, 0xc2, 0xa5, 0xf7, + 0xc1, 0x7c, 0xa6, 0xe2, 0x89, 0x0e, 0x83, 0x7e, 0x57, 0x18, 0x70, 0xd3, 0xf1, 0x93, 0x3f, 0x06, + 0x63, 0x86, 0x65, 0xc9, 0x18, 0x8d, 0xcf, 0x95, 0x3c, 0x54, 0xb7, 0xd4, 0x7b, 0x3f, 0xec, 0x13, + 0x73, 0xb8, 0xe8, 0x1a, 0x20, 0x23, 0x71, 0x66, 0xb6, 0x1a, 0xdf, 0x89, 0x60, 0xa6, 0xff, 0xe5, + 0x4c, 0x2e, 0xce, 0xa9, 0xa1, 0xbf, 0x17, 0x66, 0x92, 0x01, 0x0b, 0x4e, 0xe0, 0x60, 0xad, 0xff, + 0xaa, 0x06, 0x28, 0x1b, 0x23, 0x09, 0x05, 0x50, 0x17, 0x25, 0xa2, 0x49, 0x5e, 0x29, 0xeb, 0x2c, + 0x9b, 0xf0, 0xfd, 0x8e, 0xdd, 0x73, 0x45, 0x42, 0x80, 0x25, 0x22, 0xfd, 0x2f, 0x35, 0x88, 0x63, + 0xc1, 0xa1, 0x77, 0x41, 0xc3, 0x22, 0x81, 0xe9, 0xdb, 0x83, 0x30, 0xee, 0x88, 0xf4, 0x36, 0x6d, + 0xc7, 0x59, 0x58, 0x2d, 0x87, 0x74, 0x18, 0x0f, 0x8d, 0x60, 0xbb, 0xd3, 0x16, 0xba, 0x29, 0x93, + 0x24, 0xee, 0xb2, 0x14, 0x2c, 0x72, 0xe2, 0xdb, 0xff, 0x23, 0xc7, 0xb8, 0xfd, 0x8f, 0x36, 0x4f, + 0x21, 0xd4, 0x01, 0x3a, 0x3a, 0xcc, 0x81, 0xfe, 0x2f, 0x6b, 0x90, 0x8c, 0xbf, 0x57, 0x76, 0x08, + 0xb2, 0xb1, 0x19, 0x6a, 0x0f, 0x2d, 0x36, 0xc3, 0xdb, 0x58, 0xac, 0x5a, 0x1e, 0x61, 0x9c, 0x9f, + 0x94, 0xa9, 0x01, 0x66, 0x79, 0x78, 0x70, 0x59, 0x02, 0x3d, 0xab, 0xfa, 0xb0, 0x4e, 0x36, 0xdf, + 0x14, 0xad, 0x0b, 0xe6, 0x98, 0xfa, 0x40, 0x44, 0x9f, 0x90, 0xfd, 0x4f, 0xb8, 0xab, 0xbe, 0x4b, + 0x78, 0x60, 0x8e, 0x25, 0x22, 0x64, 0x44, 0x61, 0x35, 0xe6, 0x13, 0x15, 0x63, 0xb7, 0x4c, 0xfd, + 0x6f, 0x69, 0x30, 0x21, 0xe2, 0x5d, 0x1d, 0xc3, 0xf5, 0xb8, 0x07, 0x63, 0x4c, 0x23, 0xa8, 0x24, + 0x2c, 0x75, 0xb7, 0x3c, 0x2f, 0x4c, 0xc4, 0xfd, 0x62, 0x8e, 0x83, 0xec, 0x2f, 0xe6, 0xf0, 0xf5, + 0xaf, 0x8e, 0xc2, 0x93, 0xa2, 0x48, 0x46, 0x12, 0x90, 0x8b, 0x70, 0x0f, 0xce, 0x89, 0x69, 0x6a, + 0xfb, 0x86, 0x2d, 0x0f, 0x13, 0xcb, 0x29, 0x79, 0xe2, 0xa0, 0x39, 0x03, 0x0e, 0xe7, 0xe1, 0xe0, + 0xd1, 0x6d, 0x58, 0xf2, 0x0d, 0x62, 0x38, 0xe1, 0x56, 0x84, 0xbb, 0x56, 0x25, 0xba, 0x4d, 0x16, + 0x1e, 0xce, 0xc5, 0xc2, 0x0e, 0x33, 0x45, 0x46, 0xcb, 0x27, 0x86, 0x7a, 0x92, 0x5a, 0xc1, 0xcf, + 0x70, 0x35, 0x17, 0x22, 0x2e, 0xc0, 0xc4, 0xac, 0x65, 0xc6, 0x2e, 0x53, 0xbe, 0x31, 0x09, 0x7d, + 0x9b, 0x45, 0x62, 0xa3, 0x04, 0xce, 0xd5, 0xe5, 0x64, 0x16, 0x4e, 0x97, 0x45, 0xcf, 0xc1, 0x0c, + 0x3b, 0x1c, 0x8e, 0xaf, 0x7b, 0x8f, 0xc5, 0x01, 0xe7, 0x6f, 0x27, 0x72, 0x70, 0xaa, 0xa4, 0xfe, + 0x6d, 0x0d, 0xa6, 0x54, 0x02, 0x3a, 0x86, 0x83, 0xf2, 0x8e, 0xc2, 0xb0, 0xab, 0xf8, 0xce, 0xaa, + 0x68, 0x8f, 0xc9, 0xb3, 0xcf, 0xe5, 0xd4, 0x61, 0xa7, 0x84, 0x24, 0xc5, 0xfc, 0x2b, 0x9d, 0x12, + 0x66, 0x76, 0x12, 0x79, 0x4a, 0x98, 0xce, 0xc1, 0x19, 0xc4, 0xe8, 0x15, 0x18, 0x31, 0x7d, 0x5b, + 0x0c, 0xcc, 0x7b, 0xca, 0xa9, 0x40, 0xb8, 0x13, 0x5f, 0x85, 0x6a, 0xe1, 0x0e, 0xa6, 0x10, 0xf5, + 0xdf, 0x19, 0x81, 0x86, 0x12, 0x4e, 0x0f, 0xad, 0x56, 0x51, 0xa1, 0x63, 0xf0, 0x91, 0x1a, 0xbd, + 0x0a, 0x23, 0xbd, 0xc1, 0xb0, 0xa4, 0x0e, 0x2d, 0xc1, 0x5d, 0xa7, 0xe0, 0x7a, 0x83, 0x21, 0x7a, + 0x59, 0x6a, 0xe5, 0xe5, 0xf4, 0x66, 0xe9, 0x50, 0x9a, 0xd2, 0xcc, 0x23, 0xf2, 0x1c, 0x2d, 0x24, + 0x4f, 0x17, 0x26, 0x02, 0xa1, 0xb2, 0x8f, 0x55, 0xb8, 0x7f, 0xaa, 0x0c, 0xb5, 0xd0, 0xd1, 0xb9, + 0xa8, 0x1f, 0xa9, 0xf0, 0x11, 0x12, 0x2a, 0x05, 0x0c, 0xd9, 0xcd, 0x0d, 0xa6, 0xc5, 0xd4, 0xb9, + 0x14, 0xb0, 0xce, 0x52, 0xb0, 0xc8, 0xd1, 0xbf, 0x50, 0x03, 0x94, 0x05, 0x88, 0xde, 0x04, 0x63, + 0xec, 0x1e, 0x97, 0x58, 0x6c, 0x4a, 0xac, 0x29, 0x23, 0x08, 0x30, 0xcf, 0x43, 0x5d, 0x71, 0xaf, + 0xaf, 0xdc, 0xcc, 0xb0, 0xf3, 0x69, 0x81, 0x4f, 0xb9, 0x04, 0x18, 0xed, 0x4f, 0x23, 0x85, 0xfb, + 0xd3, 0x3a, 0x4c, 0xf4, 0x6d, 0x97, 0xb9, 0xa5, 0x94, 0x33, 0x4a, 0xf0, 0x03, 0x34, 0x0e, 0x02, + 0x47, 0xb0, 0xf4, 0x1f, 0xd7, 0x28, 0x15, 0xdb, 0x6e, 0x48, 0x5c, 0xc3, 0x35, 0x09, 0xba, 0x0f, + 0x60, 0x0c, 0x43, 0x8f, 0x6f, 0xf3, 0x82, 0x98, 0xdf, 0x5f, 0x72, 0xc2, 0x24, 0xd4, 0x65, 0x09, + 0x91, 0x1f, 0x6c, 0xc5, 0xdf, 0x58, 0xc1, 0x46, 0x71, 0x87, 0x76, 0x9f, 0xbc, 0x62, 0xbb, 0x96, + 0x77, 0x4f, 0x8c, 0x6f, 0x65, 0xdc, 0x77, 0x25, 0x44, 0x8e, 0x3b, 0xfe, 0xc6, 0x0a, 0x36, 0xf4, + 0x41, 0x58, 0x60, 0xea, 0x8f, 0xcb, 0xe2, 0x95, 0x8a, 0xc6, 0x79, 0x8e, 0x13, 0x6d, 0x3c, 0x75, + 0x16, 0x1d, 0x6e, 0xa1, 0x55, 0x50, 0x06, 0x17, 0xd6, 0xd6, 0xbf, 0xa3, 0xc1, 0x85, 0xdc, 0xb1, + 0x40, 0xd7, 0x61, 0x3e, 0x76, 0x6a, 0x50, 0x19, 0x65, 0x3d, 0x0e, 0xc0, 0x7b, 0x33, 0x5d, 0x00, + 0x67, 0xeb, 0xa0, 0x55, 0x29, 0x2d, 0xa8, 0x8c, 0x58, 0x78, 0x44, 0x3c, 0x26, 0x40, 0xe5, 0xf1, + 0x6a, 0x9c, 0x57, 0x4f, 0xff, 0x48, 0xa2, 0xc1, 0xf1, 0x80, 0xd1, 0xf5, 0xb1, 0x41, 0x7a, 0xd2, + 0xc9, 0x5c, 0xae, 0x8f, 0x26, 0x4d, 0xc4, 0x3c, 0x0f, 0x5d, 0x56, 0x2f, 0x46, 0x48, 0x46, 0x14, + 0x5d, 0x8e, 0xd0, 0x87, 0x00, 0xc2, 0x7d, 0xc8, 0x76, 0x7b, 0xa8, 0x07, 0x75, 0x43, 0xbc, 0xd3, + 0x22, 0x88, 0xed, 0x85, 0x72, 0xca, 0x96, 0x00, 0xc2, 0x3d, 0x07, 0xa3, 0x2f, 0x2c, 0x81, 0xeb, + 0x7f, 0x57, 0x83, 0x8b, 0xf9, 0xd7, 0x95, 0x8e, 0xb1, 0xc3, 0xf6, 0xa1, 0xe1, 0xc7, 0xd5, 0x04, + 0x65, 0xfe, 0x82, 0x1a, 0x38, 0x46, 0xb9, 0xf8, 0x4e, 0xa5, 0x8f, 0x96, 0xef, 0x05, 0xd1, 0xec, + 0xa4, 0x63, 0xc9, 0x48, 0x21, 0x5e, 0x69, 0x09, 0x56, 0xe1, 0xeb, 0x9f, 0xa9, 0x01, 0xdc, 0x26, + 0xe1, 0x3d, 0xcf, 0xdf, 0xa6, 0x63, 0xf4, 0x33, 0x75, 0x6d, 0xee, 0x71, 0x18, 0x1d, 0x78, 0x56, + 0x20, 0x18, 0x15, 0xbb, 0xcf, 0xc6, 0x4e, 0xe4, 0x59, 0x2a, 0x5a, 0x84, 0x31, 0x66, 0x6d, 0x16, + 0xdb, 0x01, 0x13, 0x7e, 0xa9, 0xc0, 0x13, 0x60, 0x9e, 0xce, 0xc3, 0x71, 0x33, 0xbf, 0xdc, 0x40, + 0x88, 0xf3, 0x22, 0x1c, 0x37, 0x4f, 0xc3, 0x32, 0x57, 0xff, 0xec, 0x28, 0x24, 0x5e, 0x1a, 0x8a, + 0x95, 0xf2, 0xd1, 0x87, 0xa4, 0x94, 0x7f, 0x10, 0x16, 0x1c, 0xcf, 0xb0, 0x9a, 0x86, 0x43, 0xc9, + 0xde, 0xef, 0xf2, 0xf9, 0x30, 0xdc, 0x1e, 0x89, 0x5e, 0x0c, 0x62, 0x2c, 0xe0, 0x56, 0x41, 0x19, + 0x5c, 0x58, 0x1b, 0x0d, 0x95, 0x07, 0x8e, 0xa8, 0x18, 0xb2, 0x5a, 0xf9, 0x25, 0xa6, 0x25, 0xd5, + 0x29, 0x5b, 0xee, 0xcd, 0xc9, 0x47, 0x90, 0xd0, 0xe7, 0x35, 0xb8, 0x40, 0x76, 0x43, 0xe2, 0xbb, + 0x86, 0x73, 0xd7, 0x37, 0x36, 0x37, 0x6d, 0x33, 0xe1, 0xf3, 0xb4, 0x76, 0xb0, 0xbf, 0x78, 0x61, + 0x25, 0xaf, 0xc0, 0x83, 0xfd, 0xc5, 0x77, 0x64, 0x9f, 0x1a, 0x8b, 0x5c, 0xb0, 0x73, 0xab, 0x30, + 0x72, 0xcc, 0x47, 0x77, 0xe9, 0x59, 0x68, 0x9c, 0xc0, 0x5f, 0x37, 0x71, 0xa1, 0xec, 0xeb, 0xe3, + 0xa0, 0x38, 0xc0, 0x9f, 0x20, 0x8e, 0xf4, 0x6f, 0x6a, 0x70, 0xde, 0x74, 0x6c, 0xe2, 0x86, 0x29, + 0x2f, 0x67, 0xbe, 0x34, 0x5e, 0x2e, 0xe7, 0x9a, 0x3f, 0x20, 0x6e, 0xa7, 0xdd, 0xf2, 0x5c, 0x97, + 0x98, 0x61, 0x2b, 0x07, 0x3a, 0xd7, 0x77, 0xf2, 0x72, 0x70, 0x6e, 0x6b, 0x58, 0x87, 0x58, 0x7a, + 0xa7, 0xad, 0xde, 0x15, 0x6b, 0x89, 0x34, 0x2c, 0x73, 0xd1, 0x33, 0xd0, 0xe8, 0xf9, 0xde, 0x70, + 0x10, 0xb4, 0x98, 0x37, 0x16, 0x5f, 0x61, 0x4c, 0x9c, 0xb8, 0x1e, 0x27, 0x63, 0xb5, 0x0c, 0x7a, + 0x27, 0x4c, 0xf1, 0xcf, 0x35, 0x9f, 0x6c, 0xda, 0xbb, 0x62, 0xc5, 0x31, 0xe7, 0x8e, 0xeb, 0x4a, + 0x3a, 0x4e, 0x94, 0x42, 0x6f, 0x85, 0x49, 0x3b, 0x08, 0x86, 0xc4, 0x5f, 0xc7, 0xb7, 0x44, 0x34, + 0x45, 0x66, 0xc3, 0xed, 0x44, 0x89, 0x38, 0xce, 0x47, 0xbf, 0xa6, 0xc1, 0x8c, 0x4f, 0x5e, 0x1d, + 0xda, 0x3e, 0xb1, 0x18, 0xd2, 0x40, 0x5c, 0x43, 0xe8, 0x56, 0xbc, 0xfb, 0xb0, 0x84, 0x13, 0x50, + 0x39, 0xa5, 0x4b, 0xd3, 0x44, 0x32, 0x13, 0xa7, 0x9a, 0x40, 0xc7, 0x2a, 0xb0, 0x7b, 0xae, 0xed, + 0xf6, 0x96, 0x9d, 0x5e, 0xb0, 0x50, 0x67, 0xab, 0x97, 0x8b, 0x5e, 0x71, 0x32, 0x56, 0xcb, 0xa0, + 0x77, 0xc3, 0xf4, 0x30, 0xa0, 0xb4, 0xdb, 0x27, 0x7c, 0x80, 0x27, 0x63, 0x37, 0xc9, 0x75, 0x35, + 0x03, 0x27, 0xcb, 0x51, 0x6d, 0x2f, 0x4a, 0x10, 0xc3, 0x0c, 0x3c, 0xe2, 0x03, 0x6d, 0xe7, 0x7a, + 0x22, 0x07, 0xa7, 0x4a, 0x5e, 0x5a, 0x86, 0x73, 0x39, 0xdd, 0x3c, 0xd1, 0x02, 0xf9, 0x76, 0x0d, + 0xde, 0x78, 0x24, 0x59, 0xa2, 0xaf, 0x6b, 0xd0, 0x20, 0xbb, 0xa1, 0x6f, 0x48, 0xa7, 0x4d, 0x3a, + 0x47, 0xbd, 0x87, 0xb3, 0x08, 0x96, 0x56, 0x62, 0x4c, 0x7c, 0xde, 0xe4, 0x9e, 0xa7, 0xe4, 0x60, + 0xb5, 0x41, 0x54, 0x6a, 0xe7, 0x11, 0x41, 0x54, 0xdb, 0x9d, 0x78, 0x9a, 0x45, 0xe4, 0x5c, 0x7a, + 0x11, 0xe6, 0xd2, 0x90, 0x4f, 0x34, 0x54, 0xff, 0xa0, 0x06, 0x63, 0x6b, 0x8e, 0x71, 0x26, 0xa1, + 0x31, 0x3f, 0x9e, 0x08, 0x49, 0x56, 0x2e, 0xd0, 0x1b, 0x6b, 0x6b, 0x61, 0x40, 0xc4, 0xad, 0x54, + 0x40, 0xc4, 0x97, 0x2a, 0xe0, 0x38, 0x3c, 0xfe, 0xe1, 0x0f, 0x34, 0x98, 0x64, 0xe5, 0xce, 0x20, + 0x4e, 0xc3, 0xc7, 0x92, 0x71, 0x1a, 0x9e, 0x2b, 0xdf, 0xa9, 0x82, 0xf8, 0x0c, 0x7f, 0x12, 0x75, + 0x86, 0x45, 0xd8, 0xfa, 0x90, 0xfa, 0x16, 0x15, 0xef, 0xcd, 0x95, 0xbc, 0x80, 0x80, 0xb7, 0x3c, + 0xd3, 0x70, 0x32, 0x51, 0x01, 0x0f, 0x7d, 0x90, 0xca, 0x85, 0x49, 0x22, 0xe2, 0xae, 0x44, 0xbd, + 0x29, 0x27, 0xdb, 0x46, 0xd1, 0x5b, 0x62, 0x7c, 0x51, 0x4a, 0x80, 0x63, 0x14, 0xfa, 0xef, 0xd6, + 0xa0, 0xa1, 0xcc, 0xe6, 0x4f, 0x25, 0xe0, 0xe0, 0xb5, 0xdc, 0x97, 0x5b, 0x6a, 0xcc, 0x29, 0xf3, + 0xe2, 0x09, 0x5e, 0x6d, 0x09, 0xa0, 0x61, 0xc6, 0x31, 0xa4, 0x2b, 0x11, 0xb8, 0x12, 0x8b, 0x5a, + 0x38, 0x87, 0xc7, 0x09, 0x58, 0xc5, 0xa2, 0xff, 0xe3, 0x1a, 0x4c, 0xac, 0xf9, 0x1e, 0x9d, 0xe3, + 0x33, 0x60, 0x10, 0x1b, 0x09, 0x06, 0x51, 0x72, 0xf1, 0xf2, 0xd6, 0x16, 0xb2, 0x88, 0x4f, 0xa4, + 0x58, 0x44, 0xb3, 0x12, 0x96, 0xc3, 0x99, 0xc4, 0x0f, 0x35, 0x68, 0x88, 0x92, 0x67, 0xc0, 0x26, + 0x8c, 0x24, 0x9b, 0x78, 0xbe, 0x4a, 0xc7, 0x0a, 0x18, 0xc5, 0x57, 0x34, 0x98, 0x16, 0x25, 0x56, + 0x49, 0x7f, 0x83, 0xf8, 0xe8, 0x1a, 0x4c, 0x04, 0x43, 0x36, 0x97, 0xa2, 0x47, 0x8f, 0xa9, 0xac, + 0xc2, 0xdf, 0x30, 0x4c, 0xf6, 0x02, 0x19, 0x2f, 0xa2, 0x44, 0x22, 0xe5, 0x09, 0x38, 0xaa, 0x4c, + 0x15, 0x3a, 0xdf, 0x73, 0x32, 0x11, 0x25, 0xb0, 0xe7, 0x10, 0xcc, 0x72, 0xa8, 0x1e, 0x45, 0x7f, + 0xa3, 0x53, 0x2a, 0xa6, 0x47, 0xd1, 0xec, 0x00, 0xf3, 0x74, 0xfd, 0x0b, 0xa3, 0x72, 0xb4, 0x19, + 0x1f, 0xbb, 0x01, 0x93, 0xa6, 0x4f, 0x8c, 0x90, 0x58, 0xcd, 0xbd, 0xe3, 0x34, 0x8e, 0x09, 0x74, + 0xad, 0xa8, 0x06, 0x8e, 0x2b, 0x53, 0xd1, 0x49, 0x3d, 0x78, 0xaa, 0xc5, 0x62, 0x66, 0xe1, 0xa1, + 0xd3, 0xf3, 0x30, 0xe6, 0xdd, 0x73, 0xa5, 0x77, 0xc7, 0xa1, 0x88, 0x59, 0x57, 0xee, 0xd0, 0xd2, + 0x98, 0x57, 0x52, 0x63, 0xa0, 0x8c, 0x1e, 0x12, 0x03, 0xa5, 0x0f, 0x13, 0x7d, 0x36, 0x0d, 0xd5, + 0xc2, 0x52, 0x26, 0x66, 0x54, 0x8d, 0x12, 0xce, 0x40, 0xe3, 0x08, 0x07, 0x15, 0x82, 0xa9, 0x9c, + 0x16, 0x0c, 0x0c, 0x93, 0xa8, 0x42, 0xf0, 0xed, 0x28, 0x11, 0xc7, 0xf9, 0xe8, 0x7e, 0x32, 0xbc, + 0xce, 0x44, 0x05, 0x33, 0xa7, 0x68, 0x9f, 0x12, 0x51, 0x87, 0x0f, 0x7e, 0x61, 0x88, 0x9d, 0x2f, + 0x8d, 0x4a, 0x32, 0x15, 0x8c, 0x3f, 0xff, 0xf9, 0x2c, 0xad, 0xd4, 0xf3, 0x59, 0xef, 0x80, 0xb1, + 0xc1, 0x96, 0x11, 0x44, 0xb4, 0x1a, 0x85, 0xb4, 0x1f, 0x5b, 0xa3, 0x89, 0x0f, 0xf6, 0x17, 0xa7, + 0x04, 0x6a, 0xf6, 0x8d, 0x79, 0x59, 0x34, 0x84, 0x73, 0x41, 0x68, 0x38, 0xa4, 0x6b, 0x0b, 0xf3, + 0x51, 0x10, 0x1a, 0xfd, 0x41, 0x89, 0xc8, 0xf4, 0xdc, 0xfb, 0x39, 0x0b, 0x0a, 0xe7, 0xc1, 0x47, + 0x9f, 0xd5, 0x60, 0x81, 0xa5, 0x2f, 0x0f, 0x43, 0x8f, 0xbf, 0xe2, 0x11, 0x23, 0x3f, 0xf9, 0xb9, + 0x2d, 0x53, 0xf6, 0xbb, 0x05, 0xf0, 0x70, 0x21, 0x26, 0xf4, 0x1a, 0x5c, 0x70, 0x8c, 0x20, 0x5c, + 0x36, 0x43, 0x7b, 0xc7, 0x0e, 0xf7, 0xe2, 0x26, 0x9c, 0xfc, 0x29, 0x31, 0xe6, 0x1e, 0x72, 0x2b, + 0x0f, 0x18, 0xce, 0xc7, 0xa1, 0xff, 0x4f, 0x0d, 0x50, 0x96, 0x84, 0x50, 0x1f, 0xea, 0x16, 0xd9, + 0x34, 0x86, 0x4e, 0x18, 0x49, 0x02, 0x95, 0x83, 0x3f, 0x49, 0xee, 0xdc, 0x16, 0x80, 0xb1, 0x44, + 0x81, 0x06, 0x30, 0x79, 0x6f, 0xcb, 0x0e, 0x89, 0x63, 0x07, 0xe1, 0x69, 0x05, 0x9b, 0x92, 0xc2, + 0xcf, 0x2b, 0x11, 0x64, 0x1c, 0x23, 0xd1, 0xff, 0xea, 0x08, 0xd4, 0x4f, 0xf0, 0x46, 0xeb, 0x10, + 0x90, 0x08, 0x4c, 0x41, 0x25, 0x26, 0x52, 0xc5, 0x68, 0xc6, 0xc4, 0x9a, 0x56, 0x06, 0x18, 0xce, + 0x41, 0x80, 0x5e, 0x83, 0xf3, 0xb6, 0xbb, 0xe9, 0x1b, 0x41, 0xe8, 0x0f, 0xcd, 0x70, 0xe8, 0x93, + 0x2a, 0x31, 0xf1, 0x99, 0xa5, 0xa1, 0x93, 0x03, 0x0e, 0xe7, 0x22, 0x41, 0x9b, 0x30, 0x71, 0xcf, + 0xf3, 0xb7, 0x29, 0x03, 0x1d, 0xad, 0xf0, 0xe8, 0xd2, 0x2b, 0x0c, 0x46, 0xcc, 0x39, 0xf9, 0x77, + 0x80, 0x23, 0xe0, 0xfa, 0x1f, 0x6a, 0x30, 0xc6, 0x6f, 0xdb, 0xbd, 0x3e, 0xb4, 0x2c, 0xd6, 0xd6, + 0xc2, 0x38, 0xcf, 0x54, 0xf7, 0x61, 0x25, 0x5e, 0x2f, 0xba, 0x0f, 0x6b, 0x6c, 0x81, 0x48, 0xf3, + 0x87, 0x23, 0xa2, 0x33, 0x4c, 0x66, 0xe8, 0xc0, 0x39, 0x21, 0xfe, 0xde, 0xb2, 0x37, 0x09, 0x25, + 0xb0, 0xb6, 0xb1, 0x17, 0x88, 0xdb, 0xee, 0x8c, 0xf5, 0xb6, 0xb2, 0xd9, 0x38, 0xaf, 0x0e, 0xfa, + 0x27, 0x1a, 0xdd, 0x9d, 0x43, 0xdf, 0x36, 0xab, 0x05, 0x4f, 0x96, 0x8d, 0x5b, 0x5a, 0xe5, 0xd0, + 0xb8, 0xf9, 0x60, 0x3d, 0xde, 0xa6, 0x59, 0xea, 0x83, 0xfd, 0xc5, 0xc5, 0x1c, 0xf3, 0x64, 0x64, + 0x50, 0xa7, 0x43, 0xfb, 0x99, 0x1f, 0x1f, 0x5a, 0x84, 0x19, 0xf7, 0xa3, 0x26, 0xa3, 0x1b, 0x30, + 0x16, 0x98, 0xde, 0x80, 0x9c, 0x24, 0x24, 0xbc, 0x1c, 0xe1, 0x2e, 0xad, 0x89, 0x39, 0x80, 0x4b, + 0x9f, 0x80, 0x29, 0xb5, 0xe5, 0x39, 0xe6, 0x89, 0xb6, 0x6a, 0x9e, 0x38, 0xf1, 0x29, 0x9e, 0x6a, + 0xce, 0xf8, 0xbd, 0x1a, 0x88, 0x27, 0x13, 0x8f, 0x71, 0x84, 0xf1, 0x89, 0x28, 0x8a, 0x6a, 0x95, + 0x77, 0x22, 0xd3, 0x4f, 0xc3, 0xc7, 0x83, 0xa0, 0x06, 0x52, 0x45, 0x9e, 0x0c, 0x5f, 0x36, 0x52, + 0x21, 0x66, 0x35, 0xef, 0xda, 0xc3, 0x0e, 0x58, 0xf6, 0x43, 0x0d, 0xa6, 0x12, 0x01, 0xe1, 0xfa, + 0x30, 0xe2, 0x4b, 0x5b, 0x40, 0xd9, 0x33, 0x9e, 0xc8, 0xbb, 0xe9, 0xb1, 0x43, 0x0a, 0x61, 0x8a, + 0x47, 0xc6, 0x8e, 0xab, 0x9d, 0x52, 0xec, 0x38, 0xfd, 0xcb, 0x1a, 0x5c, 0x8c, 0x3a, 0x94, 0x0c, + 0x44, 0x82, 0xae, 0x40, 0xdd, 0x18, 0xd8, 0xcc, 0xf2, 0xab, 0x1a, 0xcf, 0x97, 0xd7, 0x3a, 0x2c, + 0x0d, 0xcb, 0x5c, 0xf4, 0x36, 0xa8, 0x47, 0xa4, 0x27, 0x24, 0x3f, 0xc9, 0xb7, 0xe4, 0xa9, 0x95, + 0x2c, 0x81, 0x9e, 0x52, 0x22, 0xdd, 0x8e, 0xc5, 0x1b, 0xb5, 0x44, 0xcc, 0xcf, 0xb8, 0xf5, 0x2f, + 0x8e, 0xc0, 0x34, 0xb7, 0x94, 0x34, 0x6d, 0xd7, 0xb2, 0xdd, 0xde, 0x19, 0x6c, 0x10, 0x89, 0xb7, + 0xc6, 0x6b, 0xa7, 0xf5, 0xd6, 0xf8, 0x4d, 0x18, 0x7f, 0x95, 0x72, 0xaa, 0x88, 0xc0, 0x8f, 0xc5, + 0x30, 0x24, 0xf1, 0x32, 0x26, 0x17, 0x60, 0x01, 0x02, 0x85, 0xca, 0x93, 0xef, 0x55, 0x2e, 0x93, + 0x27, 0x86, 0x56, 0x86, 0xac, 0x9e, 0xca, 0x7f, 0xef, 0x9d, 0xc5, 0x60, 0x4d, 0xd4, 0x78, 0xbd, + 0xc4, 0x60, 0x4d, 0x34, 0xba, 0x60, 0x9f, 0x7b, 0x16, 0x2e, 0xe4, 0x8e, 0xc6, 0xd1, 0x92, 0xa1, + 0xfe, 0xdd, 0x1a, 0xb0, 0xa7, 0x98, 0xcf, 0x80, 0x36, 0x3f, 0x96, 0x10, 0x5e, 0x5e, 0x28, 0x1f, + 0x05, 0xb6, 0xc8, 0xfc, 0xd3, 0x4b, 0x99, 0x7f, 0xde, 0x57, 0x1e, 0xc5, 0xe1, 0xb6, 0x9f, 0x6f, + 0xd4, 0x00, 0x68, 0x31, 0xfe, 0x68, 0xb5, 0x70, 0x0c, 0xe5, 0x14, 0xad, 0x25, 0xb9, 0x47, 0x96, + 0x12, 0xcf, 0xf2, 0xf0, 0x5a, 0x97, 0x2f, 0x0f, 0x8f, 0xc4, 0x87, 0x0c, 0xc9, 0x57, 0x87, 0x93, + 0x1c, 0x63, 0xf4, 0x94, 0x38, 0x86, 0xfe, 0x5d, 0x0d, 0xd8, 0x8b, 0x34, 0xed, 0xdb, 0x5d, 0xf4, + 0x6e, 0x98, 0xb6, 0xf9, 0x29, 0x6e, 0x5b, 0x0d, 0xd9, 0xc7, 0x4e, 0x9a, 0x3a, 0x6a, 0x06, 0x4e, + 0x96, 0x43, 0xae, 0x32, 0xae, 0x55, 0x5e, 0x8c, 0x17, 0x0d, 0x39, 0x92, 0x47, 0xfc, 0xa4, 0x06, + 0xb3, 0xa9, 0xb2, 0xc7, 0xd0, 0xad, 0x1e, 0x0e, 0xcb, 0x55, 0x22, 0xdd, 0x8f, 0x9c, 0x41, 0xa4, + 0x7b, 0x19, 0x74, 0x7e, 0xf4, 0x21, 0x07, 0x9d, 0xff, 0xbe, 0x06, 0xec, 0x31, 0xf2, 0x33, 0x60, + 0xbf, 0x1f, 0x4d, 0xb2, 0xdf, 0x67, 0x4b, 0xd3, 0x4e, 0x01, 0xd7, 0xfd, 0x4b, 0x0d, 0x58, 0x0c, + 0x6a, 0xe1, 0xba, 0xa2, 0x78, 0x83, 0x68, 0x05, 0xde, 0x20, 0x4f, 0x0a, 0x67, 0x92, 0x94, 0x21, + 0x54, 0x71, 0x28, 0x79, 0x9b, 0xe2, 0x2f, 0x32, 0x92, 0x64, 0x25, 0x59, 0x9f, 0x11, 0xf4, 0x1a, + 0x4c, 0x07, 0x5b, 0x9e, 0x17, 0x46, 0x26, 0x09, 0x31, 0x7b, 0xcd, 0xf2, 0xbe, 0xdc, 0x51, 0x5f, + 0xf8, 0xea, 0xec, 0xaa, 0xc0, 0x71, 0x12, 0x97, 0xfe, 0xfb, 0xa2, 0xfb, 0x27, 0x58, 0x2a, 0x67, + 0xc8, 0xfa, 0xde, 0x92, 0x62, 0x7d, 0x45, 0x8f, 0xae, 0xff, 0x8e, 0xe8, 0x85, 0x0c, 0x1d, 0x3e, + 0x80, 0x69, 0x47, 0x7d, 0x47, 0x48, 0x10, 0x66, 0xa9, 0x27, 0x88, 0x64, 0xf4, 0xc0, 0x44, 0x32, + 0x4e, 0x22, 0xa0, 0xfc, 0x31, 0x6a, 0x3c, 0x7f, 0x1c, 0x99, 0xbf, 0x88, 0xc1, 0x66, 0x60, 0x4d, + 0xcd, 0xc0, 0xc9, 0x72, 0xfa, 0x37, 0x6b, 0x70, 0x99, 0xb7, 0x9d, 0x79, 0xd1, 0xb7, 0xc9, 0x80, + 0xb8, 0x16, 0x71, 0xcd, 0x3d, 0x26, 0x07, 0x5b, 0x5e, 0x0f, 0x7d, 0x56, 0x83, 0x7a, 0x74, 0x62, + 0x26, 0x3a, 0xf2, 0xe1, 0x0a, 0xd1, 0xd7, 0x0b, 0xd0, 0xc8, 0x03, 0x3b, 0x1e, 0xc6, 0x4e, 0x7c, + 0x61, 0x89, 0x19, 0xed, 0xc2, 0xd8, 0xc0, 0xf7, 0x36, 0x22, 0x1d, 0xf0, 0x95, 0xd3, 0x6f, 0xc2, + 0x1a, 0x05, 0xcf, 0x57, 0x1c, 0xfb, 0x8b, 0x39, 0x42, 0x1d, 0xc3, 0x53, 0xc7, 0x6a, 0x3a, 0x7a, + 0x3a, 0x1d, 0xb8, 0x59, 0x1a, 0x7c, 0x32, 0x61, 0xb0, 0xee, 0x80, 0x7e, 0x74, 0x5b, 0x4e, 0x02, + 0xf0, 0x03, 0xf0, 0x66, 0x05, 0xe0, 0xca, 0xae, 0x49, 0x82, 0xa0, 0x65, 0x0c, 0x0c, 0x93, 0x2a, + 0xc0, 0xec, 0xc6, 0x32, 0x37, 0x4e, 0x9f, 0x00, 0xe4, 0xa7, 0x6b, 0xb0, 0xa8, 0xc0, 0x4c, 0xf8, + 0x70, 0x45, 0xdc, 0xe3, 0x6b, 0x1a, 0x34, 0x0c, 0xd7, 0xf5, 0x42, 0x43, 0x3d, 0x32, 0x25, 0x55, + 0x27, 0x27, 0x0f, 0xd7, 0xd2, 0x72, 0x8c, 0x27, 0xe5, 0x21, 0xa1, 0xe4, 0x60, 0xb5, 0x39, 0x97, + 0x5e, 0x84, 0xb9, 0x74, 0xad, 0x13, 0x69, 0xba, 0x2d, 0xb8, 0xa8, 0xb4, 0x8a, 0x1d, 0xc1, 0xb4, + 0xb6, 0x88, 0xb9, 0x1d, 0x9c, 0x64, 0x1c, 0x9b, 0x54, 0xb2, 0x96, 0x40, 0x94, 0xa7, 0x0d, 0x9e, + 0x86, 0x89, 0x1d, 0x3b, 0xb0, 0xa3, 0x48, 0x04, 0x0a, 0x8c, 0x97, 0x79, 0x32, 0x8e, 0xf2, 0xf5, + 0x97, 0xe0, 0x9c, 0x0a, 0x83, 0x31, 0xd1, 0xdb, 0xdd, 0x93, 0xb4, 0x62, 0x15, 0x9e, 0x54, 0x20, + 0xe4, 0xde, 0x9f, 0x3c, 0x09, 0xb8, 0x6f, 0xd5, 0x23, 0x9e, 0x27, 0x6e, 0xdf, 0x7c, 0x4f, 0x83, + 0x47, 0x49, 0x11, 0xd9, 0x09, 0xbe, 0xf1, 0xa1, 0xaa, 0x74, 0x51, 0x48, 0xd7, 0x22, 0x7a, 0x57, + 0x51, 0x36, 0x2e, 0x6e, 0x1a, 0xba, 0x9f, 0x78, 0xd7, 0xa3, 0x56, 0x49, 0x9b, 0xcc, 0x99, 0xe5, + 0xc3, 0x5e, 0xf5, 0x40, 0x3e, 0xd4, 0x03, 0x31, 0x97, 0x95, 0xae, 0x79, 0xe7, 0xd0, 0x86, 0x70, + 0x12, 0x15, 0x5f, 0x58, 0xe2, 0x41, 0xdf, 0xd2, 0xe0, 0xbc, 0x93, 0xb3, 0xbe, 0xc4, 0xc6, 0x7f, + 0xf7, 0x61, 0xac, 0x5d, 0x6e, 0x78, 0xcf, 0xcb, 0xc1, 0xb9, 0x6d, 0x41, 0x7f, 0xa7, 0xf0, 0x42, + 0xf1, 0x58, 0x85, 0x67, 0xd5, 0x8e, 0x5a, 0x00, 0x25, 0xee, 0x16, 0xff, 0x12, 0x34, 0xbc, 0x98, + 0x2d, 0x88, 0x4b, 0xe0, 0x37, 0xab, 0xb6, 0x4e, 0xe1, 0x34, 0xfc, 0x28, 0x53, 0x49, 0xc0, 0x2a, + 0x42, 0xf4, 0x15, 0x0d, 0x90, 0x95, 0xd9, 0x3e, 0xc4, 0x71, 0x2a, 0x3e, 0xfd, 0x4d, 0x92, 0x9f, + 0xdd, 0x64, 0xd3, 0x71, 0x4e, 0x2b, 0xf4, 0x7f, 0x31, 0xc1, 0x05, 0x75, 0x66, 0x3a, 0x37, 0x61, + 0x7c, 0x83, 0xe9, 0xba, 0x82, 0x19, 0x94, 0xd7, 0xac, 0xb9, 0xca, 0xcc, 0x35, 0x51, 0xfe, 0x1f, + 0x0b, 0xd0, 0x68, 0x09, 0x60, 0xc3, 0xf1, 0xcc, 0xed, 0x56, 0xa7, 0x8d, 0x23, 0x21, 0x88, 0x2d, + 0xc0, 0xa6, 0x4c, 0xc5, 0x4a, 0x09, 0xf4, 0x11, 0x18, 0xb1, 0xa4, 0x7a, 0xf4, 0x7c, 0x15, 0xcd, + 0x30, 0x76, 0xdb, 0xa7, 0xcb, 0x8d, 0x42, 0x45, 0x1e, 0xd4, 0x5d, 0x21, 0x0b, 0x8b, 0xc5, 0x55, + 0xfe, 0xd9, 0x1a, 0x29, 0x54, 0x4b, 0x59, 0x3e, 0x4a, 0xc1, 0x12, 0x09, 0x45, 0x28, 0x95, 0xdd, + 0xb1, 0x8a, 0x08, 0xa5, 0xa6, 0x7b, 0x98, 0x1d, 0x62, 0x4d, 0xd5, 0x5b, 0xc7, 0x8f, 0xaf, 0xb7, + 0x4e, 0x17, 0xea, 0xac, 0x9b, 0x30, 0x1e, 0xf2, 0xa7, 0xf3, 0x27, 0x2a, 0x78, 0x5f, 0xd1, 0x0e, + 0xb0, 0xb7, 0xf5, 0x63, 0x99, 0x5d, 0x3c, 0xbc, 0x2f, 0xa0, 0x53, 0x6a, 0xdc, 0x61, 0xaf, 0x8a, + 0x89, 0xd0, 0x82, 0xe5, 0xa9, 0x91, 0x3f, 0x4e, 0xc6, 0xa9, 0x91, 0xff, 0xc7, 0x02, 0x34, 0xda, + 0xa6, 0x9a, 0x18, 0xdf, 0x1f, 0x45, 0x20, 0x84, 0xe5, 0xaa, 0x2b, 0x32, 0x88, 0x9c, 0xff, 0xf9, + 0x17, 0x96, 0x08, 0x90, 0x09, 0x13, 0xc2, 0xf4, 0x21, 0xe2, 0x63, 0x3f, 0x5f, 0xe5, 0x8d, 0x82, + 0xe8, 0xcd, 0x3d, 0x7e, 0x25, 0x39, 0x82, 0xac, 0xff, 0xfb, 0x51, 0x6e, 0xb5, 0xfa, 0x29, 0xfa, + 0xcb, 0xf5, 0xa0, 0x1e, 0x01, 0xab, 0x64, 0x06, 0x8c, 0x9e, 0x7a, 0xe1, 0x03, 0x2a, 0x1f, 0x7e, + 0x91, 0xc0, 0x51, 0x2b, 0xef, 0xaa, 0x91, 0x12, 0x7e, 0xed, 0x58, 0xd7, 0x8c, 0xf2, 0x1d, 0x4b, + 0x46, 0x4b, 0x39, 0x96, 0xbc, 0x00, 0xb3, 0x91, 0xef, 0x9d, 0x45, 0xd8, 0xd1, 0x96, 0xf0, 0x4e, + 0x67, 0x57, 0x6c, 0x5b, 0xc9, 0x2c, 0x9c, 0x2e, 0x8b, 0xbe, 0xad, 0xc1, 0x9b, 0xb9, 0x67, 0x7c, + 0x8b, 0x6e, 0x65, 0xec, 0xdd, 0x35, 0x12, 0x3f, 0xf4, 0x16, 0x3b, 0x5d, 0x8c, 0x9f, 0xd8, 0xe9, + 0xe2, 0xca, 0xc1, 0xfe, 0xe2, 0x9b, 0x5b, 0xc7, 0x80, 0x8d, 0x8f, 0xd5, 0x02, 0xfd, 0x26, 0x4c, + 0xca, 0x25, 0x8c, 0x2e, 0x2b, 0x02, 0x7b, 0xcc, 0x65, 0x6f, 0x92, 0x3d, 0x2e, 0xbd, 0x2f, 0x26, + 0xa4, 0x77, 0xae, 0xbf, 0xbd, 0x4c, 0x13, 0x84, 0x20, 0xaf, 0xff, 0x27, 0x8d, 0xd3, 0xac, 0x78, + 0xa3, 0xd0, 0x80, 0x46, 0x9f, 0x47, 0x9e, 0x63, 0x17, 0x03, 0xb5, 0xf2, 0x57, 0x12, 0x57, 0x63, + 0x30, 0x58, 0x85, 0x89, 0x76, 0xb3, 0x0f, 0x69, 0x5e, 0xaf, 0xc8, 0x5f, 0x8e, 0xfd, 0x9e, 0x26, + 0xca, 0xd6, 0x51, 0x5f, 0x20, 0xd4, 0x0e, 0x7f, 0x81, 0xf0, 0xe8, 0x17, 0xa4, 0xf4, 0xef, 0x8d, + 0x40, 0xee, 0xeb, 0x01, 0x48, 0x87, 0x71, 0x7e, 0xc7, 0x41, 0x7d, 0x62, 0x94, 0x5f, 0x80, 0xc0, + 0x22, 0x07, 0xf9, 0x70, 0x5e, 0x5c, 0x20, 0xb8, 0x49, 0xf6, 0xe2, 0xa7, 0x2d, 0xc5, 0x42, 0x3e, + 0xbe, 0x1b, 0x31, 0x0b, 0x49, 0xd5, 0x4d, 0x41, 0xc2, 0xb9, 0xb0, 0xd1, 0x1d, 0x7e, 0xa3, 0xc7, + 0xb5, 0x58, 0xd0, 0x96, 0x98, 0xdc, 0xc4, 0x1d, 0xc5, 0x47, 0xa3, 0x1b, 0x3d, 0x99, 0x02, 0x38, + 0xbf, 0x1e, 0xda, 0x01, 0xd4, 0x37, 0x76, 0xd3, 0xd0, 0x2a, 0x04, 0x2d, 0x5f, 0xcd, 0x40, 0xc3, + 0x39, 0x18, 0xe8, 0xfa, 0x37, 0x4c, 0x93, 0x0c, 0x42, 0x62, 0xf1, 0x61, 0x8d, 0x2e, 0xc9, 0xb3, + 0xf5, 0xbf, 0x9c, 0xcc, 0xc2, 0xe9, 0xb2, 0xcc, 0x95, 0x9f, 0xe9, 0x03, 0xaf, 0x13, 0x27, 0x13, + 0xd6, 0xd6, 0x87, 0xec, 0xca, 0xcf, 0x71, 0x1c, 0x7e, 0x52, 0xf3, 0x21, 0xb8, 0xc8, 0x8a, 0x2d, + 0x5b, 0x4c, 0x05, 0x08, 0x88, 0xb5, 0x6c, 0x59, 0xec, 0x7a, 0x5d, 0xd5, 0xa7, 0x41, 0xf5, 0x7f, + 0x56, 0x83, 0x59, 0x06, 0xbb, 0xb5, 0x8c, 0x85, 0x95, 0x02, 0xb5, 0x23, 0xf7, 0x41, 0x0e, 0x75, + 0x29, 0xed, 0x3e, 0x78, 0x99, 0x57, 0xf0, 0x09, 0xe3, 0xeb, 0x86, 0x13, 0x44, 0x35, 0x13, 0xfe, + 0x84, 0x3e, 0x20, 0xc7, 0x08, 0x42, 0xfe, 0x52, 0x53, 0xc4, 0x5c, 0x4b, 0xb8, 0x13, 0x32, 0xfa, + 0xbc, 0x95, 0x81, 0x84, 0x73, 0xa0, 0x47, 0x38, 0x5b, 0x5e, 0x7f, 0xe0, 0x10, 0x89, 0xb3, 0x56, + 0x1e, 0x67, 0x12, 0x12, 0xce, 0x81, 0xae, 0x7f, 0x49, 0x83, 0xb9, 0xf4, 0x80, 0xa0, 0x7b, 0x50, + 0xf7, 0xc5, 0xa0, 0x08, 0xfa, 0x5e, 0x2d, 0x4f, 0x1d, 0x39, 0x23, 0x2d, 0x9e, 0x0b, 0x11, 0x5f, + 0x58, 0x22, 0xd3, 0xff, 0xfe, 0x08, 0x2c, 0x14, 0x55, 0x42, 0xbf, 0xae, 0xc1, 0x45, 0x33, 0xde, + 0xf7, 0x96, 0x87, 0xe1, 0x96, 0xe7, 0xdb, 0xa1, 0x4d, 0xa2, 0x87, 0x88, 0xdb, 0x15, 0x1a, 0x29, + 0xe9, 0x87, 0x07, 0xef, 0x68, 0xe5, 0xe2, 0xc1, 0x05, 0xf8, 0xd1, 0x27, 0x01, 0xb6, 0xe3, 0x80, + 0x58, 0xb5, 0x0a, 0x6f, 0x9b, 0xb2, 0xd6, 0x28, 0x51, 0xb3, 0xa2, 0x56, 0x31, 0x25, 0x4c, 0x49, + 0x57, 0xf0, 0xb1, 0x97, 0x55, 0x83, 0xad, 0x9b, 0x64, 0x6f, 0x60, 0xd8, 0x7e, 0xa5, 0x97, 0x55, + 0xf9, 0x72, 0xee, 0xde, 0x10, 0xb0, 0x92, 0xd8, 0x95, 0x74, 0x05, 0x9f, 0xfe, 0xcb, 0x35, 0x78, + 0xa4, 0xa0, 0xd5, 0x05, 0xab, 0x48, 0xfb, 0xbf, 0x6e, 0x15, 0xfd, 0x40, 0x83, 0x49, 0x36, 0x06, + 0xaf, 0x17, 0x8f, 0x3d, 0xd6, 0xd8, 0x82, 0x33, 0xb5, 0x3f, 0xd0, 0x60, 0x3e, 0x13, 0x54, 0xe8, + 0x18, 0xbc, 0xfa, 0x0c, 0x4f, 0x96, 0x9e, 0x4a, 0xbf, 0xc2, 0xd9, 0xc8, 0x8d, 0x36, 0xf6, 0x0a, + 0x4c, 0x27, 0x4e, 0xd4, 0xe4, 0x4d, 0x72, 0x2d, 0xf7, 0x26, 0xb9, 0x7a, 0x51, 0xbc, 0x76, 0xe8, + 0x45, 0x71, 0x49, 0xf3, 0xd9, 0xb5, 0xf2, 0xff, 0x0c, 0xcd, 0xff, 0xd3, 0x19, 0x41, 0xf3, 0xcc, + 0x3a, 0xf5, 0x31, 0x18, 0x67, 0x37, 0xda, 0x23, 0x5e, 0xfc, 0xde, 0xf2, 0x57, 0xe5, 0x03, 0x2e, + 0xf9, 0xf2, 0xff, 0x58, 0x80, 0x45, 0x6d, 0x98, 0x33, 0x1d, 0x6f, 0x68, 0xad, 0xf9, 0xde, 0xa6, + 0xed, 0x90, 0xdb, 0xb1, 0x90, 0x2d, 0x23, 0xf3, 0xb4, 0x52, 0xf9, 0x38, 0x53, 0x03, 0x75, 0x55, + 0x7b, 0xd5, 0x7b, 0xca, 0x9e, 0xb0, 0xf3, 0x60, 0xab, 0xd2, 0x4e, 0xe5, 0x03, 0x90, 0x88, 0x7c, + 0x23, 0x47, 0xe7, 0x17, 0x4b, 0x46, 0x1d, 0x92, 0xab, 0x20, 0x12, 0x0f, 0x65, 0x52, 0x80, 0x15, + 0x2c, 0x28, 0x80, 0xc6, 0x56, 0xfc, 0x84, 0xa8, 0xb0, 0x56, 0xbd, 0x54, 0xf5, 0xfd, 0x52, 0xae, + 0x97, 0x29, 0x09, 0x58, 0xc5, 0x82, 0x02, 0xbe, 0xcd, 0x71, 0x0d, 0xbd, 0xd2, 0x7b, 0x73, 0xb1, + 0xee, 0x1f, 0xf7, 0x34, 0x4e, 0xc3, 0x0a, 0x1a, 0x8a, 0xd4, 0x95, 0x81, 0x29, 0x84, 0x61, 0xb6, + 0x1c, 0xd2, 0x38, 0xbe, 0x45, 0x8c, 0x34, 0x4e, 0xc3, 0x0a, 0x1a, 0x3a, 0xbc, 0xfd, 0x38, 0x1c, + 0x89, 0xb0, 0x71, 0xbd, 0x54, 0x35, 0x2e, 0x8c, 0x50, 0x7b, 0xe3, 0x04, 0xac, 0x62, 0x41, 0x1e, + 0x40, 0x5f, 0x86, 0x29, 0x11, 0x06, 0xaf, 0x72, 0x3d, 0x8d, 0xa3, 0x9d, 0xf0, 0xad, 0x3b, 0xfe, + 0xc6, 0x0a, 0x0a, 0xb4, 0xad, 0xd8, 0x3b, 0xa1, 0x82, 0x29, 0xe8, 0x58, 0xb6, 0xce, 0x77, 0xc5, + 0x4a, 0x74, 0x83, 0xad, 0xdb, 0xc7, 0x14, 0x05, 0xfa, 0xc1, 0xfe, 0xe2, 0x14, 0x63, 0x26, 0x19, + 0x85, 0x3a, 0x76, 0x22, 0x98, 0x3a, 0xcc, 0x89, 0x00, 0x5d, 0x87, 0xf9, 0x40, 0xf5, 0xbf, 0x63, + 0x0c, 0x62, 0x9a, 0x55, 0x91, 0x81, 0x6d, 0xba, 0xe9, 0x02, 0x38, 0x5b, 0x87, 0xef, 0x02, 0xc4, + 0x62, 0xf5, 0x67, 0xd4, 0x5d, 0x80, 0xa7, 0x61, 0x99, 0x9b, 0x79, 0x5a, 0x7d, 0xf6, 0xac, 0x9e, + 0x56, 0xff, 0xa4, 0xfa, 0x96, 0xf6, 0x5c, 0x05, 0xdf, 0xf7, 0x32, 0x8f, 0x69, 0xa7, 0x1f, 0x76, + 0x9f, 0x3f, 0xa3, 0x87, 0xdd, 0x51, 0x0b, 0xe6, 0x89, 0xfa, 0xc8, 0x3d, 0x9b, 0x21, 0x14, 0xdb, + 0x13, 0x57, 0xd2, 0x99, 0x38, 0x5b, 0x1e, 0x7d, 0x41, 0x83, 0x39, 0xfe, 0x9e, 0x07, 0xdd, 0xce, + 0x3c, 0x97, 0xb8, 0x61, 0xb0, 0x70, 0xae, 0x42, 0xa0, 0xb8, 0x6e, 0x0a, 0x98, 0x30, 0xad, 0xa4, + 0x52, 0x71, 0x06, 0xa9, 0xfe, 0xaf, 0x34, 0x00, 0xa9, 0x3e, 0x93, 0x33, 0xb0, 0x29, 0x90, 0x84, + 0x4d, 0xa1, 0x55, 0x4d, 0xdf, 0x27, 0x85, 0xb7, 0x57, 0xfe, 0x58, 0x83, 0x99, 0xb8, 0xd8, 0x19, + 0x08, 0xc4, 0x56, 0x52, 0x20, 0x7e, 0x5f, 0xc5, 0x8e, 0x15, 0x48, 0xc5, 0xff, 0xbb, 0xa6, 0x76, + 0x8b, 0xc9, 0x3c, 0xf7, 0x14, 0x4b, 0x3a, 0xb7, 0xdd, 0x77, 0x4e, 0xed, 0xd1, 0xf4, 0xb8, 0xc7, + 0x39, 0x96, 0xf5, 0x4f, 0x25, 0x04, 0x8e, 0x2a, 0x97, 0x5f, 0xa4, 0x74, 0x11, 0xe1, 0xe6, 0x43, + 0x70, 0x94, 0xf4, 0xe1, 0xab, 0x0c, 0x88, 0xfb, 0xa3, 0x2f, 0x97, 0xbc, 0x70, 0xa1, 0x74, 0xf9, + 0xf0, 0x37, 0xfc, 0xbf, 0x31, 0x05, 0x0d, 0xc5, 0xdc, 0xf4, 0x53, 0x39, 0x3b, 0x19, 0x42, 0xc3, + 0xf4, 0xdc, 0x20, 0xf4, 0x0d, 0x25, 0xc2, 0x42, 0x55, 0xa4, 0x92, 0xf3, 0xb5, 0x62, 0xd0, 0x58, + 0xc5, 0x43, 0xf7, 0x69, 0x49, 0x68, 0x23, 0xa7, 0x71, 0x64, 0x73, 0x18, 0x71, 0xbd, 0x13, 0x20, + 0x92, 0xf9, 0x08, 0x7f, 0x8c, 0xa0, 0x1e, 0x47, 0xc6, 0xee, 0x04, 0x37, 0x64, 0x1e, 0x56, 0xca, + 0xa1, 0xd7, 0x60, 0xda, 0x51, 0x63, 0xe2, 0x0a, 0x89, 0xb4, 0x9c, 0x1b, 0x64, 0x22, 0xba, 0x2e, + 0x77, 0xc2, 0x4b, 0x24, 0xe1, 0x24, 0x2e, 0xb4, 0x0d, 0x93, 0x4e, 0x14, 0xc8, 0x59, 0x88, 0xa5, + 0x2f, 0x96, 0x46, 0xcc, 0xa0, 0xf0, 0x13, 0x56, 0xf9, 0x89, 0x63, 0xf8, 0x94, 0xee, 0xe4, 0x47, + 0xb5, 0x53, 0xd6, 0x18, 0x9b, 0xa4, 0x3b, 0x99, 0x14, 0x60, 0x05, 0x4b, 0xc1, 0x29, 0x58, 0xbd, + 0xd4, 0x29, 0xd8, 0x10, 0xce, 0xf9, 0x24, 0xf4, 0xf7, 0x5a, 0x7b, 0x26, 0x8b, 0xc6, 0xee, 0x87, + 0x4c, 0x59, 0x9c, 0x2c, 0x77, 0x53, 0x1a, 0x67, 0x41, 0xe1, 0x3c, 0xf8, 0x54, 0xf5, 0xa6, 0x32, + 0x8c, 0x08, 0x54, 0xc4, 0x54, 0x6f, 0x2a, 0xe1, 0x60, 0x96, 0x8a, 0xde, 0x05, 0x8d, 0x90, 0x98, + 0x5b, 0xae, 0x6d, 0x1a, 0x4e, 0xa7, 0x2d, 0x04, 0xc4, 0x58, 0x24, 0x88, 0xb3, 0xb0, 0x5a, 0x0e, + 0x35, 0x61, 0x64, 0x68, 0x5b, 0x42, 0x32, 0xfc, 0x79, 0x69, 0x1e, 0xee, 0xb4, 0x1f, 0xec, 0x2f, + 0xbe, 0x31, 0xbe, 0x8a, 0x27, 0x7b, 0x72, 0x75, 0xb0, 0xdd, 0xbb, 0x1a, 0xee, 0x0d, 0x48, 0xb0, + 0xb4, 0xde, 0x69, 0x63, 0x5a, 0x39, 0xef, 0x54, 0x70, 0xfa, 0x04, 0xa7, 0x82, 0x5f, 0xd1, 0xe0, + 0x9c, 0x91, 0xb6, 0x6c, 0x93, 0x60, 0x61, 0xa6, 0x02, 0x57, 0xce, 0x37, 0x97, 0xc7, 0x51, 0x15, + 0x97, 0xb3, 0xf8, 0x70, 0x5e, 0x23, 0x90, 0x0f, 0xa8, 0x6f, 0xf7, 0x64, 0x78, 0x6b, 0x31, 0xd5, + 0xb3, 0xe5, 0xec, 0x02, 0xab, 0x19, 0x48, 0x38, 0x07, 0x3a, 0xda, 0x85, 0x86, 0x19, 0x5b, 0x6f, + 0xd9, 0x73, 0x68, 0xa5, 0x65, 0xab, 0x94, 0x29, 0x58, 0x04, 0x53, 0x51, 0x6c, 0xc3, 0x2a, 0x2a, + 0xfd, 0x1e, 0x64, 0xe4, 0x2e, 0x64, 0xc2, 0x04, 0x85, 0xd9, 0xbe, 0xdd, 0x15, 0x92, 0xc7, 0xf3, + 0x25, 0xb9, 0x35, 0x83, 0xc1, 0xed, 0x4c, 0xe2, 0x03, 0x47, 0x90, 0xf5, 0x5b, 0x00, 0xb1, 0xd4, + 0x5a, 0xf9, 0xbc, 0xf5, 0x3f, 0x8e, 0xc1, 0x85, 0xaa, 0xfe, 0x85, 0x2c, 0xa6, 0x35, 0x7b, 0xe7, + 0x70, 0x79, 0x33, 0x24, 0xfe, 0x9d, 0x3b, 0xab, 0xf2, 0x0d, 0xb8, 0x92, 0x41, 0xb5, 0xe3, 0x97, + 0x32, 0x33, 0x10, 0x71, 0x01, 0x26, 0x26, 0xb1, 0x8b, 0xd7, 0xa4, 0x30, 0x15, 0x2b, 0x86, 0x7e, + 0x10, 0x8a, 0x1b, 0x7b, 0x5c, 0x62, 0x4f, 0x67, 0xe2, 0x6c, 0xf9, 0x34, 0x10, 0xfe, 0xe6, 0x22, + 0xdd, 0x96, 0xb4, 0x2c, 0x10, 0xfe, 0xf0, 0x62, 0xb6, 0xbc, 0x0a, 0x84, 0xcf, 0x14, 0xd5, 0xea, + 0xc7, 0xb2, 0x40, 0x64, 0x26, 0xce, 0x96, 0x47, 0x16, 0x3c, 0xee, 0x13, 0xd3, 0xeb, 0xf7, 0x89, + 0x6b, 0xf1, 0xf7, 0x10, 0x0c, 0xbf, 0x67, 0xbb, 0xd7, 0x7c, 0x83, 0x15, 0x64, 0x3b, 0x8f, 0xd6, + 0x7c, 0xf2, 0x60, 0x7f, 0xf1, 0x71, 0x7c, 0x48, 0x39, 0x7c, 0x28, 0x14, 0xd4, 0x87, 0xd9, 0x21, + 0x8b, 0xd5, 0xea, 0x77, 0xdc, 0x90, 0xf8, 0x3b, 0x86, 0x53, 0xf2, 0x31, 0x51, 0xc6, 0xbf, 0xd6, + 0x93, 0xa0, 0x70, 0x1a, 0x36, 0xda, 0xa3, 0xdb, 0x81, 0x68, 0x8e, 0x82, 0xb2, 0x5e, 0x3e, 0xea, + 0x3b, 0xce, 0x82, 0xc3, 0x79, 0x38, 0xf4, 0xbf, 0xad, 0x81, 0xf0, 0xf8, 0xa1, 0xbb, 0x83, 0x62, + 0x5d, 0xae, 0xa7, 0x2c, 0xcb, 0x8f, 0x8b, 0x5b, 0x0d, 0xb5, 0x38, 0x57, 0xb9, 0xd1, 0xf0, 0x16, + 0xe5, 0x2a, 0xe8, 0x64, 0xbc, 0x95, 0x72, 0xc8, 0x4a, 0xbc, 0xe3, 0xff, 0x0f, 0x26, 0x06, 0xbe, + 0xdd, 0x37, 0xfc, 0x3d, 0x21, 0xd5, 0x4c, 0xf3, 0xb8, 0x56, 0xa6, 0xbf, 0x37, 0xa0, 0xe2, 0x4c, + 0x94, 0xab, 0xff, 0x50, 0x03, 0x51, 0x9b, 0x05, 0xd9, 0x3e, 0x56, 0x84, 0xe6, 0x23, 0xcf, 0xfd, + 0x95, 0x18, 0xd1, 0x23, 0x45, 0x31, 0xa2, 0x1f, 0x56, 0xc0, 0xe5, 0xef, 0x69, 0x30, 0x9b, 0xbc, + 0x97, 0x1b, 0xa0, 0xa7, 0x60, 0x42, 0xc4, 0xce, 0x10, 0xb7, 0xef, 0xf9, 0xa5, 0x24, 0x9e, 0x84, + 0xa3, 0xbc, 0xa4, 0xa9, 0xa1, 0x8a, 0xa6, 0x91, 0x7f, 0x3f, 0xf8, 0x08, 0x99, 0x7f, 0x7f, 0x06, + 0xc6, 0x79, 0xb0, 0x07, 0xf4, 0x2b, 0xb9, 0x9e, 0xf2, 0xb7, 0x2a, 0xc4, 0x93, 0x28, 0xe1, 0x10, + 0x9f, 0x88, 0x05, 0x5a, 0x3b, 0x34, 0x16, 0x68, 0x97, 0xc7, 0x80, 0xaf, 0x62, 0x69, 0x6e, 0xe1, + 0x8e, 0x78, 0xe7, 0x4c, 0xc4, 0x7f, 0x47, 0xc3, 0x84, 0x01, 0x76, 0xb4, 0xc2, 0xd6, 0xca, 0x87, + 0x40, 0x31, 0xc3, 0xce, 0x1c, 0x62, 0x82, 0x8d, 0x2f, 0xd7, 0x8f, 0x55, 0x70, 0xc6, 0x11, 0xa3, + 0x7e, 0x8c, 0xcb, 0xf5, 0x72, 0x35, 0x8d, 0x17, 0xae, 0xa6, 0x1e, 0x4c, 0x88, 0xf5, 0x20, 0xb8, + 0xe3, 0xf3, 0x55, 0x22, 0xbc, 0x2b, 0x41, 0x99, 0x78, 0x02, 0x8e, 0xa0, 0xd3, 0x3d, 0xb7, 0x6f, + 0xec, 0xda, 0xfd, 0x61, 0x9f, 0xf1, 0xc4, 0x31, 0xb5, 0x28, 0x4b, 0xc6, 0x51, 0x3e, 0x2b, 0xca, + 0xbd, 0x98, 0x98, 0x34, 0xad, 0x16, 0x15, 0x4f, 0x75, 0x46, 0xf9, 0xe8, 0xc3, 0x50, 0xef, 0x1b, + 0xbb, 0xdd, 0xa1, 0xdf, 0x23, 0xc2, 0xf2, 0x5a, 0x6c, 0xed, 0x19, 0x86, 0xb6, 0xb3, 0x44, 0xf5, + 0xc0, 0xd0, 0x5f, 0xea, 0xb8, 0xe1, 0x1d, 0xbf, 0x1b, 0xfa, 0x32, 0xec, 0xf4, 0xaa, 0x80, 0x82, + 0x25, 0x3c, 0xe4, 0xc0, 0x4c, 0xdf, 0xd8, 0x5d, 0x77, 0x0d, 0xf9, 0xa2, 0x60, 0xa3, 0x24, 0x06, + 0x76, 0x14, 0xb7, 0x9a, 0x80, 0x85, 0x53, 0xb0, 0x73, 0x4e, 0xfd, 0xa6, 0x1e, 0xd6, 0xa9, 0xdf, + 0xb2, 0xf4, 0x6d, 0x9d, 0x66, 0x64, 0xf8, 0x68, 0x9e, 0xbb, 0xd3, 0xe1, 0x6e, 0xab, 0x1f, 0x93, + 0x6e, 0xab, 0x33, 0x15, 0x8e, 0xa9, 0x0e, 0x71, 0x59, 0xdd, 0x81, 0x86, 0x65, 0x84, 0x06, 0x4f, + 0x0d, 0x16, 0x66, 0x2b, 0x98, 0xa4, 0xda, 0x12, 0x8e, 0xf2, 0x08, 0x4f, 0x0c, 0x1b, 0xab, 0x88, + 0xd0, 0x1d, 0xfe, 0xe2, 0x9c, 0x43, 0xc2, 0xb8, 0x08, 0x33, 0x90, 0xce, 0x71, 0x13, 0x78, 0xf4, + 0x3e, 0x5c, 0xa6, 0x00, 0xce, 0xaf, 0x47, 0xc5, 0x54, 0x7e, 0x1b, 0x75, 0x3e, 0x0e, 0x07, 0x97, + 0x88, 0xb8, 0xf1, 0xd7, 0xf2, 0x2c, 0xa9, 0xa8, 0x82, 0xff, 0x3e, 0xe7, 0x0f, 0x65, 0xed, 0xa9, + 0xe8, 0x1f, 0x6a, 0xb0, 0xd0, 0x2f, 0x78, 0xe3, 0x46, 0x58, 0x78, 0xd7, 0xab, 0xf0, 0x88, 0xc2, + 0x87, 0x73, 0xf8, 0xab, 0xed, 0x47, 0x95, 0xc2, 0x85, 0x8d, 0xab, 0x7a, 0xcb, 0xaa, 0x4a, 0x28, + 0x92, 0xdf, 0xd4, 0x60, 0x2e, 0xbd, 0x15, 0xa8, 0x6f, 0xe4, 0x69, 0x0f, 0xf9, 0x8d, 0x3c, 0xe5, + 0x20, 0xbf, 0x76, 0xc8, 0x41, 0xfe, 0x0b, 0x70, 0x31, 0x9f, 0x3a, 0xa8, 0x70, 0xc6, 0x5e, 0xa6, + 0x14, 0x0a, 0x51, 0x1c, 0x65, 0x9d, 0x26, 0x62, 0x9e, 0xd7, 0x5c, 0xfa, 0xfe, 0x4f, 0x9e, 0x78, + 0xc3, 0x1f, 0xfd, 0xe4, 0x89, 0x37, 0xfc, 0xe8, 0x27, 0x4f, 0xbc, 0xe1, 0xd3, 0x07, 0x4f, 0x68, + 0xdf, 0x3f, 0x78, 0x42, 0xfb, 0xa3, 0x83, 0x27, 0xb4, 0x1f, 0x1d, 0x3c, 0xa1, 0xfd, 0xdb, 0x83, + 0x27, 0xb4, 0xbf, 0xf1, 0xef, 0x9e, 0x78, 0xc3, 0x87, 0xeb, 0x51, 0xcb, 0xff, 0x4f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x98, 0x72, 0xdd, 0x6f, 0x0b, 0xca, 0x00, 0x00, } func (m *Addon) Marshal() (dAtA []byte, err error) { @@ -9019,6 +9021,16 @@ func (m *Kubernetes) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.EnableStaticTokenKubeconfig != nil { + i-- + if *m.EnableStaticTokenKubeconfig { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + } if m.VerticalPodAutoscaler != nil { { size, err := m.VerticalPodAutoscaler.MarshalToSizedBuffer(dAtA[:i]) @@ -15612,6 +15624,9 @@ func (m *Kubernetes) Size() (n int) { l = m.VerticalPodAutoscaler.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.EnableStaticTokenKubeconfig != nil { + n += 2 + } return n } @@ -18453,6 +18468,7 @@ func (this *Kubernetes) String() string { `Kubelet:` + strings.Replace(this.Kubelet.String(), "KubeletConfig", "KubeletConfig", 1) + `,`, `Version:` + fmt.Sprintf("%v", this.Version) + `,`, `VerticalPodAutoscaler:` + strings.Replace(this.VerticalPodAutoscaler.String(), "VerticalPodAutoscaler", "VerticalPodAutoscaler", 1) + `,`, + `EnableStaticTokenKubeconfig:` + valueToStringGenerated(this.EnableStaticTokenKubeconfig) + `,`, `}`, }, "") return s @@ -30957,6 +30973,27 @@ func (m *Kubernetes) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnableStaticTokenKubeconfig", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.EnableStaticTokenKubeconfig = &b default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) 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 16f8be1f3..df8363af5 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 @@ -1192,6 +1192,11 @@ message Kubernetes { // VerticalPodAutoscaler contains the configuration flags for the Kubernetes vertical pod autoscaler. // +optional optional VerticalPodAutoscaler verticalPodAutoscaler = 9; + + // EnableStaticTokenKubeconfig indicates whether static token kubeconfig secret should be present in garden cluster + // (default: true). + // +optional + optional bool enableStaticTokenKubeconfig = 10; } // KubernetesConfig contains common configuration fields for the control plane components. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go index c266c7413..d19eff942 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go @@ -41,6 +41,15 @@ type SecretBinding struct { Provider *SecretBindingProvider `json:"provider,omitempty" protobuf:"bytes,4,opt,name=provider"` } +// GetProviderType gets the type of the provider. +func (sb *SecretBinding) GetProviderType() string { + if sb.Provider == nil { + return "" + } + + return sb.Provider.Type +} + // SecretBindingProvider defines the provider type of the SecretBinding. type SecretBindingProvider struct { // Type is the type of the provider. 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 3c19c2a6c..30f9b6d40 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 @@ -448,6 +448,10 @@ type Kubernetes struct { // VerticalPodAutoscaler contains the configuration flags for the Kubernetes vertical pod autoscaler. // +optional VerticalPodAutoscaler *VerticalPodAutoscaler `json:"verticalPodAutoscaler,omitempty" protobuf:"bytes,9,opt,name=verticalPodAutoscaler"` + // EnableStaticTokenKubeconfig indicates whether static token kubeconfig secret should be present in garden cluster + // (default: true). + // +optional + EnableStaticTokenKubeconfig *bool `json:"enableStaticTokenKubeconfig,omitempty" protobuf:"varint,10,opt,name=enableStaticTokenKubeconfig"` } // ClusterAutoscaler contains the configuration flags for the Kubernetes cluster autoscaler. 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 978813961..e75a7f48f 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 @@ -3378,6 +3378,7 @@ func autoConvert_v1alpha1_Kubernetes_To_core_Kubernetes(in *Kubernetes, out *cor out.Kubelet = (*core.KubeletConfig)(unsafe.Pointer(in.Kubelet)) out.Version = in.Version out.VerticalPodAutoscaler = (*core.VerticalPodAutoscaler)(unsafe.Pointer(in.VerticalPodAutoscaler)) + out.EnableStaticTokenKubeconfig = (*bool)(unsafe.Pointer(in.EnableStaticTokenKubeconfig)) return nil } @@ -3396,6 +3397,7 @@ func autoConvert_core_Kubernetes_To_v1alpha1_Kubernetes(in *core.Kubernetes, out out.Kubelet = (*KubeletConfig)(unsafe.Pointer(in.Kubelet)) out.Version = in.Version out.VerticalPodAutoscaler = (*VerticalPodAutoscaler)(unsafe.Pointer(in.VerticalPodAutoscaler)) + out.EnableStaticTokenKubeconfig = (*bool)(unsafe.Pointer(in.EnableStaticTokenKubeconfig)) return nil } 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 91bd522a4..ff64b7faf 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 @@ -2088,6 +2088,11 @@ func (in *Kubernetes) DeepCopyInto(out *Kubernetes) { *out = new(VerticalPodAutoscaler) (*in).DeepCopyInto(*out) } + if in.EnableStaticTokenKubeconfig != nil { + in, out := &in.EnableStaticTokenKubeconfig, &out.EnableStaticTokenKubeconfig + *out = new(bool) + **out = **in + } return } 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 9d89718b1..c78ceb318 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 @@ -15,6 +15,11 @@ package constants const ( + // SecretManagerIdentityControllerManager is the identity for the secret manager used inside controller-manager. + SecretManagerIdentityControllerManager = "controller-manager" + // SecretManagerIdentityGardenlet is the identity for the secret manager used inside gardenlet. + SecretManagerIdentityGardenlet = "gardenlet" + // SecretNameCACluster is a constant for the name of a Kubernetes secret object that contains the CA // certificate of a shoot cluster. SecretNameCACluster = "ca" @@ -33,6 +38,10 @@ const ( // SecretNameCAVPN is a constant for the name of a Kubernetes secret object that contains the CA // certificate of the VPN components of a shoot cluster. SecretNameCAVPN = "ca-vpn" + // SecretNameCASeed is a constant for the name of a Kubernetes secret object that contains the CA + // certificate generated for a seed cluster. + SecretNameCASeed = "ca-seed" + // SecretNameCloudProvider is a constant for the name of a Kubernetes secret object that contains the provider // specific credentials that shall be used to create/delete the shoot. SecretNameCloudProvider = "cloudprovider" @@ -40,8 +49,11 @@ const ( // (public and private key) that can be used to SSH into the shoot nodes. SecretNameSSHKeyPair = "ssh-keypair" // 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 + // PEM-encoded private RSA or ECDSA key used by the Kube Controller Manager to sign service account tokens. SecretNameServiceAccountKey = "service-account-key" + // SecretNameObservabilityIngress is a constant for the name of a Kubernetes secret object that contains the ingress + // credentials for observability components. + SecretNameObservabilityIngress = "observability-ingress" // SecretNameGardener is a constant for the name of a Kubernetes secret object that contains the client // certificate and a kubeconfig for a shoot cluster. It is used by Gardener and can be used by extension diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults.go index f2a74c4b1..cc7bce461 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/defaults.go @@ -187,6 +187,10 @@ func SetDefaults_Shoot(obj *Shoot) { obj.Spec.Kubernetes.KubeProxy.Enabled = pointer.Bool(true) } + if obj.Spec.Kubernetes.EnableStaticTokenKubeconfig == nil { + obj.Spec.Kubernetes.EnableStaticTokenKubeconfig = pointer.Bool(true) + } + if obj.Spec.Addons == nil { obj.Spec.Addons = &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 01e5473d7..72cc7d579 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 @@ -4423,14 +4423,14 @@ func init() { } var fileDescriptor_ca37af0df9a5bbd2 = []byte{ - // 10048 bytes of a gzipped FileDescriptorProto + // 10076 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, + 0x18, 0x0e, 0x1c, 0x41, 0x92, 0x13, 0xcb, 0x30, 0x1c, 0x27, 0x70, 0x20, 0x2b, 0x09, 0xac, 0xc4, + 0xf9, 0x40, 0x0c, 0x07, 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, @@ -4475,7 +4475,7 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0x4a, 0x0c, 0x5b, 0x7d, 0x56, 0xd0, 0x9a, 0xe0, 0xbf, 0xb1, 0xa0, 0xa2, 0xfe, 0x91, 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, @@ -4502,10 +4502,10 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0xbc, 0x59, 0xc7, 0xd7, 0x5c, 0xff, 0x96, 0xd9, 0x23, 0x42, 0xe2, 0xfc, 0xb9, 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, + 0xea, 0xfd, 0x57, 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, @@ -4526,7 +4526,7 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0xf3, 0xe9, 0xa1, 0xbf, 0xa6, 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, @@ -4535,7 +4535,7 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0xe0, 0xb0, 0x36, 0xfa, 0x8b, 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, @@ -4561,11 +4561,11 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0xf5, 0xa9, 0xe3, 0xfb, 0xea, 0x1c, 0xb6, 0xfa, 0x07, 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, + 0x25, 0xb1, 0x32, 0x87, 0x68, 0x53, 0x6e, 0x8d, 0xe3, 0xc8, 0xd4, 0x3f, 0x55, 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, @@ -4619,7 +4619,7 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0x64, 0x53, 0x74, 0x43, 0x94, 0xe1, 0x10, 0xaa, 0xfe, 0x93, 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, @@ -4628,10 +4628,10 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0x70, 0xf5, 0xef, 0x29, 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, + 0x66, 0xc0, 0x03, 0xf4, 0xbe, 0xff, 0x51, 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, @@ -4643,7 +4643,7 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0x0c, 0xc7, 0xfb, 0x81, 0xfe, 0x86, 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, @@ -4705,353 +4705,355 @@ var fileDescriptor_ca37af0df9a5bbd2 = []byte{ 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, + 0x97, 0x82, 0xa3, 0x3a, 0x04, 0x7b, 0xfd, 0xf1, 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, + 0x5f, 0x79, 0xa3, 0x7a, 0x52, 0xfc, 0x95, 0x37, 0xaa, 0x43, 0xf0, 0xd7, 0x9f, 0x24, 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, + 0x6c, 0x40, 0xda, 0xad, 0x26, 0xa6, 0x38, 0xd4, 0xbf, 0x3d, 0x05, 0xd2, 0xd5, 0x22, 0x6a, 0xb7, + 0x69, 0x96, 0xe5, 0xdc, 0x69, 0xbb, 0xe6, 0x8e, 0x69, 0x91, 0x2e, 0x31, 0xc2, 0xbb, 0x27, 0x9e, + 0x38, 0x0c, 0x67, 0x8a, 0x64, 0x2d, 0xaf, 0x12, 0xce, 0x6f, 0x4f, 0xed, 0xf2, 0x79, 0x3d, 0x79, + 0xf1, 0x73, 0x94, 0x03, 0xbd, 0xd4, 0x2d, 0x52, 0xbe, 0x9e, 0x52, 0xc5, 0x38, 0x4d, 0x16, 0xfd, + 0xb4, 0xc2, 0x1d, 0x0e, 0xa1, 0x77, 0x55, 0xcc, 0xd9, 0xd5, 0x63, 0x3a, 0x8f, 0x88, 0x3c, 0x17, + 0x91, 0xff, 0x36, 0x4e, 0x90, 0x5a, 0x86, 0x67, 0xb7, 0xb3, 0xfc, 0xa4, 0x62, 0x66, 0x6f, 0x16, + 0xed, 0x4a, 0x8e, 0xe3, 0x95, 0x1f, 0x1e, 0x67, 0x56, 0xc0, 0xd9, 0x1d, 0x09, 0x47, 0x29, 0x74, + 0x1d, 0x09, 0x21, 0x50, 0x78, 0x94, 0x12, 0x3e, 0xa8, 0x68, 0x94, 0x42, 0x00, 0x8e, 0x13, 0x44, + 0x7d, 0x98, 0xda, 0x0e, 0xfc, 0x75, 0xc2, 0xbe, 0x6f, 0x14, 0xa5, 0x2e, 0x39, 0xfd, 0xf8, 0x21, + 0x75, 0x58, 0x88, 0x23, 0x22, 0x68, 0x0b, 0x26, 0xb7, 0xb9, 0x20, 0x12, 0x76, 0x79, 0x6d, 0x64, + 0xbb, 0x81, 0x9b, 0x87, 0xa2, 0x08, 0x07, 0xe8, 0xe5, 0x20, 0x95, 0xca, 0x7d, 0x62, 0x93, 0xbe, + 0xaa, 0xc0, 0xd9, 0x1d, 0xe2, 0xfa, 0xa6, 0x9e, 0xf4, 0x52, 0x4f, 0x15, 0xb7, 0x6d, 0x6e, 0x67, + 0x21, 0xe4, 0x6c, 0x92, 0x09, 0xc2, 0xd9, 0x5d, 0xa0, 0x96, 0x0e, 0x77, 0x36, 0x76, 0x7c, 0xcd, + 0x37, 0xf5, 0x5b, 0xce, 0x36, 0xb1, 0xe9, 0xc7, 0x8a, 0xb4, 0x8a, 0xc0, 0x04, 0x07, 0xb3, 0x74, + 0x56, 0xf2, 0xab, 0xe1, 0xc3, 0x70, 0xa8, 0x3f, 0x54, 0x20, 0xe5, 0x6e, 0x43, 0x3f, 0xaf, 0xc0, + 0xf4, 0x26, 0xd1, 0xfc, 0x81, 0x4b, 0xae, 0x6a, 0x7e, 0x18, 0xab, 0x7c, 0xfb, 0x38, 0xbc, 0x7c, + 0xcb, 0x57, 0x24, 0xc4, 0xfc, 0x3c, 0x31, 0x4c, 0x60, 0x20, 0x83, 0x70, 0xac, 0x07, 0x8b, 0x2f, + 0xc3, 0x7c, 0xaa, 0xe1, 0x91, 0x8e, 0x7d, 0xfe, 0xb9, 0xf0, 0xd6, 0x26, 0x73, 0x6a, 0xbe, 0x05, + 0x65, 0xcd, 0x30, 0xc2, 0x8c, 0x5d, 0xcf, 0x17, 0x3b, 0x37, 0x37, 0xe4, 0x90, 0x70, 0xf6, 0x13, + 0x73, 0xb4, 0xe8, 0x0a, 0x20, 0x2d, 0x76, 0x38, 0xb6, 0x1a, 0x45, 0xcc, 0x32, 0x2f, 0x7f, 0x2d, + 0x05, 0xc5, 0x19, 0x2d, 0xd4, 0x17, 0x61, 0x36, 0x7e, 0x87, 0xf5, 0x08, 0x11, 0x78, 0xea, 0x5f, + 0x56, 0x00, 0xa5, 0xf3, 0x65, 0x20, 0x17, 0x2a, 0xa2, 0x46, 0x30, 0xc5, 0x85, 0x1c, 0xb9, 0xc9, + 0xd8, 0xc0, 0x28, 0x26, 0x5f, 0x14, 0x78, 0x38, 0xa4, 0xa3, 0xfe, 0xa9, 0x02, 0x51, 0x4a, 0x20, + 0xf4, 0x31, 0xa8, 0x1a, 0xc4, 0xd3, 0x5d, 0xb3, 0xef, 0x47, 0xdf, 0x11, 0xe6, 0x3a, 0x68, 0x46, + 0x20, 0x2c, 0xd7, 0x43, 0x2a, 0x4c, 0xf8, 0x9a, 0xb7, 0xdd, 0x6a, 0x0a, 0x8b, 0x94, 0xe9, 0x0f, + 0xb7, 0x58, 0x09, 0x16, 0x90, 0xe8, 0x3e, 0xe8, 0xd8, 0x10, 0xf7, 0x41, 0xd1, 0xe6, 0x31, 0x5c, + 0x7e, 0x45, 0xf7, 0xbf, 0xf8, 0xaa, 0xfe, 0x61, 0x09, 0xe2, 0x59, 0x98, 0x8a, 0x0e, 0x41, 0xfa, + 0xb6, 0x6e, 0xe9, 0xc4, 0x6e, 0xeb, 0x7e, 0x98, 0xa5, 0x30, 0xe4, 0x39, 0x67, 0xf9, 0x99, 0x98, + 0x9c, 0x78, 0x90, 0x67, 0x8c, 0x0d, 0x6b, 0xa0, 0xe7, 0x59, 0xbc, 0x9c, 0x1f, 0xd8, 0xe9, 0x1f, + 0x0a, 0x96, 0x05, 0x15, 0x40, 0xe4, 0x9e, 0xb8, 0x8f, 0x1c, 0x7e, 0x3f, 0x2b, 0xc5, 0xbc, 0x05, + 0xfa, 0x98, 0x08, 0xaf, 0x2c, 0xc7, 0xee, 0x4c, 0x07, 0x17, 0xad, 0xe7, 0x63, 0x0d, 0xa3, 0x98, + 0x4b, 0xf5, 0xaf, 0x2b, 0x30, 0x29, 0x92, 0x9f, 0x0c, 0x11, 0xa1, 0xb9, 0x09, 0x65, 0x66, 0x07, + 0x8c, 0xa2, 0x22, 0x75, 0xb6, 0x1c, 0xc7, 0x8f, 0xa5, 0x80, 0x61, 0x61, 0x81, 0xec, 0x5f, 0xcc, + 0xd1, 0xab, 0x5f, 0x1b, 0x87, 0x8b, 0xa2, 0x4a, 0x4a, 0x03, 0x08, 0x97, 0xe0, 0x1e, 0x9c, 0x16, + 0xb3, 0xd4, 0x74, 0x35, 0x33, 0x3c, 0x35, 0x2c, 0x66, 0xd9, 0x89, 0xf3, 0xe4, 0x14, 0x3a, 0x9c, + 0x45, 0x83, 0x27, 0x3b, 0x60, 0xc5, 0xd7, 0x88, 0x66, 0xf9, 0x5b, 0x01, 0xed, 0xd2, 0x28, 0xc9, + 0x0e, 0xd2, 0xf8, 0x70, 0x26, 0x15, 0x76, 0x6a, 0x29, 0x00, 0x0d, 0x97, 0x68, 0xf2, 0x91, 0xe9, + 0x08, 0x51, 0x84, 0xab, 0x99, 0x18, 0x71, 0x0e, 0x25, 0xe6, 0x22, 0xd3, 0x76, 0x99, 0xc5, 0x8d, + 0x89, 0xef, 0x9a, 0x2c, 0x29, 0x0f, 0xe5, 0x6f, 0x6e, 0x23, 0xc7, 0x41, 0x38, 0x59, 0x17, 0xbd, + 0x00, 0xb3, 0xec, 0x14, 0x38, 0xba, 0x03, 0x58, 0x8e, 0x52, 0x10, 0xaf, 0xc5, 0x20, 0x38, 0x51, + 0x53, 0xfd, 0x75, 0x05, 0xa6, 0x65, 0x06, 0x1a, 0x22, 0xa2, 0x7b, 0x20, 0x89, 0xeb, 0x11, 0x02, + 0x63, 0x65, 0xaa, 0xc3, 0x48, 0xec, 0x7b, 0x0a, 0x9c, 0xce, 0x68, 0xc3, 0xce, 0x03, 0x49, 0x42, + 0xf4, 0x8f, 0x72, 0x1e, 0x98, 0xda, 0x46, 0xc2, 0xf3, 0xc0, 0x24, 0x04, 0xa7, 0xe8, 0xa2, 0xdb, + 0x30, 0xa6, 0xbb, 0xa6, 0x18, 0x96, 0xe7, 0x0a, 0x59, 0x3d, 0xb8, 0x15, 0x85, 0xc9, 0x37, 0x70, + 0x0b, 0x53, 0x84, 0xea, 0x3f, 0x1e, 0x83, 0xaa, 0x94, 0x57, 0x09, 0xad, 0x8e, 0x62, 0x34, 0x47, + 0xe8, 0x03, 0xc3, 0x79, 0x15, 0xc6, 0xba, 0xfd, 0x41, 0x41, 0xab, 0x39, 0x44, 0x77, 0x95, 0xa2, + 0xeb, 0xf6, 0x07, 0xe8, 0x76, 0x68, 0x87, 0x17, 0xb3, 0x94, 0xc3, 0x58, 0xd1, 0x84, 0x2d, 0x1e, + 0xf0, 0xe6, 0x78, 0x2e, 0x6f, 0xf6, 0x60, 0xd2, 0x13, 0x46, 0x7a, 0xb9, 0xf8, 0xbd, 0x24, 0x69, + 0xa4, 0x85, 0x51, 0xce, 0x35, 0xfc, 0xc0, 0x66, 0x0f, 0x68, 0x50, 0x05, 0x60, 0xc0, 0x62, 0xdb, + 0x99, 0xe9, 0x52, 0xe1, 0x0a, 0xc0, 0x3a, 0x2b, 0xc1, 0x02, 0xa2, 0xfe, 0x4c, 0x09, 0x50, 0x1a, + 0x21, 0xfa, 0x10, 0x94, 0x59, 0x88, 0xbf, 0x58, 0x68, 0x52, 0xde, 0x11, 0xcd, 0xf3, 0x30, 0x87, + 0xa1, 0x8e, 0xb8, 0xf2, 0x51, 0x6c, 0x62, 0xd8, 0x39, 0xb4, 0xa0, 0x27, 0xdd, 0x0f, 0x09, 0xb6, + 0xa6, 0xb1, 0xdc, 0xad, 0x69, 0x1d, 0x26, 0x7b, 0xa6, 0xcd, 0x62, 0x4f, 0x8a, 0x79, 0x21, 0xf8, + 0x71, 0x19, 0x47, 0x81, 0x03, 0x5c, 0xea, 0x1f, 0x97, 0x28, 0x13, 0x9b, 0xb6, 0x4f, 0x6c, 0xcd, + 0xd6, 0x09, 0xda, 0x03, 0xd0, 0x06, 0xbe, 0xc3, 0x77, 0x78, 0xc1, 0xcb, 0xad, 0x62, 0xf3, 0x15, + 0x22, 0xad, 0x85, 0x08, 0xf9, 0x29, 0x56, 0xf4, 0x1b, 0x4b, 0xc4, 0x28, 0x69, 0xdf, 0xec, 0x91, + 0xd7, 0x4c, 0xdb, 0x70, 0xee, 0x88, 0xe1, 0x1d, 0x95, 0xf4, 0xad, 0x10, 0x21, 0x27, 0x1d, 0xfd, + 0xc6, 0x12, 0x31, 0xf4, 0x3a, 0x2c, 0x30, 0xa3, 0xc7, 0x66, 0x29, 0xeb, 0x44, 0xdf, 0x1c, 0xcb, + 0x0a, 0xb6, 0x9c, 0x0a, 0x4b, 0x13, 0xb4, 0xd0, 0xc8, 0xa9, 0x83, 0x73, 0x5b, 0xab, 0xbf, 0xa9, + 0xc0, 0xd9, 0xcc, 0xa1, 0x40, 0x57, 0x61, 0x3e, 0x0a, 0x5d, 0x90, 0x65, 0x64, 0x25, 0xca, 0xc0, + 0x78, 0x3d, 0x59, 0x01, 0xa7, 0xdb, 0xa0, 0xd5, 0x50, 0x4f, 0x90, 0x65, 0xb0, 0x88, 0x7b, 0x78, + 0x44, 0xa0, 0xca, 0x12, 0xd3, 0x38, 0xab, 0x9d, 0xfa, 0x13, 0xb1, 0x0e, 0x47, 0x03, 0x46, 0x57, + 0xc7, 0x06, 0xe9, 0x86, 0xc1, 0xe3, 0xe1, 0xea, 0xa8, 0xd3, 0x42, 0xcc, 0x61, 0xe8, 0xbc, 0x7c, + 0xe1, 0x21, 0x94, 0x42, 0xc1, 0xa5, 0x07, 0xd5, 0x07, 0x10, 0x11, 0x42, 0xa6, 0xdd, 0x45, 0x9b, + 0x50, 0xd1, 0x44, 0xce, 0x7e, 0xc1, 0x6a, 0x9f, 0x28, 0x64, 0x63, 0x09, 0x1c, 0x3c, 0x32, 0x30, + 0xf8, 0x85, 0x43, 0xdc, 0xea, 0xdf, 0x55, 0xe0, 0x1c, 0x15, 0x48, 0x46, 0x70, 0xaf, 0x34, 0xbc, + 0xea, 0x3f, 0xc4, 0xd6, 0xda, 0x83, 0xaa, 0x1b, 0x35, 0x13, 0x7c, 0xf9, 0xe3, 0x72, 0x1a, 0x01, + 0xe9, 0x36, 0x24, 0x55, 0x3b, 0x1a, 0xae, 0xe3, 0x05, 0x93, 0x93, 0xcc, 0x2c, 0x10, 0x2a, 0xef, + 0x52, 0x4f, 0xb0, 0x8c, 0x5f, 0xfd, 0x5c, 0x09, 0x60, 0x8d, 0xf8, 0x77, 0x1c, 0x77, 0x9b, 0x0e, + 0xd1, 0x7b, 0xea, 0x56, 0xd1, 0xa3, 0x30, 0xde, 0x77, 0x0c, 0x4f, 0x48, 0x29, 0x76, 0x17, 0x8e, + 0x1d, 0xbe, 0xb3, 0x52, 0xb4, 0x04, 0x65, 0xe6, 0x5b, 0x16, 0x5b, 0x01, 0xd3, 0x7a, 0xa9, 0xa6, + 0xe3, 0x61, 0x5e, 0xce, 0xb3, 0xb1, 0xb2, 0xa8, 0x5b, 0x4f, 0xa8, 0xf1, 0x22, 0x1b, 0x2b, 0x2f, + 0xc3, 0x21, 0x54, 0xfd, 0xdc, 0x38, 0xc4, 0x1e, 0x9d, 0x88, 0x4c, 0x71, 0xe5, 0x64, 0x4c, 0xf1, + 0xd7, 0x61, 0xc1, 0x72, 0x34, 0xa3, 0xae, 0x59, 0x94, 0xe9, 0xdd, 0x0e, 0x9f, 0x0e, 0xcd, 0xee, + 0x86, 0x2f, 0x1a, 0x30, 0x01, 0x70, 0x23, 0xa7, 0x0e, 0xce, 0x6d, 0x8d, 0xfc, 0xf0, 0xa9, 0x0b, + 0x9e, 0x51, 0xf2, 0xc6, 0xa8, 0x4f, 0x72, 0x2c, 0xcb, 0xf1, 0xd6, 0xe1, 0xae, 0x1c, 0x7f, 0x0d, + 0x03, 0x7d, 0x51, 0x81, 0xb3, 0x64, 0xd7, 0x27, 0xae, 0xad, 0x59, 0xb7, 0x5c, 0x6d, 0x73, 0xd3, + 0xd4, 0x45, 0x58, 0x13, 0x9f, 0x9c, 0xf6, 0xc1, 0xfe, 0xd2, 0xd9, 0x95, 0xac, 0x0a, 0xf7, 0xf6, + 0x97, 0x3e, 0x9a, 0x7e, 0x71, 0x26, 0x08, 0xaf, 0xce, 0x6c, 0xc2, 0x98, 0x31, 0x9b, 0xdc, 0xe2, + 0xf3, 0x50, 0x3d, 0x42, 0x34, 0xee, 0x94, 0xec, 0x96, 0xf9, 0xa5, 0x09, 0x90, 0x42, 0xdb, 0x8f, + 0x90, 0x47, 0xf4, 0x57, 0x15, 0x38, 0xa3, 0x5b, 0x26, 0xb1, 0xfd, 0x44, 0x0c, 0x33, 0x5f, 0x18, + 0xeb, 0x85, 0x62, 0xee, 0xfb, 0xc4, 0x6e, 0x35, 0x1b, 0x8e, 0x6d, 0x13, 0xdd, 0x6f, 0x64, 0x20, + 0xe7, 0x56, 0x4e, 0x16, 0x04, 0x67, 0x76, 0x86, 0x7d, 0x0f, 0x2b, 0x6f, 0x35, 0xe5, 0xfb, 0x5f, + 0x0d, 0x51, 0x86, 0x43, 0x28, 0x7a, 0x1a, 0xaa, 0x5d, 0xd7, 0x19, 0xf4, 0xbd, 0x06, 0x8b, 0xb8, + 0xe2, 0x33, 0xc8, 0x14, 0x89, 0xab, 0x51, 0x31, 0x96, 0xeb, 0xa0, 0x67, 0x61, 0x9a, 0xff, 0x6c, + 0xbb, 0x64, 0xd3, 0xdc, 0x15, 0xcb, 0x8d, 0x85, 0x71, 0x5c, 0x95, 0xca, 0x71, 0xac, 0x16, 0x7a, + 0x0a, 0xa6, 0x4c, 0xcf, 0x1b, 0x10, 0x77, 0x1d, 0xdf, 0x10, 0x49, 0xb5, 0x98, 0xcf, 0xb6, 0x15, + 0x14, 0xe2, 0x08, 0x8e, 0x7e, 0x41, 0x81, 0x59, 0x97, 0xbc, 0x33, 0x30, 0x5d, 0x62, 0x30, 0xa2, + 0x9e, 0xb8, 0x5f, 0x80, 0x47, 0xbb, 0xd3, 0xb0, 0x8c, 0x63, 0x48, 0x39, 0x9f, 0x87, 0xee, 0x88, + 0x38, 0x10, 0x27, 0x7a, 0x40, 0x87, 0xca, 0x33, 0xbb, 0xb6, 0x69, 0x77, 0x6b, 0x56, 0xd7, 0x5b, + 0xa8, 0xb0, 0xa5, 0xcb, 0x75, 0xae, 0xa8, 0x18, 0xcb, 0x75, 0xd0, 0x73, 0x30, 0x33, 0xf0, 0x28, + 0xe7, 0xf6, 0x08, 0x1f, 0xdf, 0xa9, 0x28, 0x0c, 0x72, 0x5d, 0x06, 0xe0, 0x78, 0x3d, 0x6a, 0xe2, + 0x05, 0x05, 0x62, 0x94, 0x81, 0xdf, 0x02, 0xa6, 0xfd, 0x5c, 0x8f, 0x41, 0x70, 0xa2, 0xe6, 0x62, + 0x0d, 0x4e, 0x67, 0x7c, 0xe6, 0x91, 0x96, 0xc7, 0xaf, 0x97, 0xe0, 0x83, 0xf7, 0xe5, 0x4a, 0xf4, + 0x37, 0x15, 0xa8, 0x92, 0x5d, 0xdf, 0xd5, 0xc2, 0xa0, 0x4c, 0x3a, 0x45, 0x9b, 0x27, 0xb2, 0x04, + 0x96, 0x57, 0x22, 0x42, 0x7c, 0xda, 0xc2, 0xed, 0x4e, 0x82, 0x60, 0xb9, 0x3f, 0x54, 0x5b, 0xe7, + 0x77, 0xc4, 0x65, 0x77, 0x9d, 0xc8, 0xcd, 0x2f, 0x20, 0x8b, 0x9f, 0x84, 0xb9, 0x24, 0xe6, 0x23, + 0x8d, 0xd4, 0x3f, 0x2c, 0x41, 0xb9, 0x6d, 0x69, 0x0f, 0x24, 0x3f, 0xda, 0x5f, 0x88, 0x25, 0xa7, + 0x29, 0x94, 0xf1, 0x87, 0x75, 0x35, 0x37, 0x2d, 0x56, 0x37, 0x91, 0x16, 0xeb, 0xe5, 0xe2, 0x24, + 0x0e, 0xcf, 0x82, 0xf5, 0xfb, 0x0a, 0x4c, 0xb1, 0x7a, 0x0f, 0x20, 0x1b, 0xcb, 0x5b, 0xf1, 0x6c, + 0x2c, 0xcf, 0x17, 0xfe, 0xa6, 0x9c, 0xe4, 0x2b, 0xdf, 0x0d, 0xbe, 0x85, 0xe5, 0x5a, 0x79, 0x43, + 0x7e, 0x93, 0x84, 0x7f, 0xcc, 0xa5, 0xac, 0xb4, 0x50, 0x37, 0x1c, 0x5d, 0xb3, 0x52, 0xb9, 0xa1, + 0x0e, 0x7d, 0x98, 0xa4, 0x07, 0x53, 0x44, 0xdc, 0xc3, 0x0f, 0x3e, 0xa6, 0x90, 0x4a, 0x1b, 0x5c, + 0xe6, 0x8f, 0xc8, 0x05, 0x25, 0x1e, 0x8e, 0x28, 0xa8, 0xff, 0xac, 0x04, 0x55, 0x69, 0x2e, 0x7f, + 0x14, 0x59, 0xa7, 0xae, 0x64, 0xa6, 0xeb, 0x2f, 0xb1, 0xa8, 0xcb, 0x73, 0x47, 0x48, 0xd5, 0xef, + 0x42, 0x55, 0x8f, 0x32, 0x88, 0x8e, 0xc2, 0xdc, 0x52, 0x22, 0x52, 0x11, 0xf6, 0x1d, 0x15, 0x60, + 0x99, 0x88, 0xfa, 0xdb, 0x25, 0x98, 0x6c, 0xbb, 0x0e, 0x9d, 0xe0, 0x07, 0x20, 0x1a, 0xb4, 0x98, + 0x68, 0x28, 0xb6, 0x6e, 0x79, 0x67, 0x73, 0x85, 0x83, 0x99, 0x10, 0x0e, 0xb5, 0x51, 0x88, 0x1c, + 0x2e, 0x1e, 0xfe, 0x8d, 0x02, 0x55, 0x51, 0xf3, 0x01, 0x08, 0x88, 0x4f, 0xc7, 0x05, 0xc4, 0x8b, + 0x23, 0x7c, 0x57, 0x8e, 0x88, 0xf8, 0xaa, 0x02, 0x33, 0xa2, 0xc6, 0x2a, 0xe9, 0x6d, 0x10, 0x17, + 0x5d, 0x81, 0x49, 0x6f, 0xc0, 0x26, 0x52, 0x7c, 0xd0, 0x23, 0xb2, 0x90, 0x70, 0x37, 0x34, 0x9d, + 0xbd, 0x3c, 0xc3, 0xab, 0x48, 0x99, 0xe8, 0x78, 0x01, 0x0e, 0x1a, 0x53, 0x13, 0xce, 0x75, 0xac, + 0x54, 0xe6, 0x04, 0xec, 0x58, 0x04, 0x33, 0x08, 0xb5, 0x9c, 0xe8, 0xdf, 0xe0, 0x3c, 0x8a, 0x59, + 0x4e, 0x14, 0xec, 0x61, 0x5e, 0xae, 0x7e, 0x61, 0x3c, 0x1c, 0x6c, 0x26, 0xc1, 0xae, 0xc1, 0x94, + 0xee, 0x12, 0xcd, 0x27, 0x46, 0x7d, 0x6f, 0x98, 0xce, 0x31, 0x2d, 0xae, 0x11, 0xb4, 0xc0, 0x51, + 0x63, 0xaa, 0x30, 0xc9, 0x47, 0x4c, 0xa5, 0x48, 0xb7, 0xcc, 0x3d, 0x5e, 0xfa, 0x04, 0x94, 0x9d, + 0x3b, 0x76, 0x18, 0xbe, 0x71, 0x28, 0x61, 0xf6, 0x29, 0x37, 0x69, 0x6d, 0xcc, 0x1b, 0xb1, 0xec, + 0x32, 0x22, 0xb9, 0x08, 0x57, 0x64, 0xab, 0x59, 0x89, 0x45, 0x90, 0x05, 0x93, 0x3d, 0x36, 0x0d, + 0x23, 0x25, 0x26, 0x8b, 0x4d, 0xa8, 0x9c, 0x20, 0x96, 0x61, 0xc6, 0x01, 0x09, 0xaa, 0xf8, 0x52, + 0xe5, 0xcc, 0xeb, 0x6b, 0x3a, 0x91, 0x15, 0xdf, 0xb5, 0xa0, 0x10, 0x47, 0x70, 0xb4, 0x07, 0x55, + 0x7e, 0xbd, 0x9e, 0x4b, 0xd9, 0xc9, 0xe2, 0x3e, 0x4d, 0xd1, 0xbd, 0x5b, 0x11, 0x36, 0x3e, 0xf4, + 0x52, 0x01, 0x96, 0x69, 0xa9, 0x3f, 0x37, 0x1e, 0x32, 0xa9, 0x90, 0xf8, 0xd9, 0xaf, 0xa5, 0x28, + 0x85, 0x5e, 0x4b, 0xf9, 0x28, 0x94, 0xfb, 0x5b, 0x9a, 0x17, 0x70, 0x6a, 0x90, 0xcc, 0xb8, 0xdc, + 0xa6, 0x85, 0xf7, 0xf6, 0x97, 0xa6, 0x05, 0x69, 0xf6, 0x1b, 0xf3, 0xba, 0x68, 0x00, 0xa7, 0x3d, + 0x5f, 0xb3, 0x48, 0xc7, 0x14, 0xde, 0x22, 0xcf, 0xd7, 0x7a, 0xfd, 0x02, 0x39, 0x89, 0x79, 0x6c, + 0x73, 0x1a, 0x15, 0xce, 0xc2, 0x8f, 0x3e, 0xaf, 0xc0, 0x02, 0x2b, 0xaf, 0x0d, 0x7c, 0x87, 0x67, + 0x6f, 0x8f, 0x88, 0x1f, 0xfd, 0x7c, 0x96, 0x59, 0xf7, 0x9d, 0x1c, 0x7c, 0x38, 0x97, 0x12, 0x7a, + 0x17, 0xce, 0x5a, 0x9a, 0xe7, 0xd7, 0x74, 0xdf, 0xdc, 0x31, 0xfd, 0xbd, 0xa8, 0x0b, 0x47, 0x7f, + 0x39, 0x86, 0xc5, 0x80, 0xdc, 0xc8, 0x42, 0x86, 0xb3, 0x69, 0xa8, 0x7f, 0xa2, 0x00, 0x4a, 0xb3, + 0x10, 0xb2, 0xa0, 0x62, 0x90, 0x4d, 0x6d, 0x60, 0xf9, 0x81, 0x0a, 0x50, 0xe8, 0x96, 0x79, 0x84, + 0x32, 0x92, 0xcc, 0x4d, 0x81, 0x17, 0x87, 0x14, 0x90, 0x03, 0x53, 0x77, 0xb6, 0x4c, 0x9f, 0x58, + 0xa6, 0xe7, 0x0b, 0xe9, 0x3c, 0x2a, 0xb9, 0x50, 0xe7, 0x79, 0x2d, 0x40, 0x8c, 0x23, 0x1a, 0xea, + 0xcf, 0x8c, 0x41, 0xe5, 0x08, 0x0f, 0xf4, 0x0d, 0x00, 0x89, 0xf4, 0x12, 0x54, 0x51, 0x22, 0xa3, + 0xb8, 0xc8, 0x98, 0x3a, 0xd3, 0x48, 0x21, 0xc3, 0x19, 0x04, 0xd0, 0xbb, 0x70, 0xc6, 0xb4, 0x37, + 0x5d, 0xcd, 0xf3, 0xdd, 0x81, 0xee, 0x0f, 0x5c, 0x32, 0x4a, 0x2e, 0x64, 0xe6, 0x5a, 0x68, 0x65, + 0xa0, 0xc3, 0x99, 0x44, 0x10, 0x81, 0xc9, 0x3b, 0x8e, 0xbb, 0x4d, 0x85, 0xe7, 0x78, 0xf1, 0x77, + 0x36, 0x5e, 0x63, 0x28, 0x22, 0xa9, 0xc9, 0x7f, 0x7b, 0x38, 0xc0, 0xad, 0xfe, 0x81, 0x02, 0x65, + 0x7e, 0x7f, 0xee, 0x7d, 0x61, 0x57, 0xb1, 0xae, 0xe6, 0xe6, 0xf8, 0xa4, 0xe6, 0x0e, 0xab, 0xf1, + 0x3e, 0x31, 0x77, 0x58, 0x5f, 0x73, 0x74, 0x99, 0x3f, 0x18, 0x13, 0xdf, 0xc2, 0x94, 0x85, 0x16, + 0x9c, 0x16, 0x4a, 0xef, 0x0d, 0x73, 0x93, 0x50, 0xee, 0x6a, 0x6a, 0x7b, 0x9e, 0xb8, 0xb8, 0xce, + 0xa4, 0x6e, 0x23, 0x0d, 0xc6, 0x59, 0x6d, 0xd0, 0x3f, 0x55, 0xe8, 0xb6, 0xec, 0xbb, 0xa6, 0x3e, + 0x52, 0xe2, 0xcc, 0xb0, 0x6f, 0xcb, 0xab, 0x1c, 0x19, 0xf7, 0x16, 0xac, 0x47, 0xfb, 0x33, 0x2b, + 0xbd, 0xb7, 0xbf, 0xb4, 0x94, 0xe1, 0x8a, 0x0c, 0x5c, 0xe7, 0x74, 0x60, 0x3f, 0xf7, 0xfd, 0x43, + 0xab, 0x30, 0x37, 0x7e, 0xd0, 0x63, 0x74, 0x0d, 0xca, 0x9e, 0xee, 0xf4, 0xc9, 0x51, 0x52, 0x01, + 0x87, 0x03, 0xdc, 0xa1, 0x2d, 0x31, 0x47, 0xb0, 0xf8, 0x36, 0x4c, 0xcb, 0x3d, 0xcf, 0xf0, 0x46, + 0x34, 0x65, 0x6f, 0xc4, 0x91, 0x0f, 0xeb, 0x64, 0xef, 0xc5, 0xef, 0x94, 0x40, 0x3c, 0x8e, 0x35, + 0xc4, 0x61, 0x85, 0x19, 0xa4, 0xd1, 0x1b, 0xe1, 0x41, 0xb0, 0xe4, 0x7b, 0xc0, 0xd1, 0x18, 0xc8, + 0x99, 0xf4, 0x90, 0x0d, 0x13, 0x96, 0xb6, 0x41, 0xac, 0xe0, 0xa9, 0xa4, 0x2b, 0xc5, 0xdf, 0xf2, + 0xe1, 0xc9, 0x6b, 0xbd, 0x84, 0x4b, 0x9b, 0x17, 0x62, 0x41, 0x65, 0xf1, 0x79, 0xa8, 0x4a, 0xd5, + 0x8e, 0xe4, 0x00, 0xfa, 0xb2, 0x02, 0xe7, 0x02, 0x96, 0x88, 0xa7, 0xdf, 0x40, 0x97, 0xa0, 0xa2, + 0xf5, 0x4d, 0xe6, 0x13, 0x95, 0xbd, 0xca, 0xb5, 0x76, 0x8b, 0x95, 0xe1, 0x10, 0x8a, 0x3e, 0x0c, + 0x95, 0x60, 0x9e, 0x84, 0x82, 0x14, 0x2e, 0xf1, 0xf0, 0x30, 0x27, 0xac, 0x81, 0x1e, 0x97, 0x12, + 0x03, 0x96, 0xa3, 0x1d, 0x2d, 0x24, 0xcc, 0xcf, 0x7d, 0xd5, 0x2f, 0x8d, 0xc1, 0x0c, 0x77, 0x24, + 0xd4, 0x4d, 0xdb, 0x30, 0xed, 0xee, 0x03, 0x10, 0xa5, 0xb1, 0x27, 0x59, 0x4b, 0xc7, 0xf5, 0x24, + 0xeb, 0x75, 0x98, 0x78, 0x87, 0x2e, 0xeb, 0x80, 0x1d, 0x86, 0x5a, 0x5d, 0xe1, 0x5c, 0x33, 0x89, + 0xe0, 0x61, 0x81, 0x02, 0x79, 0xd2, 0xc3, 0xb8, 0x23, 0xdc, 0xa4, 0x8e, 0x8d, 0x6c, 0x98, 0xde, + 0x73, 0x3a, 0xfb, 0x55, 0x5c, 0xf5, 0x3f, 0x28, 0x30, 0x1f, 0x6b, 0xf1, 0x00, 0x76, 0x82, 0xcd, + 0xf8, 0x4e, 0x50, 0x1b, 0xf9, 0x2b, 0x73, 0x76, 0x84, 0xe7, 0xe1, 0x6c, 0xe6, 0x60, 0xdc, 0x5f, + 0x81, 0x52, 0xbf, 0x59, 0x82, 0xf1, 0x0e, 0x21, 0xc6, 0x03, 0xe0, 0xcc, 0xb7, 0x62, 0x9b, 0xfc, + 0x27, 0x0a, 0x3f, 0xd8, 0x95, 0xe7, 0x1e, 0xd9, 0x4c, 0xb8, 0x47, 0x3e, 0x59, 0x98, 0xc2, 0xe1, + 0xbe, 0x91, 0x5f, 0x2e, 0x01, 0xd0, 0x6a, 0xfc, 0x11, 0x4f, 0x11, 0x23, 0x19, 0x3d, 0xf3, 0x3c, + 0xf5, 0x5e, 0x79, 0x9c, 0x59, 0x0d, 0x1f, 0x63, 0x1c, 0x8b, 0x9c, 0xef, 0xf1, 0x87, 0x18, 0xe3, + 0xd2, 0x62, 0xfc, 0x98, 0xa4, 0x85, 0xfa, 0xf7, 0x15, 0x60, 0x29, 0xfb, 0x9b, 0x6b, 0x1d, 0xf4, + 0x1c, 0xcc, 0x98, 0xfc, 0x68, 0xb3, 0x29, 0x27, 0xa7, 0x63, 0x07, 0x30, 0x2d, 0x19, 0x80, 0xe3, + 0xf5, 0x50, 0x4f, 0x1a, 0xd7, 0x11, 0x9e, 0xd2, 0x15, 0xfd, 0xb8, 0xaf, 0x7c, 0xf8, 0x7e, 0x09, + 0x4e, 0x25, 0xea, 0x0e, 0x61, 0x7f, 0x9c, 0x8c, 0xb4, 0x95, 0x32, 0x02, 0x8f, 0x9d, 0x7c, 0x46, + 0xe0, 0x30, 0x39, 0xef, 0xf8, 0xc9, 0x26, 0xe7, 0xfd, 0x3d, 0x05, 0xd8, 0xdb, 0xac, 0x0f, 0x40, + 0xf0, 0xfe, 0xf9, 0xb8, 0xe0, 0xfd, 0x78, 0x51, 0xc6, 0xc9, 0x91, 0xb7, 0xbf, 0x51, 0x02, 0x96, + 0x7e, 0x5f, 0x44, 0x72, 0x48, 0xc1, 0x11, 0x4a, 0x4e, 0x70, 0xc4, 0x45, 0x11, 0x5b, 0x91, 0xf0, + 0x12, 0x4a, 0xf1, 0x15, 0x1f, 0x96, 0xc2, 0x27, 0xc6, 0xe2, 0x62, 0x24, 0x1d, 0x42, 0x81, 0xee, + 0xc2, 0x8c, 0xb7, 0xe5, 0x38, 0x7e, 0x60, 0xb2, 0x8b, 0xb9, 0xab, 0x15, 0x0e, 0x69, 0x0e, 0x3e, + 0x85, 0x2f, 0xcc, 0x8e, 0x8c, 0x1b, 0xc7, 0x49, 0xa1, 0x65, 0x80, 0x0d, 0xcb, 0xd1, 0xb7, 0x1b, + 0xad, 0x26, 0x0e, 0x02, 0x5f, 0x59, 0xf8, 0x55, 0x3d, 0x2c, 0xc5, 0x52, 0x0d, 0xf5, 0x5f, 0x2a, + 0x7c, 0xb4, 0x8e, 0xb0, 0xac, 0x1e, 0xa0, 0x94, 0x7c, 0x22, 0x21, 0x25, 0xf3, 0x9e, 0xac, 0xfd, + 0x6d, 0xf1, 0x15, 0xe1, 0x23, 0x0b, 0x7d, 0x98, 0xb1, 0xe4, 0x57, 0x19, 0x04, 0x1b, 0x17, 0x7a, + 0xd0, 0x21, 0x4c, 0xac, 0x17, 0x2b, 0xc6, 0x71, 0x02, 0x54, 0x94, 0x06, 0x9d, 0xe7, 0x2f, 0x4c, + 0xf2, 0xd8, 0x15, 0x36, 0x63, 0x6d, 0x19, 0x80, 0xe3, 0xf5, 0xd4, 0xbf, 0x55, 0x82, 0xf3, 0xbc, + 0xef, 0x2c, 0xf8, 0xbc, 0x49, 0xfa, 0xc4, 0x36, 0x88, 0xad, 0xef, 0x31, 0x75, 0xd9, 0x70, 0xba, + 0xe8, 0x2f, 0x29, 0x50, 0x09, 0x0e, 0x9e, 0xc4, 0x87, 0xbc, 0x51, 0xfc, 0x45, 0xcd, 0x1c, 0x2a, + 0xe1, 0xb1, 0x17, 0xcf, 0xf1, 0x26, 0x7e, 0xe1, 0x90, 0x30, 0xba, 0x03, 0xe5, 0xbe, 0xeb, 0x6c, + 0x04, 0x66, 0xd5, 0xed, 0x63, 0xef, 0x41, 0x9b, 0x62, 0xe7, 0xcb, 0x93, 0xfd, 0x8b, 0x39, 0x3d, + 0x15, 0xc3, 0xe3, 0x43, 0xf5, 0x1c, 0x3d, 0x99, 0x4c, 0x65, 0x1c, 0xfa, 0x4f, 0x52, 0x59, 0xa2, + 0x6e, 0x82, 0x7a, 0xff, 0xbe, 0x1c, 0x05, 0xe1, 0xab, 0xf0, 0x98, 0x84, 0x70, 0x65, 0x57, 0x27, + 0x9e, 0xd7, 0xd0, 0xfa, 0x9a, 0x4e, 0x4d, 0x4a, 0x76, 0xb7, 0x97, 0x3b, 0x7a, 0x8f, 0x80, 0xf2, + 0xff, 0x2a, 0xb0, 0x24, 0xe1, 0x8c, 0x05, 0x40, 0x05, 0xa2, 0xe6, 0x6b, 0x0a, 0x54, 0x35, 0xdb, + 0x76, 0x7c, 0x4d, 0x3e, 0x77, 0x34, 0x46, 0x9c, 0x9b, 0x2c, 0x52, 0xcb, 0xb5, 0x88, 0x4c, 0x22, + 0xc2, 0x40, 0x82, 0x60, 0xb9, 0x37, 0x8b, 0x9f, 0x84, 0xb9, 0x64, 0xab, 0x23, 0x19, 0x8f, 0x0d, + 0x38, 0x27, 0xf5, 0x8a, 0x9d, 0x65, 0x34, 0xb6, 0x88, 0xbe, 0xed, 0x1d, 0x65, 0x18, 0xeb, 0x54, + 0xff, 0x0e, 0x91, 0x88, 0xab, 0x96, 0xd4, 0xdc, 0x7b, 0x12, 0x26, 0x77, 0x4c, 0xcf, 0x0c, 0xae, + 0xec, 0x4b, 0x38, 0x6e, 0xf3, 0x62, 0x1c, 0xc0, 0xd5, 0x57, 0xe0, 0xb4, 0x8c, 0x83, 0x49, 0xdc, + 0xb5, 0xce, 0x51, 0x7a, 0xb1, 0x0a, 0x17, 0x25, 0x0c, 0x99, 0xf7, 0x0d, 0x8f, 0x82, 0xee, 0x6b, + 0x95, 0x40, 0xe0, 0x89, 0x1b, 0x2b, 0xbf, 0xa5, 0xc0, 0xc3, 0x24, 0x8f, 0xeb, 0x84, 0xd0, 0x78, + 0x7d, 0x44, 0xb6, 0xc8, 0xe5, 0x6a, 0x91, 0xde, 0x2a, 0x0f, 0x8c, 0xf3, 0x7b, 0x86, 0xf6, 0x00, + 0xbc, 0x70, 0x4a, 0x46, 0x89, 0x3c, 0xce, 0x9c, 0x63, 0x91, 0xcb, 0x39, 0xfc, 0x8d, 0x25, 0x62, + 0xe8, 0x1d, 0xa8, 0x78, 0x62, 0x26, 0x47, 0xb9, 0x0e, 0x9d, 0xc1, 0x18, 0x22, 0xb8, 0x52, 0xfc, + 0xc2, 0x21, 0x19, 0xf4, 0x2b, 0x0a, 0x9c, 0xb1, 0x32, 0x16, 0x97, 0xd0, 0x10, 0x3a, 0x27, 0xb0, + 0x6e, 0xb9, 0x07, 0x3b, 0x0b, 0x82, 0x33, 0xbb, 0x82, 0x7e, 0x2d, 0xf7, 0xee, 0x6d, 0xb9, 0xf8, + 0x03, 0x35, 0xf7, 0xe3, 0xfd, 0x02, 0xd7, 0x70, 0x7f, 0x0a, 0xaa, 0x4e, 0x24, 0x11, 0xc4, 0x65, + 0xe9, 0x4f, 0x8d, 0xd8, 0x39, 0x49, 0xc6, 0xf0, 0xf3, 0x40, 0xa9, 0x00, 0xcb, 0xf4, 0xd0, 0x57, + 0x14, 0x40, 0x46, 0x6a, 0xdf, 0x10, 0x47, 0x92, 0xaf, 0x1e, 0xfb, 0xe6, 0xc8, 0x4f, 0x40, 0xd2, + 0xe5, 0x38, 0xa3, 0x13, 0xea, 0x97, 0x27, 0xb9, 0x32, 0xcf, 0x7c, 0xd0, 0x1b, 0x30, 0xb1, 0xc1, + 0x8c, 0x61, 0x21, 0x05, 0x0a, 0x5b, 0xde, 0xdc, 0xa4, 0xe6, 0x96, 0x2a, 0xff, 0x1f, 0x0b, 0xcc, + 0xe8, 0x4d, 0x18, 0x33, 0xec, 0xe0, 0xd1, 0xb3, 0x17, 0x47, 0xb0, 0x04, 0xa3, 0xb8, 0x75, 0xba, + 0x70, 0x28, 0x52, 0x64, 0x43, 0xc5, 0x16, 0xfa, 0xaf, 0x58, 0xa6, 0x85, 0x9f, 0x13, 0x0f, 0xf5, + 0xe8, 0x50, 0x7b, 0x0f, 0x4a, 0x70, 0x48, 0x83, 0xd2, 0x4b, 0x38, 0xc0, 0x0a, 0xd3, 0x0b, 0xed, + 0xda, 0xc3, 0x9c, 0x0e, 0x6d, 0xd9, 0x4a, 0x2d, 0x0f, 0x6f, 0xa5, 0xce, 0xe4, 0x5a, 0xa8, 0x04, + 0x26, 0x7c, 0xfe, 0x84, 0xf0, 0x44, 0xf1, 0x30, 0x24, 0xda, 0x7f, 0xf6, 0xc4, 0x70, 0xa4, 0x74, + 0x8b, 0xf7, 0x87, 0x05, 0x72, 0xca, 0x58, 0xfc, 0xa5, 0x73, 0xc1, 0xf4, 0x85, 0x19, 0x8b, 0x3f, + 0xd9, 0xc2, 0x19, 0x8b, 0xff, 0x8f, 0x05, 0x66, 0xf4, 0x36, 0x35, 0xbc, 0xf8, 0x16, 0x27, 0x12, + 0xf5, 0xbd, 0x32, 0xe2, 0xd2, 0xf2, 0x82, 0xc8, 0x77, 0xfe, 0x0b, 0x87, 0xf8, 0xd1, 0x06, 0x4c, + 0x0a, 0x27, 0x87, 0xc8, 0x32, 0xf0, 0xe2, 0x08, 0x79, 0xf7, 0x83, 0x57, 0x88, 0xf8, 0x35, 0xdc, + 0x00, 0xb1, 0xfa, 0xef, 0xa6, 0xb8, 0x7b, 0x4a, 0x84, 0x10, 0x6c, 0x42, 0x25, 0x40, 0x37, 0xca, + 0x2d, 0x8c, 0xe0, 0x15, 0x11, 0xfe, 0x69, 0xc1, 0x2f, 0x1c, 0xe2, 0x46, 0x8d, 0xac, 0x0b, 0x2f, + 0x51, 0xce, 0xd5, 0xe1, 0x2e, 0xbb, 0xc4, 0x23, 0xdc, 0xc6, 0x1e, 0x44, 0x84, 0x5b, 0x76, 0x88, + 0xc5, 0x78, 0xa1, 0x10, 0x8b, 0x97, 0xe0, 0x54, 0x10, 0x80, 0x66, 0x10, 0x76, 0xd4, 0x23, 0x42, + 0xb3, 0xd9, 0xad, 0xd2, 0x46, 0x1c, 0x84, 0x93, 0x75, 0xd1, 0xef, 0x28, 0x50, 0xd1, 0x85, 0x02, + 0x23, 0xd6, 0xd5, 0x8d, 0xd1, 0x7c, 0x98, 0xcb, 0x81, 0x3e, 0xc4, 0xd5, 0xe9, 0xdb, 0x81, 0x8c, + 0x08, 0x8a, 0x8f, 0xe9, 0x0c, 0x2e, 0xec, 0x35, 0xfa, 0xd7, 0xd4, 0x58, 0xb0, 0xd8, 0xdb, 0x26, + 0xec, 0x92, 0x1e, 0x8f, 0x19, 0xbf, 0x39, 0xe2, 0x57, 0xd4, 0x22, 0x8c, 0xfc, 0x43, 0xde, 0x08, + 0xed, 0x82, 0x08, 0x72, 0x4c, 0xdf, 0x22, 0x77, 0x1f, 0xfd, 0x1d, 0x05, 0x1e, 0xe3, 0x81, 0xfa, + 0x0d, 0xaa, 0x20, 0xb0, 0xb7, 0x81, 0x48, 0xf4, 0x18, 0x51, 0x14, 0x10, 0x52, 0x39, 0x72, 0x40, + 0xc8, 0xa5, 0x83, 0xfd, 0xa5, 0xc7, 0x1a, 0x43, 0xe0, 0xc6, 0x43, 0xf5, 0x60, 0x71, 0x1b, 0x66, + 0x62, 0x93, 0x7d, 0x92, 0xa7, 0x96, 0x8b, 0x36, 0xcc, 0x25, 0xe7, 0xe4, 0x44, 0x4f, 0x49, 0xaf, + 0xc3, 0x54, 0xb8, 0x59, 0xa0, 0xf3, 0x12, 0xa1, 0x68, 0x33, 0xbf, 0x4e, 0xf6, 0x38, 0xd5, 0xa5, + 0x98, 0xad, 0xc7, 0x8d, 0xfd, 0xdb, 0xb4, 0x40, 0x20, 0x54, 0xbf, 0x23, 0x3c, 0x39, 0xb7, 0x48, + 0xaf, 0x6f, 0x69, 0x3e, 0x79, 0xff, 0x1f, 0x7d, 0xa8, 0xff, 0x5d, 0xe1, 0x32, 0x5f, 0xbc, 0x7b, + 0xa6, 0x41, 0xb5, 0xc7, 0x73, 0x14, 0xb2, 0x1b, 0xa5, 0x4a, 0xf1, 0xbb, 0xac, 0xab, 0x11, 0x1a, + 0x2c, 0xe3, 0x44, 0x77, 0xd2, 0x2f, 0xf3, 0x5d, 0x19, 0x6d, 0x73, 0x1e, 0xfa, 0x81, 0x3e, 0x94, + 0x6e, 0x23, 0x3f, 0x6a, 0xa6, 0x1c, 0xfe, 0xa8, 0xd9, 0xfd, 0x9f, 0xba, 0x52, 0xbf, 0x35, 0x06, + 0x99, 0xcf, 0x4a, 0x20, 0x15, 0x26, 0xf8, 0x0d, 0x19, 0xf9, 0xc9, 0x42, 0x7e, 0x7d, 0x06, 0x0b, + 0x08, 0x72, 0xe1, 0x8c, 0xb8, 0x7f, 0x72, 0x9d, 0xec, 0x45, 0x8f, 0xe5, 0x89, 0xa9, 0x1f, 0x3e, + 0x12, 0x9d, 0xe5, 0x2e, 0xeb, 0x24, 0x30, 0xe1, 0x4c, 0xdc, 0xe8, 0x26, 0xbf, 0x0e, 0x66, 0x1b, + 0x2c, 0xc9, 0x4f, 0x24, 0x1d, 0xc4, 0xed, 0xd6, 0x87, 0x83, 0xeb, 0x60, 0xa9, 0x0a, 0x38, 0xbb, + 0x1d, 0xda, 0x01, 0xd4, 0xd3, 0x76, 0x93, 0xd8, 0x46, 0xc8, 0x68, 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, 0xad, 0x41, 0xf5, 0x5f, 0x94, + 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, 0x5f, 0xee, 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, 0x9e, 0x91, 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, 0x59, 0xd3, 0x46, 0xf1, 0x3e, 0x86, + 0xdc, 0xc3, 0x93, 0xbd, 0x34, 0x32, 0xc9, 0xe0, 0x1c, 0xf2, 0xe8, 0x5d, 0x80, 0xed, 0x28, 0x79, + 0x1a, 0x9f, 0xaf, 0xeb, 0x85, 0x3b, 0x23, 0x25, 0x58, 0x0b, 0x3a, 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, 0xf7, 0x15, 0x98, 0x62, 0x63, 0xf0, 0x3e, + 0x09, 0xfd, 0x64, 0x7d, 0xcd, 0x39, 0x78, 0xfe, 0x3d, 0x05, 0xe6, 0x53, 0x19, 0xa8, 0x86, 0x0a, + 0x1c, 0x7c, 0x60, 0xe7, 0xa9, 0x8f, 0x27, 0xdf, 0x09, 0xad, 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, 0x0c, 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, 0xc9, 0x78, 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, 0x94, 0xac, 0x70, 0xb6, 0xbe, 0x3c, 0xe2, 0x33, 0xb6, + 0xdc, 0x16, 0x93, 0x0a, 0xb0, 0x4c, 0x04, 0xb9, 0x7c, 0x7f, 0xe3, 0xae, 0xb4, 0x51, 0x9e, 0x1e, + 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, 0x99, 0x92, 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, 0xaf, 0xbc, 0xd0, 0x2d, 0xcc, 0xb1, 0x89, 0xed, 0x7b, 0x0b, 0xa7, 0x8b, 0xa7, 0x12, + 0xec, 0x24, 0x70, 0x09, 0x37, 0x4a, 0xa2, 0x14, 0xa7, 0x68, 0xaa, 0xff, 0xa8, 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, 0x4f, 0xb7, + 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, 0x96, 0x07, 0xdc, 0xf5, 0x99, 0xf6, 0x59, 0x29, 0x76, 0x7d, 0x17, + 0xa7, 0x51, 0xe1, 0x2c, 0xfc, 0x31, 0x81, 0x3d, 0x75, 0xa8, 0xc0, 0xfe, 0x18, 0x54, 0x7d, 0xa2, + 0x6f, 0xd9, 0xa6, 0xae, 0x59, 0xad, 0xa6, 0x48, 0xb1, 0x13, 0xc9, 0x9e, 0x08, 0x84, 0xe5, 0x7a, + 0xa8, 0x0e, 0x63, 0x03, 0xd3, 0x10, 0xbb, 0xd6, 0x8f, 0x85, 0x6e, 0xa7, 0x56, 0xf3, 0xde, 0xfe, + 0xd2, 0x07, 0xa3, 0x13, 0x9e, 0xf0, 0xab, 0x2e, 0xf7, 0xb7, 0xbb, 0x97, 0xfd, 0xbd, 0x3e, 0xf1, + 0x96, 0xd7, 0x5b, 0x4d, 0x4c, 0x1b, 0x67, 0x1d, 0xd6, 0x4d, 0x1f, 0xe1, 0xb0, 0xee, 0x2b, 0x0a, + 0x9c, 0xd6, 0x92, 0x1e, 0x33, 0xe2, 0x2d, 0xcc, 0x14, 0x97, 0xfe, 0xd9, 0x5e, 0xb8, 0x28, 0xc9, + 0x5f, 0x2d, 0x4d, 0x0e, 0x67, 0xf5, 0x81, 0xda, 0x1c, 0x3d, 0xb3, 0x1b, 0xa6, 0x59, 0x16, 0xb3, + 0x3e, 0x5b, 0xcc, 0xe6, 0x58, 0x4d, 0x61, 0xc2, 0x19, 0xd8, 0xd1, 0x1d, 0xa8, 0xea, 0x91, 0x57, + 0x48, 0xec, 0xbc, 0xcd, 0xe3, 0x70, 0x4b, 0x89, 0x34, 0x1f, 0x92, 0xcb, 0x49, 0xa6, 0xa4, 0xfe, + 0xa1, 0x22, 0x4c, 0xc9, 0x07, 0x78, 0x9e, 0x73, 0xd2, 0xce, 0x5f, 0x75, 0x07, 0x52, 0x9b, 0x16, + 0xda, 0x80, 0x49, 0x8a, 0xa1, 0xb9, 0xd6, 0x11, 0x5f, 0xf5, 0x62, 0xb1, 0xbd, 0x81, 0xa1, 0xe0, + 0x66, 0xb9, 0xf8, 0x81, 0x03, 0xc4, 0xea, 0x0d, 0x80, 0x68, 0xc3, 0x1f, 0xf9, 0xa4, 0xed, 0x87, + 0x65, 0x38, 0x3b, 0x6a, 0x1c, 0x22, 0xcb, 0x17, 0xcd, 0x5e, 0x0d, 0xac, 0x6d, 0xfa, 0xc4, 0xbd, + 0x79, 0x73, 0x35, 0x7c, 0x54, 0xad, 0x60, 0xc2, 0xea, 0xe8, 0xd1, 0xc9, 0x14, 0x46, 0x9c, 0x43, + 0x89, 0x29, 0x3b, 0xe2, 0x79, 0x26, 0xac, 0xf9, 0xa4, 0x3e, 0x70, 0x3d, 0x5f, 0xdc, 0xfe, 0xe3, + 0xca, 0x4e, 0x12, 0x88, 0xd3, 0xf5, 0x93, 0x48, 0xf8, 0x0b, 0x86, 0x74, 0x17, 0x54, 0xd2, 0x48, + 0xf8, 0x33, 0x86, 0xe9, 0xfa, 0x32, 0x12, 0x3e, 0x53, 0xd4, 0x14, 0x2a, 0xa7, 0x91, 0x84, 0x40, + 0x9c, 0xae, 0x8f, 0x0c, 0x78, 0xd4, 0x25, 0xba, 0xd3, 0xeb, 0x11, 0xdb, 0xe0, 0x2f, 0x0d, 0x68, + 0x6e, 0xd7, 0xb4, 0xaf, 0xb8, 0x1a, 0xab, 0xc8, 0x6c, 0x48, 0xa5, 0x7e, 0xf1, 0x60, 0x7f, 0xe9, + 0x51, 0x7c, 0x48, 0x3d, 0x7c, 0x28, 0x16, 0xd4, 0x83, 0x53, 0x03, 0x96, 0x0d, 0xd5, 0x6d, 0xd9, + 0x3e, 0x71, 0x77, 0x34, 0xab, 0xe0, 0xbb, 0x9c, 0x4c, 0x22, 0xaf, 0xc7, 0x51, 0xe1, 0x24, 0x6e, + 0xb4, 0x47, 0x37, 0x3b, 0xd1, 0x1d, 0x89, 0x64, 0xa5, 0x78, 0x46, 0x75, 0x9c, 0x46, 0x87, 0xb3, + 0x68, 0xa8, 0x5f, 0x51, 0x40, 0x84, 0x15, 0xa1, 0x47, 0x63, 0xce, 0xb8, 0x4a, 0xc2, 0x11, 0xf7, + 0xa8, 0xb8, 0xfa, 0x50, 0x8a, 0xa0, 0xd2, 0xb5, 0x87, 0x27, 0xa4, 0x6b, 0xa5, 0x53, 0x91, 0x08, + 0xe2, 0x98, 0xa5, 0x7c, 0xc2, 0x4f, 0xc1, 0x14, 0xb1, 0x75, 0x77, 0xaf, 0x1f, 0xa9, 0x51, 0x33, + 0x3c, 0x8b, 0x94, 0x28, 0xc4, 0x11, 0x5c, 0xfd, 0xb7, 0x0a, 0x08, 0x0c, 0x2c, 0x8f, 0xf5, 0x50, + 0x59, 0x90, 0xef, 0x7b, 0x46, 0x2a, 0xe5, 0x61, 0x1e, 0xcb, 0xcb, 0xc3, 0x7c, 0x52, 0x49, 0x8d, + 0x7f, 0x4b, 0x81, 0xe4, 0x33, 0xfb, 0xe8, 0x71, 0x98, 0x14, 0x39, 0x2b, 0xc4, 0xcd, 0x77, 0x7e, + 0xd5, 0x89, 0x17, 0xe1, 0x00, 0x16, 0xb7, 0xd3, 0x46, 0xb8, 0xe2, 0x9e, 0x7d, 0xdd, 0xf8, 0x70, + 0x3b, 0x4d, 0xfd, 0xee, 0x2c, 0x4c, 0xf0, 0x2c, 0x0b, 0x54, 0xa6, 0x65, 0xc4, 0xd4, 0x5f, 0x2f, + 0x9e, 0xc7, 0xa1, 0x40, 0xe8, 0x7c, 0x2c, 0xe5, 0x66, 0xe9, 0xd0, 0x94, 0x9b, 0x98, 0xe7, 0x58, + 0x1f, 0xc1, 0x37, 0xd7, 0xc0, 0x2d, 0xf1, 0x72, 0x98, 0xc8, 0xaf, 0x8e, 0xfc, 0x98, 0xd3, 0x6a, + 0xbc, 0xb8, 0xba, 0xc0, 0x07, 0x40, 0x72, 0x5d, 0xcd, 0x1e, 0xe2, 0xb6, 0x8a, 0xae, 0xb5, 0x97, + 0x8b, 0xc7, 0x2c, 0x88, 0x21, 0x1f, 0xe2, 0x5a, 0x7b, 0xb8, 0x90, 0x26, 0x72, 0x17, 0xd2, 0x26, + 0x4c, 0x8a, 0xa5, 0x20, 0x84, 0xe3, 0x8b, 0x23, 0xe4, 0x4f, 0x97, 0x92, 0x20, 0xf1, 0x02, 0x1c, + 0x20, 0xa7, 0x3b, 0x6e, 0x4f, 0xdb, 0x35, 0x7b, 0x83, 0x1e, 0x93, 0x88, 0x65, 0xb9, 0x2a, 0x2b, + 0xc6, 0x01, 0x9c, 0x55, 0xe5, 0xa1, 0x1e, 0x4c, 0x7b, 0x97, 0xab, 0x8a, 0x97, 0x2f, 0x03, 0x38, + 0x7a, 0x13, 0x2a, 0x3d, 0x6d, 0xb7, 0x33, 0x70, 0xbb, 0x44, 0xb8, 0xab, 0xf2, 0x55, 0xad, 0x81, + 0x6f, 0x5a, 0xcb, 0xd4, 0xe6, 0xf4, 0xdd, 0xe5, 0x96, 0xed, 0xdf, 0x74, 0x3b, 0xbe, 0x1b, 0xe6, + 0x75, 0x5e, 0x15, 0x58, 0x70, 0x88, 0x0f, 0x59, 0x30, 0xdb, 0xd3, 0x76, 0xd7, 0x6d, 0x2d, 0x7c, + 0xa0, 0xaf, 0x5a, 0x90, 0x02, 0x3b, 0xb7, 0x58, 0x8d, 0xe1, 0xc2, 0x09, 0xdc, 0x19, 0x47, 0x24, + 0xd3, 0x27, 0x75, 0x44, 0x52, 0x0b, 0x83, 0x67, 0xb9, 0xb1, 0xf0, 0x70, 0x56, 0x50, 0xc8, 0xe1, + 0x81, 0xb1, 0x6f, 0x85, 0x81, 0xb1, 0xb3, 0xc5, 0x7d, 0xfa, 0x87, 0x04, 0xc5, 0x0e, 0xa0, 0x4a, + 0x15, 0x5d, 0x5e, 0x4a, 0xb5, 0xf9, 0xc2, 0x3e, 0xa5, 0x66, 0x88, 0x46, 0x7a, 0xdb, 0x26, 0x42, + 0x8d, 0x65, 0x3a, 0xe8, 0x26, 0x7f, 0xc0, 0xcd, 0x22, 0x7e, 0x54, 0x85, 0x59, 0x91, 0x73, 0xdc, + 0x6d, 0x18, 0xbc, 0xb7, 0x96, 0xaa, 0x80, 0xb3, 0xdb, 0x51, 0x15, 0x95, 0xdf, 0x6d, 0x9d, 0x8f, + 0x72, 0xaf, 0xc5, 0xf2, 0x5c, 0xfc, 0x95, 0x2c, 0x07, 0x14, 0x2a, 0x1e, 0xe8, 0xcf, 0x65, 0x43, + 0x51, 0x37, 0x14, 0xfa, 0x96, 0x02, 0x0b, 0xbd, 0x9c, 0xa7, 0x63, 0x84, 0x5f, 0xec, 0xd6, 0x08, + 0xf2, 0x21, 0xf7, 0x39, 0x1a, 0xfe, 0xf4, 0xf9, 0xfd, 0x6a, 0xe1, 0xdc, 0xbe, 0x8d, 0x7a, 0x0f, + 0x6b, 0x94, 0xfc, 0x1f, 0xbf, 0xaa, 0xc0, 0x5c, 0x72, 0x13, 0x90, 0xdf, 0x9c, 0x53, 0x4e, 0xf6, + 0xcd, 0x39, 0xe9, 0xc0, 0xb3, 0x74, 0xc8, 0x81, 0xe7, 0x4b, 0x70, 0x2e, 0x9b, 0x37, 0xa8, 0x46, + 0xc6, 0xde, 0x78, 0x14, 0x96, 0x50, 0x94, 0xc2, 0x9c, 0x16, 0x62, 0x0e, 0xab, 0x7f, 0xe4, 0xdb, + 0x3f, 0xb8, 0xf0, 0x81, 0xef, 0xfc, 0xe0, 0xc2, 0x07, 0xbe, 0xf7, 0x83, 0x0b, 0x1f, 0xf8, 0xe9, + 0x83, 0x0b, 0xca, 0xb7, 0x0f, 0x2e, 0x28, 0xdf, 0x39, 0xb8, 0xa0, 0x7c, 0xef, 0xe0, 0x82, 0xf2, + 0x9f, 0x0f, 0x2e, 0x28, 0x3f, 0xff, 0x5f, 0x2e, 0x7c, 0xe0, 0xcd, 0x49, 0xd1, 0xf1, 0xff, 0x17, + 0x00, 0x00, 0xff, 0xff, 0x12, 0x21, 0xed, 0x34, 0x29, 0xc3, 0x00, 0x00, } func (m *Addon) Marshal() (dAtA []byte, err error) { @@ -8519,6 +8521,16 @@ func (m *Kubernetes) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.EnableStaticTokenKubeconfig != nil { + i-- + if *m.EnableStaticTokenKubeconfig { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + } if m.VerticalPodAutoscaler != nil { { size, err := m.VerticalPodAutoscaler.MarshalToSizedBuffer(dAtA[:i]) @@ -14939,6 +14951,9 @@ func (m *Kubernetes) Size() (n int) { l = m.VerticalPodAutoscaler.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.EnableStaticTokenKubeconfig != nil { + n += 2 + } return n } @@ -17664,6 +17679,7 @@ func (this *Kubernetes) String() string { `Kubelet:` + strings.Replace(this.Kubelet.String(), "KubeletConfig", "KubeletConfig", 1) + `,`, `Version:` + fmt.Sprintf("%v", this.Version) + `,`, `VerticalPodAutoscaler:` + strings.Replace(this.VerticalPodAutoscaler.String(), "VerticalPodAutoscaler", "VerticalPodAutoscaler", 1) + `,`, + `EnableStaticTokenKubeconfig:` + valueToStringGenerated(this.EnableStaticTokenKubeconfig) + `,`, `}`, }, "") return s @@ -29266,6 +29282,27 @@ func (m *Kubernetes) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnableStaticTokenKubeconfig", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.EnableStaticTokenKubeconfig = &b default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) 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 eb749be8f..4b180dbb7 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 @@ -1113,6 +1113,11 @@ message Kubernetes { // VerticalPodAutoscaler contains the configuration flags for the Kubernetes vertical pod autoscaler. // +optional optional VerticalPodAutoscaler verticalPodAutoscaler = 9; + + // EnableStaticTokenKubeconfig indicates whether static token kubeconfig secret should be present in garden cluster + // (default: true). + // +optional + optional bool enableStaticTokenKubeconfig = 10; } // KubernetesConfig contains common configuration fields for the control plane components. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go index 94aced30e..68c6768ea 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go @@ -41,6 +41,15 @@ type SecretBinding struct { Provider *SecretBindingProvider `json:"provider,omitempty" protobuf:"bytes,4,opt,name=provider"` } +// GetProviderType gets the type of the provider. +func (sb *SecretBinding) GetProviderType() string { + if sb.Provider == nil { + return "" + } + + return sb.Provider.Type +} + // SecretBindingProvider defines the provider type of the SecretBinding. type SecretBindingProvider struct { // Type is the type of the provider. 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 88a0a1583..24b65f4b6 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 @@ -460,6 +460,10 @@ type Kubernetes struct { // VerticalPodAutoscaler contains the configuration flags for the Kubernetes vertical pod autoscaler. // +optional VerticalPodAutoscaler *VerticalPodAutoscaler `json:"verticalPodAutoscaler,omitempty" protobuf:"bytes,9,opt,name=verticalPodAutoscaler"` + // EnableStaticTokenKubeconfig indicates whether static token kubeconfig secret should be present in garden cluster + // (default: true). + // +optional + EnableStaticTokenKubeconfig *bool `json:"enableStaticTokenKubeconfig,omitempty" protobuf:"varint,10,opt,name=enableStaticTokenKubeconfig"` } // ClusterAutoscaler contains the configuration flags for the Kubernetes cluster autoscaler. 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 4afb669e1..c66340bf8 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 @@ -3185,6 +3185,7 @@ func autoConvert_v1beta1_Kubernetes_To_core_Kubernetes(in *Kubernetes, out *core out.Kubelet = (*core.KubeletConfig)(unsafe.Pointer(in.Kubelet)) out.Version = in.Version out.VerticalPodAutoscaler = (*core.VerticalPodAutoscaler)(unsafe.Pointer(in.VerticalPodAutoscaler)) + out.EnableStaticTokenKubeconfig = (*bool)(unsafe.Pointer(in.EnableStaticTokenKubeconfig)) return nil } @@ -3203,6 +3204,7 @@ func autoConvert_core_Kubernetes_To_v1beta1_Kubernetes(in *core.Kubernetes, out out.Kubelet = (*KubeletConfig)(unsafe.Pointer(in.Kubelet)) out.Version = in.Version out.VerticalPodAutoscaler = (*VerticalPodAutoscaler)(unsafe.Pointer(in.VerticalPodAutoscaler)) + out.EnableStaticTokenKubeconfig = (*bool)(unsafe.Pointer(in.EnableStaticTokenKubeconfig)) return nil } 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 2dc8407df..0dc7413c0 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 @@ -1935,6 +1935,11 @@ func (in *Kubernetes) DeepCopyInto(out *Kubernetes) { *out = new(VerticalPodAutoscaler) (*in).DeepCopyInto(*out) } + if in.EnableStaticTokenKubeconfig != nil { + in, out := &in.EnableStaticTokenKubeconfig, &out.EnableStaticTokenKubeconfig + *out = new(bool) + **out = **in + } return } 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 620dba84e..eeeeb1b52 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 @@ -2089,6 +2089,11 @@ func (in *Kubernetes) DeepCopyInto(out *Kubernetes) { *out = new(VerticalPodAutoscaler) (*in).DeepCopyInto(*out) } + if in.EnableStaticTokenKubeconfig != nil { + in, out := &in.EnableStaticTokenKubeconfig, &out.EnableStaticTokenKubeconfig + *out = new(bool) + **out = **in + } return } diff --git a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go index 9574ecec1..2a9623f19 100644 --- a/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go +++ b/vendor/github.com/gardener/gardener/pkg/client/kubernetes/types.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer/json" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/version" - autoscalingv1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2" + vpaautoscalingv1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1" kubernetesclientset "k8s.io/client-go/kubernetes" kubernetesscheme "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" @@ -109,7 +109,7 @@ func init() { dnsv1alpha1.AddToScheme, extensionsv1alpha1.AddToScheme, resourcesv1alpha1.AddToScheme, - autoscalingv1beta2.AddToScheme, + vpaautoscalingv1.AddToScheme, hvpav1alpha1.AddToScheme, druidv1alpha1.AddToScheme, apiextensionsscheme.AddToScheme, @@ -122,7 +122,7 @@ func init() { kubernetesscheme.AddToScheme, apiextensionsscheme.AddToScheme, apiregistrationscheme.AddToScheme, - autoscalingv1beta2.AddToScheme, + vpaautoscalingv1.AddToScheme, metricsv1beta1.AddToScheme, volumesnapshotv1beta1.AddToScheme, ) 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 844153e4a..da29c5365 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 @@ -472,6 +472,8 @@ type ETCDConfig struct { CustodianController *CustodianController // BackupCompactionController contains config specific to backup compaction controller BackupCompactionController *BackupCompactionController + // BackupLeaderElection contains configuration for the leader election for the etcd backup-restore sidecar. + BackupLeaderElection *ETCDBackupLeaderElection } // ETCDController contains config specific to ETCD controller @@ -504,6 +506,14 @@ type BackupCompactionController struct { ActiveDeadlineDuration *metav1.Duration } +// ETCDBackupLeaderElection contains configuration for the leader election for the etcd backup-restore sidecar. +type ETCDBackupLeaderElection struct { + // ReelectionPeriod defines the Period after which leadership status of corresponding etcd is checked. + ReelectionPeriod *metav1.Duration + // EtcdConnectionTimeout defines the timeout duration for etcd client connection during leader election. + EtcdConnectionTimeout *metav1.Duration +} + // ExposureClassHandler contains configuration for an exposure class handler. type ExposureClassHandler struct { // Name is the name of the exposure class handler. 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 136cf9044..e6fc1ed69 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 @@ -575,6 +575,9 @@ type ETCDConfig struct { // BackupCompactionController contains config specific to backup compaction controller // +optional BackupCompactionController *BackupCompactionController `json:"backupCompactionController,omitempty"` + // BackupLeaderElection contains configuration for the leader election for the etcd backup-restore sidecar. + // +optional + BackupLeaderElection *ETCDBackupLeaderElection `json:"backupLeaderElection,omitempty"` } // ETCDController contains config specific to ETCD controller @@ -613,6 +616,16 @@ type BackupCompactionController struct { ActiveDeadlineDuration *metav1.Duration `json:"activeDeadlineDuration,omitempty"` } +// ETCDBackupLeaderElection contains configuration for the leader election for the etcd backup-restore sidecar. +type ETCDBackupLeaderElection struct { + // ReelectionPeriod defines the Period after which leadership status of corresponding etcd is checked. + // +optional + ReelectionPeriod *metav1.Duration `json:"reelectionPeriod,omitempty"` + // EtcdConnectionTimeout defines the timeout duration for etcd client connection during leader election. + // +optional + EtcdConnectionTimeout *metav1.Duration `json:"etcdConnectionTimeout,omitempty"` +} + // ExposureClassHandler contains configuration for an exposure class handler. type ExposureClassHandler struct { // Name is the name of the exposure class handler. 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 9bf4ca13a..0291f3edf 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 @@ -144,6 +144,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*ETCDBackupLeaderElection)(nil), (*config.ETCDBackupLeaderElection)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ETCDBackupLeaderElection_To_config_ETCDBackupLeaderElection(a.(*ETCDBackupLeaderElection), b.(*config.ETCDBackupLeaderElection), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.ETCDBackupLeaderElection)(nil), (*ETCDBackupLeaderElection)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_ETCDBackupLeaderElection_To_v1alpha1_ETCDBackupLeaderElection(a.(*config.ETCDBackupLeaderElection), b.(*ETCDBackupLeaderElection), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*ETCDConfig)(nil), (*config.ETCDConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_ETCDConfig_To_config_ETCDConfig(a.(*ETCDConfig), b.(*config.ETCDConfig), scope) }); err != nil { @@ -717,10 +727,33 @@ func Convert_config_CustodianController_To_v1alpha1_CustodianController(in *conf return autoConvert_config_CustodianController_To_v1alpha1_CustodianController(in, out, s) } +func autoConvert_v1alpha1_ETCDBackupLeaderElection_To_config_ETCDBackupLeaderElection(in *ETCDBackupLeaderElection, out *config.ETCDBackupLeaderElection, s conversion.Scope) error { + out.ReelectionPeriod = (*v1.Duration)(unsafe.Pointer(in.ReelectionPeriod)) + out.EtcdConnectionTimeout = (*v1.Duration)(unsafe.Pointer(in.EtcdConnectionTimeout)) + return nil +} + +// Convert_v1alpha1_ETCDBackupLeaderElection_To_config_ETCDBackupLeaderElection is an autogenerated conversion function. +func Convert_v1alpha1_ETCDBackupLeaderElection_To_config_ETCDBackupLeaderElection(in *ETCDBackupLeaderElection, out *config.ETCDBackupLeaderElection, s conversion.Scope) error { + return autoConvert_v1alpha1_ETCDBackupLeaderElection_To_config_ETCDBackupLeaderElection(in, out, s) +} + +func autoConvert_config_ETCDBackupLeaderElection_To_v1alpha1_ETCDBackupLeaderElection(in *config.ETCDBackupLeaderElection, out *ETCDBackupLeaderElection, s conversion.Scope) error { + out.ReelectionPeriod = (*v1.Duration)(unsafe.Pointer(in.ReelectionPeriod)) + out.EtcdConnectionTimeout = (*v1.Duration)(unsafe.Pointer(in.EtcdConnectionTimeout)) + return nil +} + +// Convert_config_ETCDBackupLeaderElection_To_v1alpha1_ETCDBackupLeaderElection is an autogenerated conversion function. +func Convert_config_ETCDBackupLeaderElection_To_v1alpha1_ETCDBackupLeaderElection(in *config.ETCDBackupLeaderElection, out *ETCDBackupLeaderElection, s conversion.Scope) error { + return autoConvert_config_ETCDBackupLeaderElection_To_v1alpha1_ETCDBackupLeaderElection(in, out, s) +} + func autoConvert_v1alpha1_ETCDConfig_To_config_ETCDConfig(in *ETCDConfig, out *config.ETCDConfig, s conversion.Scope) error { out.ETCDController = (*config.ETCDController)(unsafe.Pointer(in.ETCDController)) out.CustodianController = (*config.CustodianController)(unsafe.Pointer(in.CustodianController)) out.BackupCompactionController = (*config.BackupCompactionController)(unsafe.Pointer(in.BackupCompactionController)) + out.BackupLeaderElection = (*config.ETCDBackupLeaderElection)(unsafe.Pointer(in.BackupLeaderElection)) return nil } @@ -733,6 +766,7 @@ func autoConvert_config_ETCDConfig_To_v1alpha1_ETCDConfig(in *config.ETCDConfig, out.ETCDController = (*ETCDController)(unsafe.Pointer(in.ETCDController)) out.CustodianController = (*CustodianController)(unsafe.Pointer(in.CustodianController)) out.BackupCompactionController = (*BackupCompactionController)(unsafe.Pointer(in.BackupCompactionController)) + out.BackupLeaderElection = (*ETCDBackupLeaderElection)(unsafe.Pointer(in.BackupLeaderElection)) return nil } 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 35e32387c..3e01bbc18 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 @@ -281,6 +281,32 @@ func (in *CustodianController) DeepCopy() *CustodianController { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ETCDBackupLeaderElection) DeepCopyInto(out *ETCDBackupLeaderElection) { + *out = *in + if in.ReelectionPeriod != nil { + in, out := &in.ReelectionPeriod, &out.ReelectionPeriod + *out = new(v1.Duration) + **out = **in + } + if in.EtcdConnectionTimeout != nil { + in, out := &in.EtcdConnectionTimeout, &out.EtcdConnectionTimeout + *out = new(v1.Duration) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ETCDBackupLeaderElection. +func (in *ETCDBackupLeaderElection) DeepCopy() *ETCDBackupLeaderElection { + if in == nil { + return nil + } + out := new(ETCDBackupLeaderElection) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ETCDConfig) DeepCopyInto(out *ETCDConfig) { *out = *in @@ -299,6 +325,11 @@ func (in *ETCDConfig) DeepCopyInto(out *ETCDConfig) { *out = new(BackupCompactionController) (*in).DeepCopyInto(*out) } + if in.BackupLeaderElection != nil { + in, out := &in.BackupLeaderElection, &out.BackupLeaderElection + *out = new(ETCDBackupLeaderElection) + (*in).DeepCopyInto(*out) + } return } 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 585889629..cd6f2d41b 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 @@ -281,6 +281,32 @@ func (in *CustodianController) DeepCopy() *CustodianController { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ETCDBackupLeaderElection) DeepCopyInto(out *ETCDBackupLeaderElection) { + *out = *in + if in.ReelectionPeriod != nil { + in, out := &in.ReelectionPeriod, &out.ReelectionPeriod + *out = new(v1.Duration) + **out = **in + } + if in.EtcdConnectionTimeout != nil { + in, out := &in.EtcdConnectionTimeout, &out.EtcdConnectionTimeout + *out = new(v1.Duration) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ETCDBackupLeaderElection. +func (in *ETCDBackupLeaderElection) DeepCopy() *ETCDBackupLeaderElection { + if in == nil { + return nil + } + out := new(ETCDBackupLeaderElection) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ETCDConfig) DeepCopyInto(out *ETCDConfig) { *out = *in @@ -299,6 +325,11 @@ func (in *ETCDConfig) DeepCopyInto(out *ETCDConfig) { *out = new(BackupCompactionController) (*in).DeepCopyInto(*out) } + if in.BackupLeaderElection != nil { + in, out := &in.BackupLeaderElection, &out.BackupLeaderElection + *out = new(ETCDBackupLeaderElection) + (*in).DeepCopyInto(*out) + } return } diff --git a/vendor/github.com/gardener/gardener/pkg/resourcemanager/controller/garbagecollector/references/references.go b/vendor/github.com/gardener/gardener/pkg/resourcemanager/controller/garbagecollector/references/references.go index b56676ff3..b61dd0fb2 100644 --- a/vendor/github.com/gardener/gardener/pkg/resourcemanager/controller/garbagecollector/references/references.go +++ b/vendor/github.com/gardener/gardener/pkg/resourcemanager/controller/garbagecollector/references/references.go @@ -187,6 +187,18 @@ func computeAnnotations(spec corev1.PodSpec, additional ...string) map[string]st if volume.ConfigMap != nil { out[AnnotationKey(KindConfigMap, volume.ConfigMap.Name)] = volume.ConfigMap.Name } + + if volume.Projected != nil { + for _, source := range volume.Projected.Sources { + if source.Secret != nil { + out[AnnotationKey(KindSecret, source.Secret.Name)] = source.Secret.Name + } + + if source.ConfigMap != nil { + out[AnnotationKey(KindConfigMap, source.ConfigMap.Name)] = source.ConfigMap.Name + } + } + } } for _, v := range additional { diff --git a/vendor/github.com/gardener/gardener/pkg/utils/encoding.go b/vendor/github.com/gardener/gardener/pkg/utils/encoding.go index 7709afa22..ca69bc737 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/encoding.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/encoding.go @@ -133,11 +133,11 @@ func EncodeSHA1(in []byte) string { return EncodeBase64(SHA1(in)) } -// CreateSHA1Secret takes a username and a password and returns a sha1-schemed credentials pair as string. -func CreateSHA1Secret(username, password []byte) string { - credentials := append([]byte(username), ":{SHA}"...) +// CreateSHA1Secret takes a username and a password and returns a sha1-schemed credentials pair as bytes. +func CreateSHA1Secret(username, password []byte) []byte { + credentials := append(username, ":{SHA}"...) credentials = append(credentials, EncodeSHA1(password)...) - return EncodeBase64(credentials) + return credentials } // ComputeSHA1Hex computes the hexadecimal representation of the SHA1 hash of the given input byte diff --git a/vendor/github.com/gardener/gardener/pkg/utils/managedresources/builder/managedresources.go b/vendor/github.com/gardener/gardener/pkg/utils/managedresources/builder/managedresources.go index 0662d5ae7..473d225d6 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/managedresources/builder/managedresources.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/managedresources/builder/managedresources.go @@ -29,6 +29,8 @@ import ( type ManagedResource struct { client client.Client resource *resourcesv1alpha1.ManagedResource + + labels, annotations map[string]string } // NewManagedResource creates a new builder for a ManagedResource. @@ -48,13 +50,13 @@ func (m *ManagedResource) WithNamespacedName(namespace, name string) *ManagedRes // WithLabels sets the labels. func (m *ManagedResource) WithLabels(labels map[string]string) *ManagedResource { - m.resource.Labels = labels + m.labels = labels return m } // WithAnnotations sets the annotations. func (m *ManagedResource) WithAnnotations(annotations map[string]string) *ManagedResource { - m.resource.Annotations = annotations + m.annotations = annotations return m } @@ -117,8 +119,14 @@ func (m *ManagedResource) Reconcile(ctx context.Context) error { } _, err := controllerutil.CreateOrUpdate(ctx, m.client, resource, func() error { - resource.Labels = m.resource.Labels - resource.Annotations = m.resource.Annotations + for k, v := range m.labels { + metav1.SetMetaDataLabel(&resource.ObjectMeta, k, v) + } + + for k, v := range m.annotations { + metav1.SetMetaDataAnnotation(&resource.ObjectMeta, k, v) + } + resource.Spec = m.resource.Spec return nil }) diff --git a/vendor/github.com/gardener/gardener/pkg/utils/managedresources/registry.go b/vendor/github.com/gardener/gardener/pkg/utils/managedresources/registry.go index bdd1b7f08..cb87b7ed6 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/managedresources/registry.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/managedresources/registry.go @@ -85,6 +85,11 @@ func (r *Registry) Add(obj client.Object) error { return nil } +// AddSerialized adds the provided serialized YAML for the registry. The provided filename will be used as key. +func (r *Registry) AddSerialized(filename string, serializationYAML []byte) { + r.nameToObject[filename] = &object{serialization: serializationYAML} +} + // SerializedObjects returns a map whose keys are filenames and whose values are serialized objects. func (r *Registry) SerializedObjects() map[string][]byte { out := make(map[string][]byte, len(r.nameToObject)) diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go index 06e37ae19..961d3e008 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/alias.go @@ -20,6 +20,8 @@ import ( "strings" "github.com/gardener/gardener/pkg/utils" + + "k8s.io/apimachinery/pkg/util/clock" ) var ( @@ -62,4 +64,14 @@ fgsCgYEAzBjM5L4kKcyF5mC1v6NyEaQB8Cve3gfFatLfFrjNwHbvdY5PEa/x0NqS i/WyG5dokMowEJSvpCBwHbAYMLlNK7oMUpXlqcRoYo24U6Mwj68= -----END RSA PRIVATE KEY-----`)) } + + // GenerateVPNKey is an alias for generateVPNKey. Exposed for testing. + GenerateVPNKey = generateVPNKey + // FakeGenerateVPNKey is a fake for GenerateVPNKey. + FakeGenerateVPNKey = func() ([]byte, error) { + return []byte("key"), nil + } + + // Clock is an alias for clock.RealClock. Exposed for testing. + Clock clock.Clock = clock.RealClock{} ) 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 0f9559ef8..ac243b9c8 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,9 @@ import ( "fmt" "strings" + "github.com/gardener/gardener/pkg/utils" "github.com/gardener/gardener/pkg/utils/infodata" + "k8s.io/apiserver/pkg/authentication/user" ) @@ -37,6 +39,8 @@ const ( DataKeyUserName = "username" // DataKeyPassword is the key in a secret data holding the password. DataKeyPassword = "password" + // DataKeySHA1Auth is the key in a secret data holding the sha1-schemed credentials pair as string. + DataKeySHA1Auth = "auth" ) // BasicAuthSecretConfig contains the specification for a to-be-generated basic authentication secret. @@ -138,6 +142,7 @@ func (b *BasicAuth) SecretData() map[string][]byte { case BasicAuthFormatNormal: data[DataKeyUserName] = []byte(b.Username) data[DataKeyPassword] = []byte(b.Password) + data[DataKeySHA1Auth] = utils.CreateSHA1Secret(data[DataKeyUserName], data[DataKeyPassword]) fallthrough 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 70ce69c91..0c7c983cc 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificates.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/certificates.go @@ -489,14 +489,3 @@ func SelfGenerateTLSServerCertificate(name string, dnsNames []string, ips []net. return certificate, caCertificate, tempDir, nil } - -// CertificateIsExpired returns `true` if the given certificate is expired. -// The given `renewalWindow` lets the certificate expire earlier. -func CertificateIsExpired(clock clock.Clock, cert []byte, renewalWindow time.Duration) (bool, error) { - x509, err := utils.DecodeCertificate(cert) - if err != nil { - return false, err - } - - return clock.Now().After(x509.NotAfter.Add(-renewalWindow)), nil -} diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/etcd_encryption_key.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/etcd_encryption_key.go new file mode 100644 index 000000000..628428cf5 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/etcd_encryption_key.go @@ -0,0 +1,84 @@ +// 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" + "fmt" + + "github.com/gardener/gardener/pkg/utils/infodata" +) + +const ( + // DataKeyEncryptionKeyName is the key in a secret data holding the key. + DataKeyEncryptionKeyName = "key" + // DataKeyEncryptionSecret is the key in a secret data holding the secret. + DataKeyEncryptionSecret = "secret" +) + +// ETCDEncryptionKeySecretConfig contains the specification for a to-be-generated random key. +type ETCDEncryptionKeySecretConfig struct { + Name string + SecretLength int +} + +// ETCDEncryptionKey contains the generated key. +type ETCDEncryptionKey struct { + Name string + Key string + Secret string +} + +// GetName returns the name of the secret. +func (s *ETCDEncryptionKeySecretConfig) GetName() string { + return s.Name +} + +// Generate implements ConfigInterface. +func (s *ETCDEncryptionKeySecretConfig) Generate() (DataInterface, error) { + secret, err := GenerateRandomString(s.SecretLength) + if err != nil { + return nil, err + } + + return &ETCDEncryptionKey{ + Name: s.Name, + Key: fmt.Sprintf("key%d", Clock.Now().Unix()), + Secret: secret, + }, nil +} + +// GenerateInfoData implements ConfigInterface. +func (s *ETCDEncryptionKeySecretConfig) GenerateInfoData() (infodata.InfoData, error) { + return nil, errors.New("not implemented") +} + +// GenerateFromInfoData implements ConfigInterface. +func (s *ETCDEncryptionKeySecretConfig) GenerateFromInfoData(_ infodata.InfoData) (DataInterface, error) { + return nil, errors.New("not implemented") +} + +// LoadFromSecretData implements infodata.Loader. +func (s *ETCDEncryptionKeySecretConfig) 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 (b *ETCDEncryptionKey) SecretData() map[string][]byte { + return map[string][]byte{ + DataKeyEncryptionKeyName: []byte(b.Key), + DataKeyEncryptionSecret: []byte(b.Secret), + } +} diff --git a/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go b/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go index 3c26a28f6..69629a780 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/secrets/vpn_tlsauth.go @@ -89,7 +89,7 @@ func (s *VPNTLSAuthConfig) generateKey() (key []byte, err error) { if s.VPNTLSAuthKeyGenerator != nil { key, err = s.VPNTLSAuthKeyGenerator() } else { - key, err = generateKeyDefault() + key, err = GenerateVPNKey() } return } @@ -102,7 +102,7 @@ func (v *VPNTLSAuth) SecretData() map[string][]byte { return data } -func generateKeyDefault() ([]byte, error) { +func generateVPNKey() ([]byte, error) { var ( out bytes.Buffer cmd = exec.Command("openvpn", "--genkey", "--secret", "/dev/stdout") diff --git a/vendor/github.com/gardener/gardener/pkg/utils/validation/features/featuregates.go b/vendor/github.com/gardener/gardener/pkg/utils/validation/features/featuregates.go index 6711a03d5..d9328eb1c 100644 --- a/vendor/github.com/gardener/gardener/pkg/utils/validation/features/featuregates.go +++ b/vendor/github.com/gardener/gardener/pkg/utils/validation/features/featuregates.go @@ -26,9 +26,11 @@ import ( // Extracted from https://raw.githubusercontent.com/kubernetes/kubernetes/release-${version}/pkg/features/kube_features.go. // To maintain this list for each new Kubernetes version: // * Run hack/compare-k8s-feature-gates.sh (e.g. 'hack/compare-k8s-feature-gates.sh 1.22 1.23'). -// It will present 2 lists of feature gates: those added and those removed in compared to . +// It will present 3 lists of feature gates: those added and those removed in compared to and +// feature gates that got locked to default in ``. // * Add all added feature gates to the map with as AddedInVersion and no RemovedInVersion. // * For any removed feature gates, add as RemovedInVersion to the already existing feature gate in the map. +// * For feature gates locked to default, add `` as LockedToDefaultInVersion to the already existing feature gate in the map. var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ // These are special feature gates to toggle all alpha or beta feature gates on and off. // They were introduced in version 1.17 (although they are absent from the corresponding kube_features.go file). @@ -72,12 +74,12 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "CSIMigrationvSphereComplete": {AddedInVersion: "1.19", RemovedInVersion: "1.22"}, "CSINodeInfo": {RemovedInVersion: "1.21"}, "CSIPersistentVolume": {RemovedInVersion: "1.16"}, - "CSIServiceAccountToken": {AddedInVersion: "1.20"}, + "CSIServiceAccountToken": {Default: true, AddedInVersion: "1.20", LockedToDefaultInVersion: "1.22"}, "CSIStorageCapacity": {AddedInVersion: "1.19"}, - "CSIVolumeFSGroupPolicy": {AddedInVersion: "1.19"}, + "CSIVolumeFSGroupPolicy": {Default: true, AddedInVersion: "1.19", LockedToDefaultInVersion: "1.23"}, "CSIVolumeHealth": {AddedInVersion: "1.21"}, "CSRDuration": {AddedInVersion: "1.22"}, - "ConfigurableFSGroupPolicy": {AddedInVersion: "1.18"}, + "ConfigurableFSGroupPolicy": {Default: true, AddedInVersion: "1.18", LockedToDefaultInVersion: "1.23"}, "ControllerManagerLeaderMigration": {AddedInVersion: "1.21"}, // Missing from docu? "CronJobControllerV2": {AddedInVersion: "1.20", RemovedInVersion: "1.23"}, "CustomCPUCFSQuotaPeriod": {}, @@ -103,9 +105,9 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "DynamicKubeletConfig": {}, "EfficientWatchResumption": {AddedInVersion: "1.20"}, "EnableAggregatedDiscoveryTimeout": {AddedInVersion: "1.16", RemovedInVersion: "1.17"}, - "EndpointSlice": {AddedInVersion: "1.16"}, - "EndpointSliceNodeName": {AddedInVersion: "1.20"}, - "EndpointSliceProxying": {AddedInVersion: "1.18"}, + "EndpointSlice": {Default: true, AddedInVersion: "1.16", LockedToDefaultInVersion: "1.21"}, + "EndpointSliceNodeName": {Default: true, AddedInVersion: "1.20", LockedToDefaultInVersion: "1.21"}, + "EndpointSliceProxying": {Default: true, AddedInVersion: "1.18", LockedToDefaultInVersion: "1.22"}, "EndpointSliceTerminatingCondition": {AddedInVersion: "1.20"}, "EphemeralContainers": {AddedInVersion: "1.16"}, "EvenPodsSpread": {AddedInVersion: "1.16", RemovedInVersion: "1.21"}, @@ -119,18 +121,18 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "ExternalPolicyForExternalIP": {AddedInVersion: "1.18", RemovedInVersion: "1.22"}, // Missing from docu? "GCERegionalPersistentDisk": {RemovedInVersion: "1.17"}, "GRPCContainerProbe": {AddedInVersion: "1.23"}, - "GenericEphemeralVolume": {AddedInVersion: "1.19"}, + "GenericEphemeralVolume": {Default: true, AddedInVersion: "1.19", LockedToDefaultInVersion: "1.23"}, "GracefulNodeShutdown": {AddedInVersion: "1.20"}, "GracefulNodeShutdownBasedOnPodPriority": {AddedInVersion: "1.23"}, "HonorPVReclaimPolicy": {AddedInVersion: "1.23"}, "HPAContainerMetrics": {AddedInVersion: "1.20"}, "HPAScaleToZero": {AddedInVersion: "1.16"}, - "HugePageStorageMediumSize": {AddedInVersion: "1.18"}, + "HugePageStorageMediumSize": {Default: true, AddedInVersion: "1.18", LockedToDefaultInVersion: "1.22"}, "HugePages": {RemovedInVersion: "1.16"}, "HyperVContainer": {RemovedInVersion: "1.21"}, - "IPv6DualStack": {AddedInVersion: "1.16"}, + "IPv6DualStack": {Default: true, AddedInVersion: "1.16", LockedToDefaultInVersion: "1.23"}, "IdentifyPodOS": {AddedInVersion: "1.23"}, - "ImmutableEphemeralVolumes": {AddedInVersion: "1.18"}, + "ImmutableEphemeralVolumes": {Default: true, AddedInVersion: "1.18", LockedToDefaultInVersion: "1.21"}, "InTreePluginAWSUnregister": {AddedInVersion: "1.21"}, // Missing from docu? "InTreePluginAzureDiskUnregister": {AddedInVersion: "1.21"}, // Missing from docu? "InTreePluginAzureFileUnregister": {AddedInVersion: "1.21"}, // Missing from docu? @@ -140,7 +142,7 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "InTreePluginRBDUnregister": {AddedInVersion: "1.23"}, "InTreePluginvSphereUnregister": {AddedInVersion: "1.21"}, // Missing from docu? "IndexedJob": {AddedInVersion: "1.21"}, - "IngressClassNamespacedParams": {AddedInVersion: "1.21"}, + "IngressClassNamespacedParams": {Default: true, AddedInVersion: "1.21", LockedToDefaultInVersion: "1.23"}, "JobMutableNodeSchedulingDirectives": {AddedInVersion: "1.23"}, "JobReadyPods": {AddedInVersion: "1.23"}, "JobTrackingWithFinalizers": {AddedInVersion: "1.22"}, @@ -158,7 +160,7 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "MigrationRBD": {AddedInVersion: "1.23"}, "MixedProtocolLBService": {AddedInVersion: "1.20"}, "MountContainers": {RemovedInVersion: "1.17"}, - "NamespaceDefaultLabelName": {AddedInVersion: "1.21"}, + "NamespaceDefaultLabelName": {Default: true, AddedInVersion: "1.21", LockedToDefaultInVersion: "1.22"}, "NetworkPolicyEndPort": {AddedInVersion: "1.21"}, "NodeDisruptionExclusion": {AddedInVersion: "1.16", RemovedInVersion: "1.22"}, "NodeLease": {RemovedInVersion: "1.23"}, @@ -170,7 +172,7 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "PodAndContainerStatsFromCRI": {AddedInVersion: "1.23"}, "PodAffinityNamespaceSelector": {AddedInVersion: "1.21"}, "PodDeletionCost": {AddedInVersion: "1.21"}, - "PodDisruptionBudget": {AddedInVersion: "1.17"}, // Docu says 1.3? + "PodDisruptionBudget": {Default: true, AddedInVersion: "1.17", LockedToDefaultInVersion: "1.21"}, // Docu says 1.3? "PodOverhead": {AddedInVersion: "1.16"}, "PodPriority": {RemovedInVersion: "1.18"}, "PodReadinessGates": {RemovedInVersion: "1.16"}, @@ -192,11 +194,11 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "RotateKubeletClientCertificate": {RemovedInVersion: "1.21"}, "RotateKubeletServerCertificate": {}, "RunAsGroup": {RemovedInVersion: "1.22"}, - "RuntimeClass": {}, + "RuntimeClass": {Default: true, LockedToDefaultInVersion: "1.20"}, "SCTPSupport": {RemovedInVersion: "1.22"}, "ScheduleDaemonSetPods": {RemovedInVersion: "1.18"}, "SeccompDefault": {AddedInVersion: "1.22"}, - "SelectorIndex": {AddedInVersion: "1.18"}, // Missing from docu? + "SelectorIndex": {Default: true, AddedInVersion: "1.18", LockedToDefaultInVersion: "1.20"}, // Missing from docu? "ServerSideApply": {}, "ServerSideFieldValidation": {AddedInVersion: "1.23"}, "ServiceAccountIssuerDiscovery": {AddedInVersion: "1.18", RemovedInVersion: "1.23"}, @@ -207,12 +209,12 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "ServiceLoadBalancerFinalizer": {RemovedInVersion: "1.20"}, "ServiceNodeExclusion": {RemovedInVersion: "1.22"}, "ServiceTopology": {AddedInVersion: "1.17", RemovedInVersion: "1.22"}, - "SetHostnameAsFQDN": {AddedInVersion: "1.19"}, + "SetHostnameAsFQDN": {Default: true, AddedInVersion: "1.19", LockedToDefaultInVersion: "1.22"}, "SizeMemoryBackedVolumes": {AddedInVersion: "1.20"}, "StartupProbe": {AddedInVersion: "1.16", RemovedInVersion: "1.23"}, "StatefulSetAutoDeletePVC": {AddedInVersion: "1.23"}, "StatefulSetMinReadySeconds": {AddedInVersion: "1.22"}, - "StorageObjectInUseProtection": {}, + "StorageObjectInUseProtection": {Default: true, LockedToDefaultInVersion: "1.23"}, "StorageVersionAPI": {AddedInVersion: "1.20"}, "StorageVersionHash": {}, "StreamingProxyRedirects": {}, @@ -221,7 +223,7 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "SupportPodPidsLimit": {RemovedInVersion: "1.23"}, "SuspendJob": {AddedInVersion: "1.21"}, "Sysctls": {RemovedInVersion: "1.23"}, - "TTLAfterFinished": {}, + "TTLAfterFinished": {Default: true, LockedToDefaultInVersion: "1.23"}, "TaintBasedEvictions": {RemovedInVersion: "1.20"}, "TaintNodesByCondition": {RemovedInVersion: "1.18"}, "TokenRequest": {RemovedInVersion: "1.21"}, @@ -235,11 +237,11 @@ var featureGateVersionRanges = map[string]*FeatureGateVersionRange{ "VolumeSnapshotDataSource": {RemovedInVersion: "1.22"}, "VolumeSubpath": {}, "VolumeSubpathEnvExpansion": {RemovedInVersion: "1.19"}, - "WarningHeaders": {AddedInVersion: "1.19"}, - "WatchBookmark": {}, + "WarningHeaders": {Default: true, AddedInVersion: "1.19", LockedToDefaultInVersion: "1.22"}, + "WatchBookmark": {Default: true, LockedToDefaultInVersion: "1.17"}, "WinDSR": {}, "WinOverlay": {}, - "WindowsEndpointSliceProxying": {AddedInVersion: "1.19"}, + "WindowsEndpointSliceProxying": {Default: true, AddedInVersion: "1.19", LockedToDefaultInVersion: "1.22"}, "WindowsGMSA": {RemovedInVersion: "1.21"}, "WindowsHostProcessContainers": {AddedInVersion: "1.22"}, "WindowsRunAsUserName": {AddedInVersion: "1.16", RemovedInVersion: "1.21"}, @@ -258,8 +260,10 @@ func IsFeatureGateSupported(featureGate, version string) (bool, error) { // FeatureGateVersionRange represents a version range of type [AddedInVersion, RemovedInVersion). type FeatureGateVersionRange struct { - AddedInVersion string - RemovedInVersion string + Default bool + AddedInVersion string + LockedToDefaultInVersion string + RemovedInVersion string } // Contains returns true if the range contains the given version, false otherwise. @@ -280,6 +284,17 @@ func (r *FeatureGateVersionRange) Contains(version string) (bool, error) { return utilsversion.CheckVersionMeetsConstraint(version, constraint) } +func isFeatureLockedToDefault(featureGate, version string) (bool, error) { + var constraint string + vr := featureGateVersionRanges[featureGate] + if vr.LockedToDefaultInVersion != "" { + constraint = fmt.Sprintf(">= %s", vr.LockedToDefaultInVersion) + return utilsversion.CheckVersionMeetsConstraint(version, constraint) + } + + return false, nil +} + // ValidateFeatureGates validates the given Kubernetes feature gates against the given Kubernetes version. func ValidateFeatureGates(featureGates map[string]bool, version string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} @@ -290,6 +305,13 @@ func ValidateFeatureGates(featureGates map[string]bool, version string, fldPath allErrs = append(allErrs, field.Invalid(fldPath.Child(featureGate), featureGate, err.Error())) } else if !supported { allErrs = append(allErrs, field.Forbidden(fldPath.Child(featureGate), fmt.Sprintf("not supported in Kubernetes version %s", version))) + } else { + isLockedToDefault, err := isFeatureLockedToDefault(featureGate, version) + if err != nil { + allErrs = append(allErrs, field.Invalid(fldPath.Child(featureGate), featureGate, err.Error())) + } else if isLockedToDefault && featureGates[featureGate] != featureGateVersionRanges[featureGate].Default { + allErrs = append(allErrs, field.Forbidden(fldPath.Child(featureGate), fmt.Sprintf("cannot set feature gate to %v, feature is locked to %v", featureGates[featureGate], featureGateVersionRanges[featureGate].Default))) + } } } diff --git a/vendor/github.com/gardener/hvpa-controller/LICENSE.md b/vendor/github.com/gardener/hvpa-controller/LICENSE.md deleted file mode 100644 index fc6885489..000000000 --- a/vendor/github.com/gardener/hvpa-controller/LICENSE.md +++ /dev/null @@ -1,296 +0,0 @@ -``` - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. -``` - -## APIs - -This project may include APIs to SAP or third party products or services. The use of these APIs, -products and services may be subject to additional agreements. In no event shall the application -of the Apache Software License, v.2 to this project grant any rights in or to these APIs, products -or services that would alter, expand, be inconsistent with, or supersede any terms of these additional -agreements. API means application programming interfaces, as well as their respective specifications -and implementing code that allows other software products to communicate with or call on SAP or -third party products or services (for example, SAP Enterprise Services, BAPIs, Idocs, RFCs and -ABAP calls or other user exits) and may be made available through SAP or third party products, -SDKs, documentation or other media. - -## Subcomponents - -This project includes the following subcomponents that are subject to separate license terms. -Your use of these subcomponents is subject to the separate license terms applicable to -each subcomponent. - -API. -https://github.com/kubernetes/api/ -Copyright 2017 The Kubernetes Authors. -Apache 2 license (https://github.com/kubernetes/api/blob/master/LICENSE ). - -APIMachinery. -https://github.com/kubernetes/apimachinery -Copyright 2017 The Kubernetes Authors. -Apache 2 license (https://github.com/kubernetes/apimachinery/blob/master/LICENSE ). - -Kubernetes client-go -https://github.com/kubernetes/client-go/ -Copyright 2018 The Kubernetes Authors -Apache 2 license (https://github.com/kubernetes/client-go/blob/master/LICENSE) - -Autoscaler. -https://github.com/kubernetes/autoscaler -Copyright 2017 The Kubernetes Authors. -Apache 2 license (https://github.com/kubernetes/autoscaler/blob/master/LICENSE ). - -Code-Generator. -https://git.k8s.io/code-generator. -Copyright 2017 The Kubernetes Authors. -Apache 2 license (https://git.k8s.io/code-generator/LICENSE) - -controller-runtime -https://github.com/kubernetes-sigs/controller-runtime -Copyright 2018 The Kubernetes Authors. -Apache 2 license (https://github.com/kubernetes-sigs/controller-runtime/blob/master/LICENSE). - -controller-tools -https://github.com/kubernetes-sigs/controller-tools -Copyright 2018 The Kubernetes Authors. -Apache 2 license (https://github.com/kubernetes-sigs/controller-runtime/blob/master/LICENSE). - -Klog -https://github.com/kubernetes/klog -Copyright 2017 The Kubernetes Authors -Apache 2 license (https://github.com/kubernetes/klog/blob/master/LICENSE) - -Ginkgo. -https://github.com/onsi/ginkgo. -Copyright (c) 2013-2014 Onsi Fakhouri -MIT license (https://github.com/onsi/ginkgo/blob/master/LICENSE) - -Gomega. -https://github.com/onsi/gomega. -Copyright (c) 2013-2014 Onsi Fakhouri -MIT license (https://github.com/onsi/gomega/blob/master/LICENSE) - ------- -## MIT License - - The MIT License (MIT) - - Copyright (c) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. diff --git a/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_types.go b/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_types.go index befc7e4a4..9323ed471 100644 --- a/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_types.go +++ b/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_types.go @@ -91,7 +91,7 @@ type WeightBasedScalingInterval struct { // VpaWeight defines the weight (in percentage) to be given to VPA's recommendationd for the interval of number of replicas provided // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=100 - VpaWeight VpaWeight `json:"vpaWeight,omitempty"` + VpaWeight int32 `json:"vpaWeight,omitempty"` // StartReplicaCount is the number of replicas from which VpaWeight is applied to VPA scaling // If this field is not provided, it will default to minReplicas of HPA // +optional @@ -158,6 +158,7 @@ type ScaleParams struct { // VpaTemplate defines the template for VPA type VpaTemplate struct { // Metadata of the pods created from this template. + // +kubebuilder:validation:XPreserveUnknownFields // +optional metav1.ObjectMeta `json:"metadata,omitempty"` @@ -169,6 +170,7 @@ type VpaTemplate struct { // HpaTemplate defines the template for HPA type HpaTemplate struct { // Metadata of the pods created from this template. + // +kubebuilder:validation:XPreserveUnknownFields // +optional metav1.ObjectMeta `json:"metadata,omitempty"` @@ -233,14 +235,11 @@ type ChangeParams struct { Percentage *int32 `json:"percentage,omitempty"` } -// VpaWeight - weight to provide to VPA scaling -type VpaWeight int32 - const ( // VpaOnly - only vertical scaling - VpaOnly VpaWeight = 100 + VpaOnly int32 = 100 // HpaOnly - only horizontal scaling - HpaOnly VpaWeight = 0 + HpaOnly int32 = 0 ) // LastError has detailed information of the error @@ -270,8 +269,8 @@ type HvpaStatus struct { // Current VPA UpdatePolicy set in the spec VpaScaleDownUpdatePolicy *UpdatePolicy `json:"vpaScaleDownUpdatePolicy,omitempty"` - HpaWeight VpaWeight `json:"hpaWeight,omitempty"` - VpaWeight VpaWeight `json:"vpaWeight,omitempty"` + HpaWeight int32 `json:"hpaWeight,omitempty"` + VpaWeight int32 `json:"vpaWeight,omitempty"` // Override scale up stabilization window OverrideScaleUpStabilization bool `json:"overrideScaleUpStabilization,omitempty"` diff --git a/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_webhook.go b/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_webhook.go deleted file mode 100644 index bd1a5ae79..000000000 --- a/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/hvpa_webhook.go +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. - -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 ( - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - logf "sigs.k8s.io/controller-runtime/pkg/log" - "sigs.k8s.io/controller-runtime/pkg/webhook" -) - -// log is for logging in this package. -var hvpalog = logf.Log.WithName("hvpa-resource") - -// SetupWebhookWithManager sets up manager with a new webhook and r as the reconcile.Reconciler -func (r *Hvpa) SetupWebhookWithManager(mgr ctrl.Manager) error { - return ctrl.NewWebhookManagedBy(mgr). - For(r). - Complete() -} - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! - -// +kubebuilder:webhook:path=/mutate-autoscaling-k8s-io-v1alpha1-hvpa,mutating=true,failurePolicy=fail,groups=autoscaling.k8s.io,resources=hvpas,verbs=create;update,versions=v1alpha1,name=mhvpa.kb.io - -var _ webhook.Defaulter = &Hvpa{} - -// Default implements webhook.Defaulter so a webhook will be registered for the type -func (r *Hvpa) Default() { - hvpalog.Info("default", "name", r.Name) - - // TODO(user): fill in your defaulting logic. -} - -// +kubebuilder:webhook:path=/validate-autoscaling-k8s-io-v1alpha1-hvpa,mutating=false,failurePolicy=fail,groups=autoscaling.k8s.io,resources=hvpas,verbs=create;update,versions=v1alpha1,name=vhvpa.kb.io - -var _ webhook.Validator = &Hvpa{} - -// ValidateCreate implements webhook.Validator so a webhook will be registered for the type -func (r *Hvpa) ValidateCreate() error { - hvpalog.Info("validate create", "name", r.Name) - - // TODO(user): fill in your validation logic upon object creation. - return nil -} - -// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type -func (r *Hvpa) ValidateUpdate(old runtime.Object) error { - hvpalog.Info("validate update", "name", r.Name) - - // TODO(user): fill in your validation logic upon object update. - return nil -} - -// ValidateDelete implements webhook.Validator so a webhook will be registered for the type -func (r *Hvpa) ValidateDelete() error { - hvpalog.Info("validate delete", "name", r.Name) - - // TODO(user): fill in your validation logic upon object update. - return nil -} diff --git a/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/zz_generated.deepcopy.go index ed364a5b5..83fc0982d 100644 --- a/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/hvpa-controller/api/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* @@ -16,7 +17,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// autogenerated by controller-gen object, do not modify manually +// Code generated by controller-gen. DO NOT EDIT. package v1alpha1 @@ -181,7 +182,7 @@ func (in *Hvpa) DeepCopyObject() runtime.Object { func (in *HvpaList) DeepCopyInto(out *HvpaList) { *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([]Hvpa, len(*in)) @@ -384,8 +385,7 @@ func (in *ScalingStatus) DeepCopyInto(out *ScalingStatus) { *out = *in if in.LastScaleTime != nil { in, out := &in.LastScaleTime, &out.LastScaleTime - *out = new(v1.Time) - (*in).DeepCopyInto(*out) + *out = (*in).DeepCopy() } out.HpaStatus = in.HpaStatus in.VpaStatus.DeepCopyInto(&out.VpaStatus) diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/doc.go b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/doc.go similarity index 53% rename from vendor/sigs.k8s.io/controller-runtime/pkg/builder/doc.go rename to vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/doc.go index e4df1b709..ecc8f33d1 100644 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/doc.go +++ b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright 2019 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,15 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package builder wraps other controller-runtime libraries and exposes simple -// patterns for building common Controllers. -// -// Projects built with the builder package can trivially be rebased on top of the underlying -// packages if the project requires more customized behavior in the future. -package builder +// +k8s:deepcopy-gen=package,register -import ( - logf "sigs.k8s.io/controller-runtime/pkg/internal/log" -) - -var log = logf.RuntimeLog.WithName("builder") +// Package v1 contains definitions of Vertical Pod Autoscaler related objects. +// +groupName=autoscaling.k8s.io +package v1 diff --git a/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/register.go b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/register.go new file mode 100644 index 000000000..70214933b --- /dev/null +++ b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/register.go @@ -0,0 +1,58 @@ +/* +Copyright 2019 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: "autoscaling.k8s.io", Version: "v1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // SchemeBuilder points to a list of functions added to Scheme. + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + // AddToScheme applies all the stored functions to the scheme. + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &VerticalPodAutoscaler{}, + &VerticalPodAutoscalerList{}, + &VerticalPodAutoscalerCheckpoint{}, + &VerticalPodAutoscalerCheckpointList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go new file mode 100644 index 000000000..1b25eff49 --- /dev/null +++ b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/types.go @@ -0,0 +1,360 @@ +/* +Copyright 2019 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package v1 contains definitions of Vertical Pod Autoscaler related objects. +package v1 + +import ( + autoscaling "k8s.io/api/autoscaling/v1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VerticalPodAutoscalerList is a list of VerticalPodAutoscaler objects. +type VerticalPodAutoscalerList struct { + metav1.TypeMeta `json:",inline"` + // metadata is the standard list metadata. + // +optional + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + + // items is the list of vertical pod autoscaler objects. + Items []VerticalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VerticalPodAutoscaler is the configuration for a vertical pod +// autoscaler, which automatically manages pod resources based on historical and +// real time resource utilization. +type VerticalPodAutoscaler struct { + metav1.TypeMeta `json:",inline"` + // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the behavior of the autoscaler. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + Spec VerticalPodAutoscalerSpec `json:"spec" protobuf:"bytes,2,name=spec"` + + // Current information about the autoscaler. + // +optional + Status VerticalPodAutoscalerStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// VerticalPodAutoscalerSpec is the specification of the behavior of the autoscaler. +type VerticalPodAutoscalerSpec struct { + + // TargetRef points to the controller managing the set of pods for the + // autoscaler to control - e.g. Deployment, StatefulSet. VerticalPodAutoscaler + // can be targeted at controller implementing scale subresource (the pod set is + // retrieved from the controller's ScaleStatus) or some well known controllers + // (e.g. for DaemonSet the pod set is read from the controller's spec). + // If VerticalPodAutoscaler cannot use specified target it will report + // ConfigUnsupported condition. + // Note that VerticalPodAutoscaler does not require full implementation + // of scale subresource - it will not use it to modify the replica count. + // The only thing retrieved is a label selector matching pods grouped by + // the target resource. + TargetRef *autoscaling.CrossVersionObjectReference `json:"targetRef" protobuf:"bytes,1,name=targetRef"` + + // Describes the rules on how changes are applied to the pods. + // If not specified, all fields in the `PodUpdatePolicy` are set to their + // default values. + // +optional + UpdatePolicy *PodUpdatePolicy `json:"updatePolicy,omitempty" protobuf:"bytes,2,opt,name=updatePolicy"` + + // Controls how the autoscaler computes recommended resources. + // The resource policy may be used to set constraints on the recommendations + // for individual containers. If not specified, the autoscaler computes recommended + // resources for all containers in the pod, without additional constraints. + // +optional + ResourcePolicy *PodResourcePolicy `json:"resourcePolicy,omitempty" protobuf:"bytes,3,opt,name=resourcePolicy"` +} + +// PodUpdatePolicy describes the rules on how changes are applied to the pods. +type PodUpdatePolicy struct { + // Controls when autoscaler applies changes to the pod resources. + // The default is 'Auto'. + // +optional + UpdateMode *UpdateMode `json:"updateMode,omitempty" protobuf:"bytes,1,opt,name=updateMode"` +} + +// UpdateMode controls when autoscaler applies changes to the pod resoures. +type UpdateMode string + +const ( + // UpdateModeOff means that autoscaler never changes Pod resources. + // The recommender still sets the recommended resources in the + // VerticalPodAutoscaler object. This can be used for a "dry run". + UpdateModeOff UpdateMode = "Off" + // UpdateModeInitial means that autoscaler only assigns resources on pod + // creation and does not change them during the lifetime of the pod. + UpdateModeInitial UpdateMode = "Initial" + // UpdateModeRecreate means that autoscaler assigns resources on pod + // creation and additionally can update them during the lifetime of the + // pod by deleting and recreating the pod. + UpdateModeRecreate UpdateMode = "Recreate" + // UpdateModeAuto means that autoscaler assigns resources on pod creation + // and additionally can update them during the lifetime of the pod, + // using any available update method. Currently this is equivalent to + // Recreate, which is the only available update method. + UpdateModeAuto UpdateMode = "Auto" +) + +// PodResourcePolicy controls how autoscaler computes the recommended resources +// for containers belonging to the pod. There can be at most one entry for every +// named container and optionally a single wildcard entry with `containerName` = '*', +// which handles all containers that don't have individual policies. +type PodResourcePolicy struct { + // Per-container resource policies. + // +optional + // +patchMergeKey=containerName + // +patchStrategy=merge + ContainerPolicies []ContainerResourcePolicy `json:"containerPolicies,omitempty" patchStrategy:"merge" patchMergeKey:"containerName" protobuf:"bytes,1,rep,name=containerPolicies"` +} + +// ContainerResourcePolicy controls how autoscaler computes the recommended +// resources for a specific container. +type ContainerResourcePolicy struct { + // Name of the container or DefaultContainerResourcePolicy, in which + // case the policy is used by the containers that don't have their own + // policy specified. + ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"` + // Whether autoscaler is enabled for the container. The default is "Auto". + // +optional + Mode *ContainerScalingMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode"` + // Specifies the minimal amount of resources that will be recommended + // for the container. The default is no minimum. + // +optional + MinAllowed v1.ResourceList `json:"minAllowed,omitempty" protobuf:"bytes,3,rep,name=minAllowed,casttype=ResourceList,castkey=ResourceName"` + // Specifies the maximum amount of resources that will be recommended + // for the container. The default is no maximum. + // +optional + MaxAllowed v1.ResourceList `json:"maxAllowed,omitempty" protobuf:"bytes,4,rep,name=maxAllowed,casttype=ResourceList,castkey=ResourceName"` + + // Specifies the type of recommendations that will be computed + // (and possibly applied) by VPA. + // If not specified, the default of [ResourceCPU, ResourceMemory] will be used. + ControlledResources *[]v1.ResourceName `json:"controlledResources,omitempty" patchStrategy:"merge" protobuf:"bytes,5,rep,name=controlledResources"` + + // Specifies which resource values should be controlled. + // The default is "RequestsAndLimits". + // +optional + ControlledValues *ContainerControlledValues `json:"controlledValues,omitempty" protobuf:"bytes,6,rep,name=controlledValues"` +} + +const ( + // DefaultContainerResourcePolicy can be passed as + // ContainerResourcePolicy.ContainerName to specify the default policy. + DefaultContainerResourcePolicy = "*" +) + +// ContainerScalingMode controls whether autoscaler is enabled for a specific +// container. +type ContainerScalingMode string + +const ( + // ContainerScalingModeAuto means autoscaling is enabled for a container. + ContainerScalingModeAuto ContainerScalingMode = "Auto" + // ContainerScalingModeOff means autoscaling is disabled for a container. + ContainerScalingModeOff ContainerScalingMode = "Off" +) + +// ContainerControlledValues controls which resource value should be autoscaled. +type ContainerControlledValues string + +const ( + // ContainerControlledValuesRequestsAndLimits means resource request and limits + // are scaled automatically. The limit is scaled proportionally to the request. + ContainerControlledValuesRequestsAndLimits ContainerControlledValues = "RequestsAndLimits" + // ContainerControlledValuesRequestsOnly means only requested resource is autoscaled. + ContainerControlledValuesRequestsOnly ContainerControlledValues = "RequestsOnly" +) + +// VerticalPodAutoscalerStatus describes the runtime state of the autoscaler. +type VerticalPodAutoscalerStatus struct { + // The most recently computed amount of resources recommended by the + // autoscaler for the controlled pods. + // +optional + Recommendation *RecommendedPodResources `json:"recommendation,omitempty" protobuf:"bytes,1,opt,name=recommendation"` + + // Conditions is the set of conditions required for this autoscaler to scale its target, + // and indicates whether or not those conditions are met. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []VerticalPodAutoscalerCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=conditions"` +} + +// RecommendedPodResources is the recommendation of resources computed by +// autoscaler. It contains a recommendation for each container in the pod +// (except for those with `ContainerScalingMode` set to 'Off'). +type RecommendedPodResources struct { + // Resources recommended by the autoscaler for each container. + // +optional + ContainerRecommendations []RecommendedContainerResources `json:"containerRecommendations,omitempty" protobuf:"bytes,1,rep,name=containerRecommendations"` +} + +// RecommendedContainerResources is the recommendation of resources computed by +// autoscaler for a specific container. Respects the container resource policy +// if present in the spec. In particular the recommendation is not produced for +// containers with `ContainerScalingMode` set to 'Off'. +type RecommendedContainerResources struct { + // Name of the container. + ContainerName string `json:"containerName,omitempty" protobuf:"bytes,1,opt,name=containerName"` + // Recommended amount of resources. Observes ContainerResourcePolicy. + Target v1.ResourceList `json:"target" protobuf:"bytes,2,rep,name=target,casttype=ResourceList,castkey=ResourceName"` + // Minimum recommended amount of resources. Observes ContainerResourcePolicy. + // This amount is not guaranteed to be sufficient for the application to operate in a stable way, however + // running with less resources is likely to have significant impact on performance/availability. + // +optional + LowerBound v1.ResourceList `json:"lowerBound,omitempty" protobuf:"bytes,3,rep,name=lowerBound,casttype=ResourceList,castkey=ResourceName"` + // Maximum recommended amount of resources. Observes ContainerResourcePolicy. + // Any resources allocated beyond this value are likely wasted. This value may be larger than the maximum + // amount of application is actually capable of consuming. + // +optional + UpperBound v1.ResourceList `json:"upperBound,omitempty" protobuf:"bytes,4,rep,name=upperBound,casttype=ResourceList,castkey=ResourceName"` + // The most recent recommended resources target computed by the autoscaler + // for the controlled pods, based only on actual resource usage, not taking + // into account the ContainerResourcePolicy. + // May differ from the Recommendation if the actual resource usage causes + // the target to violate the ContainerResourcePolicy (lower than MinAllowed + // or higher that MaxAllowed). + // Used only as status indication, will not affect actual resource assignment. + // +optional + UncappedTarget v1.ResourceList `json:"uncappedTarget,omitempty" protobuf:"bytes,5,opt,name=uncappedTarget"` +} + +// VerticalPodAutoscalerConditionType are the valid conditions of +// a VerticalPodAutoscaler. +type VerticalPodAutoscalerConditionType string + +var ( + // RecommendationProvided indicates whether the VPA recommender was able to calculate a recommendation. + RecommendationProvided VerticalPodAutoscalerConditionType = "RecommendationProvided" + // LowConfidence indicates whether the VPA recommender has low confidence in the recommendation for + // some of containers. + LowConfidence VerticalPodAutoscalerConditionType = "LowConfidence" + // NoPodsMatched indicates that label selector used with VPA object didn't match any pods. + NoPodsMatched VerticalPodAutoscalerConditionType = "NoPodsMatched" + // FetchingHistory indicates that VPA recommender is in the process of loading additional history samples. + FetchingHistory VerticalPodAutoscalerConditionType = "FetchingHistory" + // ConfigDeprecated indicates that this VPA configuration is deprecated + // and will stop being supported soon. + ConfigDeprecated VerticalPodAutoscalerConditionType = "ConfigDeprecated" + // ConfigUnsupported indicates that this VPA configuration is unsupported + // and recommendations will not be provided for it. + ConfigUnsupported VerticalPodAutoscalerConditionType = "ConfigUnsupported" +) + +// VerticalPodAutoscalerCondition describes the state of +// a VerticalPodAutoscaler at a certain point. +type VerticalPodAutoscalerCondition struct { + // type describes the current condition + Type VerticalPodAutoscalerConditionType `json:"type" protobuf:"bytes,1,name=type"` + // status is the status of the condition (True, False, Unknown) + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,name=status"` + // lastTransitionTime is the last time the condition transitioned from + // one status to another + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // reason is the reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // message is a human-readable explanation containing details about + // the transition + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// +genclient +// +genclient:noStatus +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VerticalPodAutoscalerCheckpoint is the checkpoint of the internal state of VPA that +// is used for recovery after recommender's restart. +type VerticalPodAutoscalerCheckpoint struct { + metav1.TypeMeta `json:",inline"` + // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the checkpoint. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + // +optional + Spec VerticalPodAutoscalerCheckpointSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + + // Data of the checkpoint. + // +optional + Status VerticalPodAutoscalerCheckpointStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VerticalPodAutoscalerCheckpointList is a list of VerticalPodAutoscalerCheckpoint objects. +type VerticalPodAutoscalerCheckpointList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + Items []VerticalPodAutoscalerCheckpoint `json:"items"` +} + +// VerticalPodAutoscalerCheckpointSpec is the specification of the checkpoint object. +type VerticalPodAutoscalerCheckpointSpec struct { + // Name of the VPA object that stored VerticalPodAutoscalerCheckpoint object. + VPAObjectName string `json:"vpaObjectName,omitempty" protobuf:"bytes,1,opt,name=vpaObjectName"` + + // Name of the checkpointed container. + ContainerName string `json:"containerName,omitempty" protobuf:"bytes,2,opt,name=containerName"` +} + +// VerticalPodAutoscalerCheckpointStatus contains data of the checkpoint. +type VerticalPodAutoscalerCheckpointStatus struct { + // The time when the status was last refreshed. + LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,1,opt,name=lastUpdateTime"` + + // Version of the format of the stored data. + Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"` + + // Checkpoint of histogram for consumption of CPU. + CPUHistogram HistogramCheckpoint `json:"cpuHistogram,omitempty" protobuf:"bytes,3,rep,name=cpuHistograms"` + + // Checkpoint of histogram for consumption of memory. + MemoryHistogram HistogramCheckpoint `json:"memoryHistogram,omitempty" protobuf:"bytes,4,rep,name=memoryHistogram"` + + // Timestamp of the fist sample from the histograms. + FirstSampleStart metav1.Time `json:"firstSampleStart,omitempty" protobuf:"bytes,5,opt,name=firstSampleStart"` + + // Timestamp of the last sample from the histograms. + LastSampleStart metav1.Time `json:"lastSampleStart,omitempty" protobuf:"bytes,6,opt,name=lastSampleStart"` + + // Total number of samples in the histograms. + TotalSamplesCount int `json:"totalSamplesCount,omitempty" protobuf:"bytes,7,opt,name=totalSamplesCount"` +} + +// HistogramCheckpoint contains data needed to reconstruct the histogram. +type HistogramCheckpoint struct { + // Reference timestamp for samples collected within this histogram. + ReferenceTimestamp metav1.Time `json:"referenceTimestamp,omitempty" protobuf:"bytes,1,opt,name=referenceTimestamp"` + + // Map from bucket index to bucket weight. + BucketWeights map[int]uint32 `json:"bucketWeights,omitempty" protobuf:"bytes,2,opt,name=bucketWeights"` + + // Sum of samples to be used as denominator for weights from BucketWeights. + TotalWeight float64 `json:"totalWeight,omitempty" protobuf:"bytes,3,opt,name=totalWeight"` +} diff --git a/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/zz_generated.deepcopy.go b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/zz_generated.deepcopy.go new file mode 100644 index 000000000..dfd2eadd9 --- /dev/null +++ b/vendor/k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1/zz_generated.deepcopy.go @@ -0,0 +1,446 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1 + +import ( + autoscalingv1 "k8s.io/api/autoscaling/v1" + corev1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerResourcePolicy) DeepCopyInto(out *ContainerResourcePolicy) { + *out = *in + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(ContainerScalingMode) + **out = **in + } + if in.MinAllowed != nil { + in, out := &in.MinAllowed, &out.MinAllowed + *out = make(corev1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + if in.MaxAllowed != nil { + in, out := &in.MaxAllowed, &out.MaxAllowed + *out = make(corev1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + if in.ControlledResources != nil { + in, out := &in.ControlledResources, &out.ControlledResources + *out = new([]corev1.ResourceName) + if **in != nil { + in, out := *in, *out + *out = make([]corev1.ResourceName, len(*in)) + copy(*out, *in) + } + } + if in.ControlledValues != nil { + in, out := &in.ControlledValues, &out.ControlledValues + *out = new(ContainerControlledValues) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourcePolicy. +func (in *ContainerResourcePolicy) DeepCopy() *ContainerResourcePolicy { + if in == nil { + return nil + } + out := new(ContainerResourcePolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HistogramCheckpoint) DeepCopyInto(out *HistogramCheckpoint) { + *out = *in + in.ReferenceTimestamp.DeepCopyInto(&out.ReferenceTimestamp) + if in.BucketWeights != nil { + in, out := &in.BucketWeights, &out.BucketWeights + *out = make(map[int]uint32, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HistogramCheckpoint. +func (in *HistogramCheckpoint) DeepCopy() *HistogramCheckpoint { + if in == nil { + return nil + } + out := new(HistogramCheckpoint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodResourcePolicy) DeepCopyInto(out *PodResourcePolicy) { + *out = *in + if in.ContainerPolicies != nil { + in, out := &in.ContainerPolicies, &out.ContainerPolicies + *out = make([]ContainerResourcePolicy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourcePolicy. +func (in *PodResourcePolicy) DeepCopy() *PodResourcePolicy { + if in == nil { + return nil + } + out := new(PodResourcePolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodUpdatePolicy) DeepCopyInto(out *PodUpdatePolicy) { + *out = *in + if in.UpdateMode != nil { + in, out := &in.UpdateMode, &out.UpdateMode + *out = new(UpdateMode) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodUpdatePolicy. +func (in *PodUpdatePolicy) DeepCopy() *PodUpdatePolicy { + if in == nil { + return nil + } + out := new(PodUpdatePolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RecommendedContainerResources) DeepCopyInto(out *RecommendedContainerResources) { + *out = *in + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = make(corev1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + if in.LowerBound != nil { + in, out := &in.LowerBound, &out.LowerBound + *out = make(corev1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + if in.UpperBound != nil { + in, out := &in.UpperBound, &out.UpperBound + *out = make(corev1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + if in.UncappedTarget != nil { + in, out := &in.UncappedTarget, &out.UncappedTarget + *out = make(corev1.ResourceList, len(*in)) + for key, val := range *in { + (*out)[key] = val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedContainerResources. +func (in *RecommendedContainerResources) DeepCopy() *RecommendedContainerResources { + if in == nil { + return nil + } + out := new(RecommendedContainerResources) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RecommendedPodResources) DeepCopyInto(out *RecommendedPodResources) { + *out = *in + if in.ContainerRecommendations != nil { + in, out := &in.ContainerRecommendations, &out.ContainerRecommendations + *out = make([]RecommendedContainerResources, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecommendedPodResources. +func (in *RecommendedPodResources) DeepCopy() *RecommendedPodResources { + if in == nil { + return nil + } + out := new(RecommendedPodResources) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VerticalPodAutoscaler) DeepCopyInto(out *VerticalPodAutoscaler) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscaler. +func (in *VerticalPodAutoscaler) DeepCopy() *VerticalPodAutoscaler { + if in == nil { + return nil + } + out := new(VerticalPodAutoscaler) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VerticalPodAutoscaler) 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 *VerticalPodAutoscalerCheckpoint) DeepCopyInto(out *VerticalPodAutoscalerCheckpoint) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpoint. +func (in *VerticalPodAutoscalerCheckpoint) DeepCopy() *VerticalPodAutoscalerCheckpoint { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerCheckpoint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VerticalPodAutoscalerCheckpoint) 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 *VerticalPodAutoscalerCheckpointList) DeepCopyInto(out *VerticalPodAutoscalerCheckpointList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VerticalPodAutoscalerCheckpoint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointList. +func (in *VerticalPodAutoscalerCheckpointList) DeepCopy() *VerticalPodAutoscalerCheckpointList { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerCheckpointList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VerticalPodAutoscalerCheckpointList) 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 *VerticalPodAutoscalerCheckpointSpec) DeepCopyInto(out *VerticalPodAutoscalerCheckpointSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointSpec. +func (in *VerticalPodAutoscalerCheckpointSpec) DeepCopy() *VerticalPodAutoscalerCheckpointSpec { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerCheckpointSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopyInto(out *VerticalPodAutoscalerCheckpointStatus) { + *out = *in + in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) + in.CPUHistogram.DeepCopyInto(&out.CPUHistogram) + in.MemoryHistogram.DeepCopyInto(&out.MemoryHistogram) + in.FirstSampleStart.DeepCopyInto(&out.FirstSampleStart) + in.LastSampleStart.DeepCopyInto(&out.LastSampleStart) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCheckpointStatus. +func (in *VerticalPodAutoscalerCheckpointStatus) DeepCopy() *VerticalPodAutoscalerCheckpointStatus { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerCheckpointStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VerticalPodAutoscalerCondition) DeepCopyInto(out *VerticalPodAutoscalerCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerCondition. +func (in *VerticalPodAutoscalerCondition) DeepCopy() *VerticalPodAutoscalerCondition { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VerticalPodAutoscalerList) DeepCopyInto(out *VerticalPodAutoscalerList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VerticalPodAutoscaler, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerList. +func (in *VerticalPodAutoscalerList) DeepCopy() *VerticalPodAutoscalerList { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VerticalPodAutoscalerList) 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 *VerticalPodAutoscalerSpec) DeepCopyInto(out *VerticalPodAutoscalerSpec) { + *out = *in + if in.TargetRef != nil { + in, out := &in.TargetRef, &out.TargetRef + *out = new(autoscalingv1.CrossVersionObjectReference) + **out = **in + } + if in.UpdatePolicy != nil { + in, out := &in.UpdatePolicy, &out.UpdatePolicy + *out = new(PodUpdatePolicy) + (*in).DeepCopyInto(*out) + } + if in.ResourcePolicy != nil { + in, out := &in.ResourcePolicy, &out.ResourcePolicy + *out = new(PodResourcePolicy) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerSpec. +func (in *VerticalPodAutoscalerSpec) DeepCopy() *VerticalPodAutoscalerSpec { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VerticalPodAutoscalerStatus) DeepCopyInto(out *VerticalPodAutoscalerStatus) { + *out = *in + if in.Recommendation != nil { + in, out := &in.Recommendation, &out.Recommendation + *out = new(RecommendedPodResources) + (*in).DeepCopyInto(*out) + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]VerticalPodAutoscalerCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalPodAutoscalerStatus. +func (in *VerticalPodAutoscalerStatus) DeepCopy() *VerticalPodAutoscalerStatus { + if in == nil { + return nil + } + out := new(VerticalPodAutoscalerStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/modules.txt b/vendor/modules.txt index dc033e3a3..eba342273 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -45,13 +45,13 @@ github.com/evanphx/json-patch github.com/fatih/color # github.com/fsnotify/fsnotify v1.5.1 github.com/fsnotify/fsnotify -# github.com/gardener/etcd-druid v0.7.0 +# github.com/gardener/etcd-druid v0.8.0 ## explicit github.com/gardener/etcd-druid/api/v1alpha1 # github.com/gardener/external-dns-management v0.7.18 github.com/gardener/external-dns-management/pkg/apis/dns github.com/gardener/external-dns-management/pkg/apis/dns/v1alpha1 -# github.com/gardener/gardener v1.43.2 +# github.com/gardener/gardener v1.44.0 ## explicit github.com/gardener/gardener/.github github.com/gardener/gardener/.github/ISSUE_TEMPLATE @@ -164,7 +164,7 @@ github.com/gardener/gardener/pkg/utils/version github.com/gardener/gardener/test/framework github.com/gardener/gardener/test/framework/config github.com/gardener/gardener/test/framework/reporter -# github.com/gardener/hvpa-controller v0.3.1 +# github.com/gardener/hvpa-controller/api v0.4.0 => github.com/gardener/hvpa-controller/api v0.4.0 github.com/gardener/hvpa-controller/api/v1alpha1 # github.com/gardener/machine-controller-manager v0.41.0 ## explicit @@ -716,8 +716,9 @@ k8s.io/apimachinery/third_party/forked/golang/reflect # k8s.io/apiserver v0.23.3 => k8s.io/apiserver v0.23.3 ## explicit k8s.io/apiserver/pkg/authentication/user -# k8s.io/autoscaler/vertical-pod-autoscaler v0.0.0-00010101000000-000000000000 => k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 +# k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 => k8s.io/autoscaler/vertical-pod-autoscaler v0.9.0 ## explicit +k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1 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 @@ -961,8 +962,6 @@ k8s.io/utils/pointer k8s.io/utils/trace # sigs.k8s.io/controller-runtime v0.11.0 ## explicit -sigs.k8s.io/controller-runtime -sigs.k8s.io/controller-runtime/pkg/builder sigs.k8s.io/controller-runtime/pkg/cache sigs.k8s.io/controller-runtime/pkg/cache/internal sigs.k8s.io/controller-runtime/pkg/certwatcher @@ -1054,3 +1053,5 @@ sigs.k8s.io/yaml # k8s.io/component-base => k8s.io/component-base v0.23.3 # k8s.io/helm => k8s.io/helm v2.13.1+incompatible # k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.23.3 +# github.com/gardener/hvpa-controller => github.com/gardener/hvpa-controller v0.4.0 +# github.com/gardener/hvpa-controller/api => github.com/gardener/hvpa-controller/api v0.4.0 diff --git a/vendor/sigs.k8s.io/controller-runtime/.gitignore b/vendor/sigs.k8s.io/controller-runtime/.gitignore deleted file mode 100644 index c2c72faf3..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, build with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# editor and IDE paraphernalia -.idea -*.swp -*.swo -*~ - -# Vscode files -.vscode - -# Tools binaries. -hack/tools/bin diff --git a/vendor/sigs.k8s.io/controller-runtime/.golangci.yml b/vendor/sigs.k8s.io/controller-runtime/.golangci.yml deleted file mode 100644 index 9ca3fd927..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/.golangci.yml +++ /dev/null @@ -1,130 +0,0 @@ -linters: - disable-all: true - enable: - - asciicheck - - bodyclose - - deadcode - - depguard - - dogsled - - errcheck - - exportloopref - - goconst - - gocritic - - gocyclo - - godot - - gofmt - - goimports - - goprintffuncname - - gosec - - gosimple - - govet - - ifshort - - importas - - ineffassign - - misspell - - nakedret - - nilerr - - nolintlint - - prealloc - - revive - - rowserrcheck - - staticcheck - - structcheck - - stylecheck - - typecheck - - unconvert - - unparam - - varcheck - - whitespace - -linters-settings: - ifshort: - # Maximum length of variable declaration measured in number of characters, after which linter won't suggest using short syntax. - max-decl-chars: 50 - importas: - no-unaliased: true - alias: - # Kubernetes - - pkg: k8s.io/api/core/v1 - alias: corev1 - - pkg: k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1 - alias: apiextensionsv1 - - pkg: k8s.io/apimachinery/pkg/apis/meta/v1 - alias: metav1 - - pkg: k8s.io/apimachinery/pkg/api/errors - alias: apierrors - - pkg: k8s.io/apimachinery/pkg/util/errors - alias: kerrors - # Controller Runtime - - pkg: sigs.k8s.io/controller-runtime - alias: ctrl - staticcheck: - go: "1.17" - stylecheck: - go: "1.17" - -issues: - max-same-issues: 0 - max-issues-per-linter: 0 - # We are disabling default golangci exclusions because we want to help reviewers to focus on reviewing the most relevant - # changes in PRs and avoid nitpicking. - exclude-use-default: false - # List of regexps of issue texts to exclude, empty list by default. - exclude: - # The following are being worked on to remove their exclusion. This list should be reduced or go away all together over time. - # If it is decided they will not be addressed they should be moved above this comment. - - Subprocess launch(ed with variable|ing should be audited) - - (G204|G104|G307) - - "ST1000: at least one file in a package should have a package comment" - exclude-rules: - - linters: - - gosec - text: "G108: Profiling endpoint is automatically exposed on /debug/pprof" - - linters: - - revive - text: "exported: exported method .*\\.(Reconcile|SetupWithManager|SetupWebhookWithManager) should have comment or be unexported" - - linters: - - errcheck - text: Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked - # With Go 1.16, the new embed directive can be used with an un-named import, - # revive (previously, golint) only allows these to be imported in a main.go, which wouldn't work for us. - # This directive allows the embed package to be imported with an underscore everywhere. - - linters: - - revive - source: _ "embed" - # Exclude some packages or code to require comments, for example test code, or fake clients. - - linters: - - revive - text: exported (method|function|type|const) (.+) should have comment or be unexported - source: (func|type).*Fake.* - - linters: - - revive - text: exported (method|function|type|const) (.+) should have comment or be unexported - path: fake_\.go - # Disable unparam "always receives" which might not be really - # useful when building libraries. - - linters: - - unparam - text: always receives - # Dot imports for gomega or ginkgo are allowed - # within test files. - - path: _test\.go - text: should not use dot imports - - path: _test\.go - text: cyclomatic complexity - - path: _test\.go - text: "G107: Potential HTTP request made with variable url" - # Append should be able to assign to a different var/slice. - - linters: - - gocritic - text: "appendAssign: append result not assigned to the same slice" - - linters: - - gocritic - text: "singleCaseSwitch: should rewrite switch statement to if statement" - -run: - timeout: 10m - skip-files: - - "zz_generated.*\\.go$" - - ".*conversion.*\\.go$" - allow-parallel-runners: true diff --git a/vendor/sigs.k8s.io/controller-runtime/CONTRIBUTING.md b/vendor/sigs.k8s.io/controller-runtime/CONTRIBUTING.md deleted file mode 100644 index 2c0ea1f66..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/CONTRIBUTING.md +++ /dev/null @@ -1,19 +0,0 @@ -# Contributing guidelines - -## Sign the CLA - -Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests. - -Please see https://git.k8s.io/community/CLA.md for more info - -## Contributing steps - -1. Submit an issue describing your proposed change to the repo in question. -1. The [repo owners](OWNERS) will respond to your issue promptly. -1. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above). -1. Fork the desired repo, develop and test your code changes. -1. Submit a pull request. - -## Test locally - -Run the command `make test` to test the changes locally. diff --git a/vendor/sigs.k8s.io/controller-runtime/FAQ.md b/vendor/sigs.k8s.io/controller-runtime/FAQ.md deleted file mode 100644 index 86c7f9336..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/FAQ.md +++ /dev/null @@ -1,81 +0,0 @@ -# FAQ - -### Q: How do I know which type of object a controller references? - -**A**: Each controller should only reconcile one object type. Other -affected objects should be mapped to a single type of root object, using -the `EnqueueRequestForOwner` or `EnqueueRequestsFromMapFunc` event -handlers, and potentially indices. Then, your Reconcile method should -attempt to reconcile *all* state for that given root objects. - -### Q: How do I have different logic in my reconciler for different types of events (e.g. create, update, delete)? - -**A**: You should not. Reconcile functions should be idempotent, and -should always reconcile state by reading all the state it needs, then -writing updates. This allows your reconciler to correctly respond to -generic events, adjust to skipped or coalesced events, and easily deal -with application startup. The controller will enqueue reconcile requests -for both old and new objects if a mapping changes, but it's your -responsibility to make sure you have enough information to be able clean -up state that's no longer referenced. - -### Q: My cache might be stale if I read from a cache! How should I deal with that? - -**A**: There are several different approaches that can be taken, depending -on your situation. - -- When you can, take advantage of optimistic locking: use deterministic - names for objects you create, so that the Kubernetes API server will - warn you if the object already exists. Many controllers in Kubernetes - take this approach: the StatefulSet controller appends a specific number - to each pod that it creates, while the Deployment controller hashes the - pod template spec and appends that. - -- In the few cases when you cannot take advantage of deterministic names - (e.g. when using generateName), it may be useful in to track which - actions you took, and assume that they need to be repeated if they don't - occur after a given time (e.g. using a requeue result). This is what - the ReplicaSet controller does. - -In general, write your controller with the assumption that information -will eventually be correct, but may be slightly out of date. Make sure -that your reconcile function enforces the entire state of the world each -time it runs. If none of this works for you, you can always construct -a client that reads directly from the API server, but this is generally -considered to be a last resort, and the two approaches above should -generally cover most circumstances. - -### Q: Where's the fake client? How do I use it? - -**A**: The fake client -[exists](https://godoc.org/sigs.k8s.io/controller-runtime/pkg/client/fake), -but we generally recommend using -[envtest.Environment](https://godoc.org/sigs.k8s.io/controller-runtime/pkg/envtest#Environment) -to test against a real API server. In our experience, tests using fake -clients gradually re-implement poorly-written impressions of a real API -server, which leads to hard-to-maintain, complex test code. - -### Q: How should I write tests? Any suggestions for getting started? - -- Use the aforementioned - [envtest.Environment](https://godoc.org/sigs.k8s.io/controller-runtime/pkg/envtest#Environment) - to spin up a real API server instead of trying to mock one out. - -- Structure your tests to check that the state of the world is as you - expect it, *not* that a particular set of API calls were made, when - working with Kubernetes APIs. This will allow you to more easily - refactor and improve the internals of your controllers without changing - your tests. - -- Remember that any time you're interacting with the API server, changes - may have some delay between write time and reconcile time. - -### Q: What are these errors about no Kind being registered for a type? - -**A**: You're probably missing a fully-set-up Scheme. Schemes record the -mapping between Go types and group-version-kinds in Kubernetes. In -general, your application should have its own Scheme containing the types -from the API groups that it needs (be they Kubernetes types or your own). -See the [scheme builder -docs](https://godoc.org/sigs.k8s.io/controller-runtime/pkg/scheme) for -more information. diff --git a/vendor/sigs.k8s.io/controller-runtime/Makefile b/vendor/sigs.k8s.io/controller-runtime/Makefile deleted file mode 100644 index 36647c697..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/Makefile +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash - -# Copyright 2020 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# If you update this file, please follow -# https://suva.sh/posts/well-documented-makefiles - -## -------------------------------------- -## General -## -------------------------------------- - -SHELL:=/usr/bin/env bash -.DEFAULT_GOAL:=help - -# Use GOPROXY environment variable if set -GOPROXY := $(shell go env GOPROXY) -ifeq ($(GOPROXY),) -GOPROXY := https://proxy.golang.org -endif -export GOPROXY - -# Active module mode, as we use go modules to manage dependencies -export GO111MODULE=on - -# Tools. -TOOLS_DIR := hack/tools -TOOLS_BIN_DIR := $(TOOLS_DIR)/bin -GOLANGCI_LINT := $(abspath $(TOOLS_BIN_DIR)/golangci-lint) -GO_APIDIFF := $(TOOLS_BIN_DIR)/go-apidiff -CONTROLLER_GEN := $(TOOLS_BIN_DIR)/controller-gen -ENVTEST_DIR := $(abspath tools/setup-envtest) - -# The help will print out all targets with their descriptions organized bellow their categories. The categories are represented by `##@` and the target descriptions by `##`. -# The awk commands is responsible to read the entire set of makefiles included in this invocation, looking for lines of the file as xyz: ## something, and then pretty-format the target and help. Then, if there's a line with ##@ something, that gets pretty-printed as a category. -# More info over the usage of ANSI control characters for terminal formatting: https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters -# More info over awk command: http://linuxcommand.org/lc3_adv_awk.php -.PHONY: help -help: ## Display this help - @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) - -## -------------------------------------- -## Testing -## -------------------------------------- - -.PHONY: test -test: test-tools ## Run the script check-everything.sh which will check all. - TRACE=1 ./hack/check-everything.sh - -.PHONY: test-tools -test-tools: ## tests the tools codebase (setup-envtest) - cd tools/setup-envtest && go test ./... - -## -------------------------------------- -## Binaries -## -------------------------------------- - -$(GO_APIDIFF): $(TOOLS_DIR)/go.mod # Build go-apidiff from tools folder. - cd $(TOOLS_DIR) && go build -tags=tools -o bin/go-apidiff github.com/joelanford/go-apidiff - -$(CONTROLLER_GEN): $(TOOLS_DIR)/go.mod # Build controller-gen from tools folder. - cd $(TOOLS_DIR) && go build -tags=tools -o bin/controller-gen sigs.k8s.io/controller-tools/cmd/controller-gen - -$(GOLANGCI_LINT): .github/workflows/golangci-lint.yml # Download golanci-lint using hack script into tools folder. - hack/ensure-golangci-lint.sh \ - -b $(TOOLS_BIN_DIR) \ - $(shell cat .github/workflows/golangci-lint.yml | grep version | sed 's/.*version: //') - -## -------------------------------------- -## Linting -## -------------------------------------- - -.PHONY: lint -lint: $(GOLANGCI_LINT) ## Lint codebase - $(GOLANGCI_LINT) run -v $(GOLANGCI_LINT_EXTRA_ARGS) - cd tools/setup-envtest; $(GOLANGCI_LINT) run -v $(GOLANGCI_LINT_EXTRA_ARGS) - -.PHONY: lint-fix -lint-fix: $(GOLANGCI_LINT) ## Lint the codebase and run auto-fixers if supported by the linter. - GOLANGCI_LINT_EXTRA_ARGS=--fix $(MAKE) lint - -## -------------------------------------- -## Generate -## -------------------------------------- - -.PHONY: modules -modules: ## Runs go mod to ensure modules are up to date. - go mod tidy - cd $(TOOLS_DIR); go mod tidy - cd $(ENVTEST_DIR); go mod tidy - -.PHONY: generate -generate: $(CONTROLLER_GEN) ## Runs controller-gen for internal types for config file - $(CONTROLLER_GEN) object paths="./pkg/config/v1alpha1/...;./examples/configfile/custom/v1alpha1/..." - -## -------------------------------------- -## Cleanup / Verification -## -------------------------------------- - -.PHONY: clean -clean: ## Cleanup. - $(MAKE) clean-bin - -.PHONY: clean-bin -clean-bin: ## Remove all generated binaries. - rm -rf hack/tools/bin - -.PHONY: verify-modules -verify-modules: modules - @if !(git diff --quiet HEAD -- go.sum go.mod); then \ - echo "go module files are out of date, please run 'make modules'"; exit 1; \ - fi diff --git a/vendor/sigs.k8s.io/controller-runtime/OWNERS b/vendor/sigs.k8s.io/controller-runtime/OWNERS deleted file mode 100644 index 4b1fa044b..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/OWNERS +++ /dev/null @@ -1,10 +0,0 @@ -# See the OWNERS docs: https://git.k8s.io/community/contributors/guide/owners.md - -approvers: - - controller-runtime-admins - - controller-runtime-maintainers - - controller-runtime-approvers -reviewers: - - controller-runtime-admins - - controller-runtime-reviewers - - controller-runtime-approvers diff --git a/vendor/sigs.k8s.io/controller-runtime/OWNERS_ALIASES b/vendor/sigs.k8s.io/controller-runtime/OWNERS_ALIASES deleted file mode 100644 index 290dcc192..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/OWNERS_ALIASES +++ /dev/null @@ -1,40 +0,0 @@ -# See the OWNERS docs: https://git.k8s.io/community/contributors/guide/owners.md - -aliases: - # active folks who can be contacted to perform admin-related - # tasks on the repo, or otherwise approve any PRS. - controller-runtime-admins: - - droot - - mengqiy - - pwittrock - - # non-admin folks who have write-access and can approve any PRs in the repo - controller-runtime-maintainers: - - vincepri - - joelanford - - # non-admin folks who can approve any PRs in the repo - controller-runtime-approvers: - - gerred - - shawn-hurley - - alvaroaleman - - # folks who can review and LGTM any PRs in the repo (doesn't - # include approvers & admins -- those count too via the OWNERS - # file) - controller-runtime-reviewers: - - alenkacz - - vincepri - - alexeldeib - - varshaprasad96 - - # folks to can approve things in the directly-ported - # testing_frameworks portions of the codebase - testing-integration-approvers: - - apelisse - - hoegaarden - - # folks who may have context on ancient history, - # but are no longer directly involved - controller-runtime-emeritus-maintainers: - - directxman12 diff --git a/vendor/sigs.k8s.io/controller-runtime/README.md b/vendor/sigs.k8s.io/controller-runtime/README.md deleted file mode 100644 index d857d3e76..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/README.md +++ /dev/null @@ -1,66 +0,0 @@ -[![Go Report Card](https://goreportcard.com/badge/sigs.k8s.io/controller-runtime)](https://goreportcard.com/report/sigs.k8s.io/controller-runtime) -[![godoc](https://godoc.org/sigs.k8s.io/controller-runtime?status.svg)](https://godoc.org/sigs.k8s.io/controller-runtime) - -# Kubernetes controller-runtime Project - -The Kubernetes controller-runtime Project is a set of go libraries for building -Controllers. It is leveraged by [Kubebuilder](https://book.kubebuilder.io/) and -[Operator SDK](https://github.com/operator-framework/operator-sdk). Both are -a great place to start for new projects. See -[Kubebuilder's Quick Start](https://book.kubebuilder.io/quick-start.html) to -see how it can be used. - -Documentation: - -- [Package overview](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg) -- [Basic controller using builder](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/builder#example-Builder) -- [Creating a manager](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/manager#example-New) -- [Creating a controller](https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/controller#example-New) -- [Examples](https://github.com/kubernetes-sigs/controller-runtime/blob/master/examples) -- [Designs](https://github.com/kubernetes-sigs/controller-runtime/blob/master/designs) - -# Versioning, Maintenance, and Compatibility - -The full documentation can be found at [VERSIONING.md](VERSIONING.md), but TL;DR: - -Users: - -- We follow [Semantic Versioning (semver)](https://semver.org) -- Use releases with your dependency management to ensure that you get compatible code -- The master branch contains all the latest code, some of which may break compatibility (so "normal" `go get` is not recommended) - -Contributors: - -- All code PR must be labeled with :bug: (patch fixes), :sparkles: (backwards-compatible features), or :warning: (breaking changes) -- Breaking changes will find their way into the next major release, other changes will go into an semi-immediate patch or minor release -- For a quick PR template suggesting the right information, use one of these PR templates: - * [Breaking Changes/Features](/.github/PULL_REQUEST_TEMPLATE/breaking_change.md) - * [Backwards-Compatible Features](/.github/PULL_REQUEST_TEMPLATE/compat_feature.md) - * [Bug fixes](/.github/PULL_REQUEST_TEMPLATE/bug_fix.md) - * [Documentation Changes](/.github/PULL_REQUEST_TEMPLATE/docs.md) - * [Test/Build/Other Changes](/.github/PULL_REQUEST_TEMPLATE/other.md) - -## FAQ - -See [FAQ.md](FAQ.md) - -## Community, discussion, contribution, and support - -Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/). - -controller-runtime is a subproject of the [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) project -in sig apimachinery. - -You can reach the maintainers of this project at: - -- Slack channel: [#kubebuilder](http://slack.k8s.io/#kubebuilder) -- Google Group: [kubebuilder@googlegroups.com](https://groups.google.com/forum/#!forum/kubebuilder) - -## Contributing -Contributions are greatly appreciated. The maintainers actively manage the issues list, and try to highlight issues suitable for newcomers. -The project follows the typical GitHub pull request model. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details. -Before starting any work, please either comment on an existing issue, or file a new one. - -## Code of conduct - -Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md). diff --git a/vendor/sigs.k8s.io/controller-runtime/SECURITY_CONTACTS b/vendor/sigs.k8s.io/controller-runtime/SECURITY_CONTACTS deleted file mode 100644 index 32e6a3b90..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/SECURITY_CONTACTS +++ /dev/null @@ -1,14 +0,0 @@ -# Defined below are the security contacts for this repo. -# -# They are the contact point for the Product Security Team to reach out -# to for triaging and handling of incoming issues. -# -# The below names agree to abide by the -# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) -# and will be removed and replaced if they violate that agreement. -# -# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE -# INSTRUCTIONS AT https://kubernetes.io/security/ - -pwittrock -droot diff --git a/vendor/sigs.k8s.io/controller-runtime/TMP-LOGGING.md b/vendor/sigs.k8s.io/controller-runtime/TMP-LOGGING.md deleted file mode 100644 index b3cfc6651..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/TMP-LOGGING.md +++ /dev/null @@ -1,169 +0,0 @@ -Logging Guidelines -================== - -controller-runtime uses a kind of logging called *structured logging*. If -you've used a library like Zap or logrus before, you'll be familiar with -the concepts we use. If you've only used a logging library like the "log" -package (in the Go standard library) or "glog" (in Kubernetes), you'll -need to adjust how you think about logging a bit. - -### Getting Started With Structured Logging - -With structured logging, we associate a *constant* log message with some -variable key-value pairs. For instance, suppose we wanted to log that we -were starting reconciliation on a pod. In the Go standard library logger, -we might write: - -```go -log.Printf("starting reconciliation for pod %s/%s", podNamespace, podName) -``` - -In controller-runtime, we'd instead write: - -```go -logger.Info("starting reconciliation", "pod", req.NamespacedNamed) -``` - -or even write - -```go -func (r *Reconciler) Reconcile(req reconcile.Request) (reconcile.Response, error) { - logger := logger.WithValues("pod", req.NamespacedName) - // do some stuff - logger.Info("starting reconciliation") -} -``` - -Notice how we've broken out the information that we want to convey into -a constant message (`"starting reconciliation"`) and some key-value pairs -that convey variable information (`"pod", req.NamespacedName`). We've -there-by added "structure" to our logs, which makes them easier to save -and search later, as well as correlate with metrics and events. - -All of controller-runtime's logging is done via -[logr](https://github.com/go-logr/logr), a generic interface for -structured logging. You can use whichever logging library you want to -implement the actual mechanics of the logging. controller-runtime -provides some helpers to make it easy to use -[Zap](https://go.uber.org/zap) as the implementation. - -You can configure the logging implementation using -`"sigs.k8s.io/controller-runtime/pkg/log".SetLogger`. That -package also contains the convenience functions for setting up Zap. - -You can get a handle to the the "root" logger using -`"sigs.k8s.io/controller-runtime/pkg/log".Log`, and can then call -`WithName` to create individual named loggers. You can call `WithName` -repeatedly to chain names together: - -```go -logger := log.Log.WithName("controller").WithName("replicaset") -// in reconcile... -logger = logger.WithValues("replicaset", req.NamespacedName) -// later on in reconcile... -logger.Info("doing things with pods", "pod", newPod) -``` - -As seen above, you can also call `WithValue` to create a new sub-logger -that always attaches some key-value pairs to a logger. - -Finally, you can use `V(1)` to mark a particular log line as "debug" logs: - -```go -logger.V(1).Info("this is particularly verbose!", "state of the world", -allKubernetesObjectsEverywhere) -``` - -While it's possible to use higher log levels, it's recommended that you -stick with `V(1)` or `V(0)` (which is equivalent to not specifying `V`), -and then filter later based on key-value pairs or messages; different -numbers tend to lose meaning easily over time, and you'll be left -wondering why particular logs lines are at `V(5)` instead of `V(7)`. - -## Logging errors - -Errors should *always* be logged with `log.Error`, which allows logr -implementations to provide special handling of errors (for instance, -providing stack traces in debug mode). - -It's acceptable to log call `log.Error` with a nil error object. This -conveys that an error occurred in some capacity, but that no actual -`error` object was involved. - -Errors returned by the `Reconcile` implementation of the `Reconciler` interface are commonly logged as a `Reconciler error`. -It's a developer choice to create an additional error log in the `Reconcile` implementation so a more specific file name and line for the error are returned. - -## Logging messages - -- Don't put variable content in your messages -- use key-value pairs for - that. Never use `fmt.Sprintf` in your message. - -- Try to match the terminology in your messages with your key-value pairs - -- for instance, if you have a key-value pairs `api version`, use the - term `APIVersion` instead of `GroupVersion` in your message. - -## Logging Kubernetes Objects - -Kubernetes objects should be logged directly, like `log.Info("this is -a Kubernetes object", "pod", somePod)`. controller-runtime provides -a special encoder for Zap that will transform Kubernetes objects into -`name, namespace, apiVersion, kind` objects, when available and not in -development mode. Other logr implementations should implement similar -logic. - -## Logging Structured Values (Key-Value pairs) - -- Use lower-case, space separated keys. For example `object` for objects, - `api version` for `APIVersion` - -- Be consistent across your application, and with controller-runtime when - possible. - -- Try to be brief but descriptive. - -- Match terminology in keys with terminology in the message. - -- Be careful logging non-Kubernetes objects verbatim if they're very - large. - -### Groups, Versions, and Kinds - -- Kinds should not be logged alone (they're meaningless alone). Use - a `GroupKind` object to log them instead, or a `GroupVersionKind` when - version is relevant. - -- If you need to log an API version string, use `api version` as the key - (formatted as with a `GroupVersion`, or as received directly from API - discovery). - -### Objects and Types - -- If code works with a generic Kubernetes `runtime.Object`, use the - `object` key. For specific objects, prefer the resource name as the key - (e.g. `pod` for `v1.Pod` objects). - -- For non-Kubernetes objects, the `object` key may also be used, if you - accept a generic interface. - -- When logging a raw type, log it using the `type` key, with a value of - `fmt.Sprintf("%T", typ)` - -- If there's specific context around a type, the key may be more specific, - but should end with `type` -- for instance, `OwnerType` should be logged - as `owner` in the context of `log.Error(err, "Could not get ObjectKinds - for OwnerType", `owner type`, fmt.Sprintf("%T"))`. When possible, favor - communicating kind instead. - -### Multiple things - -- When logging multiple things, simply pluralize the key. - -### controller-runtime Specifics - -- Reconcile requests should be logged as `request`, although normal code - should favor logging the key. - -- Reconcile keys should be logged as with the same key as if you were - logging the object directly (e.g. `log.Info("reconciling pod", "pod", - req.NamespacedName)`). This ends up having a similar effect to logging - the object directly. diff --git a/vendor/sigs.k8s.io/controller-runtime/VERSIONING.md b/vendor/sigs.k8s.io/controller-runtime/VERSIONING.md deleted file mode 100644 index 18779000e..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/VERSIONING.md +++ /dev/null @@ -1,30 +0,0 @@ -# Versioning and Branching in controller-runtime - -We follow the [common KubeBuilder versioning guidelines][guidelines], and -use the corresponding tooling. - -For the purposes of the aforementioned guidelines, controller-runtime -counts as a "library project", but otherwise follows the guidelines -exactly. - -[guidelines]: https://sigs.k8s.io/kubebuilder-release-tools/VERSIONING.md - -## Compatiblity and Release Support - -For release branches, we generally tend to support backporting one (1) -major release (`release-{X-1}` or `release-0.{Y-1}`), but may go back -further if the need arises and is very pressing (e.g. security updates). - -### Dependency Support - -Note the [guidelines on dependency versions][dep-versions]. Particularly: - -- We **DO** guarantee Kubernetes REST API compability -- if a given - version of controller-runtime stops working with what should be - a supported version of Kubernetes, this is almost certainly a bug. - -- We **DO NOT** guarantee any particular compability matrix between - kubernetes library dependencies (client-go, apimachinery, etc); Such - compability is infeasible due to the way those libraries are versioned. - -[dep-versions]: https://sigs.k8s.io/kubebuilder-release-tools/VERSIONING.md#kubernetes-version-compatibility diff --git a/vendor/sigs.k8s.io/controller-runtime/alias.go b/vendor/sigs.k8s.io/controller-runtime/alias.go deleted file mode 100644 index 29f964dcb..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/alias.go +++ /dev/null @@ -1,150 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllerruntime - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/builder" - "sigs.k8s.io/controller-runtime/pkg/client/config" - cfg "sigs.k8s.io/controller-runtime/pkg/config" - "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - "sigs.k8s.io/controller-runtime/pkg/log" - "sigs.k8s.io/controller-runtime/pkg/manager" - "sigs.k8s.io/controller-runtime/pkg/manager/signals" - "sigs.k8s.io/controller-runtime/pkg/reconcile" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -// Builder builds an Application ControllerManagedBy (e.g. Operator) and returns a manager.Manager to start it. -type Builder = builder.Builder - -// Request contains the information necessary to reconcile a Kubernetes object. This includes the -// information to uniquely identify the object - its Name and Namespace. It does NOT contain information about -// any specific Event or the object contents itself. -type Request = reconcile.Request - -// Result contains the result of a Reconciler invocation. -type Result = reconcile.Result - -// Manager initializes shared dependencies such as Caches and Clients, and provides them to Runnables. -// A Manager is required to create Controllers. -type Manager = manager.Manager - -// Options are the arguments for creating a new Manager. -type Options = manager.Options - -// SchemeBuilder builds a new Scheme for mapping go types to Kubernetes GroupVersionKinds. -type SchemeBuilder = scheme.Builder - -// GroupVersion contains the "group" and the "version", which uniquely identifies the API. -type GroupVersion = schema.GroupVersion - -// GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying -// concepts during lookup stages without having partially valid types. -type GroupResource = schema.GroupResource - -// TypeMeta describes an individual object in an API response or request -// with strings representing the type of the object and its API schema version. -// Structures that are versioned or persisted should inline TypeMeta. -// -// +k8s:deepcopy-gen=false -type TypeMeta = metav1.TypeMeta - -// ObjectMeta is metadata that all persisted resources must have, which includes all objects -// users must create. -type ObjectMeta = metav1.ObjectMeta - -var ( - // GetConfigOrDie creates a *rest.Config for talking to a Kubernetes apiserver. - // If --kubeconfig is set, will use the kubeconfig file at that location. Otherwise will assume running - // in cluster and use the cluster provided kubeconfig. - // - // Will log an error and exit if there is an error creating the rest.Config. - GetConfigOrDie = config.GetConfigOrDie - - // GetConfig creates a *rest.Config for talking to a Kubernetes apiserver. - // If --kubeconfig is set, will use the kubeconfig file at that location. Otherwise will assume running - // in cluster and use the cluster provided kubeconfig. - // - // Config precedence - // - // * --kubeconfig flag pointing at a file - // - // * KUBECONFIG environment variable pointing at a file - // - // * In-cluster config if running in cluster - // - // * $HOME/.kube/config if exists. - GetConfig = config.GetConfig - - // ConfigFile returns the cfg.File function for deferred config file loading, - // this is passed into Options{}.From() to populate the Options fields for - // the manager. - ConfigFile = cfg.File - - // NewControllerManagedBy returns a new controller builder that will be started by the provided Manager. - NewControllerManagedBy = builder.ControllerManagedBy - - // NewWebhookManagedBy returns a new webhook builder that will be started by the provided Manager. - NewWebhookManagedBy = builder.WebhookManagedBy - - // NewManager returns a new Manager for creating Controllers. - NewManager = manager.New - - // CreateOrUpdate creates or updates the given object obj in the Kubernetes - // cluster. The object's desired state should be reconciled with the existing - // state using the passed in ReconcileFn. obj must be a struct pointer so that - // obj can be updated with the content returned by the Server. - // - // It returns the executed operation and an error. - CreateOrUpdate = controllerutil.CreateOrUpdate - - // SetControllerReference sets owner as a Controller OwnerReference on owned. - // This is used for garbage collection of the owned object and for - // reconciling the owner object on changes to owned (with a Watch + EnqueueRequestForOwner). - // Since only one OwnerReference can be a controller, it returns an error if - // there is another OwnerReference with Controller flag set. - SetControllerReference = controllerutil.SetControllerReference - - // SetupSignalHandler registered for SIGTERM and SIGINT. A stop channel is returned - // which is closed on one of these signals. If a second signal is caught, the program - // is terminated with exit code 1. - SetupSignalHandler = signals.SetupSignalHandler - - // Log is the base logger used by controller-runtime. It delegates - // to another logr.Logger. You *must* call SetLogger to - // get any actual logging. - Log = log.Log - - // LoggerFrom returns a logger with predefined values from a context.Context. - // The logger, when used with controllers, can be expected to contain basic information about the object - // that's being reconciled like: - // - `reconciler group` and `reconciler kind` coming from the For(...) object passed in when building a controller. - // - `name` and `namespace` injected from the reconciliation request. - // - // This is meant to be used with the context supplied in a struct that satisfies the Reconciler interface. - LoggerFrom = log.FromContext - - // LoggerInto takes a context and sets the logger as one of its keys. - // - // This is meant to be used in reconcilers to enrich the logger within a context with additional values. - LoggerInto = log.IntoContext - - // SetLogger sets a concrete logging implementation for all deferred Loggers. - SetLogger = log.SetLogger -) diff --git a/vendor/sigs.k8s.io/controller-runtime/code-of-conduct.md b/vendor/sigs.k8s.io/controller-runtime/code-of-conduct.md deleted file mode 100644 index 0d15c00cf..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/code-of-conduct.md +++ /dev/null @@ -1,3 +0,0 @@ -# Kubernetes Community Code of Conduct - -Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/vendor/sigs.k8s.io/controller-runtime/doc.go b/vendor/sigs.k8s.io/controller-runtime/doc.go deleted file mode 100644 index 429eb129f..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/doc.go +++ /dev/null @@ -1,127 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package controllerruntime provides tools to construct Kubernetes-style -// controllers that manipulate both Kubernetes CRDs and aggregated/built-in -// Kubernetes APIs. -// -// It defines easy helpers for the common use cases when building CRDs, built -// on top of customizable layers of abstraction. Common cases should be easy, -// and uncommon cases should be possible. In general, controller-runtime tries -// to guide users towards Kubernetes controller best-practices. -// -// Getting Started -// -// The main entrypoint for controller-runtime is this root package, which -// contains all of the common types needed to get started building controllers: -// import ( -// ctrl "sigs.k8s.io/controller-runtime" -// ) -// -// The examples in this package walk through a basic controller setup. The -// kubebuilder book (https://book.kubebuilder.io) has some more in-depth -// walkthroughs. -// -// controller-runtime favors structs with sane defaults over constructors, so -// it's fairly common to see structs being used directly in controller-runtime. -// -// Organization -// -// A brief-ish walkthrough of the layout of this library can be found below. Each -// package contains more information about how to use it. -// -// Frequently asked questions about using controller-runtime and designing -// controllers can be found at -// https://github.com/kubernetes-sigs/controller-runtime/blob/master/FAQ.md. -// -// Managers -// -// Every controller and webhook is ultimately run by a Manager (pkg/manager). A -// manager is responsible for running controllers and webhooks, and setting up -// common dependencies (pkg/runtime/inject), like shared caches and clients, as -// well as managing leader election (pkg/leaderelection). Managers are -// generally configured to gracefully shut down controllers on pod termination -// by wiring up a signal handler (pkg/manager/signals). -// -// Controllers -// -// Controllers (pkg/controller) use events (pkg/event) to eventually trigger -// reconcile requests. They may be constructed manually, but are often -// constructed with a Builder (pkg/builder), which eases the wiring of event -// sources (pkg/source), like Kubernetes API object changes, to event handlers -// (pkg/handler), like "enqueue a reconcile request for the object owner". -// Predicates (pkg/predicate) can be used to filter which events actually -// trigger reconciles. There are pre-written utilities for the common cases, and -// interfaces and helpers for advanced cases. -// -// Reconcilers -// -// Controller logic is implemented in terms of Reconcilers (pkg/reconcile). A -// Reconciler implements a function which takes a reconcile Request containing -// the name and namespace of the object to reconcile, reconciles the object, -// and returns a Response or an error indicating whether to requeue for a -// second round of processing. -// -// Clients and Caches -// -// Reconcilers use Clients (pkg/client) to access API objects. The default -// client provided by the manager reads from a local shared cache (pkg/cache) -// and writes directly to the API server, but clients can be constructed that -// only talk to the API server, without a cache. The Cache will auto-populate -// with watched objects, as well as when other structured objects are -// requested. The default split client does not promise to invalidate the cache -// during writes (nor does it promise sequential create/get coherence), and code -// should not assume a get immediately following a create/update will return -// the updated resource. Caches may also have indexes, which can be created via -// a FieldIndexer (pkg/client) obtained from the manager. Indexes can used to -// quickly and easily look up all objects with certain fields set. Reconcilers -// may retrieve event recorders (pkg/recorder) to emit events using the -// manager. -// -// Schemes -// -// Clients, Caches, and many other things in Kubernetes use Schemes -// (pkg/scheme) to associate Go types to Kubernetes API Kinds -// (Group-Version-Kinds, to be specific). -// -// Webhooks -// -// Similarly, webhooks (pkg/webhook/admission) may be implemented directly, but -// are often constructed using a builder (pkg/webhook/admission/builder). They -// are run via a server (pkg/webhook) which is managed by a Manager. -// -// Logging and Metrics -// -// Logging (pkg/log) in controller-runtime is done via structured logs, using a -// log set of interfaces called logr -// (https://godoc.org/github.com/go-logr/logr). While controller-runtime -// provides easy setup for using Zap (https://go.uber.org/zap, pkg/log/zap), -// you can provide any implementation of logr as the base logger for -// controller-runtime. -// -// Metrics (pkg/metrics) provided by controller-runtime are registered into a -// controller-runtime-specific Prometheus metrics registry. The manager can -// serve these by an HTTP endpoint, and additional metrics may be registered to -// this Registry as normal. -// -// Testing -// -// You can easily build integration and unit tests for your controllers and -// webhooks using the test Environment (pkg/envtest). This will automatically -// stand up a copy of etcd and kube-apiserver, and provide the correct options -// to connect to the API server. It's designed to work well with the Ginkgo -// testing framework, but should work with any testing setup. -package controllerruntime diff --git a/vendor/sigs.k8s.io/controller-runtime/go.mod b/vendor/sigs.k8s.io/controller-runtime/go.mod deleted file mode 100644 index c843d2031..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/go.mod +++ /dev/null @@ -1,66 +0,0 @@ -module sigs.k8s.io/controller-runtime - -go 1.17 - -require ( - github.com/evanphx/json-patch v4.12.0+incompatible - github.com/fsnotify/fsnotify v1.5.1 - github.com/go-logr/logr v1.2.0 - github.com/go-logr/zapr v1.2.0 - github.com/onsi/ginkgo v1.16.5 - github.com/onsi/gomega v1.17.0 - github.com/prometheus/client_golang v1.11.0 - github.com/prometheus/client_model v0.2.0 - go.uber.org/goleak v1.1.12 - go.uber.org/zap v1.19.1 - golang.org/x/sys v0.0.0-20211029165221-6e7872819dc8 - golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac - gomodules.xyz/jsonpatch/v2 v2.2.0 - k8s.io/api v0.23.0 - k8s.io/apiextensions-apiserver v0.23.0 - k8s.io/apimachinery v0.23.0 - k8s.io/client-go v0.23.0 - k8s.io/component-base v0.23.0 - k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b - sigs.k8s.io/yaml v1.3.0 -) - -require ( - cloud.google.com/go v0.81.0 // indirect - github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.2 // indirect - github.com/google/go-cmp v0.5.5 // indirect - github.com/google/gofuzz v1.1.0 // indirect - github.com/google/uuid v1.1.2 // indirect - github.com/googleapis/gnostic v0.5.5 // indirect - github.com/imdario/mergo v0.3.12 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/nxadm/tail v1.4.8 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/common v0.28.0 // indirect - github.com/prometheus/procfs v0.6.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - go.uber.org/atomic v1.7.0 // indirect - go.uber.org/multierr v1.6.0 // indirect - golang.org/x/net v0.0.0-20210825183410-e898025ed96a // indirect - golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f // indirect - golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b // indirect - golang.org/x/text v0.3.7 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.27.1 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect - k8s.io/klog/v2 v2.30.0 // indirect - k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect - sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.0 // indirect -) diff --git a/vendor/sigs.k8s.io/controller-runtime/go.sum b/vendor/sigs.k8s.io/controller-runtime/go.sum deleted file mode 100644 index 1872ab8ce..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/go.sum +++ /dev/null @@ -1,951 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -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/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/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-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -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/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -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/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -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/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/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= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -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/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -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/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/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.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -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/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= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -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= -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= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk= -github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -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= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -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/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= -github.com/google/cel-go v0.9.0/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w= -github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= -github.com/google/uuid v1.1.2/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.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/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -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= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -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/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -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.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -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/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= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -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/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -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/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.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -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-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -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-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/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/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -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/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -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.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= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -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= -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= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= -go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= -go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -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.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/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= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -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-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -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= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -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= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -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-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 h1:bRuuGXV8wwSdGTB+CtJf+FjgO1APK1CoO39T4BN/XBw= -golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -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-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= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -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-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-20210510120138-977fb7262007/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-20211029165221-6e7872819dc8 h1:M69LAlWZCshgp0QSzyDcSsSIejIEeuaCVpmwcKwyLMk= -golang.org/x/sys v0.0.0-20211029165221-6e7872819dc8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b h1:9zKuko04nR4gjZ4+DNjHqRlAJqbJETHwiNKDqTfOjfE= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/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-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff h1:VX/uD7MK0AHXGiScH3fsieUQUcpmRERPDYtqZdJnA+Q= -golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= -gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -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/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.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.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= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -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/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= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -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/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.23.0 h1:WrL1gb73VSC8obi8cuYETJGXEoFNEh3LU0Pt+Sokgro= -k8s.io/api v0.23.0/go.mod h1:8wmDdLBHBNxtOIytwLstXt5E9PddnZb0GaMcqsvDBpg= -k8s.io/apiextensions-apiserver v0.23.0 h1:uii8BYmHYiT2ZTAJxmvc3X8UhNYMxl2A0z0Xq3Pm+WY= -k8s.io/apiextensions-apiserver v0.23.0/go.mod h1:xIFAEEDlAZgpVBl/1VSjGDmLoXAWRG40+GsWhKhAxY4= -k8s.io/apimachinery v0.23.0 h1:mIfWRMjBuMdolAWJ3Fd+aPTMv3X9z+waiARMpvvb0HQ= -k8s.io/apimachinery v0.23.0/go.mod h1:fFCTTBKvKcwTPFzjlcxp91uPFZr+JA0FubU4fLzzFYc= -k8s.io/apiserver v0.23.0/go.mod h1:Cec35u/9zAepDPPFyT+UMrgqOCjgJ5qtfVJDxjZYmt4= -k8s.io/client-go v0.23.0 h1:vcsOqyPq7XV3QmQRCBH/t9BICJM9Q1M18qahjv+rebY= -k8s.io/client-go v0.23.0/go.mod h1:hrDnpnK1mSr65lHHcUuIZIXDgEbzc7/683c6hyG4jTA= -k8s.io/code-generator v0.23.0/go.mod h1:vQvOhDXhuzqiVfM/YHp+dmg10WDZCchJVObc9MvowsE= -k8s.io/component-base v0.23.0 h1:UAnyzjvVZ2ZR1lF35YwtNY6VMN94WtOnArcXBu34es8= -k8s.io/component-base v0.23.0/go.mod h1:DHH5uiFvLC1edCpvcTDV++NKULdYYU6pR9Tt3HIKMKI= -k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= -k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -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/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.25/go.mod h1:Mlj9PNLmG9bZ6BHFwFKDo5afkpWyUISkb9Me0GnK66I= -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/structured-merge-diff/v4 v4.0.2/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 h1:kDvPBbnPk+qYmkHmSo8vKGp438IASWofnbbUKDE/bv0= -sigs.k8s.io/structured-merge-diff/v4 v4.2.0/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go b/vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go deleted file mode 100644 index 9a74d6ec9..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/controller.go +++ /dev/null @@ -1,316 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package builder - -import ( - "fmt" - "strings" - - "github.com/go-logr/logr" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/client/apiutil" - "sigs.k8s.io/controller-runtime/pkg/controller" - "sigs.k8s.io/controller-runtime/pkg/handler" - "sigs.k8s.io/controller-runtime/pkg/manager" - "sigs.k8s.io/controller-runtime/pkg/predicate" - "sigs.k8s.io/controller-runtime/pkg/reconcile" - "sigs.k8s.io/controller-runtime/pkg/source" -) - -// Supporting mocking out functions for testing. -var newController = controller.New -var getGvk = apiutil.GVKForObject - -// project represents other forms that the we can use to -// send/receive a given resource (metadata-only, unstructured, etc). -type objectProjection int - -const ( - // projectAsNormal doesn't change the object from the form given. - projectAsNormal objectProjection = iota - // projectAsMetadata turns this into an metadata-only watch. - projectAsMetadata -) - -// Builder builds a Controller. -type Builder struct { - forInput ForInput - ownsInput []OwnsInput - watchesInput []WatchesInput - mgr manager.Manager - globalPredicates []predicate.Predicate - ctrl controller.Controller - ctrlOptions controller.Options - name string -} - -// ControllerManagedBy returns a new controller builder that will be started by the provided Manager. -func ControllerManagedBy(m manager.Manager) *Builder { - return &Builder{mgr: m} -} - -// ForInput represents the information set by For method. -type ForInput struct { - object client.Object - predicates []predicate.Predicate - objectProjection objectProjection - err error -} - -// For defines the type of Object being *reconciled*, and configures the ControllerManagedBy to respond to create / delete / -// update events by *reconciling the object*. -// This is the equivalent of calling -// Watches(&source.Kind{Type: apiType}, &handler.EnqueueRequestForObject{}). -func (blder *Builder) For(object client.Object, opts ...ForOption) *Builder { - if blder.forInput.object != nil { - blder.forInput.err = fmt.Errorf("For(...) should only be called once, could not assign multiple objects for reconciliation") - return blder - } - input := ForInput{object: object} - for _, opt := range opts { - opt.ApplyToFor(&input) - } - - blder.forInput = input - return blder -} - -// OwnsInput represents the information set by Owns method. -type OwnsInput struct { - object client.Object - predicates []predicate.Predicate - objectProjection objectProjection -} - -// Owns defines types of Objects being *generated* by the ControllerManagedBy, and configures the ControllerManagedBy to respond to -// create / delete / update events by *reconciling the owner object*. This is the equivalent of calling -// Watches(&source.Kind{Type: }, &handler.EnqueueRequestForOwner{OwnerType: apiType, IsController: true}). -func (blder *Builder) Owns(object client.Object, opts ...OwnsOption) *Builder { - input := OwnsInput{object: object} - for _, opt := range opts { - opt.ApplyToOwns(&input) - } - - blder.ownsInput = append(blder.ownsInput, input) - return blder -} - -// WatchesInput represents the information set by Watches method. -type WatchesInput struct { - src source.Source - eventhandler handler.EventHandler - predicates []predicate.Predicate - objectProjection objectProjection -} - -// Watches exposes the lower-level ControllerManagedBy Watches functions through the builder. Consider using -// Owns or For instead of Watches directly. -// Specified predicates are registered only for given source. -func (blder *Builder) Watches(src source.Source, eventhandler handler.EventHandler, opts ...WatchesOption) *Builder { - input := WatchesInput{src: src, eventhandler: eventhandler} - for _, opt := range opts { - opt.ApplyToWatches(&input) - } - - blder.watchesInput = append(blder.watchesInput, input) - return blder -} - -// WithEventFilter sets the event filters, to filter which create/update/delete/generic events eventually -// trigger reconciliations. For example, filtering on whether the resource version has changed. -// Given predicate is added for all watched objects. -// Defaults to the empty list. -func (blder *Builder) WithEventFilter(p predicate.Predicate) *Builder { - blder.globalPredicates = append(blder.globalPredicates, p) - return blder -} - -// WithOptions overrides the controller options use in doController. Defaults to empty. -func (blder *Builder) WithOptions(options controller.Options) *Builder { - blder.ctrlOptions = options - return blder -} - -// WithLogger overrides the controller options's logger used. -func (blder *Builder) WithLogger(log logr.Logger) *Builder { - blder.ctrlOptions.Log = log - return blder -} - -// Named sets the name of the controller to the given name. The name shows up -// in metrics, among other things, and thus should be a prometheus compatible name -// (underscores and alphanumeric characters only). -// -// By default, controllers are named using the lowercase version of their kind. -func (blder *Builder) Named(name string) *Builder { - blder.name = name - return blder -} - -// Complete builds the Application Controller. -func (blder *Builder) Complete(r reconcile.Reconciler) error { - _, err := blder.Build(r) - return err -} - -// Build builds the Application Controller and returns the Controller it created. -func (blder *Builder) Build(r reconcile.Reconciler) (controller.Controller, error) { - if r == nil { - return nil, fmt.Errorf("must provide a non-nil Reconciler") - } - if blder.mgr == nil { - return nil, fmt.Errorf("must provide a non-nil Manager") - } - if blder.forInput.err != nil { - return nil, blder.forInput.err - } - // Checking the reconcile type exist or not - if blder.forInput.object == nil { - return nil, fmt.Errorf("must provide an object for reconciliation") - } - - // Set the ControllerManagedBy - if err := blder.doController(r); err != nil { - return nil, err - } - - // Set the Watch - if err := blder.doWatch(); err != nil { - return nil, err - } - - return blder.ctrl, nil -} - -func (blder *Builder) project(obj client.Object, proj objectProjection) (client.Object, error) { - switch proj { - case projectAsNormal: - return obj, nil - case projectAsMetadata: - metaObj := &metav1.PartialObjectMetadata{} - gvk, err := getGvk(obj, blder.mgr.GetScheme()) - if err != nil { - return nil, fmt.Errorf("unable to determine GVK of %T for a metadata-only watch: %w", obj, err) - } - metaObj.SetGroupVersionKind(gvk) - return metaObj, nil - default: - panic(fmt.Sprintf("unexpected projection type %v on type %T, should not be possible since this is an internal field", proj, obj)) - } -} - -func (blder *Builder) doWatch() error { - // Reconcile type - typeForSrc, err := blder.project(blder.forInput.object, blder.forInput.objectProjection) - if err != nil { - return err - } - src := &source.Kind{Type: typeForSrc} - hdler := &handler.EnqueueRequestForObject{} - allPredicates := append(blder.globalPredicates, blder.forInput.predicates...) - if err := blder.ctrl.Watch(src, hdler, allPredicates...); err != nil { - return err - } - - // Watches the managed types - for _, own := range blder.ownsInput { - typeForSrc, err := blder.project(own.object, own.objectProjection) - if err != nil { - return err - } - src := &source.Kind{Type: typeForSrc} - hdler := &handler.EnqueueRequestForOwner{ - OwnerType: blder.forInput.object, - IsController: true, - } - allPredicates := append([]predicate.Predicate(nil), blder.globalPredicates...) - allPredicates = append(allPredicates, own.predicates...) - if err := blder.ctrl.Watch(src, hdler, allPredicates...); err != nil { - return err - } - } - - // Do the watch requests - for _, w := range blder.watchesInput { - allPredicates := append([]predicate.Predicate(nil), blder.globalPredicates...) - allPredicates = append(allPredicates, w.predicates...) - - // If the source of this watch is of type *source.Kind, project it. - if srckind, ok := w.src.(*source.Kind); ok { - typeForSrc, err := blder.project(srckind.Type, w.objectProjection) - if err != nil { - return err - } - srckind.Type = typeForSrc - } - - if err := blder.ctrl.Watch(w.src, w.eventhandler, allPredicates...); err != nil { - return err - } - } - return nil -} - -func (blder *Builder) getControllerName(gvk schema.GroupVersionKind) string { - if blder.name != "" { - return blder.name - } - return strings.ToLower(gvk.Kind) -} - -func (blder *Builder) doController(r reconcile.Reconciler) error { - globalOpts := blder.mgr.GetControllerOptions() - - ctrlOptions := blder.ctrlOptions - if ctrlOptions.Reconciler == nil { - ctrlOptions.Reconciler = r - } - - // Retrieve the GVK from the object we're reconciling - // to prepopulate logger information, and to optionally generate a default name. - gvk, err := getGvk(blder.forInput.object, blder.mgr.GetScheme()) - if err != nil { - return err - } - - // Setup concurrency. - if ctrlOptions.MaxConcurrentReconciles == 0 { - groupKind := gvk.GroupKind().String() - - if concurrency, ok := globalOpts.GroupKindConcurrency[groupKind]; ok && concurrency > 0 { - ctrlOptions.MaxConcurrentReconciles = concurrency - } - } - - // Setup cache sync timeout. - if ctrlOptions.CacheSyncTimeout == 0 && globalOpts.CacheSyncTimeout != nil { - ctrlOptions.CacheSyncTimeout = *globalOpts.CacheSyncTimeout - } - - // Setup the logger. - if ctrlOptions.Log.GetSink() == nil { - ctrlOptions.Log = blder.mgr.GetLogger() - } - ctrlOptions.Log = ctrlOptions.Log.WithValues("reconciler group", gvk.Group, "reconciler kind", gvk.Kind) - - // Build the controller and return. - blder.ctrl, err = newController(blder.getControllerName(gvk), blder.mgr, ctrlOptions) - return err -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/options.go b/vendor/sigs.k8s.io/controller-runtime/pkg/builder/options.go deleted file mode 100644 index 7bb427309..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/options.go +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package builder - -import ( - "sigs.k8s.io/controller-runtime/pkg/predicate" -) - -// {{{ "Functional" Option Interfaces - -// ForOption is some configuration that modifies options for a For request. -type ForOption interface { - // ApplyToFor applies this configuration to the given for input. - ApplyToFor(*ForInput) -} - -// OwnsOption is some configuration that modifies options for a owns request. -type OwnsOption interface { - // ApplyToOwns applies this configuration to the given owns input. - ApplyToOwns(*OwnsInput) -} - -// WatchesOption is some configuration that modifies options for a watches request. -type WatchesOption interface { - // ApplyToWatches applies this configuration to the given watches options. - ApplyToWatches(*WatchesInput) -} - -// }}} - -// {{{ Multi-Type Options - -// WithPredicates sets the given predicates list. -func WithPredicates(predicates ...predicate.Predicate) Predicates { - return Predicates{ - predicates: predicates, - } -} - -// Predicates filters events before enqueuing the keys. -type Predicates struct { - predicates []predicate.Predicate -} - -// ApplyToFor applies this configuration to the given ForInput options. -func (w Predicates) ApplyToFor(opts *ForInput) { - opts.predicates = w.predicates -} - -// ApplyToOwns applies this configuration to the given OwnsInput options. -func (w Predicates) ApplyToOwns(opts *OwnsInput) { - opts.predicates = w.predicates -} - -// ApplyToWatches applies this configuration to the given WatchesInput options. -func (w Predicates) ApplyToWatches(opts *WatchesInput) { - opts.predicates = w.predicates -} - -var _ ForOption = &Predicates{} -var _ OwnsOption = &Predicates{} -var _ WatchesOption = &Predicates{} - -// }}} - -// {{{ For & Owns Dual-Type options - -// asProjection configures the projection (currently only metadata) on the input. -// Currently only metadata is supported. We might want to expand -// this to arbitrary non-special local projections in the future. -type projectAs objectProjection - -// ApplyToFor applies this configuration to the given ForInput options. -func (p projectAs) ApplyToFor(opts *ForInput) { - opts.objectProjection = objectProjection(p) -} - -// ApplyToOwns applies this configuration to the given OwnsInput options. -func (p projectAs) ApplyToOwns(opts *OwnsInput) { - opts.objectProjection = objectProjection(p) -} - -// ApplyToWatches applies this configuration to the given WatchesInput options. -func (p projectAs) ApplyToWatches(opts *WatchesInput) { - opts.objectProjection = objectProjection(p) -} - -var ( - // OnlyMetadata tells the controller to *only* cache metadata, and to watch - // the the API server in metadata-only form. This is useful when watching - // lots of objects, really big objects, or objects for which you only know - // the the GVK, but not the structure. You'll need to pass - // metav1.PartialObjectMetadata to the client when fetching objects in your - // reconciler, otherwise you'll end up with a duplicate structured or - // unstructured cache. - OnlyMetadata = projectAs(projectAsMetadata) - - _ ForOption = OnlyMetadata - _ OwnsOption = OnlyMetadata - _ WatchesOption = OnlyMetadata -) - -// }}} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/webhook.go b/vendor/sigs.k8s.io/controller-runtime/pkg/builder/webhook.go deleted file mode 100644 index 18feb1cd7..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/builder/webhook.go +++ /dev/null @@ -1,209 +0,0 @@ -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package builder - -import ( - "errors" - "net/http" - "net/url" - "strings" - - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/rest" - "sigs.k8s.io/controller-runtime/pkg/client/apiutil" - "sigs.k8s.io/controller-runtime/pkg/manager" - "sigs.k8s.io/controller-runtime/pkg/webhook/admission" - "sigs.k8s.io/controller-runtime/pkg/webhook/conversion" -) - -// WebhookBuilder builds a Webhook. -type WebhookBuilder struct { - apiType runtime.Object - withDefaulter admission.CustomDefaulter - withValidator admission.CustomValidator - gvk schema.GroupVersionKind - mgr manager.Manager - config *rest.Config -} - -// WebhookManagedBy allows inform its manager.Manager. -func WebhookManagedBy(m manager.Manager) *WebhookBuilder { - return &WebhookBuilder{mgr: m} -} - -// TODO(droot): update the GoDoc for conversion. - -// For takes a runtime.Object which should be a CR. -// If the given object implements the admission.Defaulter interface, a MutatingWebhook will be wired for this type. -// If the given object implements the admission.Validator interface, a ValidatingWebhook will be wired for this type. -func (blder *WebhookBuilder) For(apiType runtime.Object) *WebhookBuilder { - blder.apiType = apiType - return blder -} - -// WithDefaulter takes a admission.WithDefaulter interface, a MutatingWebhook will be wired for this type. -func (blder *WebhookBuilder) WithDefaulter(defaulter admission.CustomDefaulter) *WebhookBuilder { - blder.withDefaulter = defaulter - return blder -} - -// WithValidator takes a admission.WithValidator interface, a ValidatingWebhook will be wired for this type. -func (blder *WebhookBuilder) WithValidator(validator admission.CustomValidator) *WebhookBuilder { - blder.withValidator = validator - return blder -} - -// Complete builds the webhook. -func (blder *WebhookBuilder) Complete() error { - // Set the Config - blder.loadRestConfig() - - // Set the Webhook if needed - return blder.registerWebhooks() -} - -func (blder *WebhookBuilder) loadRestConfig() { - if blder.config == nil { - blder.config = blder.mgr.GetConfig() - } -} - -func (blder *WebhookBuilder) registerWebhooks() error { - typ, err := blder.getType() - if err != nil { - return err - } - - // Create webhook(s) for each type - blder.gvk, err = apiutil.GVKForObject(typ, blder.mgr.GetScheme()) - if err != nil { - return err - } - - blder.registerDefaultingWebhook() - blder.registerValidatingWebhook() - - err = blder.registerConversionWebhook() - if err != nil { - return err - } - return nil -} - -// registerDefaultingWebhook registers a defaulting webhook if th. -func (blder *WebhookBuilder) registerDefaultingWebhook() { - mwh := blder.getDefaultingWebhook() - if mwh != nil { - path := generateMutatePath(blder.gvk) - - // Checking if the path is already registered. - // If so, just skip it. - if !blder.isAlreadyHandled(path) { - log.Info("Registering a mutating webhook", - "GVK", blder.gvk, - "path", path) - blder.mgr.GetWebhookServer().Register(path, mwh) - } - } -} - -func (blder *WebhookBuilder) getDefaultingWebhook() *admission.Webhook { - if defaulter := blder.withDefaulter; defaulter != nil { - return admission.WithCustomDefaulter(blder.apiType, defaulter) - } - if defaulter, ok := blder.apiType.(admission.Defaulter); ok { - return admission.DefaultingWebhookFor(defaulter) - } - log.Info( - "skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called", - "GVK", blder.gvk) - return nil -} - -func (blder *WebhookBuilder) registerValidatingWebhook() { - vwh := blder.getValidatingWebhook() - if vwh != nil { - path := generateValidatePath(blder.gvk) - - // Checking if the path is already registered. - // If so, just skip it. - if !blder.isAlreadyHandled(path) { - log.Info("Registering a validating webhook", - "GVK", blder.gvk, - "path", path) - blder.mgr.GetWebhookServer().Register(path, vwh) - } - } -} - -func (blder *WebhookBuilder) getValidatingWebhook() *admission.Webhook { - if validator := blder.withValidator; validator != nil { - return admission.WithCustomValidator(blder.apiType, validator) - } - if validator, ok := blder.apiType.(admission.Validator); ok { - return admission.ValidatingWebhookFor(validator) - } - log.Info( - "skip registering a validating webhook, object does not implement admission.Validator or WithValidator wasn't called", - "GVK", blder.gvk) - return nil -} - -func (blder *WebhookBuilder) registerConversionWebhook() error { - ok, err := conversion.IsConvertible(blder.mgr.GetScheme(), blder.apiType) - if err != nil { - log.Error(err, "conversion check failed", "GVK", blder.gvk) - return err - } - if ok { - if !blder.isAlreadyHandled("/convert") { - blder.mgr.GetWebhookServer().Register("/convert", &conversion.Webhook{}) - } - log.Info("Conversion webhook enabled", "GVK", blder.gvk) - } - - return nil -} - -func (blder *WebhookBuilder) getType() (runtime.Object, error) { - if blder.apiType != nil { - return blder.apiType, nil - } - return nil, errors.New("For() must be called with a valid object") -} - -func (blder *WebhookBuilder) isAlreadyHandled(path string) bool { - if blder.mgr.GetWebhookServer().WebhookMux == nil { - return false - } - h, p := blder.mgr.GetWebhookServer().WebhookMux.Handler(&http.Request{URL: &url.URL{Path: path}}) - if p == path && h != nil { - return true - } - return false -} - -func generateMutatePath(gvk schema.GroupVersionKind) string { - return "/mutate-" + strings.ReplaceAll(gvk.Group, ".", "-") + "-" + - gvk.Version + "-" + strings.ToLower(gvk.Kind) -} - -func generateValidatePath(gvk schema.GroupVersionKind) string { - return "/validate-" + strings.ReplaceAll(gvk.Group, ".", "-") + "-" + - gvk.Version + "-" + strings.ToLower(gvk.Kind) -}