From cf162559e313d9c5b7b65693236c8eda32156f45 Mon Sep 17 00:00:00 2001 From: Zhengyi Lai Date: Wed, 10 Jun 2020 23:45:05 +0800 Subject: [PATCH] Refactor with OpenPitrix Signed-off-by: Zhengyi Lai (+2 squashed commits) --- Makefile | 3 + go.mod | 57 +- go.sum | 9 +- .../namespace/namespace_controller.go | 97 -- pkg/kapis/openpitrix/v1/handler.go | 65 +- pkg/kapis/openpitrix/v1/register.go | 62 +- pkg/models/openpitrix/applications.go | 18 +- pkg/simple/client/openpitrix/mock.go | 486 +++++---- pkg/simple/client/openpitrix/openpitrix.go | 50 +- vendor/modules.txt | 4 +- .../openpitrix/pkg/pb/cluster.pb.go | 994 +++++++++++------- .../openpitrix/pkg/pb/runtime.pb.go | 266 ++--- 12 files changed, 1242 insertions(+), 869 deletions(-) diff --git a/Makefile b/Makefile index 012aae22f..950bf7b88 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,9 @@ deploy: manifests generate: go generate ./pkg/... ./cmd/... +mockgen: + mockgen -package=openpitrix -source=pkg/simple/client/openpitrix/openpitrix.go -destination=pkg/simple/client/openpitrix/mock.go + deepcopy: GO111MODULE=on go install -mod=vendor k8s.io/code-generator/cmd/deepcopy-gen ${GOPATH}/bin/deepcopy-gen -i kubesphere.io/kubesphere/pkg/apis/... -h ./hack/boilerplate.go.txt -O zz_generated.deepcopy diff --git a/go.mod b/go.mod index 2f63fb758..61273d359 100644 --- a/go.mod +++ b/go.mod @@ -95,7 +95,7 @@ require ( k8s.io/klog v1.0.0 k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a k8s.io/kubectl v0.17.3 - openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c + openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797 sigs.k8s.io/controller-runtime v0.5.0 sigs.k8s.io/controller-tools v0.2.4 sigs.k8s.io/kubefed v0.2.0-alpha.1 @@ -114,13 +114,20 @@ replace ( github.com/Azure/go-autorest/tracing => github.com/Azure/go-autorest/tracing v0.5.0 github.com/BurntSushi/toml => github.com/BurntSushi/toml v0.3.1 github.com/MakeNowJust/heredoc => github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd + github.com/Masterminds/goutils => github.com/Masterminds/goutils v1.1.0 github.com/Masterminds/semver => github.com/Masterminds/semver v1.5.0 + github.com/Masterminds/semver/v3 => github.com/Masterminds/semver/v3 v3.0.1 + github.com/Masterminds/sprig/v3 => github.com/Masterminds/sprig/v3 v3.0.0 + github.com/Masterminds/vcs => github.com/Masterminds/vcs v1.13.0 github.com/Microsoft/go-winio => github.com/Microsoft/go-winio v0.4.12 + github.com/Microsoft/hcsshim => github.com/Microsoft/hcsshim v0.8.6 github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1 + github.com/Nvveen/Gotty => github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 github.com/OneOfOne/xxhash => github.com/OneOfOne/xxhash v1.2.2 github.com/PuerkitoBio/goquery => github.com/PuerkitoBio/goquery v1.5.0 github.com/PuerkitoBio/purell => github.com/PuerkitoBio/purell v1.1.1 github.com/PuerkitoBio/urlesc => github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 + github.com/Shopify/logrus-bugsnag => github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d github.com/StackExchange/wmi => github.com/StackExchange/wmi v0.0.0-20170410192909-ea383cf3ba6e github.com/alcortesm/tgz => github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc @@ -136,11 +143,17 @@ replace ( github.com/bitly/go-simplejson => github.com/bitly/go-simplejson v0.5.0 github.com/blang/semver => github.com/blang/semver v3.5.0+incompatible github.com/bmizerany/assert => github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 + github.com/bshuster-repo/logrus-logstash-hook => github.com/bshuster-repo/logrus-logstash-hook v0.4.1 + github.com/bugsnag/bugsnag-go => github.com/bugsnag/bugsnag-go v1.5.0 + github.com/bugsnag/panicwrap => github.com/bugsnag/panicwrap v1.2.0 github.com/cespare/xxhash => github.com/cespare/xxhash v1.1.0 github.com/chai2010/gettext-go => github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 + github.com/chai2010/jsonmap => github.com/chai2010/jsonmap v1.0.0 github.com/client9/misspell => github.com/client9/misspell v0.3.4 github.com/cockroachdb/datadriven => github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa github.com/container-storage-interface/spec => github.com/container-storage-interface/spec v1.2.0 + github.com/containerd/containerd => github.com/containerd/containerd v1.3.0 + github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 github.com/coreos/bbolt => github.com/coreos/bbolt v1.3.3 github.com/coreos/etcd => github.com/coreos/etcd v3.3.17+incompatible github.com/coreos/go-oidc => github.com/coreos/go-oidc v2.1.0+incompatible @@ -149,15 +162,22 @@ replace ( github.com/coreos/pkg => github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f github.com/cpuguy83/go-md2man => github.com/cpuguy83/go-md2man v1.0.10 github.com/creack/pty => github.com/creack/pty v1.1.7 + github.com/cyphar/filepath-securejoin => github.com/cyphar/filepath-securejoin v0.2.2 github.com/davecgh/go-spew => github.com/davecgh/go-spew v1.1.1 github.com/daviddengcn/go-colortext => github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd github.com/deckarep/golang-set => github.com/deckarep/golang-set v1.7.1 + github.com/deislabs/oras => github.com/deislabs/oras v0.7.0 github.com/denisenkom/go-mssqldb => github.com/denisenkom/go-mssqldb v0.0.0-20190204142019-df6d76eb9289 github.com/dgrijalva/jwt-go => github.com/dgrijalva/jwt-go v3.2.0+incompatible + github.com/disintegration/imaging => github.com/disintegration/imaging v1.6.1 + github.com/docker/cli => github.com/docker/cli v0.0.0-20190506213505-d88565df0c2d github.com/docker/distribution => github.com/docker/distribution v2.7.1+incompatible github.com/docker/docker => github.com/docker/engine v1.4.2-0.20190822205725-ed20165a37b4 + github.com/docker/docker-credential-helpers => github.com/docker/docker-credential-helpers v0.6.1 github.com/docker/go-connections => github.com/docker/go-connections v0.3.0 + github.com/docker/go-metrics => github.com/docker/go-metrics v0.0.0-20181218153428-b84716841b82 github.com/docker/go-units => github.com/docker/go-units v0.3.3 + github.com/docker/libtrust => github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 github.com/docker/spdystream => github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c github.com/docopt/docopt-go => github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 github.com/dustin/go-humanize => github.com/dustin/go-humanize v1.0.0 @@ -177,7 +197,10 @@ replace ( github.com/fatih/structs => github.com/fatih/structs v1.1.0 github.com/flynn/go-shlex => github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 github.com/fsnotify/fsnotify => github.com/fsnotify/fsnotify v1.4.7 + github.com/garyburd/redigo => github.com/garyburd/redigo v1.6.0 github.com/ghodss/yaml => github.com/ghodss/yaml v1.0.0 + github.com/gin-contrib/sse => github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3 + github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.4.0 github.com/gliderlabs/ssh => github.com/gliderlabs/ssh v0.1.1 github.com/globalsign/mgo => github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 github.com/go-kit/kit => github.com/go-kit/kit v0.8.0 @@ -204,6 +227,7 @@ replace ( github.com/gobuffalo/flect => github.com/gobuffalo/flect v0.1.5 github.com/gobwas/glob => github.com/gobwas/glob v0.2.3 github.com/gocraft/dbr => github.com/gocraft/dbr v0.0.0-20180507214907-a0fd650918f6 + github.com/gofrs/flock => github.com/gofrs/flock v0.7.1 github.com/gofrs/uuid => github.com/gofrs/uuid v3.2.0+incompatible github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.0 github.com/golang/example => github.com/golang/example v0.0.0-20170904185048-46695d81d1fa @@ -226,8 +250,10 @@ replace ( github.com/googleapis/gax-go/v2 => github.com/googleapis/gax-go/v2 v2.0.4 github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.3.1 github.com/gophercloud/gophercloud => github.com/gophercloud/gophercloud v0.3.0 + github.com/gorilla/handlers => github.com/gorilla/handlers v1.4.0 github.com/gorilla/mux => github.com/gorilla/mux v1.7.1 github.com/gorilla/websocket => github.com/gorilla/websocket v1.4.0 + github.com/gosuri/uitable => github.com/gosuri/uitable v0.0.1 github.com/gregjones/httpcache => github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7 github.com/grpc-ecosystem/go-grpc-middleware => github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 github.com/grpc-ecosystem/go-grpc-prometheus => github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 @@ -236,6 +262,7 @@ replace ( github.com/hashicorp/golang-lru => github.com/hashicorp/golang-lru v0.5.3 github.com/hashicorp/hcl => github.com/hashicorp/hcl v1.0.0 github.com/hpcloud/tail => github.com/hpcloud/tail v1.0.0 + github.com/huandu/xstrings => github.com/huandu/xstrings v1.2.0 github.com/imdario/mergo => github.com/imdario/mergo v0.3.7 github.com/inconshreveable/mousetrap => github.com/inconshreveable/mousetrap v1.0.0 github.com/jbenet/go-context => github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 @@ -275,11 +302,15 @@ replace ( github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.1.2 github.com/mattn/go-isatty => github.com/mattn/go-isatty v0.0.8 github.com/mattn/go-runewidth => github.com/mattn/go-runewidth v0.0.0-20181025052659-b20a3daf6a39 + github.com/mattn/go-shellwords => github.com/mattn/go-shellwords v1.0.5 github.com/mattn/go-sqlite3 => github.com/mattn/go-sqlite3 v1.11.0 github.com/matttproud/golang_protobuf_extensions => github.com/matttproud/golang_protobuf_extensions v1.0.1 + github.com/miekg/dns => github.com/miekg/dns v0.0.0-20181005163659-0d29b283ac0f + github.com/mitchellh/copystructure => github.com/mitchellh/copystructure v1.0.0 github.com/mitchellh/go-homedir => github.com/mitchellh/go-homedir v1.1.0 github.com/mitchellh/go-wordwrap => github.com/mitchellh/go-wordwrap v1.0.0 github.com/mitchellh/mapstructure => github.com/mitchellh/mapstructure v1.1.2 + github.com/mitchellh/reflectwalk => github.com/mitchellh/reflectwalk v1.0.0 github.com/mna/pigeon => github.com/mna/pigeon v0.0.0-20180808201053-bb0192cfc2ae github.com/modern-go/concurrent => github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd github.com/modern-go/reflect2 => github.com/modern-go/reflect2 v1.0.1 @@ -293,6 +324,7 @@ replace ( github.com/open-policy-agent/opa => github.com/open-policy-agent/opa v0.18.0 github.com/opencontainers/go-digest => github.com/opencontainers/go-digest v1.0.0-rc1 github.com/opencontainers/image-spec => github.com/opencontainers/image-spec v1.0.1 + github.com/opencontainers/runc => github.com/opencontainers/runc v0.1.1 github.com/openshift/api => github.com/openshift/api v0.0.0-20180801171038-322a19404e37 github.com/openshift/generic-admission-server => github.com/openshift/generic-admission-server v1.14.0 github.com/opentracing/opentracing-go => github.com/opentracing/opentracing-go v1.1.0 @@ -302,6 +334,7 @@ replace ( github.com/pelletier/go-toml => github.com/pelletier/go-toml v1.2.0 github.com/peterbourgon/diskv => github.com/peterbourgon/diskv v2.0.1+incompatible github.com/peterh/liner => github.com/peterh/liner v0.0.0-20170211195444-bf27d3ba8e1d + github.com/phayes/freeport => github.com/phayes/freeport v0.0.0-20171002181615-b8543db493a5 github.com/philhofer/fwd => github.com/philhofer/fwd v1.0.0 github.com/pkg/errors => github.com/pkg/errors v0.8.1 github.com/pmezard/go-difflib => github.com/pmezard/go-difflib v1.0.0 @@ -319,6 +352,7 @@ replace ( github.com/prometheus/prometheus => github.com/prometheus/prometheus v1.8.2 github.com/rcrowley/go-metrics => github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a github.com/remyoudompheng/bigfft => github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446 + github.com/robfig/cron => github.com/robfig/cron v1.2.0 github.com/rogpeppe/fastuuid => github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af github.com/rogpeppe/go-charset => github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4 github.com/russross/blackfriday => github.com/russross/blackfriday v1.5.2 @@ -344,13 +378,21 @@ replace ( github.com/tinylib/msgp => github.com/tinylib/msgp v1.1.0 github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 github.com/ugorji/go => github.com/ugorji/go v1.1.4 + github.com/ugorji/go/codec => github.com/ugorji/go/codec v0.0.0-20190128213124-ee1426cffec0 github.com/urfave/cli => github.com/urfave/cli v1.20.0 github.com/xanzy/ssh-agent => github.com/xanzy/ssh-agent v0.2.1 + github.com/xeipuuv/gojsonpointer => github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f + github.com/xeipuuv/gojsonreference => github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 + github.com/xeipuuv/gojsonschema => github.com/xeipuuv/gojsonschema v1.2.0 + github.com/xenolf/lego => github.com/xenolf/lego v0.3.2-0.20160613233155-a9d8cec0e656 github.com/xiang90/probing => github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 github.com/xlab/handysort => github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1 github.com/xlab/treeprint => github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6 github.com/xordataexchange/crypt => github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 github.com/yashtewari/glob-intersection => github.com/yashtewari/glob-intersection v0.0.0-20180916065949-5c77d914dd0b + github.com/yvasiyarov/go-metrics => github.com/yvasiyarov/go-metrics v0.0.0-20150112132944-c25f46c4b940 + github.com/yvasiyarov/gorelic => github.com/yvasiyarov/gorelic v0.0.6 + github.com/yvasiyarov/newrelic_platform_go => github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.3 go.etcd.io/etcd => go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 go.opencensus.io => go.opencensus.io v0.21.0 @@ -359,6 +401,7 @@ replace ( go.uber.org/zap => go.uber.org/zap v1.10.0 golang.org/x/crypto => golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 golang.org/x/exp => golang.org/x/exp v0.0.0-20190121172915-509febef88a4 + golang.org/x/image => golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81 golang.org/x/lint => golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f golang.org/x/net => golang.org/x/net v0.0.0-20190620200207-3b0461eec859 golang.org/x/oauth2 => golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a @@ -377,16 +420,21 @@ replace ( google.golang.org/grpc => google.golang.org/grpc v1.23.1 gopkg.in/airbrake/gobrake.v2 => gopkg.in/airbrake/gobrake.v2 v2.0.9 gopkg.in/alecthomas/kingpin.v2 => gopkg.in/alecthomas/kingpin.v2 v2.2.6 + gopkg.in/alexcesaro/quotedprintable.v3 => gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc gopkg.in/asn1-ber.v1 => gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d gopkg.in/check.v1 => gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 gopkg.in/cheggaaa/pb.v1 => gopkg.in/cheggaaa/pb.v1 v1.0.25 gopkg.in/fsnotify.v1 => gopkg.in/fsnotify.v1 v1.4.7 gopkg.in/gemnasium/logrus-airbrake-hook.v2 => gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 gopkg.in/go-playground/assert.v1 => gopkg.in/go-playground/assert.v1 v1.2.1 + gopkg.in/go-playground/validator.v8 => gopkg.in/go-playground/validator.v8 v8.18.2 gopkg.in/go-playground/validator.v9 => gopkg.in/go-playground/validator.v9 v9.29.1 + gopkg.in/gomail.v2 => gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/inf.v0 => gopkg.in/inf.v0 v0.9.1 + gopkg.in/mail.v2 => gopkg.in/mail.v2 v2.3.1 gopkg.in/natefinch/lumberjack.v2 => gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/resty.v1 => gopkg.in/resty.v1 v1.12.0 + gopkg.in/square/go-jose.v1 => gopkg.in/square/go-jose.v1 v1.1.2 gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.3.1 gopkg.in/src-d/go-billy.v4 => gopkg.in/src-d/go-billy.v4 v4.3.0 gopkg.in/src-d/go-git-fixtures.v3 => gopkg.in/src-d/go-git-fixtures.v3 v3.1.1 @@ -398,6 +446,7 @@ replace ( gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966 gotest.tools => gotest.tools v2.2.0+incompatible + helm.sh/helm/v3 => helm.sh/helm/v3 v3.0.1 honnef.co/go/tools => honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc istio.io/api => istio.io/api v0.0.0-20191111210003-35e06ef8d838 istio.io/client-go => istio.io/client-go v0.0.0-20191113122552-9bd0ba57c3d2 @@ -425,10 +474,12 @@ replace ( modernc.org/strutil => modernc.org/strutil v1.0.0 modernc.org/xc => modernc.org/xc v1.0.0 openpitrix.io/iam => openpitrix.io/iam v0.1.0 + openpitrix.io/libqueue => openpitrix.io/libqueue v0.4.1 openpitrix.io/logger => openpitrix.io/logger v0.1.0 - openpitrix.io/openpitrix => github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348 - openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 + openpitrix.io/notification => openpitrix.io/notification v0.2.2 + openpitrix.io/openpitrix => openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797 rsc.io/goversion => rsc.io/goversion v1.0.0 + rsc.io/letsencrypt => rsc.io/letsencrypt v0.0.1 sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.4.0 sigs.k8s.io/controller-tools => sigs.k8s.io/controller-tools v0.2.4 sigs.k8s.io/kubefed => sigs.k8s.io/kubefed v0.2.0-alpha.1 diff --git a/go.sum b/go.sum index fd16b5e88..bb2747712 100644 --- a/go.sum +++ b/go.sum @@ -72,7 +72,6 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/container-storage-interface/spec v1.2.0 h1:bD9KIVgaVKKkQ/UbVUY9kCaH/CJbhNxe0eeB4JeJV2s= github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/containerd v1.3.0-beta.2.0.20190823190603-4a2f61c4f2b4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= @@ -148,9 +147,7 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/sse v0.0.0-20190125020943-a7658810eb74/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/gliderlabs/ssh v0.1.1 h1:j3L6gSLQalDETeEg/Jg0mGY0/y/N6zI2xX1978P0Uqw= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= @@ -448,9 +445,7 @@ github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70 github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xenolf/lego v0.0.0-20160613233155-a9d8cec0e656/go.mod h1:fwiGnfsIjG7OHPfOvgK7Y/Qo6+2Ox0iozjNTkZICKbY= github.com/xenolf/lego v0.3.2-0.20160613233155-a9d8cec0e656/go.mod h1:fwiGnfsIjG7OHPfOvgK7Y/Qo6+2Ox0iozjNTkZICKbY= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -596,8 +591,8 @@ openpitrix.io/iam v0.1.0/go.mod h1:EcZE8CPBg+1fEKCDEhpsIZ8isWWO7javpu84mSqoVn4= openpitrix.io/libqueue v0.4.1/go.mod h1:qUuS2viIR86Fm1rLfLRFMMAyltUeGxNt8zoCNkmf/Gk= openpitrix.io/logger v0.1.0/go.mod h1:SV8Btt2cTSmeL9H/1XCkYmQ+WQ2upVY4e0wlr07RP28= openpitrix.io/notification v0.2.2/go.mod h1:2YRxpnrFk2Z3fXpRXWzbDY9j6Sztrd860Vm8qh5hZzY= -openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 h1:MUCblqyJK8dX7WYUAiyN7vzpchn+6GYS7pSYVbJHmJ4= -openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o= +openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797 h1:zWzbsWTu2wKovmSXqFgsQTDN7Ckx9TBiD9SQ9qDWQpg= +openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o= rsc.io/goversion v1.0.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo= rsc.io/letsencrypt v0.0.1/go.mod h1:buyQKZ6IXrRnB7TdkHP0RyEybLx18HHyOSoTyoOLqNY= sigs.k8s.io/controller-runtime v0.4.0 h1:wATM6/m+3w8lj8FXNaO6Fs/rq/vqoOjO1Q116Z9NPsg= diff --git a/pkg/controller/namespace/namespace_controller.go b/pkg/controller/namespace/namespace_controller.go index a1ac70598..793f5c654 100644 --- a/pkg/controller/namespace/namespace_controller.go +++ b/pkg/controller/namespace/namespace_controller.go @@ -18,8 +18,6 @@ package namespace import ( "context" - "fmt" - "github.com/golang/protobuf/ptypes/wrappers" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -31,7 +29,6 @@ import ( "kubesphere.io/kubesphere/pkg/constants" "kubesphere.io/kubesphere/pkg/simple/client/openpitrix" "kubesphere.io/kubesphere/pkg/utils/sliceutil" - "openpitrix.io/openpitrix/pkg/pb" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -130,11 +127,6 @@ func (r *ReconcileNamespace) Reconcile(request reconcile.Request) (reconcile.Res return reconcile.Result{}, err } - // delete runtime - if err = r.deleteRuntime(instance); err != nil { - return reconcile.Result{}, err - } - // remove our finalizer from the list and update it. instance.ObjectMeta.Finalizers = sliceutil.RemoveString(instance.ObjectMeta.Finalizers, func(item string) bool { return item == finalizer @@ -153,13 +145,6 @@ func (r *ReconcileNamespace) Reconcile(request reconcile.Request) (reconcile.Res return reconcile.Result{}, err } - // skip if openpitrix is not enabled - if r.openpitrixClient != nil { - if err := r.checkAndCreateRuntime(instance); err != nil { - return reconcile.Result{}, err - } - } - return reconcile.Result{}, nil } @@ -175,88 +160,6 @@ func (r *ReconcileNamespace) isControlledByWorkspace(namespace *corev1.Namespace return true, nil } -// Create openpitrix runtime -func (r *ReconcileNamespace) checkAndCreateRuntime(namespace *corev1.Namespace) error { - - if runtimeId := namespace.Annotations[constants.OpenPitrixRuntimeAnnotationKey]; runtimeId != "" { - return nil - } - - adminKubeConfigName := fmt.Sprintf("kubeconfig-%s", constants.AdminUserName) - - runtimeCredentials, err := r.openpitrixClient.DescribeRuntimeCredentials(openpitrix.SystemContext(), &pb.DescribeRuntimeCredentialsRequest{SearchWord: &wrappers.StringValue{Value: adminKubeConfigName}, Limit: 1}) - - if err != nil { - klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err)) - return err - } - - var kubesphereRuntimeCredentialId string - - // runtime credential exist - if len(runtimeCredentials.GetRuntimeCredentialSet()) > 0 { - kubesphereRuntimeCredentialId = runtimeCredentials.GetRuntimeCredentialSet()[0].GetRuntimeCredentialId().GetValue() - } else { - adminKubeConfig := corev1.ConfigMap{} - err := r.Get(context.TODO(), types.NamespacedName{Namespace: constants.KubeSphereControlNamespace, Name: adminKubeConfigName}, &adminKubeConfig) - - if err != nil { - klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err)) - return err - } - - resp, err := r.openpitrixClient.CreateRuntimeCredential(openpitrix.SystemContext(), &pb.CreateRuntimeCredentialRequest{ - Name: &wrappers.StringValue{Value: adminKubeConfigName}, - Provider: &wrappers.StringValue{Value: "kubernetes"}, - Description: &wrappers.StringValue{Value: "kubeconfig"}, - RuntimeUrl: &wrappers.StringValue{Value: "kubesphere"}, - RuntimeCredentialContent: &wrappers.StringValue{Value: adminKubeConfig.Data["config"]}, - }) - - if err != nil { - klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err)) - return err - } - - kubesphereRuntimeCredentialId = resp.GetRuntimeCredentialId().GetValue() - } - - // TODO runtime id is invalid when recreate runtime - runtimeId, err := r.openpitrixClient.CreateRuntime(openpitrix.SystemContext(), &pb.CreateRuntimeRequest{ - Name: &wrappers.StringValue{Value: namespace.Name}, - RuntimeCredentialId: &wrappers.StringValue{Value: kubesphereRuntimeCredentialId}, - Provider: &wrappers.StringValue{Value: openpitrix.KubernetesProvider}, - Zone: &wrappers.StringValue{Value: namespace.Name}, - }) - - if err != nil { - klog.Error(fmt.Sprintf("create runtime, namespace: %s, error: %s", namespace.Name, err)) - return err - } - - klog.V(4).Infof("runtime created successfully, namespace: %s, runtime id: %s", namespace.Name, runtimeId) - - return nil -} - -// Delete openpitrix runtime -func (r *ReconcileNamespace) deleteRuntime(namespace *corev1.Namespace) error { - - if runtimeId := namespace.Annotations[constants.OpenPitrixRuntimeAnnotationKey]; runtimeId != "" { - _, err := r.openpitrixClient.DeleteRuntimes(openpitrix.SystemContext(), &pb.DeleteRuntimesRequest{RuntimeId: []string{runtimeId}, Force: &wrappers.BoolValue{Value: true}}) - - if err == nil || openpitrix.IsNotFound(err) || openpitrix.IsDeleted(err) { - return nil - } else { - klog.Errorf("delete openpitrix runtime: %s, error: %s", runtimeId, err) - return err - } - } - - return nil -} - -// Create openpitrix runtime func (r *ReconcileNamespace) checkAndBindWorkspace(namespace *corev1.Namespace) error { workspaceName := namespace.Labels[constants.WorkspaceLabelKey] diff --git a/pkg/kapis/openpitrix/v1/handler.go b/pkg/kapis/openpitrix/v1/handler.go index 7a9993a99..edc63c2f6 100644 --- a/pkg/kapis/openpitrix/v1/handler.go +++ b/pkg/kapis/openpitrix/v1/handler.go @@ -44,39 +44,40 @@ func newOpenpitrixHandler(factory informers.InformerFactory, opClient op.Client) } } -func (h *openpitrixHandler) ListApplications(request *restful.Request, response *restful.Response) { - limit, offset := params.ParsePaging(request) - runtimeId := request.PathParameter("runtime") - namespace := request.PathParameter("namespace") - orderBy := params.GetStringValueWithDefault(request, params.OrderByParam, openpitrix.CreateTime) - reverse := params.GetBoolValueWithDefault(request, params.ReverseParam, false) - conditions, err := params.ParseConditions(request) +func (h *openpitrixHandler) ListApplications(req *restful.Request, resp *restful.Response) { + limit, offset := params.ParsePaging(req) + clusterName := req.PathParameter("cluster") + namespace := req.PathParameter("namespace") + orderBy := params.GetStringValueWithDefault(req, params.OrderByParam, openpitrix.CreateTime) + reverse := params.GetBoolValueWithDefault(req, params.ReverseParam, false) + conditions, err := params.ParseConditions(req) if err != nil { klog.V(4).Infoln(err) - api.HandleBadRequest(response, nil, err) + api.HandleBadRequest(resp, nil, err) return } conditions.Match[openpitrix.Zone] = namespace - conditions.Match[openpitrix.RuntimeId] = runtimeId + // in openpitrix, runtime id is the cluster name + conditions.Match[openpitrix.RuntimeId] = clusterName result, err := h.openpitrix.ListApplications(conditions, limit, offset, orderBy, reverse) if err != nil { klog.Errorln(err) - api.HandleInternalError(response, nil, err) + api.HandleInternalError(resp, nil, err) return } - response.WriteAsJson(result) + resp.WriteAsJson(result) } func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *restful.Response) { - runtimeId := req.PathParameter("runtime") + clusterName := req.PathParameter("cluster") namespace := req.PathParameter("namespace") - clusterId := req.PathParameter("application") + applicationId := req.PathParameter("application") - app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId) + app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName) if err != nil { klog.Errorln(err) @@ -89,7 +90,7 @@ func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *rest } func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restful.Response) { - runtimeId := req.PathParameter("runtime") + clusterName := req.PathParameter("cluster") namespace := req.PathParameter("namespace") var createClusterRequest openpitrix.CreateClusterRequest err := req.ReadEntity(&createClusterRequest) @@ -101,7 +102,7 @@ func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restfu createClusterRequest.Username = req.HeaderParameter(constants.UserNameHeader) - err = h.openpitrix.CreateApplication(runtimeId, namespace, createClusterRequest) + err = h.openpitrix.CreateApplication(clusterName, namespace, createClusterRequest) if err != nil { klog.Errorln(err) @@ -114,8 +115,8 @@ func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restfu func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restful.Response) { var modifyClusterAttributesRequest openpitrix.ModifyClusterAttributesRequest - runtimeId := req.PathParameter("runtime") - clusterId := req.PathParameter("application") + clusterName := req.PathParameter("cluster") + applicationId := req.PathParameter("application") namespace := req.PathParameter("namespace") err := req.ReadEntity(&modifyClusterAttributesRequest) if err != nil { @@ -124,7 +125,7 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu return } - app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId) + app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName) if err != nil { klog.Errorln(err) @@ -132,8 +133,8 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu return } - if runtimeId != app.Cluster.RuntimeId { - err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId) + if clusterName != app.Cluster.RuntimeId { + err = fmt.Errorf("runtime and cluster not match %s,%s", app.Cluster.RuntimeId, clusterName) klog.V(4).Infoln(err) api.HandleForbidden(resp, nil, err) return @@ -151,10 +152,10 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu } func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restful.Response) { - runtimeId := req.PathParameter("runtime") - clusterId := req.PathParameter("application") + clusterName := req.PathParameter("cluster") + applicationId := req.PathParameter("application") namespace := req.PathParameter("namespace") - app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId) + app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName) if err != nil { klog.Errorln(err) @@ -162,14 +163,14 @@ func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restfu return } - if runtimeId != app.Cluster.RuntimeId { - err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId) + if clusterName != app.Cluster.RuntimeId { + err = fmt.Errorf("runtime and cluster not match %s,%s", app.Cluster.RuntimeId, clusterName) klog.V(4).Infoln(err) api.HandleForbidden(resp, nil, err) return } - err = h.openpitrix.DeleteApplication(clusterId) + err = h.openpitrix.DeleteApplication(applicationId) if err != nil { klog.Errorln(err) @@ -181,9 +182,9 @@ func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restfu } func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restful.Response) { - runtimeId := req.PathParameter("runtime") + clusterName := req.PathParameter("cluster") namespace := req.PathParameter("namespace") - clusterId := req.PathParameter("application") + applicationId := req.PathParameter("application") var upgradeClusterRequest openpitrix.UpgradeClusterRequest err := req.ReadEntity(&upgradeClusterRequest) if err != nil { @@ -194,7 +195,7 @@ func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restf upgradeClusterRequest.Username = req.HeaderParameter(constants.UserNameHeader) - app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId) + app, err := h.openpitrix.DescribeApplication(namespace, applicationId, clusterName) if err != nil { klog.Errorln(err) @@ -202,8 +203,8 @@ func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restf return } - if runtimeId != app.Cluster.RuntimeId { - err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId) + if clusterName != app.Cluster.RuntimeId { + err = fmt.Errorf("runtime and cluster not match %s,%s", app.Cluster.RuntimeId, clusterName) klog.V(4).Infoln(err) api.HandleForbidden(resp, nil, err) return diff --git a/pkg/kapis/openpitrix/v1/register.go b/pkg/kapis/openpitrix/v1/register.go index 7b4656e60..107288129 100644 --- a/pkg/kapis/openpitrix/v1/register.go +++ b/pkg/kapis/openpitrix/v1/register.go @@ -43,7 +43,21 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op webservice := runtime.NewWebService(GroupVersion) handler := newOpenpitrixHandler(factory, op) - webservice.Route(webservice.GET("/runtimes/{runtime}/applications"). + webservice.Route(webservice.GET("/applications"). + To(handler.ListApplications). + Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}). + Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). + Doc("List all applications"). + Param(webservice.QueryParameter(params.ConditionsParam, "query conditions, connect multiple conditions with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a"). + Required(false). + DataFormat("key=value,key~value"). + DefaultValue("")). + Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). + Required(false). + DataFormat("limit=%d,page=%d"). + DefaultValue("limit=10,page=1"))) + + webservice.Route(webservice.GET("/clusters/{cluster}/applications"). To(handler.ListApplications). Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). @@ -52,13 +66,13 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op Required(false). DataFormat("key=value,key~value"). DefaultValue("")). - Param(webservice.PathParameter("runtime", "the id of runtime")). + Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). Required(false). DataFormat("limit=%d,page=%d"). DefaultValue("limit=10,page=1"))) - webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications"). + webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications"). To(handler.ListApplications). Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). @@ -67,61 +81,61 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op Required(false). DataFormat("key=value,key~value"). DefaultValue("")). - Param(webservice.PathParameter("runtime", "the id of runtime")). - Param(webservice.PathParameter("namespace", "the name of the project")). + Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). + Param(webservice.PathParameter("namespace", "the name of the project").Required(true)). Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). Required(false). DataFormat("limit=%d,page=%d"). DefaultValue("limit=10,page=1"))) - webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications/{application}"). To(handler.DescribeApplication). Returns(http.StatusOK, api.StatusOK, openpitrix2.Application{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Doc("Describe the specified application of the namespace"). - Param(webservice.PathParameter("runtime", "the id of runtime")). - Param(webservice.PathParameter("namespace", "the name of the project")). - Param(webservice.PathParameter("application", "application ID"))) + Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). + Param(webservice.PathParameter("namespace", "the name of the project").Required(true)). + Param(webservice.PathParameter("application", "the id of the application").Required(true))) - webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications"). + webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications"). To(handler.CreateApplication). Doc("Deploy a new application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Reads(openpitrix2.CreateClusterRequest{}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("runtime", "the id of runtime")). - Param(webservice.PathParameter("namespace", "the name of the project"))) + Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). + Param(webservice.PathParameter("namespace", "the name of the project").Required(true))) - webservice.Route(webservice.PATCH("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.PATCH("/clusters/{cluster}/namespaces/{namespace}/applications/{application}"). Consumes(mimePatch...). To(handler.ModifyApplication). Doc("Modify application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Reads(openpitrix2.ModifyClusterAttributesRequest{}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("runtime", "the id of runtime")). - Param(webservice.PathParameter("namespace", "the name of the project")). - Param(webservice.PathParameter("application", "the id of the application cluster"))) + Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). + Param(webservice.PathParameter("namespace", "the name of the project").Required(true)). + Param(webservice.PathParameter("application", "the id of the application").Required(true))) - webservice.Route(webservice.DELETE("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.DELETE("/clusters/{cluster}/namespaces/{namespace}/applications/{application}"). To(handler.DeleteApplication). Doc("Delete the specified application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("runtime", "the id of runtime")). - Param(webservice.PathParameter("namespace", "the name of the project")). - Param(webservice.PathParameter("application", "the id of the application cluster"))) + Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). + Param(webservice.PathParameter("namespace", "the name of the project").Required(true)). + Param(webservice.PathParameter("application", "the id of the application").Required(true))) - webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}"). + webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications/{application}"). Consumes(mimePatch...). To(handler.UpgradeApplication). Doc("Upgrade application"). Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). Reads(openpitrix2.UpgradeClusterRequest{}). Returns(http.StatusOK, api.StatusOK, errors.Error{}). - Param(webservice.PathParameter("runtime", "the id of runtime")). - Param(webservice.PathParameter("namespace", "the name of the project")). - Param(webservice.PathParameter("application", "the id of the application cluster"))) + Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). + Param(webservice.PathParameter("namespace", "the name of the project").Required(true)). + Param(webservice.PathParameter("application", "the id of the application").Required(true))) webservice.Route(webservice.POST("/apps/{app}/versions"). To(handler.CreateAppVersion). diff --git a/pkg/models/openpitrix/applications.go b/pkg/models/openpitrix/applications.go index b0e4d4238..e81f1fb80 100644 --- a/pkg/models/openpitrix/applications.go +++ b/pkg/models/openpitrix/applications.go @@ -35,8 +35,8 @@ import ( type ApplicationInterface interface { ListApplications(conditions *params.Conditions, limit, offset int, orderBy string, reverse bool) (*models.PageableResponse, error) - DescribeApplication(namespace, clusterId, runtimeId string) (*Application, error) - CreateApplication(runtimeId, namespace string, request CreateClusterRequest) error + DescribeApplication(namespace, applicationId, clusterName string) (*Application, error) + CreateApplication(clusterName, namespace string, request CreateClusterRequest) error ModifyApplication(request ModifyClusterAttributesRequest) error DeleteApplication(id string) error UpgradeApplication(request UpgradeClusterRequest) error @@ -143,10 +143,10 @@ func (c *applicationOperator) describeApplication(cluster *pb.Cluster) (*Applica return &app, nil } -func (c *applicationOperator) DescribeApplication(namespace string, clusterId string, runtimeId string) (*Application, error) { +func (c *applicationOperator) DescribeApplication(namespace string, applicationId string, clusterName string) (*Application, error) { describeClusterRequest := &pb.DescribeClustersRequest{ - ClusterId: []string{clusterId}, - RuntimeId: []string{runtimeId}, + ClusterId: []string{applicationId}, + RuntimeId: []string{clusterName}, Zone: []string{namespace}, WithDetail: pbutil.ToProtoBool(true), Limit: 1, @@ -358,11 +358,11 @@ func (c *applicationOperator) getIng(namespace string, services []v1.Service) [] return ings } -func (c *applicationOperator) CreateApplication(runtimeId, namespace string, request CreateClusterRequest) error { +func (c *applicationOperator) CreateApplication(clusterName, namespace string, request CreateClusterRequest) error { _, err := c.opClient.CreateCluster(openpitrix.ContextWithUsername(request.Username), &pb.CreateClusterRequest{ AppId: &wrappers.StringValue{Value: request.AppId}, VersionId: &wrappers.StringValue{Value: request.VersionId}, - RuntimeId: &wrappers.StringValue{Value: request.RuntimeId}, + RuntimeId: &wrappers.StringValue{Value: clusterName}, Conf: &wrappers.StringValue{Value: request.Conf}, Zone: &wrappers.StringValue{Value: namespace}, }) @@ -395,8 +395,8 @@ func (c *applicationOperator) ModifyApplication(request ModifyClusterAttributesR return nil } -func (c *applicationOperator) DeleteApplication(clusterId string) error { - _, err := c.opClient.DeleteClusters(openpitrix.SystemContext(), &pb.DeleteClustersRequest{ClusterId: []string{clusterId}, Force: &wrappers.BoolValue{Value: true}}) +func (c *applicationOperator) DeleteApplication(applicationId string) error { + _, err := c.opClient.DeleteClusters(openpitrix.SystemContext(), &pb.DeleteClustersRequest{ClusterId: []string{applicationId}, Force: &wrappers.BoolValue{Value: true}}) if err != nil { klog.Errorln(err) diff --git a/pkg/simple/client/openpitrix/mock.go b/pkg/simple/client/openpitrix/mock.go index dc4d51e50..14393d66f 100644 --- a/pkg/simple/client/openpitrix/mock.go +++ b/pkg/simple/client/openpitrix/mock.go @@ -13,30 +13,30 @@ import ( reflect "reflect" ) -// MockClient is a mock of Client interface +// MockClient is a mock of Client interface. type MockClient struct { ctrl *gomock.Controller recorder *MockClientMockRecorder } -// MockClientMockRecorder is the mock recorder for MockClient +// MockClientMockRecorder is the mock recorder for MockClient. type MockClientMockRecorder struct { mock *MockClient } -// NewMockClient creates a new mock instance +// NewMockClient creates a new mock instance. func NewMockClient(ctrl *gomock.Controller) *MockClient { mock := &MockClient{ctrl: ctrl} mock.recorder = &MockClientMockRecorder{mock} return mock } -// EXPECT returns an object that allows the caller to indicate expected use +// EXPECT returns an object that allows the caller to indicate expected use. func (m *MockClient) EXPECT() *MockClientMockRecorder { return m.recorder } -// CreateRuntime mocks base method +// CreateRuntime mocks base method. func (m *MockClient) CreateRuntime(ctx context.Context, in *pb.CreateRuntimeRequest, opts ...grpc.CallOption) (*pb.CreateRuntimeResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -49,14 +49,14 @@ func (m *MockClient) CreateRuntime(ctx context.Context, in *pb.CreateRuntimeRequ return ret0, ret1 } -// CreateRuntime indicates an expected call of CreateRuntime +// CreateRuntime indicates an expected call of CreateRuntime. func (mr *MockClientMockRecorder) CreateRuntime(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRuntime", reflect.TypeOf((*MockClient)(nil).CreateRuntime), varargs...) } -// CreateDebugRuntime mocks base method +// CreateDebugRuntime mocks base method. func (m *MockClient) CreateDebugRuntime(ctx context.Context, in *pb.CreateRuntimeRequest, opts ...grpc.CallOption) (*pb.CreateRuntimeResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -69,14 +69,14 @@ func (m *MockClient) CreateDebugRuntime(ctx context.Context, in *pb.CreateRuntim return ret0, ret1 } -// CreateDebugRuntime indicates an expected call of CreateDebugRuntime +// CreateDebugRuntime indicates an expected call of CreateDebugRuntime. func (mr *MockClientMockRecorder) CreateDebugRuntime(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDebugRuntime", reflect.TypeOf((*MockClient)(nil).CreateDebugRuntime), varargs...) } -// DescribeRuntimeDetails mocks base method +// DescribeRuntimeDetails mocks base method. func (m *MockClient) DescribeRuntimeDetails(ctx context.Context, in *pb.DescribeRuntimesRequest, opts ...grpc.CallOption) (*pb.DescribeRuntimeDetailsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -89,14 +89,14 @@ func (m *MockClient) DescribeRuntimeDetails(ctx context.Context, in *pb.Describe return ret0, ret1 } -// DescribeRuntimeDetails indicates an expected call of DescribeRuntimeDetails +// DescribeRuntimeDetails indicates an expected call of DescribeRuntimeDetails. func (mr *MockClientMockRecorder) DescribeRuntimeDetails(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeRuntimeDetails", reflect.TypeOf((*MockClient)(nil).DescribeRuntimeDetails), varargs...) } -// DescribeRuntimes mocks base method +// DescribeRuntimes mocks base method. func (m *MockClient) DescribeRuntimes(ctx context.Context, in *pb.DescribeRuntimesRequest, opts ...grpc.CallOption) (*pb.DescribeRuntimesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -109,14 +109,14 @@ func (m *MockClient) DescribeRuntimes(ctx context.Context, in *pb.DescribeRuntim return ret0, ret1 } -// DescribeRuntimes indicates an expected call of DescribeRuntimes +// DescribeRuntimes indicates an expected call of DescribeRuntimes. func (mr *MockClientMockRecorder) DescribeRuntimes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeRuntimes", reflect.TypeOf((*MockClient)(nil).DescribeRuntimes), varargs...) } -// DescribeDebugRuntimes mocks base method +// DescribeDebugRuntimes mocks base method. func (m *MockClient) DescribeDebugRuntimes(ctx context.Context, in *pb.DescribeRuntimesRequest, opts ...grpc.CallOption) (*pb.DescribeRuntimesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -129,14 +129,14 @@ func (m *MockClient) DescribeDebugRuntimes(ctx context.Context, in *pb.DescribeR return ret0, ret1 } -// DescribeDebugRuntimes indicates an expected call of DescribeDebugRuntimes +// DescribeDebugRuntimes indicates an expected call of DescribeDebugRuntimes. func (mr *MockClientMockRecorder) DescribeDebugRuntimes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeDebugRuntimes", reflect.TypeOf((*MockClient)(nil).DescribeDebugRuntimes), varargs...) } -// ModifyRuntime mocks base method +// ModifyRuntime mocks base method. func (m *MockClient) ModifyRuntime(ctx context.Context, in *pb.ModifyRuntimeRequest, opts ...grpc.CallOption) (*pb.ModifyRuntimeResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -149,14 +149,14 @@ func (m *MockClient) ModifyRuntime(ctx context.Context, in *pb.ModifyRuntimeRequ return ret0, ret1 } -// ModifyRuntime indicates an expected call of ModifyRuntime +// ModifyRuntime indicates an expected call of ModifyRuntime. func (mr *MockClientMockRecorder) ModifyRuntime(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyRuntime", reflect.TypeOf((*MockClient)(nil).ModifyRuntime), varargs...) } -// DeleteRuntimes mocks base method +// DeleteRuntimes mocks base method. func (m *MockClient) DeleteRuntimes(ctx context.Context, in *pb.DeleteRuntimesRequest, opts ...grpc.CallOption) (*pb.DeleteRuntimesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -169,14 +169,14 @@ func (m *MockClient) DeleteRuntimes(ctx context.Context, in *pb.DeleteRuntimesRe return ret0, ret1 } -// DeleteRuntimes indicates an expected call of DeleteRuntimes +// DeleteRuntimes indicates an expected call of DeleteRuntimes. func (mr *MockClientMockRecorder) DeleteRuntimes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRuntimes", reflect.TypeOf((*MockClient)(nil).DeleteRuntimes), varargs...) } -// CreateRuntimeCredential mocks base method +// CreateRuntimeCredential mocks base method. func (m *MockClient) CreateRuntimeCredential(ctx context.Context, in *pb.CreateRuntimeCredentialRequest, opts ...grpc.CallOption) (*pb.CreateRuntimeCredentialResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -189,14 +189,14 @@ func (m *MockClient) CreateRuntimeCredential(ctx context.Context, in *pb.CreateR return ret0, ret1 } -// CreateRuntimeCredential indicates an expected call of CreateRuntimeCredential +// CreateRuntimeCredential indicates an expected call of CreateRuntimeCredential. func (mr *MockClientMockRecorder) CreateRuntimeCredential(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRuntimeCredential", reflect.TypeOf((*MockClient)(nil).CreateRuntimeCredential), varargs...) } -// CreateDebugRuntimeCredential mocks base method +// CreateDebugRuntimeCredential mocks base method. func (m *MockClient) CreateDebugRuntimeCredential(ctx context.Context, in *pb.CreateRuntimeCredentialRequest, opts ...grpc.CallOption) (*pb.CreateRuntimeCredentialResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -209,14 +209,14 @@ func (m *MockClient) CreateDebugRuntimeCredential(ctx context.Context, in *pb.Cr return ret0, ret1 } -// CreateDebugRuntimeCredential indicates an expected call of CreateDebugRuntimeCredential +// CreateDebugRuntimeCredential indicates an expected call of CreateDebugRuntimeCredential. func (mr *MockClientMockRecorder) CreateDebugRuntimeCredential(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDebugRuntimeCredential", reflect.TypeOf((*MockClient)(nil).CreateDebugRuntimeCredential), varargs...) } -// DescribeRuntimeCredentials mocks base method +// DescribeRuntimeCredentials mocks base method. func (m *MockClient) DescribeRuntimeCredentials(ctx context.Context, in *pb.DescribeRuntimeCredentialsRequest, opts ...grpc.CallOption) (*pb.DescribeRuntimeCredentialsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -229,14 +229,14 @@ func (m *MockClient) DescribeRuntimeCredentials(ctx context.Context, in *pb.Desc return ret0, ret1 } -// DescribeRuntimeCredentials indicates an expected call of DescribeRuntimeCredentials +// DescribeRuntimeCredentials indicates an expected call of DescribeRuntimeCredentials. func (mr *MockClientMockRecorder) DescribeRuntimeCredentials(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeRuntimeCredentials", reflect.TypeOf((*MockClient)(nil).DescribeRuntimeCredentials), varargs...) } -// DescribeDebugRuntimeCredentials mocks base method +// DescribeDebugRuntimeCredentials mocks base method. func (m *MockClient) DescribeDebugRuntimeCredentials(ctx context.Context, in *pb.DescribeRuntimeCredentialsRequest, opts ...grpc.CallOption) (*pb.DescribeRuntimeCredentialsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -249,14 +249,14 @@ func (m *MockClient) DescribeDebugRuntimeCredentials(ctx context.Context, in *pb return ret0, ret1 } -// DescribeDebugRuntimeCredentials indicates an expected call of DescribeDebugRuntimeCredentials +// DescribeDebugRuntimeCredentials indicates an expected call of DescribeDebugRuntimeCredentials. func (mr *MockClientMockRecorder) DescribeDebugRuntimeCredentials(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeDebugRuntimeCredentials", reflect.TypeOf((*MockClient)(nil).DescribeDebugRuntimeCredentials), varargs...) } -// ModifyRuntimeCredential mocks base method +// ModifyRuntimeCredential mocks base method. func (m *MockClient) ModifyRuntimeCredential(ctx context.Context, in *pb.ModifyRuntimeCredentialRequest, opts ...grpc.CallOption) (*pb.ModifyRuntimeCredentialResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -269,14 +269,14 @@ func (m *MockClient) ModifyRuntimeCredential(ctx context.Context, in *pb.ModifyR return ret0, ret1 } -// ModifyRuntimeCredential indicates an expected call of ModifyRuntimeCredential +// ModifyRuntimeCredential indicates an expected call of ModifyRuntimeCredential. func (mr *MockClientMockRecorder) ModifyRuntimeCredential(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyRuntimeCredential", reflect.TypeOf((*MockClient)(nil).ModifyRuntimeCredential), varargs...) } -// DeleteRuntimeCredentials mocks base method +// DeleteRuntimeCredentials mocks base method. func (m *MockClient) DeleteRuntimeCredentials(ctx context.Context, in *pb.DeleteRuntimeCredentialsRequest, opts ...grpc.CallOption) (*pb.DeleteRuntimeCredentialsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -289,14 +289,14 @@ func (m *MockClient) DeleteRuntimeCredentials(ctx context.Context, in *pb.Delete return ret0, ret1 } -// DeleteRuntimeCredentials indicates an expected call of DeleteRuntimeCredentials +// DeleteRuntimeCredentials indicates an expected call of DeleteRuntimeCredentials. func (mr *MockClientMockRecorder) DeleteRuntimeCredentials(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRuntimeCredentials", reflect.TypeOf((*MockClient)(nil).DeleteRuntimeCredentials), varargs...) } -// ValidateRuntimeCredential mocks base method +// ValidateRuntimeCredential mocks base method. func (m *MockClient) ValidateRuntimeCredential(ctx context.Context, in *pb.ValidateRuntimeCredentialRequest, opts ...grpc.CallOption) (*pb.ValidateRuntimeCredentialResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -309,14 +309,14 @@ func (m *MockClient) ValidateRuntimeCredential(ctx context.Context, in *pb.Valid return ret0, ret1 } -// ValidateRuntimeCredential indicates an expected call of ValidateRuntimeCredential +// ValidateRuntimeCredential indicates an expected call of ValidateRuntimeCredential. func (mr *MockClientMockRecorder) ValidateRuntimeCredential(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateRuntimeCredential", reflect.TypeOf((*MockClient)(nil).ValidateRuntimeCredential), varargs...) } -// DescribeRuntimeProviderZones mocks base method +// DescribeRuntimeProviderZones mocks base method. func (m *MockClient) DescribeRuntimeProviderZones(ctx context.Context, in *pb.DescribeRuntimeProviderZonesRequest, opts ...grpc.CallOption) (*pb.DescribeRuntimeProviderZonesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -329,14 +329,14 @@ func (m *MockClient) DescribeRuntimeProviderZones(ctx context.Context, in *pb.De return ret0, ret1 } -// DescribeRuntimeProviderZones indicates an expected call of DescribeRuntimeProviderZones +// DescribeRuntimeProviderZones indicates an expected call of DescribeRuntimeProviderZones. func (mr *MockClientMockRecorder) DescribeRuntimeProviderZones(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeRuntimeProviderZones", reflect.TypeOf((*MockClient)(nil).DescribeRuntimeProviderZones), varargs...) } -// GetRuntimeStatistics mocks base method +// GetRuntimeStatistics mocks base method. func (m *MockClient) GetRuntimeStatistics(ctx context.Context, in *pb.GetRuntimeStatisticsRequest, opts ...grpc.CallOption) (*pb.GetRuntimeStatisticsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -349,14 +349,14 @@ func (m *MockClient) GetRuntimeStatistics(ctx context.Context, in *pb.GetRuntime return ret0, ret1 } -// GetRuntimeStatistics indicates an expected call of GetRuntimeStatistics +// GetRuntimeStatistics indicates an expected call of GetRuntimeStatistics. func (mr *MockClientMockRecorder) GetRuntimeStatistics(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRuntimeStatistics", reflect.TypeOf((*MockClient)(nil).GetRuntimeStatistics), varargs...) } -// AddNodeKeyPairs mocks base method +// AddNodeKeyPairs mocks base method. func (m *MockClient) AddNodeKeyPairs(ctx context.Context, in *pb.AddNodeKeyPairsRequest, opts ...grpc.CallOption) (*pb.AddNodeKeyPairsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -369,14 +369,14 @@ func (m *MockClient) AddNodeKeyPairs(ctx context.Context, in *pb.AddNodeKeyPairs return ret0, ret1 } -// AddNodeKeyPairs indicates an expected call of AddNodeKeyPairs +// AddNodeKeyPairs indicates an expected call of AddNodeKeyPairs. func (mr *MockClientMockRecorder) AddNodeKeyPairs(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNodeKeyPairs", reflect.TypeOf((*MockClient)(nil).AddNodeKeyPairs), varargs...) } -// DeleteNodeKeyPairs mocks base method +// DeleteNodeKeyPairs mocks base method. func (m *MockClient) DeleteNodeKeyPairs(ctx context.Context, in *pb.DeleteNodeKeyPairsRequest, opts ...grpc.CallOption) (*pb.DeleteNodeKeyPairsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -389,14 +389,14 @@ func (m *MockClient) DeleteNodeKeyPairs(ctx context.Context, in *pb.DeleteNodeKe return ret0, ret1 } -// DeleteNodeKeyPairs indicates an expected call of DeleteNodeKeyPairs +// DeleteNodeKeyPairs indicates an expected call of DeleteNodeKeyPairs. func (mr *MockClientMockRecorder) DeleteNodeKeyPairs(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNodeKeyPairs", reflect.TypeOf((*MockClient)(nil).DeleteNodeKeyPairs), varargs...) } -// CreateKeyPair mocks base method +// CreateKeyPair mocks base method. func (m *MockClient) CreateKeyPair(ctx context.Context, in *pb.CreateKeyPairRequest, opts ...grpc.CallOption) (*pb.CreateKeyPairResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -409,14 +409,14 @@ func (m *MockClient) CreateKeyPair(ctx context.Context, in *pb.CreateKeyPairRequ return ret0, ret1 } -// CreateKeyPair indicates an expected call of CreateKeyPair +// CreateKeyPair indicates an expected call of CreateKeyPair. func (mr *MockClientMockRecorder) CreateKeyPair(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateKeyPair", reflect.TypeOf((*MockClient)(nil).CreateKeyPair), varargs...) } -// DescribeKeyPairs mocks base method +// DescribeKeyPairs mocks base method. func (m *MockClient) DescribeKeyPairs(ctx context.Context, in *pb.DescribeKeyPairsRequest, opts ...grpc.CallOption) (*pb.DescribeKeyPairsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -429,14 +429,14 @@ func (m *MockClient) DescribeKeyPairs(ctx context.Context, in *pb.DescribeKeyPai return ret0, ret1 } -// DescribeKeyPairs indicates an expected call of DescribeKeyPairs +// DescribeKeyPairs indicates an expected call of DescribeKeyPairs. func (mr *MockClientMockRecorder) DescribeKeyPairs(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeKeyPairs", reflect.TypeOf((*MockClient)(nil).DescribeKeyPairs), varargs...) } -// DeleteKeyPairs mocks base method +// DeleteKeyPairs mocks base method. func (m *MockClient) DeleteKeyPairs(ctx context.Context, in *pb.DeleteKeyPairsRequest, opts ...grpc.CallOption) (*pb.DeleteKeyPairsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -449,14 +449,14 @@ func (m *MockClient) DeleteKeyPairs(ctx context.Context, in *pb.DeleteKeyPairsRe return ret0, ret1 } -// DeleteKeyPairs indicates an expected call of DeleteKeyPairs +// DeleteKeyPairs indicates an expected call of DeleteKeyPairs. func (mr *MockClientMockRecorder) DeleteKeyPairs(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteKeyPairs", reflect.TypeOf((*MockClient)(nil).DeleteKeyPairs), varargs...) } -// AttachKeyPairs mocks base method +// AttachKeyPairs mocks base method. func (m *MockClient) AttachKeyPairs(ctx context.Context, in *pb.AttachKeyPairsRequest, opts ...grpc.CallOption) (*pb.AttachKeyPairsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -469,14 +469,14 @@ func (m *MockClient) AttachKeyPairs(ctx context.Context, in *pb.AttachKeyPairsRe return ret0, ret1 } -// AttachKeyPairs indicates an expected call of AttachKeyPairs +// AttachKeyPairs indicates an expected call of AttachKeyPairs. func (mr *MockClientMockRecorder) AttachKeyPairs(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttachKeyPairs", reflect.TypeOf((*MockClient)(nil).AttachKeyPairs), varargs...) } -// DetachKeyPairs mocks base method +// DetachKeyPairs mocks base method. func (m *MockClient) DetachKeyPairs(ctx context.Context, in *pb.DetachKeyPairsRequest, opts ...grpc.CallOption) (*pb.DetachKeyPairsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -489,14 +489,14 @@ func (m *MockClient) DetachKeyPairs(ctx context.Context, in *pb.DetachKeyPairsRe return ret0, ret1 } -// DetachKeyPairs indicates an expected call of DetachKeyPairs +// DetachKeyPairs indicates an expected call of DetachKeyPairs. func (mr *MockClientMockRecorder) DetachKeyPairs(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DetachKeyPairs", reflect.TypeOf((*MockClient)(nil).DetachKeyPairs), varargs...) } -// DescribeSubnets mocks base method +// DescribeSubnets mocks base method. func (m *MockClient) DescribeSubnets(ctx context.Context, in *pb.DescribeSubnetsRequest, opts ...grpc.CallOption) (*pb.DescribeSubnetsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -509,14 +509,14 @@ func (m *MockClient) DescribeSubnets(ctx context.Context, in *pb.DescribeSubnets return ret0, ret1 } -// DescribeSubnets indicates an expected call of DescribeSubnets +// DescribeSubnets indicates an expected call of DescribeSubnets. func (mr *MockClientMockRecorder) DescribeSubnets(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeSubnets", reflect.TypeOf((*MockClient)(nil).DescribeSubnets), varargs...) } -// CreateCluster mocks base method +// CreateCluster mocks base method. func (m *MockClient) CreateCluster(ctx context.Context, in *pb.CreateClusterRequest, opts ...grpc.CallOption) (*pb.CreateClusterResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -529,14 +529,14 @@ func (m *MockClient) CreateCluster(ctx context.Context, in *pb.CreateClusterRequ return ret0, ret1 } -// CreateCluster indicates an expected call of CreateCluster +// CreateCluster indicates an expected call of CreateCluster. func (mr *MockClientMockRecorder) CreateCluster(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCluster", reflect.TypeOf((*MockClient)(nil).CreateCluster), varargs...) } -// CreateDebugCluster mocks base method +// CreateDebugCluster mocks base method. func (m *MockClient) CreateDebugCluster(ctx context.Context, in *pb.CreateClusterRequest, opts ...grpc.CallOption) (*pb.CreateClusterResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -549,14 +549,14 @@ func (m *MockClient) CreateDebugCluster(ctx context.Context, in *pb.CreateCluste return ret0, ret1 } -// CreateDebugCluster indicates an expected call of CreateDebugCluster +// CreateDebugCluster indicates an expected call of CreateDebugCluster. func (mr *MockClientMockRecorder) CreateDebugCluster(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateDebugCluster", reflect.TypeOf((*MockClient)(nil).CreateDebugCluster), varargs...) } -// ModifyCluster mocks base method +// ModifyCluster mocks base method. func (m *MockClient) ModifyCluster(ctx context.Context, in *pb.ModifyClusterRequest, opts ...grpc.CallOption) (*pb.ModifyClusterResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -569,14 +569,14 @@ func (m *MockClient) ModifyCluster(ctx context.Context, in *pb.ModifyClusterRequ return ret0, ret1 } -// ModifyCluster indicates an expected call of ModifyCluster +// ModifyCluster indicates an expected call of ModifyCluster. func (mr *MockClientMockRecorder) ModifyCluster(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyCluster", reflect.TypeOf((*MockClient)(nil).ModifyCluster), varargs...) } -// ModifyClusterNode mocks base method +// ModifyClusterNode mocks base method. func (m *MockClient) ModifyClusterNode(ctx context.Context, in *pb.ModifyClusterNodeRequest, opts ...grpc.CallOption) (*pb.ModifyClusterNodeResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -589,14 +589,14 @@ func (m *MockClient) ModifyClusterNode(ctx context.Context, in *pb.ModifyCluster return ret0, ret1 } -// ModifyClusterNode indicates an expected call of ModifyClusterNode +// ModifyClusterNode indicates an expected call of ModifyClusterNode. func (mr *MockClientMockRecorder) ModifyClusterNode(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyClusterNode", reflect.TypeOf((*MockClient)(nil).ModifyClusterNode), varargs...) } -// ModifyClusterAttributes mocks base method +// ModifyClusterAttributes mocks base method. func (m *MockClient) ModifyClusterAttributes(ctx context.Context, in *pb.ModifyClusterAttributesRequest, opts ...grpc.CallOption) (*pb.ModifyClusterAttributesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -609,14 +609,14 @@ func (m *MockClient) ModifyClusterAttributes(ctx context.Context, in *pb.ModifyC return ret0, ret1 } -// ModifyClusterAttributes indicates an expected call of ModifyClusterAttributes +// ModifyClusterAttributes indicates an expected call of ModifyClusterAttributes. func (mr *MockClientMockRecorder) ModifyClusterAttributes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyClusterAttributes", reflect.TypeOf((*MockClient)(nil).ModifyClusterAttributes), varargs...) } -// ModifyClusterNodeAttributes mocks base method +// ModifyClusterNodeAttributes mocks base method. func (m *MockClient) ModifyClusterNodeAttributes(ctx context.Context, in *pb.ModifyClusterNodeAttributesRequest, opts ...grpc.CallOption) (*pb.ModifyClusterNodeAttributesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -629,14 +629,14 @@ func (m *MockClient) ModifyClusterNodeAttributes(ctx context.Context, in *pb.Mod return ret0, ret1 } -// ModifyClusterNodeAttributes indicates an expected call of ModifyClusterNodeAttributes +// ModifyClusterNodeAttributes indicates an expected call of ModifyClusterNodeAttributes. func (mr *MockClientMockRecorder) ModifyClusterNodeAttributes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyClusterNodeAttributes", reflect.TypeOf((*MockClient)(nil).ModifyClusterNodeAttributes), varargs...) } -// AddTableClusterNodes mocks base method +// AddTableClusterNodes mocks base method. func (m *MockClient) AddTableClusterNodes(ctx context.Context, in *pb.AddTableClusterNodesRequest, opts ...grpc.CallOption) (*empty.Empty, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -649,14 +649,14 @@ func (m *MockClient) AddTableClusterNodes(ctx context.Context, in *pb.AddTableCl return ret0, ret1 } -// AddTableClusterNodes indicates an expected call of AddTableClusterNodes +// AddTableClusterNodes indicates an expected call of AddTableClusterNodes. func (mr *MockClientMockRecorder) AddTableClusterNodes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddTableClusterNodes", reflect.TypeOf((*MockClient)(nil).AddTableClusterNodes), varargs...) } -// DeleteTableClusterNodes mocks base method +// DeleteTableClusterNodes mocks base method. func (m *MockClient) DeleteTableClusterNodes(ctx context.Context, in *pb.DeleteTableClusterNodesRequest, opts ...grpc.CallOption) (*empty.Empty, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -669,14 +669,14 @@ func (m *MockClient) DeleteTableClusterNodes(ctx context.Context, in *pb.DeleteT return ret0, ret1 } -// DeleteTableClusterNodes indicates an expected call of DeleteTableClusterNodes +// DeleteTableClusterNodes indicates an expected call of DeleteTableClusterNodes. func (mr *MockClientMockRecorder) DeleteTableClusterNodes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTableClusterNodes", reflect.TypeOf((*MockClient)(nil).DeleteTableClusterNodes), varargs...) } -// DeleteClusters mocks base method +// DeleteClusters mocks base method. func (m *MockClient) DeleteClusters(ctx context.Context, in *pb.DeleteClustersRequest, opts ...grpc.CallOption) (*pb.DeleteClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -689,14 +689,14 @@ func (m *MockClient) DeleteClusters(ctx context.Context, in *pb.DeleteClustersRe return ret0, ret1 } -// DeleteClusters indicates an expected call of DeleteClusters +// DeleteClusters indicates an expected call of DeleteClusters. func (mr *MockClientMockRecorder) DeleteClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteClusters", reflect.TypeOf((*MockClient)(nil).DeleteClusters), varargs...) } -// UpgradeCluster mocks base method +// UpgradeCluster mocks base method. func (m *MockClient) UpgradeCluster(ctx context.Context, in *pb.UpgradeClusterRequest, opts ...grpc.CallOption) (*pb.UpgradeClusterResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -709,14 +709,14 @@ func (m *MockClient) UpgradeCluster(ctx context.Context, in *pb.UpgradeClusterRe return ret0, ret1 } -// UpgradeCluster indicates an expected call of UpgradeCluster +// UpgradeCluster indicates an expected call of UpgradeCluster. func (mr *MockClientMockRecorder) UpgradeCluster(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpgradeCluster", reflect.TypeOf((*MockClient)(nil).UpgradeCluster), varargs...) } -// RollbackCluster mocks base method +// RollbackCluster mocks base method. func (m *MockClient) RollbackCluster(ctx context.Context, in *pb.RollbackClusterRequest, opts ...grpc.CallOption) (*pb.RollbackClusterResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -729,14 +729,14 @@ func (m *MockClient) RollbackCluster(ctx context.Context, in *pb.RollbackCluster return ret0, ret1 } -// RollbackCluster indicates an expected call of RollbackCluster +// RollbackCluster indicates an expected call of RollbackCluster. func (mr *MockClientMockRecorder) RollbackCluster(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RollbackCluster", reflect.TypeOf((*MockClient)(nil).RollbackCluster), varargs...) } -// ResizeCluster mocks base method +// ResizeCluster mocks base method. func (m *MockClient) ResizeCluster(ctx context.Context, in *pb.ResizeClusterRequest, opts ...grpc.CallOption) (*pb.ResizeClusterResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -749,14 +749,14 @@ func (m *MockClient) ResizeCluster(ctx context.Context, in *pb.ResizeClusterRequ return ret0, ret1 } -// ResizeCluster indicates an expected call of ResizeCluster +// ResizeCluster indicates an expected call of ResizeCluster. func (mr *MockClientMockRecorder) ResizeCluster(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeCluster", reflect.TypeOf((*MockClient)(nil).ResizeCluster), varargs...) } -// AddClusterNodes mocks base method +// AddClusterNodes mocks base method. func (m *MockClient) AddClusterNodes(ctx context.Context, in *pb.AddClusterNodesRequest, opts ...grpc.CallOption) (*pb.AddClusterNodesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -769,14 +769,14 @@ func (m *MockClient) AddClusterNodes(ctx context.Context, in *pb.AddClusterNodes return ret0, ret1 } -// AddClusterNodes indicates an expected call of AddClusterNodes +// AddClusterNodes indicates an expected call of AddClusterNodes. func (mr *MockClientMockRecorder) AddClusterNodes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddClusterNodes", reflect.TypeOf((*MockClient)(nil).AddClusterNodes), varargs...) } -// DeleteClusterNodes mocks base method +// DeleteClusterNodes mocks base method. func (m *MockClient) DeleteClusterNodes(ctx context.Context, in *pb.DeleteClusterNodesRequest, opts ...grpc.CallOption) (*pb.DeleteClusterNodesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -789,14 +789,14 @@ func (m *MockClient) DeleteClusterNodes(ctx context.Context, in *pb.DeleteCluste return ret0, ret1 } -// DeleteClusterNodes indicates an expected call of DeleteClusterNodes +// DeleteClusterNodes indicates an expected call of DeleteClusterNodes. func (mr *MockClientMockRecorder) DeleteClusterNodes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteClusterNodes", reflect.TypeOf((*MockClient)(nil).DeleteClusterNodes), varargs...) } -// UpdateClusterEnv mocks base method +// UpdateClusterEnv mocks base method. func (m *MockClient) UpdateClusterEnv(ctx context.Context, in *pb.UpdateClusterEnvRequest, opts ...grpc.CallOption) (*pb.UpdateClusterEnvResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -809,14 +809,14 @@ func (m *MockClient) UpdateClusterEnv(ctx context.Context, in *pb.UpdateClusterE return ret0, ret1 } -// UpdateClusterEnv indicates an expected call of UpdateClusterEnv +// UpdateClusterEnv indicates an expected call of UpdateClusterEnv. func (mr *MockClientMockRecorder) UpdateClusterEnv(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateClusterEnv", reflect.TypeOf((*MockClient)(nil).UpdateClusterEnv), varargs...) } -// DescribeClusters mocks base method +// DescribeClusters mocks base method. func (m *MockClient) DescribeClusters(ctx context.Context, in *pb.DescribeClustersRequest, opts ...grpc.CallOption) (*pb.DescribeClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -829,14 +829,14 @@ func (m *MockClient) DescribeClusters(ctx context.Context, in *pb.DescribeCluste return ret0, ret1 } -// DescribeClusters indicates an expected call of DescribeClusters +// DescribeClusters indicates an expected call of DescribeClusters. func (mr *MockClientMockRecorder) DescribeClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeClusters", reflect.TypeOf((*MockClient)(nil).DescribeClusters), varargs...) } -// DescribeDebugClusters mocks base method +// DescribeDebugClusters mocks base method. func (m *MockClient) DescribeDebugClusters(ctx context.Context, in *pb.DescribeClustersRequest, opts ...grpc.CallOption) (*pb.DescribeClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -849,14 +849,14 @@ func (m *MockClient) DescribeDebugClusters(ctx context.Context, in *pb.DescribeC return ret0, ret1 } -// DescribeDebugClusters indicates an expected call of DescribeDebugClusters +// DescribeDebugClusters indicates an expected call of DescribeDebugClusters. func (mr *MockClientMockRecorder) DescribeDebugClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeDebugClusters", reflect.TypeOf((*MockClient)(nil).DescribeDebugClusters), varargs...) } -// DescribeAppClusters mocks base method +// DescribeAppClusters mocks base method. func (m *MockClient) DescribeAppClusters(ctx context.Context, in *pb.DescribeAppClustersRequest, opts ...grpc.CallOption) (*pb.DescribeAppClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -869,14 +869,14 @@ func (m *MockClient) DescribeAppClusters(ctx context.Context, in *pb.DescribeApp return ret0, ret1 } -// DescribeAppClusters indicates an expected call of DescribeAppClusters +// DescribeAppClusters indicates an expected call of DescribeAppClusters. func (mr *MockClientMockRecorder) DescribeAppClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeAppClusters", reflect.TypeOf((*MockClient)(nil).DescribeAppClusters), varargs...) } -// DescribeDebugAppClusters mocks base method +// DescribeDebugAppClusters mocks base method. func (m *MockClient) DescribeDebugAppClusters(ctx context.Context, in *pb.DescribeAppClustersRequest, opts ...grpc.CallOption) (*pb.DescribeAppClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -889,14 +889,14 @@ func (m *MockClient) DescribeDebugAppClusters(ctx context.Context, in *pb.Descri return ret0, ret1 } -// DescribeDebugAppClusters indicates an expected call of DescribeDebugAppClusters +// DescribeDebugAppClusters indicates an expected call of DescribeDebugAppClusters. func (mr *MockClientMockRecorder) DescribeDebugAppClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeDebugAppClusters", reflect.TypeOf((*MockClient)(nil).DescribeDebugAppClusters), varargs...) } -// DescribeClusterNodes mocks base method +// DescribeClusterNodes mocks base method. func (m *MockClient) DescribeClusterNodes(ctx context.Context, in *pb.DescribeClusterNodesRequest, opts ...grpc.CallOption) (*pb.DescribeClusterNodesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -909,14 +909,14 @@ func (m *MockClient) DescribeClusterNodes(ctx context.Context, in *pb.DescribeCl return ret0, ret1 } -// DescribeClusterNodes indicates an expected call of DescribeClusterNodes +// DescribeClusterNodes indicates an expected call of DescribeClusterNodes. func (mr *MockClientMockRecorder) DescribeClusterNodes(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeClusterNodes", reflect.TypeOf((*MockClient)(nil).DescribeClusterNodes), varargs...) } -// StopClusters mocks base method +// StopClusters mocks base method. func (m *MockClient) StopClusters(ctx context.Context, in *pb.StopClustersRequest, opts ...grpc.CallOption) (*pb.StopClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -929,14 +929,14 @@ func (m *MockClient) StopClusters(ctx context.Context, in *pb.StopClustersReques return ret0, ret1 } -// StopClusters indicates an expected call of StopClusters +// StopClusters indicates an expected call of StopClusters. func (mr *MockClientMockRecorder) StopClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StopClusters", reflect.TypeOf((*MockClient)(nil).StopClusters), varargs...) } -// StartClusters mocks base method +// StartClusters mocks base method. func (m *MockClient) StartClusters(ctx context.Context, in *pb.StartClustersRequest, opts ...grpc.CallOption) (*pb.StartClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -949,14 +949,14 @@ func (m *MockClient) StartClusters(ctx context.Context, in *pb.StartClustersRequ return ret0, ret1 } -// StartClusters indicates an expected call of StartClusters +// StartClusters indicates an expected call of StartClusters. func (mr *MockClientMockRecorder) StartClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StartClusters", reflect.TypeOf((*MockClient)(nil).StartClusters), varargs...) } -// RecoverClusters mocks base method +// RecoverClusters mocks base method. func (m *MockClient) RecoverClusters(ctx context.Context, in *pb.RecoverClustersRequest, opts ...grpc.CallOption) (*pb.RecoverClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -969,14 +969,14 @@ func (m *MockClient) RecoverClusters(ctx context.Context, in *pb.RecoverClusters return ret0, ret1 } -// RecoverClusters indicates an expected call of RecoverClusters +// RecoverClusters indicates an expected call of RecoverClusters. func (mr *MockClientMockRecorder) RecoverClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecoverClusters", reflect.TypeOf((*MockClient)(nil).RecoverClusters), varargs...) } -// CeaseClusters mocks base method +// CeaseClusters mocks base method. func (m *MockClient) CeaseClusters(ctx context.Context, in *pb.CeaseClustersRequest, opts ...grpc.CallOption) (*pb.CeaseClustersResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -989,14 +989,14 @@ func (m *MockClient) CeaseClusters(ctx context.Context, in *pb.CeaseClustersRequ return ret0, ret1 } -// CeaseClusters indicates an expected call of CeaseClusters +// CeaseClusters indicates an expected call of CeaseClusters. func (mr *MockClientMockRecorder) CeaseClusters(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CeaseClusters", reflect.TypeOf((*MockClient)(nil).CeaseClusters), varargs...) } -// GetClusterStatistics mocks base method +// GetClusterStatistics mocks base method. func (m *MockClient) GetClusterStatistics(ctx context.Context, in *pb.GetClusterStatisticsRequest, opts ...grpc.CallOption) (*pb.GetClusterStatisticsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1009,14 +1009,54 @@ func (m *MockClient) GetClusterStatistics(ctx context.Context, in *pb.GetCluster return ret0, ret1 } -// GetClusterStatistics indicates an expected call of GetClusterStatistics +// GetClusterStatistics indicates an expected call of GetClusterStatistics. func (mr *MockClientMockRecorder) GetClusterStatistics(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClusterStatistics", reflect.TypeOf((*MockClient)(nil).GetClusterStatistics), varargs...) } -// SyncRepo mocks base method +// DeleteClusterInRuntime mocks base method. +func (m *MockClient) DeleteClusterInRuntime(ctx context.Context, in *pb.DeleteClusterInRuntimeRequest, opts ...grpc.CallOption) (*pb.DeleteClusterInRuntimeResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "DeleteClusterInRuntime", varargs...) + ret0, _ := ret[0].(*pb.DeleteClusterInRuntimeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteClusterInRuntime indicates an expected call of DeleteClusterInRuntime. +func (mr *MockClientMockRecorder) DeleteClusterInRuntime(ctx, in interface{}, opts ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteClusterInRuntime", reflect.TypeOf((*MockClient)(nil).DeleteClusterInRuntime), varargs...) +} + +// MigrateClusterInRuntime mocks base method. +func (m *MockClient) MigrateClusterInRuntime(ctx context.Context, in *pb.MigrateClusterInRuntimeRequest, opts ...grpc.CallOption) (*pb.MigrateClusterInRuntimeResponse, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "MigrateClusterInRuntime", varargs...) + ret0, _ := ret[0].(*pb.MigrateClusterInRuntimeResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// MigrateClusterInRuntime indicates an expected call of MigrateClusterInRuntime. +func (mr *MockClientMockRecorder) MigrateClusterInRuntime(ctx, in interface{}, opts ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateClusterInRuntime", reflect.TypeOf((*MockClient)(nil).MigrateClusterInRuntime), varargs...) +} + +// SyncRepo mocks base method. func (m *MockClient) SyncRepo(ctx context.Context, in *pb.SyncRepoRequest, opts ...grpc.CallOption) (*pb.SyncRepoResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1029,14 +1069,14 @@ func (m *MockClient) SyncRepo(ctx context.Context, in *pb.SyncRepoRequest, opts return ret0, ret1 } -// SyncRepo indicates an expected call of SyncRepo +// SyncRepo indicates an expected call of SyncRepo. func (mr *MockClientMockRecorder) SyncRepo(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncRepo", reflect.TypeOf((*MockClient)(nil).SyncRepo), varargs...) } -// CreateApp mocks base method +// CreateApp mocks base method. func (m *MockClient) CreateApp(ctx context.Context, in *pb.CreateAppRequest, opts ...grpc.CallOption) (*pb.CreateAppResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1049,14 +1089,14 @@ func (m *MockClient) CreateApp(ctx context.Context, in *pb.CreateAppRequest, opt return ret0, ret1 } -// CreateApp indicates an expected call of CreateApp +// CreateApp indicates an expected call of CreateApp. func (mr *MockClientMockRecorder) CreateApp(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateApp", reflect.TypeOf((*MockClient)(nil).CreateApp), varargs...) } -// ValidatePackage mocks base method +// ValidatePackage mocks base method. func (m *MockClient) ValidatePackage(ctx context.Context, in *pb.ValidatePackageRequest, opts ...grpc.CallOption) (*pb.ValidatePackageResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1069,14 +1109,14 @@ func (m *MockClient) ValidatePackage(ctx context.Context, in *pb.ValidatePackage return ret0, ret1 } -// ValidatePackage indicates an expected call of ValidatePackage +// ValidatePackage indicates an expected call of ValidatePackage. func (mr *MockClientMockRecorder) ValidatePackage(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatePackage", reflect.TypeOf((*MockClient)(nil).ValidatePackage), varargs...) } -// GetAppStatistics mocks base method +// GetAppStatistics mocks base method. func (m *MockClient) GetAppStatistics(ctx context.Context, in *pb.GetAppStatisticsRequest, opts ...grpc.CallOption) (*pb.GetAppStatisticsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1089,14 +1129,14 @@ func (m *MockClient) GetAppStatistics(ctx context.Context, in *pb.GetAppStatisti return ret0, ret1 } -// GetAppStatistics indicates an expected call of GetAppStatistics +// GetAppStatistics indicates an expected call of GetAppStatistics. func (mr *MockClientMockRecorder) GetAppStatistics(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAppStatistics", reflect.TypeOf((*MockClient)(nil).GetAppStatistics), varargs...) } -// DescribeApps mocks base method +// DescribeApps mocks base method. func (m *MockClient) DescribeApps(ctx context.Context, in *pb.DescribeAppsRequest, opts ...grpc.CallOption) (*pb.DescribeAppsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1109,14 +1149,14 @@ func (m *MockClient) DescribeApps(ctx context.Context, in *pb.DescribeAppsReques return ret0, ret1 } -// DescribeApps indicates an expected call of DescribeApps +// DescribeApps indicates an expected call of DescribeApps. func (mr *MockClientMockRecorder) DescribeApps(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeApps", reflect.TypeOf((*MockClient)(nil).DescribeApps), varargs...) } -// DescribeActiveApps mocks base method +// DescribeActiveApps mocks base method. func (m *MockClient) DescribeActiveApps(ctx context.Context, in *pb.DescribeAppsRequest, opts ...grpc.CallOption) (*pb.DescribeAppsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1129,14 +1169,14 @@ func (m *MockClient) DescribeActiveApps(ctx context.Context, in *pb.DescribeApps return ret0, ret1 } -// DescribeActiveApps indicates an expected call of DescribeActiveApps +// DescribeActiveApps indicates an expected call of DescribeActiveApps. func (mr *MockClientMockRecorder) DescribeActiveApps(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeActiveApps", reflect.TypeOf((*MockClient)(nil).DescribeActiveApps), varargs...) } -// ModifyApp mocks base method +// ModifyApp mocks base method. func (m *MockClient) ModifyApp(ctx context.Context, in *pb.ModifyAppRequest, opts ...grpc.CallOption) (*pb.ModifyAppResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1149,14 +1189,14 @@ func (m *MockClient) ModifyApp(ctx context.Context, in *pb.ModifyAppRequest, opt return ret0, ret1 } -// ModifyApp indicates an expected call of ModifyApp +// ModifyApp indicates an expected call of ModifyApp. func (mr *MockClientMockRecorder) ModifyApp(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyApp", reflect.TypeOf((*MockClient)(nil).ModifyApp), varargs...) } -// UploadAppAttachment mocks base method +// UploadAppAttachment mocks base method. func (m *MockClient) UploadAppAttachment(ctx context.Context, in *pb.UploadAppAttachmentRequest, opts ...grpc.CallOption) (*pb.UploadAppAttachmentResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1169,14 +1209,14 @@ func (m *MockClient) UploadAppAttachment(ctx context.Context, in *pb.UploadAppAt return ret0, ret1 } -// UploadAppAttachment indicates an expected call of UploadAppAttachment +// UploadAppAttachment indicates an expected call of UploadAppAttachment. func (mr *MockClientMockRecorder) UploadAppAttachment(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadAppAttachment", reflect.TypeOf((*MockClient)(nil).UploadAppAttachment), varargs...) } -// DeleteApps mocks base method +// DeleteApps mocks base method. func (m *MockClient) DeleteApps(ctx context.Context, in *pb.DeleteAppsRequest, opts ...grpc.CallOption) (*pb.DeleteAppsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1189,14 +1229,14 @@ func (m *MockClient) DeleteApps(ctx context.Context, in *pb.DeleteAppsRequest, o return ret0, ret1 } -// DeleteApps indicates an expected call of DeleteApps +// DeleteApps indicates an expected call of DeleteApps. func (mr *MockClientMockRecorder) DeleteApps(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteApps", reflect.TypeOf((*MockClient)(nil).DeleteApps), varargs...) } -// CreateAppVersion mocks base method +// CreateAppVersion mocks base method. func (m *MockClient) CreateAppVersion(ctx context.Context, in *pb.CreateAppVersionRequest, opts ...grpc.CallOption) (*pb.CreateAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1209,14 +1249,14 @@ func (m *MockClient) CreateAppVersion(ctx context.Context, in *pb.CreateAppVersi return ret0, ret1 } -// CreateAppVersion indicates an expected call of CreateAppVersion +// CreateAppVersion indicates an expected call of CreateAppVersion. func (mr *MockClientMockRecorder) CreateAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAppVersion", reflect.TypeOf((*MockClient)(nil).CreateAppVersion), varargs...) } -// DescribeAppVersions mocks base method +// DescribeAppVersions mocks base method. func (m *MockClient) DescribeAppVersions(ctx context.Context, in *pb.DescribeAppVersionsRequest, opts ...grpc.CallOption) (*pb.DescribeAppVersionsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1229,14 +1269,14 @@ func (m *MockClient) DescribeAppVersions(ctx context.Context, in *pb.DescribeApp return ret0, ret1 } -// DescribeAppVersions indicates an expected call of DescribeAppVersions +// DescribeAppVersions indicates an expected call of DescribeAppVersions. func (mr *MockClientMockRecorder) DescribeAppVersions(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeAppVersions", reflect.TypeOf((*MockClient)(nil).DescribeAppVersions), varargs...) } -// DescribeActiveAppVersions mocks base method +// DescribeActiveAppVersions mocks base method. func (m *MockClient) DescribeActiveAppVersions(ctx context.Context, in *pb.DescribeAppVersionsRequest, opts ...grpc.CallOption) (*pb.DescribeAppVersionsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1249,14 +1289,14 @@ func (m *MockClient) DescribeActiveAppVersions(ctx context.Context, in *pb.Descr return ret0, ret1 } -// DescribeActiveAppVersions indicates an expected call of DescribeActiveAppVersions +// DescribeActiveAppVersions indicates an expected call of DescribeActiveAppVersions. func (mr *MockClientMockRecorder) DescribeActiveAppVersions(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeActiveAppVersions", reflect.TypeOf((*MockClient)(nil).DescribeActiveAppVersions), varargs...) } -// DescribeAppVersionAudits mocks base method +// DescribeAppVersionAudits mocks base method. func (m *MockClient) DescribeAppVersionAudits(ctx context.Context, in *pb.DescribeAppVersionAuditsRequest, opts ...grpc.CallOption) (*pb.DescribeAppVersionAuditsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1269,14 +1309,14 @@ func (m *MockClient) DescribeAppVersionAudits(ctx context.Context, in *pb.Descri return ret0, ret1 } -// DescribeAppVersionAudits indicates an expected call of DescribeAppVersionAudits +// DescribeAppVersionAudits indicates an expected call of DescribeAppVersionAudits. func (mr *MockClientMockRecorder) DescribeAppVersionAudits(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeAppVersionAudits", reflect.TypeOf((*MockClient)(nil).DescribeAppVersionAudits), varargs...) } -// DescribeAppVersionReviews mocks base method +// DescribeAppVersionReviews mocks base method. func (m *MockClient) DescribeAppVersionReviews(ctx context.Context, in *pb.DescribeAppVersionReviewsRequest, opts ...grpc.CallOption) (*pb.DescribeAppVersionReviewsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1289,14 +1329,14 @@ func (m *MockClient) DescribeAppVersionReviews(ctx context.Context, in *pb.Descr return ret0, ret1 } -// DescribeAppVersionReviews indicates an expected call of DescribeAppVersionReviews +// DescribeAppVersionReviews indicates an expected call of DescribeAppVersionReviews. func (mr *MockClientMockRecorder) DescribeAppVersionReviews(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeAppVersionReviews", reflect.TypeOf((*MockClient)(nil).DescribeAppVersionReviews), varargs...) } -// ModifyAppVersion mocks base method +// ModifyAppVersion mocks base method. func (m *MockClient) ModifyAppVersion(ctx context.Context, in *pb.ModifyAppVersionRequest, opts ...grpc.CallOption) (*pb.ModifyAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1309,14 +1349,14 @@ func (m *MockClient) ModifyAppVersion(ctx context.Context, in *pb.ModifyAppVersi return ret0, ret1 } -// ModifyAppVersion indicates an expected call of ModifyAppVersion +// ModifyAppVersion indicates an expected call of ModifyAppVersion. func (mr *MockClientMockRecorder) ModifyAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyAppVersion", reflect.TypeOf((*MockClient)(nil).ModifyAppVersion), varargs...) } -// GetAppVersionPackage mocks base method +// GetAppVersionPackage mocks base method. func (m *MockClient) GetAppVersionPackage(ctx context.Context, in *pb.GetAppVersionPackageRequest, opts ...grpc.CallOption) (*pb.GetAppVersionPackageResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1329,14 +1369,14 @@ func (m *MockClient) GetAppVersionPackage(ctx context.Context, in *pb.GetAppVers return ret0, ret1 } -// GetAppVersionPackage indicates an expected call of GetAppVersionPackage +// GetAppVersionPackage indicates an expected call of GetAppVersionPackage. func (mr *MockClientMockRecorder) GetAppVersionPackage(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAppVersionPackage", reflect.TypeOf((*MockClient)(nil).GetAppVersionPackage), varargs...) } -// GetAppVersionPackageFiles mocks base method +// GetAppVersionPackageFiles mocks base method. func (m *MockClient) GetAppVersionPackageFiles(ctx context.Context, in *pb.GetAppVersionPackageFilesRequest, opts ...grpc.CallOption) (*pb.GetAppVersionPackageFilesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1349,14 +1389,14 @@ func (m *MockClient) GetAppVersionPackageFiles(ctx context.Context, in *pb.GetAp return ret0, ret1 } -// GetAppVersionPackageFiles indicates an expected call of GetAppVersionPackageFiles +// GetAppVersionPackageFiles indicates an expected call of GetAppVersionPackageFiles. func (mr *MockClientMockRecorder) GetAppVersionPackageFiles(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAppVersionPackageFiles", reflect.TypeOf((*MockClient)(nil).GetAppVersionPackageFiles), varargs...) } -// SubmitAppVersion mocks base method +// SubmitAppVersion mocks base method. func (m *MockClient) SubmitAppVersion(ctx context.Context, in *pb.SubmitAppVersionRequest, opts ...grpc.CallOption) (*pb.SubmitAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1369,14 +1409,14 @@ func (m *MockClient) SubmitAppVersion(ctx context.Context, in *pb.SubmitAppVersi return ret0, ret1 } -// SubmitAppVersion indicates an expected call of SubmitAppVersion +// SubmitAppVersion indicates an expected call of SubmitAppVersion. func (mr *MockClientMockRecorder) SubmitAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SubmitAppVersion", reflect.TypeOf((*MockClient)(nil).SubmitAppVersion), varargs...) } -// CancelAppVersion mocks base method +// CancelAppVersion mocks base method. func (m *MockClient) CancelAppVersion(ctx context.Context, in *pb.CancelAppVersionRequest, opts ...grpc.CallOption) (*pb.CancelAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1389,14 +1429,14 @@ func (m *MockClient) CancelAppVersion(ctx context.Context, in *pb.CancelAppVersi return ret0, ret1 } -// CancelAppVersion indicates an expected call of CancelAppVersion +// CancelAppVersion indicates an expected call of CancelAppVersion. func (mr *MockClientMockRecorder) CancelAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CancelAppVersion", reflect.TypeOf((*MockClient)(nil).CancelAppVersion), varargs...) } -// ReleaseAppVersion mocks base method +// ReleaseAppVersion mocks base method. func (m *MockClient) ReleaseAppVersion(ctx context.Context, in *pb.ReleaseAppVersionRequest, opts ...grpc.CallOption) (*pb.ReleaseAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1409,14 +1449,14 @@ func (m *MockClient) ReleaseAppVersion(ctx context.Context, in *pb.ReleaseAppVer return ret0, ret1 } -// ReleaseAppVersion indicates an expected call of ReleaseAppVersion +// ReleaseAppVersion indicates an expected call of ReleaseAppVersion. func (mr *MockClientMockRecorder) ReleaseAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseAppVersion", reflect.TypeOf((*MockClient)(nil).ReleaseAppVersion), varargs...) } -// DeleteAppVersion mocks base method +// DeleteAppVersion mocks base method. func (m *MockClient) DeleteAppVersion(ctx context.Context, in *pb.DeleteAppVersionRequest, opts ...grpc.CallOption) (*pb.DeleteAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1429,14 +1469,14 @@ func (m *MockClient) DeleteAppVersion(ctx context.Context, in *pb.DeleteAppVersi return ret0, ret1 } -// DeleteAppVersion indicates an expected call of DeleteAppVersion +// DeleteAppVersion indicates an expected call of DeleteAppVersion. func (mr *MockClientMockRecorder) DeleteAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAppVersion", reflect.TypeOf((*MockClient)(nil).DeleteAppVersion), varargs...) } -// IsvReviewAppVersion mocks base method +// IsvReviewAppVersion mocks base method. func (m *MockClient) IsvReviewAppVersion(ctx context.Context, in *pb.ReviewAppVersionRequest, opts ...grpc.CallOption) (*pb.ReviewAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1449,14 +1489,14 @@ func (m *MockClient) IsvReviewAppVersion(ctx context.Context, in *pb.ReviewAppVe return ret0, ret1 } -// IsvReviewAppVersion indicates an expected call of IsvReviewAppVersion +// IsvReviewAppVersion indicates an expected call of IsvReviewAppVersion. func (mr *MockClientMockRecorder) IsvReviewAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsvReviewAppVersion", reflect.TypeOf((*MockClient)(nil).IsvReviewAppVersion), varargs...) } -// IsvPassAppVersion mocks base method +// IsvPassAppVersion mocks base method. func (m *MockClient) IsvPassAppVersion(ctx context.Context, in *pb.PassAppVersionRequest, opts ...grpc.CallOption) (*pb.PassAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1469,14 +1509,14 @@ func (m *MockClient) IsvPassAppVersion(ctx context.Context, in *pb.PassAppVersio return ret0, ret1 } -// IsvPassAppVersion indicates an expected call of IsvPassAppVersion +// IsvPassAppVersion indicates an expected call of IsvPassAppVersion. func (mr *MockClientMockRecorder) IsvPassAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsvPassAppVersion", reflect.TypeOf((*MockClient)(nil).IsvPassAppVersion), varargs...) } -// IsvRejectAppVersion mocks base method +// IsvRejectAppVersion mocks base method. func (m *MockClient) IsvRejectAppVersion(ctx context.Context, in *pb.RejectAppVersionRequest, opts ...grpc.CallOption) (*pb.RejectAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1489,14 +1529,14 @@ func (m *MockClient) IsvRejectAppVersion(ctx context.Context, in *pb.RejectAppVe return ret0, ret1 } -// IsvRejectAppVersion indicates an expected call of IsvRejectAppVersion +// IsvRejectAppVersion indicates an expected call of IsvRejectAppVersion. func (mr *MockClientMockRecorder) IsvRejectAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsvRejectAppVersion", reflect.TypeOf((*MockClient)(nil).IsvRejectAppVersion), varargs...) } -// BusinessReviewAppVersion mocks base method +// BusinessReviewAppVersion mocks base method. func (m *MockClient) BusinessReviewAppVersion(ctx context.Context, in *pb.ReviewAppVersionRequest, opts ...grpc.CallOption) (*pb.ReviewAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1509,14 +1549,14 @@ func (m *MockClient) BusinessReviewAppVersion(ctx context.Context, in *pb.Review return ret0, ret1 } -// BusinessReviewAppVersion indicates an expected call of BusinessReviewAppVersion +// BusinessReviewAppVersion indicates an expected call of BusinessReviewAppVersion. func (mr *MockClientMockRecorder) BusinessReviewAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BusinessReviewAppVersion", reflect.TypeOf((*MockClient)(nil).BusinessReviewAppVersion), varargs...) } -// BusinessPassAppVersion mocks base method +// BusinessPassAppVersion mocks base method. func (m *MockClient) BusinessPassAppVersion(ctx context.Context, in *pb.PassAppVersionRequest, opts ...grpc.CallOption) (*pb.PassAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1529,14 +1569,14 @@ func (m *MockClient) BusinessPassAppVersion(ctx context.Context, in *pb.PassAppV return ret0, ret1 } -// BusinessPassAppVersion indicates an expected call of BusinessPassAppVersion +// BusinessPassAppVersion indicates an expected call of BusinessPassAppVersion. func (mr *MockClientMockRecorder) BusinessPassAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BusinessPassAppVersion", reflect.TypeOf((*MockClient)(nil).BusinessPassAppVersion), varargs...) } -// BusinessRejectAppVersion mocks base method +// BusinessRejectAppVersion mocks base method. func (m *MockClient) BusinessRejectAppVersion(ctx context.Context, in *pb.RejectAppVersionRequest, opts ...grpc.CallOption) (*pb.RejectAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1549,14 +1589,14 @@ func (m *MockClient) BusinessRejectAppVersion(ctx context.Context, in *pb.Reject return ret0, ret1 } -// BusinessRejectAppVersion indicates an expected call of BusinessRejectAppVersion +// BusinessRejectAppVersion indicates an expected call of BusinessRejectAppVersion. func (mr *MockClientMockRecorder) BusinessRejectAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BusinessRejectAppVersion", reflect.TypeOf((*MockClient)(nil).BusinessRejectAppVersion), varargs...) } -// TechnicalReviewAppVersion mocks base method +// TechnicalReviewAppVersion mocks base method. func (m *MockClient) TechnicalReviewAppVersion(ctx context.Context, in *pb.ReviewAppVersionRequest, opts ...grpc.CallOption) (*pb.ReviewAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1569,14 +1609,14 @@ func (m *MockClient) TechnicalReviewAppVersion(ctx context.Context, in *pb.Revie return ret0, ret1 } -// TechnicalReviewAppVersion indicates an expected call of TechnicalReviewAppVersion +// TechnicalReviewAppVersion indicates an expected call of TechnicalReviewAppVersion. func (mr *MockClientMockRecorder) TechnicalReviewAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TechnicalReviewAppVersion", reflect.TypeOf((*MockClient)(nil).TechnicalReviewAppVersion), varargs...) } -// TechnicalPassAppVersion mocks base method +// TechnicalPassAppVersion mocks base method. func (m *MockClient) TechnicalPassAppVersion(ctx context.Context, in *pb.PassAppVersionRequest, opts ...grpc.CallOption) (*pb.PassAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1589,14 +1629,14 @@ func (m *MockClient) TechnicalPassAppVersion(ctx context.Context, in *pb.PassApp return ret0, ret1 } -// TechnicalPassAppVersion indicates an expected call of TechnicalPassAppVersion +// TechnicalPassAppVersion indicates an expected call of TechnicalPassAppVersion. func (mr *MockClientMockRecorder) TechnicalPassAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TechnicalPassAppVersion", reflect.TypeOf((*MockClient)(nil).TechnicalPassAppVersion), varargs...) } -// TechnicalRejectAppVersion mocks base method +// TechnicalRejectAppVersion mocks base method. func (m *MockClient) TechnicalRejectAppVersion(ctx context.Context, in *pb.RejectAppVersionRequest, opts ...grpc.CallOption) (*pb.RejectAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1609,14 +1649,14 @@ func (m *MockClient) TechnicalRejectAppVersion(ctx context.Context, in *pb.Rejec return ret0, ret1 } -// TechnicalRejectAppVersion indicates an expected call of TechnicalRejectAppVersion +// TechnicalRejectAppVersion indicates an expected call of TechnicalRejectAppVersion. func (mr *MockClientMockRecorder) TechnicalRejectAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TechnicalRejectAppVersion", reflect.TypeOf((*MockClient)(nil).TechnicalRejectAppVersion), varargs...) } -// AdminPassAppVersion mocks base method +// AdminPassAppVersion mocks base method. func (m *MockClient) AdminPassAppVersion(ctx context.Context, in *pb.PassAppVersionRequest, opts ...grpc.CallOption) (*pb.PassAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1629,14 +1669,14 @@ func (m *MockClient) AdminPassAppVersion(ctx context.Context, in *pb.PassAppVers return ret0, ret1 } -// AdminPassAppVersion indicates an expected call of AdminPassAppVersion +// AdminPassAppVersion indicates an expected call of AdminPassAppVersion. func (mr *MockClientMockRecorder) AdminPassAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AdminPassAppVersion", reflect.TypeOf((*MockClient)(nil).AdminPassAppVersion), varargs...) } -// AdminRejectAppVersion mocks base method +// AdminRejectAppVersion mocks base method. func (m *MockClient) AdminRejectAppVersion(ctx context.Context, in *pb.RejectAppVersionRequest, opts ...grpc.CallOption) (*pb.RejectAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1649,14 +1689,14 @@ func (m *MockClient) AdminRejectAppVersion(ctx context.Context, in *pb.RejectApp return ret0, ret1 } -// AdminRejectAppVersion indicates an expected call of AdminRejectAppVersion +// AdminRejectAppVersion indicates an expected call of AdminRejectAppVersion. func (mr *MockClientMockRecorder) AdminRejectAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AdminRejectAppVersion", reflect.TypeOf((*MockClient)(nil).AdminRejectAppVersion), varargs...) } -// SuspendAppVersion mocks base method +// SuspendAppVersion mocks base method. func (m *MockClient) SuspendAppVersion(ctx context.Context, in *pb.SuspendAppVersionRequest, opts ...grpc.CallOption) (*pb.SuspendAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1669,14 +1709,14 @@ func (m *MockClient) SuspendAppVersion(ctx context.Context, in *pb.SuspendAppVer return ret0, ret1 } -// SuspendAppVersion indicates an expected call of SuspendAppVersion +// SuspendAppVersion indicates an expected call of SuspendAppVersion. func (mr *MockClientMockRecorder) SuspendAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SuspendAppVersion", reflect.TypeOf((*MockClient)(nil).SuspendAppVersion), varargs...) } -// RecoverAppVersion mocks base method +// RecoverAppVersion mocks base method. func (m *MockClient) RecoverAppVersion(ctx context.Context, in *pb.RecoverAppVersionRequest, opts ...grpc.CallOption) (*pb.RecoverAppVersionResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1689,14 +1729,14 @@ func (m *MockClient) RecoverAppVersion(ctx context.Context, in *pb.RecoverAppVer return ret0, ret1 } -// RecoverAppVersion indicates an expected call of RecoverAppVersion +// RecoverAppVersion indicates an expected call of RecoverAppVersion. func (mr *MockClientMockRecorder) RecoverAppVersion(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecoverAppVersion", reflect.TypeOf((*MockClient)(nil).RecoverAppVersion), varargs...) } -// CreateRepo mocks base method +// CreateRepo mocks base method. func (m *MockClient) CreateRepo(ctx context.Context, in *pb.CreateRepoRequest, opts ...grpc.CallOption) (*pb.CreateRepoResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1709,14 +1749,14 @@ func (m *MockClient) CreateRepo(ctx context.Context, in *pb.CreateRepoRequest, o return ret0, ret1 } -// CreateRepo indicates an expected call of CreateRepo +// CreateRepo indicates an expected call of CreateRepo. func (mr *MockClientMockRecorder) CreateRepo(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRepo", reflect.TypeOf((*MockClient)(nil).CreateRepo), varargs...) } -// DescribeRepos mocks base method +// DescribeRepos mocks base method. func (m *MockClient) DescribeRepos(ctx context.Context, in *pb.DescribeReposRequest, opts ...grpc.CallOption) (*pb.DescribeReposResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1729,14 +1769,14 @@ func (m *MockClient) DescribeRepos(ctx context.Context, in *pb.DescribeReposRequ return ret0, ret1 } -// DescribeRepos indicates an expected call of DescribeRepos +// DescribeRepos indicates an expected call of DescribeRepos. func (mr *MockClientMockRecorder) DescribeRepos(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeRepos", reflect.TypeOf((*MockClient)(nil).DescribeRepos), varargs...) } -// ModifyRepo mocks base method +// ModifyRepo mocks base method. func (m *MockClient) ModifyRepo(ctx context.Context, in *pb.ModifyRepoRequest, opts ...grpc.CallOption) (*pb.ModifyRepoResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1749,14 +1789,14 @@ func (m *MockClient) ModifyRepo(ctx context.Context, in *pb.ModifyRepoRequest, o return ret0, ret1 } -// ModifyRepo indicates an expected call of ModifyRepo +// ModifyRepo indicates an expected call of ModifyRepo. func (mr *MockClientMockRecorder) ModifyRepo(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyRepo", reflect.TypeOf((*MockClient)(nil).ModifyRepo), varargs...) } -// DeleteRepos mocks base method +// DeleteRepos mocks base method. func (m *MockClient) DeleteRepos(ctx context.Context, in *pb.DeleteReposRequest, opts ...grpc.CallOption) (*pb.DeleteReposResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1769,14 +1809,14 @@ func (m *MockClient) DeleteRepos(ctx context.Context, in *pb.DeleteReposRequest, return ret0, ret1 } -// DeleteRepos indicates an expected call of DeleteRepos +// DeleteRepos indicates an expected call of DeleteRepos. func (mr *MockClientMockRecorder) DeleteRepos(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRepos", reflect.TypeOf((*MockClient)(nil).DeleteRepos), varargs...) } -// ValidateRepo mocks base method +// ValidateRepo mocks base method. func (m *MockClient) ValidateRepo(ctx context.Context, in *pb.ValidateRepoRequest, opts ...grpc.CallOption) (*pb.ValidateRepoResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1789,14 +1829,14 @@ func (m *MockClient) ValidateRepo(ctx context.Context, in *pb.ValidateRepoReques return ret0, ret1 } -// ValidateRepo indicates an expected call of ValidateRepo +// ValidateRepo indicates an expected call of ValidateRepo. func (mr *MockClientMockRecorder) ValidateRepo(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateRepo", reflect.TypeOf((*MockClient)(nil).ValidateRepo), varargs...) } -// DescribeCategories mocks base method +// DescribeCategories mocks base method. func (m *MockClient) DescribeCategories(ctx context.Context, in *pb.DescribeCategoriesRequest, opts ...grpc.CallOption) (*pb.DescribeCategoriesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1809,14 +1849,14 @@ func (m *MockClient) DescribeCategories(ctx context.Context, in *pb.DescribeCate return ret0, ret1 } -// DescribeCategories indicates an expected call of DescribeCategories +// DescribeCategories indicates an expected call of DescribeCategories. func (mr *MockClientMockRecorder) DescribeCategories(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeCategories", reflect.TypeOf((*MockClient)(nil).DescribeCategories), varargs...) } -// CreateCategory mocks base method +// CreateCategory mocks base method. func (m *MockClient) CreateCategory(ctx context.Context, in *pb.CreateCategoryRequest, opts ...grpc.CallOption) (*pb.CreateCategoryResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1829,14 +1869,14 @@ func (m *MockClient) CreateCategory(ctx context.Context, in *pb.CreateCategoryRe return ret0, ret1 } -// CreateCategory indicates an expected call of CreateCategory +// CreateCategory indicates an expected call of CreateCategory. func (mr *MockClientMockRecorder) CreateCategory(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateCategory", reflect.TypeOf((*MockClient)(nil).CreateCategory), varargs...) } -// ModifyCategory mocks base method +// ModifyCategory mocks base method. func (m *MockClient) ModifyCategory(ctx context.Context, in *pb.ModifyCategoryRequest, opts ...grpc.CallOption) (*pb.ModifyCategoryResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1849,14 +1889,14 @@ func (m *MockClient) ModifyCategory(ctx context.Context, in *pb.ModifyCategoryRe return ret0, ret1 } -// ModifyCategory indicates an expected call of ModifyCategory +// ModifyCategory indicates an expected call of ModifyCategory. func (mr *MockClientMockRecorder) ModifyCategory(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyCategory", reflect.TypeOf((*MockClient)(nil).ModifyCategory), varargs...) } -// DeleteCategories mocks base method +// DeleteCategories mocks base method. func (m *MockClient) DeleteCategories(ctx context.Context, in *pb.DeleteCategoriesRequest, opts ...grpc.CallOption) (*pb.DeleteCategoriesResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1869,14 +1909,14 @@ func (m *MockClient) DeleteCategories(ctx context.Context, in *pb.DeleteCategori return ret0, ret1 } -// DeleteCategories indicates an expected call of DeleteCategories +// DeleteCategories indicates an expected call of DeleteCategories. func (mr *MockClientMockRecorder) DeleteCategories(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteCategories", reflect.TypeOf((*MockClient)(nil).DeleteCategories), varargs...) } -// CreateAttachment mocks base method +// CreateAttachment mocks base method. func (m *MockClient) CreateAttachment(ctx context.Context, in *pb.CreateAttachmentRequest, opts ...grpc.CallOption) (*pb.CreateAttachmentResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1889,14 +1929,14 @@ func (m *MockClient) CreateAttachment(ctx context.Context, in *pb.CreateAttachme return ret0, ret1 } -// CreateAttachment indicates an expected call of CreateAttachment +// CreateAttachment indicates an expected call of CreateAttachment. func (mr *MockClientMockRecorder) CreateAttachment(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAttachment", reflect.TypeOf((*MockClient)(nil).CreateAttachment), varargs...) } -// AppendAttachment mocks base method +// AppendAttachment mocks base method. func (m *MockClient) AppendAttachment(ctx context.Context, in *pb.AppendAttachmentRequest, opts ...grpc.CallOption) (*pb.AppendAttachmentResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1909,14 +1949,14 @@ func (m *MockClient) AppendAttachment(ctx context.Context, in *pb.AppendAttachme return ret0, ret1 } -// AppendAttachment indicates an expected call of AppendAttachment +// AppendAttachment indicates an expected call of AppendAttachment. func (mr *MockClientMockRecorder) AppendAttachment(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendAttachment", reflect.TypeOf((*MockClient)(nil).AppendAttachment), varargs...) } -// ReplaceAttachment mocks base method +// ReplaceAttachment mocks base method. func (m *MockClient) ReplaceAttachment(ctx context.Context, in *pb.ReplaceAttachmentRequest, opts ...grpc.CallOption) (*pb.ReplaceAttachmentResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1929,14 +1969,14 @@ func (m *MockClient) ReplaceAttachment(ctx context.Context, in *pb.ReplaceAttach return ret0, ret1 } -// ReplaceAttachment indicates an expected call of ReplaceAttachment +// ReplaceAttachment indicates an expected call of ReplaceAttachment. func (mr *MockClientMockRecorder) ReplaceAttachment(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplaceAttachment", reflect.TypeOf((*MockClient)(nil).ReplaceAttachment), varargs...) } -// GetAttachments mocks base method +// GetAttachments mocks base method. func (m *MockClient) GetAttachments(ctx context.Context, in *pb.GetAttachmentsRequest, opts ...grpc.CallOption) (*pb.GetAttachmentsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1949,14 +1989,14 @@ func (m *MockClient) GetAttachments(ctx context.Context, in *pb.GetAttachmentsRe return ret0, ret1 } -// GetAttachments indicates an expected call of GetAttachments +// GetAttachments indicates an expected call of GetAttachments. func (mr *MockClientMockRecorder) GetAttachments(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAttachments", reflect.TypeOf((*MockClient)(nil).GetAttachments), varargs...) } -// DeleteAttachments mocks base method +// DeleteAttachments mocks base method. func (m *MockClient) DeleteAttachments(ctx context.Context, in *pb.DeleteAttachmentsRequest, opts ...grpc.CallOption) (*pb.DeleteAttachmentsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1969,14 +2009,14 @@ func (m *MockClient) DeleteAttachments(ctx context.Context, in *pb.DeleteAttachm return ret0, ret1 } -// DeleteAttachments indicates an expected call of DeleteAttachments +// DeleteAttachments indicates an expected call of DeleteAttachments. func (mr *MockClientMockRecorder) DeleteAttachments(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAttachments", reflect.TypeOf((*MockClient)(nil).DeleteAttachments), varargs...) } -// IndexRepo mocks base method +// IndexRepo mocks base method. func (m *MockClient) IndexRepo(ctx context.Context, in *pb.IndexRepoRequest, opts ...grpc.CallOption) (*pb.IndexRepoResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -1989,14 +2029,14 @@ func (m *MockClient) IndexRepo(ctx context.Context, in *pb.IndexRepoRequest, opt return ret0, ret1 } -// IndexRepo indicates an expected call of IndexRepo +// IndexRepo indicates an expected call of IndexRepo. func (mr *MockClientMockRecorder) IndexRepo(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IndexRepo", reflect.TypeOf((*MockClient)(nil).IndexRepo), varargs...) } -// DescribeRepoEvents mocks base method +// DescribeRepoEvents mocks base method. func (m *MockClient) DescribeRepoEvents(ctx context.Context, in *pb.DescribeRepoEventsRequest, opts ...grpc.CallOption) (*pb.DescribeRepoEventsResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{ctx, in} @@ -2009,9 +2049,51 @@ func (m *MockClient) DescribeRepoEvents(ctx context.Context, in *pb.DescribeRepo return ret0, ret1 } -// DescribeRepoEvents indicates an expected call of DescribeRepoEvents +// DescribeRepoEvents indicates an expected call of DescribeRepoEvents. func (mr *MockClientMockRecorder) DescribeRepoEvents(ctx, in interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeRepoEvents", reflect.TypeOf((*MockClient)(nil).DescribeRepoEvents), varargs...) } + +// UpsertRuntime mocks base method. +func (m *MockClient) UpsertRuntime(cluster, kubeConfig string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertRuntime", cluster, kubeConfig) + ret0, _ := ret[0].(error) + return ret0 +} + +// UpsertRuntime indicates an expected call of UpsertRuntime. +func (mr *MockClientMockRecorder) UpsertRuntime(cluster, kubeConfig interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertRuntime", reflect.TypeOf((*MockClient)(nil).UpsertRuntime), cluster, kubeConfig) +} + +// CleanupRuntime mocks base method. +func (m *MockClient) CleanupRuntime(cluster string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CleanupRuntime", cluster) + ret0, _ := ret[0].(error) + return ret0 +} + +// CleanupRuntime indicates an expected call of CleanupRuntime. +func (mr *MockClientMockRecorder) CleanupRuntime(cluster interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CleanupRuntime", reflect.TypeOf((*MockClient)(nil).CleanupRuntime), cluster) +} + +// MigrateRuntime mocks base method. +func (m *MockClient) MigrateRuntime(runtimeId, cluster string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MigrateRuntime", runtimeId, cluster) + ret0, _ := ret[0].(error) + return ret0 +} + +// MigrateRuntime indicates an expected call of MigrateRuntime. +func (mr *MockClientMockRecorder) MigrateRuntime(runtimeId, cluster interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigrateRuntime", reflect.TypeOf((*MockClient)(nil).MigrateRuntime), runtimeId, cluster) +} diff --git a/pkg/simple/client/openpitrix/openpitrix.go b/pkg/simple/client/openpitrix/openpitrix.go index b06acd98c..f1cf48e17 100644 --- a/pkg/simple/client/openpitrix/openpitrix.go +++ b/pkg/simple/client/openpitrix/openpitrix.go @@ -1,6 +1,6 @@ /* - Copyright 2019 The KubeSphere Authors. + Copyright 2020 The KubeSphere Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ package openpitrix import ( "context" "fmt" + "github.com/golang/protobuf/ptypes/wrappers" "k8s.io/klog" "openpitrix.io/openpitrix/pkg/manager" "openpitrix.io/openpitrix/pkg/pb" @@ -48,6 +49,12 @@ type Client interface { pb.CategoryManagerClient pb.AttachmentManagerClient pb.RepoIndexerClient + // upsert the openpitrix runtime when cluster is updated or created + UpsertRuntime(cluster string, kubeConfig string) error + // clean up the openpitrix runtime when cluster is deleted + CleanupRuntime(cluster string) error + // migrate the openpitrix runtime when upgrade ks2.x to ks3.x + MigrateRuntime(runtimeId string, cluster string) error } type client struct { @@ -60,6 +67,47 @@ type client struct { pb.RepoIndexerClient } +func (c *client) UpsertRuntime(cluster string, kubeConfig string) error { + ctx := SystemContext() + req := &pb.CreateRuntimeCredentialRequest{ + Name: &wrappers.StringValue{Value: fmt.Sprintf("kubeconfig-%s", cluster)}, + Provider: &wrappers.StringValue{Value: "kubernetes"}, + Description: &wrappers.StringValue{Value: "kubeconfig"}, + RuntimeUrl: &wrappers.StringValue{Value: "kubesphere"}, + RuntimeCredentialContent: &wrappers.StringValue{Value: kubeConfig}, + RuntimeCredentialId: &wrappers.StringValue{Value: cluster}, + } + _, err := c.CreateRuntimeCredential(ctx, req) + if err != nil { + return err + } + _, err = c.CreateRuntime(ctx, &pb.CreateRuntimeRequest{ + Name: &wrappers.StringValue{Value: cluster}, + RuntimeCredentialId: &wrappers.StringValue{Value: cluster}, + Provider: &wrappers.StringValue{Value: KubernetesProvider}, + Zone: &wrappers.StringValue{Value: cluster}, + }) + + return err +} + +func (c *client) CleanupRuntime(cluster string) error { + ctx := SystemContext() + _, err := c.DeleteClusterInRuntime(ctx, &pb.DeleteClusterInRuntimeRequest{ + RuntimeId: []string{cluster}, + }) + return err +} + +func (c *client) MigrateRuntime(runtimeId string, cluster string) error { + ctx := SystemContext() + _, err := c.MigrateClusterInRuntime(ctx, &pb.MigrateClusterInRuntimeRequest{ + FromRuntimeId: runtimeId, + ToRuntimeId: cluster, + }) + return err +} + func parseToHostPort(endpoint string) (string, int, error) { args := strings.Split(endpoint, ":") if len(args) != 2 { diff --git a/vendor/modules.txt b/vendor/modules.txt index 3c7c1b407..e624d94a1 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -136,9 +136,9 @@ github.com/elastic/go-elasticsearch/v7/estransport github.com/elastic/go-elasticsearch/v7/internal/version # github.com/emicklei/go-restful v2.11.1+incompatible => github.com/emicklei/go-restful v2.9.5+incompatible github.com/emicklei/go-restful -github.com/emicklei/go-restful/log # github.com/emicklei/go-restful-openapi v1.0.0 => github.com/emicklei/go-restful-openapi v1.0.0 github.com/emicklei/go-restful-openapi +github.com/emicklei/go-restful/log # github.com/emirpasic/gods v1.12.0 => github.com/emirpasic/gods v1.12.0 github.com/emirpasic/gods/containers github.com/emirpasic/gods/lists @@ -1359,7 +1359,7 @@ k8s.io/utils/net k8s.io/utils/path k8s.io/utils/pointer k8s.io/utils/trace -# openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 +# openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797 => openpitrix.io/openpitrix v0.4.9-0.20200611125425-ae07f141e797 openpitrix.io/openpitrix/pkg/config openpitrix.io/openpitrix/pkg/constants openpitrix.io/openpitrix/pkg/db diff --git a/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go b/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go index a7303a1b2..e3a18b6c4 100644 --- a/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go +++ b/vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go @@ -276,6 +276,178 @@ func (m *DescribeSubnetsResponse) GetSubnetSet() []*Subnet { return nil } +type DeleteClusterInRuntimeRequest struct { + RuntimeId []string `protobuf:"bytes,1,rep,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteClusterInRuntimeRequest) Reset() { *m = DeleteClusterInRuntimeRequest{} } +func (m *DeleteClusterInRuntimeRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteClusterInRuntimeRequest) ProtoMessage() {} +func (*DeleteClusterInRuntimeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_3cfb3b8ec240c376, []int{3} +} + +func (m *DeleteClusterInRuntimeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteClusterInRuntimeRequest.Unmarshal(m, b) +} +func (m *DeleteClusterInRuntimeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteClusterInRuntimeRequest.Marshal(b, m, deterministic) +} +func (m *DeleteClusterInRuntimeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteClusterInRuntimeRequest.Merge(m, src) +} +func (m *DeleteClusterInRuntimeRequest) XXX_Size() int { + return xxx_messageInfo_DeleteClusterInRuntimeRequest.Size(m) +} +func (m *DeleteClusterInRuntimeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteClusterInRuntimeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteClusterInRuntimeRequest proto.InternalMessageInfo + +func (m *DeleteClusterInRuntimeRequest) GetRuntimeId() []string { + if m != nil { + return m.RuntimeId + } + return nil +} + +type DeleteClusterInRuntimeResponse struct { + RuntimeId []string `protobuf:"bytes,1,rep,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteClusterInRuntimeResponse) Reset() { *m = DeleteClusterInRuntimeResponse{} } +func (m *DeleteClusterInRuntimeResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteClusterInRuntimeResponse) ProtoMessage() {} +func (*DeleteClusterInRuntimeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3cfb3b8ec240c376, []int{4} +} + +func (m *DeleteClusterInRuntimeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteClusterInRuntimeResponse.Unmarshal(m, b) +} +func (m *DeleteClusterInRuntimeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteClusterInRuntimeResponse.Marshal(b, m, deterministic) +} +func (m *DeleteClusterInRuntimeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteClusterInRuntimeResponse.Merge(m, src) +} +func (m *DeleteClusterInRuntimeResponse) XXX_Size() int { + return xxx_messageInfo_DeleteClusterInRuntimeResponse.Size(m) +} +func (m *DeleteClusterInRuntimeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteClusterInRuntimeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteClusterInRuntimeResponse proto.InternalMessageInfo + +func (m *DeleteClusterInRuntimeResponse) GetRuntimeId() []string { + if m != nil { + return m.RuntimeId + } + return nil +} + +type MigrateClusterInRuntimeRequest struct { + FromRuntimeId string `protobuf:"bytes,1,opt,name=from_runtime_id,json=fromRuntimeId,proto3" json:"from_runtime_id,omitempty"` + ToRuntimeId string `protobuf:"bytes,2,opt,name=to_runtime_id,json=toRuntimeId,proto3" json:"to_runtime_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MigrateClusterInRuntimeRequest) Reset() { *m = MigrateClusterInRuntimeRequest{} } +func (m *MigrateClusterInRuntimeRequest) String() string { return proto.CompactTextString(m) } +func (*MigrateClusterInRuntimeRequest) ProtoMessage() {} +func (*MigrateClusterInRuntimeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_3cfb3b8ec240c376, []int{5} +} + +func (m *MigrateClusterInRuntimeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MigrateClusterInRuntimeRequest.Unmarshal(m, b) +} +func (m *MigrateClusterInRuntimeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MigrateClusterInRuntimeRequest.Marshal(b, m, deterministic) +} +func (m *MigrateClusterInRuntimeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MigrateClusterInRuntimeRequest.Merge(m, src) +} +func (m *MigrateClusterInRuntimeRequest) XXX_Size() int { + return xxx_messageInfo_MigrateClusterInRuntimeRequest.Size(m) +} +func (m *MigrateClusterInRuntimeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MigrateClusterInRuntimeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MigrateClusterInRuntimeRequest proto.InternalMessageInfo + +func (m *MigrateClusterInRuntimeRequest) GetFromRuntimeId() string { + if m != nil { + return m.FromRuntimeId + } + return "" +} + +func (m *MigrateClusterInRuntimeRequest) GetToRuntimeId() string { + if m != nil { + return m.ToRuntimeId + } + return "" +} + +type MigrateClusterInRuntimeResponse struct { + FromRuntimeId string `protobuf:"bytes,1,opt,name=from_runtime_id,json=fromRuntimeId,proto3" json:"from_runtime_id,omitempty"` + ToRuntimeId string `protobuf:"bytes,2,opt,name=to_runtime_id,json=toRuntimeId,proto3" json:"to_runtime_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MigrateClusterInRuntimeResponse) Reset() { *m = MigrateClusterInRuntimeResponse{} } +func (m *MigrateClusterInRuntimeResponse) String() string { return proto.CompactTextString(m) } +func (*MigrateClusterInRuntimeResponse) ProtoMessage() {} +func (*MigrateClusterInRuntimeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3cfb3b8ec240c376, []int{6} +} + +func (m *MigrateClusterInRuntimeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MigrateClusterInRuntimeResponse.Unmarshal(m, b) +} +func (m *MigrateClusterInRuntimeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MigrateClusterInRuntimeResponse.Marshal(b, m, deterministic) +} +func (m *MigrateClusterInRuntimeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MigrateClusterInRuntimeResponse.Merge(m, src) +} +func (m *MigrateClusterInRuntimeResponse) XXX_Size() int { + return xxx_messageInfo_MigrateClusterInRuntimeResponse.Size(m) +} +func (m *MigrateClusterInRuntimeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MigrateClusterInRuntimeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MigrateClusterInRuntimeResponse proto.InternalMessageInfo + +func (m *MigrateClusterInRuntimeResponse) GetFromRuntimeId() string { + if m != nil { + return m.FromRuntimeId + } + return "" +} + +func (m *MigrateClusterInRuntimeResponse) GetToRuntimeId() string { + if m != nil { + return m.ToRuntimeId + } + return "" +} + type CreateClusterRequest struct { // required, id of app to run in cluster AppId *wrappers.StringValue `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` @@ -298,7 +470,7 @@ func (m *CreateClusterRequest) Reset() { *m = CreateClusterRequest{} } func (m *CreateClusterRequest) String() string { return proto.CompactTextString(m) } func (*CreateClusterRequest) ProtoMessage() {} func (*CreateClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{3} + return fileDescriptor_3cfb3b8ec240c376, []int{7} } func (m *CreateClusterRequest) XXX_Unmarshal(b []byte) error { @@ -375,7 +547,7 @@ func (m *CreateClusterResponse) Reset() { *m = CreateClusterResponse{} } func (m *CreateClusterResponse) String() string { return proto.CompactTextString(m) } func (*CreateClusterResponse) ProtoMessage() {} func (*CreateClusterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{4} + return fileDescriptor_3cfb3b8ec240c376, []int{8} } func (m *CreateClusterResponse) XXX_Unmarshal(b []byte) error { @@ -432,7 +604,7 @@ func (m *ModifyClusterRequest) Reset() { *m = ModifyClusterRequest{} } func (m *ModifyClusterRequest) String() string { return proto.CompactTextString(m) } func (*ModifyClusterRequest) ProtoMessage() {} func (*ModifyClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{5} + return fileDescriptor_3cfb3b8ec240c376, []int{9} } func (m *ModifyClusterRequest) XXX_Unmarshal(b []byte) error { @@ -507,7 +679,7 @@ func (m *ModifyClusterResponse) Reset() { *m = ModifyClusterResponse{} } func (m *ModifyClusterResponse) String() string { return proto.CompactTextString(m) } func (*ModifyClusterResponse) ProtoMessage() {} func (*ModifyClusterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{6} + return fileDescriptor_3cfb3b8ec240c376, []int{10} } func (m *ModifyClusterResponse) XXX_Unmarshal(b []byte) error { @@ -547,7 +719,7 @@ func (m *ModifyClusterNodeRequest) Reset() { *m = ModifyClusterNodeReque func (m *ModifyClusterNodeRequest) String() string { return proto.CompactTextString(m) } func (*ModifyClusterNodeRequest) ProtoMessage() {} func (*ModifyClusterNodeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{7} + return fileDescriptor_3cfb3b8ec240c376, []int{11} } func (m *ModifyClusterNodeRequest) XXX_Unmarshal(b []byte) error { @@ -587,7 +759,7 @@ func (m *ModifyClusterNodeResponse) Reset() { *m = ModifyClusterNodeResp func (m *ModifyClusterNodeResponse) String() string { return proto.CompactTextString(m) } func (*ModifyClusterNodeResponse) ProtoMessage() {} func (*ModifyClusterNodeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{8} + return fileDescriptor_3cfb3b8ec240c376, []int{12} } func (m *ModifyClusterNodeResponse) XXX_Unmarshal(b []byte) error { @@ -631,7 +803,7 @@ func (m *ModifyClusterAttributesRequest) Reset() { *m = ModifyClusterAtt func (m *ModifyClusterAttributesRequest) String() string { return proto.CompactTextString(m) } func (*ModifyClusterAttributesRequest) ProtoMessage() {} func (*ModifyClusterAttributesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{9} + return fileDescriptor_3cfb3b8ec240c376, []int{13} } func (m *ModifyClusterAttributesRequest) XXX_Unmarshal(b []byte) error { @@ -685,7 +857,7 @@ func (m *ModifyClusterAttributesResponse) Reset() { *m = ModifyClusterAt func (m *ModifyClusterAttributesResponse) String() string { return proto.CompactTextString(m) } func (*ModifyClusterAttributesResponse) ProtoMessage() {} func (*ModifyClusterAttributesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{10} + return fileDescriptor_3cfb3b8ec240c376, []int{14} } func (m *ModifyClusterAttributesResponse) XXX_Unmarshal(b []byte) error { @@ -727,7 +899,7 @@ func (m *ModifyClusterNodeAttributesRequest) Reset() { *m = ModifyCluste func (m *ModifyClusterNodeAttributesRequest) String() string { return proto.CompactTextString(m) } func (*ModifyClusterNodeAttributesRequest) ProtoMessage() {} func (*ModifyClusterNodeAttributesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{11} + return fileDescriptor_3cfb3b8ec240c376, []int{15} } func (m *ModifyClusterNodeAttributesRequest) XXX_Unmarshal(b []byte) error { @@ -774,7 +946,7 @@ func (m *ModifyClusterNodeAttributesResponse) Reset() { *m = ModifyClust func (m *ModifyClusterNodeAttributesResponse) String() string { return proto.CompactTextString(m) } func (*ModifyClusterNodeAttributesResponse) ProtoMessage() {} func (*ModifyClusterNodeAttributesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{12} + return fileDescriptor_3cfb3b8ec240c376, []int{16} } func (m *ModifyClusterNodeAttributesResponse) XXX_Unmarshal(b []byte) error { @@ -814,7 +986,7 @@ func (m *AddTableClusterNodesRequest) Reset() { *m = AddTableClusterNode func (m *AddTableClusterNodesRequest) String() string { return proto.CompactTextString(m) } func (*AddTableClusterNodesRequest) ProtoMessage() {} func (*AddTableClusterNodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{13} + return fileDescriptor_3cfb3b8ec240c376, []int{17} } func (m *AddTableClusterNodesRequest) XXX_Unmarshal(b []byte) error { @@ -854,7 +1026,7 @@ func (m *DeleteTableClusterNodesRequest) Reset() { *m = DeleteTableClust func (m *DeleteTableClusterNodesRequest) String() string { return proto.CompactTextString(m) } func (*DeleteTableClusterNodesRequest) ProtoMessage() {} func (*DeleteTableClusterNodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{14} + return fileDescriptor_3cfb3b8ec240c376, []int{18} } func (m *DeleteTableClusterNodesRequest) XXX_Unmarshal(b []byte) error { @@ -900,7 +1072,7 @@ func (m *DeleteClustersRequest) Reset() { *m = DeleteClustersRequest{} } func (m *DeleteClustersRequest) String() string { return proto.CompactTextString(m) } func (*DeleteClustersRequest) ProtoMessage() {} func (*DeleteClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{15} + return fileDescriptor_3cfb3b8ec240c376, []int{19} } func (m *DeleteClustersRequest) XXX_Unmarshal(b []byte) error { @@ -963,7 +1135,7 @@ func (m *DeleteClustersResponse) Reset() { *m = DeleteClustersResponse{} func (m *DeleteClustersResponse) String() string { return proto.CompactTextString(m) } func (*DeleteClustersResponse) ProtoMessage() {} func (*DeleteClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{16} + return fileDescriptor_3cfb3b8ec240c376, []int{20} } func (m *DeleteClustersResponse) XXX_Unmarshal(b []byte) error { @@ -1014,7 +1186,7 @@ func (m *UpgradeClusterRequest) Reset() { *m = UpgradeClusterRequest{} } func (m *UpgradeClusterRequest) String() string { return proto.CompactTextString(m) } func (*UpgradeClusterRequest) ProtoMessage() {} func (*UpgradeClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{17} + return fileDescriptor_3cfb3b8ec240c376, []int{21} } func (m *UpgradeClusterRequest) XXX_Unmarshal(b []byte) error { @@ -1070,7 +1242,7 @@ func (m *UpgradeClusterResponse) Reset() { *m = UpgradeClusterResponse{} func (m *UpgradeClusterResponse) String() string { return proto.CompactTextString(m) } func (*UpgradeClusterResponse) ProtoMessage() {} func (*UpgradeClusterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{18} + return fileDescriptor_3cfb3b8ec240c376, []int{22} } func (m *UpgradeClusterResponse) XXX_Unmarshal(b []byte) error { @@ -1119,7 +1291,7 @@ func (m *RollbackClusterRequest) Reset() { *m = RollbackClusterRequest{} func (m *RollbackClusterRequest) String() string { return proto.CompactTextString(m) } func (*RollbackClusterRequest) ProtoMessage() {} func (*RollbackClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{19} + return fileDescriptor_3cfb3b8ec240c376, []int{23} } func (m *RollbackClusterRequest) XXX_Unmarshal(b []byte) error { @@ -1168,7 +1340,7 @@ func (m *RollbackClusterResponse) Reset() { *m = RollbackClusterResponse func (m *RollbackClusterResponse) String() string { return proto.CompactTextString(m) } func (*RollbackClusterResponse) ProtoMessage() {} func (*RollbackClusterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{20} + return fileDescriptor_3cfb3b8ec240c376, []int{24} } func (m *RollbackClusterResponse) XXX_Unmarshal(b []byte) error { @@ -1225,7 +1397,7 @@ func (m *RoleResource) Reset() { *m = RoleResource{} } func (m *RoleResource) String() string { return proto.CompactTextString(m) } func (*RoleResource) ProtoMessage() {} func (*RoleResource) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{21} + return fileDescriptor_3cfb3b8ec240c376, []int{25} } func (m *RoleResource) XXX_Unmarshal(b []byte) error { @@ -1304,7 +1476,7 @@ func (m *ResizeClusterRequest) Reset() { *m = ResizeClusterRequest{} } func (m *ResizeClusterRequest) String() string { return proto.CompactTextString(m) } func (*ResizeClusterRequest) ProtoMessage() {} func (*ResizeClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{22} + return fileDescriptor_3cfb3b8ec240c376, []int{26} } func (m *ResizeClusterRequest) XXX_Unmarshal(b []byte) error { @@ -1360,7 +1532,7 @@ func (m *ResizeClusterResponse) Reset() { *m = ResizeClusterResponse{} } func (m *ResizeClusterResponse) String() string { return proto.CompactTextString(m) } func (*ResizeClusterResponse) ProtoMessage() {} func (*ResizeClusterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{23} + return fileDescriptor_3cfb3b8ec240c376, []int{27} } func (m *ResizeClusterResponse) XXX_Unmarshal(b []byte) error { @@ -1413,7 +1585,7 @@ func (m *AddClusterNodesRequest) Reset() { *m = AddClusterNodesRequest{} func (m *AddClusterNodesRequest) String() string { return proto.CompactTextString(m) } func (*AddClusterNodesRequest) ProtoMessage() {} func (*AddClusterNodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{24} + return fileDescriptor_3cfb3b8ec240c376, []int{28} } func (m *AddClusterNodesRequest) XXX_Unmarshal(b []byte) error { @@ -1476,7 +1648,7 @@ func (m *AddClusterNodesResponse) Reset() { *m = AddClusterNodesResponse func (m *AddClusterNodesResponse) String() string { return proto.CompactTextString(m) } func (*AddClusterNodesResponse) ProtoMessage() {} func (*AddClusterNodesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{25} + return fileDescriptor_3cfb3b8ec240c376, []int{29} } func (m *AddClusterNodesResponse) XXX_Unmarshal(b []byte) error { @@ -1527,7 +1699,7 @@ func (m *DeleteClusterNodesRequest) Reset() { *m = DeleteClusterNodesReq func (m *DeleteClusterNodesRequest) String() string { return proto.CompactTextString(m) } func (*DeleteClusterNodesRequest) ProtoMessage() {} func (*DeleteClusterNodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{26} + return fileDescriptor_3cfb3b8ec240c376, []int{30} } func (m *DeleteClusterNodesRequest) XXX_Unmarshal(b []byte) error { @@ -1583,7 +1755,7 @@ func (m *DeleteClusterNodesResponse) Reset() { *m = DeleteClusterNodesRe func (m *DeleteClusterNodesResponse) String() string { return proto.CompactTextString(m) } func (*DeleteClusterNodesResponse) ProtoMessage() {} func (*DeleteClusterNodesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{27} + return fileDescriptor_3cfb3b8ec240c376, []int{31} } func (m *DeleteClusterNodesResponse) XXX_Unmarshal(b []byte) error { @@ -1634,7 +1806,7 @@ func (m *UpdateClusterEnvRequest) Reset() { *m = UpdateClusterEnvRequest func (m *UpdateClusterEnvRequest) String() string { return proto.CompactTextString(m) } func (*UpdateClusterEnvRequest) ProtoMessage() {} func (*UpdateClusterEnvRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{28} + return fileDescriptor_3cfb3b8ec240c376, []int{32} } func (m *UpdateClusterEnvRequest) XXX_Unmarshal(b []byte) error { @@ -1690,7 +1862,7 @@ func (m *UpdateClusterEnvResponse) Reset() { *m = UpdateClusterEnvRespon func (m *UpdateClusterEnvResponse) String() string { return proto.CompactTextString(m) } func (*UpdateClusterEnvResponse) ProtoMessage() {} func (*UpdateClusterEnvResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{29} + return fileDescriptor_3cfb3b8ec240c376, []int{33} } func (m *UpdateClusterEnvResponse) XXX_Unmarshal(b []byte) error { @@ -1786,7 +1958,7 @@ func (m *ClusterCommon) Reset() { *m = ClusterCommon{} } func (m *ClusterCommon) String() string { return proto.CompactTextString(m) } func (*ClusterCommon) ProtoMessage() {} func (*ClusterCommon) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{30} + return fileDescriptor_3cfb3b8ec240c376, []int{34} } func (m *ClusterCommon) XXX_Unmarshal(b []byte) error { @@ -2057,7 +2229,7 @@ func (m *ClusterNode) Reset() { *m = ClusterNode{} } func (m *ClusterNode) String() string { return proto.CompactTextString(m) } func (*ClusterNode) ProtoMessage() {} func (*ClusterNode) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{31} + return fileDescriptor_3cfb3b8ec240c376, []int{35} } func (m *ClusterNode) XXX_Unmarshal(b []byte) error { @@ -2319,7 +2491,7 @@ func (m *ClusterRole) Reset() { *m = ClusterRole{} } func (m *ClusterRole) String() string { return proto.CompactTextString(m) } func (*ClusterRole) ProtoMessage() {} func (*ClusterRole) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{32} + return fileDescriptor_3cfb3b8ec240c376, []int{36} } func (m *ClusterRole) XXX_Unmarshal(b []byte) error { @@ -2458,7 +2630,7 @@ func (m *ClusterLoadbalancer) Reset() { *m = ClusterLoadbalancer{} } func (m *ClusterLoadbalancer) String() string { return proto.CompactTextString(m) } func (*ClusterLoadbalancer) ProtoMessage() {} func (*ClusterLoadbalancer) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{33} + return fileDescriptor_3cfb3b8ec240c376, []int{37} } func (m *ClusterLoadbalancer) XXX_Unmarshal(b []byte) error { @@ -2534,7 +2706,7 @@ func (m *ClusterLink) Reset() { *m = ClusterLink{} } func (m *ClusterLink) String() string { return proto.CompactTextString(m) } func (*ClusterLink) ProtoMessage() {} func (*ClusterLink) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{34} + return fileDescriptor_3cfb3b8ec240c376, []int{38} } func (m *ClusterLink) XXX_Unmarshal(b []byte) error { @@ -2659,7 +2831,7 @@ func (m *Cluster) Reset() { *m = Cluster{} } func (m *Cluster) String() string { return proto.CompactTextString(m) } func (*Cluster) ProtoMessage() {} func (*Cluster) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{35} + return fileDescriptor_3cfb3b8ec240c376, []int{39} } func (m *Cluster) XXX_Unmarshal(b []byte) error { @@ -2936,7 +3108,7 @@ func (m *DescribeClustersRequest) Reset() { *m = DescribeClustersRequest func (m *DescribeClustersRequest) String() string { return proto.CompactTextString(m) } func (*DescribeClustersRequest) ProtoMessage() {} func (*DescribeClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{36} + return fileDescriptor_3cfb3b8ec240c376, []int{40} } func (m *DescribeClustersRequest) XXX_Unmarshal(b []byte) error { @@ -3097,7 +3269,7 @@ func (m *DescribeClustersResponse) Reset() { *m = DescribeClustersRespon func (m *DescribeClustersResponse) String() string { return proto.CompactTextString(m) } func (*DescribeClustersResponse) ProtoMessage() {} func (*DescribeClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{37} + return fileDescriptor_3cfb3b8ec240c376, []int{41} } func (m *DescribeClustersResponse) XXX_Unmarshal(b []byte) error { @@ -3164,7 +3336,7 @@ func (m *DescribeAppClustersRequest) Reset() { *m = DescribeAppClustersR func (m *DescribeAppClustersRequest) String() string { return proto.CompactTextString(m) } func (*DescribeAppClustersRequest) ProtoMessage() {} func (*DescribeAppClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{38} + return fileDescriptor_3cfb3b8ec240c376, []int{42} } func (m *DescribeAppClustersRequest) XXX_Unmarshal(b []byte) error { @@ -3276,7 +3448,7 @@ func (m *DescribeAppClustersResponse) Reset() { *m = DescribeAppClusters func (m *DescribeAppClustersResponse) String() string { return proto.CompactTextString(m) } func (*DescribeAppClustersResponse) ProtoMessage() {} func (*DescribeAppClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{39} + return fileDescriptor_3cfb3b8ec240c376, []int{43} } func (m *DescribeAppClustersResponse) XXX_Unmarshal(b []byte) error { @@ -3341,7 +3513,7 @@ func (m *DescribeClusterNodesRequest) Reset() { *m = DescribeClusterNode func (m *DescribeClusterNodesRequest) String() string { return proto.CompactTextString(m) } func (*DescribeClusterNodesRequest) ProtoMessage() {} func (*DescribeClusterNodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{40} + return fileDescriptor_3cfb3b8ec240c376, []int{44} } func (m *DescribeClusterNodesRequest) XXX_Unmarshal(b []byte) error { @@ -3446,7 +3618,7 @@ func (m *DescribeClusterNodesResponse) Reset() { *m = DescribeClusterNod func (m *DescribeClusterNodesResponse) String() string { return proto.CompactTextString(m) } func (*DescribeClusterNodesResponse) ProtoMessage() {} func (*DescribeClusterNodesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{41} + return fileDescriptor_3cfb3b8ec240c376, []int{45} } func (m *DescribeClusterNodesResponse) XXX_Unmarshal(b []byte) error { @@ -3495,7 +3667,7 @@ func (m *StopClustersRequest) Reset() { *m = StopClustersRequest{} } func (m *StopClustersRequest) String() string { return proto.CompactTextString(m) } func (*StopClustersRequest) ProtoMessage() {} func (*StopClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{42} + return fileDescriptor_3cfb3b8ec240c376, []int{46} } func (m *StopClustersRequest) XXX_Unmarshal(b []byte) error { @@ -3544,7 +3716,7 @@ func (m *StopClustersResponse) Reset() { *m = StopClustersResponse{} } func (m *StopClustersResponse) String() string { return proto.CompactTextString(m) } func (*StopClustersResponse) ProtoMessage() {} func (*StopClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{43} + return fileDescriptor_3cfb3b8ec240c376, []int{47} } func (m *StopClustersResponse) XXX_Unmarshal(b []byte) error { @@ -3593,7 +3765,7 @@ func (m *StartClustersRequest) Reset() { *m = StartClustersRequest{} } func (m *StartClustersRequest) String() string { return proto.CompactTextString(m) } func (*StartClustersRequest) ProtoMessage() {} func (*StartClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{44} + return fileDescriptor_3cfb3b8ec240c376, []int{48} } func (m *StartClustersRequest) XXX_Unmarshal(b []byte) error { @@ -3642,7 +3814,7 @@ func (m *StartClustersResponse) Reset() { *m = StartClustersResponse{} } func (m *StartClustersResponse) String() string { return proto.CompactTextString(m) } func (*StartClustersResponse) ProtoMessage() {} func (*StartClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{45} + return fileDescriptor_3cfb3b8ec240c376, []int{49} } func (m *StartClustersResponse) XXX_Unmarshal(b []byte) error { @@ -3691,7 +3863,7 @@ func (m *RecoverClustersRequest) Reset() { *m = RecoverClustersRequest{} func (m *RecoverClustersRequest) String() string { return proto.CompactTextString(m) } func (*RecoverClustersRequest) ProtoMessage() {} func (*RecoverClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{46} + return fileDescriptor_3cfb3b8ec240c376, []int{50} } func (m *RecoverClustersRequest) XXX_Unmarshal(b []byte) error { @@ -3740,7 +3912,7 @@ func (m *RecoverClustersResponse) Reset() { *m = RecoverClustersResponse func (m *RecoverClustersResponse) String() string { return proto.CompactTextString(m) } func (*RecoverClustersResponse) ProtoMessage() {} func (*RecoverClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{47} + return fileDescriptor_3cfb3b8ec240c376, []int{51} } func (m *RecoverClustersResponse) XXX_Unmarshal(b []byte) error { @@ -3793,7 +3965,7 @@ func (m *CeaseClustersRequest) Reset() { *m = CeaseClustersRequest{} } func (m *CeaseClustersRequest) String() string { return proto.CompactTextString(m) } func (*CeaseClustersRequest) ProtoMessage() {} func (*CeaseClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{48} + return fileDescriptor_3cfb3b8ec240c376, []int{52} } func (m *CeaseClustersRequest) XXX_Unmarshal(b []byte) error { @@ -3856,7 +4028,7 @@ func (m *CeaseClustersResponse) Reset() { *m = CeaseClustersResponse{} } func (m *CeaseClustersResponse) String() string { return proto.CompactTextString(m) } func (*CeaseClustersResponse) ProtoMessage() {} func (*CeaseClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{49} + return fileDescriptor_3cfb3b8ec240c376, []int{53} } func (m *CeaseClustersResponse) XXX_Unmarshal(b []byte) error { @@ -3901,7 +4073,7 @@ func (m *GetClusterStatisticsRequest) Reset() { *m = GetClusterStatistic func (m *GetClusterStatisticsRequest) String() string { return proto.CompactTextString(m) } func (*GetClusterStatisticsRequest) ProtoMessage() {} func (*GetClusterStatisticsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{50} + return fileDescriptor_3cfb3b8ec240c376, []int{54} } func (m *GetClusterStatisticsRequest) XXX_Unmarshal(b []byte) error { @@ -3942,7 +4114,7 @@ func (m *GetClusterStatisticsResponse) Reset() { *m = GetClusterStatisti func (m *GetClusterStatisticsResponse) String() string { return proto.CompactTextString(m) } func (*GetClusterStatisticsResponse) ProtoMessage() {} func (*GetClusterStatisticsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{51} + return fileDescriptor_3cfb3b8ec240c376, []int{55} } func (m *GetClusterStatisticsResponse) XXX_Unmarshal(b []byte) error { @@ -4026,7 +4198,7 @@ func (m *KeyPair) Reset() { *m = KeyPair{} } func (m *KeyPair) String() string { return proto.CompactTextString(m) } func (*KeyPair) ProtoMessage() {} func (*KeyPair) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{52} + return fileDescriptor_3cfb3b8ec240c376, []int{56} } func (m *KeyPair) XXX_Unmarshal(b []byte) error { @@ -4126,7 +4298,7 @@ func (m *CreateKeyPairRequest) Reset() { *m = CreateKeyPairRequest{} } func (m *CreateKeyPairRequest) String() string { return proto.CompactTextString(m) } func (*CreateKeyPairRequest) ProtoMessage() {} func (*CreateKeyPairRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{53} + return fileDescriptor_3cfb3b8ec240c376, []int{57} } func (m *CreateKeyPairRequest) XXX_Unmarshal(b []byte) error { @@ -4180,7 +4352,7 @@ func (m *CreateKeyPairResponse) Reset() { *m = CreateKeyPairResponse{} } func (m *CreateKeyPairResponse) String() string { return proto.CompactTextString(m) } func (*CreateKeyPairResponse) ProtoMessage() {} func (*CreateKeyPairResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{54} + return fileDescriptor_3cfb3b8ec240c376, []int{58} } func (m *CreateKeyPairResponse) XXX_Unmarshal(b []byte) error { @@ -4236,7 +4408,7 @@ func (m *DescribeKeyPairsRequest) Reset() { *m = DescribeKeyPairsRequest func (m *DescribeKeyPairsRequest) String() string { return proto.CompactTextString(m) } func (*DescribeKeyPairsRequest) ProtoMessage() {} func (*DescribeKeyPairsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{55} + return fileDescriptor_3cfb3b8ec240c376, []int{59} } func (m *DescribeKeyPairsRequest) XXX_Unmarshal(b []byte) error { @@ -4334,7 +4506,7 @@ func (m *DescribeKeyPairsResponse) Reset() { *m = DescribeKeyPairsRespon func (m *DescribeKeyPairsResponse) String() string { return proto.CompactTextString(m) } func (*DescribeKeyPairsResponse) ProtoMessage() {} func (*DescribeKeyPairsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{56} + return fileDescriptor_3cfb3b8ec240c376, []int{60} } func (m *DescribeKeyPairsResponse) XXX_Unmarshal(b []byte) error { @@ -4381,7 +4553,7 @@ func (m *DeleteKeyPairsRequest) Reset() { *m = DeleteKeyPairsRequest{} } func (m *DeleteKeyPairsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteKeyPairsRequest) ProtoMessage() {} func (*DeleteKeyPairsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{57} + return fileDescriptor_3cfb3b8ec240c376, []int{61} } func (m *DeleteKeyPairsRequest) XXX_Unmarshal(b []byte) error { @@ -4421,7 +4593,7 @@ func (m *DeleteKeyPairsResponse) Reset() { *m = DeleteKeyPairsResponse{} func (m *DeleteKeyPairsResponse) String() string { return proto.CompactTextString(m) } func (*DeleteKeyPairsResponse) ProtoMessage() {} func (*DeleteKeyPairsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{58} + return fileDescriptor_3cfb3b8ec240c376, []int{62} } func (m *DeleteKeyPairsResponse) XXX_Unmarshal(b []byte) error { @@ -4463,7 +4635,7 @@ func (m *AttachKeyPairsRequest) Reset() { *m = AttachKeyPairsRequest{} } func (m *AttachKeyPairsRequest) String() string { return proto.CompactTextString(m) } func (*AttachKeyPairsRequest) ProtoMessage() {} func (*AttachKeyPairsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{59} + return fileDescriptor_3cfb3b8ec240c376, []int{63} } func (m *AttachKeyPairsRequest) XXX_Unmarshal(b []byte) error { @@ -4510,7 +4682,7 @@ func (m *AttachKeyPairsResponse) Reset() { *m = AttachKeyPairsResponse{} func (m *AttachKeyPairsResponse) String() string { return proto.CompactTextString(m) } func (*AttachKeyPairsResponse) ProtoMessage() {} func (*AttachKeyPairsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{60} + return fileDescriptor_3cfb3b8ec240c376, []int{64} } func (m *AttachKeyPairsResponse) XXX_Unmarshal(b []byte) error { @@ -4552,7 +4724,7 @@ func (m *DetachKeyPairsRequest) Reset() { *m = DetachKeyPairsRequest{} } func (m *DetachKeyPairsRequest) String() string { return proto.CompactTextString(m) } func (*DetachKeyPairsRequest) ProtoMessage() {} func (*DetachKeyPairsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{61} + return fileDescriptor_3cfb3b8ec240c376, []int{65} } func (m *DetachKeyPairsRequest) XXX_Unmarshal(b []byte) error { @@ -4599,7 +4771,7 @@ func (m *DetachKeyPairsResponse) Reset() { *m = DetachKeyPairsResponse{} func (m *DetachKeyPairsResponse) String() string { return proto.CompactTextString(m) } func (*DetachKeyPairsResponse) ProtoMessage() {} func (*DetachKeyPairsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{62} + return fileDescriptor_3cfb3b8ec240c376, []int{66} } func (m *DetachKeyPairsResponse) XXX_Unmarshal(b []byte) error { @@ -4641,7 +4813,7 @@ func (m *NodeKeyPair) Reset() { *m = NodeKeyPair{} } func (m *NodeKeyPair) String() string { return proto.CompactTextString(m) } func (*NodeKeyPair) ProtoMessage() {} func (*NodeKeyPair) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{63} + return fileDescriptor_3cfb3b8ec240c376, []int{67} } func (m *NodeKeyPair) XXX_Unmarshal(b []byte) error { @@ -4688,7 +4860,7 @@ func (m *AddNodeKeyPairsRequest) Reset() { *m = AddNodeKeyPairsRequest{} func (m *AddNodeKeyPairsRequest) String() string { return proto.CompactTextString(m) } func (*AddNodeKeyPairsRequest) ProtoMessage() {} func (*AddNodeKeyPairsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{64} + return fileDescriptor_3cfb3b8ec240c376, []int{68} } func (m *AddNodeKeyPairsRequest) XXX_Unmarshal(b []byte) error { @@ -4726,7 +4898,7 @@ func (m *AddNodeKeyPairsResponse) Reset() { *m = AddNodeKeyPairsResponse func (m *AddNodeKeyPairsResponse) String() string { return proto.CompactTextString(m) } func (*AddNodeKeyPairsResponse) ProtoMessage() {} func (*AddNodeKeyPairsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{65} + return fileDescriptor_3cfb3b8ec240c376, []int{69} } func (m *AddNodeKeyPairsResponse) XXX_Unmarshal(b []byte) error { @@ -4759,7 +4931,7 @@ func (m *DeleteNodeKeyPairsRequest) Reset() { *m = DeleteNodeKeyPairsReq func (m *DeleteNodeKeyPairsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteNodeKeyPairsRequest) ProtoMessage() {} func (*DeleteNodeKeyPairsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{66} + return fileDescriptor_3cfb3b8ec240c376, []int{70} } func (m *DeleteNodeKeyPairsRequest) XXX_Unmarshal(b []byte) error { @@ -4797,7 +4969,7 @@ func (m *DeleteNodeKeyPairsResponse) Reset() { *m = DeleteNodeKeyPairsRe func (m *DeleteNodeKeyPairsResponse) String() string { return proto.CompactTextString(m) } func (*DeleteNodeKeyPairsResponse) ProtoMessage() {} func (*DeleteNodeKeyPairsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3cfb3b8ec240c376, []int{67} + return fileDescriptor_3cfb3b8ec240c376, []int{71} } func (m *DeleteNodeKeyPairsResponse) XXX_Unmarshal(b []byte) error { @@ -4822,6 +4994,10 @@ func init() { proto.RegisterType((*DescribeSubnetsRequest)(nil), "openpitrix.DescribeSubnetsRequest") proto.RegisterType((*Subnet)(nil), "openpitrix.Subnet") proto.RegisterType((*DescribeSubnetsResponse)(nil), "openpitrix.DescribeSubnetsResponse") + proto.RegisterType((*DeleteClusterInRuntimeRequest)(nil), "openpitrix.DeleteClusterInRuntimeRequest") + proto.RegisterType((*DeleteClusterInRuntimeResponse)(nil), "openpitrix.DeleteClusterInRuntimeResponse") + proto.RegisterType((*MigrateClusterInRuntimeRequest)(nil), "openpitrix.MigrateClusterInRuntimeRequest") + proto.RegisterType((*MigrateClusterInRuntimeResponse)(nil), "openpitrix.MigrateClusterInRuntimeResponse") proto.RegisterType((*CreateClusterRequest)(nil), "openpitrix.CreateClusterRequest") proto.RegisterType((*CreateClusterResponse)(nil), "openpitrix.CreateClusterResponse") proto.RegisterType((*ModifyClusterRequest)(nil), "openpitrix.ModifyClusterRequest") @@ -4895,309 +5071,317 @@ func init() { func init() { proto.RegisterFile("cluster.proto", fileDescriptor_3cfb3b8ec240c376) } var fileDescriptor_3cfb3b8ec240c376 = []byte{ - // 4827 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0x5d, 0x6c, 0x1c, 0xd7, - 0x75, 0xc6, 0xec, 0x92, 0x4b, 0xf2, 0x2c, 0x77, 0x49, 0x5d, 0x92, 0xcb, 0xd5, 0x92, 0x92, 0x57, - 0x23, 0xff, 0xa8, 0x0e, 0x4d, 0xda, 0xb2, 0x1c, 0xcb, 0x92, 0xd5, 0x78, 0x45, 0xa9, 0x0e, 0x6b, - 0xc9, 0x16, 0x96, 0x92, 0x9c, 0xba, 0x6e, 0x26, 0xc3, 0x9d, 0xcb, 0xe5, 0x84, 0xbb, 0x33, 0x93, - 0x99, 0xbb, 0x54, 0x68, 0xf4, 0xc9, 0x28, 0xd0, 0x36, 0x49, 0x0b, 0x84, 0x45, 0x8b, 0xf4, 0x17, - 0x28, 0x8a, 0x06, 0x69, 0x51, 0xa3, 0x89, 0x81, 0x02, 0x35, 0xfa, 0xd0, 0xa7, 0xe6, 0xa5, 0x40, - 0x5b, 0xa0, 0x2f, 0x45, 0x9e, 0xfa, 0x90, 0xa7, 0xf4, 0xb5, 0x6f, 0x7d, 0x29, 0xee, 0xcf, 0xfc, - 0xdc, 0xd9, 0xd9, 0xe5, 0x5d, 0x2e, 0x25, 0x39, 0xc8, 0x13, 0xb9, 0x33, 0xe7, 0x9c, 0xfb, 0xcd, - 0xb9, 0xe7, 0xef, 0xde, 0x7b, 0x66, 0xa0, 0xd4, 0xea, 0xf4, 0x02, 0x82, 0xfd, 0x75, 0xcf, 0x77, - 0x89, 0x8b, 0xc0, 0xf5, 0xb0, 0xe3, 0xd9, 0xc4, 0xb7, 0xbf, 0x59, 0x5b, 0x69, 0xbb, 0x6e, 0xbb, - 0x83, 0x37, 0xd8, 0x9d, 0x9d, 0xde, 0xee, 0x06, 0xee, 0x7a, 0xe4, 0x90, 0x13, 0xd6, 0xce, 0xa7, - 0x6f, 0x3e, 0xf2, 0x4d, 0xcf, 0xc3, 0x7e, 0x20, 0xee, 0x3f, 0x93, 0xbe, 0x4f, 0xec, 0x2e, 0x0e, - 0x88, 0xd9, 0xf5, 0x04, 0xc1, 0xaa, 0x20, 0x30, 0x3d, 0x7b, 0xc3, 0x74, 0x1c, 0x97, 0x98, 0xc4, - 0x76, 0x9d, 0x90, 0x7d, 0x8d, 0xfd, 0x69, 0xbd, 0xd4, 0xc6, 0xce, 0x4b, 0xc1, 0x23, 0xb3, 0xdd, - 0xc6, 0xfe, 0x86, 0xeb, 0x31, 0x8a, 0x7e, 0x6a, 0xfd, 0x4f, 0x72, 0x50, 0xb9, 0x85, 0x83, 0x96, - 0x6f, 0xef, 0xe0, 0xed, 0xde, 0x8e, 0x83, 0x49, 0xd0, 0xc4, 0xdf, 0xe8, 0xe1, 0x80, 0xa0, 0xeb, - 0x00, 0x7e, 0xcf, 0xa1, 0x83, 0x1b, 0xb6, 0x55, 0xd5, 0xea, 0xda, 0xa5, 0xe2, 0xe5, 0xd5, 0x75, - 0x3e, 0xf6, 0x7a, 0x08, 0x6e, 0x7d, 0x9b, 0xf8, 0xb6, 0xd3, 0x7e, 0x68, 0x76, 0x7a, 0xb8, 0x39, - 0x23, 0xe8, 0xb7, 0x2c, 0xb4, 0x08, 0x93, 0x1d, 0xbb, 0x6b, 0x93, 0x6a, 0xae, 0xae, 0x5d, 0x2a, - 0x35, 0xf9, 0x0f, 0x54, 0x81, 0x82, 0xbb, 0xbb, 0x1b, 0x60, 0x52, 0xcd, 0xb3, 0xcb, 0xe2, 0x17, - 0xba, 0x01, 0xc5, 0x80, 0x0d, 0x6e, 0x90, 0x43, 0x0f, 0x57, 0x27, 0x06, 0x8c, 0xf5, 0x60, 0xcb, - 0x21, 0xaf, 0x5e, 0xe6, 0x63, 0x01, 0x67, 0xb8, 0x7f, 0xe8, 0x61, 0xb4, 0x02, 0x33, 0x82, 0xdd, - 0xb6, 0xaa, 0x93, 0xf5, 0xfc, 0xa5, 0x99, 0xe6, 0x34, 0xbf, 0xb0, 0x65, 0x21, 0x04, 0x13, 0x1f, - 0xb9, 0x0e, 0xae, 0x16, 0xd8, 0x75, 0xf6, 0x3f, 0x7a, 0x0e, 0xca, 0xa6, 0x75, 0x60, 0x3a, 0x2d, - 0x6c, 0x19, 0x9e, 0xe9, 0x9b, 0xdd, 0xea, 0x14, 0xbb, 0x5b, 0x0a, 0xaf, 0xde, 0xa3, 0x17, 0xf5, - 0xcf, 0xf2, 0x50, 0xe0, 0x4a, 0x41, 0x6f, 0x24, 0x87, 0x50, 0xd1, 0x45, 0x0c, 0xe0, 0x65, 0x98, - 0x70, 0xcc, 0x2e, 0x66, 0x9a, 0x38, 0x8e, 0x8b, 0x51, 0x52, 0x0e, 0x06, 0x39, 0xaf, 0xc2, 0xc1, - 0x1e, 0xe8, 0x3a, 0x14, 0x5b, 0x3e, 0x36, 0x09, 0x36, 0xa8, 0xfe, 0x85, 0x02, 0x6b, 0x7d, 0x8c, - 0xf7, 0x43, 0x4b, 0x6a, 0x02, 0x27, 0xa7, 0x17, 0xd0, 0x2f, 0x43, 0xd1, 0x62, 0x26, 0xc0, 0xac, - 0xa4, 0x3a, 0xa9, 0x30, 0x6a, 0x92, 0x01, 0x3d, 0x03, 0x45, 0xdb, 0x09, 0x08, 0x55, 0x1c, 0xd5, - 0x0e, 0x57, 0x34, 0x84, 0x97, 0xb6, 0x2c, 0xf4, 0x2a, 0x14, 0x0e, 0xbc, 0x16, 0xbd, 0x37, 0xa5, - 0x20, 0x7b, 0xf2, 0xc0, 0x6b, 0x6d, 0x59, 0x69, 0x9b, 0x98, 0x1e, 0xcd, 0x26, 0xf4, 0x2e, 0x2c, - 0xf7, 0xd9, 0x75, 0xe0, 0xb9, 0x4e, 0x80, 0x29, 0x5e, 0xe2, 0x12, 0xb3, 0x63, 0xb4, 0xdc, 0x9e, - 0x43, 0xd8, 0x6c, 0x96, 0x9a, 0xc0, 0x2e, 0x6d, 0xd2, 0x2b, 0xe8, 0x15, 0x10, 0x92, 0x0c, 0x6a, - 0xaa, 0xb9, 0x7a, 0xfe, 0x52, 0xf1, 0x32, 0x5a, 0x8f, 0xfd, 0x7b, 0x9d, 0x4b, 0x6c, 0x0a, 0x93, - 0xd8, 0xc6, 0x44, 0xff, 0x8f, 0x1c, 0x2c, 0x6e, 0x32, 0x95, 0x6e, 0xf2, 0xa8, 0x10, 0x7a, 0xd1, - 0xab, 0x50, 0x30, 0x3d, 0x4f, 0xd5, 0x6a, 0x26, 0x4d, 0xcf, 0xdb, 0xb2, 0xa8, 0xeb, 0x1d, 0x60, - 0x3f, 0xb0, 0x5d, 0x87, 0x32, 0xaa, 0x18, 0xce, 0x8c, 0xa0, 0xe7, 0xcc, 0x09, 0xbf, 0xcd, 0x8f, - 0xe6, 0xb7, 0x2f, 0xc3, 0x44, 0xcb, 0x75, 0x76, 0x07, 0xba, 0xa0, 0x64, 0x7a, 0x94, 0x32, 0xc3, - 0x97, 0x26, 0x33, 0x7c, 0x29, 0xb2, 0xe9, 0x82, 0xaa, 0x4d, 0xeb, 0xbf, 0xab, 0xc1, 0x52, 0x4a, - 0xa5, 0x62, 0x02, 0xaf, 0x03, 0x88, 0xd8, 0xab, 0x1c, 0x99, 0x04, 0x3d, 0x37, 0xc6, 0xaf, 0xbb, - 0x3b, 0xaa, 0x7a, 0x9d, 0xfc, 0xba, 0xbb, 0xb3, 0x65, 0xe9, 0x9f, 0xe6, 0x61, 0xf1, 0xae, 0x6b, - 0xd9, 0xbb, 0x87, 0xa9, 0xe9, 0x7d, 0x09, 0xa6, 0x84, 0x68, 0x81, 0x63, 0x21, 0x69, 0x27, 0x21, - 0x71, 0x48, 0x83, 0x1a, 0x30, 0x1f, 0x22, 0x77, 0x5c, 0x0b, 0x27, 0xec, 0x6b, 0x39, 0x83, 0xef, - 0x5d, 0xd7, 0xc2, 0xcd, 0x72, 0x2b, 0xfe, 0xb1, 0x8d, 0x49, 0x52, 0x84, 0xef, 0x76, 0xb8, 0x88, - 0xfc, 0x40, 0x11, 0x4d, 0xb7, 0x13, 0x8b, 0xa0, 0x3f, 0x52, 0x22, 0x3a, 0xb6, 0xb3, 0xcf, 0x44, - 0x4c, 0x0c, 0x14, 0x71, 0xc7, 0x76, 0xf6, 0x23, 0x11, 0xf4, 0x07, 0x15, 0xf1, 0x36, 0xa0, 0x50, - 0x44, 0xcb, 0xed, 0x76, 0x5d, 0x87, 0x09, 0x99, 0x64, 0x42, 0xce, 0x66, 0x08, 0xd9, 0x64, 0x44, - 0xcd, 0x70, 0x5c, 0xfe, 0x93, 0x0a, 0xfa, 0x35, 0xa8, 0x46, 0x58, 0x5c, 0xd3, 0xda, 0x31, 0x3b, - 0xd4, 0x68, 0x7c, 0x26, 0xae, 0xc0, 0xc4, 0x3d, 0x93, 0x85, 0x29, 0x41, 0xda, 0xac, 0xb4, 0xfa, - 0x2f, 0x52, 0x9f, 0xbc, 0x0f, 0x4b, 0xa9, 0x39, 0x3b, 0x05, 0xfb, 0xd1, 0x1f, 0x42, 0x55, 0x92, - 0xca, 0x26, 0x49, 0x58, 0xc3, 0x35, 0x98, 0x4d, 0x4e, 0xaf, 0x10, 0x3d, 0x70, 0x6a, 0x8b, 0x89, - 0xa9, 0xd5, 0x9b, 0x70, 0x36, 0x43, 0xae, 0x40, 0xfc, 0x1a, 0x4c, 0x31, 0x7b, 0x51, 0x84, 0x5b, - 0xa0, 0xc4, 0x5b, 0x96, 0xfe, 0xef, 0x1a, 0x9c, 0x97, 0x84, 0x36, 0x08, 0xf1, 0xed, 0x9d, 0x1e, - 0xc1, 0xc9, 0x2c, 0x7f, 0x72, 0x5f, 0x1a, 0x3d, 0xb5, 0xa5, 0x72, 0x4d, 0x7e, 0xc4, 0x5c, 0xa3, - 0x7f, 0x15, 0x9e, 0x19, 0xf8, 0x40, 0xa7, 0x31, 0xbb, 0xbf, 0xa7, 0x81, 0xde, 0x37, 0x0d, 0xfd, - 0x5a, 0x3b, 0xd9, 0x7c, 0x8c, 0xae, 0x2f, 0xfd, 0x43, 0xb8, 0x38, 0x14, 0xce, 0x78, 0xf6, 0xf1, - 0x35, 0x58, 0x69, 0x58, 0xd6, 0x7d, 0x73, 0xa7, 0x83, 0x13, 0xf2, 0xa3, 0xa7, 0xcc, 0x8a, 0x56, - 0xda, 0x48, 0xd1, 0x4a, 0x7f, 0x03, 0xce, 0xdf, 0xc2, 0x1d, 0x4c, 0xf0, 0xc0, 0x41, 0x96, 0x93, - 0xd0, 0x69, 0xe2, 0x08, 0xc1, 0x7d, 0xaa, 0xc1, 0x12, 0xe7, 0x15, 0x6c, 0x11, 0xcb, 0xb9, 0xd4, - 0x0c, 0x53, 0xae, 0x84, 0x55, 0xf6, 0x67, 0xa4, 0x5c, 0x76, 0x46, 0x9a, 0xdc, 0x75, 0xfd, 0x56, - 0x58, 0x66, 0xf5, 0x57, 0x4b, 0x37, 0x5d, 0xb7, 0x23, 0xb2, 0x00, 0x23, 0x44, 0x17, 0x60, 0xb6, - 0xed, 0x9b, 0x2d, 0x6c, 0x78, 0xd8, 0xb7, 0x5d, 0x8b, 0x25, 0xc9, 0x52, 0xb3, 0xc8, 0xae, 0xdd, - 0x63, 0x97, 0xf4, 0x77, 0x69, 0x39, 0x2d, 0x63, 0x16, 0x53, 0x74, 0x0c, 0xe8, 0xa5, 0x44, 0x5a, - 0xa2, 0xb7, 0x44, 0xe2, 0xf9, 0x47, 0x0d, 0x96, 0x1e, 0x78, 0x6d, 0xdf, 0xb4, 0xd2, 0x85, 0xc5, - 0x58, 0x8e, 0x3b, 0x56, 0x81, 0xd1, 0xaf, 0xdf, 0x7c, 0x56, 0xf5, 0xfc, 0x2d, 0x0d, 0x2a, 0x69, - 0xe8, 0x4f, 0x2d, 0x81, 0xff, 0x26, 0x54, 0x9a, 0x6e, 0xa7, 0xb3, 0x63, 0xb6, 0xf6, 0x4f, 0x53, - 0x8f, 0x6a, 0xa6, 0xa6, 0x7f, 0x5b, 0x83, 0xe5, 0xbe, 0xe1, 0x9f, 0x9a, 0x2e, 0x7e, 0x92, 0x83, - 0x59, 0x56, 0x17, 0xe0, 0xc0, 0xed, 0x51, 0xbb, 0x7e, 0x19, 0x26, 0x68, 0x29, 0xa1, 0x34, 0x38, - 0xa3, 0x44, 0xeb, 0x90, 0x6f, 0x79, 0xbd, 0x81, 0x83, 0x26, 0x8b, 0x72, 0x4a, 0x48, 0xe9, 0xdb, - 0x5e, 0x6f, 0x60, 0xb8, 0x97, 0xe8, 0xdb, 0x5e, 0x0f, 0x5d, 0x81, 0x42, 0x17, 0x77, 0x5d, 0xff, - 0x50, 0x69, 0x2d, 0x28, 0x68, 0x51, 0x03, 0x4a, 0xd1, 0x42, 0x24, 0xb0, 0x3f, 0xc2, 0x03, 0x97, - 0x32, 0x49, 0xe6, 0xd9, 0x90, 0x65, 0xdb, 0xfe, 0x08, 0xa3, 0x2f, 0xc1, 0x6c, 0x40, 0x5c, 0xdf, - 0x6c, 0x0b, 0x09, 0x05, 0x05, 0x09, 0x45, 0xc1, 0x41, 0x05, 0xe8, 0x9f, 0x69, 0xb0, 0xd8, 0xc4, - 0x94, 0xf7, 0x34, 0xed, 0xec, 0x06, 0x94, 0x58, 0xb1, 0xe7, 0x8b, 0x29, 0x13, 0x45, 0x63, 0x35, - 0x19, 0x86, 0x93, 0x53, 0xda, 0x9c, 0xf5, 0x93, 0x13, 0xac, 0x56, 0xa3, 0xb3, 0x8a, 0x3b, 0x85, - 0xfd, 0xa9, 0x19, 0xe9, 0xff, 0x68, 0x50, 0x69, 0x58, 0x56, 0x56, 0xc6, 0x18, 0xb7, 0x64, 0x61, - 0xb6, 0x9e, 0x53, 0xb6, 0xf5, 0xeb, 0x00, 0x2c, 0x41, 0xf1, 0xd5, 0xa2, 0x8a, 0x09, 0xcf, 0x50, - 0x7a, 0xbe, 0x94, 0xec, 0xd7, 0xfc, 0xc4, 0xa0, 0x00, 0xd1, 0xf7, 0xb4, 0x4f, 0x4d, 0xf7, 0xdf, - 0xd3, 0xe0, 0xac, 0x94, 0xc5, 0x4e, 0x4f, 0xfd, 0x89, 0x6c, 0x9f, 0x4b, 0x66, 0x7b, 0xd5, 0xa4, - 0xf2, 0xfb, 0x1a, 0xd4, 0xb2, 0xa0, 0x3d, 0x35, 0x5d, 0x7d, 0xa2, 0xc1, 0xf2, 0x03, 0xcf, 0x8a, - 0x57, 0xa9, 0xb7, 0x9d, 0x83, 0x53, 0xd1, 0xd4, 0x3a, 0xe4, 0xb1, 0x73, 0xa0, 0x04, 0x85, 0x12, - 0xaa, 0x2a, 0xf0, 0x3b, 0x1a, 0x54, 0xfb, 0xf1, 0x3e, 0x35, 0xf5, 0xfd, 0xa8, 0x0c, 0x25, 0x69, - 0x89, 0xf8, 0xa4, 0xbd, 0xfb, 0x3d, 0x58, 0x0a, 0xb0, 0x7f, 0xc0, 0x46, 0x33, 0x7a, 0x9e, 0x87, - 0x7d, 0x63, 0xc7, 0xed, 0x39, 0x96, 0x92, 0xa3, 0x23, 0xce, 0xba, 0x65, 0x3d, 0xa0, 0x8c, 0x37, - 0x29, 0x1f, 0x7a, 0x1b, 0xe6, 0xa3, 0x79, 0x30, 0x5b, 0x6c, 0xaf, 0x55, 0x69, 0x37, 0x65, 0x2e, - 0xe4, 0x6a, 0x70, 0x26, 0x9a, 0x8a, 0x6c, 0xc7, 0x26, 0x06, 0x1d, 0xc3, 0x6e, 0x61, 0xb5, 0x7d, - 0x39, 0xca, 0xb1, 0xcd, 0x19, 0x68, 0x3a, 0x0c, 0x88, 0xe9, 0xc7, 0x12, 0x54, 0xf6, 0x5e, 0x66, - 0x19, 0x4b, 0x28, 0x82, 0xa7, 0x43, 0x2f, 0x92, 0xa0, 0xb2, 0x7f, 0x47, 0xd3, 0xa1, 0x17, 0x0a, - 0xf8, 0x32, 0x9c, 0x09, 0x5a, 0x66, 0x07, 0x1b, 0x6e, 0x2f, 0xc6, 0x31, 0xad, 0xa2, 0x0e, 0xc6, - 0xf6, 0x5e, 0x2f, 0x82, 0xf2, 0x2b, 0x30, 0xcf, 0x25, 0xd9, 0x4e, 0x24, 0x68, 0x46, 0x41, 0x50, - 0x99, 0x71, 0x6d, 0x39, 0xa1, 0x9c, 0xdb, 0x30, 0xe7, 0x63, 0x59, 0x2f, 0xa0, 0x22, 0x46, 0x30, - 0x25, 0xc4, 0x58, 0x38, 0x20, 0xbe, 0x7b, 0x18, 0x89, 0x29, 0xaa, 0x88, 0x11, 0x4c, 0x09, 0x31, - 0x3d, 0x5e, 0x23, 0x47, 0x62, 0x66, 0x55, 0xc4, 0x08, 0xa6, 0x50, 0xcc, 0x26, 0x94, 0x5b, 0xbd, - 0x80, 0xb8, 0xdd, 0x48, 0x4a, 0x49, 0x41, 0x4a, 0x89, 0xf3, 0x24, 0x84, 0xd0, 0x02, 0xb5, 0x17, - 0x4f, 0x77, 0x59, 0x45, 0x08, 0xe7, 0x49, 0xa9, 0xd7, 0xf5, 0xe3, 0x07, 0x9a, 0x53, 0x55, 0xaf, - 0xeb, 0x47, 0x0f, 0x74, 0x1f, 0x96, 0x2d, 0x16, 0xe6, 0x8d, 0xc0, 0x31, 0xbd, 0x60, 0xcf, 0x8d, - 0x67, 0x6b, 0x5e, 0x41, 0xdc, 0x12, 0x67, 0xde, 0x16, 0xbc, 0x09, 0x73, 0xde, 0xc3, 0x66, 0x87, - 0xec, 0x19, 0xad, 0x3d, 0xdc, 0xda, 0xaf, 0x9e, 0x51, 0x31, 0x67, 0xce, 0xb1, 0x49, 0x19, 0xd0, - 0x17, 0x61, 0xaa, 0xeb, 0x3a, 0x36, 0x71, 0xfd, 0x2a, 0x52, 0xe0, 0x0d, 0x89, 0xd1, 0x2d, 0x28, - 0x7b, 0x66, 0x10, 0x78, 0x7b, 0xbe, 0x19, 0xe0, 0x0e, 0x0e, 0x82, 0xea, 0x82, 0x8a, 0x52, 0x64, - 0x1e, 0xaa, 0x94, 0x03, 0xec, 0x13, 0xbb, 0x65, 0x76, 0x0c, 0x6a, 0xd5, 0xb6, 0xd3, 0x36, 0x3c, - 0xb7, 0x63, 0xb7, 0x0e, 0xab, 0x8b, 0x2a, 0x4a, 0x09, 0x99, 0xb7, 0x39, 0xef, 0x3d, 0xc6, 0x8a, - 0x36, 0x61, 0xce, 0x6c, 0x63, 0x87, 0x18, 0xac, 0x10, 0xee, 0x74, 0xb0, 0x55, 0x5d, 0x3a, 0x76, - 0x45, 0x5c, 0x66, 0x2c, 0x5b, 0x21, 0x07, 0x6a, 0x42, 0x45, 0x18, 0x60, 0x17, 0x13, 0xd3, 0x32, - 0x89, 0x69, 0xf0, 0x4d, 0x9b, 0x6a, 0x45, 0x01, 0xd9, 0x22, 0xe7, 0xbd, 0x2b, 0x58, 0xb7, 0x19, - 0x27, 0x7a, 0x1d, 0xa6, 0xed, 0x2e, 0xad, 0xc4, 0x6d, 0xab, 0xba, 0xac, 0xa2, 0x6d, 0x46, 0xbd, - 0x65, 0xd1, 0xc0, 0x27, 0x0c, 0x59, 0x68, 0xa7, 0xaa, 0x12, 0xf8, 0x38, 0x8b, 0x50, 0xca, 0x87, - 0xb0, 0x6a, 0x3b, 0x2d, 0x1f, 0x77, 0xb1, 0x43, 0xcc, 0x8e, 0x11, 0xfa, 0x45, 0xcf, 0xf3, 0x5c, - 0x9f, 0x60, 0xab, 0x7a, 0xf6, 0x58, 0x0d, 0xd5, 0x12, 0xfc, 0x37, 0xb9, 0x8b, 0x84, 0xdc, 0xe8, - 0x4d, 0x80, 0xbd, 0x43, 0x8f, 0x1a, 0x65, 0xe0, 0xfa, 0xd5, 0x9a, 0x02, 0xba, 0x04, 0xbd, 0xfe, - 0x83, 0x12, 0x14, 0x13, 0xd5, 0xcf, 0x49, 0x37, 0xa3, 0xe4, 0x44, 0x9b, 0x3b, 0xd9, 0xce, 0x5f, - 0x5e, 0x79, 0xe7, 0xef, 0x86, 0x7c, 0x4a, 0xa4, 0x92, 0x12, 0x93, 0x67, 0x48, 0x6f, 0xc0, 0xcc, - 0x81, 0xdb, 0xe9, 0xf1, 0x43, 0x0d, 0x95, 0x54, 0x38, 0xcd, 0xc9, 0xb7, 0x2c, 0xba, 0x98, 0xb4, - 0xb0, 0x72, 0x02, 0x14, 0xb4, 0xf2, 0x89, 0xdf, 0xd4, 0x48, 0x27, 0x7e, 0xd7, 0x01, 0x3c, 0xdf, - 0x3e, 0x30, 0x09, 0x36, 0x6c, 0x4f, 0x29, 0xdb, 0xcd, 0x08, 0xfa, 0x2d, 0x8f, 0xd5, 0x7d, 0xb6, - 0xa7, 0x94, 0xda, 0x28, 0x21, 0xc3, 0x19, 0x16, 0x30, 0x03, 0x33, 0x59, 0xb2, 0x68, 0x99, 0x0e, - 0x8b, 0x96, 0xa8, 0x5a, 0x2a, 0x2a, 0x57, 0x4b, 0x57, 0xa0, 0x10, 0x10, 0x93, 0xf4, 0x02, 0xa5, - 0x2c, 0x25, 0x68, 0xd1, 0x16, 0x9c, 0x21, 0xbe, 0xe9, 0x04, 0x36, 0x2d, 0x6c, 0x0c, 0x21, 0x40, - 0x25, 0x41, 0xcd, 0xc7, 0x6c, 0xdb, 0x5c, 0xd4, 0xeb, 0x30, 0xdd, 0xf6, 0xdd, 0x1e, 0x3b, 0x50, - 0x2b, 0x2b, 0x3c, 0xec, 0x14, 0xa3, 0xe6, 0x73, 0xe2, 0x3e, 0x72, 0xb0, 0x6f, 0x78, 0x26, 0xd9, - 0x53, 0x4a, 0x49, 0x33, 0x8c, 0xfe, 0x9e, 0x49, 0xf6, 0x68, 0xed, 0xd1, 0xee, 0xb8, 0x3b, 0x34, - 0xec, 0x46, 0xaa, 0x9e, 0x57, 0x18, 0xbd, 0xcc, 0xb9, 0xb6, 0x43, 0x85, 0xdf, 0x86, 0xb9, 0x54, - 0x94, 0x54, 0x4a, 0x41, 0x65, 0x39, 0x3c, 0x52, 0x87, 0xf7, 0x7a, 0x3b, 0xc6, 0x3e, 0x3e, 0x54, - 0xca, 0x42, 0x05, 0xaf, 0xb7, 0xf3, 0x0e, 0x66, 0xdb, 0x23, 0x22, 0xfb, 0x89, 0x29, 0x50, 0xc9, - 0x41, 0x22, 0x61, 0x46, 0xea, 0x9f, 0xb1, 0x03, 0x11, 0x0d, 0x45, 0xce, 0x19, 0x16, 0x03, 0xa7, - 0xed, 0x80, 0x87, 0x3e, 0x74, 0x1d, 0x8a, 0x66, 0x8f, 0xb8, 0x21, 0xeb, 0xf1, 0x09, 0x06, 0x28, - 0x79, 0xcc, 0x9c, 0x3c, 0xdd, 0xae, 0x8c, 0x74, 0xba, 0x7d, 0x1d, 0x8a, 0xfc, 0x71, 0x39, 0xf3, - 0xf2, 0xf1, 0xcc, 0x9c, 0x9c, 0x31, 0xbf, 0x06, 0x53, 0x7b, 0x6e, 0xc0, 0x42, 0x80, 0x4a, 0x0e, - 0x29, 0x50, 0xe2, 0x2d, 0x2b, 0x66, 0xf3, 0x44, 0xa2, 0x50, 0x61, 0xf3, 0x92, 0xc7, 0x47, 0xcc, - 0x2f, 0x6b, 0x03, 0x8f, 0x8f, 0xd8, 0x5e, 0x4f, 0x31, 0x71, 0xac, 0x87, 0xde, 0x82, 0xb2, 0x7c, - 0x20, 0x57, 0x5d, 0x61, 0xdc, 0x43, 0x0e, 0xe3, 0x4a, 0xd2, 0x61, 0x1c, 0x3a, 0x0f, 0xc5, 0x7d, - 0x7c, 0x68, 0x78, 0xa6, 0xcd, 0xec, 0x7b, 0x95, 0xef, 0x50, 0xef, 0xe3, 0xc3, 0x7b, 0xa6, 0x4d, - 0x8d, 0xf7, 0x32, 0x4c, 0x32, 0x8f, 0xa8, 0x9e, 0x53, 0x59, 0xde, 0x31, 0x52, 0xfd, 0x5f, 0x0a, - 0x51, 0xaa, 0x6a, 0x8a, 0xbd, 0x94, 0x27, 0xb9, 0xb8, 0x13, 0xdb, 0x94, 0xf9, 0x11, 0xb7, 0x29, - 0x27, 0x46, 0xdf, 0xa6, 0x9c, 0x1c, 0x67, 0x9b, 0xb2, 0x30, 0xf6, 0x36, 0xe5, 0xd4, 0x88, 0xdb, - 0x94, 0x34, 0x1b, 0x77, 0xdd, 0x9e, 0x43, 0x0c, 0xcf, 0xb5, 0x1d, 0xa2, 0x94, 0xa3, 0x80, 0x31, - 0xdc, 0xa3, 0xf4, 0xf4, 0x11, 0x38, 0xbb, 0xe8, 0x2c, 0x52, 0x4a, 0x57, 0xb3, 0x8c, 0xe5, 0x3d, - 0xce, 0x41, 0x11, 0xec, 0xda, 0x1d, 0x6c, 0x04, 0x87, 0x01, 0xc1, 0x5d, 0xa5, 0x35, 0x18, 0x50, - 0x86, 0x6d, 0x46, 0x1f, 0x6e, 0x8f, 0x14, 0x55, 0xb7, 0x47, 0xae, 0xc2, 0xb4, 0x8f, 0xbd, 0x8e, - 0xdd, 0x32, 0x07, 0xe7, 0x2e, 0x29, 0x4b, 0x86, 0xd4, 0x74, 0x59, 0xe4, 0x63, 0xd3, 0x3a, 0x34, - 0x22, 0xfe, 0x92, 0x02, 0x7f, 0x89, 0xf1, 0x34, 0x43, 0x21, 0x37, 0xa0, 0x68, 0x7a, 0xb6, 0x21, - 0x0e, 0x51, 0x94, 0x16, 0x56, 0x60, 0x7a, 0xf6, 0x43, 0x4e, 0xaf, 0xff, 0x5f, 0x0e, 0x16, 0x32, - 0x8e, 0xbe, 0x9f, 0xb4, 0x3f, 0x3d, 0x84, 0xaa, 0x74, 0x48, 0xdf, 0xb1, 0x03, 0x82, 0x1d, 0x3e, - 0xb8, 0x4a, 0x25, 0x58, 0x49, 0x72, 0xdf, 0x11, 0xcc, 0x5b, 0x16, 0x2d, 0x10, 0x24, 0xb9, 0xb4, - 0x4c, 0x56, 0xf2, 0xc2, 0xf9, 0x24, 0xdb, 0x3d, 0xd7, 0x27, 0x74, 0x21, 0x92, 0x12, 0x45, 0xeb, - 0x79, 0xd5, 0xa2, 0x71, 0x51, 0x96, 0x47, 0x59, 0xb7, 0x2c, 0xfd, 0x9f, 0x72, 0x51, 0x14, 0xbb, - 0x63, 0x3b, 0xfb, 0x4f, 0xfa, 0xcc, 0xfc, 0x0e, 0x2c, 0xe0, 0x6f, 0x12, 0xec, 0x3b, 0x66, 0xc7, - 0x48, 0x8c, 0xab, 0xa2, 0xf0, 0x33, 0x21, 0xe3, 0x66, 0xf2, 0xe8, 0x2f, 0x51, 0x08, 0x4d, 0x8c, - 0x56, 0x08, 0x45, 0x39, 0x60, 0x52, 0x3d, 0x07, 0xfc, 0xa4, 0x0c, 0x53, 0x62, 0xf8, 0x9f, 0xb3, - 0x6e, 0x83, 0x44, 0xf3, 0xd6, 0xc4, 0x49, 0x9b, 0xb7, 0x26, 0x47, 0x3b, 0x5b, 0x95, 0x56, 0x1d, - 0x85, 0x91, 0x56, 0x1d, 0x27, 0xea, 0xb2, 0xfb, 0x12, 0xcc, 0xee, 0xfa, 0xae, 0x43, 0xda, 0x6c, - 0xb1, 0x62, 0x29, 0x25, 0x82, 0x62, 0xc4, 0xc1, 0x05, 0x84, 0x33, 0xca, 0xfa, 0xf4, 0x66, 0x54, - 0x32, 0x91, 0xe0, 0x60, 0xcd, 0x9b, 0xd7, 0x60, 0x06, 0x3b, 0x16, 0x4b, 0x43, 0x81, 0x52, 0x16, - 0x88, 0xc9, 0x13, 0xcb, 0x91, 0xe2, 0xb8, 0xcb, 0x91, 0xd9, 0x13, 0x2d, 0x47, 0xee, 0xc0, 0x62, - 0xb4, 0xdf, 0xe1, 0xbb, 0x2e, 0x31, 0xcc, 0x56, 0x0b, 0x07, 0x61, 0x86, 0x18, 0x56, 0xdf, 0xa2, - 0x90, 0xaf, 0xe9, 0xba, 0xa4, 0xc1, 0xb8, 0x52, 0xae, 0x59, 0x1e, 0xcd, 0x35, 0x6f, 0x40, 0x51, - 0xac, 0x51, 0x7a, 0x3d, 0xdb, 0x52, 0x5a, 0xe1, 0x00, 0x67, 0x78, 0xd0, 0xb3, 0x2d, 0x9a, 0xe5, - 0xa2, 0x8d, 0x48, 0xae, 0x11, 0x95, 0x7d, 0xb6, 0x52, 0xb8, 0x0f, 0xc9, 0xd5, 0x71, 0x03, 0x66, - 0x43, 0x21, 0xac, 0xd8, 0x3e, 0x73, 0x6c, 0xb1, 0x5d, 0x14, 0xf4, 0xa2, 0x54, 0x4f, 0x76, 0x2e, - 0xa2, 0xd1, 0x3a, 0x17, 0x53, 0x8b, 0x84, 0x85, 0x71, 0x16, 0x09, 0x8b, 0x23, 0x2d, 0x12, 0x6e, - 0xc3, 0x9c, 0x69, 0x59, 0xcc, 0x2c, 0xcc, 0x8e, 0x61, 0x3b, 0xbb, 0xae, 0x58, 0xdf, 0x1c, 0xb3, - 0xaa, 0x8b, 0x99, 0xb6, 0x9c, 0x5d, 0x37, 0xac, 0x68, 0x2a, 0xaa, 0x15, 0xcd, 0xcb, 0x30, 0x69, - 0xe1, 0x9d, 0x5e, 0x7b, 0xe0, 0x92, 0x26, 0xd1, 0xbf, 0xc2, 0x08, 0xa3, 0x1e, 0xcc, 0xaa, 0x72, - 0x5f, 0x71, 0x56, 0x07, 0xd0, 0xd9, 0xf1, 0xfb, 0x15, 0x6b, 0xe3, 0xf7, 0x2b, 0xae, 0x9c, 0x46, - 0xbf, 0xe2, 0xea, 0xe9, 0xf6, 0x2b, 0x9e, 0x1b, 0xab, 0x5f, 0x31, 0x4e, 0xae, 0xe7, 0xd5, 0x93, - 0xeb, 0x6f, 0x15, 0xe2, 0x3e, 0xe7, 0x11, 0xdb, 0xa4, 0x96, 0xa2, 0xe4, 0x26, 0x3a, 0x8e, 0x78, - 0xfa, 0x3a, 0x27, 0xa5, 0x2f, 0x7e, 0x86, 0x98, 0x48, 0x50, 0x95, 0x28, 0xe4, 0xf2, 0x83, 0xec, - 0x30, 0xa8, 0x9e, 0x93, 0x7c, 0x97, 0xb7, 0x17, 0x24, 0xbc, 0xf3, 0x42, 0x2a, 0xcf, 0xf0, 0x26, - 0x71, 0x29, 0x93, 0x0c, 0x28, 0x73, 0xa6, 0x4e, 0x56, 0xe6, 0x44, 0x2f, 0x20, 0x4c, 0x67, 0xbf, - 0x80, 0x30, 0xd3, 0xf7, 0x02, 0x02, 0x36, 0xfd, 0xd6, 0x9e, 0xf1, 0xc8, 0xf5, 0x2d, 0xb5, 0xc5, - 0x08, 0x67, 0x78, 0xdf, 0xf5, 0x2d, 0xf4, 0x3a, 0x4c, 0x07, 0xae, 0x4f, 0xd8, 0x8e, 0x8c, 0x4a, - 0x26, 0x9a, 0xa2, 0xd4, 0xef, 0xe0, 0x43, 0x74, 0x05, 0xa6, 0x7c, 0x4c, 0x95, 0x1b, 0x1e, 0xfb, - 0x0c, 0xf3, 0xe2, 0x90, 0x94, 0x3e, 0x1b, 0x37, 0x94, 0x12, 0x9f, 0x38, 0xf6, 0xa3, 0x2f, 0x13, - 0xab, 0xe4, 0x0f, 0x29, 0x13, 0x5f, 0x87, 0xe2, 0x23, 0x9b, 0xec, 0x19, 0x16, 0x26, 0xa6, 0xdd, - 0x11, 0x19, 0x64, 0xe8, 0x1e, 0x0d, 0x25, 0xbf, 0xc5, 0xa8, 0xd9, 0xe8, 0x2c, 0x9e, 0x5a, 0x86, - 0x65, 0x12, 0xac, 0xb4, 0x3d, 0x26, 0x02, 0xb6, 0x75, 0xcb, 0x24, 0x18, 0xbd, 0x00, 0x73, 0x96, - 0x1d, 0x78, 0x1d, 0xf3, 0xd0, 0x68, 0xb9, 0x9d, 0x5e, 0xd7, 0x09, 0xaa, 0x67, 0xd8, 0xe3, 0x95, - 0xc5, 0xe5, 0x4d, 0x7e, 0x35, 0x7a, 0xa1, 0x03, 0xc5, 0x2f, 0x74, 0xe8, 0xdf, 0x80, 0x6a, 0xbf, - 0x17, 0xa8, 0xb6, 0xfb, 0x5f, 0x81, 0x50, 0x0d, 0x89, 0x7e, 0xec, 0xcc, 0x3e, 0xee, 0xd0, 0x9f, - 0xb6, 0x31, 0xd1, 0x7f, 0x9a, 0x87, 0x5a, 0x38, 0x66, 0xc3, 0xf3, 0xd2, 0xce, 0xb7, 0x94, 0xe8, - 0xfb, 0x4f, 0x78, 0x57, 0xec, 0x3e, 0x39, 0xc9, 0x7d, 0x22, 0x73, 0xcd, 0x67, 0x9b, 0xeb, 0xc4, - 0x30, 0x73, 0x9d, 0x1c, 0xc3, 0x5c, 0x0b, 0x27, 0x34, 0xd7, 0xa9, 0x13, 0x98, 0xeb, 0x74, 0xd2, - 0x5c, 0x53, 0xd6, 0x36, 0x33, 0x96, 0xb5, 0xc1, 0x29, 0x58, 0x5b, 0x31, 0xcb, 0xda, 0x74, 0x02, - 0x2b, 0x99, 0xb3, 0xfc, 0x78, 0x8d, 0xeb, 0xfb, 0xf9, 0x78, 0xd8, 0x27, 0xd7, 0x83, 0x13, 0x1b, - 0x67, 0x3e, 0xdb, 0x38, 0x27, 0xb2, 0x8d, 0x73, 0x72, 0x98, 0x71, 0x16, 0xc6, 0x30, 0xce, 0xa9, - 0x13, 0x1a, 0xe7, 0xf4, 0x09, 0x8c, 0x73, 0x26, 0x69, 0x9c, 0x19, 0xe6, 0x01, 0x99, 0xe6, 0xf1, - 0xb1, 0x06, 0xab, 0xd9, 0x13, 0xa5, 0x6a, 0x20, 0xe3, 0xbf, 0x12, 0xa2, 0xff, 0x3a, 0x2c, 0x6c, - 0x13, 0xd7, 0x7b, 0x2c, 0x6d, 0xd2, 0xfa, 0x1d, 0x58, 0x94, 0x85, 0x8f, 0xd5, 0xcf, 0xfc, 0x21, - 0x95, 0x66, 0xfa, 0xe4, 0xf1, 0x60, 0xbd, 0x0b, 0x4b, 0x29, 0xe9, 0x63, 0x81, 0xfd, 0x2a, 0x54, - 0x9a, 0xb8, 0xe5, 0x1e, 0x60, 0xff, 0xf1, 0xc0, 0x7d, 0x0f, 0x96, 0xfb, 0xe4, 0x8f, 0x05, 0xf8, - 0x47, 0x1a, 0x2c, 0x6e, 0x62, 0x33, 0xf8, 0x79, 0xea, 0x98, 0xbf, 0x0b, 0x4b, 0x29, 0xc8, 0x63, - 0xa9, 0xe0, 0x1c, 0xac, 0xbc, 0x8d, 0x43, 0x03, 0xa0, 0xcb, 0x52, 0x3b, 0x20, 0x76, 0x2b, 0x54, - 0x84, 0xfe, 0xb3, 0x09, 0x58, 0xcd, 0xbe, 0x2f, 0x46, 0x0d, 0x60, 0xa9, 0x63, 0x06, 0xc4, 0x20, - 0x8f, 0x5c, 0xe3, 0x11, 0xc6, 0xfb, 0x86, 0xc8, 0x1a, 0xe2, 0xc5, 0x87, 0xb7, 0x92, 0x3e, 0x39, - 0x4c, 0xd0, 0xfa, 0x1d, 0x33, 0x20, 0xf7, 0x1f, 0xb9, 0xef, 0x63, 0xbc, 0xcf, 0xdf, 0x62, 0xb3, - 0x6e, 0x3b, 0xc4, 0x3f, 0x6c, 0xa2, 0x4e, 0xdf, 0x0d, 0xb4, 0x0b, 0xf3, 0xc4, 0xf5, 0x0c, 0x82, - 0x1d, 0x43, 0x94, 0xcc, 0x81, 0x88, 0x01, 0x6f, 0x2a, 0x8f, 0x77, 0xdf, 0xf5, 0xee, 0x63, 0xa7, - 0x29, 0xd8, 0xf9, 0x58, 0x65, 0x22, 0x5d, 0x44, 0x17, 0xa3, 0x97, 0x96, 0x13, 0xdd, 0xac, 0xa5, - 0xe6, 0x6c, 0xb4, 0xca, 0xa1, 0x01, 0xe9, 0x22, 0x94, 0xc2, 0x4a, 0x9e, 0x13, 0xf1, 0x49, 0x9b, - 0x15, 0x17, 0x39, 0xd1, 0x07, 0x30, 0x1b, 0x22, 0x36, 0x3d, 0x2f, 0x10, 0x6f, 0x7e, 0x5d, 0x1d, - 0x11, 0x6d, 0xc3, 0xf3, 0x04, 0x52, 0x20, 0xd1, 0x85, 0xda, 0x6d, 0x58, 0x1e, 0xa0, 0x3c, 0x34, - 0x0f, 0x79, 0x9a, 0x17, 0x68, 0x14, 0x9d, 0x69, 0xd2, 0x7f, 0x69, 0xfc, 0x3e, 0xa0, 0x16, 0x17, - 0xbe, 0x68, 0xcc, 0x7e, 0x5c, 0xcb, 0x5d, 0xd5, 0x6a, 0x0d, 0x58, 0xc8, 0xd0, 0xc9, 0x48, 0x22, - 0x6e, 0xc0, 0x5c, 0x0a, 0xe8, 0x28, 0xec, 0xfa, 0xff, 0xe6, 0x61, 0xea, 0x1d, 0x7e, 0x7e, 0x86, - 0xde, 0x94, 0x4f, 0xd7, 0x94, 0x52, 0x76, 0x7c, 0xf6, 0xf6, 0xe4, 0xb7, 0x3e, 0x13, 0x67, 0xcc, - 0x13, 0x23, 0x9c, 0x31, 0xcb, 0x5b, 0x58, 0x93, 0xa3, 0x6d, 0x61, 0xa5, 0xb6, 0x70, 0x0a, 0xe3, - 0x6c, 0xe1, 0x4c, 0x8d, 0xb4, 0x85, 0x93, 0x28, 0x89, 0xa6, 0xa5, 0x92, 0xe8, 0x72, 0x5c, 0x1e, - 0x28, 0xaf, 0xc9, 0xff, 0x59, 0x0b, 0xdf, 0x05, 0x16, 0x93, 0x1f, 0x46, 0xe1, 0x70, 0x16, 0xb5, - 0x93, 0xce, 0x62, 0x6e, 0x8c, 0x59, 0xcc, 0xab, 0xcf, 0xa2, 0xfe, 0x20, 0x7c, 0xf3, 0x36, 0x7a, - 0x00, 0x11, 0x1d, 0xc7, 0xb2, 0x62, 0xfd, 0xef, 0xf2, 0xf1, 0x66, 0x85, 0x90, 0x1c, 0x65, 0xa8, - 0x5f, 0x10, 0xff, 0x58, 0x8c, 0x0f, 0x50, 0x12, 0xe5, 0xe6, 0x98, 0x25, 0x73, 0x54, 0x9f, 0x4f, - 0x65, 0xd7, 0xe7, 0xd3, 0x52, 0x7d, 0x9e, 0x51, 0xdb, 0xce, 0x64, 0xd6, 0xb6, 0x7e, 0xbc, 0xa8, - 0x8e, 0x67, 0x4b, 0xb5, 0xac, 0x7d, 0x0d, 0x66, 0xa3, 0xf9, 0x1c, 0xb0, 0xf0, 0x09, 0x8d, 0x0b, - 0xc4, 0x3c, 0xd2, 0x52, 0xf6, 0xf5, 0xf0, 0x9d, 0xbf, 0xb4, 0x7d, 0x9c, 0x4f, 0xdb, 0x87, 0xdc, - 0x9d, 0xa0, 0x5f, 0x0d, 0x5f, 0xbc, 0xeb, 0x83, 0x7a, 0x1c, 0xe7, 0x3d, 0x58, 0x6a, 0x10, 0x62, - 0xb6, 0xf6, 0x46, 0x1c, 0x72, 0xe0, 0x3a, 0x4a, 0xdf, 0x80, 0x4a, 0x5a, 0xa2, 0xc0, 0x12, 0x17, - 0x2d, 0x5a, 0xb2, 0x68, 0xb9, 0x47, 0x9f, 0xfa, 0xb4, 0x21, 0xa4, 0x25, 0x0e, 0x87, 0xf0, 0xb1, - 0x06, 0x45, 0xba, 0x9e, 0x08, 0xf3, 0xd5, 0x09, 0x9b, 0x0a, 0x53, 0x6e, 0x9c, 0x1b, 0x2d, 0x40, - 0x3c, 0x60, 0xef, 0xfc, 0x24, 0x60, 0x24, 0x16, 0xbc, 0x25, 0x06, 0x27, 0x14, 0x9e, 0xf5, 0x1e, - 0x6a, 0x82, 0xaf, 0x59, 0x74, 0xe2, 0x1f, 0xfa, 0x59, 0xf6, 0x72, 0x8d, 0x2c, 0x96, 0x6b, 0x43, - 0xff, 0x4a, 0xf8, 0xa6, 0xcb, 0xa9, 0x0f, 0xba, 0x1a, 0xbe, 0xa8, 0x92, 0x35, 0xee, 0xe5, 0x3f, - 0xff, 0x02, 0x94, 0x45, 0x75, 0x74, 0xd7, 0x74, 0xcc, 0x36, 0xf6, 0xd1, 0x07, 0x30, 0x97, 0x42, - 0x89, 0xf4, 0xe4, 0x48, 0xd9, 0x9a, 0xa9, 0x5d, 0x1c, 0x4a, 0x23, 0x26, 0xbd, 0x05, 0xa8, 0x1f, - 0x0c, 0x7a, 0x2e, 0xc9, 0x3a, 0x50, 0x0d, 0xb5, 0xe7, 0x8f, 0x23, 0x13, 0x83, 0x7c, 0x5b, 0x83, - 0x92, 0x94, 0x36, 0x50, 0x5d, 0x5a, 0xc1, 0x66, 0xa4, 0xc4, 0xda, 0x85, 0x21, 0x14, 0x62, 0x8a, - 0x5e, 0x3b, 0x6a, 0x9c, 0x41, 0x73, 0xfc, 0x5e, 0x7d, 0x1f, 0x1f, 0xd6, 0xe9, 0x54, 0x7c, 0xfc, - 0x9f, 0x3f, 0xfd, 0x83, 0xdc, 0x8a, 0x5e, 0xd9, 0x38, 0x78, 0x65, 0x43, 0x54, 0xaf, 0xc1, 0x46, - 0x38, 0x4f, 0xc1, 0x35, 0xed, 0x45, 0xf4, 0x33, 0x0d, 0xe6, 0xd3, 0xe1, 0x0b, 0x5d, 0x94, 0x1f, - 0x25, 0x33, 0x15, 0xd5, 0x9e, 0x1d, 0x4e, 0x24, 0x60, 0x7d, 0x4b, 0x3b, 0x6a, 0xd8, 0xa8, 0xfd, - 0x36, 0x26, 0x11, 0xa8, 0x60, 0xad, 0x2e, 0x3a, 0x84, 0xeb, 0xbb, 0x76, 0x87, 0x60, 0xbf, 0xfe, - 0xc8, 0x26, 0x7b, 0x75, 0xb2, 0x87, 0x03, 0x5c, 0xdf, 0xb5, 0x71, 0xc7, 0x0a, 0x2e, 0x25, 0xbc, - 0x63, 0xad, 0x4e, 0x33, 0xd1, 0x5a, 0x9d, 0xe5, 0x80, 0x5f, 0x5a, 0xab, 0x5b, 0x78, 0xd7, 0xec, - 0x75, 0x48, 0xdd, 0xc7, 0xa4, 0xe7, 0x3b, 0x75, 0xb3, 0xd3, 0x89, 0x25, 0xb3, 0xe7, 0xad, 0xa2, - 0x01, 0xcf, 0x8b, 0xfe, 0x50, 0x83, 0xb2, 0x1c, 0xfe, 0xd0, 0x85, 0xfe, 0x59, 0x4b, 0x3f, 0xa8, - 0x3e, 0x8c, 0x44, 0x3c, 0xe6, 0x9b, 0x47, 0x8d, 0x2a, 0xaa, 0xdc, 0x34, 0x49, 0x6b, 0xaf, 0xce, - 0x9b, 0xea, 0x53, 0xa0, 0x56, 0x5e, 0x1c, 0x32, 0x09, 0x7f, 0xa5, 0x41, 0x59, 0x0e, 0x85, 0x32, - 0xae, 0xcc, 0xc0, 0x2b, 0xe3, 0xca, 0x8e, 0xa4, 0xfa, 0xaf, 0x1e, 0x35, 0xea, 0xe8, 0x3c, 0xc7, - 0x65, 0x32, 0x92, 0x18, 0x57, 0x9d, 0xb8, 0x75, 0xea, 0x8a, 0x0c, 0xdf, 0x05, 0x7d, 0x35, 0x13, - 0xdf, 0x06, 0xe7, 0xa2, 0x28, 0xff, 0x9a, 0x69, 0x6f, 0x30, 0xca, 0xcc, 0xd8, 0x9c, 0xd6, 0x5e, - 0x26, 0xca, 0x3b, 0x47, 0x0d, 0x1d, 0xd5, 0x43, 0xed, 0xa5, 0x50, 0xee, 0xfa, 0x6e, 0x57, 0x01, - 0x27, 0xe7, 0xa3, 0x38, 0x7f, 0x47, 0x83, 0xb9, 0xd4, 0x47, 0x6d, 0x90, 0x9e, 0x65, 0xac, 0xf2, - 0x97, 0x9c, 0x6a, 0x17, 0x87, 0xd2, 0x08, 0xa8, 0x6b, 0x47, 0x8d, 0x12, 0x2a, 0x52, 0x73, 0xe6, - 0x1d, 0x05, 0x7c, 0x76, 0x2b, 0x68, 0x51, 0x42, 0x25, 0xee, 0xa1, 0xdf, 0x8e, 0x7c, 0x3d, 0x6c, - 0xed, 0xc8, 0xf0, 0x75, 0xf9, 0x0d, 0xd8, 0x2c, 0x5f, 0x4f, 0xbd, 0x67, 0xaa, 0xbf, 0x72, 0xd4, - 0x98, 0x47, 0x65, 0xe1, 0xeb, 0x62, 0x50, 0x6e, 0xfa, 0xfa, 0x82, 0x84, 0x83, 0x17, 0xfe, 0x54, - 0x29, 0xdf, 0xd3, 0x00, 0x71, 0x86, 0x5b, 0x78, 0xa7, 0xd7, 0x3e, 0x55, 0x38, 0x37, 0x8e, 0x1a, - 0x15, 0x24, 0x6a, 0xf9, 0x3a, 0x3b, 0x43, 0x95, 0x40, 0x9d, 0xd7, 0xcf, 0x52, 0x50, 0xec, 0x86, - 0x91, 0x01, 0xed, 0x3e, 0x94, 0xa4, 0x8f, 0x37, 0xc8, 0xa0, 0xb2, 0xbe, 0x27, 0x23, 0x83, 0xca, - 0xfe, 0x7a, 0xc9, 0xd7, 0xe0, 0x4c, 0xdf, 0x27, 0x21, 0xd0, 0xb3, 0x03, 0xf9, 0x12, 0xdf, 0x27, - 0xa9, 0x3d, 0x77, 0x0c, 0x95, 0x18, 0xe1, 0x87, 0x1a, 0x2c, 0x0f, 0xf8, 0xca, 0x06, 0x7a, 0x71, - 0xa0, 0x88, 0xbe, 0xaf, 0x64, 0xd4, 0xbe, 0xa0, 0x44, 0x1b, 0x07, 0x9a, 0x15, 0x24, 0x3e, 0x81, - 0x12, 0x6a, 0x99, 0x7a, 0xb6, 0xa0, 0xcb, 0xb4, 0x82, 0x2e, 0xa3, 0xa6, 0xaa, 0xfe, 0x37, 0x0d, - 0x56, 0x86, 0x7c, 0x28, 0x03, 0xad, 0x0f, 0x7d, 0xf2, 0x7e, 0xe8, 0x1b, 0xca, 0xf4, 0x02, 0xfe, - 0xbb, 0x47, 0x8d, 0x17, 0xd0, 0x73, 0x02, 0x3e, 0x75, 0xea, 0x04, 0xf6, 0xba, 0xed, 0xd0, 0x24, - 0x90, 0x65, 0x3b, 0xa9, 0x47, 0x61, 0x5b, 0xc0, 0x2c, 0x72, 0xbe, 0x0f, 0x8b, 0x59, 0x9f, 0xe6, - 0x40, 0x2f, 0xa4, 0xd2, 0xfd, 0xa0, 0xef, 0x6a, 0xd4, 0x2a, 0x7d, 0x45, 0xd7, 0xed, 0xae, 0x47, - 0x0e, 0xd1, 0x6f, 0xd0, 0x35, 0x58, 0xe6, 0x17, 0x39, 0xe4, 0xb9, 0x1d, 0xfe, 0xd9, 0x8e, 0x81, - 0xe2, 0xbf, 0x1b, 0x65, 0xa2, 0x70, 0x43, 0x2f, 0x2b, 0x13, 0xa5, 0xf6, 0x27, 0xb3, 0x32, 0x51, - 0x7a, 0x3f, 0x50, 0xbf, 0x7a, 0xd4, 0x58, 0x46, 0x4b, 0x52, 0x26, 0x0a, 0xb5, 0x97, 0x69, 0x1c, - 0x9c, 0x86, 0xea, 0xf2, 0x3b, 0x1a, 0x94, 0xe5, 0x2f, 0x51, 0xc8, 0x98, 0x32, 0x3f, 0xb0, 0x21, - 0x63, 0xca, 0xfe, 0x90, 0x85, 0xfe, 0x2a, 0xab, 0x4d, 0xc4, 0x4d, 0x69, 0x7e, 0xcf, 0xea, 0x72, - 0xe0, 0x14, 0x7d, 0x2e, 0x14, 0xce, 0x77, 0x35, 0x98, 0x4b, 0x7d, 0x0d, 0x42, 0x0e, 0xe3, 0xd9, - 0x5f, 0xaa, 0x90, 0xc3, 0xf8, 0x80, 0xcf, 0x49, 0xd0, 0x6a, 0x09, 0xa1, 0xf9, 0xf0, 0xae, 0x04, - 0xa9, 0xa6, 0x2f, 0x49, 0x90, 0x7c, 0x41, 0x44, 0x31, 0xd1, 0x78, 0x2e, 0xbd, 0xfa, 0x2f, 0xc7, - 0xaa, 0xac, 0x2f, 0x1a, 0xc8, 0xb1, 0x2a, 0xf3, 0xbb, 0x01, 0x22, 0x9e, 0xf3, 0x7b, 0x43, 0xe3, - 0xb9, 0xcf, 0x48, 0x28, 0x92, 0x3f, 0xd3, 0x58, 0x1d, 0x2c, 0x19, 0x66, 0xba, 0x0e, 0xce, 0x32, - 0xc8, 0x8b, 0x43, 0x69, 0x04, 0x9e, 0xb7, 0x8e, 0x1a, 0xab, 0xa8, 0x26, 0xaa, 0x06, 0xcb, 0x62, - 0x8e, 0xca, 0xca, 0x85, 0x24, 0xb6, 0x74, 0x59, 0x69, 0x5a, 0x56, 0xec, 0x97, 0x9f, 0x68, 0x61, - 0x29, 0x2d, 0x21, 0x7c, 0x6e, 0xa0, 0x01, 0x4b, 0x20, 0x9f, 0x3f, 0x8e, 0x4c, 0xe0, 0xfc, 0xf2, - 0x51, 0xe3, 0x02, 0x7a, 0x46, 0xb2, 0x75, 0x0e, 0x95, 0xd5, 0x0c, 0xc3, 0xe2, 0x88, 0x78, 0x6b, - 0x32, 0xc2, 0xfb, 0xa7, 0x1a, 0xcc, 0xa7, 0xdf, 0xf7, 0x96, 0xcb, 0xe0, 0x01, 0x6f, 0xaf, 0xcb, - 0x65, 0xf0, 0xa0, 0x57, 0xc6, 0x69, 0xd8, 0x5e, 0x46, 0x4b, 0xfc, 0x76, 0x1d, 0x3b, 0x07, 0x75, - 0x77, 0x57, 0xc2, 0xb7, 0x7a, 0x79, 0x39, 0xe5, 0x07, 0x94, 0xd2, 0xc0, 0xce, 0x01, 0x45, 0xf7, - 0xc7, 0xb9, 0xb8, 0x48, 0x8f, 0xe2, 0x45, 0x66, 0xb9, 0x92, 0x8e, 0x18, 0xcf, 0x0e, 0x27, 0x12, - 0xe8, 0x3e, 0xd3, 0x8e, 0x1a, 0x7f, 0xa9, 0xa1, 0xbf, 0xd0, 0x68, 0x5d, 0x13, 0x62, 0x58, 0xab, - 0xb7, 0x4c, 0x67, 0x70, 0x85, 0x1e, 0x1f, 0x3a, 0xac, 0xd5, 0xf9, 0x11, 0xfe, 0x5a, 0x3d, 0xee, - 0x88, 0x59, 0xab, 0xf3, 0x6d, 0xc3, 0xb5, 0x7a, 0xdc, 0xee, 0xb2, 0x56, 0x4f, 0xf6, 0xb6, 0x88, - 0x82, 0x7e, 0xad, 0x9e, 0xec, 0xc6, 0xc8, 0x2e, 0xef, 0xa5, 0xf8, 0x55, 0x46, 0xb3, 0x49, 0x4d, - 0xa1, 0x1f, 0xe6, 0x60, 0x29, 0x7c, 0xb0, 0x64, 0x69, 0x73, 0xaa, 0x0a, 0xfa, 0x57, 0xed, 0xa8, - 0xf1, 0x89, 0x86, 0xfe, 0x96, 0x29, 0x48, 0xaa, 0x70, 0x3e, 0x47, 0x6a, 0x92, 0x71, 0x31, 0x65, - 0x2d, 0x22, 0xd4, 0x5f, 0x7a, 0xa1, 0xbf, 0xcf, 0xc1, 0x42, 0xc6, 0x69, 0x3d, 0x7a, 0x3e, 0x4b, - 0x17, 0xfd, 0x4d, 0x1b, 0xb5, 0x17, 0x8e, 0xa5, 0x13, 0x6a, 0xfb, 0xb1, 0x76, 0xd4, 0xf8, 0x1b, - 0x0d, 0x7d, 0x9f, 0xa9, 0xcd, 0xf4, 0xbc, 0xcf, 0xa1, 0xd2, 0x92, 0xa8, 0x98, 0xca, 0x16, 0xd0, - 0x19, 0x39, 0xac, 0x79, 0x5e, 0x80, 0x7e, 0x9c, 0x8b, 0x37, 0xf9, 0x98, 0x91, 0x3d, 0x56, 0xb5, - 0xfd, 0x97, 0x76, 0xd4, 0xf8, 0x07, 0x0d, 0x7d, 0x9a, 0xb0, 0xb6, 0xcf, 0xa7, 0xf2, 0xfa, 0xb1, - 0xf1, 0xa4, 0x8e, 0x96, 0x33, 0x0a, 0x7e, 0xa6, 0xc8, 0xff, 0xd6, 0x60, 0x31, 0xab, 0x11, 0x00, - 0xbd, 0x30, 0xc4, 0x0f, 0xa5, 0xdc, 0x70, 0xe9, 0x78, 0x42, 0xa1, 0xc6, 0xde, 0x51, 0xe3, 0x2b, - 0xe8, 0x21, 0xd5, 0x21, 0x4f, 0x0a, 0xb6, 0x13, 0xc2, 0x1c, 0x41, 0x83, 0x62, 0x77, 0x2f, 0x56, - 0x1b, 0xdf, 0x86, 0x48, 0x7a, 0x57, 0xf4, 0x84, 0x6c, 0x18, 0x5a, 0x23, 0xcc, 0x26, 0x5b, 0x01, - 0x90, 0xd4, 0xe9, 0x98, 0xd1, 0x81, 0x50, 0xab, 0x0f, 0x26, 0x10, 0x8f, 0x72, 0xe5, 0xa8, 0xb1, - 0x84, 0x16, 0x78, 0xa2, 0x0b, 0x88, 0x9b, 0xd2, 0x77, 0x45, 0x97, 0x4d, 0x96, 0x52, 0x88, 0x82, - 0xae, 0x24, 0x1d, 0xf4, 0xa3, 0xd4, 0x48, 0xfd, 0x1d, 0x06, 0x72, 0xb5, 0x92, 0xd9, 0x25, 0xa0, - 0x7f, 0x91, 0x2d, 0xf7, 0x42, 0x30, 0xa6, 0x4f, 0x64, 0x34, 0xcb, 0x3a, 0x4a, 0xa1, 0x31, 0x7d, - 0x42, 0xe1, 0xfc, 0x11, 0x2d, 0xe8, 0xe4, 0x83, 0xfc, 0x54, 0x41, 0x97, 0xd9, 0x45, 0x90, 0x2a, - 0xe8, 0xb2, 0x3b, 0x01, 0xf4, 0x6b, 0x89, 0x0d, 0x18, 0x9f, 0xd3, 0xa4, 0x8c, 0x32, 0x55, 0x69, - 0x0a, 0xa2, 0x50, 0x4f, 0xd2, 0xe1, 0x7a, 0x6a, 0x59, 0x9c, 0xd1, 0x2a, 0x90, 0x5a, 0x16, 0x67, - 0x9d, 0xcc, 0x4b, 0x7a, 0x6a, 0x51, 0x8a, 0xe1, 0x7a, 0x62, 0x24, 0x14, 0xce, 0x0f, 0x34, 0x58, - 0xcc, 0x3a, 0x15, 0x96, 0x7d, 0x64, 0xc8, 0xf1, 0xbd, 0xec, 0x23, 0xc3, 0x0e, 0x98, 0xe9, 0xd2, - 0x7d, 0x05, 0x9d, 0x65, 0xdb, 0x19, 0xd1, 0xcd, 0x74, 0x6d, 0x22, 0xdc, 0x39, 0x39, 0xa1, 0x82, - 0xf2, 0xe6, 0xc4, 0x07, 0x39, 0x6f, 0x67, 0xa7, 0xc0, 0x16, 0x37, 0xaf, 0xfe, 0x7f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x66, 0xed, 0xd7, 0x45, 0xeb, 0x5b, 0x00, 0x00, + // 4950 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0x4d, 0x6c, 0x24, 0xc7, + 0x75, 0x76, 0xcf, 0x90, 0x43, 0xf2, 0x0d, 0x67, 0xc8, 0x2d, 0xfe, 0xcd, 0x0e, 0xb9, 0xbb, 0xb3, + 0xbd, 0x96, 0xb4, 0x56, 0xa8, 0x5d, 0x69, 0x25, 0x59, 0x3f, 0xab, 0xb5, 0x34, 0xe2, 0x6e, 0xe4, + 0x89, 0x76, 0xa5, 0xc5, 0x70, 0x57, 0x72, 0x14, 0xc5, 0xed, 0xe6, 0x74, 0x71, 0xd8, 0x66, 0x4f, + 0x77, 0xab, 0xbb, 0x86, 0x6b, 0x0a, 0x39, 0x09, 0x41, 0x7e, 0x6c, 0x27, 0x80, 0x19, 0x24, 0x70, + 0x7e, 0x10, 0x20, 0x08, 0x62, 0x38, 0x41, 0x84, 0xd8, 0x02, 0x02, 0x44, 0xc8, 0x21, 0xa7, 0xf8, + 0x12, 0x20, 0x09, 0x90, 0x4b, 0xe0, 0x53, 0x0e, 0x3e, 0x39, 0xd7, 0xdc, 0x72, 0x09, 0xea, 0xa7, + 0x7f, 0xaa, 0xa7, 0x67, 0x58, 0xc3, 0xa1, 0x76, 0x65, 0xe4, 0x44, 0x4e, 0xf7, 0x7b, 0xaf, 0xbe, + 0x7e, 0xf5, 0xea, 0xbd, 0x57, 0x55, 0xaf, 0x0a, 0x2a, 0x1d, 0xa7, 0x1f, 0x12, 0x1c, 0x5c, 0xf1, + 0x03, 0x8f, 0x78, 0x08, 0x3c, 0x1f, 0xbb, 0xbe, 0x4d, 0x02, 0xfb, 0x5b, 0xf5, 0xf5, 0xae, 0xe7, + 0x75, 0x1d, 0x7c, 0x95, 0xbd, 0xd9, 0xe9, 0xef, 0x5e, 0xc5, 0x3d, 0x9f, 0x1c, 0x72, 0xc2, 0xfa, + 0xf9, 0xec, 0xcb, 0x07, 0x81, 0xe9, 0xfb, 0x38, 0x08, 0xc5, 0xfb, 0x0b, 0xd9, 0xf7, 0xc4, 0xee, + 0xe1, 0x90, 0x98, 0x3d, 0x5f, 0x10, 0x6c, 0x08, 0x02, 0xd3, 0xb7, 0xaf, 0x9a, 0xae, 0xeb, 0x11, + 0x93, 0xd8, 0x9e, 0x1b, 0xb1, 0x6f, 0xb2, 0x3f, 0x9d, 0xa7, 0xba, 0xd8, 0x7d, 0x2a, 0x7c, 0x60, + 0x76, 0xbb, 0x38, 0xb8, 0xea, 0xf9, 0x8c, 0x62, 0x90, 0x5a, 0xff, 0x93, 0x02, 0xac, 0xde, 0xc4, + 0x61, 0x27, 0xb0, 0x77, 0xf0, 0x76, 0x7f, 0xc7, 0xc5, 0x24, 0x6c, 0xe3, 0x0f, 0xfa, 0x38, 0x24, + 0xe8, 0x3a, 0x40, 0xd0, 0x77, 0x69, 0xe3, 0x86, 0x6d, 0xd5, 0xb4, 0x86, 0x76, 0xb9, 0x7c, 0x6d, + 0xe3, 0x0a, 0x6f, 0xfb, 0x4a, 0x04, 0xee, 0xca, 0x36, 0x09, 0x6c, 0xb7, 0xfb, 0x8e, 0xe9, 0xf4, + 0x71, 0x7b, 0x4e, 0xd0, 0xb7, 0x2c, 0xb4, 0x0c, 0xd3, 0x8e, 0xdd, 0xb3, 0x49, 0xad, 0xd0, 0xd0, + 0x2e, 0x57, 0xda, 0xfc, 0x07, 0x5a, 0x85, 0x92, 0xb7, 0xbb, 0x1b, 0x62, 0x52, 0x2b, 0xb2, 0xc7, + 0xe2, 0x17, 0xba, 0x01, 0xe5, 0x90, 0x35, 0x6e, 0x90, 0x43, 0x1f, 0xd7, 0xa6, 0x86, 0xb4, 0x75, + 0xbf, 0xe5, 0x92, 0x67, 0xaf, 0xf1, 0xb6, 0x80, 0x33, 0xdc, 0x3b, 0xf4, 0x31, 0x5a, 0x87, 0x39, + 0xc1, 0x6e, 0x5b, 0xb5, 0xe9, 0x46, 0xf1, 0xf2, 0x5c, 0x7b, 0x96, 0x3f, 0x68, 0x59, 0x08, 0xc1, + 0xd4, 0x87, 0x9e, 0x8b, 0x6b, 0x25, 0xf6, 0x9c, 0xfd, 0x8f, 0x1e, 0x83, 0xaa, 0x69, 0x1d, 0x98, + 0x6e, 0x07, 0x5b, 0x86, 0x6f, 0x06, 0x66, 0xaf, 0x36, 0xc3, 0xde, 0x56, 0xa2, 0xa7, 0x77, 0xe9, + 0x43, 0xfd, 0xd3, 0x22, 0x94, 0xb8, 0x52, 0xd0, 0x4b, 0xe9, 0x26, 0x54, 0x74, 0x91, 0x00, 0x78, + 0x1a, 0xa6, 0x5c, 0xb3, 0x87, 0x99, 0x26, 0x8e, 0xe3, 0x62, 0x94, 0x94, 0x83, 0x41, 0x2e, 0xaa, + 0x70, 0xb0, 0x0f, 0xba, 0x0e, 0xe5, 0x4e, 0x80, 0x4d, 0x82, 0x0d, 0xaa, 0x7f, 0xa1, 0xc0, 0xfa, + 0x00, 0xe3, 0xbd, 0xc8, 0x92, 0xda, 0xc0, 0xc9, 0xe9, 0x03, 0xf4, 0x15, 0x28, 0x5b, 0xcc, 0x04, + 0x98, 0x95, 0xd4, 0xa6, 0x15, 0x5a, 0x4d, 0x33, 0xa0, 0x0b, 0x50, 0xb6, 0xdd, 0x90, 0x50, 0xc5, + 0x51, 0xed, 0x70, 0x45, 0x43, 0xf4, 0xa8, 0x65, 0xa1, 0x67, 0xa1, 0x74, 0xe0, 0x77, 0xe8, 0xbb, + 0x19, 0x05, 0xd9, 0xd3, 0x07, 0x7e, 0xa7, 0x65, 0x65, 0x6d, 0x62, 0x76, 0x3c, 0x9b, 0xd0, 0x7b, + 0xb0, 0x36, 0x60, 0xd7, 0xa1, 0xef, 0xb9, 0x21, 0xa6, 0x78, 0x89, 0x47, 0x4c, 0xc7, 0xe8, 0x78, + 0x7d, 0x97, 0xb0, 0xde, 0xac, 0xb4, 0x81, 0x3d, 0xda, 0xa2, 0x4f, 0xd0, 0x33, 0x20, 0x24, 0x19, + 0xd4, 0x54, 0x0b, 0x8d, 0xe2, 0xe5, 0xf2, 0x35, 0x74, 0x25, 0x19, 0xdf, 0x57, 0xb8, 0xc4, 0xb6, + 0x30, 0x89, 0x6d, 0x4c, 0xf4, 0xaf, 0xc0, 0xb9, 0x9b, 0xd8, 0xc1, 0x04, 0x6f, 0x71, 0xa7, 0xd0, + 0x72, 0xdb, 0x7c, 0x2c, 0x44, 0xa3, 0xe9, 0x5c, 0x66, 0x34, 0x51, 0x1d, 0x25, 0xe3, 0x45, 0x7f, + 0x15, 0xce, 0x0f, 0xe3, 0x17, 0xa8, 0x8f, 0x11, 0xe0, 0xc0, 0xf9, 0x3b, 0x76, 0x37, 0x30, 0x87, + 0x23, 0x78, 0x1c, 0x16, 0x76, 0x03, 0xaf, 0x67, 0x64, 0x06, 0xf5, 0x5c, 0xbb, 0x42, 0x1f, 0xb7, + 0xe3, 0xa1, 0xab, 0x43, 0x85, 0x78, 0x69, 0xaa, 0x02, 0xa3, 0x2a, 0x13, 0x2f, 0xa6, 0xd1, 0x7b, + 0x70, 0x61, 0x68, 0x6b, 0x02, 0xef, 0x69, 0x36, 0xf7, 0xef, 0x05, 0x58, 0xde, 0x62, 0x06, 0x2b, + 0x9a, 0x8b, 0xbe, 0xe9, 0x59, 0x28, 0x99, 0xbe, 0xaf, 0x3a, 0x26, 0xa7, 0x4d, 0xdf, 0x6f, 0x59, + 0xd4, 0xb1, 0x1d, 0xe0, 0x20, 0xb4, 0x3d, 0x37, 0x6a, 0xee, 0x58, 0xc7, 0x26, 0xe8, 0x39, 0x73, + 0x0a, 0x6b, 0x71, 0x3c, 0xaf, 0xf8, 0x34, 0x4c, 0x75, 0x3c, 0x77, 0x77, 0xa8, 0x83, 0x93, 0x06, + 0x36, 0xa5, 0xcc, 0xf1, 0x54, 0xd3, 0x39, 0x9e, 0x2a, 0xf6, 0x18, 0x25, 0x55, 0x8f, 0xa1, 0xff, + 0xae, 0x06, 0x2b, 0x19, 0x95, 0x8a, 0x8e, 0xbb, 0x0e, 0x20, 0x22, 0x9b, 0xb2, 0xdf, 0x17, 0xf4, + 0x7c, 0xa8, 0x7f, 0xd3, 0xdb, 0x51, 0xd5, 0xeb, 0xf4, 0x37, 0xbd, 0x9d, 0x96, 0xa5, 0x7f, 0x52, + 0x84, 0xe5, 0x3b, 0x9e, 0x65, 0xef, 0x1e, 0x66, 0xba, 0xf7, 0x29, 0x98, 0x11, 0xa2, 0x05, 0x8e, + 0xa5, 0xf4, 0x28, 0x8c, 0x88, 0x23, 0x1a, 0xd4, 0x84, 0xc5, 0x08, 0xb9, 0xeb, 0x59, 0x38, 0x35, + 0x7a, 0xd7, 0x72, 0xf8, 0xde, 0xf2, 0x2c, 0xdc, 0xae, 0x76, 0x92, 0x1f, 0xdb, 0x98, 0xa4, 0x45, + 0x04, 0x9e, 0xc3, 0x45, 0x14, 0x87, 0x8a, 0x68, 0x7b, 0x4e, 0x22, 0x82, 0xfe, 0xc8, 0x88, 0x70, + 0x6c, 0x77, 0x9f, 0x89, 0x98, 0x1a, 0x2a, 0xe2, 0xb6, 0xed, 0xee, 0xc7, 0x22, 0xe8, 0x0f, 0x2a, + 0xe2, 0x0d, 0x40, 0x91, 0x88, 0x8e, 0xd7, 0xeb, 0x79, 0x2e, 0x13, 0x32, 0xcd, 0x84, 0x9c, 0xcd, + 0x11, 0xb2, 0xc5, 0x88, 0xda, 0x51, 0xbb, 0xfc, 0x27, 0x15, 0xf4, 0xab, 0x50, 0x8b, 0xb1, 0x78, + 0xa6, 0xb5, 0x63, 0x3a, 0xd4, 0x68, 0x02, 0x26, 0xae, 0xc4, 0xc4, 0x5d, 0xc8, 0xc3, 0x94, 0x22, + 0x6d, 0xaf, 0x76, 0x06, 0x1f, 0x52, 0x8f, 0x77, 0x0f, 0x56, 0x32, 0x7d, 0x76, 0x0a, 0xf6, 0xa3, + 0xbf, 0x03, 0x35, 0x49, 0x2a, 0xeb, 0x24, 0x61, 0x0d, 0x2f, 0xc3, 0x7c, 0xba, 0x7b, 0x85, 0xe8, + 0xa1, 0x5d, 0x5b, 0x4e, 0x75, 0xad, 0xde, 0x86, 0xb3, 0x39, 0x72, 0x05, 0xe2, 0xe7, 0x61, 0x86, + 0xd9, 0x8b, 0x22, 0xdc, 0x12, 0x25, 0x6e, 0x59, 0xfa, 0xbf, 0x69, 0x70, 0x5e, 0x12, 0xda, 0x24, + 0x24, 0xb0, 0x77, 0xfa, 0x04, 0xa7, 0x73, 0xa8, 0x93, 0x8f, 0xa5, 0xf1, 0x13, 0x87, 0x4c, 0x24, + 0x2f, 0x8e, 0x19, 0xc9, 0xf5, 0xaf, 0xc3, 0x85, 0xa1, 0x1f, 0x74, 0x1a, 0xbd, 0xfb, 0x7b, 0x1a, + 0xe8, 0x03, 0xdd, 0x30, 0xa8, 0xb5, 0x93, 0xf5, 0xc7, 0xf8, 0xfa, 0xd2, 0xdf, 0x87, 0x4b, 0x23, + 0xe1, 0x4c, 0x66, 0x1f, 0xdf, 0x80, 0xf5, 0xa6, 0x65, 0xdd, 0x33, 0x77, 0x1c, 0x9c, 0x92, 0x1f, + 0x7f, 0x65, 0x9e, 0xb7, 0xd2, 0xc6, 0xf2, 0x56, 0xfa, 0x4b, 0x51, 0xd6, 0x30, 0xb4, 0x91, 0xb5, + 0x34, 0x74, 0x1a, 0x38, 0x22, 0x70, 0x9f, 0x68, 0xb0, 0x22, 0x65, 0x1c, 0x61, 0x2a, 0x53, 0x91, + 0x7a, 0x98, 0x25, 0x1a, 0x89, 0x55, 0x0e, 0x46, 0xa4, 0x42, 0x7e, 0x44, 0x9a, 0xde, 0xf5, 0x82, + 0x4e, 0x94, 0xc4, 0x0e, 0xe6, 0xa2, 0xaf, 0x7b, 0x9e, 0x23, 0xa2, 0x00, 0x23, 0x44, 0x17, 0x61, + 0xbe, 0x1b, 0x98, 0x1d, 0x6c, 0xf8, 0x38, 0xb0, 0x3d, 0x8b, 0x05, 0xc9, 0x4a, 0xbb, 0xcc, 0x9e, + 0xdd, 0x65, 0x8f, 0xf4, 0xb7, 0xe8, 0x64, 0x45, 0xc6, 0x9c, 0x64, 0x47, 0xa3, 0x40, 0xaf, 0xa4, + 0xc2, 0x12, 0x7d, 0x25, 0x02, 0xcf, 0x3f, 0x68, 0xb0, 0x72, 0xdf, 0xef, 0x06, 0xa6, 0x95, 0x4d, + 0x2c, 0x26, 0x1a, 0xb8, 0x13, 0x25, 0x18, 0x83, 0xfa, 0x2d, 0xe6, 0xcd, 0x4d, 0xbe, 0xad, 0xc1, + 0x6a, 0x16, 0xfa, 0x23, 0x0b, 0xe0, 0xbf, 0x01, 0xab, 0x6d, 0xcf, 0x71, 0x76, 0xcc, 0xce, 0xfe, + 0x69, 0xea, 0x51, 0xcd, 0xd4, 0xf4, 0xef, 0x68, 0xb0, 0x36, 0xd0, 0xfc, 0x23, 0xd3, 0xc5, 0x4f, + 0x0b, 0x30, 0xcf, 0xf2, 0x02, 0x1c, 0x7a, 0x7d, 0x6a, 0xd7, 0x4f, 0xc3, 0x14, 0x4d, 0x25, 0x94, + 0x1a, 0x67, 0x94, 0xe8, 0x0a, 0x14, 0x3b, 0x7e, 0x7f, 0x68, 0xa3, 0xe9, 0x29, 0x0f, 0x25, 0xa4, + 0xf4, 0x5d, 0xbf, 0x3f, 0xd4, 0xdd, 0x4b, 0xf4, 0x5d, 0xbf, 0x8f, 0x9e, 0x83, 0x52, 0x0f, 0xf7, + 0xbc, 0xe0, 0x50, 0x69, 0xa6, 0x2d, 0x68, 0x51, 0x13, 0x2a, 0xf1, 0x34, 0x2f, 0xb4, 0x3f, 0xc4, + 0x43, 0x27, 0x8a, 0x69, 0xe6, 0xf9, 0x88, 0x65, 0xdb, 0xfe, 0x10, 0xa3, 0x57, 0x61, 0x3e, 0x24, + 0x5e, 0x60, 0x76, 0x85, 0x84, 0x92, 0x82, 0x84, 0xb2, 0xe0, 0xa0, 0x02, 0xf4, 0x4f, 0x35, 0x58, + 0x6e, 0x63, 0xca, 0x7b, 0x9a, 0x76, 0x76, 0x03, 0x2a, 0x2c, 0xd9, 0x0b, 0x44, 0x97, 0x89, 0xa4, + 0xb1, 0x96, 0x76, 0xc3, 0xe9, 0x2e, 0x6d, 0xcf, 0x07, 0xe9, 0x0e, 0x56, 0xcb, 0xd1, 0x59, 0xc6, + 0x9d, 0xc1, 0xfe, 0xc8, 0x8c, 0xf4, 0xbf, 0x35, 0x58, 0x6d, 0x5a, 0x56, 0x5e, 0xc4, 0x98, 0x34, + 0x65, 0x61, 0xb6, 0x5e, 0x50, 0xb6, 0xf5, 0xeb, 0x00, 0x2c, 0x40, 0xf1, 0xb9, 0xb8, 0x8a, 0x09, + 0xcf, 0x51, 0x7a, 0x3e, 0x51, 0x1f, 0xd4, 0xfc, 0xd4, 0x30, 0x07, 0x31, 0xf0, 0xb5, 0x8f, 0x4c, + 0xf7, 0xdf, 0xd7, 0xe0, 0xac, 0x14, 0xc5, 0x4e, 0x4f, 0xfd, 0xa9, 0x68, 0x5f, 0x48, 0x47, 0x7b, + 0xd5, 0xa0, 0xf2, 0xfb, 0x1a, 0xd4, 0xf3, 0xa0, 0x3d, 0x32, 0x5d, 0x7d, 0xac, 0xc1, 0xda, 0x7d, + 0xdf, 0x4a, 0x66, 0xa9, 0xb7, 0xdc, 0x83, 0x53, 0xd1, 0xd4, 0x15, 0x28, 0x62, 0xf7, 0x40, 0x09, + 0x0a, 0x25, 0x54, 0x55, 0xe0, 0x77, 0x35, 0xa8, 0x0d, 0xe2, 0x7d, 0x64, 0xea, 0xfb, 0x71, 0x15, + 0x2a, 0xd2, 0x14, 0xf1, 0x61, 0x8f, 0xee, 0xb7, 0x61, 0x25, 0xc4, 0xc1, 0x01, 0x6b, 0xcd, 0xe8, + 0xfb, 0x3e, 0x0e, 0x8c, 0x1d, 0xaf, 0xef, 0x5a, 0x4a, 0x03, 0x1d, 0x71, 0xd6, 0x96, 0x75, 0x9f, + 0x32, 0xbe, 0x4e, 0xf9, 0xd0, 0x1b, 0xb0, 0x18, 0xf7, 0x83, 0xd9, 0x61, 0x2b, 0xd9, 0x4a, 0xab, + 0x29, 0x0b, 0x11, 0x57, 0x93, 0x33, 0xd1, 0x50, 0x64, 0xbb, 0x36, 0x31, 0x68, 0x1b, 0x76, 0x07, + 0xab, 0xad, 0x7a, 0x52, 0x8e, 0x6d, 0xce, 0x40, 0xc3, 0x61, 0x48, 0xcc, 0x20, 0x91, 0xa0, 0xb2, + 0xf6, 0x32, 0xcf, 0x58, 0x22, 0x11, 0x3c, 0x1c, 0xfa, 0xb1, 0x04, 0x95, 0xd5, 0x51, 0x1a, 0x0e, + 0xfd, 0x48, 0xc0, 0x57, 0xe1, 0x4c, 0xd8, 0x31, 0x1d, 0x6c, 0x78, 0xfd, 0x04, 0xc7, 0xac, 0x8a, + 0x3a, 0x18, 0xdb, 0xdb, 0xfd, 0x18, 0xca, 0x2f, 0xc3, 0x22, 0x97, 0x64, 0xbb, 0xb1, 0xa0, 0x39, + 0x05, 0x41, 0x55, 0xc6, 0xd5, 0x72, 0x23, 0x39, 0xb7, 0x60, 0x21, 0xc0, 0xb2, 0x5e, 0x40, 0x45, + 0x8c, 0x60, 0x4a, 0x89, 0xb1, 0x70, 0x48, 0x02, 0xef, 0x30, 0x16, 0x53, 0x56, 0x11, 0x23, 0x98, + 0x52, 0x62, 0xfa, 0x3c, 0x47, 0x8e, 0xc5, 0xcc, 0xab, 0x88, 0x11, 0x4c, 0x91, 0x98, 0x2d, 0xa8, + 0x76, 0xfa, 0x21, 0xf1, 0x7a, 0xb1, 0x94, 0x8a, 0x82, 0x94, 0x0a, 0xe7, 0x49, 0x09, 0xa1, 0x09, + 0x6a, 0x3f, 0xe9, 0xee, 0xaa, 0x8a, 0x10, 0xce, 0x93, 0x51, 0xaf, 0x17, 0x24, 0x1f, 0xb4, 0xa0, + 0xaa, 0x5e, 0x2f, 0x88, 0x3f, 0xe8, 0x1e, 0xac, 0x59, 0xcc, 0xcd, 0x1b, 0xa1, 0x6b, 0xfa, 0xe1, + 0x9e, 0x97, 0xf4, 0xd6, 0xa2, 0x82, 0xb8, 0x15, 0xce, 0xbc, 0x2d, 0x78, 0x53, 0xe6, 0xbc, 0x87, + 0x4d, 0x87, 0xec, 0x19, 0x9d, 0x3d, 0xdc, 0xd9, 0xaf, 0x9d, 0x51, 0x31, 0x67, 0xce, 0xb1, 0x45, + 0x19, 0xd0, 0x97, 0x61, 0xa6, 0xe7, 0xb9, 0x36, 0xf1, 0x82, 0x1a, 0x52, 0xe0, 0x8d, 0x88, 0xd1, + 0x4d, 0xa8, 0xfa, 0x66, 0x18, 0xfa, 0x7b, 0x81, 0x19, 0x62, 0x07, 0x87, 0x61, 0x6d, 0x49, 0x45, + 0x29, 0x32, 0x0f, 0x55, 0xca, 0x01, 0x0e, 0x88, 0xdd, 0x31, 0x1d, 0x83, 0x5a, 0xb5, 0xed, 0x76, + 0x0d, 0xdf, 0x73, 0xec, 0xce, 0x61, 0x6d, 0x59, 0x45, 0x29, 0x11, 0xf3, 0x36, 0xe7, 0xbd, 0xcb, + 0x58, 0xd1, 0x16, 0x2c, 0x98, 0x5d, 0xec, 0x12, 0x83, 0x25, 0xc2, 0x8e, 0x83, 0xad, 0xda, 0xca, + 0xb1, 0x33, 0xe2, 0x2a, 0x63, 0x69, 0x45, 0x1c, 0xa8, 0x0d, 0xab, 0xc2, 0x00, 0x7b, 0x98, 0x98, + 0x96, 0x49, 0x4c, 0x83, 0x2f, 0xda, 0xd4, 0x56, 0x15, 0x90, 0x2d, 0x73, 0xde, 0x3b, 0x82, 0x75, + 0x9b, 0x71, 0xa2, 0x17, 0x60, 0xd6, 0xee, 0xd1, 0x4c, 0xdc, 0xb6, 0x6a, 0x6b, 0x2a, 0xda, 0x66, + 0xd4, 0x2d, 0x8b, 0x3a, 0x3e, 0x61, 0xc8, 0x42, 0x3b, 0x35, 0x15, 0xc7, 0xc7, 0x59, 0x84, 0x52, + 0xde, 0x87, 0x0d, 0xdb, 0xed, 0x04, 0xb8, 0x87, 0x5d, 0x62, 0x3a, 0x46, 0x34, 0x2e, 0xfa, 0xbe, + 0xef, 0x05, 0x04, 0x5b, 0xb5, 0xb3, 0xc7, 0x6a, 0xa8, 0x9e, 0xe2, 0x7f, 0x9d, 0x0f, 0x91, 0x88, + 0x1b, 0xbd, 0x02, 0xb0, 0x77, 0xe8, 0x53, 0xa3, 0x0c, 0xbd, 0xa0, 0x56, 0x57, 0x40, 0x97, 0xa2, + 0xd7, 0x7f, 0x58, 0x81, 0x72, 0x2a, 0xfb, 0x39, 0xe9, 0x62, 0x94, 0x1c, 0x68, 0x0b, 0x27, 0x5b, + 0xf9, 0x2b, 0x2a, 0xaf, 0xfc, 0xdd, 0x90, 0xf7, 0xe0, 0x54, 0x42, 0x62, 0x7a, 0x87, 0xee, 0x25, + 0x98, 0x3b, 0xf0, 0x9c, 0x3e, 0xdf, 0xd4, 0x50, 0x09, 0x85, 0xb3, 0x9c, 0xbc, 0x65, 0xd1, 0xc9, + 0xa4, 0x85, 0x95, 0x03, 0xa0, 0xa0, 0x95, 0xf7, 0x53, 0x67, 0xc6, 0xda, 0x4f, 0xbd, 0x0e, 0xe0, + 0x07, 0xf6, 0x81, 0x49, 0xb0, 0x61, 0xfb, 0x4a, 0xd1, 0x6e, 0x4e, 0xd0, 0xb7, 0x7c, 0x96, 0xf7, + 0xd9, 0xbe, 0x52, 0x68, 0xa3, 0x84, 0x0c, 0x67, 0x94, 0xc0, 0x0c, 0x8d, 0x64, 0xe9, 0xa4, 0x65, + 0x36, 0x4a, 0x5a, 0xe2, 0x6c, 0xa9, 0xac, 0x9c, 0x2d, 0x3d, 0x07, 0xa5, 0x90, 0x98, 0xa4, 0x1f, + 0x2a, 0x45, 0x29, 0x41, 0x8b, 0x5a, 0x70, 0x86, 0x04, 0xa6, 0x1b, 0xda, 0x34, 0xb1, 0x31, 0x84, + 0x00, 0x95, 0x00, 0xb5, 0x98, 0xb0, 0x6d, 0x73, 0x51, 0x2f, 0xc0, 0x6c, 0x37, 0xf0, 0xfa, 0x6c, + 0x43, 0xad, 0xaa, 0xf0, 0xb1, 0x33, 0x8c, 0x9a, 0xf7, 0x89, 0xf7, 0xc0, 0xc5, 0x81, 0xe1, 0x9b, + 0x64, 0x4f, 0x29, 0x24, 0xcd, 0x31, 0xfa, 0xbb, 0x26, 0xd9, 0xa3, 0xb9, 0x47, 0xd7, 0xf1, 0x76, + 0xa8, 0xdb, 0x8d, 0x55, 0xbd, 0xa8, 0xd0, 0x7a, 0x95, 0x73, 0x6d, 0x47, 0x0a, 0xbf, 0x05, 0x0b, + 0x19, 0x2f, 0xa9, 0x14, 0x82, 0xaa, 0xb2, 0x7b, 0xa4, 0x03, 0xde, 0xef, 0xef, 0x18, 0xfb, 0xf8, + 0x50, 0x29, 0x0a, 0x95, 0xfc, 0xfe, 0xce, 0x9b, 0x98, 0x2d, 0x8f, 0x88, 0xe8, 0x27, 0xba, 0x40, + 0x25, 0x06, 0x89, 0x80, 0x19, 0xab, 0x7f, 0xce, 0x0e, 0x85, 0x37, 0x14, 0x31, 0x67, 0x94, 0x0f, + 0x9c, 0xb5, 0x43, 0xee, 0xfa, 0xd0, 0x75, 0x28, 0x9b, 0x7d, 0xe2, 0x45, 0xac, 0xc7, 0x07, 0x18, + 0xa0, 0xe4, 0x09, 0x73, 0xba, 0x76, 0x60, 0x75, 0xac, 0xda, 0x81, 0xeb, 0x50, 0xe6, 0x9f, 0xcb, + 0x99, 0xd7, 0x8e, 0x67, 0xe6, 0xe4, 0x8c, 0xf9, 0x79, 0x98, 0xd9, 0xf3, 0x42, 0xe6, 0x02, 0x54, + 0x62, 0x48, 0x89, 0x12, 0xb7, 0xac, 0x84, 0xcd, 0x17, 0x81, 0x42, 0x85, 0xcd, 0x4f, 0x6f, 0x1f, + 0xb1, 0x71, 0x59, 0x1f, 0xba, 0x7d, 0xc4, 0xd6, 0x7a, 0xca, 0xa9, 0x6d, 0x3d, 0xf4, 0x1a, 0x54, + 0xe5, 0x0d, 0xb9, 0xda, 0x3a, 0xe3, 0x1e, 0xb1, 0x19, 0x57, 0x91, 0x36, 0xe3, 0xd0, 0x79, 0x28, + 0xef, 0xe3, 0x43, 0xc3, 0x37, 0x6d, 0x66, 0xdf, 0x1b, 0x7c, 0x85, 0x7a, 0x1f, 0x1f, 0xde, 0x35, + 0x6d, 0x6a, 0xbc, 0xd7, 0x60, 0x9a, 0x8d, 0x88, 0xda, 0x39, 0x95, 0xe9, 0x1d, 0x23, 0xd5, 0xff, + 0xb9, 0x14, 0x87, 0xaa, 0xb6, 0x58, 0x4b, 0x79, 0x98, 0x93, 0x3b, 0xb1, 0x4c, 0x59, 0x1c, 0x73, + 0x99, 0x72, 0x6a, 0xfc, 0x65, 0xca, 0xe9, 0x49, 0x96, 0x29, 0x4b, 0x13, 0x2f, 0x53, 0xce, 0x8c, + 0xb9, 0x4c, 0x49, 0xa3, 0x71, 0xcf, 0xeb, 0xbb, 0xc4, 0xf0, 0x3d, 0xdb, 0x25, 0x4a, 0x31, 0x0a, + 0x18, 0xc3, 0x5d, 0x4a, 0x4f, 0x3f, 0x81, 0xb3, 0x8b, 0xba, 0x2d, 0xa5, 0x70, 0x35, 0xcf, 0x58, + 0xde, 0xe6, 0x1c, 0x14, 0xc1, 0xae, 0xed, 0x60, 0x23, 0x3c, 0x0c, 0x09, 0xee, 0x29, 0xcd, 0xc1, + 0x80, 0x32, 0x6c, 0x33, 0xfa, 0x68, 0x79, 0xa4, 0xac, 0xba, 0x3c, 0xf2, 0x22, 0xcc, 0x06, 0xd8, + 0x77, 0xec, 0x8e, 0x39, 0x3c, 0x76, 0x49, 0x51, 0x32, 0xa2, 0xa6, 0xd3, 0xa2, 0x00, 0x9b, 0xd6, + 0xa1, 0x11, 0xf3, 0x57, 0x14, 0xf8, 0x2b, 0x8c, 0xa7, 0x1d, 0x09, 0xb9, 0x01, 0x65, 0xd3, 0xb7, + 0x0d, 0xb1, 0x89, 0xa2, 0x34, 0xb1, 0x02, 0xd3, 0xb7, 0xdf, 0xe1, 0xf4, 0xfa, 0xff, 0x16, 0x60, + 0x29, 0x67, 0xeb, 0xfb, 0x61, 0x8f, 0xa7, 0x77, 0xa0, 0x26, 0x6d, 0xd2, 0x3b, 0x76, 0x48, 0xb0, + 0xcb, 0x1b, 0x57, 0xc9, 0x04, 0x57, 0xd3, 0xdc, 0xb7, 0x05, 0x73, 0xcb, 0xa2, 0x09, 0x82, 0x24, + 0x97, 0xa6, 0xc9, 0x4a, 0xa3, 0x70, 0x31, 0xcd, 0x76, 0xd7, 0x0b, 0x08, 0x9d, 0x88, 0x64, 0x44, + 0xd1, 0x7c, 0x5e, 0x35, 0x69, 0x5c, 0x96, 0xe5, 0x51, 0xd6, 0x96, 0xa5, 0xff, 0x63, 0x21, 0xf6, + 0x62, 0xb7, 0x6d, 0x77, 0xff, 0x61, 0xef, 0x99, 0xdf, 0x86, 0x25, 0xfc, 0x2d, 0x82, 0x03, 0xd7, + 0x74, 0x8c, 0x54, 0xbb, 0x2a, 0x0a, 0x3f, 0x13, 0x31, 0x6e, 0xa5, 0xb7, 0xfe, 0x52, 0x89, 0xd0, + 0xd4, 0x78, 0x89, 0x50, 0x1c, 0x03, 0xa6, 0xd5, 0x63, 0xc0, 0x4f, 0xab, 0x30, 0x23, 0x9a, 0xff, + 0x05, 0xab, 0x36, 0x48, 0x15, 0x6f, 0x4d, 0x9d, 0xb4, 0x78, 0x6b, 0x7a, 0xbc, 0xbd, 0x55, 0x69, + 0xd6, 0x51, 0x1a, 0x6b, 0xd6, 0x71, 0xa2, 0x1a, 0xc6, 0x57, 0x61, 0x7e, 0x37, 0xf0, 0x5c, 0xd2, + 0x65, 0x93, 0x15, 0x4b, 0x29, 0x10, 0x94, 0x63, 0x0e, 0x2e, 0x20, 0xea, 0x51, 0x56, 0x05, 0x39, + 0xa7, 0x12, 0x89, 0x04, 0x07, 0x2b, 0x8d, 0x7d, 0x19, 0xe6, 0xb0, 0x6b, 0xb1, 0x30, 0x14, 0x2a, + 0x45, 0x81, 0x84, 0x3c, 0x35, 0x1d, 0x29, 0x4f, 0x3a, 0x1d, 0x99, 0x3f, 0xd1, 0x74, 0xe4, 0x36, + 0x2c, 0xc7, 0xeb, 0x1d, 0x81, 0xe7, 0x11, 0xc3, 0xec, 0x74, 0x70, 0x18, 0x45, 0x88, 0x51, 0xf9, + 0x2d, 0x8a, 0xf8, 0xda, 0x9e, 0x47, 0x9a, 0x8c, 0x2b, 0x33, 0x34, 0xab, 0xe3, 0x0d, 0xcd, 0x1b, + 0x50, 0x16, 0x73, 0x94, 0x7e, 0xdf, 0xb6, 0x94, 0x66, 0x38, 0xc0, 0x19, 0xee, 0xf7, 0x6d, 0x8b, + 0x46, 0xb9, 0x78, 0x21, 0x92, 0x6b, 0x44, 0x65, 0x9d, 0xad, 0x12, 0xad, 0x43, 0x72, 0x75, 0xdc, + 0x80, 0xf9, 0x48, 0x08, 0x4b, 0xb6, 0xcf, 0x1c, 0x9b, 0x6c, 0x97, 0x05, 0xbd, 0x48, 0xd5, 0xd3, + 0x95, 0x8b, 0x68, 0xbc, 0xca, 0xc5, 0xcc, 0x24, 0x61, 0x69, 0x92, 0x49, 0xc2, 0xf2, 0x58, 0x93, + 0x84, 0x5b, 0xb0, 0x60, 0x5a, 0x16, 0x33, 0x0b, 0xd3, 0x31, 0x6c, 0x77, 0xd7, 0x13, 0xf3, 0x9b, + 0x63, 0x66, 0x75, 0x09, 0x53, 0xcb, 0xdd, 0xf5, 0xa2, 0x8c, 0x66, 0x55, 0x35, 0xa3, 0x79, 0x1a, + 0xa6, 0x2d, 0xbc, 0xd3, 0xef, 0x0e, 0x9d, 0xd2, 0xa4, 0xea, 0x57, 0x18, 0x61, 0x5c, 0x83, 0x59, + 0x53, 0xae, 0xda, 0xce, 0xab, 0x00, 0x3a, 0x3b, 0x79, 0xbd, 0x62, 0x7d, 0xf2, 0x7a, 0xc5, 0xf5, + 0xd3, 0xa8, 0x57, 0xdc, 0x38, 0xdd, 0x7a, 0xc5, 0x73, 0x13, 0xd5, 0x2b, 0x26, 0xc1, 0xf5, 0xbc, + 0x7a, 0x70, 0xfd, 0xcd, 0x52, 0x52, 0x45, 0x3e, 0x66, 0x99, 0xd4, 0x4a, 0x1c, 0xdc, 0x44, 0xc5, + 0x11, 0x0f, 0x5f, 0xe7, 0xa4, 0xf0, 0xc5, 0xf7, 0x10, 0x53, 0x01, 0x6a, 0x35, 0x76, 0xb9, 0x7c, + 0x23, 0x3b, 0x72, 0xaa, 0x72, 0xf1, 0xf7, 0x74, 0xa6, 0xf8, 0x1b, 0x5d, 0xcc, 0xc4, 0x19, 0x5e, + 0x82, 0x2f, 0x45, 0x92, 0x21, 0x69, 0xce, 0xcc, 0xc9, 0xd2, 0x9c, 0xf8, 0x78, 0xc7, 0x6c, 0xfe, + 0xf1, 0x8e, 0xb9, 0x81, 0xe3, 0x1d, 0xd8, 0x0c, 0x3a, 0x7b, 0xc6, 0x03, 0x2f, 0xb0, 0xd4, 0x26, + 0x23, 0x9c, 0xe1, 0x5d, 0x2f, 0xb0, 0xd0, 0x0b, 0x30, 0x1b, 0x7a, 0x01, 0x61, 0x2b, 0x32, 0x2a, + 0x91, 0x68, 0x86, 0x52, 0xbf, 0x89, 0x0f, 0xd1, 0x73, 0x30, 0x13, 0x60, 0xaa, 0xdc, 0x68, 0xdb, + 0x67, 0xd4, 0x28, 0x8e, 0x48, 0xe9, 0xb7, 0x71, 0x43, 0xa9, 0xf0, 0x8e, 0x63, 0x3f, 0x06, 0x22, + 0xb1, 0x4a, 0xfc, 0x90, 0x22, 0xf1, 0x75, 0x28, 0x3f, 0xb0, 0xc9, 0x9e, 0x61, 0x61, 0x62, 0xda, + 0x8e, 0x88, 0x20, 0x23, 0xd7, 0x68, 0x28, 0xf9, 0x4d, 0x46, 0xcd, 0x5a, 0x67, 0xfe, 0xd4, 0x32, + 0x2c, 0x93, 0x60, 0xa5, 0xe5, 0x31, 0xe1, 0xb0, 0xad, 0x9b, 0x26, 0xc1, 0xe8, 0x09, 0x58, 0xb0, + 0xec, 0xd0, 0x77, 0xcc, 0x43, 0xa3, 0xe3, 0x39, 0xfd, 0x9e, 0x1b, 0xd6, 0xce, 0xb0, 0xcf, 0xab, + 0x8a, 0xc7, 0x5b, 0xfc, 0x69, 0x7c, 0x5c, 0x06, 0x25, 0xc7, 0x65, 0xf4, 0x0f, 0xa0, 0x36, 0x38, + 0x0a, 0x54, 0x0f, 0x53, 0x3c, 0x07, 0x91, 0x1a, 0x52, 0xf5, 0xd8, 0xb9, 0x75, 0xdc, 0xd1, 0x78, + 0xda, 0xc6, 0x44, 0xff, 0x59, 0x11, 0xea, 0x51, 0x9b, 0x4d, 0xdf, 0xcf, 0x0e, 0xbe, 0x95, 0x54, + 0xdd, 0x7f, 0x6a, 0x74, 0x25, 0xc3, 0xa7, 0x20, 0x0d, 0x9f, 0xd8, 0x5c, 0x8b, 0xf9, 0xe6, 0x3a, + 0x35, 0xca, 0x5c, 0xa7, 0x27, 0x30, 0xd7, 0xd2, 0x09, 0xcd, 0x75, 0xe6, 0x04, 0xe6, 0x3a, 0x9b, + 0x36, 0xd7, 0x8c, 0xb5, 0xcd, 0x4d, 0x64, 0x6d, 0x70, 0x0a, 0xd6, 0x56, 0xce, 0xb3, 0x36, 0x9d, + 0xc0, 0x7a, 0x6e, 0x2f, 0x7f, 0xb6, 0xc6, 0xf5, 0x83, 0x62, 0xd2, 0xec, 0xc3, 0xab, 0xc1, 0x49, + 0x8c, 0xb3, 0x98, 0x6f, 0x9c, 0x53, 0xf9, 0xc6, 0x39, 0x3d, 0xca, 0x38, 0x4b, 0x13, 0x18, 0xe7, + 0xcc, 0x09, 0x8d, 0x73, 0xf6, 0x04, 0xc6, 0x39, 0x97, 0x36, 0xce, 0x1c, 0xf3, 0x80, 0x5c, 0xf3, + 0xf8, 0x48, 0x83, 0x8d, 0xfc, 0x8e, 0x52, 0x35, 0x90, 0xc9, 0x8f, 0x84, 0xe8, 0xbf, 0x06, 0x4b, + 0xdb, 0xc4, 0xf3, 0x3f, 0x93, 0x32, 0x69, 0xfd, 0x36, 0x2c, 0xcb, 0xc2, 0x27, 0xaa, 0x67, 0x7e, + 0x9f, 0x4a, 0x33, 0x03, 0xf2, 0xd9, 0x60, 0xbd, 0x03, 0x2b, 0x19, 0xe9, 0x13, 0x81, 0xfd, 0x3a, + 0xac, 0xb6, 0x71, 0xc7, 0x3b, 0xc0, 0xc1, 0x67, 0x03, 0xf7, 0x6d, 0x58, 0x1b, 0x90, 0x3f, 0x11, + 0xe0, 0x1f, 0x6b, 0xb0, 0xbc, 0x85, 0xcd, 0xf0, 0x17, 0xa9, 0x62, 0xfe, 0x0e, 0xac, 0x64, 0x20, + 0x4f, 0xa4, 0x82, 0x73, 0xb0, 0xfe, 0x06, 0x8e, 0x0c, 0x80, 0x4e, 0x4b, 0xed, 0x90, 0xd8, 0x9d, + 0x48, 0x11, 0xfa, 0xcf, 0xa7, 0x60, 0x23, 0xff, 0xbd, 0x68, 0x35, 0x84, 0x15, 0xc7, 0x0c, 0x89, + 0x41, 0x1e, 0x78, 0xc6, 0x03, 0x8c, 0xf7, 0x0d, 0x11, 0x35, 0xc4, 0xc1, 0x87, 0xd7, 0xd2, 0x63, + 0x72, 0x94, 0xa0, 0x2b, 0xb7, 0xcd, 0x90, 0xdc, 0x7b, 0xe0, 0xbd, 0x8b, 0xf1, 0x3e, 0x3f, 0xc5, + 0x66, 0xdd, 0x72, 0x49, 0x70, 0xd8, 0x46, 0xce, 0xc0, 0x0b, 0xb4, 0x0b, 0x8b, 0xc4, 0xf3, 0x0d, + 0x82, 0xdd, 0xe8, 0x98, 0x61, 0x28, 0x7c, 0xc0, 0x2b, 0xca, 0xed, 0xdd, 0xf3, 0xfc, 0x7b, 0x38, + 0x3a, 0xe3, 0x18, 0xf2, 0xb6, 0xaa, 0x44, 0x7a, 0x88, 0x2e, 0xc5, 0x47, 0xc2, 0x53, 0xd5, 0xac, + 0x95, 0xf6, 0x7c, 0x3c, 0xcb, 0xa1, 0x0e, 0xe9, 0x12, 0x54, 0xa2, 0x4c, 0x9e, 0x13, 0xf1, 0x4e, + 0x9b, 0x17, 0x0f, 0x39, 0xd1, 0x7b, 0x30, 0x1f, 0x21, 0x36, 0x7d, 0x3f, 0x14, 0x27, 0xbf, 0x5e, + 0x1c, 0x13, 0x6d, 0xd3, 0xf7, 0x05, 0x52, 0x20, 0xf1, 0x83, 0xfa, 0x2d, 0x58, 0x1b, 0xa2, 0x3c, + 0xb4, 0x08, 0x45, 0x1a, 0x17, 0xf8, 0x31, 0x4d, 0xfa, 0x2f, 0xf5, 0xdf, 0x07, 0xd4, 0xe2, 0xa2, + 0x63, 0xdc, 0xec, 0xc7, 0xcb, 0x85, 0x17, 0xb5, 0x7a, 0x13, 0x96, 0x72, 0x74, 0x32, 0x96, 0x88, + 0x1b, 0xb0, 0x90, 0x01, 0x3a, 0x0e, 0xbb, 0xfe, 0x3f, 0x45, 0x98, 0x79, 0x93, 0xef, 0x9f, 0xa1, + 0x57, 0xe4, 0xdd, 0x35, 0xa5, 0x90, 0x9d, 0xec, 0xbd, 0x3d, 0xfc, 0xa5, 0xcf, 0xd4, 0x1e, 0xf3, + 0xd4, 0x18, 0x7b, 0xcc, 0xf2, 0x12, 0xd6, 0xf4, 0x78, 0x4b, 0x58, 0x99, 0x25, 0x9c, 0xd2, 0x24, + 0x4b, 0x38, 0x33, 0x63, 0x2d, 0xe1, 0xa4, 0x52, 0xa2, 0x59, 0x29, 0x25, 0xba, 0x96, 0xa4, 0x07, + 0xca, 0x73, 0xf2, 0x7f, 0xd2, 0xa2, 0xb3, 0xc0, 0xa2, 0xf3, 0x23, 0x2f, 0x1c, 0xf5, 0xa2, 0x76, + 0xd2, 0x5e, 0x2c, 0x4c, 0xd0, 0x8b, 0x45, 0xf5, 0x5e, 0xd4, 0xef, 0x47, 0x27, 0x6f, 0xe3, 0x0f, + 0x10, 0xde, 0x71, 0x22, 0x2b, 0xd6, 0xff, 0xb6, 0x98, 0x2c, 0x56, 0x08, 0xc9, 0x71, 0x84, 0xfa, + 0x7f, 0x32, 0x3e, 0x96, 0x93, 0x0d, 0x94, 0x54, 0xba, 0x39, 0x61, 0xca, 0x1c, 0xe7, 0xe7, 0x33, + 0xf9, 0xf9, 0xf9, 0xac, 0x94, 0x9f, 0xe7, 0xe4, 0xb6, 0x73, 0xb9, 0xb9, 0x6d, 0x90, 0x4c, 0xaa, + 0x93, 0xde, 0x52, 0x4d, 0x6b, 0x9f, 0x87, 0xf9, 0xb8, 0x3f, 0x87, 0x4c, 0x7c, 0x22, 0xe3, 0x02, + 0xd1, 0x8f, 0x34, 0x95, 0x7d, 0x21, 0x3a, 0xf3, 0x97, 0xb5, 0x8f, 0xf3, 0x59, 0xfb, 0x90, 0xab, + 0x13, 0xf4, 0x17, 0xa3, 0x83, 0x77, 0x03, 0x50, 0x8f, 0xe3, 0xbc, 0x0b, 0x2b, 0x4d, 0x42, 0xcc, + 0xce, 0xde, 0x98, 0x4d, 0x0e, 0x9d, 0x47, 0xe9, 0x57, 0x61, 0x35, 0x2b, 0x51, 0x60, 0x49, 0x92, + 0x16, 0x2d, 0x9d, 0xb4, 0xdc, 0xa5, 0x5f, 0x7d, 0xda, 0x10, 0xb2, 0x12, 0x47, 0x43, 0xf8, 0x48, + 0x83, 0x32, 0x9d, 0x4f, 0x44, 0xf1, 0xea, 0x84, 0x45, 0x85, 0x99, 0x61, 0x5c, 0x18, 0xcf, 0x41, + 0xdc, 0x67, 0x67, 0x7e, 0x52, 0x30, 0x52, 0x13, 0xde, 0x0a, 0x83, 0x13, 0x09, 0xcf, 0x3b, 0x87, + 0x9a, 0xe2, 0x6b, 0x97, 0xdd, 0xe4, 0x87, 0x7e, 0x96, 0x1d, 0xae, 0x91, 0xc5, 0x72, 0x6d, 0xe8, + 0x5f, 0x8b, 0x4e, 0xba, 0x9c, 0x7a, 0xa3, 0x1b, 0xd1, 0x41, 0x95, 0xbc, 0x76, 0xaf, 0xfd, 0xd6, + 0x53, 0x50, 0x15, 0xd9, 0xd1, 0x1d, 0xd3, 0x35, 0xbb, 0x38, 0x40, 0xef, 0xc1, 0x42, 0x06, 0x25, + 0xd2, 0xd3, 0x2d, 0xe5, 0x6b, 0xa6, 0x7e, 0x69, 0x24, 0x8d, 0xe8, 0xf4, 0x0e, 0xa0, 0x41, 0x30, + 0xe8, 0xb1, 0x34, 0xeb, 0x50, 0x35, 0xd4, 0x1f, 0x3f, 0x8e, 0x4c, 0x34, 0xf2, 0x1d, 0x0d, 0x2a, + 0x52, 0xd8, 0x40, 0x0d, 0x69, 0x06, 0x9b, 0x13, 0x12, 0xeb, 0x17, 0x47, 0x50, 0x88, 0x2e, 0x7a, + 0xfe, 0xa8, 0x79, 0x06, 0x2d, 0xf0, 0x77, 0x8d, 0x7d, 0x7c, 0xd8, 0xa0, 0x5d, 0xf1, 0xd1, 0x7f, + 0xfc, 0xec, 0x0f, 0x0a, 0xeb, 0xfa, 0xea, 0xd5, 0x83, 0x67, 0xae, 0x8a, 0xec, 0x35, 0xbc, 0x1a, + 0xf5, 0x53, 0xf8, 0xb2, 0xf6, 0x24, 0xfa, 0xb9, 0x06, 0x8b, 0x59, 0xf7, 0x85, 0x2e, 0xc9, 0x9f, + 0x92, 0x1b, 0x8a, 0xea, 0x5f, 0x1c, 0x4d, 0x24, 0x60, 0x7d, 0x5b, 0x3b, 0x6a, 0xda, 0xa8, 0xfb, + 0x06, 0x26, 0x31, 0xa8, 0x70, 0xb3, 0x21, 0x2a, 0x84, 0x1b, 0xbb, 0xb6, 0x43, 0x70, 0xd0, 0x78, + 0x60, 0x93, 0xbd, 0x06, 0xd9, 0xc3, 0x21, 0x6e, 0xec, 0xda, 0xd8, 0xb1, 0xc2, 0xcb, 0xa9, 0xd1, + 0xb1, 0xd9, 0xa0, 0x91, 0x68, 0xb3, 0xc1, 0x62, 0xc0, 0x97, 0x36, 0x1b, 0x16, 0xde, 0x35, 0xfb, + 0x0e, 0x69, 0x04, 0x98, 0xf4, 0x03, 0xb7, 0x61, 0x3a, 0x4e, 0x22, 0x99, 0x7d, 0x6f, 0x0d, 0x0d, + 0xf9, 0x5e, 0xf4, 0x87, 0x1a, 0x54, 0x65, 0xf7, 0x87, 0x2e, 0x0e, 0xf6, 0x5a, 0xf6, 0x43, 0xf5, + 0x51, 0x24, 0xe2, 0x33, 0x5f, 0x39, 0x6a, 0xd6, 0xd0, 0xea, 0xeb, 0x26, 0xe9, 0xec, 0x35, 0x78, + 0x51, 0x7d, 0x06, 0xd4, 0xfa, 0x93, 0x23, 0x3a, 0xe1, 0x2f, 0x35, 0xa8, 0xca, 0xae, 0x50, 0xc6, + 0x95, 0xeb, 0x78, 0x65, 0x5c, 0xf9, 0x9e, 0x54, 0xff, 0x95, 0xa3, 0x66, 0x03, 0x9d, 0xe7, 0xb8, + 0x4c, 0x46, 0x92, 0xe0, 0x6a, 0x10, 0xaf, 0x41, 0x87, 0x22, 0xc3, 0x77, 0x51, 0xdf, 0xc8, 0xc5, + 0x77, 0x95, 0x73, 0x51, 0x94, 0x7f, 0xc5, 0xb4, 0x37, 0x1c, 0x65, 0xae, 0x6f, 0xce, 0x6a, 0x2f, + 0x17, 0xe5, 0xed, 0xa3, 0xa6, 0x8e, 0x1a, 0x91, 0xf6, 0x32, 0x28, 0x77, 0x03, 0xaf, 0xa7, 0x80, + 0x93, 0xf3, 0x51, 0x9c, 0xbf, 0xa3, 0xc1, 0x42, 0xe6, 0xca, 0x20, 0xa4, 0xe7, 0x19, 0xab, 0x7c, + 0x4f, 0x56, 0xfd, 0xd2, 0x48, 0x1a, 0x01, 0x75, 0xf3, 0xa8, 0x59, 0x41, 0x65, 0x6a, 0xce, 0xbc, + 0xa2, 0x80, 0xf7, 0xee, 0x2a, 0x5a, 0x96, 0x50, 0x89, 0x77, 0xe8, 0xb7, 0xe3, 0xb1, 0x1e, 0x95, + 0x76, 0xe4, 0x8c, 0x75, 0xf9, 0x04, 0x6c, 0xde, 0x58, 0xcf, 0x9c, 0x33, 0xd5, 0x9f, 0x39, 0x6a, + 0x2e, 0xa2, 0xaa, 0x18, 0xeb, 0xa2, 0x51, 0x6e, 0xfa, 0xfa, 0x92, 0x84, 0x83, 0x27, 0xfe, 0x54, + 0x29, 0xdf, 0xd7, 0x00, 0x71, 0x86, 0x9b, 0x78, 0xa7, 0xdf, 0x3d, 0x55, 0x38, 0x37, 0x8e, 0x9a, + 0xab, 0x48, 0xe4, 0xf2, 0x0d, 0xb6, 0x87, 0x2a, 0x81, 0x3a, 0xaf, 0x9f, 0xa5, 0xa0, 0xd8, 0x0b, + 0x23, 0x07, 0xda, 0x3d, 0xa8, 0x48, 0x97, 0x37, 0xc8, 0xa0, 0xf2, 0xee, 0x93, 0x91, 0x41, 0xe5, + 0xdf, 0x5e, 0xf2, 0x0d, 0x38, 0x33, 0x70, 0x25, 0x04, 0xfa, 0xe2, 0x50, 0xbe, 0xd4, 0xfd, 0x24, + 0xf5, 0xc7, 0x8e, 0xa1, 0x12, 0x2d, 0xfc, 0x48, 0x83, 0xb5, 0x21, 0xb7, 0x6c, 0xa0, 0x27, 0x87, + 0x8a, 0x18, 0xb8, 0x25, 0xa3, 0xfe, 0x4b, 0x4a, 0xb4, 0x89, 0xa3, 0x59, 0x47, 0xe2, 0x0a, 0x94, + 0x48, 0xcb, 0x74, 0x64, 0x0b, 0xba, 0x5c, 0x2b, 0xe8, 0x31, 0x6a, 0xaa, 0xea, 0x7f, 0xd5, 0x60, + 0x7d, 0xc4, 0x45, 0x19, 0xe8, 0xca, 0xc8, 0x2f, 0x1f, 0x84, 0x7e, 0x55, 0x99, 0x5e, 0xc0, 0x7f, + 0xeb, 0xa8, 0xf9, 0x04, 0x7a, 0x4c, 0xc0, 0xa7, 0x83, 0x3a, 0x85, 0xbd, 0x61, 0xbb, 0x34, 0x08, + 0xe4, 0xd9, 0x4e, 0xe6, 0x53, 0xd8, 0x12, 0x30, 0xf3, 0x9c, 0xef, 0xc2, 0x72, 0xde, 0xd5, 0x1c, + 0xe8, 0x89, 0x4c, 0xb8, 0x1f, 0x76, 0xaf, 0x46, 0x7d, 0x75, 0x20, 0xe9, 0xba, 0xd5, 0xf3, 0xc9, + 0x21, 0xfa, 0x75, 0x3a, 0x07, 0xcb, 0xbd, 0x91, 0x43, 0xee, 0xdb, 0xd1, 0xd7, 0x76, 0x0c, 0x15, + 0xff, 0xbd, 0x38, 0x12, 0x45, 0x0b, 0x7a, 0x79, 0x91, 0x28, 0xb3, 0x3e, 0x99, 0x17, 0x89, 0xb2, + 0xeb, 0x81, 0xfa, 0x8b, 0x47, 0xcd, 0x35, 0xb4, 0x22, 0x45, 0xa2, 0x48, 0x7b, 0xb9, 0xc6, 0xc1, + 0x69, 0xa8, 0x2e, 0xbf, 0xab, 0x41, 0x55, 0xbe, 0x89, 0x42, 0xc6, 0x94, 0x7b, 0xc1, 0x86, 0x8c, + 0x29, 0xff, 0x22, 0x0b, 0xfd, 0x59, 0x96, 0x9b, 0x88, 0x97, 0x52, 0xff, 0x9e, 0xd5, 0x65, 0xc7, + 0x29, 0xea, 0x5c, 0x28, 0x9c, 0xef, 0x69, 0xb0, 0x90, 0xb9, 0x0d, 0x42, 0x76, 0xe3, 0xf9, 0x37, + 0x55, 0xc8, 0x6e, 0x7c, 0xc8, 0x75, 0x12, 0x34, 0x5b, 0x42, 0x68, 0x31, 0x7a, 0x2b, 0x41, 0xaa, + 0xeb, 0x2b, 0x12, 0xa4, 0x40, 0x10, 0x51, 0x4c, 0xd4, 0x9f, 0x4b, 0x47, 0xff, 0x65, 0x5f, 0x95, + 0x77, 0xa3, 0x81, 0xec, 0xab, 0x72, 0xef, 0x0d, 0x10, 0xfe, 0x9c, 0xbf, 0x1b, 0xe9, 0xcf, 0x03, + 0x46, 0x42, 0x91, 0xfc, 0x99, 0xc6, 0xf2, 0x60, 0xc9, 0x30, 0xb3, 0x79, 0x70, 0x9e, 0x41, 0x5e, + 0x1a, 0x49, 0x23, 0xf0, 0xbc, 0x76, 0xd4, 0xdc, 0x40, 0x75, 0x91, 0x35, 0x58, 0x16, 0x1b, 0xa8, + 0x2c, 0x5d, 0x48, 0x63, 0xcb, 0xa6, 0x95, 0xa6, 0x65, 0x25, 0xe3, 0xf2, 0x63, 0x2d, 0x4a, 0xa5, + 0x25, 0x84, 0x8f, 0x0d, 0x35, 0x60, 0x09, 0xe4, 0xe3, 0xc7, 0x91, 0x09, 0x9c, 0x5f, 0x3d, 0x6a, + 0x5e, 0x44, 0x17, 0x24, 0x5b, 0xe7, 0x50, 0x59, 0xce, 0x30, 0xca, 0x8f, 0x88, 0x53, 0x93, 0x31, + 0xde, 0x3f, 0xd5, 0x60, 0x31, 0x7b, 0xde, 0x5b, 0x4e, 0x83, 0x87, 0x9c, 0x5e, 0x97, 0xd3, 0xe0, + 0x61, 0x47, 0xc6, 0xa9, 0xdb, 0x5e, 0x43, 0x2b, 0xfc, 0x75, 0x03, 0xbb, 0x07, 0x0d, 0x6f, 0x57, + 0xc2, 0xb7, 0x71, 0x6d, 0x2d, 0x33, 0x0e, 0x28, 0xa5, 0x81, 0xdd, 0x03, 0x8a, 0xee, 0x8f, 0x0b, + 0x49, 0x92, 0x1e, 0xfb, 0x8b, 0xdc, 0x74, 0x25, 0xeb, 0x31, 0xbe, 0x38, 0x9a, 0x48, 0xa0, 0xfb, + 0x54, 0x3b, 0x6a, 0xfe, 0x85, 0x86, 0xfe, 0x5c, 0xa3, 0x79, 0x4d, 0x84, 0x61, 0xb3, 0xd1, 0x31, + 0xdd, 0xe1, 0x19, 0x7a, 0xb2, 0xe9, 0xb0, 0xd9, 0xe0, 0x5b, 0xf8, 0x9b, 0x8d, 0xa4, 0x22, 0x66, + 0xb3, 0xc1, 0x97, 0x0d, 0x37, 0x1b, 0x49, 0xb9, 0xcb, 0x66, 0x23, 0x5d, 0xdb, 0x22, 0x12, 0xfa, + 0xcd, 0x46, 0xba, 0x1a, 0x23, 0x3f, 0xbd, 0x97, 0xfc, 0x57, 0x15, 0xcd, 0xa7, 0x35, 0x85, 0x7e, + 0x54, 0x80, 0x95, 0xe8, 0xc3, 0xd2, 0xa9, 0xcd, 0xa9, 0x2a, 0xe8, 0x5f, 0xb4, 0xa3, 0xe6, 0xc7, + 0x1a, 0xfa, 0x1b, 0xa6, 0x20, 0x29, 0xc3, 0xf9, 0x1c, 0xa9, 0x49, 0xc6, 0xc5, 0x94, 0xb5, 0x8c, + 0xd0, 0x60, 0xea, 0x85, 0xfe, 0xae, 0x00, 0x4b, 0x39, 0xbb, 0xf5, 0xe8, 0xf1, 0x3c, 0x5d, 0x0c, + 0x16, 0x6d, 0xd4, 0x9f, 0x38, 0x96, 0x4e, 0xa8, 0xed, 0x27, 0xda, 0x51, 0xf3, 0xaf, 0x35, 0xf4, + 0x03, 0xa6, 0x36, 0xd3, 0xf7, 0x3f, 0x87, 0x4a, 0x4b, 0xa3, 0x62, 0x2a, 0x5b, 0x42, 0x67, 0x64, + 0xb7, 0xe6, 0xfb, 0x21, 0xfa, 0x49, 0x21, 0x59, 0xe4, 0x63, 0x46, 0xf6, 0x99, 0xaa, 0xed, 0x3f, + 0xb5, 0xa3, 0xe6, 0xdf, 0x6b, 0xe8, 0x93, 0x94, 0xb5, 0x7d, 0x3e, 0x95, 0x37, 0x88, 0x8d, 0x07, + 0x75, 0xb4, 0x96, 0x93, 0xf0, 0x33, 0x45, 0xfe, 0x97, 0x06, 0xcb, 0x79, 0x85, 0x00, 0xe8, 0x89, + 0x11, 0xe3, 0x50, 0x8a, 0x0d, 0x97, 0x8f, 0x27, 0x14, 0x6a, 0xec, 0x1f, 0x35, 0xbf, 0x86, 0xde, + 0xa1, 0x3a, 0xe4, 0x41, 0xc1, 0x76, 0x23, 0x98, 0x63, 0x68, 0x50, 0xac, 0xee, 0x25, 0x6a, 0xe3, + 0xcb, 0x10, 0xe9, 0xd1, 0x15, 0x7f, 0x21, 0x6b, 0x86, 0xe6, 0x08, 0xf3, 0xe9, 0x52, 0x00, 0x24, + 0x55, 0x3a, 0xe6, 0x54, 0x20, 0xd4, 0x1b, 0xc3, 0x09, 0xc4, 0xa7, 0x3c, 0x77, 0xd4, 0x5c, 0x41, + 0x4b, 0x3c, 0xd0, 0x85, 0xc4, 0xcb, 0xe8, 0x7b, 0x55, 0x97, 0x4d, 0x96, 0x52, 0x88, 0x84, 0xae, + 0x22, 0x6d, 0xf4, 0xa3, 0x4c, 0x4b, 0x83, 0x15, 0x06, 0x72, 0xb6, 0x92, 0x5b, 0x25, 0xa0, 0x7f, + 0x99, 0x4d, 0xf7, 0x22, 0x30, 0x66, 0x40, 0x64, 0x34, 0x6b, 0x3a, 0xca, 0xa0, 0x31, 0x03, 0x42, + 0xe1, 0xfc, 0x11, 0x4d, 0xe8, 0xe4, 0x8d, 0xfc, 0x4c, 0x42, 0x97, 0x5b, 0x45, 0x90, 0x49, 0xe8, + 0xf2, 0x2b, 0x01, 0xf4, 0x97, 0x53, 0x0b, 0x30, 0x01, 0xa7, 0xc9, 0x18, 0x65, 0x26, 0xd3, 0x14, + 0x44, 0x91, 0x9e, 0xa4, 0xcd, 0xf5, 0xcc, 0xb4, 0x38, 0xa7, 0x54, 0x20, 0x33, 0x2d, 0xce, 0xdb, + 0x99, 0x97, 0xf4, 0xd4, 0xa1, 0x14, 0xa3, 0xf5, 0xc4, 0x48, 0x28, 0x9c, 0x1f, 0x6a, 0xb0, 0x9c, + 0xb7, 0x2b, 0x2c, 0x8f, 0x91, 0x11, 0xdb, 0xf7, 0xf2, 0x18, 0x19, 0xb5, 0xc1, 0x4c, 0xa7, 0xee, + 0xeb, 0xe8, 0x2c, 0x5b, 0xce, 0x88, 0x5f, 0x66, 0x73, 0x13, 0x31, 0x9c, 0xd3, 0x1d, 0x1a, 0x21, + 0xfa, 0x20, 0x73, 0x8f, 0x5f, 0x7c, 0x7b, 0x30, 0xfa, 0xd2, 0xd0, 0x14, 0x2e, 0x7b, 0x9f, 0x71, + 0xfd, 0x49, 0x15, 0x52, 0x81, 0xf7, 0x0b, 0x88, 0xc0, 0xda, 0x90, 0x1b, 0x8b, 0x33, 0x93, 0xee, + 0x91, 0x97, 0x28, 0x67, 0x26, 0xdd, 0xa3, 0xaf, 0x40, 0xd6, 0xbf, 0xf0, 0xfa, 0xd4, 0x7b, 0x05, + 0x7f, 0x67, 0xa7, 0xc4, 0x66, 0x71, 0xcf, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa6, + 0x56, 0x00, 0x32, 0x5e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5272,6 +5456,9 @@ type ClusterManagerClient interface { CeaseClusters(ctx context.Context, in *CeaseClustersRequest, opts ...grpc.CallOption) (*CeaseClustersResponse, error) // Get statistics of cluster GetClusterStatistics(ctx context.Context, in *GetClusterStatisticsRequest, opts ...grpc.CallOption) (*GetClusterStatisticsResponse, error) + // for kubesphere + DeleteClusterInRuntime(ctx context.Context, in *DeleteClusterInRuntimeRequest, opts ...grpc.CallOption) (*DeleteClusterInRuntimeResponse, error) + MigrateClusterInRuntime(ctx context.Context, in *MigrateClusterInRuntimeRequest, opts ...grpc.CallOption) (*MigrateClusterInRuntimeResponse, error) } type clusterManagerClient struct { @@ -5579,6 +5766,24 @@ func (c *clusterManagerClient) GetClusterStatistics(ctx context.Context, in *Get return out, nil } +func (c *clusterManagerClient) DeleteClusterInRuntime(ctx context.Context, in *DeleteClusterInRuntimeRequest, opts ...grpc.CallOption) (*DeleteClusterInRuntimeResponse, error) { + out := new(DeleteClusterInRuntimeResponse) + err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/DeleteClusterInRuntime", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) MigrateClusterInRuntime(ctx context.Context, in *MigrateClusterInRuntimeRequest, opts ...grpc.CallOption) (*MigrateClusterInRuntimeResponse, error) { + out := new(MigrateClusterInRuntimeResponse) + err := c.cc.Invoke(ctx, "/openpitrix.ClusterManager/MigrateClusterInRuntime", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ClusterManagerServer is the server API for ClusterManager service. type ClusterManagerServer interface { AddNodeKeyPairs(context.Context, *AddNodeKeyPairsRequest) (*AddNodeKeyPairsResponse, error) @@ -5641,6 +5846,9 @@ type ClusterManagerServer interface { CeaseClusters(context.Context, *CeaseClustersRequest) (*CeaseClustersResponse, error) // Get statistics of cluster GetClusterStatistics(context.Context, *GetClusterStatisticsRequest) (*GetClusterStatisticsResponse, error) + // for kubesphere + DeleteClusterInRuntime(context.Context, *DeleteClusterInRuntimeRequest) (*DeleteClusterInRuntimeResponse, error) + MigrateClusterInRuntime(context.Context, *MigrateClusterInRuntimeRequest) (*MigrateClusterInRuntimeResponse, error) } // UnimplementedClusterManagerServer can be embedded to have forward compatible implementations. @@ -5746,6 +5954,12 @@ func (*UnimplementedClusterManagerServer) CeaseClusters(ctx context.Context, req func (*UnimplementedClusterManagerServer) GetClusterStatistics(ctx context.Context, req *GetClusterStatisticsRequest) (*GetClusterStatisticsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClusterStatistics not implemented") } +func (*UnimplementedClusterManagerServer) DeleteClusterInRuntime(ctx context.Context, req *DeleteClusterInRuntimeRequest) (*DeleteClusterInRuntimeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteClusterInRuntime not implemented") +} +func (*UnimplementedClusterManagerServer) MigrateClusterInRuntime(ctx context.Context, req *MigrateClusterInRuntimeRequest) (*MigrateClusterInRuntimeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MigrateClusterInRuntime not implemented") +} func RegisterClusterManagerServer(s *grpc.Server, srv ClusterManagerServer) { s.RegisterService(&_ClusterManager_serviceDesc, srv) @@ -6345,6 +6559,42 @@ func _ClusterManager_GetClusterStatistics_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _ClusterManager_DeleteClusterInRuntime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteClusterInRuntimeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).DeleteClusterInRuntime(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openpitrix.ClusterManager/DeleteClusterInRuntime", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).DeleteClusterInRuntime(ctx, req.(*DeleteClusterInRuntimeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_MigrateClusterInRuntime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MigrateClusterInRuntimeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).MigrateClusterInRuntime(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openpitrix.ClusterManager/MigrateClusterInRuntime", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).MigrateClusterInRuntime(ctx, req.(*MigrateClusterInRuntimeRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ClusterManager_serviceDesc = grpc.ServiceDesc{ ServiceName: "openpitrix.ClusterManager", HandlerType: (*ClusterManagerServer)(nil), @@ -6481,6 +6731,14 @@ var _ClusterManager_serviceDesc = grpc.ServiceDesc{ MethodName: "GetClusterStatistics", Handler: _ClusterManager_GetClusterStatistics_Handler, }, + { + MethodName: "DeleteClusterInRuntime", + Handler: _ClusterManager_DeleteClusterInRuntime_Handler, + }, + { + MethodName: "MigrateClusterInRuntime", + Handler: _ClusterManager_MigrateClusterInRuntime_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cluster.proto", diff --git a/vendor/openpitrix.io/openpitrix/pkg/pb/runtime.pb.go b/vendor/openpitrix.io/openpitrix/pkg/pb/runtime.pb.go index 0d5af7ffc..43fb3de06 100644 --- a/vendor/openpitrix.io/openpitrix/pkg/pb/runtime.pb.go +++ b/vendor/openpitrix.io/openpitrix/pkg/pb/runtime.pb.go @@ -366,7 +366,9 @@ type CreateRuntimeRequest struct { // required, runtime credential id RuntimeCredentialId *wrappers.StringValue `protobuf:"bytes,4,opt,name=runtime_credential_id,json=runtimeCredentialId,proto3" json:"runtime_credential_id,omitempty"` // required, runtime zone eg.[pek3a|pek3b|...] - Zone *wrappers.StringValue `protobuf:"bytes,5,opt,name=zone,proto3" json:"zone,omitempty"` + Zone *wrappers.StringValue `protobuf:"bytes,5,opt,name=zone,proto3" json:"zone,omitempty"` + // for kubesphere only, if provider this value means upsert this record + RuntimeId *wrappers.StringValue `protobuf:"bytes,10,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -432,6 +434,13 @@ func (m *CreateRuntimeRequest) GetZone() *wrappers.StringValue { return nil } +func (m *CreateRuntimeRequest) GetRuntimeId() *wrappers.StringValue { + if m != nil { + return m.RuntimeId + } + return nil +} + type CreateRuntimeResponse struct { // id of runtime created RuntimeId *wrappers.StringValue `protobuf:"bytes,1,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"` @@ -915,7 +924,9 @@ type CreateRuntimeCredentialRequest struct { // runtime credential name Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` // runtime credential description - Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // for kubesphere only, if provider this value means upsert this record + RuntimeCredentialId *wrappers.StringValue `protobuf:"bytes,10,opt,name=runtime_credential_id,json=runtimeCredentialId,proto3" json:"runtime_credential_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -981,6 +992,13 @@ func (m *CreateRuntimeCredentialRequest) GetDescription() *wrappers.StringValue return nil } +func (m *CreateRuntimeCredentialRequest) GetRuntimeCredentialId() *wrappers.StringValue { + if m != nil { + return m.RuntimeCredentialId + } + return nil +} + type CreateRuntimeCredentialResponse struct { // id of runtime credential created RuntimeCredentialId *wrappers.StringValue `protobuf:"bytes,1,opt,name=runtime_credential_id,json=runtimeCredentialId,proto3" json:"runtime_credential_id,omitempty"` @@ -1697,128 +1715,128 @@ func init() { func init() { proto.RegisterFile("runtime.proto", fileDescriptor_86e2dd377c869464) } var fileDescriptor_86e2dd377c869464 = []byte{ - // 1923 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x57, 0xb7, 0x3d, 0x76, 0xfc, 0xc6, 0xe3, 0xc4, 0xb5, 0x8e, 0xdd, 0xe9, 0xf8, 0xa3, 0xdd, - 0x59, 0xd8, 0xe0, 0x8c, 0xed, 0x30, 0x44, 0xec, 0xb2, 0xab, 0x20, 0x26, 0xce, 0x2a, 0x20, 0x12, - 0x11, 0x4d, 0xbc, 0x59, 0x29, 0x97, 0x51, 0x7b, 0xa6, 0x66, 0xdc, 0x72, 0xbb, 0x6b, 0xb6, 0xba, - 0xc6, 0x83, 0x39, 0xa0, 0x15, 0x70, 0x81, 0xcd, 0x85, 0x41, 0x08, 0xc4, 0x81, 0x23, 0xe2, 0x84, - 0xb8, 0x20, 0x0e, 0x20, 0x81, 0x90, 0x58, 0x89, 0x33, 0xe2, 0x3f, 0x40, 0xe2, 0xc0, 0x1f, 0xc0, - 0x11, 0xd4, 0x55, 0xd5, 0x9e, 0xfe, 0x9e, 0x76, 0x3c, 0x09, 0x82, 0xdd, 0x93, 0x3d, 0x55, 0xef, - 0x55, 0xbd, 0xaf, 0xdf, 0xaf, 0xde, 0x6b, 0xa8, 0xd0, 0xbe, 0xcb, 0xec, 0x63, 0xbc, 0xd3, 0xa3, - 0x84, 0x11, 0x04, 0xa4, 0x87, 0xdd, 0x9e, 0xcd, 0xa8, 0xfd, 0x4d, 0x7d, 0xbd, 0x4b, 0x48, 0xd7, - 0xc1, 0xbb, 0x7c, 0xe7, 0xa0, 0xdf, 0xd9, 0x1d, 0x50, 0xab, 0xd7, 0xc3, 0xd4, 0x13, 0xb2, 0xfa, - 0x46, 0x7c, 0xdf, 0x3f, 0xc7, 0x63, 0xd6, 0x71, 0x4f, 0x0a, 0xac, 0x4a, 0x01, 0xab, 0x67, 0xef, - 0x5a, 0xae, 0x4b, 0x98, 0xc5, 0x6c, 0xe2, 0x06, 0xea, 0x55, 0xfe, 0xa7, 0xb5, 0xdd, 0xc5, 0xee, - 0xb6, 0x37, 0xb0, 0xba, 0x5d, 0x4c, 0x77, 0x49, 0x8f, 0x4b, 0x24, 0xa5, 0xcd, 0x7f, 0x97, 0x60, - 0xb1, 0x21, 0x4c, 0xdd, 0xa3, 0xb8, 0x8d, 0x5d, 0x66, 0x5b, 0x0e, 0x7a, 0x0c, 0x57, 0xa5, 0xfd, - 0xcd, 0xd6, 0xd9, 0x6a, 0xd3, 0x6e, 0x6b, 0x8a, 0xa1, 0xdc, 0x2c, 0xd7, 0x56, 0x77, 0x84, 0x05, - 0x3b, 0x81, 0x89, 0x3b, 0x4f, 0x18, 0xb5, 0xdd, 0xee, 0x53, 0xcb, 0xe9, 0xe3, 0xc6, 0x6b, 0x34, - 0x7e, 0xde, 0xd7, 0xda, 0xe8, 0x36, 0x4c, 0xbb, 0xd6, 0x31, 0xd6, 0xd4, 0x02, 0x07, 0x70, 0x49, - 0xf4, 0x65, 0x28, 0xb7, 0xb1, 0xd7, 0xa2, 0x36, 0xb7, 0x5d, 0x9b, 0x2a, 0xa0, 0x18, 0x56, 0x40, - 0x77, 0xa1, 0x1c, 0xf8, 0xd0, 0xa7, 0x8e, 0x36, 0x5d, 0x40, 0x1f, 0xa4, 0xc2, 0x7b, 0xd4, 0x41, - 0xcf, 0x40, 0x4f, 0x09, 0x41, 0x8b, 0xb8, 0x0c, 0xbb, 0x4c, 0x2b, 0x15, 0x38, 0x4d, 0x4b, 0xc4, - 0x61, 0x4f, 0x68, 0xa3, 0x77, 0x00, 0xc8, 0xc0, 0xc5, 0xb4, 0xd9, 0xb3, 0xd8, 0xa1, 0x36, 0x53, - 0xe0, 0xac, 0x39, 0x2e, 0xff, 0xd8, 0x62, 0x87, 0xe8, 0x2d, 0xb8, 0xd4, 0xa3, 0xe4, 0xc4, 0x6e, - 0x63, 0xaa, 0xcd, 0x16, 0x50, 0x3d, 0x93, 0x46, 0x77, 0x60, 0xc6, 0x63, 0x16, 0xeb, 0x7b, 0xda, - 0xa5, 0x02, 0x7a, 0x52, 0x16, 0xbd, 0x03, 0xe5, 0x16, 0xc5, 0x16, 0xc3, 0x4d, 0xdf, 0x19, 0x6d, - 0x8e, 0xab, 0xea, 0x09, 0xd5, 0xfd, 0xa0, 0x48, 0x1b, 0x20, 0xc4, 0xfd, 0x05, 0x5f, 0x59, 0x1c, - 0x23, 0x94, 0x61, 0xbc, 0xb2, 0x10, 0xe7, 0xca, 0xb7, 0xa1, 0xd4, 0xc6, 0x07, 0xfd, 0xae, 0x56, - 0xce, 0x50, 0xbb, 0x47, 0x88, 0x23, 0x8c, 0x15, 0x82, 0xa8, 0x06, 0x25, 0x1e, 0x28, 0x6d, 0xbe, - 0x80, 0x83, 0x42, 0xd4, 0xfc, 0x4b, 0x09, 0x66, 0x25, 0x02, 0xfc, 0xc4, 0x04, 0x49, 0x2f, 0x58, - 0xec, 0x73, 0x52, 0xfe, 0xbf, 0x52, 0xe2, 0xe1, 0x52, 0x98, 0x3e, 0x57, 0x29, 0x64, 0x02, 0xbc, - 0x74, 0x01, 0x80, 0x7f, 0x8b, 0xb8, 0xb8, 0x50, 0x35, 0x73, 0xc9, 0x18, 0x0a, 0x66, 0xcf, 0x87, - 0x82, 0x4f, 0x6b, 0x39, 0xad, 0x96, 0x9f, 0x2b, 0x50, 0x91, 0xb5, 0x7c, 0x1f, 0x33, 0xcb, 0x76, - 0xd0, 0x36, 0xcc, 0xca, 0x6c, 0xc9, 0x72, 0x7e, 0x6d, 0x67, 0xf4, 0x14, 0xed, 0x48, 0xd9, 0x46, - 0x20, 0x83, 0x1e, 0x02, 0x4a, 0xd6, 0x85, 0xac, 0xe8, 0xb5, 0x14, 0xcd, 0x51, 0x09, 0x34, 0x16, - 0x13, 0x55, 0x61, 0x7e, 0xac, 0xc2, 0xd2, 0x1e, 0x0f, 0x60, 0x70, 0x11, 0xfe, 0xa0, 0x8f, 0x3d, - 0x76, 0x06, 0x15, 0xe5, 0x45, 0xa1, 0xa2, 0x5e, 0x04, 0x2a, 0x53, 0x93, 0x81, 0xca, 0xf4, 0x45, - 0xa1, 0x52, 0x2a, 0x0a, 0x15, 0x73, 0x1f, 0xae, 0xc6, 0xe2, 0xe8, 0xf5, 0x88, 0xeb, 0x5d, 0x8c, - 0xb0, 0xcc, 0xdf, 0x4d, 0xc1, 0xca, 0x7d, 0x1e, 0xa3, 0x83, 0xe0, 0x60, 0x2f, 0xc8, 0xd0, 0x5d, - 0x28, 0x7b, 0xd8, 0xa2, 0xad, 0xc3, 0xe6, 0x80, 0xd0, 0x62, 0x27, 0x83, 0x50, 0x78, 0x9f, 0xd0, - 0x36, 0x7a, 0x13, 0x2e, 0x79, 0x84, 0xb2, 0xe6, 0x11, 0x3e, 0x2d, 0x94, 0xab, 0x59, 0x5f, 0xfa, - 0xeb, 0xf8, 0x14, 0xdd, 0x81, 0x59, 0x8a, 0x4f, 0x30, 0xf5, 0xb0, 0x4c, 0x53, 0x1e, 0x52, 0x02, - 0x51, 0xb4, 0x04, 0x25, 0xc7, 0x3e, 0xb6, 0x19, 0xcf, 0x49, 0xa5, 0x21, 0x7e, 0xa0, 0x65, 0x98, - 0x21, 0x9d, 0x8e, 0x87, 0xc5, 0x73, 0x5d, 0x69, 0xc8, 0x5f, 0xe8, 0x0d, 0xb8, 0xdc, 0xb6, 0xbd, - 0x9e, 0x63, 0x9d, 0x36, 0x5b, 0xc4, 0xe9, 0x1f, 0xbb, 0x9e, 0x36, 0x63, 0x4c, 0xdd, 0x9c, 0x6b, - 0x2c, 0xc8, 0xe5, 0x3d, 0xb1, 0x8a, 0xd6, 0x22, 0xd1, 0x2d, 0x73, 0x99, 0x10, 0xe1, 0x2f, 0x9f, - 0x71, 0xd0, 0x3c, 0xdf, 0x0a, 0x58, 0x46, 0x0f, 0xd5, 0x5a, 0x85, 0xef, 0x8c, 0xaa, 0x69, 0x29, - 0x40, 0xf5, 0x02, 0xdf, 0x10, 0x3f, 0x50, 0x2d, 0xab, 0xc6, 0x2e, 0x73, 0xa9, 0xb4, 0x2a, 0x32, - 0x3f, 0x00, 0x2d, 0x99, 0x3c, 0x59, 0x16, 0x1b, 0x50, 0x66, 0x84, 0xf1, 0x7e, 0xa5, 0xef, 0x32, - 0x9e, 0xbd, 0x4a, 0x03, 0xf8, 0xd2, 0x9e, 0xbf, 0x82, 0xee, 0x8c, 0x9a, 0x23, 0x3f, 0x3e, 0xaa, - 0x31, 0x95, 0x45, 0x0d, 0x41, 0x04, 0x9e, 0x60, 0x66, 0xfe, 0x40, 0x81, 0xf5, 0xd8, 0x9d, 0x82, - 0x66, 0xce, 0x71, 0xf3, 0x83, 0x11, 0xc3, 0xb4, 0xb9, 0x6e, 0xc8, 0x80, 0x6b, 0x29, 0x06, 0x88, - 0x0b, 0x1a, 0x57, 0x68, 0xf8, 0xa7, 0x6f, 0xcc, 0x4f, 0x54, 0x58, 0x7a, 0x44, 0xda, 0x76, 0xe7, - 0x34, 0x46, 0x2e, 0xff, 0x63, 0x8f, 0xf8, 0xc4, 0xf9, 0xc5, 0x67, 0x8b, 0x58, 0x60, 0x26, 0xc1, - 0x16, 0x1f, 0x29, 0x70, 0xf5, 0x3e, 0x76, 0x30, 0x4b, 0x70, 0xc5, 0x5a, 0xec, 0xd8, 0x18, 0x4c, - 0x6e, 0x43, 0xa9, 0x43, 0x68, 0x2b, 0x88, 0x69, 0xee, 0xd3, 0xc7, 0x05, 0xd1, 0x26, 0xcc, 0x77, - 0xa9, 0xd5, 0xc2, 0xcd, 0x1e, 0xa6, 0x36, 0x69, 0xf3, 0x98, 0x56, 0x1a, 0x65, 0xbe, 0xf6, 0x98, - 0x2f, 0x99, 0x6f, 0xc2, 0x72, 0xdc, 0x18, 0xe9, 0x64, 0xbe, 0x35, 0xe6, 0x3f, 0x54, 0x58, 0x8f, - 0x70, 0x69, 0xe8, 0x09, 0x1b, 0x71, 0x5f, 0x78, 0x72, 0x50, 0x26, 0x3a, 0x39, 0xa8, 0x17, 0x9a, - 0x1c, 0x5e, 0xfc, 0x19, 0x0b, 0x0a, 0x7b, 0xfa, 0x45, 0x0b, 0xbb, 0x74, 0xce, 0xc2, 0x36, 0x3d, - 0xd8, 0xc8, 0x0c, 0xb4, 0xcc, 0xd5, 0xc4, 0xe7, 0x4c, 0xf3, 0x5f, 0x0a, 0x18, 0x4f, 0x2d, 0xc7, - 0x6e, 0x7f, 0xd2, 0x12, 0x6c, 0x7e, 0x03, 0x36, 0x73, 0x1c, 0x97, 0x01, 0xdf, 0x02, 0x95, 0x1c, - 0x49, 0x87, 0xf3, 0x80, 0xa8, 0x92, 0x23, 0xf3, 0x17, 0x53, 0xb0, 0x19, 0x63, 0xfb, 0xd1, 0x89, - 0x9f, 0x36, 0x0a, 0xe1, 0x46, 0x21, 0xf3, 0xfd, 0x2e, 0x67, 0xbe, 0xdf, 0x93, 0xeb, 0x1e, 0xcc, - 0x9f, 0x29, 0x60, 0xe6, 0x25, 0xaa, 0xe8, 0xd3, 0xfc, 0x04, 0x96, 0x53, 0xbc, 0x18, 0x3d, 0xcf, - 0x63, 0x06, 0x80, 0xa5, 0x84, 0x97, 0xfe, 0x33, 0xfd, 0x47, 0x15, 0xd6, 0x23, 0xaf, 0x51, 0x12, - 0x8e, 0xff, 0x0f, 0x5f, 0x9b, 0xf2, 0x39, 0x61, 0xfa, 0x22, 0x9c, 0xe0, 0x13, 0x69, 0x66, 0x04, - 0x5f, 0x1a, 0x91, 0xbe, 0x07, 0x1b, 0x91, 0x07, 0x36, 0x05, 0xfa, 0xb5, 0xec, 0x4b, 0x33, 0xbb, - 0xd6, 0xa7, 0x60, 0x64, 0x1f, 0x2b, 0x9d, 0x79, 0x91, 0x73, 0x07, 0x70, 0x23, 0x06, 0x81, 0xc7, - 0x12, 0x34, 0xcf, 0x88, 0x3b, 0x6a, 0x55, 0x26, 0x1f, 0xa7, 0xe7, 0x0a, 0xbc, 0x9e, 0x7f, 0xf3, - 0xcb, 0x4a, 0x11, 0x42, 0x72, 0x8e, 0x54, 0x79, 0x58, 0xc4, 0xa4, 0xb8, 0x06, 0xd7, 0x1f, 0x60, - 0x26, 0x0d, 0x79, 0xc2, 0x2c, 0x66, 0x7b, 0xcc, 0x6e, 0x05, 0xfe, 0x9b, 0x7f, 0x9b, 0x82, 0xd5, - 0xf4, 0x7d, 0x69, 0xa5, 0x07, 0x57, 0x1d, 0xcb, 0x63, 0x4d, 0x36, 0x20, 0xcd, 0x01, 0xc6, 0x47, - 0x4d, 0xf1, 0x01, 0x44, 0xc4, 0xbe, 0x5c, 0xfb, 0x4a, 0x98, 0x02, 0xf2, 0x0e, 0xda, 0x79, 0x68, - 0x79, 0x6c, 0x7f, 0x40, 0xde, 0xc7, 0xf8, 0x48, 0x74, 0x01, 0xed, 0x77, 0x5d, 0x46, 0x4f, 0x1b, - 0xc8, 0x49, 0x6c, 0x20, 0x1b, 0x16, 0x19, 0xe9, 0x35, 0x19, 0x76, 0x9b, 0x01, 0xd5, 0x79, 0x92, - 0x73, 0xee, 0x16, 0xbe, 0x70, 0x9f, 0xf4, 0xf6, 0xb1, 0x1b, 0xc4, 0xde, 0x13, 0xb7, 0x5d, 0x66, - 0xd1, 0x55, 0x74, 0xe3, 0xec, 0xcb, 0xbc, 0xa4, 0x41, 0xd1, 0x5b, 0xce, 0x07, 0xf1, 0xe5, 0x44, - 0xf8, 0x19, 0x58, 0x08, 0xec, 0x90, 0x52, 0xe2, 0xb9, 0xa8, 0x04, 0xab, 0x5c, 0x4c, 0x7f, 0x17, - 0x56, 0x32, 0xbc, 0x44, 0x57, 0x60, 0xca, 0x7f, 0xd1, 0xfc, 0xd4, 0xce, 0x35, 0xfc, 0x7f, 0x7d, - 0xea, 0x3e, 0xf1, 0x53, 0xc9, 0x39, 0xa9, 0xd2, 0x10, 0x3f, 0xde, 0x56, 0xdf, 0x52, 0xf4, 0x7b, - 0xb0, 0x94, 0x66, 0xfb, 0x79, 0xce, 0xa8, 0xfd, 0x56, 0x83, 0x05, 0x19, 0x9a, 0x47, 0x96, 0x6b, - 0x75, 0x31, 0x45, 0x1f, 0x2a, 0x50, 0x89, 0xf4, 0x5f, 0xc8, 0x08, 0xc7, 0x32, 0xed, 0xbb, 0x8c, - 0xbe, 0x99, 0x23, 0x21, 0xc2, 0x6c, 0x6e, 0x0d, 0xeb, 0x57, 0xd0, 0x82, 0xd8, 0x33, 0x64, 0xd4, - 0xbe, 0xf3, 0xd7, 0xbf, 0xff, 0x48, 0x5d, 0x34, 0xe7, 0x77, 0x4f, 0x3e, 0xbf, 0x2b, 0x97, 0xbc, - 0xb7, 0x95, 0x2d, 0xf4, 0x43, 0x05, 0x90, 0x90, 0xbc, 0x8f, 0x0f, 0xfa, 0xdd, 0x89, 0xda, 0xf1, - 0xc5, 0x61, 0x7d, 0x19, 0xc9, 0xaf, 0x4b, 0x06, 0xff, 0x62, 0x16, 0xb1, 0x66, 0xc5, 0x44, 0xbe, - 0x35, 0x7c, 0xa3, 0x19, 0xb6, 0xc9, 0xf6, 0x07, 0x87, 0xb4, 0x11, 0x16, 0xdd, 0x08, 0x5f, 0x9a, - 0xf1, 0x5d, 0x44, 0xdf, 0xca, 0x11, 0x8a, 0xcf, 0xc2, 0xff, 0x54, 0xe0, 0x4a, 0xfc, 0x9c, 0x62, - 0xb7, 0xbc, 0x9e, 0x2f, 0x24, 0x43, 0xf0, 0x91, 0x32, 0xac, 0x33, 0x44, 0x1f, 0x60, 0x16, 0xb8, - 0xee, 0x55, 0x8d, 0x96, 0xe5, 0x1a, 0x1d, 0xdb, 0x61, 0x98, 0x1a, 0x03, 0x9b, 0x1d, 0x1a, 0xec, - 0x10, 0x7b, 0xd8, 0xe8, 0xd8, 0xd8, 0x69, 0x7b, 0x37, 0x47, 0x83, 0x51, 0xd5, 0x08, 0x6a, 0xb9, - 0x6a, 0xf8, 0xc4, 0x51, 0x35, 0x44, 0xfb, 0x51, 0x35, 0x78, 0x4f, 0xf1, 0xb9, 0xaa, 0xd1, 0xc6, - 0x1d, 0xab, 0xef, 0x30, 0x83, 0x62, 0xd6, 0xa7, 0xae, 0x61, 0x39, 0xce, 0xd9, 0x2d, 0x3c, 0xc2, - 0x0b, 0x28, 0x92, 0x6f, 0xf4, 0x5d, 0xd5, 0x9f, 0x0f, 0x85, 0xa9, 0xe1, 0x74, 0x4f, 0xd4, 0xe5, - 0x9f, 0x2b, 0xc3, 0xfa, 0x87, 0x0a, 0xfa, 0xb6, 0xef, 0x73, 0x24, 0xe9, 0x2f, 0xd9, 0xf3, 0xe8, - 0x5d, 0xdc, 0xff, 0x25, 0x94, 0x52, 0x61, 0x1c, 0x75, 0x91, 0xc7, 0x3a, 0x5a, 0xed, 0x69, 0x1f, - 0x2c, 0xa2, 0xd5, 0x9e, 0x3a, 0xb9, 0x4b, 0xd4, 0x89, 0xbd, 0x28, 0xea, 0x6a, 0x09, 0xd4, 0x7d, - 0x4f, 0x81, 0x85, 0xe8, 0x6c, 0x8c, 0x36, 0xa3, 0xc1, 0x4d, 0x19, 0xe2, 0x75, 0x33, 0x4f, 0x44, - 0x5a, 0x71, 0x6b, 0x58, 0x5f, 0x44, 0x97, 0xc5, 0x66, 0x34, 0x18, 0x8b, 0x5b, 0x09, 0x33, 0x7e, - 0xa3, 0xc0, 0x4a, 0xc6, 0xfc, 0x87, 0xb6, 0x32, 0xf1, 0x9d, 0xe8, 0x0e, 0xf5, 0x5b, 0x85, 0x64, - 0xa5, 0x85, 0xf5, 0x61, 0xfd, 0x3a, 0xba, 0xd6, 0x8a, 0xb0, 0x93, 0x31, 0x7a, 0x6e, 0xb9, 0xad, - 0x6b, 0xa6, 0x16, 0xb6, 0x75, 0x77, 0xb4, 0xcd, 0xed, 0xfe, 0x58, 0x81, 0xd5, 0x24, 0x69, 0xbd, - 0x0a, 0xe3, 0x1f, 0x0d, 0xeb, 0x9b, 0x68, 0x23, 0x8d, 0xd2, 0xe2, 0x2e, 0xdc, 0x30, 0xd7, 0x93, - 0xb5, 0x17, 0x77, 0xe4, 0x57, 0x2a, 0xe8, 0xd9, 0x63, 0x01, 0xda, 0xce, 0x01, 0x5c, 0xb2, 0xd9, - 0xd3, 0x77, 0x8a, 0x8a, 0x4b, 0x67, 0x7e, 0xad, 0x0c, 0xeb, 0xcf, 0x15, 0xf4, 0x7d, 0x25, 0x44, - 0x4f, 0x21, 0x37, 0xbc, 0xea, 0x78, 0xac, 0x46, 0xda, 0xa4, 0x11, 0x4c, 0x47, 0xf0, 0x1d, 0x4f, - 0x55, 0xe1, 0x1b, 0x79, 0xe4, 0x74, 0x94, 0x99, 0x7c, 0xf4, 0x67, 0xd5, 0xef, 0x79, 0x93, 0x0c, - 0xf6, 0x0a, 0xa3, 0xf6, 0x27, 0x65, 0x58, 0xff, 0xa9, 0x82, 0x7e, 0xac, 0x24, 0x08, 0xee, 0x15, - 0xc6, 0x2e, 0xf3, 0x5e, 0x1e, 0x41, 0x03, 0x8d, 0xa9, 0x3d, 0x8e, 0xfc, 0x8c, 0x81, 0x25, 0x0a, - 0x9e, 0xfc, 0xb9, 0x30, 0x0a, 0x9e, 0x31, 0x13, 0x90, 0x44, 0x7e, 0x94, 0x21, 0x13, 0xc8, 0xaf, - 0xe5, 0x22, 0xff, 0x0f, 0x0a, 0x68, 0x59, 0xc3, 0x09, 0xba, 0x95, 0xc9, 0x8f, 0x29, 0x69, 0xaf, - 0x16, 0x13, 0x96, 0xa6, 0x7f, 0x75, 0x58, 0x37, 0x91, 0x71, 0xcf, 0x62, 0xad, 0x43, 0xa3, 0x1d, - 0x21, 0xd7, 0x44, 0xf0, 0xd7, 0xb6, 0xc6, 0x71, 0xd7, 0xb5, 0xcc, 0x8f, 0x40, 0x28, 0x62, 0xd5, - 0xb8, 0x8f, 0x64, 0xfa, 0x76, 0x41, 0x69, 0xe9, 0xc4, 0xc3, 0x61, 0x7d, 0x0d, 0x5d, 0x0f, 0xe4, - 0xb2, 0x32, 0xf0, 0x59, 0x73, 0x33, 0xd3, 0xfe, 0x13, 0xa9, 0xeb, 0x3b, 0xf2, 0x7b, 0x05, 0x56, - 0xf3, 0xa6, 0x2a, 0xb4, 0x9b, 0x03, 0xac, 0xb4, 0xc9, 0x4f, 0xbf, 0x5d, 0x5c, 0x41, 0x7a, 0xf4, - 0xa5, 0x61, 0x7d, 0x15, 0xe9, 0x61, 0xfa, 0x0a, 0xd0, 0xc3, 0xfb, 0x86, 0x48, 0x17, 0x70, 0xe6, - 0x10, 0xdf, 0x41, 0xbf, 0x54, 0x60, 0x29, 0x6d, 0x58, 0x41, 0x6f, 0x8c, 0x1f, 0x67, 0x84, 0xb9, - 0x37, 0x8b, 0xce, 0x3d, 0xe6, 0x5d, 0x5e, 0xf8, 0x5d, 0xcc, 0x38, 0xc8, 0xc5, 0xa6, 0x41, 0x3a, - 0x91, 0x2e, 0xe1, 0x1a, 0x5a, 0x89, 0x58, 0x39, 0x92, 0xbc, 0x37, 0xfd, 0x4c, 0xed, 0x1d, 0x1c, - 0xcc, 0xf0, 0xa9, 0xf3, 0x0b, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x46, 0xea, 0x24, 0x51, 0xb7, - 0x24, 0x00, 0x00, + // 1934 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0x57, 0xcf, 0x78, 0xec, 0xf8, 0x8d, 0xc7, 0x89, 0x6b, 0x1d, 0xbb, 0xd3, 0xf1, 0x47, 0xbb, + 0xb3, 0xb0, 0xc1, 0x19, 0xdb, 0x61, 0x88, 0xd8, 0x65, 0x57, 0x41, 0x4c, 0x9c, 0x55, 0x40, 0x24, + 0x22, 0x1a, 0x7b, 0xb3, 0x52, 0x2e, 0xa3, 0xf6, 0x4c, 0xcd, 0xb8, 0xe5, 0x76, 0xd7, 0x6c, 0x75, + 0x8d, 0x07, 0x73, 0x40, 0x2b, 0x96, 0x0b, 0x6c, 0x2e, 0x0c, 0x42, 0x20, 0x0e, 0x1c, 0x11, 0x27, + 0xc4, 0x05, 0x21, 0x04, 0x12, 0x08, 0x09, 0x24, 0xce, 0x88, 0xff, 0x80, 0x1b, 0x7f, 0x00, 0x47, + 0x50, 0x57, 0x55, 0x7b, 0xfa, 0x7b, 0xda, 0xf6, 0x24, 0x08, 0x76, 0x4f, 0xf1, 0x74, 0xbd, 0x57, + 0xf5, 0xbe, 0x7e, 0xbf, 0x7a, 0xaf, 0x02, 0x15, 0xda, 0x77, 0x98, 0x75, 0x8c, 0xb7, 0x7b, 0x94, + 0x30, 0x82, 0x80, 0xf4, 0xb0, 0xd3, 0xb3, 0x18, 0xb5, 0xbe, 0xa9, 0xad, 0x75, 0x09, 0xe9, 0xda, + 0x78, 0x87, 0xaf, 0x1c, 0xf4, 0x3b, 0x3b, 0x03, 0x6a, 0xf6, 0x7a, 0x98, 0xba, 0x42, 0x56, 0x5b, + 0x8f, 0xae, 0x7b, 0xfb, 0xb8, 0xcc, 0x3c, 0xee, 0x49, 0x81, 0x15, 0x29, 0x60, 0xf6, 0xac, 0x1d, + 0xd3, 0x71, 0x08, 0x33, 0x99, 0x45, 0x1c, 0x5f, 0xbd, 0xca, 0xff, 0x69, 0x6d, 0x75, 0xb1, 0xb3, + 0xe5, 0x0e, 0xcc, 0x6e, 0x17, 0xd3, 0x1d, 0xd2, 0xe3, 0x12, 0x71, 0x69, 0xe3, 0xdf, 0x25, 0x58, + 0x68, 0x08, 0x53, 0x77, 0x29, 0x6e, 0x63, 0x87, 0x59, 0xa6, 0x8d, 0x9e, 0xc2, 0x75, 0x69, 0x7f, + 0xb3, 0x75, 0xf6, 0xb5, 0x69, 0xb5, 0x55, 0x45, 0x57, 0x6e, 0x97, 0x6b, 0x2b, 0xdb, 0xc2, 0x82, + 0x6d, 0xdf, 0xc4, 0xed, 0x3d, 0x46, 0x2d, 0xa7, 0xfb, 0xcc, 0xb4, 0xfb, 0xb8, 0xf1, 0x1a, 0x8d, + 0xee, 0xf7, 0xb5, 0x36, 0xba, 0x0b, 0x53, 0x8e, 0x79, 0x8c, 0xd5, 0x42, 0x8e, 0x0d, 0xb8, 0x24, + 0xfa, 0x32, 0x94, 0xdb, 0xd8, 0x6d, 0x51, 0x8b, 0xdb, 0xae, 0x16, 0x73, 0x28, 0x06, 0x15, 0xd0, + 0x7d, 0x28, 0xfb, 0x3e, 0xf4, 0xa9, 0xad, 0x4e, 0xe5, 0xd0, 0x07, 0xa9, 0xf0, 0x1e, 0xb5, 0xd1, + 0x73, 0xd0, 0x12, 0x42, 0xd0, 0x22, 0x0e, 0xc3, 0x0e, 0x53, 0x4b, 0x39, 0x76, 0x53, 0x63, 0x71, + 0xd8, 0x15, 0xda, 0xe8, 0x1d, 0x00, 0x32, 0x70, 0x30, 0x6d, 0xf6, 0x4c, 0x76, 0xa8, 0x4e, 0xe7, + 0xd8, 0x6b, 0x96, 0xcb, 0x3f, 0x35, 0xd9, 0x21, 0x7a, 0x0b, 0xae, 0xf4, 0x28, 0x39, 0xb1, 0xda, + 0x98, 0xaa, 0x33, 0x39, 0x54, 0xcf, 0xa4, 0xd1, 0x3d, 0x98, 0x76, 0x99, 0xc9, 0xfa, 0xae, 0x7a, + 0x25, 0x87, 0x9e, 0x94, 0x45, 0xef, 0x40, 0xb9, 0x45, 0xb1, 0xc9, 0x70, 0xd3, 0x73, 0x46, 0x9d, + 0xe5, 0xaa, 0x5a, 0x4c, 0x75, 0xdf, 0x2f, 0xd2, 0x06, 0x08, 0x71, 0xef, 0x83, 0xa7, 0x2c, 0xb6, + 0x11, 0xca, 0x30, 0x5e, 0x59, 0x88, 0x73, 0xe5, 0xbb, 0x50, 0x6a, 0xe3, 0x83, 0x7e, 0x57, 0x2d, + 0xa7, 0xa8, 0x3d, 0x20, 0xc4, 0x16, 0xc6, 0x0a, 0x41, 0x54, 0x83, 0x12, 0x0f, 0x94, 0x3a, 0x97, + 0xc3, 0x41, 0x21, 0x6a, 0xfc, 0xb5, 0x04, 0x33, 0x12, 0x01, 0x5e, 0x62, 0xfc, 0xa4, 0xe7, 0x2c, + 0xf6, 0x59, 0x29, 0xff, 0x5f, 0x29, 0xf1, 0x60, 0x29, 0x4c, 0x9d, 0xab, 0x14, 0x52, 0x01, 0x5e, + 0xba, 0x04, 0xc0, 0xbf, 0x45, 0x1c, 0x9c, 0xab, 0x9a, 0xb9, 0x64, 0x04, 0x05, 0x33, 0xe7, 0x43, + 0xc1, 0xa7, 0xb5, 0x9c, 0x54, 0xcb, 0x2f, 0x14, 0xa8, 0xc8, 0x5a, 0x7e, 0x88, 0x99, 0x69, 0xd9, + 0x68, 0x0b, 0x66, 0x64, 0xb6, 0x64, 0x39, 0xbf, 0xb6, 0x3d, 0xba, 0x8a, 0xb6, 0xa5, 0x6c, 0xc3, + 0x97, 0x41, 0x8f, 0x01, 0xc5, 0xeb, 0x42, 0x56, 0xf4, 0x6a, 0x82, 0xe6, 0xa8, 0x04, 0x1a, 0x0b, + 0xb1, 0xaa, 0x30, 0x3e, 0x2a, 0xc2, 0xe2, 0x2e, 0x0f, 0xa0, 0x7f, 0x10, 0xfe, 0xa0, 0x8f, 0x5d, + 0x76, 0x06, 0x15, 0xe5, 0xa2, 0x50, 0x29, 0x5c, 0x06, 0x2a, 0xc5, 0xc9, 0x40, 0x65, 0xea, 0xb2, + 0x50, 0x29, 0x9d, 0x07, 0x2a, 0x01, 0x5e, 0x82, 0x73, 0xf1, 0x92, 0xb1, 0x0f, 0xd7, 0x23, 0x49, + 0x70, 0x7b, 0xc4, 0x71, 0x2f, 0xc7, 0x76, 0xc6, 0xef, 0x8a, 0xb0, 0xfc, 0x90, 0x07, 0xf8, 0xc0, + 0xdf, 0xd8, 0xf5, 0xd3, 0x7b, 0x1f, 0xca, 0x2e, 0x36, 0x69, 0xeb, 0xb0, 0x39, 0x20, 0x34, 0xdf, + 0xce, 0x20, 0x14, 0xde, 0x27, 0xb4, 0x8d, 0xde, 0x84, 0x2b, 0x2e, 0xa1, 0xac, 0x79, 0x84, 0x4f, + 0x73, 0x25, 0x7a, 0xc6, 0x93, 0xfe, 0x3a, 0x3e, 0x45, 0xf7, 0x60, 0x86, 0xe2, 0x13, 0x4c, 0x5d, + 0x2c, 0x73, 0x9c, 0x05, 0x33, 0x5f, 0x14, 0x2d, 0x42, 0xc9, 0xb6, 0x8e, 0x2d, 0xc6, 0x13, 0x5a, + 0x69, 0x88, 0x1f, 0x68, 0x09, 0xa6, 0x49, 0xa7, 0xe3, 0x62, 0x71, 0xd7, 0x57, 0x1a, 0xf2, 0x17, + 0x7a, 0x03, 0xae, 0xb6, 0x2d, 0xb7, 0x67, 0x9b, 0xa7, 0xcd, 0x16, 0xb1, 0xfb, 0xc7, 0x8e, 0xab, + 0x4e, 0xeb, 0xc5, 0xdb, 0xb3, 0x8d, 0x79, 0xf9, 0x79, 0x57, 0x7c, 0x45, 0xab, 0xa1, 0xe8, 0x96, + 0xb9, 0x4c, 0xe0, 0xb6, 0x58, 0x3a, 0x23, 0xb0, 0x39, 0xbe, 0xe4, 0x53, 0x94, 0x16, 0x28, 0xd4, + 0x0a, 0x5f, 0x19, 0x95, 0xe2, 0xa2, 0x4f, 0x09, 0xf3, 0x7c, 0x41, 0xfc, 0x40, 0xb5, 0xb4, 0x02, + 0xbd, 0xca, 0xa5, 0x92, 0x4a, 0xd0, 0xf8, 0x00, 0xd4, 0x78, 0xf2, 0x64, 0x59, 0xac, 0x43, 0x99, + 0x11, 0xc6, 0x9b, 0x9d, 0xbe, 0xc3, 0x78, 0xf6, 0x2a, 0x0d, 0xe0, 0x9f, 0x76, 0xbd, 0x2f, 0xe8, + 0xde, 0xa8, 0xb3, 0xf2, 0xe2, 0x53, 0xd0, 0x8b, 0x69, 0xbc, 0xe2, 0x47, 0x60, 0x0f, 0x33, 0xe3, + 0xfb, 0x0a, 0xac, 0x45, 0xce, 0x14, 0x1c, 0x75, 0x8e, 0x93, 0x1f, 0x8d, 0xe8, 0xa9, 0xcd, 0x75, + 0x03, 0x06, 0xdc, 0x48, 0x30, 0x40, 0x1c, 0xd0, 0xb8, 0x46, 0x83, 0x3f, 0x3d, 0x63, 0x7e, 0x5c, + 0x80, 0xc5, 0x27, 0xa4, 0x6d, 0x75, 0x4e, 0x23, 0xcc, 0xf4, 0x3f, 0xd6, 0x01, 0x4c, 0x9c, 0x9c, + 0x3c, 0xb6, 0x88, 0x04, 0x66, 0x12, 0x6c, 0xf1, 0xb1, 0x02, 0xd7, 0x1f, 0x62, 0x1b, 0xb3, 0x18, + 0x57, 0xac, 0x46, 0xb6, 0x8d, 0xc0, 0xe4, 0x2e, 0x94, 0x3a, 0x84, 0xb6, 0xfc, 0x98, 0x66, 0xde, + 0x9b, 0x5c, 0x10, 0x6d, 0xc0, 0x5c, 0x97, 0x9a, 0x2d, 0xdc, 0xec, 0x61, 0x6a, 0x91, 0x36, 0x8f, + 0x69, 0xa5, 0x51, 0xe6, 0xdf, 0x9e, 0xf2, 0x4f, 0xc6, 0x9b, 0xb0, 0x14, 0x35, 0x46, 0x3a, 0x99, + 0x6d, 0x8d, 0xf1, 0xdb, 0x22, 0xac, 0x85, 0xb8, 0x34, 0x70, 0xff, 0x8d, 0xb8, 0x2f, 0x38, 0x76, + 0x28, 0x13, 0x1d, 0x3b, 0x0a, 0x97, 0x1a, 0x3b, 0x2e, 0x7e, 0x07, 0xfa, 0x85, 0x3d, 0x75, 0xd1, + 0xc2, 0x2e, 0x4d, 0xac, 0xb0, 0xe1, 0xa2, 0x85, 0xed, 0xc2, 0x7a, 0x6a, 0xea, 0x64, 0xf6, 0x27, + 0x3e, 0xf6, 0x1a, 0xff, 0x52, 0x40, 0x7f, 0x66, 0xda, 0x56, 0xfb, 0x93, 0x56, 0x32, 0xc6, 0x37, + 0x60, 0x23, 0xc3, 0x71, 0x19, 0xf0, 0x4d, 0x28, 0x90, 0x23, 0xe9, 0x70, 0x16, 0xb4, 0x0b, 0xe4, + 0xc8, 0xf8, 0x79, 0x11, 0x36, 0x22, 0xf7, 0xc7, 0x68, 0xc7, 0x4f, 0x5b, 0x8f, 0x60, 0xeb, 0x91, + 0xda, 0x11, 0x94, 0x53, 0x3b, 0x82, 0xc9, 0xf5, 0x23, 0xc6, 0x4f, 0x15, 0x30, 0xb2, 0x12, 0x95, + 0xf7, 0xb2, 0xdf, 0x83, 0xa5, 0x04, 0x2f, 0x46, 0x17, 0xfe, 0x98, 0x79, 0x64, 0x31, 0xe6, 0xa5, + 0x77, 0xf1, 0xff, 0xb1, 0x00, 0x6b, 0xa1, 0xfb, 0x2d, 0x0e, 0xc7, 0xff, 0x87, 0xc7, 0xaf, 0x6c, + 0x4e, 0x98, 0xba, 0x0c, 0x27, 0x78, 0x44, 0x9a, 0x1a, 0xc1, 0x97, 0x46, 0xa4, 0xef, 0xc1, 0x7a, + 0xe8, 0xca, 0x4e, 0x80, 0x7e, 0x2d, 0xfd, 0xd0, 0xd4, 0x3e, 0xf8, 0x19, 0xe8, 0xe9, 0xdb, 0x4a, + 0x67, 0x2e, 0xb2, 0xef, 0x00, 0x6e, 0x45, 0x20, 0xf0, 0x54, 0x82, 0xe6, 0x39, 0x71, 0x46, 0xcd, + 0xcf, 0xe4, 0xe3, 0xf4, 0x42, 0x81, 0xd7, 0xb3, 0x4f, 0x7e, 0x59, 0x29, 0x42, 0x48, 0x8e, 0xb5, + 0x05, 0x1e, 0x16, 0xfe, 0xb7, 0xb1, 0x0a, 0x37, 0x1f, 0x61, 0x26, 0x0d, 0xd9, 0x63, 0x26, 0xb3, + 0x5c, 0x66, 0xb5, 0x7c, 0xff, 0x8d, 0xbf, 0x17, 0x61, 0x25, 0x79, 0x5d, 0x5a, 0xe9, 0xc2, 0x75, + 0xdb, 0x74, 0x59, 0x93, 0x0d, 0x48, 0x73, 0x80, 0xf1, 0x51, 0x53, 0xbc, 0xc7, 0x88, 0xd8, 0x97, + 0x6b, 0x5f, 0x09, 0x52, 0x40, 0xd6, 0x46, 0xdb, 0x8f, 0x4d, 0x97, 0xed, 0x0f, 0xc8, 0xfb, 0x18, + 0x1f, 0x89, 0x2e, 0xa0, 0xfd, 0xae, 0xc3, 0xe8, 0x69, 0x03, 0xd9, 0xb1, 0x05, 0x64, 0xc1, 0x02, + 0x23, 0xbd, 0x26, 0xc3, 0x4e, 0xd3, 0xa7, 0x3a, 0x57, 0x72, 0xce, 0xfd, 0xdc, 0x07, 0xee, 0x93, + 0xde, 0x3e, 0x76, 0xfc, 0xd8, 0xbb, 0xe2, 0xb4, 0xab, 0x2c, 0xfc, 0x15, 0xdd, 0x3a, 0xfb, 0x8f, + 0x02, 0x49, 0x83, 0xa2, 0x5b, 0x9d, 0xf3, 0xe3, 0xcb, 0x89, 0xf0, 0x33, 0x30, 0xef, 0xdb, 0x21, + 0xa5, 0xc4, 0x75, 0x51, 0xf1, 0xbf, 0x72, 0x31, 0xed, 0x5d, 0x58, 0x4e, 0xf1, 0x12, 0x5d, 0x83, + 0xa2, 0x77, 0xa3, 0x79, 0xa9, 0x9d, 0x6d, 0x78, 0x7f, 0x7a, 0xd4, 0x7d, 0xe2, 0xa5, 0x92, 0x73, + 0x52, 0xa5, 0x21, 0x7e, 0xbc, 0x5d, 0x78, 0x4b, 0xd1, 0x1e, 0xc0, 0x62, 0x92, 0xed, 0xe7, 0xd9, + 0xa3, 0xf6, 0x1b, 0x15, 0xe6, 0x65, 0x68, 0x9e, 0x98, 0x8e, 0xd9, 0xc5, 0x14, 0x7d, 0xa8, 0x40, + 0x25, 0xd4, 0x7f, 0x21, 0x3d, 0x18, 0xcb, 0xa4, 0x67, 0x22, 0x6d, 0x23, 0x43, 0x42, 0x84, 0xd9, + 0xd8, 0x1c, 0xd6, 0xaf, 0xa1, 0x79, 0xb1, 0xa6, 0xcb, 0xa8, 0x7d, 0xe7, 0x6f, 0xff, 0xf8, 0x61, + 0x61, 0xc1, 0x98, 0xdb, 0x39, 0xf9, 0xfc, 0x8e, 0xfc, 0xe4, 0xbe, 0xad, 0x6c, 0xa2, 0x1f, 0x28, + 0x80, 0x84, 0xe4, 0x43, 0x7c, 0xd0, 0xef, 0x4e, 0xd4, 0x8e, 0x2f, 0x0e, 0xeb, 0x4b, 0x48, 0x3e, + 0x76, 0xe9, 0xfc, 0x01, 0x2f, 0x64, 0xcd, 0xb2, 0x81, 0x3c, 0x6b, 0xf8, 0x42, 0x33, 0x68, 0x93, + 0xe5, 0x8d, 0x22, 0x49, 0x43, 0x31, 0xba, 0x15, 0x3c, 0x34, 0xe5, 0xa5, 0x45, 0xdb, 0xcc, 0x10, + 0x8a, 0x4e, 0xd7, 0xff, 0x54, 0xe0, 0x5a, 0x74, 0x9f, 0x7c, 0xa7, 0xbc, 0x9e, 0x2d, 0x24, 0x43, + 0xf0, 0xb1, 0x32, 0xac, 0x33, 0x44, 0x1f, 0x61, 0xe6, 0xbb, 0xee, 0x56, 0xf5, 0x96, 0xe9, 0xe8, + 0x1d, 0xcb, 0x66, 0x98, 0xea, 0x03, 0x8b, 0x1d, 0xea, 0xec, 0x10, 0xbb, 0x58, 0xef, 0x58, 0xd8, + 0x6e, 0xbb, 0xb7, 0x47, 0xa3, 0x56, 0x55, 0xf7, 0x6b, 0xb9, 0xaa, 0x7b, 0xc4, 0x51, 0xd5, 0x45, + 0xfb, 0x51, 0xd5, 0x79, 0x4f, 0xf1, 0xb9, 0xaa, 0xde, 0xc6, 0x1d, 0xb3, 0x6f, 0x33, 0x9d, 0x62, + 0xd6, 0xa7, 0x8e, 0x6e, 0xda, 0xf6, 0xd9, 0x29, 0x3c, 0xc2, 0xf3, 0x28, 0x94, 0x6f, 0xf4, 0x51, + 0xc1, 0x9b, 0x38, 0x85, 0xa9, 0xc1, 0x74, 0x4f, 0xd4, 0xe5, 0x9f, 0x29, 0xc3, 0xfa, 0x87, 0x0a, + 0xfa, 0xb6, 0xe7, 0x73, 0x28, 0xe9, 0x2f, 0xd9, 0xf3, 0xf0, 0x59, 0xdc, 0xff, 0x45, 0x94, 0x50, + 0x61, 0x1c, 0x75, 0xa1, 0xcb, 0x3a, 0x5c, 0xed, 0x49, 0x4f, 0x20, 0xe1, 0x6a, 0x4f, 0x7c, 0x0b, + 0x90, 0xa8, 0x13, 0x6b, 0x61, 0xd4, 0xd5, 0x62, 0xa8, 0xfb, 0xae, 0x02, 0xf3, 0xe1, 0x69, 0x1b, + 0x6d, 0x84, 0x83, 0x9b, 0xf0, 0x2c, 0xa0, 0x19, 0x59, 0x22, 0xd2, 0x8a, 0x3b, 0xc3, 0xfa, 0x02, + 0xba, 0x2a, 0x16, 0xc3, 0xc1, 0x58, 0xd8, 0x8c, 0x99, 0xf1, 0x6b, 0x05, 0x96, 0x53, 0xe6, 0x3f, + 0xb4, 0x99, 0x8a, 0xef, 0x58, 0x77, 0xa8, 0xdd, 0xc9, 0x25, 0x2b, 0x2d, 0xac, 0x0f, 0xeb, 0x37, + 0xd1, 0x8d, 0x56, 0x88, 0x9d, 0xf4, 0xd1, 0x75, 0xcb, 0x6d, 0x5d, 0x35, 0xd4, 0xa0, 0xad, 0x3b, + 0xa3, 0x65, 0x6e, 0xf7, 0x5f, 0x14, 0x58, 0x89, 0x93, 0xd6, 0xab, 0x30, 0xfe, 0xc9, 0xb0, 0xbe, + 0x81, 0xd6, 0x93, 0x28, 0x2d, 0xea, 0xc2, 0x2d, 0x63, 0x2d, 0x5e, 0x7b, 0x51, 0x47, 0x7e, 0x59, + 0x00, 0x2d, 0x7d, 0x2c, 0x40, 0x5b, 0x19, 0x80, 0x8b, 0x37, 0x7b, 0xda, 0x76, 0x5e, 0x71, 0xe9, + 0xcc, 0xaf, 0x94, 0x61, 0xfd, 0x85, 0x82, 0xbe, 0xa7, 0x04, 0xe8, 0x29, 0xe0, 0x86, 0x5b, 0x1d, + 0x8f, 0xd5, 0x50, 0x9b, 0x34, 0x82, 0xe9, 0x08, 0xbe, 0xe3, 0xa9, 0x2a, 0x78, 0x22, 0x8f, 0x9c, + 0x86, 0x52, 0x93, 0x8f, 0xfe, 0x5c, 0xf0, 0x7a, 0xde, 0x38, 0x83, 0xbd, 0xc2, 0xa8, 0xfd, 0x49, + 0x19, 0xd6, 0x7f, 0xa2, 0xa0, 0x1f, 0x29, 0x31, 0x82, 0x7b, 0x85, 0xb1, 0x4b, 0x3d, 0x97, 0x47, + 0x50, 0x47, 0x63, 0x6a, 0x8f, 0x23, 0x3f, 0x65, 0x60, 0x09, 0x83, 0x27, 0x7b, 0x2e, 0x0c, 0x83, + 0x67, 0xcc, 0x04, 0x24, 0x91, 0x1f, 0x66, 0xc8, 0x18, 0xf2, 0x6b, 0x99, 0xc8, 0xff, 0x83, 0x02, + 0x6a, 0xda, 0x70, 0x82, 0xee, 0xa4, 0xf2, 0x63, 0x42, 0xda, 0xab, 0xf9, 0x84, 0xa5, 0xe9, 0x5f, + 0x1d, 0xd6, 0x0d, 0xa4, 0x3f, 0x30, 0x59, 0xeb, 0x50, 0x6f, 0x87, 0xc8, 0x35, 0x16, 0xfc, 0xd5, + 0xcd, 0x71, 0xdc, 0x75, 0x23, 0xf5, 0x11, 0x08, 0x85, 0xac, 0x1a, 0xf7, 0x48, 0xa6, 0x6d, 0xe5, + 0x94, 0x96, 0x4e, 0x3c, 0x1e, 0xd6, 0x57, 0xd1, 0x4d, 0x5f, 0x2e, 0x2d, 0x03, 0x9f, 0x35, 0x36, + 0x52, 0xed, 0x3f, 0x91, 0xba, 0x9e, 0x23, 0xbf, 0x57, 0x60, 0x25, 0x6b, 0xaa, 0x42, 0x3b, 0x19, + 0xc0, 0x4a, 0x9a, 0xfc, 0xb4, 0xbb, 0xf9, 0x15, 0xa4, 0x47, 0x5f, 0x1a, 0xd6, 0x57, 0x90, 0x16, + 0xa4, 0x2f, 0x1f, 0x3d, 0xbc, 0x6f, 0x08, 0x75, 0x01, 0x67, 0x0e, 0xf1, 0x15, 0xf4, 0x0b, 0x05, + 0x16, 0x93, 0x86, 0x15, 0xf4, 0xc6, 0xf8, 0x71, 0x46, 0x98, 0x7b, 0x3b, 0xef, 0xdc, 0x63, 0xdc, + 0xe7, 0x85, 0xdf, 0xc5, 0x8c, 0x83, 0x5c, 0x2c, 0xea, 0xa4, 0x13, 0xea, 0x12, 0x6e, 0xa0, 0xe5, + 0x90, 0x95, 0x23, 0xc9, 0x07, 0x53, 0xcf, 0x0b, 0xbd, 0x83, 0x83, 0x69, 0x3e, 0x75, 0x7e, 0xe1, + 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x13, 0x03, 0x48, 0xff, 0x46, 0x25, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. -- GitLab